:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-card: #252540;--bg-input: #1e1e35;--text-primary: #e8e8f0;--text-secondary: #a0a0b8;--text-muted: #6b6b80;--accent: #4a9eff;--accent-hover: #3a8eef;--success: #4ecdc4;--warning: #ffe66d;--danger: #ff6b6b;--border: #2a2a45;--radius: 12px;--radius-sm: 8px;--shadow: 0 2px 8px rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}#app{min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.app-title{font-size:1.1rem;font-weight:700;color:var(--accent)}.bottom-nav{display:flex;justify-content:space-around;background:var(--bg-secondary);border-top:1px solid var(--border);padding:8px 0 calc(8px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--text-muted);font-size:.7rem;padding:4px 12px;transition:color .2s}.nav-item.active{color:var(--accent)}.nav-icon{font-size:1.2rem;margin-bottom:2px}.nav-label{font-size:.6rem}#view-container{flex:1;padding:16px;padding-bottom:calc(80px + env(safe-area-inset-bottom));max-width:600px;margin:0 auto;width:100%}.card{background:var(--bg-card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.card-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-full{width:100%}.btn-success{background:var(--success);color:#000}.btn-danger{background:var(--danger);color:#fff}input,select,textarea{width:100%;padding:12px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;margin-bottom:10px;outline:none;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}label{display:block;font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:24px}.login-title{font-size:2rem;font-weight:800;color:var(--accent);margin-bottom:4px}.login-subtitle{color:var(--text-muted);margin-bottom:32px}.login-form{width:100%;max-width:320px}.error-text{color:var(--danger);font-size:.85rem;text-align:center;margin-top:8px}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-accent{color:var(--accent)}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.scale-row{display:flex;gap:8px}.scale-btn{flex:1;padding:10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:1rem;font-weight:600;cursor:pointer;text-align:center;transition:all .15s}.scale-btn.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.checkin-sleep-times{display:flex;gap:12px;margin-top:8px}.sleep-time-field{flex:1}.sleep-time-field label{font-size:.8rem;color:var(--text-secondary);margin-bottom:4px;display:block}.sleep-time-field input[type=time]{width:100%;padding:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.9rem}.exercise-card{background:var(--bg-input);border-radius:var(--radius-sm);padding:12px;margin-bottom:8px}.exercise-name{font-weight:600;margin-bottom:4px}.exercise-detail{font-size:.85rem;color:var(--text-secondary)}.exercise-tag{display:inline-block;padding:2px 8px;background:var(--bg-card);border-radius:4px;font-size:.75rem;color:var(--text-muted);margin-right:4px;margin-top:4px}.meal-photo{width:100%;border-radius:var(--radius-sm);margin-bottom:8px;object-fit:cover;max-height:200px}.macro-bar{display:flex;gap:12px;font-size:.85rem}.macro-item{display:flex;flex-direction:column;align-items:center}.macro-value{font-weight:700;font-size:1.1rem}.macro-label{color:var(--text-muted);font-size:.7rem;text-transform:uppercase}.modal{position:fixed;inset:0;background:#000000d9;z-index:200;display:flex;align-items:center;justify-content:center}.modal-content{background:var(--bg-secondary);border-radius:var(--radius);padding:20px 16px;width:100%;max-width:600px;max-height:90dvh;overflow-y:auto;margin:0 16px}.photo-upload-area{background:var(--bg-input);border:2px dashed var(--border);border-radius:var(--radius-sm);padding:24px 16px;text-align:center;cursor:pointer;transition:border-color .2s}.photo-upload-area:active,.photo-upload-area.drag-over{border-color:var(--accent);background:rgba(var(--accent-rgb, 99, 102, 241),.08)}.macro-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.macro-edit-grid .macro-edit-item:first-child{grid-column:1 / -1}.macro-edit-item label{font-size:.8rem;margin-bottom:2px}.macro-edit-item input{margin-bottom:0;text-align:center;font-size:1.1rem;font-weight:600}.photo-overlay{position:fixed;inset:0;background:#000000f2;z-index:300;display:flex;align-items:center;justify-content:center;cursor:pointer}.meal-card .macro-bar{justify-content:space-between}.meal-photo-thumb{width:100%;border-radius:var(--radius-sm);margin-bottom:8px;object-fit:cover;max-height:180px}.pref-fav{min-width:48px;min-height:48px;border-radius:50%;border:2px solid var(--border);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-muted);padding:0;transition:color .2s,border-color .2s,background .2s}.pref-fav.active{color:#f59e0b;border-color:#f59e0b;background:#f59e0b26}.pref-block{min-width:36px;min-height:36px;border-radius:6px;border:none;background:#ef4444;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff;padding:0;transition:background .2s}.pref-block:active{background:#dc2626}.phase-swap-btn,.preview-swap-btn{font-size:1rem;padding:10px 18px;background:transparent;border:3px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;flex-shrink:0;min-height:48px;font-weight:500}.phase-actions,.preview-item-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.phase-actions{margin-right:12px}.config-day-slot{background:var(--bg-card);border-radius:var(--radius);padding:12px 16px;margin-bottom:8px;border:2px solid var(--border);display:flex;align-items:center;gap:12px;transition:border-color .2s,background .2s}.config-day-slot.selected{border-color:var(--accent);background:#4a9eff1a}.config-day-label{font-weight:700;font-size:.9rem;min-width:36px;color:var(--accent)}.config-day-controls{display:flex;gap:8px;align-items:center;flex:1;flex-wrap:wrap}.config-type-select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:.85rem;min-height:40px;flex:1;min-width:100px}.config-location-toggle{display:flex;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.config-loc-btn{background:var(--bg-input);color:var(--text-secondary);border:none;padding:8px 12px;font-size:.8rem;cursor:pointer;min-height:40px;transition:background .15s,color .15s}.config-loc-btn.active{background:var(--accent);color:#fff}.config-reorder-btns{display:flex;flex-direction:column;gap:2px}.config-reorder-btn{background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;width:36px;height:28px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.config-reorder-btn:disabled{opacity:.3;cursor:default}.config-reorder-btn:not(:disabled):active{background:var(--accent);color:#fff}.regen-day-card{cursor:pointer}.video-play-btn{background:none;border:1px solid var(--border);border-radius:50%;width:28px;height:28px;font-size:.7rem;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,border-color .15s;padding:0;line-height:1}.video-play-btn:active,.video-play-btn.active{color:var(--accent);border-color:var(--accent)}.video-panel{margin-top:8px;padding:8px 0;border-top:1px solid var(--border)}.video-panel-loading,.video-panel-empty{font-size:.8rem;color:var(--text-muted);padding:8px 0}.video-result{display:flex;align-items:center;gap:10px;padding:8px 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--border)}.video-result:last-child{border-bottom:none}.video-thumb{width:80px;height:45px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg-card)}.video-info{flex:1;min-width:0}.video-title{font-size:.8rem;font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-channel{font-size:.7rem;color:var(--text-muted);margin-top:2px}.video-flag-btn{background:none;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:4px;flex-shrink:0;opacity:.5}.video-flag-btn:active{color:var(--danger);opacity:1}.coach-brief-text{font-size:.95rem;line-height:1.55;color:var(--text-primary);white-space:pre-wrap}.coach-chat-input-row{display:flex;gap:8px;margin-top:12px}.coach-chat-input-row input{flex:1;padding:10px 12px;font-size:.9rem}.coach-chat-input-row .btn{flex-shrink:0}#chat-messages{max-height:300px;overflow-y:auto;margin-bottom:4px}.chat-msg{padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:6px;font-size:.9rem;line-height:1.45;white-space:pre-wrap}.chat-msg-user{background:var(--accent);color:#fff;margin-left:32px;text-align:right}.chat-msg-coach{background:var(--bg-input);color:var(--text-primary);margin-right:32px}.chat-error{color:var(--danger);font-size:.8rem;padding:4px 0}.meals-macro-row{display:flex;gap:8px;flex-wrap:wrap}.macro-pill{display:flex;flex-direction:column;align-items:center;background:var(--bg-input);padding:8px 12px;border-radius:var(--radius-sm);flex:1;min-width:60px}.macro-value{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.macro-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.metrics-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.85rem}.metrics-row:last-child{border-bottom:none}.metrics-date{color:var(--text-muted);min-width:44px}.metrics-val{color:var(--text-primary);min-width:60px}.btn-icon{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:4px 8px;border-radius:4px;margin-left:auto;transition:color .2s}.btn-icon:hover{color:var(--danger)}.eval-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.eval-proposals{display:flex;flex-direction:column;gap:8px}.eval-proposal{background:var(--bg-input);border-radius:var(--radius-sm);padding:10px 12px}.eval-proposal-header{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:.85rem}.eval-type-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:20px;border-radius:4px;background:var(--bg-secondary);color:var(--accent);font-size:.65rem;font-weight:700}.eval-proposal-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.4}.meal-plan-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:8px}.tab-btn{flex:1;padding:8px 4px;background:none;border:none;color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;border-radius:6px 6px 0 0;transition:color .2s,background .2s}.tab-btn.active{color:var(--accent);background:var(--bg-secondary)}.recipes-controls .input{width:100%}.recipe-grid{display:flex;flex-direction:column;gap:8px}.recipe-card{cursor:pointer;transition:border-color .2s}.recipe-card:active{border-color:var(--accent)}.recipe-tags{display:flex;flex-wrap:wrap;gap:4px}.tag{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.7rem;background:var(--bg-secondary);color:var(--text-secondary)}.tag-method{border:1px solid var(--border);background:transparent}.fav-btn{color:var(--text-secondary);font-size:1.1rem}.fav-btn.fav-active{color:#f5a623}.macro-row{display:flex;gap:6px;flex-wrap:wrap}.macro-pill{display:inline-block;padding:3px 8px;border-radius:10px;font-size:.75rem;font-weight:600;background:var(--bg-secondary);color:var(--text-primary)}.ingredient-list{list-style:none;padding:0;margin:0}.ingredient-list li{padding:4px 0;font-size:.85rem;border-bottom:1px solid var(--border)}.ingredient-list li:last-child{border-bottom:none}.plan-grid{display:flex;flex-direction:column;gap:6px}.plan-day{padding:10px 12px}.plan-day-header{font-weight:700;font-size:.85rem;color:var(--accent);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.meal-slot{padding:4px 0;border-bottom:1px solid var(--border)}.meal-slot:last-child{border-bottom:none}.meal-slot-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.meal-slot-name{font-size:.9rem;font-weight:500;margin:2px 0}.meal-slot-macros{font-size:.75rem;color:var(--text-secondary)}.tag-active{background:var(--accent);color:#000}.tag-draft{background:#650;color:gold}.btn-xs{padding:2px 6px;font-size:.75rem}.grocery-cat-header{font-weight:700;font-size:.8rem;color:var(--accent);padding:4px 0;margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.grocery-item{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--border);cursor:pointer;font-size:.85rem}.grocery-item:last-child{border-bottom:none}.grocery-item.checked .grocery-item-name{text-decoration:line-through;color:var(--text-secondary)}.grocery-item-name{flex:1}.grocery-item-qty{color:var(--text-secondary);font-size:.8rem;white-space:nowrap}
