:root{color-scheme:dark;--bg: #16181c;--surface: #1f2229;--surface-hover: #262a32;--border: #2c2f37;--border-strong: #3a3e47;--text: #eceef1;--text-muted: #9aa0a8;--accent: #7dd3fc;--accent-strong: #38bdf8;--accent-text: #0a1a22;--danger: #f87171;--rest: #fbbf24;--radius: 10px;--radius-lg: 16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:480px;margin:0 auto;padding:1.5rem 1.25rem 5.5rem;min-height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.app-header h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:0;color:var(--accent)}.app-footer{text-align:center;color:var(--text-muted);font-size:.75rem;opacity:.5;margin-top:2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.page-header h2{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;margin:0}button{font-family:inherit;font-weight:600;border-radius:var(--radius);border:none;cursor:pointer;transition:background-color .15s ease,opacity .15s ease}.btn-accent{background:var(--accent);color:var(--accent-text);padding:.6rem 1rem;font-size:.95rem}.btn-accent:hover{background:var(--accent-strong)}.page-header button{background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong);padding:.45rem .85rem;font-size:.85rem}.page-header button:hover{background:var(--surface-hover);color:var(--text)}.link-button{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;margin-top:1rem;font-size:.9rem;font-weight:500}.link-button:hover{color:var(--accent-strong)}.auth-page{max-width:320px;margin:3rem auto 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.75rem}.auth-page h2{margin:0 0 1.25rem;font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.auth-page form{display:flex;flex-direction:column;gap:.9rem}.auth-page label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-muted)}.auth-page input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.6rem .7rem;font-size:.95rem;font-family:inherit}.auth-page input:focus{outline:none;border-color:var(--accent)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom));z-index:10}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:.15rem;text-decoration:none;color:var(--text-muted);font-size:.7rem;font-weight:600;padding:.35rem 1rem;min-width:72px}.bottom-nav a.active{color:var(--accent)}.profile-icon-btn{background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none}.profile-icon-btn:hover{background:var(--surface-hover);color:var(--text)}.profile-card{display:flex;align-items:center;gap:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.1rem;margin-bottom:1.5rem}.profile-avatar{width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.profile-email{font-weight:600;font-size:.95rem;word-break:break-all}.profile-sub{font-size:.8rem;color:var(--text-muted);margin-top:.1rem}.profile-logout-btn{width:100%;background:var(--surface);color:var(--danger);border:1px solid var(--border-strong);padding:.65rem;font-size:.9rem}.profile-logout-btn:hover{background:var(--surface-hover)}.activity-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.activity-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .9rem}.activity-info{display:flex;flex-direction:column;gap:.15rem}.activity-title{font-weight:600;font-size:.9rem}.activity-meta{font-size:.8rem;color:var(--text-muted)}.activity-nudge{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:1.5rem 1.25rem;color:var(--text-muted);font-size:.9rem}.activity-nudge-btn{text-decoration:none}.stat-cards{display:flex;gap:.75rem;margin-bottom:1.25rem}.stat-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.15rem}.stat-label{font-size:.75rem;color:var(--text-muted)}.stat-value{font-size:1.4rem;font-weight:700;letter-spacing:-.01em}.stat-sub{font-size:.7rem;color:var(--text-muted)}.nudge-card{display:flex;justify-content:space-between;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--rest);border-radius:var(--radius-lg);padding:1rem 1.1rem;margin-bottom:1.25rem}.nudge-card.done{border-color:var(--accent)}.nudge-info{display:flex;flex-direction:column;gap:.15rem}.nudge-title{font-weight:600;font-size:.95rem}.nudge-sub{font-size:.8rem;color:var(--text-muted)}.nudge-btn{background:var(--accent);color:var(--accent-text);padding:.5rem .9rem;font-size:.85rem;flex-shrink:0;text-decoration:none;border-radius:var(--radius);font-weight:600;white-space:nowrap}.nudge-btn:hover{background:var(--accent-strong)}.routine-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.routine-name-field{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:var(--text-muted);margin-bottom:1.25rem}.routine-name-field input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.6rem .75rem;font-size:1rem;font-family:inherit}.routine-name-field input:focus{outline:none;border-color:var(--accent)}.routine-search{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.9rem;font-family:inherit;margin-bottom:.75rem}.routine-search:focus{outline:none;border-color:var(--accent)}.legacy-banner{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;background:var(--surface);border:1px solid var(--rest);border-radius:var(--radius-lg);padding:.9rem 1rem;margin-bottom:1.25rem;font-size:.9rem}.routine-section-title{font-size:.85rem;color:var(--text-muted);font-weight:600;margin:0 0 .5rem}.routine-list{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.5rem}.routine-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.routine-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem .9rem}.routine-info{display:flex;flex-direction:column;gap:.15rem}.routine-name{font-weight:600;font-size:1rem}.routine-meta{font-size:.8rem;color:var(--text-muted)}.routine-actions{display:flex;align-items:center;gap:.4rem}.routine-start-btn{background:var(--accent);color:var(--accent-text);padding:.45rem .9rem;font-size:.85rem}.routine-start-btn:disabled{opacity:.4}.share-panel{padding:.75rem .9rem .9rem;border-top:1px solid var(--border);background:var(--surface-hover)}.share-list{list-style:none;padding:0;margin:0 0 .6rem;display:flex;flex-direction:column;gap:.35rem}.share-list li{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem .6rem;font-size:.85rem}.share-list li button{background:none;color:var(--danger);padding:.1rem .3rem}.share-form{display:flex;gap:.5rem}.share-form input{flex:1;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.5rem .65rem;font-size:.85rem;font-family:inherit}.share-form input:focus{outline:none;border-color:var(--accent)}.share-form button{padding:.5rem .9rem;font-size:.85rem}.session-pick-list{list-style:none;padding:0;margin:0 0 1.25rem;display:flex;flex-direction:column;gap:.4rem}.session-pick-list li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.session-pick-list li.selected{border-color:var(--accent);background:#7dd3fc14}.session-pick-row{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.6rem;padding:.65rem .9rem;cursor:pointer;background:none;border:none;color:var(--text);text-align:left;font-family:inherit;font-size:.9rem}.session-pick-row:hover{background:var(--surface-hover)}.session-pick-name{flex:1;font-size:.9rem}.session-pick-order{background:var(--accent);color:var(--accent-text);font-size:.75rem;font-weight:700;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.session-order{margin-bottom:1.25rem}.session-order h3{font-size:.85rem;color:var(--text-muted);font-weight:600;margin:0 0 .5rem}.session-order ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.session-order li{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;font-size:.85rem}.session-order-buttons{display:flex;gap:.3rem}.session-order-buttons button{background:var(--surface-hover);color:var(--text-muted);width:26px;height:26px;padding:0;font-size:.85rem}.session-start-btn{width:100%;background:var(--accent);color:var(--accent-text);padding:.75rem;font-size:1rem}.session-start-btn:disabled{opacity:.4;cursor:not-allowed}.session-player{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding-top:1rem}.session-progress{color:var(--text-muted);font-size:.85rem}.session-card{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.session-card.work{border-color:var(--accent)}.session-card.rest{border-color:var(--rest)}.session-exercise-name{font-size:1.3rem;font-weight:700;letter-spacing:-.01em}.session-set-info{color:var(--text-muted);font-size:.9rem}.session-description{color:var(--text-muted);font-size:.85rem;margin:.25rem 0 0;line-height:1.4}.session-rest-label{color:var(--rest);font-weight:700;font-size:1rem;text-transform:uppercase;letter-spacing:.04em}.session-timer{font-size:3.5rem;font-weight:700;letter-spacing:-.02em;margin:.4rem 0}.session-reps{font-size:2.5rem;font-weight:700;margin:.4rem 0}.session-next-hint{color:var(--text-muted);font-size:.85rem}.session-skip,.session-complete{background:var(--accent);color:var(--accent-text);padding:.6rem 1.5rem;font-size:.95rem;margin-top:.5rem}.session-controls{display:flex;gap:.75rem;width:100%}.session-controls button{flex:1;background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);padding:.6rem;font-size:.9rem}.session-stop{color:var(--danger)}.session-done{text-align:center;padding-top:3rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.session-done button{background:var(--accent);color:var(--accent-text);padding:.6rem 1.5rem;font-size:.95rem;margin-top:1rem}.training-toggle{display:flex;gap:.5rem;margin-bottom:1.5rem}.training-toggle button{flex:1;background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);padding:.6rem;font-size:.9rem}.training-toggle button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.cardio-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.cardio-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.cardio-form input,.cardio-form select{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.9rem;font-family:inherit}.cardio-form input:focus,.cardio-form select:focus{outline:none;border-color:var(--accent)}.cardio-pace-group{display:flex;flex-direction:column;gap:.3rem}.cardio-pace-group .weight-form-row input{flex:1;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.9rem;font-family:inherit}.cardio-pace-group .weight-form-row input:focus{outline:none;border-color:var(--accent)}.cardio-pace-label{font-size:.8rem;color:var(--text-muted)}.cardio-inline-label{flex:1;display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.cardio-inline-label input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.9rem;font-family:inherit}.cardio-inline-label input:focus{outline:none;border-color:var(--accent)}.cardio-estimate{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem;font-size:.9rem;color:var(--text-muted)}.cardio-estimate strong{color:var(--accent);font-size:1.05rem}.cardio-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.5rem}.cardio-list li{display:flex;justify-content:space-between;align-items:center;padding:.65rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.cardio-info{display:flex;flex-direction:column;gap:.15rem}.cardio-activity{font-weight:600;font-size:.9rem}.cardio-meta{font-size:.8rem;color:var(--text-muted)}.cardio-actions{display:flex;align-items:center;gap:.6rem}.cardio-calories{font-weight:700;font-size:.9rem;color:var(--accent)}.cardio-list li.empty{justify-content:center;color:var(--text-muted);border-style:dashed}.cardio-disclaimer{font-size:.75rem;color:var(--text-muted);font-style:italic}.exercise-form{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.exercise-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.exercise-form input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.95rem;font-family:inherit}.exercise-form input:focus{outline:none;border-color:var(--accent)}.exercise-form select{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.95rem;font-family:inherit}.exercise-form select:focus{outline:none;border-color:var(--accent)}.duration-input-row{display:flex;gap:.5rem}.duration-input-row input{flex:1;min-width:0}.duration-unit-toggle{flex-shrink:0;width:auto}.duration-unit-toggle button{flex:none;padding:.5rem .75rem}.type-toggle{display:flex;gap:.5rem}.type-toggle button{flex:1;background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);padding:.5rem;font-size:.85rem}.type-toggle button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.exercise-filters{display:flex;gap:.5rem;margin-bottom:1rem}.exercise-filters button{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);padding:.35rem .8rem;font-size:.8rem;border-radius:999px}.exercise-filters button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.exercise-title-row{display:flex;align-items:center;gap:.5rem}.exercise-badge{display:inline-block;width:fit-content;font-size:.7rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;background:var(--surface-hover);color:var(--text-muted);border:1px solid var(--border-strong);flex-shrink:0}.exercise-form textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.9rem;font-family:inherit;resize:vertical}.exercise-form textarea:focus{outline:none;border-color:var(--accent)}.exercise-description{font-size:.8rem;color:var(--text-muted);font-style:italic;margin-top:.1rem}.exercise-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.exercise-list li{display:flex;justify-content:space-between;align-items:center;padding:.65rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.exercise-info{display:flex;flex-direction:column;gap:.15rem}.exercise-name{font-weight:600;font-size:.95rem}.exercise-meta{font-size:.8rem;color:var(--text-muted)}.exercise-list li.empty{justify-content:center;color:var(--text-muted);border-style:dashed}.exercise-list button{background:none;color:var(--danger);padding:.2rem .4rem;font-size:1rem}.exercise-list button:hover{opacity:.7}.list-item-actions{display:flex;align-items:center;gap:.25rem}.edit-btn{background:none;color:var(--text-muted);padding:.2rem .4rem;font-size:1rem;display:flex;align-items:center;justify-content:center}.edit-btn:hover{color:var(--accent)}.delete-btn{background:none;color:var(--danger);padding:.2rem .4rem;font-size:1rem;display:flex;align-items:center;justify-content:center}.delete-btn:hover{opacity:.7}.cancel-edit-btn{background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong);padding:.6rem 1rem;font-size:.9rem}.cancel-edit-btn:hover{background:var(--surface-hover);color:var(--text)}.chart-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem .5rem .5rem;margin-bottom:1.25rem}.chart-empty{color:var(--text-muted);font-size:.85rem;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:1rem;text-align:center;margin-bottom:1.25rem}.weight-form{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.weight-form-row,.weight-form-actions{display:flex;gap:.5rem}.weight-form-actions button{flex:1}.weight-form input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:.55rem .7rem;font-size:.95rem;font-family:inherit}.weight-form input:focus{outline:none;border-color:var(--accent)}.weight-form input[type=text]{flex:1;min-width:0}.weight-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.weight-list li{display:flex;justify-content:space-between;align-items:center;padding:.65rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem}.weight-list li span:first-child{color:var(--text-muted);font-size:.85rem}.weight-list li span:nth-child(2){font-weight:600}.weight-list li.empty{justify-content:center;color:var(--text-muted);border-style:dashed}.weight-list button{background:none;color:var(--danger);padding:.2rem .4rem;font-size:1rem}.weight-list button:hover{opacity:.7}.error{color:var(--danger);font-size:.85rem;margin:.25rem 0}
