/* RankRound public app */

/* ---------- top bar ---------- */
.topbar{background:var(--bar); color:var(--bar-ink); position:sticky; top:0; z-index:40; border-bottom:1px solid var(--bar-rule)}
.topbar-in{max-width:1480px; margin:0 auto; height:56px; padding:0 24px; display:flex; align-items:center; gap:28px}
.wordmark{display:flex; align-items:baseline; gap:10px; color:var(--bar-ink); text-decoration:none !important; flex:none}
.wordmark b{font:600 21px/1 var(--serif); letter-spacing:-.015em}
.wordmark b em{font-style:normal; color:#d6ab5a}
.wordmark small{font:600 9.5px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--bar-muted);
  padding-left:10px; border-left:1px solid var(--bar-rule)}
/* The three main tabs: always shown, set apart from the bar as buttons, the current one in gold. */
.mainnav{display:flex; align-items:center; gap:6px}
.mainnav a{position:relative; display:flex; align-items:center; gap:8px; height:36px; padding:0 14px; color:var(--bar-ink); font:600 13.5px/1 var(--sans);
  text-decoration:none !important; background:rgba(233,237,243,.06); border:1px solid #2d3a50; border-radius:var(--r); white-space:nowrap}
.mainnav a svg{width:16px; height:16px; flex:none; color:#d6ab5a}
.mainnav a:hover{border-color:#5d6b82; background:rgba(233,237,243,.1)}
.mainnav a[aria-current="page"]{color:#0b1422; background:#d6ab5a; border-color:#d6ab5a}
.mainnav a[aria-current="page"] svg{color:#0b1422}
.mainnav .nav-short{display:none}
/* seven links: short labels until the bar has room for the long ones */
@media (min-width:961px) and (max-width:1640px){
  .mainnav{gap:4px}
  .mainnav a{padding:0 10px; gap:6px}
  .mainnav .nav-full{display:none}
  .mainnav .nav-short{display:inline}
  .wordmark small{display:none}
}
.topbar-right{margin-left:auto; display:flex; align-items:center; gap:8px}
.topbar .btn-line{background:transparent; color:var(--bar-ink); border-color:#2d3a50}
.topbar .btn-line:hover{border-color:var(--bar-ink)}
.topbar .btn-primary{background:#e9edf3; color:#0b1422}
.topbar .btn-primary:hover{background:#ffffff}
.topbar .icon-btn{color:var(--bar-muted)}
.topbar .icon-btn:hover{color:var(--bar-ink); background:var(--bar-rule)}
.acct{position:relative}
.acct-btn{display:flex; align-items:center; gap:9px; height:36px; padding:0 10px 0 4px; border:1px solid #2d3a50; background:transparent;
  color:var(--bar-ink); border-radius:var(--r); cursor:pointer; font:500 13px/1 var(--sans)}
.acct-btn:hover{border-color:var(--bar-ink)}
.avatar{display:grid; place-items:center; width:28px; height:28px; background:#d6ab5a; color:#0b1422; font:600 11.5px/1 var(--sans); border-radius:1px}
.menu{position:absolute; right:0; top:calc(100% + 6px); min-width:230px; background:var(--surface); color:var(--ink);
  border:1px solid var(--rule-2); box-shadow:var(--shadow-pop); z-index:50; padding:6px 0}
.menu-head{padding:10px 14px 12px; border-bottom:1px solid var(--rule); margin-bottom:6px}
.menu-head b{display:block; font-weight:600}
.menu-head span{display:block; font:400 12px var(--mono); color:var(--muted)}
.menu button, .menu a{display:flex; width:100%; align-items:center; gap:10px; padding:9px 14px; border:0; background:none;
  text-align:left; cursor:pointer; color:var(--ink-2); font-size:13px; text-decoration:none !important}
.menu button:hover, .menu a:hover{background:var(--hover); color:var(--ink)}
.menu svg{width:15px; height:15px; color:var(--muted)}

.announce{background:var(--brass-soft); border-bottom:1px solid var(--rule); color:var(--ink); font-size:13px}
.announce div{max-width:1480px; margin:0 auto; padding:9px 24px; display:flex; gap:12px; align-items:baseline}
.announce b{font:600 10px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--brass); flex:none}

.wrap{max-width:1480px; margin:0 auto; padding:0 24px}

/* ---------- context bar ---------- */
.ctxbar{background:var(--surface); border-bottom:1px solid var(--rule)}
.ctxbar-in{max-width:1480px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; gap:20px; flex-wrap:wrap}
.scope{display:flex; border:1px solid var(--rule-2); border-radius:var(--r)}
.scope button{display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:8px 16px; border:0; background:var(--surface);
  cursor:pointer; text-align:left; min-width:190px; border-radius:0}
.scope button + button{border-left:1px solid var(--rule-2)}
.scope button b{font:600 13.5px/1 var(--sans); color:var(--ink-2)}
.scope button span{font:400 11.5px/1 var(--sans); color:var(--muted)}
.scope button:hover b{color:var(--ink)}
.scope button[aria-pressed="true"]{background:var(--ink)}
.scope button[aria-pressed="true"] b{color:var(--page)}
.scope button[aria-pressed="true"] span{color:var(--faint)}
.ctx-ds{display:flex; align-items:center; gap:10px}
.ctx-ds .select{height:34px; min-width:260px; font-size:13px}
.ctx-note{font-size:12.5px; color:var(--muted); max-width:56ch; line-height:1.45; margin-left:auto; text-align:right}
.ctx-guide{display:flex; align-items:center; justify-content:flex-end; gap:5px; margin-top:6px; font-weight:500}
.ctx-guide svg{width:13px; height:13px; flex:none}

/* ---------- prediction views (predictions / cut-off table / shortlist) ---------- */
.worktabs{background:var(--surface); border-bottom:1px solid var(--rule)}
.worktabs-in{max-width:1480px; margin:0 auto; padding:0 24px; display:flex; gap:4px; overflow-x:auto}
.worktabs a{display:flex; align-items:center; gap:7px; padding:13px 14px 11px; color:var(--ink-2); font:500 13.5px/1 var(--sans);
  text-decoration:none !important; border-bottom:2px solid transparent; white-space:nowrap}
.worktabs a:hover{color:var(--ink)}
.worktabs a[aria-current="page"]{color:var(--ink); font-weight:600; border-bottom-color:var(--brass)}
.worktabs .count{font:500 10.5px/1 var(--mono); padding:3px 5px; background:var(--brass-soft); color:var(--ink); border-radius:1px}

/* ---------- counselling roadmap (above the predictions) ---------- */
.work-main{min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:24px}
.roadmap{background:var(--surface); border:1px solid var(--rule); padding:20px 22px}
.rm-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px}
.rm-head h2{margin:6px 0 0; font:600 22px/1.2 var(--serif); letter-spacing:-.01em}
.rm-steps{list-style:none; margin:18px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)); gap:0}
.rm-steps li{position:relative; display:grid; align-content:start; row-gap:3px; padding:0 12px 0 0; font-size:12.5px}
.rm-steps li::after{content:""; position:absolute; top:13px; left:34px; right:8px; height:2px; background:var(--rule)}
.rm-steps li:last-child::after{display:none}
.rm-steps li.done::after{background:var(--ok)}
.rm-dot{position:absolute; top:0; left:0; z-index:1; display:grid; place-items:center; width:26px; height:26px; border-radius:50%;
  border:2px solid var(--rule-2); background:var(--surface); color:var(--muted); font:600 12px/1 var(--sans)}
.rm-steps b{margin-top:34px; font-weight:600; color:var(--ink); line-height:1.3}
.rm-steps small{color:var(--muted); font-size:11.5px}
.rm-steps em{font-style:normal; font-size:11px; font-weight:500; color:var(--muted)}
.rm-steps li.done .rm-dot{border-color:var(--ok); background:var(--ok); color:var(--surface)}
.rm-steps li.current .rm-dot, .rm-steps li.next .rm-dot{border-color:var(--brass); background:var(--brass); color:#0b1422; box-shadow:0 0 0 4px var(--brass-soft)}
.rm-steps li.current em, .rm-steps li.next em{color:var(--warn)}
.rm-steps li.done em{color:var(--ok)}
.rm-body{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:start; gap:14px; margin-top:20px}
.rm-body[hidden]{display:none}
.rm-card{border:1px solid var(--rule); background:var(--page); padding:16px 18px}
.rm-card h3{margin:0 0 8px; font:600 15px/1.3 var(--sans); color:var(--ink)}
.rm-card h3 small{font-weight:400; color:var(--muted); font-size:12.5px; margin-left:6px}
.rm-card p{margin:0; font-size:13px; line-height:1.55; color:var(--ink-2)}
.rm-now{border-left:3px solid var(--brass)}
.rm-now .gd-pill{display:inline-block; margin-bottom:10px}
.rm-links{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.rm-links svg, .rm-pred svg, .rm-dates .btn svg{width:14px; height:14px}
.rm-dates ul{list-style:none; margin:0 0 12px; padding:0}
.rm-dates li{display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; padding:8px 0; border-top:1px solid var(--rule); font-size:12.5px}
.rm-dates li:first-child{border-top:0; padding-top:2px}
.rm-dates li > a, .rm-dates li > b{flex:1 1 100%; font-weight:500; color:var(--ink)}
.rm-dates li > span:not(.gd-pill){color:var(--muted)}
.rm-pred{grid-column:1 / -1}
.rm-pred-row{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap}
.rm-pred-row b{font-weight:600}
.rm-pred-row p{margin-top:4px}
.rm-pred-row + .rm-pred-row{margin-top:14px; padding-top:14px; border-top:1px solid var(--rule)}
.rm-src{grid-column:1 / -1; font-size:11.5px !important; color:var(--muted) !important}

/* ---------- workspace ---------- */
.workspace{max-width:1480px; margin:0 auto; padding:24px; display:grid; grid-template-columns:272px minmax(0,1fr); gap:24px; align-items:start}
.rail{position:sticky; top:80px; background:var(--surface); border:1px solid var(--rule); max-height:calc(100vh - 104px); overflow:auto}
.rail-sec{padding:18px}
.rail-sec + .rail-sec{border-top:1px solid var(--rule)}
.rail-title{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px}
.rail-title h3{margin:0; font:600 10.5px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink)}
.rail-sec .field{margin-top:16px}
.rail-sec .field:first-child, .rail-title + .field{margin-top:0}
.rail-sec .check + .field{margin-top:16px}
.rail .note{margin:10px 0 0; font-size:12px; line-height:1.55; color:var(--muted)}
.check{display:flex; gap:9px; align-items:flex-start; font-size:12.5px; color:var(--ink-2); cursor:pointer; margin-top:12px; line-height:1.4}
.check input{margin:2px 0 0; accent-color:var(--brand); width:14px; height:14px; flex:none}
.rail-toggle{display:none}
.rail .band{white-space:normal; align-items:flex-start; line-height:1.45}
.rail .band i{margin-top:4px}

.results{min-width:0}
.res-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; padding-bottom:16px; border-bottom:1px solid var(--rule-strong)}
.res-count{display:flex; align-items:baseline; gap:12px; margin-top:8px}
.res-count strong{font:600 40px/1 var(--serif); letter-spacing:-.02em}
.res-count span{font-size:14px; color:var(--ink-2)}
.res-actions{display:flex; gap:8px; flex-wrap:wrap}
.res-sub{margin:8px 0 0; color:var(--muted); font-size:13px}

.dist{padding:16px 0 18px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 28px; align-items:center}
.dist-bar{display:flex; height:10px; gap:2px; background:transparent}
.dist-bar i{display:block; height:100%; min-width:2px}
.dist-legend{display:flex; gap:18px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-2)}
.dist-legend span{display:inline-flex; align-items:center; gap:7px; white-space:nowrap}
.dist-legend i{width:10px; height:10px; display:block; border-radius:50%}
.dist-legend b{font:500 12.5px var(--mono); color:var(--ink)}

.star{width:28px; height:28px; display:grid; place-items:center; border:0; background:none; cursor:pointer; color:var(--faint); padding:0; border-radius:var(--r)}
.star:hover{color:var(--ink); background:var(--sunk)}
.star[aria-pressed="true"]{color:var(--brass)}
.star svg{width:16px; height:16px}
.margin-pos{color:var(--b4-ink); font-weight:500}
.margin-neg{color:var(--b1-ink)}
.pos svg{display:block}
.pos .trk{stroke:var(--rule-2); stroke-width:1}
.pos .rng{fill:var(--ink-2); opacity:.55}
.pos .you{fill:var(--brass)}

.more{display:flex; justify-content:center; align-items:center; gap:14px; padding:16px; border:1px solid var(--rule); border-top:0; background:var(--surface); color:var(--muted); font-size:12.5px}
.search-wrap{position:relative}
.search-wrap svg{position:absolute; left:11px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--faint)}
.search-wrap .input{padding-left:34px}

.drawer:focus{outline:none}
.sortbar{display:flex; align-items:center; gap:12px; margin-bottom:12px}
.sortbar .select{flex:1; height:36px}
.cards{border:1px solid var(--rule); background:var(--surface)}
.card{padding:14px 16px; border-bottom:1px solid var(--rule); cursor:pointer}
.card:last-child{border-bottom:0}
.card.active{background:var(--selected); box-shadow:inset 2px 0 0 var(--brand)}
.card-top{display:flex; justify-content:space-between; align-items:center; margin:-4px -6px 4px 0}
.card-spec{font:600 16px/1.3 var(--serif); color:var(--ink)}
.card-coll{font-size:12.5px; color:var(--muted); margin-top:3px}
.card-nums{display:flex; gap:22px; margin-top:12px}
.card-nums span{display:block; font:600 9.5px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:5px}
.card-nums b{font:500 15px/1 var(--mono); color:var(--ink)}
.card-pos{margin-top:12px}
.card-pos svg{width:100%}

/* ---------- seat drawer ---------- */
.dr-head{padding:22px 24px 18px; border-bottom:1px solid var(--rule); position:sticky; top:0; background:var(--surface); z-index:2}
.dr-head .icon-btn{position:absolute; right:16px; top:16px}
.dr-head h2{margin:10px 40px 4px 0; font:600 24px/1.2 var(--serif); letter-spacing:-.015em}
.dr-head p{margin:0; color:var(--ink-2); font-size:13.5px}
.dr-tags{display:flex; gap:6px; flex-wrap:wrap; margin-top:12px}
.dr-sec{padding:20px 24px; border-bottom:1px solid var(--rule)}
.dr-sec h3{margin:0 0 14px; font:600 10.5px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.verdict{display:flex; align-items:center; gap:14px}
.verdict .band{font-size:17px; font-family:var(--serif); font-weight:600}
.verdict .band i{width:12px; height:12px}
.verdict .band.chip{padding:5px 14px 5px 11px}
.verdict p{margin:0; font-size:13px; color:var(--ink-2)}
.facts{display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--rule); border-left:1px solid var(--rule)}
.facts div{padding:12px 14px; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule)}
.facts dt{font:600 10px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:7px}
.facts dd{margin:0; font:500 17px/1.2 var(--mono); color:var(--ink); letter-spacing:-.01em}
.facts dd small{font:400 11.5px var(--sans); color:var(--muted); letter-spacing:0}
.mini{width:100%; border-collapse:collapse; font-size:13px}
.mini td{padding:8px 0; border-bottom:1px solid var(--rule); vertical-align:top}
.mini tr:last-child td{border-bottom:0}
.mini td.n{text-align:right; font-family:var(--mono); white-space:nowrap; padding-left:12px}
.mini a{color:var(--ink)}
.mini tr.here td{font-weight:600}
.dr-actions{display:flex; gap:8px; padding:18px 24px; flex-wrap:wrap}
.range-chart text{font:400 10.5px var(--mono); fill:var(--muted)}
.range-chart .lbl{font:500 11px var(--sans); fill:var(--ink-2)}
.range-chart .you-lbl{fill:var(--brass); font-weight:600}

/* ---------- sign-in ---------- */
.signin-lead{margin:0 0 20px; color:var(--ink-2); font-size:13.5px; line-height:1.55}
.phone{display:flex}
.phone span{display:grid; place-items:center; padding:0 12px; border:1px solid var(--rule-2); border-right:0; background:var(--sunk);
  font:500 13.5px var(--mono); color:var(--ink-2); border-radius:var(--r) 0 0 var(--r)}
.phone .input{border-radius:0 var(--r) var(--r) 0; font-family:var(--mono); letter-spacing:.04em}
.otp{display:flex; gap:8px}
.otp input{width:52px; height:58px; text-align:center; font:500 24px/1 var(--mono); border:1px solid var(--rule-2); border-radius:var(--r);
  background:var(--surface); color:var(--ink)}
.otp input:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 1px var(--brand)}
.otp.six input{width:46px}
.fine{margin:14px 0 0; font-size:11.5px; line-height:1.55; color:var(--muted)}
.form-err{margin-top:14px}
.signin-row{display:flex; justify-content:space-between; align-items:center; margin-top:14px; font-size:12.5px; color:var(--muted)}
.linkbtn{border:0; background:none; padding:0; color:var(--link); cursor:pointer; font-size:inherit}
.linkbtn:disabled{color:var(--faint); cursor:default}

.workspace.no-rail{grid-template-columns:1fr}
.workspace.no-rail .empty p{max-width:62ch; margin-left:auto; margin-right:auto}

/* ---------- sign-up card (home, gate, profile) ---------- */
.auth-card{background:var(--surface); border:1px solid var(--rule-2); box-shadow:var(--shadow-pop); padding:24px; text-align:left}
.auth-card-head{margin-bottom:18px}
.hero-auth{width:100%; max-width:470px; justify-self:end}
.auth-card-head h2{margin:8px 0 0; font:600 24px/1.2 var(--serif); letter-spacing:-.015em}
.auth .field + .field, .auth .field + .auth-pair, .auth .auth-pair + .field{margin-top:14px}
.auth-pair{display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:12px; margin-top:14px}
.auth-pair .field + .field{margin-top:0}
.auth-ch{margin-bottom:8px}
.auth-ch button{flex:1}
.auth .input.num{font-family:var(--mono)}
.auth-go{width:100%; margin-top:20px}
.auth-go svg{width:16px; height:16px}
.auth-switch{margin:14px 0 0; font-size:13px; color:var(--ink-2); text-align:center}
.auth-actions{display:flex; justify-content:flex-end; gap:8px; margin-top:20px}
.auth-intro{margin:0 0 16px; font-size:13.5px; line-height:1.55; color:var(--ink-2)}
.pw-label{display:flex; justify-content:space-between; align-items:baseline; gap:12px}
.pw-label .linkbtn{font-size:12.5px; font-weight:500}
.pw{position:relative; display:flex}
.pw .input{flex:1; padding-right:64px}
.pw-show{position:absolute; top:50%; right:6px; transform:translateY(-50%); height:28px; padding:0 9px; border:0; border-radius:var(--r);
  background:transparent; color:var(--link); font:500 12px var(--sans); cursor:pointer}
.pw-show:hover{background:var(--sunk)}
.auth .auth-keep{margin-top:14px; font-size:13px; color:var(--ink)}
.empty-actions{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:18px}
.empty-actions svg{width:15px; height:15px}
.auth-down{display:grid; gap:8px; justify-items:start; line-height:1.5}
.auth-down b{font-weight:600}
.auth-down small{font-size:11.5px; color:var(--muted)}

/* ---------- counselling guides (/counselling) ---------- */
.gd{max-width:1240px; margin:0 auto; padding:44px 24px 64px}
.gd-head{max-width:760px; margin-bottom:28px}
.gd-head h1{margin:14px 0 12px; font:600 clamp(30px,3.6vw,44px)/1.08 var(--serif); letter-spacing:-.022em}
.gd-lede{margin:0 0 22px; max-width:62ch; font-size:15.5px; line-height:1.6; color:var(--ink-2)}
.gd-search{position:relative; display:block; max-width:420px}
.gd-search svg{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--muted); pointer-events:none}
.gd-search .input{height:42px; padding-left:34px}
.gd-yours{display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; margin:14px 0 0}
.gd-yours .eyebrow{color:var(--brass)}
.gd-yours a{display:inline-flex; align-items:center; gap:5px; font-weight:500}
.gd-yours svg{width:13px; height:13px}
.gd-soon{margin:0 0 30px; padding:14px 18px; background:var(--surface); border:1px solid var(--rule); border-left:3px solid var(--brass)}
.gd-soon ul{list-style:none; margin:10px 0 0; padding:0; display:grid; gap:8px}
.gd-soon li{display:flex; align-items:center; justify-content:space-between; gap:12px}
.gd-soon a{display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px; min-width:0; color:var(--ink)}
.gd-soon a b{font-weight:600}
.gd-soon a span{font-size:13px; color:var(--ink-2)}
.gd-sec{margin-top:34px}
.gd-sec-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--rule-strong)}
.gd-sec-head h2{margin:0; font:600 24px/1.2 var(--serif); letter-spacing:-.015em}
.gd-sec-head p{margin:0; font-size:13px; color:var(--muted)}
.gd-sec-head p svg{width:13px; height:13px; vertical-align:-2px}
.gd-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:14px}
.gd-card{display:flex; flex-direction:column; min-width:0; background:var(--surface); border:1px solid var(--rule)}
.gd-card.mine{border-color:var(--brass); box-shadow:inset 0 3px 0 var(--brass)}
.gd-card-head{padding:16px 18px 12px}
.gd-mine{display:inline-block; margin-bottom:8px; font:600 10px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--brass)}
.gd-card-head h3{margin:0; font:600 19px/1.25 var(--serif); letter-spacing:-.01em}
.gd-card-head p{margin:5px 0 0; font-size:12.5px; line-height:1.45; color:var(--muted)}
.gd-steps{list-style:none; margin:0; padding:2px 18px 14px; display:grid; gap:10px}
.gd-steps li{display:flex; align-items:flex-start; justify-content:space-between; gap:12px}
.gd-what{font-size:13.5px; font-weight:500; line-height:1.35; color:var(--ink)}
.gd-what small{display:block; margin-top:2px; font-size:12px; font-weight:400; color:var(--muted)}
.gd-pill{flex:none; padding:5px 8px; border-radius:var(--r); font:500 11.5px/1 var(--sans); white-space:nowrap}
.gd-pill.open{background:var(--ok-bg); color:var(--ok)}
.gd-pill.urgent{background:var(--err-bg); color:var(--err)}
.gd-pill.soon{background:var(--warn-bg); color:var(--warn)}
.gd-pill.done, .gd-pill.wait{background:var(--sunk); color:var(--muted)}
.gd-pill.info{background:var(--brand-soft); color:var(--link)}
.gd-links{margin-top:auto; border-top:1px solid var(--rule)}
.gd-link{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 18px; color:var(--ink); text-decoration:none !important}
.gd-link + .gd-link{border-top:1px solid var(--rule)}
.gd-link:hover{background:var(--hover)}
.gd-link b{display:block; font-size:13.5px; font-weight:600; color:var(--link)}
.gd-link small{display:block; margin-top:2px; font-size:12px; line-height:1.45; color:var(--muted)}
.gd-link svg{flex:none; width:15px; height:15px; color:var(--link)}
.gd-none{margin:24px 0; color:var(--muted)}
.gd-docs{border-top:1px solid var(--rule)}
.gd-docs summary{display:flex; align-items:center; gap:8px; padding:11px 18px; font:600 13px/1.3 var(--sans); color:var(--ink); cursor:pointer}
.gd-docs summary span{font:500 11px/1 var(--mono); padding:3px 6px; background:var(--sunk); border-radius:var(--r); color:var(--ink-2)}
.gd-docs ul{list-style:none; margin:0; padding:0 0 6px; max-height:340px; overflow:auto}
.gd-docs li a{display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:10px; padding:8px 18px; color:var(--ink); text-decoration:none !important}
.gd-docs li a:hover{background:var(--hover)}
.gd-docs li b{font-size:13px; font-weight:500; line-height:1.35; color:var(--link)}
.gd-docs li small{grid-column:2; font-size:11.5px; color:var(--muted)}
.gd-doc-kind{grid-row:span 2; align-self:start; margin-top:1px; padding:3px 6px; border-radius:var(--r); background:var(--brand-soft); color:var(--link);
  font:600 10px/1.2 var(--sans); letter-spacing:.04em; text-transform:uppercase; white-space:nowrap}
