:root{--bg: #f7f8fc;--surface: #ffffff;--surface2: #eef0f7;--text: #171922;--muted: #6b7180;--faint: #9aa0b0;--border: #e6e8f0;--borderStrong: #d6dae6;--brand: #4f46e5;--brandDeep: #3f37c4;--brandWeak: #eef0fe;--accent: #f59e0b;--accentDeep: #d97706;--accentWeak: #fdf2dc;--accentInk: #7a4d05;--ok: #16a34a;--okWeak: #e6f6ec;--warn: #d97706;--danger: #dc2626;--dangerWeak: #fcebea;--info: #2563eb;--sub-intro: #4f46e5;--sub-civil: #7c3aed;--sub-agentlaw: #0d9488;--sub-publiclaw: #2563eb;--sub-gongsi: #0891b2;--sub-tax: #d97706;--ring: rgba(79, 70, 229, .3);--shadow-sm: 0 1px 2px rgba(23, 25, 40, .06);--shadow: 0 2px 4px rgba(23, 25, 40, .04), 0 10px 26px rgba(23, 25, 40, .09);--shadow-lg: 0 8px 20px rgba(23, 25, 40, .1), 0 30px 64px rgba(23, 25, 40, .18);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0e1016;--surface: #171a23;--surface2: #20242f;--text: #eceef5;--muted: #9aa1b3;--faint: #6b7183;--border: #282d3a;--borderStrong: #3a4152;--brand: #8b87ff;--brandDeep: #7c78ff;--brandWeak: #242347;--accent: #f0a83b;--accentDeep: #e0932a;--accentWeak: #3a2f1a;--accentInk: #f4c37a;--ok: #3ec77e;--okWeak: #14271d;--warn: #e0a53a;--danger: #f0616b;--dangerWeak: #2e1a1e;--info: #5b8def;--sub-intro: #8b87ff;--sub-civil: #a78bfa;--sub-agentlaw: #2dd4bf;--sub-publiclaw: #5b8def;--sub-gongsi: #22b8d6;--sub-tax: #e0a53a;--ring: rgba(139, 135, 255, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 6px rgba(0, 0, 0, .4), 0 12px 30px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .55), 0 30px 70px rgba(0, 0, 0, .6)}}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,system-ui,sans-serif;letter-spacing:-.005em;line-height:1.5}@keyframes gRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes gSheet{0%{transform:translateY(101%)}to{transform:translateY(0)}}@keyframes gFade{0%{opacity:0}to{opacity:1}}@keyframes gPop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.app{max-width:440px;margin:0 auto;min-height:100%;padding:8px 20px calc(100px + env(safe-area-inset-bottom));animation:gFade .3s ease}.screen-title{font-size:23px;font-weight:800;letter-spacing:-.02em;margin:8px 0 16px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-head .t{font-size:16px;font-weight:800}.section-head .more{border:none;background:none;color:var(--brand);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.muted{color:var(--muted)}.stack{display:flex;flex-direction:column}.tnum{font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:22px}.card.flat{border-radius:20px;box-shadow:var(--shadow-sm);padding:18px}.card+.card,.card+.section-head,.list+.section-head{margin-top:16px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:50px;border:none;border-radius:14px;background:var(--brand);color:#fff;font:inherit;font-size:15.5px;font-weight:800;cursor:pointer;transition:transform .12s,background .15s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--border)}.btn.onbrand{background:#fff;color:var(--brand);box-shadow:0 4px 12px #0000001f}.btn.sm{height:44px;font-size:14px;width:auto;padding:0 16px;border-radius:12px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px}.pill.brand{background:var(--brandWeak);color:var(--brand)}.pill.accent{background:var(--accentWeak);color:var(--accentInk)}.pill.ok{background:var(--okWeak);color:var(--ok)}.pill.danger{background:var(--dangerWeak);color:var(--danger)}.pill.neutral{background:var(--surface2);color:var(--muted)}.dot{width:6px;height:6px;border-radius:999px;flex:none}.gauge{position:relative;flex:none}.gauge .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge .val{font-size:40px;font-weight:800;line-height:1}.gauge .cap{font-size:11px;font-weight:700;color:var(--muted);margin-top:2px}.greet{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.greet .kicker{font-size:13px;color:var(--muted);font-weight:600}.greet .hi{font-size:23px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.streak{flex:none;display:inline-flex;align-items:center;gap:6px;background:var(--accentWeak);color:var(--accentInk);padding:7px 11px;border-radius:999px;font-size:12.5px;font-weight:800}.streak .dot{background:var(--accent);width:7px;height:7px}.score-card{display:flex;gap:18px;align-items:center}.score-card .body{flex:1;min-width:0}.score-card .body .msg{margin-top:12px;font-size:13.5px;color:var(--muted);line-height:1.5}.cta{background:var(--brand);border-radius:22px;padding:20px 22px;box-shadow:var(--shadow);position:relative;overflow:hidden}.cta .blob{position:absolute;right:-30px;top:-30px;width:150px;height:150px;border-radius:999px;background:#ffffff14}.cta .inner{position:relative}.cta .lbl{font-size:12.5px;font-weight:700;color:#ffffffbf}.cta .big{display:flex;align-items:baseline;gap:8px;margin-top:6px}.cta .big b{font-size:34px;font-weight:800;color:#fff}.cta .big span{font-size:15px;font-weight:700;color:#ffffffd9}.cta .btn{margin-top:16px}.list{display:flex;flex-direction:column;gap:10px}.wrow{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 15px;cursor:pointer;font:inherit;box-shadow:var(--shadow-sm);transition:border-color .15s}.wrow:hover{border-color:var(--borderStrong)}.wrow .barcol{width:9px;height:38px;border-radius:999px;flex:none}.wrow .grow{flex:1;min-width:0}.wrow .name{display:block;font-size:14.5px;font-weight:700;color:var(--text)}.wrow .meta{display:block;font-size:12px;color:var(--muted);margin-top:2px}.wrow .right{flex:none;text-align:right}.wrow .acc{display:block;font-size:17px;font-weight:800;color:var(--danger)}.wrow .acclbl{display:block;font-size:10.5px;color:var(--faint);font-weight:600}.srow{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:13px 15px;cursor:pointer;font:inherit;box-shadow:var(--shadow-sm);transition:border-color .15s}.srow:hover{border-color:var(--borderStrong)}.srow .sq{width:12px;height:12px;border-radius:5px;flex:none}.srow .name{flex:1;font-size:14.5px;font-weight:700}.srow .acc{font-size:12px;color:var(--muted);font-weight:600}.srow .due{flex:none;min-width:30px;text-align:center;background:var(--surface2);color:var(--text);font-size:13px;font-weight:800;padding:5px 9px;border-radius:999px}.seg{display:flex;gap:4px;background:var(--surface2);padding:4px;border-radius:13px;margin-bottom:20px}.seg button{flex:1;text-align:center;font:inherit;font-size:13px;font-weight:700;padding:9px 0;border-radius:9px;border:none;background:none;color:var(--muted);cursor:pointer}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:800}.callout{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--brandWeak);border-radius:16px;padding:14px 16px;margin-bottom:18px}.callout .txt{font-size:13.5px;color:var(--brand);font-weight:700;line-height:1.4}.trio{display:flex;width:100%;margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.trio .cell{flex:1;text-align:center}.trio .cell .n{font-size:19px;font-weight:800}.trio .cell .l{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}.trio .sep{width:1px;background:var(--border)}.sbar+.sbar{margin-top:13px}.sbar .top{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px}.sbar .top .nm{font-weight:700}.sbar .top .v{font-weight:800;color:var(--muted)}.sbar .track{height:8px;border-radius:999px;background:var(--surface2);overflow:hidden}.sbar .track>span{display:block;height:100%;border-radius:999px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}.tabbar .inner{display:flex;width:100%;max-width:440px;padding:8px 12px 12px}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:none;cursor:pointer;color:var(--muted);text-decoration:none}.tab .lbl{font-size:10.5px;font-weight:700}.tab.on{color:var(--brand)}.tab.on .lbl{font-weight:800}.session{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;animation:gFade .2s ease}.session-top{padding:16px 18px 12px;flex:none}.session-top .row{display:flex;align-items:center;gap:12px}.close-x{width:34px;height:34px;flex:none;border:none;background:var(--surface2);color:var(--text);border-radius:11px;cursor:pointer;font-size:17px;display:grid;place-items:center}.progress{flex:1;height:8px;border-radius:999px;background:var(--surface2);overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .35s ease}.qcount{flex:none;font-size:12.5px;font-weight:800;color:var(--muted)}.session-body{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.qscroll{flex:1;overflow-y:auto;padding:6px 22px 20px}.q-kicker{font-size:11.5px;font-weight:800;color:var(--brand);letter-spacing:.02em;margin-bottom:12px}.q-stem{font-size:21px;font-weight:800;line-height:1.5;letter-spacing:-.01em;margin-bottom:24px}.choices{display:flex;flex-direction:column;gap:11px}.choice{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:17px 16px;border-radius:16px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;transition:all .18s;box-shadow:var(--shadow-sm)}.choice .badge{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:14px;font-weight:800;background:var(--surface2);color:var(--muted)}.choice .ctext{flex:1;font-size:15.5px;line-height:1.45;font-weight:500}.choice .mark{flex:none;font-size:17px;font-weight:800}.choice.correct{border-color:var(--ok);background:var(--okWeak)}.choice.correct .badge{background:var(--ok);color:#fff}.choice.correct .mark{color:var(--ok)}.choice.wrong{border-color:var(--danger);background:var(--dangerWeak)}.choice.wrong .badge{background:var(--danger);color:#fff}.choice.wrong .mark{color:var(--danger)}.choice.dim{opacity:.5;box-shadow:none}.choice.dim .ctext{color:var(--muted)}.choice[disabled]{cursor:default}.sheet{flex:none;background:var(--surface);border-top:3px solid var(--ok);border-radius:24px 24px 0 0;box-shadow:0 -8px 30px #00000024;padding:20px 22px 22px;max-height:60%;overflow-y:auto;animation:gSheet .32s cubic-bezier(.22,1,.36,1)}.sheet.x{border-top-color:var(--danger)}.sheet .head{display:flex;align-items:center;gap:9px;margin-bottom:14px}.sheet .rmark{width:26px;height:26px;border-radius:999px;color:#fff;display:grid;place-items:center;font-size:14px;font-weight:800}.sheet .rtitle{font-size:17px;font-weight:800}.sheet .ans{margin-left:auto;font-size:12px;font-weight:700;color:var(--muted)}.sheet .tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.sheet .explain{font-size:14.5px;line-height:1.65;color:var(--text);margin-bottom:14px}.sheet .tip{display:flex;align-items:flex-start;gap:8px;background:var(--surface2);border-radius:12px;padding:11px 13px;margin-bottom:14px;font-size:12.5px;line-height:1.55}.sheet .src{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;line-height:1.5;color:var(--muted);font-weight:600;margin-bottom:18px}.sheet .btn{height:52px;border-radius:15px}.done{position:absolute;inset:0;background:var(--bg);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;animation:gPop .3s ease}.done .circle{width:80px;height:80px;border-radius:999px;background:var(--accentWeak);display:grid;place-items:center;margin-bottom:22px}.done .h{font-size:24px;font-weight:800;letter-spacing:-.02em}.done .sub{font-size:14.5px;color:var(--muted);margin-top:8px;line-height:1.5}.done .actions{display:flex;gap:10px;margin-top:28px;width:100%;max-width:280px}.empty{text-align:center;color:var(--muted);padding:56px 24px}.empty .emoji{font-size:40px}
