:root{--ink:#16181d;--ink-2:#565a63;--muted:#8b8f98;--grey:#7a7e88;--page:#e3dfd4;--bg:#eae7de;--track:#e3dfd4;--surface:#fff;--sheet:#f6f4ee;--line:#dcd7cb;--line-2:#c7c1b2;--brand:#0c7a5e;--brand-hi:#2fc79a;--ok:#1e9e6a;--warn:#b87710;--bad:#bf4034;--violet:#5a63c4;--night-fg:#eceef2;--night-2:#9da2ac;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--display:"Space Grotesk", sans-serif;--shadow:0 8px 40px #14161c24}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--page);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}a{color:var(--brand);text-decoration:none}a:hover{color:var(--ink);text-decoration:underline}button{color:inherit;cursor:pointer;font-family:inherit}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}p,h1,h2,h3{margin:0}.app{background:var(--bg);max-width:430px;height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (width>=600px){.app{height:min(100dvh - 48px,900px);box-shadow:var(--shadow);border-radius:28px;margin-top:24px}}.scroll{scrollbar-width:none;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.scroll::-webkit-scrollbar{display:none}.screen{flex-direction:column;gap:14px;padding:16px 20px 24px;display:flex}.screen.fill{flex:1}.screen.flow{flex:1;gap:18px;padding:12px 20px 20px}.screen.results{flex:1;gap:16px;padding:20px}.push-bottom{flex-direction:column;gap:8px;margin-top:auto;display:flex}.eyebrow{font:600 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.eyebrow.sm{font-size:11.5px}.eyebrow.tight{letter-spacing:.08em}.title{font:600 26px/1.1 var(--display);letter-spacing:-.02em}.mono{font-family:var(--mono)}.note{color:var(--ink-2);font-size:13px;line-height:1.55}.sub{color:var(--ink-2);font-size:13px;line-height:1.5}.head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.head .eyebrow{margin-bottom:4px;display:block}.panel{border:1px solid var(--line);background:var(--surface);border-radius:13px}.panel.pad{flex-direction:column;gap:8px;padding:14px 15px;display:flex}.panel.list{overflow:hidden}.panel.list>*{border-bottom:1px solid var(--line)}.panel.list>:last-child{border-bottom:none}.hero{background:var(--ink);color:var(--night-fg);border-radius:16px;flex-direction:column;gap:14px;padding:18px 18px 16px;display:flex}.hero h3{font:600 21px/1.2 var(--display);letter-spacing:-.01em;margin-bottom:6px}.hero p{color:var(--night-2);text-wrap:pretty;font-size:13px;line-height:1.5}.hero p strong{color:var(--night-fg);font-weight:inherit}.btn{font:600 15px var(--sans);border:none;border-radius:12px;min-height:52px;transition:transform .1s,opacity .15s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--brand);color:#fff}.btn-dark{background:var(--ink);color:#fff}.btn-hero{background:var(--brand-hi);color:#0e1014;border-radius:11px;min-height:48px}.btn-secondary{border:1px solid var(--line-2);background:var(--surface);min-height:48px;font-size:14px}.btn-ghost{border:1px solid var(--line-2);background:var(--surface);min-height:40px;font:600 12.5px var(--sans);border-radius:10px;padding:0 12px}.btn-sm{border:1px solid var(--line-2);background:var(--surface);min-height:34px;font:600 12px var(--sans);border-radius:8px;padding:0 12px}.btn:disabled,.is-disabled{opacity:.4;cursor:default}.btn:disabled:active{transform:none}.link-chip{background:#0c7a5e1f;border-radius:8px;align-items:center;min-height:34px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.link-chip:hover{text-decoration:none}.icon-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:10px;flex:none;width:40px;height:40px;font-size:18px;line-height:1}.pill{font:600 11.5px var(--mono);white-space:nowrap;border-radius:6px;padding:4px 9px}.pill.lg{padding:5px 10px;font-size:11px}.pill.xs{border-radius:5px;padding:2px 6px;font-size:11.5px}.pill.grey{color:var(--grey);background:#7a7e881f}.pill.ok{color:var(--ok);background:#1e9e6a21}.pill.warn{color:var(--warn);background:#b8771024}.pill.bad{color:var(--bad);background:#bf40341f}.pill.brand{color:var(--brand);background:#0c7a5e1f}.pill.violet{color:var(--violet);background:#5a63c421}.pill.night{color:#38c285;background:#38c28526}.fg-ok{color:var(--ok)}.fg-warn{color:var(--warn)}.fg-bad{color:var(--bad)}.bg-ok{background:var(--ok)}.bg-warn{background:var(--warn)}.bg-bad{background:var(--bad)}.bar{background:var(--track);border-radius:3px;height:6px;position:relative}.bar>.fill{border-radius:inherit;height:100%}.bar.thin{height:5px}.bar.tiny{border-radius:2px;width:52px;height:4px}.bar.thick{border-radius:5px;height:10px}.bar>.target{background:var(--ink);width:2px;height:12px;position:absolute;top:-3px;left:70%}.bar.thick>.target{height:20px;top:-5px}.exam-chip{border:1px solid var(--line-2);background:var(--surface);min-height:40px;font:600 12.5px var(--mono);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex}.exam-chip svg{flex:none}.stats{grid-template-columns:1fr 1fr;gap:12px;display:grid}.big-num{font:600 30px/1 var(--mono);letter-spacing:-.02em}.big-num small{color:var(--ink-2);font-size:15px}.streak-head{justify-content:space-between;align-items:baseline;display:flex}.streak-head strong{font:600 15px var(--display)}.week{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:4px;display:grid}.day{font:500 11.5px var(--mono);color:var(--ink-2);flex-direction:column;align-items:center;gap:6px;display:flex}.day i{border:1.5px solid var(--line-2);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-style:normal;display:flex}.day.done i{background:var(--brand);border-color:var(--brand)}.day.today{color:var(--ink)}.day.today:not(.done) i{border-color:var(--ink)}.row-link{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:13px;justify-content:space-between;align-items:center;min-height:58px;padding:0 15px;display:flex}.row-link:hover{border-color:var(--line-2)}.row-link strong{font:600 14px var(--sans);margin-bottom:2px;display:block}.row-link .chev,.case-row .chev{color:var(--muted);display:flex}.mock-card{flex-direction:column;gap:12px;padding:16px;display:flex}.mock-card h3{font:600 17px var(--display);margin-bottom:4px}.mock-card p{color:var(--ink-2);font-size:12.5px;line-height:1.5}.split{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.section-head{justify-content:space-between;align-items:baseline;margin-top:6px;display:flex}.section-head a{font-size:13px;font-weight:500}.domain{flex-direction:column;gap:10px;padding:14px 15px;display:flex}.domain.flagged{background:#bf40340d}.domain-name{text-wrap:pretty;margin-bottom:3px;font-size:13px;font-weight:500;line-height:1.35;display:block}.domain-pc{font:600 15px var(--mono)}.actions{gap:8px;display:flex}.flip{perspective:1200px;cursor:pointer;height:360px}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.7,.2,1);position:relative}.flip.flipped .flip-inner{transform:rotateY(180deg)}.face{backface-visibility:hidden;border-radius:18px;flex-direction:column;justify-content:space-between;padding:22px;display:flex;position:absolute;inset:0}.face.front{border:1px solid var(--line);background:var(--surface);box-shadow:0 1px 2px #14161c0d,0 4px 14px #14161c0d}.face.front p{font:600 22px/1.3 var(--display);letter-spacing:-.01em;text-wrap:pretty}.face.back{background:var(--ink);color:var(--night-fg);transform:rotateY(180deg)}.face.back .eyebrow{color:var(--brand-hi)}.face.back p{text-wrap:pretty;font-size:16px;line-height:1.55}.face .hint{color:var(--ink-2);font-size:13px}.face.back .hint{color:var(--night-2)}.ratings{grid-template-columns:repeat(4,1fr);gap:8px;transition:opacity .2s;display:grid}.ratings.locked{opacity:.35;pointer-events:none}.rating{border:1px solid var(--line-2);background:var(--surface);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:56px;display:flex}.rating:active{transform:scale(.96)}.rating strong{font-size:13px;font-weight:600}.rating span{font:500 11.5px var(--mono);color:var(--ink-2)}.empty{border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;align-items:flex-start;gap:10px;padding:32px 22px;display:flex}.empty h3{font:600 20px var(--display)}.empty p{color:var(--ink-2);font-size:13px;line-height:1.5}.kpis{grid-template-columns:repeat(3,1fr);display:grid}.kpis>div{border-right:1px solid var(--line);flex-direction:column;gap:3px;padding:12px 14px;display:flex}.kpis>div:last-child{border-right:none}.kpis strong{font:600 20px var(--mono)}.segmented{background:var(--track);border-radius:11px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.segmented button{min-height:36px;font:600 12px var(--sans);color:var(--ink-2);background:0 0;border:none;border-radius:8px}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #14161c1a}.member{align-items:center;gap:11px;padding:11px 14px;display:flex}.member.you{background:#0c7a5e14}.member .rank{width:16px;font:600 12px var(--mono);color:var(--ink-2)}.avatar{background:var(--track);width:34px;height:34px;font:600 12px var(--display);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.member .who{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.member .who strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.member .meta{white-space:nowrap;color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:flex}.member .meta .pill{color:var(--ink-2)}.member .score{width:64px;font:600 13px var(--mono);flex-direction:column;align-items:flex-end;gap:4px;display:flex}.member .streak{text-align:right;width:34px;font:500 12px var(--mono);color:var(--ink-2)}.flow-top{align-items:center;gap:12px;display:flex}.flow-top.spread{justify-content:space-between;gap:10px}.segs{flex:1;gap:5px;display:grid}.segs i{background:var(--line);border-radius:3px;height:6px}.segs i.cur{background:var(--ink)}.segs i.ok{background:var(--ok)}.segs i.bad{background:var(--bad)}.counter{font:600 12px var(--mono);color:var(--ink-2)}.stem{flex-direction:column;gap:10px;display:flex}.stem p{font:500 18px/1.45 var(--sans);text-wrap:pretty}.stem.mock p{font-size:17px}.options{flex-direction:column;gap:9px;display:flex}.option{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:12px;align-items:center;gap:12px;min-height:54px;padding:12px 14px;transition:border-color .15s,background .15s,opacity .15s;display:flex}.option .key{background:var(--track);width:28px;height:28px;color:var(--ink-2);font:600 12px var(--mono);border-radius:7px;flex:none;justify-content:center;align-items:center;display:flex}.option .text{font-size:14px;line-height:1.5}.option.sel{border-color:var(--brand);background:#0c7a5e0f}.option.sel .key{background:var(--brand);color:#fff}.option.ok{border-color:var(--ok);background:#1e9e6a1a}.option.ok .key{background:var(--ok);color:#fff}.option.bad{border-color:var(--bad);background:#bf403414}.option.bad .key{background:var(--bad);color:#fff}.option.dim{opacity:.55}.option.dim .key{color:var(--muted)}.option:disabled{cursor:default}.option.radio{min-height:52px;padding:11px 14px}.option.radio .key{border:1.5px solid var(--line-2);background:0 0;border-radius:50%;width:26px;height:26px}.option.radio.sel .key{border-color:var(--brand);background:var(--brand)}.feedback{border-radius:13px;flex-direction:column;gap:8px;padding:14px 15px;display:flex}.feedback.ok{background:#1e9e6a1f}.feedback.bad{background:#bf40341a}.feedback strong{font:600 14px var(--display)}.feedback.ok strong{color:var(--ok)}.feedback.bad strong{color:var(--bad)}.feedback p{text-wrap:pretty;font-size:13px;line-height:1.55}.feedback a{font-size:13px;font-weight:600}.timer{font:600 16px var(--mono);background:var(--surface);border-radius:9px;padding:7px 12px}.timer.low{color:var(--bad);background:#bf40341f}.btn-ghost.flagged{border-color:var(--warn);color:var(--warn);background:#b8771024}.qnav{flex-wrap:wrap;gap:8px;display:flex}.qnav button{border:1.5px solid var(--line);background:var(--surface);width:44px;height:44px;font:600 13px var(--mono);border-radius:10px;position:relative}.qnav button.answered{background:var(--ink);color:#fff}.qnav button.cur{border-color:var(--ink)}.qnav button.flag:after{content:"";background:var(--warn);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.nav-grid{grid-template-columns:1fr 2fr;gap:8px;margin-top:auto;display:grid}.score{align-items:baseline;gap:10px;display:flex}.score strong{font:600 64px/1 var(--mono);letter-spacing:-.04em}.score span{font:500 22px var(--mono);color:var(--muted)}.score.spread{justify-content:space-between;align-items:center}.score.spread strong{font-size:60px}.pills{flex-wrap:wrap;gap:8px;display:flex}.miss{flex-direction:column;gap:8px;padding:14px 15px;display:flex}.miss p{font-size:13px;font-weight:500;line-height:1.5}.miss .answer{flex-direction:column;gap:3px;font-size:13px;line-height:1.5;display:flex}.miss .answer .eyebrow{color:var(--ok)}.miss .expl{color:var(--ink-2);font-size:13px;font-weight:400;line-height:1.5}.miss a{font-size:13px;font-weight:600}.scale{font:500 11.5px var(--mono);color:var(--ink-2);justify-content:space-between;display:flex}.scale span:nth-child(2){margin-left:40%}.review{align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.review .pill{border-radius:5px;padding:3px 7px;font-size:11.5px}.review div{flex-direction:column;gap:3px;font-size:13px;line-height:1.5;display:flex}.review div span{color:var(--ink-2);font-size:13px;line-height:1.5}.lead{color:var(--ink-2);font-size:14px;line-height:1.5}.tabbar{border-top:1px solid var(--line);background:var(--sheet);padding:8px 8px calc(10px + env(safe-area-inset-bottom));flex:none;grid-template-columns:repeat(4,1fr);min-height:64px;display:grid}.tabbar button{color:var(--muted);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.tabbar button[aria-current=page]{color:var(--brand)}@media (width>=600px){.tabbar{padding-bottom:22px}}.scrim{z-index:10;background:#16181d59;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:absolute;inset:0}.sheet{background:var(--sheet);width:100%;padding:10px 16px calc(24px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:22px 22px 0 0;flex-direction:column;gap:10px;animation:.22s cubic-bezier(.2,.7,.2,1) rise;display:flex}.sheet .grip{background:var(--line-2);border-radius:3px;align-self:center;width:38px;height:5px}.sheet .eyebrow{padding:6px 4px 0}.exam-opt{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:12px;align-items:center;gap:12px;min-height:62px;padding:10px 14px;display:flex}.exam-opt[aria-checked=true]{border-color:var(--brand)}.exam-opt .code{font:600 12px var(--mono);width:52px}.exam-opt .nm{flex-direction:column;flex:1;gap:2px;font-size:13px;font-weight:500;display:flex}.exam-opt .nm span{color:var(--ink-2);font-size:13px;font-weight:400}.exam-opt .pc{font:600 13px var(--mono);color:var(--ink-2)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.status{justify-content:center;align-items:flex-start}.status .eyebrow{align-self:center}.spinner{border:2.5px solid var(--line);border-top-color:var(--brand);border-radius:50%;align-self:center;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.banner{color:var(--bad);background:#bf40341a;border-radius:10px;flex:none;justify-content:space-between;align-items:center;gap:10px;margin:8px 16px 0;padding:10px 12px;font-size:12.5px;font-weight:500;display:flex}.banner button{color:inherit;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.signin{padding-bottom:calc(28px + env(safe-area-inset-bottom));justify-content:flex-end;gap:16px}.signin-body{flex-direction:column;flex:1;justify-content:center;gap:14px;display:flex}.title.lg{text-wrap:balance;font-size:34px;line-height:1.08}.signin-exams{color:var(--ink-2);font-size:12px;font-weight:600}.signin-btn{justify-content:center;align-items:center;gap:10px;display:flex}.signin-btn:hover{color:#fff;text-decoration:none}.date-card{text-align:left;font:inherit;color:inherit;position:relative}.date-card:hover{border-color:var(--line-2)}.visually-hidden{clip:rect(0 0 0 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.onboarding{gap:16px}.onboarding .title{text-wrap:balance}.exam-opt.pick{min-height:66px;transition:border-color .15s,background .15s}.exam-opt.pick[aria-checked=true]{background:#0c7a5e0f}.date-field input{font:500 15px var(--mono);color:var(--ink);border:1px solid var(--line-2);background:var(--surface);border-radius:9px;min-height:44px;padding:10px 12px}.mock-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mock-options .btn{border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:58px;display:flex}.mock-options .btn strong{font:600 14px var(--sans)}.mock-options .btn span{font:500 11px var(--mono);opacity:.8}.account{text-align:center;color:var(--ink-2);padding:6px 0 2px;font-size:13px}.account button{font:600 13px var(--sans);color:var(--brand);background:0 0;border:none;padding:4px 2px}.account button:hover{text-decoration:underline}.qnav{scrollbar-width:none;flex-wrap:nowrap;margin:0 -20px;padding:2px 20px;scroll-padding:0 20px;overflow-x:auto}.qnav::-webkit-scrollbar{display:none}.qnav button{flex:none}.qbody{flex-direction:column;gap:12px;display:flex}.stem{flex-flow:wrap;justify-content:space-between;align-items:center}.stem-text{font:500 16.5px/1.5 var(--sans);white-space:pre-line;text-wrap:pretty}.stem.mock+.qbody .stem-text{font-size:16px}.type-chip{font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--violet);background:#5a63c41f;border-radius:5px;padding:3px 7px}.answer-hint{color:var(--ink-2);justify-content:space-between;gap:10px;font-size:13px;display:flex}.option.check .key{border-radius:6px;font-size:14px}.option.missed{border-color:var(--ok);border-style:dashed}.option.missed .key{color:var(--ok)}.pill.part{color:var(--warn);background:#b8771024}.feedback.part{background:#b877101f}.feedback.part strong{color:var(--warn)}.segs i.part{background:var(--warn)}.yesno{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.yesno-head,.yesno-row{grid-template-columns:1fr 52px 52px;align-items:center;gap:6px;padding:10px 12px;display:grid}.yesno-head{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--sheet);border-bottom:1px solid var(--line)}.yesno-head span:not(:first-child){text-align:center}.yesno-row{border-bottom:1px solid var(--line)}.yesno-row:last-child{border-bottom:none}.yesno-row.ok{background:#1e9e6a12}.yesno-row.bad{background:#bf40340f}.yesno-text{font-size:13.5px;line-height:1.4}.yn{border:1.5px solid var(--line-2);background:var(--surface);width:100%;min-height:38px;font:600 12px var(--sans);color:var(--ink-2);border-radius:9px}.yn.on{border-color:var(--brand);background:var(--brand);color:#fff}.yn.is-answer:not(.on){border-color:var(--ok);color:var(--ok);border-style:dashed}.yesno-row.bad .yn.on{background:var(--bad);border-color:var(--bad)}.tpl{border:1px solid var(--line);background:var(--surface);white-space:pre-wrap;border-radius:12px;padding:14px;font-size:14px;line-height:2.1;overflow-x:auto}.tpl.code{font:500 12px/2.15 var(--mono);white-space:pre;-webkit-overflow-scrolling:touch;background:#f8f7f3;overflow-x:auto}.tpl.code .slot{font-size:11.5px}.slot-wrap{flex-wrap:wrap;align-items:baseline;gap:6px;display:inline-flex}.slot{font:600 12.5px var(--mono);color:var(--ink);border:1.5px solid var(--brand);background:#0c7a5e0f;border-radius:7px;max-width:100%;min-height:30px;padding:3px 6px}.slot:disabled{opacity:1}.slot.ok{border-color:var(--ok);background:#1e9e6a1a}.slot.bad{border-color:var(--bad);background:#bf403414}.slot-fix{font:600 11.5px var(--mono);color:var(--ok)}.build{flex-direction:column;gap:8px;display:flex}.build-list{flex-direction:column;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.build-list.answer{border:1.5px dashed var(--line-2);border-radius:12px;min-height:64px;padding:8px}.build-item{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:10px;align-items:center;gap:10px;min-height:46px;padding:9px 12px;font-size:13.5px;line-height:1.35;display:flex}.build-item .text{flex:1}.build-add{color:var(--brand);font-size:16px}.build-item:disabled{opacity:.5}.build-item.placed{border-color:var(--brand)}.build-item.ok{border-color:var(--ok);background:#1e9e6a14}.build-item.bad{border-color:var(--bad);background:#bf40340f}.build-n{background:var(--brand);color:#fff;width:22px;height:22px;font:600 11px var(--mono);border-radius:6px;flex:none;justify-content:center;align-items:center;display:flex}.build-tools{gap:4px;display:flex}.build-tools button{border:1px solid var(--line-2);background:var(--surface);border-radius:7px;width:30px;height:30px;font-size:13px}.build-tools button:disabled{opacity:.35}.build-empty{text-align:center;padding:10px}.build-solution{background:#1e9e6a14;border-radius:10px;padding:10px 12px;font-size:13px}.build-solution ol{flex-direction:column;gap:3px;margin:6px 0 0;padding-left:20px;display:flex}.case-link{border:1.5px solid var(--violet);min-height:44px;color:var(--violet);font:600 13px var(--sans);text-align:left;background:#5a63c414;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.case-link-go{font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-left:auto}.case-sheet{z-index:20;background:var(--bg);padding-top:env(safe-area-inset-top);flex-direction:column;animation:.15s ease-out fade;display:flex;position:absolute;inset:0}.case-top{justify-content:space-between;align-items:flex-end;gap:12px;padding:14px 20px 10px;display:flex}.case-title{font:600 21px/1.15 var(--display);margin-top:3px}.case-tabs{scrollbar-width:none;border-bottom:1px solid var(--line);flex:none;gap:6px;padding:4px 20px 10px;display:flex;overflow-x:auto}.case-tabs::-webkit-scrollbar{display:none}.case-tabs button{border:1px solid var(--line-2);background:var(--surface);min-height:36px;font:600 12px var(--sans);color:var(--ink-2);border-radius:18px;flex:none;padding:0 12px}.case-tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}.case-body{padding:16px 20px calc(28px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:18px;font-size:14px;line-height:1.6;display:flex;overflow-y:auto}.case-body h3{font:600 15px var(--display);margin-bottom:6px}.case-body p{margin:0 0 8px}.case-body ul{flex-direction:column;gap:3px;margin:0 0 8px;padding-left:20px;display:flex}.case-table-wrap{margin:4px 0 10px;overflow-x:auto}.case-table{border-collapse:collapse;background:var(--surface);min-width:100%;font-size:12.5px}.case-table th,.case-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}.case-table th{background:var(--sheet);font-weight:600}.case-row{border:none;border-bottom:1px solid var(--line);background:var(--surface);text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 15px;display:flex}.case-row strong{font:600 14px var(--sans);margin-bottom:2px;display:block}.case-row .chev{color:var(--muted);font-size:18px}.section-note{color:#7a5310;background:#b877101a;border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.5}.review-row{border:none;border-bottom:1px solid var(--line);background:var(--surface);text-align:left;align-items:center;gap:10px;width:100%;padding:11px 14px;font-size:12.5px;display:flex}.review-q{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);flex:1;overflow:hidden}details.review{padding:0;display:block}details.review summary{cursor:pointer;align-items:flex-start;gap:12px;padding:12px 14px;list-style:none;display:flex}details.review summary::-webkit-details-marker{display:none}details.review[open] summary{background:var(--sheet)}.review-more{flex-direction:column;gap:6px;padding:4px 14px 14px;font-size:12.5px;line-height:1.5;display:flex}.review-more .expl{color:var(--ink-2)}.review-more a{font-weight:600}.exam-card{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:13px;flex-direction:column;gap:4px;width:100%;padding:14px 15px;transition:border-color .15s,background .15s;display:flex}button.exam-card[aria-checked=true]{border-color:var(--brand);background:#0c7a5e0d}.ec-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.ec-code{font:600 13px var(--mono)}.ec-tags{gap:6px;display:flex}.ec-title{font:600 15px/1.3 var(--display)}.ec-cert{color:var(--ink-2);font-size:13px}.ec-meta{font:500 11.5px/1.5 var(--mono);color:var(--ink-2);margin-top:2px}.exam-row{flex-direction:column;gap:8px;display:flex}.btn-sm.primary{background:var(--brand);border-color:var(--brand);color:#fff}.link-btn{min-height:40px;font:600 13px var(--sans);color:var(--ink-2);background:0 0;border:none}.date-step{flex-direction:column;flex:1;gap:16px;display:flex}.sheet-actions{justify-content:space-between;gap:8px;padding-top:4px;display:flex}.close-opt{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;min-height:58px;padding:10px 14px;display:flex}.close-opt strong{font:600 14px var(--sans)}.close-opt span{color:var(--ink-2);font-size:13px}.close-opt.ok{border-color:var(--ok)}.close-opt.ok strong{color:var(--ok)}.exam-over{border-color:var(--warn);background:#b877100f}.exam-over strong{font:600 16px var(--display)}.certs{flex-wrap:wrap;gap:4px;display:flex}.help{gap:16px}.help-steps{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.help-steps li{align-items:flex-start;gap:12px;display:flex}.help-n{background:var(--ink);width:28px;height:28px;color:var(--brand-hi);font:600 12px var(--mono);border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.help-steps strong{font:600 15px/1.3 var(--display);margin-bottom:3px;display:block}.help-steps p{color:var(--ink-2);font-size:13px;line-height:1.55}.help-steps b,.help-box b{color:var(--ink);font-weight:600}.help-box{gap:6px}.help-box strong{font:600 14px var(--display)}.fb-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.report-link{font:600 13px var(--sans);color:var(--ink-2);text-underline-offset:2px;background:0 0;border:none;padding:4px 0;text-decoration:underline}.report-link:hover{color:var(--ink)}.report-link.on-dark{color:var(--night-2)}.footer-links{flex-wrap:wrap;justify-content:center;gap:4px 16px;padding-top:4px;display:flex}.footer-links button{font:600 13px var(--sans);color:var(--brand);background:0 0;border:none;padding:6px 2px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1.5px solid var(--line-2);background:var(--surface);min-height:36px;font:600 12px var(--sans);color:var(--ink-2);border-radius:18px;padding:0 12px}.chip.on{border-color:var(--brand);background:var(--brand);color:#fff}.report-about{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:9px;max-height:72px;padding:8px 10px;font-size:12.5px;line-height:1.45;overflow:hidden}.report-field{flex-direction:column;gap:6px;display:flex}.report-field textarea{font:400 14px/1.45 var(--sans);color:var(--ink);border:1px solid var(--line-2);background:var(--surface);resize:vertical;border-radius:10px;min-height:96px;padding:10px 12px}.report-field textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.toast{left:16px;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:30;background:var(--ink);color:var(--night-fg);box-shadow:var(--shadow);border-radius:12px;padding:12px 14px;font-size:13px;animation:.2s ease-out rise;position:absolute}.segmented.two{grid-template-columns:1fr 1fr}.report-card{gap:8px}.report-msg{white-space:pre-line;font-size:14px;line-height:1.5}.report-q summary{cursor:pointer;font:600 12px var(--sans);color:var(--brand)}.report-q p{margin-top:6px;font-size:12.5px;line-height:1.5}.brand-head{align-items:center;gap:12px;display:flex}.brand-head img{flex:none;width:32px;height:32px;display:block}.kpis.results strong{font-size:20px}.day i{font-size:13px}.mock-score-meta{flex-direction:column;gap:6px;display:flex}.mock-score-meta span{color:var(--ink-2);font-size:13px}.goal{font:500 12px var(--mono);color:var(--ink-2)}.goal.met{color:var(--ok);font-weight:600}.lb-xp{white-space:nowrap;font-size:14px;font-weight:600}.lb-xp small{color:var(--ink-2);font-size:11px;font-weight:500}.lb-optout{align-items:center;gap:10px;padding:4px 2px;font-size:13.5px;font-weight:500;display:flex}.lb-optout input{width:20px;height:20px;accent-color:var(--brand)}.avatar.lg{background:var(--surface);border:1.5px solid var(--line-2);width:48px;height:48px;font-size:15px}.podium{grid-template-columns:repeat(3,1fr);align-items:end;gap:8px;padding-top:6px;display:grid}.podium-col{text-align:center;flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.podium-col strong{font:600 14px var(--display);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.podium-col .mono{color:var(--ink-2);font-size:12px}.podium-step{background:var(--ink);width:100%;color:var(--brand-hi);font:600 18px var(--mono);border-radius:10px 10px 0 0;justify-content:center;margin-top:4px;padding-top:8px;display:flex}.podium-col.p1 .podium-step{height:76px}.podium-col.p2 .podium-step{color:#eceef2;background:#3a3e47;height:56px}.podium-col.p3 .podium-step{color:#eceef2;background:#5a5e67;height:42px}.podium-col.p1 .avatar.lg{border-color:#d9a441;box-shadow:0 0 0 3px #d9a44140}.podium-col.you strong{color:var(--brand)}.badge-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.badge-card{border:1px solid var(--line);background:var(--surface);border-radius:13px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;display:flex}.badge-card strong{font:600 14px var(--display)}.badge-card span{color:var(--ink-2);font-size:12.5px;line-height:1.45}.badge-card.locked{background:0 0;border-style:dashed}.badge-card.locked strong{color:var(--ink-2)}.badge-date{margin-top:auto;font:500 11.5px var(--mono)!important}.badge-card.earned .badge-date{color:var(--ok)!important}.badge-icon{border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.badge-icon.earned{background:var(--ink);color:var(--brand-hi)}.badge-icon.earned.silver{color:#e4e7ec;background:linear-gradient(145deg,#3a3e47,#16181d)}.badge-icon.earned.gold{color:#f2c660;background:linear-gradient(145deg,#3a3322,#16181d)}.badge-icon.locked{background:var(--track);color:var(--muted)}.scrim.center{justify-content:center;align-items:center;padding:20px}.celebrate{background:var(--ink);width:100%;max-width:360px;color:var(--night-fg);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:14px;padding:26px 22px 20px;animation:.3s cubic-bezier(.2,.9,.3,1.2) pop;display:flex;position:relative;overflow:hidden}.celebrate-level strong{font:700 40px/1.05 var(--display);letter-spacing:-.02em;margin-top:4px;display:block}.celebrate-badges{flex-direction:column;gap:10px;max-height:260px;display:flex;overflow-y:auto}.celebrate-badge{align-items:center;gap:12px;display:flex}.celebrate-badge strong{font:600 16px var(--display);display:block}.celebrate-badge span{color:var(--night-2);font-size:13px;line-height:1.4}.celebrate .badge-icon.earned{background:#262a32}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{top:-10px;left:calc(var(--k) * 7.2%);background:var(--brand-hi);opacity:.85;width:6px;height:10px;animation:fall 1.6s ease-in calc(var(--k) * 60ms) forwards;border-radius:2px;position:absolute}.confetti i:nth-child(3n){background:#f2c660}.confetti i:nth-child(3n+1){background:#8e96f0}@keyframes fall{to{opacity:0;transform:translateY(420px)rotate(540deg)}}@keyframes pop{0%{opacity:0;transform:scale(.9)}}