.gd-updates{margin:0 0 26px; background:var(--surface); border:1px solid var(--rule); border-left:3px solid var(--link)}
.gd-updates-head{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 16px; padding:14px 18px 6px}
.gd-updates-head h2{margin:0}
.gd-updates-head span{font-size:12px; color:var(--muted)}
.gd-updates ol{list-style:none; margin:0; padding:0 0 6px}
.gd-updates li{display:grid; grid-template-columns:52px minmax(110px, auto) minmax(0,1fr) auto; align-items:baseline; gap:4px 14px; padding:9px 18px;
  border-top:1px solid var(--rule); font-size:13.5px; line-height:1.45}
.gd-updates li:first-child{border-top:0}
.gd-updates li.mine{background:var(--brass-soft)}
.gd-updates time{font:500 12px/1.45 var(--mono); color:var(--muted); white-space:nowrap}
.gd-updates b{font-weight:600; color:var(--ink)}
.gd-updates li span{color:var(--ink-2)}
.gd-updates li a{font-size:12.5px; font-weight:500; white-space:nowrap}
.gd-updates #gd-more{margin:2px 18px 12px; font-size:13px; font-weight:500}
.gd-compare{margin-top:36px; background:var(--surface); border:1px solid var(--rule)}
.gd-compare summary{padding:14px 18px; font:600 15px/1.3 var(--sans); cursor:pointer}
.gd-compare .grid-wrap{border:0; border-top:1px solid var(--rule)}
.gd-compare .grid td{min-width:190px; vertical-align:top; line-height:1.5}
.gd-compare .grid td.strong{min-width:140px}
.gd-gap{font-style:italic; color:var(--muted)}
.gd-note{margin:0; padding:10px 18px 14px; font-size:12px; color:var(--muted)}

