/* Indian Law Map - visual sibling of /index.html (LL.B. Syllabus page) */

:root{
  --ink:#101c17;
  --pine:#1f4739;
  --pine-soft:#3d6b59;
  --gold:#b3820f;
  --gold-soft:#e6c76a;
  --paper:#f2f0e8;
  --card:#fbfaf5;
  --rule:#d9d4c3;
  --muted:#5f6b62;
  --shadow:0 1px 0 rgba(16,28,23,.06), 0 12px 28px -22px rgba(16,28,23,.55);
  --serif:"Spectral","Iowan Old Style",Georgia,serif;
  --slab:"Zilla Slab","Rockwell",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--pine);text-decoration-thickness:1px;text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--pine);color:#fff;padding:.6rem 1rem;z-index:60}
.skip:focus{left:.5rem;top:.5rem}

/* ---------- masthead ---------- */
.masthead{
  background:var(--ink);color:#f0efe6;
  border-bottom:6px solid var(--gold);
  padding:2.2rem 1.5rem 1.8rem;
}
.masthead .inner{max-width:1180px;margin:0 auto}
.mast-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.crest{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-soft);margin:0 0 1.1rem;
}
.masthead h1{
  font-family:var(--slab);font-weight:700;font-size:clamp(1.7rem,4.5vw,2.8rem);
  line-height:1.05;margin:0 0 .5rem;letter-spacing:-.015em;
}
.masthead h1 em{font-style:normal;display:block;color:var(--gold-soft);font-size:.45em;font-weight:500;letter-spacing:.02em;margin-top:.6rem;font-family:var(--slab)}
.masthead .meta{
  display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin-top:1.2rem;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#a9bcaf;
}
.masthead .meta span{display:inline-flex;align-items:center;gap:.5rem}
.masthead .meta span::before{content:"";width:6px;height:6px;background:var(--gold);border-radius:1px}
.auth{display:flex;align-items:center;gap:.8rem;font-size:.85rem}
.auth a{color:var(--gold-soft)}
#divUser{display:flex;align-items:center;gap:.55rem}
#divUser[hidden]{display:none}
#imgUser{width:28px;height:28px;border-radius:50%;border:1px solid var(--gold-soft)}
#lblUser{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em}

/* ---------- toolbar ---------- */
.toolbar{
  position:sticky;top:0;z-index:40;
  background:var(--ink);color:#f0efe6;border-bottom:1px solid rgba(230,199,106,.35);
  box-shadow:0 6px 18px -16px rgba(16,28,23,.9);
}
.toolbar .inner{
  max-width:1180px;margin:0 auto;padding:.55rem 1.5rem;
  display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;
}
.toolbar nav{display:flex;gap:.35rem;flex-wrap:wrap}
.acts a,.modes .mode{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.4rem .7rem;border:1px solid rgba(240,239,230,.28);background:transparent;color:#f0efe6;
  border-radius:2px;cursor:pointer;text-decoration:none;
}
.acts a.active,.modes .mode.active{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.acts a:hover,.modes .mode:hover{border-color:var(--gold-soft)}
.acts{align-items:center;gap:.5rem}
.acts label{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}
.acts select{
  font-family:var(--serif);font-size:.9rem;padding:.4rem 1.8rem .4rem .6rem;max-width:min(60vw,420px);
  border:1px solid rgba(240,239,230,.28);background:#1b2a23;color:#f0efe6;border-radius:2px;cursor:pointer;
}
.acts select:hover,.acts select:focus{border-color:var(--gold-soft);outline:none}
.findwrap{position:relative;flex:1;min-width:220px;max-width:380px;margin-left:auto}
.finder{width:100%;font-family:var(--serif);font-size:.9rem;padding:.55rem .7rem;border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:2px}
.finder::placeholder{color:#9aa39b}
.search-hits{
  position:absolute;top:100%;left:0;right:0;z-index:50;
  background:var(--card);border:1px solid var(--rule);border-top:none;box-shadow:var(--shadow);
  max-height:320px;overflow-y:auto;
}
.search-hits[hidden]{display:none}
.search-hits a{
  display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:baseline;
  padding:.45rem .7rem;text-decoration:none;font-size:.86rem;border-bottom:1px solid var(--rule);
}
.search-hits a:hover{background:var(--paper)}
.search-hits code{font-family:var(--mono);font-size:.7rem;color:var(--muted)}

/* ---------- shell + rail ---------- */
.shell{max-width:1180px;margin:0 auto;padding:0 1.5rem;display:grid;grid-template-columns:250px minmax(0,1fr);gap:3rem;align-items:start}
.rail{position:sticky;top:3.6rem;padding:2rem 0 3rem;max-height:calc(100vh - 3.6rem);overflow-y:auto}
.rail h2{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:1.6rem 0 .8rem;font-weight:500}
.rail h2:first-child{margin-top:0}
.rail .links{list-style:none;margin:0;padding:0;font-size:.86rem}
.chip{
  display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;
  padding:.32rem .4rem;text-decoration:none;color:var(--ink);font-size:.82rem;line-height:1.3;
  border-left:2px solid transparent;
}
.chip:hover{border-left-color:var(--gold);background:var(--card)}
.chip .sw{width:11px;height:11px;border-radius:2px;border:1px solid rgba(16,28,23,.25)}
.chip code{font-family:var(--mono);font-size:.66rem;color:var(--muted)}
.lg-scale{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem}
.lg-scale span{display:flex;align-items:center;gap:.55rem}
.lg-scale i{width:11px;height:11px;border-radius:2px;border:1px solid rgba(16,28,23,.25)}

/* ---------- chapters + cells ---------- */
#map{padding:2rem 0 4rem;min-height:60vh}
.chapter{margin:0 0 1.9rem}
.chapter-head{
  display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;
  border-bottom:1px solid var(--rule);padding-bottom:.35rem;margin-bottom:.7rem;
}
.chapter-head .ch-no{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}
.chapter-head b{font-family:var(--slab);font-weight:600;font-size:1.02rem}
.chapter-head code{font-family:var(--mono);font-size:.7rem;color:var(--muted);margin-left:auto}
.cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:.45rem}
.cell{
  position:relative;display:flex;flex-direction:column;gap:.15rem;align-items:flex-start;text-align:left;
  min-height:64px;padding:.45rem .55rem .5rem;cursor:pointer;
  font-family:var(--serif);color:var(--ink);
  background:var(--card);border:1px solid var(--rule);border-left-width:3px;border-radius:2px;
  transition:transform .08s ease, box-shadow .08s ease;
}
.cell:hover{transform:translateY(-1px);box-shadow:var(--shadow);z-index:2}
.cell strong{font-family:var(--slab);font-weight:700;font-size:.92rem;letter-spacing:.01em}
.cell span{font-size:.68rem;line-height:1.25;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cell .flags{position:absolute;top:.3rem;right:.4rem;font-style:normal;font-size:.66rem;color:var(--pine-soft)}
.cell.open{outline:2px solid var(--gold);outline-offset:2px}
.cell.pulse{animation:cellpulse 1.2s ease 2}
@keyframes cellpulse{0%,100%{outline:2px solid transparent}50%{outline:3px solid var(--gold);outline-offset:3px}}
.cell.dim{opacity:.18;filter:grayscale(1)}
body.view-exam .cell[data-imp="5"]{grid-column:span 1}
@media(min-width:1100px){body.view-exam .cell[data-imp="5"]{grid-column:span 2}}
.empty{font-style:italic;color:var(--muted);padding:2rem 0}

/* ---------- chapter colour groups (view: Chapters) ----------
   Muted paper-tinted hues; the left border carries the stronger accent. */
.g-preliminary        {--g-bg:hsl(210,26%,91%);--g-ac:hsl(210,30%,42%)}
.g-proposal-acceptance{--g-bg:hsl(150,25%,90%);--g-ac:hsl(150,30%,34%)}
.g-contracts          {--g-bg:hsl(40,45%,89%); --g-ac:hsl(40,60%,38%)}
.g-punishment         {--g-bg:hsl(15,38%,90%); --g-ac:hsl(15,50%,42%)}
.g-exceptions         {--g-bg:hsl(175,26%,89%);--g-ac:hsl(175,32%,32%)}
.g-participation      {--g-bg:hsl(270,22%,91%);--g-ac:hsl(270,26%,44%)}
.g-women-child        {--g-bg:hsl(340,32%,92%);--g-ac:hsl(340,42%,42%)}
.g-human-body         {--g-bg:hsl(0,36%,92%);  --g-ac:hsl(0,46%,42%)}
.g-state              {--g-bg:hsl(230,24%,91%);--g-ac:hsl(230,30%,44%)}
.g-armed-forces       {--g-bg:hsl(80,24%,89%); --g-ac:hsl(80,32%,32%)}
.g-elections          {--g-bg:hsl(195,30%,90%);--g-ac:hsl(195,38%,35%)}
.g-currency           {--g-bg:hsl(45,42%,89%); --g-ac:hsl(45,55%,36%)}
.g-public-order       {--g-bg:hsl(25,42%,90%); --g-ac:hsl(25,52%,40%)}
.g-public-servants    {--g-bg:hsl(300,18%,91%);--g-ac:hsl(300,22%,42%)}
.g-authority          {--g-bg:hsl(30,22%,89%); --g-ac:hsl(30,30%,38%)}
.g-justice            {--g-bg:hsl(215,28%,90%);--g-ac:hsl(215,34%,40%)}
.g-public-health      {--g-bg:hsl(160,24%,89%);--g-ac:hsl(160,30%,32%)}
.g-religion           {--g-bg:hsl(285,20%,91%);--g-ac:hsl(285,24%,44%)}
.g-property           {--g-bg:hsl(35,44%,88%); --g-ac:hsl(35,56%,36%)}
.g-documents          {--g-bg:hsl(200,22%,90%);--g-ac:hsl(200,28%,40%)}
.g-reputation         {--g-bg:hsl(325,26%,92%);--g-ac:hsl(325,34%,44%)}
.g-closing            {--g-bg:hsl(210,8%,90%); --g-ac:hsl(210,10%,45%)}
body.view-chapter .cell{background:var(--g-bg,var(--card));border-left-color:var(--g-ac,var(--rule))}
.chip .sw,.lg-scale i.sw{background:var(--g-bg);border-left:3px solid var(--g-ac)}

/* ---------- view: Exam importance (pine/gold intensity ramp) ---------- */
body.view-exam .cell{border-left-color:var(--pine)}
body.view-exam .cell[data-imp="1"]{background:hsl(46,35%,94%)}
body.view-exam .cell[data-imp="2"]{background:hsl(45,50%,88%)}
body.view-exam .cell[data-imp="3"]{background:hsl(44,60%,79%)}
body.view-exam .cell[data-imp="4"]{background:hsl(42,62%,68%)}
body.view-exam .cell[data-imp="5"]{background:hsl(40,64%,55%)}
body.view-exam .cell[data-imp="5"] span{color:var(--ink)}

/* ---------- view: My progress ---------- */
body.view-progress .cell{background:var(--card);border-left-color:var(--rule)}
body.view-progress .cell[data-progress="Read"]{background:hsl(150,25%,92%);border-left-color:hsl(150,28%,55%)}
body.view-progress .cell[data-progress="Understood"]{background:hsl(150,30%,85%);border-left-color:hsl(150,32%,45%)}
body.view-progress .cell[data-progress="Practised"]{background:hsl(150,35%,76%);border-left-color:hsl(152,38%,36%)}
body.view-progress .cell[data-progress="Mastered"]{background:hsl(152,40%,64%);border-left-color:var(--pine)}
body.view-progress .cell[data-bookmarked="1"]::after{content:"\2605";position:absolute;bottom:.25rem;right:.4rem;font-size:.7rem;color:var(--gold)}

/* ---------- view: Case-law density ---------- */
body.view-cases .cell{background:var(--card);border-left-color:var(--rule)}
body.view-cases .cell[data-cases="1"]{background:hsl(210,28%,90%);border-left-color:hsl(210,32%,55%)}
body.view-cases .cell[data-cases="2"]{background:hsl(210,32%,83%);border-left-color:hsl(211,36%,46%)}
body.view-cases .cell[data-cases="3"]{background:hsl(211,36%,74%);border-left-color:hsl(212,40%,38%)}
body.view-cases .cell[data-cases="4"]{background:hsl(212,40%,62%);border-left-color:hsl(213,44%,30%)}

/* ---------- section panel ---------- */
.panel{
  grid-column:1/-1;
  background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--gold);
  box-shadow:var(--shadow);border-radius:2px;
  margin:.35rem 0 .6rem;padding:1.2rem 1.4rem 1.4rem;
  animation:panelin .18s ease;
}
@keyframes panelin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.panel-head{display:flex;align-items:baseline;gap:.9rem;flex-wrap:wrap;margin-bottom:.4rem}
.panel-head h3{font-family:var(--slab);font-weight:700;font-size:1.25rem;margin:0}
.panel-head .pmeta{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;gap:1rem;flex-wrap:wrap}
.panel-head .close{margin-left:auto;background:none;border:1px solid var(--rule);border-radius:2px;cursor:pointer;font-family:var(--mono);font-size:.7rem;padding:.25rem .55rem;color:var(--muted)}
.prereq{
  font-size:.82rem;background:var(--paper);border:1px dashed var(--rule);border-radius:2px;
  padding:.45rem .7rem;margin:.5rem 0 .8rem;
}
.prereq b{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-right:.5rem}
.prereq a{margin:0 .1rem}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;border-bottom:1px solid var(--rule);margin:.6rem 0 .9rem}
.tabs button{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  background:none;border:none;border-bottom:2px solid transparent;padding:.45rem .6rem;cursor:pointer;color:var(--muted);
}
.tabs button.active{color:var(--ink);border-bottom-color:var(--gold)}
.tabpane[hidden]{display:none}
.label{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:1rem 0 .3rem;font-weight:500}
.label:first-child{margin-top:0}
.panel p{margin:.2rem 0 .6rem}
.bare-act{font-size:.95rem}
/* admin-authored HTML (sanitised server-side): bare act, explanations, case notes */
.rich{line-height:1.55}
.rich p{margin:.2rem 0 .6rem}
.rich ul,.rich ol{margin:.2rem 0 .7rem 1.3rem;padding:0}
.rich li{margin:0 0 .25rem}
.rich ol.a{list-style:lower-alpha}      /* (a), (b)... clauses as in the HTML bare-act source */
.rich ol.i{list-style:lower-roman}
.rich ol ol{margin-top:.25rem}
.rich .caps{font-variant:small-caps;letter-spacing:.04em}
.rich h2,.rich h3,.rich h4{font-family:var(--slab);margin:.8rem 0 .3rem;line-height:1.25}
.rich h2{font-size:1.15rem}.rich h3{font-size:1.05rem}.rich h4{font-size:.98rem}
.rich blockquote{border-left:3px solid var(--gold);margin:.5rem 0;padding:.2rem .9rem;color:var(--muted)}
.rich table{border-collapse:collapse;margin:.4rem 0 .8rem;font-size:.9rem}
.rich th,.rich td{border:1px solid var(--rule);padding:.25rem .5rem;text-align:left;vertical-align:top}
.rich pre,.rich code{font-family:var(--mono);font-size:.82rem}
.rich pre{background:var(--paper);padding:.5rem .7rem;overflow-x:auto}
.rich a{color:var(--pine)}
.rich[hidden]{display:none}
/* author classes usable on any block inside rich text: <p class="note">, <div class="explanation">, <p class="illustration"> */
.rich .note,.rich .explanation,.rich .illustration{
  padding:.55rem .9rem .55rem 1rem;margin:.5rem 0 .8rem;border-radius:2px;font-size:.92rem;line-height:1.5;
  border-left:3px solid var(--rule);background:var(--paper);
}
.rich .note::before,.rich .explanation::before,.rich .illustration::before{
  display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;margin:0 0 .25rem;
}
.rich .note{border-left-color:var(--gold);background:hsl(45,60%,95%)}
.rich .note::before{content:"Note";color:var(--gold)}
.rich .explanation{border-left-color:var(--pine-soft);background:hsl(150,25%,94%)}
.rich .explanation::before{content:"Explanation";color:var(--pine)}
.rich .illustration{border-left-color:hsl(215,34%,45%);background:hsl(215,28%,94%);font-style:italic}
.rich .illustration::before{content:"Illustration";color:hsl(215,34%,40%);font-style:normal}
.rich .illustration i,.rich .illustration em{font-style:normal}
.rich .note p,.rich .explanation p,.rich .illustration p{margin:0 0 .4rem}
.rich .note p:last-child,.rich .explanation p:last-child,.rich .illustration p:last-child{margin-bottom:0}
/* the same classes as inline spans: a subtle highlight instead of a block */
.rich span.note,.rich span.explanation,.rich span.illustration{display:inline;padding:0 .2rem;margin:0;border:none;border-radius:2px}
.rich span.note{background:hsl(45,60%,90%)}
.rich span.explanation{background:hsl(150,25%,90%)}
.rich span.illustration{background:hsl(215,28%,90%);font-style:italic}
.rich span.note::before,.rich span.explanation::before,.rich span.illustration::before{content:none}

