/* ===== UPSC Topper Prep — study portal ===== */
:root{
  --bg:#f6f7f9; --panel:#ffffff; --panel2:#fbfcfd; --ink:#1c2530; --ink2:#33404f;
  --muted:#697585; --line:#e5e9ef; --brand:#b8860b; --accent:#0d5c8c; --sec:#0d5c8c;
  --code-bg:#f3f5f8; --mark:#ffe7a3;
  --sidebar-w:290px; --toc-w:230px; --top-h:60px; --readw:760px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 4px 14px rgba(16,24,40,.05);
  --radius:14px; --fs:17px; --lh:1.72;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans Devanagari",sans-serif;
}
html[data-theme="sepia"]{
  --bg:#f2e9d8; --panel:#fbf4e6; --panel2:#f6eddb; --ink:#3b3226; --ink2:#4a3f30;
  --muted:#8a7a60; --line:#e4d7bd; --code-bg:#efe4cc; --mark:#e9cf87;
  --shadow:0 1px 2px rgba(80,60,20,.08),0 4px 14px rgba(80,60,20,.06);
}
html[data-theme="dark"]{
  --bg:#0f131a; --panel:#161c25; --panel2:#141a22; --ink:#e7edf4; --ink2:#c7d1dc;
  --muted:#93a1b0; --line:#242c37; --brand:#e3b341; --accent:#5aa9e6; --code-bg:#1a212b; --mark:#5a4a12;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--fs);
  line-height:var(--lh);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
em{font-style:italic}

/* Progress bar */
.progressbar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--sec),var(--brand));
  z-index:60;transition:width .1s ease}

/* Topbar */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--top-h);z-index:50;display:flex;align-items:center;gap:14px;
  padding:0 18px;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:17px;color:var(--ink);display:flex;align-items:center;gap:9px;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand-mark{font-size:19px}
.menu-btn,.theme-btn{background:none;border:1px solid transparent;font-size:19px;cursor:pointer;color:var(--ink);
  border-radius:10px;width:40px;height:40px;line-height:1;transition:background .15s}
.menu-btn{display:none}
.theme-btn:hover,.menu-btn:hover{background:var(--bg)}
.search-wrap{position:relative;flex:1;max-width:540px;margin:0 auto}
#search{width:100%;height:42px;padding:0 16px;border-radius:22px;border:1px solid var(--line);background:var(--bg);
  color:var(--ink);font-size:14.5px;font-family:var(--sans);outline:none;transition:border .15s,box-shadow .15s}
#search:focus{border-color:var(--sec);box-shadow:0 0 0 3px color-mix(in srgb,var(--sec) 16%,transparent)}
.results{position:absolute;top:50px;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 18px 44px rgba(16,24,40,.18);max-height:72vh;overflow:auto;display:none;z-index:70}
.results.show{display:block}
.results a{display:block;padding:11px 15px;border-bottom:1px solid var(--line);color:var(--ink)}
.results a:hover{background:var(--bg);text-decoration:none}
.results .r-sec{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--brand);font-weight:700}
.results .r-title{font-weight:600;margin-top:1px}
.results .r-snip{font-size:13px;color:var(--muted);margin-top:2px}
.results .empty{padding:16px;color:var(--muted)}
mark{background:var(--mark);color:inherit;padding:0 2px;border-radius:3px}

/* Layout */
.layout{display:flex;padding-top:var(--top-h);max-width:1500px;margin:0 auto}
.sidebar{width:var(--sidebar-w);flex:none;position:sticky;top:var(--top-h);align-self:flex-start;
  height:calc(100vh - var(--top-h));overflow-y:auto;background:var(--panel2);border-right:1px solid var(--line);
  padding:16px 10px 60px}
.content{flex:1;min-width:0;padding:30px clamp(18px,4vw,54px) 80px}
.toc{width:var(--toc-w);flex:none;position:sticky;top:var(--top-h);align-self:flex-start;
  height:calc(100vh - var(--top-h));overflow-y:auto;padding:34px 18px 40px}

/* Sidebar nav */
.nav-group{margin-bottom:4px;border-radius:10px}
.nav-group-title{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--sans);
  display:flex;align-items:center;gap:7px;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);font-weight:700;padding:8px 12px;border-radius:8px}
