:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:progress}h1,h2,h3,p{margin:0}[data-mantine-color-scheme=light] body{background:#f7f4ee;color:#232a33}[data-mantine-color-scheme=dark] body{background:#14171f;color:#d7dce4}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.appShell{min-height:100dvh}.appHeader{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--mantine-color-default-border);background:color-mix(in srgb,var(--mantine-color-body) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-top:env(safe-area-inset-top)}.appHeaderInner{display:flex;align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:10px 16px}.brandBlock{display:flex;align-items:center;gap:10px;min-width:0}.brandMark{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:var(--mantine-radius-md);color:var(--mantine-color-white);background:var(--mantine-primary-color-filled)}.brandTitle{font-size:16px;font-weight:700;line-height:1.2}.eyebrow{color:var(--mantine-color-dimmed);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.childSwitcher{width:min(180px,30vw)}.desktopNav{display:none;align-items:center;gap:4px;margin-left:auto}.navButton{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:var(--mantine-radius-md);min-height:40px;padding:8px 14px;color:var(--mantine-color-dimmed);background:transparent;font-weight:600;transition:background .12s ease,color .12s ease}.navButton:hover{background:var(--mantine-color-default-hover);color:var(--mantine-color-text)}.navButton.active{color:var(--mantine-color-text);background:var(--mantine-color-default)}.logoutButton{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;border:0;border-radius:var(--mantine-radius-md);min-height:40px;padding:8px 12px;color:var(--mantine-color-dimmed);background:transparent;font-weight:600;transition:background .12s ease,color .12s ease}.logoutButton:hover{color:var(--mantine-color-text);background:var(--mantine-color-default-hover)}.appMain{max-width:1080px;margin:0 auto;padding:20px 16px calc(96px + env(safe-area-inset-bottom))}.bottomNav{position:fixed;inset-inline:0;bottom:0;z-index:100;display:flex;justify-content:space-around;gap:4px;border-top:1px solid var(--mantine-color-default-border);background:var(--mantine-color-body);padding:6px 12px calc(6px + env(safe-area-inset-bottom))}.bottomNav .navButton{flex:1 1 0;flex-direction:column;gap:4px;min-height:52px;padding:6px 4px;font-size:12px}.loginShell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f3f6f3,#e8f2ef 55%,#f7f3ec)}[data-mantine-color-scheme=dark] .loginShell{background:linear-gradient(135deg,#14171f,#1a2029 55%,#1d1a15)}.loginPanel{display:grid;gap:18px;width:min(100%,460px);border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-lg);padding:28px;background:var(--mantine-color-body);box-shadow:0 18px 50px #2b3a3014}.loginPanel h1{font-size:clamp(28px,4vw,44px);line-height:1.05}.muted{color:var(--mantine-color-dimmed)}.errorText{color:var(--mantine-color-red-7);font-size:14px;font-weight:700}.loginPanel label{display:grid;gap:6px;color:var(--mantine-color-text);font-size:14px;font-weight:700}.loginPanel input,.loginPanel textarea{width:100%;min-height:42px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);padding:9px 11px;color:var(--mantine-color-text);background:var(--mantine-color-body)}.loginPanel textarea{resize:vertical}.formStack{display:grid;gap:12px}.devLogin{border-top:1px solid var(--mantine-color-default-border);padding-top:14px}.segmentedControl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border-radius:var(--mantine-radius-md);background:var(--mantine-color-default)}.segmentedControl button{min-height:36px;border:0;border-radius:6px;color:var(--mantine-color-dimmed);background:transparent;font-weight:800}.segmentedControl button.active{color:var(--mantine-color-text);background:var(--mantine-color-body);box-shadow:0 6px 20px #2b3a301a}.primaryButton,.secondaryButton,.providerButton{border:0;border-radius:var(--mantine-radius-md);min-height:42px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.primaryButton{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;color:var(--mantine-color-white);background:var(--mantine-primary-color-filled);font-weight:800}.primaryButton:hover{background:var(--mantine-primary-color-filled-hover)}.secondaryButton{padding:10px 14px;color:var(--mantine-primary-color-9);background:var(--mantine-primary-color-light);font-weight:800}.providerRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.providerButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;color:var(--mantine-primary-color-9);background:var(--mantine-primary-color-light);font-weight:800}.todayPage,.settingsPage,.analyticsPage{max-width:640px;margin:0 auto}.analyticsPage{max-width:760px}.daySelectorWrap{display:grid;gap:2px}.daySelector{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:4px 0}.dayNavPrev{justify-self:start}.dayNavNext{justify-self:end}.dayLabel{font-size:16px;text-transform:capitalize}.goTodayButton{justify-self:center}.heroCard{position:relative;overflow:hidden}.heroCard:before{content:"";position:absolute;inset-inline-end:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--mantine-primary-color-filled) 10%,transparent);pointer-events:none}.bigSleepButton{min-height:64px;border-radius:var(--mantine-radius-lg);font-size:18px;box-shadow:var(--mantine-shadow-sm)}.bigSleepButton.start{background:var(--mantine-primary-color-filled);color:var(--mantine-color-white)}.bigSleepButton.start:hover{background:var(--mantine-primary-color-filled-hover)}.bigSleepButton.stop{background:#d99a45;color:#33230f}.bigSleepButton.stop:hover{background:#cc8c36}[data-mantine-color-scheme=dark] .bigSleepButton.stop{background:#b57e33;color:#f7ecd9}[data-mantine-color-scheme=dark] .bigSleepButton.stop:hover{background:#c08a3c}.activeDuration{margin-inline-start:8px;padding:2px 10px;border-radius:999px;background:#ffffff38;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.todayMetrics{display:grid;grid-template-columns:1fr;gap:12px}.todayMetric{display:flex;align-items:center}.metricIcon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:var(--mantine-radius-md);color:var(--mantine-primary-color-filled);background:var(--mantine-primary-color-light)}.normPanel{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-lg);padding:16px 18px;border-left:6px solid var(--mantine-primary-color-filled)}.normPanel.normal{border-left-color:#4a9d6e}.normPanel.below{border-left-color:#d99a45}.normPanel.above{border-left-color:var(--mantine-color-red-6)}.normEyebrow{color:var(--mantine-color-dimmed);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.normTitle{margin-top:2px;font-size:17px;font-weight:700}.normMessage{margin-top:2px;color:var(--mantine-color-dimmed);font-size:13px}.normRange{flex:0 0 auto;border-radius:var(--mantine-radius-md);padding:8px 12px;background:var(--mantine-color-default);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.emptyStateCard{max-width:480px;margin:24px auto}.emptyStateIcon{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;color:var(--mantine-primary-color-filled);background:var(--mantine-primary-color-light)}.manualDateTime{width:100%;min-height:36px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);padding:6px 10px;color:var(--mantine-color-text);background:var(--mantine-color-body)}.manualDateTime:focus{outline:2px solid var(--mantine-primary-color-filled);outline-offset:1px}.sectionTitle{display:flex;align-items:center;gap:10px}.sectionTitle h2{font-size:18px}.sessionList{display:grid;gap:10px;margin-top:12px}.sessionItem{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);padding:12px;background:var(--mantine-color-body)}.sessionItemRight{display:flex;align-items:center;gap:8px;flex:0 0 auto}.deleteSessionButton .mantine-ActionIcon-icon{display:flex;flex:0 0 auto}.sessionItem span{display:block;margin-top:4px;color:var(--mantine-color-dimmed)}.sessionItem time{font-weight:700;font-variant-numeric:tabular-nums}.themeIcon{font-size:24px;line-height:1}.periodNavigator{display:grid;gap:8px}.periodNavigator .mantine-SegmentedControl-root{justify-self:start}.periodNavRow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.periodNavPrev{justify-self:start}.periodNavNext{justify-self:end}.periodLabel{font-size:16px}.periodTodayButton{justify-self:center}.analyticsChart{margin:0}.analyticsBar{cursor:pointer}.analyticsLegend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;padding-top:10px;border-top:1px solid var(--mantine-color-default-border);color:var(--mantine-color-dimmed);font-size:12px}.legendItem{display:inline-flex;align-items:center;gap:6px}.legendSwatch{display:inline-block;width:14px;height:14px;border-radius:3px}.legendBar{background:var(--mantine-primary-color-filled)}.legendToday{background:var(--mantine-primary-color-light);border:2px dashed var(--mantine-primary-color-filled)}.legendLine{height:3px;border-radius:2px;background:#d99a45}.legendBelow{background:var(--mantine-color-red-6)}.legendAbove{background:var(--mantine-color-orange-6)}.legendNorm{background:transparent;border-top:3px dashed #4a9d6e}.analyticsTooltip{min-width:200px;border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);padding:10px 12px;background:var(--mantine-color-body);box-shadow:var(--mantine-shadow-md)}.analyticsTooltipTitle{margin:0 0 6px;font-size:13px;font-weight:700;text-transform:capitalize}.analyticsTooltip dl{display:grid;gap:2px;margin:0}.analyticsTooltip dl>div{display:flex;justify-content:space-between;gap:16px}.analyticsTooltip dt{color:var(--mantine-color-dimmed);font-size:12px}.analyticsTooltip dd{margin:0;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.tooltipNorm.normal{color:#4a9d6e}.tooltipNorm.below{color:var(--mantine-color-red-6)}.tooltipNorm.above{color:var(--mantine-color-orange-6)}.offlineBanner{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-top));background:var(--mantine-color-yellow-1);color:var(--mantine-color-yellow-9);font-size:13px;font-weight:600;text-align:center}[data-mantine-color-scheme=dark] .offlineBanner{background:color-mix(in srgb,var(--mantine-color-yellow-8) 25%,transparent);color:var(--mantine-color-yellow-3)}.updatePrompt{position:fixed;z-index:300;inset-inline:12px;bottom:calc(84px + env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none}.updatePrompt>*{pointer-events:auto;width:min(100%,420px)}.installHintIcon{flex:0 0 auto;margin-top:2px;color:var(--mantine-color-dimmed)}@media (min-width: 768px){.desktopNav{display:flex}.bottomNav{display:none}.appMain{padding-bottom:40px}.bigSleepButton{min-height:56px}.todayMetrics{grid-template-columns:1fr 1fr;align-items:stretch}.updatePrompt{inset-inline:auto;right:24px;bottom:24px;justify-content:flex-end}}@media (max-width: 767px){.logoutButton,.navButton{min-height:44px}.daySelector button,.daySelector .mantine-ActionIcon-root,.periodNavRow button,.periodNavRow .mantine-ActionIcon-root{min-width:44px;min-height:44px}.childSwitcher{min-height:44px}.loginPanel{padding:22px}.providerRow{grid-template-columns:1fr}.normPanel,.sessionItem{align-items:flex-start;flex-direction:column}}
