:root{
  --paper:#F4F5FA; --surface:#FFFFFF; --sunken:#E9ECF7; --ink:#0F1B3D; --mute:#56608A; --line:#D3D8EC;
  --neel:#2B3FAE; --onneel:#FFFFFF; --haldi:#F4B400; --onhaldi:#0F1B3D; --ok:#1B7F4B; --err:#C62828; --warn-bg:#FFF3CD; --warn-ink:#5B4300;
  color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0B1030; --surface:#131A44; --sunken:#1B2458; --ink:#EEF0FB; --mute:#A3ABD6; --line:#2A3470;
    --neel:#8EA0FF; --onneel:#0B1030; --ok:#5BD08F; --err:#FF8A80; --warn-bg:#3A2E00; --warn-ink:#FFE7A0; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0B1030; --surface:#131A44; --sunken:#1B2458; --ink:#EEF0FB; --mute:#A3ABD6; --line:#2A3470;
  --neel:#8EA0FF; --onneel:#0B1030; --ok:#5BD08F; --err:#FF8A80; --warn-bg:#3A2E00; --warn-ink:#FFE7A0; color-scheme:dark;
}
html{ scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px); scroll-behavior:smooth; }
body{ background:var(--paper); color:var(--ink); font-family:Hind,"Noto Sans Devanagari",system-ui,sans-serif; font-size:17px; line-height:1.55; margin:0; }
[hidden]{ display:none !important; }
h1,h2,h3.d,.font-display{ font-family:"Yatra One",Hind,system-ui,sans-serif; font-weight:400; }
a{ color:var(--neel); }
:focus-visible{ outline:3px solid var(--neel); outline-offset:2px; }
.on-haldi :focus-visible,.on-neel :focus-visible{ outline-color:currentColor; }
.rule{ height:6px; background:var(--haldi); }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:42px; padding:.45rem .95rem; border:1.5px solid var(--ink); border-radius:6px; background:transparent; color:var(--ink); font:600 .95rem/1.2 Hind,system-ui,sans-serif; cursor:pointer; text-decoration:none; transition:background .15s, transform .1s; }
.btn:hover{ background:var(--sunken); } .btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--neel); border-color:var(--neel); color:var(--onneel); } .btn-primary:hover{ background:var(--neel); filter:brightness(1.08); }
.btn-haldi{ background:var(--haldi); border-color:var(--haldi); color:var(--onhaldi); } .btn-haldi:hover{ background:var(--haldi); filter:brightness(1.05); }
.btn-ink{ background:var(--onhaldi); border-color:var(--onhaldi); color:#fff; } .btn-ink:hover{ background:var(--onhaldi); filter:brightness(1.25); }
.btn-danger{ border-color:var(--err); color:var(--err); } .btn-danger:hover{ background:var(--err); color:#fff; }
.btn-sm{ min-height:34px; padding:.2rem .65rem; font-size:.88rem; }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }
.chip{ border:1.5px solid var(--line); background:var(--surface); color:var(--ink); border-radius:999px; padding:.3rem .85rem; font:500 .92rem/1.2 Hind,system-ui,sans-serif; cursor:pointer; min-height:36px; text-decoration:none; display:inline-flex; align-items:center; }
.chip[aria-pressed="true"],.chip.on{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.field{ width:100%; border:1.5px solid var(--line); background:var(--surface); color:var(--ink); border-radius:6px; padding:.55rem .75rem; font:inherit; min-height:44px; }
.field:focus{ border-color:var(--neel); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--neel) 28%, transparent); }
textarea.field{ line-height:1.5; }
.lbl{ display:block; font-weight:600; font-size:.9rem; margin-bottom:.25rem; }
.help{ font-size:.85rem; color:var(--mute); margin-top:.2rem; }
.save{ display:inline-block; background:var(--haldi); color:var(--onhaldi); font-weight:700; font-size:.85rem; padding:.15rem .55rem; border-radius:4px; }
.tag{ display:inline-block; border:1px solid var(--line); border-radius:4px; padding:0 .45rem; font-size:.82rem; color:var(--mute); }
.tag-premium{ background:var(--haldi); border-color:var(--haldi); color:var(--onhaldi); font-weight:700; }
.strike{ text-decoration:line-through; text-decoration-thickness:2px; color:var(--mute); }
.note-warn{ background:var(--warn-bg); color:var(--warn-ink); border-radius:6px; padding:.5rem .75rem; font-size:.9rem; }
.flash{ border-radius:6px; padding:.65rem .9rem; margin-bottom:.75rem; font-weight:500; }
.flash-ok{ background:color-mix(in srgb, var(--ok) 16%, var(--surface)); border:1px solid var(--ok); }
.flash-err{ background:color-mix(in srgb, var(--err) 14%, var(--surface)); border:1px solid var(--err); }

