@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap');
:root{--ink:#26342f;--muted:#7b8984;--line:#e8ecea;--paper:#fff;--bg:#f6f8f7;--green:#2f6757;--green-dark:#1f4f42;--mint:#e8f1ed;--coral:#e4775d;--blue:#6b8faa;--gold:#ca9a4d;--shadow:0 14px 38px rgba(35,61,52,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{display:grid;grid-template-columns:238px 1fr;min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:238px;padding:34px 24px 22px;background:#fbfcfb;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);margin:0 10px 42px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:13px 13px 13px 5px;color:#fff;background:var(--green);font-family:"Noto Serif SC";font-size:19px;box-shadow:0 6px 14px rgba(47,103,87,.2)}.brand strong{display:block;font:700 19px "Noto Serif SC"}.brand small{display:block;margin-top:1px;font-size:8px;letter-spacing:.17em;color:#9aa6a2}
nav{display:grid;gap:6px}.nav-item,.subject-link,.sidebar-footer button,.sidebar-footer label{border:0;background:transparent;text-align:left;color:#64736e;padding:11px 13px;border-radius:10px;font-weight:500}.nav-item span{display:inline-block;width:28px;font-size:17px}.nav-item.active,.nav-item:hover,.subject-link:hover{background:var(--mint);color:var(--green);font-weight:600}.sidebar-section{border-top:1px solid var(--line);margin-top:25px;padding-top:19px}.sidebar-section>p{padding:0 13px;margin:0 0 9px;color:#a0aaa7;font-size:11px;letter-spacing:.12em}.subject-link{display:flex;width:100%;align-items:center;gap:11px;font-size:12px}.dot{width:7px;height:7px;border-radius:50%}.coral{background:var(--coral)}.blue{background:var(--blue)}.gold{background:var(--gold)}.green{background:#6f9d86}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:14px}.sidebar-footer button,.sidebar-footer label{display:block;width:100%;cursor:pointer;font-size:12px}.sidebar-footer p{font-size:10px;color:#a7b0ad;text-align:center;margin:10px 0 0}
main{grid-column:2;min-width:0}.topbar{height:84px;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 clamp(24px,4vw,58px);position:sticky;top:0;z-index:10}.search-wrap{height:42px;display:flex;align-items:center;gap:10px;max-width:520px;flex:1;background:#f5f7f6;border:1px solid transparent;border-radius:10px;padding:0 13px;color:#899792}.search-wrap:focus-within{background:#fff;border-color:#b7ccc4;box-shadow:0 0 0 3px rgba(47,103,87,.08)}.search-wrap input{border:0;outline:0;background:transparent;min-width:0;flex:1;color:var(--ink)}kbd{font:10px inherit;color:#9da7a4;border:1px solid #dfe4e2;background:#fff;border-radius:5px;padding:3px 6px}.primary-button,.secondary-button{border:0;border-radius:9px;padding:11px 17px;font-weight:600;transition:.2s}.primary-button{margin-left:auto;background:var(--green);color:#fff;box-shadow:0 5px 12px rgba(47,103,87,.18)}.primary-button:hover{background:var(--green-dark);transform:translateY(-1px)}.secondary-button{background:#eff2f1;color:#61706b}.icon-button{border:0;background:transparent;font-size:20px}
.content{max-width:1220px;margin:0 auto;padding:42px clamp(24px,4vw,58px) 70px}.greeting{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.date{margin:0 0 8px;color:#91a09b;font-size:11px;letter-spacing:.14em}.greeting h1{font:700 clamp(26px,3vw,37px) "Noto Serif SC";margin:0}.greeting h1 span{color:var(--coral)}.greeting>div>p:last-child{color:var(--muted);margin:10px 0 0}.streak{text-align:right;color:#9aa7a2}.streak span{display:block;font-size:11px}.streak strong{display:block;color:var(--coral);font:700 31px "Noto Serif SC"}.streak small{font:500 11px "Noto Sans SC";margin-left:4px}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:38px}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;min-height:106px;padding:20px;display:flex;align-items:center;gap:14px;box-shadow:0 3px 14px rgba(38,52,47,.025)}.stat-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-size:18px}.coral-bg{background:#fbece8;color:var(--coral)}.blue-bg{background:#edf3f7;color:var(--blue)}.green-bg{background:#eaf3ee;color:var(--green)}.stat-card p{margin:0;color:#899691;font-size:12px}.stat-card strong{font:700 25px "Noto Serif SC"}.stat-card>small{margin-left:auto;align-self:flex-end;color:#a0aaa6;font-size:10px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-head>div:first-child{display:flex;align-items:baseline;gap:10px}.section-head h2{font:700 18px "Noto Serif SC";margin:0}.section-head span{color:#9aa6a2;font-size:11px}.filters{display:flex;gap:8px}.filters select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 30px 8px 11px;color:#63716c;font-size:11px}
.question-list{display:grid;gap:10px}.question-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 19px;transition:.2s}.question-card:hover{border-color:#cbd8d3;box-shadow:var(--shadow);transform:translateY(-1px)}.question-main{display:grid;grid-template-columns:1fr auto;gap:20px}.meta{display:flex;align-items:center;gap:7px;margin-bottom:8px}.badge{display:inline-flex;padding:3px 8px;border-radius:5px;background:var(--mint);color:var(--green);font-size:10px;font-weight:600}.badge.status{background:#fff3e7;color:#b2762c}.badge.status.mastered{background:#edf5f1;color:#4b846c}.question-card h3{font-size:14px;line-height:1.7;margin:0 0 8px;font-weight:600}.answer-line{font-size:11px;color:#8a9792}.answer-line b{color:var(--coral);margin:0 2px}.answer-line .correct{color:var(--green)}.tags{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap}.tag{font-size:9px;color:#88948f;background:#f5f7f6;border-radius:4px;padding:3px 6px}.card-actions{display:flex;align-items:flex-start;gap:5px}.card-actions button{border:0;background:transparent;color:#8b9793;width:30px;height:30px;border-radius:7px}.card-actions button:hover{background:#f1f4f3;color:var(--green)}.details{border-top:1px dashed var(--line);margin-top:14px;padding-top:13px;display:none;grid-template-columns:1fr 1fr;gap:14px}.question-card.open .details{display:grid}.detail-block h4{font-size:10px;letter-spacing:.08em;color:#96a29e;margin:0 0 5px}.detail-block p{font-size:12px;line-height:1.7;margin:0;white-space:pre-wrap}.question-image{max-width:100%;max-height:260px;border-radius:9px;margin-top:8px}.expand-button{margin-top:12px;border:0;background:transparent;color:var(--green);padding:0;font-size:11px}
.empty-state{text-align:center;padding:72px 20px;background:#fff;border:1px dashed #d8e1de;border-radius:14px}.empty-tooth{margin:0 auto 13px;width:52px;height:52px;display:grid;place-items:center;background:var(--mint);color:var(--green);border-radius:18px 18px 18px 6px;font:700 22px "Noto Serif SC"}.empty-state h3{font:700 18px "Noto Serif SC";margin:0}.empty-state p{color:var(--muted);font-size:12px;margin:8px 0 18px}.empty-state .primary-button{margin:0}
dialog{width:min(680px,calc(100% - 30px));max-height:90vh;border:0;border-radius:18px;padding:0;box-shadow:0 30px 80px rgba(24,45,38,.25);color:var(--ink)}dialog::backdrop{background:rgba(25,40,35,.45);backdrop-filter:blur(3px)}form{padding:25px 28px;overflow:auto;max-height:90vh}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.dialog-head p{font-size:9px;letter-spacing:.16em;color:#9aa6a2;margin:0 0 3px}.dialog-head h2{font:700 21px "Noto Serif SC";margin:0}.close-button{border:0;background:#f3f5f4;color:#7a8782;width:30px;height:30px;border-radius:50%;font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}form>label,.form-grid label{display:grid;gap:7px;margin-bottom:14px;color:#5f6d68;font-size:11px}form input,form select,form textarea{width:100%;border:1px solid #dfe5e2;background:#fbfcfc;border-radius:8px;padding:10px 11px;color:var(--ink);outline:0;resize:vertical}form input:focus,form select:focus,form textarea:focus{border-color:#8eb0a4;box-shadow:0 0 0 3px rgba(47,103,87,.07);background:#fff}.upload-label span{font-size:10px;color:#a0aaa6}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.dialog-actions .primary-button{margin:0}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#263f36;color:#fff;border-radius:9px;padding:10px 15px;opacity:0;pointer-events:none;transition:.25s;z-index:50;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}.backdrop{position:fixed;inset:0;background:rgba(24,40,34,.35);z-index:15}.mobile-only{display:none}
@media(max-width:820px){.app{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.app main{grid-column:auto}.mobile-only{display:block}.topbar{height:70px;padding:0 17px;gap:10px}.topbar kbd{display:none}.topbar .primary-button{padding:10px 12px}.content{padding:28px 17px 50px}.stat-grid{grid-template-columns:1fr}.greeting{align-items:flex-start}.streak{display:none}.section-head{align-items:flex-start;gap:12px}.filters{flex-wrap:wrap;justify-content:flex-end}.question-main{grid-template-columns:1fr}.card-actions{position:absolute;right:10px;top:10px}.question-card{position:relative;padding-right:82px}.details{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.search-wrap{padding:0 9px}.search-wrap span{display:none}}
@media(max-width:480px){.topbar .primary-button{font-size:0}.topbar .primary-button span{font-size:18px}.section-head{display:block}.filters{justify-content:flex-start;margin-top:10px}.question-card{padding:16px}.question-card h3{padding-right:52px}.stat-card{min-height:85px}.greeting h1{font-size:25px}}