:root{--color-primary:#43b02a;--color-primary-dark:#357a1f;--color-primary-light:#e8f7e4;--color-on-primary:#000;--color-wordmark:#3a9a24;--color-bg:#fff;--color-bg-subtle:#f5f5f5;--color-surface:#fff;--color-border:#e0e0e0;--color-border-input:#8a8a8a;--color-text:#1a1a1a;--color-text-muted:#666;--color-text-inverse:#fff;--color-danger:#d32f2f;--color-danger-light:#fdecea;--color-warning:#f57c00;--color-warning-text:#9a4f00;--color-warning-light:#fff3e0;--color-success:#2e7d32;--color-success-light:#e8f5e9;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-card:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1414140f;--shadow-card:0 1px 3px #14141414, 0 6px 16px #1414140d;--shadow-raised:0 8px 28px #14141429;--font-size-xs:12px;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--nav-height:56px;--touch-target:44px;--duration-fast:.12s;--duration-base:.22s;--focus-ring:var(--color-primary-dark);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--color-primary:#4ec830;--color-primary-dark:#43b02a;--color-primary-light:#1a2e15;--color-wordmark:#43b02a;--color-bg:#121212;--color-bg-subtle:#1e1e1e;--color-surface:#1e1e1e;--color-border:#333;--color-border-input:#6e6e6e;--color-text:#f0f0f0;--color-text-muted:#999;--color-text-inverse:#121212;--color-danger:#ef5350;--color-danger-light:#2a1515;--color-warning:#ffa726;--color-warning-text:#ffa726;--color-warning-light:#2a1f0a;--color-success:#66bb6a;--color-success-light:#0f2210;--focus-ring:var(--color-primary);--shadow-sm:0 1px 2px #0006;--shadow-card:0 1px 3px #00000080, 0 6px 16px #00000059;--shadow-raised:0 8px 28px #0000008c}}:root[data-theme=dark]{--color-primary:#4ec830;--color-primary-dark:#43b02a;--color-primary-light:#1a2e15;--color-wordmark:#43b02a;--color-bg:#121212;--color-bg-subtle:#1e1e1e;--color-surface:#1e1e1e;--color-border:#333;--color-border-input:#6e6e6e;--color-text:#f0f0f0;--color-text-muted:#999;--color-text-inverse:#121212;--color-danger:#ef5350;--color-danger-light:#2a1515;--color-warning:#ffa726;--color-warning-text:#ffa726;--color-warning-light:#2a1f0a;--color-success:#66bb6a;--color-success-light:#0f2210;--focus-ring:var(--color-primary);--shadow-sm:0 1px 2px #0006;--shadow-card:0 1px 3px #00000080, 0 6px 16px #00000059;--shadow-raised:0 8px 28px #0000008c}label,.label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-2);padding:0;font-weight:600;display:block}.field{margin-bottom:var(--space-4)}.field:last-child{margin-bottom:0}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:var(--space-1) 0 0}.text-input,.select-input{width:100%;min-height:var(--touch-target);background:var(--color-bg-subtle);border:1px solid var(--color-border-input);color:var(--color-text);font:inherit;font-size:var(--font-size-base);padding:12px var(--space-3);border-radius:var(--radius-sm)}.select-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999999' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.field-row{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.field-row>.field{margin-bottom:0}.field-row>.field:only-child{grid-column:1/-1}.status-error+.submit-btn,.status-success+.submit-btn{margin-top:var(--space-3)}textarea.text-input{resize:vertical;min-height:120px;line-height:1.5}@media (width<=560px){.field-row{gap:var(--space-4);grid-template-columns:1fr}}.checkbox-row{align-items:flex-start;gap:var(--space-2);display:flex}.checkbox-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--color-primary);flex-shrink:0;margin:0}.checkbox-row label{text-transform:none;letter-spacing:0;font-size:var(--font-size-base);color:var(--color-text);margin:0}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:12px var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn--ghost{background:0 0}.submit-btn{width:100%;min-height:var(--touch-target);border-radius:var(--radius-sm);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);font:inherit;font-size:var(--font-size-lg);cursor:pointer;padding:16px 0;font-weight:700}.submit-btn:disabled{opacity:.4;cursor:not-allowed}.punch-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.punch-btn{min-height:var(--touch-target);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-xl);cursor:pointer;padding:22px 0;font-weight:700}.punch-btn:active{transform:scale(.98)}.punch-btn:disabled{opacity:.35;cursor:not-allowed}.punch-btn--in{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.punch-btn--out{background:0 0}.punch-btn--full{grid-column:1/-1}.page{max-width:480px;margin:0 auto}.page-wide{max-width:720px;margin:0 auto}@media (width>=900px){.page{max-width:640px}.page-wide{max-width:900px}}.page-header{margin-bottom:var(--space-5)}.page-header h1{font-size:var(--font-size-2xl);color:var(--color-text);letter-spacing:.01em;font-weight:700}.page-header p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:2px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5)}.card+.card{margin-top:var(--space-4)}.page-top{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.page-top-back{width:var(--touch-target);height:var(--touch-target);margin-left:calc(var(--space-2) * -1);color:var(--color-text);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.page-top-back svg{width:22px;height:22px}.page-top-heading{flex:1;min-width:0}.page-top-heading h1{font-size:var(--font-size-2xl);color:var(--color-text);letter-spacing:.01em;font-weight:700}.page-top-heading p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:2px}.avatar{border-radius:var(--radius-pill);background:var(--color-primary);width:36px;height:36px;color:var(--color-on-primary);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.hub-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.hub-tile{gap:var(--space-2);min-height:108px;padding:var(--space-4);border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text);cursor:pointer;text-align:left;font:inherit;flex-direction:column;text-decoration:none;display:flex}.hub-tile:active{transform:scale(.98)}.hub-tile-icon{border-radius:var(--radius-md);background:var(--color-primary-light);width:40px;height:40px;color:var(--color-primary-dark);justify-content:center;align-items:center;display:inline-flex}.hub-tile-label{font-size:var(--font-size-base);font-weight:700}.hub-tile-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:auto}.stat-grid{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.stat-tile{padding:var(--space-3) var(--space-1);border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border);flex-direction:column;align-items:center;gap:2px;display:flex}.stat-tile-value{font-size:var(--font-size-xl);color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700}.stat-tile-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.list-card{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);display:flex}.list-card+.list-card{margin-top:var(--space-2)}.list-card-icon{border-radius:var(--radius-pill);background:var(--color-primary-light);width:32px;height:32px;color:var(--color-primary-dark);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.list-card-body{flex:1;min-width:0}.list-card-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:700}.list-card-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:1px}.list-card-trail{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:right;flex-shrink:0}.cal-widget{gap:var(--space-3);flex-direction:column;display:flex}.cal-nav{justify-content:space-between;align-items:center;display:flex}.cal-nav-btn{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-lg);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.cal-month{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.cal-weekdays{gap:var(--space-1);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted);grid-template-columns:repeat(7,1fr);font-weight:700;display:grid}.cal-grid{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.cal-day{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-subtle);min-height:40px;color:var(--color-text);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.cal-day.is-empty{visibility:hidden;cursor:default}.cal-day.has-punch{background:var(--color-primary-light);border-color:var(--color-primary);font-weight:700}.cal-day.is-incomplete{background:var(--color-warning-light);border-color:var(--color-warning);font-weight:700}.cal-day.is-today{outline:2px solid var(--color-primary-dark);outline-offset:-2px}.cal-day.is-selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:700}.cal-day-marker{font-size:var(--font-size-xs);color:var(--color-warning);font-weight:700;line-height:1;position:absolute;top:3px;right:5px}.cal-day.is-selected .cal-day-marker{color:var(--color-on-primary)}.cal-legend{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.cal-legend-swatch{border-radius:var(--radius-sm);background:var(--color-warning-light);border:1px solid var(--color-warning);width:18px;height:18px;color:var(--color-warning);font-size:var(--font-size-xs);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.week-strip{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.week-day{padding:var(--space-2) 0;border-radius:var(--radius-md);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:2px;display:flex}.week-day-name{font-size:var(--font-size-xs);color:var(--color-text-muted)}.week-day-num{font-size:var(--font-size-base);font-variant-numeric:tabular-nums;font-weight:700}.week-day.is-selected{background:var(--color-primary);border-color:var(--color-primary)}.week-day.is-selected .week-day-name,.week-day.is-selected .week-day-num{color:var(--color-on-primary)}.week-day.is-today .week-day-num{color:var(--color-primary-dark)}.week-day.is-selected.is-today .week-day-num{color:var(--color-on-primary)}.week-day-dot{border-radius:var(--radius-pill);background:var(--color-warning);width:5px;height:5px}.stat-wide{gap:var(--space-2);flex-direction:column;display:flex}.stat-wide-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.stat-wide-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.stat-wide-value{font-size:var(--font-size-xl);color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700}.stat-wide-track{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:3px;height:6px;overflow:hidden}.stat-wide-fill{background:var(--color-primary);height:100%}.alert-card{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);border-left:3px solid var(--color-warning);background:var(--color-surface);display:flex}.alert-card-text{flex-direction:column;gap:2px;min-width:0;display:flex}.alert-card-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.alert-card-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.alert-card-action{font-size:var(--font-size-sm);color:var(--color-primary-dark);white-space:nowrap;flex-shrink:0;font-weight:700;text-decoration:none}.sheet-overview-link{width:100%;padding:var(--space-4) var(--space-2);border:none;border-bottom:1px solid var(--color-border);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;gap:2px;text-decoration:none;display:flex}.sheet-overview-link:last-of-type{border-bottom:none}.sheet-overview-link:hover{background:var(--color-bg-subtle)}.sheet-overview-link-label{font-size:var(--font-size-base);font-weight:700}.sheet-overview-link-sub{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.link-list{gap:var(--space-3);flex-direction:column;display:flex}.link-card{padding:var(--space-4);border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);color:inherit;cursor:pointer;font:inherit;text-align:left;flex-direction:column;gap:2px;text-decoration:none;display:flex}.link-card:active{transform:scale(.99)}.link-card-top{align-items:center;gap:var(--space-2);display:flex}.link-card-label{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.link-card-sub{font-size:var(--font-size-sm);color:var(--color-text-muted)}.link-card--disabled{opacity:.5;box-shadow:none;cursor:default}.filter-bar{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-chip{font-size:var(--font-size-xs);padding:6px var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-subtle);color:var(--color-text-muted);cursor:pointer;font-weight:600}.filter-chip.active{border-color:var(--color-primary);color:var(--color-on-primary);background:var(--color-primary)}.member-list{gap:var(--space-2);flex-direction:column;display:flex}.member-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.member-row.expanded{border-color:var(--color-primary)}.member-row-header{width:100%;padding:var(--space-4);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;display:flex}.member-row-top{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.member-name{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.member-number{color:var(--color-text-muted);font-weight:400}.member-meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.member-detail-form{padding:var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-3);flex-direction:column;display:flex}.admin-actions-row{gap:var(--space-2);display:flex}.admin-actions-row .btn{flex:1}.week-day.is-selected .week-day-dot{background:var(--color-on-primary)}.section-divider{font-size:var(--font-size-base);color:var(--color-text-muted);margin:var(--space-5) 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);font-weight:700}.section-divider:first-child{margin-top:0}.empty-note{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;padding:var(--space-5) 0}.status-error{border:1px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-danger);text-align:center}.status-loading{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.status-success{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--color-success);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-success);text-align:center;font-weight:600;display:flex}.banner{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-warning-light);border-left-width:3px;display:flex}.waiver-box{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-light);border-left-width:3px;flex-direction:column;display:flex}.waiver-box-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:700}.waiver-box-text{max-height:160px;padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-sm);white-space:pre-wrap;line-height:1.6;overflow-y:auto}.stamp{border:2px solid var(--color-primary);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);text-align:center;animation:.22s ease-out stamp-in}@keyframes stamp-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.stamp-type{font-size:var(--font-size-sm);color:var(--color-primary);margin:0 0 var(--space-1);font-weight:700}.stamp-name{font-size:var(--font-size-lg);color:var(--color-text);margin:0 0 var(--space-1);font-weight:700}.stamp-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:capitalize;margin:0 0 var(--space-1)}.stamp-time{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.stamp-actions{margin-top:var(--space-4)}.combo{position:relative}.combo-input{width:100%;min-height:var(--touch-target);background:var(--color-bg-subtle);border:1px solid var(--color-border-input);color:var(--color-text);font:inherit;font-size:var(--font-size-base);padding:14px var(--space-4);border-radius:var(--radius-sm);padding-right:40px}.combo-input:disabled{opacity:.5}.combo-chevron{right:var(--space-4);pointer-events:none;width:12px;height:8px;color:var(--color-text-muted);transition:transform .15s;position:absolute;top:50%;transform:translateY(-50%)}.combo-chevron.open{transform:translateY(-50%)rotate(180deg)}.combo-chevron svg{width:100%;height:100%;display:block}.combo-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);z-index:10;max-height:260px;margin:0;padding:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 20px #0000001f}.combo-option{min-height:var(--touch-target);padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;align-items:center;display:flex}.combo-option.active,.combo-option:hover{background:var(--color-primary-light)}.combo-option.active{box-shadow:inset 4px 0 0 var(--color-primary-dark);font-weight:600}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.combo-empty{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted)}.data-table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:10px var(--space-3);text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border)}.data-table tbody tr:last-child td{border-bottom:none}.data-table th{background:var(--color-bg-subtle);font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:700}.data-table .name-col{background:var(--color-surface);z-index:1;position:sticky;left:0}.data-table th.name-col{background:var(--color-bg-subtle);z-index:2}.badge{line-height:1;font-size:var(--font-size-xs);border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:5px 10px;font-weight:700;display:inline-flex}.badge--success{border-color:var(--color-success);color:var(--color-success)}.badge--warning{border-color:var(--color-warning);color:var(--color-warning-text)}.badge--danger{border-color:var(--color-danger);color:var(--color-danger)}.auth-page{min-height:100svh;padding:var(--space-5);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:400px;overflow:hidden}.auth-header{background:var(--color-primary);padding:var(--space-5);text-align:center}.auth-eyebrow{font-size:var(--font-size-xs);color:var(--color-on-primary);opacity:.75;margin:0 0 var(--space-1)}.auth-header h1{font-size:var(--font-size-xl);color:var(--color-on-primary);margin:0;font-weight:700}.auth-body{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.auth-alt{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;margin:0}.auth-note{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6}.nav-groups{gap:var(--space-5);flex-direction:column;display:flex}.nav-group-heading{margin:0 0 var(--space-2) 2px;font-size:var(--font-size-base);color:var(--color-text-muted);font-weight:700}.nav-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin:0;padding:0;list-style:none;overflow:hidden}.nav-list li+li .nav-row{border-top:1px solid var(--color-border)}.nav-row{width:100%;min-height:54px;padding:10px var(--space-4);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;column-gap:14px;text-decoration:none;display:grid}.nav-row:hover{background:var(--color-bg-subtle)}.nav-row-icon{color:var(--color-primary-dark);display:inline-flex}.nav-row-icon svg{width:24px;height:24px}.nav-row--safety .nav-row-icon,.nav-row--alert .nav-row-icon{color:var(--color-warning)}.nav-row--alert .nav-row-title{font-weight:650}.status-list .nav-row{cursor:default}.status-list .nav-row:hover{background:0 0}.status-list .nav-row-trail .badge{white-space:nowrap}.nav-note{margin:var(--space-2) 2px 0;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.callout{align-items:start;column-gap:var(--space-3);margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-primary-dark);border-radius:var(--radius-sm);background:var(--color-primary-light);color:var(--color-text);font-size:var(--font-size-sm);grid-template-columns:22px minmax(0,1fr);line-height:1.5;display:grid}.callout svg{width:22px;height:22px;color:var(--color-primary-dark)}.text-link-btn{min-height:var(--touch-target);padding:var(--space-2) 2px;color:var(--color-primary-dark);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-self:flex-start;font-weight:600;text-decoration:underline}.nav-row-text{flex-direction:column;min-width:0;display:flex}.nav-row-title{font-size:1.0625rem;font-weight:550;line-height:1.35}.nav-row-sub{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.35}.nav-row-trail{color:var(--color-text-muted);display:inline-flex}.nav-row-trail svg{width:18px;height:18px}.wordmark{letter-spacing:-.01em;white-space:nowrap;color:var(--color-text);margin:0;font-weight:700;line-height:1.1}.wordmark-accent{color:var(--color-wordmark)}.home-wordmark{text-align:center;padding:var(--space-2) 0 var(--space-1);margin-bottom:var(--space-4);container-type:inline-size}.home-wordmark .wordmark{font-size:min(12cqi,2.375rem)}.home-wordmark-hello{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-size:1.0625rem}.seg{border:1px solid var(--color-border-input);border-radius:var(--radius-pill);background:var(--color-surface);padding:3px;display:inline-flex}.seg button{border-radius:var(--radius-pill);min-height:40px;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:0;padding:8px 16px;font-weight:600}.seg button[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}#root{min-height:100svh}h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.25}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}a{color:var(--color-primary-dark)}.app-shell{min-height:100svh}.page-content{padding:var(--space-4);padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px) + var(--space-8) + var(--space-4))}.page-content:focus,.page-content h1[tabindex="-1"]:focus{outline:none}.tab-bar{z-index:50;height:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{min-width:0;min-height:var(--touch-target);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-weight:600;text-decoration:none;display:flex}.tab.is-active{color:var(--color-primary-dark)}.tab.is-active .tab-label{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.tab-icon{display:inline-flex}.tab-icon svg{width:24px;height:24px}.tab-label{white-space:nowrap;line-height:1}.tab--center{position:relative}.tab--center .tab-fab{border-radius:var(--radius-pill);background:var(--color-primary);width:56px;height:56px;color:var(--color-on-primary);border:4px solid var(--color-bg);box-shadow:var(--shadow-raised);justify-content:center;align-items:center;display:flex;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.tab--center .tab-fab svg{width:24px;height:24px}.tab--center .tab-label{margin-top:26px}.tab--center.is-active .tab-fab{background:var(--color-primary-dark)}.side-nav{display:none}@media (width>=900px){.tab-bar{display:none}.side-nav{z-index:50;width:256px;padding:var(--space-5) var(--space-3);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;container-type:inline-size}.page-content{padding:var(--space-6) var(--space-6) var(--space-8);margin-left:256px}.side-wordmark{padding:0 var(--space-3) var(--space-4);font-size:min(12cqi,1.625rem)}.side-main,.side-section{flex-direction:column;gap:2px;display:flex}.side-heading{margin:var(--space-4) var(--space-3) var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:700}.side-link{align-items:center;column-gap:var(--space-3);width:100%;min-height:var(--touch-target);padding:8px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:20px minmax(0,1fr);font-weight:550;text-decoration:none;display:grid}.side-link svg{width:20px;height:20px;color:var(--color-primary-dark)}.side-link:hover{background:var(--color-bg-subtle)}.side-link.is-active{background:var(--color-primary-light);color:var(--color-primary-dark);font-weight:700}.side-link--primary{margin:var(--space-1) 0;background:var(--color-primary);color:var(--color-on-primary);font-weight:700}.side-link--primary svg{color:var(--color-on-primary)}.side-link--primary:hover{background:var(--color-primary);filter:brightness(1.05)}.side-link--primary.is-active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:inset 0 0 0 2px var(--color-text)}.side-link--safety svg{color:var(--color-warning)}.side-spacer{min-height:var(--space-4);flex:1}.side-account{padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;gap:2px;display:flex}.side-appearance{padding:0 var(--space-3) var(--space-2)}.side-appearance .seg button{min-height:36px;padding:6px 10px}}.home-section{flex-direction:column;display:flex}.home-next-practice{margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);grid-template-columns:24px minmax(0,1fr);align-items:center;column-gap:14px;display:grid}.home-next-practice svg{width:24px;height:24px;color:var(--color-primary-dark)}.home-next-practice-title{font-variant-numeric:tabular-nums;margin:0;font-weight:650}.home-next-practice-sub{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.home-signin{gap:var(--space-4);flex-direction:column;display:flex}.home-signin-text{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;line-height:1.6}.home-signin-actions{gap:var(--space-3);display:flex}.home-signin-actions .btn{flex:1}.clockin-card{gap:var(--space-3);flex-direction:column;display:flex}.clockin-card .submit-btn{margin-top:0}.clockin-card .field{margin-bottom:0}.clockin-date{font-size:var(--font-size-sm);color:var(--color-primary-dark);text-align:center;font-weight:700}.clockin-who{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.clockin-who-name{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.clockin-who-type{font-size:var(--font-size-xs);color:var(--color-text-muted)}.clockin-who .badge{margin-left:auto}.clockin-hint{margin-top:var(--space-3);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.missedpunch-card{gap:var(--space-3);flex-direction:column;display:flex}.missedpunch-card .field,.missedpunch-card .field-row{margin-bottom:0}.missedpunch-card .submit-btn{margin-top:0}.missedpunch-who{align-items:baseline;gap:var(--space-2);margin-top:calc(var(--space-1) * -1);flex-wrap:wrap;display:flex}.missedpunch-who-name{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.missedpunch-who-type{font-size:var(--font-size-xs);color:var(--color-text-muted)}.missedpunch-summary{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border)}.missedpunch-summary-name{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:var(--space-1);font-weight:700}.missedpunch-summary-row{font-size:var(--font-size-sm);justify-content:space-between;padding:2px 0;display:flex}.missedpunch-summary-row span:first-child{color:var(--color-text-muted);font-size:var(--font-size-xs)}.missedpunch-summary-missing{color:var(--color-warning);font-weight:700}.myatt-detail-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--font-size-sm);color:var(--color-text);border-bottom:1px solid var(--color-border);display:flex}.myatt-detail-row:last-child{border-bottom:none}.myatt-detail-row span:first-child{color:var(--color-text-muted);font-size:var(--font-size-xs)}.myatt-warning{color:var(--color-warning);font-size:var(--font-size-sm);margin-bottom:var(--space-2);font-weight:600}.myatt-stats{grid-template-columns:1fr 1fr}.records-card{gap:var(--space-4);padding:var(--space-4);flex-direction:column;display:flex}.records-nav{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.records-nav-btn{color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-2);background:0 0;border:none}.records-nav-btn:hover{color:var(--color-primary-dark)}.records-week{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.records-card .field{margin-bottom:0}.records-table th{text-align:center;padding-left:var(--space-2);padding-right:var(--space-2)}.records-table th.name-col{text-align:left}.records-table th.name-col,.records-table td.name-col{text-overflow:ellipsis;max-width:130px;overflow:hidden}.records-table td.name-col{padding-left:var(--space-2);padding-right:var(--space-2);font-size:var(--font-size-xs);font-weight:600}.records-col-date{font-size:var(--font-size-xs);color:var(--color-text);display:block}.records-col-day{font-size:var(--font-size-xs);color:var(--color-text-muted);display:block}.records-cell{text-align:center;min-width:76px;padding-left:var(--space-2);padding-right:var(--space-2)}.records-in,.records-out{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;line-height:1.5;display:block}.records-in{color:var(--color-success);font-weight:600}.records-out{color:var(--color-text-muted)}.records-missing{font-size:var(--font-size-sm);color:var(--color-warning);font-weight:700;line-height:1.4;text-decoration:none;display:block}.records-missing:hover{text-decoration:underline}.records-hint{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.records-missing-key{border-radius:var(--radius-sm);background:var(--color-warning-light);border:1px solid var(--color-warning);width:18px;height:18px;color:var(--color-warning);font-size:var(--font-size-xs);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.eligibility-filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.eligibility-filters .field{margin-bottom:0}.eligibility-notes{white-space:normal;max-width:260px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.ec-filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.ec-filters .field{margin-bottom:0}.ec-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ec-list .card+.card{margin-top:0}.ec-row{gap:var(--space-3);flex-direction:column;display:flex}.ec-row-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.ec-skater{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.ec-contact{gap:var(--space-2);flex-direction:column;display:flex}.ec-contact-name{font-size:var(--font-size-base);color:var(--color-text);margin:0;font-weight:600}.ec-contact-relationship{color:var(--color-text-muted);font-weight:400}.ec-phones{gap:var(--space-2);flex-wrap:wrap;display:flex}.ec-phone{min-height:var(--touch-target);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-variant-numeric:tabular-nums;flex:200px;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.ec-phone--alt{border:1px solid var(--color-border-input);color:var(--color-text);background:0 0}.ec-no-phone{text-align:left;padding:0}.ec-edit-btn{align-self:flex-start}.emergency-contact-form{gap:var(--space-3);flex-direction:column;display:flex}.emergency-contact-remove-btn{width:100%;color:var(--color-danger);border-color:var(--color-danger)}.emergency-contact-form .field,.emergency-contact-form .field-row{margin-bottom:0}.ec-medical{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-bg-subtle);border:1px solid var(--color-border);flex-direction:column;display:flex}.ec-medical-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;font-weight:700}.ec-medical-notes{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.profile-status-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.profile-member-type{font-size:var(--font-size-sm);color:var(--color-text-muted)}.profile-locked-fields{gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border);flex-direction:column;display:flex}.profile-locked-row{justify-content:space-between;gap:var(--space-3);font-size:var(--font-size-sm);display:flex}.profile-locked-row span:first-child{color:var(--color-text-muted)}.profile-locked-row span:last-child{text-align:right;font-variant-numeric:tabular-nums}.profile-status-hint{margin-bottom:var(--space-5)}.profile-section-hint{margin:0 0 var(--space-4);font-size:var(--font-size-sm);line-height:1.5}.hours-notes{min-height:88px}.hours-hint{margin:calc(var(--space-3) * -1) 0 var(--space-4)}.hours-months{gap:var(--space-2);flex-direction:column;display:flex}.hours-month{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.hours-month-summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--touch-target);padding:var(--space-2) var(--space-4);cursor:pointer;list-style-position:inside;display:flex}.hours-month-name{font-weight:700}.hours-month-total{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums;display:inline-flex}.hours-entries{padding:0 var(--space-4);margin:0;list-style:none}.hours-entry{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) 0;border-top:1px solid var(--color-border);display:flex}.hours-entry-text{flex-direction:column;min-width:0;display:flex}.hours-entry-title{font-weight:600}.hours-entry-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.hours-entry-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.hours-remove{color:var(--color-danger)}.hours-login-note{margin:0 0 var(--space-4) 2px}.more-account{align-items:center;column-gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);grid-template-columns:auto minmax(0,1fr) auto;text-decoration:none;display:grid}.more-account:hover{background:var(--color-bg-subtle)}.more-account-text{flex-direction:column;min-width:0;display:flex}.more-account-name{overflow-wrap:anywhere;font-size:1.0625rem;font-weight:700}.more-account-sub{font-size:var(--font-size-sm);color:var(--color-text-muted)}.share-heading{margin:0 0 var(--space-2);font-size:var(--font-size-base);justify-content:space-between;align-items:baseline;font-weight:700;display:flex}.share-heading--second{margin-top:var(--space-4)}.share-count{font-size:var(--font-size-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-weight:600}.share-list{font-variant-numeric:tabular-nums;margin:0;padding-left:24px}.share-list li{padding:4px 0}.share-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.share-copied{min-height:1.5em;margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.sign-card{gap:var(--space-4);flex-direction:column;display:flex}.sign-doc{gap:var(--space-3);flex-direction:column;display:flex}.sign-doc-title{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.sign-doc-meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.sign-doc-text{max-height:55vh;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);font-size:var(--font-size-base);white-space:pre-wrap;line-height:1.6;overflow-y:auto}.sign-doc-text:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.members-add-btn{width:100%;margin-bottom:var(--space-4)}.members-create-card{margin-bottom:var(--space-4)}.members-no-account-badge{margin-left:var(--space-2)}.members-invite-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-warning-light);border:1px solid var(--color-warning);display:flex}.members-invite-text{flex-direction:column;gap:2px;min-width:0;display:flex}.members-invite-title{font-size:var(--font-size-sm);color:var(--color-text);font-weight:700}.members-invite-sub{font-size:var(--font-size-xs);color:var(--color-text-muted)}.schedule-day-list{gap:var(--space-3);flex-direction:column;display:flex}.schedule-day-row{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.schedule-day-row:last-child{border-bottom:none;padding-bottom:0}.schedule-day-times{align-items:center;gap:var(--space-2);padding-left:30px;display:flex}.schedule-day-times .text-input{flex:1;min-width:0}.schedule-time-sep{font-size:var(--font-size-sm);color:var(--color-text-muted);flex-shrink:0}.off-date-list{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.off-date-item{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;display:flex}.off-date-remove{min-width:var(--touch-target);min-height:var(--touch-target);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.schedule-note{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-3)}.off-date-remove:hover{color:var(--color-danger)}.off-date-add-row{gap:var(--space-2);display:flex}.off-date-add-row .text-input{flex:1}.documents-add-btn{width:100%;margin-bottom:var(--space-4)}.documents-create-card{margin-bottom:var(--space-4)}.document-textarea{resize:vertical;min-height:200px;font-family:inherit;line-height:1.6}.documents-audience{border:0;min-width:0;padding:0}.documents-audience-options{gap:var(--space-3);flex-direction:column;display:flex}.documents-signatures{gap:var(--space-2);padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.documents-signatures-heading{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.documents-signatures .label{margin:var(--space-2) 0 0}.documents-signature-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.documents-signature-list li{justify-content:space-between;gap:var(--space-1) var(--space-3);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.documents-signature-name{color:var(--color-text);font-weight:600}.documents-signature-meta{color:var(--color-text-muted)}.import-format-text{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6}.import-format-text+.import-format-text{margin-top:var(--space-2)}.import-summary{gap:var(--space-2);margin:var(--space-3) 0;display:flex}.import-preview-wrap{max-height:320px;margin-bottom:var(--space-4);overflow-y:auto}.import-row-error{background:var(--color-danger-light)}.import-batch-row{gap:var(--space-2);padding:var(--space-4);flex-direction:column;display:flex}.import-void-btn{align-self:flex-start}.import-template-btn{width:100%;margin-top:var(--space-4)}.positions-add-btn{width:100%;margin-bottom:var(--space-4)}.positions-create-card{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.positions-list{gap:var(--space-3);flex-direction:column;display:flex}.positions-list .card+.card{margin-top:0}.position-card{gap:var(--space-3);flex-direction:column;display:flex}.position-card-top{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.position-title{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.positions-capability-badges{gap:var(--space-1);flex-wrap:wrap;display:flex}.positions-capability-fieldset{border:none;min-width:0;margin:0;padding:0}.positions-capability-list{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border);flex-direction:column;display:flex}.position-edit-form,.position-add-form{gap:var(--space-3);flex-direction:column;display:flex}.position-holders{border-top:1px solid var(--color-border);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.position-holder{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.position-holder-text{flex-direction:column;min-width:0;display:flex}.position-holder-name{color:var(--color-text);font-weight:600}.position-holder-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.position-holder-remove{color:var(--color-danger);flex-shrink:0}.position-holders--past .position-holder-name{color:var(--color-text-muted);font-weight:400}.position-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.position-card-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.positions-delete-btn{width:100%;color:var(--color-danger);border-color:var(--color-danger)}.position-edit-form .field,.position-edit-form .field-row,.positions-create-card .field,.positions-create-card .field-row{margin-bottom:0}.teams-add-btn{width:100%;margin-bottom:var(--space-4)}.team-list{gap:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.team-list .card+.card{margin-top:0}.team-card{gap:var(--space-3);flex-direction:column;display:flex}.team-card .field,.team-card .field-row{margin-bottom:0}.team-card-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.team-title{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.team-card-meta{margin:calc(var(--space-2) * -1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.team-subheading{margin:var(--space-2) 0 0;font-size:var(--font-size-base);color:var(--color-text-muted);font-weight:700}.team-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.team-rows{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none}.team-row{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.team-row-text{flex-direction:column;min-width:0;display:flex}.team-row-name{color:var(--color-text);font-weight:600}.team-row-number{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-weight:400}.team-row-meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.team-row-actions{gap:var(--space-2);flex-shrink:0;display:flex}.team-row-btn{padding-left:var(--space-3);padding-right:var(--space-3)}.team-row-btn--danger{color:var(--color-danger)}.team-rows--past .team-row-name{color:var(--color-text-muted);font-weight:400}.team-add-form,.team-edit-form,.team-game-form{gap:var(--space-3);flex-direction:column;display:flex}.team-game-form{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.team-pool{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);min-width:0;margin:0}.team-pool legend{padding:0 var(--space-1)}.team-pool-count{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;font-weight:600}.team-pool-list{border-top:1px solid var(--color-border);max-height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.team-pool-option{align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-2) var(--space-1);border-bottom:1px solid var(--color-border);font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;margin:0;font-weight:400;display:flex}.team-pool-option input{width:22px;height:22px;accent-color:var(--color-primary);flex-shrink:0}.team-card-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.team-danger-btn{width:100%;color:var(--color-danger);border-color:var(--color-danger)}.teams-window-card{gap:var(--space-3);flex-direction:column;display:flex}.teams-window-card .field,.teams-window-card .field-row{margin-bottom:0}.roster-filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.roster-filters .field{margin-bottom:0}.roster-share-row{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.roster-autosave{margin:0}.roster-sections{gap:var(--space-5);flex-direction:column;display:flex}.roster-section-heading{margin:0 0 var(--space-2) 2px;font-size:var(--font-size-base);color:var(--color-text-muted);justify-content:space-between;align-items:baseline;font-weight:700;display:flex}.roster-section-count{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;font-weight:600}.roster-flag{margin:0 0 var(--space-2) 2px}.roster-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 0 2px}.roster-cards{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roster-card{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.roster-card-top{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.roster-name{min-width:0;font-weight:650}.roster-number{color:var(--color-text-muted);font-weight:400}.roster-pct{font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:700}.roster-notes{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;padding-left:18px}.roster-exception{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.roster-status-line{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.roster-slot{margin-left:auto}.roster-slot button{min-height:var(--touch-target);padding:6px 12px}.roster-link-btn{min-height:var(--touch-target);margin:calc(var(--space-2) * -1) 0;font-size:var(--font-size-sm)}.roster-slot button:disabled{opacity:.45;cursor:not-allowed}.roster-grant-form{gap:var(--space-2);flex-direction:column;display:flex}.roster-grant-form label{margin-bottom:0}.roster-reason-input{min-height:72px}.roster-grant-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.fm-nav-card{margin-bottom:var(--space-4)}.fm-nav{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.fm-nav-btn{color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-2);background:0 0;border:none}.fm-nav-btn:hover{color:var(--color-primary-dark)}.fm-month{font-size:var(--font-size-base);color:var(--color-text);font-weight:700}.fm-table th.name-col,.fm-table td.name-col{text-overflow:ellipsis;max-width:110px;overflow:hidden}.fm-date-head{text-align:center;border-left:1px solid var(--color-border)}.fm-date-label{font-size:var(--font-size-xs);color:var(--color-text);display:block}.fm-date-day{font-size:var(--font-size-xs);color:var(--color-text-muted);display:block}.fm-sub-head{text-align:center;font-size:var(--font-size-xs);padding-left:var(--space-2);padding-right:var(--space-2)}.fm-sub-head:nth-child(odd){border-left:1px solid var(--color-border)}.fm-cell{text-align:center;min-width:36px;padding-left:var(--space-1);padding-right:var(--space-1)}.fm-cell:nth-child(2n){border-left:1px solid var(--color-border)}.fm-star{color:var(--color-success);font-size:var(--font-size-base);line-height:1}.fm-signed{color:var(--color-success);font-size:var(--font-size-base);font-weight:700;line-height:1;display:inline-flex}.fm-unsigned{border-radius:var(--radius-sm);background:var(--color-warning-light);border:1px solid var(--color-warning);width:22px;height:22px;color:var(--color-warning);font-size:var(--font-size-sm);cursor:pointer;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;display:inline-flex}.fm-legend{gap:var(--space-4);margin-top:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.fm-legend-item{align-items:center;gap:var(--space-2);display:inline-flex}.fm-sign-card{margin-top:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.fm-sign-detail{font-size:var(--font-size-sm);color:var(--color-text-muted)}.member-types-add-btn{width:100%;margin-bottom:var(--space-4)}.member-types-create-card{margin-bottom:var(--space-4)}.member-types-delete-btn{width:100%;color:var(--color-danger);border-color:var(--color-danger)}.outside-hour-types-add-btn{width:100%;margin-bottom:var(--space-4)}.outside-hour-types-create-card{margin-bottom:var(--space-4)}.outside-hour-types-delete-btn{width:100%;color:var(--color-danger);border-color:var(--color-danger)}.report-controls{gap:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.report-controls .field,.report-controls .checkbox-row{margin-bottom:0}.report-control{flex-direction:column;align-items:flex-start;display:flex}.report-summary{margin:0 0 var(--space-3) 2px;color:var(--color-text-muted);font-weight:600}.report-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.report-row{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.report-row-summary{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);min-height:var(--touch-target);padding:var(--space-2) var(--space-4);cursor:pointer;flex-wrap:wrap;display:flex}.report-name{font-weight:600}.report-number{color:var(--color-text-muted);font-weight:400}.report-figures{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:inline-flex}.report-entries{padding:0 var(--space-4) var(--space-2);margin:0;list-style:none}.report-entries li{padding:var(--space-2) 0;border-top:1px solid var(--color-border);flex-direction:column;display:flex}.report-entry-title{font-weight:600}.report-entry-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.report-empty{padding:var(--space-2) var(--space-4) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}
