:root{--bg: #f6f5f2;--surface: #ffffff;--surface-2: #f0eeea;--text: #1c1b19;--text-dim: #6b6862;--border: #e0ddd6;--accent: #2f6df6;--accent-text: #ffffff;--ok: #1a8a4a;--bad: #c4362f;--warn-bg: #fff4e0;--warn-border: #f0c98a;--warn-text: #7a5210;--radius: 14px;--shadow: 0 1px 2px rgb(0 0 0 / 6%), 0 6px 20px rgb(0 0 0 / 5%)}@media(prefers-color-scheme:dark){:root{--bg: #17181c;--surface: #21232a;--surface-2: #2a2d35;--text: #ecebe8;--text-dim: #9c9a94;--border: #33363f;--accent: #5b8dff;--accent-text: #0d1017;--ok: #4ec27f;--bad: #ff7a72;--warn-bg: #33291a;--warn-border: #6b5528;--warn-text: #e8c891;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 6px 20px rgb(0 0 0 / 25%)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%}.app-shell{max-width:680px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.brand{font-weight:700;font-size:17px;letter-spacing:.02em}.topbar nav{display:flex;gap:14px;font-size:14px}.topbar nav a{color:var(--text-dim);text-decoration:none}.topbar nav a.active{color:var(--text);font-weight:600}.spacer{flex:1}.page{flex:1;padding:18px;padding-bottom:calc(140px + env(safe-area-inset-bottom))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);margin-bottom:14px}.card h1{font-size:20px;margin:0 0 6px;line-height:1.35}.card h2{font-size:16px;margin:0 0 10px}.card .intro{color:var(--text-dim);font-size:14px;margin:0 0 4px;white-space:pre-wrap}.set-link{display:block;text-decoration:none;color:inherit;transition:border-color .15s ease}.set-link:hover{border-color:var(--accent)}.set-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text-dim)}label{display:block;font-size:14px;color:var(--text-dim);margin-bottom:6px}input[type=text],input[type=password],textarea,select{width:100%;padding:12px 14px;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;outline:none}input[type=text]:focus,input[type=password]:focus,textarea:focus,select:focus{border-color:var(--accent)}input:disabled,textarea:disabled{opacity:.5}textarea{resize:vertical;min-height:96px;line-height:1.55}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:11px 18px;font:inherit;font-weight:600;color:var(--accent-text);background:var(--accent);border:1px solid transparent;border-radius:10px;cursor:pointer}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{color:var(--text);background:var(--surface-2);border-color:var(--border)}.btn.danger{color:var(--bad);background:transparent;border-color:var(--border)}.btn.block{width:100%}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.submit-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border)}.submit-bar-inner{max-width:680px;margin:0 auto}.question{margin-bottom:22px}.question-prompt{font-weight:600;margin:0 0 10px;display:flex;gap:8px;align-items:baseline}.question-index{color:var(--text-dim);font-size:13px;font-weight:500;flex-shrink:0}.choice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:8px;min-height:44px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;cursor:pointer}.choice input{margin:4px 0 0;flex-shrink:0}.choice.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}.switch-row{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-row input{width:20px;height:20px;flex-shrink:0}.switch-label{font-size:15px;color:var(--text)}.switch-hint{font-size:13px;color:var(--text-dim);margin:2px 0 0}.notice{padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:14px}.notice.warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text)}.notice.error{background:color-mix(in srgb,var(--bad) 12%,var(--surface));border:1px solid var(--bad);color:var(--bad)}.dim{color:var(--text-dim);font-size:14px}.empty{text-align:center;color:var(--text-dim);padding:48px 18px;font-size:15px}.grade{text-align:center;padding:8px 0 18px}.grade .score{font-size:44px;font-weight:700;line-height:1.1}.grade .score small{font-size:18px;font-weight:500;color:var(--text-dim)}.answer-line{display:flex;gap:8px;align-items:baseline;padding:8px 0;font-size:14px;border-top:1px solid var(--border)}.answer-line .mark{flex-shrink:0;font-weight:700}.mark.ok{color:var(--ok)}.mark.bad{color:var(--bad)}.inbox-item{border-top:1px solid var(--border);padding:14px 0}.inbox-item:first-child{border-top:none}.inbox-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim)}.tag.anon{color:var(--text-dim);font-style:italic}.qa{margin-bottom:10px;font-size:14px}.qa .q{color:var(--text-dim);font-size:13px;margin-bottom:2px}.qa .a{white-space:pre-wrap;word-break:break-word}.leader-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.leader-row:first-child{border-top:none}.leader-rank{width:24px;text-align:center;color:var(--text-dim);font-size:13px;flex-shrink:0}.leader-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-score{font-weight:700}.qr-box{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0}.qr-box img{width:180px;height:180px;image-rendering:pixelated;background:#fff;padding:8px;border-radius:10px}.link-box{font-size:13px;word-break:break-all;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:10px}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.stack>*+*{margin-top:12px}
