:root{color-scheme:light;--bg: #f5f6f1;--surface: #fff;--surface-soft: #f7f9f5;--text: #202724;--muted: #65706a;--line: #e0e6df;--accent: #43883d;--accent-soft: #e8f3e6;--danger: #d16343;--danger-soft: #fff0ea;--shadow: 0 12px 32px rgba(30, 47, 35, .08)}:root[data-theme=dark]{color-scheme:dark;--bg: #141a16;--surface: #202821;--surface-soft: #182019;--text: #f0f5ef;--muted: #aeb9b1;--line: #354338;--accent: #7dbc6e;--accent-soft: #253b27;--danger: #ff9a79;--danger-soft: #442c24;--shadow: 0 12px 32px rgba(0, 0, 0, .24)}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select{font:inherit}button{cursor:pointer}.account-bar{position:sticky;z-index:8;top:0;display:flex;align-items:center;gap:12px;min-height:48px;padding:8px max(16px,calc((100vw - 760px)/2));background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.account-bar a{color:var(--text);font-size:13px;font-weight:750;text-decoration:none}.account-bar a:hover{color:var(--accent)}.account-bar-spacer{flex:1}.account-bar button{padding:7px 9px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:700}.auth-page,.account-page{width:min(100%,680px);min-height:100vh;margin:0 auto;padding:max(28px,env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom))}.auth-page{display:grid;place-items:center}.auth-card,.account-card{width:100%;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.auth-card{max-width:440px}.auth-card h1,.account-card h1{margin-bottom:8px}.auth-description,.account-email,.auth-message,.account-message{color:var(--muted);font-size:14px;line-height:1.45}.help-callout{margin:12px 0;padding:10px 12px;color:var(--text);background:var(--surface-soft);border-left:3px solid var(--accent);border-radius:8px;font-size:14px;line-height:1.45}.help-topic ul{margin:0;padding-left:20px;color:var(--muted);display:grid;gap:8px;line-height:1.45}.account-message.error,.attendance-message.error{color:var(--danger)}.auth-card label,.account-card label{display:grid;gap:6px;margin-top:14px;color:var(--muted);font-size:12px;font-weight:750}.auth-card input,.account-card input{width:100%;min-height:44px;padding:9px 11px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;font:inherit}.auth-card input:focus,.account-card input:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent)}.auth-primary,.secondary-button{min-height:42px;padding:9px 13px;border-radius:10px;font-weight:800}.auth-primary{width:100%;margin-top:18px;color:#fff;background:var(--accent);border:0}.auth-primary:disabled{cursor:wait;opacity:.65}.secondary-button{color:var(--text);background:transparent;border:1px solid var(--line)}.auth-error{margin:12px 0 0;color:var(--danger);font-size:13px;line-height:1.4}.invitation-person{display:grid;gap:3px;margin:16px 0;padding:13px;background:var(--surface-soft);border-radius:11px}.invitation-person span{color:var(--muted);font-size:13px}.account-page{display:grid;align-content:start;gap:14px;min-height:auto}.account-card h2{margin-bottom:12px;font-size:19px;text-transform:none}.account-card h3{margin:22px 0 8px;font-size:15px}.cost-rule-list,.title-rule-list{display:grid;gap:8px}.cost-rule-row,.title-rule-row{display:grid!important;grid-template-columns:minmax(0,1fr) 128px;align-items:center;gap:10px;margin:0!important;padding:10px;background:var(--surface-soft);border:1px solid var(--line);border-radius:10px}.cost-rule-row span{overflow:hidden;color:var(--text);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.title-rule-row{grid-template-columns:minmax(0,1fr) 112px auto}.title-rule-row .secondary-button{min-height:38px;padding:7px 9px;font-size:12px}.telegram-connect-link{display:block;margin:12px 0;padding:11px;color:#fff;background:#229ed9;border-radius:10px;font-size:14px;font-weight:800;text-align:center;text-decoration:none}.invitation-result{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}.user-list{display:grid;gap:9px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:11px}.user-row div{display:grid;gap:2px;min-width:0}.user-row span,.user-row small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.user-row-actions{display:flex!important;flex:0 0 auto;gap:7px!important}.danger-button{min-height:42px;padding:9px 13px;color:var(--danger);background:transparent;border:1px solid var(--danger);border-radius:10px;font-weight:800}.danger-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.58}.owner-list-error{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.owner-list-error .auth-error{margin:0}.schedule-app{width:min(100%,760px);min-height:100vh;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom))}.app-header,.day-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.app-header{margin:6px 0 18px}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:24px}h2{margin-bottom:0;font-size:22px;text-transform:capitalize}.header-preferences{display:inline-flex;align-items:center;gap:6px}.theme-picker,.handedness-picker{display:inline-flex;align-items:center;gap:3px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.theme-picker button,.handedness-picker button{width:30px;height:30px;padding:0;color:var(--muted);background:transparent;border:0;border-radius:7px;font-size:17px;line-height:1}.theme-picker button.active,.handedness-picker button.active{color:#fff;background:var(--accent);box-shadow:0 2px 6px #3e843840}.week-nav{display:grid;grid-template-columns:30px repeat(7,1fr) 30px;gap:4px;margin:0 -4px 24px}.week-nav button{min-height:57px;padding:7px 2px;color:var(--muted);background:transparent;border:0;border-radius:12px}.week-nav button>span,.week-nav button>strong{display:block}.week-nav button>span{font-size:11px}.week-nav button>strong{margin-top:3px;font-size:16px}.week-day{display:grid;align-content:start;min-width:0}.week-day>button{width:100%}.day-training-times{display:grid;gap:2px;margin:4px auto 0}.day-training-time{display:block;padding:2px 3px;border-radius:4px;font-size:9px;font-weight:800;line-height:1.1;white-space:nowrap}.day-training-time.planned{color:#8a6100;background:#fff3c4}.day-training-time.cancelled{color:#b42318;background:#fee4e2}.day-training-time.attended{color:#fff;background:var(--accent)}.week-nav button.active{color:#fff;background:var(--accent);box-shadow:0 6px 14px #3e843842}.week-nav>button:first-child,.week-nav>button:last-child{align-self:center;min-height:38px;font-size:30px;line-height:1}.today-button{display:grid;gap:2px;padding:8px 12px;color:var(--accent);background:var(--accent-soft);border:0;border-radius:9px;text-align:left}.today-button span{font-size:11px;font-weight:700}.today-button strong{color:var(--text);font-size:15px;font-weight:800;text-transform:capitalize}.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:8px;margin:20px 0}.summary div{display:flex;align-items:baseline;justify-content:center;min-width:0;gap:5px}.summary span{min-width:0;color:var(--muted);font-size:11px;line-height:1.1;text-align:right;text-transform:uppercase}.summary strong{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:30px;padding:5px 7px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);font-size:18px;white-space:nowrap}.training-list{display:grid;gap:9px}.timeline{gap:4px}.timeline-event{display:grid;grid-template-columns:54px 16px minmax(0,1fr);align-items:stretch;min-width:0}.timeline-time{padding-top:18px;font-size:14px;font-weight:800;text-align:right;white-space:nowrap}.timeline-rail{position:relative;min-height:64px}.timeline-rail:before{position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line);content:""}.timeline-rail span{position:absolute;z-index:1;top:22px;left:calc(50% - 4px);width:8px;height:8px;border:2px solid var(--surface);border-radius:50%;background:var(--muted)}.timeline-event.planned .timeline-rail span,.timeline-event.attended .timeline-rail span{background:var(--accent)}.timeline-event.cancelled .timeline-rail span{background:var(--danger)}.timeline-card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.timeline-event.attended.expanded .timeline-card{background:var(--accent-soft)}.timeline-event.cancelled.expanded .timeline-card{background:var(--danger-soft)}.timeline-event.collapsed .timeline-card{background:transparent;border-color:transparent;border-radius:0;box-shadow:none}.timeline-event.collapsed .timeline-toggle{border-bottom:1px solid var(--line)}.timeline-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;width:100%;min-height:52px;gap:8px;padding:9px 10px;color:var(--text);background:transparent;border:0;text-align:left}.timeline-toggle-copy{display:grid;min-width:0;gap:2px}.timeline-toggle-copy strong,.timeline-toggle-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-toggle-copy strong{font-size:15px;line-height:1.2}.timeline-toggle-copy small{color:var(--muted);font-size:11px;line-height:1.25}.timeline-chevron{color:var(--muted);font-size:20px;text-align:center}.timeline-details{padding:0 10px 10px;border-top:1px solid var(--line)}.timeline-details-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;padding:9px 0}.timeline-details-meta .club-route-link{max-width:100%;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.training-details{color:var(--muted);font-size:12px}.minimum-participants-badge{display:flex;align-items:center;width:fit-content;margin-top:6px;padding:4px 7px;border:1px solid currentColor;border-radius:999px;font-size:10px;font-weight:800;line-height:1.2}.minimum-participants-badge.below{color:#b42318;background:#fee4e2}.minimum-participants-badge.minimum{color:#b54708;background:#ffead5}.minimum-participants-badge.near{color:#8a6100;background:#fff3c4}:root[data-theme=dark] .minimum-participants-badge.below{color:#ffb4a8;background:#4d2520}:root[data-theme=dark] .minimum-participants-badge.minimum{color:#ffc27a;background:#4b301d}:root[data-theme=dark] .minimum-participants-badge.near{color:#ffe28a;background:#453b1b}.status-chip{padding:4px 7px;color:var(--accent);background:var(--accent-soft);border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}.cancelled .status-chip{color:var(--danger);background:transparent;border:1px solid var(--danger)}.training-actions{display:grid;gap:8px}.status-actions{display:grid;grid-template-columns:minmax(108px,1.25fr) repeat(3,minmax(0,1fr));gap:8px}.status-actions button{min-height:48px;padding:5px 7px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:700}.status-actions .price-settings-button{order:0}.status-actions .attendance-button-wrap{order:3}.status-actions>button:nth-of-type(2){order:2}.status-actions>button:nth-of-type(3){order:1}.handedness-left .status-actions .attendance-button-wrap{order:1}.handedness-left .status-actions>button:nth-of-type(2){order:2}.handedness-left .status-actions>button:nth-of-type(3){order:3}.attendance-button-wrap{position:relative;min-width:0}.attendance-button-wrap button{width:100%}.attendance-confirmation{position:absolute;z-index:1;right:0;bottom:calc(100% + 7px);padding:6px 9px;color:#fff;background:var(--accent);border-radius:999px;box-shadow:0 8px 18px #3e843847;font-size:12px;font-weight:800;line-height:1;white-space:nowrap;pointer-events:none;animation:attendance-confirmation-in 2.2s ease-out both}@keyframes attendance-confirmation-in{0%{opacity:0;transform:translateY(8px) scale(.9)}14%{opacity:1;transform:translateY(0) scale(1)}78%{opacity:1;transform:translateY(-4px) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.96)}}.status-actions button.active.attended,.status-actions button.active.planned{color:#fff;background:var(--accent);border-color:var(--accent)}.status-actions button.active.cancelled{color:#fff;background:var(--danger);border-color:var(--danger)}.status-actions button:disabled{cursor:wait;opacity:.58}.price-settings-button{color:var(--muted)!important}.delete-manual-training{min-height:44px;padding:5px 7px;color:var(--danger);background:transparent;border:1px solid var(--danger);border-radius:8px;font-size:12px;font-weight:700}.delete-manual-training:hover{background:var(--danger-soft)}.club-route-link{width:max-content;max-width:100%;padding:0;color:inherit;background:transparent;border:0;font:inherit;text-align:left;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);text-underline-offset:2px;cursor:pointer}.club-route-link:hover{color:var(--accent)}.attendance-message{margin:0 0 14px;padding:10px 12px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:10px;font-size:13px}.create-training-button{width:100%;min-height:44px;margin-top:14px;color:#fff;background:var(--accent);border:0;border-radius:11px;font-weight:800}.training-modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:14px;background:#090f0b8f}.training-modal{width:min(100%,620px);max-height:min(88vh,760px);margin:0 auto;padding:18px;overflow:auto;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-heading h2{margin:0;font-size:20px}.modal-heading button{width:32px;height:32px;color:var(--muted);background:transparent;border:0;border-radius:8px;font-size:26px;line-height:1}.route-choice-backdrop{z-index:14;padding:0}.route-choice-sheet{width:min(100%,620px);margin:0 auto;padding:12px 18px calc(18px + env(safe-area-inset-bottom));color:var(--text);background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:26px 26px 0 0;box-shadow:var(--shadow)}.route-choice-sheet .modal-heading{margin-bottom:6px}.route-choice-sheet .modal-heading h2{margin-top:3px;font-size:22px;text-transform:none}.route-choice-sheet .modal-heading button{width:44px;height:44px;flex:0 0 auto;background:var(--surface-soft);border-radius:50%}.route-choice-address{margin:0 0 14px;color:var(--muted);font-size:13px}.route-club-page-link{display:inline-flex;margin:-2px 0 12px;color:var(--accent);font-size:13px;font-weight:800;text-decoration:none}.route-choice-contacts{display:grid;gap:9px;margin:-6px 0 14px;font-size:13px}.route-choice-contacts>strong{font-size:13px}.route-choice-contact-group{display:grid;gap:4px}.route-choice-contact-group>span{color:var(--muted);font-weight:700}.route-choice-contacts a{color:var(--accent);font-weight:700;text-decoration:none}.route-choice-sheet .route-directory-link{display:inline-flex;width:auto;height:auto;margin-top:2px;padding:0;color:var(--accent);background:transparent;border-radius:0;font-size:13px;font-weight:800}.route-club-directory{display:grid;gap:8px;max-height:min(56vh,480px);padding-right:2px;overflow-y:auto;overscroll-behavior:contain}.route-club-directory-item{display:grid;gap:3px;width:100%;min-height:58px;padding:11px 12px;text-align:left;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:14px}.route-club-directory-item:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}.route-club-directory-item small,.route-directory-message{color:var(--muted);font-size:13px;line-height:1.35}.route-directory-message{margin:10px 0}.route-provider-actions{display:grid;gap:10px}.route-provider-card{display:grid;grid-template-columns:48px minmax(0,1fr) 22px;align-items:center;gap:12px;min-height:72px;padding:10px 12px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:16px;text-decoration:none}.route-provider-card:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));transform:translateY(-1px)}.route-provider-card.disabled{cursor:not-allowed;opacity:.48}.route-provider-card>span:nth-child(2){display:grid;min-width:0;gap:3px}.route-provider-card strong,.route-provider-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-provider-card strong{font-size:16px}.route-provider-card small{color:var(--muted);font-size:12px}.route-provider-card>i{color:var(--muted);font-size:28px;font-style:normal}.route-provider-icon{display:grid;place-items:center;width:48px;height:48px;color:#fff;background:var(--accent);border-radius:15px;box-shadow:0 7px 15px #0000001f;font-size:22px;font-weight:900}.route-provider-card.google .route-provider-icon{background:conic-gradient(from 215deg,#34a853 0,#34a853 27%,#4285f4 0,#4285f4 52%,#ea4335 0,#ea4335 76%,#fbbc05 0)}.route-provider-card.jakdojade .route-provider-icon{background:#0b7d37}.route-location-note{min-height:18px;margin:12px 2px 0;color:var(--muted);font-size:12px;line-height:1.4}.route-location-note.ready{color:var(--accent)}.route-location-note.missing{color:var(--danger)}.training-modal label{display:grid;gap:5px;margin-top:10px;color:var(--muted);font-size:12px;font-weight:700}.training-modal input,.training-modal select{width:100%;min-height:40px;padding:8px 10px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:9px;font:inherit}.create-training-button{margin-top:18px}.price-settings-event{margin:-4px 0 14px;color:var(--muted);font-size:13px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.modal-actions .create-training-button{margin-top:0}.modal-cancel-button{min-height:44px;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:11px;font-weight:800}.training-modal-error{margin:12px 0 0;color:var(--danger);font-size:13px;line-height:1.35}.add-training-backdrop{padding:0}.add-training-sheet{display:flex;flex-direction:column;width:min(100%,620px);max-height:min(94dvh,820px);padding:0;overflow:hidden;border-radius:26px 26px 0 0;transition:transform .2s ease-out}.add-training-sheet.is-dragging{transition:none}.mobile-sheet-drag-area{display:grid;place-items:center;width:100%;height:30px;flex:0 0 auto;padding:0;color:var(--muted);background:transparent;border:0;cursor:grab;touch-action:none}.mobile-sheet-drag-area:active{cursor:grabbing}.mobile-sheet-drag-area>span{width:44px;height:5px;background:currentColor;border-radius:999px;opacity:.55}.mobile-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px 14px;border-bottom:1px solid var(--line)}.mobile-sheet-heading small{color:var(--accent);font-size:12px;font-weight:800}.mobile-sheet-heading h2{margin:2px 0 0;font-size:22px;text-transform:none}.mobile-sheet-heading>button{width:44px;height:44px;flex:0 0 auto;color:var(--muted);background:var(--surface-soft);border:0;border-radius:50%;font-size:28px;line-height:1}.mobile-sheet-scroll{min-height:0;padding:16px 18px 8px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.mobile-date-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-form-field{display:grid!important;gap:7px!important;margin:0 0 14px!important;color:var(--muted);font-size:12px;font-weight:800}.mobile-form-field input,.mobile-form-field select{min-height:52px;padding:10px 12px;border-radius:14px;font-size:16px}.duration-drag-control{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px}.duration-drag-control>button{width:48px;height:48px;padding:0;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:14px;font-size:24px}.duration-drag-control>label{display:grid;gap:2px;margin:0}.duration-drag-control input[type=range]{width:100%;min-height:32px;padding:0;background:transparent;border:0;border-radius:0;accent-color:var(--accent);touch-action:pan-x}.duration-drag-control output{color:var(--text);font-size:14px;font-weight:850;text-align:center}.mobile-status-picker{min-width:0;margin:0 0 14px;padding:0;border:0}.mobile-status-picker legend{margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:800}.mobile-status-picker>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.mobile-status-picker button{min-height:48px;padding:6px;color:var(--text);background:var(--surface-soft);border:1px solid var(--line);border-radius:13px;font-size:12px;font-weight:800}.mobile-status-picker button.active.planned,.mobile-status-picker button.active.attended{color:#fff;background:var(--accent);border-color:var(--accent)}.mobile-status-picker button.active.cancelled{color:#fff;background:var(--danger);border-color:var(--danger)}.mobile-form-hint{margin:2px 0 8px;color:var(--muted);font-size:12px;line-height:1.4}.mobile-sheet-footer{flex:0 0 auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--line);box-shadow:0 -8px 20px color-mix(in srgb,var(--bg) 42%,transparent)}.mobile-sheet-footer .create-training-button{min-height:54px;margin:0;border-radius:14px;font-size:16px}.schedule-message,.empty-state{padding:18px;color:var(--muted);text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:14px}.error{color:var(--danger)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width: 800px){.schedule-app{margin-top:24px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--surface) 55%,transparent)}}@media (max-width: 520px){.timeline-event{grid-template-columns:48px 14px minmax(0,1fr)}.timeline-time{font-size:13px}.timeline-toggle{grid-template-columns:minmax(0,1fr) auto 18px;gap:6px}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary div{justify-content:space-between}.status-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.status-actions .price-settings-button{grid-column:1 / -1}}@media (max-width: 520px){.account-bar{gap:8px;padding-inline:10px}.account-bar a,.account-bar button{font-size:11px}.user-row{align-items:stretch;flex-direction:column}.user-row-actions{flex-direction:column}.user-row-actions button{width:100%;min-width:0;padding-inline:7px;font-size:12px}.invitation-result{grid-template-columns:1fr}}@media (max-width: 420px){.cost-rule-row{grid-template-columns:1fr 106px}.title-rule-row{grid-template-columns:1fr 92px}.title-rule-row .secondary-button{grid-column:1 / -1}}@media (max-width: 390px){.schedule-app{padding-left:12px;padding-right:12px}.app-header{align-items:flex-start}.header-preferences{gap:4px}.minimum-participants-badge,.status-chip{padding-inline:5px;font-size:9px}.theme-picker button,.handedness-picker button{width:27px}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary div{justify-content:space-between}.summary strong{font-size:16px}.status-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 350px){.status-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.status-actions>button:last-child{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce){.attendance-confirmation{animation:none}.timeline-details{transition:none}}.account-bar--schedule{display:none}.schedule-dashboard{width:min(100%,760px);padding:0 22px calc(104px + env(safe-area-inset-bottom));background:var(--bg)}.schedule-mobile-header{position:relative;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;min-height:86px;margin:0 -22px;padding:max(14px,env(safe-area-inset-top)) 22px 12px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-bottom:1px solid var(--line)}.schedule-mobile-header>strong{overflow:hidden;font-size:19px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.preferences-trigger{width:44px;height:44px;color:var(--accent);background:var(--accent-soft);border:0;border-radius:50%;font-size:24px}.schedule-logout{min-height:44px;padding:8px 14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;font-weight:800}.preferences-popover{position:absolute;z-index:9;top:72px;left:max(16px,calc((100% - 716px)/2));display:flex;gap:8px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.day-hero{padding:18px 0 14px}.day-hero>span{display:block;margin-bottom:2px;color:var(--accent);font-size:14px;font-weight:800}.day-hero-title-row{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:12px}.day-hero h1{margin:0;font-size:clamp(30px,6.5vw,42px);line-height:1.05;text-transform:capitalize;letter-spacing:-.035em}.day-hero-add-training{display:grid;place-items:center;width:48px;height:48px;color:#fff;background:var(--accent);border:0;border-radius:14px;font-size:30px;font-weight:500;line-height:1;box-shadow:0 7px 18px #3e84383d}.day-hero p{margin:7px 0 0;color:var(--muted);font-size:15px}.next-training-card{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.selected-training-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 14px 0}.next-training-label{display:inline-flex;padding:6px 10px;color:var(--accent);background:var(--accent-soft);border-radius:999px;font-size:13px;font-weight:800}.selected-training-status{font-size:11px}.next-training-card.planned .selected-training-status{color:var(--text);background:var(--surface-soft)}.next-training-main{display:grid;grid-template-columns:minmax(116px,.72fr) minmax(0,1.4fr) 44px;align-items:center;gap:12px;padding:16px 14px 14px}.next-training-time{display:flex;align-items:center;gap:10px}.next-training-time i,.compact-event-row>i{width:9px;height:9px;flex:0 0 auto;background:var(--muted);border-radius:50%}.next-training-card.attended .next-training-time i,.compact-event-row.attended>i{background:var(--accent)}.next-training-card.cancelled .next-training-time i,.compact-event-row.cancelled>i{background:var(--danger)}.next-training-time time{font-size:clamp(35px,9vw,48px);font-weight:850;line-height:1;letter-spacing:-.03em}.next-training-copy{display:grid;min-width:0;gap:5px}.next-training-copy h2{overflow:hidden;margin:0;font-size:19px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap;text-transform:none}.next-training-copy .club-route-link,.next-training-copy p{color:var(--muted);font-size:14px}.next-training-copy p{margin:0;white-space:nowrap}.next-training-copy .selected-training-club{overflow:hidden;width:fit-content;color:var(--text);font-size:18px;font-weight:850;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.selected-training-reservations{display:inline-flex;align-items:baseline;width:fit-content;gap:5px;color:var(--muted);font-size:11px;line-height:1.1}.selected-training-reservations strong{color:var(--accent);font-size:17px;font-weight:850}.next-training-copy .selected-training-secondary{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.event-menu-button{width:44px;height:44px;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:12px;font-size:22px;line-height:1}.primary-attendance-wrap{margin:0 14px 14px}.primary-attendance-button{width:100%;min-height:50px;color:#fff;background:var(--accent);border:0;border-radius:12px;font-size:17px;font-weight:850;box-shadow:0 7px 18px #3e84383d}.primary-attendance-button:disabled{cursor:default;opacity:1}.schedule-drawer{position:relative;margin-top:12px;padding:12px;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);touch-action:pan-y;-webkit-user-select:none;user-select:none}.schedule-drawer:before,.schedule-drawer:after{position:absolute;z-index:2;top:0;bottom:0;width:28px;pointer-events:none;content:""}.schedule-drawer:before{left:0;background:linear-gradient(90deg,var(--surface) 16%,color-mix(in srgb,var(--surface) 76%,transparent),transparent)}.schedule-drawer:after{right:0;background:linear-gradient(270deg,var(--surface) 16%,color-mix(in srgb,var(--surface) 76%,transparent),transparent)}.schedule-drawer .week-nav{position:relative;z-index:1;margin:0;cursor:grab;transform:translate(var(--week-drag-offset, 0));transition:transform .2s cubic-bezier(.2,.8,.2,1);will-change:transform}.schedule-drawer.is-week-dragging .week-nav{cursor:grabbing;transition:none}.schedule-drawer .week-nav.week-slide-next{animation:week-calendar-next .22s ease-out}.schedule-drawer .week-nav.week-slide-previous{animation:week-calendar-previous .22s ease-out}@keyframes week-calendar-next{0%{opacity:.55;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes week-calendar-previous{0%{opacity:.55;transform:translate(-22px)}to{opacity:1;transform:translate(0)}}.schedule-drawer .week-day{position:relative}.schedule-drawer .day-events-count{position:absolute;right:2px;bottom:-2px;display:grid;place-items:center;min-width:17px;height:17px;color:#fff;background:var(--accent);border-radius:999px;font-size:9px;font-weight:800;pointer-events:none}.later-today{margin-top:24px}.day-route-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.day-route-heading div>span{display:block;margin-top:2px;color:var(--accent);font-size:12px;font-weight:800}.day-route-heading>small{max-width:150px;color:var(--muted);font-size:10px;line-height:1.2;text-align:right}.day-route-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:8px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.day-route-summary>span{display:grid;min-width:0;gap:1px;padding:6px 7px;color:var(--muted);background:var(--surface-soft);border-radius:9px;font-size:10px;line-height:1.15}.day-route-summary strong{overflow:hidden;color:var(--text);font-size:14px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.day-route-summary .route-cancelled-count{grid-column:1 / -1;grid-template-columns:auto 1fr;align-items:center;color:var(--danger);background:var(--danger-soft)}.day-route-summary .route-cancelled-count strong{color:var(--danger)}.compact-event-list{display:grid}.route-transition{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;margin:4px 0;padding:7px 10px;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:12px}.route-transition.changes-club{color:var(--accent);background:var(--accent-soft);border-style:solid;border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}.route-transition.overlap{color:var(--danger);background:var(--danger-soft);border-style:solid;border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}.route-transition-icon{display:grid;place-items:center;width:28px;height:28px;background:color-mix(in srgb,currentColor 11%,transparent);border-radius:50%;font-size:17px;font-weight:850}.route-transition-copy{display:grid;min-width:0;gap:2px}.route-transition-copy strong,.route-transition-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-transition-copy strong{color:var(--text);font-size:12px}.route-transition-copy small{color:currentColor;font-size:10px}.route-transition-time{padding:5px 7px;color:currentColor;background:var(--surface);border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}.compact-event-row{display:grid;grid-template-columns:54px 10px minmax(0,1fr) auto 28px;align-items:center;min-height:86px;gap:10px;border-bottom:1px solid var(--line)}.compact-event-row.selected{background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:12px;box-shadow:inset 3px 0 var(--accent),0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.compact-event-row>time{font-size:17px;font-weight:850}.compact-event-content{display:grid;min-width:0;gap:2px;padding:12px 0;color:var(--text);background:transparent;border:0;text-align:left}.compact-event-content strong,.compact-event-content span,.compact-event-content small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-event-content strong{font-size:16px}.compact-event-content span,.compact-event-content small{color:var(--muted);font-size:13px}.compact-event-row .status-chip{font-size:11px}.compact-event-row.planned .status-chip{color:var(--text);background:var(--surface-soft)}.compact-event-arrow{width:28px;height:44px;padding:0;color:var(--text);background:transparent;border:0;font-size:32px;font-weight:300}.income-card.summary{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;margin:22px 0 10px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.income-card>span:nth-child(2){display:grid;color:var(--muted);font-size:13px}.income-card strong{margin-top:3px;color:var(--text);font-size:19px}.income-card>span:last-child{font-size:30px}.income-icon{display:grid;place-items:center;width:44px;height:44px;color:var(--accent);background:var(--accent-soft);border-radius:50%;font-size:24px}.schedule-bottom-nav{position:fixed;z-index:7;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);width:min(100%,760px);min-height:78px;margin:0 auto;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.schedule-bottom-nav button,.schedule-bottom-nav a{display:grid;place-items:center;align-content:center;gap:3px;min-height:54px;color:var(--muted);background:transparent;border:0;font-size:24px;text-decoration:none}.schedule-bottom-nav span{font-size:11px;font-weight:750}.schedule-bottom-nav .active{color:var(--accent)}.event-action-sheet{width:min(100%,620px);margin:0 auto;padding:10px 16px calc(18px + env(safe-area-inset-bottom));color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:22px 22px 0 0;box-shadow:var(--shadow)}.sheet-handle{display:block;width:40px;height:4px;margin:0 auto 12px;background:var(--muted);border-radius:999px;opacity:.6}.event-action-sheet .modal-heading small{color:var(--muted)}.event-action-sheet .modal-heading h2{margin-top:3px;font-size:17px;text-transform:none}.event-action-sheet .status-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.event-action-sheet .status-actions button{min-height:54px;font-size:12px}.handedness-right .event-action-sheet .status-actions>button:nth-child(1){order:3}.handedness-right .event-action-sheet .status-actions>button:nth-child(2){order:2}.handedness-right .event-action-sheet .status-actions>button:nth-child(3){order:1}.handedness-left .event-action-sheet .status-actions>button:nth-child(1){order:1}.handedness-left .event-action-sheet .status-actions>button:nth-child(2){order:2}.handedness-left .event-action-sheet .status-actions>button:nth-child(3){order:3}.sheet-secondary-action{width:100%;min-height:44px;margin-top:10px;background:var(--surface-soft);border:1px solid var(--line);border-radius:10px}@media (max-width: 520px){.schedule-dashboard{padding-inline:16px}.schedule-mobile-header{margin-inline:-16px;padding-inline:16px}.day-hero{padding-block:14px 12px}.day-hero>span{font-size:13px}.day-hero h1{font-size:clamp(28px,7.6vw,34px)}.day-hero p{margin-top:5px;font-size:14px}.next-training-main{grid-template-columns:108px minmax(0,1fr) 40px;gap:8px;padding-block:14px 12px}.next-training-copy .selected-training-club,.selected-training-reservations strong{font-size:16px}.schedule-drawer{padding:8px}.schedule-drawer .week-nav{grid-template-columns:44px repeat(5,minmax(44px,1fr)) 44px;gap:2px}.schedule-drawer .week-day:first-of-type,.schedule-drawer .week-day:last-of-type{display:none}.schedule-drawer .week-nav button{min-width:44px;min-height:60px}.schedule-drawer .week-nav>button:first-child,.schedule-drawer .week-nav>button:last-child{min-height:44px}.compact-event-row{grid-template-columns:48px 9px minmax(0,1fr) auto 24px;gap:8px}}@media (max-width: 390px){.schedule-dashboard{padding-inline:12px}.schedule-mobile-header{margin-inline:-12px;padding-inline:12px}.day-hero h1{font-size:29px}.next-training-main{grid-template-columns:98px minmax(0,1fr) 38px;padding-inline:12px}.next-training-time time{font-size:34px}.next-training-copy .selected-training-club{font-size:15px}.next-training-copy .selected-training-secondary{font-size:10px}.day-route-heading>small{max-width:118px}.day-route-summary{gap:5px;padding:6px}.day-route-summary>span{padding-inline:5px}.route-transition{grid-template-columns:26px minmax(0,1fr) auto;padding-inline:8px}.compact-event-row .status-chip{max-width:82px;overflow:hidden;text-overflow:ellipsis}.mobile-date-time-grid{grid-template-columns:1fr;gap:0}.mobile-sheet-heading,.mobile-sheet-scroll,.mobile-sheet-footer{padding-right:14px;padding-left:14px}}@media (prefers-reduced-motion: reduce){.schedule-drawer .week-nav{transition:none}.schedule-drawer .week-nav.week-slide-next,.schedule-drawer .week-nav.week-slide-previous{animation:none}}@media (min-width: 800px){.schedule-dashboard{margin-top:24px;border:1px solid var(--line);border-radius:22px;overflow:hidden}}