/* ---------- dictionary terms (js/terms.js): dotted underline + definition popover ---------- */
.rich span.term[data-slug],.kw.term[data-slug]{
  text-decoration:underline dotted var(--pine-soft);text-decoration-thickness:1px;text-underline-offset:3px;cursor:help;
}
.rich span.term[data-slug]:hover,.rich span.term[data-slug]:focus-visible,.rich span.term.is-open,
.kw.term[data-slug]:hover,.kw.term.is-open{background:hsl(45,60%,90%);outline:none}
.term-pop{
  position:fixed;z-index:100;max-width:360px;background:var(--card);border-top:4px solid var(--gold);
  border-radius:2px;box-shadow:var(--shadow);padding:.7rem .9rem .6rem;font-size:.9rem;line-height:1.5;
}
.term-pop[hidden]{display:none}
.term-pop-head{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin:0 0 .35rem;padding-right:1.4rem;position:relative}
.term-pop-head b{font-family:var(--slab);font-size:1.05rem}
.term-pop-hi{color:var(--muted)}
.term-pop-lang{margin:0 0 0 auto}
.term-pop-lang[hidden]{display:none}
.term-pop-lang button{padding:.15rem .4rem;font-size:.62rem}
.term-pop-close{position:absolute;right:-.3rem;top:-.2rem;border:none;background:none;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--muted)}
.term-pop-close:hover{color:var(--ink)}
.term-pop .rich{max-height:40vh;overflow:auto;font-size:.9rem}
.term-pop .rich p{margin:.15rem 0 .45rem}
.term-pop[data-lang=en] .term-pop-hi-body,.term-pop[data-lang=hi] .term-pop-en{display:none}
.term-pop-foot{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;border-top:1px solid var(--rule);margin-top:.4rem;padding-top:.45rem;font-size:.8rem}
.term-pop-foot .relchip{margin:.1rem .2rem .1rem 0;font-size:.74rem}
.term-pop-more{margin-left:auto}
.term-pop-more a{color:var(--pine);font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:600px){
  .term-pop{left:8px!important;right:8px;top:auto!important;bottom:8px;max-width:none;box-shadow:0 -6px 24px rgba(16,28,23,.35)}
}
@media print{.term-pop{display:none!important}.rich span.term{text-decoration:none}}

