:root{--paper:#f7f5ed;--ink:#293c30;--muted:#778174;--green:#526a4b;--line:#e3e4d9;--gold:#d49c4b;--danger:#b45237;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button{border:0}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.app{max-width:920px;margin:auto;padding:calc(16px + env(safe-area-inset-top)) 22px calc(100px + env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-size:32px;font-weight:750;letter-spacing:-2px}.brand img{border-radius:14px}.brand-dot,h1>span{color:var(--gold)}.icon-button{width:44px;height:44px;border-radius:50%;background:#eaece2;display:grid;place-items:center;font-size:28px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--muted);margin-bottom:12px}h1{font-family:Georgia,"Times New Roman",serif;font-size:43px;line-height:1.06;letter-spacing:-1.8px;font-weight:400;margin:0 0 13px}h2,h3,p{margin:0}.lead{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:25px}.hero{min-height:300px;background:#e7ecdd;position:relative;overflow:hidden;border-radius:28px;margin-bottom:29px}.hero-copy{position:relative;z-index:1;padding:24px;width:63%;pointer-events:none}.pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;border-radius:30px;background:#f7f8f1d9;padding:8px 10px;font-weight:600}.pill i{width:6px;height:6px;background:#ac9f7b;border-radius:50%}.pill.online i{background:#52764a}.pill.error i{background:#b45237}.hero h2{font:400 29px/1.12 Georgia,serif;letter-spacing:-.6px;margin:25px 0 14px}.hero p{font-size:12px;line-height:1.7;color:#687461;max-width:165px}.hero-foot{display:block;margin-top:30px;font-size:8px;letter-spacing:1.4px;font-weight:700;color:#7a856e}.hero-dog{position:absolute;right:-82px;bottom:-32px;width:295px;height:295px;object-fit:cover;border-radius:50%;mix-blend-mode:multiply}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px}.section-heading h2{font-size:17px;font-weight:650;letter-spacing:-.4px}.section-heading>span{font-size:10px;color:var(--muted)}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.metric{border:1px solid var(--line);border-radius:21px;background:#fffcf6;text-align:left;padding:18px 14px;min-height:154px;display:flex;flex-direction:column}.metric-label{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--muted)}.metric-label svg{width:19px;height:19px}.metric strong{font-size:30px;font-weight:500;letter-spacing:-1.2px;margin:18px 0 8px}.metric strong small{font-size:17px;color:var(--muted)}.metric-note{font-size:10px;color:var(--muted);line-height:1.5}.note-card{display:flex;gap:14px;padding:20px;background:#eeeee3;border-radius:20px;margin:18px 0}.sun{font-size:25px;color:var(--gold);flex-shrink:0}.note-card h3{font-size:13px;margin:2px 0 7px}.note-card p{font-size:12px;color:#78806e;line-height:1.7}.wide-button{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border-bottom:1px solid var(--line);padding:19px 2px;font-size:12px;text-align:left}.wide-button span{font-size:22px;color:var(--green)}.app-footer{text-align:center;font:italic 13px Georgia,serif;color:#9a9e8c;margin-top:36px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;background:#faf9f2f5;backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:10px 14px calc(9px + env(safe-area-inset-bottom));gap:24px}.bottom-nav button{width:90px;background:transparent;display:flex;flex-direction:column;align-items:center;gap:5px;color:#969d8d;font-size:10px;padding:3px}.bottom-nav button[aria-current=page]{color:var(--green)}.bottom-nav button[aria-current=page] svg{background:#e9ecdf;border-radius:10px;box-shadow:0 0 0 6px #e9ecdf}.bottom-nav span{margin-top:4px}.battery-card,.chart-card,.device-card{border:1px solid var(--line);background:#fffcf6;padding:21px;border-radius:24px;margin:19px 0}.battery-top{display:flex;gap:8px;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.badge{background:#eeeee2;font-size:10px;padding:6px 9px;border-radius:12px}.voltage{font-size:65px;letter-spacing:-3px;font-weight:350;margin:24px 0 12px}.voltage small{font-size:24px;color:var(--muted)}#battery-message{font-size:13px;line-height:1.7;color:var(--muted)}.battery-details{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:18px;margin-top:20px;gap:16px}.battery-details span{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.battery-details strong{font-size:13px;font-weight:600}.chart-card{padding:20px 16px}.chart-card h2{font-size:15px}select{background:transparent;border:0;color:var(--muted);font-size:11px;padding:8px;min-height:44px}.chart-wrap svg{width:100%;height:auto;stroke:none;fill:var(--muted);font:11px system-ui}.chart-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-bottom:15px}.fine{font-size:11px;line-height:1.7;color:var(--muted)}.device-portrait{display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--line)}.device-portrait img{border-radius:20px}.device-portrait h2{font-size:18px;margin:0 0 5px}.device-portrait p{font-size:11px;color:var(--muted)}.status-orb{width:9px;height:9px;border-radius:50%;background:#aca88f;margin-left:auto}.device-card dl{margin:10px 0 0}.device-card dl div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;font-size:12px}.device-card dt{color:var(--muted)}.device-card dd{margin:0;text-align:right;overflow-wrap:anywhere;max-width:62%}.device-card>h2{font-size:17px;margin-bottom:15px}.axes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 20px}.axes span{font-size:10px;color:var(--muted);background:#f0f1e8;border-radius:12px;padding:12px}.axes strong{display:block;font-size:17px;color:var(--ink);margin-top:6px;font-weight:500}dialog{border:1px solid var(--line);border-radius:26px;background:var(--paper);color:var(--ink);width:calc(100% - 32px);max-width:430px;padding:24px;max-height:85dvh;overflow:auto}dialog::backdrop{background:#26382c66;backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.modal-head h2{font:27px/1.1 Georgia,serif;letter-spacing:-.5px}.modal-head .icon-button{flex-shrink:0}dialog p,dialog li{font-size:13px;line-height:1.8}dialog label:not(.check){display:block;font-size:12px;margin:20px 0 9px}input[type=password]{width:100%;border:1px solid #cbd0c0;border-radius:12px;padding:14px;background:#fffdf8;font-size:16px}.check{display:flex;align-items:center;gap:9px;font-size:12px;margin:16px 0}.check input{width:18px;height:18px;accent-color:var(--green)}.primary,.secondary{display:block;width:100%;padding:15px;border-radius:14px;font-size:13px;margin-top:14px}.primary{background:var(--green);color:white}.secondary{background:#e9ecdf;color:var(--green)}#connection-error{color:var(--danger);margin-top:12px}.install-icon{display:block;margin:0 auto 25px;border-radius:22px}ol{padding-left:21px}li{margin:12px 0}[hidden]{display:none!important}@media(min-width:700px){.app{padding:24px 44px 120px}header{margin-bottom:48px}h1{font-size:60px}.lead{font-size:16px}.hero{min-height:350px}.hero-copy{padding:35px;width:56%}.hero h2{font-size:42px}.hero p{font-size:14px;max-width:250px}.hero-dog{width:410px;height:410px;right:-30px;bottom:-85px}.hero-foot{font-size:10px;margin-top:25px}.pill{font-size:12px}.metric{padding:24px}.metric-label{font-size:13px}.metric strong{font-size:36px}.metric-note{font-size:12px}.note-card p{font-size:14px}.note-card h3{font-size:15px}.section-heading h2{font-size:20px}.section-heading>span{font-size:12px}.wide-button{font-size:14px}.bottom-nav{gap:90px}.battery-details strong{font-size:16px}.battery-card,.chart-card,.device-card{padding:28px}.device-card dl div{font-size:14px}.fine{font-size:12px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .18s,transform .18s}button:active{transform:scale(.98)}.view{animation:appear .25s ease-out}@keyframes appear{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}

/* Leo header connection status */
header{gap:14px}
.connection-status{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:10px 13px;border-radius:999px;background:#eceee5;color:#7a8373;font-size:12px;font-weight:650;line-height:1.25;white-space:nowrap}
.connection-status i{display:block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#9bA38f}
.connection-status.online{background:#e7f2e4;color:#347048}
.connection-status.online i{background:#4c9560;box-shadow:0 0 0 4px #4c956015}
.connection-status.error{background:#f5e9df;color:#a65a3e}
.connection-status.error i{background:#ba7352}
.metrics{grid-template-columns:1fr}
.metric{display:grid;grid-template-columns:1fr auto;gap:10px;min-height:104px;padding:20px}
.metric strong{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0;font-size:33px}
.metric-note{grid-column:1}
@media(max-width:360px){.connection-status{font-size:11px;padding:9px 10px;gap:6px}.brand{font-size:28px;gap:8px}.brand img{width:36px;height:36px}}

/* Overview 0.6: measured summaries, explicit unknown states. */
.header-status{display:flex;align-items:center;gap:9px}.battery-icon{display:flex;align-items:center;gap:4px;padding:9px 6px;background:transparent;min-height:44px;font-size:10px;color:var(--muted)}.battery-icon svg{width:25px;height:25px}.battery-icon[data-fresh=true]{color:var(--green)}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.summary-grid article{border:1px solid var(--line);border-radius:20px;padding:16px 12px;background:#fffcf6}.summary-grid span,.summary-grid small{display:block;color:var(--muted);font-size:11px;line-height:1.5}.summary-grid strong{display:block;font-size:24px;letter-spacing:-.8px;margin:15px 0 9px;font-weight:500}.summary-grid small{font-size:10px}
#motion-chart{width:100%;height:auto;stroke:none;fill:var(--muted);font:10px system-ui}.insight-card{padding:22px;background:#e8eddf;border-radius:22px;margin:18px 0}.insight-card h3{font:24px Georgia,serif;margin:9px 0 14px}.insight-card ul{padding-left:18px;font-size:13px;line-height:1.7}.insight-card li{margin:8px 0}
@media(max-width:420px){.app{padding-left:16px;padding-right:16px}.connection-status{font-size:10px;padding:9px;gap:6px}.header-status{gap:3px}.battery-icon span{display:none}.summary-grid{gap:6px}.summary-grid article{padding:14px 9px}.summary-grid strong{font-size:20px}.brand{gap:8px;font-size:29px}.summary-grid span{font-size:10px}}

/* Phone-style battery: provisional voltage bands, unknown is never empty. */
.battery-icon svg{width:32px;height:27px}.battery-segment{fill:currentColor;stroke:none}.battery-icon [hidden]{display:none}.battery-icon[data-low="true"]{color:#b45237}#battery-unknown{fill:currentColor;stroke:none;font-size:11px;font-weight:700}#battery-charge{stroke:#f7f5ed;stroke-width:2.5;filter:drop-shadow(0 0 1px #293c30)}#header-battery-value{display:inline!important;font-size:12px}
