:root{--navy-900:#0a1b2e;--navy-800:#10263f;--navy-700:#16324f;--sea-500:#1c6e8c;--sea-400:#2b8fae;--sea-300:#6bb8ce;--coral-600:#cf5028;--coral-500:#e8663a;--sand-50:#faf7f2;--sand-100:#f3eee6;--sand-200:#e5ddd0;--radius:14px;--radius-sm:9px;--shadow-sm:0 1px 2px #0a1b2e14, 0 2px 8px #0a1b2e0d;--shadow-md:0 6px 20px #0a1b2e24;--tap:48px;--maxw:720px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg:var(--sand-50);--bg-elev:#fff;--bg-sunken:var(--sand-100);--text:var(--navy-900);--text-dim:#4a5d73;--text-faint:#71849a;--border:var(--sand-200);--border-strong:#cdc2b2;--accent:var(--coral-600);--accent-text:#fff;--header-bg:var(--navy-800);--header-text:#eef4f8;--focus:var(--sea-500);--lvl-red:#b93a29;--lvl-orange:#c4761b;--lvl-yellow:#97840f;--lvl-green:#2a8054;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--navy-900);--bg-elev:var(--navy-800);--bg-sunken:#0c2036;--text:#eaf1f6;--text-dim:#a6bacb;--text-faint:#7b91a6;--border:#21384f;--border-strong:#33506c;--accent:var(--coral-500);--accent-text:#200e05;--header-bg:#081524;--header-text:#eaf1f6;--focus:var(--sea-300);--lvl-red:#e5705f;--lvl-orange:#eda94f;--lvl-yellow:#d6c04a;--lvl-green:#5cc98d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:var(--navy-900);--bg-elev:var(--navy-800);--bg-sunken:#0c2036;--text:#eaf1f6;--text-dim:#a6bacb;--text-faint:#7b91a6;--border:#21384f;--border-strong:#33506c;--accent:var(--coral-500);--accent-text:#200e05;--header-bg:#081524;--header-text:#eaf1f6;--focus:var(--sea-300);--lvl-red:#e5705f;--lvl-orange:#eda94f;--lvl-yellow:#d6c04a;--lvl-green:#5cc98d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font-size:16px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;line-height:1.25}p{margin:0}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{background:var(--header-bg);color:var(--header-text);padding:env(safe-area-inset-top) 0 0;z-index:20;position:sticky;top:0}.topbar__inner{max-width:var(--maxw);align-items:center;gap:10px;min-height:56px;margin:0 auto;padding:10px 16px;display:flex}.topbar__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1.05rem;font-weight:650;overflow:hidden}.topbar__btn{color:inherit;border-radius:var(--radius-sm);background:#ffffff1a;border:1px solid #ffffff24;align-items:center;gap:6px;min-height:40px;padding:0 12px;font-size:.86rem;font-weight:550;display:inline-flex}.topbar__btn:hover{background:#ffffff2e}.main{width:100%;max-width:var(--maxw);padding:16px 16px calc(24px + env(safe-area-inset-bottom));flex:1;margin:0 auto}.main--study{padding-bottom:calc(200px + env(safe-area-inset-bottom))}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.card+.card{margin-top:14px}.card__title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:10px;font-size:.78rem;font-weight:650}.btn{min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--text);justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.95rem;font-weight:600;transition:transform 80ms,background .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-sm);border-color:#0000}.btn--block{width:100%}.btn--lg{min-height:58px;font-size:1.05rem}.btn--sm{min-height:38px;padding:0 12px;font-size:.85rem}.btn--ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn--danger{border-color:var(--lvl-red);color:var(--lvl-red);background:0 0}.hero{background:linear-gradient(160deg, var(--navy-800), var(--sea-500));color:#eef4f8;border-radius:var(--radius);box-shadow:var(--shadow-md);padding:20px 18px}.hero__label{text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-size:.8rem}.hero__round{margin-top:2px;font-size:1.5rem;font-weight:700}.hero__bar{background:#fff3;border-radius:99px;height:10px;margin:14px 0 8px;overflow:hidden}.hero__bar>span{background:var(--coral-500);border-radius:99px;height:100%;transition:width .3s;display:block}.hero__meta{opacity:.9;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.88rem;display:flex}.hero__cta{margin-top:16px}.grid{gap:10px;display:grid}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}.stat{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.stat__value{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:700}.stat__label{color:var(--text-faint);font-size:.76rem;line-height:1.3}.levels{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.level-chip{border-radius:var(--radius-sm);text-align:center;border:1px solid var(--border);background:var(--bg-sunken);padding:8px 6px}.level-chip__mark{font-size:.9rem;line-height:1}.level-chip__value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.level-chip__label{color:var(--text-faint);font-size:.7rem}.level-red{color:var(--lvl-red)}.level-orange{color:var(--lvl-orange)}.level-yellow{color:var(--lvl-yellow)}.level-green{color:var(--lvl-green)}.level-chip--red{border-left:4px solid var(--lvl-red)}.level-chip--orange{border-left:4px solid var(--lvl-orange)}.level-chip--yellow{border-left:4px solid var(--lvl-yellow)}.level-chip--green{border-left:4px solid var(--lvl-green)}.mode-list{gap:10px;display:grid}.mode{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);width:100%;min-height:62px;color:var(--text);align-items:center;gap:12px;padding:12px 14px;display:flex}.mode:hover:not(:disabled){border-color:var(--border-strong)}.mode:disabled{opacity:.45;cursor:not-allowed}.mode__icon{text-align:center;flex:none;width:30px;font-size:1.35rem}.mode__name{font-size:.97rem;font-weight:620;display:block}.mode__desc{color:var(--text-faint);margin-top:2px;font-size:.8rem;line-height:1.35;display:block}.mode--primary{border-color:var(--accent);border-width:2px}.qcard__head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.qnum{background:var(--navy-800);color:#fff;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;flex:none;padding:6px 12px;font-size:1rem;font-weight:700}:root[data-theme=dark] .qnum,.badge--repeat{border:1px solid var(--border-strong)}.badge{border:1px solid var(--border);background:var(--bg-sunken);color:var(--text-dim);white-space:nowrap;border-radius:99px;padding:4px 9px;font-size:.72rem;font-weight:650}.badge--repeat{background:var(--accent);color:var(--accent-text);border-color:#0000}.badge--level-red{color:var(--lvl-red);border-color:var(--lvl-red)}.badge--level-orange{color:var(--lvl-orange);border-color:var(--lvl-orange)}.badge--level-yellow{color:var(--lvl-yellow);border-color:var(--lvl-yellow)}.badge--level-green{color:var(--lvl-green);border-color:var(--lvl-green)}.qcard__question{margin:4px 0 6px;font-size:1.28rem;font-weight:650;line-height:1.35}.qcard__hint{color:var(--text-faint);margin-bottom:14px;font-size:.86rem}.qcard__stats{color:var(--text-faint);border-top:1px solid var(--border);flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:10px;font-size:.78rem;display:flex}.answer{border-top:2px solid var(--border);margin-top:16px;padding-top:16px;animation:.2s fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.answer__section+.answer__section{margin-top:16px}.answer__label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:6px;font-size:.74rem;font-weight:700}.answer__short{background:var(--bg-sunken);border-left:4px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:12px 14px;font-size:1.06rem;font-weight:600}.answer__detail{white-space:pre-line;color:var(--text-dim);font-size:.95rem}.keypoints{gap:6px;margin:0;padding:0;list-style:none;display:grid}.keypoint{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);text-align:left;width:100%;min-height:44px;color:var(--text);align-items:flex-start;gap:10px;padding:9px 11px;font-size:.92rem;line-height:1.4;display:flex}.keypoint--checked{background:color-mix(in srgb, var(--lvl-green) 12%, var(--bg-elev));border-color:var(--lvl-green)}.keypoint__box{border:2px solid var(--border-strong);border-radius:5px;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;font-size:.8rem;display:grid}.keypoint--checked .keypoint__box{background:var(--lvl-green);border-color:var(--lvl-green);color:#fff}.related{flex-wrap:wrap;gap:8px;display:flex}.related__item{border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--text);border-radius:99px;min-height:38px;padding:7px 13px;font-size:.83rem}.rate-bar{z-index:30;background:var(--bg-elev);border-top:1px solid var(--border);padding:10px 12px calc(10px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #0a1b2e1f}.rate-bar__inner{max-width:var(--maxw);margin:0 auto}.rate-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.rate-btn{border-radius:var(--radius-sm);background:var(--bg-elev);border:2px solid;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:60px;font-size:.92rem;font-weight:640;line-height:1.2;display:flex}.rate-btn__key{opacity:.65;font-size:.68rem;font-weight:600}.rate-btn--wrong{border-color:var(--lvl-red);color:var(--lvl-red)}.rate-btn--partial{border-color:var(--lvl-orange);color:var(--lvl-orange)}.rate-btn--correct{border-color:var(--lvl-yellow);color:var(--lvl-yellow)}.rate-btn--perfect{border-color:var(--lvl-green);color:var(--lvl-green)}.rate-bar__progress{color:var(--text-faint);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:.8rem;display:flex}.progress-track{background:var(--bg-sunken);border-radius:99px;flex:1;height:6px;overflow:hidden}.progress-track>span{background:var(--accent);border-radius:99px;height:100%;transition:width .25s;display:block}.undo-bar{left:50%;bottom:calc(190px + env(safe-area-inset-bottom));z-index:40;background:var(--navy-800);color:#fff;box-shadow:var(--shadow-md);border-radius:99px;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:8px 10px 8px 16px;font-size:.85rem;display:flex;position:fixed;transform:translate(-50%)}.undo-bar button{color:#fff;background:#ffffff29;border:0;border-radius:99px;min-height:36px;padding:7px 14px;font-weight:650}.input{width:100%;min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elev);padding:10px 14px;font-size:1.05rem}.textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elev);resize:vertical;width:100%;min-height:82px;padding:10px 12px;font-size:.95rem;line-height:1.5}.feedback{border-radius:var(--radius-sm);margin-top:10px;padding:10px 12px;font-size:.92rem;font-weight:600}.feedback--ok{background:color-mix(in srgb, var(--lvl-green) 14%, var(--bg-elev));color:var(--lvl-green);border:1px solid var(--lvl-green)}.feedback--bad{background:color-mix(in srgb, var(--lvl-red) 12%, var(--bg-elev));color:var(--lvl-red);border:1px solid var(--lvl-red)}.order-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.order-item{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elev);align-items:center;gap:10px;min-height:52px;padding:10px 12px;font-size:.92rem;display:flex}.order-item[draggable=true]{cursor:grab}.order-item--dragging{opacity:.45}.order-item--over{border-color:var(--accent);border-style:dashed}.order-item__pos{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;width:20px;font-weight:700}.order-item__text{flex:1;min-width:0}.order-item__moves{flex-direction:column;flex:none;gap:2px;display:flex}.order-item__moves button{border:1px solid var(--border);background:var(--bg-sunken);width:34px;height:24px;color:var(--text-dim);border-radius:5px;font-size:.7rem;line-height:1}.sign-image{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;width:min(230px,62vw);height:auto;margin:0 auto;padding:8px;display:block}.sign-options{gap:8px;margin-top:16px;display:grid}.sign-option{text-align:left;min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--text);padding:12px 14px;font-size:.92rem;line-height:1.35}.sign-option--correct{border-color:var(--lvl-green);background:color-mix(in srgb, var(--lvl-green) 14%, var(--bg-elev))}.sign-option--wrong{border-color:var(--lvl-red);background:color-mix(in srgb, var(--lvl-red) 12%, var(--bg-elev))}.sign-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.sign-grid button{border:2px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;min-height:120px;padding:8px}.sign-grid img{width:100%;height:auto;display:block}.sign-grid button.sign-option--correct{border-color:var(--lvl-green)}.sign-grid button.sign-option--wrong{border-color:var(--lvl-red)}.filters{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--text-dim);border-radius:99px;min-height:36px;padding:6px 12px;font-size:.8rem;font-weight:550}.chip--on{background:var(--navy-800);border-color:var(--navy-800);color:#fff}:root[data-theme=dark] .chip--on{background:var(--sea-500);border-color:var(--sea-500)}.qrow{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);width:100%;color:var(--text);align-items:flex-start;gap:12px;margin-bottom:8px;padding:12px;display:flex}.qrow__num{font-variant-numeric:tabular-nums;min-width:30px;color:var(--text-faint);font-weight:700}.qrow__text{flex:1;min-width:0;font-size:.93rem;line-height:1.4}.qrow__meta{color:var(--text-faint);flex-wrap:wrap;gap:8px;margin-top:3px;font-size:.75rem;display:flex}.qrow__dot{vertical-align:middle;border-radius:99px;flex:none;width:10px;height:10px;margin-top:6px;display:inline-block}.dot-red{background:var(--lvl-red)}.dot-orange{background:var(--lvl-orange)}.dot-yellow{background:var(--lvl-yellow)}.dot-green{background:var(--lvl-green)}.bar-row{grid-template-columns:96px 1fr 48px;align-items:center;gap:10px;margin-bottom:7px;font-size:.83rem;display:grid}.bar-track{background:var(--bg-sunken);border:1px solid var(--border);border-radius:99px;height:12px;overflow:hidden}.bar-fill{background:var(--sea-500);border-radius:99px;height:100%;display:block}.bar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-dim)}.stacked{border-radius:var(--radius-sm);border:1px solid var(--border);height:26px;display:flex;overflow:hidden}.stacked>span{color:#fff;place-items:center;min-width:0;font-size:.72rem;font-weight:700;display:grid}.summary-hero{text-align:center;padding:22px 16px}.summary-hero__num{font-size:2.6rem;font-weight:750;line-height:1}.delta-up{color:var(--lvl-green);font-weight:650}.delta-down{color:var(--lvl-red);font-weight:650}.muted{color:var(--text-faint);font-size:.86rem}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row--between{justify-content:space-between}.stack{gap:10px;display:grid}.section-title{margin:20px 0 10px;font-size:1.06rem;font-weight:680}.timer{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:700}.timer--low{color:var(--lvl-red)}.dialog-backdrop{z-index:60;background:#06101b9e;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog{background:var(--bg-elev);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow-md);border:1px solid var(--border);padding:20px}.note-saved{color:var(--lvl-green);font-size:.76rem}@media (width>=640px){.rate-grid,.sign-grid{grid-template-columns:repeat(4,1fr)}}