/* ---------- masthead site nav + dictionary page ---------- */
.mast-nav{display:flex;gap:1.1rem;margin:0 0 1.1rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase}
.mast-nav a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid transparent}
.mast-nav a:hover{border-bottom-color:var(--gold-soft)}
.glossary{max-width:900px;margin:0 auto;padding:1.6rem 1.5rem 3rem}
.gl-tools{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:0 0 .8rem}
.gl-tools .finder{flex:1 1 260px;max-width:none}
.gl-tools select{font-family:var(--serif);font-size:.9rem;padding:.45rem .6rem;border:1px solid var(--rule);background:var(--card);border-radius:2px;color:var(--ink)}
.gl-tools .pq-langbar{margin:0}
.gl-count{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin-left:auto}
.gl-az{display:flex;flex-wrap:wrap;gap:.15rem;margin:0 0 1.4rem;font-family:var(--mono);font-size:.74rem}
.gl-az a,.gl-az span{display:inline-block;min-width:1.7rem;text-align:center;padding:.2rem .3rem;border:1px solid var(--rule);border-radius:2px;color:var(--pine);text-decoration:none;background:var(--card)}
.gl-az a:hover{border-color:var(--gold)}
.gl-az .off{color:var(--rule);border-color:transparent;background:none}
.gl-letter{margin:0 0 1.6rem}
.gl-letter[hidden]{display:none}
.gl-letter h2{font-family:var(--slab);font-size:1.4rem;color:var(--gold);border-bottom:1px solid var(--rule);margin:0 0 .6rem;padding-bottom:.2rem}
.gl-entry{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--pine-soft);border-radius:2px;padding:.8rem 1rem;margin:0 0 .7rem;scroll-margin-top:1rem}
.gl-entry[hidden]{display:none}
.gl-entry h3{font-family:var(--slab);font-size:1.1rem;margin:0 0 .3rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.gl-entry .gl-hi{font-weight:400;color:var(--muted)}
.gl-entry .kw{margin-left:auto}
.gl-alias{font-size:.8rem;color:var(--muted);margin:0 0 .4rem}
.gl-entry .rich{font-size:.92rem}
.gl-note summary{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--pine);cursor:pointer;margin:.2rem 0 .4rem}
.gl-secs,.gl-rel{font-size:.82rem;color:var(--muted);margin:.4rem 0 0}
.gl-rel a{color:var(--pine)}
.gl-entry.gl-hit{animation:glhit 1.4s ease 2}
@keyframes glhit{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 3px var(--gold)}}
@media(max-width:600px){.gl-count{margin-left:0}}

/* ---------- services page (Legal & Government Services directory) ---------- */
.services-page .masthead h1{font-size:clamp(1.6rem,4vw,2.5rem)}
.services{max-width:1180px;margin:0 auto;padding:1.6rem 1.5rem 3rem;min-height:50vh}
.sv-tools{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:0 0 .8rem}
.sv-tools .finder{flex:1 1 300px;max-width:none}
.sv-count{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin-left:auto}
.sv-index{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 1.4rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.sv-index a{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border:1px solid var(--rule);border-radius:2px;color:var(--pine);text-decoration:none;background:var(--card)}
.sv-index a:hover{border-color:var(--gold)}
.sv-index a.off{opacity:.35}
.sv-index .num{color:var(--gold);font-weight:600}
.sv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1rem}
.sv-cat{background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--gold);border-radius:2px;padding:1rem 1.2rem 1.1rem;box-shadow:var(--shadow);scroll-margin-top:1rem}
.sv-cat[hidden]{display:none}
.sv-cat h2{font-family:var(--slab);font-size:1.3rem;margin:0 0 .3rem;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;line-height:1.2}
.sv-cat h2 .num{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--gold);font-weight:600}
.sv-cat h2 .count{margin-left:auto;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:400}
.sv-blurb{font-size:.86rem;color:var(--muted);margin:0 0 .7rem;line-height:1.45}
.sv-list{list-style:none;margin:0;padding:0}
.sv-item{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:.2rem .8rem;padding:.5rem 0;border-top:1px solid var(--rule);font-size:.9rem;line-height:1.4}
.sv-item[hidden]{display:none}
.sv-item b{font-family:var(--slab);font-weight:600;color:var(--pine);font-size:1rem}
.sv-item span{color:var(--ink)}
.sv-cat.sv-hit{animation:glhit 1.4s ease 2}
.sv-none{font-size:.9rem;color:var(--muted);margin:1rem 0}
.sv-none[hidden]{display:none}
@media(max-width:600px){
  .sv-count{margin-left:0}
  .sv-grid{grid-template-columns:1fr}
  .sv-item{grid-template-columns:1fr}
}

