/* ============================================================
   BV Nepal scam — evidence dossier
   Mobile-first, dark, accessible. No frameworks, no trackers.
   ============================================================ */

:root{
  --bg:#0e1116; --bg2:#0b0e13; --card:#161b22; --line:#2a313c;
  --txt:#e6edf3; --muted:#9aa7b4;
  --red:#ff5b5b; --amber:#ffb020; --green:#3fb950; --blue:#58a6ff;
  --radius:10px; --shadow:0 8px 30px rgba(0,0,0,.35);
  --tap:44px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important} }

body{
  margin:0; color:var(--txt);
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Noto Sans Devanagari,Arial,sans-serif;
  background:var(--bg);
}
img{max-width:100%; height:auto}
a{color:var(--blue)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--blue); outline-offset:2px; border-radius:4px;
}
.wrap{max-width:960px; margin:0 auto; padding:0 18px}

.skip{position:absolute; left:-9999px; top:0; background:var(--blue); color:#fff; padding:10px 16px; z-index:200}
.skip:focus{left:8px; top:8px}

.mono,.mono *{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
code,.mono{font-size:.92em; color:#ffd9a0; word-break:break-all}

/* ---------------- header ---------------- */
.site-head{background:linear-gradient(180deg,#1a0f12,#0e1116); border-bottom:1px solid var(--line); padding:34px 0 0}
.badge{display:inline-block;background:#2b1214;border:1px solid var(--red);color:#ffb3b3;border-radius:20px;padding:3px 12px;font-size:.82rem;margin-bottom:12px}
h1{font-size:clamp(1.5rem,4.6vw,2.05rem); line-height:1.22; margin:0 0 10px}
.lede{color:var(--muted); font-size:1.03rem; margin:0 0 14px}
.cta-row{display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 4px}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:var(--tap); padding:9px 16px; border-radius:8px; font-weight:600;
  background:#1f6feb; color:#fff!important; text-decoration:none; border:1px solid transparent;
  cursor:pointer; font-size:.95rem; font-family:inherit;
}
.btn:hover{filter:brightness(1.1)}
.btn.alt{background:#238636}
.btn.ghost{background:transparent; border-color:var(--line); color:var(--txt)!important}
.btn.ghost:hover{border-color:var(--blue); background:#12181f}
.btn.big{min-height:52px; font-size:1.02rem; padding:12px 24px}
.btn[disabled]{opacity:.55; cursor:not-allowed; filter:none}
.mini{
  background:#1b2029; color:var(--txt); border:1px solid var(--line); border-radius:6px;
  padding:5px 10px; font-size:.8rem; cursor:pointer; min-height:32px; font-family:inherit;
}
.mini:hover{border-color:var(--blue)}

/* ---------------- sticky section nav ---------------- */
.toc{
  position:sticky; top:0; z-index:60;
  background:rgba(14,17,22,.94); backdrop-filter:blur(8px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-top:26px;
}
.toc-inner{display:flex; gap:4px; overflow-x:auto; scrollbar-width:thin; padding:8px 18px; -webkit-overflow-scrolling:touch}
.toc a{
  flex:0 0 auto; color:var(--muted); text-decoration:none; font-size:.85rem; font-weight:600;
  padding:7px 11px; border-radius:20px; white-space:nowrap; border:1px solid transparent;
}
.toc a:hover{color:var(--txt); background:#161b22}
.toc a.active{color:#0e1116; background:var(--amber); border-color:var(--amber)}

/* ---------------- content ---------------- */
main{padding-top:6px; padding-bottom:20px}
h2{
  font-size:clamp(1.2rem,3.4vw,1.4rem); margin:46px 0 12px; padding-bottom:8px;
  border-bottom:1px solid var(--line); scroll-margin-top:76px;
}
h3{font-size:1.05rem; margin:22px 0 8px; scroll-margin-top:76px}
h2.admin-only{display:none}
body.admin-open h2.admin-only{display:block}
ul,ol{padding-left:22px}
li{margin:6px 0}
.note{color:var(--muted); font-size:.9rem}
.small{font-size:.88rem}
hr{border:0; border-top:1px solid var(--line); margin:34px 0}

.kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:20px 0}
.kpi{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px}
.kpi .n{font-size:1.3rem; font-weight:700; color:#fff; word-break:break-word}
.kpi .l{font-size:.76rem; color:var(--muted); text-transform:uppercase; letter-spacing:.05em}

.alert{background:#20120f; border:1px solid #6e2a1e; border-left:4px solid var(--red); padding:15px 17px; border-radius:8px; margin:18px 0}
.alert b{color:#ffb3b3}

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; margin:16px 0}
.np{background:#111820; border:1px solid var(--line); border-radius:var(--radius); padding:14px 18px; margin:14px 0}
/* forward-the-warning block: the message is the point, so it scrolls rather than hides */
.fwd{background:var(--bg2); border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; margin:14px 0;
     max-height:20rem; overflow:auto; white-space:pre-line; font-size:.93rem; line-height:1.75}
.fwd-card h2{margin-bottom:6px}
@media (max-width:640px){ .fwd{max-height:16rem} }

.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); margin:12px 0}
.table-scroll:focus{outline-offset:0}
table{width:100%; border-collapse:collapse; font-size:.93rem; min-width:520px}
th,td{border-bottom:1px solid var(--line); padding:9px 11px; text-align:left; vertical-align:top}
th{background:#1b2029; color:#c9d3de; font-weight:600}
tr:last-child td{border-bottom:0}
table.kv{min-width:0}
table.kv th{width:170px}

.steps ol{counter-reset:s; list-style:none; padding-left:0}
.steps li{counter-increment:s; position:relative; padding:12px 14px 12px 52px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); margin:10px 0}
.steps li::before{
  content:counter(s); position:absolute; left:14px; top:12px;
  width:26px; height:26px; border-radius:50%; background:#1f6feb; color:#fff;
  display:grid; place-items:center; font-weight:700; font-size:.85rem;
}

.fold{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); margin:16px 0; overflow:hidden}
.fold summary{cursor:pointer; padding:14px 16px; font-weight:600; min-height:var(--tap); display:flex; align-items:center}
.fold summary:hover{background:#1b2029}
.fold[open] summary{border-bottom:1px solid var(--line)}
.fold ul{margin:0; padding:14px 16px 16px 38px}

.timeline{list-style:none; padding-left:0; border-left:2px solid var(--line); margin-left:8px}
.timeline li{position:relative; padding:0 0 14px 20px; margin:0}
.timeline li::before{content:""; position:absolute; left:-7px; top:8px; width:12px; height:12px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 3px var(--bg)}

.imgbox{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:10px; margin:14px 0; text-align:center}
.imgbox img{border-radius:4px}
.cap{color:var(--muted); font-size:.87rem; margin-top:8px; text-align:left}

/* ---------------- form ---------------- */
.form-card{padding:20px}
.form-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px}
.field{display:block; margin:14px 0}
.field > span{display:block; font-weight:600; font-size:.93rem; margin-bottom:6px}
.field em{color:var(--muted); font-weight:400; font-style:normal}
.field b.req{background:#2b1214; color:#ffb3b3; border:1px solid var(--red); border-radius:4px; font-size:.7rem; padding:1px 5px; text-transform:uppercase; margin-left:4px}
.field small{display:block; color:var(--muted); font-size:.8rem; margin-top:5px}
input[type=text],input[type=tel],input[type=date],input[type=search],input[type=password],input[type=email],textarea,select{
  width:100%; background:#0b0e13; color:var(--txt); border:1px solid var(--line);
  border-radius:8px; padding:11px 12px; font-size:16px; font-family:inherit; min-height:var(--tap);
}
textarea{min-height:120px; resize:vertical; line-height:1.6}
input:focus,textarea:focus,select:focus{border-color:var(--blue); outline:none; box-shadow:0 0 0 3px rgba(88,166,255,.18)}
input.invalid,textarea.invalid{border-color:var(--red); box-shadow:0 0 0 3px rgba(255,91,91,.18)}
.hp{position:absolute!important; left:-9999px!important; top:auto; width:1px; height:1px; opacity:0}

.dropzone{border:1px dashed #3b4453; border-radius:var(--radius); padding:16px; margin:18px 0; background:#12161d}
.dz-title{font-weight:700; font-size:1rem; padding:0 6px; margin-top:-28px; background:#12161d; display:inline-block; padding:0 8px}
.dz-sub{color:var(--muted); font-weight:400}
.dz-hint{color:var(--muted); font-size:.88rem; margin:6px 0 12px}
.dz-actions{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px}
.dz-drop{
  border:2px dashed #3b4453; border-radius:var(--radius); padding:22px 14px; text-align:center;
  color:var(--muted); cursor:pointer; transition:.15s; font-size:.95rem;
}
.dz-drop:hover,.dz-drop.over{border-color:var(--blue); background:#131a23; color:var(--txt)}
.dz-icon{display:block; font-size:1.6rem; margin-bottom:6px}
.dz-err{color:#ffb3b3; font-size:.87rem; min-height:1.1em; margin:8px 0 0}
.thumbs{list-style:none; padding:0; margin:14px 0 0; display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:10px}
.thumbs:empty{margin:0}
.thumbs li{position:relative; background:#0b0e13; border:1px solid var(--line); border-radius:8px; overflow:hidden}
.thumbs img{display:block; width:100%; aspect-ratio:1; object-fit:cover}
.thumbs .meta{font-size:.7rem; color:var(--muted); padding:5px 6px; word-break:break-all}
.thumbs .rm{
  position:absolute; top:4px; right:4px; width:28px; height:28px; border-radius:50%;
  background:rgba(0,0,0,.72); color:#fff; border:1px solid #555; cursor:pointer; font-size:1rem; line-height:1;
}
.thumbs .rm:hover{background:var(--red); border-color:var(--red)}

.check{display:flex; gap:10px; align-items:flex-start; margin:16px 0; font-size:.94rem; cursor:pointer}
.check input{width:20px; height:20px; margin-top:3px; accent-color:var(--green); flex:0 0 auto}
.form-foot{display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line)}
.form-status{min-height:1.3em; font-size:.92rem; margin:12px 0 0}
.form-status.err{color:#ffb3b3}
.form-status.ok{color:#8ef0a8}
.progress{height:8px; background:#0b0e13; border:1px solid var(--line); border-radius:20px; overflow:hidden; margin-top:12px}
.progress span{display:block; height:100%; width:0; background:linear-gradient(90deg,var(--blue),var(--green)); transition:width .2s}
.progress.read{position:absolute; left:0; right:0; bottom:0; margin:0; border:0; border-radius:0; height:3px; background:transparent}
.progress.read span{background:var(--amber)}

.success{border-color:var(--green)}
.success h3{margin-top:0; color:#8ef0a8}
.success .cta-row{margin-top:14px}

/* ---------------- gallery ---------------- */
.gallery-bar{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:16px 0 12px}
.gallery-bar input[type=search]{flex:1 1 240px}
.gallery-bar select{flex:0 0 auto; width:auto; min-width:150px}
.gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px}
.ev{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column}
.ev-photos{display:grid; gap:2px; background:var(--line)}
.ev-photos.n1{grid-template-columns:1fr}
.ev-photos.n2,.ev-photos.n4{grid-template-columns:1fr 1fr}
.ev-photos.n3{grid-template-columns:1fr 1fr 1fr}
.ev-photos button{padding:0; border:0; background:#0b0e13; cursor:zoom-in; display:block; overflow:hidden}
.ev-photos img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .2s}
.ev-photos button:hover img{transform:scale(1.04)}
.ev-body{padding:13px 15px; flex:1}
.ev-meta{display:flex; flex-wrap:wrap; gap:6px; font-size:.76rem; color:var(--muted); margin-bottom:8px}
.ev-meta span{background:#12181f; border:1px solid var(--line); border-radius:20px; padding:2px 9px}
.ev-meta .amt{color:#8ef0a8; border-color:#1e3a26; font-weight:600}
.ev-name{font-weight:700; margin:0 0 6px; font-size:.98rem}
.ev-story{font-size:.92rem; color:#cfd8e3; margin:0; white-space:pre-wrap; word-break:break-word}
.ev-empty{grid-column:1/-1; text-align:center; color:var(--muted); padding:34px 16px; border:1px dashed var(--line); border-radius:var(--radius)}
.ev-more{background:none; border:0; color:var(--blue); cursor:pointer; font-size:.86rem; padding:6px 0; font-family:inherit; text-align:left}

/* ---------------- lightbox ---------------- */
.lightbox{position:fixed; inset:0; z-index:120; background:rgba(4,6,9,.96); display:grid; place-items:center; padding:16px}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0; max-width:min(1000px,94vw); text-align:center}
.lightbox img{max-width:100%; max-height:78vh; border-radius:8px; box-shadow:var(--shadow)}
.lightbox figcaption{color:var(--muted); font-size:.88rem; margin-top:10px}
.lb-close{position:absolute; top:12px; right:14px; width:46px; height:46px; font-size:1.8rem; background:rgba(255,255,255,.08); color:#fff; border:1px solid var(--line); border-radius:50%; cursor:pointer}
.lb-nav{position:absolute; top:50%; transform:translateY(-50%); width:48px; height:64px; font-size:2rem; background:rgba(255,255,255,.06); color:#fff; border:1px solid var(--line); cursor:pointer; border-radius:8px}
.lb-nav.prev{left:10px} .lb-nav.next{right:10px}
.lb-nav:hover,.lb-close:hover{background:rgba(255,255,255,.16)}

/* ---------------- admin ---------------- */
#admin-list{display:grid; gap:12px}
.adm{background:#12161d; border:1px solid var(--line); border-radius:var(--radius); padding:14px}
.adm h4{margin:0 0 6px; font-size:.98rem}
.adm .adm-priv{font-size:.85rem; color:#ffd9a0}
.adm .adm-priv div{border-bottom:1px dotted var(--line); padding:3px 0}
.adm-actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.adm-photos{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.adm-photos img{width:96px; height:96px; object-fit:cover; border-radius:6px; border:1px solid var(--line); background:#000}
.pill{display:inline-block; font-size:.72rem; border-radius:20px; padding:2px 9px; border:1px solid; margin-left:6px; vertical-align:middle}
.pill.on{color:#8ef0a8; border-color:#1e3a26; background:#0f1d14}
.pill.off{color:#ffd9a0; border-color:#4a3a13; background:#1d1708}

/* ---------------- footer ---------------- */
footer{border-top:1px solid var(--line); margin-top:44px; padding:22px 0 46px; color:var(--muted); font-size:.9rem; position:relative}
footer a{margin-right:4px}
.totop{
  position:fixed; right:14px; bottom:16px; z-index:70; width:46px; height:46px; border-radius:50%;
  background:#1f6feb; color:#fff; border:0; font-size:1.3rem; cursor:pointer; box-shadow:var(--shadow);
}
.totop[hidden]{display:none}

/* ---------------- responsive ---------------- */
@media (max-width:640px){
  .site-head{padding-top:24px}
  .btn{width:100%}
  .cta-row .btn{width:100%}
  .toc-inner{padding:8px 14px}
  .form-card{padding:16px 14px}
  table{min-width:440px}
  .lb-nav{width:42px; height:56px}
}
@media (min-width:641px){ .btn{width:auto} }

/* ---------------- recovery kit ---------------- */
.doc-tools{display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 8px}
.doc{
  background:#0b0e13; border:1px solid var(--line); border-left:3px solid var(--green);
  border-radius:var(--radius); padding:16px 18px; margin:8px 0 8px;
  font:13.5px/1.62 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:#dce6f0; white-space:pre-wrap; word-break:break-word; overflow-x:auto;
  tab-size:2;
}
.doc:focus{outline:2px solid var(--blue); outline-offset:2px}
.checklist{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:12px 16px; margin:14px 0}
.checklist .check{border-bottom:1px solid var(--line); padding:9px 0; margin:0}
.checklist .check:last-child{border-bottom:0}
.checklist .check span{color:#cfd8e3}
.checklist .check:has(input:checked) span{color:var(--muted); text-decoration:line-through}
.form-status.warn{color:var(--amber)}
#print-area{display:none}

/* ---------------- print ---------------- */
@media print{
  .toc,.totop,.lightbox,.cta-row,.gallery-bar,#submit,#admin,.dz-actions,.skip,.doc-tools{display:none!important}
  body{background:#fff; color:#000}
  .card,.np,.kpi,.alert,.checklist{border:1px solid #999; background:#fff; color:#000}
  a{color:#000; text-decoration:underline}
  /* Printing a single generated document: hide the whole page except the chosen text. */
  body[data-printing="1"] > *:not(#print-area){display:none!important}
  #print-area{
    display:block!important; white-space:pre-wrap; word-break:break-word;
    font:11.5pt/1.5 Cambria,Georgia,"Times New Roman",serif; color:#000; background:#fff;
    max-width:none; padding:0; margin:0; border:0;
  }
  .doc{border:1px solid #999; background:#fff; color:#000; font-size:10.5pt}
}
