:root{--bg: #e7e0d2;--paper: #fbf7ef;--ink: #1f1a16;--muted: #6d655c;--line: #e0d5c4;--cinnabar: #9d342c;--cinnabar-deep: #7a241e;--pine: #1d6846;--pine-soft: #e5f3eb;--gold: #8a5e2a;--gold-soft: #f6ead4;--shadow: 0 18px 40px rgba(62, 42, 18, .08);--sans: "WenQuanYi Micro Hei", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--serif: "Songti SC", "Noto Serif SC", "STSong", "WenQuanYi Micro Hei", serif;color:var(--ink);background:var(--bg);font-family:var(--sans);font-size:16px;line-height:1.6}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--cinnabar-deep);text-decoration:none}a:hover{text-decoration:underline}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:14px 22px;background:#fbf7efeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;flex-direction:column;line-height:1.15;color:inherit;text-decoration:none}.brand strong{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.04em}.brand span{color:var(--muted);font-size:12px}.nav{display:flex;gap:6px;margin-left:12px}.nav a,.tabbar a{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:999px}.nav a.router-link-active,.tabbar a.router-link-active{color:var(--ink);background:#efe4d2}.who{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px}.main{width:min(920px,calc(100% - 32px));margin:28px auto 88px;flex:1}.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;background:var(--paper);border-top:1px solid var(--line);justify-content:space-around;padding:8px 6px calc(8px + env(safe-area-inset-bottom))}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.subject{padding:28px;cursor:pointer}.subject-title{color:inherit;text-decoration:none}.subject-title:hover{text-decoration:none}.eyebrow{margin:0 0 6px;color:var(--gold);letter-spacing:.14em;font-size:12px}h1,h2{font-family:var(--serif);font-weight:600;letter-spacing:.02em}h1{font-size:36px;margin:0 0 8px}h2{font-size:28px;margin:0 0 8px}.lede,.quiet{color:var(--muted)}.lede{margin:0 0 14px;max-width:46em}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.stats{margin-top:18px;color:var(--muted);font-size:14px}.btn{border:0;border-radius:999px;padding:11px 18px;background:var(--cinnabar);color:#fffaf6;min-height:44px}.btn:hover{background:var(--cinnabar-deep)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost,.btn.pine,.btn.line{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.pine{border-color:var(--pine);color:var(--pine)}.btn.line:hover,.btn.ghost:hover{background:#f3ecdf}.segment,.types{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:transparent;border-radius:14px;padding:12px 14px;min-width:120px;text-align:left}.chip small{display:block;color:var(--muted)}.chip.active{border-color:var(--cinnabar);background:#f8ece8}.chip:disabled{opacity:.45;cursor:not-allowed}.question{padding:26px}.kicker{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.stem{font-size:22px;line-height:1.55;margin:14px 0 18px}.choices{display:grid;gap:10px}.choice{text-align:left;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:14px 16px;min-height:52px}.choice.picked{border-color:var(--gold);background:var(--gold-soft)}.choice.right{border-color:var(--pine);background:var(--pine-soft)}.choice.wrong{border-color:var(--cinnabar);background:#f8ece8}.banner{margin-top:16px;padding:12px 14px;border-radius:12px}.banner.ok{background:var(--pine-soft);color:var(--pine)}.banner.bad{background:#f8ece8;color:var(--cinnabar-deep)}.explain{margin-top:12px;padding:12px 14px 12px 16px;border-left:3px solid var(--gold);background:#fbf6ec}.explain strong{display:block;margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{padding:16px}.metric b{display:block;font-family:var(--serif);font-size:28px;font-weight:600}.metric span{color:var(--muted);font-size:13px}.bar{height:8px;background:#efe6d6;border-radius:99px;overflow:hidden;margin-top:8px}.bar i{display:block;height:100%;background:var(--cinnabar)}.list{display:grid;gap:10px;margin-top:14px}.item{padding:14px 16px}.item header{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.tag{border-radius:99px;padding:2px 8px;background:#efe6d6}.tag.ok{background:var(--pine-soft);color:var(--pine)}.tag.bad{background:#f8ece8;color:var(--cinnabar-deep)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login{width:min(440px,100%);padding:28px}.password-field{position:relative}.password-field input{padding-right:44px}.password-toggle{position:absolute;top:0;right:0;bottom:0;width:44px;display:grid;place-items:center;border:0;background:transparent;color:#9ca3af;padding:0}.password-toggle:hover{color:#4b5563}.password-toggle svg{width:16px;height:16px}label{display:block;font-size:14px;margin:14px 0 6px}input[type=text],input[type=password],input[type=email],textarea,select{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:12px;padding:12px;min-height:44px}textarea{min-height:84px;resize:vertical}.check{display:flex;align-items:center;gap:8px;margin:12px 0}.check input{width:auto}.form-error{color:var(--cinnabar-deep);min-height:1.4em}.note{background:var(--gold-soft);border-radius:12px;padding:10px 12px;color:var(--gold);font-size:14px}.state{padding:28px 8px;color:var(--muted)}.drop{border:1px dashed var(--gold);border-radius:16px;padding:22px;background:#fffdf8;text-align:center}.review{display:grid;gap:12px;margin-top:16px}.warn{color:var(--gold);font-size:13px}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media(max-width:720px){.nav,.who span.desk{display:none}.tabbar{display:flex}.grid{grid-template-columns:1fr}h1{font-size:30px}.stem{font-size:20px}.main{width:min(920px,calc(100% - 20px));margin-top:16px}.topbar{padding:12px 14px}}