/* ---------- study page (University -> Course -> Semester -> syllabus + papers) ---------- */
.study-page .masthead{padding-bottom:1.4rem}
.study-page .masthead h1{font-size:clamp(1.5rem,3.6vw,2.2rem)}
.study{max-width:1180px;margin:0 auto;padding:1.4rem 1.5rem 4rem;min-height:50vh}
.crumbs{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 1.2rem}
.crumbs a{color:var(--pine);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px}
.crumbs a:hover{border-bottom-color:var(--gold)}
.crumbs .sep{color:#b9b4a3;font-size:.9rem}
.crumbs .cur{color:var(--ink)}
.study h2{font-family:var(--slab);font-size:1.25rem;margin:1.2rem 0 .8rem;display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}
.study h2 .count{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400}
.pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}
.pick a{
  display:block;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--gold);border-radius:2px;
  padding:.9rem 1.1rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .08s ease,border-color .08s ease;
}
.pick a:hover{transform:translateY(-1px);border-left-color:var(--pine)}
.pick b{font-family:var(--slab);font-size:1.05rem;font-weight:600;display:block;margin:0 0 .2rem;line-height:1.25}
.pick small{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.pick.sem{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.pick .college{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--pine-soft);border-radius:2px;padding:.9rem 1.1rem;box-shadow:var(--shadow)}
.pick .college .site{display:block;margin-top:.35rem;font-family:var(--mono);font-size:.68rem;color:var(--pine);text-decoration:none;word-break:break-all}
.pick .college .site:hover{text-decoration:underline}
.pick.sem a{text-align:center;border-left-width:1px;border-top:3px solid var(--gold)}
.pick.sem a:hover{border-top-color:var(--pine)}
.sy-paper{background:var(--card);border:1px solid var(--rule);border-radius:2px;margin:0 0 .7rem;box-shadow:var(--shadow)}
.sy-paper summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:.2rem .9rem;align-items:center;padding:.8rem 1rem}
.sy-paper summary::-webkit-details-marker{display:none}
.sy-paper summary .code{font-family:var(--mono);font-size:.72rem;color:var(--pine);letter-spacing:.06em;grid-row:span 2;align-self:start;padding-top:.25rem}
.sy-paper h3{font-family:var(--slab);font-size:1.02rem;margin:0;font-weight:600}
.sy-paper .tags{display:flex;gap:.35rem;flex-wrap:wrap}
.sy-paper .tags span{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);border:1px solid var(--rule);padding:.12rem .45rem;border-radius:2px;color:var(--muted)}
.sy-paper .tags .opt{color:#8a6a12;background:rgba(230,199,106,.28);border-color:transparent}
/* Edit links into admin/Syllabus.aspx; study.js hides them unless the signed-in user may edit the course */
.sy-edit[hidden]{display:none}
.sy-edit{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-decoration:none;border:1px solid var(--gold-soft);border-radius:2px;padding:.12rem .5rem;font-weight:400}
.sy-edit:hover{background:var(--gold-soft);color:var(--ink)}
.study h2 .sy-edit{margin-left:auto}
.sy-paper[open] summary{border-bottom:1px solid var(--rule)}
.sy-body{padding:.6rem 1rem 1.1rem;font-size:.93rem}
.sy-body p{margin:.2rem 0 .6rem}
.sy-list{margin:0 0 .6rem 1.1rem;padding:0}
.sy-list li{margin:0 0 .2rem}
.sy-unit{display:grid;grid-template-columns:56px 1fr;gap:.6rem;margin:0 0 .8rem}
.sy-unit .num{font-family:var(--mono);font-size:.72rem;color:var(--gold);text-align:right;padding-top:.15rem}
.sy-unit .hrs{display:block;font-size:.6rem;color:var(--muted);letter-spacing:.06em}
.sy-unit h4{font-family:var(--slab);font-size:.98rem;margin:0 0 .25rem;font-weight:600}
.sy-unit ol{margin:0 0 0 1.1rem;padding:0}
.sy-unit li{margin:0 0 .15rem}
.sy-unit li.sub{list-style:none;color:var(--muted);margin-left:.6rem}
.sy-unit li.sub::before{content:"- ";color:var(--rule)}
.sy-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:.4rem}
.sy-cols ol{margin:0 0 0 1.1rem;padding:0;font-size:.88rem}
.sy-cols li{margin:0 0 .2rem}
.exam-group{margin:0 0 1.2rem}
.exam-group h3{font-family:var(--slab);font-size:1rem;margin:0 0 .45rem}
.exam-group h3 small{font-family:var(--mono);font-size:.66rem;color:var(--muted);font-weight:400}
.pq-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.8rem;align-items:center;background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:.55rem .9rem;margin:0 0 .4rem}
.pq-row code{font-family:var(--mono);font-size:.72rem;color:var(--pine)}
.pq-row .ans{font-family:var(--mono);font-size:.64rem;color:var(--muted);letter-spacing:.04em}
.pq-row button{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;padding:.35rem .7rem;border:1px solid var(--pine);background:transparent;color:var(--pine);border-radius:2px;cursor:pointer}
.pq-row button:hover{background:var(--pine);color:#f0efe6}
@media (max-width:600px){.pq-row{grid-template-columns:auto 1fr;grid-auto-rows:auto}.pq-row .ans{grid-column:2}.pq-row button{grid-column:2;justify-self:start}}

/* ---------- previous year papers ---------- */
[lang=hi]{font-family:"Noto Sans Devanagari","Mangal",var(--serif)}
.links.papers li{margin:0 0 .5rem;line-height:1.35}
.links.papers a{text-decoration:none;color:var(--ink)}
.links.papers a:hover{color:var(--pine)}
.links.papers code{font-family:var(--mono);font-size:.66rem;color:var(--gold);margin-right:.25rem}
.links.papers small{display:block;font-size:.72rem;color:var(--muted)}
.links .muted{font-size:.8rem;color:var(--muted)}
.pq-lang[data-lang=en] .hi,.pq-lang[data-lang=hi] .en{display:none}
.pq-langbar{display:inline-flex;gap:.3rem;margin:0 0 .6rem}
.pq-langbar button,.paper-tools button{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.35rem .6rem;border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:2px;cursor:pointer;
}
.pq-langbar button.active{background:var(--pine);border-color:var(--pine);color:#f0efe6}
.pq-item{border:1px solid var(--rule);border-radius:2px;background:var(--paper);padding:.7rem .9rem;margin:0 0 .7rem}
.pq-meta{font-family:var(--mono);font-size:.7rem;color:var(--muted);margin:0 0 .4rem}
.pq-meta code{font-family:inherit;color:var(--gold)}
.pq-meta a{margin-left:.5rem}
.pq-part{border-top:1px dashed var(--rule);padding:.6rem 0 .2rem;margin-top:.4rem}
.pq-item .pq-part:first-of-type{border-top:none;padding-top:.2rem;margin-top:0}
.pq-parthead{display:flex;align-items:baseline;gap:.6rem;font-size:.9rem}
.pq-marks{font-family:var(--mono);font-size:.66rem;color:var(--muted);margin-left:auto}
.pq-part p{margin:.2rem 0 .4rem}
.pq-part .hi,.pq-sub .hi{color:#3b463f}
.pq-sub{display:grid;grid-template-columns:auto 1fr;gap:.15rem .6rem;margin:.2rem 0 .3rem .6rem;font-size:.92rem}
.pq-sub code{font-family:var(--mono);font-size:.7rem;color:var(--muted);grid-row:span 2}
.pq-sub .hi{grid-column:2}
.pq-secs{margin:.3rem 0 .4rem}
.pq-toggle{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.35rem .7rem;border:1px solid var(--pine);background:transparent;color:var(--pine);border-radius:2px;cursor:pointer;margin:.2rem 0 .4rem;
}
.pq-toggle:hover{background:var(--pine);color:#f0efe6}
.pq-answer{border-left:3px solid var(--gold);background:var(--card);padding:.5rem .9rem;margin:.2rem 0 .6rem}
.pq-answer[hidden]{display:none}
.pq-noanswer{font-size:.78rem;font-style:italic;color:var(--muted)}
.paper-view{position:fixed;inset:0;z-index:80;background:rgba(16,28,23,.55);overflow-y:auto;padding:2rem 1rem}
.paper-sheet{max-width:900px;margin:0 auto;background:var(--card);border-top:6px solid var(--gold);box-shadow:var(--shadow);padding:1.6rem 2rem 2.4rem}
.paper-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding-bottom:1rem;margin-bottom:1rem}
.paper-head .crest{color:var(--gold);margin:0 0 .4rem}
.paper-head h2{font-family:var(--slab);font-size:1.4rem;margin:0 0 .4rem;line-height:1.2}
.paper-tools{display:flex;gap:.3rem;flex-wrap:wrap;align-items:flex-start}
.paper-tools .close{border-color:var(--pine)}
.pq-note{font-size:.86rem;background:var(--paper);border:1px dashed var(--rule);padding:.5rem .8rem;margin:0 0 1rem}
.pq-q{margin:0 0 1.4rem}
.pq-q h3{font-family:var(--slab);font-size:1.1rem;margin:0 0 .3rem;display:flex;gap:.6rem;align-items:baseline}
.pq-unit{font-family:var(--mono);font-size:.7rem;color:var(--muted);font-weight:400}
.pq-q .pq-marks{margin-left:auto}
.pq-instr{font-style:italic;color:var(--muted);margin:0 0 .4rem;font-size:.9rem}
body.paper-open{overflow:hidden}
@media print{
  body.paper-open>*:not(#paperView){display:none!important}
  .paper-view{position:static;background:none;padding:0;overflow:visible}
  .paper-sheet{box-shadow:none;max-width:none;padding:0}
  .paper-tools,.pq-toggle{display:none}
  .pq-answer[hidden]{display:none}
}
.unverified{font-size:.78rem;font-style:italic;color:var(--muted)}
.kw{display:inline-block;font-family:var(--mono);font-size:.68rem;background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:.1rem .45rem;margin:.12rem .18rem .12rem 0}
.relgroup{margin:0 0 .6rem}
.relchip{
  display:inline-block;margin:.15rem .25rem .15rem 0;padding:.2rem .55rem;
  font-size:.8rem;background:var(--paper);border:1px solid var(--rule);border-radius:2px;
  text-decoration:none;color:var(--ink);cursor:pointer;
}
.relchip:hover{border-color:var(--gold)}
.relchip code{font-family:var(--mono);font-size:.68rem;color:var(--pine);margin-right:.3rem}
.case-item,.q-item{border:1px solid var(--rule);border-radius:2px;background:var(--paper);padding:.7rem .9rem;margin:0 0 .6rem}
.case-item h4{font-family:var(--slab);margin:0 0 .2rem;font-size:1rem}
.case-item .cite{font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.q-item .opts{display:grid;gap:.3rem;margin:.5rem 0}
.q-item .opts button{
  text-align:left;font-family:var(--serif);font-size:.88rem;padding:.4rem .6rem;cursor:pointer;
  background:var(--card);border:1px solid var(--rule);border-radius:2px;
}
.q-item .opts button.correct{border-color:var(--pine);background:hsl(150,30%,88%)}
.q-item .opts button.wrong{border-color:hsl(0,46%,42%);background:hsl(0,36%,93%)}
.q-item .expl{font-size:.84rem;color:var(--muted)}
.panel-actions{display:flex;gap:.5rem;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:.8rem;margin-top:1rem}
.panel-actions button{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.45rem .8rem;border:1px solid var(--rule);background:var(--card);border-radius:2px;cursor:pointer;
}
.panel-actions button:hover{border-color:var(--pine-soft)}
.panel-actions button.primary{background:var(--pine);color:#f0efe6;border-color:var(--pine)}
.panel .signin-note{font-size:.78rem;color:var(--muted);font-style:italic}
.spinner{font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:#cdd7cf;margin-top:2rem;padding:2rem 1.5rem}
.footer .inner{max-width:1180px;margin:0 auto;font-size:.84rem}
.footer a{color:var(--gold-soft)}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .shell{grid-template-columns:1fr;gap:0}
  .rail{position:static;max-height:none;padding:1.2rem 0 0;overflow:visible}
  #legend{display:flex;flex-wrap:wrap;gap:.2rem .6rem}
  .chip{padding:.2rem .35rem}
  .cells{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
  .cell span{-webkit-line-clamp:2}
  .toolbar .inner{gap:.7rem}
  .findwrap{max-width:none;flex-basis:100%;margin-left:0}
}


/*LISTS*/
ul {
    list-style-type: square
}

    ul.flat {
        list-style-type: none;
        padding: 0;
        margin: 0
    }

/*CUSTOM LIST*/
ol:not([class='index']) {
    counter-reset: list;
}

    ol:not([class='index']) > li {
        list-style: none;
        position: relative;
    }

        ol:not([class='index']) > li:before {
            counter-increment: list;
            content: "(" counter(list,decimal) ") ";
            position: absolute;
            left: -1.4em;
        }

ol._ {
    counter-reset: inherit;
}

/*CUSTOM LIST*/
ol.i, ol.ii, ol.a, ol.aa {
    counter-reset: list;
}

    ol.i > li, ol.ii > li, ol.a > li, ol.aa > li {
        list-style: none;
        position: relative;
    }

        ol.i > li:before {
            counter-increment: list;
            content: "(" counter(list,lower-roman) ") ";
            position: absolute;
            left: -1.8em;
        }

        ol.ii > li:before {
            counter-increment: list;
            content: "(" counter(list,upper-roman) ") ";
            position: absolute;
            left: -1.8em;
        }

        ol.a > li:before {
            counter-increment: list;
            content: "(" counter(list,lower-alpha) ") ";
            position: absolute;
            left: -1.4em;
        }

        ol.aa > li:before {
            counter-increment: list;
            content: "(" counter(list,upper-alpha) ") ";
            position: absolute;
            left: -1.4em;
        }

ol, ul {
    padding-left: 1.5em
}

table ol, table ul {
    padding-left: 1em;
    font-size: inherit
}

ol > li > ol, ul > li > ul {
    padding-left: 1.25em;
    font-size: 95%
}

table ol > li > ol, table ul > li > ul {
    padding-left: 1.25em;
    font-size: inherit
}

ol li, ul li {
    padding: .25em 0;
}

ol > li > ol > li, ul > li > ul > li {
    padding: .25em 0
}

/*HEADINGS*/
h1 {
    font-size: 125%
}

h2 {
    font-size: 115%
}

h3 {
    font-size: 100%
}

h4 {
    font-size: 95%
}

h5 {
    font-size: 90%
}

h6 {
    font-size: 90%
}



/*MEDIA*/
@media all and (min-width:641px) {

    ol.index {
        list-style-type: none;
        margin: 0;
        padding: 0
    }

        ol.index li {
            border-radius: .25em;
            display: inline-table;
            margin: .5em;
            box-shadow: 0 0px 6px #333333;
            text-align: center;
            text-shadow: 0 1px 1px ghostwhite;
            background: #333333;
            background: linear-gradient(top,#222222 0%, #333333 100%);
        }
            ol.index li a {
                display: block;
                width: 4.8em;
                height: 8em;
                padding: 1em;
                color: ivory;
                text-shadow: 0 0px 4px #000000;
                background: url('/images/logo_small_light.png') 50px 120px no-repeat;
            }

        ol.index a:hover, ol.index a:focus {
            text-shadow: 0 1px 2px black
        }

        ol.index li:hover, ol.index li:focus {
            outline: none;
            cursor: pointer;
            box-shadow: 0 -4px 12px;
            opacity: 0.8
        }

        ol.index li:active {
            outline: none;
            box-shadow: 0 0px 3px
        }

            ol.index li:active a {
                color: ghostwhite;
            }
}

@media all and (max-width:640px) {
    ol.index {
        list-style-image: url("/images/right52.gif")
    }

        ol.index li {
            white-space: nowrap;
            text-overflow: ellipsis
        }

            ol.index li a {
                display: block;
                opacity: 0.8
            }

                ol.index li a:hover {
                    opacity: 1
                }

                ol.index li a:active {
                    opacity: 1
                }
}
/* ---------- lectures (Lecture.aspx + js/lecture.js): read mode ---------- */
.lecture-page .masthead h1{font-size:clamp(1.5rem,3.6vw,2.2rem)}
.lecture{max-width:920px;margin:0 auto;padding:1.4rem 1.5rem 4rem;min-height:50vh}
.muted{color:var(--muted)}
.lec-note{font-size:.95rem;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--gold);padding:.8rem 1rem;margin:1rem 0}
.lec-note.signin{border-left-color:var(--pine)}
.lec-crumb{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem}
.lec-crumb a{color:var(--pine);text-decoration:none;border-bottom:1px solid transparent}
.lec-crumb a:hover{border-bottom-color:var(--gold)}
.lec-crumb .sep{color:#b9b4a3;font-size:.9rem}
.lec-meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .8rem}
.lec-badge.draft{color:#8a6a12;background:rgba(230,199,106,.28);padding:.1rem .5rem;border-radius:2px}
.lec-tools{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:0 0 1.4rem}
.lec-tools button,.lec-done button{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.45rem .8rem;border:1px solid var(--pine);background:transparent;color:var(--pine);border-radius:2px;cursor:pointer;
}
.lec-tools button:hover,.lec-done button:hover{background:var(--pine);color:#f0efe6}
.lec-tools button:first-child,.lec-done button.done{background:var(--pine);color:#f0efe6}
.lec-block,.lec-slide{background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:1rem 1.2rem;margin:0 0 1rem;box-shadow:var(--shadow)}
.lec-slide{border-left:3px solid var(--gold)}
.lec-block h3,.lec-slide h3{font-family:var(--slab);font-size:1.15rem;margin:0 0 .6rem;display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.lec-slide h3 .num{font-family:var(--mono);font-size:.68rem;color:var(--gold);letter-spacing:.12em}
.lec-objectives ol,.lec-takeaways ul{margin:0 0 0 1.2rem;padding:0}
.lec-objectives li,.lec-takeaways li{margin:0 0 .25rem}
.lec-secs{margin:.4rem 0 .8rem}
.lec-secs .label{display:inline-block;margin:0 .5rem 0 0}
.lec-fig{margin:.2rem 0 .8rem}
.lec-fig img{max-width:100%;border:1px solid var(--rule);border-radius:2px;background:#fff}
.lec-fig figcaption{font-size:.8rem;color:var(--muted);font-style:italic;margin-top:.3rem}
.lec-quiz .q-item{border-top:1px dashed var(--rule);padding:.6rem 0 .2rem}
.lec-quiz .q-item:first-of-type{border-top:none;padding-top:0}
.q-text{margin:.2rem 0 .3rem}
.lec-qa-tools{margin-left:auto;display:inline-flex;gap:.3rem}
.lec-qa-tools .pq-toggle{margin:0}
.lec-q{margin:.2rem 0 .3rem}
.lec-links{margin:0 0 .6rem 1.1rem;padding:0;font-size:.92rem}
.lec-links li{margin:0 0 .25rem}
.lec-books-wrap{overflow-x:auto}
.lec-books{border-collapse:collapse;font-size:.88rem;width:100%}
.lec-books th,.lec-books td{border:1px solid var(--rule);padding:.3rem .5rem;text-align:left;vertical-align:top}
.lec-books th{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
.lec-done{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.4rem 0 0;font-size:.86rem}
/* Study page: lecture rows reuse .pq-row */
.pq-row.lec small.opt{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:#8a6a12;background:rgba(230,199,106,.28);padding:.1rem .4rem;border-radius:2px;margin-left:.4rem}
.pq-row.lec .ans .done{color:var(--pine)}
.pq-row.lec span>small.ans{display:block}
.exam-group h3 code{font-family:var(--mono);font-size:.72rem;color:var(--pine);margin-right:.3rem}
.exam-group h3 .sy-edit{margin-left:.6rem}
@media print{
  .lecture-page .masthead,.lecture-page .footer,.lec-tools,.lec-done,.lec-qa-tools,.lecture-page .pq-toggle,.lecture-page .deck-reveal{display:none}
  .lecture-page .pq-answer[hidden],.lecture-page .expl[hidden]{display:block}
  .lec-block,.lec-slide{box-shadow:none;break-inside:avoid}
}

/* ---------- lectures: Present mode (body.presenting, #deck built by js/lecture.js) ---------- */
body.presenting{overflow:hidden;background:#0f1d17}
body.presenting>*:not(#deck){display:none!important}
#deck{position:fixed;inset:0;z-index:90;display:grid;grid-template-rows:1fr auto;grid-template-columns:1fr;background:#0f1d17;color:#f0efe6}
body.deck-notes-on #deck{grid-template-columns:1fr minmax(260px,32%)}
.deck-stage{grid-row:1;grid-column:1;overflow:auto;padding:clamp(1.2rem,4vw,3.5rem);display:flex;align-items:center;justify-content:center}
.deck-notes{grid-row:1;grid-column:2;overflow:auto;background:#182d24;border-left:1px solid rgba(255,255,255,.12);padding:1.2rem 1.4rem;font-size:.95rem;color:#e6e4d8}
.deck-notes[hidden]{display:none}
.deck-notes .rich{color:#e6e4d8}
.deck-bar{grid-row:2;grid-column:1/-1;display:flex;align-items:center;gap:.7rem;padding:.5rem 1rem;background:#0a1510;border-top:1px solid rgba(255,255,255,.12);font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#b9c4bd}
.deck-bar .deck-title{color:var(--gold-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%}
.deck-progress{flex:1;height:3px;background:rgba(255,255,255,.12);border-radius:2px;overflow:hidden;min-width:60px}
.deck-progress i{display:block;height:100%;background:var(--gold);width:0;transition:width .2s}
.deck-bar button{font:inherit;color:#f0efe6;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:2px;padding:.3rem .6rem;cursor:pointer}
.deck-bar button:hover{border-color:var(--gold);color:var(--gold-soft)}
.deck-slide{width:100%;max-width:1100px;font-size:clamp(1.05rem,1.6vw,1.45rem);line-height:1.5}
.deck-slide h1{font-family:var(--slab);font-size:clamp(2rem,5vw,3.6rem);line-height:1.1;margin:0 0 1.2rem;color:#fff}
.deck-slide h2{font-family:var(--slab);font-size:clamp(1.6rem,3.6vw,2.6rem);line-height:1.15;margin:0 0 1rem;color:#fff;border-bottom:2px solid var(--gold);padding-bottom:.5rem}
.deck-kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 .8rem}
.deck-list{margin:0 0 0 1.4rem;padding:0}
.deck-list li{margin:0 0 .5rem}
.deck-body{display:grid;gap:1.5rem}
.deck-body.has-fig{grid-template-columns:3fr 2fr;align-items:start}
.deck-fig{margin:0}
.deck-fig img{max-width:100%;max-height:60vh;border-radius:2px;background:#fff}
.deck-fig figcaption{font-size:.8rem;color:#b9c4bd;margin-top:.4rem;font-style:italic}
.deck-slide .rich{color:#e6e4d8}
.deck-slide .rich a{color:var(--gold-soft)}
.deck-slide .rich .note,.deck-slide .rich .explanation,.deck-slide .rich .illustration{color:var(--ink)}
.deck-slide .rich blockquote{color:#c9d2cc}
.deck-slide .rich th,.deck-slide .rich td{border-color:rgba(255,255,255,.25)}
.deck-slide .label{color:var(--gold);margin-top:1rem}
.deck-slide .lec-secs{margin-top:1.2rem}
.deck-slide .relchip{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#f0efe6}
.deck-slide .relchip code{color:var(--gold-soft)}
.deck-slide .q-item .opts{gap:.5rem;margin:1rem 0}
.deck-slide .q-item .opts button{font-size:1em;color:#f0efe6;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.25);text-align:left;padding:.6rem .9rem;border-radius:2px;cursor:pointer;font-family:inherit}
.deck-slide .q-item .opts button code{color:var(--gold-soft);margin-right:.4rem;font-family:var(--mono);font-size:.85em}
.deck-slide .q-item .opts button.correct{background:hsl(150,30%,28%);border-color:hsl(150,40%,55%)}
.deck-slide .q-item .opts button.wrong{background:hsl(0,36%,30%);border-color:hsl(0,46%,55%)}
.deck-slide .q-item .expl{color:#c9d2cc;font-size:.9em}
.deck-actions{margin:1rem 0 0}
.deck-reveal,.deck-slide .pq-toggle{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);background:transparent;border:1px solid var(--gold);border-radius:2px;padding:.45rem .9rem;cursor:pointer;margin:0}
.deck-reveal:hover,.deck-slide .pq-toggle:hover{background:var(--gold);color:var(--ink)}
.deck-reveal[hidden]{display:none}
.deck-slide .pq-answer{background:rgba(255,255,255,.06);border-left-color:var(--gold);color:#e6e4d8;font-size:.95em;margin-top:.8rem}
.deck-slide .lec-links{list-style:none;margin:0;padding:0}
.deck-slide .lec-links li{margin:0 0 .5rem}
.deck-slide .lec-links a{color:var(--gold-soft)}
.deck-slide .term-pop{color:var(--ink)}
@media(max-width:700px){
  .deck-body.has-fig{grid-template-columns:1fr}
  body.deck-notes-on #deck{grid-template-columns:1fr}
  .deck-notes{display:none}
  .deck-bar .deck-title{display:none}
  .deck-stage{padding:1rem;align-items:flex-start}
}

/* ---------- courts page (Courts.aspx: judicial hierarchy tree + detail panel) ---------- */
.courts-page .masthead h1{font-size:clamp(1.5rem,3.6vw,2.2rem)}
.courts{max-width:1180px;margin:0 auto;padding:1.4rem 1.5rem 4rem;min-height:50vh}
.ct-tools{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem}
.ct-tools .finder{flex:1 1 240px;max-width:none}
.ct-tools select{font-family:var(--serif);font-size:.9rem;padding:.45rem .6rem;border:1px solid var(--rule);background:var(--card);border-radius:2px;color:var(--ink);max-width:200px}
.ct-check{font-size:.84rem;display:inline-flex;gap:.3rem;align-items:center;color:var(--muted)}
.ct-tools button{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:.42rem .6rem;border:1px solid var(--rule);background:var(--card);border-radius:2px;cursor:pointer;color:var(--pine)}
.ct-tools button:hover{border-color:var(--gold)}
.ct-count{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin-left:auto}
.ct-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:1.2rem;align-items:start}
.ct-tree{background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:.8rem 1rem 1rem;box-shadow:var(--shadow)}
.ct-root{font-family:var(--slab);font-size:1.25rem;margin:0 0 .4rem;display:flex;gap:.6rem;align-items:baseline}
.ct-root small{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ct-tree ul{list-style:none;margin:0;padding:0 0 0 1.1rem;border-left:1px solid var(--rule)}
.ct-tree>ul{padding-left:0;border-left:none}
.ct-node>ul,.ct-group>ul{display:none}
.ct-node.open>ul,.ct-group.open>ul{display:block}
.ct-node[hidden],.ct-group[hidden]{display:none}
.ct-group{margin:0 0 .5rem}
.ct-row{display:flex;align-items:center;gap:.45rem;padding:.22rem .35rem;border-radius:2px;flex-wrap:wrap;scroll-margin-top:1rem}
.ct-row:hover{background:var(--paper)}
.ct-row.sel{background:hsl(150,25%,92%);box-shadow:inset 3px 0 0 var(--gold)}
.ct-tog{width:1.3rem;height:1.3rem;flex:none;border:1px solid var(--rule);background:var(--card);border-radius:2px;cursor:pointer;font-family:var(--mono);font-size:.72rem;line-height:1;color:var(--pine);display:inline-flex;align-items:center;justify-content:center;padding:0}
.ct-tog::before{content:"+"}
.open>.ct-row>.ct-tog::before{content:"\2013"}
.ct-tog.leaf{visibility:hidden}
.ct-name{color:var(--ink);text-decoration:none;font-size:.95rem}
.ct-name:hover{color:var(--pine);text-decoration:underline}
.ct-gname{font-family:var(--slab);font-weight:600;font-size:1.05rem}
.ct-group>.ct-row small,.ct-city{font-family:var(--mono);font-size:.62rem;color:var(--muted);letter-spacing:.04em}
.ct-dim>.ct-row .ct-name{color:var(--muted)}
.ct-tree .kw{font-size:.6rem;padding:.05rem .4rem;margin:0}
.kw[data-level=NATIONAL]{background:hsl(45,60%,90%);border-color:var(--gold)}
.kw[data-level=STATE]{background:hsl(150,25%,90%);border-color:var(--pine-soft)}
.kw[data-level=DISTRICT]{background:hsl(25,50%,92%);border-color:hsl(25,50%,60%)}
.kw[data-level=TRIBUNAL]{background:hsl(215,28%,92%);border-color:hsl(215,34%,60%)}
.kw[data-level=SPECIAL]{background:hsl(280,25%,93%);border-color:hsl(280,25%,60%)}
.kw[data-status=Historical]{background:#eee;border-style:dashed;color:var(--muted)}
.ct-row.ct-hit{animation:glhit 1.4s ease 2}
.ct-detail{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--gold);border-radius:2px;padding:1rem 1.2rem 1.2rem;box-shadow:var(--shadow)}
.ct-detail h2{font-family:var(--slab);font-size:1.3rem;margin:.2rem 0 .5rem;line-height:1.2}
.ct-detail .crumbs{margin:0 0 .4rem;font-size:.64rem}
.ct-short{font-family:var(--mono);font-size:.68rem;color:var(--muted);font-weight:400;letter-spacing:.06em}
.ct-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 .8rem}
.ct-badges .kw{margin:0}
.ct-meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem .8rem;margin:0 0 .6rem;font-size:.9rem}
.ct-meta dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding-top:.3rem}
.ct-meta dd{margin:0;overflow-wrap:anywhere}
.ct-meta code{font-family:var(--mono);font-size:.74rem;color:var(--pine)}
.ct-detail h3{font-family:var(--slab);font-size:1rem;margin:.9rem 0 .35rem;display:flex;gap:.5rem;align-items:baseline}
.ct-detail h4{font-family:var(--slab);font-size:.95rem;margin:.6rem 0 .1rem;font-weight:600}
.ct-addr{font-size:.82rem;color:var(--muted);margin:0 0 .3rem}
.ct-table{border-collapse:collapse;width:100%;font-size:.86rem;margin:0 0 .5rem}
.ct-table th,.ct-table td{border:1px solid var(--rule);padding:.25rem .45rem;text-align:left;vertical-align:top}
.ct-table th{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
.ct-detail .rich{font-size:.92rem}
.ct-detail .empty{padding:1rem 0}
.ct-share{font-family:var(--mono);font-size:.62rem;color:var(--muted);word-break:break-all;margin:.9rem 0 0;border-top:1px dashed var(--rule);padding-top:.5rem}
@media(max-width:900px){.ct-layout{grid-template-columns:1fr}.ct-detail{position:static;max-height:none}.ct-count{margin-left:0}.ct-tools select{max-width:none}}

/* ---------- cases page (Cases.aspx: case-law list + detail panel; js/cases.js) ---------- */
.cases-page .masthead h1{font-size:clamp(1.5rem,3.6vw,2.2rem)}
.cases{max-width:1180px;margin:0 auto;padding:1.4rem 1.5rem 4rem;min-height:50vh}
.cs-tools{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem}
.cs-tools .finder{flex:1 1 240px;max-width:none}
.cs-tools select{font-family:var(--serif);font-size:.9rem;padding:.45rem .6rem;border:1px solid var(--rule);background:var(--card);border-radius:2px;color:var(--ink);max-width:220px}
.cs-years{display:inline-flex;gap:.3rem}
.cs-years input{font-family:var(--mono);font-size:.8rem;width:5.2rem;padding:.42rem .5rem;border:1px solid var(--rule);background:var(--card);border-radius:2px;color:var(--ink)}
.cs-count{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin-left:auto}
.cs-layout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:1.2rem;align-items:start}
.cs-listbox{background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:.8rem 1rem 1rem;box-shadow:var(--shadow)}
.cs-root{font-family:var(--slab);font-size:1.25rem;margin:0 0 .4rem;display:flex;gap:.6rem;align-items:baseline}
.cs-root small{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cs-list{list-style:none;margin:0;padding:0}
.cs-item{padding:.55rem .5rem;border-bottom:1px solid var(--rule);border-radius:2px;scroll-margin-top:1rem}
.cs-item:last-child{border-bottom:none}
.cs-item:hover{background:var(--paper)}
.cs-item.sel{background:hsl(150,25%,92%);box-shadow:inset 3px 0 0 var(--gold)}
.cs-item[hidden]{display:none}
.cs-item.cs-hit{animation:glhit 1.4s ease 2}
.cs-item .empty{padding:.5rem 0}
.cs-name{font-family:var(--slab);font-size:1.02rem;color:var(--ink);text-decoration:none;margin-right:.4rem}
.cs-name:hover{color:var(--pine);text-decoration:underline}
.cs-item .kw{font-size:.6rem;padding:.05rem .4rem;margin:0 .2rem 0 0;vertical-align:middle}
.cs-cite{font-family:var(--mono);font-size:.68rem;color:var(--muted);margin:.15rem 0 0}
.cs-cite a{color:var(--pine)}
.cs-principle{font-size:.86rem;margin:.2rem 0 0;color:var(--ink);font-style:italic}
.kw[data-imp=landmark]{background:hsl(45,60%,90%);border-color:var(--gold);color:var(--ink)}
.kw[data-imp=important]{background:hsl(150,25%,90%);border-color:var(--pine-soft)}
.kw[data-status]:not([data-status="Good law"]):not([data-status=Historical]){border-style:dashed;color:#a33;background:hsl(0,36%,95%)}
.cs-detail{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--gold);border-radius:2px;padding:1rem 1.2rem 1.2rem;box-shadow:var(--shadow)}
.cs-detail h2{font-family:var(--slab);font-size:1.3rem;margin:.2rem 0 .3rem;line-height:1.2}
.cs-detail .crumbs{margin:0 0 .4rem;font-size:.64rem}
.cs-detail .cs-cite{font-size:.72rem;margin:0 0 .6rem}
.cs-short{font-family:var(--mono);font-size:.68rem;color:var(--muted);font-weight:400;letter-spacing:.06em}
.cs-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 .8rem}
.cs-badges .kw{margin:0}
.cs-meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem .8rem;margin:0 0 .6rem;font-size:.9rem}
.cs-meta dt{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding-top:.3rem}
.cs-meta dd{margin:0;overflow-wrap:anywhere}
.cs-meta .kw{font-size:.66rem}
.cs-meta .relchip{font-size:.78rem;padding:.12rem .45rem}
.cs-muted{color:var(--muted)}
.cs-dissent{color:#a33}
.cs-detail h3{font-family:var(--slab);font-size:1rem;margin:.9rem 0 .35rem;display:flex;gap:.5rem;align-items:baseline}
.cs-detail .rich{font-size:.92rem}
.cs-detail .empty{padding:1rem 0}
.cs-issues{margin:0 0 .4rem 1.1rem;padding:0;font-size:.9rem}
.cs-issues li{margin:0 0 .2rem}
.cs-principle-box{border-left:3px solid var(--gold);background:hsl(45,60%,95%);padding:.5rem .9rem;margin:.6rem 0;font-size:.95rem}
.cs-principle-box .label{display:block;margin:0 0 .2rem}
.cs-rel{margin:0 0 .5rem}
.cs-rel .label{display:block;margin:0 0 .2rem}
.cs-reldesc{font-size:.82rem;color:var(--muted);margin:.2rem 0 0}
.cs-share{font-family:var(--mono);font-size:.62rem;color:var(--muted);word-break:break-all;margin:.9rem 0 0;border-top:1px dashed var(--rule);padding-top:.5rem}
.case-item h4 a{color:inherit;text-decoration:none}
.case-item h4 a:hover{color:var(--pine);text-decoration:underline}
.case-item .cite a{color:var(--pine);text-decoration:none}
.case-item .cite a:hover{text-decoration:underline}
.case-item .kw{font-size:.6rem;padding:.05rem .4rem;vertical-align:middle}
.pq-cases,.lec-cases{margin:.3rem 0 0}
.lec-cases .label{margin-right:.4rem}
@media(max-width:900px){.cs-layout{grid-template-columns:1fr}.cs-detail{position:static;max-height:none}.cs-count{margin-left:0}.cs-tools select{max-width:none}}

/* ---------- question widgets (js/bank.js: the map panel, the lectures, the Practice page, the admin preview) ---------- */
.bq{margin:0 0 .8rem}
.bq-head{display:flex;flex-wrap:wrap;gap:.6rem;align-items:baseline;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem}
.bq-n{color:var(--gold);font-weight:600}
.bq-marks,.bq-diff{margin-left:auto}
.bq-diff{letter-spacing:.05em;color:var(--pine-soft)}
.bq-text{font-size:1.02rem;margin:0 0 .8rem}
.bq-text .bq-t{margin:0 0 .3rem}
.bq-text .bq-t:last-child{margin-bottom:0}
.bq-ar{border-left:3px solid var(--rule);padding:.2rem 0 .2rem .8rem;margin:.6rem 0 0;font-size:.98rem}
.bq-ar p{margin:0 0 .3rem}
.bq-blank{display:inline-block;min-width:5rem;border-bottom:2px solid var(--pine);color:transparent;user-select:none}
.bq-opts{display:grid;gap:.45rem;margin:0 0 .6rem}
.bq-opt{
  display:grid;grid-template-columns:1.8rem 1fr;align-items:center;gap:.2rem;min-height:48px;width:100%;
  text-align:left;font-family:var(--serif);font-size:1rem;padding:.55rem .8rem;cursor:pointer;
  background:var(--card);border:1px solid var(--rule);border-radius:2px;color:var(--ink);
}
.bq-opts.multi .bq-opt{grid-template-columns:1.2rem 1.8rem 1fr}
.bq-opt code{font-family:var(--mono);font-size:.8rem;color:var(--pine);font-weight:600}
.bq-opt:hover{border-color:var(--gold)}
.bq-opt[aria-checked=true]{border-color:var(--pine);box-shadow:inset 3px 0 0 var(--pine);background:hsl(150,22%,95%)}
.bq-opt.correct{border-color:var(--pine);background:hsl(150,30%,88%)}
.bq-opt.wrong{border-color:hsl(0,46%,42%);background:hsl(0,36%,93%)}
.bq-opt.missed{border-style:dashed;border-color:var(--pine)}
.bq-opt:disabled,.bq[data-locked] .bq-opt{cursor:default;opacity:1}
.bq-optext .bq-t{display:block;margin:0}
.bq-fillwrap{margin:0 0 .6rem}
.bq-fill{font-family:var(--serif);font-size:1.05rem;padding:.6rem .8rem;width:min(100%,420px);border:1px solid var(--rule);border-radius:2px;background:var(--card);color:var(--ink)}
.bq-fill.ok{border-color:var(--pine);background:hsl(150,30%,92%)}
.bq-fill.bad{border-color:hsl(0,46%,42%);background:hsl(0,36%,95%)}
.bq-accepted{font-size:.84rem;color:var(--pine);margin:.3rem 0 0}
.bq-match{width:100%;border-collapse:collapse;margin:0 0 .6rem}
.bq-match td{border-top:1px solid var(--rule);padding:.5rem .4rem;vertical-align:middle;font-size:.95rem}
.bq-match tr:first-child td{border-top:none}
.bq-match .bq-left code{font-family:var(--mono);font-size:.78rem;color:var(--pine);margin-right:.4rem}
.bq-match .bq-pick{width:45%}
.bq-sel{width:100%;min-height:44px;font-family:var(--serif);font-size:.95rem;padding:.4rem .5rem;border:1px solid var(--rule);border-radius:2px;background:var(--card);color:var(--ink)}
.bq-match tr.ok td{background:hsl(150,30%,93%)}
.bq-match tr.bad td{background:hsl(0,36%,96%)}
.bq-fix{font-size:.82rem;color:var(--pine);font-style:italic}
.bq-answer{width:100%;font-family:var(--serif);font-size:1rem;line-height:1.5;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:2px;background:var(--card);color:var(--ink)}
.bq-hintwrap{margin:.2rem 0 .6rem}
.bq-hintbtn{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px dashed var(--rule);border-radius:2px;padding:.3rem .6rem;cursor:pointer;color:var(--muted)}
.bq-hintbtn:hover{border-color:var(--gold);color:var(--pine)}
.bq-hint{font-size:.9rem;font-style:italic;color:var(--pine)}
.bq-verdict{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin:.7rem 0 .3rem;font-weight:600}
.bq-verdict.correct{color:var(--pine)}
.bq-verdict.wrong{color:#a33}
.bq-verdict.partial{color:var(--gold)}
.bq-verdict.self{color:var(--muted)}
.bq-model,.bq-expl{font-size:.94rem;border-left:3px solid var(--gold);background:hsl(45,60%,96%);padding:.5rem .9rem;margin:.4rem 0}
.bq-model .bq-t,.bq-expl .bq-t{margin:0 0 .4rem}
.bq-keypoints{margin:.3rem 0 0 1.1rem;padding:0;font-size:.9rem}
.bq-keypoints li{margin:0 0 .2rem}
.bq-self{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.5rem 0}
.bq-selfbtn{
  font-family:var(--serif);font-size:.92rem;min-height:44px;padding:.4rem .9rem;cursor:pointer;
  background:var(--card);border:1px solid var(--rule);border-radius:2px;color:var(--ink);
}
.bq-selfbtn small{font-family:var(--mono);font-size:.66rem;color:var(--muted);margin-left:.3rem}
.bq-selfbtn:hover{border-color:var(--gold)}
.bq-selfbtn.on{border-color:var(--pine);background:hsl(150,28%,90%)}
.bq-links{margin:.5rem 0 0;font-size:.9rem}
.bq-links .label{display:inline-block;margin-right:.5rem}
/* dark deck variants (Present mode) */
.deck-slide .bq{max-width:none}
.deck-slide .bq-head{color:#9fb0a6}
.deck-slide .bq-text{font-size:clamp(1.1rem,2.4vw,1.8rem);color:#f0efe6}
.deck-slide .bq-opt{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2);color:#f0efe6;font-size:clamp(1rem,1.8vw,1.3rem);min-height:56px}
.deck-slide .bq-opt code{color:var(--gold-soft)}
.deck-slide .bq-opt.correct{background:hsl(150,30%,28%);border-color:hsl(150,40%,55%)}
.deck-slide .bq-opt.wrong{background:hsl(0,36%,30%);border-color:hsl(0,46%,55%)}
.deck-slide .bq-opt.missed{border-style:dashed;border-color:hsl(150,40%,55%)}
.deck-slide .bq-model,.deck-slide .bq-expl{background:rgba(255,255,255,.07);border-left-color:var(--gold-soft);color:#e6e4d8}
.deck-slide .bq-match td{border-color:rgba(255,255,255,.2);color:#f0efe6}
.deck-slide .bq-verdict.correct{color:var(--gold-soft)}

/* ---------- practice tests (Practice.aspx + js/practice.js) ---------- */
.practice-page .masthead h1{font-size:clamp(1.5rem,3.6vw,2.2rem)}
.practice{max-width:1180px;margin:0 auto;padding:1.4rem 1.5rem 4rem;min-height:50vh}
.pr-home{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:1.2rem;align-items:start}
.pr-build,.pr-side>section,.pr-joinbox{background:var(--card);border:1px solid var(--rule);border-radius:2px;box-shadow:var(--shadow);padding:1rem 1.2rem 1.2rem}
.pr-build{border-top:3px solid var(--gold)}
.pr-build h2,.pr-side h2,.pr-joinbox h2{font-family:var(--slab);font-size:1.15rem;margin:0 0 .6rem}
.pr-side{display:grid;gap:1.2rem}
.pr-joinbox{grid-column:1/-1}
.pr-joinbox p{margin:0 0 .5rem;font-size:.88rem;color:var(--muted)}
.pr-joinbox input{font-family:var(--mono);font-size:1.5rem;letter-spacing:.3em;text-transform:uppercase;width:8.5rem;text-align:center;padding:.5rem;border:1px solid var(--rule);border-radius:2px;background:var(--paper);color:var(--ink)}
.pr-tabs{display:flex;flex-wrap:wrap;gap:.3rem;border-bottom:1px solid var(--rule);margin:0 0 .9rem}
.pr-tabs button{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem .7rem;cursor:pointer;
  background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);
}
.pr-tabs button[aria-selected=true]{color:var(--pine);border-bottom-color:var(--gold);font-weight:600}
.pr-scope,.pr-optrow,.pr-typerow{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:0 0 .8rem}
.pr-typerow{align-items:center;gap:.4rem}
.pr-field{display:flex;flex-direction:column;gap:.2rem;min-width:150px}
.pr-field.pr-wide{flex:1 1 100%}
.pr-field label{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.pr-field label small{text-transform:none;letter-spacing:0;color:var(--muted)}
.pr-field select,.pr-field input[type=text],.pr-field input[type=search]{font-family:var(--serif);font-size:.9rem;padding:.45rem .6rem;border:1px solid var(--rule);border-radius:2px;background:var(--card);color:var(--ink);max-width:100%}
.pr-field select[multiple]{min-height:8rem}
.pr-check{font-size:.84rem;display:inline-flex;gap:.3rem;align-items:center;color:var(--muted);padding-bottom:.4rem}
.pr-chip{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .6rem;cursor:pointer;
  background:var(--paper);border:1px solid var(--rule);border-radius:2px;color:var(--muted);
}
.pr-chip[aria-pressed=true]{background:var(--pine);border-color:var(--pine);color:#f0efe6}
.pr-chip.group{border-style:dashed}
.pr-chip:hover{border-color:var(--gold)}
.pr-chips{display:inline-flex;flex-wrap:wrap;gap:.25rem}
.pr-avail{font-family:var(--mono);font-size:.7rem;color:var(--pine);margin:.2rem 0 .8rem}
.pr-avail.none{color:#a33}
.pr-modenote{font-size:.84rem;color:var(--muted);margin:0 0 .6rem;max-width:70ch}
.pr-revnote{font-size:.9rem;margin:0 0 .6rem}
.pr-start{
  font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  padding:.7rem 1.4rem;min-height:44px;cursor:pointer;background:var(--pine);color:#f0efe6;border:1px solid var(--pine);border-radius:2px;
}
.pr-start:hover{background:var(--pine-soft)}
.pr-start:disabled{opacity:.6;cursor:default}
.pr-start.small{padding:.45rem .9rem;font-size:.64rem}
.pr-mini{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .5rem;cursor:pointer;background:var(--paper);border:1px solid var(--rule);border-radius:2px;color:var(--pine)}
.pr-mini:hover{border-color:var(--gold)}
.pr-msg{font-size:.84rem;color:#a33;margin:.3rem 0 0}
.pr-caselist{display:grid;gap:.2rem;max-height:14rem;overflow:auto;border:1px solid var(--rule);border-radius:2px;padding:.3rem;background:var(--paper)}
.pr-caseopt{text-align:left;font-family:var(--serif);font-size:.9rem;padding:.35rem .5rem;cursor:pointer;background:var(--card);border:1px solid transparent;border-radius:2px;color:var(--ink)}
.pr-caseopt small{display:block;font-family:var(--mono);font-size:.64rem;color:var(--muted)}
.pr-caseopt:hover{border-color:var(--gold)}
.pr-caseopt.on{border-color:var(--pine);background:hsl(150,25%,92%)}
.pr-stats{font-size:.92rem;margin:0 0 .6rem}
.pr-weaklist{list-style:none;margin:0 0 .8rem;padding:0;display:grid;gap:.35rem}
.pr-weaklist li{display:grid;grid-template-columns:1fr 4rem 2.2rem auto;gap:.4rem;align-items:center;font-size:.86rem}
.pr-weaklist a{color:var(--ink)}
.pr-weaklist small{font-family:var(--mono);font-size:.66rem;color:var(--muted);text-align:right}
.pr-bar{display:block;height:6px;background:var(--paper);border:1px solid var(--rule);border-radius:2px;overflow:hidden}
.pr-bar i{display:block;height:100%;background:var(--pine)}
.pq-row.pr code{min-width:0}

/* runner */
.pr-run{margin:0 -1.5rem}
.pr-runhead{
  position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;
  background:var(--ink);color:#f0efe6;border-bottom:3px solid var(--gold);padding:.55rem 1.5rem;
}
.pr-runtitle{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.pr-runtitle b{font-family:var(--slab);font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32ch}
.pr-runtitle small{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#9fb0a6}
.pr-mode,.pr-codetag{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(255,255,255,.3);border-radius:2px;padding:.2rem .45rem}
.pr-codetag{color:var(--gold-soft);border-color:var(--gold-soft)}
.pr-timer{font-family:var(--mono);font-size:1.05rem;margin-left:auto;min-width:4.5rem;text-align:right}
.pr-timer.warn{color:#f0a0a0}
.pr-progress{display:block;width:6rem;height:6px;background:rgba(255,255,255,.18);border-radius:2px;overflow:hidden}
.pr-progress i{display:block;height:100%;background:var(--gold);transition:width .3s}
.pr-submit,.pr-exit{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:.45rem .8rem;min-height:38px;cursor:pointer;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);border-radius:2px;color:#f0efe6}
.pr-submit{background:var(--gold);border-color:var(--gold);color:var(--ink);font-weight:600}
.pr-submit:hover{background:var(--gold-soft)}
.pr-exit:hover{background:rgba(255,255,255,.2)}
.pr-runbody{display:grid;grid-template-columns:190px minmax(0,1fr);gap:1.2rem;padding:1.2rem 1.5rem 0}
.pr-palette{position:sticky;top:4.2rem;align-self:start}
.pr-pals{display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem}
.pr-pal{
  aspect-ratio:1;font-family:var(--mono);font-size:.8rem;cursor:pointer;border:1px solid var(--rule);border-radius:2px;
  background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;min-height:34px;
}
.pr-pal[data-state=answered]{background:hsl(150,25%,88%)}
.pr-pal[data-state=correct]{background:hsl(150,35%,82%);border-color:var(--pine)}
.pr-pal[data-state=wrong]{background:hsl(0,36%,92%);border-color:hsl(0,46%,55%)}
.pr-pal[data-state=current]{outline:2px solid var(--gold);outline-offset:1px;font-weight:600}
.pr-pal[data-flag="1"]{box-shadow:inset 0 -4px 0 var(--gold)}
.pr-legend{font-family:var(--mono);font-size:.62rem;color:var(--muted);margin:.5rem 0 0;line-height:1.5}
.pr-qwrap{min-width:0}
.pr-qtools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 .6rem}
.pr-flag{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:.35rem .7rem;cursor:pointer;background:var(--card);border:1px solid var(--rule);border-radius:2px;color:var(--muted)}
.pr-flag.on{background:hsl(45,60%,90%);border-color:var(--gold);color:var(--ink)}
.pr-qwrap .bq{background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--gold);border-radius:2px;box-shadow:var(--shadow);padding:1rem 1.2rem 1.2rem}
.pr-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 2rem}
.pr-nav button{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.6rem 1rem;min-height:44px;cursor:pointer;
  background:var(--card);border:1px solid var(--rule);border-radius:2px;color:var(--pine);
}
.pr-nav button:hover{border-color:var(--gold)}
.pr-nav button:disabled{opacity:.45;cursor:default}
.pr-nav .pr-check{background:var(--pine);border-color:var(--pine);color:#f0efe6;font-weight:600;flex:0 0 auto;min-width:11rem}
.pr-nav .pr-check:hover{background:var(--pine-soft)}

/* results */
.pr-result{max-width:900px}
.pr-scorecard{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:baseline;background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--gold);border-radius:2px;box-shadow:var(--shadow);padding:1rem 1.2rem}
.pr-score{font-family:var(--slab);font-size:2.4rem;color:var(--pine);line-height:1}
.pr-pct{font-family:var(--mono);font-size:1.1rem;color:var(--gold)}
.pr-facts{font-size:.9rem;color:var(--muted)}
.pr-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-left:auto}
.pr-actions button,.pr-actions .abtn{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem .8rem;min-height:40px;cursor:pointer;background:var(--paper);border:1px solid var(--rule);border-radius:2px;color:var(--pine);text-decoration:none;display:inline-flex;align-items:center}
.pr-actions button:hover,.pr-actions .abtn:hover{border-color:var(--gold)}
.pr-code{flex:1 1 100%;font-family:var(--mono);font-size:.7rem;color:var(--muted);margin:.4rem 0 0}
.pr-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0}
.pr-table{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--card);border:1px solid var(--rule);border-radius:2px}
.pr-table th,.pr-table td{border-top:1px solid var(--rule);padding:.4rem .6rem;text-align:left;vertical-align:middle}
.pr-table th{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;border-top:none}
.pr-table td:last-child{width:30%}
.pr-coverage{font-size:.88rem;background:var(--paper);border:1px dashed var(--rule);border-radius:2px;padding:.6rem .8rem;margin:0 0 1rem}
.pr-review{margin:1.4rem 0 0}
.pr-filter{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:0 0 .8rem}
.pr-rev{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--rule);border-radius:2px;padding:.9rem 1.1rem;margin:0 0 .8rem}
.pr-rev[data-state=correct]{border-left-color:var(--pine)}
.pr-rev[data-state=wrong]{border-left-color:hsl(0,46%,42%)}
.pr-rev[data-state=skipped]{border-left-color:var(--gold)}
.pr-rev[hidden]{display:none}
.pr-rev .bq{margin:0}

/* class quiz */
.pr-code-big{font-family:var(--mono);font-size:clamp(3rem,13vw,8rem);letter-spacing:.2em;color:var(--gold-soft);margin:.2rem 0;line-height:1}
.pr-joinurl{font-family:var(--mono);font-size:clamp(1rem,2.4vw,1.6rem);color:#e6e4d8;margin:0}
.pr-responders{font-family:var(--mono);font-size:.9rem;color:#9fb0a6;margin:.6rem 0 0}
.pr-live{margin:1.2rem 0 0;display:grid;gap:.4rem;max-width:40rem}
.pr-live-count{font-family:var(--mono);font-size:.8rem;color:#9fb0a6;margin:0 0 .3rem}
.pr-live-note{font-family:var(--mono);font-size:.78rem;color:#9fb0a6}
.pr-livebar{display:grid;grid-template-columns:1.6rem 1fr 2.4rem;align-items:center;gap:.6rem}
.pr-livebar span{font-family:var(--mono);color:var(--gold-soft)}
.pr-livebar i{display:block;height:1.3rem;background:rgba(255,255,255,.2);border-radius:2px;transition:width .4s}
.pr-livebar.correct i{background:var(--gold)}
.pr-livebar b{font-family:var(--mono);font-size:.85rem;text-align:right}
.pr-board{width:100%;border-collapse:collapse;font-size:.95rem;margin:.6rem 0}
.pr-board th,.pr-board td{border-bottom:1px solid rgba(255,255,255,.15);padding:.35rem .6rem;text-align:left}
.pr-board th{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:#9fb0a6}
.pr-qstrip{display:flex;flex-wrap:wrap;gap:.4rem;align-items:flex-end;margin:.4rem 0 0}
.pr-qpct{display:flex;flex-direction:column;align-items:center;width:2.2rem;font-family:var(--mono);font-size:.6rem;color:#9fb0a6}
.pr-qpct i{display:block;width:100%;min-height:2px;background:var(--gold);margin:.2rem 0}
.pr-qpct b{font-size:.62rem}
.deck-slide.code{text-align:center}

/* print a generated test as a paper */
.pr-print .pq-q{border-top:1px solid var(--rule);padding:.6rem 0}
.pr-print .pq-q-text{font-size:1rem;margin:0 0 .3rem}
.pr-printopts{margin:.2rem 0 .4rem 1.2rem;padding:0;list-style:none;font-size:.95rem}
.pr-printopts li{margin:0 0 .15rem}
.pr-lines{border-bottom:1px dashed var(--rule);margin:.3rem 0 .2rem}
.pr-namebar{font-family:var(--mono);font-size:.8rem;color:var(--muted);margin:.4rem 0 0}
.pr-key{page-break-before:always;display:none}
.pr-print.showkey .pr-key{display:block}
.pr-key ol{font-family:var(--mono);font-size:.85rem;columns:3;column-gap:2rem}

@media(max-width:900px){
  .pr-home{grid-template-columns:1fr}
  .pr-breakdown{grid-template-columns:1fr}
  .pr-actions{margin-left:0}
}
@media(max-width:700px){
  .pr-run{margin:0 -1.5rem}
  .pr-runbody{grid-template-columns:1fr;padding:1rem 1.5rem 0}
  .pr-palette{position:static}
  .pr-pals{grid-template-columns:repeat(10,1fr)}
  .pr-runtitle b{max-width:14ch}
  .pr-runtitle small{display:none}
  .pr-timer{font-size:.95rem}
  .pr-progress{display:none}
  .pr-nav{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--rule);padding:.5rem 0;margin:1rem 0 0;z-index:20}
  .pr-nav button{flex:1 1 auto;min-height:48px}
  .pr-nav .pr-check{order:-1;flex:1 1 100%}
  .bq-opt{font-size:1.02rem;min-height:52px}
  .bq-match .bq-pick{width:auto}
  .bq-match td{display:block;border-top:none;padding:.2rem .4rem}
  .bq-match tr{display:block;border-top:1px solid var(--rule);padding:.3rem 0}
  .pr-weaklist li{grid-template-columns:1fr auto}
  .pr-weaklist .pr-bar{display:none}
  .pr-score{font-size:1.9rem}
}
@media print{
  .pr-print .paper-tools,.pr-print .pr-namebar button{display:none}
  .pr-print .bq-opt{border:none;background:none;min-height:0;padding:.1rem 0}
}