/* ---------- landing ---------- */
.priority{display:block; background:var(--brass-soft); border-bottom:1px solid var(--rule); color:var(--ink); text-decoration:none !important}
.priority-in{max-width:1480px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.priority .eyebrow{color:var(--brass)}
.priority b{font-weight:600; font-size:14.5px}
.priority-go{margin-left:auto; display:flex; align-items:center; gap:6px; font-weight:600; color:var(--link); white-space:nowrap}
.priority-go svg{width:15px; height:15px}
.priority:hover b{text-decoration:underline}
.hero{border-bottom:1px solid var(--rule); background:var(--surface)}
.hero-in{max-width:1480px; margin:0 auto; padding:72px 24px 64px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center}
.hero h1{margin:18px 0 20px; font:600 clamp(36px,4.6vw,60px)/1.04 var(--serif); letter-spacing:-.028em; max-width:15ch}
.hero h1 em{font-style:italic; font-weight:500; color:var(--brass)}
.hero-lede{font-size:17px; line-height:1.6; color:var(--ink-2); max-width:52ch; margin:0 0 30px}
.hero-cta{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.hero-cta .muted{font-size:12.5px; margin-left:6px}

.stats{border-bottom:1px solid var(--rule)}
.stats-in{max-width:1480px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr)}
.stat{padding:30px 24px; border-right:1px solid var(--rule)}
.stat:last-child{border-right:0}
.stat strong{display:block; font:600 40px/1 var(--serif); letter-spacing:-.02em; margin-top:12px}
.stat span{display:block; color:var(--muted); font-size:13px; margin-top:8px}

.section{max-width:1480px; margin:0 auto; padding:72px 24px}
.section-head{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:48px; margin-bottom:40px; align-items:end}
.section-head h2{margin:12px 0 0; font:600 34px/1.12 var(--serif); letter-spacing:-.02em}
.section-head p{margin:0; color:var(--ink-2); font-size:15px; line-height:1.65; max-width:62ch}
.steps{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--rule-strong)}
.step{padding:26px 28px 6px 0}
.step + .step{padding-left:28px; border-left:1px solid var(--rule)}
.step .num{font-size:12px; color:var(--brass)}
.step h3{margin:14px 0 10px; font:600 20px/1.25 var(--serif); letter-spacing:-.01em}
.step p{margin:0; color:var(--ink-2); line-height:1.65; font-size:14px}
.band-key{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--rule); background:var(--surface)}
.band-key div{padding:20px; border-right:1px solid var(--rule)}
.band-key div:last-child{border-right:0}
.band-key .band{font:600 16px var(--serif)}
.band-key p{margin:10px 0 0; font-size:13px; color:var(--ink-2); line-height:1.55}
/* ---------- coverage map (home) ---------- */
:root{--glass:rgba(255,255,255,.56); --glass-line:rgba(255,255,255,.8); --glass-tip:rgba(255,255,255,.78); --glass-shadow:0 24px 60px -24px rgba(10,18,32,.32);
  --map-none:#e2ddd0; --map-guide:#e0c27f; --map-data:#a67a2b; --map-edge:#fbfaf7; --map-on:#11284a;
  --cov-glow-1:rgba(214,171,90,.30); --cov-glow-2:rgba(37,106,191,.16)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--glass:rgba(17,22,31,.55); --glass-line:rgba(255,255,255,.09); --glass-tip:rgba(12,16,24,.78);
  --glass-shadow:0 24px 60px -24px rgba(0,0,0,.8); --map-none:#1f2835; --map-guide:#7d6128; --map-data:#d6ab5a; --map-edge:#0d121a; --map-on:#a9c3ef;
  --cov-glow-1:rgba(214,171,90,.14); --cov-glow-2:rgba(85,152,231,.12)}}
