:root{--bg:#f7f7f8;--surface:#fff;--surface-hover:#f4f4f5;--bg-alt:#f4f4f5;--text:#09090b;--text-muted:#71717a;--text-strong:#09090b;--border:#e4e4e7;--border-strong:#d4d4d8;--ring:#7c3aed38;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-contrast:#fff;--accent-soft:#7c3aed14;--danger:#dc2626;--danger-soft:#dc26261a;--success:#16a34a;--success-soft:#16a34a1f;--shadow-sm:0 1px 2px 0 #0000000a;--shadow:0 1px 3px 0 #0000000f, 0 1px 2px -1px #0000000d;--radius:12px;--radius-sm:8px;--radius-btn:6px;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tex-color:#7c3aed;--tex-bg-header:#7c3aed24;--tev-color:#db2777;--tev-bg-header:#db27771f;--pev-color:#1d4ed8;--pev-bg-header:#1d4ed824;--total-color:#b45309;--total-bg-header:#b4530924;--deduction-color:#db2777;--deduction-bg-header:#db27771f;font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--bg:#0b0b0f;--surface:#16161d;--surface-hover:#1e1e28;--bg-alt:#1e1e28;--text:#f4f4f5;--text-muted:#a1a1aa;--text-strong:#fafafa;--border:#2a2a35;--border-strong:#3a3a48;--ring:#a78bfa4d;--accent:#a78bfa;--accent-hover:#c4b5fd;--accent-contrast:#16161d;--accent-soft:#a78bfa1f;--danger:#f87171;--danger-soft:#f871711f;--success:#4ade80;--success-soft:#4ade801f;--shadow-sm:0 1px 2px 0 #0006;--shadow:0 1px 3px 0 #0006, 0 1px 2px -1px #0000004d;--tex-color:#c4b5fd;--tex-bg-header:#c4b5fd2e;--tev-color:#f9a8d4;--tev-bg-header:#f9a8d429;--pev-color:#93c5fd;--pev-bg-header:#93c5fd2e;--total-color:#fcd34d;--total-bg-header:#fcd34d2e;--deduction-color:#f9a8d4;--deduction-bg-header:#f9a8d429;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{overscroll-behavior-x:contain}body{background:var(--bg);overscroll-behavior-x:contain;margin:0}#app{max-width:1120px;margin:0 auto;padding:0 20px 56px}h1,h2,h3,h4{color:var(--text-strong);letter-spacing:-.015em;line-height:1.25}h1{font-size:1.5rem;font-weight:600}h2{font-size:1.125rem;font-weight:600}h3{font-size:.95rem;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}.app-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:28px;padding:18px 0;display:flex}.app-nav .brand{color:var(--text-strong);letter-spacing:-.01em;font-size:.95rem;font-weight:700;text-decoration:none}.app-nav .user{color:var(--text-muted);align-items:center;gap:12px;font-size:.85rem;display:flex}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-btn);color:var(--text);padding:7px 12px;font-size:.875rem;font-weight:500;line-height:1.25;transition:background .15s,border-color .15s,color .15s}button:hover{background:var(--surface-hover);border-color:var(--border-strong)}button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger);border-color:var(--border);background:var(--surface)}button.danger:hover{background:var(--danger-soft);border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=email],input[type=number],input[type=password],input[type=search],select,textarea{border:1px solid var(--border);border-radius:var(--radius-btn);color:var(--text);background:var(--surface);padding:7px 10px;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:none}input::placeholder{color:var(--text-muted)}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}th{background:var(--bg-alt);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:20px 24px;overflow-x:auto}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-muted);font-size:.8rem;font-weight:500}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.muted{color:var(--text-muted);font-size:.875rem}.badge{background:var(--bg-alt);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:.72rem;font-weight:500;display:inline-flex}.badge-year{background:var(--accent-soft);color:var(--accent);letter-spacing:.01em;border:1px solid #0000;border-radius:999px;align-items:center;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.error{color:var(--danger);font-size:.85rem}.save-status{letter-spacing:.01em;border-radius:999px;align-items:center;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-flex}.save-status--saved{color:var(--success);background:var(--success-soft)}.save-status--pending{color:var(--danger);background:var(--danger-soft)}.save-status--idle{color:var(--text-muted);background:var(--bg-alt)}.no-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spinner[type=number]{-moz-appearance:textfield}.score-input-wrap{vertical-align:middle;align-items:stretch;display:inline-flex}.score-input-wrap .score-input{text-align:center;font-variant-numeric:tabular-nums;border-right-width:0;border-top-right-radius:0;border-bottom-right-radius:0;padding:6px 8px;font-size:.95rem}.score-input-wrap .score-input:focus{box-shadow:inset 0 0 0 2px var(--ring);border-right-width:0}.score-steppers{border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--surface);border-top-left-radius:0;border-bottom-left-radius:0;flex-direction:column;display:flex;overflow:hidden}.score-step{background:var(--surface);min-width:22px;height:50%;color:var(--text-muted);cursor:pointer;border:0;border-radius:0;padding:0 6px;font-size:8px;line-height:1;transition:background .12s,color .12s}.score-step+.score-step{border-top:1px solid var(--border)}.score-step:hover:not(:disabled){background:var(--surface-hover);color:var(--text-strong)}.score-step:disabled{opacity:.5;cursor:not-allowed}.score-input-wrap.is-disabled .score-input,.score-input-wrap.is-disabled .score-steppers{opacity:.6}.score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.save-status-bar{text-align:right;margin:8px 0 12px}th.col-tex{color:var(--tex-color);background:var(--tex-bg-header)}th.col-tev{color:var(--tev-color);background:var(--tev-bg-header)}th.col-pev{color:var(--pev-color);background:var(--pev-bg-header)}th.col-total{color:var(--total-color);background:var(--total-bg-header)}th.col-deduction{color:var(--deduction-color);background:var(--deduction-bg-header)}@media (width<=720px){#app{padding:0 14px 40px}.card{border-radius:10px;padding:16px}.app-nav{margin-bottom:20px;padding:14px 0}h1{font-size:1.35rem}h2{font-size:1.05rem}th,td{padding:8px 10px;font-size:.85rem}button{padding:8px 12px}}.plain-pill{letter-spacing:.01em;background:var(--bg-alt);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;align-items:center;padding:2px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.pill-stage{letter-spacing:.01em;border-radius:999px;align-items:center;padding:2px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.pill-stage.prelim{color:#2563eb;background:#3b82f61f}.pill-stage.final{background:var(--accent-soft);color:var(--accent)}:root[data-theme=dark] .pill-stage.prelim{color:#93c5fd;background:#93c5fd2e}.contest-card{margin-bottom:12px;padding:16px 20px}.contest-head{cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.contest-head .caret{color:var(--text-muted);text-align:center;width:12px;transition:transform .15s;display:inline-block}.contest-card.is-open .contest-head .caret{transform:rotate(90deg)}.contest-head .info{flex:1;min-width:0}.contest-head .title{flex-wrap:wrap;align-items:center;gap:8px;font-size:1.02rem;font-weight:600;display:flex}.contest-head .meta{color:var(--text-muted);margin-top:2px;font-size:.82rem}.contest-head-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.contest-body{border-top:1px solid var(--border);margin-top:14px;padding-top:14px;display:none}.contest-card.is-open .contest-body{display:block}.division-stage-block{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:16px;padding:14px 0;display:grid}.division-stage-block:last-child{border-bottom:none}.dsb-title{align-items:center;gap:8px;margin-bottom:8px;display:flex}.dsb-title .div-name{font-size:.95rem;font-weight:600}@media (width<=640px){.division-stage-block{grid-template-columns:1fr;gap:10px}}.top3-mini{border-collapse:collapse;width:100%;font-size:.85rem}.top3-mini th,.top3-mini td{text-align:left;vertical-align:middle;background:0 0;border:none;padding:3px 8px}.top3-mini thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);padding-bottom:4px;font-size:.66rem;font-weight:600}.top3-mini tbody td{padding-top:4px;padding-bottom:4px}.top3-mini td.rank-cell{width:24px;padding-right:0}.top3-mini th.score-hd,.top3-mini td.score-cell{text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}.rank-badge{background:var(--bg-alt);width:20px;height:20px;color:var(--text-muted);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex}.rank-badge.gold{color:#92400e;background:#fef3c7}.rank-badge.silver{color:#374151;background:#e5e7eb}.rank-badge.bronze{color:#9a3412;background:#fed7aa}.no-results{color:var(--text-muted);font-size:.82rem;font-style:italic}.new-contest{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:22px;padding:14px 18px;display:flex}.new-contest input[type=text]{flex:1;min-width:220px}.new-contest .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:700}th:empty:last-child{white-space:nowrap;width:1px}td:has(>button.danger:only-child){text-align:right;white-space:nowrap;width:1px}button.icon-only,button.chrome-btn{justify-content:center;align-items:center;width:34px;height:34px;padding:0;line-height:1;display:inline-flex}button.icon-only svg,button.chrome-btn svg{flex:none}button.icon-only.danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.workspace-crumb{color:var(--text-muted);margin-top:4px;font-size:.85rem;display:inline-block}.workspace-crumb:hover{color:var(--text);text-decoration:none}.tabs-bar{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;margin:16px -20px 20px;padding:0 20px;position:sticky;top:0}.tabs-inner{gap:0;max-width:1120px;margin:0 auto -1px;display:flex;overflow:auto hidden}.tab{color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;padding:14px 18px;font-size:.9rem;font-weight:500;text-decoration:none}.tab:hover{color:var(--text);text-decoration:none}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tab-disabled{opacity:.4;cursor:not-allowed}
