:root{--bg: #050505;--surface: #121212;--surface-2: #1a1a1a;--surface-3: #222222;--accent: #e11d2f;--accent-2: #f2c230;--text: #f8fafc;--muted-text: #a1a1aa;--border: rgba(255, 255, 255, .08);--shadow: 0 10px 30px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:var(--bg);color:var(--text)}.app-shell{display:flex;flex-direction:column;min-height:100vh;background:radial-gradient(circle at top,rgba(225,29,47,.18),transparent 30%),linear-gradient(180deg,#0a0a0a,#050505 45%,#090909)}.app-header{min-height:68px;display:flex;align-items:center;padding:14px 16px;background:#0c0c0ce6;border-bottom:1px solid rgba(242,194,48,.16);box-shadow:0 1px #0000003d;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand-lockup{display:flex;flex-direction:column;gap:2px}.brand-kicker{font-size:11px;letter-spacing:.18em;color:var(--accent-2)}.brand-title{font-size:22px;font-weight:800;color:var(--text)}.app-content{flex:1;overflow:auto;padding:16px 16px 96px}.page{display:flex;flex-direction:column;gap:10px}.page h1{margin:0 0 8px;font-size:22px;color:#fff}.page p{margin:0;color:var(--muted-text);line-height:1.5}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:72px;display:flex;background:#0c0c0cf0;border-top:1px solid rgba(242,194,48,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom-nav .tab{flex:1;display:flex;align-items:center;justify-content:center;text-decoration:none;color:#9aa0a6;font-size:13px;transition:color .2s ease,background-color .2s ease}.bottom-nav .tab.active{color:#fff;font-weight:800}.bottom-nav .tab.active span{background:linear-gradient(90deg,#e11d2ff5,#f2c230eb);border:1px solid rgba(242,194,48,.98);border-radius:999px;padding:8px 12px;box-shadow:0 12px 28px #e11d2f6b,0 0 0 6px #f2c2300f;color:#fff}.bottom-nav .tab{padding:8px 4px}@media (min-width:720px){.app-content{max-width:720px;margin:0 auto}}.exercise-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.cards,.dashboard{display:flex;flex-direction:column;gap:12px}.dashboard-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.dashboard-overview-hero{gap:18px}.dashboard-overview-hero h1{margin:4px 0 0}.dashboard-subtitle{margin-top:8px;max-width:36ch}.dashboard-status-pill{padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#e11d2f29,#f2c2301f);border:1px solid rgba(242,194,48,.18);color:var(--text);font-weight:600;line-height:1.4}.dashboard-hero h2,.section-heading h3,.performance-head h4{margin:4px 0 0}.dashboard-week-summary{min-width:112px;padding:12px;border-radius:12px;background:linear-gradient(135deg,#e11d2f2e,#f2c2301f);border:1px solid rgba(242,194,48,.18);text-align:right}.dashboard-week-summary strong{display:block;font-size:28px;line-height:1}.dashboard-week-summary span,.section-heading span,.performance-grid span,.performance-date{color:var(--muted-text);font-size:12px}.dashboard-actions{display:flex;flex-wrap:wrap;gap:8px}.settings-layout{display:flex;flex-direction:column;gap:12px;margin-top:12px}.settings-section{display:flex;flex-direction:column;gap:12px}.settings-field{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#e4e4e7}.settings-field-label{color:var(--muted-text);font-size:12px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settings-chip-group{display:flex;flex-wrap:wrap;gap:8px}.settings-chip{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 14px;border-radius:999px;background:#ffffff08;color:var(--muted-text);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px #ffffff08;transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;cursor:pointer}.settings-chip:hover{color:var(--text);border-color:#f2c23038;background:#ffffff0d}.settings-chip:focus-visible{outline:none;border-color:#f2c2307a;box-shadow:0 0 0 3px #f2c23029}.settings-chip.active{color:#fff8d7;font-weight:900;background:linear-gradient(90deg,#aa0c15fa,#e11d2ffa);border:2px solid rgba(242,194,48,.98);box-shadow:0 20px 44px #e11d2f7a,0 0 0 6px #f2c2301a,inset 0 1px #ffffff14;text-shadow:0 1px 0 rgba(0,0,0,.36)}.settings-chip.active:hover{transform:translateY(-1px);border-color:#f2c230fa;box-shadow:0 22px 48px #e11d2f85,0 0 0 8px #f2c2301f,inset 0 1px #ffffff0f}.settings-meta{display:flex;flex-direction:column;gap:6px;color:var(--muted-text);font-size:13px}.onboarding-card{display:flex;flex-direction:column;gap:12px}.onboarding-card--compact{border-color:#f2c23038}.onboarding-form{display:flex;flex-direction:column;gap:12px}.dashboard-section{display:flex;flex-direction:column;gap:10px}.dashboard-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-stat-card{display:flex;flex-direction:column;gap:8px}.dashboard-stat-card span,.record-head span,.record-foot span,.dashboard-body-grid span{color:var(--muted-text);font-size:12px}.dashboard-stat-card strong{font-size:24px;line-height:1.1}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.empty-state-card{padding:18px 14px}.performance-list,.record-list{display:flex;flex-direction:column;gap:10px}.record-card{display:flex;flex-direction:column;gap:12px}.recommendation-list{display:flex;flex-direction:column;gap:10px}.recommendation-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center}.recommendation-thumb{width:64px;height:64px;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,#e11d2fbf,#f2c230b3)}.recommendation-thumb img{width:100%;height:100%;object-fit:cover;display:block}.recommendation-meta{min-width:0;display:flex;flex-direction:column;gap:4px}.recommendation-meta h4{margin:0}.recommendation-meta p{font-size:13px}.recommendation-category{color:var(--accent-2);font-size:12px}.recommendation-empty-state{display:flex;flex-direction:column;align-items:flex-start}.record-head,.record-foot,.dashboard-body-grid{display:flex;justify-content:space-between;gap:12px}.record-head{align-items:flex-start}.record-head h4{margin:0 0 4px}.record-head strong{font-size:22px;white-space:nowrap}.record-foot{flex-wrap:wrap}.performance-card{display:flex;flex-direction:column;gap:12px}.performance-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.performance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.performance-grid div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.performance-grid strong{font-size:16px}.body-summary-grid strong{white-space:nowrap}.dashboard-body-summary{display:flex;flex-direction:column;gap:12px}.dashboard-body-grid{flex-wrap:wrap}.dashboard-body-grid div{flex:1 1 140px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.card{background:linear-gradient(180deg,#222222f2,#121212fa);border-radius:14px;padding:14px;border:1px solid var(--border);box-shadow:var(--shadow)}.muted{color:var(--accent-2);font-size:13px}.small{font-size:13px;color:var(--muted-text);margin-top:6px}.exercise-card{display:flex;gap:12px;align-items:center;padding:12px;background:linear-gradient(180deg,#202020fa,#121212fa);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);cursor:pointer}.exercise-card{position:relative}.excluded-badge{position:absolute;top:8px;right:10px;background:#222222e6;border:1px solid rgba(242,194,48,.9);color:var(--accent-2);font-size:12px;padding:6px 8px;border-radius:999px;z-index:2}.exercise-card .thumb{width:64px;height:48px;background:linear-gradient(135deg,#e11d2fbf,#f2c230b3);border-radius:10px}.exercise-card .thumb,.exercise-detail .thumb{overflow:hidden}.exercise-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px}.exercise-card .meta{flex:1}.exercise-card .name{font-weight:700;color:#fff}.exercise-card .cat{font-size:12px;color:var(--accent-2)}.exercise-card .desc{font-size:13px;color:var(--muted-text);margin-top:6px}.exercise-detail{display:flex;flex-direction:column;gap:12px;margin-top:4px}.exercise-detail .thumb.large{height:160px;background:linear-gradient(135deg,#e11d2fb3,#f2c2308c);border-radius:14px}.exercise-detail .thumb.large img{width:100%;height:100%;object-fit:contain;display:block;border-radius:14px;background:var(--surface-2)}button.exercise-image-button{position:relative;width:100%;padding:0;border:1px solid rgba(242,194,48,.16);cursor:zoom-in}button.exercise-image-button span{position:absolute;right:10px;bottom:10px;padding:6px 10px;border-radius:999px;background:#050505b8;color:var(--text);font-size:12px;font-weight:700}.exercise-image-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:16px}.exercise-image-fallback span{color:var(--text);font-weight:800}.exercise-image-fallback small{color:#ffffffc2}.exercise-detail .meta{padding:14px;background:#121212eb;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.exercise-info-grid{display:flex;flex-direction:column;gap:10px;margin-top:12px}.exercise-info-section{padding:12px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.exercise-info-section h3{margin:0 0 8px;font-size:14px}.exercise-info-section ul{margin:0;padding-left:18px;color:var(--muted-text);line-height:1.5}.alternative-list{display:flex;flex-wrap:wrap;gap:8px}.alternative-chip{min-height:38px}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:72px 14px 24px;background:#000000eb;cursor:zoom-out}.image-lightbox img{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:8px;background:var(--surface-2);cursor:zoom-in}.image-lightbox img.zoomed{max-width:none;max-height:none;width:min(1200px,160vw);cursor:zoom-out}.image-lightbox-toolbar{position:fixed;top:14px;right:14px;left:14px;display:flex;justify-content:flex-end;gap:8px;z-index:31}.exercise-detail .primary{background:var(--accent);color:#fff;border:none;padding:10px 12px;border-radius:8px;margin-top:8px}.entry-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.exercise-search{display:flex;flex-direction:column;gap:6px;color:#e4e4e7;font-size:13px;margin-top:8px}.exercise-search input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text)}.sets-detail-form,.cardio-entry-fields{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:#ffffff08;border:1px solid var(--border)}.sets-detail-form h4,.cardio-entry-fields h4{margin:0}.sets-table{display:flex;flex-direction:column;gap:8px}.sets-table-head,.sets-table-row{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center}.sets-table-head{color:var(--muted-text);font-size:12px}.sets-table-row>span{color:var(--accent-2);font-weight:700}.sets-table-row input{min-width:0}.sets-table-row button{min-height:40px}.entry-actions{display:flex;gap:8px;margin-top:8px}.entry-actions button{background:#ffffff08;border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px}.edit-form{display:flex;flex-direction:column;gap:8px}.edit-actions{display:flex;gap:8px;margin-top:12px}.entry-form label{display:flex;flex-direction:column;font-size:13px;color:#e4e4e7}.entry-form input,.entry-form textarea,.entry-form select{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text)}.entry-form textarea{min-height:64px}.last-performance{margin-top:12px;padding:12px;background:#f2c23014;border:1px solid rgba(242,194,48,.18);border-radius:12px}.previous-sets{display:flex;flex-direction:column;gap:4px;margin-top:8px}.entry-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.entry-item{padding:12px;background:linear-gradient(180deg,#202020fa,#121212fa);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.entry-top{display:flex;justify-content:space-between;align-items:center}.entry-title{font-weight:600}.entry-meta{font-size:13px;color:var(--accent-2);margin-top:6px}.entry-note{font-size:13px;margin-top:6px;color:var(--muted-text)}.body-form .entry-form{margin-top:8px}.body-form input,.body-form textarea{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text)}.body-form label{display:flex;flex-direction:column;font-size:13px;color:#e4e4e7}.body-form textarea{min-height:64px}.login-form{display:flex;flex-direction:column;gap:8px;margin-top:12px}.login-form input{padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text)}.auth-page{max-width:520px;margin:0 auto}.auth-note{font-size:13px}.auth-mode-tabs,.auth-links,.notice-actions{display:flex;flex-wrap:wrap;gap:8px}.auth-mode-tabs{margin-top:10px}.auth-mode-tabs button.active{border-color:#f2c230b8;color:#fff8d7;font-weight:800}.auth-links{margin-top:4px}.form-success{color:#86efac;font-size:13px}.notice-card{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;padding:12px;border-radius:10px;border:1px solid rgba(242,194,48,.18);background:#ffffff09}.notice-card strong{display:block;margin-bottom:4px}.notice-card p{font-size:13px}.ios-install-guide{color:var(--muted-text);font-size:13px}.ios-install-guide ol{margin:8px 0 0;padding-left:20px}.settings-field input,.settings-field select{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text)}button{font:inherit}button.primary,.primary{background:var(--accent);color:#fff;border:none;padding:11px 14px;border-radius:10px;font-weight:700;box-shadow:0 10px 24px #e11d2f40}button:not(.primary):not(.back-button){background:#ffffff08;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px}button.selectable-chip{background:#141414e6;color:#ffffffe0;border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:inset 0 1px #ffffff08;transition:transform .2s ease,border-color .2s ease,color .2s ease,background .2s ease,box-shadow .2s ease}button.selectable-chip:hover{color:#fff;border-color:#fff3;background:#1c1c1cf0}button.selectable-chip:focus-visible{outline:none;border-color:#facc15b8;box-shadow:0 0 0 3px #facc152e}button.selectable-chip.selectable-chip--active{background:linear-gradient(135deg,#ef233c,#7f1d1d 65%,#3b0a0a);border:2px solid #facc15;box-shadow:0 0 0 1px #facc1559,0 0 18px #ef233c8c,0 0 26px #facc1533;color:#fff;font-weight:800;text-shadow:0 1px 0 rgba(0,0,0,.36)}button.selectable-chip.selectable-chip--active:hover{border-color:#facc15;box-shadow:0 0 0 1px #facc1566,0 0 22px #ef233c9e,0 0 32px #facc153d}.settings-chip{color:#fca5a5;font-size:14px}.setup-page{width:100%;background:linear-gradient(180deg,#222222fa,#121212fa);border-radius:999px;padding:8px 12px}.back-button:before{content:"←";margin-right:8px}.cat-tabs,.category-tabs{display:flex;flex-wrap:wrap;gap:8px}.category-tabs .tab{padding:10px 14px}.subcategory-tabs{margin-top:-2px}.subcategory-tabs .tab{padding:8px 12px;font-size:12px}.workout-calendar{display:flex;flex-direction:column;gap:14px}.workout-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.workout-calendar-head h2,.history-day-section h2{margin:0;text-transform:capitalize}.calendar-nav{width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays span{text-align:center;color:var(--muted-text);font-size:12px}.calendar-day{aspect-ratio:1;min-height:42px;display:inline-flex;align-items:center;justify-content:center;position:relative;border-radius:12px}.calendar-day.empty{border:0;background:transparent}.calendar-day.has-entries:after{content:"";position:absolute;bottom:6px;width:8px;height:8px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 0 6px #f2c23014}.calendar-day.today{background:#141414f0;border:2px solid #facc15;color:#fff;font-weight:900;box-shadow:0 0 0 1px #facc156b,0 0 14px #facc1552,0 0 24px #ef233c2e;transform:translateY(-1px)}.calendar-day.today.selectable-chip--active,.calendar-day.today.selected{background:linear-gradient(135deg,#ef233c,#7f1d1d 65%,#3b0a0a);border:2px solid #facc15;box-shadow:0 0 0 1px #facc156b,0 0 20px #ef233c99,0 0 30px #facc153d}.history-day-section{display:flex;flex-direction:column;gap:10px}.chart-section{display:flex;flex-direction:column;gap:12px;margin-top:12px}.chart-tabs{display:flex;flex-wrap:wrap;gap:8px}.chart-tab{padding:9px 12px}.dashboard-plan-summary{display:flex;justify-content:space-between;gap:12px;align-items:baseline;color:var(--muted-text);font-size:13px}.dashboard-plan-summary strong{color:var(--text);font-size:18px}.recommendation-card.completed{border-color:#f2c23042;background:linear-gradient(180deg,#301818fa,#121212fa)}.recommendation-status{align-self:flex-start;padding:6px 10px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--muted-text);font-size:12px;font-weight:700}.recommendation-status.done{color:#fff8d7;background:linear-gradient(90deg,#810c15eb,#e11d2fdb);border-color:#f2c230d1;box-shadow:0 10px 24px #e11d2f3d}@media (max-width:560px){.section-heading,.recommendation-card,.dashboard-hero{display:flex;flex-direction:column;align-items:stretch}.settings-grid{grid-template-columns:1fr}.sets-table-head,.sets-table-row{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr)}.sets-table-head span:last-child{display:none}.sets-table-row button{grid-column:2 / 4;justify-self:stretch}.recommendation-thumb{width:100%;height:120px}}.progress-chart{display:flex;flex-direction:column;gap:12px}.chart-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.chart-summary div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.chart-summary span,.chart-axis-label,.chart-tick-label,.chart-empty{color:var(--muted-text);font-size:12px}.chart-summary strong{color:var(--text);font-size:15px;line-height:1.3}.chart-svg{width:100%;height:190px;overflow:visible}.chart-grid-line{stroke:#ffffff14;stroke-width:1}.chart-line-shadow{fill:none;stroke:#050505a6;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.chart-line{fill:none;stroke:url(#progress-line-gradient);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-dot-shadow{fill:#05050599}.chart-dot{fill:var(--accent-2);stroke:var(--accent);stroke-width:1.5}.chart-axis-label,.chart-tick-label{font-size:11px}.chart-empty{margin:0;padding:6px 0 2px}.chart-single-note{margin:0;color:var(--muted-text)}@media (max-width: 560px){.dashboard-hero,.section-heading,.performance-head{flex-direction:column}.dashboard-stat-grid{grid-template-columns:1fr}.record-head,.record-foot,.dashboard-body-grid{flex-direction:column}.dashboard-week-summary{width:100%;text-align:left}.calendar-grid{gap:6px}.calendar-day{min-height:38px;border-radius:10px;padding:0}.chart-summary{grid-template-columns:1fr}}input::placeholder,textarea::placeholder{color:#71717a}select option{background:var(--surface-2);color:var(--text)}