:root[data-theme="dark"]{--glass:rgba(17,22,31,.55); --glass-line:rgba(255,255,255,.09); --glass-tip:rgba(12,16,24,.78);
  --glass-shadow:0 24px 60px -24px rgba(0,0,0,.8); --map-none:#1f2835; --map-guide:#7d6128; --map-data:#d6ab5a; --map-edge:#0d121a; --map-on:#a9c3ef;
  --cov-glow-1:rgba(214,171,90,.14); --cov-glow-2:rgba(85,152,231,.12)}

.cov{border-bottom:1px solid var(--rule); overflow:hidden;
  background:radial-gradient(60% 70% at 12% 18%, var(--cov-glow-1), transparent 70%), radial-gradient(55% 65% at 88% 78%, var(--cov-glow-2), transparent 70%), var(--page)}
.cov-in{max-width:1480px; margin:0 auto; padding:72px 24px; display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  grid-template-areas:". map" "copy map" "chips map" ". map"; grid-template-rows:1fr auto auto 1fr; column-gap:48px; row-gap:4px; align-items:start}
.cov-copy{grid-area:copy} .cov-chips{grid-area:chips} .cov-map{grid-area:map; align-self:center}
.cov-copy h2{margin:10px 0 14px; font:600 34px/1.15 var(--serif); letter-spacing:-.02em; max-width:18ch}
.cov-copy > p{margin:0; color:var(--ink-2); font-size:15px; line-height:1.6; max-width:46ch}
.cov-figs{display:flex; gap:12px; margin:24px 0 20px}
.cov-figs > div{flex:1; padding:14px 16px; background:var(--glass); border:1px solid var(--glass-line); border-radius:14px;
  -webkit-backdrop-filter:blur(14px) saturate(140%); backdrop-filter:blur(14px) saturate(140%); box-shadow:var(--glass-shadow)}
.cov-figs strong{display:block; font:600 28px/1 var(--serif); letter-spacing:-.02em}
.cov-figs span{display:block; margin-top:6px; font-size:12.5px; color:var(--muted)}
.cov-key{list-style:none; margin:0 0 16px; padding:0; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:12.5px; color:var(--ink-2)}
.cov-key li{display:flex; align-items:center; gap:7px}
.cov-key i{width:12px; height:12px; border-radius:3px; border:1px solid var(--rule-2)}
.k-data{background:var(--map-data)} .k-guide{background:var(--map-guide)} .k-none{background:var(--map-none)}
.cov-chips{display:flex; flex-wrap:wrap; gap:6px}
.cov-chips a{padding:6px 11px; border-radius:999px; font-size:12.5px; font-weight:500; color:var(--ink); text-decoration:none !important;
  background:var(--glass); border:1px solid var(--glass-line); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  transition:background-color .15s, border-color .15s, transform .15s}
.cov-chips a.lv-data{border-color:var(--map-data)}
.cov-chips a:hover, .cov-chips a.on{background:var(--map-on); border-color:var(--map-on); color:var(--page); transform:translateY(-1px)}

.cov-map{position:relative; padding:18px 18px 12px; background:var(--glass); border:1px solid var(--glass-line); border-radius:22px;
  -webkit-backdrop-filter:blur(18px) saturate(150%); backdrop-filter:blur(18px) saturate(150%); box-shadow:var(--glass-shadow)}
.cov-map svg{display:block; width:100%; height:auto; max-height:72vh; overflow:visible}
.cov-map path{fill:var(--map-none); stroke:var(--map-edge); stroke-width:.7; stroke-linejoin:round; transition:fill .15s, filter .15s; outline:none}
.cov-map path.lv-guide{fill:var(--map-guide); cursor:pointer}
.cov-map path.lv-data{fill:var(--map-data); cursor:pointer}
.cov-map path.on{fill:var(--map-on); filter:drop-shadow(0 6px 10px rgba(10,18,32,.35))}
.cov-map path:focus-visible{stroke:var(--focus); stroke-width:2}
.cov-hit{fill:transparent; cursor:pointer}
.cov-pin{fill:var(--map-none); stroke:var(--map-edge); stroke-width:.8; pointer-events:none}
.cov-pin.lv-guide{fill:var(--map-guide)} .cov-pin.lv-data{fill:var(--map-data)} .cov-pin.on{fill:var(--map-on)}
.cov-src{margin:8px 4px 0; font-size:11px; color:var(--muted)}
.cov-src a{color:inherit; text-decoration:underline; text-underline-offset:2px}

.cov-tip{position:absolute; top:0; left:0; z-index:5; width:max-content; min-width:210px; max-width:270px; padding:14px 16px; pointer-events:none;
  background:var(--glass-tip); border:1px solid var(--glass-line); border-radius:16px; box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(16px) saturate(160%); backdrop-filter:blur(16px) saturate(160%); transition:transform .08s ease-out}
.cov-tip[hidden]{display:none}
.cov-tip-name{display:block; font:600 16px/1.25 var(--sans); color:var(--ink)}
.cov-tip-tags{display:flex; flex-wrap:wrap; gap:4px; margin-top:6px}
.cov-tip-tags em{font-style:normal; font-size:11px; font-weight:500; padding:3px 7px; border-radius:999px; background:var(--brass-soft); color:var(--ink)}
.cov-tip-tags em.t-data{background:var(--map-data); color:#0b1422}
.cov-tip-tags em.t-none{background:var(--sunk); color:var(--muted)}
.cov-tip-total{display:block; margin-top:10px; font:600 30px/1 var(--serif); letter-spacing:-.02em; color:var(--ink)}
.cov-tip-total small{display:block; margin-top:4px; font:400 12px/1.3 var(--sans); letter-spacing:0; color:var(--muted)}
.cov-tip dl{margin:10px 0 0; display:grid; gap:4px}
.cov-tip dl div{display:flex; justify-content:space-between; gap:16px; font-size:12.5px}
.cov-tip dt{color:var(--ink-2)}
.cov-tip dd{margin:0; font:500 12.5px var(--mono); color:var(--ink)}
.cov-tip p{margin:8px 0 0; font-size:11.5px; line-height:1.45; color:var(--muted)}
.cov-tip-go{display:flex; align-items:center; gap:5px; margin-top:10px; font-size:12px; font-weight:600; color:var(--link)}
.cov-tip-go svg{width:13px; height:13px}
@media (prefers-reduced-motion: reduce){ .cov-tip, .cov-map path, .cov-chips a{transition:none} }

.cta-band{background:var(--bar); color:var(--bar-ink)}
.cta-band .section{display:flex; justify-content:space-between; align-items:center; gap:32px; padding-top:56px; padding-bottom:56px; flex-wrap:wrap}
.cta-band h2{margin:0; font:600 30px/1.2 var(--serif); letter-spacing:-.02em; max-width:28ch}
.cta-band .btn-primary{background:#e9edf3; color:#0b1422}

/* ---------- prose (method) ---------- */
.doc{max-width:1480px; margin:0 auto; padding:56px 24px 72px; display:grid; grid-template-columns:240px minmax(0,760px); gap:64px}
.toc{position:sticky; top:88px; align-self:start; font-size:13px}
.toc a{display:block; padding:7px 0 7px 12px; color:var(--muted); border-left:1px solid var(--rule)}
.toc a:hover{color:var(--ink); text-decoration:none; border-left-color:var(--ink)}
.prose h1{margin:14px 0 18px; font:600 42px/1.1 var(--serif); letter-spacing:-.025em}
.prose h2{margin:44px 0 12px; font:600 24px/1.25 var(--serif); letter-spacing:-.015em; padding-top:24px; border-top:1px solid var(--rule)}
.prose p, .prose li{font-size:15px; line-height:1.72; color:var(--ink-2)}
.prose b{color:var(--ink); font-weight:600}
.prose .lede{font-size:18px; color:var(--ink)}
.prose table{margin:16px 0}

/* ---------- shortlist ---------- */
.page-head{max-width:1480px; margin:0 auto; padding:36px 24px 20px; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap}
.page-head h1{margin:10px 0 6px; font:600 36px/1.1 var(--serif); letter-spacing:-.02em}
.page-head p{margin:0; color:var(--muted); max-width:70ch}
.sl-group{max-width:1480px; margin:0 auto; padding:0 24px 32px}
.sl-group h2{display:flex; align-items:baseline; gap:12px; margin:0 0 12px; font:600 18px/1 var(--serif)}
.sl-group h2 span{font:400 12.5px var(--sans); color:var(--muted)}
.ord{font:500 13px var(--mono); color:var(--muted); width:36px}
.reorder{display:flex; gap:2px; justify-content:flex-end}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--rule); margin-top:24px}
.foot-in{max-width:1480px; margin:0 auto; padding:28px 24px 40px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:48px;
  font-size:12px; line-height:1.7; color:var(--muted)}
