:root{color-scheme:light;--bg:#f4f6fb;--card:#fff;--ink:#182239;--muted:#637087;--line:#dde3ef;--primary:#3157d5;--blue-light:#edf1ff;--navy:#182238;--red:#b82f43;--green:#177356}
*{box-sizing:border-box}body{margin:0;font:16px/1.65 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}
button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:10px 18px;background:#fff;color:var(--ink);transition:background .15s,border-color .15s,transform .15s}button:hover:not(:disabled){background:#f3f5fc;border-color:#aebce5}button:disabled{opacity:.58;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #99adff;outline-offset:3px}a{color:var(--primary)}h1,h2,h3,p{margin:0}h1{font-size:1.7rem;line-height:1.4}h2{font-size:1.25rem;line-height:1.5}h3{font-size:1.08rem;line-height:1.5}.muted{color:var(--muted)}.small,small{font-size:.8rem}.primary{background:var(--primary);border-color:var(--primary);color:white;font-weight:650}.primary:hover:not(:disabled){background:#2548bc;color:#fff;border-color:#2548bc}.wide{width:100%}.link-button{border:0;color:var(--primary);background:transparent}.pill{display:inline-block;padding:4px 11px;border-radius:7px;font-size:.8rem;background:var(--blue-light);color:var(--primary);white-space:nowrap}.eyebrow{color:var(--primary);font-size:.8rem;font-weight:700;letter-spacing:.08em}.logo{width:43px;height:43px;border-radius:13px;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}
.initial-loading{padding:25vh 24px;text-align:center}.auth-screen{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:36px 20px;background:radial-gradient(ellipse at 15% 15%,#e5ebff,transparent 55%),var(--bg)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:26px}.auth-brand strong{font-size:1.2rem}.auth-card{background:#fff;border:1px solid var(--line);border-radius:24px;width:100%;max-width:470px;padding:34px;box-shadow:0 16px 50px #182e6820}.auth-card h1{margin:10px 0 12px}.auth-card .muted{font-size:.9rem}.auth-card form{margin-top:25px}.auth-card label{display:block;margin:15px 0 6px;font-size:.9rem;font-weight:600}.auth-card input{width:100%;border:1px solid #cfd7e8;border-radius:10px;padding:12px 13px;background:#fff;min-width:0}.auth-card .link-button{margin:10px 0}.auth-card .small{text-align:center}.error{color:var(--red);font-size:.88rem;min-height:1.65em;margin:10px 0}.auth-footer{font-size:.8rem;color:var(--muted);margin-top:22px}
.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--navy);color:#fff;padding:28px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:13px;align-items:center;margin-bottom:42px}.brand strong{font-size:1.15rem}.brand small{display:block;color:#a0aec7;font-size:.75rem}.brand .logo{background:#6f8bfb}.sidebar nav{display:grid;gap:9px}.nav-button{border:0;color:#c7d1e6;background:transparent;text-align:left;padding:14px;font-size:.92rem;font-weight:600;display:flex;align-items:center;gap:14px}.nav-button span{font-size:.76rem;opacity:.6;font-variant-numeric:tabular-nums}.nav-button.active,.nav-button:hover:not(:disabled){background:#2a3653;color:#fff}.user-panel{margin-top:auto;padding:18px 12px 0;border-top:1px solid #ffffff20;display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere}.user-panel span{font-size:.8rem;color:#a8b6d0}.logout{align-self:flex-start;margin:9px 0 0;padding:5px 0;color:#b9c7e0;background:none;border:0;border-radius:0;font-size:.86rem}.logout:hover:not(:disabled){background:none;color:white}.main{margin-left:248px;min-height:100vh}.topbar{min-height:80px;padding:20px 38px;display:flex;gap:18px;align-items:center;justify-content:space-between;background:#ffffffd9;border-bottom:1px solid var(--line)}.topbar h1{font-size:1.1rem}.page{padding:30px 38px 48px;max-width:1240px;margin:auto}.hero{padding:30px 32px;background:var(--primary);color:#fff;border-radius:20px;display:flex;gap:24px;align-items:center;justify-content:space-between;margin-bottom:24px}.hero h2{font-size:1.7rem;margin:5px 0 8px}.hero p{color:#e0e7ff}.hero button{flex-shrink:0;color:var(--primary);font-weight:650;background:white;border-color:white}.hero .small{font-size:.86rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:34px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.stat-label{color:var(--muted);font-size:.9rem}.stat-number{font-size:2.1rem;font-weight:750;line-height:1.6;font-variant-numeric:tabular-nums}.stat-number small{font-size:.86rem;font-weight:400;color:var(--muted);margin-left:8px}.stat-note{font-size:.8rem;color:var(--muted)}.section-head{display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:18px}.section-head p{color:var(--muted);font-size:.88rem;margin-top:4px}.bank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.bank-card{background:white;border:1px solid var(--line);border-radius:17px;padding:23px;display:flex;flex-direction:column;gap:15px}.bank-card h3{font-size:1.14rem;overflow-wrap:anywhere}.bank-card p{color:var(--muted);font-size:.88rem;min-height:2.6em;overflow-wrap:anywhere}.bank-number{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.8rem}.book-icon{width:44px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--blue-light);border-radius:6px 11px 11px 6px;border-left:4px solid #90a7ee;color:var(--primary);font-weight:700;margin-bottom:3px}.bank-card:nth-child(3n+2) .book-icon{background:#fff3db;border-color:#eac16c;color:#9d6c13}.bank-card:nth-child(3n+3) .book-icon{background:#e4f6f0;border-color:#6ab69d;color:#24785e}progress{appearance:none;display:block;width:100%;height:7px;border:0;border-radius:20px;overflow:hidden;background:#e8edf7}progress::-webkit-progress-bar{background:#e8edf7}progress::-webkit-progress-value{background:var(--primary);border-radius:20px}progress::-moz-progress-bar{background:var(--primary)}.bank-card progress{margin-top:auto}.empty{text-align:center;padding:55px 20px;background:#fff;border:1px dashed #c6d0e3;border-radius:17px}.empty p{color:var(--muted);margin:8px 0 20px;font-size:.92rem}.empty-symbol{font-size:2rem;color:#768cbb;margin-bottom:10px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.section-head .actions{justify-content:flex-end}
.practice{max-width:820px;margin:auto}.practice .back{padding-left:0;margin-bottom:12px;color:var(--muted);border:0;background:none}.practice-meta{display:flex;justify-content:space-between;gap:12px;margin:12px 0;color:var(--muted);font-size:.9rem}.question-card{padding:30px;background:#fff;border:1px solid var(--line);border-radius:20px;margin-top:22px}.question-stem{font-size:1.18rem;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0 26px}.option{display:flex;gap:13px;align-items:flex-start;border:1px solid #d7dfef;padding:15px 17px;border-radius:12px;margin:12px 0;cursor:pointer;transition:background .15s}.option input{margin-top:6px;width:18px;height:18px;flex-shrink:0;accent-color:var(--primary)}.option .letter{font-weight:700;color:var(--primary)}.option .option-text{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.option:has(input:checked){background:var(--blue-light);border-color:var(--primary)}.option.correct{background:#eaf8f0;border-color:#67b48d}.option.incorrect{background:#fff0f0;border-color:#e9a0a6}.explanation{padding:19px;border-radius:12px;margin:22px 0;background:#edf7f1;color:var(--green)}.explanation.bad{background:#fff0f1;color:#913246}.explanation p{margin-top:8px;font-size:.92rem;white-space:pre-wrap;overflow-wrap:anywhere}.question-actions{margin-top:24px;display:flex;justify-content:space-between;gap:10px;align-items:center}.complete{text-align:center;padding:40px}.complete p{margin:14px 0 25px;color:var(--muted)}
.wrong-list{display:grid;gap:15px}.wrong-card{padding:22px;background:white;border:1px solid var(--line);border-radius:16px}.wrong-card h3{margin:13px 0 9px;white-space:pre-wrap;overflow-wrap:anywhere}.wrong-card .meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.82rem}.wrong-card details{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.wrong-card summary{cursor:pointer;color:var(--primary);font-size:.9rem}.wrong-card .detail-content{white-space:pre-wrap;overflow-wrap:anywhere;padding:15px 0}.wrong-card .detail-content p{margin:5px 0;font-size:.92rem}.wrong-card .mark{margin-top:12px;font-size:.88rem}.tabs{display:flex;gap:7px;margin-bottom:20px}.tabs button{font-size:.88rem}.tabs .selected{background:var(--primary);color:#fff;border-color:var(--primary)}
.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:22px;align-items:start}.panel{border:1px solid var(--line);background:#fff;border-radius:16px;padding:24px}.panel h2{margin-bottom:10px}.panel p{font-size:.9rem;color:var(--muted);margin:10px 0 17px}.panel .file-input{width:100%;font-size:.85rem;margin:6px 0 14px}.panel .primary{margin-bottom:12px}.panel details{margin-top:18px}.panel summary{cursor:pointer;color:var(--primary);font-size:.88rem}.panel pre{max-height:320px;overflow:auto;font-size:.8rem;padding:15px;background:#f1f4fb;border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff}table{border-collapse:collapse;width:100%;font-size:.9rem;text-align:left}th{font-weight:650;color:var(--muted);background:#f9faff;white-space:nowrap}th,td{padding:17px 20px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:none}td:first-child{overflow-wrap:anywhere}td a{white-space:nowrap}.import-status{white-space:pre-wrap;color:var(--primary);font-size:.88rem;overflow-wrap:anywhere}#notice{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;max-width:calc(100vw - 32px);padding:13px 21px;border:1px solid #bed0fc;border-radius:12px;background:#f0f5ff;color:#233c82;box-shadow:0 4px 20px #22315522;font-size:.93rem}
@media(max-width:1150px){.bank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{align-items:flex-start;flex-direction:column}.admin-grid{grid-template-columns:1fr}.sidebar{width:218px}.main{margin-left:218px}.page{padding:26px}.topbar{padding:20px 26px}}
@media(max-width:760px){.sidebar{position:static;width:100%;padding:18px}.brand{margin-bottom:15px}.sidebar nav{display:flex;gap:6px;flex-wrap:wrap}.nav-button{padding:10px 12px;font-size:.86rem;gap:8px}.nav-button span{display:none}.user-panel{border:0;flex-direction:row;align-items:center;padding:14px 0 0;gap:12px;font-size:.86rem}.user-panel .logout{margin:0 0 0 auto;align-self:auto}.user-panel #user-role{display:none}.main{margin-left:0}.topbar{padding:16px 18px;min-height:65px}.topbar .pill{font-size:.72rem}.page{padding:20px 16px 35px}.hero{padding:23px}.hero h2{font-size:1.4rem}.stats{gap:9px;margin-bottom:28px}.stat{padding:14px 11px}.stat-label{font-size:.82rem}.stat-number{font-size:1.7rem}.stat-note{font-size:.75rem}.stat-number small{font-size:.75rem;margin-left:3px}.bank-grid{grid-template-columns:1fr}.question-card{padding:21px 17px}.question-stem{font-size:1.08rem}.section-head{align-items:flex-start;flex-wrap:wrap}.section-head .actions{justify-content:flex-start}.auth-card{padding:28px 22px}.question-actions{flex-wrap:wrap}.option{padding:14px 12px}.auth-footer{font-size:.75rem}th,td{padding:14px}.admin-grid{gap:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