.row{ display:grid; gap:12px; padding:22px 0; border-bottom:1px solid var(--line); }
@media (min-width:768px){ .row{ grid-template-columns:190px minmax(0,1fr) auto; align-items:center; gap:24px; } }
.pv{ display:block; width:100%; text-align:left; border:1px solid var(--line); border-radius:6px; padding:12px 16px; line-height:1.35; cursor:copy; overflow-wrap:anywhere; min-height:64px; }
.pv:hover{ border-color:var(--neel); }
.specimen{ border:1.5px solid var(--ink); border-radius:10px; background:var(--surface); overflow:hidden; }
.spec-text{ font-size:clamp(2.6rem,9vw,6.2rem); line-height:1.15; color:var(--neel); overflow-wrap:anywhere; min-height:2.4em; padding:.15em .25em .1em; }
.card{ border:1px solid var(--line); border-radius:10px; background:var(--surface); overflow:hidden; display:flex; flex-direction:column; }
.card .pvbox{ padding:18px 18px 8px; min-height:110px; font-size:34px; line-height:1.3; overflow-wrap:anywhere; background:var(--sunken); }
.card img.cover{ width:100%; aspect-ratio:16/10; object-fit:cover; display:block; background:var(--sunken); }

dialog{ border:1.5px solid var(--ink); border-radius:10px; background:var(--surface); color:var(--ink); padding:0; width:min(560px, calc(100vw - 24px)); max-height:calc(100dvh - 24px); overflow:auto; }
dialog::backdrop{ background:rgba(8,12,34,.62); }
.qr{ width:190px; height:190px; background:#fff; padding:6px; border-radius:8px; border:1px solid var(--line); flex:none; } .qr svg{ width:100%; height:100%; display:block; }
.tab{ flex:1; min-height:44px; border:1.5px solid var(--line); background:var(--surface); color:var(--ink); font:600 .93rem Hind,system-ui,sans-serif; cursor:pointer; }
.tab:first-child{ border-radius:6px 0 0 6px; } .tab:last-child{ border-radius:0 6px 6px 0; } .tab + .tab{ margin-left:-1.5px; }
.tab[aria-selected="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
#toast{ position:fixed; left:50%; transform:translateX(-50%); bottom:calc(84px + env(safe-area-inset-bottom,0px)); z-index:80; max-width:min(92vw,460px); background:var(--ink); color:var(--paper); border-radius:8px; padding:.65rem 1rem; display:flex; gap:.75rem; align-items:center; box-shadow:0 8px 24px rgba(0,0,0,.25); }
#fab{ position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:60; }
.steam path{ animation:steam 2.6s ease-in-out infinite; } .steam path:nth-child(2){ animation-delay:.5s } .steam path:nth-child(3){ animation-delay:1s }
@keyframes steam{ 0%{ opacity:.15; transform:translateY(4px) } 50%{ opacity:1 } 100%{ opacity:.15; transform:translateY(-6px) } }
.conf{ position:fixed; top:-20px; width:10px; height:16px; z-index:90; pointer-events:none; animation:fall linear forwards; }
@keyframes fall{ to{ transform:translateY(112vh) rotate(720deg); } }

.prose{ max-width:70ch; } .prose h1,.prose h2,.prose h3{ margin:1.4em 0 .5em; line-height:1.2; } .prose h2{ font-size:1.7rem; } .prose h3{ font-size:1.3rem; }
.prose p,.prose ul,.prose ol{ margin:.8em 0; } .prose ul{ list-style:disc; padding-left:1.4em; } .prose ol{ list-style:decimal; padding-left:1.4em; }
.prose img,.prose video{ max-width:100%; height:auto; border-radius:8px; margin:1em 0; } .prose a{ text-decoration:underline; }
.prose blockquote{ border-left:4px solid var(--haldi); padding-left:1em; color:var(--mute); }

/* admin */
.adm{ display:grid; min-height:100vh; }
@media (min-width:900px){ .adm{ grid-template-columns:230px minmax(0,1fr); } }
.adm-side{ background:var(--surface); border-right:1px solid var(--line); padding:14px; }
.adm-side a.nav{ display:flex; align-items:center; gap:.5rem; padding:.55rem .75rem; border-radius:6px; color:var(--ink); text-decoration:none; font-weight:500; }
.adm-side a.nav:hover{ background:var(--sunken); } .adm-side a.nav.on{ background:var(--ink); color:var(--paper); }
.adm-main{ padding:20px; max-width:1100px; width:100%; }
table.t{ width:100%; border-collapse:collapse; font-size:.95rem; } table.t th{ text-align:left; font-size:.82rem; color:var(--mute); text-transform:uppercase; letter-spacing:.03em; }
table.t th,table.t td{ padding:.6rem .6rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.panel{ background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:18px; }
.stat{ background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:16px; } .stat b{ font-family:"Yatra One",Hind,sans-serif; font-weight:400; font-size:2rem; display:block; line-height:1.1; }
.thumb{ width:64px; height:44px; object-fit:cover; border-radius:4px; background:var(--sunken); }
.overlay{ position:fixed; inset:0; background:rgba(8,12,34,.7); color:#fff; display:grid; place-items:center; z-index:100; font-size:1.1rem; text-align:center; padding:20px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } .steam path{ animation:none; opacity:1; } .btn{ transition:none; } }