.nav-group-title:hover{background:var(--bg);color:var(--ink)}
.nav-group-title .chev{margin-left:auto;transition:transform .18s;font-size:11px}
.nav-group.open .chev{transform:rotate(90deg)}
.nav-group ul{list-style:none;margin:0;padding:0;max-height:0;overflow:hidden;transition:max-height .25s ease}
.nav-group.open ul{max-height:1400px}
.nav-group li a{display:flex;align-items:center;gap:7px;padding:7px 12px 7px 14px;border-radius:8px;color:var(--ink2);
  font-size:14px;line-height:1.4;border-left:2px solid transparent}
.nav-group li a:hover{background:var(--bg);text-decoration:none}
.nav-group li a.active{background:color-mix(in srgb,var(--sec) 12%,transparent);color:var(--sec);font-weight:600;
  border-left-color:var(--sec)}
.nav-group li a .tick{font-size:11px;color:var(--sec);opacity:0;flex:none;width:12px}
.nav-group li a.done .tick{opacity:1}
.nav-group li a.done{color:var(--muted)}

/* Breadcrumb + lesson meta */
.crumb{font-size:13px;color:var(--muted);margin-bottom:12px}
.crumb a{color:var(--muted)} .crumb span{margin:0 5px}
.lesson-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.chip{background:color-mix(in srgb,var(--sec) 14%,transparent);color:var(--sec);font-weight:700;font-size:12px;
  padding:4px 11px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}
.rt{color:var(--muted);font-size:13.5px}
.done-btn{margin-left:auto;background:var(--panel);border:1px solid var(--line);color:var(--ink2);cursor:pointer;
  font-family:var(--sans);font-size:13.5px;font-weight:600;padding:6px 13px;border-radius:20px;display:flex;align-items:center;gap:6px;transition:all .15s}
.done-btn:hover{border-color:var(--sec);color:var(--sec)}
.done-btn.done{background:color-mix(in srgb,var(--sec) 14%,transparent);border-color:transparent;color:var(--sec)}
.done-btn.done .db-ico{content:"●"}

/* Prose */
.prose{max-width:var(--readw)}
.prose h1{font-family:var(--serif);font-weight:700;font-size:clamp(27px,3.6vw,35px);line-height:1.18;
  letter-spacing:-.01em;margin:.1em 0 .5em}
.prose h2{font-family:var(--serif);font-weight:600;font-size:24px;margin:1.7em 0 .55em;padding-bottom:.28em;
  border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--top-h) + 12px)}
.prose h3{font-family:var(--serif);font-weight:600;font-size:19.5px;margin:1.4em 0 .4em;scroll-margin-top:calc(var(--top-h) + 12px)}
.prose h4{font-size:16.5px;font-weight:700;margin:1.15em 0 .3em}
.prose p{margin:.75em 0}
.prose ul,.prose ol{padding-left:1.45em;margin:.65em 0}
.prose li{margin:.32em 0}
.prose strong{font-weight:700;color:var(--ink)}
.prose blockquote{margin:1.15em 0;padding:.7em 1.1em;border-left:4px solid var(--sec);
  background:color-mix(in srgb,var(--sec) 8%,transparent);border-radius:0 10px 10px 0}
.prose blockquote p{margin:.3em 0}
.prose code{background:var(--code-bg);padding:.14em .4em;border-radius:6px;font-size:.88em;
  font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace}
.prose pre{background:var(--code-bg);padding:15px 17px;border-radius:12px;overflow:auto;border:1px solid var(--line);line-height:1.55}
.prose pre code{background:none;padding:0;font-size:13px}
.prose table{border-collapse:collapse;width:100%;margin:1.1em 0;font-size:14.5px;display:block;overflow-x:auto;
  border:1px solid var(--line);border-radius:10px}
.prose th,.prose td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
.prose th{background:var(--bg);font-weight:700}
.prose tr:nth-child(even) td{background:color-mix(in srgb,var(--bg) 55%,transparent)}
.prose hr{border:none;border-top:1px solid var(--line);margin:2.2em 0}
.prose img{max-width:100%;border-radius:8px}
.prose a{color:var(--sec);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--sec) 40%,transparent);text-underline-offset:2px}

/* Prev / Next */
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:40px 0 8px;max-width:var(--readw)}
.pn{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;
  background:var(--panel);box-shadow:var(--shadow);transition:transform .12s,border-color .12s}