.foot-in b{color:var(--ink-2); font-weight:600}
.foot-in p{margin:0 0 8px}
.foot .wm{font:600 17px/1 var(--serif); color:var(--ink); margin-bottom:10px}

.gate{max-width:640px; margin:72px auto; padding:0 24px; text-align:center}
.gate h1{font:600 34px/1.15 var(--serif); letter-spacing:-.02em; margin:14px 0 12px}
.gate > p{color:var(--ink-2); font-size:15px; line-height:1.6; margin:0 0 26px}
.gate .auth-card{max-width:460px; margin:0 auto}

/* ---------- responsive ---------- */
@media (max-width:1360px){
  .workspace{grid-template-columns:244px minmax(0,1fr); gap:20px}
  .grid td.wrapcell{min-width:150px}
}
@media (max-width:1100px){
  .workspace{grid-template-columns:1fr; gap:16px}
  .rail{position:static; max-height:none; display:grid; grid-template-columns:minmax(0,1fr)}
  .rail-toggle{display:flex; width:100%; justify-content:space-between; align-items:center; padding:14px 18px; border:0; border-top:1px solid var(--rule);
    background:var(--surface); cursor:pointer; font:600 12px/1 var(--sans); letter-spacing:.1em; text-transform:uppercase; color:var(--ink)}
  .rail-toggle span{font:400 12.5px var(--sans); letter-spacing:0; text-transform:none; color:var(--muted); max-width:60%; text-align:right;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
  .rail.collapsed .fold{display:none}
}
@media (max-width:1180px){
  .ctx-note{margin-left:0; text-align:left; flex-basis:100%}
  .ctx-guide{justify-content:flex-start}
  .hero-in{grid-template-columns:1fr; gap:32px; padding-top:40px}
  .hero-auth{order:-1; max-width:520px; justify-self:start}
}
@media (max-width:960px){
  .gd{padding:28px 16px 48px}
  .worktabs-in{padding:0 12px}
  .gd-updates li{grid-template-columns:auto minmax(0,1fr); padding:10px 14px}
  .gd-updates li span{grid-column:1 / -1}
  .gd-updates li a{grid-column:1 / -1}
  .cov-in{grid-template-columns:1fr; grid-template-areas:"copy" "map" "chips"; gap:20px; padding:48px 16px}
  .cov-copy h2{font-size:27px}
  .cov-map{padding:12px 10px 10px; border-radius:18px}
  .roadmap{padding:16px}
  .rm-body{grid-template-columns:1fr}
  .rm-steps{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(112px, 1fr); overflow-x:auto; padding-bottom:6px}
  .topbar-in{gap:14px; padding:0 16px}
  .wordmark small{display:none}
  .mainnav{position:fixed; left:0; right:0; bottom:0; z-index:45; height:60px; padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    box-sizing:content-box; background:var(--bar); border-top:1px solid var(--bar-rule); gap:6px}
  .mainnav a{flex:1; min-width:0; height:48px; flex-direction:column; justify-content:center; gap:4px; padding:0 4px; font-size:12px}
  .mainnav .nav-full{display:none}
  .mainnav .nav-short{display:inline}
  body{padding-bottom:calc(73px + env(safe-area-inset-bottom))}
  .workspace{padding:16px}
  .ctxbar-in{padding:12px 16px; gap:12px}
  .scope{width:100%}
  .scope button{flex:1; min-width:0; padding:8px 12px}
  .ctx-ds{width:100%}
  .ctx-ds .select{min-width:0; flex:1}
  .stats-in{grid-template-columns:1fr 1fr}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .section{padding:48px 16px}
  .section-head{grid-template-columns:1fr; gap:16px}
  .steps{grid-template-columns:1fr}
  .step + .step{padding-left:0; border-left:0; border-top:1px solid var(--rule)}
  .band-key{grid-template-columns:1fr 1fr}
  .band-key div:nth-child(2){border-right:0}
  .band-key div:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .doc{grid-template-columns:1fr; gap:24px; padding:32px 16px 48px}
  .toc{display:none}
  .foot-in{grid-template-columns:1fr; gap:16px; padding:24px 16px 32px}
  .wrap, .page-head, .sl-group{padding-left:16px; padding-right:16px}
  .hero-in{padding:40px 16px 48px}
  .priority-in{padding:12px 16px; gap:6px 16px}
  .priority-go{margin-left:0}
  .dist{grid-template-columns:1fr}
  .announce div{padding:9px 16px}
}
@media (max-width:560px){
  .gd-grid{grid-template-columns:minmax(0,1fr)}
  .gd-soon li{align-items:flex-start}
  .topbar .counsel-label{display:none}
  .acct-btn .acct-name{display:none}
  .res-head{flex-direction:column; align-items:flex-start}
  .res-count strong{font-size:32px}
  .scope button span{display:none}
  .facts{grid-template-columns:1fr 1fr}
  .otp input{width:46px; height:52px}
  .otp.six input{width:40px}
  .auth-card{padding:18px 16px}
  .auth-pair{grid-template-columns:1fr}
  .gate{margin:40px auto; padding:0 16px}
}

/* ---------- counselling roadmap: one page per region ---------- */
.rp{max-width:1480px; margin:0 auto; padding:28px 24px 64px; display:grid; grid-template-columns:300px minmax(0,1fr);
  grid-template-areas:"side main"; gap:28px; align-items:start}
.rp-main{grid-area:main; min-width:0}
.rp-side{grid-area:side; position:sticky; top:72px; max-height:calc(100vh - 88px); overflow:auto; background:var(--surface);
  border:1px solid var(--rule); padding:18px 16px}
.rp-wait{display:grid; place-items:center; min-height:200px}
.rp-crumb{display:flex; flex-wrap:wrap; align-items:center; gap:8px; font:600 11px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.rp-crumb a{color:var(--muted)}
.rp-crumb .select{height:30px; width:auto; min-width:180px; padding-top:0; padding-bottom:0; font:500 13px var(--sans); letter-spacing:0; text-transform:none; color:var(--ink)}
.rp h1{margin:12px 0 6px; font:600 clamp(26px,3vw,36px)/1.1 var(--serif); letter-spacing:-.02em}
.rp-lede{margin:0; color:var(--ink-2); font-size:14.5px}
.rp-lede b{font-weight:600; color:var(--ink)}
.rp-now{margin:8px 0 0; font-size:13px; color:var(--muted)}
.rp-now small{margin-left:6px; color:var(--faint)}
.rp-review{display:flex; gap:8px; align-items:flex-start; margin:10px 0 0; padding:8px 12px; font-size:13px; border:1px solid var(--rule); border-radius:var(--r); background:var(--surface)}
.rp-review svg{width:16px; height:16px; flex:none; margin-top:1px}

.rp-steps{list-style:none; margin:24px 0 0; padding:18px 12px; display:grid; grid-template-columns:repeat(6, minmax(0,1fr));
  background:var(--surface); border:1px solid var(--rule)}
.rp-steps li{position:relative; display:grid; justify-items:center; row-gap:6px; text-align:center; font-size:13px}
.rp-steps li::before{content:""; position:absolute; top:23px; left:calc(-50% + 22px); right:calc(50% + 22px); height:2px; background:var(--rule)}
.rp-steps li:first-child::before{display:none}
.rp-steps li.done::before, .rp-steps li.current::before{background:var(--ok)}
.rp-dot{display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--sunk); border:2px solid var(--rule-2);
  font:600 13px/1 var(--sans); color:var(--muted)}
.rp-steps li.done .rp-dot{background:var(--ok); border-color:var(--ok); color:var(--surface)}
.rp-steps li.current .rp-dot{background:var(--link); border-color:var(--link); color:var(--surface); box-shadow:0 0 0 4px var(--brand-soft)}
.rp-steps b{font-weight:600; color:var(--ink); line-height:1.25}
.rp-steps li.upcoming b{color:var(--ink-2)}
.rp-steps a{position:relative; z-index:1; display:grid; justify-items:center; row-gap:6px; width:calc(100% - 8px); padding:6px 4px 10px;
  color:inherit; text-decoration:none !important; border-bottom:3px solid transparent}
.rp-steps a:hover{background:var(--hover)}
.rp-steps a:hover b{color:var(--link)}
.rp-steps li.on a{border-bottom-color:var(--link); background:var(--brand-soft)}
.rp-steps li.on b{color:var(--link)}
.rp-panel{margin-top:14px; padding:22px 22px 26px; background:var(--surface); border:1px solid var(--rule); scroll-margin-top:72px; min-width:0}

.rp-head{display:flex; align-items:flex-start; gap:14px; padding-bottom:18px; border-bottom:1px solid var(--rule)}
.rp-hicon{display:grid; place-items:center; width:42px; height:42px; flex:none; color:var(--link); background:var(--brand-soft)}
.rp-hicon svg{width:22px; height:22px}
.rp-head h2{margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:10px; font:600 22px/1.2 var(--serif); letter-spacing:-.01em}
.rp-head p{margin:4px 0 0; font-size:13.5px; color:var(--ink-2); max-width:72ch}
.rp-head-act{margin-left:auto; flex:none}
.rp-head-act svg{width:15px; height:15px}

.rp-guides{display:flex; flex-wrap:wrap; gap:6px; margin-top:16px}
.rp-guides a{padding:7px 12px; border:1px solid var(--rule-2); color:var(--ink-2); font:500 12.5px/1.2 var(--sans); text-decoration:none !important}
.rp-guides a[aria-current]{background:var(--ink); border-color:var(--ink); color:var(--page)}
.rp-chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-bottom:16px; border-bottom:1px solid var(--rule)}
.rp-chips a{padding:8px 14px; background:var(--sunk); border:1px solid var(--rule); color:var(--ink); font:500 13px/1.2 var(--sans); text-decoration:none !important}
.rp-chips a:hover{border-color:var(--rule-2)}
.rp-chips a[aria-current]{background:var(--brand-soft); border-color:var(--link); color:var(--link); font-weight:600}

