.auth-wrap[data-v-fe1bac0f]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper)}.auth-card[data-v-fe1bac0f]{width:400px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:40px 36px}.wordmark[data-v-fe1bac0f]{font-family:var(--serif);font-size:22px;text-align:center;letter-spacing:-.02em;margin-bottom:4px}.wordmark[data-v-fe1bac0f]:first-letter{color:var(--accent)}.sub[data-v-fe1bac0f]{text-align:center;color:var(--ink-2);font-size:13px;margin-bottom:26px}.mode-tabs[data-v-fe1bac0f]{display:flex;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:3px;margin-bottom:18px}.mode-tabs button[data-v-fe1bac0f]{flex:1;border:none;background:transparent;color:var(--ink-2);padding:6px 0;font-size:13px;border-radius:4px}.mode-tabs button.on[data-v-fe1bac0f]{background:var(--ink);color:#fff}.field[data-v-fe1bac0f]{margin-bottom:12px}.field input[data-v-fe1bac0f]{width:100%}.row[data-v-fe1bac0f]{display:flex;justify-content:space-between;align-items:center;margin:10px 0}.remember[data-v-fe1bac0f]{display:flex;align-items:center;gap:6px;color:var(--ink-2);font-size:13px;cursor:pointer}.auth-error[data-v-fe1bac0f]{background:var(--red-soft);color:var(--red);border-radius:4px;padding:8px 12px;font-size:12.5px;margin:10px 0}.submit[data-v-fe1bac0f]{width:100%;padding:11px 0;font-size:14px}.switch[data-v-fe1bac0f]{text-align:center;margin-top:18px;color:var(--ink-2);font-size:13px}.switch button[data-v-fe1bac0f]{background:none;border:none;color:var(--accent);padding:0 2px;font-size:13px}.foot[data-v-fe1bac0f]{text-align:center;font-size:11px;color:var(--ink-3);margin-top:26px;letter-spacing:.06em}.pw-meter[data-v-fe1bac0f]{display:flex;align-items:center;gap:8px;margin-top:6px}.pw-bar[data-v-fe1bac0f]{flex:1;height:3px;background:var(--line);border-radius:2px;overflow:hidden}.pw-bar i[data-v-fe1bac0f]{display:block;height:100%;background:var(--accent)}.pw-label[data-v-fe1bac0f]{font-size:11px;color:var(--ink-3);min-width:46px;text-align:right}:root{--paper:#FBFAF7;--panel:#FFFFFF;--ink:#16150F;--ink-2:#57534E;--ink-3:#A8A29E;--line:#E7E4DC;--accent:#1F3D2B;--accent-soft:#EFF3EE;--red:#8C2F1B;--red-soft:#F4E4E0;--gold:#8A6D3B;--radius:6px;--serif:var(--font-body, Georgia, "Times New Roman", serif);--sans:var(--font-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif);--shadow:0 8px 24px rgba(20,18,10,.06)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.7}button{font-family:var(--sans);border:1px solid var(--ink);background:var(--ink);color:#fff;padding:8px 20px;border-radius:6px;font-size:13.5px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}button:hover{background:#2e2c24;border-color:#2e2c24}button:disabled{opacity:.4;cursor:not-allowed}button.line,button.ghost{background:transparent;color:var(--ink);border-color:var(--line)}button.line:hover,button.ghost:hover{border-color:var(--ink)}button.small{padding:5px 14px;font-size:12.5px;border-radius:4px}input,select,textarea{font-family:var(--sans);font-size:13.5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.bar{height:2px;background:var(--line);overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}.muted{color:var(--ink-2)}.faint{color:var(--ink-3);font-size:12.5px}.tag{display:inline-block;font-size:11px;letter-spacing:.06em;border:1px solid var(--line);border-radius:2px;padding:1px 8px;color:var(--ink-2);background:transparent;margin-right:6px}.en{font-family:var(--serif)}.layout{display:flex;min-height:100vh}.side{width:216px;flex-shrink:0;border-right:1px solid var(--line);background:var(--panel);padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width .2s ease;overflow:hidden;white-space:nowrap}.side.mini{width:60px;padding:22px 8px}.side .wordmark{display:block;padding:0 10px 20px;font-family:var(--serif);font-size:18px;letter-spacing:-.02em}.side .wordmark i{color:var(--accent)}.side .wordmark small{display:block;margin:4px 0 0;font-family:var(--sans);font-size:10.5px;color:var(--ink-3);letter-spacing:.08em}.side nav{display:flex;flex-direction:column;gap:2px;flex:1}.side nav a{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:6px;color:var(--ink-2);text-decoration:none;font-size:13.5px;cursor:pointer}.side nav a:hover{color:var(--ink);background:var(--paper)}.side nav a.on{background:#f2f0ea;color:var(--ink);font-weight:600}.side nav a .bdg{font-family:var(--serif);font-size:11px;color:var(--ink-3)}.side nav a.on .bdg{color:var(--accent)}.side .foot{border-top:1px solid var(--line);padding-top:14px;font-size:11px;color:var(--ink-3)}.side .foot b{color:var(--accent)}.side .foot .pbar{height:2px;background:var(--line);margin:6px 0 10px}.side .foot .pbar i{display:block;height:2px;background:var(--accent)}.toggle{position:absolute;top:16px;right:8px;width:22px;height:22px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink-2);cursor:pointer;font-size:11px;line-height:1;padding:0}.side.mini{width:64px;padding:22px 8px}.side.mini .wordmark small,.side.mini nav a .bdg,.side.mini .foot{display:none}.side.mini nav a{justify-content:center;padding:9px 0}.side.mini nav a span.txt{font-size:12px;letter-spacing:.05em}.side.mini .wordmark{font-size:22px;padding:0 0 18px;text-align:center}.side.mini .toggle{position:static;display:block;margin:0 auto 16px}.main{flex:1;min-width:0}.container{max-width:1100px;margin:0 auto;padding:34px 44px 80px}.read-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:30}.read-progress i{display:block;height:2px;background:var(--accent);width:0}.article-title{font-family:var(--serif);font-size:26px;font-weight:400;letter-spacing:-.01em;margin:0 0 6px}.article-body{font-family:var(--serif);font-size:17px;line-height:1.9;color:var(--ink);white-space:pre-wrap;margin-top:14px}.article-body.bilingual{font-size:16.5px;line-height:1.8}.article-h2{font-family:var(--serif);font-size:19px;margin:10px 0 6px;color:var(--accent);padding-left:10px;border-left:2px solid var(--accent);break-after:avoid;column-span:all}.tw{color:var(--accent);font-weight:700;cursor:pointer;border-bottom:1px solid var(--accent);padding:0 1px}.tw:hover{background:var(--accent-soft);border-radius:3px}@media(max-width:900px){.article-body{column-count:1}}.drawer-mask{position:fixed;inset:0;background:#16150f40;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(400px,94vw);background:var(--panel);border-left:1px solid var(--line);z-index:41;padding:26px;overflow-y:auto;box-shadow:var(--shadow)}.sense-item{padding:7px 10px;border-radius:4px;font-size:14px;margin:3px 0}.sense-item.used{background:var(--accent-soft);border-left:2px solid var(--accent)}.pos{color:var(--accent);font-style:italic;margin-right:8px;font-size:13px}.choice{display:block;width:100%;text-align:left;margin:8px 0;background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:12px 16px;border-radius:6px;font-size:14.5px}.choice:hover{border-color:var(--ink-3)}.choice.right{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.choice.wrong{background:var(--red-soft);border-color:var(--red);color:var(--red)}.rate-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.rate-row button{padding:11px 0;font-size:14px}.rate-1{background:var(--panel)!important;color:var(--red)!important;border:1px solid var(--red)!important}.rate-2{background:var(--panel)!important;color:var(--gold)!important;border:1px solid var(--gold)!important}.rate-3{background:var(--accent)!important;border-color:var(--accent)!important}.rate-4{background:var(--ink)!important;border-color:var(--ink)!important}.flash{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer}.flash .word{font-family:var(--serif);font-size:40px;font-weight:400}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.stat-num{font-family:var(--serif);font-size:32px;font-weight:400;color:var(--ink)}.week-chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:10px}.week-chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.week-chart .stick{width:100%;max-width:30px;background:var(--accent-soft);border-radius:3px 3px 0 0;position:relative}.week-chart .stick>i{position:absolute;bottom:0;left:0;right:0;background:var(--accent);border-radius:3px 3px 0 0}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.date{font-size:12px;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}.sec{font-family:var(--serif);font-size:26px;font-weight:400;letter-spacing:-.01em;margin:4px 0 6px}.lbl{font-size:12px;color:var(--ink-3);letter-spacing:.14em;font-weight:600;margin:0 0 12px;text-transform:uppercase}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:20px 0}@media(max-width:900px){.grid2{grid-template-columns:1fr}}.hr{height:1px;background:var(--line);margin:26px 0}.qc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px}.qc{border:1px solid var(--line);border-radius:6px;padding:14px;min-height:130px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;background:var(--panel);text-align:center}.qc:hover{border-color:var(--ink-3)}.qc.done{opacity:.35}.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}.mode-switch{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;vertical-align:middle}.mode-switch button{border:none;border-radius:0;padding:3px 12px;font-size:12px;background:transparent;color:var(--ink-2)}.mode-switch button.on{background:var(--ink);color:#fff}.sel-pop{position:absolute;z-index:35;max-width:430px;background:var(--ink);color:#f5f2ea;border-radius:6px;padding:12px 15px;box-shadow:0 8px 28px #0000002e;font-size:13.5px;line-height:1.7}.sel-src{font-size:12px;opacity:.55;margin-bottom:6px;font-style:italic;font-family:var(--serif)}.sel-result{white-space:pre-wrap}.sel-fast{opacity:.6}
