:root{color-scheme:light;--page: #edeff3;--surface-1: #ffffff;--surface-2: #e9ebef;--text-primary: #17395a;--text-secondary: #4f6275;--text-muted: #74797f;--navy: #0e3a5c;--navy-deep: #0a2c4a;--teal: #00a5b5;--teal-dark: #00808c;--teal-soft: #e0f4f6;--grid: #e9eaee;--axis: #dcdee3;--border: #e3e5ea;--band: rgba(116, 121, 127, .14);--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948;--series-9: #3fb0e6;--series-10: #9a5a2c;--series-11: #8a9a14;--series-12: #b04ac6;--series-13: #8f1f45;--series-14: #5a6878;--series-15: #0e9488;--series-16: #1f3f86;--heat: #d9822b;--light-on: #eda100;--status-good: #0ca30c;--status-warning: #d9822b;--status-serious: #e0772f;--status-critical: #c0392b;--accent: var(--teal);--radius: 14px;--radius-small: 8px;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif}:root[data-theme=dark]{color-scheme:dark;--page: #0b1520;--surface-1: #132230;--surface-2: #1c2e3f;--text-primary: #dce8f3;--text-secondary: #a9bccd;--text-muted: #7f8f9e;--navy: #9cc6ea;--navy-deep: #2d5f8a;--teal: #1fc3d2;--teal-dark: #5fd6e1;--teal-soft: rgba(31, 195, 210, .14);--grid: #1f3142;--axis: #2f4458;--border: #22384b;--band: rgba(169, 188, 205, .12);--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--series-9: #5fc3f0;--series-10: #c08050;--series-11: #b0c030;--series-12: #cf78e0;--series-13: #d0587e;--series-14: #93a1b2;--series-15: #2cc0b2;--series-16: #7f9ce0;--light-on: #c98500}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text-primary);font-size:14px;line-height:1.45}button,input,select{font:inherit;color:inherit}a{color:var(--teal-dark);text-decoration:none}a:hover{color:var(--teal)}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.unit{font-size:.55em;color:var(--text-muted);font-weight:400}.topbar{display:flex;align-items:center;gap:8px 24px;flex-wrap:wrap;padding:0 24px;background:var(--surface-1);position:sticky;top:0;z-index:10}.brand{display:inline-flex;align-items:center;gap:10px;font-size:15px;color:var(--navy);padding:12px 0;margin-right:8px}.brand-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#0e3a5c;color:#fff}.nav{display:flex;gap:20px;align-self:stretch}.nav a{display:inline-flex;align-items:center;position:relative;color:var(--text-muted);font-size:14px;padding:14px 2px}.nav a:hover{color:var(--teal-dark)}.nav a[aria-current=page]{color:var(--teal)}.nav a[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.5px;border-radius:1.5px;background:var(--teal)}.topbar-end{margin-left:auto;display:inline-flex;align-items:center;gap:12px}.source-badge{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--teal-soft);color:var(--teal-dark)}main{max-width:1400px;margin:0 auto;padding:28px 24px}h1{font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;font-size:28px;font-weight:400;color:var(--navy);margin:0 0 4px}h2{font-size:15px;font-weight:400;color:var(--navy);margin:0 0 12px}.subtle{color:var(--text-muted);font-size:13px}.error{padding:12px 16px;border-radius:var(--radius);background:color-mix(in srgb,var(--status-critical) 10%,var(--surface-1));color:var(--status-critical);margin-bottom:16px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.weather,.summary,.tile,.panel,.player,.picker,.view-bar{background:var(--surface-1);border:0;border-radius:var(--radius)}.weather{display:flex;gap:12px 32px;flex-wrap:wrap;align-items:flex-end;padding:16px 20px;margin-bottom:12px}.weather .big{font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;font-size:34px;font-weight:300;line-height:1.05;color:var(--navy)}.weather .item{display:flex;flex-direction:column;color:var(--navy)}.weather .label{font-size:12px;color:var(--text-muted)}.summary{display:flex;gap:12px 32px;flex-wrap:wrap;padding:14px 20px;margin-bottom:20px}.summary .item{display:flex;flex-direction:column;min-width:0}.summary .label{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted)}.summary .value{font-size:16px;color:var(--navy)}.summary .value .unit{font-size:12px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.tile{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;text-align:left;cursor:pointer;transition:box-shadow .12s}.tile:hover{box-shadow:inset 0 0 0 1.5px var(--teal)}.tile-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.tile h3{margin:0;font-size:14px;font-weight:400;color:var(--text-primary)}.tile .temp{font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;font-size:36px;font-weight:300;line-height:1.05;color:var(--navy)}.tile .temp.muted{color:var(--text-muted);font-size:22px}.facts{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary)}.facts span{display:inline-flex;align-items:center;gap:4px}.valve{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.valve .bar{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.valve .bar i{display:block;height:100%;background:var(--heat);border-radius:3px;transition:width .2s}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:3px 9px;border-radius:var(--radius-small);background:var(--surface-2);color:var(--text-muted)}.chip.on{background:var(--navy-deep);color:#fff}.chip.on svg{color:var(--light-on)}.chip.active{background:var(--teal-soft);color:var(--teal-dark)}.chip.open{background:color-mix(in srgb,var(--status-warning) 16%,var(--surface-1));color:var(--text-primary)}.chip.open svg{color:var(--status-warning)}.status{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 9px;border-radius:var(--radius-small);white-space:nowrap;color:var(--text-primary)}.status.warning{background:color-mix(in srgb,var(--status-warning) 16%,var(--surface-1))}.status.serious{background:color-mix(in srgb,var(--status-serious) 18%,var(--surface-1))}.status.critical{background:color-mix(in srgb,var(--status-critical) 14%,var(--surface-1));color:var(--status-critical)}.status.neutral{background:var(--teal-soft);color:var(--teal-dark)}.badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.issues{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.segmented{display:inline-flex;gap:16px}.segmented button{position:relative;border:0;background:transparent;padding:6px 2px;cursor:pointer;color:var(--text-muted)}.segmented button:hover{color:var(--teal-dark)}.segmented button[aria-pressed=true]{color:var(--teal)}.segmented button[aria-pressed=true]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.5px;border-radius:1.5px;background:var(--teal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1.4px solid var(--navy);background:transparent;color:var(--navy);border-radius:var(--radius-small);padding:5px 14px;cursor:pointer}.btn:hover:not(:disabled){background:var(--teal-soft);border-color:var(--teal);color:var(--teal-dark)}.btn.primary{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff}.btn.primary:hover:not(:disabled){background:var(--teal);border-color:var(--teal);color:#fff}.btn:disabled{opacity:.4;cursor:default}input[type=date],input[type=search],select,.view-form input:not([type]){border:1px solid var(--axis);background:var(--surface-1);border-radius:var(--radius-small);padding:5px 10px;color:var(--text-primary)}input[type=date]:hover,input[type=search]:hover,select:hover{border-color:var(--teal)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--teal)}.panel{padding:16px 20px;margin-bottom:12px}.panel .note{font-size:12px;color:var(--text-muted);margin-top:6px}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px}.player{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;align-items:center;padding:16px 20px;margin-bottom:12px;position:sticky;top:52px;z-index:5}.player .clock{font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;font-size:28px;font-weight:300;color:var(--navy);font-variant-numeric:tabular-nums;min-width:200px}.player .controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.player input[type=range]{grid-column:1 / -1;width:100%}.timeline-grid{display:grid;grid-template-columns:1fr 300px;gap:12px;align-items:start}.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px}.feed li{display:grid;grid-template-columns:44px 1fr;gap:8px}.feed time{color:var(--text-muted);font-variant-numeric:tabular-nums}.feed-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.feed-filter button{font-size:12px;padding:3px 10px;border-radius:var(--radius-small);border:0;background:var(--surface-2);color:var(--text-muted);cursor:pointer}.feed-filter button[aria-pressed=true]{background:var(--teal-soft);color:var(--teal-dark)}.explorer{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;align-items:start}.picker{position:sticky;top:64px;max-height:calc(100vh - 84px);overflow:auto;padding:12px 14px;font-size:13px}.picker input[type=search]{width:100%;background:var(--page);border-color:transparent;margin-bottom:8px}.picker details{border-top:1px solid var(--grid);padding:6px 0}.picker summary{cursor:pointer;color:var(--navy);padding:3px 0;list-style-position:inside}.picker summary .count{color:var(--teal-dark);margin-left:4px}.picker label{display:flex;gap:8px;align-items:flex-start;padding:3px 0 3px 4px;cursor:pointer;color:var(--text-secondary)}.picker label:hover{color:var(--teal-dark)}.picker label.checked{color:var(--navy)}.picker .unit{margin-left:auto;font-size:11px;white-space:nowrap}.picker-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;margin-bottom:8px;color:var(--text-muted)}.picker-actions>span{margin-right:auto}.picker-actions button{border:0;background:none;color:var(--teal-dark);cursor:pointer;padding:0}.picker-actions button:hover{color:var(--teal)}.range-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.empty{padding:48px 24px;text-align:center;color:var(--text-secondary);background:var(--surface-1);border-radius:var(--radius)}.view-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px;margin-bottom:12px}.view-select{display:inline-flex;align-items:center;gap:8px}.view-select select{min-width:240px;max-width:100%}.view-form{flex-basis:100%;display:flex;flex-direction:column;gap:10px;padding-top:10px;border-top:1px solid var(--grid)}.view-form input:not([type]){max-width:420px}.view-form fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.view-form-actions{display:flex;gap:8px}@media(max-width:900px){.timeline-grid,.explorer{grid-template-columns:minmax(0,1fr)}.picker{position:static;max-height:360px}}@media(max-width:600px){main{padding:16px}.topbar{padding:0 16px;gap:0 16px}.player{top:96px}.player .clock{font-size:20px;min-width:0}}.login{display:grid;place-items:center;padding-top:8vh}.login-card{display:flex;flex-direction:column;gap:16px;width:min(360px,100%);padding:28px;background:var(--surface-1);border-radius:var(--radius)}.login-card h1{margin-bottom:4px}.login-card label{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:13px}.login-card input{border:1px solid var(--axis);background:var(--surface-1);border-radius:var(--radius-small);padding:8px 10px;color:var(--text-primary);font-size:15px}.login-card input:hover{border-color:var(--teal)}.login-card .error{margin:0}.login-card .btn{padding:8px 14px}.claude-card{width:min(560px,100%)}.claude-card p{margin:0}.claude-form{display:flex;flex-direction:column;gap:16px}.claude-token{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:var(--radius-small);background:var(--teal-soft);font-size:13px}.claude-token code{display:block;padding:10px;border-radius:6px;background:var(--surface-1);font-size:12px;word-break:break-all;-webkit-user-select:all;user-select:all}.floorplan{margin:0 0 20px;padding:16px 20px 14px;background:var(--surface-1);border-radius:var(--radius)}.floorplan svg{display:block;width:100%;max-height:620px}.fp-wall{fill:#c3c7cf}.fp-area polygon{fill:var(--surface-1);transition:fill .3s}.fp-area.clickable{cursor:pointer;outline:none}.fp-area.clickable:hover polygon,.fp-area.clickable:focus-visible polygon{stroke:var(--teal);stroke-width:2.5}.fp-name,.fp-temp{text-anchor:middle;dominant-baseline:central;fill:var(--navy);pointer-events:none}.fp-name{font-size:11px;fill:var(--text-secondary)}.fp-temp{font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif;font-size:19px;font-weight:300}.fp-icons{display:flex;justify-content:center;gap:6px;color:var(--navy);pointer-events:none}.fp-icons .lit,.fp-key.lit svg{color:var(--light-on)}.fp-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:10px;font-size:12px;color:var(--text-muted)}.fp-scale,.fp-key{display:inline-flex;align-items:center;gap:6px}.fp-gradient{width:120px;height:8px;border-radius:4px}.fp-gap{fill:var(--surface-1)}.fp-glass{fill:#cfe8f3;stroke:var(--navy);stroke-width:.8}.fp-leaf{stroke:var(--navy);stroke-width:2.2;stroke-linecap:round;transform-box:view-box;transition:transform .7s cubic-bezier(.4,0,.2,1)}.fp-swing{fill:none;stroke:var(--text-muted);stroke-width:.7;stroke-dasharray:3 3}.fp-opening.static .fp-leaf{stroke:var(--text-muted);stroke-width:1.4}.fp-opening.static .fp-swing{opacity:.6}.fp-glow{pointer-events:none;transition:opacity .6s ease}.window-picker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}.scrubber{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.scrubber-main{display:flex;flex-direction:column;min-width:0}.scrubber-main input[type=range]{margin:0}.scrubber-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.event-track{position:relative;height:22px;margin:0 8px 2px;border-bottom:1px solid var(--axis);cursor:pointer}.event-tick{position:absolute;bottom:0;width:2px;height:14px;margin-left:-1px;border-radius:1px;pointer-events:none}.event-cursor{position:absolute;top:0;bottom:-1px;width:2px;margin-left:-1px;background:var(--navy);pointer-events:none}.event-tip{position:absolute;bottom:calc(100% + 6px);transform:translate(-50%);z-index:5;min-width:160px;max-width:320px;padding:6px 10px;border-radius:var(--radius-small);background:var(--surface-1);box-shadow:0 0 0 1px var(--border);font-size:12px;color:var(--text-primary);white-space:nowrap;pointer-events:none}.event-tip time{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-right:4px}.kind-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.feed-filter button{display:inline-flex;align-items:center;gap:5px}.feed li{display:block}.feed li button{display:grid;grid-template-columns:44px 8px 1fr;gap:8px;align-items:center;width:100%;padding:2px 4px;margin:-2px -4px;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer}.feed li button:hover{background:var(--teal-soft)}.feed-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.feed-head .segmented{gap:12px;font-size:13px}.feed-window{position:relative;max-height:70vh;overflow-y:auto;padding:4px;margin:-4px}.feed-window li button{border-radius:6px;transition:background-color .2s,color .2s}.feed-window li.upcoming button{background:var(--surface-2);color:var(--text-muted)}.feed-window li.upcoming .kind-dot{filter:grayscale(1);opacity:.45}.feed-window li.current button{background:var(--teal-soft);font-weight:600}.feed-window li button:hover{box-shadow:inset 0 0 0 1.5px var(--teal)}.group-filter{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}.group-filter button{font-size:12px;padding:3px 10px;border-radius:var(--radius-small);border:0;background:var(--surface-2);color:var(--text-muted);cursor:pointer}.group-filter button:hover{color:var(--teal-dark)}.group-filter button[aria-pressed=true]{background:var(--teal-soft);color:var(--teal-dark)}.fp-area.outdoor polygon{fill:#eef3e8;stroke:#8fa37e;stroke-width:1;stroke-dasharray:5 3}.fp-stair{pointer-events:none}.fp-stair .edge,.fp-stair .body{fill:none;stroke-linejoin:miter;stroke-linecap:butt}.fp-stair .edge{stroke:#0e3a5c}.fp-stair .body{stroke:#f4f5f7}.fp-stair .tread{fill:none;stroke:#4f6275;stroke-width:.8}.fp-stair .walk{fill:none;stroke:#0e3a5c;stroke-width:.9}.fp-stair .walk-end{fill:#0e3a5c}.fp-railing{fill:none;stroke:#5d6b7b;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.fp-compass{pointer-events:none}.fp-compass circle{fill:var(--surface-1);stroke:#c3c7cf;stroke-width:1}.fp-compass .tick{stroke:#c3c7cf;stroke-width:1}.fp-compass text{text-anchor:middle;dominant-baseline:central;font-size:10px;fill:var(--text-muted)}.fp-compass .letter.north{fill:var(--navy);font-weight:600}.fp-compass .caption{font-size:11px;fill:var(--text-secondary)}.fp-compass .wind line{stroke:var(--navy);stroke-width:2;stroke-linecap:round}.fp-compass .wind polygon,.fp-compass .calm{fill:var(--navy);stroke:none}.fp-compass .wind{transition:transform .7s cubic-bezier(.4,0,.2,1)}.fp-zone{fill:var(--series-3);fill-opacity:0;stroke:var(--series-3);stroke-opacity:.35;stroke-width:.8;stroke-dasharray:3 3;pointer-events:none;transition:fill-opacity .4s ease}.fp-zone.active{fill-opacity:.26;animation:fp-pulse 1.2s ease-in-out infinite}@keyframes fp-pulse{50%{fill-opacity:.1}}.fp-detector circle{fill:var(--surface-1);stroke:var(--series-3);stroke-width:1.2}.fp-detector path{fill:none;stroke:var(--series-3);stroke-width:1;stroke-linecap:round}.fp-detector .dot{fill:var(--series-3);stroke:none}.fp-detector.active circle:first-child{fill:var(--series-3)}.fp-detector.active path{stroke:#fff}@media(prefers-reduced-motion:reduce){.fp-zone.active{animation:none}}