.rp-glance-head, .rp-read-head{display:flex; gap:12px; align-items:flex-start; margin-top:20px}
.rp-glance-head > svg{width:26px; height:26px; color:var(--link); flex:none; margin-top:2px}
.rp-glance-head h3, .rp-read-head h3{margin:0; font:600 19px/1.25 var(--serif)}
.rp-glance-head p{margin:3px 0 0; font-size:13px; color:var(--muted)}
.rp-glance{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin-top:16px}
.rp-gcard{display:flex; align-items:center; gap:12px; min-width:0; padding:14px; border:1px solid var(--rule); background:var(--surface);
  color:var(--ink); text-decoration:none !important}
.rp-gcard:hover{border-color:var(--rule-2); background:var(--hover)}
.rp-gcard > svg{width:16px; height:16px; flex:none; margin-left:auto; color:var(--muted)}
.rp-gicon{display:grid; place-items:center; width:40px; height:40px; flex:none}
.rp-gicon svg{width:21px; height:21px}
.rp-gtext{display:grid; gap:3px; min-width:0}
.rp-gtext b{font-weight:600; font-size:14px; line-height:1.3}
.rp-gtext small{font-size:12px; line-height:1.4; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.t-blue .rp-gicon, .rp-gicon.t-blue{color:var(--link); background:var(--brand-soft)}
.t-green .rp-gicon, .rp-gicon.t-green{color:var(--ok); background:var(--ok-bg)}
.t-orange .rp-gicon, .rp-gicon.t-orange{color:var(--warn); background:var(--warn-bg)}
.t-red .rp-gicon, .rp-gicon.t-red{color:var(--err); background:var(--err-bg)}
.t-purple .rp-gicon, .rp-gicon.t-purple{color:var(--violet); background:var(--violet-bg)}
.rp-orig{margin:16px 0 0; font-size:12.5px; color:var(--muted)}
.rp-orig svg{width:12px; height:12px; vertical-align:-1px}
.rp-read-head small{display:block; margin-top:2px; font-size:12px; color:var(--muted)}

/* A guide section, cleaned of the guide's own styling, in RankRound type. */
.rp-prose{margin-top:16px; font-size:14px; line-height:1.65; color:var(--ink-2); max-width:84ch; overflow-wrap:anywhere}
.rp-prose > div, .rp-prose div div{margin:0 0 .6em}
.rp-prose p{margin:0 0 .8em}
.rp-prose h3, .rp-prose h4, .rp-prose h5{margin:1.2em 0 .4em; font:600 15px/1.35 var(--sans); color:var(--ink)}
.rp-prose b, .rp-prose strong{color:var(--ink); font-weight:600}
.rp-prose ul, .rp-prose ol{margin:0 0 .9em; padding-left:1.3em}
.rp-prose li{margin:.25em 0}
.rp-prose table{display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:.4em 0 1em; font-size:13px}
.rp-prose th, .rp-prose td{padding:7px 10px; border:1px solid var(--rule); text-align:left; vertical-align:top}
.rp-prose th{background:var(--sunk); color:var(--ink); font-weight:600}
.rp-prose details{margin:.6em 0; padding:8px 12px; border:1px solid var(--rule)}
.rp-prose summary{cursor:pointer; font-weight:600; color:var(--ink)}
.rp-prose blockquote{margin:.8em 0; padding:8px 14px; border-left:3px solid var(--brass); background:var(--sunk)}
.rp-prose small{font-size:12px; color:var(--muted)}
.rp-read-nav{display:flex; justify-content:space-between; gap:12px; margin-top:22px; padding-top:16px; border-top:1px solid var(--rule)}
.rp-read-nav a{display:grid; gap:2px; padding:10px 14px; border:1px solid var(--rule); max-width:48%; text-decoration:none !important; color:var(--ink)}
.rp-read-nav a:hover{border-color:var(--rule-2)}
.rp-read-nav a.next{margin-left:auto; text-align:right}
.rp-read-nav small{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted)}
.rp-read-nav b{font-weight:600; font-size:13.5px}

.rp-tools{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:10px; margin-top:16px}
.rp-tool{display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--rule); color:var(--ink); text-decoration:none !important}
.rp-tool:hover{border-color:var(--rule-2)}
.rp-tool > svg{width:18px; height:18px; flex:none; color:var(--link)}
.rp-tool > svg:last-child{margin-left:auto; color:var(--muted); width:15px}
.rp-tool span{display:grid; gap:2px}
.rp-tool b{font-weight:600; font-size:13.5px}
.rp-tool small{font-size:12px; color:var(--muted)}
.rp-docs{margin-top:18px; border:1px solid var(--rule)}
.rp-docs summary{padding:12px 14px; cursor:pointer; font-weight:600; font-size:13.5px}
.rp-docs summary span{margin-left:6px; font:500 11px/1 var(--mono); padding:3px 6px; background:var(--sunk); color:var(--muted)}
.rp-docs ul{list-style:none; margin:0; padding:0 14px 8px}
.rp-docs li a{display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:10px; padding:9px 0; border-top:1px solid var(--rule); color:var(--ink); text-decoration:none !important}
.rp-docs li a:hover b{text-decoration:underline}
.rp-docs .gd-doc-kind{grid-row:span 2; align-self:start}
.rp-docs b{font-weight:500; font-size:13px}
.rp-docs small{font-size:11.5px; color:var(--muted)}

.rp-soon, .rp-lock{margin-top:18px; padding:36px 20px; text-align:center; border:1px dashed var(--rule-2); background:var(--page)}
.rp-soon > svg, .rp-lock > svg{width:34px; height:34px; color:var(--muted)}
.rp-soon h3, .rp-lock h3{margin:10px 0 4px; font:600 16px/1.3 var(--sans)}
.rp-soon p, .rp-lock p{margin:0 auto; max-width:60ch; font-size:13px; color:var(--muted)}
.rp-lock{border-style:solid; background:var(--brand-soft)}
.rp-lock > svg{color:var(--link)}

