:root{--bg:#f7f5f0;--surface:#fff;--surface-2:#f0ede6;--text:#1f1d1a;--muted:#6b665e;--border:#e2ddd3;--accent:#d9480f;--accent-soft:#fff0e8;--accent-text:#fff;--saved:#2b8a3e;--saved-soft:#e6f4ea;--danger:#c92a2a;--shadow:0 1px 2px #0000000a, 0 4px 16px #0000000f;--radius:14px;--h1:#2f9e44;--h2:#1c7ed6;--h3:#7048e8;--h4:#e8590c;--h5:#c2255c;--h6:#862e9c;--h7:#495057;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#161513;--surface:#211f1c;--surface-2:#2b2925;--text:#f1eee8;--muted:#a39d93;--border:#3a3732;--accent:#ff7a3d;--accent-soft:#3a2418;--accent-text:#1a0d05;--saved:#69db7c;--saved-soft:#1e3324;--danger:#ff6b6b;--shadow:0 1px 2px #0000004d, 0 4px 16px #0000004d;--h1:#69db7c;--h2:#4dabf7;--h3:#9775fa;--h4:#ff922b;--h5:#f06595;--h6:#da77f2;--h7:#adb5bd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.5}a{color:var(--accent)}.zh{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,Source Han Sans SC,sans-serif}.muted{color:var(--muted)}.small{font-size:.85rem}.spacer{flex:1}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}[hidden]{display:none!important}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;font-size:1.35rem;font-weight:800}.tabs{background:var(--surface-2);border-radius:999px;gap:6px;margin:0 auto;padding:4px;display:flex}.tab{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 22px;font-weight:600;position:relative}.tab.on{background:var(--surface);box-shadow:var(--shadow);color:var(--accent)}.tab-badge{background:var(--accent);color:var(--accent-text);border-radius:10px;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;line-height:20px;position:absolute;top:-4px;right:-2px}.lang-pill{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:.9rem}.content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:20px}.footer{text-align:center;padding:16px}.notice{background:var(--accent-soft);border-radius:var(--radius);margin-bottom:16px;padding:10px 14px}.error{color:var(--danger)}.notice.error{background:color-mix(in srgb, var(--danger) 12%, transparent)}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 14px;font-weight:600;transition:transform 50ms,background .15s}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, black)}.btn.big{padding:12px 20px;font-size:1.05rem}.btn.small{padding:5px 10px;font-size:.85rem}.btn.icon{border-radius:999px;padding:4px 8px}.input,select{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:10px 12px}.input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.row{gap:8px;display:flex}.stack{flex-direction:column;gap:12px;margin-top:14px;display:flex}.field{flex-direction:column;gap:4px;font-size:.9rem;font-weight:600;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card h2{margin:0 0 10px;font-size:1.2rem}.hint{color:var(--muted);margin:14px 0 0;font-size:.85rem}.picker{max-width:980px;margin:20px auto}.hero{letter-spacing:-.02em;text-wrap:balance;margin:0 0 8px;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.15}.hero-sub{margin:0 0 28px;font-size:1.1rem}.picker-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.video-title{font-weight:700}.file-field{flex-direction:column;gap:4px;font-size:.9rem;font-weight:600;display:flex;position:relative}.file-name{border:1.5px dashed var(--border);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:10px;padding:10px 12px;font-weight:400;overflow:hidden}.file-name.has{border-style:solid;border-color:var(--saved);color:var(--text)}.file-field input{opacity:0;cursor:pointer;position:absolute;inset:0}.watch{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.watch-top{align-items:center;gap:12px;margin-bottom:10px;display:flex}.player-box{border-radius:var(--radius);aspect-ratio:16/9;background:#000;overflow:hidden}.video{width:100%;height:100%;display:block}.yt iframe{border:0;width:100%;height:100%;display:block}.now{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;justify-content:center;gap:6px;min-height:120px;margin-top:14px;padding:16px 20px;display:flex}.now-trans{color:var(--muted);font-size:1.05rem}.line{flex-wrap:wrap;align-items:flex-end;gap:1px;display:flex}.line.big{justify-content:center;gap:3px;font-size:clamp(1.5rem,3.2vw,2.1rem)}.word{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:1px 2px;line-height:1.3}.word:hover{background:var(--accent-soft);color:var(--accent)}.word.saved{color:var(--saved);background:var(--saved-soft)}ruby rt{color:var(--muted);font-family:system-ui,sans-serif;font-size:.42em;font-weight:500}.controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.toggle{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.9rem}.toggle.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.toggle:disabled{opacity:.45;cursor:not-allowed}.transcript{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100vh - 100px);padding:6px;position:sticky;top:76px;overflow-y:auto}.tline{cursor:pointer;border-radius:10px;grid-template-columns:42px 1fr;gap:6px;padding:8px;font-size:1.05rem;display:grid}.tline:hover{background:var(--surface-2)}.tline.active{background:var(--accent-soft)}.ttime{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:4px;font-size:.75rem}.ttrans{color:var(--muted);font-size:.85rem}.overlay{z-index:50;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.popup{background:var(--surface);border-radius:18px;width:min(520px,100%);max-height:90vh;padding:22px;position:relative;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.close{background:var(--surface-2);color:var(--text);cursor:pointer;border:0;border-radius:50%;width:34px;height:34px;font-size:1rem;position:absolute;top:10px;right:10px}.popup-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.popup-word{font-size:2.8rem;line-height:1.1}.entries{margin:12px 0}.entry{margin-bottom:8px}.entry ul{margin:4px 0 0;padding-left:20px}.py{color:var(--accent);font-size:1.15rem;font-weight:700}.py.inline{font-size:1rem}.py.big{font-size:1.6rem}.popup-sentence{background:var(--surface-2);border-radius:10px;margin:12px 0;padding:10px 12px;font-size:1.05rem}.popup-actions{flex-direction:column;gap:8px;display:flex}.badge{color:#fff;background:var(--h7);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-block}.badge.hsk1,.bar-fill.hsk1{background:var(--h1)}.badge.hsk2,.bar-fill.hsk2{background:var(--h2)}.badge.hsk3,.bar-fill.hsk3{background:var(--h3)}.badge.hsk4,.bar-fill.hsk4{background:var(--h4)}.badge.hsk5,.bar-fill.hsk5{background:var(--h5)}.badge.hsk6,.bar-fill.hsk6{background:var(--h6)}.badge.hsk7,.bar-fill.hsk7{background:var(--h7)}.bar-fill.out{background:var(--border)}.review,.quiz{max-width:640px;margin:0 auto}.review-stats{align-items:center;gap:8px;margin-bottom:14px;display:flex}.flash,.quiz{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:32px 24px;display:flex}.flash-word{font-size:4rem;line-height:1.1}.flash-sentence{font-size:1.15rem}.flash-back{width:100%}.flash-meaning{margin:8px 0;font-size:1.2rem}.grades{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.grade{flex-direction:column;padding:10px 6px;display:flex}.grade small{color:var(--muted);font-size:.75rem;font-weight:400}.grade.again{border-color:var(--danger)}.grade.good{border-color:var(--saved)}.empty{text-align:center;max-width:560px;margin:40px auto}.word-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;margin-top:20px;font-size:.92rem;overflow:hidden}.word-table th,.word-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px 10px}.word-table td.zh{font-size:1.2rem}.ellipsis-cell{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.exam-pick{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 14px;font-size:.9rem}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.chip:disabled{color:var(--muted)}.exam-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.bars{flex-direction:column;gap:6px;display:flex}.bar-row{grid-template-columns:84px 1fr 36px;align-items:center;gap:8px;font-size:.85rem;display:grid}.bar-track{background:var(--surface-2);border-radius:6px;height:12px;overflow:hidden}.bar-fill{border-radius:6px;height:100%;display:block}.bar-val{text-align:right;font-variant-numeric:tabular-nums}.options{flex-direction:column;gap:8px;width:100%;display:flex}.option{text-align:left;font-weight:500}.option.right{border-color:var(--saved);background:var(--saved-soft);opacity:1!important}.option.wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);opacity:1!important}@media (width<=900px){.watch{grid-template-columns:minmax(0,1fr)}.transcript{max-height:50vh;position:static}}@media (width<=640px){.content{padding:16px}.topbar{flex-wrap:wrap;gap:8px;padding:8px 16px}.lang-pill{display:none}.tabs{order:3;justify-content:space-between;width:100%}.tab{flex:1;padding:8px 6px}.grades{grid-template-columns:repeat(2,1fr)}.row{flex-direction:column}.flash-word{font-size:3rem}}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:110px;margin-top:12px;padding:14px;display:flex;position:relative}.dropzone>*{max-width:100%}.dropzone input{opacity:0;cursor:pointer;position:absolute;inset:0}.dropzone:hover,.drop.dragging .dropzone{border-color:var(--accent);background:var(--accent-soft)}.gen-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.gen{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.gen-icon{font-size:1.6rem}.gen-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.gen-actions{align-items:center;gap:8px;display:flex}.progress{background:var(--surface);border-radius:4px;height:8px;display:block;overflow:hidden}.progress>span{background:var(--accent);height:100%;transition:width .3s;display:block}.dot{background:var(--muted);vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.dot.on{background:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 25%, transparent)}@media (width<=640px){.gen{flex-wrap:wrap}.gen-fields{grid-template-columns:1fr}}.row .btn{white-space:nowrap}.row .input{min-width:0}:root{--fam1:#0c8599;--fam1-soft:#e3f6f8;--fam2:#94a3b8;--hv:#0b7285}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--fam1:#3bc9db;--fam1-soft:#12343a;--fam2:#64748b;--hv:#66d9e8}}.stack{flex-direction:column;align-items:center;line-height:1.15;display:inline-flex}.s-py{color:var(--muted);font-family:system-ui,sans-serif;font-size:.42em;font-weight:500}.s-hv{color:var(--hv);white-space:nowrap;font-family:Be Vietnam Pro,system-ui,sans-serif;font-size:.4em;font-weight:600}.word.fam1{box-shadow:inset 0 -3px 0 var(--fam1)}.word.fam1:not(.saved){background:var(--fam1-soft)}.word.fam2{box-shadow:inset 0 -2px 0 var(--fam2)}.entry-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.hv{color:var(--hv)}.fam-badge{border-radius:999px;padding:1px 8px;font-size:.78rem;font-weight:600}.fam-badge.fam1{background:var(--fam1-soft);color:var(--fam1)}.fam-badge.fam2{background:var(--surface-2);color:var(--muted)}.tips{background:var(--surface-2);border-left:3px solid var(--hv);border-radius:6px;margin-top:4px;padding:6px 10px;font-size:.88rem}.fam-stat{background:var(--fam1-soft);border-radius:10px;margin-bottom:12px;padding:8px 12px}.fam1-text{color:var(--fam1);font-size:1.2rem}.flash-hv{color:var(--hv);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:1.1rem;display:flex}.watch-main{min-width:0}.cov-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.cov-main{flex:1;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;min-width:220px;display:grid}.cov-pct{color:var(--accent);font-variant-numeric:tabular-nums;grid-row:span 2;font-size:1.8rem;font-weight:800}.cov-track{background:var(--surface-2);border-radius:4px;height:8px;margin-top:4px;display:block;position:relative}.cov-track>span{background:var(--accent);border-radius:4px;height:100%;display:block}.cov-track>i{background:var(--saved);width:2px;height:14px;position:absolute;top:-3px}.placement{border-radius:var(--radius);background:var(--accent-soft);flex-direction:column;gap:6px;margin-bottom:12px;padding:12px 14px;display:flex}.placement-opts{flex-wrap:wrap;gap:6px;display:flex}.placement .chip{cursor:pointer}.seg{background:var(--surface-2);border-radius:999px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:.85rem}.seg button.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow);font-weight:700}.word.unk .s-zh,.tline .word.unk{-webkit-text-decoration:underline dotted var(--accent);text-decoration:underline dotted var(--accent);text-underline-offset:5px}.btn.understood{border-color:var(--saved);color:var(--saved)}.btn.reveal{align-self:center}.blurred{filter:blur(5px);transition:filter .2s}.tline:hover .blurred{filter:blur(3px)}.now{position:relative}.toast{background:var(--text);color:var(--bg);white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:.85rem;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.know-row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;display:flex}.btn.picked-known{background:var(--saved-soft);border-color:var(--saved);color:var(--saved)}.btn.picked-unknown{background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:var(--danger);color:var(--danger)}.popup.prep{width:min(640px,100%)}.popup.prep h2{margin:0 0 6px}.prep-sum{margin:0 0 4px;font-size:1.05rem}.prep-sum .up{color:var(--saved)}.prep-list{flex-direction:column;gap:6px;margin:12px 0;padding:0;list-style:none;display:flex}.prep-list li{border:1px solid var(--border);border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.prep-word{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;font-size:1.6rem}.prep-info{min-width:0}.prep-info .badge{margin-left:6px}.prep-meaning{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.prep-actions{gap:6px;display:flex}@media (width<=640px){.prep-list li{grid-template-columns:auto 1fr}.prep-actions{grid-column:1/-1}}.profile{grid-column:1/-1}.prof-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:8px;display:grid}.prof-grid>div{flex-direction:column;gap:4px;display:flex}.big-num{color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.8rem}.acc{background:var(--saved-soft);border-radius:8px;padding:6px 10px}.seg-label{color:var(--muted);padding:5px 4px 5px 10px;font-size:.85rem}.lang-tag{letter-spacing:.05em;color:var(--muted);border:1px solid var(--border);vertical-align:2px;border-radius:4px;margin-right:6px;padding:0 4px;font-size:.65rem;font-weight:800;display:inline-block}.meaning-switch{margin-left:auto;display:inline-flex}.meaning-switch button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;padding:2px 8px;font-size:.75rem}.meaning-switch button:first-child{border-radius:999px 0 0 999px}.meaning-switch button:last-child{border-left:0;border-radius:0 999px 999px 0}.meaning-switch button.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:700}.mt-notice{border:1px dashed var(--border);text-align:center;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:.9rem;display:flex}:root,:root:not([data-theme=light]){--bg:#000;--surface:#151515;--surface-2:#232323;--text:#fff;--muted:#a0a0a0;--border:#2f2f2f;--accent:#ff9000;--accent-soft:#33210a;--accent-text:#000;--saved:#69db7c;--saved-soft:#1e3324;--danger:#ff6b6b;--shadow:0 1px 2px #00000080, 0 6px 20px #00000080;--radius:8px;--h1:#69db7c;--h2:#4dabf7;--h3:#9775fa;--h4:#ff922b;--h5:#f06595;--h6:#da77f2;--h7:#adb5bd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{font-family:Arial,Helvetica,Segoe UI,sans-serif}h1,h2,h3,.btn,.tab{font-weight:700}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#000}.brand{letter-spacing:-.03em;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:1.5rem;font-weight:700}.brand span{color:var(--accent)}.tabs{background:0 0;gap:2px}.tab{color:#c6c6c6;border-radius:6px;transition:color .15s,background .15s}.tab:hover{color:#fff;background:var(--surface-2)}.tab.on{box-shadow:inset 0 -3px 0 var(--accent);color:#fff;background:0 0;border-radius:0}.tline{content-visibility:auto;contain-intrinsic-size:auto 56px;transition:background .15s}.transcript{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.word{transition:background .12s,color .12s}.toggle,.chip,.seg button,.card{transition:background .15s,color .15s,border-color .15s}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}@keyframes fade-in{0%{opacity:0}}.now>.line,.now-trans,.toast,.mt-notice{animation:.18s ease-out fade-up}.overlay{animation:.15s ease-out fade-in}.popup{animation:.18s ease-out fade-up}.content>div:not([hidden]){animation:.2s ease-out fade-in}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.donuts{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px;margin-top:18px;display:grid}.donut{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:14px 8px 12px}.donut.big{border-color:var(--accent)}.donut svg{width:104px;height:104px;margin:0 auto 6px;display:block}.donut circle{fill:none}.d-track{stroke:var(--surface-2)}.d-arc{stroke-linecap:round;transform-origin:50px 50px;transition:stroke-dasharray .6s ease-out;transform:rotate(-90deg)}.d-pct{fill:var(--text);text-anchor:middle;dominant-baseline:central;font-size:15px;font-weight:700}.d-label{font-weight:700}.d-num{color:var(--muted);font-size:.85rem}.d-known{color:var(--saved);font-size:.8rem}.donut-note{margin:10px 0 0}.hist-head{justify-content:space-between;align-items:center;margin-top:26px;display:flex}.hist-head h2{margin:0 0 10px;font-size:1.2rem}.hist-list{flex-direction:column;gap:8px;display:flex}.hist-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:8px;display:flex}.hist-thumb{aspect-ratio:16/9;object-fit:cover;background:var(--surface-2);border-radius:6px;flex:none;width:120px}.hist-thumb-ph{place-items:center;font-size:1.6rem;display:grid}.hist-info{flex:1;min-width:0}.hist-title{font-weight:700}.hist-bar{border-radius:3px;max-width:420px;height:6px;margin-top:6px;display:flex;overflow:hidden}.hist-actions{flex:none;gap:6px;display:flex}@media (width<=560px){.hist-thumb{width:84px}.hist-actions{flex-direction:column}}:root,:root:not([data-theme=light]){--bg:#070b09;--surface:#0f1512;--surface-2:#19221d;--text:#f2f7f4;--muted:#94a59c;--border:#223028;--accent:#34d399;--accent-soft:#0e2a20;--accent-text:#03130c;--grad:linear-gradient(135deg, #a7f3d0 0%, #34d399 45%, #059669 100%);--saved:#fbbf24;--saved-soft:#33270a;--radius:14px;--shadow:0 1px 2px #0006, 0 10px 30px #00000073}html,body{letter-spacing:-.005em;-webkit-font-smoothing:antialiased;font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16.5px}body{background:radial-gradient(900px 420px at 15% -10%, #34d39921, transparent 70%), radial-gradient(700px 380px at 95% 0%, #0596691a, transparent 70%), var(--bg);background-attachment:fixed}h1,h2,h3{letter-spacing:-.02em;font-weight:600}.btn,.tab{font-weight:500}.hero{font-weight:600}.topbar{background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{letter-spacing:-.03em;font-family:inherit;font-size:1.4rem;font-weight:700}.brand span,.cov-pct{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.tab{color:var(--muted);border-radius:999px}.tab:hover{color:var(--text)}.tab.on{background:var(--accent-soft);color:var(--accent);border-radius:999px;box-shadow:inset 0 0 0 1px #34d39959}.btn,.chip,.toggle,.seg,.lang-pill{border-radius:10px}.btn.primary{background:var(--grad);color:var(--accent-text);border-color:#0000;font-weight:600;box-shadow:0 6px 18px #10b98138}.btn.primary:hover:not(:disabled){background:var(--grad);filter:brightness(1.08)}.tab-badge,.cov-track span{background:var(--grad)}.donut.big{background:linear-gradient(160deg, var(--accent-soft), var(--surface) 60%);border-color:#34d39973}.s-hv,.s-py{font-family:Be Vietnam Pro,system-ui,sans-serif}
