/* Layout: one centered 1180px column per band; pages swap inside <main> by hash route. Single light look matching the logo. */
:root{
  --navy:#1B2A55; --navy-dk:#121D3B; --ink:#2B3245; --ink-2:#3A4256; --muted:#5A6378; --muted-2:#6B7386;
  --silver:#A7ADB8; --line:#DDE1E8; --line-2:#E3E6EC; --line-3:#EEF0F4; --wash:#F3F5F8; --white:#FFFFFF;
  --good:#1F7A5A; --good-bg:#EEF7F2; --good-ink:#0F4A35;
  --mid-bg:#EDF0F7;
  --warn:#B45309; --warn-bg:#FDF3E7; --warn-ink:#7A3A08; --warn-line:#E6C9A8; --warn-card:#FFFBF5;
  --serif:'Libre Baskerville',Georgia,'Times New Roman',serif;
  --sans:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{background:var(--white)}
body{color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--navy-dk)}
button,input,select{font-family:inherit}
:focus-visible{outline:3px solid #7F95D1;outline-offset:2px}
h1,h2,h3{text-wrap:balance}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:700px){.wrap{padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}}
.serif{font-family:var(--serif)}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.card{background:var(--white);border:1px solid var(--line);border-radius:10px}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:6px;font-weight:600;font-size:16px;cursor:pointer;border:1px solid var(--navy);text-align:center}
.btn-primary{background:var(--navy);color:var(--white)}
.btn-primary:hover{background:var(--navy-dk);color:var(--white)}
.btn-primary:disabled{background:var(--silver);border-color:var(--silver);cursor:not-allowed}
.btn-secondary{background:var(--white);color:var(--navy)}
.btn-secondary:hover{background:var(--wash);color:var(--navy)}
.btn-ghost{background:transparent;color:var(--navy);border-color:transparent;min-height:44px;padding:0 14px}
.btn-ghost:hover{border-color:#C9CED8}
.btn-sm{min-height:44px;padding:0 18px;font-size:15px}
.link-btn{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--navy);cursor:pointer;min-height:44px}
.link-btn:hover{text-decoration:underline}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 10px;border:1px solid var(--line);background:var(--wash);color:var(--muted)}
.pill-good{background:var(--good-bg);border-color:#BFE0CE;color:var(--good-ink)}
.pill-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}
.field{min-height:44px;border:1px solid #C9CED8;border-radius:6px;padding:0 12px;font-size:15px;color:var(--ink);background:var(--white)}
.label{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}

/* Header */
.top{border-bottom:1px solid var(--line-2);background:var(--white)}
.top .wrap{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding-block:12px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:52px;height:52px;border-radius:50%}
.brand-name{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--navy);letter-spacing:.02em;line-height:1.15}
.brand-sub{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}
.exam-pick{display:flex;align-items:center;padding-left:20px;border-left:1px solid var(--line-2)}
.exam-pick select{min-height:40px;font-size:14px;font-weight:600;color:var(--navy)}
.nav{display:flex;gap:6px 20px;flex-wrap:wrap}
.nav a{font-weight:500;font-size:16px;padding:8px 2px;border-bottom:2px solid transparent;min-height:44px;display:inline-flex;align-items:center}
.nav a:hover{border-bottom-color:var(--navy)}
.nav a[aria-current="page"]{border-bottom-color:var(--navy);font-weight:700}
.who{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:15px;color:var(--muted)}
.who strong{color:var(--ink)}
@media (max-width:900px){.exam-pick{border-left:none;padding-left:0}.who{margin-left:0}}

