@charset "UTF-8";:root{--bg: #0d1117;--surface: #161b22;--surface-hi: #1f2630;--border: #2d333b;--text: #e6edf3;--text-dim: #8b949e;--accent: #58d68d;--accent-dim: #2e7d54;--bad: #f47067}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.45;overflow-wrap:break-word;-webkit-text-size-adjust:100%}h1{font-size:1.6rem;letter-spacing:-.02em;margin:0 0 .3rem}@media(max-width:560px){h1{font-size:1.35rem}}h2{font-size:1.15rem;margin:1.8rem 0 .6rem}code{overflow-wrap:anywhere}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.page-head{margin-bottom:1.4rem}.page-head .sub{color:var(--text-dim);margin:0;font-size:.9rem}.section-head{display:flex;align-items:baseline;gap:.6rem;margin:1.4rem 0 .6rem}.section-head h2{margin:0}.sub{color:var(--text-dim);font-size:.85rem}.admin-tabs{display:flex;gap:1.4rem;margin:1.4rem 0 1.2rem;border-bottom:1px solid var(--border)}@media(max-width:720px){.admin-tabs{gap:1.1rem;overflow-x:auto;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs a{white-space:nowrap}}.admin-tabs a{color:var(--text-dim);text-decoration:none;font-size:.92rem;font-weight:600;padding:0 0 .6rem;border-bottom:2px solid transparent}.admin-tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.admin-tabs a:hover{color:var(--text)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}@media(max-width:720px){.table-scroll{margin-inline:-1.2rem;padding-inline:1.2rem}}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data.narrow{max-width:420px}table.data.hits{max-width:760px}table.data .mark-chips{display:flex;flex-wrap:wrap;gap:.4rem}table.data .mark-chips .chip{margin-left:0}table.data th,table.data td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid var(--border);font-size:.9rem}@media(max-width:560px){table.data th,table.data td{padding:.5rem .4rem}}table.data td.num,table.data th.num{white-space:nowrap}table.data th{color:var(--text-dim);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}table.data td.num,table.data th.num{text-align:right}table.data td.strong{font-weight:700;color:var(--accent)}table.data tbody tr:hover{background:var(--surface)}table.data tr.scorer td{background:#58d68d0f}table.data tr.unrated td{color:var(--text-dim)}button,select,input{font:inherit;color:var(--text)}select,input,textarea{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem;max-width:100%}select:focus,input:focus,textarea:focus{outline:1px solid var(--accent-dim)}@media(hover:none)and (pointer:coarse){select,input,textarea{font-size:16px}}button.primary,a.primary{display:inline-block;background:var(--accent);color:#08131f;font-weight:700;border:0;border-radius:6px;padding:.5rem 1.1rem;cursor:pointer;text-decoration:none}button.primary:disabled,a.primary:disabled{opacity:.55;cursor:default}button.secondary,a.secondary{display:inline-block;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem 1.1rem;cursor:pointer;text-decoration:none}button.secondary:hover:not(:disabled),a.secondary:hover:not(:disabled){background:var(--surface-hi)}button.secondary:disabled,a.secondary:disabled{opacity:.55;cursor:default}@media(hover:none)and (pointer:coarse){button.primary,a.primary,button.secondary,a.secondary,.toggle button{min-height:44px}button.outline{min-height:36px}}button.linkish{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;font-size:.9rem}button.linkish:hover:not(:disabled){text-decoration:underline}button.linkish:disabled{color:var(--text-dim);opacity:.6;cursor:default}button.linkish.flag{font-size:1rem;line-height:1;opacity:.65}button.linkish.flag:hover:not(:disabled){text-decoration:none;opacity:1}@media(hover:none)and (pointer:coarse){button.linkish.flag{padding:.5rem;margin:-.5rem}}button.outline{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface-hi);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.32rem .75rem;font-size:.82rem;font-weight:600;white-space:nowrap;cursor:pointer}button.outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button.outline:disabled{opacity:.5;cursor:default}button.outline.danger{color:var(--bad)}button.outline.danger:hover:not(:disabled){border-color:var(--bad)}button.outline+button.outline{margin-left:.5rem}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.6rem 0}[footer]{display:flex;align-items:center;gap:.6rem}@media(max-width:560px){[footer]{width:100%}[footer] button{flex:1}}.toggle{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.toggle button{background:none;border:0;padding:.4rem .9rem;color:var(--text-dim);cursor:pointer;font-size:.88rem}.toggle button.active{background:var(--surface-hi);color:var(--text);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1.2rem}@media(max-width:560px){.filters{gap:.6rem}.filters>select,.filters>input:not([type=checkbox]):not([type=radio]){width:100%;flex:1 1 100%}}.filters label.inline{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--text-dim)}.filters label.inline input[type=checkbox]{width:auto}.admin-status{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:.9rem 1rem .2rem;margin:.9rem 0 1.2rem}.admin-status .admin-status-title{margin:0 0 .7rem;color:var(--text-dim);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}@media(max-width:560px){.admin-status{padding:.8rem .8rem .2rem}}.admin-status table.admin-status-table th,.admin-status table.admin-status-table td{vertical-align:top}.admin-status table.admin-status-table th:first-child,.admin-status table.admin-status-table td:first-child{width:15rem}.admin-status table.admin-status-table th:last-child,.admin-status table.admin-status-table td:last-child{width:13rem;text-align:right}@media(max-width:720px){.admin-status table.admin-status-table{display:block}.admin-status table.admin-status-table thead{display:none}.admin-status table.admin-status-table tbody,.admin-status table.admin-status-table tr,.admin-status table.admin-status-table td{display:block;width:auto}.admin-status table.admin-status-table tr{padding:.7rem 0;border-bottom:1px solid var(--border)}.admin-status table.admin-status-table tr:last-child{border-bottom:0}.admin-status table.admin-status-table td{border-bottom:0;padding:.2rem 0}.admin-status table.admin-status-table th:first-child,.admin-status table.admin-status-table td:first-child,.admin-status table.admin-status-table th:last-child,.admin-status table.admin-status-table td:last-child{width:auto;text-align:left}}.admin-status table.admin-status-table .status-name{font-size:.9rem;font-weight:700}.admin-status table.admin-status-table .status-state{color:var(--text-dim);font-size:.8rem;margin-top:.15rem}.admin-status table.admin-status-table .season-field{display:flex;align-items:center;gap:.6rem;margin-bottom:.45rem}.admin-status table.admin-status-table .season-field input{width:6rem;flex:0 0 auto}.admin-status table.admin-status-table input{width:100%}.notice{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent-dim);border-radius:6px;padding:.8rem 1rem;color:var(--text-dim);margin:1rem 0;font-size:.9rem}.notice.warn{border-left-color:#d97706}.notice.error{border-left-color:var(--bad)}.toast-host{position:fixed;right:1.5rem;bottom:1.5rem;z-index:1000;display:flex;flex-direction:column;gap:.6rem;max-width:22rem}@media(max-width:560px){.toast-host{left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));max-width:none}}.toast{position:relative;overflow:hidden;background:var(--surface-hi);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:.75rem 1rem;color:var(--text);font-size:.85rem;line-height:1.4;box-shadow:0 4px 16px #0006;cursor:pointer;animation:toast-in .18s ease-out}.toast.error{border-left-color:var(--bad)}.toast-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.toast-action{flex-shrink:0;background:none;border:1px solid currentColor;color:var(--accent);border-radius:4px;padding:.2rem .65rem;font-size:.78rem;font-weight:700;cursor:pointer}.toast-action:hover{background:#ffffff14}.toast.error .toast-action{color:var(--bad)}.toast-progress{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--accent);transform-origin:left;animation-name:toast-countdown;animation-timing-function:linear;animation-fill-mode:forwards}.toast.error .toast-progress{background:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.chip{display:inline-flex;align-items:center;gap:.25rem;margin-left:.5rem;padding:.18rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;line-height:1.35;vertical-align:middle;background:var(--surface-hi);color:var(--text-dim);border:1px solid var(--border);white-space:nowrap}.chip.accent{background:#58d68d29;color:var(--accent);border-color:#58d68d73}.chip.commit{background:#2dbeaa29;color:#57d8c6;border-color:#2dbeaa73}.chip.transfer{background:#7aa2e829;color:#9ec1ff;border-color:#7aa2e873}.chip.injured{background:#f470672e;color:var(--bad);border-color:#f4706780}.chip.pro{background:#e6be502e;color:#e6be50;border-color:#e6be5080}.chip.deferred{background:#a082dc29;color:#b79ce8;border-color:#a082dc73}.chip.coach{background:#5ac8a029;color:#62d2a2;border-color:#5ac8a073}.chip.champion{background:#e6be5033;color:#ffd766;border-color:#e6be508c}.chip.all-american{background:#7aa2e829;color:#9ec1ff;border-color:#7aa2e873}.chip.rank{background:#58d68d1f;color:var(--accent);border-color:#58d68d59}.chip.in-progress{background:#e6a85a29;color:#e6b277;border-color:#e6a85a73}.chip.assigned{background:#7aa2e829;color:#9ec1ff;border-color:#7aa2e873}td .chip:first-child,.value .chip{margin-left:0}td.coach-edit{white-space:nowrap}td.coach-edit input{width:4.5rem;margin-right:.4rem}td.mark-edit{white-space:nowrap}td.mark-edit input{width:11rem;margin-right:.4rem}.roster-admin{margin-top:2rem;border-top:1px dashed var(--border);padding-top:1rem}.roster-admin .head{font-size:.95rem;font-weight:600;color:var(--text-dim)}.roster-admin .controls{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin:.9rem 0 .2rem}.roster-admin .controls label{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-dim);font-size:.85rem}.roster-admin .views{display:inline-flex;gap:1rem}.roster-admin .views .linkish.on{color:var(--text);font-weight:700;text-decoration:underline}.roster-admin tr.muted td{opacity:.62}.roster-admin .dim{color:var(--text-dim)}.roster-admin .race-detail{display:block;margin-top:.1rem}.roster-admin table.admin-roster td,.roster-admin table.admin-roster th{vertical-align:top}.roster-admin table.admin-roster .name-line{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.roster-admin table.admin-roster .status-note{margin-top:.2rem}.roster-admin td.year-edit input{width:5rem;font-size:.85rem}.roster-admin td.year-edit.missing input{border-color:#e6a85a99;background:#e6a85a14}.roster-admin td.roster-toggle{white-space:nowrap}.roster-admin td.roster-toggle .toggle-fields{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.roster-admin td.roster-toggle input{width:13rem}.roster-admin .dup-warning{display:block;margin-top:.4rem;color:#d97706}.roster-admin .dup-warning button.outline{color:#d97706;border-color:#d9770680;margin-top:.3rem}.roster-admin .dup-warning button.outline:hover:not(:disabled){border-color:#d97706}.roster-admin .chip.status{margin-left:0;text-transform:none;letter-spacing:0}.roster-admin .chip.status.status-transferred_out,.roster-admin .chip.status.status-inactive{background:#f4706724;color:var(--bad);border-color:#f4706766}.roster-admin .chip.status.status-turned_pro{background:#e6be5029;color:#e6be50;border-color:#e6be5073}.roster-admin .chip.status.status-commit,.roster-admin .chip.status.status-future{background:#2dbeaa24;color:#57d8c6;border-color:#2dbeaa66}.roster-admin .chip.status.status-alumni{background:#9e85e024;color:#9e85e0;border-color:#9e85e066}.roster-admin .status-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.9rem 0 .7rem}.roster-admin .status-filters .chip.filter{cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-size:.78rem;padding:.25rem .6rem}.roster-admin .status-filters .chip.filter:hover{border-color:var(--text-dim);color:var(--text)}.roster-admin .status-filters .chip.filter.on{background:#58d68d24;border-color:var(--accent);color:var(--text);font-weight:600}.roster-admin .status-filters .clear-filters{font-size:.78rem}.roster-admin table.sortable th.sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.roster-admin table.sortable th.sort:hover{color:var(--text)}.roster-admin .roster-add{margin:.6rem 0 1.4rem;padding-left:.9rem;border-left:2px solid var(--border)}.roster-admin .roster-add input[type=search]{min-width:min(18rem,100%)}.roster-admin .roster-add input.wide{display:block;width:min(34rem,100%);margin-top:.6rem;font-size:.85rem}.roster-admin .roster-add label.inline{font-size:.85rem;color:var(--text-dim)}.roster-admin .roster-add .outcome{margin:.8rem 0 0;padding:.6rem .8rem;border-radius:6px;font-size:.85rem;background:#58d68d1a;border:1px solid rgba(88,214,141,.35)}.roster-admin .roster-add .error{margin:.8rem 0 0;font-size:.85rem;color:var(--bad)}.roster-admin .roster-add .held-back{margin:.8rem 0 0;padding:.6rem .8rem;border-radius:6px;background:#f4d03f1a;border:1px solid rgba(244,208,63,.35)}.dupe-list{display:flex;flex-direction:column;gap:.9rem;margin:1rem 0 1.4rem}.dupe-pair{border:1px solid var(--border);border-radius:8px;padding:.8rem 1rem;background:var(--surface)}.dupe-pair .dupe-pair-head{margin-bottom:.6rem;color:var(--text-dim);font-size:.85rem}.dupe-pair .dupe-pair-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:720px){.dupe-pair .dupe-pair-cols{grid-template-columns:1fr}}.dupe-pair .dupe-dismiss{margin-top:.7rem}.dupe-card{border:1px solid var(--border);border-radius:6px;padding:.7rem .9rem;background:var(--surface-hi)}.dupe-card .name{display:flex;align-items:baseline;gap:.6rem;font-weight:700;margin-bottom:.35rem}.dupe-card .name .tfrrs-link{font-size:.75rem;font-weight:600;color:var(--text-dim)}.dupe-card .name .tfrrs-link:hover{color:var(--accent)}.dupe-card .meta{display:flex;flex-wrap:wrap;gap:.6rem;color:var(--text-dim);font-size:.8rem;margin-bottom:.6rem}.stat-cards{display:flex;flex-wrap:wrap;gap:.8rem;margin:1rem 0 1.4rem}@media(max-width:560px){.stat-cards{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}}.stat-cards .card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.7rem 1.1rem;min-width:120px}@media(max-width:560px){.stat-cards .card{min-width:0;padding:.6rem .8rem}}.stat-cards .card .label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.stat-cards .card .value{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums}@media(max-width:560px){.stat-cards .card .value{font-size:1.2rem}}.meet-list .meet{border-bottom:1px solid var(--border)}.meet-list .meet-row{display:flex;gap:1rem;width:100%;padding:.6rem .2rem;background:none;border:0;color:var(--text);cursor:pointer;text-align:left;font-size:.92rem}.meet-list .meet-row .date{color:var(--text-dim);min-width:100px;font-variant-numeric:tabular-nums}.meet-list .meet-row:hover .name{color:var(--accent)}.meet-list .races{display:flex;gap:1rem;padding:0 .2rem .8rem 116px}.meet-list .races .race-link{font-size:.88rem}@media(max-width:560px){.meet-list .meet-row{flex-direction:column;gap:.1rem;padding:.7rem .2rem}.meet-list .meet-row .date{min-width:0;font-size:.8rem}.meet-list .races{flex-wrap:wrap;gap:.9rem;padding-left:.2rem}}@media(max-width:720px){.hide-sm{display:none}}@media(max-width:560px){.hide-xs{display:none}}