.pn:hover{transform:translateY(-2px);border-color:var(--sec);text-decoration:none}
.pn span{font-size:12.5px;color:var(--muted);font-weight:600}
.pn b{color:var(--ink);font-size:14.5px;line-height:1.3}
.pn.next{text-align:right}
.pagefoot{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;max-width:var(--readw)}

/* TOC */
.toc-h{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-bottom:10px}
#tocnav a{display:block;padding:5px 10px;border-left:2px solid var(--line);color:var(--muted);font-size:13px;line-height:1.35}
#tocnav a:hover{color:var(--ink);text-decoration:none}
#tocnav a.h3{padding-left:20px;font-size:12.5px}
#tocnav a.active{color:var(--sec);border-left-color:var(--sec);font-weight:600}

/* Home */
body[data-home] .content{padding-top:26px}
.hero{display:flex;gap:30px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:radial-gradient(120% 140% at 0% 0%, color-mix(in srgb,var(--sec) 90%,#000) 0%, var(--sec) 55%, color-mix(in srgb,var(--sec) 70%,#000) 100%);
  color:#fff;border-radius:22px;padding:40px clamp(24px,4vw,48px);margin-bottom:20px;box-shadow:var(--shadow)}
.hero-txt{flex:1;min-width:280px}
.hero h1{font-family:var(--serif);font-weight:700;margin:0 0 12px;font-size:clamp(26px,3.6vw,40px);line-height:1.14;letter-spacing:-.01em}
.hero h1 em{color:#ffe9b0;font-style:italic}
.hero p{margin:0;font-size:16px;opacity:.95;max-width:640px}
.qbtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.qbtn{background:rgba(255,255,255,.16);color:#fff;padding:10px 16px;border-radius:11px;font-size:14px;font-weight:600;border:1px solid rgba(255,255,255,.18)}
.qbtn:hover{background:rgba(255,255,255,.3);text-decoration:none}
.hero-ring{display:flex;flex-direction:column;align-items:center;gap:8px}
.ring{position:relative;width:150px;height:150px}
.ring svg{transform:rotate(-90deg);width:150px;height:150px}
.ring circle{fill:none;stroke-width:9}
.ring-bg{stroke:rgba(255,255,255,.22)}
.ring-fg{stroke:#ffe9b0;stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset .7s ease}
.ring-lbl{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-lbl b{font-size:30px;font-weight:800;font-family:var(--serif)}
.ring-lbl span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;opacity:.85}
.ring-sub{font-size:13px;opacity:.9}
.stripstats{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.stripstats .s{flex:1;min-width:120px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.stripstats .s b{display:block;font-size:26px;font-weight:800;font-family:var(--serif);color:var(--sec)}
.stripstats .s span{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.sec-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin:28px 0 4px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px;margin:14px 0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:19px 19px 16px;box-shadow:var(--shadow);
  border-top:3px solid var(--sec);transition:transform .13s,box-shadow .13s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(16,24,40,.12);text-decoration:none}
.card h3{font-family:var(--serif);margin:.1em 0 .35em;font-size:18px;color:var(--ink);display:flex;align-items:center;gap:9px}
.card .cico{font-size:20px}
.card p{margin:0 0 11px;color:var(--muted);font-size:13.5px;line-height:1.5}
.card ul{list-style:none;margin:0;padding:0}
.card li a{font-size:13.5px;color:var(--sec);display:block;padding:2.5px 0}
.card .more{font-size:12.5px;color:var(--muted);margin-top:6px;font-weight:600}

/* Responsive */
.backdrop{display:none;position:fixed;inset:var(--top-h) 0 0;background:rgba(0,0,0,.42);z-index:40}
@media(max-width:1150px){ .toc{display:none} }
@media(max-width:900px){
  .menu-btn{display:inline-block}
  .brand .txt{display:none}
  .sidebar{position:fixed;top:var(--top-h);bottom:0;left:0;transform:translateX(-100%);transition:transform .22s ease;
    z-index:45;width:84%;max-width:330px;height:auto}
  .sidebar.open{transform:translateX(0)}
  .content{padding-left:18px;padding-right:18px}
  .backdrop.show{display:block}
  .hero{flex-direction:column;text-align:center}
  .prevnext{grid-template-columns:1fr}
}
@media(max-width:520px){ .lesson-meta .done-btn .db-txt{display:none} }
