:root{color:#17372c;font-synthesis:none;--ink:#17372c;--muted:#65756e;--paper:#fffdf8;--line:#d8d3c7;--water:#2d6f62;--water-dark:#1f5147;--signal:#c86635;--danger:#a43b32;--radius:2px;background:#f3efe6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f3efe6;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}h1,h2,p{margin-top:0}h1,h2,.wordmark{font-family:Georgia,Times New Roman,serif}.auth-shell{place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:min(30rem,100%);padding:clamp(2rem,7vw,4rem)}.auth-card h1{letter-spacing:-.055em;margin-bottom:.75rem;font-size:clamp(3rem,12vw,5.5rem);line-height:.95}.eyebrow{color:var(--water);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.65rem;font-size:.74rem;font-weight:800}.lede{color:var(--muted);font-size:1.1rem;line-height:1.55}.notice,.error{border-radius:var(--radius);background:#edf5f1;padding:.8rem 1rem;line-height:1.4}.error{color:var(--danger);background:#fbecea}.dev-link{color:var(--water);margin-top:.75rem;font-weight:700;display:block}.app-shell{width:min(72rem,100% - 2rem);margin:0 auto;padding-bottom:5rem}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:5rem;display:flex}.app-header>div{align-items:baseline;gap:1rem;display:flex}.logo{color:var(--ink);align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.logo .wordmark{letter-spacing:-.03em;font-size:1.55rem;font-weight:700}.auth-logo{color:var(--water);align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.auth-logo h1{letter-spacing:-.055em;margin:0;font-size:clamp(2.5rem,10vw,4.5rem);line-height:.95}.wordmark{font-family:Georgia,Times New Roman,serif;text-decoration:none}.welcome{color:var(--muted);font-size:.9rem}.header-actions{align-items:center;gap:.4rem;display:flex}.quiet-link{color:var(--muted);padding:.35rem .55rem;font-size:.9rem;font-weight:700;text-decoration:none}.quiet-link:hover{color:var(--ink)}.section-heading{justify-content:space-between;align-items:end;padding:3.5rem 0 1.4rem;display:flex}.section-heading h1{letter-spacing:-.045em;margin-bottom:0;font-size:clamp(2.3rem,6vw,4.5rem);font-weight:500}button{border:1px solid var(--line);border-radius:var(--radius);min-height:2.55rem;color:var(--ink);background:var(--paper);padding:.55rem .85rem;font-weight:700}button:hover{border-color:#aaa397}button.primary{border-color:var(--water);color:#fff;background:var(--water)}button.primary:hover{background:var(--water-dark)}.primary-link{border:1px solid var(--water);border-radius:var(--radius);color:#fff;background:var(--water);justify-content:center;align-items:center;min-height:2.55rem;padding:.55rem .85rem;font-weight:700;text-decoration:none;display:inline-flex}.primary-link:hover{background:var(--water-dark)}button.quiet{min-height:auto;color:var(--muted);background:0 0;border:1px solid #0000;padding:.35rem .55rem}button.quiet:hover{border-color:var(--line)}button.danger-button{color:var(--danger);border-color:#0000}button.danger-button:hover{background:#fbecea;border-color:#e3c4c0}.stack{gap:.9rem;display:grid}label{color:var(--muted);gap:.35rem;font-size:.82rem;font-weight:750;display:grid}input,textarea,select{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-height:2.7rem;color:var(--ink);background:#fff;padding:.65rem .75rem}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline-offset:1px;outline:2px solid #87b9ad}.two{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.checkbox{align-items:center;gap:.5rem;display:flex}.checkbox input{width:1rem;min-height:1rem}.form-card{padding:1rem 0}.weekday-picker{border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;gap:.55rem .9rem;margin:0;padding:.8rem;display:flex}.weekday-picker legend{color:var(--muted);padding:0 .3rem;font-size:.82rem;font-weight:750}.date-picker{color:var(--muted);gap:.35rem;font-size:.82rem;font-weight:750;display:grid}.date-field-group{border:1px solid var(--line);border-radius:var(--radius);background:#fff;align-items:center;min-height:2.7rem;padding-left:.75rem;display:flex}.date-field-group [role=spinbutton]{border-radius:var(--radius);color:var(--ink);outline:none;padding:.2rem .05rem;font-size:1rem;font-weight:400}.date-field-group [role=spinbutton][data-focused]{color:#fff;background:var(--water)}.date-field-group button{border:0;border-left:1px solid var(--line);border-radius:0 var(--radius) var(--radius) 0;margin-left:auto}.date-popover{z-index:2000;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:.8rem}.calendar-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.calendar-header h2{margin:0;font-family:inherit;font-size:1rem}.date-popover th{color:var(--muted);padding:.35rem;font-size:.72rem}.date-popover td{text-align:center;padding:.1rem}.date-popover [role=gridcell]{border-radius:var(--radius);text-align:center;vertical-align:middle;width:2.2rem;min-width:2.2rem;height:2.2rem;color:var(--ink);cursor:pointer;padding:0}.date-popover [role=gridcell][data-selected]{color:#fff;background:var(--water)}.date-popover [role=gridcell][data-focus-visible]{outline:2px solid var(--signal)}.modal-overlay{z-index:1000;background:#17372c33;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-content{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:min(38rem,100%);max-height:calc(100vh - 2rem);overflow:auto}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1.1rem 1.4rem;display:flex}.modal-header h2{margin:0;font-size:1.3rem}.modal-body{padding:1.4rem}.organizer-panel{border:1px solid var(--line);border-radius:var(--radius);background:#edf5f1;margin-top:2rem;padding:1.2rem}.organizer-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.organizer-grid button{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--water-dark);padding:.85rem;font-weight:800}.organizer-grid button:hover{border-color:var(--water);background:#f5fbf8}details{border-top:1px solid var(--line)}summary{color:var(--water-dark);cursor:pointer;padding:.85rem 0;font-weight:800}.roster-list{margin-top:1rem;display:grid}.roster-list>div{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 0;display:flex}.roster-list span{display:grid}.roster-list small{color:var(--muted);text-transform:capitalize}.roster-actions{justify-content:flex-end;align-items:start;gap:.35rem;display:flex}.settings-page{width:min(48rem,100%);margin:0 auto}.settings-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin-bottom:1rem;padding:1.25rem}.settings-card h2{margin-bottom:.5rem}.email-status{gap:.55rem;padding-bottom:1rem;display:grid}.email-status small{overflow-wrap:anywhere}.schedule-actions{align-items:center;gap:.35rem;display:flex}.schedule-tabs{gap:.45rem;margin:-.5rem 0 1rem;display:flex}.schedule-tabs [role=tab]{border-radius:var(--radius)}.schedule-tabs [role=tab][aria-selected=true]{border-color:var(--water);color:#fff;background:var(--water)}.practice-list{gap:1rem;display:grid}.calendar-view{gap:.75rem;display:grid}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.calendar-range{border:none;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;display:flex}.calendar-range button,.calendar-nav button{border-radius:var(--radius)}.calendar-range button.selected{border-color:var(--water);color:#fff;background:var(--water)}.calendar-nav{align-items:center;gap:.45rem;display:flex}.calendar-title{text-align:center;min-width:9.5rem}.cal-grid{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.cal-weekday{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:#f5f5ee;padding:.45rem .5rem;font-size:.72rem;font-weight:800}.cal-day{border-top:1px solid var(--line);border-left:1px solid var(--line);min-height:5.4rem;padding:.35rem .4rem}.cal-day:nth-child(7n+8){border-left:none}.cal-day:nth-child(n+8):nth-child(-n+14){border-top:none}.cal-day.outside{background:#f7f4ec}.cal-date{border-radius:var(--radius);min-width:1.4rem;color:var(--muted);text-align:center;padding:.05rem .3rem;font-size:.74rem;font-weight:700;display:inline-block}.cal-day.outside .cal-date{color:#b7b2a5}.cal-day.today .cal-date{color:#fff;background:var(--water)}.cal-chip{border:1px solid var(--line);border-radius:var(--radius);text-align:left;background:#edf5f1;width:100%;margin-top:.3rem;padding:.25rem .35rem;display:block}.cal-chip:hover{border-color:var(--water)}.cal-chip-time{color:var(--water);font-size:.68rem;font-weight:800;display:block}.cal-chip-title{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;display:block;overflow:hidden}.cal-chip.cancelled{background:#fbecea;border-color:#e3c4c0}.cal-chip.cancelled .cal-chip-time{color:var(--danger)}.cal-chip.cancelled .cal-chip-title{color:var(--danger);text-decoration:line-through}@media (width<=640px){.cal-day{min-height:4.2rem;padding:.25rem}.cal-chip-title{display:none}.cal-chip{padding:.2rem .25rem}}.practice-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:clamp(1rem,4vw,1.5rem)}.practice-card:focus{outline-offset:3px;outline:3px solid #87b9ad}.practice-summary{grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;display:grid}.practice-summary h2{margin-bottom:.15rem;font-size:1.55rem}.practice-summary p{color:var(--muted);margin:0}.date-tile{border-radius:var(--radius);color:#fff;background:var(--water);text-align:center;min-width:3.7rem;padding:.55rem;display:grid}.date-tile strong{text-transform:uppercase;font-size:.72rem}.date-tile span{font-size:.78rem}.sync-badge{border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:.25rem .5rem;font-size:.68rem;font-weight:800}.sync-badge.synced{color:var(--water);border-color:var(--water)}.sync-badge.failed{color:var(--danger);background:#fbecea;border-color:#e3c4c0}.badge{border-radius:var(--radius);text-transform:uppercase;padding:.3rem .5rem;font-size:.72rem;font-weight:800}.badge.danger{color:var(--danger);background:#fbecea;border:1px solid #e3c4c0}.workout{border-left:.2rem solid var(--water);white-space:pre-wrap;background:#f5f5ee;margin:1rem 0;padding:.9rem}.workout-field{white-space:normal;grid-template-columns:minmax(6.5rem,max-content) 1fr;align-items:baseline;gap:.9rem;display:grid}.workout-field+.workout-field{margin-top:.35rem}.workout-label{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:.72rem;font-weight:800}.workout-value{overflow-wrap:anywhere}.workout-text{margin:.6rem 0 0}.coverage{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.25rem;margin:1rem 0;font-size:.88rem;font-weight:700;display:flex}.needs-help{color:var(--signal)}.unavailable{flex-wrap:wrap;gap:.35rem .6rem;margin:.5rem 0 1rem;display:flex}.unavailable-person{border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);padding:.2rem .45rem;font-size:.78rem;font-weight:600}.empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center;padding:3rem}.add-lineup{gap:1.25rem}.add-lineup .two{grid-template-columns:1fr 7rem;gap:.45rem;margin-bottom:.45rem;display:grid}.roster-pick{flex-wrap:wrap;gap:.4rem;max-height:14rem;display:flex;overflow-y:auto}.roster-pick button{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);text-align:left;gap:.1rem;padding:.45rem .7rem;display:grid}.roster-pick button:hover{border-color:var(--water)}.roster-pick button small{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem}.hint{color:var(--muted);margin:0;font-size:.88rem}.availability-picker{border:1px solid var(--line);border-radius:var(--radius);gap:.45rem;padding:.75rem;display:grid}.availability-picker .hint{margin-bottom:.3rem}.availability-row{grid-template-columns:1fr;gap:.35rem;display:grid}.availability-row input:not([type=checkbox]){width:100%}.seat-admin{flex-wrap:wrap;gap:.35rem;display:flex}.blank-seat{color:var(--muted);font-style:italic}.slot-editor{border-radius:var(--radius);background:#edf5f1;gap:.65rem;margin:1rem 0;padding:.9rem;display:grid}.status-buttons{flex-wrap:wrap;gap:.45rem;display:flex}.status-buttons button{border-radius:var(--radius)}.status-buttons button.selected{border-color:var(--water);color:#fff;background:var(--water)}.status-buttons button.warning{border-color:var(--signal);background:var(--signal)}.sub-row{grid-template-columns:1fr auto;gap:.45rem;display:grid}.slot-editor.compact{background:0 0;margin:0;padding:0;display:block}.slot-editor.compact .status-buttons{justify-content:flex-end}.slot-editor.compact button{min-height:2rem;padding:.3rem .45rem;font-size:.72rem}.lineup{display:grid}.lineup-row{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.7rem 0;display:grid}.lineup-row>div:first-child{grid-template-columns:3rem 1fr;align-items:center;display:grid}.lineup-row small{color:var(--muted);grid-column:2}.seat{color:var(--muted);text-transform:uppercase;font-size:.75rem}.organizer-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.8rem;padding-top:.8rem;display:flex}.practice-card.cancelled{opacity:.6;background:#eeeae2;padding:.85rem clamp(1rem,4vw,1.5rem)}.practice-card.cancelled .practice-summary h2{margin:0;font-size:1.1rem}.practice-card.cancelled .date-tile{min-width:3rem;padding:.35rem}.practice-card.cancelled .date-tile strong{font-size:.65rem}.practice-card.cancelled .date-tile span{font-size:.72rem}.practice-card.cancelled .practice-summary p{font-size:.82rem}@media (width<=44rem){.app-shell{width:min(100% - 1rem,72rem)}.app-header{min-height:4.25rem}.welcome{display:none}.section-heading{padding-top:2.5rem}.organizer-grid,.two,.practice-summary{grid-template-columns:auto 1fr}.practice-summary .badge,.practice-summary .sync-badge{grid-column:2;justify-self:start}.lineup-row{grid-template-columns:1fr}.slot-editor.compact .status-buttons{justify-content:flex-start}.organizer-actions,.roster-list>div,.roster-actions{flex-direction:column;align-items:stretch}}
