:root{--ink: #17312d;--ink-soft: #536b67;--forest: #063c36;--forest-light: #0c5a50;--mint: #dff4ec;--mint-strong: #62c6a8;--coral: #e9785b;--blue: #5d9fc9;--paper: #f4f7f4;--card: #ffffff;--line: #dce6e2;--critical: #bd3f3f;font-family:Public Sans,Avenir Next,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}h1,h2,p{margin-top:0}h1{margin-bottom:8px;color:var(--forest);font-size:clamp(32px,4vw,48px);line-height:1.04;letter-spacing:-.035em}h2{margin-bottom:0;color:var(--forest);font-size:22px;line-height:1.2;letter-spacing:-.02em}.muted{color:var(--ink-soft);line-height:1.55}.eyebrow{margin-bottom:8px;color:#368574;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);background:radial-gradient(circle at 16% 20%,rgba(100,203,171,.22),transparent 32%),linear-gradient(135deg,#082f2b,#104c44 58%,#dff4ec 58%,#f5f8f5)}.login-brand{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:clamp(44px,8vw,120px);color:#fff}.login-brand h1{max-width:720px;color:#fff;font-size:clamp(46px,7vw,86px)}.login-brand .eyebrow{color:#8be0c5}.login-copy{max-width:560px;margin:16px 0 36px;color:#d7ebe5;font-size:18px;line-height:1.6}.login-features{display:flex;flex-wrap:wrap;gap:18px 28px;color:#e7f4f0;font-size:14px;font-weight:700}.login-features span{display:inline-flex;align-items:center;gap:9px}.feature-dot{width:8px;height:8px;border-radius:999px}.feature-dot.mint{background:#82d9bd}.feature-dot.coral{background:#f1987f}.feature-dot.blue{background:#7eb7db}.brand-mark{width:40px;height:40px;display:flex;align-items:end;justify-content:center;gap:3px;padding:9px;border-radius:12px;background:var(--forest)}.brand-mark span{width:4px;border-radius:4px;background:#8fe0c7}.brand-mark span:nth-child(1){height:10px}.brand-mark span:nth-child(2){height:20px}.brand-mark span:nth-child(3){height:15px}.brand-mark-large{width:52px;height:52px;margin-bottom:44px;background:#ffffff1f}.brand-mark-large span:nth-child(1){height:14px}.brand-mark-large span:nth-child(2){height:27px}.brand-mark-large span:nth-child(3){height:20px}.login-card{width:min(470px,calc(100% - 48px));align-self:center;justify-self:center;padding:42px;border:1px solid rgba(255,255,255,.8);border-radius:20px;background:#ffffffeb;box-shadow:0 28px 80px #072d2829;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card h2{font-size:34px}.login-card .muted{margin-bottom:28px}.login-form{display:grid;gap:18px}label{display:grid;gap:8px;color:var(--ink);font-size:13px;font-weight:750}input{width:100%;min-height:50px;padding:0 14px;border:1px solid #cbd9d5;border-radius:10px;outline:none;color:var(--ink);background:#fff}input:focus{border-color:#4a9e8c;box-shadow:0 0 0 3px #4a9e8c24}.primary-action,.secondary-action{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid transparent;border-radius:10px;font-weight:800}.primary-action{margin-top:4px;padding:0 18px;color:#fff;background:var(--forest)}.secondary-action{padding:0 16px;color:var(--forest);border-color:#bcd0ca;background:#fff}.error{margin:0;color:var(--critical);font-size:13px;font-weight:750}.version-label{margin:28px 0 0;color:#83928f;font-size:11px;text-align:center}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;min-height:76px;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:center;gap:24px;padding:0 40px;border-bottom:1px solid var(--line);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;color:var(--forest);text-decoration:none}.brand strong,.brand small{display:block}.brand strong{font-size:17px;line-height:1.1}.brand small{margin-top:3px;color:var(--ink-soft);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.home-switcher{display:flex;align-items:center;gap:4px;padding:4px;border-radius:12px;background:#edf3f0}.home-switcher button{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 17px;border:0;border-radius:9px;color:#58706b;background:transparent;font-weight:750}.home-switcher button.active{color:var(--forest);background:#fff;box-shadow:0 2px 8px #103e361a}.home-icon{font-size:16px}.account{justify-self:end;display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;color:#fff;background:#4b8f81;font-size:13px;font-weight:800}.logout-button{min-height:36px;border:0;color:var(--ink-soft);background:transparent;font-size:13px;font-weight:750}.workspace{width:min(1420px,100%);flex:1;margin:0 auto;padding:48px 40px 64px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:30px}.page-heading .muted{max-width:650px;margin-bottom:0}.heading-status{display:flex;align-items:center;gap:12px}.live-pill,.sensor-status{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border-radius:999px;font-size:11px;font-weight:800}.live-pill{min-height:36px;padding:0 12px;color:#277461;background:var(--mint)}.live-pill i,.sensor-status i{width:7px;height:7px;border-radius:999px;background:#44aa8b;box-shadow:0 0 0 4px #44aa8b1f}.refresh-button{min-height:36px;padding:0 11px;border:1px solid #ccdad6;border-radius:9px;color:var(--ink-soft);background:#fff;font-size:11px;font-weight:750}.measurement-content{display:grid;gap:22px}.sensor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sensor-card{min-width:0;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 10px 30px #1a423b0b}.sensor-header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:22px}.comparison-card{padding:28px;background:linear-gradient(135deg,rgba(223,244,236,.42),transparent 42%),var(--card)}.comparison-header{align-items:end}.comparison-copy{max-width:680px;margin:8px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.5}.comparison-range{min-height:32px;display:inline-flex;align-items:center;padding:0 11px;border-radius:999px;color:var(--forest);background:var(--mint);font-size:11px;font-weight:800;white-space:nowrap}.sensor-status{min-height:30px;padding:0 10px;color:#347b69;background:#edf8f4}.sensor-status.stale{color:#99712f;background:#fff7e8}.sensor-status.stale i{background:#d5a447;box-shadow:0 0 0 4px #d5a4471f}.current-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;margin-bottom:24px;border:1px solid var(--line);border-radius:12px;background:var(--line)}.current-value{position:relative;min-width:0;padding:16px;background:#fbfdfc}.current-value:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--metric-color)}.metric-label,.measured-at{display:block;overflow:hidden;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap}.metric-label{margin-bottom:7px;font-size:11px;font-weight:750}.current-value strong{display:block;margin-bottom:6px;color:var(--forest);font-size:clamp(22px,2.2vw,30px);letter-spacing:-.04em;white-space:nowrap}.current-value strong small{color:#67807b;font-size:13px;font-weight:700;letter-spacing:0}.measured-at{font-size:9px;font-weight:650}.chart-heading{display:flex;justify-content:space-between;margin:0 2px 8px;color:var(--ink-soft);font-size:11px;font-weight:750}.sensor-chart{height:250px;min-height:250px}.sensor-chart.comparison-chart,.empty-chart.comparison-chart{height:340px;min-height:340px}.empty-chart{min-height:250px;display:grid;place-items:center;padding:24px;border-radius:10px;color:var(--ink-soft);background:#f7faf8;text-align:center}.state-card{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px;border:1px solid #eed3d3;border-radius:14px;background:snow}.state-card div{display:grid;gap:6px}.state-card strong{color:var(--critical)}.state-card span{color:var(--ink-soft);font-size:13px}.skeleton-card{overflow:hidden}.skeleton{border-radius:8px;background:linear-gradient(90deg,#eef3f1 25%,#f7f9f8,#eef3f1 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton.short{width:36%;height:26px;margin-bottom:24px}.skeleton.metrics{height:92px;margin-bottom:24px}.skeleton.chart{height:250px}@keyframes shimmer{to{background-position:-200% 0}}.app-footer{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 40px;border-top:1px solid var(--line);color:#7d8d89;background:#fff;font-size:10px;font-weight:700}@media(max-width:960px){.topbar{grid-template-columns:1fr auto;padding:12px 20px}.home-switcher{grid-column:1 / -1;grid-row:2;justify-self:stretch}.home-switcher button{flex:1 1 0;justify-content:center}.logout-button{display:none}.sensor-grid{grid-template-columns:1fr}.workspace{padding:34px 20px 54px}}@media(max-width:760px){.login-shell{display:block;padding:28px 0;background:linear-gradient(170deg,#082f2b 0 38%,#edf5f1 38%)}.login-brand{min-height:280px;justify-content:flex-start;padding:24px 26px 50px}.brand-mark-large{margin-bottom:28px}.login-brand h1{font-size:45px}.login-copy{margin-bottom:0;font-size:15px}.login-features{display:none}.login-card{width:calc(100% - 28px);margin:-10px auto 0;padding:28px 22px}.page-heading{align-items:stretch;flex-direction:column;gap:20px}.heading-status{justify-content:space-between}.sensor-card{padding:18px;border-radius:14px}.comparison-card{padding:20px 18px}.comparison-header{align-items:start}.current-values{grid-template-columns:1fr}.current-value{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px}.metric-label{margin:0}.current-value strong{grid-column:2;grid-row:1 / span 2;margin:0;font-size:26px}.measured-at{grid-column:1}.sensor-chart,.empty-chart{height:230px;min-height:230px}.sensor-chart.comparison-chart,.empty-chart.comparison-chart{height:290px;min-height:290px}.app-footer{align-items:start;flex-direction:column;padding:16px 20px}}@media(max-width:420px){.topbar{padding-inline:14px}.brand small{display:none}.home-switcher button{padding:0 10px}.home-icon{display:none}.workspace{padding-inline:14px}.sensor-header{flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
