:root{--bg: #f3f4f6;--surface: #ffffff;--surface-2: #f9fafb;--ink: #1f2937;--muted: #6b7280;--line: #e5e7eb;--line-strong: #d1d5db;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #eff6ff;--c1: #2563eb;--c1-bg: #eff6ff;--c1-border: #93c5fd;--c2: #059669;--c2-bg: #ecfdf5;--c2-border: #6ee7b7;--danger: #b91c1c;--row-2: #eff6ff;--row-1: #f0fdf4;--font-sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg)}a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--accent-hover)}.page{width:min(1200px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 3.5rem}.hero{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.brand{margin:0 0 .35rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.hero h1{margin:0;font-size:clamp(1.55rem,3vw,2.15rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;color:#111827}.lede{margin:.75rem 0 0;max-width:42rem;color:var(--muted);line-height:1.65;font-size:.95rem}.site-strip{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.site-chip{font:inherit;cursor:pointer;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.08rem;padding:.45rem .7rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:2px}.site-chip .site-name{font-weight:600;font-size:.88rem}.site-chip .site-date{font-family:var(--font-mono);font-size:.66rem;color:var(--muted)}.site-chip:hover{border-color:var(--line-strong);background:var(--surface-2)}.site-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.site-chip.active .site-date{color:#fffc}.site-chip.muted:not(.active){opacity:.55}.rule-note{margin:0 0 1rem;padding:.7rem .85rem;border:1px solid var(--c1-border);border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);font-size:.86rem;line-height:1.55}.rule-note strong{color:var(--ink);font-weight:600}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:end;padding:.95rem 1rem;border:1px solid var(--line);background:var(--surface);margin-bottom:.85rem;border-radius:2px}.field{display:grid;gap:.3rem;min-width:12rem}.field.grow{flex:1 1 16rem}.field span,.check{font-size:.76rem;color:var(--muted)}.field select,.field input{font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);padding:.5rem .65rem;outline:none;border-radius:2px}.field select:focus,.field input:focus{border-color:#9ca3af;background:#fff}.check{display:inline-flex;align-items:center;gap:.4rem;padding-bottom:.5rem;-webkit-user-select:none;user-select:none}.btn{font:inherit;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600;padding:.5rem 1rem;margin-bottom:.05rem;border-radius:2px}.btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.linkish{background:#fff;color:var(--accent);border:1px solid var(--line-strong);margin-left:.75rem}.text-btn{font:inherit;cursor:pointer;border:0;background:none;color:var(--accent);padding:0;text-decoration:underline;text-underline-offset:2px}.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.meta-card{border:1px solid var(--line);background:var(--surface);padding:.95rem 1rem;border-radius:2px}.meta-card.accent{background:var(--accent-soft);border-color:var(--c1-border)}.meta-card h2{margin:0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}.meta-title{margin:.4rem 0 .45rem;font-size:.95rem;font-weight:600;line-height:1.35}.meta-card p{margin:.2rem 0;font-size:.88rem}.dim{color:var(--muted)}.small{font-size:.8em}.stats{font-family:var(--font-mono);font-size:.8rem!important;margin-top:.5rem!important;color:var(--muted)}.phase{display:inline-block;font-family:var(--font-mono);font-size:.72rem;padding:.12rem .4rem;margin-right:.5rem;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.phase-进行中,.phase-封榜中{border-color:var(--c1-border);background:var(--c1-bg);color:var(--c1);font-weight:600}.phase-已结束{color:var(--muted)}.status{padding:1.25rem 0;color:var(--muted)}.status.error{color:var(--danger)}.table-wrap{overflow:auto;border:1px solid var(--line);background:var(--surface);border-radius:2px}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:.6rem .7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{position:sticky;top:0;z-index:1;background:var(--surface-2);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-weight:500;white-space:nowrap;border-bottom:1px solid var(--line-strong)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.school{font-weight:600;white-space:nowrap}.team{max-width:16rem}.quota{font-weight:600}.row-2{background:var(--row-2)}.row-1{background:var(--row-1)}.tag{font-family:var(--font-mono);font-size:.7rem;padding:.12rem .4rem;border:1px solid transparent;white-space:nowrap;border-radius:2px;font-weight:500}.tag-C1{color:var(--c1);background:var(--c1-bg);border-color:var(--c1-border)}.tag-C2{color:var(--c2);background:var(--c2-bg);border-color:var(--c2-border)}.foot{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;line-height:1.6}.foot p{margin:.3rem 0}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1.25rem;background:#11182773}.modal{width:min(420px,100%);background:var(--surface);border:1px solid var(--line-strong);padding:1.35rem 1.4rem 1.25rem;border-radius:2px;box-shadow:0 12px 40px #1118271f}.modal h2{margin:0 0 .75rem;font-size:1.15rem;color:#111827}.modal p{margin:0 0 .75rem;color:var(--ink);line-height:1.65;font-size:.95rem}.modal-sub{color:var(--muted)!important;font-size:.86rem!important}.modal .btn{width:100%;margin-top:.35rem;margin-bottom:0}@media(max-width:900px){.meta-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.check{padding-bottom:0}}
