:root{--brand-primary: #161b60;--brand-accent: #b5653a;--accent-text: #96502c;--brand-tint: #e8eaf5;--app-accent: #609678;--text-primary: #1a1a1a;--text-muted: #5b5f66;--surface: #ffffff;--surface-alt: #f4f5f7;--border: #8a8f98;--hairline: #d6d9de;--success: #1a6340;--success-surface: #e9f4ee;--error: #a41d1d;--error-surface: #fbeceb;--alarm-flash: #6e0a0a;--warn: #8f5106;--warn-surface: #fdf2e3;--practice-fill: var(--warn-surface);--practice-text: var(--warn);--scrim: rgba(26, 26, 26, .4);--font-sans: "Segoe UI", system-ui, sans-serif;--space-menu: 8px;--space-gap: 16px;--space-answer: 24px;--space-pad: 24px;--tap: 64px;--header-h: 64px;--accent-line: 4px;--band-h: 90px;--practice-h: 24px;--offline-h: 40px;--pill-h: 40px;--answer-w: 180px;--answer-h: 80px;--pin-key-w: 150px;--pin-dot: 28px;--needs-badge: 32px;--scan-focus: 5px;--alarm-frame: 18px;--canvas-w: 640px;--canvas-h: 1136px;--radius: 8px;--radius-pill: 20px;--radius-round: 50%;color-scheme:light}.sf{box-sizing:border-box;font-family:var(--font-sans);color:var(--text-primary);font-size:20px;line-height:1.6}.sf *,.sf *:before,.sf *:after{box-sizing:border-box}.sf-screen{background:var(--surface-alt)}.sf-icon{width:1em;height:1em;flex:none;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.sf-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sf-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:var(--tap);padding:0 var(--space-pad);border:1px solid transparent;border-radius:var(--radius);font:700 24px/1.2 var(--font-sans);cursor:pointer;white-space:nowrap}.sf-btn:hover{filter:brightness(.9)}.sf-btn:active{filter:brightness(.8)}.sf-btn--primary{background:var(--brand-primary);color:var(--surface)}.sf-btn--danger{background:var(--error);color:var(--surface)}.sf-btn--secondary{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.sf-btn--light{background:var(--surface);color:var(--brand-primary)}.sf-btn--locked,.sf-btn--locked:hover,.sf-btn--locked:active{background:var(--surface-alt);color:var(--text-muted);border-color:var(--hairline);filter:none;cursor:not-allowed}.sf-lock{display:inline-flex;align-items:center;gap:var(--space-gap)}.sf-lock--under{flex-direction:column;align-items:flex-start;gap:var(--space-menu)}.sf-lock-why{font-size:20px;color:var(--text-muted)}.sf-seg-wrap{display:inline-flex;flex-direction:column;gap:var(--space-menu)}.sf-seg{display:inline-flex;gap:8px}.sf-seg__opt{min-height:var(--tap);min-width:120px;padding:0 var(--space-pad);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:700 24px/1.2 var(--font-sans);white-space:nowrap;cursor:pointer}.sf-seg__opt[aria-pressed=true]{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--surface)}.sf-seg--locked .sf-seg__opt{cursor:not-allowed}.sf-seg--locked .sf-seg__opt[aria-pressed=false]{background:var(--surface-alt);color:var(--text-muted);border-color:var(--hairline)}.sf-seg__why{display:flex;align-items:center;gap:8px;color:var(--text-primary)}.sf-header{position:relative;display:flex;align-items:center;height:var(--header-h);padding:0 var(--space-gap);background:var(--brand-primary);color:var(--surface)}.sf-header:after{content:"";position:absolute;left:0;right:0;top:60px;height:var(--accent-line);background:var(--app-accent)}.sf-header__menu{background:none;border:0;color:var(--surface);font:700 20px/1.6 var(--font-sans);padding:0;min-height:var(--tap);cursor:pointer;white-space:nowrap}.sf-header__app{font:700 20px/1.6 var(--font-sans);white-space:nowrap}.sf-header__title{position:absolute;left:50%;transform:translate(-50%);font:700 24px/1.6 var(--font-sans);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.sf-header__right{margin-left:auto;display:flex;align-items:center;gap:var(--space-gap)}.sf-header__who{font-size:20px;font-weight:700;white-space:nowrap}.sf-header__tap{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);padding:0;background:none;border:0;cursor:pointer}.sf-header__tap--needs{margin:0 calc((var(--needs-badge) - var(--tap)) / 2)}.sf-header__tap--chip{margin:0 calc((56px - var(--tap)) / 2)}.sf-header__info{font-size:20px;font-weight:700;white-space:nowrap}.sf-practice{height:var(--practice-h);display:flex;align-items:center;justify-content:center;background:var(--practice-fill);color:var(--practice-text);font:700 20px/1 var(--font-sans);letter-spacing:.08em}.sf-offline{height:var(--offline-h);display:flex;align-items:center;padding:0 var(--space-pad);background:var(--error);color:var(--surface);font:700 18px/1 var(--font-sans)}.sf-scrim{position:fixed;inset:0;background:var(--scrim);z-index:10}.sf-menu{position:absolute;left:var(--space-gap);top:var(--header-h);z-index:11;display:flex;flex-direction:column;gap:var(--space-menu);width:340px;padding:var(--space-menu);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius)}.sf-menu__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-gap);min-height:var(--tap);padding:0 var(--space-gap);border:0;border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:700 24px/1.2 var(--font-sans);text-align:left;cursor:pointer}.sf-menu__item:hover{background:var(--surface-alt)}.sf-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:258px;height:var(--pill-h);padding:0 var(--space-gap);border-radius:var(--radius-pill);font:700 20px/1 var(--font-sans);white-space:nowrap}.sf-pill--ok{background:var(--success-surface);color:var(--success)}.sf-pill--warn{background:var(--warn-surface);color:var(--warn)}.sf-pill--neutral{background:var(--surface);color:var(--text-primary)}.sf-pill--error{background:var(--error);color:var(--surface)}.sf-needs{display:inline-flex;align-items:center;justify-content:center;min-width:var(--needs-badge);height:var(--needs-badge);border-radius:var(--radius-pill);color:var(--surface);font:700 20px/1 var(--font-sans)}.sf-needs--error{background:var(--error)}.sf-needs--warn{background:var(--warn)}.sf-header .sf-needs,.sf-header .sf-pill--error{box-shadow:0 0 0 2px var(--surface)}.sf-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:56px;height:var(--pill-h);border-radius:var(--radius-pill);background:var(--surface);font-size:26px}.sf-chip--ok{color:var(--success)}.sf-chip--saving{color:var(--warn)}.sf-chip--failed,.sf-chip--offline{color:var(--error)}.sf-chip__ring{position:absolute;top:0;left:calc(50% - var(--pill-h) / 2);width:var(--pill-h);height:var(--pill-h);stroke-width:1.5;animation:sf-spin 1s linear infinite}.sf-chip__badge{position:absolute;top:4px;right:10px;width:12px;height:12px;border-radius:var(--radius-round);background:var(--error);border:2px solid var(--surface)}@keyframes sf-spin{to{transform:rotate(360deg)}}.sf-band{display:flex;align-items:center;gap:var(--space-pad);min-height:var(--band-h);padding:0 var(--space-pad);background:var(--surface-alt)}.sf-band__text{flex:1;min-width:0}.sf-band__head{font:700 26px/1.3 var(--font-sans)}.sf-band__why{font-size:20px;line-height:1.4}.sf-band__icon{display:inline-flex;font-size:40px}.sf-band--error,.sf-band--late{background:var(--error-surface);color:var(--error)}.sf-band--warn,.sf-band--soon{background:var(--warn-surface);color:var(--warn)}.sf-band--ok{background:var(--success-surface);color:var(--success)}.sf-band--stop{background:var(--error);color:var(--surface)}.sf-band--error .sf-band__why,.sf-band--late .sf-band__why,.sf-band--warn .sf-band__why,.sf-band--soon .sf-band__why,.sf-band--ok .sf-band__why{color:var(--text-primary)}.sf-band--flash,.sf-band--flash .sf-band__why{color:var(--surface)}.sf-band--flash{animation:sf-flash 2s steps(1,end) 0s 2.5;background:var(--error)}@keyframes sf-flash{0%{background-color:var(--error)}50%{background-color:var(--alarm-flash)}}@keyframes sf-blink{0%{border-color:var(--surface)}50%{border-color:transparent}}@keyframes sf-fade{0%{opacity:0}to{opacity:1}}@keyframes sf-shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes sf-pulse{0%,to{border-color:var(--brand-primary)}50%{border-color:var(--app-accent)}}.sf-toast{display:flex;align-items:center;justify-content:center;gap:12px;width:720px;height:56px;border-radius:var(--radius);background:var(--success-surface);color:var(--success);font:700 20px/1 var(--font-sans);animation:sf-fade .2s ease-out}.sf-toast--float{position:fixed;left:50%;bottom:var(--space-pad);transform:translate(-50%);z-index:20}.sf-tile{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;width:300px;min-height:140px;padding:var(--space-pad);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);text-align:left;font-family:var(--font-sans);color:var(--text-primary);cursor:pointer}.sf-tile--compact{min-height:100px;padding:var(--space-gap) var(--space-pad)}.sf-tile__name{font:700 26px/1.3 var(--font-sans)}.sf-tile__sub{font-size:20px;line-height:1.4;color:var(--text-muted)}.sf-tile--next{border:var(--accent-line) solid var(--brand-primary)}.sf-tile--locked .sf-tile__name{color:var(--text-muted)}.sf-tile--locked .sf-tile__sub{color:var(--text-primary);display:flex;align-items:center;gap:8px}.sf-tile--picker{background:var(--surface)}.sf-tile--picker[aria-pressed=true]{background:var(--brand-tint);border-color:var(--brand-primary)}.sf-tile__check{position:absolute;top:var(--space-gap);right:var(--space-gap);color:var(--brand-primary);font-size:26px;display:inline-flex}.sf-check{display:flex;align-items:center;gap:var(--space-pad);min-height:112px;padding:0 var(--space-pad) 0 0;background:var(--surface);border-bottom:1px solid var(--hairline)}.sf-check__bar{align-self:stretch;width:6px;flex:none;background:transparent}.sf-check__bar--ok{background:var(--success)}.sf-check__bar--error{background:var(--error)}.sf-check__bar--neutral{background:var(--border)}.sf-check__q{flex:1;min-width:0}.sf-check__sub{color:var(--text-muted)}.sf-check__sub--ok{color:var(--success)}.sf-check__sub--error{color:var(--error)}.sf-answers{display:flex;gap:var(--space-answer);flex:none}.sf-answer{width:var(--answer-w);height:var(--answer-h);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:700 24px/1 var(--font-sans);cursor:pointer}.sf-answer[aria-pressed=true]{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--surface)}.sf-answer--empty{visibility:hidden}.sf-pin-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:var(--scrim)}.sf-pin{width:560px;padding:var(--space-pad);background:var(--surface);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;gap:var(--space-gap)}.sf-pin__hi{font:700 26px/1.3 var(--font-sans)}.sf-pin__dots{display:flex;gap:var(--space-gap)}.sf-pin__dots--bad{animation:sf-shake .3s ease-in-out 2}.sf-pin__dot{width:var(--pin-dot);height:var(--pin-dot);border-radius:var(--radius-round);border:2px solid var(--brand-primary)}.sf-pin__dot--on{background:var(--brand-primary)}.sf-pin__dot--bad{border-color:var(--error);background:var(--error)}.sf-pin__msg{color:var(--error);font-weight:700}.sf-pin__keys{display:grid;grid-template-columns:repeat(3,var(--pin-key-w));gap:var(--space-gap)}.sf-pin__key{height:var(--answer-h);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:700 32px/1 var(--font-sans);cursor:pointer}.sf-pin__key--word{font-size:24px}.sf-pin__key:disabled{color:var(--text-muted);border-color:var(--hairline);cursor:wait}.sf-initials{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-round);background:var(--brand-tint);color:var(--brand-primary);font:700 20px/1 var(--font-sans)}.sf-scan{display:flex;align-items:center;gap:8px;height:var(--tap);padding:0 var(--space-gap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:20px;color:var(--text-muted)}.sf-scan__input{flex:1;min-width:0;height:100%;border:0;outline:none;background:transparent;font:400 20px/1.6 var(--font-sans);color:var(--text-primary)}.sf-scan__input::placeholder{color:var(--text-muted);opacity:1}.sf-scan--focus,.sf-scan:focus-within{border:var(--scan-focus) solid var(--brand-primary);color:var(--text-primary);padding:0 calc(var(--space-gap) - 4px);animation:sf-pulse 1.6s ease-in-out infinite}.sf-scan--locked{background:var(--surface-alt);border-color:var(--hairline);color:var(--text-primary)}.sf-fail{position:relative;background:var(--error-surface);border:4px solid var(--error);border-radius:var(--radius);padding:28px var(--space-pad) var(--space-pad);overflow:hidden}.sf-fail:before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--error)}.sf-fail--fresh:before{animation:sf-flash 2s steps(1,end) 0s 2.5}.sf-fail__lead{font:700 26px/1.3 var(--font-sans);color:var(--error)}.sf-fail__head{font:700 24px/1.4 var(--font-sans);margin-top:8px}.sf-fail__actions{display:flex;flex-wrap:wrap;gap:var(--space-gap);margin-top:var(--space-gap)}.sf-fail__detail{color:var(--text-muted);font-size:20px;margin-top:8px}.sf-alarm{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-pad);width:var(--canvas-w);height:var(--canvas-h);border:var(--alarm-frame) solid var(--surface);color:var(--surface);text-align:center;animation:sf-blink 1s steps(1,end) infinite}.sf-alarm--fixed{position:fixed;inset:0;width:auto;height:auto;z-index:40}.sf-alarm--stop,.sf-alarm--fail{background:var(--error)}.sf-alarm--check{background:var(--warn)}.sf-alarm--fresh{animation:sf-blink 1s steps(1,end) infinite,sf-flash 2s steps(1,end) 0s 2.5}.sf-alarm__icon{display:inline-flex;font-size:160px;line-height:1}.sf-alarm__head{font:700 72px/1.2 var(--font-sans)}.sf-alarm__why{font-size:26px;max-width:1000px}.sf-alarm__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-pad)}.sf-alarm .sf-btn--light{min-width:260px}.sf-tag{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:var(--radius);font:700 20px/1.4 var(--font-sans);white-space:nowrap}.sf-tag--ok{background:var(--success-surface);color:var(--success)}.sf-tag--warn{background:var(--warn-surface);color:var(--warn)}.sf-tag--error{background:var(--error-surface);color:var(--error)}.sf-tag--neutral{background:var(--surface-alt);color:var(--text-primary)}html,body,#root{height:100%;margin:0}body{background:var(--surface-alt);overflow:hidden}.app-viewport{position:fixed;inset:0;background:#e3e5ea}.app-stage{position:absolute;left:50%;top:50%;width:var(--canvas-w);height:var(--canvas-h);overflow:hidden;background:var(--surface-alt);transform-origin:50% 50%}.app-header{position:absolute;left:0;right:0;top:0;z-index:5}.app-screen{position:absolute;inset:0}.app-stage .sf-header__title{position:static;transform:none;margin-left:var(--space-gap);font-size:22px;overflow:hidden}.app-stage .sf-header__right{gap:4px}.app-stage .sf-menu{width:400px;max-height:1000px;overflow-y:auto}.app-stage .sf-toast{width:592px;height:auto;min-height:56px;padding:8px var(--space-gap);line-height:1.3;text-align:center;bottom:120px}.app-stage .sf-pin{width:592px}.app-stage .sf-band{padding:12px var(--space-gap);gap:var(--space-gap)}.app-stage .sf-band__icon{font-size:32px}.app-stage .sf-band .sf-btn{padding:0 var(--space-gap)}.app-stage .sf-alarm__head{font-size:44px}.app-stage .sf-alarm__icon{font-size:120px}.sf-header__home{margin-left:-8px;color:var(--surface);font-size:28px}.pg{position:absolute;inset:var(--header-h) 0 0 0;display:flex;flex-direction:column}.pg__band{flex:none}.pg__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-pad) var(--space-gap) var(--space-pad);display:flex;flex-direction:column;gap:var(--space-gap)}.pg__q{margin:0;font:700 32px/1.3 var(--font-sans)}.pg__lead{margin:-8px 0 0;color:var(--text-muted)}.pg__h{margin:8px 0 0;font:700 22px/1.3 var(--font-sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:18px}.pg__bar{flex:none;display:flex;align-items:center;gap:12px;min-height:96px;padding:16px var(--space-gap);background:var(--surface);border-top:1px solid var(--hairline)}.pg__bar .pg__spacer{flex:1}.pg__bar .sf-btn{padding:0 20px}.pg__bar .sf-lock{flex-direction:column-reverse;align-items:flex-end;gap:4px}.pg__bar .sf-lock-why{font-size:18px;text-align:right;white-space:normal;max-width:360px}.sv{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden}.sv__row{display:flex;align-items:center;gap:12px;min-height:var(--tap);padding:8px var(--space-gap);border:0;border-bottom:1px solid var(--hairline);background:transparent;color:var(--text-primary);font:400 20px/1.3 var(--font-sans);text-align:left;cursor:pointer;transition:background-color .15s}.sv__row:last-child{border-bottom:0}.sv__row:active{background:var(--surface-alt)}.sv__label{flex:none;width:150px;color:var(--text-muted)}.sv__value{flex:1;min-width:0;font-weight:700;overflow-wrap:anywhere}.sv__ok{display:inline-flex;color:var(--success)}.sv__edit{display:inline-flex;color:var(--text-muted)}.sv__row[aria-disabled=true]{cursor:default}.ls{display:flex;flex-direction:column;gap:var(--space-menu)}.row{position:relative;display:flex;align-items:center;gap:12px;min-height:88px;padding:12px var(--space-gap);border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);text-align:left;font:400 20px/1.3 var(--font-sans);cursor:pointer;transition:background-color .15s,border-color .15s,transform .1s}.row:active{transform:scale(.99)}.row--static{cursor:default}.row--static:active{transform:none}.row--next{border:var(--accent-line) solid var(--brand-primary);padding:9px 13px}.row[aria-pressed=true]{background:var(--brand-tint);border-color:var(--brand-primary);box-shadow:inset 0 0 0 1px var(--brand-primary)}.row__icon{flex:none;display:inline-flex;font-size:28px;color:var(--brand-primary)}.row__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.row__title{font:700 22px/1.3 var(--font-sans);overflow-wrap:anywhere}.row__sub{color:var(--text-muted);overflow-wrap:anywhere}.row__end{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.row__go{flex:none;display:inline-flex;color:var(--text-muted);font-size:24px}.row__n{font:700 24px/1 var(--font-sans);font-variant-numeric:tabular-nums}.ls__empty{padding:var(--space-pad) var(--space-gap);text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.ch{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ch--one{grid-template-columns:1fr}.ch--three{grid-template-columns:1fr 1fr 1fr}.pick{position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:80px;padding:12px var(--space-gap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:700 22px/1.25 var(--font-sans);text-align:left;cursor:pointer;transition:background-color .15s,color .15s,transform .1s}.pick:active{transform:scale(.98)}.pick[aria-pressed=true]{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--surface)}.pick__sub{font:400 18px/1.3 var(--font-sans);color:var(--text-muted)}.pick[aria-pressed=true] .pick__sub{color:var(--surface)}.pick__likely{align-self:flex-start;margin-top:4px;padding:2px 8px;border-radius:var(--radius);background:var(--brand-tint);color:var(--brand-primary);font:700 16px/1.3 var(--font-sans)}.pick[aria-pressed=true] .pick__likely{background:var(--surface)}.np{display:flex;flex-direction:column;gap:12px}.np__show{display:flex;align-items:baseline;justify-content:center;gap:12px;min-height:var(--tap);padding:8px var(--space-gap);background:var(--surface);border:2px solid var(--brand-primary);border-radius:var(--radius);font:700 36px/1.2 var(--font-sans);font-variant-numeric:tabular-nums}.np__show--empty{color:var(--text-muted);font-weight:400;font-size:24px;align-items:center}.np__unit{font:400 22px/1 var(--font-sans);color:var(--text-muted)}.np__keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.np__key{height:var(--tap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:700 30px/1 var(--font-sans);cursor:pointer;transition:transform .1s}.np__key:active{transform:scale(.97);background:var(--surface-alt)}.np__key--word{font-size:22px}.tx{display:flex;flex-direction:column;gap:8px}.tx__label{font-weight:700}.tx__input{min-height:var(--tap);padding:0 var(--space-gap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:400 22px/1.4 var(--font-sans);color:var(--text-primary)}.tx__input:focus{outline:none;border:3px solid var(--brand-primary);padding:0 calc(var(--space-gap) - 2px)}textarea.tx__input{min-height:120px;padding:12px var(--space-gap);resize:none}.fx{display:grid;grid-template-columns:auto 1fr;gap:4px var(--space-gap);padding:12px var(--space-gap);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius)}.fx dt{color:var(--text-muted)}.fx dd{margin:0;font-weight:700;overflow-wrap:anywhere}.pr{display:flex;flex-direction:column;gap:8px;padding:12px var(--space-gap);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius)}.pr__top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.pr__n{font:700 32px/1.1 var(--font-sans);font-variant-numeric:tabular-nums}.pr__of{color:var(--text-muted)}.pr__track{height:12px;border-radius:6px;background:var(--surface-alt);overflow:hidden}.pr__fill{height:100%;border-radius:6px;background:var(--brand-primary);transition:width .72s cubic-bezier(.16,1,.3,1)}.pr__fill--done{background:var(--success)}.st{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:0;padding:0;list-style:none}.st__i{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:var(--radius);color:var(--text-muted);font:400 16px/1.2 var(--font-sans);text-align:center}.st__n{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:2px solid var(--border);border-radius:var(--radius-round);font:700 16px/1 var(--font-sans)}.st__i--done{color:var(--success)}.st__i--done .st__n{border-color:var(--success);background:var(--success-surface)}.st__i--now{background:var(--brand-tint);color:var(--brand-primary);font-weight:700}.st__i--now .st__n{border-color:var(--brand-primary);background:var(--brand-primary);color:var(--surface)}.pk{display:flex;flex-direction:column;gap:8px;padding:12px var(--space-gap);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);transition:border-color .52s,background-color .52s}.pk--done{border-color:var(--success);background:var(--success-surface)}.pk--hit{border-color:var(--brand-primary);box-shadow:inset 0 0 0 1px var(--brand-primary)}.pk__name{font:700 22px/1.3 var(--font-sans)}.pk__nums{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pk__num{display:flex;flex-direction:column;padding:8px 12px;border-radius:var(--radius);background:var(--surface-alt)}.pk--done .pk__num{background:var(--surface)}.pk__label{color:var(--text-muted);font-size:18px}.pk__val{font:700 32px/1.1 var(--font-sans);font-variant-numeric:tabular-nums}.pk__hint{color:var(--text-muted);font-size:18px}.hm__hi{margin:0;font:700 32px/1.3 var(--font-sans)}.hm__tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hm__tile{display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:120px;padding:var(--space-gap);border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);text-align:left;cursor:pointer;transition:transform .1s}.hm__tile:active{transform:scale(.98)}.hm__tile .row__icon{font-size:32px}.hm__tname{font:700 24px/1.2 var(--font-sans)}.hm__tsub{color:var(--text-muted);font-size:18px;line-height:1.3}.hm__tile--locked{background:var(--surface-alt);cursor:not-allowed}.hm__tile--locked .hm__tname{color:var(--text-muted)}.hm__tile--locked .hm__tsub{color:var(--text-primary);display:flex;gap:6px;align-items:center}.sh-scrim{position:absolute;inset:0;z-index:8;background:var(--scrim)}.sh{position:absolute;left:0;right:0;bottom:0;z-index:9;max-height:1000px;display:flex;flex-direction:column;background:var(--surface-alt);border-radius:16px 16px 0 0;overflow:hidden}.sh__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-pad) var(--space-gap);display:flex;flex-direction:column;gap:var(--space-gap)}.sh__title{margin:0;font:700 28px/1.3 var(--font-sans)}.sh .pg__bar{border-top:1px solid var(--hairline)}.pd__time{color:var(--text-muted);font-size:18px}.ex{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 12px 12px;border:1px dashed var(--practice-text);border-radius:var(--radius);background:var(--practice-fill)}.ex__head{flex-basis:100%;color:var(--practice-text);font:700 16px/1.3 var(--font-sans)}.ex__code{min-height:48px;padding:0 12px;border:1px solid var(--practice-text);border-radius:var(--radius);background:var(--surface);color:var(--text-primary);font:400 18px/1.2 var(--font-sans);cursor:pointer;text-align:left}.app-version{font-size:14px;line-height:1;color:var(--text-muted)}.sf-btn:active,.sf-answer:active,.sf-pin__key:active{transform:scale(.98)}.sf-btn,.sf-answer,.sf-pin__key{transition:transform .1s,background-color .15s,color .15s,border-color .15s}.app-stage .sf-check{flex-wrap:wrap;gap:12px;padding:12px var(--space-gap) 12px 0;min-height:0}.app-stage .sf-check__q{flex-basis:calc(100% - 30px)}.app-stage .sf-answers{gap:8px;margin-left:18px;width:calc(100% - 18px)}.app-stage .sf-answer{flex:1;width:auto;height:var(--tap)}.sf-pin__checking{color:var(--text-muted)}.sf-pin__dots--checking .sf-pin__dot{animation:app-pin-pulse 1.2s ease-in-out infinite}.sf-pin__dots--checking .sf-pin__dot:nth-child(2){animation-delay:.15s}.sf-pin__dots--checking .sf-pin__dot:nth-child(3){animation-delay:.3s}.sf-pin__dots--checking .sf-pin__dot:nth-child(4){animation-delay:.45s}@keyframes app-pin-pulse{0%,to{opacity:1}50%{opacity:.35}}::view-transition-group(*){animation-duration:.52s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition{pointer-events:none}@media(prefers-reduced-motion:reduce){.app-stage *{transition-duration:1ms!important}}
