:root{--bg: #f1f6fb;--fg: #12151a;--muted: rgba(18, 21, 26, .62);--card: #ffffff;--border: rgba(18, 21, 26, .14);--accent: #0a7c2f;--ok: #1a7f37;--bad: #d1242f;font-family:ui-sans-serif,ui-rounded,system-ui,sans-serif;line-height:1.5;color:var(--fg);background:var(--bg);font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:color-mix(in oklab,var(--fg) 88%,var(--accent));text-decoration:inherit}a:hover{color:var(--accent)}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(900px 520px at 12% 8%,rgba(10,124,47,.18),transparent 55%),radial-gradient(860px 540px at 90% 18%,rgba(31,111,235,.14),transparent 56%),linear-gradient(180deg,rgba(255,255,255,.75),transparent 60%),var(--bg)}h1{margin:0}.page{width:min(1100px,100%);margin:0 auto;padding:28px 18px 48px}.header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.header h1{margin:0;letter-spacing:-.02em;font-size:34px;line-height:1.1}.meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:1fr;gap:14px}.nav{display:flex;gap:8px;align-items:center;margin:10px 0 16px}.spacer{flex:1}.tab{border:1px solid var(--border);border-radius:999px;padding:8px 12px;background:#ffffffa6;cursor:pointer;font-weight:700;letter-spacing:.02em}.tab.active{border-color:color-mix(in oklab,var(--accent) 35%,var(--border));background:color-mix(in oklab,var(--accent) 12%,white)}@media(min-width:860px){.grid{grid-template-columns:1fr 1fr}}.card{border:1px solid var(--border);background:color-mix(in oklab,var(--card) 82%,transparent);border-radius:14px;padding:14px;box-shadow:0 12px 28px #00000014}.card h2{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill{border-radius:999px;border:1px solid var(--border);padding:6px 10px;font-size:13px;background:#ffffff8c}.pill.ok{border-color:color-mix(in oklab,var(--ok) 30%,var(--border))}.pill.bad{border-color:color-mix(in oklab,var(--bad) 30%,var(--border))}.btn{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff;cursor:pointer;font-weight:600}.btn.primary{border-color:color-mix(in oklab,var(--accent) 35%,var(--border));background:color-mix(in oklab,var(--accent) 12%,white)}.btn:disabled{cursor:not-allowed;opacity:.7}.select,.input{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fffc;color:var(--fg);font-size:14px}.listItem{width:100%;text-align:left;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff9;cursor:pointer;display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.listItem.active{border-color:color-mix(in oklab,var(--accent) 35%,var(--border))}.listItem .title{font-weight:800;letter-spacing:-.01em}.listItem .meta{color:var(--muted);font-size:13px;display:block}.bookRow{display:flex;align-items:center;gap:10px}.bookText{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.coverSm{width:44px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:#ffffff8c;flex:0 0 auto}.coverSm.placeholder{background:#0000000f}.coverLg{width:128px;height:180px;object-fit:cover;border-radius:12px;border:1px solid var(--border);background:#ffffff8c}.attempt{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:10px;border:1px solid var(--border);border-radius:14px;background:#ffffff8c;margin-bottom:10px}.thumb{width:110px;height:140px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:#0000000f}.attemptBody{min-width:0}.out{margin-top:10px;border:1px solid var(--border);border-radius:10px;background:#0000000f;padding:10px;overflow:auto;max-height:320px;font-size:12px}.footer{margin-top:14px;color:var(--muted);font-size:13px}.footer a{color:inherit}.kpiGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:8px}.kpi{border:1px dashed color-mix(in oklab,var(--border) 85%,transparent);border-radius:14px;padding:12px;background:#ffffff8c;box-shadow:0 10px 20px #0000000f}.kpi .k{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.kpi .v{margin-top:6px;font-size:20px;font-weight:800;letter-spacing:-.02em}.kpi .s{margin-top:6px;font-size:13px;color:var(--muted)}
