:root,[data-theme=dark]{--bg-primary: #0d1117;--bg-surface: #161b22;--bg-elevated: #1c2129;--bg-input: #0d1117;--border: #30363d;--border-light: #21262d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #484f58;--accent: #58a6ff;--accent-hover: #79c0ff;--success: #3fb950;--warning: #d29922;--danger: #f85149;--info: #58a6ff;--radius: 8px;--radius-sm: 4px;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--bottom-nav-height: 60px}[data-theme=light]{--bg-primary: #f6f8fa;--bg-surface: #ffffff;--bg-elevated: #f0f3f6;--bg-input: #ffffff;--border: #d0d7de;--border-light: #e1e4e8;--text-primary: #1f2328;--text-secondary: #656d76;--text-muted: #8b949e;--accent: #0969da;--accent-hover: #0550ae;--success: #1a7f37;--warning: #9a6700;--danger: #cf222e;--info: #0969da;--shadow: 0 1px 3px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning *:before,html.theme-transitioning *:after{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,fill .3s ease,stroke .3s ease!important}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh;min-height:100dvh;transition:background .2s,color .2s;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.landing{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-surface) 50%,var(--bg-primary) 100%);animation:fadeIn .6s ease;position:relative;overflow:hidden}.landing:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 40%,rgba(88,166,255,.06) 0%,transparent 50%),radial-gradient(circle at 70% 60%,rgba(63,185,80,.04) 0%,transparent 50%);pointer-events:none}.landing-inner{text-align:center;max-width:440px;width:100%}.landing-logo{font-size:56px;color:var(--accent);margin-bottom:8px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.landing-title{font-size:36px;font-weight:800;letter-spacing:3px;margin-bottom:8px}.landing-tagline{color:var(--text-secondary);font-size:16px;margin-bottom:32px}.landing-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:32px;text-align:left}.landing-feature{display:flex;gap:10px;padding:14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius)}.landing-feature-icon{font-size:24px;flex-shrink:0;line-height:1}.landing-feature strong{font-size:13px;display:block}.landing-feature p{font-size:11px;color:var(--text-secondary);margin:2px 0 0}.landing-cta{padding:14px 48px;font-size:16px;font-weight:600;border-radius:12px;margin-bottom:16px}.landing-disclaimer{font-size:11px;color:var(--text-muted)}.landing.hidden{display:none}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg-surface);position:sticky;top:0;z-index:50}.header-logo{display:flex;align-items:center;gap:10px}.header-logo h1{font-size:18px;font-weight:700;letter-spacing:1px}.header-logo .logo-icon{font-size:22px;color:var(--accent)}.header-actions{display:flex;gap:4px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;min-height:44px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;-webkit-user-select:none;user-select:none;touch-action:manipulation}.btn:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.btn:active{transform:scale(.95);box-shadow:inset 0 1px 3px #0003}.btn:focus-visible,.tab-btn:focus-visible,.bottom-nav-btn:focus-visible,.calendar-day:focus-visible,.protocol-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:#f851491a}.btn-sm{padding:4px 10px;font-size:12px}.btn-icon{padding:6px 8px;min-width:32px;justify-content:center}.btn-ghost{border:none;background:none;color:var(--text-secondary);padding:6px 8px}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-elevated)}.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--bg-surface);padding:0 20px;overflow-x:auto}.tab-btn{padding:11px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;position:relative}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);background:var(--bg-surface);border-top:1px solid var(--border);z-index:50;padding-bottom:env(safe-area-inset-bottom);scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 0;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:color .15s;-webkit-tap-highlight-color:transparent;position:relative}.bottom-nav-btn.active{color:var(--accent)}.bottom-nav-icon{font-size:20px;line-height:1}.bottom-nav-label{font-size:10px;font-weight:600}.tab-content-wrapper{flex:1}.tab-content{display:none;padding:20px;max-width:960px;margin:0 auto;width:100%;transition:opacity .15s ease}.tab-content.active{display:block;animation:tabIn .2s ease}@keyframes tabIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.card-compact{padding:14px;margin-bottom:10px}.expandable{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.expandable-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-surface);cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.expandable-header:hover{background:var(--bg-elevated)}.expandable-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.expandable-arrow{font-size:12px;color:var(--text-muted);transition:transform .2s}.expandable.open .expandable-arrow{transform:rotate(90deg)}.expandable-body{display:none;padding:0 16px 16px;background:var(--bg-surface)}.expandable.open .expandable-body{display:block;animation:expandIn .2s ease}@keyframes expandIn{0%{opacity:0}to{opacity:1}}.chart-container{width:100%;height:200px;position:relative}.chart-container canvas{width:100%;height:100%;display:block}.chart-container-sm{height:120px}.chart-container-lg{height:260px}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);margin-bottom:12px;font-size:13px;line-height:1.5}.alert-icon{font-size:16px;flex-shrink:0;margin-top:1px}.alert-info{background:#58a6ff1a;border:1px solid rgba(88,166,255,.3);color:var(--info)}.alert-warning{background:#d299221a;border:1px solid rgba(210,153,34,.3);color:var(--warning)}.alert-danger{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:var(--danger)}.alert-success{background:#3fb9501a;border:1px solid rgba(63,185,80,.3);color:var(--success)}.today-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.today-date{font-size:24px;font-weight:700}.today-subtitle{color:var(--text-secondary);font-size:14px;margin-top:2px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.status-badge.complete{background:#3fb95026;color:var(--success)}.status-badge.partial{background:#d2992226;color:var(--warning)}.status-badge.none{background:#8b949e1a;color:var(--text-secondary)}.time-group{margin-bottom:20px}.time-group-header{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;padding-bottom:8px;border-bottom:1px solid var(--border-light);margin-bottom:8px}.dose-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius);transition:background .15s}.dose-item:hover{background:var(--bg-elevated)}.dose-item.administered{opacity:.55}.dose-checkbox{-webkit-appearance:none;appearance:none;width:24px;height:24px;border:2px solid var(--border);border-radius:50%;cursor:pointer;position:relative;flex-shrink:0;transition:border-color .15s,background .15s}.dose-checkbox:checked{background:var(--success);border-color:var(--success)}.dose-checkbox:checked:after{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;width:14px;height:14px;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-weight:700}.dose-info{flex:1;min-width:0}.dose-name{font-weight:600;font-size:15px}.dose-details{font-family:SF Mono,Consolas,Monaco,monospace;font-size:13px;color:var(--text-secondary);margin-top:2px}.dose-site{font-size:12px;color:var(--text-muted);margin-top:2px}.dose-color{width:4px;height:36px;border-radius:2px;flex-shrink:0}.dose-extra{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.daily-notes{width:100%;min-height:60px;padding:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:inherit;font-size:14px;resize:vertical}.daily-notes::placeholder{color:var(--text-muted)}.empty-state{text-align:center;padding:48px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.4}.empty-state p{font-size:15px;margin-bottom:16px}.halflife-bar{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted)}.halflife-track{width:60px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.halflife-fill{height:100%;border-radius:2px;transition:width .3s}.halflife-fill.high{background:var(--success)}.halflife-fill.medium{background:var(--warning)}.halflife-fill.low{background:var(--danger)}.cycle-progress{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:4px}.cycle-progress-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.cycle-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.cycle-ending{color:var(--warning);font-weight:600}.titration-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:#58a6ff26;color:var(--accent)}.vial-status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);margin-top:4px}.vial-bar{width:50px;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.vial-fill{height:100%;border-radius:3px}.vial-fill.ok{background:var(--success)}.vial-fill.low{background:var(--warning)}.vial-fill.empty{background:var(--danger)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-month{font-size:20px;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.calendar-day-header{background:var(--bg-elevated);padding:8px;text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.calendar-day{background:var(--bg-surface);min-height:90px;padding:6px;cursor:pointer;transition:background .15s;position:relative}.calendar-day:hover{background:var(--bg-elevated)}.calendar-day.other-month{opacity:.3}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--accent)}.calendar-day-number{font-size:13px;font-weight:600;margin-bottom:4px;color:var(--text-secondary)}.calendar-day.today .calendar-day-number{color:var(--accent)}.calendar-pills{display:flex;flex-wrap:wrap;gap:2px}.calendar-pill{font-size:9px;padding:1px 5px;border-radius:3px;color:#fff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.4}.calendar-pill.administered{opacity:.5;text-decoration:line-through}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;padding:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius)}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:2px}.calendar-detail{margin-top:16px}.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.calc-inputs{display:flex;flex-direction:column;gap:14px}.calc-result{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.calc-result-value{font-family:SF Mono,Consolas,Monaco,monospace;font-size:36px;font-weight:700;color:var(--accent)}.calc-result-unit{font-size:14px;color:var(--text-secondary);margin-top:4px}.calc-result-secondary{font-family:SF Mono,Consolas,Monaco,monospace;font-size:24px;font-weight:600;color:var(--success);margin-top:16px}.calc-concentration{font-size:13px;color:var(--text-muted);margin-top:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.form-input,.form-select{padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color .15s}.form-input:focus,.form-select:focus{outline:none;border-color:var(--accent)}.form-input::placeholder{color:var(--text-muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.form-hint{font-size:11px;color:var(--text-secondary);margin-top:2px}.protocol-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;transition:background .15s}.protocol-item:hover{background:var(--bg-elevated)}.protocol-color{width:6px;align-self:stretch;border-radius:3px;flex-shrink:0}.protocol-info{flex:1;min-width:0}.protocol-name{font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px}.protocol-schedule{font-size:13px;color:var(--text-secondary);margin-top:2px}.protocol-dose{font-family:SF Mono,Consolas,Monaco,monospace;font-size:13px;color:var(--text-muted)}.protocol-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.toggle-switch{position:relative;width:40px;height:22px;cursor:pointer;flex-shrink:0}.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:11px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:transform .2s}.toggle-switch input:checked+.toggle-slider{background:var(--success)}.modal-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:100;align-items:center;justify-content:center}.modal-overlay.active{display:flex}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:90%;max-width:520px;max-height:85vh;overflow-y:auto;padding:24px;box-shadow:0 8px 30px #00000080}.modal-title{font-size:18px;font-weight:700;margin-bottom:20px}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.cycle-type-group{display:flex;gap:8px}.cycle-type-btn{flex:1;padding:8px;text-align:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.cycle-type-btn.active{border-color:var(--accent);color:var(--accent);background:#58a6ff1a}.cycle-config{display:none;gap:12px;margin-top:8px}.cycle-config.active{display:flex}.day-picker{display:flex;gap:4px}.day-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}.day-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.profile-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius)}.profile-bar label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.profile-bar select{flex:1}.journal-entry{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.journal-date-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px}.journal-date-nav .date-display{font-size:18px;font-weight:700;min-width:200px;text-align:center}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.journal-metric{display:flex;flex-direction:column;gap:4px}.journal-metric label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.star-rating{display:flex;gap:4px}.star-btn{font-size:22px;background:none;border:none;cursor:pointer;color:var(--text-muted);transition:color .15s,transform .1s;padding:2px}.star-btn.active,.star-btn:hover{color:var(--warning)}.star-btn:active{transform:scale(1.2)}.slider-rating{display:flex;align-items:center;gap:8px;width:100%}.rating-slider{flex:1;-webkit-appearance:none;appearance:none;height:6px;background:var(--border);border-radius:3px;outline:none;cursor:pointer}.rating-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary);box-shadow:0 1px 3px #0000004d}.rating-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary)}.slider-value{font-size:13px;font-weight:600;color:var(--text-secondary);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.water-tracker-compact{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.water-btn{width:32px;height:32px;padding:0;font-size:16px;line-height:1}.water-progress-inline{flex:1;display:flex;align-items:center;gap:8px}.water-bar-bg{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:visible;position:relative}.water-bar-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s ease}.water-bar-fill.complete{background:var(--success)}.water-bar-label{position:absolute;top:-11px;left:50%;transform:translate(-50%);font-size:8px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;pointer-events:none}.water-label{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:50px;text-align:center;font-variant-numeric:tabular-nums}.water-unit{font-size:10px;font-weight:400;color:var(--text-muted)}.journal-history{margin-top:20px}.journal-history-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-light);font-size:13px}.journal-history-item:last-child{border-bottom:none}.journal-history-date{font-weight:600;min-width:100px;color:var(--text-secondary)}.journal-history-metrics{display:flex;gap:16px;flex:1}.journal-metric-sm{font-size:12px;color:var(--text-muted)}.journal-metric-sm span{font-weight:600;color:var(--text-primary)}.weekly-overview{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:16px}.weekly-day-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 6px;text-align:center;font-size:11px;cursor:pointer;transition:border-color .15s,background .15s}.weekly-day-card:hover{border-color:var(--accent)}.weekly-day-card.today{border-color:var(--accent);background:#58a6ff14}.weekly-day-card.has-data{border-left:3px solid var(--success)}.weekly-day-card .day-name{font-weight:700;color:var(--text-secondary);margin-bottom:4px}.weekly-day-card .day-weight{font-family:SF Mono,Consolas,monospace;font-size:13px;font-weight:600;color:var(--text-primary)}.weekly-day-card .day-stars{color:var(--warning);font-size:8px;margin-top:2px}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.stat-value{font-family:SF Mono,Consolas,Monaco,monospace;font-size:28px;font-weight:700;color:var(--accent)}.stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;margin-top:4px}.cost-table th,.cost-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-light)}.cost-table th{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.cost-table td:last-child{font-family:SF Mono,Consolas,monospace;text-align:right}.cost-table tfoot td{font-weight:700;border-top:2px solid var(--border)}.site-map-container{position:relative;width:200px;height:300px;margin:0 auto}.site-map-body{width:100%;height:100%;opacity:.3}.site-dot{position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid var(--bg-surface);transform:translate(-50%,-50%);cursor:pointer;transition:transform .15s}.site-dot:hover{transform:translate(-50%,-50%) scale(1.3)}.site-dot.suggested{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #58a6ff80}50%{box-shadow:0 0 0 6px #58a6ff00}}.site-history-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.site-history-item{display:flex;justify-content:space-between;padding:6px 10px;font-size:12px;border-radius:var(--radius-sm)}.site-history-item:nth-child(odd){background:var(--bg-elevated)}.settings-section{margin-bottom:24px}.settings-section-title{font-size:14px;font-weight:600;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.settings-row label{font-size:14px}.settings-row .form-input{width:120px}.toast{position:fixed;bottom:80px;right:24px;padding:12px 20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;box-shadow:0 4px 12px #0006;z-index:200;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s}.toast.show{opacity:1;transform:translateY(0)}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--danger)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@media(max-width:768px){.header{flex-wrap:wrap;padding:8px 12px;gap:6px}.header-logo h1{font-size:16px}.header-search{order:3;width:100%;margin-top:4px}.header-search .form-input{font-size:14px}.header-actions{gap:2px}.header-actions .btn{padding:6px 8px;font-size:12px}.header-actions .btn:not(.btn-ghost){display:none}.tab-bar{display:none}.bottom-nav{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:space-around;gap:0;padding:0 2px;flex-wrap:nowrap}.bottom-nav-btn{flex:1 1 0;min-width:44px;padding:6px 2px}.bottom-nav-label{font-size:9px}.bottom-nav-icon{font-size:18px}.tab-content-wrapper{padding:12px 8px 80px;padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom))}.tab-content{padding:16px}.calc-grid,.form-row,.form-row-3,.journal-grid{grid-template-columns:1fr}.today-header{flex-direction:column;gap:8px;align-items:flex-start}.time-group-header{font-size:13px;padding:6px 10px}.dose-item{padding:10px;gap:8px}.dose-info{min-width:0}.dose-name{font-size:14px;word-break:break-word}.dose-details{font-size:12px}.dose-extra{display:none}.protocol-item{flex-wrap:wrap;padding:10px;gap:8px}.protocol-info{flex:1;min-width:0}.protocol-name{font-size:14px;word-break:break-word}.protocol-schedule{font-size:11px;word-break:break-word}.protocol-actions{width:100%;display:flex;justify-content:flex-end;gap:4px;padding-top:4px;border-top:1px solid var(--border-light)}.cost-table{font-size:11px}.cost-table th,.cost-table td{padding:6px 4px}.analytics-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:10px 8px}.stat-value{font-size:20px}.calendar-grid{gap:1px}.calendar-day{min-height:48px;padding:2px}.calendar-day-number{font-size:11px}.calendar-pill{font-size:8px;padding:1px 2px}.card{padding:12px}.card-header{flex-direction:column;gap:8px;align-items:stretch}.modal{width:95vw;max-width:95vw;max-height:90vh;margin:5vh auto;padding:16px}.modal-form{gap:10px}.form-input,.form-select{font-size:16px}.streak-bar{gap:12px}.streak-item{min-width:0}.bloodwork-card{padding:10px}.bloodwork-markers{gap:4px}.bloodwork-marker{padding:6px 8px;font-size:12px}.workout-subtabs{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:4px;padding-bottom:4px}.workout-subtab{white-space:nowrap;flex-shrink:0;font-size:12px;padding:6px 10px}.settings-section{padding:12px}.settings-row{flex-direction:column;gap:6px;align-items:stretch}.settings-row label{font-size:13px}.macro-rings{gap:12px;flex-wrap:wrap;justify-content:center}.meal-section{padding:10px}.food-item{font-size:12px;padding:8px}.weekly-overview{grid-template-columns:repeat(7,1fr);gap:4px}.weekly-day-card{padding:6px 2px;font-size:10px}.weekly-day-card .day-weight{font-size:11px}.landing-features{grid-template-columns:1fr}.landing-title{font-size:28px}}@media(max-width:480px){.header-logo h1{font-size:14px}.landing-title{font-size:28px}.landing-tagline{font-size:14px}.landing-feature{flex-direction:column;text-align:center;gap:4px}.btn{padding:6px 10px;font-size:12px}.calendar-day-header{font-size:10px;padding:6px 2px}.stat-value{font-size:18px}.calendar-day{min-height:40px}.calendar-pills{display:none}.modal{padding:12px;border-radius:8px}.cost-table th:nth-child(3),.cost-table td:nth-child(3){display:none}.analytics-grid{grid-template-columns:1fr}.set-row{grid-template-columns:30px 1fr 60px 50px 30px;gap:4px;font-size:12px}.set-row .form-input,.set-row .form-select{font-size:12px;padding:4px 6px}.bloodwork-markers{grid-template-columns:1fr}}.install-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#58a6ff14;border:1px solid rgba(88,166,255,.2);border-radius:var(--radius);margin-bottom:16px;font-size:13px}.install-banner .btn{flex-shrink:0}.preset-dropdown{position:absolute;top:100%;left:0;right:0;max-height:250px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000004d;z-index:110}.preset-dd-cat{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;padding:8px 12px 4px;background:var(--bg-elevated);border-top:1px solid var(--border);position:sticky;top:0;z-index:1}.preset-dd-cat:first-child{border-top:none}.preset-dd-item{padding:8px 12px;font-size:13px;cursor:pointer;transition:background .1s}.preset-dd-item:hover{background:var(--bg-elevated);color:var(--accent)}@media(pointer:coarse){.btn,.tab-btn,.cycle-type-btn,.day-btn,.bottom-nav-btn,.expandable-header,.dose-item,.protocol-item,.calendar-day,.weekly-day-card,.preset-dd-item,.star-btn,.btn-sm{min-height:44px}.btn-icon{min-width:44px;min-height:44px}.btn-ghost{min-width:44px;min-height:44px;padding:10px}.dose-checkbox{width:28px;height:28px}.toggle-switch{width:48px;height:28px}.toggle-slider:before{height:20px;width:20px;left:4px;bottom:4px}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.preset-dd-item{padding:12px;min-height:44px}.star-btn{font-size:28px;padding:4px 6px}}@media screen and (max-width:768px){.form-input,.form-select,.daily-notes,textarea,input[type=text],input[type=number],input[type=date],input[type=time],select{font-size:16px}}@supports (padding: env(safe-area-inset-top)){.header{padding-top:calc(10px + env(safe-area-inset-top));padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right))}.tab-content{padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right))}.bottom-nav{height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.landing{padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-left)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-right))}.toast{bottom:calc(80px + env(safe-area-inset-bottom));right:calc(24px + env(safe-area-inset-right))}}.tab-content-wrapper{-webkit-overflow-scrolling:touch;overflow-y:auto}.modal{-webkit-overflow-scrolling:touch}html,body{overscroll-behavior-y:none}.header-search{position:relative;flex:1;max-width:300px;margin:0 16px}.search-results-dropdown{position:absolute;top:100%;left:0;right:0;max-height:300px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0000004d;z-index:110}.search-result-item{padding:10px 14px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:8px}.search-result-item:hover{background:var(--bg-elevated)}.search-result-item:last-child{border-bottom:none}.search-result-cat{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;padding:6px 14px;background:var(--bg-elevated)}@media(max-width:768px){.header-search{display:block;max-width:none;margin:0}}.streak-bar{display:flex;gap:16px;margin-bottom:16px}.streak-item{display:flex;align-items:baseline;gap:6px}.streak-value{font-family:SF Mono,Consolas,monospace;font-size:24px;font-weight:700;color:var(--accent)}.streak-label{font-size:12px;color:var(--text-secondary)}.correlation-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:13px}.correlation-item:last-child{border-bottom:none}.correlation-compound{font-weight:600;min-width:120px}.correlation-insight{flex:1;color:var(--text-secondary)}.correlation-arrow{font-size:18px;font-weight:700}.correlation-arrow.up{color:var(--success)}.correlation-arrow.down{color:var(--danger)}.correlation-arrow.neutral{color:var(--text-muted)}.bloodwork-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.bloodwork-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.bloodwork-card-date{font-weight:700;font-size:15px}.bloodwork-card-source{font-size:11px;color:var(--text-muted);text-transform:uppercase}.bloodwork-markers{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.bloodwork-marker{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:var(--radius-sm);font-size:13px}.bloodwork-marker.in-range{background:#3fb95014}.bloodwork-marker.slightly-out{background:#d2992214}.bloodwork-marker.out-of-range{background:#f8514914}.bloodwork-marker-name{color:var(--text-secondary)}.bloodwork-marker-value{font-weight:600;font-family:SF Mono,Consolas,monospace}.bloodwork-marker.in-range .bloodwork-marker-value{color:var(--success)}.bloodwork-marker.slightly-out .bloodwork-marker-value{color:var(--warning)}.bloodwork-marker.out-of-range .bloodwork-marker-value{color:var(--danger)}.bloodwork-marker-unit{font-size:11px;color:var(--text-muted);margin-left:2px}.bloodwork-group-label{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin:8px 0 4px;grid-column:1 / -1}.bloodwork-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.bloodwork-notes{font-size:12px;color:var(--text-secondary);margin-top:8px;font-style:italic}.bw-modal-group{margin-bottom:12px}.bw-modal-group-title{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;margin-bottom:6px;border-bottom:1px solid var(--border-light);padding-bottom:4px}.bw-modal-markers{display:grid;grid-template-columns:1fr 1fr;gap:6px}.bw-marker-input{display:flex;align-items:center;gap:6px}.bw-marker-input label{font-size:12px;color:var(--text-secondary);min-width:100px;flex-shrink:0}.bw-marker-input input{width:80px}.bw-marker-input .bw-unit{font-size:10px;color:var(--text-muted);min-width:45px}.bw-marker-input .bw-ref{font-size:10px;color:var(--text-muted)}.csv-preview-table{width:100%;border-collapse:collapse;font-size:12px;margin:12px 0;max-height:300px;overflow-y:auto;display:block}.csv-preview-table th,.csv-preview-table td{padding:4px 8px;border:1px solid var(--border-light);text-align:left}.csv-preview-table th{background:var(--bg-elevated);font-weight:600;position:sticky;top:0}.bw-unit-select{font-size:11px;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:1px 4px;cursor:pointer;margin-left:2px}.bw-unit-select:focus{outline:1px solid var(--accent)}.lab-report-viewer{display:flex;gap:16px;max-height:60vh;overflow:hidden}.lab-report-image{flex:1;min-width:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);display:flex;align-items:flex-start;justify-content:center;padding:8px}.lab-report-image img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.lab-report-fields{flex:1;min-width:0;overflow-y:auto;max-height:60vh;padding-right:8px}.lab-report-fields .bw-marker-input input.has-value{border-color:var(--success);background:#3fb9500f}.quick-entry-area{width:100%;min-height:80px;font-family:SF Mono,Consolas,monospace;font-size:13px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);padding:10px;resize:vertical}.quick-entry-area:focus{outline:none;border-color:var(--accent)}.quick-entry-hint{font-size:11px;color:var(--text-muted);margin-top:4px;line-height:1.4}.quick-entry-results{margin-top:8px}.quick-entry-match{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:var(--radius-sm);background:#3fb95014;margin-bottom:4px;font-size:13px}.quick-entry-match-label{color:var(--text-secondary)}.quick-entry-match-value{font-weight:600;color:var(--success);font-family:SF Mono,Consolas,monospace}.pdf-preview-table{width:100%;border-collapse:collapse;font-size:12px;margin:12px 0}.pdf-preview-table th,.pdf-preview-table td{padding:6px 10px;border:1px solid var(--border-light);text-align:left}.pdf-preview-table th{background:var(--bg-elevated);font-weight:600;font-size:11px;text-transform:uppercase}.pdf-preview-table input{width:80px}.pdf-preview-status{font-size:12px;color:var(--text-secondary);margin-bottom:8px;padding:8px;background:var(--bg-elevated);border-radius:var(--radius-sm)}.pdf-fallback-msg{font-size:12px;color:var(--warning);margin-bottom:8px;padding:8px;background:#d299221a;border-radius:var(--radius-sm)}.bw-upload-methods{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.bw-upload-methods .btn{font-size:12px}@media(max-width:768px){.bloodwork-markers,.bw-modal-markers{grid-template-columns:1fr}.lab-report-viewer{flex-direction:column;max-height:none}.lab-report-image,.lab-report-fields{max-height:40vh}.wearable-import-btns{flex-direction:column}.wearable-import-btns .btn{width:100%}}.workout-subtabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:16px}.workout-subtab{padding:10px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer}.workout-subtab.active{color:var(--accent);border-bottom-color:var(--accent)}.exercise-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-light)}.exercise-row:last-child{border-bottom:none}.exercise-name{font-weight:600;font-size:14px;flex:1}.exercise-muscle{font-size:11px;color:var(--text-muted);text-transform:uppercase}.exercise-type-badge{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:600}.exercise-type-badge.compound{background:#58a6ff26;color:var(--accent)}.exercise-type-badge.isolation{background:#a371f726;color:#a371f7}.set-row{display:grid;grid-template-columns:40px 1fr 1fr 80px 40px;gap:6px;align-items:center;padding:4px 0;font-size:13px}.set-row-header{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase}.set-number{font-weight:700;color:var(--text-secondary);text-align:center}.prev-value{font-size:11px;color:var(--text-muted)}.rest-timer{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-elevated);border-radius:var(--radius);margin:8px 0}.rest-timer-value{font-family:SF Mono,Consolas,monospace;font-size:24px;font-weight:700;color:var(--accent)}.workout-day-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:8px}.workout-day-title{font-weight:700;font-size:15px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.rm-table{width:100%;border-collapse:collapse;font-size:13px}.rm-table th,.rm-table td{padding:6px 10px;border-bottom:1px solid var(--border-light);text-align:center}.rm-table th{font-size:11px;color:var(--text-muted);text-transform:uppercase}.rm-table td:first-child{text-align:left;font-weight:600}.pr-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:#d2992226;color:var(--warning)}.muscle-group-header{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;padding:10px 0 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.workout-exercise-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px}.workout-exercise-title{font-weight:700;font-size:14px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.workout-session-timer{font-family:SF Mono,Consolas,monospace;font-size:18px;font-weight:700;color:var(--accent)}.workout-plan-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:background .15s}.workout-plan-item:hover{background:var(--bg-elevated)}.workout-plan-name{font-weight:600;font-size:15px;flex:1}.workout-plan-meta{font-size:12px;color:var(--text-secondary)}.exercise-search-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 16px #0000004d;z-index:110}.exercise-search-item{padding:8px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:8px}.exercise-search-item:hover{background:var(--bg-elevated)}.exercise-search-item:last-child{border-bottom:none}.progress-exercise-item{padding:10px 0;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .15s}.progress-exercise-item:hover{background:var(--bg-elevated)}.progress-exercise-name{font-weight:600;font-size:14px}.progress-exercise-pr{font-size:12px;color:var(--text-secondary);margin-top:2px}.form-input-sm{max-width:180px}.bloodwork-marker-ref{font-size:11px;color:var(--text-muted);margin-left:4px}.delta-summary{margin-bottom:12px}.delta-highlight{font-size:13px;line-height:1.5}.delta-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:13px;gap:8px;flex-wrap:wrap}.delta-label{font-weight:600;min-width:120px}.delta-values{color:var(--text-secondary);flex:1;text-align:center;white-space:nowrap}.delta-change{font-weight:600;text-align:right;white-space:nowrap;min-width:130px}.pct-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.pct-score-circle{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;flex-shrink:0;background:var(--border);background:conic-gradient(var(--success) calc(var(--pct) * 1%),var(--border) 0%);position:relative}.pct-score-circle:before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--bg-surface)}.pct-score-circle span{position:relative;z-index:1}.progress-bar-bg{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}.qe-preview-item{padding:4px 0;font-size:13px}.muscle-map{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.muscle-map-item{font-size:10px;padding:3px 7px;border-radius:3px;font-weight:600;background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-light)}.muscle-map-item.primary{background:#3fb95033;color:var(--success);border-color:var(--success)}.muscle-map-item.secondary{background:#58a6ff1a;color:var(--text-secondary);border-color:var(--border)}.exercise-type-badge.cardio{background:#d2992226;color:var(--warning)}.cardio-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;padding:8px 0}.cardio-field label{font-size:11px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;display:block;margin-bottom:4px}.muscle-volume-bar{margin-bottom:10px}.muscle-volume-label{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:4px}.muscle-volume-track{height:18px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}.muscle-volume-fill{height:100%;border-radius:4px;transition:width .4s ease;min-width:2px;background:var(--accent)}.stat-box{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:10px 14px;text-align:center;flex:1;min-width:80px}.stat-box .stat-value{font-size:20px;font-weight:800;line-height:1.2}.stat-box .stat-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.wiki-entry summary::-webkit-details-marker{display:none}.wiki-entry summary{list-style:none}.wiki-entry summary:before{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;width:12px;height:12px;display:inline-block;margin-right:6px;transition:transform .2s}.wiki-entry[open] summary:before{transform:rotate(90deg)}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);transition:.3s;border-radius:22px}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}.nutrition-date-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.nutrition-date-display{font-weight:700;font-size:16px;min-width:160px;text-align:center}.macro-ring-container{display:flex;justify-content:center;gap:20px;margin:16px 0;flex-wrap:wrap}.macro-ring{text-align:center}.macro-ring svg{width:80px;height:80px;transform:rotate(-90deg)}.macro-ring-big svg{width:120px;height:120px}.macro-ring circle{fill:none;stroke-width:8}.macro-ring .bg{stroke:var(--border)}.macro-ring .fill{stroke-linecap:round;transition:stroke-dashoffset .5s ease;animation:ringFadeIn .6s ease}@keyframes ringFadeIn{0%{opacity:0;stroke-dashoffset:314}to{opacity:1}}.macro-ring-label{font-size:12px;color:var(--text-secondary);margin-top:4px}.macro-ring-value{font-size:16px;font-weight:700}.meal-section{margin-bottom:16px;padding:12px;background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border-light)}.meal-section-header{display:flex;justify-content:space-between;align-items:center;padding:6px 0 8px;border-bottom:2px solid var(--border);margin-bottom:8px}.meal-section-title{font-weight:700;font-size:14px}.meal-section-total{font-size:12px;color:var(--text-secondary)}.food-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:13px}.food-name{flex:1;font-weight:500}.food-macros{display:flex;gap:12px;font-size:12px;color:var(--text-secondary)}.food-macro{text-align:center;min-width:40px}.food-macro-value{font-weight:600;color:var(--text-primary)}.food-macro-label{font-size:10px}.food-search-results{max-height:200px;overflow-y:auto}.food-search-item{display:flex;justify-content:space-between;align-items:center;padding:8px;cursor:pointer;border-bottom:1px solid var(--border-light);font-size:13px}.food-search-item:hover{background:var(--bg-elevated)}.food-macros-inline{font-size:11px;color:var(--text-secondary)}.food-preview-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;font-weight:600;text-align:center;margin:8px 0;color:var(--accent)}.quick-add-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.quick-add-btn{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-box{background:var(--bg-elevated);border-radius:var(--radius);padding:12px 16px;flex:1;min-width:120px}.stat-value{font-size:20px;font-weight:700;color:var(--accent)}.stat-label{font-size:12px;color:var(--text-secondary)}.nutr-trend-bars{display:flex;gap:4px;align-items:flex-end;height:100px;margin-bottom:8px}.nutr-trend-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.nutr-trend-bar{width:100%;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px;transition:height .3s ease}.nutr-trend-label{font-size:10px;color:var(--text-muted);margin-top:4px}.nutr-trend-val{font-size:10px;color:var(--text-secondary);font-weight:600}.macro-split-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;margin-top:8px}.macro-split-segment{height:100%;transition:width .4s ease}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--border-light) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-line{height:14px;margin-bottom:10px;width:100%}.skeleton-line:last-child{width:60%}.skeleton-card{height:120px;margin-bottom:16px;border-radius:var(--radius)}.wearable-section{margin-top:16px}.wearable-import-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.wearable-import-btns .btn{font-size:12px;padding:8px 12px}.wearable-indicator{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary);background:var(--bg-elevated);padding:2px 6px;border-radius:var(--radius-sm);margin-left:6px}.wearable-indicator .wearable-icon{font-size:10px}.compound-health-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}.compound-health-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;padding:6px 8px;border-bottom:2px solid var(--border)}.compound-health-table td{padding:6px 8px;border-bottom:1px solid var(--border-light)}.compound-health-table .on-val{color:var(--accent);font-weight:600}.compound-health-table .off-val{color:var(--text-secondary)}.wearable-overlay-legend{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0;font-size:12px;color:var(--text-secondary)}.wearable-overlay-legend span{display:inline-flex;align-items:center;gap:4px}.tab-badge{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:8px;background:var(--accent);color:#fff;font-size:9px;font-weight:700;padding:0 4px;pointer-events:none;z-index:1;line-height:1}.toast-summary{font-size:12px;color:var(--text-secondary);margin-top:4px}body.modal-open{overflow:hidden;position:fixed;width:100%}.overload-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);margin-left:6px}.overload-badge.up{background:#3fb95026;color:var(--success)}.overload-badge.down{background:#f8514926;color:var(--danger)}.overload-badge.same{background:#8b949e26;color:var(--text-secondary)}.cost-table{width:100%;border-collapse:collapse;font-size:13px}.cost-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;padding:6px 8px;border-bottom:2px solid var(--border)}.cost-table td{padding:6px 8px;border-bottom:1px solid var(--border-light)}.cost-table tfoot td{border-top:2px solid var(--border);font-weight:700}.protocol-actions{display:flex;gap:4px;flex-shrink:0}.water-tracker{display:flex;gap:8px;align-items:center;justify-content:center}@media(max-width:768px){.set-row{grid-template-columns:30px 1fr 1fr 60px 30px;font-size:12px}.delta-row{flex-direction:column;align-items:flex-start}.delta-values,.delta-change{text-align:left;min-width:auto}.form-input-sm{max-width:100%}.macro-ring-container{gap:12px}.macro-ring-big svg{width:100px;height:100px}.meal-section-header{flex-direction:column;align-items:flex-start;gap:4px}.quick-add-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.compound-health-table{font-size:11px}.compound-health-table th,.compound-health-table td{padding:4px 6px}.protocol-item{flex-wrap:wrap;gap:8px}.protocol-info{min-width:0;flex:1}.protocol-actions{width:auto}.protocol-schedule{font-size:11px;word-break:break-word}.cost-table{font-size:11px}.cost-table th,.cost-table td{padding:4px 6px}.card-header{flex-direction:column;align-items:flex-start;gap:8px}.card-header>div{width:100%}.card-header .btn{font-size:12px;padding:6px 10px}.analytics-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:10px 12px}.stat-value{font-size:18px}.today-header{flex-direction:column;align-items:flex-start;gap:8px}.today-greeting{flex-wrap:wrap;gap:6px}.greeting-hello{font-size:20px}.daily-progress-row{gap:4px}.progress-ring-item{min-width:50px;padding:4px 2px}.progress-ring{width:36px;height:36px}.quick-action-btn{padding:8px 2px;min-width:50px}.feature-discovery-grid{grid-template-columns:repeat(2,1fr)}.dose-item{flex-wrap:wrap;gap:6px;padding:10px}.dose-info{min-width:0;flex:1}.dose-extra{width:100%;margin-top:4px}.weekly-overview{gap:4px}.weekly-day-card{padding:6px 4px;min-width:42px}.journal-grid{grid-template-columns:1fr 1fr;gap:8px}.modal{max-height:85vh;margin:auto 8px;padding:16px}.modal-form{max-height:60vh;overflow-y:auto}.profile-bar{flex-wrap:wrap;gap:6px}.profile-bar select{max-width:140px}.cardio-fields{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.streak-bar{gap:12px}.conflict-matrix{font-size:9px}.conflict-matrix th,.conflict-matrix td{padding:3px}.dashboard-grid{grid-template-columns:1fr}.phase-timeline{overflow-x:auto}.serum-controls{flex-direction:column}.ester-checkboxes,.risk-gauges{grid-template-columns:1fr 1fr}.comparison-table{font-size:10px}.comparison-table th,.comparison-table td{padding:4px}.meal-prep-grid,.supplement-grid,.wearable-cards,.proportion-chart,.analytics-cards{grid-template-columns:1fr}.volume-grid{grid-template-columns:1fr 1fr}.tdee-result,.photo-compare{flex-direction:column}.correlation-matrix{font-size:9px;overflow-x:auto}.split-preview,.cycle-comparison-grid,.export-options{grid-template-columns:1fr}}[data-theme=amoled]{--bg-primary: #000000;--bg-surface: #0a0a0a;--bg-elevated: #111111;--bg-input: #000000;--border: #1a1a1a;--border-light: #111111;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #484f58;--accent: #58a6ff;--accent-hover: #79c0ff;--success: #3fb950;--warning: #d29922;--danger: #f85149;--info: #58a6ff;--shadow: none}[data-theme=amoled] .card{border-color:#1a1a1a}[data-theme=amoled] .card:hover{box-shadow:none;transform:none}[data-theme=amoled] .header,[data-theme=amoled] .tab-bar{border-bottom-color:#1a1a1a}[data-theme=amoled] .bottom-nav{border-top-color:#1a1a1a}.a11y-large-text{font-size:16px}.a11y-large-text .form-input,.a11y-large-text .form-select{font-size:16px;min-height:48px}.a11y-large-text .btn{font-size:15px;min-height:48px}.a11y-large-text .card-title{font-size:15px}.a11y-large-text .stat-value{font-size:28px}.a11y-high-contrast{--border: var(--text-secondary)}.a11y-high-contrast .card,.a11y-high-contrast .btn,.a11y-high-contrast .form-input,.a11y-high-contrast .form-select{border-width:2px}.a11y-no-animations,.a11y-no-animations *{animation-duration:0s!important;transition-duration:0s!important}.sub-tabs{display:flex;gap:4px;margin-bottom:16px;flex-wrap:wrap}.sub-tab{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.sub-tab:hover{background:var(--bg-elevated);color:var(--text-primary)}.sub-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.today-view-switcher{display:flex;gap:4px;margin-bottom:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:3px}.view-switch-btn{flex:1;padding:8px 16px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.view-switch-btn:hover{color:var(--text-primary)}.view-switch-btn.active{background:var(--accent);color:#fff}.today-greeting{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:4px 0}.greeting-text{flex:1;min-width:0}.greeting-hello{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.2}.today-date-line{font-size:13px;color:var(--text-secondary);margin-top:2px}.greeting-right{flex-shrink:0;margin-left:12px}.daily-progress-row{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 0}.daily-progress-row::-webkit-scrollbar{display:none}.progress-ring-item{display:flex;flex-direction:column;align-items:center;min-width:56px;flex:1;gap:3px;cursor:pointer;padding:6px 2px;border-radius:var(--radius);transition:background .15s}.progress-ring-item:hover{background:var(--bg-surface)}.progress-ring{width:40px;height:40px;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--border-light);stroke-width:3}.ring-fill{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .3s ease;animation:ringFillIn .8s ease-out forwards}@keyframes ringFillIn{0%{stroke-dashoffset:106.8}}.progress-ring-item.completed .ring-fill{stroke:var(--success)}.progress-ring-item.empty .ring-fill{stroke:var(--text-muted);opacity:.3}.progress-ring text{transform:rotate(90deg);transform-origin:center}.ring-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;line-height:1}.ring-value{font-size:11px;font-weight:600;color:var(--text-secondary);line-height:1}.progress-ring-item.completed .ring-value{color:var(--success)}.quick-actions{display:flex;gap:6px;margin-bottom:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.quick-actions::-webkit-scrollbar{display:none}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:56px;padding:10px 4px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:background .15s,border-color .15s,color .15s;font-family:inherit}.quick-action-btn:hover,.quick-action-btn:active{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent)}.qa-icon{line-height:1}.qa-icon svg{width:18px;height:18px}.qa-label{font-size:10px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.qa-expand-form{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;animation:fadeSlideIn .15s ease}.qa-expand-label{font-size:12px;color:var(--text-secondary);font-weight:600;white-space:nowrap}.qa-mood-btn{min-width:36px;text-align:center}.qa-mood-btn.active{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.qa-meal-picker{flex-wrap:wrap}.qa-meal-type-btn{flex:1;min-width:70px;text-align:center}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.today-empty-card{padding:16px;margin-bottom:4px}.today-empty-header{display:flex;align-items:flex-start;gap:12px}.today-empty-icon{flex-shrink:0;color:var(--text-muted)}.today-empty-icon svg{width:24px;height:24px}.today-snap-card{cursor:pointer;padding:14px 16px;margin-top:10px;transition:border-color .15s}.today-snap-card:hover{border-color:var(--accent)}.snap-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.snap-icon{flex-shrink:0;color:var(--text-muted);line-height:1}.snap-icon svg{width:16px;height:16px}.snap-icon.completed{color:var(--success)}.snap-badge{margin-left:auto;font-size:11px;padding:2px 8px;border-radius:10px;background:#58a6ff1f;color:var(--accent);font-weight:600}.snap-badge.success{background:#3fb9501f;color:var(--success)}.snap-macros{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.snap-empty{font-size:13px;color:var(--text-muted);font-style:italic}.achievement-banner{padding:8px 12px;margin-top:10px;background:#3fb9501a;border:1px solid rgba(63,185,80,.25);border-radius:var(--radius-sm);color:var(--success);font-size:13px;font-weight:600;text-align:center}.onboarding-checklist{display:flex;flex-direction:column;gap:6px}.ob-item{font-size:13px;color:var(--text-muted);padding:4px 0;transition:color .2s}.ob-item.done{color:var(--success)}.feature-discovery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.fd-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;transition:border-color .15s}.fd-item:hover{border-color:var(--accent)}.fd-icon{line-height:1}.fd-icon svg{width:20px;height:20px}.fd-text{font-size:11px;color:var(--text-secondary);text-align:center;white-space:nowrap}.tutorial-overlay{position:fixed;inset:0;background:#0009;z-index:10000;display:flex;align-items:flex-end;justify-content:center;padding:16px;animation:fadeIn .3s ease}.tutorial-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;padding:20px;max-width:400px;width:100%;margin-bottom:env(safe-area-inset-bottom,0);animation:fadeSlideIn .3s ease;box-shadow:0 8px 32px #0006}.tutorial-progress{display:flex;gap:4px;margin-bottom:12px}.tutorial-dot{flex:1;height:3px;border-radius:2px;background:var(--border-light);transition:background .2s}.tutorial-dot.active{background:var(--accent)}.tutorial-dot.done{background:var(--success)}.tutorial-step-num{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.tutorial-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.tutorial-body{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:16px}.tutorial-actions{display:flex;gap:8px;align-items:center}.tutorial-highlight{position:relative;z-index:10001;box-shadow:0 0 0 4px var(--accent),0 0 0 6px #58a6ff4d;border-radius:var(--radius)}.subtab-group-divider{display:inline-block;width:1px;height:20px;background:var(--border);margin:0 4px;vertical-align:middle;flex-shrink:0}.side-effect-section{margin-bottom:16px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:16px}.dashboard-widget{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .15s}.dashboard-widget:hover{border-color:var(--accent);box-shadow:0 2px 8px #58a6ff1a}.widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.widget-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.widget-value{font-size:24px;font-weight:700;color:var(--text-primary);line-height:1.2}.widget-subtitle{font-size:12px;color:var(--text-muted);margin-top:4px}.widget-icon{font-size:20px;opacity:.7}.conflict-matrix{width:100%;border-collapse:collapse;font-size:11px}.conflict-matrix th,.conflict-matrix td{padding:6px;text-align:center;border:1px solid var(--border-light);min-width:40px}.conflict-matrix th{background:var(--bg-elevated);font-weight:600;font-size:10px;writing-mode:vertical-rl;text-orientation:mixed;max-width:40px;padding:8px 4px}.conflict-matrix th.row-header{writing-mode:horizontal-tb;text-align:right;max-width:none;padding:6px 8px}.matrix-cell{width:30px;height:30px;border-radius:4px;cursor:pointer;transition:transform .1s}.matrix-cell:hover{transform:scale(1.2)}.matrix-cell.synergy{background:var(--success);opacity:.7}.matrix-cell.caution{background:var(--warning);opacity:.7}.matrix-cell.conflict{background:var(--danger);opacity:.7}.matrix-cell.neutral{background:var(--bg-elevated)}.matrix-cell.self{background:var(--border-light)}.risk-gauges{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.risk-gauge{text-align:center;padding:16px;background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border-light)}.gauge-ring{width:80px;height:80px;border-radius:50%;margin:0 auto 8px;position:relative;display:flex;align-items:center;justify-content:center}.gauge-ring svg{position:absolute;top:0;left:0}.gauge-score{font-size:22px;font-weight:700;z-index:1}.gauge-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.gauge-status{font-size:11px;margin-top:4px;font-weight:600}.gauge-good{color:var(--success)}.gauge-moderate{color:var(--warning)}.gauge-poor{color:var(--danger)}.serum-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.serum-controls .form-group{margin-bottom:0;flex:1;min-width:120px}.serum-stats{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}.serum-stat{text-align:center;padding:8px 16px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.serum-stat-value{font-size:18px;font-weight:700;color:var(--accent)}.serum-stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase}.ester-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;margin-bottom:12px}.ester-check{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-light);font-size:12px;cursor:pointer;transition:border-color .15s}.ester-check:hover{border-color:var(--accent)}.ester-check.selected{border-color:var(--accent);background:#58a6ff14}.ester-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.phase-timeline{position:relative;padding:16px 0}.phase-bar{height:28px;border-radius:4px;position:relative;margin-bottom:6px;display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:600;color:#fff;overflow:hidden;transition:opacity .15s}.phase-bar.blast{background:linear-gradient(135deg,#ef4444,#dc2626)}.phase-bar.cruise{background:linear-gradient(135deg,#3b82f6,#2563eb)}.phase-bar.pct{background:linear-gradient(135deg,#22c55e,#16a34a)}.phase-bar.off{background:var(--bg-elevated);color:var(--text-secondary)}.phase-label{position:absolute;left:8px;font-size:10px;white-space:nowrap}.washout-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-light)}.washout-bar-bg{flex:1;height:20px;background:var(--bg-elevated);border-radius:4px;overflow:hidden;position:relative}.washout-bar-fill{height:100%;border-radius:4px;transition:width .3s}.washout-bar-fill.active{background:var(--danger)}.washout-bar-fill.declining{background:var(--warning)}.washout-bar-fill.cleared{background:var(--success)}.comparison-table{width:100%;border-collapse:collapse;font-size:12px}.comparison-table th,.comparison-table td{padding:6px 10px;border:1px solid var(--border-light);text-align:center}.comparison-table th{background:var(--bg-elevated);font-weight:600}.comparison-table .delta-good{color:var(--success);font-weight:600}.comparison-table .delta-bad{color:var(--danger);font-weight:600}.comparison-table .delta-neutral{color:var(--warning)}.photo-compare{display:flex;gap:16px;align-items:flex-start}.photo-frame{flex:1;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;position:relative;min-height:200px}.photo-frame img{width:100%;height:auto;display:block}.photo-date-badge{position:absolute;bottom:8px;left:8px;background:#000000b3;color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.photo-upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:30px;text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color .15s}.photo-upload-zone:hover{border-color:var(--accent);color:var(--accent)}.supplement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}.supplement-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-light);transition:border-color .15s}.supplement-item.taken{border-color:var(--success)}.supplement-item.taken:after{content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;width:14px;height:14px;display:inline-block;margin-left:auto}.supplement-name{font-size:13px;font-weight:600}.supplement-dose{font-size:11px;color:var(--text-muted)}.supplement-timing{font-size:10px;padding:2px 6px;border-radius:10px;background:var(--bg-primary);color:var(--text-secondary)}.tdee-result{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}.tdee-box{flex:1;min-width:120px;text-align:center;padding:16px;background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border-light)}.tdee-box.primary{border-color:var(--accent)}.tdee-value{font-size:28px;font-weight:700;color:var(--accent)}.tdee-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;margin-top:4px}.fasting-ring{width:180px;height:180px;border-radius:50%;margin:20px auto;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column}.fasting-ring svg{position:absolute;top:0;left:0;transform:rotate(-90deg)}.fasting-time{font-size:32px;font-weight:700;z-index:1}.fasting-status{font-size:12px;color:var(--text-secondary);z-index:1}.fasting-controls{display:flex;gap:8px;justify-content:center;margin-top:16px}.meal-prep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.meal-prep-day{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);padding:10px}.meal-prep-day-header{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:8px;text-transform:uppercase}.meal-slot{padding:6px;border-bottom:1px solid var(--border-light);font-size:11px}.meal-slot:last-child{border-bottom:none}.meal-slot-label{font-weight:600;color:var(--text-secondary);font-size:10px;text-transform:uppercase}.wearable-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.wearable-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .15s}.wearable-card:hover{border-color:var(--accent)}.wearable-logo{font-size:28px;margin-bottom:8px}.wearable-name{font-size:14px;font-weight:600}.wearable-status{font-size:11px;color:var(--text-muted);margin-top:2px}.wearable-status.connected{color:var(--success)}.cgm-time-in-range{display:flex;height:24px;border-radius:12px;overflow:hidden;margin:12px 0}.cgm-range-segment{transition:width .3s}.cgm-range-low{background:var(--danger)}.cgm-range-normal{background:var(--success)}.cgm-range-high{background:var(--warning)}.emergency-card{background:#fff;color:#000;border:3px solid #dc2626;border-radius:12px;padding:24px;max-width:400px;margin:0 auto}.emergency-card-header{text-align:center;border-bottom:2px solid #dc2626;padding-bottom:12px;margin-bottom:16px}.emergency-card-title{font-size:18px;font-weight:800;color:#dc2626;text-transform:uppercase}.emergency-compound-list{list-style:none;padding:0}.emergency-compound-list li{padding:6px 0;border-bottom:1px solid #e5e7eb;font-size:13px;display:flex;justify-content:space-between}.correlation-matrix{border-collapse:collapse;font-size:10px}.correlation-matrix th,.correlation-matrix td{padding:4px;border:1px solid var(--border-light);text-align:center;min-width:36px}.correlation-cell{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff}.split-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.split-day-card{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);padding:12px}.split-day-name{font-size:13px;font-weight:700;color:var(--accent);margin-bottom:6px}.split-exercise{font-size:11px;padding:3px 0;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between}.split-exercise:last-child{border-bottom:none}.volume-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.volume-item{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:10px;text-align:center}.volume-muscle{font-size:12px;font-weight:600;margin-bottom:4px}.volume-sets{font-size:20px;font-weight:700;color:var(--accent)}.volume-range{font-size:10px;color:var(--text-muted)}.volume-bar{height:4px;background:var(--bg-primary);border-radius:2px;margin-top:6px;overflow:hidden}.volume-bar-fill{height:100%;border-radius:2px;transition:width .3s}.volume-bar-fill.under{background:var(--warning)}.volume-bar-fill.optimal{background:var(--success)}.volume-bar-fill.over{background:var(--danger)}.rest-timer{text-align:center;padding:20px;background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border)}.rest-timer-display{font-size:48px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent);line-height:1;margin:12px 0}.rest-timer-display.warning{color:var(--warning)}.rest-timer-display.done{color:var(--success);animation:pulse .5s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.rest-presets{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:12px}.rest-preset{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.rest-preset:hover{border-color:var(--accent);color:var(--accent)}.rest-preset.active{background:var(--accent);color:#fff;border-color:var(--accent)}.progress-ring-circle{transition:stroke-dashoffset .35s;transform-origin:center}.period-phase{padding:12px 16px;background:var(--bg-elevated);border-left:4px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:8px}.period-phase.strength{border-left-color:var(--danger)}.period-phase.hypertrophy{border-left-color:var(--success)}.period-phase.peak{border-left-color:#a855f7}.period-phase.deload{border-left-color:var(--text-muted)}.period-phase-name{font-size:13px;font-weight:700;margin-bottom:4px}.period-phase-detail{font-size:11px;color:var(--text-secondary)}.blend-vial{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);padding:14px;margin-bottom:10px}.blend-compounds{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.blend-compound-tag{padding:3px 10px;border-radius:12px;background:var(--bg-primary);font-size:11px;font-weight:600;border:1px solid var(--border)}.pct-timeline{position:relative;padding-left:20px;margin:16px 0}.pct-timeline:before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;background:var(--border)}.pct-step{position:relative;padding:8px 0 16px 16px}.pct-step:before{content:"";position:absolute;left:-17px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-surface)}.pct-step.wait:before{background:var(--warning)}.pct-step.active:before{background:var(--success)}.pct-step.complete:before{background:var(--text-muted)}.pct-step-title{font-size:13px;font-weight:600}.pct-step-detail{font-size:11px;color:var(--text-secondary);margin-top:2px}.export-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.export-option{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);padding:16px;text-align:center;cursor:pointer;transition:all .15s}.export-option:hover{border-color:var(--accent)}.export-icon{font-size:28px;margin-bottom:8px}.export-format{font-size:13px;font-weight:600}.export-desc{font-size:11px;color:var(--text-muted);margin-top:2px}.alcohol-warning{padding:10px 14px;background:#f851491a;border:1px solid var(--danger);border-radius:var(--radius);font-size:12px;color:var(--danger);margin-top:10px}.gut-rating{display:flex;gap:4px;align-items:center}.gut-dot{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.gut-dot:hover{border-color:var(--accent)}.gut-dot.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.trend-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;background:var(--bg-elevated);border-radius:var(--radius);border-left:3px solid var(--warning);margin-bottom:8px}.trend-alert.critical{border-left-color:var(--danger)}.trend-alert.improving{border-left-color:var(--success)}.trend-arrow{font-size:18px;font-weight:700;line-height:1}.trend-arrow.up{color:var(--danger)}.trend-arrow.down{color:var(--success)}.lock-screen{position:fixed;inset:0;background:var(--bg-primary);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.lock-icon{font-size:48px;color:var(--accent)}.pin-input{display:flex;gap:8px}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);transition:all .2s}.pin-dot.filled{background:var(--accent);border-color:var(--accent)}.year-heatmap{display:grid;grid-template-columns:repeat(53,1fr);gap:2px}.heatmap-cell{aspect-ratio:1;border-radius:2px;background:var(--bg-elevated);min-width:8px}.heatmap-cell.level-1{background:#3fb95033}.heatmap-cell.level-2{background:#3fb95066}.heatmap-cell.level-3{background:#3fb95099}.heatmap-cell.level-4{background:#3fb950e6}.analytics-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;margin-left:4px}.qr-container{background:#fff;padding:16px;border-radius:var(--radius);display:inline-block;margin:12px 0}.qr-container canvas{display:block}.cycle-comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.cycle-phase-card{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius);padding:14px}.cycle-phase-label{font-size:12px;font-weight:700;text-transform:uppercase;margin-bottom:8px;padding-bottom:6px;border-bottom:2px solid var(--accent)}.cycle-phase-label.baseline{border-bottom-color:var(--text-muted)}.cycle-phase-label.mid{border-bottom-color:var(--warning)}.cycle-phase-label.end{border-bottom-color:var(--danger)}.cycle-phase-label.pct{border-bottom-color:var(--success)}.proportion-chart{display:grid;grid-template-columns:1fr 1fr;gap:8px}.proportion-item{display:flex;flex-direction:column;padding:10px;background:var(--bg-elevated);border-radius:var(--radius-sm)}.proportion-label{font-size:11px;color:var(--text-secondary);font-weight:600}.proportion-values{display:flex;justify-content:space-between;margin-top:4px}.proportion-current{font-size:14px;font-weight:700}.proportion-ideal{font-size:12px;color:var(--text-muted)}.proportion-bar{height:4px;background:var(--bg-primary);border-radius:2px;margin-top:6px;overflow:hidden;position:relative}.proportion-bar-fill{height:100%;border-radius:2px}.proportion-bar-target{position:absolute;top:-2px;width:2px;height:8px;background:var(--text-secondary)}.analytics-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.superset-group{border-left:3px solid var(--accent);padding-left:10px;margin-bottom:8px;background:#58a6ff08;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.superset-label{font-size:10px;font-weight:600;color:var(--accent);text-transform:uppercase;padding:4px 0}.hr-zones{display:flex;gap:4px;margin:8px 0}.hr-zone{flex:1;text-align:center;padding:6px 4px;border-radius:var(--radius-sm);font-size:10px;font-weight:600}.hr-zone.z1{background:#3b82f633;color:#3b82f6}.hr-zone.z2{background:#22c55e33;color:#22c55e}.hr-zone.z3{background:#eab30833;color:#eab308}.hr-zone.z4{background:#f9731633;color:#f97316}.hr-zone.z5{background:#ef444433;color:#ef4444}.hr-zone.active{font-weight:700;transform:scale(1.05)}.lab-import-area{border:2px dashed var(--border);border-radius:var(--radius);padding:24px;text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color .15s;margin-bottom:12px}.lab-import-area:hover{border-color:var(--accent)}.lab-import-area.dragover{border-color:var(--success);background:#3fb9500d}.disclaimer-box{padding:8px 12px;border:1px solid var(--danger);border-radius:var(--radius-sm);background:#f851490d;font-size:11px;color:var(--danger);margin-bottom:12px}.disclaimer-box strong{font-weight:700}.sync-status{display:flex;align-items:center;gap:8px;font-size:12px}.sync-dot{width:8px;height:8px;border-radius:50%}.sync-dot.synced{background:var(--success)}.sync-dot.pending{background:var(--warning);animation:pulse 1s infinite}.sync-dot.error{background:var(--danger)}.grocery-list{columns:2;column-gap:16px}.grocery-category{break-inside:avoid;margin-bottom:12px}.grocery-category-title{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:4px;text-transform:uppercase}.grocery-item{font-size:12px;padding:3px 0;display:flex;align-items:center;gap:6px}.grocery-check{width:14px;height:14px;border:1px solid var(--border);border-radius:3px;flex-shrink:0}.auth-modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.auth-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;padding:32px 28px 24px;max-width:380px;width:100%;position:relative;box-shadow:0 20px 60px #0006}.auth-modal-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-muted);font-size:22px;cursor:pointer;line-height:1;padding:4px}.auth-modal-close:hover{color:var(--text-primary)}.auth-modal-logo{text-align:center;font-size:36px;margin-bottom:8px}.auth-modal-title{text-align:center;font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.auth-modal-subtitle{text-align:center;font-size:13px;color:var(--text-secondary);margin:0 0 20px}.auth-modal-error{background:#f851491f;border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius);padding:8px 12px;font-size:13px;margin-bottom:12px}.auth-label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.auth-input{width:100%;margin-bottom:14px;padding:10px 12px;font-size:14px;box-sizing:border-box}.auth-submit{width:100%;padding:11px;font-size:15px;font-weight:600;margin-top:4px}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;font-size:13px;color:var(--text-muted);margin:16px 0 0}.auth-switch a{color:var(--accent);text-decoration:none;font-weight:600}.auth-switch a:hover{text-decoration:underline}.cloud-account-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px}.cloud-account-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0}.cloud-account-name{font-weight:600;font-size:14px;color:var(--text-primary)}.cloud-account-email{font-size:12px;color:var(--text-secondary)}.user-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.user-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.4px;background:var(--badge-bg);color:var(--badge-color);border:1px solid var(--badge-color);opacity:.9}.user-badge svg{flex-shrink:0;vertical-align:middle}.sync-indicator{font-size:12px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;transition:opacity .3s}.sync-syncing{color:var(--accent);animation:sync-spin 1s linear infinite}.sync-synced{color:var(--success)}.sync-error{color:var(--danger);font-weight:700}.sync-conflict{color:var(--warning)}@keyframes sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-auth-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-hover, var(--accent)));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;padding:0;min-width:36px;box-shadow:0 2px 8px #0000002e;border:2px solid rgba(255,255,255,.15);transition:box-shadow .15s,transform .15s}.header-auth-avatar:hover{box-shadow:0 4px 12px #00000040;transform:scale(1.06)}.header-auth-initials{line-height:1;letter-spacing:.02em}.header-signin-btn{display:flex;align-items:center;gap:6px;padding:0 14px;height:34px;font-size:13px;font-weight:600;border-radius:17px;white-space:nowrap}@media(max-width:768px){.sub-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding-bottom:4px;margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.sub-tabs::-webkit-scrollbar{display:none}.sub-tab{flex-shrink:0;padding:8px 14px;font-size:12px;min-height:36px;display:flex;align-items:center}.bottom-nav{height:auto;min-height:var(--bottom-nav-height);padding:4px 0;padding-bottom:calc(4px + env(safe-area-inset-bottom))}.bottom-nav-btn{flex:0 0 auto;min-width:56px;padding:4px 6px}.bottom-nav-icon{font-size:20px}.bottom-nav-label{font-size:9px;white-space:nowrap}.cost-table,table.rm-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.cost-table thead,.cost-table tbody,table.rm-table thead,table.rm-table tbody{display:table;width:100%}.workout-plan-item{flex-wrap:wrap;padding:12px;gap:8px}.workout-plan-item .btn{min-height:36px}.header-logo{gap:6px}.header-logo .logo-icon{font-size:20px}.header-actions{display:flex;gap:2px;flex-wrap:nowrap}.card{border-radius:8px}.form-group{margin-bottom:10px}.form-label{font-size:12px;margin-bottom:4px}.stat-box{min-width:0;padding:8px 10px}.auth-modal{width:100vw;max-width:100vw;min-height:100vh;border-radius:0;padding:24px 20px}.food-search-item{padding:10px 8px;min-height:44px;display:flex;align-items:center;gap:8px}.quick-add-grid{grid-template-columns:repeat(3,1fr)!important;gap:6px}.quick-add-btn{padding:8px 4px;font-size:11px;min-height:40px}#lock-keypad .lock-key{min-height:52px;font-size:20px;border-radius:8px}.year-heatmap{margin-left:-8px;margin-right:-8px;padding:0 8px}.today-view-switcher{justify-content:center}.view-switch-btn{padding:8px 16px;font-size:13px;min-height:36px}.workout-subtabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.workout-subtabs::-webkit-scrollbar{display:none}.workout-subtab{flex-shrink:0;white-space:nowrap;padding:8px 12px;font-size:12px;min-height:36px}.settings-row .form-input,.settings-row .form-select,.form-input-sm{max-width:100%;width:100%}}@media(max-width:375px){.bottom-nav-btn{min-width:48px;padding:4px 3px}.bottom-nav-label{font-size:8px}.bottom-nav-icon{font-size:18px}.sub-tab{padding:6px 10px;font-size:11px}.workout-subtab{padding:6px 8px;font-size:11px}.card{padding:10px}.header-actions .btn-ghost{min-width:36px;min-height:36px;padding:6px}}.gdpr-banner{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:var(--bg-elevated);border-top:1px solid var(--border);box-shadow:0 -4px 20px #0000004d;padding:16px 20px;animation:gdprSlideUp .4s ease-out}@keyframes gdprSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.gdpr-banner-inner{max-width:800px;margin:0 auto;display:flex;align-items:center;gap:16px}.gdpr-banner-text{flex:1}.gdpr-banner-text strong{font-size:13px;color:var(--text-primary);display:block;margin-bottom:4px}.gdpr-banner-text p{font-size:11px;color:var(--text-secondary);line-height:1.5;margin:0}.gdpr-banner-actions{display:flex;gap:8px;flex-shrink:0}@media(max-width:600px){.gdpr-banner-inner{flex-direction:column;align-items:stretch;gap:10px}.gdpr-banner-actions{justify-content:flex-end}.gdpr-banner{padding:12px 16px 20px}}.research-program-card{background:linear-gradient(135deg,#22c55e14,#3b82f614);border:1px solid var(--accent);border-radius:var(--radius);padding:16px;margin-bottom:16px}.research-program-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.research-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.5px;background:linear-gradient(135deg,var(--accent),var(--success));color:#fff;white-space:nowrap}.research-perks-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.research-perk-item{display:flex;gap:8px;align-items:flex-start;padding:8px;background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border)}.research-perk-icon{font-size:18px;flex-shrink:0;line-height:1}.research-optin-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;padding:10px 12px;background:#22c55e1a;border:1px solid var(--success);border-radius:var(--radius);margin-top:12px}.research-status-card{padding:14px;border-radius:var(--radius)}.research-status-active{background:linear-gradient(135deg,#22c55e14,#3b82f60f);border:1px solid var(--success)}.research-status-inactive{background:var(--bg-elevated);border:1px solid var(--border)}.research-perks-mini{display:flex;flex-wrap:wrap;gap:6px}.research-perk-mini{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;font-size:11px;color:var(--text-secondary)}@media(max-width:600px){.research-perks-grid{grid-template-columns:1fr}}
