@font-face{font-family:Roboto;font-weight:400;font-display:swap;src:url(/assets/roboto-400-BqEyEoaF.woff2) format("woff2")}@font-face{font-family:Roboto;font-weight:500;font-display:swap;src:url(/assets/roboto-500-7RbcRiD8.woff2) format("woff2")}@font-face{font-family:Roboto;font-weight:700;font-display:swap;src:url(/assets/roboto-700-BZpUvMxY.woff2) format("woff2")}:root{--md-primary: #115eaf;--md-on-primary: #ffffff;--md-primary-container: #d5e3ff;--md-on-primary-container: #001b3c;--md-secondary: #555f71;--md-on-secondary: #ffffff;--md-secondary-container: #d9e3f8;--md-on-secondary-container: #121c2b;--md-tertiary: #6f5675;--md-on-tertiary: #ffffff;--md-tertiary-container: #f8d8fe;--md-on-tertiary-container: #28132f;--md-error: #ba1a1a;--md-on-error: #ffffff;--md-error-container: #ffdad6;--md-on-error-container: #410002;--md-background: #fdfbff;--md-on-background: #1a1c1e;--md-surface: #fdfbff;--md-on-surface: #1a1c1e;--md-surface-variant: #e0e2ec;--md-on-surface-variant: #43474e;--md-outline: #74777f;--md-outline-variant: #c4c6cf;--md-inverse-surface: #2f3033;--md-inverse-on-surface: #f1f0f4;--md-inverse-primary: #a8c8ff;--md-surface-dim: #dad9dd;--md-surface-bright: #faf9fd;--md-surface-container-lowest: #ffffff;--md-surface-container-low: #f4f3f7;--md-surface-container: #eeedf1;--md-surface-container-high: #e9e7eb;--md-surface-container-highest: #e3e2e6;--md-success: #186c33;--md-success-container: #b7f1bf;--md-on-success-container: #00210a;--md-warning: #855400;--md-warning-container: #ffddb3;--md-on-warning-container: #2a1800;--md-shape-xs: 4px;--md-shape-sm: 8px;--md-shape-md: 12px;--md-shape-lg: 16px;--md-shape-xl: 28px;--md-shape-full: 999px;--md-elev-1: 0 1px 2px 0 rgba(0,0,0,.3), 0 1px 3px 1px rgba(0,0,0,.15);--md-elev-2: 0 1px 2px 0 rgba(0,0,0,.3), 0 2px 6px 2px rgba(0,0,0,.15);--md-elev-3: 0 1px 3px 0 rgba(0,0,0,.3), 0 4px 8px 3px rgba(0,0,0,.15);--md-easing-standard: cubic-bezier(.2, 0, 0, 1);--md-easing-emphasized: cubic-bezier(.05, .7, .1, 1);--md-dur-short: .15s;--md-dur-medium: .25s;--md-dur-long: .4s}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--md-background);color:var(--md-on-surface);font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13.5px;line-height:1.4;letter-spacing:.0125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--md-primary);text-underline-offset:2px}:where(a,button,input,select,[tabindex]):focus-visible{outline:3px solid var(--md-primary);outline-offset:2px;border-radius:var(--md-shape-xs)}h1{font-size:20px;line-height:26px;font-weight:500;letter-spacing:0;margin:0}h2{font-size:15px;line-height:20px;font-weight:500;letter-spacing:.009em;margin:0}.center{min-height:100vh;display:grid;place-items:center}.muted{color:var(--md-on-surface-variant)}.small{font-size:12px;line-height:16px;letter-spacing:.033em}.error{color:var(--md-error)}.layout{display:grid;grid-template-columns:228px 1fr;height:100vh}.sidebar{background:var(--md-surface-container-low);border-right:1px solid var(--md-outline-variant);padding:10px 8px;display:flex;flex-direction:column;gap:2px;height:100vh;overflow:hidden}.brand{font-size:16px;line-height:24px;font-weight:500;letter-spacing:.009em;color:var(--md-on-surface);display:flex;align-items:center;gap:10px;padding:6px 12px 14px;border-bottom:1px solid var(--md-outline-variant)}.brand-logo{width:28px;height:28px;object-fit:contain;border-radius:var(--md-shape-sm)}.team-nav{overflow-y:auto;overflow-x:hidden;flex:1;margin-top:6px;padding-right:2px}.team-nav::-webkit-scrollbar{width:10px}.team-nav::-webkit-scrollbar-thumb{background:var(--md-outline-variant);border-radius:99px;border:3px solid var(--md-surface-container-low)}.year-group{margin-bottom:4px}.year-head{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;padding:5px 10px;margin:0;cursor:pointer;color:var(--md-on-surface);font-family:inherit;font-size:13px;line-height:18px;font-weight:600;letter-spacing:.007em;border-radius:var(--md-shape-full);transition:background var(--md-dur-short) var(--md-easing-standard)}.year-head:hover{background:color-mix(in srgb,var(--md-on-surface) 8%,transparent)}.year-head .chev{color:var(--md-on-surface-variant);font-size:9px;transition:transform .15s ease;width:9px}.year-head .chev.open{transform:rotate(90deg)}.year-label{flex:1;text-align:left}.year-count{color:var(--md-on-surface-variant);font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;background:var(--md-surface-container-high);border-radius:99px;padding:0 8px;min-width:22px;height:18px;display:inline-flex;align-items:center;justify-content:center}.season-group{margin:2px 0 8px;padding-left:4px}.season-title{font-size:10.5px;line-height:14px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--md-on-surface-variant);display:flex;justify-content:space-between;align-items:center;padding:4px 12px 2px}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar li a{display:block;padding:5px 12px;margin:1px 0;border-radius:var(--md-shape-full);text-decoration:none;color:var(--md-on-surface-variant);font-size:13px;line-height:19px;font-weight:500;letter-spacing:.007em;transition:background var(--md-dur-short) var(--md-easing-standard),color var(--md-dur-short) var(--md-easing-standard)}.sidebar li a:hover{background:color-mix(in srgb,var(--md-on-surface) 8%,transparent);color:var(--md-on-surface)}.sidebar li a.active{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.sidebar li a.active:hover{background:color-mix(in srgb,var(--md-on-secondary-container) 8%,var(--md-secondary-container))}.mini{font-size:11px;font-weight:500;color:var(--md-on-surface-variant);text-decoration:none;transition:color .15s ease}.mini:hover{color:var(--md-primary)}.season-actions{display:inline-flex;gap:8px}.print-all{display:flex;align-items:center;gap:6px;margin:0 0 8px;padding:6px 12px;border-radius:var(--md-shape-full);background:var(--md-surface-container-high);color:var(--md-on-surface-variant);font-size:12px;text-decoration:none}.print-all:hover{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.people-list{list-style:none;margin:0;padding:0}.people-list li{padding:10px 2px;border-bottom:1px solid var(--md-outline-variant);font-size:14px}.people-list li:last-child{border-bottom:0}.ok-text{color:var(--md-success)}.content{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--md-background)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 18px;border-bottom:1px solid var(--md-outline-variant);background:var(--md-surface)}.top-nav{display:flex;gap:2px}.top-link{font-size:13px;line-height:18px;font-weight:500;letter-spacing:.007em;text-decoration:none;padding:6px 11px;border-radius:var(--md-shape-full);color:var(--md-on-surface-variant);transition:background var(--md-dur-short) var(--md-easing-standard),color var(--md-dur-short) var(--md-easing-standard)}.top-link:hover{background:color-mix(in srgb,var(--md-on-surface) 8%,transparent);color:var(--md-on-surface)}.top-link.active{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.top-right{display:flex;align-items:center;gap:14px}.page{padding:18px 22px;max-width:1080px;overflow-y:auto;flex:1}.login-logo{width:56px;height:56px;object-fit:contain;align-self:center;border-radius:var(--md-shape-md)}.card{background:var(--md-surface-container-low);border:0;border-radius:var(--md-shape-md);padding:16px;box-shadow:var(--md-elev-1);margin-bottom:14px}.login{width:360px;display:flex;flex-direction:column;gap:14px;background:var(--md-surface-container-low);border:0;border-radius:var(--md-shape-xl);box-shadow:var(--md-elev-3);padding:28px}.login h1{font-size:22px;line-height:28px;margin:0 0 6px;text-align:center}input,select{width:100%;padding:8px 12px;height:38px;border:1px solid var(--md-outline);border-radius:var(--md-shape-xs);font:inherit;font-size:14px;background:var(--md-surface);color:var(--md-on-surface);transition:border-color var(--md-dur-short) var(--md-easing-standard),box-shadow var(--md-dur-short) var(--md-easing-standard)}input:focus,select:focus{outline:none;border-color:var(--md-primary);box-shadow:inset 0 0 0 1px var(--md-primary)}input::placeholder{color:var(--md-on-surface-variant)}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--md-primary);color:var(--md-on-primary);border:0;border-radius:var(--md-shape-full);padding:0 16px;height:32px;font-family:inherit;font-size:13.5px;line-height:18px;font-weight:500;letter-spacing:.007em;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--md-dur-short) var(--md-easing-standard),box-shadow var(--md-dur-short) var(--md-easing-standard)}button:hover:not(:disabled),.button:hover{background:color-mix(in srgb,var(--md-on-primary) 8%,var(--md-primary));box-shadow:var(--md-elev-1)}button:active:not(:disabled),.button:active{background:color-mix(in srgb,var(--md-on-primary) 10%,var(--md-primary))}button:disabled{background:color-mix(in srgb,var(--md-on-surface) 12%,transparent);color:color-mix(in srgb,var(--md-on-surface) 38%,transparent);cursor:not-allowed}.button.ghost,button.ghost{background:transparent;color:var(--md-primary);border:1px solid var(--md-outline)}.button.ghost:hover,button.ghost:hover{background:color-mix(in srgb,var(--md-primary) 8%,transparent);box-shadow:none}.button.ghost:active,button.ghost:active{background:color-mix(in srgb,var(--md-primary) 12%,transparent)}.roster-actions{display:flex;gap:8px;flex-shrink:0}button.link{background:none;color:var(--md-primary);border:0;box-shadow:none;height:26px;padding:0 8px;font-weight:500;border-radius:var(--md-shape-full)}button.link:hover:not(:disabled){background:color-mix(in srgb,var(--md-primary) 8%,transparent);box-shadow:none}button.link.danger{color:var(--md-error)}button.link.danger:hover:not(:disabled){background:color-mix(in srgb,var(--md-error) 8%,transparent)}.roster-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.roster-head h1{margin:0 0 6px}.summary-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--md-shape-sm);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.033em;font-variant-numeric:tabular-nums}.summary-pill.ok{background:var(--md-success-container);color:var(--md-on-success-container)}.summary-pill.warn{background:var(--md-warning-container);color:var(--md-on-warning-container)}.warn-block{margin-top:12px;padding:10px 14px;border-radius:8px;background:var(--md-warning-container, #fbf1e0);color:var(--md-on-warning-container, #6b4e12);border-left:3px solid var(--md-warning, #b9770e)}.warn-block ul{margin:6px 0 0;padding-left:18px}.team-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:6px}.team-link{display:flex;flex-direction:column;gap:2px;padding:12px 14px;min-height:44px;border:1px solid var(--md-outline-variant, #e3e7ee);border-radius:10px;text-decoration:none;color:inherit;background:var(--md-surface, #fff)}.team-link:hover{border-color:var(--md-primary, #0b5cad);background:var(--md-surface-variant, #f6f8fa)}.option-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;margin:12px 0}.option-item{display:flex;align-items:center;gap:4px;padding:4px 8px;min-width:0;border:1px solid var(--md-outline-variant, #e3e7ee);border-radius:var(--md-shape-sm, 8px);background:var(--md-surface-variant, #f6f8fa)}.option-item .option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.option-item input{flex:1;min-width:0}.option-item .link{padding:2px 4px;font-size:12px}.pending-tag,.nav-pending{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--md-warning-container);color:var(--md-on-warning-container);vertical-align:middle}table.roster{width:100%;border-collapse:separate;border-spacing:0;margin-top:10px;background:var(--md-surface-container-lowest);border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-md);overflow:hidden;font-variant-numeric:tabular-nums}.roster th,.roster td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--md-outline-variant)}.roster thead th{position:sticky;top:0;z-index:1;height:44px;background:var(--md-surface-container-low);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.033em;color:var(--md-on-surface-variant);border-bottom:1px solid var(--md-outline-variant)}.roster tbody tr{transition:background .12s ease}.roster tbody tr:hover td{background:color-mix(in srgb,var(--md-on-surface) 5%,transparent)}.roster tbody tr:last-child td{border-bottom:0}.reasons-row td,.roster tbody tr:hover+.reasons-row td{background:color-mix(in srgb,var(--md-error) 6%,transparent)}.reasons{margin:0;padding-left:18px;color:var(--md-error)}.reasons li{margin:3px 0}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--md-shape-sm);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.033em}.badge.ok{background:var(--md-success-container);color:var(--md-on-success-container)}.badge.bad{background:var(--md-error-container);color:var(--md-on-error-container)}.roster-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.picker{position:relative;max-width:360px;margin-bottom:8px}.picker label{display:block;font-size:12px;line-height:16px;font-weight:500;letter-spacing:.033em;color:var(--md-on-surface-variant);margin-bottom:6px}.picker-results{list-style:none;margin:6px 0 0;padding:6px;position:absolute;z-index:5;background:var(--md-surface-container);border:0;border-radius:var(--md-shape-xs);width:100%;box-shadow:var(--md-elev-2);max-height:268px;overflow:auto}.picker-results button{display:block;width:100%;text-align:left;background:none;color:var(--md-on-surface);padding:10px 12px;border-radius:var(--md-shape-xs);box-shadow:none;height:auto;font-weight:400}.picker-results button:hover:not(:disabled){background:color-mix(in srgb,var(--md-on-surface) 8%,transparent)}.drop-cell{white-space:nowrap;text-align:right}.confirm{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--md-on-surface-variant)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--md-inverse-surface);color:var(--md-inverse-on-surface);padding:6px 8px 6px 16px;border-radius:var(--md-shape-xs);display:flex;align-items:center;gap:8px;box-shadow:var(--md-elev-3);font-size:14px;line-height:20px}.toast .link{color:var(--md-inverse-primary)}.toast .link:hover:not(:disabled){background:color-mix(in srgb,var(--md-inverse-primary) 12%,transparent)}.toast .link.muted{color:var(--md-inverse-on-surface)}.progress{height:4px;background:var(--md-surface-container-highest);border-radius:99px;overflow:hidden;margin:10px 0 4px}.progress-bar{height:100%;background:var(--md-primary);border-radius:99px;transition:width .2s ease}.team-form{border-top:1px solid var(--md-outline-variant);padding-top:14px;margin-top:8px}.coach-inputs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}.card section,section.card h2{margin-top:0}.card h2{margin:0 0 14px}.row-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.row-form input,.row-form select{width:auto}.season-block{margin-bottom:18px}.season-block-head{display:flex;justify-content:space-between;align-items:center}.season-block-head h2{margin:0}table.roster.compact th,table.roster.compact td{padding:8px 12px}.file-drop{display:block;border:1.5px dashed var(--md-outline);border-radius:var(--md-shape-md);padding:32px;text-align:center;cursor:pointer;margin:16px 0;color:var(--md-on-surface-variant);background:var(--md-surface-container-low);transition:border-color .15s ease,background .15s ease}.file-drop:hover{border-color:var(--md-primary);background:color-mix(in srgb,var(--md-primary) 5%,var(--md-surface-container-low))}.file-drop input{display:none}.import-result{margin-top:12px}.button,button,.sidebar li a,.top-link,.picker-results button,.sortable{position:relative;overflow:hidden}button:hover:not(:disabled),.button:hover{box-shadow:none}button:active:not(:disabled),.button:active{box-shadow:none}.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.16;transform:scale(0);pointer-events:none;animation:md-ripple var(--md-dur-medium) var(--md-easing-standard)}@keyframes md-ripple{to{transform:scale(1);opacity:0}}.md-tf{display:flex;flex-direction:column;gap:4px;width:100%}.md-tf-box{position:relative;display:flex;align-items:center}.md-tf input{width:100%;height:40px;padding:0 12px;border:1px solid var(--md-outline);border-radius:var(--md-shape-xs);background:transparent;color:var(--md-on-surface);font:inherit;font-size:14px;transition:border-color var(--md-dur-short) var(--md-easing-standard),box-shadow var(--md-dur-short) var(--md-easing-standard)}.md-tf input:hover{border-color:var(--md-on-surface)}.md-tf input:focus{outline:none;border-color:var(--md-primary);box-shadow:inset 0 0 0 1px var(--md-primary)}.md-tf.error input{border-color:var(--md-error)}.md-tf.error input:focus{box-shadow:inset 0 0 0 1px var(--md-error)}.md-tf input::placeholder{color:transparent}.md-tf input:focus::placeholder{color:var(--md-on-surface-variant)}.md-tf label{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--md-on-surface-variant);font-size:14px;pointer-events:none;padding:0 4px;transition:transform var(--md-dur-short) var(--md-easing-standard),color var(--md-dur-short) var(--md-easing-standard),top var(--md-dur-short) var(--md-easing-standard)}.md-tf input:focus+label,.md-tf input:not(:placeholder-shown)+label{top:0;left:10px;transform:translateY(-50%) scale(.75);background:var(--md-tf-bg, var(--md-background));color:var(--md-primary)}.md-tf input:not(:focus):not(:placeholder-shown)+label{color:var(--md-on-surface-variant)}.md-tf.error input:focus+label,.md-tf.error input:not(:placeholder-shown)+label{color:var(--md-error)}.md-tf-support{font-size:12px;line-height:16px;letter-spacing:.033em;color:var(--md-on-surface-variant);padding:0 16px}.md-tf.error .md-tf-support{color:var(--md-error)}.login{--md-tf-bg: var(--md-surface-container-low)}.badge{height:22px;padding:0 9px;border-radius:var(--md-shape-sm);font-size:12px;letter-spacing:.01em}.roster th,.roster td{padding:6px 12px;font-size:13px}.roster thead th{height:34px;padding:0}.roster tbody tr:hover td{background:color-mix(in srgb,var(--md-on-surface) 8%,transparent)}.sortable{display:inline-flex;align-items:center;gap:4px;width:100%;height:34px;padding:0 12px;background:none;border:0;border-radius:0;box-shadow:none;cursor:pointer;color:var(--md-on-surface-variant);font:inherit;font-size:12px;font-weight:500;letter-spacing:.033em;justify-content:flex-start}.sortable:hover:not(:disabled){background:color-mix(in srgb,var(--md-on-surface) 8%,transparent)}.sort-caret{color:var(--md-primary);font-weight:700}@media(prefers-reduced-motion:reduce){*,.ripple{transition:none!important;animation:none!important}}@media(max-width:720px){.layout{grid-template-columns:1fr;height:auto}.sidebar{border-right:0;border-bottom:1px solid var(--md-outline-variant);height:auto}.content{height:auto}.drop-cell button,.confirm button,.roster-tools .link,.picker-results button,.top-nav .top-link,.season-block-head .link,.people-list button,.option-item .link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.drop-cell{white-space:nowrap}table.roster td{padding-top:10px;padding-bottom:10px}}