.rp-round{display:grid; grid-template-columns:230px minmax(0,1fr); gap:18px; margin-top:18px}
.rp-sub{display:grid; align-content:start; gap:6px}
.rp-sub a{display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--rule); border-left-width:3px; color:var(--ink); text-decoration:none !important}
.rp-sub a:hover{background:var(--hover)}
.rp-sub a[aria-current="page"]{border-left-color:var(--link); background:var(--brand-soft)}
.rp-sub a[aria-current="page"] b{color:var(--link)}
.rp-sub svg{width:20px; height:20px; flex:none; color:var(--link); margin-top:1px}
.rp-sub span{display:grid; gap:2px}
.rp-sub b{font-weight:600; font-size:14px}
.rp-sub small{font-size:12px; line-height:1.35; color:var(--muted)}
.rp-round-body{min-width:0}
.rp-sub-title{margin:18px 0 0; font:600 18px/1.3 var(--serif)}
.rp-round-body > .rp-sub-title:first-child{margin-top:0}
.rp-sub-title small{margin-left:8px; font:400 12.5px var(--sans); color:var(--muted)}
.rp-versions{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.rp-versions button{display:grid; gap:2px; text-align:left; padding:8px 12px; border:1px solid var(--rule); border-radius:var(--r); background:var(--surface); color:var(--ink-2); cursor:pointer; font:500 13.5px/1.25 var(--sans)}
.rp-versions button small{font-weight:400; font-size:12px; color:var(--muted)}
.rp-versions button:hover{border-color:var(--ink-2); color:var(--ink)}
.rp-versions button[aria-pressed="true"]{border-color:var(--link); color:var(--link); box-shadow:inset 0 0 0 1px var(--link)}
.rp-round-body > .rp-versions + .rp-sub-title{margin-top:0}

/* the data tables: programme tabs, filters, summary, table */
.rp-prog{display:flex; gap:0; margin-top:14px; border-bottom:1px solid var(--rule)}
.rp-prog button{padding:11px 22px 9px; border:0; border-bottom:2px solid transparent; background:none; cursor:pointer; color:var(--ink-2); font:500 14px/1 var(--sans)}
.rp-prog button:hover:not(:disabled){color:var(--ink)}
.rp-prog button[aria-pressed="true"]{color:var(--link); font-weight:600; border-bottom-color:var(--link)}
.rp-prog button:disabled{color:var(--faint); cursor:not-allowed}
.rp-filters{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:12px; align-items:end; margin-top:14px}
.rp-filters .field{margin:0; min-width:0}
.rp-filters .seg button{flex:1}
.rp-filters .seg button:disabled{opacity:.4; cursor:not-allowed}
.rp-q, .rp-filters > .rp-wide{grid-column:span 2}
.rp-q .search-wrap{display:block}
.rp-clear .btn{width:100%}
.rp-range > div{display:grid; grid-template-columns:1fr 1fr; gap:6px}
.rp-find{margin-top:14px; padding:14px; background:var(--sunk); border:1px solid var(--rule)}
.rp-find-row{display:flex; gap:8px; max-width:360px}
.rp-find-row .input{font:500 16px var(--mono)}
.rp-find p{margin:8px 0 0; font-size:13.5px; color:var(--ink-2)}
.rp-find p:empty{display:none}
.rp-pred{display:grid; grid-template-columns:200px minmax(0,1fr); gap:16px; align-items:start; margin-top:14px; padding:14px 16px;
  background:var(--brand-soft); border:1px solid var(--rule)}
.rp-pred .field{margin:0}
.rp-pred .input-rank{height:46px; font-size:22px}
.rp-pred p{margin:0; font-size:13px; line-height:1.55; color:var(--ink-2)}
.rp-pred p b{color:var(--ink)}
.rp-pred .check{margin-top:10px; font-size:13px; color:var(--ink)}
.rp-grid .band.chip{white-space:nowrap}
.cf-box{margin-top:10px; font-size:12.5px; line-height:1.5; color:var(--ink-2)}
.cf-box:empty{display:none}
.cf-box p{margin:0 0 8px}
.cf-box b{color:var(--ink)}
.cf-box .btn svg{width:13px; height:13px}
.cf-out:empty{display:none}
.cf-out{margin-top:10px; display:grid; gap:8px}
.cf-out .spinner{justify-self:start}
.cf-hit{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding:9px 10px; background:var(--surface); border:1px solid var(--rule)}
.cf-hit b{display:block; font-weight:600}
.cf-hit small{color:var(--muted)}
.cf-name{display:grid; gap:4px; font-size:12px; color:var(--muted)}
.cf-name .input{height:34px; font-size:13px}
.cf-wide{margin:12px 0 0; padding:12px 14px; background:var(--brand-soft); border:1px solid var(--rule)}
.rp-stats{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); border:1px solid var(--rule); margin-top:14px}
.rp-stats div{padding:12px 14px; display:grid; gap:2px}
.rp-stats div + div{border-left:1px solid var(--rule)}
.rp-stats b{font:500 22px/1.1 var(--mono); color:var(--ink)}
.rp-stats span{font-size:12px; color:var(--muted)}
.rp-sum{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin:16px 0 10px}
.rp-sum p{margin:0; font-size:13.5px; color:var(--ink-2)}
.rp-sum b{font-weight:600; color:var(--ink)}
.rp-sum svg{width:14px; height:14px}
.rp-grid td .sub, .rp-grid th .sub{display:block; margin-top:2px; font-size:11.5px; font-weight:400; color:var(--muted); text-transform:none; letter-spacing:0}
.rp-grid td b{font-weight:600; color:var(--ink)}
.rp-grid tr.me td{background:var(--warn-bg)}
.rp-grid td.rp-none{padding:32px; text-align:center; color:var(--muted)}
.rp-chip{display:inline-block; margin:1px 0; padding:2px 6px; font:500 11.5px var(--mono); background:var(--brand-soft); color:var(--link); white-space:nowrap}
.rp-bad{color:var(--err); font-weight:500}
.rp-tag{white-space:normal; font-family:var(--sans)}
.rp-tag-bad{color:var(--err); background:var(--err-bg)}
.rp-more{display:block; margin:14px auto 0}

/* the dates rail */
.rp-side h2{display:flex; align-items:center; gap:8px; margin:0 0 14px; font:600 15px/1.3 var(--sans)}
.rp-side h2 svg{width:19px; height:19px; color:var(--link)}
.rp-side h2 small{font-weight:400; color:var(--muted); font-size:12px}
.rp-dates{list-style:none; margin:0; padding:0 0 0 14px; border-left:2px solid var(--rule)}
.rp-dates li{position:relative; display:grid; grid-template-columns:62px minmax(0,1fr); gap:10px; padding:8px 0}
.rp-dates li::before{content:""; position:absolute; left:-20px; top:18px; width:10px; height:10px; border-radius:50%; background:var(--surface); border:2px solid var(--rule-2)}
.rp-dates li.open::before, .rp-dates li.urgent::before{background:var(--ok); border-color:var(--ok)}
.rp-day{display:grid; align-content:center; justify-items:center; height:54px; background:var(--sunk); border:1px solid var(--rule)}
.rp-dates li.open .rp-day, .rp-dates li.urgent .rp-day{background:var(--ok-bg); border-color:transparent}
.rp-day b{font:600 19px/1 var(--mono); color:var(--ink)}
.rp-day small{margin-top:3px; font-size:10.5px; color:var(--muted)}
.rp-what{display:grid; gap:3px; align-content:start; min-width:0}
.rp-what b{font-weight:600; font-size:13px; line-height:1.3; color:var(--ink)}
.rp-what small{font-size:12px; line-height:1.4; color:var(--muted)}
.rp-what .gd-pill{justify-self:start; padding:3px 7px; font-size:11px}
.rp-dates li.done{opacity:.65}
.rp-side .rp-more{width:100%; margin-top:12px}
.rp-side .rp-more svg{width:15px; height:15px}
.rp-nodates{margin:0; font-size:13px; color:var(--muted)}

/* predictor: programme buttons, and the "past every closing rank" state */
.seg-prog button{padding:0 6px}
.seg-prog button:disabled{opacity:.4; cursor:not-allowed}
.empty.oor{padding-bottom:18px}
.empty.oor p + p{margin-top:8px}
.near{padding:0 20px 20px}
.near ul{list-style:none; margin:10px 0 0; padding:0; border-top:1px solid var(--rule)}
.near li{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto; gap:12px; align-items:baseline; padding:9px 4px; border-bottom:1px solid var(--rule);
  font-size:13px; cursor:pointer}
.near li:hover{background:var(--hover)}
.near li b{font-weight:600}
.near li span{color:var(--muted)}
.near li .num{color:var(--ink)}
.gd-rm{background:var(--brand-soft)}