/* Shared page bits */
.page{background:var(--wash);min-height:60vh}
.page>.wrap{padding-block:32px 56px;display:flex;flex-direction:column;gap:24px}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.tile .big{font-family:var(--serif);font-size:34px;color:var(--navy);line-height:1}
.tile .mid{font-family:var(--serif);font-size:21px;color:var(--navy);line-height:1.25}
.tile-warn{border-color:var(--warn-line);background:var(--warn-card)}
.tile-warn .eyebrow,.tile-warn .big,.tile-warn .mid{color:#8A4A0F}
.row{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch}
.grow{flex:999 1 520px;min-width:0}
.side{flex:1 1 320px;min-width:0}
.panel{padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.panel h2{margin:0;font-family:var(--serif);font-size:20px;color:var(--navy)}
.legend{display:flex;gap:14px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.bar-row{display:grid;grid-template-columns:64px minmax(0,1fr) 56px;gap:14px;align-items:center}
.bar-row.act{grid-template-columns:64px minmax(0,1fr) 56px 118px}
.bar-name{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track{height:12px;border-radius:999px;background:var(--line-3);overflow:hidden}
.fill{height:100%;border-radius:999px}
.code{font-size:13px;font-weight:700;color:var(--muted)}
.banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:8px;background:var(--mid-bg);border:1px solid #CBD3E6;color:var(--navy);font-size:15px}
.banner strong{font-weight:700}
@media (max-width:760px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.bar-row.act{grid-template-columns:56px minmax(0,1fr) 52px}.bar-row.act .go{grid-column:1/-1;justify-content:flex-start!important}}

/* Home */
.hero{background:var(--wash);border-bottom:1px solid var(--line-2)}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center;padding-block:72px 64px}
.hero h1{margin:0;font-family:var(--serif);font-size:clamp(34px,5vw,52px);line-height:1.12;color:var(--navy)}
.lede{margin:0;font-size:20px;line-height:1.55;color:var(--ink-2);max-width:34em}
.band{padding-block:72px 64px}
.band h2{margin:0;font-family:var(--serif);font-size:clamp(26px,3.2vw,34px);line-height:1.2;color:var(--navy)}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.step{padding:26px;display:flex;flex-direction:column;gap:12px}
.step .n{font-family:var(--serif);font-size:36px;color:var(--silver);line-height:1}
.step h3{margin:0;font-family:var(--serif);font-size:20px;color:var(--navy)}
.step p{margin:0;color:var(--ink-2)}
.exam-card{padding:22px;display:flex;flex-direction:column;gap:8px;background:#F9FAFB}
.exam-card h3{margin:0;font-family:var(--serif);font-size:20px;color:var(--navy)}
.exam-live{padding:26px;border:2px solid var(--navy);grid-row:span 2;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.exam-live:hover{box-shadow:0 10px 28px rgba(27,42,85,.12);color:var(--ink)}
.ticks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;color:var(--ink-2)}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks svg{flex-shrink:0;margin-top:4px}
.dark{background:var(--navy);color:var(--white)}
.dark h2,.dark h3{color:var(--white)}
.mod{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:26px;display:flex;flex-direction:column;gap:14px}
.mod li{color:#E6E9EF}
.mod .c{color:#B8BEC9;font-weight:700;min-width:64px;display:inline-block}
@media (max-width:860px){.hero-grid,.three,.two{grid-template-columns:minmax(0,1fr)}.exam-live{grid-row:auto}.hero-grid{padding-block:48px}.band{padding-block:52px}}

/* Math */
.m{font-family:var(--serif)}
.v{font-family:var(--serif);font-style:italic}
.frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 3px;line-height:1.15;font-family:var(--serif)}
.frac>.nu{padding:0 4px 2px;border-bottom:1.5px solid currentColor}
.frac>.de{padding:2px 4px 0}
.sqrt{display:inline-flex;align-items:stretch;vertical-align:middle;margin:0 2px;font-family:var(--serif)}
.sqrt>.sg{font-size:1.2em;line-height:1;align-self:flex-end;transform:translateY(1px)}
.sqrt>.rd{border-top:1.5px solid currentColor;padding:1px 3px 0 2px;margin-left:-1px}
sup{font-size:.62em;line-height:0}
.stem{font-size:clamp(22px,3vw,28px);color:var(--navy);display:block;line-height:1.6;font-family:var(--serif);min-width:0;overflow-x:auto}
.stem>.gph{margin:8px 0}
.mtable{border-collapse:collapse;font-family:var(--serif);font-size:20px}
.mtable th,.mtable td{border:1px solid #C9CED8;padding:6px 18px;text-align:center}
.mtable th{background:var(--wash);font-style:italic;font-weight:400}

/* Practice */
.topics{flex:1 1 300px;max-width:380px;padding:20px;display:flex;flex-direction:column;gap:16px;align-self:flex-start}
@media (max-width:860px){.topics{max-width:none}}
.topic{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 12px;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left;cursor:pointer;color:var(--ink)}
.topic:hover{background:var(--wash)}
.topic[aria-pressed="true"]{background:var(--wash);border-color:var(--navy);color:var(--navy)}
.topic .tn{font-size:15px;font-weight:600;line-height:1.2}
.topic .mini{height:5px;border-radius:999px;background:var(--line-2);overflow:hidden;display:block;margin-top:4px}
.topic .mini>span{display:block;height:100%;border-radius:999px}
.mod-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);padding:6px 12px 2px}
.prob{padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:22px}
.prompt{margin:0;font-size:19px;line-height:1.6}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:640px){.opts{grid-template-columns:minmax(0,1fr)}}
.opt{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 16px;border-radius:8px;background:var(--white);font-size:19px;color:var(--ink);cursor:pointer;text-align:left;font-family:var(--serif);width:100%;border:1px solid #C9CED8}
.opt:hover:not(:disabled){background:var(--wash)}
.opt .ltr{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--muted);width:30px;height:30px;border-radius:50%;border:1.5px solid #C9CED8;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.opt.sel{border:2px solid var(--navy);background:var(--wash);color:var(--navy)}
.opt.right{border:2px solid var(--good);background:var(--good-bg);color:var(--good-ink)}
.opt.wrong{border:2px solid var(--warn);background:var(--warn-bg);color:var(--warn-ink)}
.opt.dim{opacity:.6}
.opt:disabled{cursor:default}
.opt .txt{font-family:var(--sans);font-size:18px}
.sol{border-top:1px solid var(--line-2);padding-top:20px;display:flex;flex-direction:column;gap:10px}
.sol p{margin:0;font-size:17px;line-height:1.75}
.verdict{font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.prog{width:220px;max-width:100%;height:8px;border-radius:999px;background:var(--line-2);overflow:hidden}
.prog>div{height:100%;background:var(--navy);border-radius:999px;transition:width .3s}
@media (prefers-reduced-motion:reduce){.prog>div{transition:none}}

/* Tables */
.tbl-box{overflow-x:auto}
table.roster{border-collapse:collapse;width:100%;font-size:15px;min-width:760px}
.roster th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.roster td{padding:10px 12px;border-bottom:1px solid var(--line-3);vertical-align:middle}
.roster tr:last-child td{border-bottom:none}
.cell{display:inline-flex;align-items:center;justify-content:center;min-width:50px;height:32px;border-radius:6px;font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}
.c-good{background:var(--good-bg);color:var(--good-ink)}
.c-mid{background:var(--mid-bg);color:var(--navy)}
.c-warn{background:var(--warn-bg);color:var(--warn-ink)}
.c-none{background:var(--wash);color:var(--muted-2)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--navy);color:var(--white);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-3)}
.list li:last-child{border-bottom:none}
.dots{display:flex;gap:6px;flex-wrap:wrap}
.day{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}
.dot{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--line-2);color:var(--muted-2)}
.dot.on{background:var(--navy);color:var(--white)}
.badge{width:56px;height:36px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;font-variant-numeric:tabular-nums}
.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.inline-form>div{display:flex;flex-direction:column;gap:6px}
.toast{font-size:15px;font-weight:600;color:var(--good)}

/* Sign in */
.signin{max-width:520px;margin:0 auto;padding:32px;display:flex;flex-direction:column;gap:20px}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.role{min-height:96px;border:1px solid #C9CED8;border-radius:10px;background:var(--white);cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:14px 16px;text-align:left;color:var(--ink)}
.role strong{font-family:var(--serif);font-size:18px;color:var(--navy)}
.role[aria-pressed="true"]{border:2px solid var(--navy);background:var(--wash)}

footer.foot{border-top:1px solid var(--line-2);background:var(--white)}
footer.foot .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:24px;font-size:14px;color:var(--muted)}
footer.foot a{color:var(--muted);min-height:44px;display:inline-flex;align-items:center}

/* Hosted-site additions */
.notice{padding:12px 16px;border-radius:8px;font-size:15px;border:1px solid}
.notice-error{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}
.notice-ok{background:var(--good-bg);border-color:#BFE0CE;color:var(--good-ink)}
.loading{padding:80px 16px;text-align:center;color:var(--muted);font-size:17px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line-2)}
.tabs button{background:none;border:none;border-bottom:3px solid transparent;padding:10px 14px;font-size:16px;font-weight:600;color:var(--muted);cursor:pointer;min-height:44px}
.tabs button[aria-selected="true"]{color:var(--navy);border-bottom-color:var(--navy)}
.stack{display:flex;flex-direction:column;gap:6px}
.btn-google{background:var(--white);color:var(--ink);border-color:#C9CED8}
.btn-google:hover{background:var(--wash)}
.joincode{font-family:var(--serif);font-size:28px;letter-spacing:.12em;color:var(--navy)}
.danger-link{background:none;border:none;color:var(--warn-ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer;min-height:44px;padding:0}
.danger-link:hover{text-decoration:underline}
.empty{padding:28px;text-align:left;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
/* Install-the-app tip */
#installbar{background:var(--mid-bg);border-bottom:1px solid #CBD3E6;color:var(--navy)}
.installbar{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;padding-block:8px;font-size:15px}
.installbar>span{flex:1 1 260px;min-width:0}
/* When opened as an installed app, keep the header clear of the phone's status bar */
@media (display-mode: standalone){.top{padding-top:env(safe-area-inset-top,0px)}}
/* Constructed response */
.seg{display:inline-flex;border:1px solid #C9CED8;border-radius:8px;overflow:hidden;align-self:flex-start;background:var(--white);max-width:100%;flex-wrap:wrap}
.seg button{background:transparent;border:none;padding:0 16px;min-height:44px;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer}
.seg button+button{border-left:1px solid #C9CED8}
.seg button[aria-pressed="true"]{background:var(--navy);color:var(--white)}
.crpart{display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:1px solid var(--line-3)}
.crhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px;color:var(--navy)}
.crbox{width:100%;min-height:110px;padding:10px 12px;font-size:16px;line-height:1.5;resize:vertical;font-family:var(--sans)}
.crwork{white-space:pre-wrap;word-break:break-word;background:var(--wash);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:16px;line-height:1.5}
.crreason{margin:0;font-size:15px;color:var(--ink-2)}
.crrow{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;padding:0;cursor:pointer;font:inherit;color:var(--ink);min-height:48px;flex-wrap:wrap}
.crdetail{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.tbl-box{position:relative}
.blank-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px}
.blank-row>label,.blank-row>span:first-child{font-weight:600;color:var(--ink)}
.blank{width:220px;max-width:100%;font-size:17px;font-family:var(--serif)}
.blank-given{font-family:var(--serif);font-size:17px;background:var(--wash);border:1px solid var(--line);border-radius:6px;padding:4px 10px;min-width:60px;word-break:break-word}
.mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}
.mark-ok{background:var(--good-bg);color:var(--good)}
.mark-no{background:var(--warn-bg);color:var(--warn)}
.work-label{font-size:14px;font-weight:600;color:var(--muted)}

/* Graphs inside problems */
.gph{display:block;max-width:100%;height:auto;margin:4px 0;overflow:visible}
.gph .grid{stroke:#E1E5EC;stroke-width:1}
.gph .ax,.gph .tk{stroke:#2B3245;stroke-width:1.4}
.gph .ah{fill:#2B3245}
.gph .ln{stroke:#1B2A55;stroke-width:2.4;fill:none;stroke-linecap:round}
.gph .nl{stroke:#1B2A55;stroke-width:4}
.gph .nah{fill:#1B2A55}
.gph .dl{stroke-dasharray:7 5}
.gph .sh{fill:#1B2A55;fill-opacity:.17;stroke:none}
.gph .pt{fill:#1B2A55}
.gph .op{fill:#fff;stroke:#1B2A55;stroke-width:2.4}
.gph .bar{fill:#4A66AC}
.gph .box{fill:#E8ECF5;stroke:#1B2A55;stroke-width:2.4}
.gph text{font-family:'Source Sans 3',system-ui,sans-serif;font-size:11px;fill:#3A4256;font-style:normal}
.gph .lab{font-size:12px;font-weight:600;fill:#2B3245}
.gph .ttl{font-size:13px;font-weight:700;fill:#1B2A55}
.opt .gph{margin:0 auto}
.mlines{display:inline-flex;flex-direction:column;gap:4px;font-family:var(--serif,Georgia)}
.mlist{font-family:var(--serif,Georgia);word-spacing:2px}
.bul{margin:6px 0;padding-left:22px;display:flex;flex-direction:column;gap:4px}
.dtab{border-collapse:collapse;font-family:var(--serif,Georgia);font-size:18px;margin:6px 0}
.dtab th,.dtab td{border:1px solid #C9CED8;padding:5px 14px;text-align:center}
.dtab th{background:#F3F5F8;font-family:var(--sans,system-ui);font-size:14px;font-weight:600}
.stem .bul,.stem .qtext{display:block}
.stem .bul,.stem .qtext{font-family:var(--sans,system-ui);font-size:18px;line-height:1.55;color:var(--ink,#2B3245);font-style:normal}
.stem .bul li::marker{color:var(--muted,#5A6378)}
.dtab.stemleaf td:last-child{text-align:left;letter-spacing:1px}
.skillpick{display:flex;flex-direction:column;gap:6px;max-width:100%}
.skillpick select{max-width:100%;min-height:44px}

/* Free sample locks + assignments */
.topic .lock{display:inline-flex;color:var(--muted);flex:none}
.asg-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border-radius:999px;background:var(--line-3,#EEF1F5);color:var(--ink-2,#3A4256);font-size:13px;font-weight:600}
.asgform{display:flex;flex-direction:column;gap:16px;border:1px solid var(--line-2,#DDE2EA);border-radius:10px;padding:18px;background:#FBFCFE}
.asg-grid{display:flex;gap:16px;flex-wrap:wrap}
.asg-grid>.stack{flex:1 1 220px;min-width:0}
.asgform .stack{display:flex;flex-direction:column;gap:6px}
.asgform input.field,.asgform textarea.field{width:100%;max-width:100%}
.asgform input[type=number].field{width:120px}
.asg-topics{border:1px solid var(--line-2,#DDE2EA);border-radius:8px;padding:6px 12px 10px;margin:0;display:flex;flex-direction:column;gap:2px;min-width:0}
.asg-topics legend{padding:0 6px}
.asg-topics details{border-bottom:1px solid var(--line-3,#EEF1F5)}
.asg-topics details:last-child{border-bottom:0}
.asg-topics summary{display:flex;align-items:center;gap:10px;min-height:48px;cursor:pointer;flex-wrap:wrap}
.asg-topics summary::-webkit-details-marker{color:var(--muted)}
.chk{display:flex;align-items:flex-start;gap:8px;min-height:36px;padding:6px 0;font-size:15px;line-height:1.35;cursor:pointer}
.chk input{width:18px;height:18px;margin:1px 0 0;flex:none;accent-color:var(--navy)}
.chk.strong{font-weight:600;color:var(--navy)}
.chk .code{font-weight:700;color:var(--navy);margin-right:2px}
.skills{display:flex;flex-direction:column;padding:0 0 8px 28px}
.asg-row .mini{height:6px;border-radius:999px;background:var(--line-2);overflow:hidden;display:block}.asg-row .mini span{display:block;height:100%}
.asgform textarea.field{font-family:inherit;font-size:15px}
