:root{color-scheme:dark;--bg:#000000;--panel:#0b0b0b;--muted:#9a9a9a;--text:#f4f4f4;--line:#242424;--yellow:#fffb00;--yellow-dark:#d8d400;--danger:#ff6b5f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{width:min(1040px,100%);margin:0 auto;padding:18px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:rgba(9,9,9,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav{display:flex;gap:10px;justify-content:space-between}.brand,.nav{align-items:center}.brand{display:inline-flex;line-height:0}.brand-mark{display:grid;place-items:center;inline-size:150px;block-size:60px;padding:0}.brand-mark img{display:block;inline-size:100%;block-size:100%;object-fit:contain}.navlinks{display:flex;flex-wrap:wrap;gap:8px}.link-button,.navlinks a{border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:#101010;color:var(--text)}.mobile-menu-panel a.active,.navlinks a.active{border-color:var(--yellow);background:var(--yellow);color:#090909}.link-button{cursor:pointer}.mobile-menu{display:none;margin-left:auto;position:relative}.hamburger-button{display:grid;grid-gap:5px;gap:5px;place-content:center;border:1px solid var(--line);border-radius:8px;inline-size:44px;block-size:40px;background:#101010;cursor:pointer}.hamburger-button span{display:block;inline-size:20px;block-size:2px;border-radius:999px;background:var(--yellow)}.mobile-menu-panel{position:absolute;top:calc(100% + 8px);right:0;display:grid;grid-gap:8px;gap:8px;min-width:220px;border:1px solid var(--line);border-radius:8px;background:#101010;padding:10px;box-shadow:0 18px 40px rgba(0,0,0,.38)}.mobile-menu-panel .link-button,.mobile-menu-panel a{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:#151515;color:var(--text);padding:12px;text-align:left}.hero{min-height:calc(100dvh - 80px);display:grid;align-items:center}.auth-logo{display:grid;place-items:center;inline-size:230px;block-size:92px;padding:0;object-fit:contain;margin:0 auto 12px}.auth-logo img{display:block;inline-size:100%;block-size:100%;object-fit:contain}.auth-secondary-link{color:var(--yellow);display:inline-flex;font-weight:800;justify-content:center;text-decoration:none}.auth-secondary-link:hover{text-decoration:underline}.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:18px}.grid{display:grid;grid-gap:14px;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:8px;background:#121212;padding:15px}.archive-summary{display:block;color:var(--muted);font-size:13px;font-weight:700;margin-top:6px}.session-attendees{display:grid;grid-gap:6px;gap:6px;margin-top:10px;color:var(--muted);font-size:12px;font-weight:800}.session-attendee-list{display:flex;flex-wrap:wrap;gap:6px}.session-attendee-chip,.session-attendee-empty{border:1px solid var(--line);border-radius:999px;background:#0b0b0b;color:var(--text);font-size:12px;font-weight:800;line-height:1;padding:6px 8px}.session-attendee-empty{color:var(--muted)}.form-error{border:1px solid rgba(255,107,95,.45);border-radius:8px;background:rgba(255,107,95,.1);color:#ffb7b0;margin:0;padding:11px 12px}.form-error.compact{padding:9px 10px}.form-success,.form-warning{border:1px solid rgba(255,251,0,.38);border-radius:8px;background:rgba(255,251,0,.08);color:var(--yellow);margin:0;padding:11px 12px}.dashboard-head{gap:14px}.dashboard-head,.row{display:flex;align-items:center;justify-content:space-between}.row{gap:12px}.row.compact{justify-content:flex-start}.training-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.booking-action-row,.booking-card-head,.manual-booking-form,.session-detail-head,.session-overview{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.session-detail-head,.session-overview{align-items:center}.session-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;flex:1 1}.session-summary div{border:1px solid var(--line);border-radius:8px;background:#101010;padding:11px}.session-summary span{display:block;color:var(--muted);font-size:12px}.session-summary strong{display:block;margin-top:4px;font-size:22px}.manual-booking-form .label{flex:1 1}.booking-card{display:grid;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:8px;background:#121212;padding:14px}.booking-card-head{align-items:center}.booking-card-head p{margin:4px 0 0;overflow-wrap:anywhere}.booking-action-row .select{flex:1 1}.booking-action-stack{display:grid;grid-gap:8px;gap:8px}.athlete-calendar-actions,.booking-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;justify-content:flex-end}.calendar-button{padding:8px 10px}@media (max-width:900px){.my-booking-card{align-items:center;flex-direction:column;text-align:center}.my-booking-card .booking-actions,.my-booking-card>div:first-child{width:100%}.my-booking-card .booking-actions{align-items:center;flex-direction:column;justify-content:center}.my-booking-card .booking-actions .button,.my-booking-card .booking-actions form{width:min(100%,420px)}}.attendance-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.attendance-button{width:100%;padding-inline:8px}.attendance-button.active{border-color:var(--yellow)!important;background:var(--yellow)!important;color:#090909!important;box-shadow:inset 0 0 0 2px #090909}.attendance-button.active[data-status=ABSENT]{border-color:var(--danger)!important;background:var(--danger)!important;color:#100!important}.athlete-session-card{display:grid;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:8px;background:#121212;padding:14px}.athlete-session-head,.athlete-session-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.athlete-session-head p{margin:4px 0 0}.athlete-session-meta{justify-content:flex-end}.athlete-detail-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.performance-desktop-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);grid-gap:12px;gap:12px;align-items:start}.performance-best-panel,.performance-entry-panel{align-self:start}.performance-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;align-items:end}.exercise-results,.performance-submit,.performance-wide{grid-column:1/-1}.performance-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.performance-search{min-width:0}.performance-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.performance-tab{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#101010;color:var(--muted);cursor:pointer;font-size:13px;font-weight:800;padding:8px 10px;white-space:nowrap}.performance-tab.active{border-color:var(--yellow);background:var(--yellow);color:#090909}.exercise-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px}.exercise-result{display:grid;grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:8px;background:#101010;color:var(--text);cursor:pointer;min-height:58px;padding:8px 9px;text-align:left}.exercise-result strong{font-size:14px;line-height:1.16}.exercise-result.selected{border-color:var(--yellow);background:var(--yellow);color:#090909}.exercise-result span{color:var(--muted);font-size:11px;font-weight:700}.exercise-result.selected span{color:#332b00}.performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.performance-card,.performance-history-card{border:1px solid var(--line);border-radius:8px;background:#101010;padding:11px}.performance-card{display:grid;grid-gap:4px;gap:4px}.performance-card strong,.performance-history-card strong{font-size:16px}.performance-card p,.performance-history-card p{margin:0}.performance-card small{color:var(--muted);font-weight:700}.performance-history-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center}.performance-card-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.performance-custom-button,.performance-submit{justify-self:start}.stack{display:grid;grid-gap:12px;gap:12px}.muted{color:var(--muted)}.title{margin:0 0 6px;font-size:28px}.section-title{margin:0 0 12px;font-size:20px}.label{display:grid;grid-gap:7px;gap:7px;color:var(--muted)}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#080808;color:var(--text);padding:12px}.input:disabled,.select:disabled,.textarea:disabled{cursor:not-allowed;opacity:1;color:var(--muted);-webkit-text-fill-color:var(--muted)}.password-field{position:relative}.password-field .input{padding-right:96px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:1px solid var(--line);border-radius:7px;background:#121212;color:var(--yellow);cursor:pointer;font-size:13px;font-weight:800;padding:7px 9px}.textarea{min-height:96px;resize:vertical}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;padding:12px 14px;background:var(--yellow);color:#0a0a0a;font-weight:800;cursor:pointer}.button:disabled{cursor:not-allowed;opacity:.58}.button-spinner{inline-size:14px;block-size:14px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .75s linear infinite}.pending-link-content{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;color:var(--yellow);font-weight:800}.pending-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.pending-screen-box{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:14px 16px}.pending-screen-box,.toast{background:#101010;color:var(--yellow);font-weight:800}.toast{position:fixed;top:18px;left:50%;z-index:1100;transform:translateX(-50%);border:1px solid rgba(255,251,0,.42);border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.42);max-width:min(420px,calc(100vw - 28px));padding:12px 14px;text-align:center}.modal-backdrop{position:fixed;inset:0;z-index:900;display:grid;place-items:center;background:rgba(0,0,0,.76);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:18px}.confirm-modal{width:min(440px,100%);border:1px solid var(--line);border-radius:8px;background:#101010;box-shadow:0 22px 60px rgba(0,0,0,.5);padding:18px}.confirm-modal p{margin:0}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}@keyframes spin{to{transform:rotate(1turn)}}.button.secondary{border:1px solid var(--line);background:#101010;color:var(--text)}.button.danger{background:var(--danger);color:#100}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:#272000;color:var(--yellow);font-size:13px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:7px;gap:7px;width:100%}.calendar-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.calendar-copy{min-width:0}.month-switcher{display:grid;grid-template-columns:38px minmax(112px,max-content) 38px;align-items:center;grid-gap:8px;gap:8px;white-space:nowrap}.month-switcher strong{text-align:center;text-transform:capitalize}.icon-button{display:grid;place-items:center;inline-size:38px;block-size:38px;color:var(--yellow);cursor:pointer;font-size:28px;font-weight:800;line-height:1}.icon-button,.segmented{border:1px solid var(--line);border-radius:8px;background:#101010}.segmented{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(260px,100%);padding:4px}.segmented button{border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800;padding:9px 12px}.segmented button.active{background:var(--yellow);color:#090909}.calendar-heading{color:var(--muted);font-size:13px;text-align:center}.calendar-day{display:grid;grid-gap:2px;gap:2px;place-items:center;min-height:clamp(58px,4.2vw,82px);border:1px solid var(--line);border-radius:8px;background:#101010;color:var(--text);cursor:pointer;font-weight:800}.day-load{display:grid;grid-gap:3px;gap:3px;width:min(34px,80%)}.day-load small{justify-self:center;border-radius:999px;background:#2d2600;color:var(--yellow);font-size:11px;min-width:20px;padding:2px 5px}.day-load-track{overflow:hidden;border-radius:999px;block-size:4px;background:#2d2d2d}.day-load-fill{display:block;block-size:100%;border-radius:inherit;background:var(--yellow)}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:10px;gap:10px;overflow-x:visible;padding-bottom:4px}.week-day{display:grid;align-content:space-between;grid-gap:8px;gap:8px;min-height:126px;border:1px solid var(--line);border-radius:8px;background:#101010;color:var(--text);cursor:pointer;padding:11px;text-align:left}.week-day:disabled{cursor:not-allowed;opacity:.42}.week-day.selected{border-color:var(--yellow);background:var(--yellow);color:#090909}.week-day.today{border-color:rgba(255,251,0,.7)}.week-day.today:after{content:"dnes";justify-self:start;border-radius:999px;background:#2d2600;color:var(--yellow);font-size:11px;font-weight:800;padding:2px 7px}.week-day.selected.today:after{background:#090909;color:var(--yellow)}.week-day-name{color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase}.week-day.selected .week-day-name{color:#332b00}.week-day strong{font-size:28px;line-height:1}.week-day-count{font-size:13px;font-weight:800}.week-day-capacity{min-height:18px;color:var(--muted);font-size:13px}.week-day.selected .week-day-capacity{color:#332b00}.week-load-track{overflow:hidden;border-radius:999px;block-size:8px;background:#2d2d2d}.week-day.selected .week-load-track{background:rgba(9,9,9,.32)}.week-day.selected .day-load-fill{background:#090909}.calendar-day:disabled{cursor:not-allowed;opacity:.24}.calendar-day.selected{border-color:var(--yellow);background:var(--yellow);color:#090909}.calendar-day.selected .day-load small{background:#090909}.calendar-day.selected .day-load-track{background:rgba(9,9,9,.32)}.calendar-day.selected .day-load-fill{background:#090909}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:999px;background:#101010;color:var(--text);cursor:pointer;padding:8px 11px}.chip.active{border-color:var(--yellow);color:var(--yellow)}.check-row{display:flex;align-items:center;gap:10px;color:var(--text)}.check-row input{accent-color:var(--yellow);inline-size:18px;block-size:18px}.slot-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:flex-end}.slot-index{display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;min-height:45px;color:var(--yellow);font-weight:800}.table{width:100%;border-collapse:collapse}.table-wrap{overflow-x:auto}.invite-action-cell{width:1%;white-space:nowrap}.invite-actions{display:inline-flex;gap:8px;justify-content:flex-end}.copy-link{width:100%}.copy-link,.registration-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px}.registration-link-row{align-items:stretch}.copy-link-input{min-width:0;overflow:hidden;text-overflow:ellipsis}.athlete-cards,.invite-action-icon,.mobile-email,.refresh-link-icon{display:none}.athlete-card{display:grid;grid-gap:14px;gap:14px;border:1px solid var(--line);border-radius:8px;background:#101010;padding:14px}.athlete-card-head{display:grid;grid-gap:12px;gap:12px}.athlete-card-head strong{display:block;font-size:19px;line-height:1.15}.athlete-card-head a:not(.button){display:block;overflow-wrap:anywhere;color:var(--muted);margin-top:5px}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.stats-grid div{border:1px solid var(--line);border-radius:8px;padding:10px}.stats-grid dt{color:var(--muted);font-size:12px}.stats-grid dd{margin:3px 0 0;font-size:22px;font-weight:800}.table td,.table th{border-bottom:1px solid var(--line);padding:10px 6px;text-align:left}@media (max-width:760px){.shell{padding:14px}.nav{align-items:center;flex-direction:row}.athlete-session-head,.athlete-session-meta,.booking-action-row,.booking-card-head,.manual-booking-form,.session-detail-head,.session-overview{align-items:stretch;flex-direction:column}.session-detail-head{align-items:flex-start}.session-summary{width:100%}.session-summary div{padding:9px}.session-summary strong{font-size:18px}.athlete-calendar-actions,.athlete-calendar-actions .button,.athlete-session-meta .button,.booking-action-row .button,.booking-actions .button,.booking-actions form,.booking-card-head .button,.manual-booking-form .button,.session-overview .button{width:100%}.athlete-calendar-actions,.booking-actions{align-items:center;flex-direction:column;justify-content:center;text-align:center}.athlete-calendar-actions .button,.booking-actions .button,.booking-actions form{max-width:320px}.navlinks{display:none}.mobile-menu{display:block}.brand-mark{inline-size:132px;block-size:53px}.grid.four,.grid.two{grid-template-columns:1fr}.row{align-items:flex-start}.dashboard-head,.row{flex-direction:column}.dashboard-head{align-items:stretch}.dashboard-head .button{width:100%;text-align:center}.confirm-actions{display:grid;grid-template-columns:1fr}.training-actions,.training-actions .button,.training-actions form{width:100%}.row.compact{flex-direction:row;flex-wrap:wrap}.calendar-top{align-items:stretch;gap:10px}.calendar-copy .muted{display:none}.calendar-copy .section-title{margin-bottom:0;font-size:22px}.month-switcher{grid-template-columns:34px minmax(96px,1fr) 34px;gap:6px;min-width:178px}.month-switcher strong{font-size:16px}.icon-button{inline-size:34px;block-size:34px;font-size:24px}.segmented{width:100%}.week-strip{grid-template-columns:none;grid-auto-columns:minmax(116px,42%);grid-auto-flow:column;overflow-x:auto;margin-inline:-14px;padding-inline:14px;scroll-snap-type:x proximity}.calendar-day{min-height:auto;aspect-ratio:1}.week-day{min-height:132px;padding:12px;scroll-snap-align:start}.week-day strong{font-size:28px}.slot-row{grid-template-columns:34px repeat(2,minmax(0,1fr))}.slot-row .button{grid-column:1/-1}.registration-link-row{grid-template-columns:minmax(0,1fr) 44px}.invite-actions{align-items:center;flex-direction:row;gap:5px}.invite-action-button{display:grid;place-items:center;inline-size:44px;block-size:44px;padding:0}.invite-action-icon{display:block;font-size:15px;line-height:1}.invite-action-label{display:none}.refresh-link-button{display:grid;place-items:center;inline-size:44px;block-size:44px;padding:0}.refresh-link-icon{display:block;font-size:18px;line-height:1}.desktop-email,.refresh-link-label{display:none}.mobile-email{display:inline}.table td,.table th{padding:8px 4px}.invite-action-cell{text-align:right}.athlete-table{display:none}.athlete-cards{display:grid;grid-gap:12px;gap:12px}.athlete-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.exercise-results,.performance-desktop-grid,.performance-fields,.performance-form,.performance-grid,.performance-history-card{grid-template-columns:1fr}.exercise-results,.performance-submit,.performance-wide{grid-column:auto}.performance-card-actions,.performance-card-actions .button,.performance-card-actions form,.performance-submit{width:100%}.performance-custom-button,.performance-submit{justify-self:stretch}.performance-tabs{margin-inline:-14px;padding-inline:14px;scroll-snap-type:x proximity}.performance-tab{scroll-snap-align:start}}