@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap);#root,body,html{margin:0;overflow-x:hidden;padding:0;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;padding:0 0 env(safe-area-inset-bottom);padding-bottom:var(--safe-bottom)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);--page-width:clamp(360px,92vw,1200px);--bg:#f6f7fb;--card:#fff;--text:#0f172a;--muted:#64748b;--primary:#122f53;--primary-600:#122f53;--border:#e5e7eb;--success:#16a34a;--danger:#dc2626;--warn:#d97706}*{box-sizing:border-box}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(1200px 800px at 50% -200px,#eaf1ff 0,#f6f7fb 40%,#f6f7fb 100%);background:radial-gradient(1200px 800px at 50% -200px,#eaf1ff 0,var(--bg) 40%,var(--bg) 100%);color:#0f172a;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:clamp(14px,1.8vw,16px);margin:0}.screen{display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh;padding-bottom:0}.container{margin:0 auto;max-width:clamp(360px,92vw,1200px);max-width:var(--page-width);padding:16px 2px 8px;scroll-behavior:smooth;width:100%}.header{-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);background:#f6f7fbb3;border-bottom:1px solid #0000000a;padding-top:calc(var(--safe-top) + 8px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.footer-inner,.header-inner{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:clamp(360px,92vw,1200px);max-width:var(--page-width);padding:12px 16px}.header-inner{padding-bottom:12px;padding-top:8px}.header-identity{align-items:center;display:flex;gap:12px}.header-name-stack{display:flex;flex-direction:column;gap:2px}.home-avatar{align-items:center;background:linear-gradient(135deg,#122f53,#2563eb);background:linear-gradient(135deg,var(--primary) 0,#2563eb 100%);border-radius:50%;box-shadow:0 4px 12px #122f5333;color:#fff;display:flex;font-size:20px;font-weight:600;height:48px;justify-content:center;width:48px}.home-user-name{color:#0f172a;color:var(--text);font-size:18px;font-weight:600}.header-subtitle{color:#64748b;color:var(--muted);font-size:12px;letter-spacing:.4px;text-transform:uppercase}.brand{align-items:center;display:inline-flex;font-weight:600;gap:10px;letter-spacing:.2px}.brand-logo{align-items:center;height:32px;width:32px}.brand-logo,.brand-logo-lg{border-radius:8px;object-fit:contain}.brand-logo-lg{display:block;height:100px;margin:0 auto;width:100px}.card{background:#fff;background:var(--card);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:18px;box-shadow:0 6px 24px #0f172a0d;padding:18px}.h1{font-size:clamp(22px,2.4vw,28px);margin:0 0 10px}.h2{font-size:clamp(18px,2vw,22px);margin:0 0 8px}.help{font-size:14px;margin:0;text-align:center}.help,.muted{color:#64748b;color:var(--muted)}.stack{grid-gap:16px;display:grid;gap:16px}.row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.spacer{height:8px}.centerText{margin:0 auto;text-align:center}.centerRow{display:flex;justify-content:center;margin-top:10px}.auth-container{margin:40px auto;max-width:420px;width:100%}.auth-container .card{box-shadow:0 10px 40px #0f172a14}.auth-container .stack{gap:14px}.auth-container .h2{margin-bottom:4px;text-align:center}.auth-container .btn{margin-top:6px}.auth-logo-container{display:flex;justify-content:center;margin-bottom:8px}.auth-logo{border-radius:16px;box-shadow:0 6px 20px #0f172a26;height:80px;object-fit:contain;width:80px}@media (max-width:480px){.auth-container{margin:20px auto}}.input{border:1.5px solid #e5e7eb;border:1.5px solid var(--border);border-radius:12px;font-size:12px;padding:2px 10px;width:100%}.input,.selectInput{font-family:inherit;height:clamp(32px,4.5vw,36px)}.selectInput{font-size:14px;padding:0 12px}input[type=file].input{padding:10px}textarea.input{font-family:inherit}.btn{background:#122f53;background:var(--primary);border:none;border-radius:14px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 16px;touch-action:manipulation;transition:transform .06s ease,background .2s ease,box-shadow .2s ease}.btn:hover{background:#122f53;background:var(--primary-600)}.btn:active{transform:translateY(1px)}.btn.ghost{background:#fff;border:1.5px solid #e5e7eb;border:1.5px solid var(--border);color:#0f172a;color:var(--text)}.btn.small{font-size:14px;height:clamp(32px,4.5vw,36px);padding:8px 12px}.btn.tiny{border-radius:12px;font-size:12px;height:auto;padding:6px 10px}.btn.pill{border-radius:999px}.btn.danger{background:#991b1b;color:#fff}.btn-group{display:flex;flex-wrap:wrap;gap:8px}.btn-group .btn.active{background:#3b82f614;border-color:#3b82f6;color:#122f53}.calendar-view-toggle{background:#e5e7eb;background:var(--border);border-radius:999px;display:inline-flex;gap:0;padding:2px}.calendar-view-toggle button{background:#0000;border:none;border-radius:999px;color:#64748b;color:var(--muted);cursor:pointer;font-size:14px;font-weight:600;min-width:70px;padding:8px 20px;transition:all .2s ease}.calendar-view-toggle.compact button{font-size:14px;min-width:44px;padding:8px 16px}.calendar-view-toggle button.active{background:#fff;box-shadow:0 2px 4px #0000001a;color:#122f53;color:var(--primary)}.calendar-view-toggle button:hover:not(.active){color:#0f172a;color:var(--text)}.btn.ghost.view-toggle{background:#fff;border-color:#122f5333;color:#64748b;color:var(--muted);padding-inline:18px}.btn.ghost.view-toggle.active{box-shadow:0 4px 10px #122f5340}.btn.ghost.tiny.active,.btn.ghost.view-toggle.active{background:#122f53;background:var(--primary);border-color:#122f53;border-color:var(--primary);color:#fff}.btn.ghost.tiny.active{font-weight:600}.list{list-style:none;margin:0;padding:0}.item{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--border);display:flex;justify-content:space-between;padding:12px 0}.item:first-child{border-top:none}.dateNav{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border:1.5px solid var(--border);border-radius:999px;display:inline-flex;gap:10px;padding:6px 10px}.footer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd9;border-top:1px solid #0000000f;bottom:0;position:-webkit-sticky;position:sticky}.footer-inner{gap:clamp(8px,2vw,16px);padding:10px 8px env(safe-area-inset-bottom,10px)}@media (min-width:1400px){:root{--page-width:100vw}.container,.footer-inner,.header-inner{margin:0;max-width:none;padding-left:clamp(24px,4vw,48px);padding-right:clamp(24px,4vw,48px);width:100%}}.footer .btn{flex:1 1;min-height:44px;padding:10px 14px}.footer-inner .footer-tab{align-items:center;background:#0000;border:none;border-radius:12px;color:#64748b;color:var(--muted);display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:6px;justify-content:center;min-height:48px;min-width:84px;padding:8px 10px;transition:transform .06s ease,color .18s ease,background .18s ease}.footer-inner .footer-tab.active{background:#122f53;background:var(--primary);box-shadow:0 6px 20px #122f5340;color:#fff}.footer-inner .footer-tab svg{font-size:22px}.footer-inner .footer-tab:active{transform:translateY(1px)}.footer-inner .nav-desktop-only{display:none}@media (min-width:601px){.footer-inner .nav-desktop-only{display:flex}}.tag{align-items:center;background:#fafafa;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:999px;color:#64748b;color:var(--muted);display:inline-flex;font-size:12px;gap:6px;padding:6px 12px;white-space:nowrap}.tag.available{background:#f0fdf4;border-color:#bbf7d0;color:#16a34a;color:var(--success)}.tag.notavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626;color:var(--danger)}.tag.none{background:#f8fafc;border-color:#e2e8f0;color:#64748b;color:var(--muted)}.tag.published{background:#eff6ff;border-color:#bfdbfe;color:#122f53}.tag.info{background:#e0f2fe;border-color:#bae6fd;color:#0369a1}.tag.practice-chip{cursor:pointer;font-size:12.5px;padding:6px 10px;-webkit-user-select:none;user-select:none}.tag.practice-chip.chip-on{background:#eefdf3;border-color:#bbf7d0;color:#166534}.tag.practice-chip.chip-off{background:#fef2f2;border-color:#fecaca;color:#991b1b}.tag.practice-chip.chip-regatta{background:#eff6ff;border-color:#bfdbfe;color:#122f53}.status-badge{border-radius:12px;display:inline-block;font-size:.75em;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.status-badge.submitted{background:#fff7ed;border:1px solid #fed7aa;color:#ea580c}.status-badge.in-progress{background:#eff6ff;border:1px solid #bfdbfe;color:#122f53}.status-badge.completed{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.rsvp-card{border-radius:18px;display:flex;flex-direction:column;gap:14px;padding:18px;width:100%}.rsvp-header{align-items:center;display:flex;gap:10px;justify-content:space-between}.help.error{color:#b91c1c}.rsvp-body{grid-gap:8px;display:grid;flex:1 1;gap:8px;min-height:0}.rsvp-row{background:#f8fafc;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 14px #0f172a14;display:flex;justify-content:flex-start;padding:10px 12px}.activity-row,.rsvp-row{align-items:center;flex-wrap:nowrap;gap:12px;width:100%}.activity-row{transition:transform .1s ease,box-shadow .1s ease}.activity-row.clickable{cursor:pointer}.activity-row.clickable:hover{box-shadow:0 8px 18px #0f172a24;transform:translateY(-1px)}.activity-meta{align-items:flex-end;display:flex;flex-direction:column;gap:6px;margin-left:auto}.activity-time{color:#64748b;color:var(--muted);font-size:12px}.activity-main{flex:1 1 auto;gap:12px;min-width:0}.activity-icon,.activity-main{align-items:center;display:flex}.activity-icon{border-radius:12px;box-shadow:inset 0 0 0 2px #fff3;color:#fff;font-size:18px;height:40px;justify-content:center;width:40px}.activity-text{grid-gap:4px;display:grid;gap:4px;min-width:0}.activity-title{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.activity-chip{border-radius:999px;flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:.4px;padding:2px 8px;text-transform:uppercase;white-space:nowrap}.rsvp-meta{grid-gap:4px;display:grid;gap:4px;min-width:0}.rsvp-name{color:#0f172a;color:var(--text);font-size:14px;font-weight:600}.rsvp-name,.rsvp-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsvp-sub{font-size:12px}.rsvp-row .tag{flex-shrink:0}.activity-item-icon{border-radius:12px;box-shadow:inset 0 0 0 2px #fff3;color:#fff;font-size:18px;height:40px;width:40px}.activity-item-content{gap:4px}.activity-item-header .rsvp-name{color:#0f172a;color:var(--text);flex:1 1;font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-item-header .activity-time{color:#64748b;color:var(--muted);flex-shrink:0;font-size:12px;white-space:nowrap}.activity-item-user{align-items:center;color:#64748b;display:flex;font-size:12px;gap:6px}.activity-item-detail{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#64748b;color:var(--muted);display:-webkit-box;font-size:12px;line-height:1.4;overflow:hidden;text-overflow:ellipsis}.activity-item-tag{margin-top:2px}.coach-availability-card,.next-practice-card{border-radius:18px;display:flex;flex-direction:column;gap:16px;padding:18px;width:100%}.coach-home-grid{grid-gap:clamp(14px,3vw,24px);align-items:stretch;display:grid;gap:clamp(14px,3vw,24px);grid-auto-flow:dense;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.coach-home-grid>*{min-width:0}.coach-home-card{display:flex;flex-direction:column;gap:16px;height:100%}@media (min-width:1024px){.coach-home-card--wide{grid-column:span 2}}.coach-home-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.coach-home-card-title{align-items:center;display:flex;font-size:16px;font-weight:600;gap:10px}.coach-home-card-title svg{color:#122f53;color:var(--primary);font-size:20px}.coach-home-practice-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:13px;gap:10px}.coach-home-practice-when{align-items:center;display:inline-flex;font-weight:600;gap:8px}.coach-home-practice-date{font-size:14px}.coach-home-practice-dot{color:#64748b;color:var(--muted);font-size:12px}.coach-home-practice-time{font-size:14px}.coach-home-practice-team{background:#3b82f61a;color:#122f53;letter-spacing:.4px;text-transform:uppercase}.coach-home-practice-state,.coach-home-practice-team{border-radius:999px;font-size:12px;font-weight:600;padding:4px 10px}.coach-home-practice-state{background:#e0f2fe;color:#0369a1;letter-spacing:.3px}.coach-home-practice-state.state-regatta{background:#fef3c7;color:#b45309}.coach-home-practice-state.state-off{background:#fee2e2;color:#b91c1c}.coach-home-practice-note{color:#64748b;color:var(--muted);font-size:13px;line-height:1.45}.coach-home-practice-squads{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.coach-home-practice-squad{align-items:center;background:#2563eb14;border-radius:12px;color:#122f53;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:8px 12px}.coach-home-practice-squad svg{font-size:12px;opacity:.75}.coach-home-practice-squad-name{font-weight:600}.coach-home-practice-squad-count{font-weight:500;opacity:.9}.coach-home-empty{color:#64748b;color:var(--muted)}.coach-availability-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.coach-availability-date{grid-gap:2px;display:grid;font-size:12px;gap:2px}.coach-availability-weekday{color:#0f172a;color:var(--text);font-weight:600}.coach-availability-md{color:#64748b;color:var(--muted);font-size:11px}.coach-availability-stack{grid-gap:14px;display:grid;gap:14px}.coach-availability-day{grid-gap:10px;background:#f8fafc99;border:1px solid #94a3b859;border-radius:16px;box-shadow:0 6px 18px #0f172a14;display:grid;gap:10px;padding:12px 14px}.coach-availability-day-header{align-items:center;display:flex;justify-content:space-between}.coach-availability-practices{grid-gap:8px;display:grid;gap:8px}.coach-availability-chip{align-items:center;border:1px solid #94a3b83d;border-radius:14px;cursor:pointer;display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px;text-align:left;transition:transform .12s ease,box-shadow .12s ease}.coach-availability-chip:hover:not(:disabled){box-shadow:0 8px 20px #0f172a1f;transform:translateY(-1px)}.coach-availability-chip:disabled{cursor:default;opacity:.7}.coach-availability-chip.status-present{border-color:#22c55e80}.coach-availability-chip.status-absent{border-color:#f8717173}.coach-availability-chip-time{font-size:13px;font-weight:600}.coach-availability-chip-team{font-size:12px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.coach-availability-chip-details{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.coach-availability-chip-squad{font-size:12px;font-weight:500;opacity:.82}.coach-availability-chip-icons{align-items:center;display:flex;gap:6px;margin-left:auto}.coach-availability-icon{align-items:center;background:#ffffff2e;border:1px solid #0000;border-radius:999px;color:#0f172a59;cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;height:24px;justify-content:center;line-height:1;padding:0;transition:background .15s ease,color .15s ease,border .15s ease;width:24px}.coach-availability-icon.present.active{background:#dcfce7;border-color:#22c55e;color:#166534}.coach-availability-icon.absent.active{background:#fee2e2;border-color:#ef4444;color:#b91c1c}.coach-availability-icon:disabled{cursor:default;opacity:.6}.lineup-toolbar-card{margin-bottom:12px;padding:12px 14px}.lineup-toolbar-label{color:#64748b;color:var(--muted);font-size:13px;font-weight:600;min-width:70px}.lineup-toolbar-select{flex:0 0 180px;height:clamp(32px,4.5vw,36px);max-width:220px;min-width:160px}.lineup-toolbar-actions{align-items:center;display:flex;gap:8px}.lineup-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.lineup-toolbar-row{align-items:center;display:flex;gap:6px}.lineup-actions-row{align-self:flex-start;position:relative}.lineup-actions-trigger{align-items:center;display:inline-flex;gap:6px}.lineup-actions-menu{grid-gap:6px;background:#fff;border:1px solid #0f172a1f;border-radius:12px;box-shadow:0 16px 32px #0f172a2e;display:grid;gap:6px;min-width:200px;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:40}.lineup-actions-menu button{background:#0000;border:none;border-radius:10px;color:#0f172a;color:var(--text);cursor:pointer;font-size:14px;font-weight:600;padding:8px 10px;text-align:left;transition:background .15s ease,color .15s ease}.lineup-actions-menu button:hover:not(:disabled){background:#2563eb14;color:#122f53;color:var(--primary)}.lineup-actions-menu button:disabled{cursor:not-allowed;opacity:.5}.modalFilters{align-items:center}.modalFilters,.modalFiltersPanel{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.modalFiltersPanel{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);padding-top:10px}.modalSearchInput{flex:1 1 200px;height:clamp(32px,4.5vw,36px);min-width:160px}.roster-stack{gap:18px;width:100%}.roster-filters-card{padding:14px}.roster-filters-panel,.roster-filters-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.roster-filters-panel{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.roster-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.roster-search{flex:1 1 220px;max-width:260px}.roster-select{flex:1 1 180px;max-width:220px}.btn-filter{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:6px;color:#0f172a;color:var(--text);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 14px;position:relative;transition:all .2s}.btn-filter:hover{background:#f8fafc}.btn-filter.active,.btn-filter:hover{border-color:#122f53;border-color:var(--primary)}.btn-filter.active{background:#122f53;background:var(--primary);color:#fff}.btn-filter svg{height:16px;width:16px}.filter-badge{align-items:center;background:#fff;border-radius:9px;color:#122f53;color:var(--primary);display:inline-flex;font-size:11px;font-weight:600;height:18px;justify-content:center;min-width:18px;padding:0 5px}.btn-filter.active .filter-badge{background:#ffffff40;color:#fff}.btn-clear-filters{background:#f1f5f9;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:6px;color:#64748b;cursor:pointer;font-size:13px;font-weight:500;padding:8px 14px;transition:all .2s}.btn-clear-filters:hover{background:#e2e8f0;color:#0f172a;color:var(--text)}.roster-card{grid-gap:12px;display:grid;gap:12px;padding:16px}.roster-header{color:#64748b;color:var(--muted);display:flex;font-weight:600;gap:12px;padding:0 4px}.roster-head{font-size:12px;letter-spacing:.8px;text-transform:uppercase}.roster-list{grid-gap:10px;display:grid;gap:10px}.roster-row{align-items:flex-start;background:#f8fafc;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 18px #0f172a0d;cursor:pointer;display:flex;flex-wrap:wrap;gap:12px;padding:12px 14px;text-align:left;transition:transform .08s ease,box-shadow .18s ease,border-color .18s ease}.roster-row.view-only{border-style:dashed;cursor:default}.roster-row.view-only:hover{box-shadow:0 4px 14px #0f172a0d;transform:none}.roster-row:hover{border-color:#2563eb40;box-shadow:0 6px 22px #2563eb1f;transform:translateY(-1px)}.roster-row:active{transform:translateY(0)}.roster-col{color:#0f172a;color:var(--text);flex:1 1 120px;font-size:14px;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.roster-name{flex-wrap:wrap;gap:8px}.roster-name,.roster-role-chip{align-items:center;display:inline-flex}.roster-role-chip{background:#e2e8f0;border:1px solid #e2e8f0;border-radius:999px;color:#475569;font-size:11px;font-weight:600;gap:4px;letter-spacing:.4px;padding:2px 8px;text-transform:uppercase}.roster-role-chip.roster-role-athlete{background:#dcfce7;border-color:#bbf7d0;color:#15803d}.roster-role-chip.roster-role-coach{background:#dbeafe;border-color:#bfdbfe;color:#122f53}.roster-status-badge{align-items:center;border:1px solid;border-radius:999px;display:inline-flex;font-size:11px;font-weight:600;gap:4px;letter-spacing:.4px;padding:2px 8px;text-transform:uppercase}.roster-status-badge.roster-status-active{background:#dcfce7;border-color:#86efac;color:#15803d}.roster-status-badge.roster-status-invited{background:#fef3c7;border-color:#fde68a;color:#92400e}.roster-status-badge.roster-status-not-invited{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.roster-status-badge.roster-status-inactive{background:#fee2e2;border-color:#fecaca;color:#dc2626}.roster-col-lg{flex:2 1 20px}.roster-col-md{flex:1 1 20px}.roster-col-sm{flex:0 0 70px}.roster-col-age,.roster-col-grad{flex:0 0 110px}.roster-col-right{text-align:right}.roster-empty{background:#f8fafc;border-radius:12px;color:#64748b;color:var(--muted);padding:18px;text-align:center}.roster-modal{gap:18px;max-height:90vh;max-width:640px;overflow-y:auto;width:100%}.roster-modal-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.roster-modal-body{gap:8px}@media (max-width:960px){.roster-stack{justify-items:center}.roster-stack>.roster-card,.roster-stack>.roster-filters-card{width:min(100%,640px)}.roster-filters-card{width:100%}.roster-filters{gap:8px;width:100%}.roster-search,.roster-select{flex:1 1 100%;max-width:100%}.roster-header{display:none}.roster-card{padding:12px}.roster-list{gap:8px}.roster-row{flex-direction:column;gap:6px;padding:10px 12px;width:100%}.roster-col{align-items:baseline;display:flex;gap:8px;white-space:normal;width:100%}.roster-col[data-label]:before{color:#64748b;color:var(--muted);content:attr(data-label) ":";flex-shrink:0;font-size:11px;font-weight:600;min-width:65px;text-transform:uppercase}.roster-col-lg{color:#0f172a;color:var(--text);font-size:15px;font-weight:600}.roster-col-lg:before{content:none}}@media (max-width:640px){.roster-col-age,.roster-col-grad{display:none}}.roster-modal-title{margin:0}.weekdayHeader{color:#64748b;color:var(--muted);font-size:12px;margin-top:8px}.monthGrid,.weekdayHeader{grid-gap:clamp(4px,1vw,10px);display:grid;gap:clamp(4px,1vw,10px);grid-template-columns:repeat(7,1fr)}.monthGrid{margin-top:10px}.dayCell{align-items:flex-start;aspect-ratio:1/1;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:10px;color:#64748b;color:var(--muted);display:flex;flex-direction:column;font-size:clamp(11px,1.6vw,14px);gap:8px;justify-content:flex-start;padding:6px;position:relative;transition:background .2s ease,border .2s ease}.dayCell.outside{opacity:.45}.dayCell .dayNum{color:#1f2937;font-size:14px;font-weight:500}.dayCell .dot{background:#3b82f6;border-radius:999px;bottom:6px;height:6px;opacity:.9;position:absolute;width:6px}.dayCell.off{background:#f3f4f6;border-color:#e5e7eb;border-style:dashed}.dayCell.regatta{background:#f8fafc;border-color:#e5e7eb}.dayCell.off .dot{display:none}.dayCell .offBadge{background:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;font-size:10px;padding:1px 4px;position:absolute;right:6px;top:6px}.todayCell{background:#fffbea;border:2px solid #f59e0b}.dayCell.todayCell{background:#fffbea!important}.todayCell .dayNum{color:#b91c1c;font-weight:700}.todayPill{font-size:12px}.todayPill,.week-today-date{background:#fff0c2;border-radius:999px;color:#7c2d12;display:inline-block;padding:2px 8px}.week-today-date{font-size:14px;font-weight:600}.practice-chip{align-items:center;border:1px solid #0000;border-radius:12px;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:4px 10px;transition:background .15s ease,border-color .15s ease}.practice-chip.big{font-size:13px;padding:8px 14px}.practiceChipLabel{font-weight:600}.practice-chip.chip-on{background:#eefdf3;border-color:#bbf7d0;color:#166534}.practice-chip.chip-off{background:#fef2f2;border-color:#fecaca;color:#991b1b}.practice-chip.chip-regatta{background:#f8fafc;border-color:#e2e8f0;color:#0f172a;color:var(--text)}.practice-chip:hover{filter:brightness(.97)}.practice-chip .statusIcon{font-size:16px}.statusIcon.present{color:#16a34a;color:var(--success)}.statusIcon.absent{color:#dc2626;color:var(--danger)}.statusIcon.pending{color:#64748b;color:var(--muted)}.chip.block .statusIcon.present{color:#0f9d58}.chip.block .statusIcon.absent{color:#e63946}.chip.block .statusIcon.pending{color:#6b7280}.upcomingGrid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.upcomingDay,.upcomingGrid{grid-gap:12px;display:grid;gap:12px}.upcomingDay{align-content:start;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;grid-auto-rows:-webkit-min-content;grid-auto-rows:min-content;padding:12px}.upcomingDay.off{background:#f8fafc;border-style:dashed}.upcomingDay.regatta{background:#eff6ff;border-color:#bfdbfe}.upcomingHeader{align-items:center;align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.upcomingDate{display:flex;flex-direction:column;gap:2px;min-height:0}.upcomingPractices{grid-gap:8px;display:grid;gap:8px}.upcomingPracticeCard{grid-gap:10px;background:#f8fafc;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;display:grid;gap:10px;padding:10px;transition:transform .06s ease,box-shadow .16s ease}.upcomingPracticeCard.on{background:#eefdf3;border-color:#bbf7d0;color:#166534}.upcomingPracticeCard.off{background:#fef2f2;border-color:#fecaca;color:#991b1b}.upcomingPracticeCard.regatta{background:#f8fafc;border-color:#e2e8f0;color:#0f172a;color:var(--text)}.upcomingPracticeCard:hover{box-shadow:0 4px 12px #0f172a1f;transform:translateY(-1px)}.upcomingPracticeCard.rsvp-present{background:#dcfce7;border-color:#86efac;color:#166534}.upcomingPracticeCard.rsvp-absent{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.upcomingPracticeCard.rsvp-none{background:#f8fafc;border-color:#e5e7eb;border-color:var(--border);color:#0f172a;color:var(--text)}.athleteHomeGrid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.athleteHomeCarousel{gap:8px;margin:0}.athleteHomeCarousel,.athleteHomePanel{display:flex;flex-direction:column;padding:0}.carouselDots,.mobileSwipeHint{display:none}.carouselDot{background:#e5e7eb;background:var(--border);border-radius:999px;height:8px;opacity:.6;transition:all .2s ease;width:8px}.carouselDot.active{background:#122f53;background:var(--primary);opacity:1;width:22px}.athleteHomePanel>*{max-width:100%}@media (min-width:768px){.athleteHomePanel{padding:0 32px}}.notificationCard,.notificationList{display:flex;flex-direction:column;gap:8px}.notificationList{margin-top:8px}.notificationItem{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:10px 12px;text-align:left;transition:background .15s ease,box-shadow .15s ease}.notificationItem:hover{background:#f8fafc;box-shadow:0 4px 12px #0f172a14}.notificationTitle{color:#0f172a;color:var(--text);font-weight:600}.notificationMeta{color:#64748b;color:var(--muted);font-size:13px}.oyoCard,.oyoForm{display:flex;flex-direction:column;gap:12px}.oyoForm{margin-top:4px}.oyoFieldRow{display:flex;flex-wrap:wrap;gap:12px}.oyoField{color:#64748b;color:var(--muted);display:flex;flex:1 1;flex-direction:column;font-size:13px;gap:4px}.oyoField span{color:#0f172a;color:var(--text);font-weight:600}.oyoEntries{gap:8px}.oyoEntries,.oyoEntryList{display:flex;flex-direction:column;margin-top:4px}.oyoEntryList{gap:10px}.oyoEntry{background:#f8fafc;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:6px;padding:12px}.oyoEntryHeader{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.oyoEntryButton{background:none;border:1;color:inherit;cursor:pointer;padding:10;text-align:left}.oyoEntryButton:focus-visible .oyoEntryDate,.oyoEntryButton:hover .oyoEntryDate{text-decoration:underline}.oyoEntry.teamWorkout{background:#f1f5f9;cursor:default}.oyoEntryActions{align-items:center;display:flex;gap:8px}.oyoEntryDate{font-weight:600;margin-bottom:2px}.oyoEntryDescription{color:#0f172a;color:var(--text);font-size:14px;white-space:pre-line}.oyoEntryMeta{color:#64748b;color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:12px}.oyoEntryMeta.teamMeta{grid-gap:6px;display:grid;gap:6px}.oyoPhotoPreview{display:flex;flex-direction:column;gap:8px;margin-top:8px}.oyoPhotoPreview img{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;max-height:220px;object-fit:cover;width:100%}.oyoEntryPhoto{margin-top:6px}.oyoEntryPhoto img{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;max-height:320px;object-fit:cover;width:100%}.oyoEditingNotice{align-items:center;background:#fff7ed;border:1px solid #fdba74;border-radius:10px;display:flex;font-size:14px;gap:12px;justify-content:space-between;padding:10px 12px}.notificationAction{color:#2563eb;font-size:12px;font-weight:600}.calendarWeekList{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);display:flex;flex-direction:column;margin-top:8px}.calendarWeekRow{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:16px;padding:12px 0}.calendarWeekDay{display:flex;flex-direction:column;gap:4px;width:140px}.calendarWeekday{color:#0f172a;color:var(--text);font-weight:600}.calendarWeekdate{color:#64748b;color:var(--muted);font-size:13px}.calendarWeekdate.today{color:#b91c1c;font-weight:700}.calendarWeekPractices{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:220px}.calendarWeekEmpty{padding:24px 0;text-align:center}.calendarMonthGrid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:10px}@media (max-width:720px){.calendarMonthGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:600px){.weekdayHeader{display:none}.calendarMonthGrid,.monthGrid{display:flex;flex-direction:column;gap:0}.calendarDayCard,.dayCell{align-items:flex-start;aspect-ratio:auto;border:none;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);border-radius:0;flex-direction:row;gap:16px;min-height:auto;padding:12px 0}.calendarDayCard:first-child,.dayCell:first-child{border-top:1px solid #e5e7eb;border-top:1px solid var(--border)}.calendarDayCard.today,.dayCell.todayCell{background:#fff!important;border:none;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);border-left:3px solid #f59e0b;box-shadow:none;padding-left:12px}.calendarDayCard.outside,.dayCell.outside{opacity:.6}.calendarDayHeader{align-items:flex-start;flex-direction:column;flex-shrink:0;width:110px}.calendarDayWeekday{display:block;font-size:14px}.calendarDayNumber{color:#64748b;color:var(--muted);font-size:13px;font-weight:400}.calendarDayNumber.today,.dayNum.today{color:#b91c1c;font-weight:700}.dayNum{color:#64748b;color:var(--muted);font-size:13px;font-weight:400}.calendarPracticeList{display:flex;flex:1 1;flex-direction:column;min-width:100%}.todayPill{display:none}.calendarPracticeButton{gap:6px;height:auto;justify-content:flex-start;min-height:auto;padding:6px 10px}.calendarPracticeInfo{align-items:center;flex:1 1;flex-direction:row!important;gap:6px;max-width:calc(100% - 30px);min-width:0}.calendarPracticeTime{flex-shrink:0;font-size:12px;font-weight:600;white-space:nowrap}.calendarPracticeTime:after{content:" |";margin-left:4px;margin-right:2px;opacity:.4}.calendarPracticeMeta{flex:1 1;font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendarPracticeStatusIcon{flex-shrink:0;font-size:14px;margin-left:auto}}.calendarDayCard{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;gap:8px;min-height:150px;padding:10px}.calendarDayCard.outside{opacity:.45}.calendarDayCard.today{border:2px solid #f59e0b;box-shadow:0 0 0 1px #f59e0b33}.calendarDayCard.selected{border:2px solid #3b82f6;box-shadow:0 0 0 1px #3b82f633}.calendarDayHeader{align-items:center;display:flex;justify-content:space-between}.calendarDayWeekday{color:#0f172a;color:var(--text);display:none;font-weight:600}.calendarDayNumber{color:#1f2937;font-weight:600}.calendarDayNumber.today{color:#b91c1c;font-weight:700}.calendarDayTag{align-self:flex-start}.calendarPracticeList{display:flex;flex-direction:column;gap:8px}.calendarPracticeButton{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:10px;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:10px;text-align:left;transition:transform .15s ease,box-shadow .15s ease}.calendarPracticeButton:hover{box-shadow:0 4px 10px #0f172a14;transform:translateY(-1px)}.calendarPracticeButton.state-on{background:#eefdf3;border-color:#bbf7d0;color:#166534}.calendarPracticeButton.state-off{background:#fef2f2;border-color:#fecaca;color:#991b1b}.calendarPracticeButton.state-regatta{background:#f8fafc;border-color:#c7d2fe;color:#122f53}.calendarPracticeButton.rsvp-present{background:#dcfce7;border-color:#86efac;color:#166534}.calendarPracticeButton.rsvp-absent{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.calendarPracticeButton.rsvp-none{background:#fff;border-color:#e5e7eb;border-color:var(--border);color:#0f172a;color:var(--text)}.calendarPracticeInfo{display:flex;flex:1 1;flex-direction:column;gap:2px}.calendarPracticeTime{font-weight:600}.calendarPracticeMeta{color:#64748b;color:var(--muted);font-size:12px}.calendarPracticeStatusIcon{align-items:center;display:flex;justify-content:center}.lineupModal{display:flex;flex-direction:column;gap:12px;max-height:90vh;max-width:960px;overflow:hidden;width:100%}.lineupModal .lineupScroller{max-height:55vh;padding-bottom:4px}.lineupModal .lineupCol{min-width:220px}.upcomingPracticeHeader{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.upcomingPracticeDetail{background:#0000;border:none;color:inherit;cursor:pointer;flex:1 1;font-size:12px;font-weight:600;padding:0;text-align:left}.upcomingPracticeDetail:hover{text-decoration:underline}.upcomingPracticeStatus{align-items:flex-start;display:inline-flex;justify-content:center;padding-top:2px}.upcomingPracticeActions{grid-gap:8px;display:grid;gap:8px}.btn.attendanceBtn{border:1.5px solid #0000;border-radius:12px;justify-content:center;transition:background .2s ease,color .2s ease,border .2s ease;width:100%}.btn.attendanceBtn.present{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.btn.attendanceBtn.present:not(.selected):hover{background:#bbf7d0}.btn.attendanceBtn.present.selected{background:#16a34a;border-color:#15803d;color:#fff}.btn.attendanceBtn.absent{background:#fef2f2;border-color:#fecaca;color:#991b1b}.btn.attendanceBtn.absent:not(.selected):hover{background:#fecaca}.btn.attendanceBtn.absent.selected{background:#dc2626;border-color:#b91c1c;color:#fff}.btn.attendanceBtn:disabled{cursor:not-allowed;filter:grayscale(.1);opacity:.6}.attendance-card{overflow:hidden;padding:0}.attendance-table-wrapper{max-height:600px;overflow-x:auto;overflow-y:auto;position:relative;width:100%}.attendance-table-wrapper::-webkit-scrollbar{height:8px;width:8px}.attendance-table-wrapper::-webkit-scrollbar-thumb{background:#0f172a33;border-radius:999px}.attendance-grid{display:flex;flex-direction:column;min-width:640px;position:relative}.attendance-row{align-items:stretch;display:flex;min-height:56px;position:relative}.attendance-header-row{background:#f8fafc;box-shadow:0 6px 8px -6px #0f172a40;font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:6}.attendance-name-col{background:#fff;background:var(--card);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);border-right:1px solid #e5e7eb;border-right:1px solid var(--border);display:flex;flex:1 1 260px;flex-direction:column;gap:4px;left:0;max-width:260px;min-width:260px;padding:12px;position:-webkit-sticky;position:sticky;z-index:0}.attendance-header-row .attendance-name-col{background:#f8fafc;z-index:7}.attendance-practice-col{align-items:center;align-self:stretch;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);border-left:1px solid #e5e7eb;border-left:1px solid var(--border);display:flex;flex:0 0 80px;flex-direction:column;gap:2px;justify-content:center;padding:8px 4px;text-align:center;width:52px}.attendance-header-row .attendance-practice-col{background:#f8fafc;z-index:6}.attendance-cell-btn{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex-direction:row!important;gap:0!important;height:100%;justify-content:center;min-height:56px;padding:0!important;width:100%}.attendance-cell-btn:disabled{cursor:not-allowed;opacity:.6}.attendance-practice-header{position:relative}.practice-header-content{gap:4px;width:100%}.practice-header-content,.practice-labels{align-items:center;display:flex;flex-direction:column}.practice-labels{gap:2px}.practice-position-counts{color:#64748b;display:flex;flex-direction:column;font-size:9px;gap:1px;line-height:1.2;margin-top:4px}.position-count{white-space:nowrap}.practice-filter-btn{background:#0000;border:1px solid #0000;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:10px;line-height:1;padding:2px 6px;transition:all .2s}.practice-filter-btn:hover{background:#e2e8f0;color:#475569}.practice-filter-btn.active{background:#122f53;background:var(--primary);border-color:#122f53;border-color:var(--primary);color:#fff}.practice-filter-dropdown{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0000001a;font-size:13px;font-weight:400;left:50%;margin-top:4px;min-width:160px;padding:12px;position:absolute;top:100%;transform:translateX(-50%);z-index:100}.filter-section{display:flex;flex-direction:column;gap:6px;padding:8px 0}.filter-section:not(:last-of-type){border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border)}.filter-label{color:#475569;font-size:12px;font-weight:600;margin-bottom:2px}.filter-section label{align-items:flex-start;color:#0f172a;color:var(--text);cursor:pointer;display:flex;gap:8px;padding:4px 0}.filter-section label:hover{color:#122f53;color:var(--primary)}.filter-section input[type=radio]{cursor:pointer}.clear-filter-btn{background:#f1f5f9;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:4px;color:#64748b;cursor:pointer;font-size:12px;font-weight:500;margin-top:4px;padding:6px;transition:all .2s;width:100%}.clear-filter-btn:hover{background:#e2e8f0;color:#0f172a;color:var(--text)}.practice-label-day{color:#475569;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.practice-label-date{color:#0f172a;font-size:12px;font-weight:600}.attendance-status{font-size:18px;font-weight:600}.attendance-status.present{color:#16a34a;color:var(--success)}.attendance-status.absent{color:#dc2626;color:var(--danger)}.attendance-status.pending{color:#94a3b8}.attendance-status.late{color:#d97706}.attendance-status.excused{color:#334155}.attendance-meta{color:#64748b;font-size:13px}.attendance-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.attendance-toolbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.attendance-empty{color:#475569;padding:16px;text-align:center}.attendance-toolbar .small{min-width:0;min-width:auto}.attendance-loading-more{color:#64748b;font-size:13px;padding:8px 16px 12px;text-align:right}.chip{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:6px 10px}.chip.block{background:#f8fafc;background:var(--chip-bg,#f8fafc);border:2px solid #e2e8f0;border:2px solid var(--chip-border,#e2e8f0);border-radius:10px;color:#111827;color:var(--chip-fg,#111827);cursor:grab;display:block;line-height:1.2;padding:8px 10px;transition:background .15s ease,border-color .15s ease;-webkit-user-select:none;user-select:none;width:100%}.chip.block:active{cursor:grabbing}.chipName{font-weight:600}.chipMeta{color:#475569;font-size:12px}.pos-port{--chip-border:#d60c19;--chip-bg:#e6a5a9;--chip-fg:#000}.pos-starboard{--chip-border:#0f7833;--chip-bg:#a2d8b2;--chip-fg:#000}.pos-cox,.pos-coxswain{--chip-border:#2017c2;--chip-bg:#6e8deb;--chip-fg:#000}.pos-both{--chip-border:#acb52b;--chip-bg:#ebefbc;--chip-fg:#000}.pos-default{--chip-border:#e2e8f0;--chip-bg:#fff;--chip-fg:var(--text)}.lineupScroller{grid-gap:12px;display:grid;gap:12px;grid-auto-columns:minmax(200px,1fr);grid-auto-flow:column;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}.lineupCol{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;box-shadow:0 6px 24px #0f172a0d;min-width:200px;padding:10px;scroll-snap-align:start}.colHeader{align-items:center;display:flex;gap:8px;margin-bottom:8px}.colBody{grid-gap:8px;display:grid;gap:8px}.seatsRow{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.seatsCol{grid-gap:clamp(8px,1.2vw,12px);display:grid;gap:clamp(8px,1.2vw,12px)}.seat{background:#fff;border:1.5px solid #e5e7eb;border:1.5px solid var(--border);border-radius:12px;display:grid;grid-template-rows:auto 1fr;min-height:30px;padding:3px;place-items:center}.seat.filled{background:#f8fafc;border-color:#c7d2fe}.seat .seatLabel{font-size:11px;justify-self:start}.seat .empty,.seat .seatLabel{color:#64748b;color:var(--muted)}.seat .empty{font-size:12px;opacity:.9}.seat.v{align-content:start;gap:6px;min-height:30px}.mobileOnly{display:none}.nav-overflow-menu{grid-gap:8px;background:#fff;border:1px solid #0f172a1f;border-radius:16px;bottom:calc(72px + env(safe-area-inset-bottom, 0));box-shadow:0 16px 32px #0f172a2e;display:grid;gap:8px;min-width:180px;padding:12px;position:fixed;right:16px;z-index:30}.nav-overflow-item{align-items:center;background:#0000;border:none;border-radius:12px;color:#0f172a;color:var(--text);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:8px 10px;transition:background .15s ease,color .15s ease}.nav-overflow-item:hover{background:#2563eb14}.nav-overflow-item.active{background:#2563eb1f;color:#122f53;color:var(--primary)}.footer-inner.overflow-enabled .nav-optional,.nav-overflow-trigger{display:none}.footer-inner.overflow-enabled .nav-overflow-trigger{display:flex}.filterBar,.filterBarPanel{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.filterBarPanel{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);padding-top:8px}.filterSelect{flex:0 0 140px;height:clamp(32px,4.5vw,36px);min-width:120px}.filterBar,.filterBar *,.filterBarPanel,.filterBarPanel *{-webkit-user-drag:none;pointer-events:auto;-webkit-user-select:none;user-select:none}.chip[draggable=true]{cursor:grab}.chip[draggable=true]:active{cursor:grabbing}.UnassignedRosterPanel .stack{gap:6px}.modalOverlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:50}.modalCard{border:1px solid #00000014;border-radius:14px;box-shadow:0 10px 30px #0000002e;max-height:calc(100vh - 32px);overflow-y:auto;padding:20px 20px 16px;position:relative}.modal-close{align-items:center;background:#e2e8f0;border:none;border-radius:50%;color:#0f172a;cursor:pointer;display:flex;font-size:18px;font-weight:600;height:34px;justify-content:center;line-height:1;position:absolute;right:10px;top:10px;transition:background .15s ease,transform .1s ease;width:34px}.modal-close:hover{background:#cbd5f5}.modal-close:active{transform:scale(.95)}.coachPickerCard{max-width:460px}.coach-picker-selected{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.coach-picker-selected-chip{align-items:center;display:inline-flex;gap:6px}.coach-picker-selected-chip button{background:#0000;border:none;color:inherit;cursor:pointer;font-size:12px;line-height:1;padding:0}.coach-picker-list{display:flex;flex-direction:column;gap:8px;max-height:55vh;overflow-y:auto;padding-right:4px}.coach-picker-row{align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;cursor:pointer;display:flex;gap:10px;justify-content:space-between;padding:10px 12px;transition:border-color .15s ease,background .15s ease}.coach-picker-row.assigned{background:#eff6ff;border-color:#3b82f6}.coach-picker-info{align-items:center;display:flex;gap:10px}.coach-picker-name{font-weight:600}.coach-picker-meta{color:#64748b;color:var(--muted);font-size:12px}.coach-picker-pill{background:#e0e7ff;border-radius:999px;color:#312e81;font-size:11px;font-weight:600;padding:4px 10px}:focus-visible{border-radius:12px;outline:3px solid #2563eb73;outline-offset:2px}@media (max-width:540px){.lineupCol{min-width:85vw}}@media (max-width:560px){.activity-row{align-items:center;flex-direction:row;gap:10px}.activity-row .tag{justify-content:center;width:100%}.activity-item-icon{font-size:14px;height:32px;width:32px}.activity-item-header{flex-wrap:nowrap}.activity-item-header .rsvp-name{font-size:13px}.activity-item-detail,.activity-item-header .activity-time,.activity-item-user{font-size:11px}}@media (max-width:360px){.dateNav{gap:6px}.footer-inner,.header-inner{padding-left:10px;padding-right:10px}}@media (max-width:700px){.lineupScroller{display:flex;flex-direction:column;gap:14px;overflow-x:hidden;padding-bottom:0;scroll-snap-type:none;width:100%}.lineupCol{max-width:100%;min-width:100%;overflow:hidden;width:100%}.mobileOnly{display:flex}}@media (max-width:600px){.footer-inner .nav-optional{display:none}.footer-inner .nav-overflow-trigger{display:flex}.lineupCol .chip{max-width:100%;white-space:normal}.coach-drop-zone{width:100%}.colHeader{flex-wrap:wrap;overflow:hidden}.colBody{overflow:hidden;width:100%}.seatsRow{grid-template-columns:1fr;width:100%}.athleteChip{max-width:100%;overflow:hidden}.filterSelect,.lineup-toolbar-select{flex:1 1 auto;max-width:100%;min-width:0}.filterSelect{height:clamp(32px,4.5vw,36px)}.modalFilters{gap:8px}.lineup-toolbar{width:100%}.lineup-toolbar-row{flex-wrap:wrap;width:100%}.lineup-toolbar-label{min-width:auto}}@media (min-width:1024px){.lineupScroller{gap:16px;grid-auto-flow:row;grid-template-columns:200px repeat(auto-fit,minmax(200px,1fr));overflow-x:visible}}@media (min-width:601px){.nav-overflow-menu{display:none}}.boat-config-card-compact{display:flex;flex-direction:column;gap:12px;margin:0 auto;max-width:800px;width:100%}.boat-config-header-compact{align-items:flex-start;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding-bottom:8px}.boat-config-error{color:#dc2626!important;color:var(--danger)!important}.boat-config-form-compact{align-items:center;background:#ffffff80;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;padding:12px}.boat-config-tabs{border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border);display:flex;flex-wrap:wrap;gap:4px;width:100%}.boat-config-tab{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;flex:0 0 auto;font-size:14px;font-weight:500;margin-bottom:-2px;padding:8px 16px;text-align:center;transition:all .2s}.boat-config-tab:hover{background:#00000005;color:#122f53;color:var(--primary)}.boat-config-tab.active{border-bottom-color:#122f53;border-bottom-color:var(--primary);color:#122f53;color:var(--primary)}.boat-config-tab-content{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:8px;max-height:400px;min-height:200px;overflow-y:auto;width:100%}.boat-config-item-compact{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.boat-config-item-compact:last-child{border-bottom:none}.boat-config-item-info{align-items:center;display:flex;flex:1 1;gap:8px}.boat-config-size-badge{background:#122f53;background:var(--primary);border-radius:12px;color:#fff;display:inline-block;font-size:12px;font-weight:500;padding:2px 8px}.boat-config-item-actions{align-items:center;display:flex;gap:6px}.input-compact{font-size:13px;min-width:80px;padding:4px 8px}.btn-icon,.input-compact{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:4px}.btn-icon{align-items:center;color:#666;cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;line-height:1;padding:0;transition:all .2s;width:28px}.btn-icon:hover{background:#f5f5f5;transform:scale(1.05)}.btn-icon.danger{border-color:#dc2626;border-color:var(--danger);color:#dc2626;color:var(--danger)}.btn-icon.danger:hover{background:#dc2626;background:var(--danger);color:#fff}.boat-config-hint-compact{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);padding-top:8px}.boat-config-hint-toggle{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:4px;padding:6px 0}.boat-config-hint-toggle:hover{color:#122f53;color:var(--primary)}.boat-config-hint-content{grid-gap:6px;display:grid;gap:6px;padding:8px 0 0}@media (max-width:640px){.boat-config-card-compact{padding:12px}.boat-config-tab{flex-basis:calc(50% - 4px);flex-grow:1;flex-shrink:1}.boat-config-tab-content{max-height:320px;min-height:140px}.boat-config-form-compact{align-items:stretch;flex-direction:column}.boat-config-form-compact .input,.boat-config-form-compact button,.boat-config-form-compact select{width:100%}.boat-config-item-compact{align-items:flex-start;flex-direction:column}.boat-config-item-actions{justify-content:flex-end;width:100%}}@media (max-width:420px){.boat-config-tab{flex:1 1 100%}.boat-config-form-compact .input,.boat-config-form-compact button,.boat-config-form-compact select{min-width:0!important}}.boat-config-card{gap:20px}.boat-config-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.boat-config-status{grid-gap:4px;display:grid;gap:4px;justify-items:flex-end;min-width:140px;text-align:right}.boat-config-grid{grid-gap:16px;align-items:stretch;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.boat-config-panel{grid-gap:16px;background:#ffffffe6;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:16px;display:grid;gap:16px;padding:16px}.boat-config-form{grid-gap:12px;align-items:end;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.boat-config-field{grid-gap:4px;display:grid;gap:4px}.boat-config-field--value{grid-column:span 2;min-width:200px}.boat-config-actions{display:flex;gap:8px;grid-column:1/-1;justify-content:flex-end}.boat-config-lists-grid{grid-gap:12px;align-items:start;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.boat-config-list{grid-gap:8px;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;display:grid;gap:8px;padding:12px}.boat-config-list-header{grid-gap:4px;display:grid;gap:4px}.boat-config-list .list{margin-top:0}.boat-config-list .item{padding:8px 0}.boat-config-list-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.boat-config-list-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.boat-config-hint{grid-gap:6px;border-top:1px dashed #e5e7eb;border-top:1px dashed var(--border);display:grid;gap:6px;padding-top:12px}.boat-config-hint ul{margin:0;padding-left:18px}.modalBack{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modalCard{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;max-width:420px;padding:12px;width:100%}.listCol{grid-gap:8px;display:grid;gap:8px;max-height:60vh;overflow:auto}.listItem{align-items:center;background:#fafafa;border:1px solid #ddd;border-radius:8px;display:flex;justify-content:space-between;padding:10px 12px}@media (pointer:coarse){.seat .empty{pointer-events:none}}.table{border-collapse:collapse;font-size:14px;width:100%}.table thead{background:#f8fafc;border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border)}.table th{color:#0f172a;color:var(--text);font-weight:600;padding:12px 16px;text-align:left;white-space:nowrap}.table td{border-bottom:1px solid #f1f5f9;padding:12px 16px}.table tbody tr:hover{background:#f8fafc}.table tbody tr:last-child td{border-bottom:none}.table.compact td,.table.compact th{padding:10px 12px}@media (max-width:768px){.table{font-size:13px}.table td,.table th{padding:10px 8px}.table.compact td,.table.compact th{padding:8px 6px}}.workout-entry-table td,.workout-entry-table th{vertical-align:top}.workout-entry-table .roster-name-row{align-items:center;display:inline-flex;gap:8px}@media (max-width:640px){.workout-entry-table{border-collapse:initial;border-spacing:0}.workout-entry-table thead{display:none}.workout-entry-table tbody,.workout-entry-table td,.workout-entry-table tr{display:block;width:100%}.workout-entry-table tr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:10px;padding:8px 10px}.workout-entry-table td{border:none;padding:6px 4px}.workout-entry-table td:before{color:#64748b;color:var(--muted);content:attr(data-label);display:block;font-size:12px;letter-spacing:.02em;margin-bottom:4px;text-transform:uppercase}.workout-entry-actions{display:flex;gap:8px}.workout-entry-table input{width:100%}}.attendance-chip{align-items:center;border:1px solid;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;margin-top:10px;padding:4px 8px}.attendance-dot{border:2px solid;border-radius:50%;font-size:14px;font-weight:700;height:28px;margin-top:0;width:28px}.attendance-chip-icon,.attendance-dot{align-items:center;display:inline-flex;justify-content:center}.attendance-chip-label{color:inherit}.athlete-home-page{background:var(--bg);display:flex;flex-direction:column;gap:16px;max-height:100vh;overflow-y:auto;padding:16px}.home-stats-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.stat-tile{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 4px 12px #0f172a0f;padding:16px 12px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.stat-tile:hover{box-shadow:0 6px 16px #0f172a1a;transform:translateY(-2px)}.stat-value{color:var(--primary);font-size:24px;font-weight:700;line-height:1.2;margin-bottom:6px}.stat-label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.5px;line-height:1.3;text-transform:uppercase}.home-actions-row{grid-template-columns:repeat(2,1fr)}.home-action-rsvp{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}.home-action-rsvp:hover{box-shadow:0 8px 24px #16a34a4d;transform:translateY(-2px)}.home-action-rsvp:active{transform:translateY(0)}.home-action-workout{background:linear-gradient(135deg,#0891b2,#06b6d4);color:#fff}.home-action-workout:hover{box-shadow:0 8px 24px #0891b24d;transform:translateY(-2px)}.home-action-workout:active{transform:translateY(0)}.next-event-rsvp.rsvp-available,.next-event-rsvp.rsvp-yes{background:#d1fae5;color:#065f46}.next-event-rsvp.rsvp-no,.next-event-rsvp.rsvp-notavailable{background:#fee2e2;color:#991b1b}@media (max-width:360px){.stat-value{font-size:20px}.stat-label{font-size:10px}.home-action-btn{min-height:80px;padding:16px 12px}.action-icon{font-size:28px}.action-label{font-size:12px}}@media (max-height:700px){.athlete-home-page{gap:12px;padding:12px}.stat-tile{padding:12px 8px}.stat-value{font-size:20px}.home-action-btn{min-height:80px;padding:16px 12px}.home-next-event,.home-recent-activity{padding:14px}}@media (max-width:375px) and (max-height:667px){.athlete-home-page{gap:10px;padding:10px}.home-stats-row{gap:8px}.stat-tile{padding:10px 6px}.stat-value{font-size:18px}.stat-label{font-size:10px}.home-actions-row{gap:8px}.home-action-btn{min-height:70px;padding:12px 8px}.action-icon{font-size:24px}.action-label{font-size:12px}.recent-activity-list{max-height:180px}}.availability-modal{display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:90%}.availability-modal-header{border-bottom:1px solid var(--border);padding:20px 24px}.availability-modal-title{color:var(--text);font-size:20px;margin:0 0 8px}.availability-modal-body{flex:1 1;overflow-y:auto;padding:0}.availability-practices-list{background:var(--border);display:flex;flex-direction:column;gap:1px}.availability-practice-item{align-items:center;background:var(--card);display:flex;gap:16px;justify-content:space-between;padding:16px 24px;transition:background .2s ease}.availability-practice-item:hover{background:#f8fafc}.availability-practice-info{flex:1 1;min-width:0}.availability-practice-title{color:var(--text);font-size:16px;font-weight:600;margin-bottom:8px}.availability-practice-details{display:flex;flex-direction:column;gap:4px}.availability-practice-detail{align-items:center;color:var(--muted);display:flex;font-size:13px;gap:6px}.availability-practice-actions{display:flex;flex-shrink:0;gap:8px}.availability-btn{border:2px solid #0000;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.availability-btn:disabled{cursor:not-allowed;opacity:.5}.availability-btn-available{background:#f0fdf4;border-color:#86efac;color:#15803d}.availability-btn-available:hover:not(:disabled){background:#dcfce7;border-color:#4ade80}.availability-btn-available.active{background:#16a34a;border-color:#16a34a;color:#fff}.availability-btn-unavailable{background:#fef2f2;border-color:#fecaca;color:#991b1b}.availability-btn-unavailable:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.availability-btn-unavailable.active{background:#dc2626;border-color:#dc2626;color:#fff}.availability-modal-footer{align-items:center;border-top:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:16px 24px}@media (max-width:640px){.availability-modal{max-height:95vh;width:95%}.availability-practice-item{align-items:stretch;flex-direction:column;gap:12px;padding:16px}.availability-practice-actions{width:100%}.availability-btn{flex:1 1;padding:10px 12px}.availability-modal-footer{flex-direction:column}.availability-modal-footer button{width:100%}}@media (max-width:480px){.availability-modal-header{padding:16px}.availability-modal-title{font-size:18px}.availability-practice-item{padding:12px}.availability-btn{font-size:13px;padding:8px 10px}}.coach-home-page{background:var(--bg);display:flex;flex-direction:column;gap:16px;max-height:100vh;overflow-y:auto;padding:16px}.home-actions-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.home-action-btn{align-items:center;border:none;border-radius:20px;box-shadow:0 6px 20px #0000001a;cursor:pointer;display:flex;flex-direction:column;font-size:16px;font-weight:700;gap:8px;justify-content:center;min-height:100px;padding:20px 16px;transition:all .2s ease}.home-action-availability{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff}.home-action-availability:hover{box-shadow:0 8px 24px #16a34a4d;transform:translateY(-2px)}.home-action-availability:active{transform:translateY(0)}.home-action-maintenance{background:linear-gradient(135deg,#ea580c,#f97316);color:#fff}.home-action-maintenance:hover{box-shadow:0 8px 24px #ea580c4d;transform:translateY(-2px)}.home-action-maintenance:active{transform:translateY(0)}.action-icon{font-size:32px;line-height:1}.action-label{font-size:14px;letter-spacing:.5px}.home-next-event{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 4px 12px #0f172a0f;padding:18px}.next-event-header{color:var(--text);font-size:16px;font-weight:700;margin-bottom:12px}.next-event-content{display:flex;flex-direction:column;gap:12px;transition:all .2s ease}.next-event-content.clickable{border-radius:12px;cursor:pointer;margin:-12px;padding:12px}.next-event-content.clickable:hover{background:#f8fafc;transform:translateX(2px)}.next-event-title-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.next-event-title{color:var(--text);flex:1 1;font-size:18px;font-weight:700}.next-event-rsvp{border-radius:999px;font-size:12px;font-weight:600;padding:4px 10px;white-space:nowrap}.next-event-rsvp.rsvp-available,.next-event-rsvp.rsvp-present,.next-event-rsvp.rsvp-yes{background:#d1fae5;color:#065f46}.next-event-rsvp.rsvp-absent,.next-event-rsvp.rsvp-no,.next-event-rsvp.rsvp-notavailable{background:#fee2e2;color:#991b1b}.next-event-rsvp.rsvp-maybe{background:#fef3c7;color:#92400e}.next-event-details{display:flex;flex-direction:column;gap:8px}.next-event-detail-item{align-items:center;display:flex;gap:10px}.next-event-icon{flex-shrink:0;font-size:16px;text-align:center;width:20px}.next-event-detail-text{color:var(--text);font-size:14px;font-weight:500}.home-recent-activity{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 4px 12px #0f172a0f;display:flex;flex:1 1;flex-direction:column;min-height:0;padding:18px}.home-next-event,.home-recent-activity{width:100%}.recent-activity-header{align-items:center;color:var(--text);display:flex;font-size:16px;font-weight:700;justify-content:space-between;margin-bottom:8px}.activity-nav{display:flex;gap:6px}.activity-nav-btn{align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;display:flex;font-size:20px;font-weight:700;height:32px;justify-content:center;transition:all .2s ease;width:32px}.activity-nav-btn:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.activity-nav-btn:disabled{cursor:not-allowed;opacity:.3}.activity-indicators{display:flex;gap:6px;justify-content:center;margin-bottom:4px;padding:4px 0}.activity-indicator{background:var(--border);border-radius:50%;cursor:pointer;height:8px;transition:all .3s ease;width:8px}.activity-indicator:hover{background:var(--muted)}.activity-indicator.active{background:var(--primary);border-radius:4px;width:24px}.recent-activity-list{display:flex;flex:1 1;flex-direction:column;gap:6px;min-height:0;overflow-y:auto}.activity-item{align-items:center;background:#f8fafc;border:1px solid var(--border);border-radius:10px;display:flex;gap:10px;padding:8px 10px;transition:all .2s ease}.activity-item:hover{background:#f1f5f9;transform:translateX(2px)}.activity-item-icon{align-items:center;background:linear-gradient(135deg,var(--primary) 0,#2563eb 100%);border-radius:8px;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;width:32px}.activity-item-content{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.activity-item-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.activity-item-title{color:var(--text);flex:1 1;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-item-time{flex-shrink:0}.activity-item-time,.activity-item-user{color:var(--muted);font-size:11px;white-space:nowrap}.activity-item-user{overflow:hidden;text-overflow:ellipsis}@media (max-width:360px){.home-action-btn{min-height:80px;padding:16px 12px}.action-icon{font-size:28px}.action-label{font-size:12px}}@media (max-height:700px){.coach-home-page{gap:12px;padding:12px}.home-action-btn{min-height:80px;padding:16px 12px}.home-next-event,.home-recent-activity{padding:14px}}@media (max-width:375px) and (max-height:667px){.coach-home-page{gap:10px;padding:10px}.home-actions-row{gap:8px}.home-action-btn{min-height:70px;padding:12px 8px}.action-icon{font-size:24px}.action-label{font-size:12px}.recent-activity-list{max-height:180px}}@media (max-width:480px){.coach-home-page{gap:12px;padding:12px}.home-actions-row{gap:10px}.home-action-btn{min-height:80px;padding:14px 12px}.home-next-event,.home-recent-activity{padding:14px}}
/*# sourceMappingURL=main.11192cdc.css.map*/