:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#eef0f3;--surface-3:#e3e6ea;--border:#d5d9df;--border-strong:#b9c0c9;--text:#16191d;--text-2:#4d545d;--text-3:#767d87;--accent:#b3271e;--accent-hover:#97201a;--accent-soft:#fdeceb;--accent-border:#eec3c0;--ink:#1f2a37;--ink-2:#2c3a4b;--ok:#1c7c4a;--ok-soft:#e6f4ec;--ok-border:#b6ddc7;--warn:#a76a06;--warn-soft:#fdf3e2;--bad:#b3271e;--bad-soft:#fdeceb;--bad-border:#eec3c0;--radius:8px;--radius-sm:5px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018280d;--shadow-lg:0 4px 16px #10182817;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sidebar-w:232px}@media (prefers-color-scheme:dark){:root{--bg:#14171b;--surface:#1b1f24;--surface-2:#23282f;--surface-3:#2c323a;--border:#333a43;--border-strong:#444c57;--text:#e9ecef;--text-2:#a8b0b9;--text-3:#7f8892;--accent:#e05b50;--accent-hover:#ee6c61;--accent-soft:#33201e;--accent-border:#5c3330;--ink:#e9ecef;--ink-2:#cdd3da;--ok:#4cb87c;--ok-soft:#1a2c22;--ok-border:#2e4c3a;--warn:#d99b2b;--warn-soft:#2d2517;--bad:#e05b50;--bad-soft:#33201e;--bad-border:#5c3330;--shadow:0 1px 2px #0006;--shadow-lg:0 4px 18px #00000073}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.25}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}input,textarea,select{font:inherit;color:inherit}.app{min-height:100%;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:#1f2a37;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}@media (prefers-color-scheme:dark){.sidebar{border-right:1px solid var(--border);background:#101317}}.brand{border-bottom:1px solid #ffffff17;padding:18px 16px 14px}.brand-mark{letter-spacing:.02em;color:#fff;align-items:center;gap:9px;font-size:14px;font-weight:700;display:flex}.brand-sub{color:#8e99a5;margin-top:4px;font-size:11.5px;line-height:1.35}.nav{flex-direction:column;flex:1;gap:1px;padding:10px 8px;display:flex}.nav-section{letter-spacing:.09em;text-transform:uppercase;color:#6f7a86;padding:12px 8px 5px;font-size:10.5px;font-weight:700}.nav-item{border-radius:var(--radius-sm);color:#c3cad2;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13.5px;transition:background .12s,color .12s;display:flex}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{color:#fff;background:#b3271e;font-weight:600}@media (prefers-color-scheme:dark){.nav-item.active{background:var(--accent)}}.nav-item svg{opacity:.9;flex:none}.nav-badge{color:#fff;text-align:center;background:#ffffff24;border-radius:20px;min-width:20px;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:700}.nav-item.active .nav-badge{background:#00000047}.sidebar-foot{color:#6f7a86;border-top:1px solid #ffffff17;padding:12px 16px;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.content{flex:1;width:100%;max-width:1060px;margin:0 auto;padding:26px 30px 60px}.mobile-bar{display:none}@media (width<=860px){.sidebar{display:none}.app{flex-direction:column}.mobile-bar{z-index:30;box-shadow:var(--shadow);background:#1f2a37;display:block;position:sticky;top:0}.mobile-head{color:#fff;align-items:center;gap:8px;padding:11px 14px 9px;font-size:13.5px;font-weight:700;display:flex}.mobile-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:4px;padding:0 10px 9px;display:flex;overflow-x:auto}.mobile-tabs::-webkit-scrollbar{display:none}.mobile-tab{color:#c3cad2;white-space:nowrap;background:#ffffff1a;border:0;border-radius:20px;flex:none;padding:6px 12px;font-size:13px}.mobile-tab.active{color:#fff;background:#b3271e;font-weight:600}.content{padding:16px 14px 48px}}@media (prefers-color-scheme:dark) and (width<=860px){.mobile-bar{border-bottom:1px solid var(--border);background:#101317}.mobile-tab.active{background:var(--accent)}}.page-head{margin-bottom:20px}.page-head h1{font-size:22px;font-weight:700}.page-head .sub{color:var(--text-2);margin-top:4px;font-size:13.5px}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:16px}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.card-head h2,.card-head h3{font-size:14px;font-weight:700}.grid{gap:14px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 15px}.stat-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:700}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:5px;font-size:27px;font-weight:700}.stat-note{color:var(--text-2);margin-top:2px;font-size:12.5px}.stat-value.accent{color:var(--accent)}.bar{background:var(--surface-3);border-radius:20px;height:7px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:20px;height:100%;transition:width .35s}.bar-fill.ok{background:var(--ok)}.bar-fill.warn{background:var(--warn)}.bar.lg{height:10px}.btn{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:600;transition:background .12s,border-color .12s,transform 60ms;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{border-color:var(--bad-border);color:var(--bad);background:var(--bad-soft)}.btn-danger:hover:not(:disabled){background:var(--bad);color:#fff;border-color:var(--bad)}.btn-sm{padding:5px 10px;font-size:12.5px}.btn-block{width:100%}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:600}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);white-space:nowrap;border-radius:20px;padding:4px 10px;font-size:12.5px;font-weight:600}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}@media (prefers-color-scheme:dark){.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}}.tag{letter-spacing:.02em;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.tag.easy{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.tag.medium{background:var(--warn-soft);color:var(--warn);border-color:#0000}.tag.hard{background:var(--bad-soft);color:var(--bad);border-color:var(--bad-border)}.tag.done{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.input,.textarea,.select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);outline:none;width:100%;padding:8px 11px;font-size:14px}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:110px;line-height:1.55}.search{flex:1;min-width:180px;position:relative}.search svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search .input{padding-left:32px}.field-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-size:12px;font-weight:700;display:block}.flip-scene{perspective:1600px;margin-bottom:16px}.flip-card{width:100%;min-height:260px;transform-style:preserve-3d;cursor:pointer;transition:transform .5s cubic-bezier(.4,.2,.2,1);position:relative}.flip-card.flipped{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;text-align:center;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;justify-content:center;align-items:center;padding:34px 26px;display:flex;position:absolute;inset:0;overflow-y:auto}.flip-face.back{color:#fff;background:#1f2a37;border-color:#1f2a37;transform:rotateY(180deg)}@media (prefers-color-scheme:dark){.flip-face.back{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}}.flip-kicker{letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);font-size:10.5px;font-weight:700;position:absolute;top:12px;left:14px}.flip-face.back .flip-kicker{color:#ffffff8c}@media (prefers-color-scheme:dark){.flip-face.back .flip-kicker{color:var(--text-3)}}.flip-text{max-width:46ch;font-size:19px;font-weight:600;line-height:1.45}.flip-face.back .flip-text{font-weight:500}.flip-hint{color:var(--text-3);font-size:11.5px;position:absolute;bottom:12px}.flip-face.back .flip-hint{color:#ffffff73}@media (prefers-color-scheme:dark){.flip-face.back .flip-hint{color:var(--text-3)}}.confidence{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.conf-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;align-items:center;gap:2px;padding:9px 4px;transition:background .12s,border-color .12s,color .12s;display:flex}.conf-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.conf-btn strong{font-variant-numeric:tabular-nums;font-size:16px}.conf-btn span{color:var(--text-3);text-align:center;font-size:10.5px;line-height:1.2}.conf-btn:hover span{color:inherit}.q-progress{align-items:center;gap:12px;margin-bottom:16px;display:flex}.q-progress .bar{flex:1}.q-count{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px;font-weight:700}.q-text{margin:4px 0 16px;font-size:17px;font-weight:600;line-height:1.45}.options{flex-direction:column;gap:8px;display:flex}.option{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);text-align:left;align-items:flex-start;gap:11px;width:100%;padding:12px 14px;font-size:14.5px;line-height:1.45;transition:border-color .12s,background .12s;display:flex}.option:hover:not(:disabled){border-color:var(--ink-2);background:var(--surface-2)}.option-key{background:var(--surface-3);width:22px;height:22px;color:var(--text-2);border-radius:4px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.option.correct{border-color:var(--ok);background:var(--ok-soft)}.option.correct .option-key{background:var(--ok);color:#fff}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.option.wrong .option-key{background:var(--bad);color:#fff}.option:disabled{cursor:default}.rationale{border-radius:var(--radius-sm);border-left:3px solid var(--border-strong);background:var(--surface-2);margin-top:14px;padding:12px 14px;font-size:13.5px;line-height:1.55}.rationale.correct{border-left-color:var(--ok);background:var(--ok-soft)}.rationale.wrong{border-left-color:var(--bad);background:var(--bad-soft)}.rationale strong{text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:12px;display:block}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:13px 16px;display:flex}.list-item:last-child{border-bottom:0}.check{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:0;align-items:flex-start;gap:10px;width:100%;padding:9px 12px;font-size:14px;line-height:1.5;transition:background .1s;display:flex}.check:hover{background:var(--surface-2)}.check-box{border:1.5px solid var(--border-strong);color:#0000;border-radius:4px;flex:none;justify-content:center;align-items:center;width:17px;height:17px;margin-top:2px;transition:background .12s,border-color .12s,color .12s;display:flex}.check.checked .check-box{background:var(--ok);border-color:var(--ok);color:#fff}.check.checked .check-text{color:var(--text-3);text-decoration:line-through}.bullets{flex-direction:column;gap:5px;margin:0;padding-left:18px;display:flex}.bullets li{color:var(--text-2);font-size:13.5px;line-height:1.5}.score-row{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;display:grid}.score-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-variant-numeric:tabular-nums;padding:9px 4px;font-size:13px;font-weight:700}.score-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.score-btn.selected{background:var(--ink);border-color:var(--ink);color:#fff}@media (prefers-color-scheme:dark){.score-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff}}.muted{color:var(--text-2);font-size:13.5px;line-height:1.55}.tiny{color:var(--text-3);font-size:12px}.empty{text-align:center;color:var(--text-2);padding:48px 20px}.empty svg{color:var(--text-3);margin-bottom:10px}.empty h3{color:var(--text);margin-bottom:4px;font-size:15px}.empty p{max-width:44ch;margin:0 auto;font-size:13.5px}.done-banner{border-radius:var(--radius-sm);background:var(--ok-soft);border:1px solid var(--ok-border);color:var(--ok);align-items:center;gap:10px;padding:12px 14px;font-size:13.5px;font-weight:600;display:flex}.sparkline{align-items:flex-end;gap:3px;height:54px;display:flex}.spark-bar{background:var(--accent);border-radius:2px 2px 0 0;flex:1;min-width:4px;min-height:2px;transition:height .3s}.dstat{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 16px;display:grid}.dstat:last-child{border-bottom:0}.dstat-name{font-size:13.5px;font-weight:600}.dstat-val{font-variant-numeric:tabular-nums;color:var(--text-2);font-size:13px;font-weight:700}.dstat .bar{grid-column:1/-1}.link-btn{color:var(--accent);text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.note-card{border-bottom:1px solid var(--border);padding:14px 16px}.note-card:last-child{border-bottom:0}.note-body{color:var(--text-2);white-space:pre-wrap;margin-top:6px;font-size:13.5px;line-height:1.6}.privacy-note{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);align-items:flex-start;gap:9px;padding:11px 13px;font-size:12.5px;line-height:1.5;display:flex}.privacy-note svg{color:var(--ok);flex:none;margin-top:1px}.result-hero{text-align:center;padding:26px 20px 22px}.result-score{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:46px;font-weight:700;line-height:1}.result-label{color:var(--text-2);margin-top:6px;font-size:14px}.review-item{border-bottom:1px solid var(--border);padding:14px 16px}.review-item:last-child{border-bottom:0}.review-q{margin-bottom:7px;font-size:14px;font-weight:600;line-height:1.45}.review-line{color:var(--text-2);font-size:13px;line-height:1.55}.review-line b{color:var(--text)}.gterm{border-bottom:1px solid var(--border);padding:13px 16px}.gterm:last-child{border-bottom:0}.gterm-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:3px;display:flex}.gterm-name{font-size:14.5px;font-weight:700}.gterm-def{color:var(--text-2);font-size:13.5px;line-height:1.55}.q-text,.flip-text,.gterm-def,.note-body,.muted,.option,.check{overflow-wrap:anywhere}
