:root{--bg:#faf7f0;--surface:#fff;--ink:#17181d;--muted:#5c606c;--soft:#8a8e99;--line:#e9e4d8;--amber:#ebab00;--amber-ink:#a86f00;--amber-soft:#fff4d6;--good:#1f9d55;--good-soft:#e3f6ea;--mid:#c88a00;--bad:#d64545;--bad-soft:#fde8e8;--blue:#1f7fd1;--radius:16px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font:15.5px/1.55 Nunito,system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3{font-family:Fredoka,Nunito,sans-serif;font-weight:600;line-height:1.2}h1{font-size:30px}h2{font-size:21px}h3{font-size:17px}a{color:var(--amber-ink)}button,input,select{font:inherit}.wrap{max-width:1100px;margin:0 auto;padding:0 20px}.muted{color:var(--muted)}.soft{color:var(--soft);font-size:13.5px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.stack>*+*{margin-top:14px}.topbar{background:var(--surface);border-bottom:1px solid var(--line)}.topbar .wrap{align-items:center;gap:16px;height:62px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;font:600 20px Fredoka,sans-serif;text-decoration:none;display:flex}.brand img{border-radius:8px;width:30px;height:30px}.brand small{color:var(--amber-ink);letter-spacing:.08em;text-transform:uppercase;font:700 12px Nunito,sans-serif}main{padding:32px 0 64px}.btn{cursor:pointer;white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font-size:14.5px;font-weight:800;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--amber);color:#15130b}.btn-primary:hover:not(:disabled){background:#ffbf1a}.btn-ghost{color:var(--ink);border:1.5px solid var(--line);background:0 0}.btn-ghost:hover:not(:disabled){border-color:#cfc7b4}.btn-link{color:var(--amber-ink);cursor:pointer;background:0 0;border:0;padding:0;font-weight:800}.btn:focus-visible,.btn-link:focus-visible,input:focus-visible,select:focus-visible,.tab:focus-visible,.card-link:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.card-link{color:inherit;text-decoration:none;transition:border-color .15s,transform .15s;display:block}.card-link:hover{border-color:var(--amber);transform:translateY(-1px)}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.stat .label{letter-spacing:.06em;text-transform:uppercase;color:var(--soft);font-size:12.5px;font-weight:800}.stat .value{margin-top:6px;font:600 30px/1.1 Fredoka,sans-serif}.field{gap:6px;display:grid}.field label{font-size:13.5px;font-weight:800}.field input,.field select{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:11px 13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--amber);outline:none}.field textarea{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;resize:vertical;border-radius:12px;min-height:140px;padding:11px 13px;line-height:1.5}.field .label{font-size:13.5px;font-weight:800}.segmented{flex-wrap:wrap;gap:8px;display:flex}.segmented button{border:1.5px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:8px 16px;font-weight:800}.segmented button[aria-checked=true]{background:var(--amber);border-color:var(--amber);color:#15130b}.segmented button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.narrow{max-width:680px}.show-small{display:none}.check{color:var(--muted);align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:17px;height:17px;accent-color:var(--amber);margin-top:4px}.error{color:var(--bad);font-size:14px;font-weight:700}.code-input{letter-spacing:10px;text-align:center;font:600 30px Fredoka,sans-serif!important}.auth{place-items:center;min-height:100vh;padding:24px;display:grid}.auth .card{width:100%;max-width:440px;padding:32px}.auth h1{margin:18px 0 6px;font-size:26px}.tabs{border-bottom:1px solid var(--line);gap:6px;margin:26px 0 22px;display:flex;overflow-x:auto}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 14px;font-weight:800}.tab[aria-selected=true]{color:var(--ink);border-color:var(--amber)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14.5px}th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px;font-weight:800}td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#fffaf0}.pct{text-align:center;border-radius:999px;min-width:54px;padding:3px 10px;font-size:13.5px;font-weight:800;display:inline-block}.pct.good{background:var(--good-soft);color:var(--good)}.pct.mid{background:var(--amber-soft);color:var(--amber-ink)}.pct.bad{background:var(--bad-soft);color:var(--bad)}.pct.none{color:var(--soft);background:#f1efe9}.bars{align-items:flex-end;gap:10px;height:150px;display:flex}.bars .bar{height:100%;color:var(--soft);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;font-size:12px;display:flex}.bars .fill{background:var(--amber);border-radius:6px 6px 0 0;width:100%;max-width:46px}.tag{color:var(--muted);background:#f1efe9;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-block}.names{color:var(--muted);font-size:13.5px}.code-chip{letter-spacing:4px;background:var(--amber-soft);border:1.5px dashed var(--amber);border-radius:12px;padding:6px 14px;font:600 22px Fredoka,sans-serif}.empty{text-align:center;padding:40px 20px}.notice{background:var(--amber-soft);border-radius:12px;padding:14px 16px;font-size:14px}.poster{border:1px solid var(--line);text-align:center;background:#fff;border-radius:24px;max-width:720px;margin:0 auto;padding:48px}.poster h1{margin:18px 0 8px;font-size:34px}.poster .big-code{letter-spacing:10px;margin:18px 0;font:600 54px Fredoka,sans-serif}.poster ol{text-align:left;gap:10px;max-width:470px;margin:24px auto 0;font-size:16.5px;display:grid}.poster canvas{margin:8px auto;display:block}@media (width<=560px){.hide-small{display:none}.show-small{display:inline}.brand small{display:none}.topbar .wrap{gap:12px}}@media print{body{background:#fff}.topbar,.no-print{display:none!important}main{padding:0}.poster{border:0}.card{break-inside:avoid}}
