:root{color-scheme:light dark}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:canvas;color:canvastext}main{max-width:360px;margin:15vh auto 0;padding:0 24px;display:flex;flex-direction:column;gap:16px}h1{font-size:1.5rem;margin:0}form{gap:12px}form,label{display:flex;flex-direction:column}label{gap:4px;font-size:.875rem}input{padding:8px 10px;border:1px solid color-mix(in srgb,canvastext 25%,transparent);border-radius:6px;background:canvas;color:canvastext}button,input{font-size:1rem}button{padding:10px;border:none;border-radius:6px;background:#2563eb;color:#fff;cursor:pointer}button:disabled{opacity:.6;cursor:default}.error{color:#dc2626;margin:0}.error,.muted{font-size:.875rem}.muted{color:color-mix(in srgb,canvastext 60%,transparent)}a{color:#2563eb}.top-bar{position:fixed;top:0;left:0;right:0;height:56px;justify-content:space-between;padding:0 16px;background:canvas;border-bottom:1px solid color-mix(in srgb,canvastext 12%,transparent);z-index:20}.top-bar,.top-bar-right{display:flex;align-items:center}.top-bar-right{gap:8px}.top-bar-spacer{height:56px}.avatar-menu-wrapper,.nav-menu-wrapper{position:relative}.nav-menu-trigger{background:color-mix(in srgb,canvastext 10%,canvas);color:canvastext;font:inherit}.avatar-corner,.nav-menu-trigger{width:40px;height:40px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none}.avatar-corner{overflow:hidden;background:#2563eb;color:#fff;font-weight:600;font:inherit}.avatar-corner img{width:100%;height:100%;object-fit:cover}.avatar-menu-overlay{position:fixed;inset:0;z-index:15}.avatar-menu{position:absolute;top:48px;right:0;min-width:150px;background:canvas;border:1px solid color-mix(in srgb,canvastext 15%,transparent);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);overflow:hidden;z-index:20}.avatar-menu-item{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;border-radius:0;color:canvastext;font-size:.9rem;font-family:inherit;cursor:pointer;text-decoration:none}.avatar-menu-item:hover{background:color-mix(in srgb,canvastext 8%,transparent)}.timeline-section{width:100%;padding:32px 24px 0}.timeline{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px}.timeline-day{position:relative;flex:0 0 auto;width:64px;min-height:76px;border:1px solid color-mix(in srgb,canvastext 15%,transparent);border-radius:8px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;background:canvas;color:canvastext;font:inherit;cursor:pointer}.timeline-day-completed-badge{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#16a34a;color:#fff;font-size:.7rem;line-height:18px;text-align:center}.timeline-day-has-events{border-color:transparent;color:#fff}.timeline-day-selected{box-shadow:0 0 0 2px #2563eb}.timeline-day-today{border-color:#2563eb;border-width:2px}.timeline-day-label{font-size:.7rem;opacity:.75;text-transform:uppercase}.timeline-day-number{font-size:1.1rem;font-weight:600}.timeline-day-today-label{font-size:.6rem;font-weight:600;text-transform:uppercase;color:#2563eb}.timeline-day-has-events .timeline-day-today-label{color:#fff}.timeline-detail{padding:16px 0 32px}.timeline-detail-heading{font-size:1.1rem;margin:0 0 12px}.timeline-detail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-width:360px}.timeline-detail-item{display:flex;align-items:flex-start;gap:10px}.timeline-detail-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0}.timeline-detail-title{font-weight:600}.timeline-detail-meta{font-size:.8rem;color:color-mix(in srgb,canvastext 60%,transparent)}.timeline-detail-workout-link{display:inline-block;margin-top:6px;font-size:.8rem}.workout-session{margin-top:10px;padding:12px;border:1px solid color-mix(in srgb,canvastext 15%,transparent);border-radius:8px}.workout-session-current{display:flex;align-items:center;gap:12px}.workout-session-current .exercise-icon{width:40px;height:40px;flex-shrink:0}.workout-session-actions{display:flex;gap:8px;margin-top:10px}.admin-page{max-width:720px;margin:64px auto 0;padding:0 24px 64px;display:flex;flex-direction:column;gap:16px}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{text-align:left;padding:10px 12px;border-bottom:1px solid color-mix(in srgb,canvastext 12%,transparent);font-size:.9rem}.admin-table th{font-size:.7rem;text-transform:uppercase;opacity:.6}.admin-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:600;background:#2563eb;color:#fff}.account-cell{display:flex;align-items:center;gap:10px;color:canvastext;text-decoration:none}.account-cell:hover{text-decoration:underline}.account-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}.button-danger{background:#dc2626}.checkbox-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:.9rem}.checkbox-label input{width:auto}.weekday-picker{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px}.weekday-button{padding:8px 12px;font-size:.875rem;font-weight:500;background:canvas;color:canvastext;border:1px solid color-mix(in srgb,canvastext 25%,transparent)}.weekday-button-selected{background:#2563eb;color:#fff;border-color:#2563eb}.month-day-picker{display:flex;flex-direction:row;gap:8px}.lab-page{max-width:1500px;margin:24px auto 0;padding:0 24px 64px;display:flex;flex-direction:column;gap:16px}.lab-layout{display:grid;grid-template-columns:360px minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}@media (max-width:960px){.lab-layout{grid-template-columns:minmax(0,1fr)}}.lab-sidebar{max-height:calc(100vh - 100px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:72px;padding-right:8px}.lab-main{gap:16px;min-width:0}.lab-main,.lab-panel{display:flex;flex-direction:column}.lab-panel{gap:20px}.lab-section{display:flex;flex-direction:column;gap:10px;padding-bottom:16px;border-bottom:1px solid color-mix(in srgb,canvastext 12%,transparent)}.lab-section h2,.lab-warnings h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;margin:0;opacity:.7}.lab-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.lab-panel select,.lab-panel textarea{border:1px solid color-mix(in srgb,canvastext 25%,transparent);border-radius:6px;background:canvas;color:canvastext}.lab-panel input,.lab-panel select,.lab-panel textarea{font-size:.9rem;padding:6px 8px;min-width:0}.lab-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lab-row>input[type=text],.lab-row>select{flex:1 1}.lab-row>input[type=number]{width:70px}.lab-checks{display:flex;flex-wrap:wrap;gap:4px 12px}.lab-check{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:.85rem}.lab-check input{width:auto;padding:0}.lab-button-secondary{padding:6px 10px;font-size:.85rem;background:color-mix(in srgb,canvastext 10%,canvas);color:canvastext}.lab-helper{display:flex;flex-direction:column;gap:6px}.lab-helper-title{font-size:.8rem;font-weight:600}.lab-date-list{list-style:none;margin:0;padding:0;max-height:160px;overflow-y:auto;font-size:.8rem}.lab-date-list li{display:flex;align-items:center;gap:8px;padding:2px 0}.lab-date-list li>span{flex:1 1}.lab-date-list select{padding:2px 4px;font-size:.75rem}.lab-remove{padding:0 8px;font-size:1rem;line-height:1.4;background:transparent;color:#dc2626}.lab-json{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.lab-toolbar{.page-header-row{display:flex;align-items:center;justify-content:space-between}.team-list{display:flex;flex-direction:column;gap:8px}.team-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid color-mix(in srgb,canvastext 15%,transparent);border-radius:8px;color:canvastext;text-decoration:none}.team-card:hover{background:color-mix(in srgb,canvastext 5%,transparent)}.exercise-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none}.exercise-item{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:color-mix(in srgb,canvastext 6%,transparent);font-size:.8rem}.exercise-item-completed{background:color-mix(in srgb,#16a34a 18%,transparent)}.exercise-item-skipped{background:color-mix(in srgb,canvastext 6%,transparent);opacity:.6;text-decoration:line-through}.exercise-icon{width:20px;height:20px;border-radius:50%}.workout-exercise-list{display:flex;flex-direction:column;gap:8px;padding:0;list-style:none}.workout-exercise-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid color-mix(in srgb,canvastext 15%,transparent);border-radius:8px}.workout-exercise-row .exercise-icon{width:36px;height:36px;flex-shrink:0}.workout-exercise-info{flex:1 1}.add-exercise-row{display:flex;flex-direction:row;gap:8px}.add-exercise-row select{flex:1 1}.invite-banner{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid color-mix(in srgb,canvastext 15%,transparent);border-radius:8px;background:color-mix(in srgb,#2563eb 6%,canvas)}.invite-banner h2{margin:0;font-size:1rem}.invite-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lab-step-picker{flex-direction:row;align-items:center;gap:8px}.lab-warnings{display:flex;flex-direction:column;gap:6px}.lab-warnings p{margin:0;font-size:.85rem}.lab-gate-error,.lab-warning{padding:6px 10px;border-radius:6px;border-left:4px solid #d97706;background:color-mix(in srgb,#d97706 12%,canvas)}.lab-gate-error{border-left-color:#dc2626;background:color-mix(in srgb,#dc2626 12%,canvas)}.lab-calendar{display:flex;flex-direction:column;gap:6px;overflow-x:auto}.lab-week{display:grid;grid-template-columns:56px repeat(7,minmax(110px,1fr));grid-gap:6px;gap:6px}.lab-week-label{font-size:.75rem;font-weight:600;opacity:.6;padding-top:6px}.lab-cell{min-height:96px;padding:6px;border:1px solid color-mix(in srgb,canvastext 14%,transparent);border-radius:8px;display:flex;flex-direction:column;gap:4px}.lab-cell-date{font-size:.7rem;opacity:.6}.lab-tag{font-size:.7rem;padding:2px 6px;border-radius:4px}.lab-game{background:#7c3aed;color:#fff;font-weight:600}.lab-training{background:color-mix(in srgb,#6b7280 18%,canvas)}.lab-load-low{background:color-mix(in srgb,#16a34a 25%,canvas)}.lab-load-moderate{background:color-mix(in srgb,#eab308 30%,canvas)}.lab-load-high{background:color-mix(in srgb,#dc2626 30%,canvas)}.lab-session{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 6px;font-size:.75rem;text-align:left;background:#2563eb;color:#fff}.lab-session-key{font-weight:700}.lab-session-status{opacity:.85;margin-left:auto}.lab-status-completed{background:#16a34a}.lab-status-partial{background:#d97706}.lab-status-missed{background:#6b7280}.lab-changed{outline:3px solid #f59e0b;outline-offset:1px}.lab-selected{box-shadow:0 0 0 2px canvas,0 0 0 4px canvastext}.lab-panel input.lab-invalid{border-color:#dc2626;outline:1px solid #dc2626}.lab-actions,.lab-tabs{display:flex;gap:4px;border-bottom:1px solid color-mix(in srgb,canvastext 15%,transparent)}.lab-tab{padding:6px 14px;font-size:.9rem;background:transparent;color:canvastext;border-radius:6px 6px 0 0;border-bottom:2px solid transparent}.lab-tab-active{border-bottom-color:#2563eb;font-weight:600}.lab-calendar-tab{display:flex;flex-direction:column;gap:16px}.lab-calendar-tab[hidden]{display:none}.lab-lower{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);grid-gap:24px;gap:24px;align-items:start}@media (max-width:1200px){.lab-lower{grid-template-columns:minmax(0,1fr)}}.lab-side{display:flex;flex-direction:column;gap:24px;min-width:0}.lab-checkin,.lab-drawer,.lab-timeline{gap:12px;min-width:0}.lab-alts h3,.lab-checkin h2,.lab-drawer h2,.lab-library h3,.lab-timeline h2,.lab-view h4{font-size:.85rem;margin:0;opacity:.85}.lab-drawer-header{display:flex;flex-direction:column;gap:6px}.lab-drawer-header p{margin:0}.lab-chips{display:flex;flex-wrap:wrap;gap:6px}.lab-chip{display:inline-block;padding:1px 8px;font-size:.72rem;border-radius:999px;background:color-mix(in srgb,canvastext 12%,canvas);white-space:nowrap}.lab-chip-applied,.lab-chip-ok,.lab-chip-status-completed{background:color-mix(in srgb,#16a34a 30%,canvas)}.lab-chip-error,.lab-chip-reject,.lab-chip-status-missed{background:color-mix(in srgb,#dc2626 25%,canvas)}.lab-chip-flag,.lab-chip-proposed,.lab-chip-status-partial{background:color-mix(in srgb,#d97706 35%,canvas)}.lab-table-wrap{overflow-x:auto}.lab-table-scroll{max-height:420px;overflow-y:auto}.lab-table{width:100%;border-collapse:collapse;font-size:.8rem}.lab-table td,.lab-table th{text-align:left;vertical-align:top;padding:4px 8px;border-bottom:1px solid color-mix(in srgb,canvastext 10%,transparent)}.lab-table th{position:-webkit-sticky;position:sticky;top:0;background:canvas;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;opacity:.8}.lab-why{max-width:260px;color:color-mix(in srgb,canvastext 70%,transparent)}.lab-row-actions{display:flex;gap:4px;white-space:nowrap}.lab-alts{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.lab-alts ol,.lab-alts ul{margin:4px 0 0;padding-left:20px}.lab-rejected li{margin-bottom:2px}.lab-fieldset{border:none;padding:0;margin:0;min-width:0}.lab-fieldset:disabled{opacity:.55}.lab-form{display:flex;flex-direction:column;gap:12px}.lab-form label,.lab-library label{display:flex;flex-direction:column;gap:4px;font-size:.8rem}.lab-form label.lab-check,.lab-form label.lab-row,.lab-timeline label.lab-row{flex-direction:row}.lab-verdict-name{flex:1 1}.lab-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lab-step{padding:6px 8px;border:1px solid color-mix(in srgb,canvastext 14%,transparent);border-radius:8px;font-size:.8rem}.lab-step-selected{border-color:#2563eb;background:color-mix(in srgb,#2563eb 8%,canvas)}.lab-step-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.lab-step-select{padding:2px 8px;font-size:.8rem;font-weight:600;background:transparent;color:canvastext;text-align:left}.lab-step-buttons{margin-left:auto;display:flex;gap:4px}.lab-step-buttons .lab-button-secondary{padding:0 8px}.lab-step-details{margin-top:4px}.lab-step-details summary{cursor:pointer;font-size:.75rem}.lab-adjustments{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.lab-adjustment p{margin:4px 0}.lab-adjustment-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.lab-before-after{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:8px;gap:8px;align-items:start}.lab-view ul{margin:2px 0 0;padding-left:16px}.lab-view p{margin:0}.lab-json-inline{margin:0;white-space:pre-wrap;font-size:.7rem}.lab-warning-list{margin:6px 0 0;padding-left:18px}.lab-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.lab-template-session{display:flex;flex-direction:column;gap:4px}.lab-template-session p{margin:0}.lab-add-extra{margin-top:auto;padding:1px 6px;font-size:.7rem;background:transparent;color:color-mix(in srgb,canvastext 55%,transparent);border:1px dashed color-mix(in srgb,canvastext 25%,transparent)}.lab-cell-selected{border-color:canvastext;box-shadow:0 0 0 1px canvastext}}.invite-actions{display:flex;gap:8px;flex-shrink:0}.invite-actions button{padding:6px 12px;font-size:.85rem}