:root{color-scheme:light;--app-bg: #f6f7fb;--app-surface: #ffffff;--app-surface-rgb: 255, 255, 255;--app-surface-soft: #eef2ff;--app-surface-subtle: #f8fafc;--app-border: #d9deea;--app-text: #172033;--app-muted: #667085;--app-accent: #2563eb;--app-accent-strong: #1d4ed8;--app-accent-soft: #dbeafe;--app-primary-contrast: #ffffff;--app-button-secondary-bg: var(--app-surface-soft);--app-button-secondary-text: var(--app-text);--app-icon-button-bg: var(--app-text);--app-icon-button-text: #ffffff;--app-bottom-nav-bg: rgba(var(--app-surface-rgb), .92);--app-bottom-nav-active-bg: var(--app-surface-soft);--app-danger: #dc2626;--app-danger-soft: #fee2e2;--app-danger-surface: #fef2f2;--app-danger-border: #fecaca;--app-success: #16a34a;--app-current-time: #ef4444;--app-swatch-border: #ffffff;--app-shadow: 0 14px 40px rgba(23, 32, 51, .12);--app-card-shadow: 0 8px 28px rgba(23, 32, 51, .08);--app-modal-backdrop: rgba(23, 32, 51, .36);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}[data-theme=dark]{color-scheme:dark;--app-bg: #0b1120;--app-surface: #111827;--app-surface-rgb: 17, 24, 39;--app-surface-soft: #1f2937;--app-surface-subtle: #172033;--app-border: #334155;--app-text: #f8fafc;--app-muted: #94a3b8;--app-accent: #3b82f6;--app-accent-strong: #93c5fd;--app-accent-soft: #1e3a8a;--app-primary-contrast: #ffffff;--app-button-secondary-bg: #1e293b;--app-button-secondary-text: #e2e8f0;--app-icon-button-bg: #1f2937;--app-icon-button-text: #f8fafc;--app-bottom-nav-bg: rgba(var(--app-surface-rgb), .94);--app-bottom-nav-active-bg: #1e293b;--app-danger: #f87171;--app-danger-soft: #3f1d24;--app-danger-surface: #2b1218;--app-danger-border: #7f1d1d;--app-success: #4ade80;--app-current-time: #f87171;--app-swatch-border: #e2e8f0;--app-shadow: 0 14px 40px rgba(0, 0, 0, .35);--app-card-shadow: 0 12px 28px rgba(0, 0, 0, .32);--app-modal-backdrop: rgba(2, 6, 23, .68)}:root{--color-bg: var(--app-bg);--color-surface: var(--app-surface);--color-surface-soft: var(--app-surface-soft);--color-text: var(--app-text);--color-text-muted: var(--app-muted);--color-border: var(--app-border);--color-primary: var(--app-accent);--color-primary-contrast: var(--app-primary-contrast);--color-danger: var(--app-danger);--color-button-secondary-bg: var(--app-button-secondary-bg);--color-button-secondary-text: var(--app-button-secondary-text);--color-icon-button-bg: var(--app-icon-button-bg);--color-icon-button-text: var(--app-icon-button-text);--color-bottom-nav-bg: var(--app-bottom-nav-bg);--color-bottom-nav-active-bg: var(--app-bottom-nav-active-bg)}*{box-sizing:border-box}html,body,#app{width:100%;overflow-x:hidden}body{margin:0;min-width:320px;background:var(--app-bg);color:var(--app-text)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}input,textarea,select{width:100%;border:1px solid var(--app-border);border-radius:12px;padding:12px 14px;background:var(--app-surface);color:var(--app-text);min-width:0}input::placeholder,textarea::placeholder{color:var(--app-muted);opacity:.82}textarea{min-height:90px;resize:vertical}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,420px);display:grid;gap:14px;padding:24px;background:var(--app-surface);border:1px solid var(--app-border);border-radius:24px;box-shadow:var(--app-shadow)}.auth-card h1,.page-header h1,.panel h2{margin:0;letter-spacing:0}.auth-card p,.page-header p,.panel p,.workout-card p{margin:4px 0 0;color:var(--app-muted)}.app-shell{min-height:100vh}.app-main{width:min(100%,760px);margin:0 auto;padding:18px 14px calc(112px + env(safe-area-inset-bottom));display:grid;gap:16px;min-width:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:8px}.page-header h1{font-size:28px;line-height:1.08;overflow-wrap:anywhere}.page-header h1 span{color:var(--app-accent)}.page-header--row{align-items:center}.quick-actions,.card-actions,.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding-bottom:0}.card-actions--wrap{flex-wrap:wrap;overflow:visible}.panel,.workout-card,.day-card,.calendar-day{background:var(--app-surface);border:1px solid var(--app-border);border-radius:18px;box-shadow:var(--app-card-shadow)}.panel{padding:16px;display:grid;gap:14px;min-width:0}.panel__header,.day-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.primary-btn,.secondary-btn,.danger-btn,.icon-btn,.context-chip{border:1px solid transparent;border-radius:14px;min-height:44px;padding:10px 14px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;font-weight:700;max-width:100%}.primary-btn:disabled,.secondary-btn:disabled,.danger-btn:disabled{cursor:not-allowed;opacity:.55}.primary-btn--full,.secondary-btn--full{width:100%}.primary-btn{background:var(--app-accent);color:var(--app-primary-contrast);border-color:var(--app-accent)}.secondary-btn,.context-chip{background:var(--app-button-secondary-bg);color:var(--app-button-secondary-text);border-color:var(--app-border)}.danger-btn{background:var(--app-danger-soft);color:var(--app-danger);border-color:var(--app-danger-border)}.icon-btn{width:44px;min-width:44px;background:var(--app-icon-button-bg);color:var(--app-icon-button-text);border-color:var(--app-border)}.icon-btn--light{background:var(--app-button-secondary-bg);color:var(--app-button-secondary-text)}.day-context{display:grid;gap:8px;min-width:0}.day-context__heading h2{margin:0;font-size:13px;color:var(--app-muted);text-transform:uppercase;letter-spacing:0}.day-context-card{width:100%;min-width:0;border:1px solid var(--app-border);border-radius:18px;padding:12px;background:var(--app-surface);box-shadow:var(--app-card-shadow);color:inherit;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.day-context-card__main{min-width:0;display:flex;align-items:center;gap:10px}.day-context-card__label{min-width:0;display:grid;gap:1px;text-align:left;font-weight:800}.day-context-card__label small{color:var(--app-muted);font-size:12px;font-weight:700}.day-context-card__action{flex:0 0 auto;color:var(--app-accent-strong);font-size:13px;font-weight:800}.context-dot{width:18px;height:18px;flex:0 0 18px;border-radius:999px;display:grid;place-items:center;color:var(--app-accent-strong);font-size:13px;font-weight:900}.context-dot--empty{background:var(--app-surface-soft);border:1px solid var(--app-border)}.context-chip{border:1px solid var(--app-border)}.context-chip--active{outline:2px solid var(--app-accent);background:var(--app-accent-soft)}.inline-form,.editor-form{display:grid;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.check-row{display:flex;align-items:center;gap:8px;color:var(--app-muted)}.check-row input{width:auto}.all-day,.timeline,.workout-list,.day-list{display:grid;gap:12px}.timeline-panel__header{align-items:center}.timeline-panel__meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex-wrap:wrap}.timeline-mode-toggle{min-height:34px;border:1px solid var(--app-border);border-radius:999px;padding:6px 10px;background:var(--app-surface-soft);color:var(--app-accent-strong);font-size:12px;font-weight:800;cursor:pointer}.timeline-item{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:start;min-width:0}.timeline--day-grid{position:relative;overflow:visible;padding-left:0;gap:0}.timeline-empty-state{margin:2px 0 4px;padding:12px 14px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface-subtle);color:var(--app-muted);font-size:14px;line-height:1.4}.timeline-now-chip{justify-self:start;margin:0;padding:6px 10px;border:1px solid var(--app-danger-border);border-radius:999px;background:var(--app-danger-surface);color:var(--app-current-time);font-size:12px;font-weight:800}.timeline-grid{position:absolute;inset:0;z-index:0;pointer-events:none}.timeline-row{display:grid;grid-template-columns:56px minmax(0,1fr);height:48px;min-width:0}.timeline-hour-label{color:var(--app-muted);font-size:12px;font-weight:800;line-height:1;background:var(--app-surface);padding-top:0}.timeline-line-area{position:relative;border-top:1px solid var(--app-border)}.timeline-events-layer{position:absolute;inset:0 0 0 64px;z-index:10}.timeline-event{position:absolute;box-sizing:border-box;min-width:0;padding-right:4px}.timeline-event-card{height:100%;overflow:hidden}.timeline-item--positioned{position:absolute;left:64px;right:0;z-index:10;grid-template-columns:0 minmax(0,1fr);gap:0}.timeline-item--positioned time{width:0;height:0;overflow:hidden;opacity:0}.current-time-line{position:absolute;left:64px;right:0;height:2px;background:var(--app-current-time);z-index:20;pointer-events:none}.current-time-dot{position:absolute;left:0;top:50%;width:10px;height:10px;border-radius:9999px;background:var(--app-current-time);transform:translate(-50%,-50%)}.current-time-label{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:800;color:var(--app-current-time);background:var(--app-surface);padding:2px 6px;border:1px solid var(--app-danger-border);border-radius:999px}.timeline-item time{color:var(--app-muted);font-weight:800;font-size:13px;display:grid;gap:2px}.event-card{padding:12px;border-radius:14px;background:var(--app-surface-subtle);border:1px solid var(--app-border);display:grid;gap:4px;min-width:0}.event-card--button{width:100%;border:0;text-align:left;color:inherit;cursor:pointer}.event-card strong,.workout-card h3,.day-card strong{overflow-wrap:anywhere}.event-card small,.event-card p{color:var(--app-muted);margin:0}.workout-card,.day-card{padding:14px;display:grid;gap:10px;min-width:0}.day-card ul{margin:0;padding-left:18px;color:var(--app-muted)}.week-summary{gap:4px}.week-summary p{margin:0;color:var(--app-muted)}.week-list{gap:10px}.week-day-card{gap:12px;color:inherit}.week-day-card--today{border-color:var(--app-accent);box-shadow:var(--app-card-shadow)}.week-day-card__date{min-width:0;display:grid;gap:2px}.week-day-card__date strong{text-transform:capitalize}.week-day-card__date span{color:var(--app-muted);font-size:13px;font-weight:800}.week-pill{max-width:45%;min-height:28px;padding:5px 9px;border-radius:999px;background:var(--app-surface-soft);color:var(--app-accent-strong);font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-pill--today{background:var(--app-accent-soft)}.week-day-card__meta{display:flex;flex-wrap:wrap;gap:6px}.week-day-card__meta span{padding:5px 8px;border-radius:999px;background:var(--app-surface-subtle);color:var(--app-muted);font-size:12px;font-weight:800}.week-event-list{display:grid;gap:6px;padding-left:0;list-style:none}.week-event-list li{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:start;min-width:0}.week-event-list span{color:var(--app-muted);font-size:12px;font-weight:800}.week-event-list strong{font-size:14px;overflow-wrap:anywhere}.week-more{color:var(--app-muted);font-weight:800}.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.theme-option{min-width:0;min-height:42px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface-soft);color:var(--app-text);font-weight:800;cursor:pointer}.theme-option--active{border-color:var(--app-accent);background:var(--app-accent-soft);color:var(--app-accent-strong)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-day{min-height:92px;padding:10px 8px;display:grid;align-content:start;gap:6px;min-width:0;position:relative;overflow:hidden}.calendar-day--context,.day-card[style*=--context-color]{background:linear-gradient(0deg,color-mix(in srgb,var(--context-color) 18%,transparent),color-mix(in srgb,var(--context-color) 18%,transparent)),var(--app-surface);border-color:color-mix(in srgb,var(--context-color) 42%,var(--app-border))}.calendar-day small{color:var(--app-muted);overflow-wrap:anywhere}.dot,.gym-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot{background:var(--app-accent)}.gym-dot{background:var(--app-success)}.day-indicators,.modal-actions,.participant-search{display:flex;gap:8px;align-items:center;min-width:0}.modal-actions{justify-content:space-between;flex-wrap:wrap}.participant-search{flex-wrap:wrap}.participant-search input{flex:1 1 220px}.participant-search .secondary-btn{flex:0 1 auto}.sub-panel{display:grid;gap:8px;padding:12px;border:1px solid var(--app-border);border-radius:14px;background:var(--app-surface-soft)}.search-results{display:grid;gap:6px}.search-results button{border:1px solid var(--app-border);border-radius:12px;padding:10px 12px;background:var(--app-surface);color:var(--app-text);text-align:left}.search-results small{color:var(--app-muted)}.chips--wrap{flex-wrap:wrap;overflow:visible}.success-text{color:var(--app-accent-strong);margin:0}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(100%,760px);display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 12px max(12px,env(safe-area-inset-bottom));background:var(--app-bottom-nav-bg);border-top:1px solid var(--app-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:50}.bottom-nav__item{min-width:0;min-height:54px;border-radius:16px;display:grid;place-items:center;gap:2px;color:var(--app-muted);background:transparent;font-size:12px}.bottom-nav__item.router-link-active{background:var(--app-bottom-nav-active-bg);color:var(--app-accent-strong)}.bottom-nav__icon{width:22px;height:22px;border-radius:8px;background:transparent;color:currentColor;display:grid;place-items:center;font-size:13px;font-weight:900}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:var(--app-modal-backdrop);display:grid;align-items:end;overflow:hidden}.modal{width:min(100%,760px);margin:0 auto;max-height:86vh;overflow:auto;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:grid;gap:14px;background:var(--app-surface);border-radius:24px 24px 0 0;z-index:1001;min-width:0;max-width:100%}.event-modal{max-height:calc(100dvh - 24px);overflow:hidden;padding:0;display:flex;flex-direction:column;box-shadow:var(--app-shadow)}.event-modal__header{flex:0 0 auto;padding:18px 16px 12px;border-bottom:1px solid var(--app-border);background:var(--app-surface)}.event-modal__body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;display:grid;gap:14px;padding:14px 16px calc(96px + env(safe-area-inset-bottom));overscroll-behavior:contain}.event-modal__footer{position:sticky;bottom:0;flex:0 0 auto;padding:12px 16px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--app-border);background:var(--app-surface)}.event-modal__footer .primary-btn{margin-left:auto}.form-field{display:grid;gap:6px;min-width:0}.field-label{color:var(--app-muted);font-size:13px;font-weight:800}.field-error{color:var(--app-danger);font-size:13px;font-weight:700;line-height:1.35}.form-alert{margin:0;padding:10px 12px;border:1px solid var(--app-danger-border);border-radius:14px;background:var(--app-danger-surface);color:var(--app-danger);font-weight:800}.form-field--invalid input,.form-field--invalid select,.form-field--invalid textarea{border-color:var(--app-danger);outline:2px solid rgba(220,38,38,.16)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-header h2,.modal-header p{margin:0}.modal-header p{margin-top:4px;color:var(--app-muted)}.day-context-modal{box-shadow:var(--app-shadow)}.context-list,.context-form,.context-recurrence{display:grid;gap:10px;min-width:0}.context-option{width:100%;min-width:0;min-height:48px;border:1px solid var(--app-border);border-radius:14px;padding:10px 12px;background:var(--app-surface);color:var(--app-text);display:flex;align-items:center;gap:10px;text-align:left;font-weight:800}.context-option--active{border-color:var(--app-accent);background:var(--app-surface-soft)}.color-picker{display:flex;flex-wrap:wrap;gap:10px}.color-picker__swatch{width:34px;height:34px;border:2px solid var(--app-swatch-border);border-radius:999px;box-shadow:0 0 0 1px var(--app-border);cursor:pointer}.color-picker__swatch--active{box-shadow:0 0 0 3px var(--app-accent)}.exercise-row{display:grid;gap:8px;padding:12px;border:1px solid var(--app-border);border-radius:14px}.empty-state,.error-text{color:var(--app-muted);margin:0}.error-text{color:var(--app-danger)}@media(min-width:720px){.app-main{padding-top:32px}.page-header h1{font-size:38px}}@media(max-width:390px){.app-main{padding-left:12px;padding-right:12px}.quick-actions{grid-template-columns:1fr}.page-header h1{font-size:26px}}