@media (max-width:1100px){
  .rp{grid-template-columns:minmax(0,1fr); grid-template-areas:"main" "side"}
  .rp-side{position:static; max-height:none}
  .rp-glance{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:760px){
  .rp{padding:20px 16px 48px; gap:18px}
  .rp-steps{grid-template-columns:repeat(3, minmax(0,1fr)); row-gap:16px}
  .rp-steps li:nth-child(4)::before{display:none}
  .rp-panel{padding:16px 14px 20px}
  .rp-head{flex-wrap:wrap}
  .rp-head-act{margin-left:56px}
  .rp-glance{grid-template-columns:minmax(0,1fr)}
  .rp-round{grid-template-columns:minmax(0,1fr)}
  .rp-sub{grid-template-columns:repeat(3, minmax(0,1fr))}
  .rp-sub a{flex-direction:column; gap:6px; padding:10px}
  .rp-sub small{display:none}
  .rp-q{grid-column:auto}
  .rp-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .rp-filters > .field:has(.seg), .rp-q, .rp-clear, .rp-range{grid-column:1 / -1}
  .rp-stats{grid-template-columns:1fr 1fr}
  .rp-pred{grid-template-columns:minmax(0,1fr)}
  .rp-stats div:nth-child(3){border-left:0}
  .rp-stats div:nth-child(n+3){border-top:1px solid var(--rule)}
  .rp-prog{overflow-x:auto}
  .rp-prog button{padding:10px 14px 8px; flex:none}
  .rp-read-nav a{max-width:none; flex:1}
  .near li{grid-template-columns:minmax(0,1fr) auto}
  .near li span:not(.num){grid-column:1}
}

/* ---------- print (shortlist) ---------- */
@media print{
  .topbar, .announce, .foot, .page-head .res-actions, .reorder, .no-print, .worktabs, .roadmap, .rp-side, .rp-steps{display:none !important}
  body{background:#fff; color:#000}
  .grid-wrap{border:0; overflow:visible}
  .grid th{position:static; background:#fff; color:#000; border-bottom:1px solid #000}
  .grid td{color:#000}
  .sl-group{break-inside:avoid}
}

/* seats lying vacant after a round, under a state's allotment */
.rp-vacant{margin-top:22px; border:1px solid var(--rule); border-radius:var(--r); background:var(--surface)}
.rp-vacant > summary{cursor:pointer; padding:12px 16px; font-size:.95rem}
.rp-vacant > summary b{font-variant-numeric:tabular-nums}
.rp-vacant[open] > summary{border-bottom:1px solid var(--rule)}
.rp-vacant .grid-wrap{border:0; border-radius:0; margin:0}

/* ---------- seat matrix of India (/seats) ---------- */
/* college types: slots 1-3 of the validated categorical palette, stepped for each surface */
:root{--sm-1:#2a78d6; --sm-2:#eb6834; --sm-3:#1baf7a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--sm-1:#3987e5; --sm-2:#d95926; --sm-3:#199e70}}
:root[data-theme="dark"]{--sm-1:#3987e5; --sm-2:#d95926; --sm-3:#199e70}
.sm{max-width:1480px; margin:0 auto; padding:28px 24px 48px}
.sm .page-head{padding:0 0 18px}
/* stipend and bond */
.bd-src{max-width:95ch; margin:0 0 16px; color:var(--ink-2); line-height:1.6; font-size:14px}
.bd-grid td{vertical-align:top}
.bd-grid td:nth-child(1){min-width:130px}
.bd-grid td:nth-child(2), .bd-grid th:nth-child(2), .bd-grid td:nth-child(3), .bd-grid td:nth-child(4){width:1%; white-space:nowrap}
.bd-grid td.wrapcell{min-width:300px; line-height:1.5; white-space:normal}
.bd-grid .sub-inline{color:var(--muted)}
.bd-grid a{white-space:nowrap}
.bd-note{display:block; white-space:normal; max-width:250px; margin-left:auto; text-align:left; font:400 12.5px/1.45 var(--sans)}
.bd-grid a svg{width:13px; height:13px; vertical-align:-2px}
.bd-check{display:block; margin-top:4px; font:600 11.5px/1.3 var(--sans)}
.bd-ok{color:var(--ok, #2e7d4f)} .bd-info{color:var(--link)} .bd-bad{color:var(--err)}
.bd-mine{align-self:end; padding-bottom:10px}
/* rank journey */
.jr-seat{padding:3px 0}
.jr-seat + .jr-seat{border-top:1px dashed var(--rule); margin-top:4px; padding-top:7px}
.jr-seat b{display:block; font-weight:600}
.jr-set{display:block; font:600 11px/1.3 var(--sans); letter-spacing:.04em; text-transform:uppercase; color:var(--muted)}
.jr-src{margin:4px 0 18px; font-size:13.5px}
.jr-src summary{cursor:pointer; font-weight:600}
.jr-src ul{margin:8px 0; padding-left:20px; line-height:1.6}
.sm .page-head p{max-width:900px}
.sm-t1{background:var(--sm-1)} .sm-t2{background:var(--sm-2)} .sm-t3{background:var(--sm-3)}
.sm-dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:1px}
.sm-viz{position:relative; margin-top:18px}
.sm-kpis{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)) minmax(0,1.6fr); border:1px solid var(--rule); background:var(--surface)}
.sm-kpis > div{padding:12px 14px; display:grid; gap:4px; align-content:start}
.sm-kpis > div + div{border-left:1px solid var(--rule)}
.sm-kpis b{font:500 22px/1.1 var(--mono); color:var(--ink)}
.sm-kpis span, .sm-kpis small{font-size:12px; color:var(--muted)}
.sm-split > span{display:flex; gap:2px; height:12px; margin-top:4px}
.sm-split > span i{display:block; min-width:2px}
.sm-split > span i:last-child{border-radius:0 4px 4px 0}
.sm-charts{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:16px; margin-top:16px}
.sm-card{margin:0; padding:14px 16px 12px; border:1px solid var(--rule); background:var(--surface); min-width:0}
.sm-card figcaption{font:600 14px/1.3 var(--sans); color:var(--ink); margin-bottom:8px}
.sm-card figcaption small{font-weight:400; color:var(--muted); margin-left:6px}
.sm-legend{display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--ink-2); margin-bottom:8px}
.sm-legend i{display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:-1px}
.sm-bars{display:grid; gap:2px; max-height:620px; overflow-y:auto}
.sm-row{display:grid; grid-template-columns:minmax(0,170px) minmax(0,1fr) 64px; align-items:center; gap:10px; padding:3px 4px; border-radius:var(--r); outline-offset:-2px}
.sm-row[data-state]{cursor:pointer}
.sm-row:hover, .sm-row:focus-visible{background:var(--hover)}
.sm-lab{font-size:12.5px; color:var(--ink-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sm-track{display:block; height:14px}
.sm-bar{display:flex; gap:2px; height:100%; min-width:3px}
.sm-bar i{display:block; height:100%; min-width:2px}
.sm-bar i:last-child{border-radius:0 4px 4px 0}
.sm-one i{flex:1; background:var(--series)}
.sm-val{font:500 12.5px/1 var(--mono); color:var(--ink); text-align:right}
.sm-tip{position:absolute; z-index:5; pointer-events:none; display:grid; gap:3px; min-width:170px; padding:9px 11px; font-size:12.5px; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule-2); border-radius:var(--r); box-shadow:var(--shadow-pop)}
.sm-tip span{display:flex; align-items:center; gap:6px; color:var(--ink-2)}
.sm-tip span b{margin-left:auto; font:500 12.5px var(--mono); color:var(--ink)}
.sm-tip i{display:inline-block; width:8px; height:8px; border-radius:2px}
.sm-tip .sm-tipc{font-size:12px; max-width:300px}
/* seat map: one brass hue, light to dark for more seats (dark mode: dim to bright) */
:root{--sq0:#ebe7dd; --sq1:#f2e3bf; --sq2:#e3c47f; --sq3:#c99a43; --sq4:#9c7024; --sq5:#5f4313; --sm-town:#a67a2b; --sm-dist:#f6f3ec}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--sq0:#1c2430; --sq1:#3b3322; --sq2:#5f4b22; --sq3:#8c6a2a; --sq4:#bf9140; --sq5:#ecc77c; --sm-town:#d6ab5a; --sm-dist:#18202b}}
:root[data-theme="dark"]{--sq0:#1c2430; --sq1:#3b3322; --sq2:#5f4b22; --sq3:#8c6a2a; --sq4:#bf9140; --sq5:#ecc77c; --sm-town:#d6ab5a; --sm-dist:#18202b}
.sm-mapcard{margin-top:16px}
.sm-mapcard figcaption .linkbtn{margin-left:10px; font-size:12.5px; font-weight:500}
.sm-mapgrid{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:20px; align-items:start}
.sm-map svg{display:block; width:100%; height:auto; max-height:560px; overflow:visible}
.sm-map path{stroke:var(--surface); stroke-width:.7; stroke-linejoin:round; outline:none}
.sm-map path[data-state]{cursor:pointer}
.sm-map path[data-state]:hover, .sm-map path[data-state]:focus-visible{stroke:var(--ink); stroke-width:1.4}
.sm-map .sq0{fill:var(--sq0)} .sm-map .sq1{fill:var(--sq1)} .sm-map .sq2{fill:var(--sq2)} .sm-map .sq3{fill:var(--sq3)} .sm-map .sq4{fill:var(--sq4)} .sm-map .sq5{fill:var(--sq5)}
.sm-pin{stroke:var(--ink); stroke-width:.8; cursor:pointer}
.sm-dists path{fill:var(--sm-dist); stroke:var(--rule-strong); stroke-width:.6}
.sm-map .sm-outline{fill:none; stroke:var(--ink-2); stroke-width:1.2; pointer-events:none}
.sm-town{fill:var(--sm-town); fill-opacity:.78; stroke:var(--surface); stroke-width:1.5; cursor:default; outline:none}
.sm-town:hover, .sm-town:focus-visible{fill-opacity:1; stroke:var(--ink)}
.sm-tlab{fill:var(--ink); font-family:var(--sans); font-weight:600; text-anchor:middle; paint-order:stroke; stroke:var(--surface); stroke-width:3px; stroke-linejoin:round; pointer-events:none}
.sm-mapside{display:grid; gap:12px; align-content:start; min-width:0}
.sm-mapkey{display:grid; gap:6px; font-size:12px; color:var(--ink-2)}
.sm-keyt{font-weight:600; color:var(--ink)}
.sm-steps{display:flex; flex-wrap:wrap; gap:6px 12px}
.sm-steps span{display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:11.5px}
.sm-steps i{width:14px; height:10px; border-radius:2px; border:1px solid var(--rule)}
.sm-steps .sq0{background:var(--sq0)} .sm-steps .sq1{background:var(--sq1)} .sm-steps .sq2{background:var(--sq2)} .sm-steps .sq3{background:var(--sq3)} .sm-steps .sq4{background:var(--sq4)} .sm-steps .sq5{background:var(--sq5)}
.sm-listt{margin:0 0 4px; font-size:12px; font-weight:600; color:var(--ink)}
#sm-maplist{max-height:none}
@media (max-width: 900px){
  .sm-mapgrid{grid-template-columns:minmax(0,1fr)}
  .sm{padding:20px 16px 40px}
  .sm-kpis{grid-template-columns:repeat(2, minmax(0,1fr))}
  .sm-kpis > div:nth-child(odd){border-left:0}
  .sm-kpis > div:nth-child(n+3){border-top:1px solid var(--rule)}
  .sm-split{grid-column:1 / -1}
  .sm-charts{grid-template-columns:minmax(0,1fr)}
  .sm-row{grid-template-columns:minmax(0,110px) minmax(0,1fr) 52px; gap:8px}
}
