.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{color-scheme:light dark;--bg: #f6f7f9;--fg: #1c2333;--muted: #5a6372;--card: #ffffff;--border: #e2e5ea;--accent: #3a7ca5;--accent-fg: #ffffff;--hr-color: #d1495b;--spo2-color: #3a7ca5;--warn-bg: #fdf1e3;--warn-fg: #8a5a13;--error-bg: #fbe9eb;--error-fg: #93273a;--tabbar-h: 58px}@media(prefers-color-scheme:dark){:root{--bg: #12151c;--fg: #e7eaf0;--muted: #9aa3b5;--card: #1b2028;--border: #2a303c;--accent: #5b9bc4;--accent-fg: #0d1117;--warn-bg: #33270f;--warn-fg: #e6b45e;--error-bg: #3a1620;--error-fg: #ef8fa0}}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--fg)}#root{min-height:100dvh}.shell{display:flex;flex-direction:column;min-height:100dvh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.25rem;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.05rem;text-decoration:none;color:var(--fg);white-space:nowrap}.nav-desktop{display:flex;gap:.25rem}.nav-desktop a{padding:.35rem .8rem;border-radius:.5rem;text-decoration:none;color:var(--muted);font-weight:500}.nav-desktop a.active{background:var(--bg);color:var(--fg)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:.75rem}.user-email{color:var(--muted);font-size:.8rem}.content{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1rem}.view{display:flex;flex-direction:column;gap:1rem}.tabbar{display:none}.disclaimer{text-align:center;font-size:.72rem;color:var(--muted);padding:.75rem 1rem 1rem}@media(max-width:700px){.nav-desktop,.user-email{display:none}.content{padding:.75rem;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 1rem)}.disclaimer{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + .5rem)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--border)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--muted);font-size:.66rem;min-height:44px}.tabbar a.active{color:var(--accent)}.tab-icon{font-size:1.15rem;line-height:1}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .9rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);color:var(--fg);font:inherit;text-decoration:none;cursor:pointer;min-height:40px}.btn:hover{border-color:var(--accent)}.btn.disabled{opacity:.35;pointer-events:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.btn-ghost{border-color:transparent;background:transparent;color:var(--muted)}input,select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.45rem .6rem;min-height:40px}input:focus,select:focus,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.night-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.nav-arrow{font-size:1.1rem;min-width:44px}.night-title{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:1rem;color:var(--fg);font-weight:600;text-align:center}.night-title input[type=date]{min-height:unset;padding:.15rem .4rem;font-size:.78rem;color:var(--muted)}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{background:var(--card);border:1px solid var(--border);border-radius:.6rem;padding:.45rem .7rem;min-width:88px}.chip b{display:block;font-size:.98rem}.chip span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.chip.warn{background:var(--warn-bg);border-color:transparent}.chip.warn b{color:var(--warn-fg)}@media(max-width:700px){.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}.chip{flex:0 0 auto}}.chart{width:100%;background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:.5rem .25rem .25rem}.u-legend{font-size:12px;color:var(--muted)}.band-legend{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.72rem;color:var(--muted)}.lg-hr{color:var(--hr-color)}.lg-spo2{color:var(--spo2-color)}.lg-sock{color:#969696e6}.lg-gap{color:#9696968c}.lg-move{color:#f0ad3af2}.hint{font-size:.72rem;color:var(--muted);margin:0}.event-card{display:flex;align-items:center;gap:.7rem;background:var(--card);border:1px solid var(--border);border-radius:.6rem;padding:.55rem .75rem;text-decoration:none;color:var(--fg);min-height:44px}.event-card:hover{border-color:var(--accent)}.ev-badge{font-size:.66rem;font-weight:700;padding:.18rem .5rem;border-radius:1rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.ev-desat{background:#3a7ca529;color:var(--spo2-color)}.ev-brady{background:#d1495b24;color:var(--hr-color)}.ev-tachy{background:#d1495b47;color:var(--hr-color)}.ev-nadir{font-size:1.15rem;font-weight:700;min-width:3.4rem;white-space:nowrap}.ev-nadir small{font-size:.68rem;color:var(--muted);font-weight:400}.ev-when{color:var(--muted);font-size:.8rem;flex:1}.ev-move{font-size:.66rem;background:var(--warn-bg);color:var(--warn-fg);padding:.18rem .5rem;border-radius:1rem;white-space:nowrap}.events-group{display:flex;flex-direction:column;gap:.45rem}.group-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:.4rem}.group-head a{color:var(--fg);font-weight:600;text-decoration:none}.group-head a:hover{color:var(--accent)}.group-count{color:var(--muted);font-size:.78rem}.night-events{display:flex;flex-direction:column;gap:.45rem}.night-events h3{margin:.25rem 0 0;font-size:1rem}.range-bar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end}.presets{display:flex;gap:.3rem}.btn-small{min-height:40px;padding:.3rem .6rem;font-size:.8rem}.settings{background:var(--card);border:1px solid var(--border);border-radius:.6rem;padding:.6rem .8rem}.settings summary{cursor:pointer;color:var(--muted);font-size:.85rem}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;margin:.7rem 0}.check-row{flex-direction:row;align-items:center;gap:.4rem;align-self:end;min-height:40px}.check-row input{min-height:unset;width:1.1rem;height:1.1rem}.summary-line{color:var(--muted);font-size:.82rem;margin:0}.empty-note.compact{padding:.25rem 0;text-align:left;font-size:.85rem}.trend-chart h4,.coverage h4{margin:.4rem 0 .3rem;font-size:.85rem;color:var(--muted);font-weight:600}.coverage-table{display:flex;flex-direction:column;gap:.35rem}.coverage-row{display:grid;grid-template-columns:minmax(7.5rem,auto) 1fr auto;grid-template-areas:"night bar hours" "meta meta flag";align-items:center;gap:.2rem .7rem;background:var(--card);border:1px solid var(--border);border-radius:.6rem;padding:.5rem .75rem;text-decoration:none;color:var(--fg)}.coverage-row:hover{border-color:var(--accent)}.cov-night{grid-area:night;font-weight:600;font-size:.85rem;white-space:nowrap}.cov-bar{grid-area:bar;height:.55rem;background:var(--bg);border-radius:.3rem;overflow:hidden}.cov-fill{display:block;height:100%;background:#4f9d69;border-radius:.3rem}.cov-hours{grid-area:hours;font-weight:700;font-size:.9rem;white-space:nowrap}.cov-meta{grid-area:meta;color:var(--muted);font-size:.75rem}.coverage-row .ev-move{grid-area:flag;justify-self:end}.loading,.empty-note{color:var(--muted);padding:2rem 0;text-align:center}.error-box{background:var(--error-bg);color:var(--error-fg);border-radius:.6rem;padding:.75rem 1rem}.splash{display:grid;place-items:center;min-height:100dvh;font-size:3rem}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:360px;background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:.9rem;text-align:center}.login-brand{font-size:2.5rem}.login-card h1{margin:0;font-size:1.4rem}.login-sub{margin:-.5rem 0 0;color:var(--muted);font-size:.85rem}.login-tabs{display:flex;background:var(--bg);border-radius:.6rem;padding:.2rem;gap:.2rem}.login-tabs button{flex:1;border:0;background:transparent;color:var(--muted);font:inherit;padding:.4rem;border-radius:.45rem;cursor:pointer;min-height:40px}.login-tabs button.active{background:var(--card);color:var(--fg);font-weight:600}.login-card label{text-align:left}.login-note{font-size:.75rem;color:var(--muted);margin:0}.login-error{font-size:.8rem;color:var(--error-fg);background:var(--error-bg);border-radius:.5rem;padding:.5rem;margin:0}.login-disclaimer{font-size:.68rem;color:var(--muted);margin:.5rem 0 0}
