:root{--ink:#152037;--muted:#687387;--line:#e5eaf2;--paper:#fff;--navy:#0d1426;--blue:#5165f6;--pale:#f6f8fc;--red:#e8616e;--amber:#e8a83b;--green:#46bd91;--shadow:0 18px 45px rgba(18,31,62,.09)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(92,104,128,.4) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:rgba(92,104,128,.38);border:3px solid transparent;background-clip:padding-box;border-radius:99px}body{margin:0;background:var(--pale);color:var(--ink);font:15px/1.6 Inter,"PingFang SC","Microsoft YaHei",sans-serif}.app-shell{min-height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 24px;color:#fff;text-decoration:none;font-size:18px;font-weight:750}.brand small{display:block;color:#8090b4;font-size:11px;letter-spacing:.1em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,#7b8bff,#4ccbaa);font-size:24px}.random-button,.bank-button{width:100%;border:1px solid #465574;border-radius:10px;padding:10px 11px;background:#202d48;color:#fff;text-align:left;font:inherit;cursor:pointer}.bank-button{background:transparent;color:#c7d3ec}.random-button:hover,.bank-button:hover{background:#293957}nav{flex:1;overflow:auto}.nav-item{width:100%;display:flex;justify-content:space-between;gap:8px;border:0;border-left:2px solid transparent;padding:9px 10px;background:transparent;color:#aeb9d1;text-align:left;font:13px/1.35 inherit;cursor:pointer}.nav-item:hover,.nav-item.active{background:#18233b;color:#fff}.nav-item.active{border-left-color:#6b7cff}.nav-count{color:#7e8baa;font-size:11px}.side-note{margin-top:15px;padding:15px 8px 0;border-top:1px solid #24314b;color:#71809f;font-size:11px;line-height:1.7}main{min-width:0;padding-bottom:44px}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,64px);border-bottom:1px solid var(--line);background:#ffffffc7;backdrop-filter:blur(10px)}.crumb,.muted{color:var(--muted);font-size:13px}.text-button,.icon-button{border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.text-button:hover{color:var(--red)}.menu-button{border:0;background:transparent;font-size:20px;cursor:pointer;margin-right:8px}.dashboard,.study-layout{max-width:1380px;margin-inline:auto}.dashboard{display:flex;justify-content:space-between;align-items:end;gap:35px;padding:42px clamp(22px,4vw,64px) 27px}.eyebrow{margin:0 0 3px;color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.08em}.dashboard h1{margin:0 0 8px;font-size:clamp(25px,3vw,38px);line-height:1.2;letter-spacing:-.04em}.progress-panel{width:min(300px,38vw);padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.progress-label{display:flex;justify-content:space-between;font-size:13px}.progress-label strong{color:var(--blue)}.progress-track{height:7px;margin:9px 0 3px;overflow:hidden;border-radius:99px;background:#edf0f7}.progress-track i{display:block;width:0;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blue),#75afed);transition:.25s}.progress-panel small{color:var(--muted);font-size:11px}.search{display:flex;align-items:center;gap:7px;margin:0 4px 14px;padding:0 12px;border:1px solid #2c3a58;border-radius:10px;background:#16213a;color:#7e8baa}.search input{width:100%;padding:10px 0;border:0;outline:0;background:transparent;color:#e8ecf8;font:inherit}.filters{display:flex;flex-wrap:wrap;gap:6px;padding:10px 4px;border-top:1px solid #24314b;border-bottom:1px solid #24314b}.filters button{border:1px solid #2c3a58;border-radius:99px;padding:6px 11px;background:transparent;color:#98a3bf;font:12px inherit;cursor:pointer}.filters button:hover{color:#fff}.filters button.active{background:var(--blue);border-color:transparent;color:#fff;font-weight:700}.filter-unmastered.active{background:var(--red)!important;color:#fff!important}.filter-due.active{background:#5eead4!important;color:#08302a!important}.filter-review.active{background:var(--amber)!important;color:#3a2a05!important}.filter-mastered.active{background:var(--green)!important;color:#fff!important}.study-layout{display:grid;grid-template-columns:minmax(0,920px);justify-content:center;padding:0 clamp(22px,4vw,64px)}.card{display:flex;flex-direction:column;min-height:550px;padding:clamp(23px,3.3vw,48px);border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:var(--shadow)}.card-top{display:flex;justify-content:space-between;align-items:center}.tag{padding:3px 10px;border-radius:99px;background:#eef1ff;color:#4056e7;font-size:11px;font-weight:700}.card h2{margin:25px 0 30px;font-size:clamp(21px,2.4vw,31px);line-height:1.42;letter-spacing:-.025em;white-space:pre-wrap}.answer-area{padding-top:18px;border-top:1px dashed #dce1eb}.answer-heading{display:flex;align-items:center;justify-content:space-between;color:#667187;font-size:13px;font-weight:700}.reveal-button{border:0;border-radius:7px;padding:6px 9px;background:#eef1ff;color:#4056e7;font:inherit;cursor:pointer}.reveal-button kbd{color:#8691ac;font:10px monospace}.answer{padding:19px 2px 4px;color:#354158;line-height:1.85;white-space:pre-wrap;transition:.2s}.answer.hidden{max-height:120px;overflow:hidden;filter:blur(7px);opacity:.45;cursor:pointer;user-select:none}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:auto;padding-top:30px}.memory-actions,.pager{display:flex;gap:8px}.outline-button,.status-button,.pager-button{border:1px solid #dce2ec;border-radius:8px;padding:8px 10px;background:#fff;color:#58657a;font:13px inherit;cursor:pointer}.outline-button.active{border-color:#f2d694;background:#fff9e8;color:#d69211}.status-button.unmastered{color:#bd5360}.status-button.review{color:#af7922}.status-button.mastered{color:#278a6d}.status-button.unmastered.active{border-color:#f2c6cb;background:#fff0f1}.status-button.review.active{border-color:#f0d49a;background:#fff7e8}.status-button.mastered.active{border-color:#bee9da;background:#e9f8f2}.pager-button:disabled{opacity:.4;cursor:not-allowed}.answer-text{white-space:pre-wrap}.answer-text code{padding:1px 5px;border-radius:5px;background:#eef1f6;color:#33439a;font:12px/1.5 ui-monospace,Consolas,monospace}.code-block{margin:10px 0;padding:12px 14px;border-radius:10px;background:#0d1426;color:#dce5ff;overflow-x:auto;white-space:pre;font:12.5px/1.65 ui-monospace,Consolas,"Courier New",monospace}.code-block code{background:none;padding:0;color:inherit;font:inherit}.interview-dialog{width:min(680px,calc(100vw - 28px));border:0;border-radius:16px;padding:0;box-shadow:0 22px 70px rgba(17,31,59,.26);color:var(--ink)}.interview-dialog::backdrop{background:rgba(12,20,38,.45);backdrop-filter:blur(3px)}.interview-dialog form{padding:27px}.dialog-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:16px}.dialog-head h2{margin:0;font-size:25px}.close-button{width:30px;height:30px;border:0;border-radius:50%;background:#f1f3f8;color:#647087;font-size:24px;line-height:1;cursor:pointer}.interview-dialog label{display:block;margin-top:14px;font-size:13px;font-weight:700}.interview-dialog textarea{display:block;width:100%;min-height:74px;margin-top:6px;padding:10px;border:1px solid #dfe4ee;border-radius:9px;resize:vertical;color:var(--ink);font:14px/1.55 inherit;outline-color:#7181f9}.copy-button{margin-top:10px;border:1px dashed #8391ef;border-radius:8px;padding:7px 10px;background:#f5f6ff;color:#4659d8;font:13px inherit;cursor:pointer}.dialog-hint{margin:12px 0;color:var(--muted);font-size:12px}.save-interview{width:100%;border:0;border-radius:9px;padding:11px;background:var(--blue);color:#fff;font:inherit;font-weight:700;cursor:pointer}@media(max-width:850px){.topbar{justify-content:flex-start}.top-actions{margin-left:auto}.dashboard{flex-direction:column;align-items:start}.progress-panel{width:100%}.card{min-height:500px}.card-footer{flex-direction:column;align-items:stretch}.memory-actions,.pager{justify-content:space-between}}@media(max-width:480px){.dashboard,.study-layout{padding-right:15px;padding-left:15px}.topbar{padding:0 15px}.top-actions .text-button:not(#cloudButton):not(#authButton){display:none}.card{padding:22px 18px}.memory-actions{flex-wrap:wrap}.pager-button{flex:1}}
/* ===== 左侧抽屉式题库目录 ===== */
.drawer{position:fixed;z-index:40;top:0;bottom:0;left:0;width:320px;max-width:86vw;display:flex;flex-direction:column;padding:16px 14px 10px;background:rgba(13,20,38,.94);backdrop-filter:blur(16px);color:#d7ddeb;border-right:1px solid #24314b;transform:translateX(-102%);transition:transform .28s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(166,184,220,.35) transparent}
.drawer::-webkit-scrollbar{width:8px}
.drawer::-webkit-scrollbar-track{background:transparent}
.drawer::-webkit-scrollbar-thumb{background:rgba(166,184,220,.3);border-radius:99px}
.drawer *{scrollbar-width:thin;scrollbar-color:rgba(166,184,220,.35) transparent}
.drawer *::-webkit-scrollbar{width:8px;height:8px}
.drawer *::-webkit-scrollbar-thumb{background:rgba(166,184,220,.28);border-radius:99px;background-clip:padding-box}
.drawer.open{transform:translateX(0)}
.drawer-scrim{position:fixed;inset:0;z-index:35;background:rgba(12,18,38,.45);opacity:0;pointer-events:none;transition:opacity .25s}
.drawer-scrim.show{opacity:1;pointer-events:auto}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 14px}
.drawer .brand{padding:0}
.drawer-close{flex:none;width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#8090b4;font-size:14px;cursor:pointer}
.drawer-close:hover{background:#1c2a46;color:#fff}
.drawer-actions{display:flex;flex-direction:column;gap:8px;padding:0 0 12px}
.drawer nav{flex:none;max-height:24vh;overflow:auto;padding:0 4px}
.drawer .nav-item{border:0;border-radius:10px;border-left:0;padding:9px 11px}
.drawer .nav-item:hover{background:#18233b;color:#fff}
.drawer .nav-item.active{background:rgba(107,124,255,.16);border:1px solid rgba(107,124,255,.4);color:#fff}
.drawer-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 6px 6px;color:#7e8baa;font-size:12px}
.shuffle{display:flex;align-items:center;gap:5px;border:0;background:transparent;padding:4px 8px;border-radius:8px;color:#98a3bf;font-size:12px;cursor:pointer}
.shuffle:hover{background:#18233b;color:#fff}
.shuffle.on{color:#5eead4}
#questionList{flex:1 1 180px;min-height:180px;overflow:auto;margin:0;padding:2px 4px 10px;list-style:none}
#questionList li button{display:flex;align-items:center;gap:9px;width:100%;border:0;border-radius:10px;padding:9px 10px;background:transparent;color:#a7aecb;text-align:left;font:12.5px/1.4 inherit;cursor:pointer}
#questionList li button:hover{background:#18233b;color:#fff}
#questionList li button.active{background:rgba(107,124,255,.18);color:#fff}
#questionList li button span.q-text{flex:1;min-width:0}
.q-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#3a4260}
.q-dot.unmastered{background:var(--red);box-shadow:0 0 8px rgba(232,97,110,.55)}
.q-dot.review{background:var(--amber);box-shadow:0 0 8px rgba(232,168,59,.55)}
.q-dot.mastered{background:var(--green);box-shadow:0 0 8px rgba(70,189,145,.55)}
.q-star{margin-left:auto;color:#ecad38;font-size:12px}
.drawer .side-note{margin-top:14px}
/* ===== 返回顶部悬浮按钮 ===== */
.back-top{position:fixed;z-index:20;right:24px;bottom:24px;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--blue);font-size:20px;line-height:1;box-shadow:0 8px 24px rgba(18,31,62,.16);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .25s,transform .25s,box-shadow .25s}
.back-top.visible{opacity:1;pointer-events:auto;transform:none}
.back-top:hover{color:#364de3;transform:translateY(-2px);box-shadow:0 12px 30px rgba(18,31,62,.22)}
@media(max-width:700px){.back-top{right:16px;bottom:16px;width:40px;height:40px;font-size:18px}}
.interview-dialog .raw-paste{min-height:132px;background:#fbfcff}
.outline-button.danger{color:var(--red)}
.outline-button.danger:hover{border-color:#f2c6cb;background:#fff5f6}
/* ===== 重点分级徽标（深色抽屉内） ===== */
.tier-badge{flex:none;padding:1px 6px;border-radius:5px;font-size:10px;font-weight:700}
.tier-badge.t1{background:rgba(232,97,110,.22);color:#ff97a2}
.tier-badge.t2{background:rgba(232,168,59,.18);color:#ffc36b}
.tier-badge.t3{background:rgba(148,163,204,.15);color:#98a3bf}
/* 卡片上的分级标签（浅色卡片上） */
.tag.tier-tag{margin-left:8px}
.tag.tier-tag.t1{background:#ffe3e5;color:#c2364a}
.tag.tier-tag.t2{background:#fff2dc;color:#a06a12}
.tag.tier-tag.t3{background:#e8ebf3;color:#7d88a0}
.filters button.filter-tier1.active{background:var(--red)!important;color:#fff!important}
.cloud-input{display:block;width:100%;margin-top:6px;padding:9px 10px;border:1px solid #dfe4ee;border-radius:9px;font:13px/1.4 inherit;outline-color:#7181f9}
.cloud-check{display:flex;align-items:center;gap:8px;margin-top:14px!important;font-size:13px;font-weight:600;color:#58657a}
.cloud-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.auth-tabs{display:flex;gap:8px;margin:14px 0 2px}
.auth-tabs button{flex:1;padding:9px 0;border:1px solid #dce2ec;border-radius:9px;background:#fff;color:#58657a;font:13px inherit;cursor:pointer}
.auth-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}
.cloud-account{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 12px;padding:11px 13px;border-radius:10px;background:#f6f8fc;font-size:13px}
.cloud-account b{color:#364de3}
.submit-button{width:100%;margin-top:16px;padding:11px;border:0;border-radius:10px;background:var(--blue);color:#fff;font:inherit;font-weight:700;cursor:pointer}
/* ===== 解析面板：固定高度，内容滚动 ===== */
.analysis{margin-top:30px}
.analysis-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.analysis-title{color:#4056e7;font-size:13px;font-weight:800;letter-spacing:.04em}
.analysis-actions{display:flex;gap:6px}
.analysis-button{border:1px solid #dce2ec;border-radius:7px;padding:4px 10px;background:#fff;color:#58657a;font:12px inherit;cursor:pointer}
.analysis-button:hover{border-color:#aab5f8;color:#4056e7}
.analysis-button.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.analysis-button.primary:hover{color:#fff}
.analysis-button.danger{color:var(--red)}
.analysis-body{height:280px;overflow:auto;padding:15px 17px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}
.analysis-body .answer-text{font-size:13.5px;color:#3f4b62}
.analysis-body .answer-text code{font-size:11.5px}
.analysis-body .code-block{margin:9px 0;font-size:12px}
.analysis-empty,.analysis-locked{margin:0;color:#98a0b5;font-size:13px;line-height:1.8}
.analysis-locked b{color:#7d88a0}
.analysis-editor{display:block;width:100%;height:100%;border:0;outline:0;background:transparent;resize:none;color:var(--ink);font:13px/1.75 inherit}
@media(max-width:700px){.analysis-body{height:220px}.analysis-head{flex-wrap:wrap}}
