:root{--ink: #1a1a18;--ink-soft: #2a2a26;--cream: #f4f0e8;--cream-dim: #e8e2d6;--paper: #ece7db;--accent: #c44b2a;--accent-hover: #b3401f;--accent-dim: rgba(196, 75, 42, .08);--accent-strong: rgba(196, 75, 42, .12);--text-primary: #1a1a18;--text-secondary: #5a5850;--text-muted: #918d82;--border: #d4cfc4;--border-strong: #b8b3a8;--success: #3a7d44;--warning: #b8860b;--danger: #c44b2a}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:Outfit,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--cream);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:16px}body:after{content:"";position:fixed;inset:0;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}#app{min-height:100dvh;display:flex;flex-direction:column;max-width:480px;margin:0 auto;position:relative}@keyframes editIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-header{padding:20px 20px 0;position:sticky;top:0;z-index:100;background:var(--cream)}.header-top{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:12px;border-bottom:2px solid var(--ink)}.app-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.6rem;font-weight:400;color:var(--ink);letter-spacing:-.01em}.header-date{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;font-weight:500}.header-rule{height:1px;background:var(--border);margin-top:1px}.bottom-nav{display:flex;background:var(--cream);border-top:2px solid var(--ink);position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;z-index:100;padding-bottom:env(safe-area-inset-bottom)}.nav-item{flex:1;padding:10px 4px 8px;text-align:center;background:none;border:none;border-right:1px solid var(--border);color:var(--text-muted);font-family:Outfit,sans-serif;font-size:.5rem;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;font-weight:500;transition:all .15s;text-decoration:none;display:flex;flex-direction:column;align-items:center}.nav-item:last-child{border-right:none}.nav-item.active{color:var(--ink);background:var(--paper)}.nav-icon{font-size:1.1rem;display:block;margin-bottom:3px}.nav-label{font-size:.5rem}#view-container{flex:1;padding:20px 20px 100px;max-width:480px;margin:0 auto;width:100%}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.section-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.3rem;font-weight:400;color:var(--ink)}.section-action{font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-weight:600;cursor:pointer;background:none;border:none}.card{background:var(--cream);margin-bottom:28px;animation:editIn .4s ease-out both}.card:nth-child(2){animation-delay:.06s}.card:nth-child(3){animation-delay:.12s}.card:nth-child(4){animation-delay:.18s}.card:nth-child(5){animation-delay:.24s}.card-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.1rem;font-weight:400;color:var(--ink);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.feature-card{background:var(--ink);color:var(--cream);padding:24px;margin-bottom:24px;position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;right:0;width:120px;height:120px;background:radial-gradient(circle at 100% 0%,rgba(196,75,42,.15),transparent 70%)}.feature-eyebrow{font-size:.6rem;text-transform:uppercase;letter-spacing:.25em;color:var(--accent);font-weight:600;margin-bottom:10px}.feature-title{font-family:"Instrument Serif",Georgia,serif;font-size:2rem;font-weight:400;color:var(--cream);line-height:1.1;margin-bottom:8px;letter-spacing:-.02em}.feature-subtitle{font-size:.8rem;color:#f4f0e880;font-weight:400;margin-bottom:16px}.feature-meta{display:flex;gap:16px;font-size:.7rem;color:#f4f0e866;text-transform:uppercase;letter-spacing:.08em}.brief-text,.coach-brief-text{font-size:.9rem;line-height:1.75;color:var(--text-secondary);font-weight:400;white-space:pre-wrap}.brief-text strong,.coach-brief-text strong{color:var(--text-primary);font-weight:500}.brief-lead{font-family:"Instrument Serif",Georgia,serif;font-size:1.15rem;font-style:italic;color:var(--text-primary);line-height:1.5;margin-bottom:10px;font-weight:400}.stat-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.stat-col{padding:14px 0;text-align:center;border-right:1px solid var(--border)}.stat-col:last-child{border-right:none}.stat-big{font-family:"Instrument Serif",Georgia,serif;font-size:1.8rem;font-weight:400;color:var(--ink);line-height:1}.stat-label{font-size:.55rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);margin-top:4px;font-weight:500}.btn{display:block;width:100%;padding:14px;border:none;background:var(--ink);color:var(--cream);font-family:Outfit,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;text-align:center;text-decoration:none;margin-top:16px;transition:all .15s;-webkit-tap-highlight-color:transparent}.btn:active{background:var(--ink-soft);transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--cream)}.btn-primary:hover,.btn-primary:active{background:var(--accent-hover)}.btn-accent{background:var(--accent);color:var(--cream)}.btn-accent:active{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-strong);font-weight:500}.btn-ghost:active{background:var(--paper)}.btn-sm{padding:8px 14px;font-size:.65rem;margin-top:0;width:auto;display:inline-flex;align-items:center;justify-content:center}.btn-full{width:100%}.btn-success{background:var(--success);color:var(--cream)}.btn-danger{background:var(--danger);color:var(--cream)}.btn-xs{padding:4px 8px;font-size:.6rem;margin-top:0;width:auto;display:inline-flex}.btn-row{display:flex;gap:8px;margin-top:8px}.btn-row .btn{flex:1;margin-top:0}.btn-icon{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:4px 8px;margin-left:auto;transition:color .2s}.btn-icon:hover{color:var(--danger)}input,select,textarea{width:100%;padding:12px 14px;background:var(--paper);border:1px solid var(--border);color:var(--text-primary);font-family:Outfit,sans-serif;font-size:.85rem;font-weight:400;margin-bottom:10px;outline:none;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}label{display:block;font-size:.65rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;margin-bottom:6px}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-width:18px;flex-shrink:0}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:24px}.login-title{font-family:"Instrument Serif",Georgia,serif;font-size:2.4rem;font-weight:400;color:var(--ink);margin-bottom:4px}.login-subtitle{color:var(--text-muted);font-size:.85rem;font-weight:400;margin-bottom:32px}.login-form{width:100%;max-width:320px}.login-form .btn{background:var(--accent);color:var(--cream)}.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}.divider{height:1px;background:var(--border);margin:16px 0}.scale-row{display:flex;gap:6px}.scale-btn{flex:1;padding:12px 4px;background:var(--paper);border:1px solid var(--border);color:var(--text-secondary);font-family:"Instrument Serif",Georgia,serif;font-size:1rem;cursor:pointer;text-align:center;transition:all .15s}.scale-btn.selected{background:var(--ink);color:var(--cream);border-color:var(--ink)}.checkin-sleep-times{display:flex;gap:12px;margin-top:8px}.sleep-time-field{flex:1}.sleep-time-field label{font-size:.65rem;color:var(--text-muted);margin-bottom:4px;display:block}.sleep-time-field input[type=time]{width:100%;padding:8px;background:var(--paper);border:1px solid var(--border);color:var(--text-primary);font-size:.9rem}.exercise-card{background:var(--paper);padding:12px;margin-bottom:8px;border:1px solid var(--border)}.exercise-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.exercise-detail{font-size:.75rem;color:var(--text-muted);margin-top:2px;font-weight:400}.exercise-tag{display:inline-block;padding:2px 8px;border:1px solid var(--border);font-size:.65rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-right:4px;margin-top:4px}.exercise-list{border-top:1px solid var(--border)}.exercise-row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid var(--border);gap:14px}.exercise-num{font-family:"Instrument Serif",Georgia,serif;font-size:1.4rem;color:var(--text-muted);min-width:28px;font-style:italic}.exercise-info{flex:1}.exercise-badge{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);padding:3px 10px;border:1px solid rgba(196,75,42,.2);background:var(--accent-dim)}.macro-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--border)}.macro-cell{padding:14px 8px;text-align:center;border-right:1px solid var(--border)}.macro-cell:last-child{border-right:none}.macro-val{font-family:"Instrument Serif",Georgia,serif;font-size:1.5rem;font-weight:400;color:var(--ink);line-height:1}.macro-unit{font-size:.5rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);margin-top:4px;font-weight:500}.macro-item{display:flex;flex-direction:column;align-items:center;padding:14px 8px;text-align:center;border-right:1px solid var(--border);flex:1}.macro-item:last-child{border-right:none}.macro-value{font-family:"Instrument Serif",Georgia,serif;font-size:1.3rem;font-weight:400;color:var(--ink)}.macro-label{font-size:.5rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;font-weight:500}.meals-macro-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--border)}.macro-pill{display:flex;flex-direction:column;align-items:center;padding:14px 8px;text-align:center;border-right:1px solid var(--border)}.macro-pill:last-child{border-right:none}.macro-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--border)}.modal{position:fixed;inset:0;background:#1a1a18d9;z-index:200;display:flex;align-items:center;justify-content:center}.modal-content{background:var(--cream);padding:20px 16px;width:100%;max-width:600px;max-height:90dvh;overflow-y:auto;margin:0 16px}.photo-upload-area{background:var(--paper);border:2px dashed var(--border);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)}.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:.65rem;margin-bottom:2px}.macro-edit-item input{margin-bottom:0;text-align:center;font-size:1.1rem;font-weight:500}.photo-overlay{position:fixed;inset:0;background:#1a1a18f2;z-index:300;display:flex;align-items:center;justify-content:center;cursor:pointer}.meal-photo{width:100%;margin-bottom:8px;object-fit:cover;max-height:200px}.meal-photo-thumb{width:100%;margin-bottom:8px;object-fit:cover;max-height:180px}.meal-card .macro-bar{justify-content:space-between}.pref-fav{min-width:48px;min-height:48px;border:1px 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:#f59e0b1a}.pref-block{min-width:36px;min-height:36px;border:none;background:var(--danger);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:var(--cream);padding:0;transition:background .2s}.pref-block:active{background:var(--accent-hover)}.phase-swap-btn,.preview-swap-btn{font-size:.7rem;padding:10px 18px;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;flex-shrink:0;min-height:48px;font-weight:500;text-transform:uppercase;letter-spacing:.1em}.phase-timer-btn{font-size:1.2rem;padding:8px 14px;background:var(--accent);color:var(--cream);border:none;cursor:pointer;flex-shrink:0;min-height:48px;min-width:48px;font-weight:600}.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(--paper);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:var(--accent-dim)}.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(--paper);color:var(--text-primary);border:1px solid var(--border);padding:8px 10px;font-size:.85rem;min-height:40px;flex:1;min-width:100px}.config-location-toggle{display:flex;overflow:hidden;border:1px solid var(--border)}.config-loc-btn{background:var(--paper);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(--ink);color:var(--cream)}.config-reorder-btns{display:flex;flex-direction:column;gap:2px}.config-reorder-btn{background:var(--paper);color:var(--text-secondary);border:1px solid var(--border);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(--ink);color:var(--cream)}.regen-day-card{cursor:pointer}.video-play-btn{background:none;border:1px solid var(--border);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;object-fit:cover;flex-shrink:0;background:var(--paper)}.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}.video-follow-card{display:flex;align-items:center;gap:12px;padding:10px 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--border)}.video-follow-card:last-child{border-bottom:none}.video-follow-thumb{width:100px;height:56px;object-fit:cover;flex-shrink:0;background:var(--paper)}.video-follow-info{flex:1;min-width:0}.video-follow-title{font-size:.9rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-follow-meta{font-size:.75rem;color:var(--text-muted);margin-top:3px}.coach-chat-input-row{display:flex;gap:8px;margin-top:10px}.coach-chat-input-row input{flex:1;padding:12px 14px;font-size:.85rem}.coach-chat-input-row .btn{flex-shrink:0;width:auto;padding:12px 18px;margin-top:0}#chat-messages{max-height:300px;overflow-y:auto;margin-bottom:4px}.chat-msg{padding:10px 14px;margin-bottom:6px;font-size:.85rem;line-height:1.5;white-space:pre-wrap;font-weight:400}.chat-msg-user{background:var(--ink);color:var(--cream);margin-left:32px;text-align:right}.chat-msg-coach{background:var(--paper);color:var(--text-primary);margin-right:32px}.chat-error{color:var(--danger);font-size:.8rem;padding:4px 0}.week-strip{display:flex;border:1px solid var(--border);margin-bottom:24px}.day-cell{flex:1;text-align:center;padding:12px 4px;border-right:1px solid var(--border);cursor:pointer;transition:background .15s}.day-cell:last-child{border-right:none}.day-cell.today{background:var(--ink);color:var(--cream)}.day-cell.completed{background:var(--accent-dim)}.day-cell.rest{opacity:.4}.day-label{font-size:.55rem;text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:4px;font-weight:500}.day-type{font-family:"Instrument Serif",Georgia,serif;font-size:.75rem;font-style:italic;color:var(--text-secondary)}.day-cell.today .day-label{color:#f4f0e880}.day-cell.today .day-type{color:var(--cream)}.day-cell.completed .day-label{color:var(--accent)}.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);flex:1}.metrics-source{font-size:.6rem;color:var(--accent);background:var(--accent-dim);padding:2px 8px;border:1px solid rgba(196,75,42,.2);font-weight:500;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.eval-badge{display:inline-block;padding:2px 10px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border)}.eval-proposals{display:flex;flex-direction:column;gap:8px}.eval-proposal{background:var(--paper);padding:10px 12px;border:1px solid var(--border)}.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;background:var(--cream);border:1px solid var(--border);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:0;margin-bottom:16px;border-bottom:1px solid var(--border)}.tab-btn{flex:1;padding:10px 4px;background:none;border:none;color:var(--text-muted);font-size:.7rem;font-weight:500;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;transition:color .2s;position:relative}.tab-btn.active{color:var(--accent)}.tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent)}.recipe-grid{display:flex;flex-direction:column;gap:8px}.recipe-card{cursor:pointer;transition:border-color .2s;border:1px solid var(--border);padding:12px}.recipe-card:active{border-color:var(--accent)}.recipe-tags{display:flex;flex-wrap:wrap;gap:4px}.tag{display:inline-block;padding:2px 8px;font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;background:var(--paper);color:var(--text-secondary);border:1px solid var(--border)}.tag-method{border:1px solid var(--border);background:transparent}.tag-active{background:var(--accent);color:var(--cream);border-color:var(--accent)}.tag-draft{background:var(--accent-dim);color:var(--accent);border-color:#c44b2a33}.fav-btn{color:var(--text-secondary);font-size:1.1rem}.fav-btn.fav-active{color:#f5a623}.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;border:1px solid var(--border)}.plan-day-header{font-family:"Instrument Serif",Georgia,serif;font-size:1rem;font-weight:400;color:var(--ink);margin-bottom:6px;text-transform:capitalize}.meal-slot{padding:4px 0;border-bottom:1px solid var(--border)}.meal-slot:last-child{border-bottom:none}.meal-slot-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;font-weight:500}.meal-slot-name{font-size:.9rem;font-weight:500;margin:2px 0}.meal-slot-macros{font-size:.75rem;color:var(--text-secondary)}.grocery-cat-header{font-family:"Instrument Serif",Georgia,serif;font-size:1rem;font-weight:400;color:var(--ink);padding:6px 0;margin-bottom:4px;border-bottom:1px solid var(--border)}.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-muted)}.grocery-item-name{flex:1}.grocery-item-qty{color:var(--text-secondary);font-size:.8rem;white-space:nowrap}.pull-quote{font-family:"Instrument Serif",Georgia,serif;font-size:1.1rem;font-style:italic;color:var(--text-secondary);padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:16px 0;line-height:1.5}.pull-quote cite{display:block;font-size:.65rem;font-family:Outfit,sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-top:8px;font-weight:500}
