@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap";:root{--bg:#f5f5f5;--surface:#fff;--surface-alt:#f9fafb;--border:#e5e7eb;--border-strong:#d1d5db;--text:#1f2937;--text-muted:#6b7280;--text-dim:#9ca3af;--accent:#3b82f6;--accent-deep:#2563eb;--accent-soft:#3b82f61f;--indigo:#6366f1;--success:#10b981;--warn:#f59e0b;--danger:#ef4444;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 3px #0000000f;--shadow:0 2px 8px #00000014;--shadow-lg:0 8px 24px #0000001a;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;font-family:var(--font-sans);color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.55}*{box-sizing:border-box}html,body,#root{min-height:100vh}body{background:var(--bg);color:var(--text);margin:0}h1,h2,h3,h4{color:var(--text);margin:0;font-weight:600}h1{font-size:1.75rem}h2{font-size:1.4rem}h3{font-size:1.1rem}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-deep)}button{cursor:pointer;font-family:inherit}input,textarea,select{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:.55rem .75rem;font-family:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder,textarea::placeholder{color:var(--text-dim)}input[type=number]{font-family:var(--font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}::selection{background:var(--accent-soft);color:var(--text)}.app{background:var(--bg);min-height:100vh}.navbar{background:var(--surface);box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border);margin-bottom:2rem;padding:1rem 0}.nav-container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1200px;margin:0 auto;padding:0 1rem;display:flex}.app-title{color:var(--accent);margin:0;font-size:1.3rem;font-weight:700}.nav-links{flex-wrap:wrap;gap:.4rem;display:flex}.nav-link{color:var(--text);border-radius:var(--radius-sm);padding:.5rem .85rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s}.nav-link:hover{background:var(--surface-alt)}.nav-link.active{color:#3730a3;background:#e0e7ff}@media (width>=768px){.nav-container{padding:0 2rem}.app-title{font-size:1.5rem}.nav-link{padding:.5rem 1rem;font-size:.95rem}}.main-content{max-width:1200px;margin:0 auto;padding:0 1rem 2rem}@media (width>=768px){.main-content{padding:0 2rem 2rem}}.loading{text-align:center;color:var(--text-muted);padding:3rem}.empty{text-align:center;color:var(--text-muted);padding:2rem}.btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;padding:.6rem 1.15rem;font-size:.92rem;font-weight:500;transition:background .15s,border-color .15s,transform .1s}.btn-primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--surface-alt);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:#e5e7eb}.btn-success{background:var(--success);color:#fff;border:1px solid var(--success)}.btn-success:hover{background:#059669;border-color:#059669}.btn-danger{background:var(--surface);color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-sm{padding:.35rem .7rem;font-size:.85rem}.btn-icon{opacity:.6;cursor:pointer;background:0 0;border:none;padding:.4rem .55rem;font-size:1.1rem;transition:opacity .15s}.btn-icon:hover{opacity:1}.modal-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-lg);padding:1.5rem;overflow-y:auto}.modal h3{margin-bottom:1.25rem}.form-group{margin-bottom:1.15rem}.form-group label{color:var(--text);margin-bottom:.4rem;font-size:.88rem;font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{width:100%}.form-group small{color:var(--text-muted);margin-top:.25rem;font-size:.78rem;display:block}.form-row{gap:.85rem;display:flex}.form-row>*{flex:1}.form-actions{flex-direction:column;justify-content:flex-end;gap:.6rem;margin-top:1.5rem;display:flex}@media (width>=480px){.form-actions{flex-direction:row}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem 1.25rem}.card-list{flex-direction:column;gap:.7rem;display:flex}.muscle-tag{background:var(--accent-soft);color:var(--accent-deep);border-radius:999px;margin:.15rem .15rem .15rem 0;padding:.15rem .55rem;font-size:.74rem;font-weight:500;display:inline-block}.mono{font-family:var(--font-mono)}.dashboard{max-width:1100px}.active-banner{color:#f1f5f9;border-radius:var(--radius);background:linear-gradient(135deg,#1e293b,#0f172a);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.4rem;display:flex;position:relative;overflow:hidden}.active-banner:before{content:"";background:linear-gradient(90deg,#3b82f6,#06b6d4,#3b82f6) 0 0/200% 100%;height:2px;animation:3s linear infinite shimmer;position:absolute;top:0;left:0;right:0}@keyframes shimmer{to{background-position:200% 0}}.active-banner-left{align-items:center;gap:.85rem;display:flex}.active-pulse{background:#22d3ee;border-radius:50%;width:10px;height:10px;animation:2s infinite pulse;box-shadow:0 0 #22d3ee8c}@keyframes pulse{0%{box-shadow:0 0 #22d3ee8c}70%{box-shadow:0 0 0 14px #22d3ee00}to{box-shadow:0 0 #22d3ee00}}.active-banner-meta{color:#94a3b8;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.active-banner-title{margin-top:.1rem;font-size:1.15rem;font-weight:600}.active-banner .btn-primary{color:#0f172a;background:#f1f5f9;border-color:#f1f5f9}.active-banner .btn-primary:hover{background:#e2e8f0;border-color:#e2e8f0}.kpis{grid-template-columns:repeat(2,1fr);gap:.7rem;margin-bottom:1.5rem;display:grid}@media (width>=900px){.kpis{grid-template-columns:repeat(4,1fr)}}.kpi{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.1rem 1.2rem}.kpi-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.45rem;font-size:.68rem;font-weight:600}.kpi-value{color:var(--text);letter-spacing:-.01em;font-size:1.65rem;font-weight:600;line-height:1}.kpi-unit{color:var(--text-muted);letter-spacing:0;font-size:.78rem;font-weight:500;font-family:var(--font-sans);margin-left:.2rem}.kpi-relative{color:var(--text);font-size:1.2rem;font-weight:600}.kpi-sub{color:var(--text-muted);margin-top:.4rem;font-size:.74rem}.quick-start{background:linear-gradient(135deg, #3b82f60a, #6366f10a), var(--surface);border:1px solid var(--accent-soft);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;padding:1.25rem 1.5rem;display:flex}.quick-start-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);font-size:.68rem;font-weight:600}.quick-start-title{margin-top:.2rem;font-size:1.4rem;font-weight:600}.quick-start-desc{color:var(--text-muted);margin-top:.2rem;font-size:.88rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem;font-weight:600}.dash-section{margin-bottom:1.75rem}.dash-section-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:.7rem;padding-bottom:.45rem;display:flex}.dash-section-header h3{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-size:.78rem;font-weight:600}.dash-link{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.78rem}.dash-link:hover{color:var(--accent)}.plan-grid{grid-template-columns:1fr;gap:.6rem;display:grid}@media (width>=600px){.plan-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.plan-tile{background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);color:inherit;padding:.85rem 1.1rem;text-decoration:none;transition:border-color .15s,transform .1s,box-shadow .15s;display:block}.plan-tile:hover{border-color:var(--accent);color:inherit;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.plan-tile-name{font-size:.95rem;font-weight:600}.plan-tile-desc{color:var(--text-muted);margin-top:.15rem;font-size:.82rem}.session-list{border-top:1px solid var(--border);flex-direction:column;gap:0;display:flex}.session-row{border-bottom:1px solid var(--border);color:inherit;justify-content:space-between;align-items:center;padding:.75rem .5rem;text-decoration:none;transition:background .1s;display:flex}.session-row:hover{background:var(--surface-alt);color:inherit}.session-row-title{font-weight:500}.session-row-date{color:var(--text-muted);margin-top:.1rem;font-size:.78rem}.badge{letter-spacing:.08em;text-transform:uppercase;border-radius:4px;padding:.15rem .6rem;font-size:.68rem;font-weight:600;display:inline-block}.badge-active{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.exercise-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;display:flex}.exercise-row-main{flex:1;min-width:0}.exercise-row-name{font-size:1rem;font-weight:600}.exercise-row-groups{margin:.3rem 0}.exercise-row-meta{color:var(--text-muted);font-size:.82rem}.exercise-row-actions{gap:.2rem;display:flex}.muscle-chip-row{flex-wrap:wrap;gap:.35rem;margin-top:.3rem;display:flex}.muscle-chip{background:var(--surface-alt);border:1px solid var(--border);cursor:pointer;color:var(--text-muted);border-radius:999px;padding:.3rem .8rem;font-size:.82rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.muscle-chip:hover{background:#e5e7eb}.muscle-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}.custom-group-row{gap:.4rem;margin-top:.55rem;display:flex}.custom-group-row input{flex:1}.plans-list{flex-direction:column;gap:.7rem;margin-top:1rem;display:flex}.plan-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid var(--accent);justify-content:space-between;align-items:center;padding-right:.7rem;transition:transform .15s,box-shadow .15s;display:flex}.plan-row:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.plan-row-link{color:inherit;flex:1;padding:1.05rem 1.2rem;text-decoration:none}.plan-row-link:hover{color:inherit}.plan-row-name{font-size:1.05rem;font-weight:600}.plan-row-desc{color:var(--text-muted);margin-top:.2rem;font-size:.88rem}.plan-detail{max-width:900px;margin:0 auto}.plan-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.plan-header-main{flex:1;min-width:200px}.plan-header-main h2{font-size:1.6rem}.plan-header-main p{color:var(--text-muted);margin-top:.25rem}.plan-header-edit{flex-direction:column;flex:1;gap:.5rem;display:flex}.plan-header-edit input{width:100%}.header-actions{align-items:center;gap:.5rem;display:flex}.add-form{margin-bottom:1.25rem}.plan-items{flex-direction:column;gap:.65rem;display:flex}.plan-item{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:.7rem;padding:.85rem 1rem;display:flex}.plan-item-order{width:32px;color:var(--text-muted);flex-direction:column;align-items:center;font-size:.85rem;display:flex}.plan-item-order .btn-icon{padding:0;font-size:.7rem}.plan-item-order .btn-icon:disabled{opacity:.2;cursor:default}.plan-item-main{flex:1;min-width:0}.plan-item-name{margin-bottom:.2rem;font-weight:600}.plan-item-config{color:var(--text-muted);flex-wrap:wrap;gap:.55rem;margin-top:.45rem;font-size:.78rem;display:flex}.plan-item-config label{letter-spacing:.04em;text-transform:uppercase;flex-direction:column;gap:.15rem;font-size:.7rem;display:flex}.plan-item-config input{text-align:center;width:70px;padding:.3rem .4rem;font-size:.85rem}.active-session{max-width:900px;margin:0 auto}.back-link{color:var(--accent);margin-bottom:.4rem;font-size:.85rem;display:inline-block}.session-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.session-header h2{margin:0;font-size:1.55rem}.session-meta{color:var(--text-muted);margin-top:.2rem;font-size:.85rem}.session-clock{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.clock{color:var(--accent-deep);font-size:1.6rem;font-weight:600}.exercises-list{flex-direction:column;gap:1rem;display:flex}.ex-block{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.2rem}.ex-block-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.ex-name{margin-bottom:.2rem;font-size:1.05rem;font-weight:600}.ex-target{color:var(--text-muted);font-size:.85rem}.last-session{background:var(--surface-alt);border-radius:var(--radius-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.7rem;padding:.45rem .7rem;font-size:.78rem;display:flex}.last-label{font-weight:500}.last-set{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.1rem .45rem}.sets-grid{flex-direction:column;gap:.35rem;margin-bottom:.55rem;display:flex}.sets-header,.set-row{grid-template-columns:40px 1fr 1fr 32px;align-items:center;gap:.5rem;display:grid}.sets-header{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;padding:0 .2rem;font-size:.7rem}.set-num{text-align:center;color:var(--text-muted);font-weight:600}.set-row input{text-align:center;padding:.5rem .55rem;font-size:.95rem}.set-row.filled input{color:var(--accent-deep);background:#eff6ff;border-color:#bfdbfe;font-weight:600}
