:root{--bg: #f6f7fb;--surface: #ffffff;--ink: #1f2733;--ink-soft: #5a6577;--line: #e6e9f0;--brand: #2f6df0;--brand-dark: #1f4fc4;--brand-soft: #eaf1ff;--accent: #ff7a45;--green: #19a974;--red: #e8453c;--amber: #f5a623;--radius: 14px;--shadow: 0 6px 24px rgba(31, 39, 51, .07);--shadow-sm: 0 2px 8px rgba(31, 39, 51, .06);--sidebar-w: 248px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,Noto Sans TC,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);line-height:1.7}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:linear-gradient(180deg,#1c2740,#233456);color:#cdd7ee;padding:22px 16px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:10px;margin-bottom:6px}.sidebar .brand .logo{font-size:26px}.sidebar .brand h1{font-size:17px;color:#fff;margin:0;line-height:1.3}.sidebar .sub{font-size:12px;color:#8ea0c9;margin:0 0 22px 36px}.nav-group-title{font-size:11px;letter-spacing:.08em;color:#7385ad;margin:18px 8px 8px;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#cdd7ee;font-size:15px;margin-bottom:3px;transition:background .15s,color .15s}.nav-link:hover{background:#ffffff12;text-decoration:none;color:#fff}.nav-link.active{background:var(--brand);color:#fff;box-shadow:var(--shadow-sm)}.nav-link .ico{font-size:18px;width:22px;text-align:center}.main{flex:1;min-width:0}.content{max-width:1080px;margin:0 auto;padding:34px 40px 80px}.page-title{font-size:28px;font-weight:800;margin:0 0 6px}.page-desc{color:var(--ink-soft);margin:0 0 26px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.stat{padding:20px}.stat .num{font-size:30px;font-weight:800;color:var(--brand)}.stat .lbl{color:var(--ink-soft);font-size:14px;margin-top:2px}.cat-card{padding:18px 20px;cursor:pointer;transition:transform .12s,box-shadow .12s;display:block}.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none}.cat-card .badge{display:inline-block;font-size:12px;font-weight:700;color:var(--brand);background:var(--brand-soft);padding:3px 9px;border-radius:999px}.cat-card h3{margin:12px 0 6px;font-size:17px;color:var(--ink)}.cat-card p{margin:0;color:var(--ink-soft);font-size:13.5px}.btn{display:inline-flex;align-items:center;gap:8px;border:none;cursor:pointer;background:var(--brand);color:#fff;padding:10px 18px;border-radius:10px;font-size:15px;font-weight:600;transition:background .15s}.btn:hover{background:var(--brand-dark);text-decoration:none}.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover{background:#f0f3fa}.btn:disabled{opacity:.5;cursor:not-allowed}.chip{display:inline-block;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;cursor:pointer;margin:0 6px 8px 0;color:var(--ink-soft)}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.note-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px 34px;box-shadow:var(--shadow-sm)}.note-body h2{border-bottom:2px solid var(--brand-soft);padding-bottom:8px;margin-top:34px}.note-body h3{color:var(--brand-dark);margin-top:26px}.note-body table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14.5px}.note-body th,.note-body td{border:1px solid var(--line);padding:8px 12px;text-align:left}.note-body th{background:var(--brand-soft)}.note-body code{background:#f0f2f7;padding:2px 6px;border-radius:5px;font-size:90%}.note-body blockquote{border-left:4px solid var(--accent);margin:14px 0;padding:6px 16px;background:#fff7f3;color:#6b4a38;border-radius:0 8px 8px 0}.note-body li{margin:4px 0}.note-sec{scroll-margin-top:16px;padding-top:4px;border-radius:8px;transition:background .4s}.note-sec.sec-hit{background:#fff7e6;box-shadow:0 0 0 6px #fff7e6}.sec-quiz{display:inline-block;margin:6px 0 8px;font-size:13px;color:var(--brand);background:var(--brand-soft);padding:4px 12px;border-radius:999px}.sec-quiz:hover{text-decoration:none;background:#dbe7ff}.quiz-q{font-size:18px;font-weight:700;margin:8px 0 18px;line-height:1.6}.opt{display:block;width:100%;text-align:left;padding:13px 16px;margin-bottom:11px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer;font-size:15.5px;transition:all .12s}.opt:hover{border-color:var(--brand);background:var(--brand-soft)}.opt.correct{border-color:var(--green);background:#e7f7f0}.opt.wrong{border-color:var(--red);background:#fdeceb}.opt.chosen{border-color:var(--brand)}.law-tag{display:inline-block;margin-top:10px;font-size:13px;color:var(--ink-soft);background:#f3f5fa;border-radius:8px;padding:5px 12px}.progress-bar{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin:6px 0 22px}.progress-bar>span{display:block;height:100%;background:var(--brand);transition:width .3s}.muted{color:var(--ink-soft)}.mm-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.mm-wrap svg{width:100%;height:74vh;display:block}.empty{padding:60px 20px;text-align:center;color:var(--ink-soft)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.gallery img{width:100%;border-radius:8px;border:1px solid var(--line)}@media (max-width: 860px){.app{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;flex-basis:auto}.sidebar{height:auto}.content{padding:22px 18px 60px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr 1fr}}
