:root{font:16px system-ui,sans-serif;color:#152b3c;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}main{max-width:1100px;margin:36px auto;padding:28px;background:white;border:1px solid #d6e0e7;border-radius:12px}.login{max-width:440px;margin-top:10vh}h1{font-size:1.8rem}h2{font-size:1.25rem}label{display:block;margin:16px 0}input,select,button{font:inherit;padding:9px;border:1px solid #8eabbc;border-radius:5px}label input{display:block;width:100%;margin-top:6px}button{background:#145c82;color:white;cursor:pointer}a{color:#145c82}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.toolbar form{margin:0}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:12px;border-bottom:1px solid #d6e0e7}.error{padding:12px;background:#fff0ef;color:#8b241d}.notice{padding:12px;background:#e7f6ec}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.formgrid label{margin:0}.actions{margin-top:20px;display:flex;gap:16px;align-items:center}@media(max-width:650px){main{margin:12px;padding:16px}.formgrid{grid-template-columns:1fr}table{font-size:14px}}

.page-heading{margin:28px 0 18px}.page-heading h1{margin:6px 0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#547487}.muted{color:#567080;line-height:1.6}.subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.subnav a{padding:8px 14px;border:1px solid #d6e0e7;border-radius:20px;text-decoration:none}.subnav a[aria-current=page]{color:white;background:#145c82;border-color:#145c82}.settings-card{padding:22px;margin:16px 0;border:1px solid #d6e0e7;border-radius:9px;background:#fbfdfe}.settings-card h2{margin:0 0 18px}.settings-card label select,.formgrid select{display:block;width:100%;margin-top:6px}.settings-row{display:flex;align-items:end;gap:20px}.settings-row label{margin:0;flex:1}.settings-row input[type=color]{height:44px;width:100%;min-width:90px;max-width:160px;padding:4px}.settings-row label:has(input[type=color]){flex:0 0 140px}.settings-row .check-label{display:flex;gap:8px;align-items:center;padding-bottom:10px}.settings-row .check-label input{width:auto;margin:0}.settings-row button{margin-bottom:0}.settings-form .actions{position:sticky;bottom:0;background:white;padding:16px 0;border-top:1px solid #d6e0e7}.settings-form input[type=color]{height:44px;padding:4px}.empty-state{padding:18px;border:1px dashed #bcced9;border-radius:8px;color:#567080}summary{font-weight:600;cursor:pointer;padding:2px 0 8px}details[open] summary{margin-bottom:16px}button:hover{background:#0b4564}@media(max-width:650px){.settings-row{align-items:stretch;flex-direction:column;gap:14px}.settings-row label:has(input[type=color]){flex:auto}.settings-card{padding:16px}.settings-row input[type=color]{max-width:none}.toolbar{align-items:flex-start;flex-direction:column}}

.class-list{display:flex;flex-wrap:wrap;gap:8px}.class-list span{display:inline-block;padding:5px 10px;background:#edf4f7;border-radius:12px}.settings-row label:has(select){flex:0 1 300px}.settings-row select{display:block;width:100%;margin-top:6px}.settings-card input[type=file]{max-width:100%}@media(max-width:650px){.settings-row label:has(select){flex:auto}}

.team-list{display:grid;gap:1px}.team-row,.team-columns{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,270px) 96px;align-items:center;gap:8px}.team-columns{font-size:13px;font-weight:600;padding:0 8px 6px;color:#547487}.team-row{margin:0;padding:6px 8px;border:1px solid #bac9d4;border-radius:4px}.team-row label{margin:0;min-width:0}.team-row label>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.team-row input,.team-row select,.team-row button{font-size:14px;height:32px;margin:0;padding:5px 8px;width:100%}.team-row input,.team-row select{display:block;background:rgba(255,255,255,.94);color:#152b3c;border-color:#829aa9}.team-row button{padding:5px 4px}.team-row button.danger{background:#a52d32;border-color:#87242a;color:white}.team-row button.danger:hover{background:#842027}@media(max-width:650px){.team-row,.team-columns{grid-template-columns:minmax(100px,1fr) minmax(100px,1fr) 76px;gap:5px}.team-row{padding:5px}.team-row input,.team-row select,.team-row button{font-size:12px;padding:4px}.team-columns{font-size:12px}}

/* Preserve the legacy photo path and rank field in the compact team editor. */
.team-row,.team-columns{grid-template-columns:minmax(140px,1fr) minmax(140px,210px) 80px 72px 86px}.team-photo{display:flex;gap:5px;align-items:center;min-width:0}.team-photo img{display:block;width:40px;height:30px;object-fit:cover;border-radius:3px}.team-photo label{flex:1;overflow:hidden}.team-photo input[type=file]{padding:3px;font-size:11px}.team-list{overflow-x:auto}.team-row,.team-columns{min-width:800px}@media(max-width:850px){.team-columns{display:none}.team-row{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) 64px 86px;min-width:0}.team-photo{grid-column:1/3;grid-row:2}.team-row>label:has(select[name=rank]){grid-column:3;grid-row:1}.team-row>button{grid-column:4;grid-row:1}}

.team-photo label.photo-upload{position:relative;flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;overflow:hidden;border:1px solid #829aa9;border-radius:4px;background:rgba(255,255,255,.94);color:#145c82;cursor:pointer}.photo-upload svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.team-photo .photo-upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.photo-upload:focus-within{outline:2px solid #145c82;outline-offset:2px}.photo-upload.has-file{background:#d6efd9}.team-row.saved-flash{animation:team-saved 1.3s ease-out}@keyframes team-saved{0%,45%{background-color:#5cda80;border-color:#248341}100%{border-color:#bac9d4}}@media(prefers-reduced-motion:reduce){.team-row.saved-flash{animation-duration:2s}}

.team-columns button{border:0;padding:0;background:none;color:#145c82;text-align:left;font-size:13px;font-weight:600;cursor:pointer}.team-columns button:hover{text-decoration:underline}.team-columns button:focus-visible{outline:2px solid #145c82;outline-offset:3px}.team-photo-preview{position:fixed;z-index:1000;padding:6px;border:1px solid #8eabbc;border-radius:6px;background:white;box-shadow:0 6px 24px #152b3c44;pointer-events:none}.team-photo-preview[hidden]{display:none}.team-photo-preview img{display:block;width:100%;max-height:min(278px,calc(100vh - 36px));object-fit:contain}@media(max-width:850px){.team-columns{display:grid;grid-template-columns:1fr 1fr;min-width:0}.team-columns>span{display:none}}

.settings-card textarea{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #8eabbc;border-radius:5px;font:inherit;resize:vertical}.settings-card .formgrid select{max-width:100%}.event-save{margin:18px 0 28px}.event-tools{display:grid;grid-template-columns:1fr 1fr;gap:28px}.event-tools p{margin-top:0;color:#567080;line-height:1.6}.event-reset{padding-left:24px;border-left:1px solid #d6e0e7}.reset-check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5}.reset-check input{width:auto;flex:0 0 auto;margin:4px 0}.event-tools .danger{background:#a52d32;border-color:#87242a}@media(max-width:650px){.event-tools{grid-template-columns:1fr;gap:20px}.event-reset{padding:20px 0 0;border-left:0;border-top:1px solid #d6e0e7}}

.sponsor-list{display:grid;gap:1px}.sponsor-row,.sponsor-columns{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1.5fr) 96px;gap:12px;align-items:center}.sponsor-columns{font-size:13px;font-weight:600;color:#547487;padding:0 10px 8px}.sponsor-row{padding:8px 10px;border:1px solid #d6e0e7;border-radius:4px;background:white}.sponsor-class{display:flex;align-items:center;gap:9px;font-size:14px}.class-dot{width:12px;height:12px;border:1px solid #829aa9;border-radius:50%;flex:0 0 12px}.sponsor-row label{margin:0;min-width:0}.sponsor-row label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.sponsor-row input,.sponsor-row button{height:34px;margin:0;padding:6px 8px;font-size:14px}.sponsor-row.saved-flash{animation:team-saved 1.3s ease-out}@media(max-width:650px){.sponsor-columns{display:none}.sponsor-row{grid-template-columns:1fr 86px;gap:8px}.sponsor-class{grid-column:1/-1}}
