:root{--bg:#f6f6f4;--panel:#fff;--text:#1c1c1a;--muted:#6b6b66;--line:#deded8;--accent:#5b2a86;--warn-bg:#fff4d6;--warn-text:#6b4e00;--error-bg:#fde4e1;--error-text:#8c1d18}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:960px;margin:0 auto;padding:16px}h1{margin:0 0 12px;font-size:1.5rem}h2{margin:20px 0 8px;font-size:1.2rem}nav.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}nav.tabs button{background:var(--panel);color:var(--text)}nav.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}button{border:1px solid var(--line);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:6px;padding:8px 12px}button.secondary{background:var(--panel);color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=email],input[type=password],input[type=search],select{border:1px solid var(--line);width:100%;max-width:420px;color:var(--text);font:inherit;background:#fff;border-radius:6px;padding:8px}label{margin:10px 0;display:block}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.muted{color:var(--muted);font-size:.9rem}.badge{background:var(--warn-bg);color:var(--warn-text);border-radius:4px;padding:1px 6px;font-size:.8rem}.notice{background:var(--warn-bg);color:var(--warn-text);border-radius:6px;margin:10px 0;padding:8px 12px}.error{background:var(--error-bg);color:var(--error-text);border-radius:6px;margin:10px 0;padding:8px 12px}.table-wrap{overflow-x:auto}.manual-entry input[type=text]{min-width:3.5rem;padding:4px}.manual-entry .wide input[type=text]{min-width:9rem}.manual-entry summary{cursor:pointer;margin:16px 0 10px;font-weight:600}table{border-collapse:collapse;background:var(--panel);width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:6px 8px}td.num,th.num{text-align:right}.bracket{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.bracket h3{margin:0 0 8px;font-size:1rem}.slot{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin-bottom:8px;padding:8px}.slot .winner{font-weight:700}@media (width<=640px){.bracket{grid-template-columns:1fr}}@media print{nav.tabs,button,input{display:none}body{background:#fff}}
