: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}.account{position:relative}.account-btn{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;padding:6px 14px;font-size:.9rem;font-weight:500;transition:border-color .15s;display:inline-flex;position:relative}.account-btn:hover{border-color:var(--accent)}:is(.account-btn:has(img),.account-btn:has(.account-ph)){padding:2px}.account-btn img,.account-ph{background:var(--grad);width:32px;height:32px;color:var(--accent-text);border-radius:50%;place-items:center;font-weight:700;display:grid}.sync-dot{border:2px solid var(--bg);background:var(--muted);border-radius:50%;width:11px;height:11px;position:absolute;bottom:-1px;right:-1px}.sync-dot.ok{background:var(--accent)}.sync-dot.error{background:var(--danger)}.sync-dot.syncing{background:var(--saved);animation:1s infinite pulse}@keyframes pulse{50%{opacity:.35}}.account-menu{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(300px,100vw - 32px);box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:14px;animation:.15s ease-out fade-up;display:flex;position:absolute;top:calc(100% + 8px);right:0}.account-menu p{margin:0}.account-name{font-weight:600}.account-status{color:var(--muted)}.gbtn{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;min-height:44px}:root[data-lang=en],:root[data-lang=en]:not([data-theme=light]){--accent:#60a5fa;--accent-soft:#0f1f3a;--accent-text:#031024;--grad:linear-gradient(135deg, #bfdbfe 0%, #60a5fa 45%, #2563eb 100%)}:root[data-lang=en] body{background:radial-gradient(900px 420px at 15% -10%, #60a5fa24, transparent 70%), radial-gradient(700px 380px at 95% 0%, #2563eb1a, transparent 70%), var(--bg);background-attachment:fixed}:root[data-lang=en] .tab.on{box-shadow:inset 0 0 0 1px #60a5fa66}.brand{align-items:baseline;gap:0;display:inline-flex}.brand .brand-mark{-webkit-background-clip:border-box;background-clip:border-box;background:var(--accent);min-width:1.6em;height:1.6em;color:var(--accent-text);border-radius:8px;align-self:center;place-items:center;margin-right:8px;font-size:.7em;font-weight:800;display:inline-grid}.brand .brand-lang{color:var(--muted);letter-spacing:.02em;margin-left:6px;font-size:.55em;font-weight:700}.line.en{font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,sans-serif}.line.en:not(.big){display:block}.line.en.big{gap:0;font-weight:500}.line.en .stack{gap:0;margin-top:0}.line.en .punct{white-space:pre}.line.en .word{padding:1px}.line.en .word.unk .s-zh{text-decoration:none}.tp{color:var(--text);text-decoration:none;display:inline-block}.s-gl{color:var(--accent);text-overflow:ellipsis;max-width:9em;font-size:.44em;font-weight:700;overflow:hidden}.s-hv.kn{opacity:.5;font-weight:500}.s-gl.kn{color:var(--muted)}.s-gl.ph-gl{color:#5eead4;max-width:none}.word.ph:hover{color:inherit;background:#14b8a62e}.tline .word.ph{color:#5eead4}.flash-word.en,.popup-word.en{font-family:Be Vietnam Pro,system-ui,sans-serif;font-weight:800}.common-meaning{margin-bottom:6px;font-size:1.1rem;font-weight:700}.badge.ph-badge{color:#fff;background:#0f766e}:root[data-lang=ja],:root[data-lang=ja]:not([data-theme=light]){--accent:#f472b6;--accent-soft:#3a1328;--accent-text:#2a0718;--grad:linear-gradient(135deg, #fbcfe8 0%, #f472b6 45%, #db2777 100%)}:root[data-lang=ja] body{background:radial-gradient(900px 420px at 15% -10%, #f472b621, transparent 70%), radial-gradient(700px 380px at 95% 0%, #db277717, transparent 70%), var(--bg);background-attachment:fixed}:root[data-lang=ja] .tab.on{box-shadow:inset 0 0 0 1px #f472b666}.ja{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic UI,Yu Gothic,Meiryo,sans-serif}.line.ja.big{gap:2px}.line.ja .stack{gap:0;margin-top:0}.line.ja:not(.big){display:block}.line.ja .s-py{font-size:.4em}.s-gl.eng{color:var(--muted);font-style:italic;font-weight:500}.line.ja .s-hv,.line.en .s-hv{line-height:1.35}.line.ja .word.unk .s-zh{text-decoration:none}.admin{max-width:1000px;margin:0 auto}.admin-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-head h2{margin:0}.admin-totals{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0;display:grid}.admin-totals .card{flex-direction:column;gap:2px;padding:14px 16px;display:flex}.admin-totals b{color:var(--accent);font-size:1.6rem}.admin-sort{margin-bottom:12px}.admin-list{flex-direction:column;gap:12px;display:flex}.admin-user-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.admin-user-head img,.admin-avatar{border-radius:50%;flex:none;width:40px;height:40px}.admin-avatar{background:var(--accent-soft);color:var(--accent);place-items:center;font-weight:800;display:grid}.admin-user-meta{text-align:right;margin-left:auto}.admin-table{width:100%}.admin-table td,.admin-table th{text-align:center}.admin-table td:first-child,.admin-table th:first-child{text-align:left}@media (width<=640px){.admin-user-meta{text-align:left;margin-left:0}.admin-table{font-size:.85rem}}.login-screen{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(460px,100%);padding:32px 26px;display:flex}.login-brand{font-size:1.8rem}.login-card h1{margin:4px 0 0;font-size:1.35rem;line-height:1.35}.login-points{color:var(--muted);flex-direction:column;gap:6px;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.login-points li:before{content:"✓ ";color:var(--accent);font-weight:800}.login-card .gbtn{min-height:44px}.login-foot{margin-top:6px}@media (width<=640px){.topbar{flex-wrap:wrap;gap:8px;padding:8px 12px}.brand{font-size:1.15rem}.lang-pill{order:2;max-width:150px;margin-left:auto;padding:5px 8px;font-size:.85rem;display:inline-block}.account{order:2}.tabs{order:3;justify-content:space-between;width:100%;margin:0}.tab{flex:1;padding:6px 4px;font-size:.9rem;line-height:1.2}}@media (width<=380px){.brand .brand-lang{display:none}.lang-pill{max-width:130px}}.yt-search{position:relative}.yt-search .input{flex:1;min-width:0}.yt-hints{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.yt-chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:4px 10px;font-size:.85rem}.yt-chip:hover{border-color:var(--accent);color:var(--accent)}.yt-results{z-index:30;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:min(500px,100vw - 40px);max-height:min(70vh,560px);padding:8px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 40px #00000059}.yt-results-head{background:var(--surface);border-bottom:1px solid var(--border);z-index:1;justify-content:space-between;align-items:center;gap:8px;margin:-8px -8px 6px;padding:8px 10px;display:flex;position:sticky;top:-8px}.yt-results-head label{cursor:pointer;align-items:center;gap:6px;display:flex}.yt-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 6px;font-size:1rem}.yt-close:hover{color:var(--text)}.yt-item{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:flex-start;gap:10px;padding:6px;display:flex}.yt-item:hover,.yt-item:focus-visible{background:var(--surface-2);outline:none}.yt-thumb{aspect-ratio:16/9;background:var(--surface-2);border-radius:8px;flex:0 0 140px;position:relative;overflow:hidden}.yt-thumb img{object-fit:cover;width:100%;height:100%;display:block}.yt-len{color:#fff;background:#000c;border-radius:4px;padding:1px 4px;font-size:.72rem;font-weight:600;position:absolute;bottom:4px;right:4px}.yt-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.yt-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.92rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.yt-cc{background:var(--accent-soft);color:var(--accent);border-radius:4px;align-self:flex-start;padding:1px 6px;font-size:.7rem;font-weight:700}.yt-loading{padding:8px 6px}.yt-more{margin:6px auto 2px;display:block}@media (width<=640px){.yt-thumb{flex-basis:112px}.yt-title{font-size:.88rem}.yt-results{max-height:65vh}}.yt-input{flex:1;min-width:0;display:flex;position:relative}.yt-input .input{width:100%;padding-right:34px}.yt-clear{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:.95rem;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.yt-clear:hover{background:var(--surface-2);color:var(--text)}.yt-back{text-align:left;cursor:pointer;border:1px dashed var(--border);background:var(--surface-2);width:100%;color:var(--text);font:inherit;text-overflow:ellipsis;white-space:nowrap;border-radius:10px;margin-top:10px;padding:8px 12px;font-size:.88rem;display:block;overflow:hidden}.yt-back:hover{border-color:var(--accent);color:var(--accent)}:root[data-lang=fr],:root[data-lang=fr]:not([data-theme=light]){--accent:#a78bfa;--accent-soft:#221a3d;--accent-text:#120a2b;--grad:linear-gradient(135deg, #ddd6fe 0%, #a78bfa 45%, #7c3aed 100%)}:root[data-lang=fr] body{background:radial-gradient(900px 420px at 15% -10%, #a78bfa24, transparent 70%), radial-gradient(700px 380px at 95% 0%, #7c3aed1a, transparent 70%), var(--bg);background-attachment:fixed}:root[data-lang=fr] .tab.on{box-shadow:inset 0 0 0 1px #a78bfa66}
