:root{--bg:#f4f6f8;--ink:#14202b;--blue:#075fa8;--line:#d5dde5;--ok:#167c42}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px system-ui,Segoe UI,sans-serif}
header{background:#fff;border-bottom:3px solid var(--blue);padding:14px 22px}h1{margin:0 0 12px;font-size:1.5rem}
nav{display:flex;gap:8px;flex-wrap:wrap}nav a{color:#fff;background:var(--blue);padding:8px 11px;border-radius:5px;text-decoration:none}
.external-links{display:flex;gap:18px;margin:0 0 12px}.external-links a{color:var(--blue);font-weight:700}
main{padding:18px 22px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}.toolbar input,.toolbar select{padding:9px;min-width:190px}
.tablebox{max-height:68vh;overflow:auto;background:#fff;border:1px solid var(--line)}table{width:100%;border-collapse:collapse}
th{position:sticky;top:0;background:#e8f1f8;z-index:1}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line);white-space:nowrap}
th{cursor:pointer;user-select:none}th.sort-asc::after{content:' ▲';font-size:.75em}th.sort-desc::after{content:' ▼';font-size:.75em}
tbody tr:first-child{background:#f0fff5}.history{font-size:1.2rem;text-decoration:none}.empty{padding:25px;text-align:center;color:#667}
.badge{padding:3px 7px;border-radius:10px;background:#e6eef5}.yes{color:var(--ok);font-weight:700}footer{padding:14px 22px;color:#667}
@media(max-width:700px){main{padding:12px}.tablebox{max-height:72vh}th,td{padding:7px;font-size:.9rem}}
.loginbox{max-width:520px;margin:40px auto;padding:24px;background:#fff;border:1px solid var(--line);border-radius:7px}
.loginbox label{display:grid;gap:8px}.loginbox input{padding:10px}.loginbox button{margin-top:16px;padding:10px 18px}
.admin-error{color:#a11515;font-weight:700}.admin-note{color:#667}.admin-table{max-height:58vh}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px;margin:0 0 16px}
.metrics div{background:#fff;border:1px solid var(--line);border-radius:6px;padding:11px;text-align:center}
.metrics strong{display:block;font-size:1.35rem;color:var(--blue)}.metrics span{display:block;color:#52606d;text-transform:capitalize}
.contest-ended{background:#fff;border:2px solid var(--blue);border-radius:7px;padding:28px;text-align:center;font-size:1.3rem;font-weight:700}
.archive-zone{background:#fff;border:1px solid var(--line);border-radius:7px;padding:16px;margin-bottom:20px}.archive-zone h3{margin-top:0}
.record-count{margin:8px 0 6px;color:#465563;font-weight:700}
