@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"MOBEI Serif SC";font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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) format("woff2")}:root{--bg: #f5f3ee;--bg-glow: rgba(91, 85, 214, .06);--surface: #fbfaf7;--surface-2: #f2efe8;--surface-3: #e7e3da;--line: rgba(24, 24, 28, .09);--line-strong: rgba(24, 24, 28, .16);--text: #18181c;--text-2: #55555e;--text-3: #85858d;--accent: #5b55d6;--accent-hover: #4c46c6;--accent-soft: rgba(91, 85, 214, .1);--accent-text: #4a43c4;--on-accent: #ffffff;--gold: #b8955a;--good: #1f8a52;--good-soft: rgba(31, 138, 82, .1);--fuzzy: #b86e07;--fuzzy-soft: rgba(208, 128, 10, .12);--bad: #c93d3d;--bad-soft: rgba(201, 61, 61, .1);--star: #d99a0b;--shadow-sm: 0 1px 2px rgba(24, 24, 28, .04);--shadow: 0 1px 2px rgba(24, 24, 28, .04), 0 8px 24px -12px rgba(24, 24, 28, .12);--shadow-lg: 0 24px 64px -24px rgba(24, 24, 28, .28);--r-sm: 8px;--r: 12px;--r-lg: 20px;--nav-h: 62px;--side-w: 232px;--bar-h: 64px;--safe-t: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--safe-b: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--font: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-en: "Inter Variable", "SF Pro Text", -apple-system, "Segoe UI Variable Text", "Segoe UI", Roboto, system-ui, sans-serif;--font-serif-zh: "MOBEI Serif SC", "Noto Serif SC", "Songti SC", "STSong", serif;--ease: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-std: cubic-bezier(.2, 0, 0, 1);--t-press: .12s;--t-fast: .18s;--t-base: .26s;--t-slow: .42s;--t-page: .52s;color-scheme:light}:root[data-theme=dark]{--bg: #0b0b0c;--bg-glow: rgba(138, 134, 240, .08);--surface: #151517;--surface-2: #1b1b1e;--surface-3: #242428;--line: rgba(242, 237, 228, .08);--line-strong: rgba(242, 237, 228, .15);--text: #f2ede4;--text-2: #b5afa5;--text-3: #7d786f;--accent: #8a86f0;--accent-hover: #a29ff4;--accent-soft: rgba(138, 134, 240, .16);--accent-text: #aaa7ff;--on-accent: #0b0b0c;--gold: #d4b273;--good: #4fc985;--good-soft: rgba(79, 201, 133, .13);--fuzzy: #eda545;--fuzzy-soft: rgba(237, 165, 69, .14);--bad: #ef6b6b;--bad-soft: rgba(239, 107, 107, .14);--star: #f2c14e;--shadow-sm: none;--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px -12px rgba(0, 0, 0, .6);--shadow-lg: 0 28px 72px -24px rgba(0, 0, 0, .8);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none}[lang=en]{font-family:var(--font-en);font-feature-settings:"cv11","ss01"}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:10px 12px;min-height:44px;width:100%;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}textarea{resize:vertical;line-height:1.5}select{width:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238d8e98' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}.form select,.field select{width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=range]{padding:0;border:0;min-height:28px;background:none;accent-color:var(--accent);box-shadow:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}kbd{font:600 10.5px/1 var(--font-en);padding:3px 5px;border-radius:5px;border:1px solid var(--line-strong);color:var(--text-3)}code{font:13px ui-monospace,Cascadia Code,Menlo,monospace}.muted{color:var(--text-3)}.small{font-size:13px}.center{text-align:center}.spacer,.grow{flex:1}.full{width:100%}.link{color:var(--accent-text);margin-left:6px;font-weight:550}.app{min-height:100dvh}.main{padding:calc(var(--safe-t) + 16px) 16px calc(var(--nav-h) + var(--safe-b) + 24px)}body:has(.player-bar) .main{padding-bottom:calc(var(--nav-h) + var(--bar-h) + var(--safe-b) + 32px)}.page{display:flex;flex-direction:column;gap:16px;max-width:720px;margin:0 auto;animation:pageIn var(--t-slow) var(--ease)}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}}.page.wide{max-width:1160px}.page.library{max-width:960px}@keyframes fade{0%{opacity:0;transform:translateY(4px)}}.page-title{font-family:var(--font-serif-zh);font-weight:600;font-size:28px;letter-spacing:-.02em;padding-top:4px}.nav{position:fixed;z-index:30;left:0;right:0;bottom:0;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);display:flex;background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:saturate(1.8) blur(18px);-webkit-backdrop-filter:saturate(1.8) blur(18px);border-top:1px solid var(--line)}.nav-brand,.nav-foot{display:none}.brand{display:inline-flex;align-items:center;gap:10px;font:650 16px/1 var(--font-en);letter-spacing:-.01em;color:var(--text)}.mobei-mark{flex:none}.home-brand{display:flex;align-items:center;min-height:32px;padding-top:2px}.home-brand .brand{font-size:15px}.mobei-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px;font-size:12.5px;color:var(--text-3)}.mobei-links a{display:inline-flex;align-items:center;gap:6px;min-height:32px;transition:color var(--t-fast) var(--ease-std)}.mobei-links a:hover{color:var(--text)}.ml-home span{letter-spacing:.08em}.ml-products{display:inline-flex;gap:12px}.mobei-links.compact{justify-content:flex-start;flex-direction:column;align-items:flex-start;gap:0;font-size:12px}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-3);font-size:11px;font-weight:550;transition:color var(--t-fast);min-height:44px}.nav-item.active{color:var(--accent-text)}.nav-icon{position:relative;display:flex}.nav-badge{position:absolute;top:-5px;left:15px;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font:700 10px/17px var(--font-en);text-align:center}@media(min-width:900px){.nav{top:0;right:auto;width:var(--side-w);height:auto;flex-direction:column;gap:2px;padding:22px 14px;border-top:0;border-right:1px solid var(--line);background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}.nav-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:-.01em;padding:0 10px 22px}.nav-foot{display:block;margin-top:auto;padding:16px 10px 0}.home-brand{display:none}.nav-item{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;border-radius:var(--r-sm);font-size:14.5px;color:var(--text-2)}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--accent-soft)}.nav-badge{left:14px}.main{margin-left:var(--side-w);padding:36px 40px 56px}body:has(.player-bar) .main{padding-bottom:calc(var(--bar-h) + 56px)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);font-weight:550;cursor:pointer;white-space:nowrap;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-press) var(--ease-std),opacity var(--t-fast)}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.primary{background:var(--accent);border-color:transparent;color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.danger{color:var(--bad)}.btn.sm{min-height:36px;padding:0 11px;font-size:13.5px}.btn.lg{min-height:52px;font-size:16px;padding:0 22px;border-radius:var(--r)}.btn.block{width:100%}.btn.star-on{color:var(--star)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border:0;border-radius:50%;background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--t-fast),color var(--t-fast),transform var(--t-press) var(--ease-std)}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:scale(.92)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.sm{width:40px;height:40px}.icon-btn.active{color:var(--accent-text)}.icon-btn.danger{color:var(--bad)}.icon-btn.primary-round{background:var(--accent);color:var(--on-accent)}.icon-btn.primary-round:hover{background:var(--accent-hover);color:var(--on-accent)}.chip{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);font-size:13.5px;font-weight:550;cursor:pointer;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.chip:hover{border-color:var(--text-3)}.chip.ghost{border-color:transparent;background:transparent}.chip-on,.chip-on:hover{background:var(--accent-soft);border-color:transparent;color:var(--accent-text)}.chip-sub{font-size:11px;font-weight:500;opacity:.7}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:12px;background:var(--surface-2)}.segmented button{min-height:36px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font-weight:550;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}:root[data-theme=dark] .segmented button.on{background:var(--surface-3)}.segmented.sm button{min-height:30px;padding:0 11px;font-size:13.5px}.switch{width:50px;height:30px;border-radius:15px;border:0;padding:3px;background:var(--surface-3);cursor:pointer;transition:background var(--t-fast);flex:none}.switch span{display:block;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform var(--t-fast) var(--ease)}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true] span{transform:translate(20px)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;font-weight:600;color:var(--text-2)}.field-hint{font-size:12px;color:var(--text-3)}.range-scale{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-3);margin-top:-2px}.row{display:flex;align-items:center;gap:10px}.row.center{justify-content:center}.row.wrap{flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:480px){.grid-2{grid-template-columns:1fr}}.input-with-actions{position:relative;display:flex;align-items:stretch}.input-with-actions>input,.input-with-actions>textarea{padding-right:92px}.inline-actions{position:absolute;right:2px;top:0;display:flex}.meta-line{margin:0;font-size:12px;color:var(--text-3)}.composer{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:8px;box-shadow:var(--shadow);transition:border-color var(--t-fast),box-shadow var(--t-fast)}.composer:focus-within{border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow)}.composer-input,.composer-zh{border:0;background:transparent;box-shadow:none!important;resize:none;padding:12px 12px 6px}.composer-input{font:500 19px/1.45 var(--font-en);letter-spacing:-.01em;min-height:56px}.composer-input::placeholder{font-family:var(--font);letter-spacing:0;color:var(--text-3)}.composer-zh{font-size:15px;color:var(--text-2);border-top:1px dashed var(--line-strong);border-radius:0;padding:10px 12px}.composer-bar{display:flex;align-items:center;gap:6px;padding:4px 4px 2px 6px;min-height:48px}.composer-hint{font-size:12px;color:var(--text-3);margin-right:6px}@media(hover:none){.composer-hint{display:none}}.home-grid{display:flex;flex-direction:column;gap:20px}.home-main{display:flex;flex-direction:column;gap:14px}@media(min-width:1240px){.page.home{max-width:1160px}.home-grid{display:grid;grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:36px;align-items:start}.home-main{position:sticky;top:36px}.home-recent .section-head{margin-top:0}}.review-hero{position:relative;display:flex;align-items:center;gap:16px;width:100%;padding:20px 20px 26px 22px;border:0;border-radius:var(--r-lg);background:radial-gradient(120% 140% at 0% 0%,#8a85f2,#5b55d6 45%,#3f37b0);color:#fff;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 10px 30px #5b55d647;transition:transform var(--t-press) var(--ease-std),box-shadow var(--t-fast)}.review-hero:hover{box-shadow:0 14px 36px #5b55d65c}.review-hero:active{transform:scale(.99)}.rh-text{flex:1;display:flex;flex-direction:column}.rh-label{font-size:14px;font-weight:600;opacity:.85}.rh-count{font:700 44px/1.05 var(--font-en);letter-spacing:-.03em}.rh-count small{font:600 16px var(--font);margin-left:4px;opacity:.85}.rh-sub{font-size:13px;opacity:.8;margin-top:2px}.rh-go{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#fffffff2;color:var(--accent);box-shadow:0 4px 14px #00000026;flex:none}.rh-go svg{margin-left:3px}.rh-progress{position:absolute;left:22px;right:22px;bottom:12px;height:4px;border-radius:2px;background:#ffffff38;overflow:hidden}.rh-progress div{height:100%;background:#fff;border-radius:2px}.review-done{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.rd-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--good-soft);color:var(--good)}.rd-text{flex:1;font-weight:550}.rd-link{display:inline-flex;align-items:center;gap:4px;font-size:13.5px;color:var(--accent-text);font-weight:550}.stat-strip{display:flex;flex-wrap:wrap;gap:4px 16px;padding:2px 4px;font-size:13px;color:var(--text-3)}.stat-strip b{font:650 15px var(--font-en);color:var(--text);margin-right:2px}.notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);font-size:14px}.notice.warn{background:var(--fuzzy-soft);border-color:transparent}.notice>span{flex:1 1 220px}.notice-actions{display:flex;gap:6px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 8px}.section-head h2{font-size:15px;color:var(--text-2)}.empty{text-align:center;padding:36px 16px;color:var(--text-2)}.empty p{margin:4px 0}.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.list:empty{display:none}.item{display:flex;align-items:center;gap:10px;padding:14px 8px 14px 18px;cursor:pointer;transition:background var(--t-fast);outline-offset:-2px}.swipe+.swipe{border-top:1px solid var(--line)}.item:hover{background:var(--surface-2)}.item.is-current,.item.is-selected{background:var(--accent-soft)}.item-body{flex:1;min-width:0}.item-en{font-size:16.5px;font-weight:550;line-height:1.4;letter-spacing:-.006em;word-break:break-word}.item-phon{display:inline-block;margin-left:8px;font:400 13.5px var(--font-en);color:var(--text-3);white-space:nowrap}.item-zh{font-size:14px;color:var(--text-2);margin-top:2px}.item-zh:empty{display:none}.item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:12px;color:var(--text-3)}.badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:18px;border-radius:5px;font-size:11px;font-weight:650}.badge.word{background:var(--good-soft);color:var(--good)}.badge.sentence{background:var(--accent-soft);color:var(--accent-text)}.fam{display:inline-flex;gap:3px}.fam i{width:6px;height:6px;border-radius:50%;background:var(--surface-3)}.fam i.on{background:var(--good)}.star-on{color:var(--star)}.play-btn{color:var(--accent-text)}.check{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex:none;border-radius:7px;border:2px solid var(--text-3);color:transparent;transition:all var(--t-fast)}.check.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.shimmer{background:linear-gradient(90deg,var(--text-3) 30%,var(--accent-text) 50%,var(--text-3) 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:15px;color:var(--text-3);pointer-events:none}.search input{padding-left:44px;min-height:50px;border-radius:var(--r);font-size:16px;border-color:var(--line);box-shadow:var(--shadow-sm)}.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters>*{flex:none}.filters select{min-height:36px;padding-top:5px;padding-bottom:5px;border-radius:999px;font-size:13.5px}@media(min-width:900px){.filters{flex-wrap:wrap;margin:0;padding:0}}.toolbar{display:flex;align-items:center;gap:4px;min-height:44px}.toolbar.batch{position:sticky;top:8px;z-index:5;padding:4px 6px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.count{font-size:13px;color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}.pr-head{display:flex;align-items:center;justify-content:space-between}.mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:14px;background:var(--surface-2)}.mode-tab{display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--text-2);font-weight:600;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}.mode-tab.on{background:var(--surface);color:var(--accent-text);box-shadow:0 1px 3px #0000001a}:root[data-theme=dark] .mode-tab.on{background:var(--surface-3)}.pr-hero{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 20px 20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);text-align:center;animation:fade .16s var(--ease)}.pr-top{display:flex;align-items:center;gap:10px;color:var(--text-2);font-size:14px}.pr-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--accent-text)}.pr-range select{min-height:38px;padding:6px 34px 6px 16px;border-radius:999px;border-color:var(--line-strong);font-weight:600;font-size:14px;background-color:var(--surface-2)}.pr-count{display:flex;align-items:baseline;gap:6px}.pr-count b{font:700 52px/1 var(--font-en);letter-spacing:-.03em}.pr-count span{font-size:14px;color:var(--text-3)}.pr-start{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:360px;min-height:54px;border:0;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:17px;font-weight:650;cursor:pointer;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 35%,transparent);transition:transform var(--t-press) var(--ease-std),background var(--t-fast)}.pr-start:active{transform:scale(.97)}.pr-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0 4px;color:var(--text-2)}.pr-empty b{font-size:18px;color:var(--text)}.pr-options{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.pr-note{text-align:center;margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.session{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;background:radial-gradient(90% 60% at 50% 0%,var(--bg-glow),transparent 70%),var(--bg);animation:fade .18s var(--ease);overflow-y:auto}.session-top{display:flex;align-items:center;gap:12px;padding:calc(var(--safe-t) + 10px) 12px 6px;max-width:920px;width:100%;margin:0 auto}.progress{flex:1;height:5px;border-radius:3px;background:var(--surface-3);overflow:hidden}.progress div{height:100%;background:var(--accent);border-radius:3px;transition:width .2s var(--ease)}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;max-width:880px;margin:0 auto;padding:24px 24px 12px;text-align:center}.stage-status{display:flex;align-items:center;gap:10px;min-height:22px;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--text-3)}.stage-en{font-family:var(--font-en);font-size:clamp(26px,4.4vw,46px);font-weight:620;line-height:1.28;letter-spacing:-.02em;text-wrap:balance;word-break:break-word;transition:filter .2s var(--ease),opacity .2s,color .2s}.stage-en.blurred{filter:blur(12px);opacity:.55;cursor:pointer;-webkit-user-select:none;user-select:none}.stage-en.dim{color:var(--text-3)}.stage-phon{margin-top:-6px;font:400 16px var(--font-en);color:var(--text-3)}.stage-zh{border:0;background:none;padding:6px 12px;border-radius:var(--r-sm);font-size:clamp(17px,2.2vw,21px);color:var(--text-2);line-height:1.5;max-width:680px}button.stage-zh:not(:disabled){cursor:pointer}.stage-zh.concealed{font-size:14px;color:var(--text-3);border:1px dashed var(--line-strong);border-radius:999px;padding:7px 16px}.stage-example{max-width:680px;padding:12px 18px;border-radius:var(--r);font-size:clamp(17px,2.2vw,21px);color:var(--text-2);transition:background var(--t-fast),color var(--t-fast)}.stage-example.active{background:var(--accent-soft);color:var(--accent-text)}.wave{display:inline-flex;align-items:center;gap:3px;height:18px}.wave i{width:3px;height:4px;border-radius:2px;background:var(--text-3);transition:height var(--t-fast)}.wave.on i{background:var(--accent);animation:wave .9s ease-in-out infinite}.wave.on i:nth-child(2){animation-delay:-.6s}.wave.on i:nth-child(3){animation-delay:-.3s}.wave.on i:nth-child(4){animation-delay:-.75s}@keyframes wave{0%,to{height:4px}50%{height:18px}}.dock{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:620px;margin:0 auto;padding:12px 16px calc(var(--safe-b) + 22px)}.dock-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;width:100%}.dock-side{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px;min-height:56px;padding:6px;border:0;border-radius:var(--r);background:transparent;color:var(--text-2);font-size:12px;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.dock-side:hover{background:var(--surface-2);color:var(--text)}.dock-main{display:flex;align-items:center;justify-content:center;width:78px;height:78px;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer;box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 40%,transparent);transition:transform var(--t-press) var(--ease-std),background var(--t-fast)}.dock-main:hover{background:var(--accent-hover)}.dock-main:active{transform:scale(.94)}.dock-main .wave i{background:#fff}.ratings{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.rating{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:70px;padding:12px 8px;border:0;border-radius:var(--r);cursor:pointer;transition:transform var(--t-press) var(--ease-std),filter var(--t-fast)}.rating:active{transform:scale(.96)}.rating:hover{filter:brightness(1.04)}.rating b{font-size:17px}.rating span{display:flex;align-items:center;gap:6px;font-size:12px;opacity:.8}.rating kbd{border-color:currentColor;color:inherit;opacity:.6}@media(hover:none){.rating kbd{display:none}}.rating.good{background:var(--good-soft);color:var(--good)}.rating.fuzzy{background:var(--fuzzy-soft);color:var(--fuzzy)}.rating.bad{background:var(--bad-soft);color:var(--bad)}.dock-mini,.dock-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.mark-row{display:flex;gap:6px}.mark{min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--text-3);font-size:13px;cursor:pointer;transition:all var(--t-fast)}.mark:disabled{cursor:default}.mark.on.good{background:var(--good-soft);color:var(--good);border-color:transparent}.mark.on.fuzzy{background:var(--fuzzy-soft);color:var(--fuzzy);border-color:transparent}.mark.on.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.summary{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;max-width:520px;margin:0 auto;padding:24px}.summary-title{font-size:28px;font-weight:700;letter-spacing:-.02em}.summary-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.sb{display:flex;flex-direction:column;align-items:center;padding:16px 8px;border-radius:var(--r)}.sb b{font:700 28px var(--font-en)}.sb span{font-size:13px}.sb.good{background:var(--good-soft);color:var(--good)}.sb.fuzzy{background:var(--fuzzy-soft);color:var(--fuzzy)}.sb.bad{background:var(--bad-soft);color:var(--bad)}.summary-actions{display:flex;flex-direction:column;gap:10px;width:100%}.s-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.s-item{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 12px 8px 14px;transition:background var(--t-fast)}.s-item+.s-item{border-top:1px solid var(--line)}.s-item:hover{background:var(--surface-2)}.s-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--accent-soft);color:var(--accent-text);flex:none}.s-title{font-weight:550;white-space:nowrap}.s-summary{flex:1;min-width:0;text-align:right;font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-chev{color:var(--text-3);flex:none}.s-back{display:flex;align-items:center;gap:4px;margin:-6px 0 0 -10px}.s-back h1{font-size:22px}.s-panel{display:flex;flex-direction:column;gap:24px;min-width:0}.s-panel-title{font-size:22px;letter-spacing:-.015em;margin-bottom:-6px}.s-split{display:grid;grid-template-columns:280px minmax(0,680px);gap:40px;align-items:start}.s-split .s-list{position:sticky;top:36px;border:0;background:transparent;gap:2px}.s-split .s-item{border:0;border-radius:var(--r-sm);min-height:52px;flex-wrap:wrap;row-gap:0}.s-split .s-item.active{background:var(--accent-soft)}.s-split .s-summary{flex-basis:100%;text-align:left;padding-left:44px;margin-top:-6px;font-size:12px}.s-group h3{font-size:13px;font-weight:650;color:var(--text-3);letter-spacing:.02em;margin:0 4px 8px}.s-desc{margin:0 4px 10px;font-size:13px;color:var(--text-3);line-height:1.55}.s-group>.form{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.collapsible{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.collapsible-head{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 12px 0 14px;border:0;background:transparent;cursor:pointer;text-align:left}.collapsible-head:hover{background:var(--surface-2)}.collapsible-title{flex:1;font-weight:550}.collapsible .chev{color:var(--text-3);transition:transform var(--t-fast)}.collapsible.open .chev{transform:rotate(180deg)}.collapsible-body{padding:4px 14px 16px}.key-set{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px 0 12px;border-radius:var(--r-sm);background:var(--surface-2);font-size:14px}.key-set code{color:var(--text-3)}.ok{color:var(--good)}.provider-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.provider-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;transition:border-color var(--t-fast),background var(--t-fast)}.provider-card.on{border-color:var(--accent);background:var(--accent-soft)}.pc-desc{font-size:12px;color:var(--text-3);line-height:1.35}@media(max-width:480px){.pc-desc{display:none}}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3)}.status i{width:7px;height:7px;border-radius:50%;background:var(--text-3)}.status.ok{color:var(--good)}.status.ok i{background:var(--good)}.kv{display:flex;justify-content:space-between;font-size:14px}.shortcuts{margin:0;display:grid;gap:10px}.shortcuts>div{display:flex;align-items:center;gap:12px}.shortcuts dt{width:130px;flex:none}.shortcuts dd{margin:0;color:var(--text-2);font-size:14px}.install-card,.install-panel{display:flex;flex-direction:column;gap:12px}.install-card{padding:14px 14px 14px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}.install-row{display:flex;align-items:center;gap:12px;color:var(--accent-text)}.install-text{flex:1;display:flex;flex-direction:column;color:var(--text)}.install-text span{font-size:13px;color:var(--text-2)}.install-steps{margin:0;padding-left:22px;font-size:14px;color:var(--text-2);display:grid;gap:4px}.offline-audio{display:flex;flex-direction:column;gap:10px}.offline-audio .progress{flex:none}.player-bar{position:fixed;z-index:25;left:8px;right:8px;bottom:calc(var(--nav-h) + var(--safe-b) + 8px);min-height:var(--bar-h);display:flex;align-items:center;gap:6px;padding:8px 6px 8px 16px;border-radius:18px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:saturate(1.8) blur(20px);-webkit-backdrop-filter:saturate(1.8) blur(20px);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:rise .18s var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media(min-width:900px){.player-bar{left:calc(var(--side-w) + 24px);right:24px;bottom:20px;max-width:820px;margin:0 auto}}.pb-info{flex:1;min-width:0}.pb-text{font:600 15px var(--font-en);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-sub{display:flex;gap:8px;font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-count{font-family:var(--font-en)}.pb-controls{display:flex;align-items:center}.pb-controls .primary-round{width:46px;height:46px}@media(max-width:420px){.pb-controls .sm[aria-label=随机]{display:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#0000006b;animation:fadeIn var(--t-base) var(--ease)}@keyframes fadeIn{0%{opacity:0}}.modal{width:100%;max-width:580px;max-height:92dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow-lg);animation:sheet var(--t-page) var(--ease)}.modal.wide{max-width:760px}@keyframes sheet{0%{transform:translateY(24px);opacity:.6}}@media(min-width:640px){.modal-backdrop{align-items:center;padding:24px}.modal{border-radius:var(--r-lg)}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:10px 8px 4px 20px}.modal-head h2{font-size:17px}.modal-body{padding:8px 20px 18px;overflow-y:auto}.modal-foot{display:flex;align-items:center;gap:8px;padding:12px 16px calc(12px + var(--safe-b));border-top:1px solid var(--line)}.toasts{position:fixed;z-index:60;left:50%;bottom:calc(var(--nav-h) + var(--safe-b) + 12px);transform:translate(-50%);display:flex;flex-direction:column;gap:8px;width:min(480px,calc(100vw - 24px));pointer-events:none}body:has(.player-bar) .toasts{bottom:calc(var(--nav-h) + var(--bar-h) + var(--safe-b) + 20px)}body:has(.session) .toasts{bottom:calc(var(--safe-b) + 24px)}@media(min-width:900px){.toasts{left:calc(50% + var(--side-w) / 2);bottom:24px}body:has(.player-bar) .toasts{bottom:calc(var(--bar-h) + 36px)}body:has(.session) .toasts{left:50%}}.toast{display:flex;align-items:center;gap:12px;padding:11px 8px 11px 16px;min-height:46px;border-radius:14px;background:var(--text);color:var(--bg);font-size:14px;box-shadow:var(--shadow-lg);pointer-events:auto;animation:drop var(--t-base) var(--ease)}.toast span{flex:1}.toast.error{background:var(--bad);color:#fff}.toast button{flex:none;min-height:34px;padding:0 12px;border:0;border-radius:8px;background:#7f7f7f40;color:inherit;font-weight:650;cursor:pointer}@keyframes drop{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.vocab-list,.vocab-unlisted{display:flex;flex-direction:column}.vocab-unlisted{padding-top:8px;border-top:1px dashed var(--line-strong)}.vocab-unlisted p{margin:0 0 4px}.vocab-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 0 0 4px}.vocab-row+.vocab-row{border-top:1px solid var(--line)}.vocab-name{flex:1;min-width:0;font-weight:550}.vocab-actions{display:flex;gap:2px;opacity:.55;transition:opacity var(--t-fast)}.vocab-row:hover .vocab-actions,.vocab-actions:focus-within{opacity:1}@media(hover:none){.vocab-actions{opacity:1}}.vocab-add{display:flex;gap:8px}.chip.sm{min-height:30px;padding:0 10px;font-size:13px}.chip.static{cursor:default;border-color:transparent;background:var(--surface-2)}.d-title{display:inline-flex;align-items:center;gap:8px}.detail{display:flex;flex-direction:column;gap:4px}.d-hero{display:flex;flex-direction:column;gap:8px;padding:4px 0 16px}.d-en{font-family:var(--font-en);font-size:clamp(22px,3.2vw,28px);font-weight:560;line-height:1.32;letter-spacing:-.015em;text-wrap:pretty}.d-en strong,.stage-en strong{font-weight:760;color:var(--text)}.d-en span{color:color-mix(in srgb,var(--text) 82%,transparent)}.d-phon{font:400 15px var(--font-en);color:var(--text-3)}.d-zh{font-size:17px;color:var(--text-2)}.d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.d-loading{padding:12px 0;font-size:14px}.d-section{border-top:1px solid var(--line)}.d-section>header{display:flex;align-items:center;min-height:46px}.d-toggle{flex:1;display:flex;align-items:center;gap:8px;min-height:44px;padding:0;border:0;background:none;font-weight:650;font-size:14px;color:var(--text-2);cursor:pointer;text-align:left}.d-toggle .chev{color:var(--text-3);transform:rotate(-90deg);transition:transform var(--t-fast)}.d-section.open .d-toggle .chev{transform:none}.d-section>header .icon-btn{opacity:.5}.d-section>header .icon-btn:hover{opacity:1}.d-body{display:flex;flex-direction:column;gap:8px;padding:0 0 14px 24px}.d-row{display:flex;align-items:center;gap:8px;min-height:40px;font-size:15px}.d-link{width:100%;border:0;background:none;padding:6px 8px;margin-left:-8px;border-radius:var(--r-sm);cursor:pointer;text-align:left}.d-link:hover{background:var(--surface-2)}.d-note{display:block;font-size:13.5px;color:var(--text-2);margin-top:2px}.d-list{margin:0;padding-left:18px;color:var(--text-2)}.d-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 0 6px;border-top:1px solid var(--line)}.tag-suggest{display:inline-flex;align-items:center;gap:2px;padding-left:10px;border-radius:999px;border:1px dashed var(--line-strong);font-size:13px;color:var(--text-2)}.tag-suggest b{margin:0 4px;color:var(--accent-text)}.d-notebox{margin:8px 0 4px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);font-size:14px;color:var(--text-2);white-space:pre-wrap}.tag-picker{display:flex;flex-wrap:wrap;gap:6px}.speech-notes{display:flex;flex-direction:column;gap:10px;text-align:left}.sn-reading{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.sn-label{font-size:12px;font-weight:650;color:var(--text-3)}.sn-ipa{font:400 16px var(--font-en);color:var(--accent-text)}.sn-point{display:flex;align-items:flex-start;gap:10px}.sn-type{flex:none;min-width:40px;padding:2px 7px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:650;text-align:center;line-height:1.6}.sn-type.t-弱读,.sn-type.t-吞音,.sn-type.t-缩读{background:var(--fuzzy-soft);color:var(--fuzzy)}.sn-type.t-重音,.sn-type.t-语调{background:var(--good-soft);color:var(--good)}.sn-body{display:flex;flex-direction:column;font-size:14px;color:var(--text-2);line-height:1.5}.sn-body b{font-size:15px;color:var(--text);font-weight:600}.stage-notes{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:560px}.notes-toggle{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--text-2);font-size:13.5px;cursor:pointer}.notes-toggle svg{transition:transform var(--t-fast)}.notes-toggle.open svg{transform:rotate(180deg)}.stage-notes .speech-notes{width:100%;padding:14px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}html{scroll-behavior:smooth}button,a,input,select,textarea,label{touch-action:manipulation}button,.nav-item,.chip,.mode-tab{-webkit-user-select:none;user-select:none}@media(max-width:899px){input,textarea,select{font-size:16px}}.stage>*{animation:stageIn .2s var(--ease) both}.stage>*:nth-child(2){animation-delay:.02s}.stage>*:nth-child(3){animation-delay:.04s}@keyframes stageIn{0%{opacity:0;transform:translateY(6px)}}.ratings{animation:stageIn .18s var(--ease) both}@media(hover:none){.item:not(.is-current):not(.is-selected):hover,.s-item:not(.active):hover,.d-link:hover,.collapsible-head:hover,.dock-side:hover,.nav-item:hover{background:transparent}.btn:not(.primary):not(.ghost):hover{background:var(--surface)}.btn.ghost:hover:not(:disabled){background:transparent;color:var(--text-2)}.icon-btn:not(.primary-round):hover:not(:disabled){background:transparent;color:var(--text-2)}.chip:not(.chip-on):hover{border-color:var(--line-strong)}.item:active,.s-item:active,.d-link:active,.collapsible-head:active,.dock-side:active{background:var(--surface-2)}.icon-btn:not(.primary-round):active:not(:disabled),.btn.ghost:active:not(:disabled){background:var(--surface-2)}}@media(max-width:899px){.filters{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}}:root{--seq-0: #e7e3da;--seq-1: #d6d4f6;--seq-2: #a9a5ee;--seq-3: #7c76e2;--seq-4: #4a43c4}:root[data-theme=dark]{--seq-0: #242428;--seq-1: #2f2d5c;--seq-2: #4a45a0;--seq-3: #706be0;--seq-4: #aaa7ff}.page.stats{max-width:1080px}.stat-strip{border:0;background:none;cursor:pointer;text-align:left;font:inherit;border-radius:var(--r-sm)}.strip-more{color:var(--accent-text);font-weight:600}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.stat-tile{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}.st-label{font-size:12.5px;color:var(--text-3);font-weight:600}.st-value{font:700 26px/1.2 var(--font-en);letter-spacing:-.02em;color:var(--text)}.st-sub{font-size:12.5px;color:var(--text-2)}.st-sub.up:first-letter,.st-sub.down:first-letter{font-weight:700}.viz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(max-width:760px){.viz-grid{grid-template-columns:1fr}}.viz-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px 18px 18px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.viz-card.wide{grid-column:1 / -1}.viz-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.viz-card h2{font-size:15px}.viz{position:relative}.viz-tip{position:absolute;z-index:5;transform:translate(-50%,calc(-100% - 8px));display:flex;flex-direction:column;gap:1px;min-width:120px;max-width:240px;padding:8px 10px;border-radius:10px;background:var(--text);color:var(--bg);font-size:12.5px;line-height:1.45;white-space:normal;pointer-events:none;box-shadow:var(--shadow-lg)}.viz-tip b{font-size:13px}.col-chart{position:relative;display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--line-strong)}.col-grid{position:absolute;inset:0 0 auto 0;border-top:1px dashed var(--line);pointer-events:none}.col-grid span{position:absolute;right:0;top:-16px;font-size:11px;color:var(--text-3)}.col-hit{flex:1;height:100%;min-width:0;display:flex;align-items:flex-end;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.col-bar{width:min(100%,22px);border-radius:4px 4px 0 0;background:var(--seq-3);transition:background var(--t-fast)}.col-bar.now,.col-hit:hover .col-bar{background:var(--seq-4)}.col-axis{display:flex;gap:2px;margin-top:4px;font-size:11px;color:var(--text-3)}.col-axis span{flex:1;min-width:0;text-align:center;white-space:nowrap;overflow:visible}.heat-scroll{overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.heat{--cell: 14px;display:grid;grid-auto-rows:var(--cell);gap:3px;width:max-content}.heat-months{display:grid;gap:3px;grid-row:1;font-size:10.5px;color:var(--text-3);white-space:nowrap}.heat-cell{display:block;width:var(--cell);height:var(--cell);padding:0;border:0;border-radius:3px;background:var(--seq-0);cursor:pointer}.heat-cell.l1{background:var(--seq-1)}.heat-cell.l2{background:var(--seq-2)}.heat-cell.l3{background:var(--seq-3)}.heat-cell.l4{background:var(--seq-4)}.heat-cell:hover{outline:2px solid var(--text-3);outline-offset:1px}.heat-legend{display:flex;align-items:center;justify-content:flex-end;gap:3px;margin-top:6px;font-size:11px;color:var(--text-3)}.heat-legend .heat-cell{--cell: 11px;cursor:default}@media(min-width:900px){.heat{--cell: 16px}}.stack-bar{display:flex;gap:2px;height:18px;border-radius:6px;overflow:hidden}.stack-seg{min-width:6px;padding:0;border:0;cursor:pointer}.stack-empty{flex:1;background:var(--seq-0)}.stack-seg.l1,.stack-key.l1{background:var(--seq-1)}.stack-seg.l2,.stack-key.l2{background:var(--seq-2)}.stack-seg.l3,.stack-key.l3{background:var(--seq-3)}.stack-seg.l4,.stack-key.l4{background:var(--seq-4)}.stack-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--text-2)}.stack-legend b{color:var(--text);font-family:var(--font-en)}.stack-key{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px}.hbars{display:flex;flex-direction:column;gap:4px}.hbar-row{display:grid;grid-template-columns:5.5em 1fr 2.5em;align-items:center;gap:10px;min-height:32px;padding:0 4px;border:0;border-radius:8px;background:none;cursor:pointer;text-align:left}.hbar-row:disabled{cursor:default}.hbar-row:hover:not(:disabled){background:var(--surface-2)}.hbar-label{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:10px}.hbar-fill{display:block;height:100%;min-width:4px;border-radius:0 4px 4px 0;background:var(--seq-3)}.hbar-value{font:600 13px var(--font-en);text-align:right}.hard-list{display:flex;flex-direction:column}.hard-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 4px;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;text-align:left;font-size:14.5px}.hard-row:last-child{border-bottom:0}.viz-table summary{font-size:12.5px;color:var(--text-3);cursor:pointer}.viz-table table{width:100%;margin-top:8px;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}.viz-table th,.viz-table td{padding:5px 6px;border-bottom:1px solid var(--line);text-align:right}.viz-table th:first-child,.viz-table td:first-child{text-align:left}.viz-table th{color:var(--text-3);font-weight:600}@media(max-width:420px){.nav-item{font-size:10.5px}}.swipe{position:relative;overflow:hidden}.swipe>.item{position:relative;z-index:1;background:var(--surface);touch-action:pan-y;transition:transform .2s var(--ease),background var(--t-fast)}.swipe>.item.dragging{transition:none}.swipe>.item.is-current,.swipe>.item.is-selected{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.swipe-under{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center}.swipe.show-left .swipe-under.left,.swipe.show-right .swipe-under.right{display:flex}.swipe-under.left{gap:8px;padding-left:22px;background:var(--surface-3);color:var(--text-2);font-weight:600;font-size:14px;transition:background var(--t-fast),color var(--t-fast)}.swipe-under.left.ready{background:var(--star);color:#1c1400}.swipe-under.right{justify-content:flex-end}.swipe-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:76px;height:100%;border:0;color:#fff;font-size:12px;font-weight:600;cursor:pointer}.swipe-act.archive{background:#6b6f80}.swipe-act.delete{background:var(--bad)}.row-tools{display:none}@media(hover:hover)and (pointer:fine){.row-tools{display:flex;opacity:0;transition:opacity var(--t-fast)}.item:hover .row-tools,.row-tools:focus-within{opacity:1}}.vt .page{animation:none}.nav{view-transition-name:nav}.player-bar{view-transition-name:player}.toasts{view-transition-name:toasts}.stage{view-transition-name:stage}::view-transition-group(nav),::view-transition-group(player),::view-transition-group(toasts){animation:none}::view-transition-old(root){animation-duration:var(--t-base);animation-timing-function:var(--ease-in)}::view-transition-new(root){animation-duration:var(--t-page);animation-timing-function:var(--ease)}html[data-nav-dir=forward]::view-transition-old(root){animation-name:vtOutToLeft}html[data-nav-dir=forward]::view-transition-new(root){animation-name:vtInFromRight}html[data-nav-dir=back]::view-transition-old(root){animation-name:vtOutToRight}html[data-nav-dir=back]::view-transition-new(root){animation-name:vtInFromLeft}@keyframes vtOutToLeft{to{opacity:0;transform:translate(-24px)}}@keyframes vtInFromRight{0%{opacity:0;transform:translate(24px)}}@keyframes vtOutToRight{to{opacity:0;transform:translate(24px)}}@keyframes vtInFromLeft{0%{opacity:0;transform:translate(-24px)}}html[data-nav-dir=stage] .stage>*{animation:none}::view-transition-group(stage){animation-duration:.24s}::view-transition-old(stage){animation:vtStageOut .14s var(--ease-in) both}::view-transition-new(stage){animation:vtStageIn .24s var(--ease) both}@keyframes vtStageOut{to{opacity:0;transform:translateY(-14px)}}@keyframes vtStageIn{0%{opacity:0;transform:translateY(14px)}}.dock-row,.dock-mini,.dock-chips{animation:stageIn .18s var(--ease) both}.modal-backdrop.leaving{animation:fadeOut var(--t-base) var(--ease-in) forwards;pointer-events:none}.modal-backdrop.leaving .modal{animation:sheetOut var(--t-base) var(--ease-in) forwards}@keyframes fadeOut{to{opacity:0}}@keyframes sheetOut{to{opacity:.5;transform:translateY(28px)}}@media(min-width:640px){@keyframes sheetOut{to{opacity:0;transform:translateY(10px) scale(.98)}}}.toast.leaving{animation:toastOut var(--t-fast) var(--ease-in) forwards}@keyframes toastOut{to{opacity:0;transform:translateY(8px) scale(.98)}}.player-bar.leaving{animation:barOut var(--t-fast) var(--ease-in) forwards;pointer-events:none}@keyframes barOut{to{opacity:0;transform:translateY(12px)}}.segmented,.mode-tabs{position:relative}.segmented button,.mode-tab{position:relative;z-index:1}.segmented button.on,:root[data-theme=dark] .segmented button.on,.mode-tab.on,:root[data-theme=dark] .mode-tab.on{background:transparent;box-shadow:none}.seg-thumb{position:absolute;top:0;left:0;border-radius:9px;background:var(--surface);box-shadow:0 1px 3px #0000001f;transition:transform .22s var(--ease),width .22s var(--ease),height .22s var(--ease);pointer-events:none}.mode-tabs .seg-thumb{border-radius:10px}:root[data-theme=dark] .seg-thumb{background:var(--surface-3)}.collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .2s var(--ease),opacity .18s}.collapse.open{grid-template-rows:1fr;opacity:1}.collapse-inner{min-height:0;overflow:hidden}.notes-body{padding-top:2px}.swap-in{display:inline-block;animation:swapIn .18s var(--ease) both}div.swap-in{display:block}.s-panel{animation:swapIn .18s var(--ease) both}@keyframes swapIn{0%{opacity:0;transform:translateY(4px)}}.swipe.is-new{animation:rowIn .24s var(--ease) both}.swipe.is-new>.item{animation:rowGlow .9s ease-out}@keyframes rowIn{0%{opacity:0;transform:translateY(-8px)}}@keyframes rowGlow{0%{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}}.col-bar{transform-origin:bottom;animation:barGrow .22s var(--ease) both;transition:height .22s var(--ease),background var(--t-fast)}@keyframes barGrow{0%{transform:scaleY(0)}}.heat-cell{transition:background .2s}.stack-seg{transition:flex-grow .25s var(--ease)}.hbar-fill{transition:width .25s var(--ease)}.nav-icon{transition:transform var(--t-fast) var(--ease)}.nav-item:active .nav-icon{transform:scale(.88)}.nav-item.active .nav-icon{animation:navPop .26s var(--ease)}@keyframes navPop{45%{transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.dock-side{min-width:80px;min-height:68px;padding:8px 10px;font-size:13px;gap:4px}.dock-mini{gap:12px}.dock-pill{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:104px;min-height:46px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--text-2);font-size:14.5px;font-weight:550;cursor:pointer;transition:background var(--t-fast),color var(--t-fast),transform var(--t-press) var(--ease-std)}.dock-pill:hover{background:var(--surface-2);color:var(--text)}.dock-pill:active{transform:scale(.96);background:var(--surface-2)}.dock-pill:after,.dock-side:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.dock-side{position:relative}.modal-body,.session{overscroll-behavior:contain}.review-strip{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 10px 12px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;overflow:hidden;transition:border-color var(--t-fast),transform var(--t-press) var(--ease-std)}.review-strip:hover{border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.review-strip:active{transform:scale(.99)}.rs-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--accent-soft);color:var(--accent-text)}.rs-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.rs-text b{font-size:15px;font-weight:600}.rs-text em{font:700 17px var(--font-en);font-style:normal;color:var(--accent-text);margin:0 1px}.rs-text small{font-size:12.5px;color:var(--text-3)}.rs-go{display:inline-flex;align-items:center;gap:5px;flex:none;min-height:36px;padding:0 14px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:600}.rs-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--surface-2)}.rs-progress i{display:block;height:100%;background:var(--accent);transition:width .3s var(--ease)}body:has(.session) .player-bar{visibility:hidden;view-transition-name:none}@media(max-width:899px){body:has(.session) .nav{visibility:hidden;view-transition-name:none}}@media(min-width:900px){.session{left:var(--side-w)}body:has(.session) .toasts{left:calc(50% + var(--side-w) / 2)}}::view-transition-old(nav):only-child{animation:none;opacity:0}.dock{gap:10px;padding-top:8px;padding-bottom:max(calc(var(--safe-b) + 8px),16px)}@media(max-width:899px){.session{background:var(--bg)}.stage{padding:16px 20px}}body:has(.session) .toasts{bottom:calc(var(--safe-b) + 210px)}@media(max-width:899px){.stage-en{font-size:clamp(28px,7.6vw,40px)}}
