*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f0f1a;--text-primary: #eaeaea;--text-secondary: #a0a0a0;--accent: #7b68ee;--accent-dim: #5a4db8;--success: #4ade80;--error: #f87171}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden}.login-screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;padding-top:env(safe-area-inset-top)}.login-screen h1{font-size:1.75rem;margin-bottom:2rem}.login-screen form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:300px}.login-screen input{padding:1rem;border:1px solid var(--accent-dim);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem}.login-screen input:focus{outline:none;border-color:var(--accent)}.login-screen button{padding:1rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.login-screen button:disabled{opacity:.6}.login-screen .error{color:var(--error);text-align:center}.hamburger-btn{background:transparent;border:none;padding:.5rem;margin:-.5rem .75rem -.5rem -.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.hamburger-icon{font-size:1.5rem;color:var(--text-primary);line-height:1}.hamburger-btn:active .hamburger-icon{opacity:.7}.menu-overlay{position:fixed;inset:0;background:#00000080;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:100}.menu-overlay.open{opacity:1;visibility:visible}.slide-menu{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;background:var(--bg-secondary);transform:translate(-100%);transition:transform .3s ease-out;z-index:101;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.slide-menu.open{transform:translate(0)}.menu-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--bg-tertiary)}.menu-title{font-size:1.1rem;font-weight:600;color:var(--accent-dim);text-transform:uppercase;letter-spacing:.05em}.menu-close{background:transparent;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;line-height:1}.menu-close:active{opacity:.7}.menu-nav{display:flex;flex-direction:column;padding:1rem 0}.menu-item{background:transparent;border:none;padding:1rem 1.5rem;text-align:left;font-size:1.1rem;color:var(--text-primary);cursor:pointer;transition:background .15s}.menu-item:active{background:var(--bg-tertiary)}.menu-item.active{color:var(--accent);background:#7b68ee1a}.celebration-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center;animation:overlayFadeIn .2s ease-out forwards}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.celebration-banner{background:#16213ef7;border:2px solid var(--accent);border-radius:12px;padding:1.5rem 2rem;animation:celebrationAppear .3s ease-out forwards;box-shadow:0 8px 32px #00000080;max-width:90vw;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.celebration-date-badge{display:flex;flex-direction:column;align-items:center;border-radius:8px;overflow:hidden;min-width:70px}.celebration-month{background:var(--accent);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.1em;padding:.25rem .75rem;width:100%}.celebration-day{font-size:2.2rem;font-weight:700;color:var(--text-primary);background:#a78bfa40;padding:.2rem .75rem .3rem;line-height:1;width:100%;text-align:center}.celebration-text{font-size:1rem;color:#6ab589;font-weight:400;font-style:italic;letter-spacing:.05em}.celebration-message{font-size:1.05rem;color:#fff;animation:messageFadeIn .5s ease-out forwards;line-height:1.5;max-width:280px;text-shadow:0 0 8px rgba(255,255,255,.9),0 0 16px rgba(167,139,250,1),0 0 32px rgba(167,139,250,.8),0 0 48px rgba(139,92,246,.6)}@keyframes messageGlow{0%,to{text-shadow:0 0 8px rgba(255,255,255,.9),0 0 16px rgba(167,139,250,1),0 0 32px rgba(167,139,250,.8),0 0 48px rgba(139,92,246,.6)}50%{text-shadow:0 0 12px rgba(255,255,255,1),0 0 24px rgba(167,139,250,1),0 0 40px rgba(167,139,250,.9),0 0 60px rgba(139,92,246,.7)}}.celebration-message-loading{display:flex;gap:.3rem;padding:.5rem 0}.loading-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;opacity:.4;animation:loadingPulse 1.2s ease-in-out infinite}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes loadingPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes celebrationAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes messageFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.extra-confetti-btn{margin-top:.5rem;padding:.6rem 1.2rem;background:linear-gradient(135deg,var(--accent) 0%,#9b6dff 100%);border:none;border-radius:20px;color:#fff;font-weight:600;font-size:.85rem;letter-spacing:.05em;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 4px 12px #7b68ee66}.extra-confetti-btn:active{transform:scale(.95);box-shadow:0 2px 8px #7b68ee4d}.extra-confetti-btn.mega{background:linear-gradient(135deg,gold,#ff6b00,#ff1493);box-shadow:0 4px 16px #ffd70080;animation:megaPulse 1.5s ease-in-out infinite}@keyframes megaPulse{0%,to{box-shadow:0 4px 16px #ffd70080}50%{box-shadow:0 6px 24px #ff6b00b3}}.streak-badge{font-size:1.1rem;font-weight:700;color:gold;animation:streakFadeIn .5s ease-out forwards;text-shadow:0 0 8px rgba(255,215,0,.8),0 0 16px rgba(255,165,0,.6)}@keyframes streakFadeIn{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.holiday-banner{font-size:1.15rem;font-weight:700;letter-spacing:.03em;color:#fff;background:linear-gradient(135deg,#7b68ee66,#a78bfa4d);border:1px solid rgba(167,139,250,.5);border-radius:8px;padding:.4rem 1rem;animation:holidayFadeIn .4s ease-out forwards;text-align:center}@keyframes holidayFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.celebration-dog-photo{max-width:280px;width:100%;border-radius:12px;animation:dogPhotoFadeIn .6s ease-out forwards;box-shadow:0 4px 16px #0006}@keyframes dogPhotoFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dog-photo-footnote{font-size:.65rem;color:#fff9;margin-top:-.15rem;font-style:italic}.test-page{min-height:100vh;padding:1.5rem;background:var(--bg);color:var(--text-primary)}.test-page h1{font-size:1.3rem;margin-bottom:1rem;text-align:center}.test-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;max-width:800px;margin:0 auto}.test-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1rem;text-align:center;cursor:pointer;transition:transform .1s ease,border-color .2s ease;font-size:.85rem}.test-card:active{transform:scale(.97)}.test-card:hover{border-color:var(--accent)}.test-card .test-emoji{font-size:1.8rem;display:block;margin-bottom:.4rem}.data-entry{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.data-entry header,.analysis-page header{display:flex;align-items:center;padding:1rem 1.5rem;background:var(--bg-secondary);padding-top:calc(1rem + env(safe-area-inset-top))}.data-entry header h1,.analysis-page header h1{font-size:1.1rem;font-weight:600;color:var(--accent-dim);text-transform:uppercase;letter-spacing:.05em;flex:1}.analysis-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);background:var(--bg-primary)}.analysis-page header{gap:.5rem}.analysis-body{flex:1;overflow-y:auto;padding:1rem}.time-range-selector{display:flex;gap:.25rem;margin-left:auto}.time-btn{padding:.35rem .5rem;border:1px solid var(--accent-dim);border-radius:4px;background:transparent;color:var(--text-secondary);font-size:.7rem;font-weight:600;cursor:pointer;transition:all .15s}.time-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.analysis-loading,.analysis-error,.analysis-empty{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--text-secondary);font-size:.9rem}.analysis-error{color:var(--error)}.output-selector{margin-bottom:1.25rem}.output-selector select{width:100%;padding:.75rem 1rem;border:2px solid var(--accent-dim);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;font-weight:600;cursor:pointer}.analysis-tabs{display:flex;gap:.5rem;margin-bottom:1rem;background:var(--bg-tertiary);padding:.25rem;border-radius:10px}.tab-btn{flex:1;padding:.75rem 1rem;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.tab-btn.active{background:var(--accent);color:#fff}.tab-btn:not(.active):hover{background:#ffffff0d}.relationships-section{margin-bottom:1.5rem}.section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem}.relationships-section h2,.visualization-section h2,.pairs-section h2{font-size:.85rem;font-weight:600;color:var(--accent-dim);text-transform:uppercase;letter-spacing:.05em;margin:0}.column-hint{font-size:.65rem;color:var(--text-secondary);opacity:.7}.no-data{color:var(--text-secondary);font-size:.85rem;font-style:italic;padding:1rem}.correlations-table{display:grid;grid-template-columns:1fr 2px 1fr;border-radius:8px;overflow:hidden}.correlations-table .column-divider{background:#ffffff26}.correlations-column{background:var(--bg-primary);min-width:0}.correlations-column .column-header{padding:.5rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:var(--bg-secondary)}.correlations-column.positive .column-header{color:#4ade80}.correlations-column.negative .column-header{color:#f87171}.correlation-row{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border:none;background:transparent;cursor:pointer;transition:background .15s;text-align:left;width:100%;border-bottom:1px solid var(--border)}.correlation-row:last-child{border-bottom:none}.correlation-row:hover{background:var(--bg-secondary)}.correlation-row:active{background:var(--bg-tertiary)}.correlation-row .input-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.correlation-row .input-name{font-weight:500;color:var(--text-primary);font-size:.85rem;line-height:1.2}.correlation-row .input-lag{font-size:.7rem;color:var(--text-secondary);line-height:1.2}.correlation-row .r-squared{font-size:1.1rem;font-weight:600;font-family:monospace;flex-shrink:0}.correlations-column.positive .r-squared{color:#4ade80}.correlations-column.negative .r-squared{color:#f87171}.empty-column{padding:1rem .75rem;color:var(--text-secondary);font-size:.8rem;font-style:italic}@media(max-width:400px){.analysis-body{padding:.75rem .5rem}.correlations-column .column-header{padding:.4rem .5rem;font-size:.7rem}.correlation-row{padding:.5rem}.correlation-row .input-name{font-size:.8rem}.correlation-row .input-lag{font-size:.65rem}.correlation-row .r-squared{font-size:1rem}.empty-column{padding:.75rem .5rem;font-size:.75rem}}.visualization-section{margin-bottom:1.5rem}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem;color:var(--text-secondary)}.back-to-explore{padding:.75rem 1.5rem;border:2px solid var(--accent);border-radius:8px;background:transparent;color:var(--accent);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.back-to-explore:hover{background:var(--accent);color:#fff}.current-selection{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px;margin-bottom:1rem}.selection-label{font-weight:600;color:var(--text-primary);font-size:1rem}.selection-correlation{margin-left:.5rem;font-size:.85rem;color:var(--accent);font-family:monospace}.change-btn{padding:.4rem .75rem;border:1px solid var(--accent-dim);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s}.change-btn:hover{border-color:var(--accent);color:var(--accent)}.viz-controls{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.viz-control{display:flex;align-items:center;gap:.5rem}.viz-control label{font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.viz-control select{padding:.5rem .75rem;border:1px solid var(--accent-dim);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;cursor:pointer}.viz-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.viz-type-selector{padding:.5rem .75rem;border:1px solid var(--accent-dim);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;cursor:pointer}.lag-selector,.second-input-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.lag-selector label,.second-input-selector label{font-size:.8rem;color:var(--text-secondary)}.lag-selector select,.second-input-selector select{padding:.5rem .75rem;border:1px solid var(--accent-dim);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;cursor:pointer}.chart-container{background:var(--bg-secondary);border-radius:12px;padding:1rem;min-height:280px}.chart-wrapper{position:relative;height:250px}.chart-placeholder{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-secondary);font-size:.85rem;font-style:italic}.chart-annotation{text-align:center;margin-top:.75rem;font-size:.8rem;color:var(--text-secondary);font-family:monospace}.heatmap-wrapper{height:auto}.heatmap-grid{display:flex;align-items:center;gap:.5rem}.heatmap-ylabel{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:.75rem;color:var(--text-secondary);font-weight:600}.heatmap-content{flex:1}.heatmap-row{display:flex;gap:4px;margin-bottom:4px}.heatmap-header{margin-bottom:8px}.heatmap-corner{width:40px;flex-shrink:0}.heatmap-xlabel{flex:1;text-align:center;font-size:.7rem;color:var(--text-secondary);font-weight:600}.heatmap-xlabel-label{text-align:center;margin-top:8px;font-size:.75rem;color:var(--text-secondary);font-weight:600}.heatmap-ylabel-cell{width:40px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:.7rem;color:var(--text-secondary);font-weight:600}.heatmap-cell{flex:1;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.8rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);min-height:50px}.pairs-section{margin-bottom:1.5rem}.pairs-list{display:flex;flex-direction:column;gap:.5rem}.pair-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--accent-dim);border-radius:8px;cursor:pointer;text-align:left;transition:all .15s}.pair-item:hover{background:var(--bg-tertiary);border-color:var(--accent)}.pair-inputs{font-weight:600;color:var(--text-primary);font-size:.9rem}.pair-reason{font-size:.75rem;color:var(--text-secondary)}.header-date{font-size:.95rem;color:var(--text-primary);font-weight:500;margin-left:auto}.header-date.clickable{cursor:pointer}.header-date.clickable:active{opacity:.7}.date-nav{display:flex;align-items:center;justify-content:center;padding:.75rem .5rem 1.25rem;background:var(--bg-tertiary)}.day-indicators{display:flex;align-items:center;gap:.375rem}.day-indicators.status-loading{animation:statusPulse 1.2s ease-in-out infinite}.nav-arrow{width:32px;height:32px;border-radius:6px;border:none;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,opacity .15s}.nav-arrow:active{transform:scale(.95)}.nav-arrow:disabled{opacity:.3;cursor:not-allowed}.day-dot{width:32px;height:38px;border-radius:6px;cursor:pointer;transition:transform .15s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#0006}.day-dot:hover:not(.current){transform:scale(1.05)}.day-dot.current{width:44px;height:52px;cursor:default;border:3px solid var(--text-primary);box-shadow:0 4px 12px #fff3}.day-num{font-size:.8rem;font-weight:600;line-height:1}.day-dot.current .day-num{font-size:1.1rem}.day-month{font-size:.55rem;font-weight:600;opacity:.9;text-transform:uppercase;line-height:1}.day-dot.current .day-month{font-size:.65rem}.day-dot.manual-complete.sync-complete{background:var(--success)}.day-dot.manual-complete.sync-incomplete{background:linear-gradient(to bottom,var(--success) 50%,#facc15 50%)}.day-dot.manual-incomplete.sync-complete{background:linear-gradient(to bottom,#facc15 50%,var(--success) 50%)}.day-dot.manual-incomplete.sync-incomplete{background:#facc15}.day-dot.manual-complete.sync-future{background:linear-gradient(to bottom,var(--success) 50%,var(--bg-tertiary) 50%);border:none;border-bottom:1px solid var(--text-secondary)}.day-dot.manual-incomplete.sync-future{background:linear-gradient(to bottom,#facc15 50%,var(--bg-tertiary) 50%);border:none;border-bottom:1px solid var(--text-secondary)}.day-dot.manual-future.sync-complete{background:linear-gradient(to bottom,var(--bg-tertiary) 50%,var(--success) 50%);border:none;border-top:1px solid var(--text-secondary)}.day-dot.manual-future.sync-incomplete{background:linear-gradient(to bottom,var(--bg-tertiary) 50%,#facc15 50%);border:none;border-top:1px solid var(--text-secondary)}.day-dot.manual-future.sync-future,.day-dot.future{background:var(--bg-tertiary);border:1px solid var(--text-secondary);color:var(--text-secondary)}.day-dot.loading{background:#4a4a5a;border:1px solid var(--text-secondary);color:var(--text-secondary)}@keyframes statusPulse{0%,to{opacity:.6}50%{opacity:1}}.day-dot.current.future{border:3px solid var(--text-primary);box-shadow:0 4px 12px #fff3}.day-dot.is-today{box-shadow:0 0 0 2px var(--bg-tertiary),0 0 0 4px var(--accent);position:relative}.day-dot.is-today:after{content:"TODAY";position:absolute;bottom:-14px;left:50%;transform:translate(-50%);font-size:.5rem;font-weight:600;color:var(--accent);letter-spacing:.03em;white-space:nowrap}.day-dot.current.is-today{box-shadow:0 4px 12px #fff3,0 0 0 2px var(--bg-tertiary),0 0 0 4px var(--accent)}.day-dot.current.is-today:after{bottom:-18px}.nav-arrow.is-today{box-shadow:0 0 0 2px var(--bg-tertiary),0 0 0 4px var(--accent),0 0 0 6px var(--bg-tertiary),0 0 0 8px var(--accent)}.loading-message{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--text-secondary)}.error-banner{padding:.75rem 1.5rem;background:var(--error);color:#fff;text-align:center;font-size:.875rem}.saving-badge{display:inline-block;margin-left:.5rem;padding:.125rem .5rem;background:var(--accent);color:#fff;border-radius:4px;font-size:.65rem;font-weight:600;vertical-align:middle}section{padding:1.5rem}section h2{font-size:1rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.status-badge{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-badge.complete{background:#4ade8026;color:var(--success)}.status-badge.incomplete{background:#facc1526;color:#facc15}.manual-fields{background:var(--bg-primary);padding-bottom:.5rem}.auto-fields{background:var(--bg-secondary)}.auto-fields .hint{font-size:.75rem;margin-bottom:1rem}.field{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--bg-tertiary)}.field:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.field label{display:block;font-size:.9375rem;font-weight:500;color:var(--text-secondary);margin-bottom:.75rem}.field.readonly{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--bg-tertiary)}.field.readonly label{margin-bottom:0}.field.readonly .value{color:var(--text-primary);font-size:.875rem}.toggle-group{display:flex;gap:.75rem}.toggle-btn{padding:1.125rem 1.5rem;border:2px solid var(--accent-dim);border-radius:12px;background:transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:all .15s;flex:1}.toggle-btn:active{transform:scale(.98)}.toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.scale-options{display:flex;gap:.25rem}.scale-btn{flex:1;aspect-ratio:1;border:2px solid var(--bg-tertiary);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;min-width:0}.scale-btn:active{transform:scale(.96)}.scale-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.scale-rubric{font-size:.68rem;color:#ffffffa6;margin-top:.5rem;margin-bottom:-.5rem;line-height:1.4}.scale-rubric strong{color:#ffffffa6;font-weight:600}.scale-info-icon{color:var(--accent);margin-left:.5rem;cursor:pointer;font-size:1.1em;filter:brightness(1.3)}.scale-info-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:300;padding:1rem}.scale-info-modal{background:var(--bg-secondary);border-radius:12px;padding:1.25rem;max-width:90vw;max-height:80vh;overflow-y:auto;width:100%}.scale-info-modal h3{margin:0 0 .75rem;color:var(--text-primary);font-size:1.1rem}.scale-info-row{display:flex;gap:.6rem;align-items:baseline;padding:.4rem 0;border-bottom:1px solid var(--bg-tertiary);font-size:.85rem;color:var(--text-secondary);line-height:1.3}.scale-info-row:last-child{border-bottom:none}.scale-info-number{color:var(--accent);font-weight:700;font-size:1rem;min-width:1.5rem;text-align:center;flex-shrink:0}.field-context{font-size:.75rem;font-style:italic;color:var(--text-muted);margin-bottom:.5rem;opacity:.8}.enum-options{display:flex;gap:clamp(.25rem,1vw,.5rem)}.enum-btn{flex:1;min-width:0;padding:clamp(.5rem,2vw,1rem) clamp(.125rem,1vw,.5rem);border:2px solid var(--accent-dim);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:clamp(.6rem,2.5vw,1rem);font-weight:600;cursor:pointer;transition:all .15s;text-transform:capitalize;text-align:center;overflow:hidden}.enum-btn:active{transform:scale(.98)}.enum-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.enum-options.few-options .enum-btn{padding:1rem .5rem;font-size:.9rem}.field.number input{width:100%;padding:1rem;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-size:1.125rem}.field.number input:focus{outline:none;border-color:var(--accent)}.field-row{display:flex;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--bg-tertiary)}.field-row .field.number.compact{flex:1;margin-bottom:0;padding-bottom:0;border-bottom:none}.field-row .field.number.compact input{padding:.75rem;font-size:1rem}.field.text textarea{width:100%;padding:1rem;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;resize:vertical;font-family:inherit}.field.text textarea:focus{outline:none;border-color:var(--accent)}.hint{color:var(--text-secondary);font-size:.875rem}.sync-buttons{padding:1.5rem;padding-top:0;display:flex;flex-direction:column;gap:.75rem}.sync-separator{height:1px;background:var(--text-secondary);margin:.75rem 0;opacity:.3}.sync-auto-label{font-size:.75rem;color:var(--text-secondary);text-align:center;margin-top:.25rem;margin-bottom:.25rem;opacity:.7}.sync-separator+.sync-auto-label{margin-top:-.5rem}.sync-button{width:100%;padding:1rem 1.25rem;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .15s;text-align:left;position:relative;overflow:hidden;display:flex;align-items:center}.sync-button:active:not(:disabled){transform:scale(.99)}.sync-button:disabled{cursor:wait}.sync-button.has-value{background:#4ade801a;border-color:#4ade804d}.sync-button.has-error{border-color:var(--error)}.sync-button.syncing{opacity:.8}.sync-button.rescraping .sync-spinner{opacity:.4}.sync-button-left{display:flex;flex-direction:column;gap:.25rem;flex:1}.sync-source-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.sync-value{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.sync-button.has-value .sync-value{color:var(--success)}.sync-button-footer{display:flex;justify-content:flex-start}.sync-status{font-size:.75rem;color:var(--text-secondary)}.sync-error{font-size:.75rem;color:var(--error)}.sync-spinner{position:absolute;top:0;left:0;height:3px;width:30%;background:var(--accent);animation:sync-progress 1s ease-in-out infinite}@keyframes sync-progress{0%{left:-30%}to{left:100%}}.myair-sync-button{width:100%;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);transition:all .15s;position:relative;overflow:hidden}.myair-sync-button.has-value{background:#4ade801a;border-color:#4ade804d}.myair-sync-button.has-error{border-color:var(--error)}.myair-sync-button.syncing{opacity:.8}.myair-button-header{padding:1rem 1.25rem;display:flex;align-items:center}.myair-button-left{display:flex;flex-direction:column;gap:.25rem;flex:1;cursor:pointer}.myair-button-left:active{opacity:.8}.myair-source-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.myair-value-row{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;cursor:pointer;min-width:33%;padding:1rem 0;margin:-1rem 0}.myair-value-row:active{opacity:.8}.myair-value{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.myair-sync-button.has-value .myair-value{color:var(--success)}.myair-expand-icon{color:var(--text-secondary);font-size:.6rem;flex-shrink:0}.myair-button-footer{display:flex;justify-content:flex-start}.myair-status{font-size:.75rem;color:var(--text-secondary)}.myair-error{font-size:.75rem;color:var(--error)}.myair-spinner{position:absolute;top:0;left:0;height:3px;width:30%;background:var(--accent);animation:sync-progress 1s ease-in-out infinite}.myair-details{padding:0 1.25rem 1rem;border-top:1px solid var(--bg-tertiary);margin-top:0}.myair-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--bg-tertiary)}.myair-detail-row:last-child{border-bottom:none}.myair-detail-label{font-size:.875rem;color:var(--text-secondary)}.myair-detail-value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.fitbit-sync-button{width:100%;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);transition:all .15s;position:relative;overflow:hidden}.fitbit-sync-button.has-value{background:#4ade801a;border-color:#4ade804d}.fitbit-sync-button.has-error{border-color:var(--error)}.fitbit-sync-button.syncing{opacity:.8}.fitbit-button-header{padding:1rem 1.25rem;display:flex;align-items:center}.fitbit-button-left{display:flex;flex-direction:column;gap:.25rem;flex:1;cursor:pointer}.fitbit-button-left:active{opacity:.8}.fitbit-source-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.fitbit-value-row{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;cursor:pointer;min-width:33%;padding:1rem 0;margin:-1rem 0}.fitbit-value-row:active{opacity:.8}.fitbit-value{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.fitbit-sync-button.has-value .fitbit-value{color:var(--success)}.fitbit-expand-icon{color:var(--text-secondary);font-size:.6rem;flex-shrink:0}.fitbit-button-footer{display:flex;justify-content:flex-start}.fitbit-status{font-size:.75rem;color:var(--text-secondary)}.fitbit-error{font-size:.75rem;color:var(--error)}.fitbit-spinner{position:absolute;top:0;left:0;height:3px;width:30%;background:var(--accent);animation:sync-progress 1s ease-in-out infinite}.fitbit-details{padding:0 1.25rem 1rem;border-top:1px solid var(--bg-tertiary);margin-top:0}.fitbit-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--bg-tertiary)}.fitbit-detail-row:last-child{border-bottom:none}.fitbit-detail-label{font-size:.875rem;color:var(--text-secondary)}.fitbit-detail-value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.strava-sync-button{width:100%;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);transition:all .15s;position:relative;overflow:hidden}.strava-sync-button.has-value{background:#4ade801a;border-color:#4ade804d}.strava-sync-button.has-error{border-color:var(--error)}.strava-sync-button.syncing{opacity:.8}.strava-button-header{padding:1rem 1.25rem;display:flex;align-items:center}.strava-button-left{display:flex;flex-direction:column;gap:.25rem;flex:1;cursor:pointer}.strava-button-left:active{opacity:.8}.strava-source-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.strava-value-row{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;cursor:pointer;min-width:33%;padding:1rem 0;margin:-1rem 0}.strava-value-row:active{opacity:.8}.strava-value{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.strava-sync-button.has-value .strava-value{color:var(--success)}.strava-expand-icon{color:var(--text-secondary);font-size:.6rem;flex-shrink:0}.strava-button-footer{display:flex;justify-content:flex-start}.strava-status{font-size:.75rem;color:var(--text-secondary)}.strava-error{font-size:.75rem;color:var(--error)}.strava-spinner{position:absolute;top:0;left:0;height:3px;width:30%;background:var(--accent);animation:sync-progress 1s ease-in-out infinite}.strava-details{padding:0 1.25rem 1rem;border-top:1px solid var(--bg-tertiary);margin-top:0}.strava-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--bg-tertiary)}.strava-detail-row:last-child{border-bottom:none}.strava-detail-label{font-size:.875rem;color:var(--text-secondary)}.strava-detail-value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.withings-sync-button{width:100%;border:2px solid var(--bg-tertiary);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);transition:all .15s;position:relative;overflow:hidden}.withings-sync-button.has-value{background:#4ade801a;border-color:#4ade804d}.withings-sync-button.has-error{border-color:var(--error)}.withings-sync-button.syncing{opacity:.8}.withings-button-header{padding:1rem 1.25rem;display:flex;align-items:center}.withings-button-left{display:flex;flex-direction:column;gap:.25rem;flex:1;cursor:pointer}.withings-button-left:active{opacity:.8}.withings-source-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.withings-value-row{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;cursor:pointer;min-width:33%;padding:1rem 0;margin:-1rem 0}.withings-value-row:active{opacity:.8}.withings-value{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.withings-sync-button.has-value .withings-value{color:var(--success)}.withings-expand-icon{color:var(--text-secondary);font-size:.6rem;flex-shrink:0}.withings-button-footer{display:flex;justify-content:flex-start}.withings-status{font-size:.75rem;color:var(--text-secondary)}.withings-error{font-size:.75rem;color:var(--error)}.withings-spinner{position:absolute;top:0;left:0;height:3px;width:30%;background:var(--accent);animation:sync-progress 1s ease-in-out infinite}.withings-details{padding:0 1.25rem 1rem;border-top:1px solid var(--bg-tertiary);margin-top:0}.withings-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--bg-tertiary)}.withings-detail-row:last-child{border-bottom:none}.withings-detail-label{font-size:.875rem;color:var(--text-secondary)}.withings-detail-value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.caffeine-field{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--bg-tertiary);max-width:100%;overflow:hidden}.caffeine-field>label{display:block;font-size:.9375rem;font-weight:500;color:var(--text-secondary);margin-bottom:.75rem}.caffeine-row{display:flex;align-items:flex-end;gap:.375rem;width:100%;max-width:100%;overflow:hidden}.caffeine-drink{display:flex;flex-direction:column;align-items:center;gap:.1875rem;min-width:0}.caffeine-label-above{font-size:.5625rem;font-weight:500;color:var(--text-secondary);text-align:center}.caffeine-label-inline{display:none}.caffeine-mg{font-size:inherit;opacity:.7}.caffeine-stepper{display:flex;align-items:center;background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:10px;overflow:hidden}.caffeine-stepper-center{display:flex;align-items:center;justify-content:center}.caffeine-step-btn{width:2rem;height:2rem;border:none;background:transparent;color:var(--text-primary);font-size:1.125rem;font-weight:500;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.caffeine-step-btn:first-child{border-right:1px solid var(--bg-tertiary)}.caffeine-step-btn:last-child{border-left:1px solid var(--bg-tertiary)}.caffeine-step-btn:active:not(:disabled){background:var(--accent);color:#fff}.caffeine-step-btn:disabled{color:var(--text-secondary);opacity:.3;cursor:not-allowed}.caffeine-step-count{min-width:1.25rem;text-align:center;font-size:.9375rem;font-weight:600;color:var(--text-primary)}.caffeine-total{display:flex;align-items:center;justify-content:flex-end;background:var(--bg-secondary);border:2px solid var(--bg-tertiary);border-radius:10px;padding:0 .5rem;height:calc(2rem + 4px);flex:1;min-width:0}.caffeine-total input{width:100%;min-width:1.5rem;max-width:3rem;padding:.375rem 0;border:none;background:transparent;color:var(--text-primary);font-size:.9375rem;text-align:right;-moz-appearance:textfield}.caffeine-total input::-webkit-outer-spin-button,.caffeine-total input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.caffeine-total input:focus{outline:none}.caffeine-total input::placeholder{color:var(--text-secondary);opacity:.5}.caffeine-suffix{font-size:.75rem;color:var(--text-secondary);margin-left:.25rem;flex-shrink:0}@media(min-width:400px){.caffeine-row{gap:.5rem}.caffeine-label-above{display:none}.caffeine-label-inline{display:block;font-size:.6875rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.caffeine-label-inline .caffeine-mg{font-size:.5625rem}.caffeine-drink{flex:1}.caffeine-stepper{width:100%;height:3.25rem;border-radius:12px}.caffeine-stepper-center{flex:1;flex-direction:column;gap:.0625rem;padding:.125rem .375rem}.caffeine-step-btn{width:2.5rem;height:100%}.caffeine-step-count{font-size:1rem}.caffeine-total{flex:0 0 auto;height:3.25rem;border-radius:12px;padding:0 .625rem}.caffeine-total input{font-size:1rem}.caffeine-suffix{font-size:.8125rem}}
