*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-body: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Poppins", sans-serif;--bg: #F4F7F6;--bg-secondary: #E8EEED;--bg-card: #FFFFFF;--bg-input: #FFFFFF;--text-primary: #2D3436;--text-secondary: #636E72;--text-muted: #B2BEC3;--accent: #FF7675;--accent-hover: #E86B6A;--accent-subtle: rgba(255, 118, 117, .15);--border: rgba(45, 52, 54, .08);--border-strong: rgba(45, 52, 54, .15);--success: #63A3A3;--success-subtle: rgba(99, 163, 163, .15);--teal: #63A3A3;--teal-subtle: rgba(99, 163, 163, .12);--warning: #A29BFE;--shadow-sm: 0 1px 3px rgba(45, 52, 54, .05);--shadow-md: 0 4px 16px rgba(45, 52, 54, .08);--shadow-lg: 0 8px 32px rgba(45, 52, 54, .12);--sidebar-rail-width: 64px;--sidebar-panel-width: 240px;--sidebar-bg: #FFFFFF;--sidebar-panel-bg: #F4F7F6;--sidebar-border: rgba(45, 52, 54, .08);--sidebar-text: #2D3436;--sidebar-text-muted: #636E72;--sidebar-active-bg: rgba(99, 163, 163, .12);--sidebar-hover-bg: rgba(45, 52, 54, .04);--sidebar-accent: #63A3A3}@media(prefers-color-scheme:dark){:root{--bg: #0D1117;--bg-secondary: #161B22;--bg-card: #21262D;--bg-input: #0D1117;--text-primary: #F0F6FC;--text-secondary: #8B949E;--text-muted: #6E7681;--accent: #FF7675;--accent-hover: #FF8C8B;--accent-subtle: rgba(255, 118, 117, .2);--border: #30363D;--border-strong: #484F58;--success: #63A3A3;--success-subtle: rgba(99, 163, 163, .2);--teal: #63A3A3;--teal-subtle: rgba(99, 163, 163, .2);--warning: #A29BFE;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.6);--shadow-lg: 0 8px 32px rgba(0,0,0,.8);--sidebar-bg: #0D1117;--sidebar-panel-bg: #161B22;--sidebar-border: #30363D;--sidebar-text: #F0F6FC;--sidebar-text-muted: #8B949E;--sidebar-active-bg: rgba(99, 163, 163, .2);--sidebar-hover-bg: rgba(255, 255, 255, .05);--sidebar-accent: #63A3A3}}html,body{height:100%;background:var(--bg);color:var(--text-primary);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-display);letter-spacing:.02em;line-height:1.1}button{cursor:pointer;font-family:var(--font-body);border:none;outline:none}input,select,textarea{font-family:var(--font-body)}a{text-decoration:none;color:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}@media(max-width:767px){.card{padding:16px;border-radius:12px}}.btn-primary{background:var(--accent);color:#fff;padding:12px 24px;border-radius:10px;font-weight:600;font-size:14px;letter-spacing:.02em;border:none;box-shadow:0 4px 12px var(--accent-subtle);transition:all .2s ease}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px var(--accent-subtle)}.btn-primary:active{transform:scale(.98) translateY(0);box-shadow:0 2px 8px var(--accent-subtle)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:transparent;color:var(--text-primary);padding:10px 20px;border-radius:10px;font-weight:600;font-size:14px;border:1px solid var(--border-strong);transition:all .2s ease}.btn-secondary:hover{border-color:var(--teal);background:var(--teal-subtle);color:var(--teal)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:8px 14px;border-radius:10px;font-size:14px;font-weight:500;transition:all .2s ease}.btn-ghost:hover{background:var(--teal-subtle);color:var(--teal)}.btn-danger{background:transparent;color:var(--accent);padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid var(--accent);transition:all .2s ease}.btn-danger:hover{background:var(--accent-subtle)}.input-field{width:100%;background:var(--bg-input);border:1px solid var(--border-strong);color:var(--text-primary);padding:12px 14px;border-radius:10px;font-size:14px;transition:border-color .2s,box-shadow .2s;outline:none}.input-field:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-subtle)}.input-field::placeholder{color:var(--text-muted)}select.input-field option{background:var(--bg-card);color:var(--text-primary)}@media(max-width:767px){.input-field{font-size:16px}}.label{font-size:12px;font-weight:600;color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;display:block}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.error-text{color:var(--accent);font-size:13px;margin-top:4px}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border)}.badge-accent{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent-subtle)}.badge-success{background:var(--success-subtle);color:var(--success);border-color:var(--success-subtle)}.badge-teal{background:var(--teal-subtle);color:var(--teal);border-color:var(--teal-subtle)}.modal-overlay{position:fixed;inset:0;background:#1e242699;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media(max-width:767px){.modal-overlay{padding:0;align-items:flex-end}}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:32px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:fadeIn .2s ease}@media(max-width:767px){.modal{max-width:100%;max-height:85dvh;border-radius:24px 24px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));animation:slideUp .3s ease;display:flex;flex-direction:column}.modal-actions{position:sticky;bottom:calc(-24px - env(safe-area-inset-bottom));background:var(--bg-card);padding-top:16px;margin-top:auto;border-top:1px solid var(--border);z-index:10}}.modal-title{font-size:28px;margin-bottom:24px;color:var(--text-primary)}@media(max-width:767px){.modal-title{font-size:24px;margin-bottom:20px}}.divider{height:1px;background:var(--border);margin:20px 0}@media(max-width:767px){.modal-overlay.modal-center{align-items:flex-start;padding:20px}.modal-overlay.modal-center .modal{max-height:80vh;border-radius:16px}}.empty-state-large{text-align:center;padding:40px}.empty-state-icon-large{font-size:48px;margin-bottom:16px}.empty-state-title{font-family:var(--font-display);font-size:24px;margin-bottom:8px;color:var(--text-primary)}.empty-state-desc{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.empty-state-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.active-session-banner{margin-bottom:20px;background:var(--teal-subtle);border:1px solid var(--teal);border-radius:12px}.active-session-label{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--teal);margin-bottom:4px;text-transform:uppercase}.active-session-timer{font-family:var(--font-display);font-size:32px;color:var(--text-primary);line-height:1}.active-session-info-right{text-align:right}.active-session-plan{font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.active-session-progress{font-size:13px;color:var(--text-secondary)}.active-session-column-header{display:flex;gap:8px;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:8px;padding-left:8px}.active-session-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.set-toggle-btn{width:38px;height:38px;border-radius:10px;cursor:pointer;flex-shrink:0;background:var(--bg-input);border:2px solid var(--border-strong);color:var(--text-muted);font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1)}.set-toggle-btn.completed{background:var(--success);border-color:var(--success);color:#fff;transform:scale(1.05)}@media(max-width:380px){.card{padding:12px}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{padding-left:10px;padding-right:10px;font-size:13px}.modal{padding:20px 16px calc(20px + env(safe-area-inset-bottom))}}.button-group{display:flex;gap:8px;flex-wrap:wrap}.category-nav-container{width:100%;display:flex;gap:6px;overflow-x:auto;padding-bottom:12px;margin-bottom:12px;scrollbar-width:none;cursor:grab}.category-nav-container::-webkit-scrollbar{display:none}.category-nav-container.is-dragging{cursor:grabbing;scroll-behavior:auto}.category-nav-container:not(.is-dragging){scroll-behavior:smooth}.category-nav-btn{flex:0 0 auto;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all .2s ease;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer}.category-nav-btn.active{border-color:var(--teal);background:var(--teal-subtle);color:var(--teal)}.rec-alert{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:10px 14px;border-radius:12px;margin-bottom:12px;font-size:13px;font-weight:600}.rec-alert.type-default{background:var(--teal-subtle);color:var(--teal);border:1px solid rgba(0,184,148,.3)}.rec-alert.type-deload{background:#74b9ff26;color:#0984e3;border:1px solid rgba(116,185,255,.3)}.rec-alert.type-amrap{background:#ff767526;color:var(--accent);border:1px solid rgba(255,118,117,.3)}.rec-alert-header{display:flex;align-items:center;gap:8px}.rec-alert-reason{line-height:1.4}.rec-alert-actions{display:flex;gap:8px;width:100%;justify-content:flex-end}.rec-alert-actions .btn-ghost{padding:6px 12px;font-size:12px;min-width:auto;background:var(--bg-card)}.rec-alert-actions .btn-primary{padding:6px 12px;font-size:12px;min-width:auto}.rec-alert-actions .btn-primary.type-deload{background:#0984e3}.rec-alert-actions .btn-primary.type-amrap{background:var(--accent)}.rec-alert-actions .btn-primary.type-default{background:var(--teal)}.app-layout{display:flex;min-height:100vh;max-width:100vw;overflow-x:hidden}.app-layout .main-content{flex:1;min-width:0;max-width:100%;min-height:100vh;background:var(--bg);transition:margin-left .3s cubic-bezier(.2,.8,.2,1)}@media(min-width:768px){aside.sidebar-desktop.expanded~.main-content{margin-left:var(--sidebar-panel-width)}aside.sidebar-desktop.collapsed~.main-content{margin-left:var(--sidebar-rail-width)}}@media(max-width:767px){.app-layout .main-content{margin-left:0!important;padding-bottom:calc(110px + env(safe-area-inset-bottom))!important}}.page-layout{min-height:100vh}.page-content{max-width:1100px;margin:0 auto;padding:40px 32px}@media(max-width:767px){.page-content{padding:20px 16px}}@media(min-width:768px)and (max-width:1023px){.page-content{padding:32px 24px}}.page-header{margin-bottom:32px}@media(max-width:767px){.page-header{margin-bottom:20px}}.page-title{font-size:48px;color:var(--text-primary);margin-bottom:4px}@media(max-width:767px){.page-title{font-size:32px}}@media(min-width:768px)and (max-width:1023px){.page-title{font-size:40px}}.page-subtitle{color:var(--text-secondary);font-size:15px}@media(max-width:767px){.page-subtitle{font-size:14px}}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}@media(max-width:767px){.grid-2{grid-template-columns:1fr;gap:12px}}.flex-row{display:flex;align-items:center;gap:12px}.flex-between{display:flex;align-items:center;justify-content:space-between}@media(max-width:767px){.flex-row,.flex-between{gap:8px;flex-wrap:wrap}}.empty-state{text-align:center;padding:60px 24px;color:var(--text-muted)}.empty-state svg{margin-bottom:16px;opacity:.3}.empty-state p{font-size:15px}@media(max-width:767px){.empty-state{padding:40px 16px}.empty-state p{font-size:14px}}@media(max-width:767px){.hide-mobile{display:none!important}}@media(min-width:768px){.show-mobile-only{display:none!important}}@media(max-width:1023px){.hide-tablet{display:none!important}}.login-structure-container{min-height:100vh;display:flex;background:var(--bg)}.login-brand-panel{flex:1;background:var(--teal-subtle);color:var(--text-primary);display:flex;flex-direction:column;justify-content:space-between;padding:80px;position:relative;overflow:hidden}.login-brand-bg-shape{position:absolute;top:-20%;left:-20%;width:70%;height:70%;background:var(--teal);border-radius:40% 60% 70% 30%/40% 50% 60%;transform:rotate(-15deg);opacity:.15;z-index:0;pointer-events:none}.login-brand-content{position:relative;z-index:1}.login-brand-logo{color:var(--teal)}.login-brand-name{font-family:var(--font-display);font-size:32px;letter-spacing:.1em;font-weight:700;color:var(--text-primary)}.login-brand-headline{font-family:var(--font-display);font-size:72px;line-height:.9;margin-top:60px;color:var(--text-primary)}.login-brand-footer{position:relative;z-index:1;font-size:16px;max-width:300px;color:var(--text-secondary)}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg-card)}.login-form-wrapper{width:100%;max-width:400px}@media(max-width:1023px){.login-structure-container{flex-direction:column}.login-brand-panel{padding:40px;min-height:300px;align-items:center;text-align:center}.login-brand-content{display:flex;flex-direction:column;align-items:center}.login-brand-headline{font-size:48px;margin-top:30px}.login-brand-footer{display:none}.login-brand-bg-shape{width:100%;height:100%;top:0;left:0;border-radius:0;transform:none;opacity:.1}}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}@media(max-width:767px){.stats-grid{grid-template-columns:1fr}}.stat-card{display:flex;flex-direction:column;gap:4px}.stat-card-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.stat-card-value{font-family:var(--font-display);font-size:42px;color:var(--text-primary);line-height:1}.stat-card-sub{font-size:12px;color:var(--text-secondary)}.list-stack{display:flex;flex-direction:column;gap:12px}.workout-item-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.workout-item-title{font-family:var(--font-display);font-size:20px;margin:0}.workout-item-meta{display:flex;gap:20px;font-size:13px;color:var(--text-secondary);flex-wrap:wrap}.workout-item-exercises{text-align:right;font-size:12px;color:var(--text-muted)}@media(max-width:380px){.page-content{padding:16px 12px}.page-title{font-size:28px}.stats-grid{gap:10px}}.sidebar-desktop{position:fixed;left:0;top:0;bottom:0;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;z-index:50;transition:width .3s cubic-bezier(.2,.8,.2,1);overflow-x:hidden;white-space:nowrap}.sidebar-desktop.expanded{width:var(--sidebar-panel-width)}.sidebar-desktop.collapsed{width:var(--sidebar-rail-width)}.sidebar-header{display:flex;align-items:center;padding:16px 14px;margin-bottom:8px;height:70px}.sidebar-desktop.collapsed .sidebar-header{justify-content:center;padding:16px 0}.rail-logo-icon{background:var(--accent);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.sidebar-brand-name{font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:.05em;color:var(--text-primary);animation:fadeIn .3s ease}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:0 10px}.nav-group-title{font-size:10px;font-weight:700;color:var(--text-muted);padding:16px 14px 4px;text-transform:uppercase;letter-spacing:.1em}.nav-group-divider{height:1px;background:var(--border);margin:8px 10px;opacity:.5}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;width:100%;text-align:left;transition:all .2s ease}.sidebar-desktop.collapsed .sidebar-nav-item{justify-content:center;padding:10px 0}.sidebar-nav-item:hover{background:var(--bg-secondary);color:var(--teal)}.sidebar-nav-item.active{background:var(--teal-subtle);color:var(--teal);font-weight:600}.nav-item-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.nav-item-label{font-size:14px;font-weight:500;font-family:var(--font-body);animation:fadeIn .3s ease}.sidebar-bottom{padding:0 10px 12px;display:flex;flex-direction:column;gap:4px}.user-profile-item{background:var(--bg-secondary)!important;border:1px solid var(--border);margin-top:4px}.user-avatar{border-radius:50%;background:linear-gradient(135deg,var(--teal),#4a8282);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.05em;width:26px;height:26px;font-size:11px}.user-info-wrapper{display:flex;align-items:center;justify-content:space-between;width:100%;padding-right:4px;overflow:hidden}.user-name-label{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}.logout-icon-small{color:var(--text-muted);flex-shrink:0;transition:color .2s ease}.user-profile-item:hover .logout-icon-small{color:var(--accent)}.sidebar-toggle-btn{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-top:4px;color:var(--text-muted);background:transparent;border:none;cursor:pointer;width:100%;border-top:1px solid var(--border)}.sidebar-desktop.collapsed .sidebar-toggle-btn{justify-content:center;padding:10px 0}.sidebar-toggle-btn:hover{color:var(--teal)}.version-tag{font-size:9px;color:var(--text-muted);text-align:center;padding:4px 0;letter-spacing:.1em;opacity:.6}.mobile-bottom-nav{display:none}@media(max-width:767px){:root{--mobile-nav-height: 56px}.sidebar-desktop{display:none!important}.mobile-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);z-index:1000;justify-content:space-around;align-items:center;box-shadow:0 -4px 20px #00000014}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;border:none;color:var(--text-muted);font-size:10px;font-weight:500;cursor:pointer;transition:color .15s;flex:1;min-width:0;height:100%}.mobile-nav-item span{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-nav-item.active{color:var(--teal)}.mobile-nav-item:active{transform:scale(.95)}.mobile-nav-item.primary-action .mobile-icon-wrapper{background:var(--teal);color:#fff;padding:14px;border-radius:16px;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;transform:translateY(-22px);box-shadow:0 6px 16px var(--teal-subtle);border:4px solid var(--bg)}.mobile-nav-item.primary-action.active .mobile-icon-wrapper{background:var(--teal);color:#fff;box-shadow:inset 0 3px 6px #0003;border-color:var(--border)}.mobile-nav-item.primary-action:active .mobile-icon-wrapper{transform:translateY(-20px) scale(.95);background:#528a8a;transition:all .1s ease}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.animate-in{animation:fadeIn .25s ease forwards}.loading-pulse{animation:pulse 1.5s ease infinite}.workout-tabs{position:relative;display:flex;gap:24px;border-bottom:2px solid var(--border);padding-bottom:8px;margin-bottom:32px}.workout-tab{position:relative;padding:10px 4px;font-size:15px;font-weight:500;color:var(--text-secondary);cursor:pointer;background:transparent;border:none;transition:color .2s ease}.workout-tab:hover{color:var(--teal)}.workout-tab.active{color:var(--teal);font-weight:700}.workout-tab-indicator{position:absolute;bottom:-2px;height:4px;background:var(--teal);border-radius:4px 4px 0 0;transition:transform .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1)}.toast-container{position:fixed;top:env(safe-area-inset-top,20px);left:50%;transform:translate(-50%);z-index:99999;display:flex;flex-direction:column;gap:10px;width:90%;max-width:400px;pointer-events:none;margin-top:16px}.toast{background:var(--bg-card);border:1px solid var(--border);padding:16px;border-radius:12px;box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto;animation:toastSlideDown .4s cubic-bezier(.2,.8,.2,1) forwards}.toast-success{border-left:4px solid var(--teal)}.toast-error{border-left:4px solid var(--accent)}.toast-info{border-left:4px solid #0984e3}@keyframes toastSlideDown{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
