:root{--ff-blue: #1e8ad3;--ff-blue-deep: #043bb1;--ff-pink: #fe00a4;--ff-green: #10bc10;--ff-blue-light: #4da6e8;--ff-red: #cc0050;--ff-bg: #f0f2f5;--ff-card: #fefefe;--ff-border: #888888;--ff-text: #000000;--ff-text-muted: #555555;--ff-text-light: #999999}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#999;color:var(--ff-text);-webkit-font-smoothing:antialiased}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--ff-blue);font-size:1.1rem}.layout{display:flex;min-height:100vh;transition:background .2s,color .2s}.sidebar{width:220px;min-height:100vh;background:var(--ff-card);border-right:1px solid var(--ff-border);padding:1.5rem 0;display:flex;flex-direction:column;position:fixed;top:0;left:0}.sb-brand{display:flex;align-items:center;gap:.6rem;padding:0 1.25rem;margin-bottom:2rem}.sb-logo{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e8ad3,#fe00a4);font-weight:800;font-size:1.1rem;color:#fff}.sb-name{font-size:1.1rem;font-weight:800;color:var(--ff-text)}.sb-nav{display:flex;flex-direction:column;gap:.15rem}.sb-nav button{display:flex;align-items:center;gap:.65rem;padding:.7rem 1.25rem;background:none;border:none;color:var(--ff-text-muted);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;text-align:left;border-left:3px solid transparent}.sb-nav button svg{width:18px;height:18px;flex-shrink:0}.sb-nav button:hover{color:var(--ff-blue);background:#e8e8e8}.sb-nav button.active{color:var(--ff-blue);background:#e8e8e8;border-left-color:var(--ff-blue)}.main{margin-left:220px;flex:1;padding:1.5rem 2rem;min-height:100vh;background:var(--ff-bg)}.topbar{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.sticky-topbar{position:sticky;top:0;z-index:30;padding:1rem 0;margin:-1rem 0 1rem;background:var(--ff-bg);backdrop-filter:blur(8px)}.dark .sticky-topbar{background:#0f0f1ae6}.topbar-greet h1{font-size:1.3rem;font-weight:700;color:var(--ff-text)}.topbar-race{font-size:.85rem;font-weight:700;margin-top:.15rem;color:var(--ff-blue)}.topbar-phase{font-size:.8rem;font-weight:600;margin-top:.15rem}.topbar-date{display:flex;align-items:center;gap:.35rem;margin-left:auto}.topbar-date button{background:var(--ff-card);border:1px solid var(--ff-border);color:var(--ff-blue);border-radius:6px;padding:.5rem .85rem;cursor:pointer;font-family:inherit;font-size:.85rem;transition:all .15s;min-height:44px;min-width:44px}.topbar-date button:hover{background:#e8e8e8;color:var(--ff-text)}.topbar-today{font-weight:700;font-size:.8rem!important}.topbar-datestr{font-size:.8rem;color:var(--ff-text-muted)}.cards-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1.25rem}@media(max-width:960px){.cards-row{grid-template-columns:1fr}}.card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:14px;padding:1.25rem}.card h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ff-blue);font-weight:700;margin-bottom:1rem}.page-fade{animation:fadeSlideIn .25s ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton-container{padding:1rem 0}.skeleton{background:linear-gradient(90deg,#e8e8e8 25%,#f0f0f0,#e8e8e8 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:14px}.skeleton-topbar{height:56px;margin-bottom:1.5rem}.skeleton-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1.25rem}.skeleton-card{height:200px}.skeleton-wide{height:120px;margin-bottom:.75rem}.dark .skeleton{background:linear-gradient(90deg,#1a1a2e 25%,#252540,#1a1a2e 75%);background-size:200% 100%}.mrow{margin-bottom:.85rem}.mrow-top{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem}.mrow-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mrow-label{font-size:.8rem;font-weight:600;color:var(--ff-text)}.mrow-pct{font-size:.7rem;font-weight:700;color:#555}.mrow-pct.mrow-near{color:var(--ff-green)}.mrow-pct.mrow-over{color:var(--ff-pink)}.mrow-val{margin-left:auto;font-size:.8rem;color:var(--ff-text-muted);font-weight:600}.mrow-bar{height:6px;background:#ddd;border-radius:3px;overflow:hidden}.mrow-bar div{height:100%;border-radius:3px;transition:width .4s,background .3s}.mrow-left{font-size:.7rem;color:#555;margin-top:.15rem;display:block}.mrow-left-over{color:var(--ff-pink);font-weight:600}.card-cal{margin-top:.5rem;font-size:.85rem;color:var(--ff-text-muted);text-align:center;padding-top:.5rem;border-top:1px solid #dddddd}.card-cal span{font-size:1.4rem;font-weight:800;color:var(--ff-text)}.fuel-recs{margin-bottom:.75rem}.fuel-r{display:flex;gap:.4rem;padding:.45rem 0;border-bottom:1px solid #dddddd;font-size:.8rem;color:var(--ff-text)}.fuel-ph{min-width:50px;font-weight:700;color:var(--ff-pink);font-size:.7rem;text-transform:uppercase}.fuel-logged-head{font-size:.7rem;color:var(--ff-green);font-weight:700;text-transform:uppercase;margin:.75rem 0 .35rem}.fuel-sum{font-size:.75rem;color:var(--ff-blue);font-family:monospace;margin:.35rem 0}.fuel-rec-macros{margin:.75rem 0;padding:.75rem;background:#f0f0f0;border-radius:8px;border:1px solid #dddddd}.fuel-rec-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-blue-deep);margin-bottom:.5rem}.fuel-rec-table{display:flex;flex-direction:column;gap:.2rem}.fuel-rec-row{display:grid;grid-template-columns:70px 1fr 1fr 1fr;gap:.25rem;padding:.25rem 0;font-size:.75rem;color:var(--ff-text);border-bottom:1px solid #e0e0e0}.fuel-rec-row:last-child{border-bottom:none}.fuel-rec-row span:not(:first-child){text-align:right;font-family:monospace;font-weight:600}.fuel-rec-header{font-size:.65rem;font-weight:700;color:#555;text-transform:uppercase;border-bottom:1px solid #cccccc}.fuel-rec-header span{font-family:inherit!important}.fuel-rec-total{font-weight:700;border-top:1px solid #cccccc;padding-top:.35rem}.fuel-rec-total span:first-child{color:var(--ff-blue-deep)}.fuel-rec-cal{font-size:.7rem;color:var(--ff-blue);font-family:monospace;margin-top:.4rem;text-align:right}.wo{background:#f0f0f0;border-radius:10px;padding:.75rem;margin-bottom:.5rem;border-left:3px solid var(--ff-blue-deep);transition:border-color .2s}.wo-completed{border-left-color:var(--ff-green)}.wo-planned{border-left-color:var(--ff-blue-deep)}.wo-unplanned{border-left-color:#ff9800}.wo-status-badge{display:inline-block;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:4px;white-space:nowrap}.wo-status-done{background:#e8ffe8;color:#0a8a0a}.wo-status-extra{background:#fff3e0;color:#e68a00}.wo-status-plan{background:#e8f0ff;color:var(--ff-blue-deep)}.wo-strava-note{display:block;font-size:.65rem;color:#666;font-style:italic;margin-top:.25rem}.wo-glossary{margin-top:.75rem;border-top:1px solid #e0e0e0;padding-top:.5rem}.wo-glossary-toggle{display:flex;align-items:center;gap:.35rem;background:none;border:none;color:#666;font-size:.7rem;font-weight:600;cursor:pointer;font-family:inherit;padding:.25rem 0;transition:color .15s}.wo-glossary-toggle:hover{color:var(--ff-blue)}.wo-glossary-toggle svg{flex-shrink:0}.wo-glossary-body{margin-top:.5rem;animation:fadeSlideIn .2s ease-out}.wo-glossary-section{margin-bottom:.75rem}.wo-glossary-section h4{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-blue);font-weight:700;margin-bottom:.35rem;padding-bottom:.2rem;border-bottom:1px solid #e8e8e8}.wo-glossary-body dl{margin:0;padding:0}.wo-glossary-body dt{font-size:.75rem;font-weight:700;color:#333;margin-top:.3rem}.wo-glossary-body dd{font-size:.7rem;color:#555;margin:.1rem 0 0;line-height:1.4}.wo-top{display:flex;justify-content:space-between;gap:.4rem;margin-bottom:.25rem}.wo-name{font-size:.85rem;font-weight:700;color:var(--ff-text)}.wo-dur{font-size:.7rem;color:var(--ff-blue);font-weight:600;white-space:nowrap}.wo-desc{font-size:.7rem;color:var(--ff-text-muted);line-height:1.45;max-height:60px;overflow:hidden;white-space:pre-wrap;margin-bottom:.3rem}.wo-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.wo-type{font-size:.6rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.04em}.wo-meta{display:flex;gap:.75rem;margin-top:.4rem}.wo-meta-item{font-size:.7rem;color:#555}.wo-meta-item strong{color:var(--ff-blue-deep)}.wo-zones{margin-top:.5rem}.wo-zones-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:1px}.wo-zones-bar div{min-width:3px}.wo-zones-labels{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem;font-size:.6rem;font-weight:600}.wo-empty{color:#555;font-size:.85rem;padding:1rem 0}.wo-stats{display:flex;gap:.5rem;margin-top:.75rem}.wo-stats div{flex:1;display:flex;flex-direction:column;align-items:center;padding:.4rem;background:#e8e8e8;border-radius:6px}.wo-stats span{font-size:.6rem;color:var(--ff-blue);text-transform:uppercase;font-weight:600}.wo-stats strong{font-size:.9rem;color:var(--ff-text)}.goals-section{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:14px;margin-bottom:1.25rem;padding:1.25rem}.goals-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ff-blue);font-weight:700;margin-bottom:.75rem}.goals-row{display:flex;justify-content:center;gap:1.5rem}.ring{position:relative;display:flex;align-items:center;justify-content:center}.ring-inner{position:absolute;display:flex;flex-direction:column;align-items:center}.ring-v{font-size:1rem;font-weight:800;color:var(--ff-text);line-height:1}.ring-max{font-size:.55rem;color:#555}.ring-l{font-size:.55rem;color:var(--ff-blue);text-transform:uppercase;font-weight:700;margin-top:.1rem}.meal-card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:14px;padding:1.25rem;margin-bottom:.75rem;transition:all .2s}.meal-collapsed{padding:.75rem 1.25rem}.meal-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.meal-head-toggle{cursor:pointer;user-select:none;margin-bottom:0;transition:margin .2s}.meal-card:not(.meal-collapsed) .meal-head-toggle{margin-bottom:.75rem}.meal-head-left{display:flex;align-items:center;gap:.5rem}.meal-icon{display:flex;align-items:center;color:var(--ff-blue);flex-shrink:0}.meal-head h3{font-size:1rem;font-weight:700;color:var(--ff-text)}.meal-count{background:var(--ff-blue);color:#fff;font-size:.6rem;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.meal-head-cal{font-size:.8rem;font-weight:700;color:var(--ff-blue)}.meal-rec{font-size:.7rem;color:#666;margin-left:auto}.meal-chevron{display:flex;transition:transform .2s;transform:rotate(180deg);color:#666;flex-shrink:0}.meal-chevron-down{transform:rotate(0)}.meal-sum{font-size:.75rem;color:var(--ff-blue);font-family:monospace;margin:.35rem 0;padding-top:.35rem;border-top:1px solid #dddddd}.meal-empty-state{display:flex;flex-direction:column;align-items:center;padding:1.25rem .5rem;gap:.3rem}.meal-empty-icon{color:#ddd}.meal-empty-icon svg{width:32px;height:32px}.meal-empty-state p{font-size:.85rem;color:#666;margin:0}.meal-empty-hint{font-size:.7rem;color:#bbb}.dark .meal-empty-state p{color:#666}.dark .meal-empty-hint{color:#555}.dark .meal-empty-icon{color:#3a3a5a}.fi{display:flex;gap:.35rem;flex-wrap:wrap}.fi input{background:#f0f0f0;border:1px solid var(--ff-border);border-radius:6px;padding:.5rem .6rem;color:var(--ff-text);font-size:.8rem;font-family:inherit;outline:none;transition:border-color .15s}.fi input:focus{border-color:var(--ff-blue-deep)}.fi input::placeholder{color:var(--ff-text-light)}.fi-s{flex:2;min-width:130px;position:relative}.fi-s input{width:100%}.fi-q{flex:.6;min-width:40px}.fi-unit{flex:.7;min-width:55px;background:#f0f0f0;border:1px solid var(--ff-border);border-radius:6px;padding:.5rem .3rem;color:var(--ff-text);font-size:.75rem;font-family:inherit;outline:none;cursor:pointer}.fi-unit:focus{border-color:var(--ff-blue-deep)}.fi-gram-btn{flex:0 0 28px;height:34px;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:700;cursor:pointer;font-family:inherit}.fi-gram-btn:hover{background:var(--ff-blue)}.fi-gram-toggle{background:var(--ff-blue-deep);color:#fff;border:none;cursor:pointer;font-weight:700;font-size:.68rem;text-align:center}.fi-n{flex:1;min-width:50px}.fi-n::-webkit-outer-spin-button,.fi-n::-webkit-inner-spin-button{-webkit-appearance:none}.fi-btn{background:var(--ff-blue-deep);color:#fff;border:none;border-radius:6px;padding:.5rem .8rem;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.fi-btn:hover{background:var(--ff-blue)}.fi-drop{position:absolute;top:100%;left:0;right:0;margin-top:3px;background:var(--ff-card);border:1px solid var(--ff-blue-deep);border-radius:8px;max-height:180px;overflow-y:auto;z-index:20;box-shadow:0 6px 20px #00000026}.fi-load{padding:.5rem;color:var(--ff-blue);font-size:.75rem;text-align:center}.fi-drop button{display:flex;flex-direction:column;gap:.1rem;width:100%;padding:.45rem .6rem;background:none;border:none;border-bottom:1px solid #dddddd;color:var(--ff-text);text-align:left;cursor:pointer;font-family:inherit;font-size:.8rem}.fi-drop button:last-child{border-bottom:none}.fi-drop button:hover{background:#e8e8e8}.fi-drop strong{font-size:.8rem;text-transform:capitalize}.fi-drop span{font-size:.65rem;color:var(--ff-blue);font-family:monospace}.fi-drop em{font-style:normal;font-size:.55rem;background:#e8e8e8;color:var(--ff-text-muted);padding:.1rem .3rem;border-radius:3px;margin-left:.3rem}.fi-recents-head{padding:.4rem .6rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#666;border-bottom:1px solid #ddd}.fi-scan{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:6px;padding:.45rem .55rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.fi-scan:hover{background:#e8e8e8;border-color:var(--ff-blue-deep)}.fi-scan svg{color:var(--ff-blue-deep)}.fi-listening{background:var(--ff-pink)!important;border-color:var(--ff-pink)!important;animation:pulse-mic 1s infinite}.fi-listening svg{color:#fff!important}@keyframes pulse-mic{0%,to{opacity:1}50%{opacity:.6}}.scan-msg{font-size:.75rem;color:var(--ff-blue);margin-top:.25rem;font-weight:600}.scanner-overlay{position:fixed;inset:0;background:#000000b3;z-index:100;display:flex;align-items:center;justify-content:center}.scanner-box{background:var(--ff-card);border-radius:14px;padding:1.25rem;width:340px;max-width:90vw}.scanner-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.scanner-head span{font-size:1rem;font-weight:700;color:var(--ff-text)}.scanner-head button{background:none;border:none;font-size:1.4rem;color:var(--ff-text-muted);cursor:pointer;padding:0;line-height:1}.scanner-head button:hover{color:var(--ff-pink)}#barcode-reader{border-radius:8px;overflow:hidden}#barcode-reader video{border-radius:8px}.scanner-hint{font-size:.75rem;color:var(--ff-text-muted);text-align:center;margin-top:.5rem}.scanner-error{text-align:center;margin-top:.5rem}.scanner-retry{margin-top:.5rem;padding:.4rem 1rem;background:var(--ff-blue-deep, #043bb1);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit}.scanner-retry:hover{background:var(--ff-blue, #1e8ad3)}.ent-list{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.5rem;max-height:200px;overflow-y:auto}.ent{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:#f0f0f0;border-radius:8px;transition:background .15s}.ent:hover{background:#e8e8e8}.ent-info{flex:1;min-width:0}.ent-n{font-size:.8rem;color:var(--ff-text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ent-detail{display:flex;gap:.5rem;align-items:center;margin-top:.15rem}.ent-cal{font-size:.7rem;font-weight:700;color:var(--ff-blue)}.ent-m{font-size:.65rem;color:#555;font-family:monospace}.ent-bar{display:flex;height:3px;border-radius:2px;overflow:hidden;margin-top:.25rem;gap:1px}.ent-bar-f{background:var(--ff-pink)}.ent-bar-p{background:var(--ff-blue-deep)}.ent-bar-c{background:var(--ff-green)}.ent button{background:none;border:none;color:#666;cursor:pointer;font-size:1.1rem;padding:.5rem;font-family:inherit;transition:color .15s;flex-shrink:0;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.ent button:hover{color:var(--ff-pink)}.ent-editing{background:var(--ff-bg);border-radius:10px;padding:.75rem;border:1px solid var(--ff-blue)}.ent-editing .ent-info{cursor:default}.ent-edit-scales{display:flex;gap:.35rem;margin:.5rem 0}.ent-scale-btn{padding:.25rem .6rem;border-radius:6px;border:1px solid var(--ff-border);background:var(--ff-card);font-size:.7rem;font-weight:700;cursor:pointer;font-family:inherit;color:var(--ff-text);transition:all .15s}.ent-scale-btn:hover,.ent-scale-active{background:var(--ff-blue);color:#fff;border-color:var(--ff-blue)}.ent-edit-fields{display:flex;gap:.5rem;margin:.4rem 0}.ent-edit-fields label{display:flex;align-items:center;gap:.25rem;flex:1}.ent-edit-fields span{font-size:.7rem;font-weight:700}.ent-edit-fields input{width:100%;padding:.3rem .4rem;border:1px solid var(--ff-border);border-radius:6px;font-size:.8rem;font-family:inherit;background:var(--ff-card);color:var(--ff-text)}.ent-edit-preview{font-size:.7rem;color:var(--ff-text-muted);font-weight:600;margin:.25rem 0}.ent-edit-actions{display:flex;gap:.4rem;margin-top:.4rem}.ent-save-btn{padding:.3rem 1rem;border-radius:6px;border:none;background:var(--ff-blue);color:#fff;font-size:.75rem;font-weight:700;cursor:pointer;font-family:inherit}.ent-cancel-btn{padding:.3rem 1rem;border-radius:6px;border:1px solid var(--ff-border);background:var(--ff-card);font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ff-text-muted)}.page-content{max-width:700px}.page-content h2{font-size:1.2rem;font-weight:700;color:var(--ff-text);margin-bottom:.5rem}.page-content h3{font-size:.9rem;font-weight:700;color:var(--ff-blue);margin:1.5rem 0 .75rem}.page-sub{color:var(--ff-text-muted);font-size:.85rem;margin-bottom:1.5rem}.phase-current{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1.25rem;margin-bottom:.5rem}.phase-badge{display:inline-block;padding:.3rem .85rem;border-radius:20px;font-size:.8rem;font-weight:700;color:#fff;margin-bottom:.5rem}.phase-current p{color:#333;font-size:.85rem;line-height:1.5}.phase-table{display:flex;flex-direction:column;gap:.35rem}.phase-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;background:var(--ff-card);border:1px solid var(--ff-border);border-radius:8px;font-size:.8rem}.phase-row.active{border-color:var(--ff-blue-deep);background:#e8f0ff}.phase-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.phase-name{font-weight:700;color:var(--ff-text);min-width:110px}.phase-target{flex:1;color:var(--ff-text-muted)}.phase-carb{color:var(--ff-blue);font-weight:600;white-space:nowrap}.phase-zone-tag{font-size:.7rem;font-weight:600;color:var(--ff-text-muted);margin-left:.25rem}.phase-group-tag{font-size:.8rem;font-weight:700;margin-bottom:.35rem}.zone-table{display:flex;flex-direction:column;gap:0;margin-bottom:1.25rem}.zone-header{display:flex;align-items:center;gap:.75rem;padding:.5rem .85rem;font-size:.7rem;font-weight:700;color:var(--ff-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--ff-border)}.zone-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .85rem;font-size:.8rem;border-bottom:1px solid var(--ff-border);background:var(--ff-card)}.zone-row.active{background:#e8f0ff;border-left:3px solid var(--ff-blue-deep)}.zone-col-zone{min-width:70px;font-weight:700;display:flex;align-items:center;gap:.5rem}.zone-col-name{min-width:100px;font-weight:600;color:var(--ff-text)}.zone-col-hr{flex:1;color:var(--ff-text-muted)}.zone-col-rpe{min-width:50px;text-align:center;color:var(--ff-text-muted)}.zone-col-group{min-width:50px;font-weight:700;font-size:.7rem;text-align:center;padding:.15rem .5rem;border-radius:10px}.zone-col-group[data-group=LIT]{background:#d4f5d4;color:#1a7a1a}.zone-col-group[data-group=MIT]{background:#fff3cd;color:#860}.zone-col-group[data-group=HIT]{background:#ffd4d4;color:#a01030}.sf-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:1100px){.sf-columns{grid-template-columns:1fr}}.sf-col h3{margin-top:0}.sf-attribution{font-size:.75rem;color:var(--ff-text-muted);font-style:italic;margin:-.5rem 0 .75rem}.friel-current{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1rem;margin-bottom:.75rem}.friel-weeks{font-size:.75rem;color:var(--ff-text-muted);font-weight:600;margin-left:.5rem}.friel-desc{font-size:.85rem;color:var(--ff-text);margin:.5rem 0 .25rem}.friel-focus{font-size:.8rem;color:var(--ff-text-muted);line-height:1.45}.friel-phases{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1rem}.friel-phase-btn{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;background:var(--ff-card);border:1px solid var(--ff-border);border-radius:8px;font-size:.8rem;cursor:pointer;font-family:inherit;transition:all .15s;text-align:left}.friel-phase-btn:hover{background:#f0f0f0}.friel-phase-btn.active{border-color:var(--ff-blue-deep);background:#e8f0ff}.friel-phase-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.friel-phase-label{font-weight:700;color:var(--ff-text);min-width:90px}.friel-phase-weeks{color:var(--ff-text-muted);font-size:.75rem}.friel-principles{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1rem}.friel-principles h4{font-size:.85rem;font-weight:700;color:var(--ff-text);margin:0 0 .5rem}.friel-principles ul{margin:0;padding-left:1.1rem}.friel-principles li{font-size:.8rem;color:var(--ff-text-muted);line-height:1.5;margin-bottom:.4rem}.friel-principles li strong{color:var(--ff-text)}.friel-auto-tag{font-size:.7rem;font-weight:600;color:var(--ff-blue);margin-left:.5rem}.friel-auto-note{font-size:.7rem;color:var(--ff-text-muted);font-style:italic;margin:.25rem 0 .75rem}.friel-section-title{font-size:.85rem;font-weight:700;color:var(--ff-text);margin:.75rem 0 .5rem}.race-form{display:flex;gap:.4rem;margin-bottom:.5rem;flex-wrap:wrap}.race-input{flex:1;min-width:100px;padding:.4rem .6rem;border:1px solid var(--ff-border);border-radius:6px;font-size:.8rem;font-family:inherit;background:var(--ff-card);color:var(--ff-text)}.race-date{max-width:150px}.race-select{width:50px;padding:.4rem;border:1px solid var(--ff-border);border-radius:6px;font-size:.8rem;font-family:inherit;font-weight:700;background:var(--ff-card);color:var(--ff-text)}.race-add-btn{padding:.4rem .75rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit}.race-add-btn:hover{opacity:.9}.race-legend{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.race-legend-item{display:flex;align-items:center;gap:.4rem;font-size:.7rem;color:var(--ff-text-muted)}.race-pri-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:.7rem;font-weight:800;color:#fff;flex-shrink:0}.race-pri-badge[data-pri=A]{background:#800030}.race-pri-badge[data-pri=B]{background:#e85040}.race-pri-badge[data-pri=C]{background:#e8c010;color:#333}.race-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.race-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:var(--ff-card);border:1px solid var(--ff-border);border-radius:8px;font-size:.8rem}.race-item-name{font-weight:700;color:var(--ff-text);flex:1}.race-item-date{color:var(--ff-text-muted);font-size:.75rem}.race-item-countdown{font-weight:700;color:var(--ff-blue);font-size:.75rem;min-width:50px;text-align:right}.race-remove{background:none;border:none;color:#c00;font-size:1.1rem;cursor:pointer;padding:.5rem;line-height:1;font-weight:700;min-height:44px;min-width:44px}.race-remove:hover{color:red}.idea-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.idea{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:10px;padding:1rem}.idea h4{font-size:.8rem;color:var(--ff-blue);margin-bottom:.35rem;font-weight:700}.idea p{font-size:.8rem;color:#333;line-height:1.45}.meal-plan-grid{display:flex;flex-direction:column;gap:.75rem}.meal-plan-card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1rem 1.25rem}.mp-head{margin-bottom:.65rem}.mp-head-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.15rem}.mp-head h3{font-size:1rem;font-weight:700;color:var(--ff-text)}.mp-target{font-size:.7rem;color:var(--ff-blue);font-family:monospace;font-weight:600}.mp-swap-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:6px;border:1px solid var(--ff-border);background:var(--ff-card);font-size:.7rem;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ff-text-muted);transition:all .15s;flex-shrink:0}.mp-swap-btn:hover{background:var(--ff-blue);color:#fff;border-color:var(--ff-blue)}.mp-foods{display:flex;flex-direction:column;gap:.2rem}.mp-food{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid #e8e8e8}.mp-food:last-child{border-bottom:none}.mp-food-name{font-size:.8rem;color:var(--ff-text)}.mp-food-macros{font-size:.7rem;color:var(--ff-text-muted);font-family:monospace;white-space:nowrap;margin-left:.5rem}.mp-totals{font-size:.75rem;color:var(--ff-blue-deep);font-family:monospace;font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #cccccc}.mp-note{margin-top:1rem;padding:.75rem 1rem;background:var(--ff-card);border:1px solid var(--ff-border);border-radius:10px;font-size:.8rem;color:#333;line-height:1.5}.mp-note strong{color:var(--ff-blue-deep)}.conn-list{display:flex;flex-direction:column;gap:.5rem}.conn{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--ff-card);border:1px solid var(--ff-border);border-radius:10px}.conn-info strong{display:block;font-size:.9rem;color:var(--ff-text)}.conn-info span{font-size:.75rem;color:var(--ff-text-muted)}.conn-status{font-size:.75rem;font-weight:600;color:#555}.conn-status.on{color:var(--ff-green)}.test-conn{display:flex;align-items:center;gap:.75rem;margin:.5rem 0;flex-wrap:wrap}.test-conn-btn{padding:.4rem 1rem;border-radius:8px;border:1px solid var(--ff-blue);background:transparent;color:var(--ff-blue);font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}.test-conn-btn:hover{background:var(--ff-blue);color:#fff}.test-conn-btn:disabled{opacity:.5;cursor:default}.test-conn-ok{font-size:.8rem;font-weight:600;color:var(--ff-green)}.test-conn-err{font-size:.8rem;font-weight:600;color:#e85040}.settings-card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1.25rem;margin-bottom:.75rem}.settings-card h3{font-size:.9rem;font-weight:700;color:var(--ff-blue-deep);margin-bottom:.75rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.sett-field{display:flex;flex-direction:column;gap:.25rem}.sett-field span{font-size:.75rem;font-weight:600;color:var(--ff-text-muted)}.sett-field input{background:#f0f0f0;border:1px solid var(--ff-border);border-radius:6px;padding:.5rem .6rem;color:var(--ff-text);font-size:.85rem;font-family:inherit;outline:none;transition:border-color .15s}.sett-field input:focus,.sett-field select:focus{border-color:var(--ff-blue-deep)}.sett-field select{background:#f0f0f0;border:1px solid var(--ff-border);border-radius:6px;padding:.5rem .6rem;color:var(--ff-text);font-size:.85rem;font-family:inherit;outline:none;transition:border-color .15s;cursor:pointer}.sett-goal-info{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #dddddd}.sett-goal-info p{font-size:.8rem;color:#333;margin-top:.5rem}.sett-goal-info strong{color:var(--ff-text)}.sett-badge{display:inline-block;padding:.3rem .75rem;border-radius:20px;font-size:.75rem;font-weight:700}.sett-badge.maintain{background:#e8f0ff;color:var(--ff-blue-deep)}.sett-badge.cut{background:#ffe8f3;color:var(--ff-pink)}.sett-badge.gain{background:#e8ffe8;color:var(--ff-green)}.sett-save{display:block;width:100%;padding:.75rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;margin-bottom:.75rem}.sett-save:hover{background:var(--ff-blue)}.pie-section{display:flex;gap:2rem;justify-content:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0}.pie-group{display:flex;flex-direction:column;align-items:center;gap:.4rem}.pie-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-text-muted)}.pie-svg{width:90px;height:90px}.pie-legend{display:flex;gap:.6rem;font-size:.65rem;font-weight:600;color:var(--ff-text-muted)}.pie-legend span{display:flex;align-items:center;gap:.2rem}.macro-pie{display:flex;gap:1.5rem;justify-content:center;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--ff-border)}.macro-pie-group{display:flex;flex-direction:column;align-items:center;gap:.3rem}.macro-pie-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-text-muted)}.macro-pie-svg{width:80px;height:80px}.macro-pie-legend{display:flex;gap:.6rem;font-size:.65rem;font-weight:600}.dark .macro-pie{border-top-color:#3a3a5a}.dark .macro-pie-label{color:#888}.garmin-metrics{margin-bottom:1rem}.garmin-metrics-note{font-size:.8rem;color:var(--ff-text-muted);padding:.6rem .75rem;background:var(--ff-bg);border-radius:8px;margin-bottom:.75rem;line-height:1.4}.garmin-metrics-note strong{color:var(--ff-blue)}.dark .garmin-metrics-note{background:#1a1a2e}.garmin-metrics-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-text-muted);margin-bottom:.6rem}.garmin-no-data{font-size:.75rem;color:#666;margin:0 0 .5rem;font-style:italic}.garmin-metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.garmin-metric{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:var(--ff-bg);border:1px solid var(--ff-border);border-radius:10px;padding:.6rem .4rem;text-align:center;transition:border-color .15s}.garmin-metric:hover{border-color:var(--ff-blue)}.garmin-metric-icon{font-size:1.2rem;line-height:1}.garmin-metric-value{font-size:.95rem;font-weight:700;color:var(--ff-text);line-height:1.2}.garmin-metric-value small{font-size:.65rem;font-weight:500;color:var(--ff-text-muted)}.garmin-metric-label{font-size:.6rem;font-weight:600;color:var(--ff-text-muted);text-transform:uppercase;letter-spacing:.03em}.dark .garmin-metric{background:#1a1a2e;border-color:#3a3a5a}.dark .garmin-metric:hover{border-color:#1e8ad3}.mood-picker{display:flex;justify-content:space-around;margin-bottom:.75rem}.mood-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:none;border:2px solid transparent;border-radius:12px;padding:.5rem .75rem;cursor:pointer;transition:all .15s;font-family:inherit}.mood-btn:hover{background:var(--ff-bg)}.mood-btn.active{border-color:var(--ff-blue);background:#e8f0ff}.mood-face{font-size:1.8rem;line-height:1}.mood-label{font-size:.65rem;font-weight:600;color:var(--ff-text-muted)}.daily-notes{width:100%;min-height:80px;padding:.75rem;border:1px solid #ccc;border-radius:10px;font-family:inherit;font-size:.85rem;resize:vertical;background:var(--ff-card);color:#000;transition:border-color .15s}.daily-notes:focus{outline:none;border-color:var(--ff-blue)}.mood-save-btn{margin-top:.5rem;padding:.5rem 1.5rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;float:right}.mood-save-btn:hover{background:var(--ff-blue)}.dark .mood-save-btn{background:#1e8ad3}.dark .mood-save-btn:hover{background:#4da6e8}.recipe-builder{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:14px;padding:1.25rem;margin-bottom:1.25rem}.recipe-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.recipe-card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.recipe-head{display:flex;flex-direction:column;gap:.15rem}.recipe-head strong{font-size:.95rem;color:#000}.recipe-macros{font-size:.75rem;color:var(--ff-text-muted);font-weight:600}.recipe-ingredients{font-size:.75rem;color:#555;line-height:1.5}.recipe-actions{display:flex;gap:.5rem;align-items:center;margin-top:.25rem}.recipe-meal-select{flex:1;padding:.4rem;border:1px solid var(--ff-border);border-radius:8px;font-family:inherit;font-size:.8rem;background:var(--ff-card);cursor:pointer}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--ff-card);border-top:1px solid var(--ff-border);padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom,0px))}.mobile-nav nav{display:flex;justify-content:space-between;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 .25rem}.mobile-nav nav::-webkit-scrollbar{display:none}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:none;border:none;color:var(--ff-text-muted);font-size:.55rem;font-weight:600;cursor:pointer;font-family:inherit;padding:.3rem .35rem;transition:color .15s;flex-shrink:0}.mobile-nav button svg{width:20px;height:20px}.mobile-nav button.active{color:var(--ff-blue)}.toast-container{position:fixed;top:1rem;right:1rem;z-index:200;display:flex;flex-direction:column;gap:.5rem}.toast{background:#1a1a2e;color:#fff;padding:.75rem 1.25rem;border-radius:10px;font-size:.85rem;font-weight:600;box-shadow:0 4px 16px #0003;animation:toast-in .3s ease,toast-out .3s ease 3.7s forwards;max-width:340px}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0}}.meal-empty{color:#666;font-size:.8rem;font-style:italic;padding:.5rem 0}.copy-meals-row{margin-bottom:.75rem}.copy-meals-btn{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:8px;padding:.5rem 1rem;font-size:.8rem;font-weight:600;color:var(--ff-blue);cursor:pointer;font-family:inherit;transition:all .15s}.copy-meals-btn:hover{background:#e8f0ff;border-color:var(--ff-blue)}.use-plan-btn{display:block;width:100%;padding:.75rem;margin-top:1rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.use-plan-btn:hover{background:var(--ff-blue)}.use-plan-primary{background:#10bc10;font-size:1rem;padding:.85rem;letter-spacing:.01em}.use-plan-primary:hover{background:#0ea30e}.swap-picker{background:var(--ff-card);border:2px solid var(--ff-blue);border-radius:10px;padding:.75rem;margin:.5rem 0}.swap-picker-label{font-size:.75rem;font-weight:700;color:var(--ff-text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.03em}.swap-option{display:block;width:100%;text-align:left;padding:.6rem .75rem;margin-bottom:.4rem;border:1px solid var(--ff-border);border-radius:8px;background:var(--ff-bg);cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}.swap-option:hover{border-color:var(--ff-blue);background:color-mix(in srgb,var(--ff-blue) 8%,var(--ff-bg))}.swap-option strong{display:block;font-size:.85rem;color:var(--ff-text);margin-bottom:2px}.swap-option-foods{display:block;font-size:.72rem;color:var(--ff-text-muted);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swap-option-macros{display:block;font-size:.68rem;color:var(--ff-blue);font-weight:600}.swap-cancel{display:block;width:100%;padding:.4rem;margin-top:.25rem;background:none;border:none;color:var(--ff-text-muted);font-size:.78rem;cursor:pointer;font-family:inherit}.swap-cancel:hover{color:var(--ff-text)}.mp-actions{display:flex;gap:.75rem;margin-top:1rem}.mp-actions .use-plan-btn{margin-top:0;flex:1}.shopping-list-btn{flex:1;padding:.75rem;background:#fff;color:var(--ff-blue-deep);border:2px solid var(--ff-blue-deep);border-radius:10px;font-size:.9rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}.shopping-list-btn:hover{background:var(--ff-blue-deep);color:#fff}.dark .shopping-list-btn{background:transparent;color:#1e8ad3;border-color:#1e8ad3}.dark .shopping-list-btn:hover{background:#1e8ad3;color:#fff}@media(max-width:600px){.mp-actions{flex-direction:column}}.mp-tabs{display:flex;gap:0;margin-bottom:1.25rem;border-bottom:2px solid var(--ff-border)}.mp-tab{flex:1;padding:.65rem .5rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.9rem;font-weight:600;color:var(--ff-text-muted);cursor:pointer;font-family:inherit;transition:all .15s}.mp-tab:hover{color:var(--ff-text)}.mp-tab.active{border-bottom-color:var(--ff-blue-deep);color:var(--ff-blue-deep);font-weight:700}.dark .mp-tabs{border-bottom-color:#2a2a4a}.dark .mp-tab{color:#888}.dark .mp-tab:hover{color:#ccc}.dark .mp-tab.active{border-bottom-color:#1e8ad3;color:#1e8ad3}.mp-weekly-days{display:flex;flex-direction:column;gap:.5rem}.mp-day-section{border:1px solid var(--ff-border);border-radius:12px;overflow:hidden;background:var(--ff-card)}.mp-day-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;color:var(--ff-text)}.mp-day-header:hover{background:#00000005}.mp-day-header.expanded{border-bottom:1px solid var(--ff-border)}.mp-day-header-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.mp-day-name{font-weight:700;font-size:.9rem;white-space:nowrap}.mp-day-date{font-size:.75rem;color:var(--ff-text-muted);white-space:nowrap}.mp-day-preview{font-size:.7rem;color:var(--ff-text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-day-meals{padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.mp-use-day-btn{width:100%;padding:.5rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.mp-use-day-btn:hover{background:var(--ff-blue)}.dark .mp-day-section{background:#16162a;border-color:#2a2a4a}.dark .mp-day-header{color:#eee}.dark .mp-day-header:hover{background:#ffffff08}.dark .mp-day-header.expanded{border-bottom-color:#2a2a4a}.mp-card-actions{display:flex;gap:.35rem}.mp-action-btn{display:flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border:1px solid var(--ff-border);border-radius:6px;background:transparent;font-size:.7rem;font-weight:600;color:var(--ff-text-muted);cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}.mp-action-btn:hover{background:var(--ff-blue-deep);color:#fff;border-color:var(--ff-blue-deep)}.mp-action-btn:hover svg{stroke:#fff}.dark .mp-action-btn{border-color:#444;color:#666}.dark .mp-action-btn:hover{background:#1e8ad3;border-color:#1e8ad3;color:#fff}.mp-ai-card{transition:box-shadow .2s}.mp-customize{padding:.6rem .75rem;background:#f8f9fb;border-top:1px dashed var(--ff-border)}.mp-customize-row{display:flex;gap:.5rem}.mp-customize-input{flex:1;padding:.45rem .6rem;border:1px solid var(--ff-border);border-radius:8px;font-size:.8rem;font-family:inherit;background:#fff;color:var(--ff-text)}.mp-customize-input::placeholder{color:var(--ff-text-light)}.mp-customize-btn{padding:.45rem 1rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap}.mp-customize-btn:disabled{opacity:.5;cursor:not-allowed}.dark .mp-customize{background:#1a1a2e;border-top-color:#2a2a4a}.dark .mp-customize-input{background:#0d0d1a;border-color:#333;color:#eee}.mp-recipe{padding:.75rem 1rem;background:#f8f9fb;border-top:1px dashed var(--ff-border)}.mp-recipe h4{font-size:.9rem;margin-bottom:.4rem;color:var(--ff-blue-deep)}.mp-recipe-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--ff-text-muted);margin-bottom:.6rem}.mp-recipe-section{margin-bottom:.6rem}.mp-recipe-section strong{font-size:.8rem;display:block;margin-bottom:.25rem}.mp-recipe-section ul,.mp-recipe-section ol{padding-left:1.25rem;font-size:.8rem;line-height:1.6}.mp-recipe-section li{margin-bottom:.15rem}.mp-recipe-tip{font-size:.75rem;color:var(--ff-text-muted);font-style:italic;margin-top:.4rem}.mp-recipe-macros{font-size:.75rem;font-weight:600;color:var(--ff-blue-deep);margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--ff-border)}.mp-recipe-loading{font-size:.8rem;color:var(--ff-text-muted);padding:.5rem 0}.dark .mp-recipe{background:#1a1a2e;border-top-color:#2a2a4a}.dark .mp-recipe h4{color:#1e8ad3}.dark .mp-recipe-macros{border-top-color:#2a2a4a;color:#1e8ad3}.mp-weekly-skeleton{display:flex;flex-direction:column;gap:.75rem}.mp-skeleton{background:linear-gradient(90deg,#e8e8e8 25%,#f0f0f0,#e8e8e8 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:12px;height:60px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.dark .mp-skeleton{background:linear-gradient(90deg,#1a1a2e 25%,#2a2a4a,#1a1a2e 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.mp-empty-state{text-align:center;padding:3rem 1.5rem;color:var(--ff-text-muted)}.mp-empty-state svg{margin-bottom:.75rem;width:32px;height:32px;stroke:var(--ff-blue)}.mp-empty-state p{font-size:.9rem;font-weight:600;margin:0}.mp-empty-sub{font-size:.75rem!important;font-weight:400!important;color:var(--ff-text-light);margin-top:.25rem!important}.dark .mp-empty-state{color:#888}@media(max-width:600px){.mp-day-preview{display:none}.mp-card-actions{flex-wrap:wrap}.mp-head-top{flex-direction:column;align-items:flex-start;gap:.4rem}.mp-ai-card .mp-head-top{flex-direction:column}}.ai-mood-card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1rem}.ai-mood-header{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:700;color:var(--ff-blue-deep);margin-bottom:.75rem}.ai-mood-header svg{color:var(--ff-blue)}.ai-mood-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.ai-mood-chip{padding:.35rem .75rem;border-radius:20px;border:1px solid var(--ff-border);background:#f5f5f5;color:var(--ff-text);font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.ai-mood-chip:hover{background:var(--ff-blue);color:#fff;border-color:var(--ff-blue)}.ai-mood-chip.active{background:var(--ff-blue-deep);color:#fff;border-color:var(--ff-blue-deep)}.ai-mood-chip:disabled{opacity:.5;cursor:not-allowed}.ai-mood-input-row{display:flex;gap:.5rem}.ai-mood-input{flex:1;padding:.55rem .75rem;border:1px solid var(--ff-border);border-radius:8px;font-size:.8rem;font-family:inherit;color:var(--ff-text);background:#fff}.ai-mood-input:focus{outline:none;border-color:var(--ff-blue)}.ai-mood-btn{padding:.55rem 1.25rem;border:none;border-radius:8px;background:var(--ff-blue-deep);color:#fff;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;white-space:nowrap}.ai-mood-btn:hover{background:var(--ff-blue)}.ai-mood-btn:disabled{opacity:.6;cursor:not-allowed}.ai-mood-error{color:#d32f2f;font-size:.75rem;margin-top:.5rem}.ai-mood-label{font-size:.7rem;color:var(--ff-text-muted);margin-top:.5rem}.ai-mood-label strong{color:var(--ff-blue-deep)}.dark .ai-mood-card{background:var(--ff-card)}.dark .ai-mood-chip{background:#2a2a4a;color:#ccc;border-color:#3a3a5a}.dark .ai-mood-chip:hover{background:var(--ff-blue);color:#fff}.dark .ai-mood-chip.active{background:var(--ff-blue-deep);color:#fff}.dark .ai-mood-input{background:#1a1a2e;color:#e0e0e0;border-color:#3a3a5a}.dark .ai-mood-input:focus{border-color:var(--ff-blue)}.weekly-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.weekly-header h2{margin-bottom:0}.export-btn{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:8px;padding:.45rem 1rem;font-size:.8rem;font-weight:600;color:var(--ff-blue);cursor:pointer;font-family:inherit;transition:all .15s}.export-btn:hover{background:#e8f0ff;border-color:var(--ff-blue)}.ws-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin-bottom:1.25rem}@media(max-width:1100px){.ws-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.ws-cards{grid-template-columns:1fr 1fr}}.ws-card{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:12px;padding:1rem;text-align:center}.ws-card h3{font-size:.75rem;font-weight:700;color:var(--ff-text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 .5rem;display:flex;align-items:center;justify-content:center;gap:.35rem}.ws-trend{font-size:.9rem;font-weight:800;line-height:1}.ws-compliance-ring{position:relative;display:inline-block;margin-bottom:.35rem}.ws-compliance-pct{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.1rem;font-weight:800}.ws-compliance-detail{display:flex;justify-content:center;gap:.6rem;font-size:.7rem;font-weight:600}.ws-pie-wrap{margin-bottom:.35rem}.ws-pie-legend{display:flex;flex-direction:column;gap:.15rem;font-size:.7rem;color:var(--ff-text-muted)}.ws-pie-legend span{display:flex;align-items:center;gap:.3rem;justify-content:center}.ws-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.ws-avg-cal{font-size:.7rem;color:var(--ff-text-muted);margin-top:.35rem}.ws-mood-top{font-size:1.3rem;font-weight:800;color:var(--ff-text)}.ws-mood-sub{font-size:.7rem;color:var(--ff-text-muted);margin-bottom:.5rem}.ws-mood-bars{display:flex;flex-direction:column;gap:.2rem}.ws-mood-row{display:flex;align-items:center;gap:.35rem;font-size:.65rem}.ws-mood-label{min-width:38px;text-align:right;color:var(--ff-text-muted)}.ws-mood-bar-bg{flex:1;height:6px;background:#e8e8e8;border-radius:3px;overflow:hidden}.ws-mood-bar{height:100%;background:var(--ff-blue);border-radius:3px}.ws-mood-count{min-width:14px;color:var(--ff-text-muted)}.ws-sleep-big{font-size:1.3rem;font-weight:800;color:var(--ff-text)}.ws-sleep-sub{font-size:.7rem;color:var(--ff-text-muted);margin-bottom:.25rem}.ws-sleep-score{font-size:.8rem;color:var(--ff-blue)}.ws-train-detail{font-size:.7rem;color:var(--ff-text-muted);margin-top:.25rem}.ws-empty{font-size:.8rem;color:var(--ff-text-muted);padding:1rem 0}.weekly-grid{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:14px;overflow:hidden}.weekly-row{display:grid;grid-template-columns:70px 1fr 1fr 1fr 1fr 70px;gap:.5rem;padding:.65rem 1rem;border-bottom:1px solid #eee;align-items:center;transition:background .1s}.weekly-row:hover{background:#f5f7fa}.weekly-row:last-child{border-bottom:none}.weekly-row-header{font-size:.65rem;font-weight:700;text-transform:uppercase;color:#555;background:#f5f5f7}.weekly-row-header:hover{background:#f5f5f7}.weekly-today{background:#e8f0ff}.weekly-today:hover{background:#dce8fa}.weekly-day{display:flex;flex-direction:column;align-items:center}.weekly-day strong{font-size:.8rem;color:#000}.weekly-date-num{font-size:.65rem;color:#555}.weekly-nums{font-size:.65rem;color:#555;font-family:monospace}.weight-log-input{display:flex;gap:.5rem;margin-bottom:.75rem}.weight-log-input input{flex:1;background:#f0f0f0;border:1px solid #888;border-radius:6px;padding:.5rem .6rem;font-size:.85rem;font-family:inherit;outline:none}.weight-log-input input:focus{border-color:var(--ff-blue-deep)}.weight-log-btn{background:var(--ff-blue-deep);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.weight-log-btn:hover{background:var(--ff-blue)}.weight-chart{margin-top:.5rem}.weight-chart-labels{display:flex;flex-direction:column;justify-content:space-between;font-size:.65rem;color:#555;height:100px;float:left;width:50px;padding-right:.5rem;text-align:right}.weight-chart-area{margin-left:55px}.weight-svg{width:100%;height:100px}.weight-chart-dates{display:flex;justify-content:space-around;font-size:.55rem;color:#666;margin-top:.25rem}.cards-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}@media(max-width:960px){.cards-row-2{grid-template-columns:1fr}}.water-display{text-align:center;margin-bottom:.5rem}.water-amount{font-size:2rem;font-weight:800;color:var(--ff-blue)}.water-unit{font-size:.85rem;color:#555;margin-left:.25rem}.water-btns{display:flex;gap:.35rem;flex-wrap:wrap}.water-btn{flex:1;min-width:50px;padding:.45rem .3rem;background:#e8f0ff;border:1px solid #c0d4f0;border-radius:6px;color:var(--ff-blue-deep);font-size:.75rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}.water-btn:hover{background:var(--ff-blue);color:#fff;border-color:var(--ff-blue)}.water-undo{background:#f5f5f7;border-color:#ccc;color:#555}.water-undo:hover{background:var(--ff-pink);color:#fff;border-color:var(--ff-pink)}.supp-tags{display:flex;flex-wrap:wrap;gap:.3rem}.supp-tag{padding:.35rem .65rem;background:#f5f5f7;border:1px solid #ddd;border-radius:20px;font-size:.7rem;font-weight:600;color:#555;cursor:pointer;font-family:inherit;transition:all .15s}.supp-tag:hover{border-color:var(--ff-blue);color:var(--ff-blue)}.supp-tag.taken{background:#e8f0ff;border-color:var(--ff-blue);color:var(--ff-blue-deep)}.supp-count{font-size:.7rem;color:var(--ff-green);font-weight:600;margin-top:.5rem}.load-chart-section{margin-bottom:1rem}.load-chart-card{background:var(--ff-card);border:1px solid #888;border-radius:12px;padding:1rem}.load-legend{display:flex;gap:1rem;font-size:.7rem;color:#555;margin-bottom:.5rem;flex-wrap:wrap}.load-legend span{display:flex;align-items:center;gap:.3rem}.load-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.load-svg{width:100%;height:120px}.load-dates{display:flex;justify-content:space-between;font-size:.6rem;color:#666;margin-top:.25rem;padding:0 10px}.cloud-sync,.cloud-auth{display:flex;flex-direction:column;gap:.5rem}.cloud-user{font-size:.8rem;color:#333}.cloud-user strong{color:var(--ff-blue-deep)}.cloud-desc{font-size:.8rem;color:#555;margin-bottom:.25rem}.cloud-input{background:#f0f0f0;border:1px solid #888;border-radius:6px;padding:.5rem .6rem;font-size:.85rem;font-family:inherit;outline:none;width:100%;box-sizing:border-box}.cloud-input:focus{border-color:var(--ff-blue-deep)}.cloud-btns{display:flex;gap:.5rem}.cloud-btn{flex:1;padding:.55rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.cloud-btn:hover{background:var(--ff-blue)}.cloud-btn:disabled{opacity:.6;cursor:not-allowed}.cloud-restore{background:var(--ff-card);color:var(--ff-blue-deep);border:1px solid var(--ff-blue-deep)}.cloud-restore:hover{background:#e8f0ff}.cloud-signout{background:none;border:none;color:#555;font-size:.75rem;cursor:pointer;font-family:inherit;text-align:left;padding:0;margin-top:.25rem}.cloud-signout:hover{color:var(--ff-pink)}.sett-signout{display:block;width:100%;max-width:400px;margin:1.5rem auto 0;padding:.65rem 1.2rem;background:none;border:1px solid var(--ff-blue-deep);color:var(--ff-blue-deep);border-radius:8px;font-size:.9rem;font-family:inherit;cursor:pointer;font-weight:600;transition:background .2s,color .2s}.sett-signout:hover{background:var(--ff-blue-deep);color:#fff}.sett-footer-links{display:flex;gap:1.5rem;justify-content:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--ff-border)}.sett-footer-links button{background:none;border:none;color:var(--ff-text-muted);font-size:.8rem;font-family:inherit;cursor:pointer;padding:.25rem 0;transition:color .15s}.sett-footer-links button:hover{color:var(--ff-blue)}.cloud-toggle{background:none;border:none;color:var(--ff-blue);font-size:.75rem;cursor:pointer;font-family:inherit;text-align:center;padding:0}.cloud-toggle:hover{text-decoration:underline}.streak-badge{background:linear-gradient(135deg,#fe00a4,#ff6b35);color:#fff;padding:.25rem .65rem;border-radius:20px;font-size:.7rem;font-weight:700;white-space:nowrap}.milestone-overlay{position:fixed;inset:0;z-index:9999;background:#0009;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.milestone-card{background:var(--ff-card, #fff);border-radius:20px;padding:2rem 2.5rem;text-align:center;max-width:340px;width:90%;position:relative;overflow:hidden;animation:popIn .35s cubic-bezier(.34,1.56,.64,1)}.milestone-badge{font-size:4rem;display:block;margin-bottom:.5rem}.milestone-title{font-size:1.3rem;font-weight:800;color:var(--ff-text);margin-bottom:.25rem}.milestone-msg{font-size:.85rem;color:var(--ff-text-muted);margin-bottom:.75rem;line-height:1.4}.milestone-streak{font-size:.75rem;font-weight:700;color:#ff6b35;margin-bottom:1rem}.milestone-dismiss{background:linear-gradient(135deg,#fe00a4,#ff6b35);color:#fff;border:none;padding:.65rem 2rem;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit}.milestone-dismiss:hover{opacity:.9}.milestone-confetti{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 20%,#ff6b35 1px,transparent 1px),radial-gradient(circle at 80% 15%,#fe00a4 1px,transparent 1px),radial-gradient(circle at 50% 10%,#1e8ad3 1.5px,transparent 1.5px),radial-gradient(circle at 30% 85%,#10bc10 1px,transparent 1px),radial-gradient(circle at 70% 80%,#ff6b35 1.5px,transparent 1.5px),radial-gradient(circle at 15% 60%,#fe00a4 1px,transparent 1px),radial-gradient(circle at 85% 50%,#1e8ad3 1px,transparent 1px);animation:confettiFade 2s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes confettiFade{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.dark-toggle{background:none;border:1px solid #888;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:all .15s}.dark-toggle:hover{border-color:var(--ff-blue)}.toast-undo{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:4px;padding:.15rem .5rem;margin-left:.75rem;font-size:.75rem;font-weight:700;cursor:pointer;font-family:inherit}.toast-undo:hover{background:#ffffff26}.dark .sidebar{background:#1a1a2e;border-right-color:#2a2a4a}.dark .sb-name{color:#e0e0e0}.dark .sb-nav button{color:#666}.dark .sb-nav button:hover{color:#1e8ad3;background:#2a2a4a}.dark .sb-nav button.active{color:#1e8ad3;background:#2a2a4a;border-left-color:#1e8ad3}.dark .main{background:#0f0f1a}.dark .topbar-greet h1{color:#e0e0e0}.dark .topbar-datestr{color:#666}.dark .topbar-date button{background:#1a1a2e;border-color:#2a2a4a;color:#1e8ad3}.dark .topbar-date button:hover{background:#2a2a4a;color:#e0e0e0}.dark .card,.dark .goals-section,.dark .meal-card,.dark .settings-card,.dark .phase-current,.dark .phase-row,.dark .meal-plan-card,.dark .mp-note,.dark .conn,.dark .weekly-grid,.dark .load-chart-card{background:#1a1a2e;border-color:#2a2a4a;color:#e0e0e0}.dark .card h2,.dark .goals-title{color:#4da6e8}.dark .mrow-label,.dark .wo-name{color:#e0e0e0}.dark .mrow-val,.dark .wo-desc,.dark .meal-rec,.dark .mrow-left{color:#888}.dark .mrow-bar{background:#2a2a4a}.dark .card-cal{color:#888;border-top-color:#2a2a4a}.dark .card-cal span,.dark .ring-v{color:#e0e0e0}.dark .ring-max{color:#888}.dark .meal-sum{border-top-color:#2a2a4a}.dark .ent{background:#252540}.dark .ent:hover{background:#2a2a4a}.dark .ent-n{color:#e0e0e0}.dark .ent-cal{color:#4da6e8}.dark .ent-m{color:#888}.dark .ent button{color:#666}.dark .ent button:hover{color:#fe00a4}.dark .meal-head h3{color:#e0e0e0}.dark .meal-count{background:#4da6e8}.dark .meal-head-cal{color:#4da6e8}.dark .meal-chevron{color:#666}.dark .meal-icon{color:#4da6e8}.dark .mrow-pct{color:#888}.dark .mrow-pct.mrow-near{color:#10bc10}.dark .mrow-pct.mrow-over{color:#fe00a4}.dark .fi input{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .fi input::placeholder{color:#666}.dark .fi-unit{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .fi-drop{background:#1a1a2e;border-color:#1e8ad3}.dark .fi-drop button{color:#e0e0e0;border-bottom-color:#2a2a4a}.dark .fi-drop button:hover{background:#252540}.dark .fi-scan{background:#1a1a2e;border-color:#3a3a5a}.dark .fi-scan:hover,.dark .wo{background:#252540}.dark .wo-status-done{background:#1a3a1a;color:#10bc10}.dark .wo-status-extra{background:#3a2a1a;color:#ff9800}.dark .wo-status-plan{background:#1a2a4a;color:#4da6e8}.dark .wo-strava-note{color:#666}.dark .wo-glossary{border-top-color:#2a2a4a}.dark .wo-glossary-toggle{color:#666}.dark .wo-glossary-toggle:hover{color:#4da6e8}.dark .wo-glossary-section h4{color:#4da6e8;border-bottom-color:#2a2a4a}.dark .wo-glossary-body dt{color:#e0e0e0}.dark .wo-glossary-body dd{color:#888}.dark .wo-type,.dark .wo-meta-item{color:#666}.dark .wo-meta-item strong{color:#4da6e8}.dark .wo-stats div{background:#252540}.dark .wo-stats strong,.dark .page-content h2{color:#e0e0e0}.dark .page-sub{color:#888}.dark .phase-current p{color:#ccc}.dark .phase-name{color:#e0e0e0}.dark .phase-target{color:#888}.dark .zone-row{background:#1a1a2e;border-bottom-color:#2a2a4a}.dark .zone-row.active{background:#1a2a4a;border-left-color:#4da6e8}.dark .zone-header{border-bottom-color:#3a3a5a}.dark .zone-col-name{color:#e0e0e0}.dark .zone-col-group[data-group=LIT]{background:#1a3a1a;color:#50d050}.dark .zone-col-group[data-group=MIT]{background:#3a3a1a;color:#e8c010}.dark .zone-col-group[data-group=HIT]{background:#3a1a1a;color:#ff6080}.dark .friel-current{background:#1a1a2e;border-color:#3a3a5a}.dark .friel-phase-btn{background:#1a1a2e;border-color:#3a3a5a;color:#e0e0e0}.dark .friel-phase-btn:hover{background:#252540}.dark .friel-phase-btn.active{background:#1a2a4a;border-color:#4da6e8}.dark .friel-phase-label{color:#e0e0e0}.dark .friel-principles{background:#1a1a2e;border-color:#3a3a5a}.dark .friel-principles li strong{color:#e0e0e0}.dark .race-input,.dark .race-select{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .race-item{background:#1a1a2e;border-color:#3a3a5a}.dark .race-item-name,.dark .mp-head h3,.dark .mp-food-name{color:#e0e0e0}.dark .mp-food-macros{color:#888}.dark .mp-totals{border-top-color:#3a3a5a}.dark .mp-food{border-bottom-color:#2a2a4a}.dark .mp-note{color:#ccc}.dark .sett-field span{color:#666}.dark .sett-field input,.dark .sett-field select{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .conn-info strong{color:#e0e0e0}.dark .conn-info span{color:#888}.dark .cloud-input{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .cloud-user{color:#ccc}.dark .cloud-desc{color:#888}.dark .fuel-rec-macros{background:#252540;border-color:#3a3a5a}.dark .fuel-rec-row{color:#e0e0e0;border-bottom-color:#3a3a5a}.dark .fuel-rec-header{color:#888;border-bottom-color:#3a3a5a}.dark .fuel-rec-total{border-top-color:#3a3a5a}.dark .fuel-r{color:#e0e0e0;border-bottom-color:#2a2a4a}.dark .water-amount{color:#4da6e8}.dark .water-btn{background:#252540;border-color:#3a3a5a;color:#4da6e8}.dark .water-btn:hover{background:#1e8ad3;color:#fff}.dark .water-undo{background:#252540;color:#888}.dark .supp-tag{background:#252540;border-color:#3a3a5a;color:#666}.dark .supp-tag.taken{background:#1a2a4a;border-color:#1e8ad3;color:#4da6e8}.dark .weekly-row-header{background:#252540;color:#888}.dark .weekly-row-header:hover{background:#252540}.dark .weekly-today{background:#1a2a4a}.dark .weekly-today:hover{background:#1a3050}.dark .weekly-row{border-bottom-color:#2a2a4a}.dark .weekly-row:hover{background:#252540}.dark .weekly-day strong{color:#e0e0e0}.dark .weekly-nums{color:#888}.dark .ws-card{background:#1a1a2e;border-color:#3a3a5a}.dark .ws-mood-bar-bg{background:#2a2a4a}.dark .ws-empty{color:#666}.dark .copy-meals-btn{background:#1a1a2e;border-color:#3a3a5a;color:#4da6e8}.dark .copy-meals-btn:hover{background:#252540}.dark .cloud-restore{background:#1a1a2e;color:#4da6e8;border-color:#1e8ad3}.dark .dark-toggle{border-color:#3a3a5a;color:#e0e0e0}.dark .pie-section{border-top-color:#3a3a5a}.dark .pie-label,.dark .pie-legend{color:#888}.dark .mood-btn:hover{background:#252540}.dark .mood-btn.active{border-color:#1e8ad3;background:#1a2a4a}.dark .mood-label{color:#888}.dark .daily-notes{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .recipe-builder,.dark .recipe-card{background:#1a1a2e;border-color:#2a2a4a}.dark .recipe-head strong{color:#e0e0e0}.dark .recipe-macros,.dark .recipe-ingredients{color:#888}.dark .recipe-meal-select{background:#252540;border-color:#3a3a5a;color:#e0e0e0}.dark .mobile-nav{background:#1a1a2e;border-top-color:#2a2a4a}.dark .mobile-nav button{color:#888}.dark .mobile-nav button.active{color:#1e8ad3}.dark .scanner-box{background:#1a1a2e}.dark .scanner-head span{color:#e0e0e0}.dark .meal-empty{color:#666}.ft-empty{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;gap:.4rem;color:#ccc}.ft-empty p{font-size:.95rem;color:#666;margin:0}.ft-empty span{font-size:.75rem;color:#bbb}.ft-form-section{margin-bottom:1rem}.ft-form-section h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-blue);font-weight:700;margin-bottom:.5rem}.ft-feel-picker{display:flex;gap:.4rem;flex-wrap:wrap}.ft-form-actions{display:flex;gap:.5rem;margin-top:.5rem}.ft-form-actions .use-plan-btn{flex:1;margin-top:0}.ft-form-actions .copy-meals-btn{flex:0 0 auto}.fuel-tabs{display:flex;gap:.35rem;margin:.75rem 0 .5rem;flex-wrap:wrap}.fuel-tab{padding:.35rem .75rem;border:1px solid var(--ff-border);border-radius:20px;background:var(--ff-bg);color:var(--ff-text-muted);font-size:.72rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.fuel-tab.active{background:var(--ff-blue-deep);color:#fff;border-color:var(--ff-blue-deep)}.fuel-tab:hover:not(.active){border-color:var(--ff-blue);color:var(--ff-text)}.fuel-sug-list{display:flex;flex-direction:column;gap:.4rem}.fuel-sug-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px dotted var(--ff-border)}.fuel-sug-info{display:flex;flex-direction:column;gap:1px;min-width:0}.fuel-sug-info strong{font-size:.82rem;color:var(--ff-text)}.fuel-sug-amount{font-size:.7rem;color:var(--ff-text-muted)}.fuel-sug-notes{font-size:.68rem;color:var(--ff-text-muted);font-style:italic}.fuel-sug-test{padding:.3rem .7rem;border:1px solid var(--ff-blue);border-radius:6px;background:none;color:var(--ff-blue);font-size:.7rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;align-self:center}.fuel-sug-test:hover{background:var(--ff-blue);color:#fff}.ft-list{display:flex;flex-direction:column;gap:.5rem}.ft-card{background:var(--ff-card);border:1px solid #888;border-radius:12px;border-left:3px solid var(--ff-blue);overflow:hidden}.ft-feel-great{border-left-color:var(--ff-green)}.ft-feel-good{border-left-color:#90c010}.ft-feel-okay{border-left-color:#e8c010}.ft-feel-bad{border-left-color:#e87010}.ft-feel-terrible{border-left-color:var(--ff-pink)}.ft-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;cursor:pointer;user-select:none}.ft-card-main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.ft-card-item{font-size:.9rem;color:#000}.ft-card-brand{font-size:.7rem;color:#555}.ft-card-timing{font-size:.55rem;font-weight:700;text-transform:uppercase;padding:.15rem .4rem;border-radius:4px;background:#e8f0ff;color:var(--ff-blue-deep)}.ft-card-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ft-card-feel{font-size:1.2rem}.ft-card-date{font-size:.65rem;color:#666}.ft-card-body{padding:0 1rem .75rem;animation:fadeSlideIn .2s ease-out}.ft-detail{font-size:.8rem;color:#555;margin-bottom:.25rem}.ft-detail span{color:#666;margin-right:.35rem}.ft-detail strong{color:#000}.ft-metrics{display:flex;gap:.5rem;margin:.5rem 0;flex-wrap:wrap}.ft-metric{flex:1;min-width:80px;display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--ff-bg);border-radius:8px}.ft-metric span{font-size:.55rem;text-transform:uppercase;font-weight:600;color:var(--ff-blue)}.ft-metric strong{font-size:.95rem;color:#000}.ft-feel-row{font-size:.8rem;color:#555;margin:.35rem 0}.ft-feel-label{font-weight:600}.ft-notes{font-size:.75rem;color:#666;background:#f5f5f7;padding:.5rem .65rem;border-radius:6px;margin-top:.35rem;line-height:1.45;white-space:pre-wrap}.dark .ft-empty{color:#3a3a5a}.dark .ft-empty p{color:#666}.dark .ft-empty span{color:#555}.dark .ft-card{background:#1a1a2e;border-color:#2a2a4a}.dark .ft-card-item{color:#e0e0e0}.dark .ft-card-brand{color:#888}.dark .ft-card-timing{background:#1a2a4a;color:#4da6e8}.dark .ft-detail{color:#666}.dark .ft-detail strong{color:#e0e0e0}.dark .ft-metric{background:#252540}.dark .ft-metric span{color:#4da6e8}.dark .ft-metric strong{color:#e0e0e0}.dark .ft-feel-row{color:#666}.dark .ft-notes{background:#252540;color:#666}.dark .ft-form-section h4{color:#4da6e8}.rf-section{margin-top:2rem}.rf-title{font-size:1.15rem;font-weight:700;margin:0 0 .25rem;color:var(--ff-text)}.rf-sub{font-size:.8rem;color:var(--ff-text-muted);margin:0 0 1rem}.rf-grid{display:flex;flex-direction:column;gap:1.25rem}.rf-card{padding:1.25rem 1.5rem!important}.rf-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:.75rem}.rf-card-head h4{font-size:1.05rem;font-weight:700;margin:0;color:var(--ff-text)}.rf-card-desc{font-size:.75rem;color:var(--ff-text-muted);margin-top:.2rem;line-height:1.4}.rf-edit-btn{background:none;border:1px solid var(--ff-border);color:var(--ff-blue);font-size:.75rem;font-family:inherit;font-weight:600;padding:.3rem .75rem;border-radius:6px;cursor:pointer;transition:all .15s}.rf-edit-btn:hover{background:var(--ff-blue);color:#fff}.rf-items{display:flex;flex-direction:column;gap:.5rem}.rf-item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem 0;border-bottom:1px solid var(--ff-border);font-size:.85rem}.rf-item:last-child{border-bottom:none}.rf-item strong{color:var(--ff-text)}.rf-item-notes{font-size:.75rem;color:var(--ff-text-muted);flex-basis:100%}.rf-empty{font-size:.8rem;color:var(--ff-text-muted);font-style:italic;margin:0}.rf-edit{display:flex;flex-direction:column;gap:.75rem}.rf-edit-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.rf-edit-row input,.rf-edit-row select{font-size:.8rem;padding:.4rem .6rem;flex:1;min-width:0}.rf-edit-row select{flex:0 0 110px}.rf-remove{background:none;border:none;color:#666;cursor:pointer;padding:.25rem;display:flex;align-items:center;flex-shrink:0}.rf-remove:hover{color:#e85040}.rf-add-btn{background:none;border:1px dashed var(--ff-border);color:var(--ff-text-muted);font-size:.75rem;font-family:inherit;padding:.4rem;border-radius:6px;cursor:pointer;transition:all .15s}.rf-add-btn:hover{border-color:var(--ff-blue);color:var(--ff-blue)}.rf-edit-actions{display:flex;gap:.5rem;margin-top:.25rem}.landing{position:relative;overflow:hidden;color:#fff}.landing-bg{position:fixed;inset:0;z-index:0;background:linear-gradient(135deg,#0f0f1a,#1a1a2e 40%,#043bb1)}.landing-section{position:relative;z-index:1;padding:4rem 2rem;max-width:1100px;margin:0 auto}.landing-hero-section{padding-top:3rem;min-height:100vh;display:flex;align-items:center}.landing-hero-section .landing-content{display:flex;gap:3.5rem;align-items:center;width:100%}.landing-hero{flex:1}.landing-logo{margin-bottom:1rem}.landing-hero h1{font-size:2.4rem;font-weight:800;line-height:1.15;margin:0 0 1rem}.landing-tagline{font-size:1rem;color:#ffffffb3;line-height:1.6;margin:0 0 1.25rem}.landing-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.landing-badge{border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:.3rem .85rem;font-size:.7rem;font-weight:600;color:#ffffffbf;letter-spacing:.02em}.landing-diff{font-size:.85rem;color:#fe00a4;font-weight:600;margin:0}.landing-auth{flex:0 0 370px}.landing-auth-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 20px 60px #0006}.landing-auth-card h2{font-size:1.3rem;color:#000;margin:0 0 .25rem}.landing-auth-card p{font-size:.8rem;color:#555;margin:0 0 1.25rem}.landing-auth-card form{display:flex;flex-direction:column;gap:.65rem}.landing-submit{width:100%;padding:.75rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s;margin-top:.25rem}.landing-submit:hover{background:var(--ff-blue)}.landing-submit:disabled{opacity:.6;cursor:not-allowed}.landing-beta{font-size:.7rem;color:#666;text-align:center;margin-top:.75rem}.landing-auth-card .cloud-toggle{margin-top:.5rem;width:100%}.landing-problem{text-align:center;padding:3rem 2rem}.landing-problem-icon{color:#ffffff4d;margin-bottom:.75rem}.landing-problem h2{font-size:1.6rem;font-weight:800;margin:0 0 .5rem}.landing-problem p{font-size:1rem;color:#fff9;margin:0}.landing-steps-section{text-align:center}.landing-steps-section h2{font-size:1.4rem;font-weight:800;margin:0 0 2rem}.landing-steps{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem}.landing-step{background:#ffffff0d;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem;text-align:center;position:relative}.landing-step-num{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#1e8ad3,#fe00a4);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;color:#fff}.landing-step svg{color:var(--ff-blue-light);margin-bottom:.5rem}.landing-step h3{font-size:.95rem;font-weight:700;margin:0 0 .35rem}.landing-step p{font-size:.8rem;color:#fff9;margin:0;line-height:1.5}.landing-features-section{text-align:center}.landing-features-section h2{font-size:1.4rem;font-weight:800;margin:0 0 2rem}.landing-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.landing-grid-card{background:#ffffff0d;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:1.25rem;text-align:left;transition:border-color .2s}.landing-grid-card:hover{border-color:#ffffff40}.landing-grid-card svg{color:var(--ff-blue-light);margin-bottom:.5rem}.landing-grid-card h3{font-size:.85rem;font-weight:700;margin:0 0 .3rem}.landing-grid-card p{font-size:.75rem;color:#ffffff8c;margin:0;line-height:1.5}.landing-method-section{display:flex;justify-content:center}.landing-method{max-width:600px;text-align:center;padding:2rem;border-radius:16px;background:#ffffff08;box-shadow:0 0 0 1px #1e8ad34d,0 0 0 2px #fe00a426}.landing-method h3{font-size:1rem;font-weight:700;margin:0 0 .75rem;color:var(--ff-blue-light)}.landing-method p{font-size:.9rem;color:#ffffffbf;line-height:1.6;margin:0 0 .75rem}.landing-method-credit{font-size:.75rem;color:#fff6;font-style:italic}.landing-science-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:700px;margin:1.5rem auto 0}.landing-science-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.25rem;text-align:left}.landing-science-card h4{font-size:.85rem;font-weight:700;color:#fe00a4;margin:0 0 .5rem}.landing-science-card p{font-size:.8rem;color:#ffffffa6;line-height:1.55;margin:0}.landing-link{color:#7db8f0;text-decoration:none;border-bottom:1px solid rgba(125,184,240,.3);transition:border-color .15s}.landing-link:hover{border-color:#7db8f0}.landing-badge{text-decoration:none;color:inherit}a.landing-badge:hover{background:#ffffff1f}.landing-card-link{color:#ffffffb3;text-decoration:none;border-bottom:1px dotted rgba(255,255,255,.3);transition:color .15s,border-color .15s}.landing-card-link:hover{color:#fff;border-color:#fff9}.landing-cta{text-align:center;padding:4rem 2rem 5rem}.landing-cta h2{font-size:1.8rem;font-weight:800;margin:0 0 .5rem}.landing-cta p{font-size:1rem;color:#fff9;margin:0 0 1.5rem}.landing-cta-btn{display:inline-block;padding:.85rem 2.5rem;background:linear-gradient(135deg,#1e8ad3,#fe00a4);color:#fff;border:none;border-radius:12px;font-size:1.05rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s,transform .15s}.landing-cta-btn:hover{opacity:.9;transform:translateY(-1px)}.landing-footer{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.1);padding:2rem 2rem 1.5rem;background:#0003}.landing-footer-inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.landing-footer-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem}.landing-footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.landing-footer-links button{background:none;border:none;color:#ffffff8c;font-size:.8rem;font-family:inherit;cursor:pointer;padding:.25rem 0;transition:color .15s}.landing-footer-links button:hover{color:#fff}.landing-footer-copy{font-size:.7rem;color:#ffffff4d}.fp-overlay{position:fixed;inset:0;z-index:100;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:1.5rem;backdrop-filter:blur(4px);animation:fpFadeIn .2s ease}@keyframes fpFadeIn{0%{opacity:0}to{opacity:1}}.fp-modal{background:#1a1a2e;color:#e0e0e0;border-radius:12px;max-width:700px;width:100%;max-height:85vh;overflow-y:auto;position:relative;padding:2.5rem 2rem;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.08)}.fp-close{position:absolute;top:1rem;right:1rem;background:#ffffff14;border:none;color:#aaa;font-size:1.4rem;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.fp-close:hover{background:#ffffff26;color:#fff}.fp-content h2{font-size:1.4rem;font-weight:800;margin:0 0 .25rem;color:#fff}.fp-content h3{font-size:1rem;font-weight:700;margin:1.5rem 0 .5rem;color:#ddd}.fp-updated{font-size:.75rem;color:#fff6;margin:0 0 1.5rem}.fp-content p{font-size:.85rem;line-height:1.7;color:#ffffffb3;margin:0 0 .75rem}.fp-content ul{padding-left:1.25rem;margin:0 0 .75rem}.fp-content li{font-size:.85rem;line-height:1.7;color:#ffffffb3;margin-bottom:.3rem}.fp-content code{background:#ffffff14;padding:.15rem .4rem;border-radius:4px;font-size:.8rem}.fp-content a{color:#7db8f0;text-decoration:none}.fp-content a:hover{color:#a8d4ff;text-decoration:underline}.fp-ref{background:#ffffff0a;border-left:3px solid var(--ff-blue-light, #7db8f0);padding:.75rem 1rem;border-radius:0 8px 8px 0;margin:1rem 0}.fp-ref h4{font-size:.85rem;font-weight:700;margin:0 0 .25rem;color:#ccc}.fp-ref p{font-size:.8rem;margin:0;color:#ffffff8c}.fp-ref a{color:#7db8f0;text-decoration:none}.fp-ref a:hover{text-decoration:underline}.landing-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:#0f0f1a;color:#fff}.landing-loading p{font-size:.85rem;color:#fff9}.conn-help{font-size:.7rem;color:#666;margin-bottom:.5rem;line-height:1.5}.conn-help a{color:#043bb1;font-weight:600;text-decoration:none}.conn-help a:hover{text-decoration:underline}.dark .conn-help{color:#666}.dark .conn-help a{color:#7db8f0}.conn-section-label{display:flex;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:.9rem}.onboarding{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.onboarding-bg{position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,#0f0f1a,#1a1a2e 40%,#043bb1)}.onboarding-card{position:relative;z-index:1;background:#fff;border-radius:20px;padding:2.5rem;max-width:480px;width:100%;margin:1rem;box-shadow:0 20px 60px #0000004d}.onboarding-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.onboarding-brand{font-size:1.1rem;font-weight:800;color:#000}.onboarding-progress{display:flex;gap:.5rem;margin-bottom:1.5rem}.onboarding-dot{flex:1;height:4px;border-radius:2px;background:#e0e0e0;transition:background .3s}.onboarding-dot.active{background:var(--ff-blue-deep)}.onboarding-dot.done{background:var(--ff-green)}.onboarding-card h2{font-size:1.3rem;font-weight:700;color:#000;margin:0 0 .25rem}.onboarding-sub{font-size:.8rem;color:#555;margin:0 0 1.5rem}.onboarding-fields{display:flex;flex-direction:column;gap:.75rem}.ob-field{display:flex;flex-direction:column;gap:.25rem}.ob-field span{font-size:.75rem;font-weight:600;color:#555}.ob-field input,.ob-field select{background:#f0f0f0;border:1px solid #ddd;border-radius:8px;padding:.65rem .75rem;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s;color:#000}.ob-field input:focus,.ob-field select:focus{border-color:var(--ff-blue-deep)}.ob-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.ob-hint{font-size:.75rem;color:#666;margin:.25rem 0 0;line-height:1.4}.ob-conn-intro{font-size:.8rem;color:#555;margin:0 0 .5rem}.ob-conn-section{border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:1rem;margin-bottom:.75rem;background:#00000005}.ob-conn-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.ob-conn-header h4{margin:0;font-size:.9rem;font-weight:700}.ob-conn-tag{font-size:.65rem;font-weight:700;padding:.15rem .5rem;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.ob-conn-recommended{background:#043bb11f;color:#043bb1}.ob-conn-optional{background:#0000000f;color:#888}.ob-conn-desc{font-size:.78rem;color:#666;margin:0 0 .5rem;line-height:1.45}.ob-conn-help{font-size:.72rem;color:#888;margin:.35rem 0 0;line-height:1.5}.ob-conn-help a{color:#043bb1;font-weight:600;text-decoration:none}.ob-conn-help a:hover{text-decoration:underline}.ob-race-form{display:flex;gap:.4rem;margin-bottom:.75rem;align-items:center}.ob-race-input{flex:1;font-size:.82rem;padding:.5rem .65rem;border-radius:8px;border:1px solid rgba(0,0,0,.12);font-family:inherit}.ob-race-date{max-width:160px}.ob-race-select{font-size:.82rem;padding:.5rem;border-radius:8px;border:1px solid rgba(0,0,0,.12);font-family:inherit;font-weight:700}.ob-race-add{font-size:.8rem;font-weight:700;padding:.5rem 1rem;border-radius:8px;border:none;background:#043bb1;color:#fff;cursor:pointer;font-family:inherit}.ob-race-add:hover{background:#0550d4}.ob-race-legend{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:#888;margin-bottom:.75rem}.ob-race-legend strong{font-weight:800}.ob-plan-options{display:flex;flex-direction:column;gap:.5rem}.ob-plan-option{display:block;width:100%;text-align:left;padding:.75rem 1rem;border:2px solid var(--ff-border);border-radius:10px;background:var(--ff-card);cursor:pointer;font-family:inherit;transition:all .15s}.ob-plan-option:hover{border-color:#b0b8c8}.ob-plan-option.active{border-color:var(--ff-blue);background:#1e8ad30d}.ob-plan-option-header{display:flex;align-items:center;gap:.5rem}.ob-plan-option-label{font-weight:700;font-size:.9rem;color:var(--ff-text)}.ob-plan-option-desc{margin:.25rem 0 0;font-size:.78rem;color:var(--ff-text-muted);line-height:1.4}.ob-race-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.ob-race-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid rgba(0,0,0,.08);border-radius:10px;background:#00000005}.ob-race-pri{font-size:.7rem;font-weight:800;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.ob-race-pri[data-pri=A]{background:#800030}.ob-race-pri[data-pri=B]{background:#e85040}.ob-race-pri[data-pri=C]{background:#e8c010;color:#333}.ob-race-name{font-size:.82rem;font-weight:600;flex:1}.ob-race-date-label{font-size:.75rem;color:#888}.ob-race-remove{background:none;border:none;font-size:1.1rem;color:#666;cursor:pointer;padding:0 .25rem}.ob-race-remove:hover{color:#e85040}.onboarding-actions{display:flex;gap:.75rem;margin-top:1.5rem}.ob-back{flex:0 0 auto;padding:.7rem 1.25rem;background:#f0f0f0;border:1px solid #ddd;border-radius:10px;font-size:.9rem;font-weight:600;color:#555;cursor:pointer;font-family:inherit;transition:all .15s}.ob-back:hover{background:#e0e0e0}.ob-next{flex:1;padding:.7rem 1.25rem;background:var(--ff-blue-deep);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.ob-next:hover{background:var(--ff-blue)}.ob-next:disabled{opacity:.4;cursor:not-allowed}.ob-skip{display:block;width:100%;margin-top:.75rem;background:none;border:none;color:#666;font-size:.75rem;cursor:pointer;font-family:inherit;text-align:center;transition:color .15s}.ob-skip:hover{color:var(--ff-blue)}@media(max-width:768px){.landing-hero-section .landing-content{flex-direction:column-reverse;gap:2rem;text-align:center;padding:1.5rem}.landing-hero h1{font-size:1.6rem}.landing-hero .landing-tagline{font-size:.9rem}.landing-badges{justify-content:center}.landing-auth{flex:none;width:100%;max-width:380px;margin:0 auto}.landing-steps{flex-direction:column;gap:1.5rem}.landing-step{max-width:100%}.landing-grid,.landing-science-grid{grid-template-columns:1fr}.landing-section{padding:2.5rem 1.25rem}.landing-problem h2{font-size:1.3rem}.landing-cta h2{font-size:1.4rem}.onboarding-card{padding:1.5rem;margin:.75rem}.ob-row{grid-template-columns:1fr}.landing-footer{padding:1.5rem 1.25rem}.landing-footer-links{gap:1rem}.fp-overlay{padding:.75rem}.fp-modal{padding:1.5rem 1.25rem;max-height:90vh}.fp-content h2{font-size:1.2rem}}.phase-nutrition-banner{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--ff-card);border-left:4px solid #fe00a4;border-radius:8px;margin-bottom:1rem;font-size:.85rem}.dark .phase-nutrition-banner{background:#1a1a2e}.phase-nutrition-label{font-weight:700;white-space:nowrap;color:var(--ff-text)}.phase-nutrition-tip{color:var(--ff-text-muted)}.tp-config{margin-bottom:1.5rem}.tp-targets{display:flex;gap:1.5rem;margin:.75rem 0;padding:.6rem 1rem;background:var(--ff-bg);border-radius:8px;font-size:.8rem;font-weight:600;color:var(--ff-blue);flex-wrap:wrap}.tp-generate{margin-top:.75rem}.tp-error{color:#e03050;font-size:.85rem;margin-top:.5rem}.tp-plan{margin-top:1rem}.tp-plan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.tp-plan-header h3{margin:0}.tp-plan-actions{display:flex;gap:.5rem}.tp-apply{background:var(--ff-blue);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;font-size:.85rem}.tp-apply:hover{opacity:.9}.tp-clear{background:none;border:1px solid var(--ff-border);color:var(--ff-text-muted);padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;font-size:.85rem}.tp-summary{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.tp-stat{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:10px;padding:.6rem 1rem;text-align:center;min-width:80px}.tp-stat-value{display:block;font-size:1.3rem;font-weight:800;color:var(--ff-blue)}.tp-stat-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-text-muted)}.tp-week-block{margin-bottom:1.5rem}.tp-week-header{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:2px solid var(--ff-border);margin-bottom:.5rem;flex-wrap:wrap}.tp-week-num{font-weight:800;font-size:.85rem;color:var(--ff-text)}.tp-week-dates{font-size:.8rem;color:var(--ff-text-muted)}.tp-week-phase{font-size:.75rem;font-weight:700;color:var(--ff-blue);background:#1e8ad31a;padding:.15rem .5rem;border-radius:6px}.tp-week-tss{font-size:.75rem;font-weight:600;color:var(--ff-text-muted);margin-left:auto}.tp-week-hours{font-size:.75rem;font-weight:600;color:var(--ff-text-muted)}.tp-week-rationale{font-size:.78rem;color:var(--ff-text-muted);margin-top:.4rem;font-style:italic}.tp-week{display:flex;flex-direction:column;gap:.5rem}.tp-day{background:var(--ff-card);border:1px solid var(--ff-border);border-radius:10px;padding:.75rem 1rem}.tp-day.tp-rest{opacity:.7}.tp-day-date{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ff-text-muted);margin-bottom:.3rem}.tp-day-content{display:flex;align-items:center;gap:.75rem}.tp-day-icon{font-size:1.3rem}.tp-day-info{flex:1}.tp-day-name{font-weight:700;font-size:.9rem;color:var(--ff-text)}.tp-day-meta{font-size:.75rem;color:var(--ff-text-muted);display:flex;gap:.75rem;margin-top:.15rem}.tp-day-zone{font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:6px;white-space:nowrap}.tp-day-desc{font-size:.8rem;color:var(--ff-text-muted);margin-top:.4rem;line-height:1.4}.tp-rationale{margin-top:1rem;padding:1rem;background:var(--ff-card);border:1px solid var(--ff-border);border-radius:10px;border-left:4px solid var(--ff-blue)}.tp-rationale h4{margin:0 0 .5rem;font-size:.85rem;color:var(--ff-blue)}.tp-rationale p{margin:0;font-size:.85rem;color:var(--ff-text-muted);line-height:1.5}.dark .tp-targets{background:#1a1a2e}.ai-coach-card{background:linear-gradient(135deg,#043bb114,#fe00a40f);border:1px solid rgba(4,59,177,.2);border-radius:14px;padding:1rem 1.25rem;margin-bottom:1rem}.dark .ai-coach-card{background:linear-gradient(135deg,#043bb126,#fe00a41a);border-color:#043bb14d}.ai-coach-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:700;font-size:.85rem;color:#043bb1}.dark .ai-coach-header{color:#7db8f0}.ai-coach-header svg{flex-shrink:0}.ai-coach-confidence{margin-left:auto;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.ai-coach-loading{font-size:.8rem;color:#888;margin:0}.ai-coach-error{font-size:.8rem;color:#e85040;margin:0}.ai-coach-reason{font-size:.85rem;font-weight:600;margin:0 0 .25rem;line-height:1.4}.ai-coach-detail{font-size:.78rem;color:#666;margin:0 0 .5rem;line-height:1.5}.dark .ai-coach-detail{color:#aaa}.ai-coach-adjustments{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.ai-coach-adj{font-size:.8rem;font-weight:700;padding:.2rem .6rem;background:#0000000d;border-radius:8px}.dark .ai-coach-adj{background:#ffffff14}.ai-coach-actions{display:flex;gap:.5rem;margin-top:.5rem}.ai-coach-apply,.ai-coach-dismiss,.ai-coach-refresh{font-size:.75rem;font-weight:600;padding:.35rem .75rem;border-radius:8px;border:none;cursor:pointer;font-family:inherit;transition:all .15s}.ai-coach-apply{background:#043bb1;color:#fff}.ai-coach-apply:hover{background:#0550d4}.ai-coach-dismiss{background:#0000000f;color:#666}.dark .ai-coach-dismiss{background:#ffffff14;color:#aaa}.ai-coach-dismiss:hover{background:#0000001a}.ai-coach-refresh{background:none;color:#043bb1;border:1px solid rgba(4,59,177,.2)}.dark .ai-coach-refresh{color:#7db8f0;border-color:#7db8f033}.ai-coach-refresh:hover{background:#043bb10d}.ai-coach-applied{opacity:.85}.ai-coach-adj-btns{display:flex;gap:.35rem;flex-wrap:wrap}.ai-coach-adjust-meals{font-size:.75rem;font-weight:600;padding:.35rem .75rem;border-radius:8px;border:1px solid #10bc10;cursor:pointer;font-family:inherit;background:transparent;color:#10bc10;transition:all .15s}.ai-coach-adjust-meals:hover{background:#10bc10;color:#fff}.dark .ai-coach-adjust-meals{border-color:#10bc10;color:#10bc10}.dark .ai-coach-adjust-meals:hover{background:#10bc10;color:#fff}.mp-adjusting-banner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:linear-gradient(135deg,#10bc1014,#1e8ad314);border:1px solid rgba(16,188,16,.3);border-radius:10px;font-size:.85rem;font-weight:600;color:var(--ff-text);margin-bottom:.75rem;animation:pulse-border 2s ease-in-out infinite}.mp-adjusting-banner svg{stroke:#10bc10}@keyframes pulse-border{0%,to{border-color:#10bc104d}50%{border-color:#10bc10b3}}.dark .mp-adjusting-banner{background:linear-gradient(135deg,#10bc100d,#1e8ad30d);border-color:#10bc1033;color:#eee}.ai-chat-card{display:flex;flex-direction:column}.ai-chat-card .ai-coach-header{margin-bottom:.75rem}.ai-chat-reset{margin-left:auto;font-size:.7rem;font-weight:600;padding:.25rem .6rem;border-radius:6px;border:1px solid rgba(4,59,177,.2);background:none;color:#043bb1;cursor:pointer;font-family:inherit}.dark .ai-chat-reset{color:#7db8f0;border-color:#7db8f033}.ai-chat-reset:hover{background:#043bb10d}.ai-chat-thread{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0;margin-bottom:.5rem;scrollbar-width:thin}.ai-chat-msg{display:flex;flex-direction:column;max-width:85%}.ai-chat-assistant{align-self:flex-start}.ai-chat-user{align-self:flex-end}.ai-chat-bubble{font-size:.82rem;line-height:1.5;padding:.5rem .75rem;border-radius:12px;white-space:pre-wrap;word-break:break-word}.ai-chat-assistant .ai-chat-bubble{background:#043bb114;color:#222;border-bottom-left-radius:4px}.dark .ai-chat-assistant .ai-chat-bubble{background:#043bb12e;color:#ddd}.ai-chat-user .ai-chat-bubble{background:#043bb1;color:#fff;border-bottom-right-radius:4px}.ai-chat-typing,.ai-chat-error{color:#888;font-style:italic}.ai-chat-adjustment{margin-top:.35rem;padding:.5rem .75rem;background:#0000000a;border-radius:10px}.dark .ai-chat-adjustment{background:#ffffff0f}.ai-chat-quick{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.5rem}.ai-chat-quick-btn{font-size:.72rem;font-weight:600;padding:.3rem .65rem;border-radius:16px;border:1px solid rgba(4,59,177,.2);background:none;color:#043bb1;cursor:pointer;font-family:inherit;transition:all .15s}.dark .ai-chat-quick-btn{color:#7db8f0;border-color:#7db8f040}.ai-chat-quick-btn:hover{background:#043bb114}.ai-chat-quick-btn:disabled{opacity:.5;cursor:default}.ai-chat-input-row{display:flex;gap:.4rem}.ai-chat-input{flex:1;font-size:.82rem;padding:.5rem .75rem;border-radius:10px;border:1px solid rgba(0,0,0,.15);background:#fff;color:#222;font-family:inherit;outline:none}.dark .ai-chat-input{background:#ffffff14;border-color:#ffffff26;color:#ddd}.ai-chat-input:focus{border-color:#043bb1}.dark .ai-chat-input:focus{border-color:#7db8f0}.ai-chat-send{font-size:.78rem;font-weight:700;padding:.5rem 1rem;border-radius:10px;border:none;background:#043bb1;color:#fff;cursor:pointer;font-family:inherit;transition:all .15s}.ai-chat-send:hover{background:#0550d4}.ai-chat-send:disabled{opacity:.4;cursor:default}@media(max-width:768px){.sidebar{display:none}.mobile-nav{display:block}.main{margin-left:0;padding:1rem 1rem calc(1rem + 60px + env(safe-area-inset-bottom,0px));background:var(--ff-bg)}.cards-row{grid-template-columns:1fr}.goals-row{flex-wrap:wrap}.idea-grid{grid-template-columns:1fr}.weekly-row{grid-template-columns:50px 1fr 1fr 50px;gap:.35rem;font-size:.75rem}.weekly-row>span:nth-child(4),.weekly-row>span:nth-child(5){display:none}.weekly-row-header>span:nth-child(4),.weekly-row-header>span:nth-child(5){display:none}.fi{flex-direction:row;flex-wrap:wrap}.fi-s{flex:1 1 100%;min-width:unset}.fi-q{flex:0 0 50px}.fi-unit{flex:1 1 80px}.fi-n{flex:1 1 60px;min-width:60px}.fi-btn,.fi-scan{flex:0 0 auto}.sticky-topbar{padding:.5rem 0;margin:-.5rem 0 .5rem}.topbar{gap:.5rem}.topbar-greet h1{font-size:1rem}.skeleton-row{grid-template-columns:1fr}.meal-rec{display:none}.settings-grid{grid-template-columns:1fr}.settings-card{padding:1rem}.sett-field input,.sett-field select{font-size:16px}.conn-list{gap:.5rem}.conn{flex-direction:column;align-items:flex-start;gap:.25rem}.conn-status{font-size:.7rem}.weight-chart{overflow-x:auto}.page-content h2{font-size:1.2rem}.page-sub{font-size:.8rem}}
