:host{display:block}*{box-sizing:border-box}.app{--bg: #f2f2f5;--surface: #ffffff;--surface-2: #f7f7f9;--surface-on: #ffffff;--fill: rgba(118, 118, 128, .12);--fill-2: rgba(118, 118, 128, .08);--line: rgba(60, 60, 67, .1);--text: #1d1d1f;--text-on: #1d1d1f;--text-2: rgba(60, 60, 67, .7);--text-3: rgba(60, 60, 67, .42);--accent: #007aff;--cool: #0a84ff;--heat: #ff7a00;--warm: #f5a300;--ok: #28a745;--warn: #e08600;--bad: #e5352b;--teal: #12a3b8;--purple: #8e5cf0;--indigo: #5856d6;--move: #f5114f;--exercise: #4fbf12;--stand: #00a7cc;--today: #ff3b30;--shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--shadow-lift: 0 2px 6px rgba(0, 0, 0, .06), 0 12px 32px rgba(0, 0, 0, .08);--glass: rgba(255, 255, 255, .6);--glass-thick: rgba(250, 250, 252, .82);--glass-lens: rgba(255, 255, 255, .92);--glass-filter: blur(24px) saturate(180%);--glass-rim: inset 0 1px 0 rgba(255, 255, 255, .85), inset 0 0 0 .5px rgba(0, 0, 0, .06);--glass-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 8px 28px rgba(0, 0, 0, .1);--r-xl: 24px;--r-lg: 20px;--r-md: 14px;--r-sm: 10px;--ease: cubic-bezier(.2, .8, .2, 1);--spring: cubic-bezier(.34, 1.4, .64, 1);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", Inter, Roboto, "Helvetica Neue", system-ui, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI Variable Display", Inter, Roboto, system-ui, sans-serif;min-height:calc(100vh - var(--header-height, 56px));background:var(--bg);color:var(--text);font:400 15px/1.4 var(--font);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.app[data-theme=dark]{--bg: #0f0f11;--surface: #1a1a1d;--surface-2: #222226;--surface-on: #f2f2f5;--fill: rgba(120, 120, 128, .26);--fill-2: rgba(120, 120, 128, .16);--line: rgba(255, 255, 255, .07);--text: #f5f5f7;--text-on: #1d1d1f;--text-2: rgba(235, 235, 245, .62);--text-3: rgba(235, 235, 245, .34);--accent: #0a84ff;--cool: #40a0ff;--heat: #ff8a1f;--warm: #ffb31a;--ok: #32d74b;--warn: #ffb020;--bad: #ff5a4f;--teal: #3cc8dc;--purple: #a77bff;--indigo: #7d7aff;--move: #fa114f;--exercise: #9ae82a;--stand: #1ee6ef;--today: #ff453a;--shadow: none;--shadow-lift: 0 12px 40px rgba(0, 0, 0, .5);--glass: rgba(44, 44, 48, .55);--glass-thick: rgba(34, 34, 38, .8);--glass-lens: rgba(255, 255, 255, .14);--glass-rim: inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 0 0 .5px rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .45)}button,input,select{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}ha-icon{--mdc-icon-size: 20px;display:inline-flex;flex:none}h1,h2,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}.shell{max-width:1360px;margin:0 auto;padding:28px 40px 72px}.view{animation:enter .32s var(--ease) both}@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px;flex-wrap:wrap}.titles{min-width:0}.eyebrow{color:var(--text-2);font-size:14px;font-weight:500;margin-bottom:4px}h1{font:700 34px/1.12 var(--font-display);letter-spacing:-.025em}.status{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;color:var(--text-2);font-size:15px}.status .sep{color:var(--text-3)}.dot{width:8px;height:8px;border-radius:50%;background:var(--text-3);display:inline-block;flex:none}.status.ok .dot,.dot.ok{background:var(--ok)}.status.warn .dot{background:var(--warn)}.status.warn span:nth-child(2){color:var(--text);font-weight:500}.back{display:inline-flex;align-items:center;gap:2px;color:var(--accent);font-weight:500;margin:0 0 6px -6px;padding:4px 6px;border-radius:var(--r-sm)}.segnav,.tabbar,.sheet,.toast{-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter)}.segnav{display:inline-flex;padding:4px;gap:2px;background:var(--glass);border-radius:999px;box-shadow:var(--glass-rim),var(--glass-shadow)}.segnav button{padding:7px 15px;border-radius:999px;color:var(--text-2);font-size:14px;font-weight:500;white-space:nowrap;transition:background .25s var(--ease),color .2s var(--ease),box-shadow .25s var(--ease),transform .35s var(--spring)}.segnav button:hover{color:var(--text)}.segnav button:active{transform:scale(.94)}.segnav button[aria-current=page]{background:var(--glass-lens);color:var(--text);font-weight:600;box-shadow:var(--glass-rim),0 2px 8px #00000014}.section{font:600 20px/1.2 var(--font-display);letter-spacing:-.015em;margin:0 0 12px}.label{color:var(--text-2);font-size:13px;font-weight:500}.row-title{font-weight:500}.row-sub{color:var(--text-2);font-size:13px;line-height:1.35}.row-value{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.hint{color:var(--text-3);font-size:12px;margin-top:12px}.warn-text{color:var(--warn)}.bad-text{color:var(--bad)}.tag{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 7px;border-radius:999px;background:var(--fill-2);color:var(--text-2);vertical-align:middle}.tag.live{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.pill{display:inline-flex;align-items:center;font-size:13px;font-weight:500;padding:4px 10px;border-radius:999px;background:var(--fill-2);color:var(--text-2);white-space:nowrap}.pill.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.card{background:var(--surface);border-radius:var(--r-xl);padding:20px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-head h2{font:600 17px/1.25 var(--font-display);letter-spacing:-.01em}.link{color:var(--accent);font-size:14px;font-weight:500;padding:2px 4px;margin:-2px -4px;border-radius:6px}.empty{color:var(--text-2);padding:24px}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 0;border-top:1px solid var(--line);width:100%}.rows>.row:first-child{border-top:0;padding-top:0;min-height:44px}.row-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.row-text>*{overflow-wrap:anywhere}.link-row{text-align:left}.link-row .row-title{flex:1}.link-row ha-icon:last-child{color:var(--text-3)}.row-icon{color:var(--text-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 16px;border-radius:999px;background:var(--fill-2);color:var(--text);font-size:14px;font-weight:600;white-space:nowrap;transition:background .2s var(--ease),transform .35s var(--spring)}.btn ha-icon{--mdc-icon-size: 18px}.btn:hover:not(:disabled){background:var(--fill)}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.4}.btn.primary{background:var(--tint, var(--accent));color:#fff;box-shadow:inset 0 1px #ffffff4d,0 4px 14px -6px var(--tint, var(--accent))}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--tint, var(--accent)) 88%,#000)}.btn.quiet{background:transparent;color:var(--accent);padding:0 10px;min-height:36px}.btn.big{min-height:52px;width:100%;font-size:16px;margin-top:16px}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--text-2);flex:none}.icon-btn:hover{background:var(--fill-2)}.round{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--fill-2);color:var(--text);flex:none;transition:background .2s var(--ease),transform .35s var(--spring)}.round:hover:not(:disabled){background:var(--fill)}.round:active:not(:disabled){transform:scale(.92)}.round:disabled{opacity:.35}.round[aria-pressed=true]{background:var(--text);color:var(--bg)}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.switch{position:relative;width:51px;height:31px;border-radius:999px;background:var(--fill);flex:none;transition:background .25s var(--ease)}.switch span{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0000002e;transition:transform .25s var(--ease)}.switch[aria-checked=true]{background:var(--ok)}.switch[aria-checked=true] span{transform:translate(20px)}.switch:disabled{opacity:.4}.switch.pending{opacity:.7}.seg{display:flex;padding:3px;gap:2px;background:var(--fill-2);border-radius:var(--r-md);overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{flex:1 0 auto;min-height:34px;padding:0 12px;border-radius:11px;font-size:13px;font-weight:500;color:var(--text-2);text-align:center;white-space:nowrap;transition:background .2s var(--ease),color .2s var(--ease)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001a}.app[data-theme=dark] .seg button[aria-pressed=true]{background:var(--fill)}.seg button:disabled{opacity:.45}.control-row{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:8px;margin-top:10px}.home{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.col-main,.col-side{display:flex;flex-direction:column;gap:28px;min-width:0}.col-side{gap:20px}.glances{display:grid;grid-template-columns:repeat(var(--glances, 4),minmax(0,1fr));gap:12px}.home-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}.home-pair>*>.card{height:100%}.glance{display:flex;flex-direction:column;gap:2px;padding:16px 18px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0;transition:transform .15s var(--ease),box-shadow .2s}.glance:hover{box-shadow:var(--shadow-lift)}.glance:active{transform:scale(.98)}.glance-label{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:13px;font-weight:500}.glance-label ha-icon{--mdc-icon-size: 17px}.glance-value{font:600 28px/1.15 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px}.glance-sub{color:var(--text-2);font-size:13px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.glance.warn .glance-value,.glance.warn .glance-label{color:var(--warn)}.attention{padding:6px 20px}.att{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.att:first-child{border-top:0}.att-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;flex:none;background:var(--fill-2);color:var(--text-2)}.att-icon ha-icon{--mdc-icon-size: 18px}.att.warn .att-icon{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.att.bad .att-icon{color:var(--bad);background:color-mix(in srgb,var(--bad) 15%,transparent)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:10px}.tile{position:relative;display:flex;align-items:center;gap:2px;min-height:68px;padding:0 6px 0 12px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);transition:background .3s var(--ease),color .3s var(--ease);min-width:0}.tile-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--fill-2);color:var(--text-2);flex:none;transition:background .3s var(--ease),color .3s var(--ease),transform .12s var(--ease)}.tile-icon:active:not(:disabled){transform:scale(.9)}.tile-body{display:flex;flex-direction:column;justify-content:center;flex:1;min-width:0;align-self:stretch;padding:0 8px;border-radius:var(--r-md)}.tile-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-state{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.tile.on .tile-icon{background:var(--tint);color:#fff}.tile.on .tile-state{color:var(--tint);font-weight:500}.app[data-theme=dark] .tile.on{background:var(--surface-on);color:var(--text-on)}.app[data-theme=dark] .tile.on .tile-state{color:color-mix(in srgb,var(--tint) 75%,#000)}.tile.na{opacity:.55}.tile.pending .tile-icon{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.tiles.compact{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.tiles.compact .tile{box-shadow:none;background:var(--surface-2)}.app[data-theme=dark] .tiles.compact .tile.on{background:var(--surface-on)}.appl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.appl{display:flex;flex-direction:column;gap:10px;padding:14px 14px 14px 16px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}.appl-head{display:flex;align-items:center;gap:12px;min-width:0}.appl-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--fill-2);color:var(--text-2);flex:none}.appl.active .appl-icon{background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint)}.appl-solo .appl{box-shadow:var(--shadow)}.progress{height:6px;border-radius:999px;background:var(--fill-2);overflow:hidden}.progress span{display:block;height:100%;background:var(--tint);border-radius:inherit;transition:width .6s var(--ease)}.forecast-summary{margin:-6px 0 12px}.hourly{display:flex;gap:4px;overflow-x:auto;margin:0 -20px 14px;padding:2px 20px 8px;scrollbar-width:none;scroll-snap-type:x proximity}.hourly::-webkit-scrollbar{display:none}.hour{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:44px;font-size:13px;color:var(--text-2);scroll-snap-align:start}.hour b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.hour ha-icon{color:var(--text)}.daily{display:flex;flex-direction:column}.day{display:grid;grid-template-columns:52px 24px 36px 1fr 36px;align-items:center;gap:10px;min-height:40px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.day:first-child{border-top:0}.day-name{font-weight:500}.day-lo{color:var(--text-2);text-align:right}.day-hi{font-weight:600}.range{position:relative;height:5px;border-radius:999px;background:var(--fill-2)}.range-fill{position:absolute;top:0;bottom:0;border-radius:999px;background-image:linear-gradient(90deg,var(--cool),var(--warm));background-repeat:no-repeat}.range-dot{position:absolute;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--text);box-shadow:0 0 0 2px var(--surface)}.todos{display:flex;flex-direction:column}.todo{display:flex;align-items:center;gap:12px;min-height:46px;padding:6px 0;border-top:1px solid var(--line)}.todo:first-child{border-top:0}.check{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--text-3);color:transparent;flex:none;transition:all .2s var(--ease)}.check ha-icon{--mdc-icon-size: 15px}.check:hover{border-color:var(--accent)}.todo.done .check{background:var(--accent);border-color:var(--accent);color:#fff}.todo.done .row-title{color:var(--text-3);text-decoration:line-through}.todo-add{display:flex;align-items:center;gap:10px;margin-top:8px;padding:0 12px;min-height:44px;border-radius:var(--r-md);background:var(--fill-2)}.todo-add input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:15px;padding:10px 0}.todo-add input::placeholder{color:var(--text-3)}.todo-add:focus-within{box-shadow:0 0 0 2px var(--accent)}.add-icon{color:var(--text-3);display:inline-flex}.tasks-main .todo-add{margin:0 0 10px}.done-note{display:flex;align-items:center;gap:6px;padding:6px 0}.done-note ha-icon{color:var(--ok);--mdc-icon-size: 18px}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.room-card{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow);overflow:hidden;min-width:0;transition:box-shadow .2s}.room-card:hover{box-shadow:var(--shadow-lift)}.room-open{display:flex;flex-direction:column;gap:4px;padding:18px 20px 14px;border-radius:var(--r-xl) var(--r-xl) 0 0}.room-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.room-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--fill-2);color:var(--text-2)}.room-temp{font:500 26px/1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.room-name{font:600 18px/1.2 var(--font-display);letter-spacing:-.01em}.room-sum{color:var(--text-2);font-size:13px}.room-quick{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 16px;margin-top:auto}.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px 0 8px;border-radius:999px;background:var(--fill-2);color:var(--text-2);font-size:13px;font-weight:500;max-width:100%;transition:background .25s var(--ease),color .25s}.chip ha-icon{--mdc-icon-size: 17px}.chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip.on{background:color-mix(in srgb,var(--tint) 15%,transparent);color:var(--tint)}.chip:disabled{opacity:.45}.vac-wide{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-start}.vac-wide>.vac-map{flex:1.7 1 320px}.vac-wide>.vacuum{flex:1 1 240px;min-width:0}.vac-map{display:flex;justify-content:center;min-width:0;padding:12px;border-radius:var(--r-md);background:var(--fill-2)}.vac-map.empty{flex-direction:column;align-items:center;gap:6px;padding:40px 12px;color:var(--text-3);font-size:13px}.vac-frame{position:relative;max-width:100%}.vac-frame img{display:block;max-width:100%;max-height:min(58vh,480px);width:auto;height:auto;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.vac-frame img[data-action]{cursor:pointer}.app[data-theme=dark] .vac-frame img{filter:brightness(.86) saturate(.9)}.vac-pin{position:absolute;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 2px 8px #00000047;transform:translate(-50%,calc(-100% - 10px));pointer-events:none;animation:fade .2s var(--ease)}.vac-pin.active{background:var(--ok)}.vac-pin ha-icon{--mdc-icon-size: 15px}.vac-rooms{margin-top:16px}.vac-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.room-lede{color:var(--text-2);margin:-16px 0 24px;max-width:72ch}.room-lede b{color:var(--text);font-weight:600}.climate{display:flex;flex-direction:column;gap:4px}.climate-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.reading{display:flex;flex-direction:column}.reading-v{font:300 44px/1.05 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stepper{display:flex;align-items:center;gap:10px}.target{display:flex;flex-direction:column;align-items:center;min-width:64px}.target-v{font:600 22px/1.15 var(--font-display);font-variant-numeric:tabular-nums;color:var(--tint)}.stepper.is-off .target-v{color:var(--text-3)}.climate-grid,.energy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;align-items:start}.span-all{grid-column:1 / -1}.stack{display:flex;flex-direction:column;gap:16px;min-width:0}.access-grid,.system-grid,.detail-grid{columns:340px 3;column-gap:16px}.access-grid>*,.system-grid>*,.detail-grid>*{break-inside:avoid;margin-bottom:16px;display:flow-root}.detail-grid>.wide{column-span:all}.span-2{grid-column:span 2}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}.metrics.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.metric{display:flex;flex-direction:column;gap:2px}.air-rows{display:flex;flex-direction:column}.air-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line);width:100%;text-align:left}.air-row:first-child{border-top:0;padding-top:0}.air-row:last-child{padding-bottom:0}.air-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--fill-2);color:var(--text-2);flex:none;--mdc-icon-size: 20px}.air-state{color:var(--tint);font-weight:500}.air-metric{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:64px}.metric-v.hum{display:inline-flex;align-items:center;color:var(--accent);--mdc-icon-size: 18px}.air-gap{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--text);font-size:14px;--mdc-icon-size: 18px}.air-gap ha-icon{color:var(--warn);flex:none}.vent{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;padding:12px 14px;border-radius:var(--r-md);background:color-mix(in srgb,var(--tint) 12%,transparent);--mdc-icon-size: 24px}.vent>ha-icon{color:var(--tint);flex:none}.vent-t{font-weight:600}.vent-s{color:var(--text-2);font-size:14px;margin-top:2px}.vent-n{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:8px;font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}.air-go{color:var(--text-3);--mdc-icon-size: 18px;margin-left:-6px}.air-bat{display:inline-flex;align-items:center;gap:2px;color:var(--text-3);font-variant-numeric:tabular-nums;--mdc-icon-size: 14px;vertical-align:middle}.air-bat.big{font:600 22px/1.2 var(--font-display);color:var(--text-2);--mdc-icon-size: 22px}.air-bat.low{color:var(--warn);font-weight:500}.air-now{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.air-now .big-v{font-size:38px}.air-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:18px}.air-h{font:600 15px/1.3 var(--font-display);margin-bottom:10px}.air-block{display:flex;flex-direction:column;gap:14px}.metric-v{font:600 22px/1.2 var(--font-display);letter-spacing:-.015em;font-variant-numeric:tabular-nums}@media(min-width:1181px){.climate-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.climate-grid>.stack{grid-row:span 2}.climate-grid>.tchart,.climate-grid>.airq{grid-column:1 / span 2}}.chart{margin:0}.chart-plot{position:relative;height:180px}.chart-plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1}.y{position:absolute;right:0;font-size:11px;color:var(--text-3);background:var(--surface);padding:0 0 0 4px;font-variant-numeric:tabular-nums}.y-hi{top:-2px}.y-lo{bottom:-2px}.chart-plot[data-chart]{touch-action:pan-y;cursor:crosshair}.chart-hover{position:absolute;inset:0;pointer-events:none}.chart-cursor{position:absolute;top:0;bottom:0;width:1px;background:var(--text-3);opacity:.5}.chart-dot{position:absolute;width:9px;height:9px;margin:0 0 -4.5px -4.5px;border-radius:50%;border:2px solid var(--surface);box-sizing:border-box}.chart-tip{position:absolute;top:4px;margin-left:12px;z-index:2;padding:6px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);box-shadow:0 6px 20px #00000024;font-size:12px;white-space:nowrap;display:grid;gap:2px;font-variant-numeric:tabular-nums}.chart-tip.flip{margin-left:0;transform:translate(calc(-100% - 12px))}.chart-tip-t{color:var(--text-3)}.chart-tip-r{display:flex;align-items:center;gap:6px}.chart-tip-r i{width:8px;height:8px;border-radius:50%}.chart-tip-r b{font-weight:600;color:var(--text)}.chart-tip-r em{font-style:normal;color:var(--text-2)}.chart-x{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--text-3)}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:13px;color:var(--text-2)}.legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.chart-empty{display:grid;place-items:center;min-height:100px;color:var(--text-3);font-size:13px}.big-reading{display:flex;align-items:baseline;gap:8px;margin-bottom:16px;flex-wrap:wrap}.big-v{font:300 48px/1 var(--font-display);letter-spacing:-.035em;font-variant-numeric:tabular-nums}.unit{color:var(--text-2);font-size:15px}.big-reading .tag{align-self:center}.bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end}.bar{display:flex;flex-direction:column;align-items:center;gap:6px}.bar-track{position:relative;width:100%;max-width:30px;height:96px;border-radius:8px;background:var(--fill-2);overflow:hidden}.bar-track span{position:absolute;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--warm) 55%,var(--fill));border-radius:8px}.bar.today .bar-track span{background:var(--warm)}.bar-v{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.bar-l{font-size:12px;color:var(--text-2);font-weight:500}.mix{height:10px;border-radius:999px;background:var(--text-3);overflow:hidden}.mix-clean{display:block;height:100%;background:var(--ok)}.mix-legend{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--text-2)}.mix-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.mix-legend .clean{background:var(--ok)}.mix-legend .fossil{background:var(--text-3)}.mix-legend .peak,.dot-i.peak,.bar-track.stack span.peak{background:var(--warm)}.dot-i.off,.bar-track.stack span.off{background:var(--ok)}.dot-i.standing,.bar-track.stack span.standing{background:var(--text-2)}.price-note{margin-bottom:12px}.cost-bars{margin-top:18px}.cost-share{margin-top:16px}.cost-share .mix{background:var(--warm)}.bar-track.stack{display:flex;flex-direction:column-reverse;gap:0}.bar-track.stack span{position:static;flex:none;border-radius:0}.bar:not(.today) .bar-track.stack span{opacity:.6}.meter{display:block;height:4px;border-radius:999px;background:var(--fill-2);overflow:hidden;margin-top:6px;max-width:220px}.meter span{display:block;height:100%;background:var(--warm);border-radius:inherit}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.empty-state>ha-icon{--mdc-icon-size: 28px;color:var(--text-3);margin-bottom:4px}.empty-state .btn{margin-top:10px}.slider{position:relative;overflow:hidden;background:var(--fill-2);touch-action:none;cursor:pointer;user-select:none;-webkit-user-select:none}.slider[aria-disabled=true]{opacity:.4;cursor:default}.slider.h{height:44px;border-radius:var(--r-md)}.slider.h.small{height:36px;margin-top:14px}.slider.h .slider-fill{position:absolute;inset:0 auto 0 0;width:var(--v);background:var(--accent);transition:width .15s var(--ease)}.slider.v{width:104px;height:240px;border-radius:30px;margin:4px auto 0}.slider.v .slider-fill{position:absolute;inset:auto 0 0;height:var(--v);background:var(--accent);transition:height .15s var(--ease)}.slider-value{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;font-weight:600;color:var(--text);mix-blend-mode:normal;font-variant-numeric:tabular-nums}.slider.v .slider-value{inset:auto 0 14px;transform:none;text-align:center}.cover-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.cover-btns .btn{padding:0 8px}.cover.vertical .cover-btns{margin-top:20px}.media-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.select{display:flex;align-items:center;gap:12px;margin-top:14px}.select select{flex:1;min-width:0;min-height:40px;border-radius:var(--r-md);border:0;background:var(--fill-2);padding:0 12px}.door{display:flex;align-items:center;gap:18px}.door-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:22px;background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);flex:none}.door-icon ha-icon{--mdc-icon-size: 32px}.door.open .door-icon{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.door-state{font:600 28px/1.15 var(--font-display);letter-spacing:-.02em}.timeline{margin-top:18px;border-top:1px solid var(--line);padding-top:10px}.timeline li{display:flex;gap:14px;padding:5px 0;font-size:14px}.tl-time{color:var(--text-2);width:48px;font-variant-numeric:tabular-nums}.tasks-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}.tasks-main,.tasks-side{display:flex;flex-direction:column;gap:16px;min-width:0}.pills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}.pills::-webkit-scrollbar{display:none}.pills button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;background:var(--fill-2);color:var(--text-2);font-size:14px;font-weight:500;white-space:nowrap}.pills button[aria-selected=true]{background:var(--text);color:var(--bg)}.pills button:disabled{opacity:.4}.count{font-size:12px;font-weight:600;opacity:.7}.board-wrap{margin-bottom:28px}.board-wrap>.hint{margin-top:10px}.board-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.board-bar .section{margin:0}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:14px;align-items:start;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 6px;scrollbar-width:thin}.board.due{grid-auto-columns:minmax(190px,1fr)}.kcol{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:180px;padding:12px;border-radius:var(--r-xl);background:var(--fill-2);scroll-snap-align:start;transition:background .15s var(--ease),box-shadow .15s var(--ease)}.kcol.over{background:color-mix(in srgb,var(--accent) 9%,var(--fill-2));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 60%,transparent)}.kcol-head{display:flex;align-items:center;gap:10px;padding:2px 4px}.kcol-head h3{flex:1;margin:0;font:600 16px/1.2 var(--font-display);letter-spacing:-.01em}.kcol-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--fill);color:var(--text-2)}.kcol-icon ha-icon{--mdc-icon-size: 16px}.kcol-icon.overdue{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}.kcol-icon.today{color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}.kcards{display:flex;flex-direction:column;gap:8px}.kcard{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:var(--r-md);background:var(--surface);box-shadow:0 1px 2px #0000000f;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.app[data-theme=dark] .kcard{background:var(--surface-2)}.kcard:not([data-drag]){cursor:default}.kcard .check{margin-top:1px}.kcard.done .check{background:var(--accent);border-color:var(--accent);color:#fff}.kcard.done .ktitle{color:var(--text-3);text-decoration:line-through}.kcard.dragging{opacity:.35}.kcard.pending{opacity:.6}.kcard.insert-before:before,.kcol.insert-end .kcards:after{content:"";display:block;height:3px;border-radius:2px;background:var(--accent)}.kcard.insert-before:before{position:absolute;left:6px;right:6px;top:-6px}.kcard img{-webkit-user-drag:none}.kbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;cursor:inherit}.ktitle{font-weight:500;line-height:1.3;overflow-wrap:anywhere}.kmeta{display:flex;flex-wrap:wrap;gap:6px}.kchip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;border-radius:999px;background:var(--fill-2);color:var(--text-2);font-size:12px;font-weight:500}.kchip ha-icon{--mdc-icon-size: 14px}.kchip.overdue{color:var(--bad);background:color-mix(in srgb,var(--bad) 13%,transparent)}.kchip.today{color:color-mix(in srgb,var(--warn) 80%,var(--text));background:color-mix(in srgb,var(--warn) 16%,transparent)}.kempty{color:var(--text-3);font-size:13px;text-align:center;padding:14px 6px}.kmore{align-self:center}.kcol .todo-add{margin-top:0;background:transparent}.kcol .todo-add:hover,.kcol .todo-add:focus-within{background:var(--surface)}.who.xs{width:24px;height:24px;font-size:11px;box-shadow:none}.who.xs ha-icon{--mdc-icon-size: 15px}.kcards.plain{gap:0}.kcards.plain .kcard{padding:10px 0;border-radius:0;background:none;box-shadow:none;border-top:1px solid var(--line)}.kcards.plain .kcard:first-child{border-top:0;padding-top:2px}.kgroups{display:flex;flex-direction:column;gap:14px;margin-bottom:4px}.kgroup-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.kgroup-head .row-title{flex:1}.kgroup-empty{padding:2px 0 0 32px}.drag-layer{position:fixed;inset:0;z-index:40;min-height:0;background:none;pointer-events:none}.ghost{position:absolute;left:0;top:0;list-style:none;box-shadow:var(--shadow-lift);cursor:grabbing}.task-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field input,.field textarea{width:100%;padding:11px 12px;border:0;border-radius:var(--r-md);background:var(--fill-2);font-size:16px;outline:none;resize:vertical}.field input:focus,.field textarea:focus{box-shadow:0 0 0 2px var(--accent)}.task-form .sheet-actions{margin-top:6px}.btn.danger{color:var(--bad)}.list-body{margin-top:14px}.ai-note{--ai: linear-gradient(135deg, var(--indigo), var(--purple) 55%, var(--accent));position:relative;padding:18px 20px 20px;border:1.5px solid transparent;border-radius:var(--r-xl);background:linear-gradient(color-mix(in srgb,var(--purple) 5%,var(--surface)),color-mix(in srgb,var(--purple) 5%,var(--surface))) padding-box,var(--ai) border-box;box-shadow:var(--shadow),0 10px 32px -12px color-mix(in srgb,var(--purple) 45%,transparent);animation:enter .35s var(--ease)}.s-note>.ai-note:not(:last-child){margin-bottom:16px}.ai-note.quiet{background:var(--surface) padding-box,var(--ai) border-box;box-shadow:var(--shadow)}.ai-head{display:flex;align-items:center;gap:12px}.ai-head .row-sub{display:inline-flex;align-items:center;gap:6px}.ai-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;background:var(--ai);color:#fff;box-shadow:0 4px 12px -4px color-mix(in srgb,var(--purple) 70%,transparent)}.ai-avatar ha-icon{--mdc-icon-size: 21px}.ai-name{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600}.ai-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px 2px 5px;border-radius:999px;background:color-mix(in srgb,var(--purple) 14%,transparent);color:var(--purple);font-size:11px;font-weight:700;letter-spacing:.04em}.ai-badge ha-icon{--mdc-icon-size: 12px}.ai-head .btn{margin-left:auto}.ai-msg{margin:14px 0 0;font-size:17px;line-height:1.45;letter-spacing:-.01em}.ai-empty{margin-top:12px}.fit-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;margin-bottom:16px}.fit-hero{display:flex;flex-direction:column;gap:18px;padding:20px 22px 18px}.fit-hero-head{display:flex;align-items:center;gap:12px}.fit-hero-head .pill{margin-left:auto}.fit-name{font:600 20px/1.2 var(--font-display);letter-spacing:-.015em}.who{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;flex:none;overflow:hidden;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint);font:600 18px/1 var(--font-display);box-shadow:0 0 0 2px var(--surface),0 0 0 4px color-mix(in srgb,var(--tint) 55%,transparent)}.who img{width:100%;height:100%;object-fit:cover}.who.sm{width:30px;height:30px;font-size:13px;box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px color-mix(in srgb,var(--tint) 55%,transparent)}.fit-rings-row{display:flex;align-items:center;gap:26px}.rings{flex:none;overflow:visible}.ring-arc{transition:stroke-dasharray .9s var(--ease)}.ring-legend{display:flex;flex-direction:column;gap:10px;min-width:0}.ring-item{display:flex;flex-direction:column;padding-left:12px;border-left:3px solid var(--ring)}.ring-v{font:600 21px/1.2 var(--font-display);letter-spacing:-.015em;font-variant-numeric:tabular-nums;color:var(--ring)}.ring-v small,.fit-stat-v small,.fit-v small{font-size:.62em;font-weight:500;color:var(--text-2);letter-spacing:0}.fit-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:16px;border-top:1px solid var(--line)}.fit-stat{display:flex;flex-direction:column;gap:1px;min-width:0}.fit-stat-v{font:600 24px/1.2 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.fit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.fit-rows{display:flex;flex-direction:column}.fit-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid var(--line)}.fit-row:first-child{border-top:0;padding-top:2px}.fit-row>.who{margin-top:4px}.fit-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.fit-line{display:flex;align-items:center;gap:14px}.fit-v{font:600 30px/1.05 var(--font-display);letter-spacing:-.025em;font-variant-numeric:tabular-nums;min-width:44px}.fit-v.sm{display:block;font-size:22px;margin:2px 0 1px}.fit-v.txt{font-size:17px;line-height:1.6}.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mini-stats>div{min-width:0}.stages{display:flex;gap:2px;height:10px;border-radius:999px;overflow:hidden}.stages span{min-width:3px}.legend .dot-i{width:8px;height:8px;border-radius:50%}.stress-scale{position:relative;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--teal) 0 25%,var(--warm) 25% 50%,var(--heat) 50% 75%,var(--bad) 75%);opacity:.9}.stress-dot{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--surface);box-shadow:0 0 0 2.5px var(--text),0 2px 6px #0003}.bb-now{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 24px;margin-bottom:18px}.bb-person{display:flex;flex-direction:column;gap:4px}.bb-person .big-v{color:var(--tint)}.meter.bb{height:6px;max-width:none;margin:4px 0 2px}.meter.bb span{background:var(--tint)}.gbars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end}.gbar{display:flex;flex-direction:column;align-items:center;gap:6px}.gbar-tracks{display:flex;gap:3px;align-items:flex-end;height:96px}.gbar-track{position:relative;width:10px;height:100%;border-radius:6px;background:var(--fill-2);overflow:hidden}.gbar-track span{position:absolute;left:0;right:0;bottom:0;border-radius:6px;background:color-mix(in srgb,var(--tint) 55%,var(--fill));transition:height .6s var(--ease)}.gbar.today .gbar-track span{background:var(--tint)}.workout{gap:14px}.workout-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;background:color-mix(in srgb,var(--tint) 15%,transparent);color:var(--tint)}.workout-facts{font-variant-numeric:tabular-nums}.tag.together{color:var(--tint);background:color-mix(in srgb,var(--tint) 14%,transparent);margin-left:4px}@media(min-width:1181px){.workouts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.workouts>.row:nth-child(2){border-top:0;padding-top:0;min-height:44px}}.fit-mini{gap:14px}.fit-mini .rings{width:40px;height:40px}@media(min-width:1181px){.fit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.body-grid{grid-auto-flow:row dense}.body-grid>.body-side{order:0;grid-column:3;grid-row:span 2}}.health{width:10px;height:10px;border-radius:50%;background:var(--text-3);flex:none}.health.ok{background:var(--ok)}.health.warn{background:var(--warn)}.scrim{position:fixed;inset:0;background:#0000003d;z-index:20;animation:fade .2s ease both}.sheet{position:fixed;z-index:21;left:50%;top:50%;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:auto;transform:translate(-50%,-50%);background:var(--glass-thick);border-radius:32px;padding:20px 22px 22px;box-shadow:var(--glass-rim),var(--shadow-lift);animation:pop .4s var(--spring) both}.sheet:focus{outline:none}.sheet.cam-sheet{width:min(860px,calc(100vw - 32px))}.cam-sheet .cam-frame{border-radius:var(--r-lg)}.cam-frame.live>*{display:block;width:100%}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.sheet-head h2{font:600 20px/1.2 var(--font-display);letter-spacing:-.015em}.sheet-foot{margin-top:20px;display:flex;justify-content:center}.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.sheet-actions .btn{min-height:48px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}}@keyframes rise{0%{transform:translateY(100%)}}.toasts{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(480px,calc(100vw - 32px))}.toast{padding:12px 20px;border-radius:999px;background:var(--glass-thick);color:var(--text);font-size:14px;font-weight:500;box-shadow:var(--glass-rim),var(--glass-shadow);animation:pop-t .4s var(--spring) both}.toast.error{background:color-mix(in srgb,var(--bad) 88%,transparent);color:#fff}@keyframes pop-t{0%{opacity:0;transform:translateY(8px) scale(.96)}}.banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:color-mix(in srgb,var(--warn) 18%,var(--bg));color:var(--text);font-size:14px;font-weight:500}.cal{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"hero month" "view month" "view list";grid-template-rows:auto auto 1fr;gap:20px 28px;align-items:start}.s-cal-hero{grid-area:hero}.s-cal-month{grid-area:month}.s-cal-view{grid-area:view;min-width:0}.s-cal-list{grid-area:list}.cal-empty{max-width:560px}.cal-empty code{font:500 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:2px 5px;border-radius:5px;background:var(--fill-2)}.cal-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;width:100%;min-height:168px;padding:22px 24px;border-radius:var(--r-xl);text-align:left;box-shadow:var(--shadow);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--tint, var(--accent)) 26%,transparent),transparent 60%),var(--surface);transition:transform .15s var(--ease),box-shadow .2s}button.cal-hero:hover{box-shadow:var(--shadow-lift)}button.cal-hero:active{transform:scale(.99)}.cal-hero.quiet{--tint: var(--text-3)}.cal-hero-art{position:absolute;right:-18px;bottom:-26px;color:color-mix(in srgb,var(--tint) 22%,transparent);pointer-events:none}.cal-hero-art ha-icon{--mdc-icon-size: 168px}.cal-hero-eyebrow{display:inline-flex;align-items:center;gap:6px;color:color-mix(in srgb,var(--tint) 75%,var(--text));font-size:13px;font-weight:600;letter-spacing:.01em}.cal-hero-eyebrow ha-icon{--mdc-icon-size: 16px}.cal-hero-title{position:relative;font:700 30px/1.15 var(--font-display);letter-spacing:-.025em;margin-top:4px;overflow-wrap:anywhere;max-width:85%}.cal-hero-sub{position:relative;color:var(--text-2);font-size:15px}.cal-hero-meta{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:10px}.cal-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 11px 3px 8px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:var(--glass-rim);font-size:13px;font-weight:500}.cal-chip ha-icon{--mdc-icon-size: 16px;color:var(--tint)}.cal-chip .who.xs{width:20px;height:20px;margin-left:-4px;font-size:10px}.cal-chip.quiet{color:var(--text-2);padding-left:11px}.cal-month .card-head{margin-bottom:10px}.md-nav{display:flex;align-items:center;gap:2px;margin-right:-8px}.md-nav .icon-btn:hover{background:var(--fill-2);color:var(--text)}.md-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:2px}.md-dow{text-align:center;color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;padding-bottom:6px}.md{display:flex;flex-direction:column;align-items:center;gap:3px;padding:3px 0 5px;border-radius:var(--r-sm);font-variant-numeric:tabular-nums}.md:hover .md-n{background:var(--fill-2)}.md-n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:15px;font-weight:500;transition:background .15s var(--ease),color .15s}.md.out .md-n{color:var(--text-3)}.md.today .md-n{color:var(--today);font-weight:700}.md.sel .md-n{background:var(--text);color:var(--bg);font-weight:600}.md.sel.today .md-n{background:var(--today);color:#fff}.md-dots{display:flex;gap:3px;height:5px}.md-dots i{width:5px;height:5px;border-radius:50%;background:var(--tint)}.md.out .md-dots i{opacity:.45}.cal-tools{display:flex;align-items:center;gap:8px}.cal-tools .seg{min-width:150px}.cal-tools .icon-btn:hover{background:var(--fill-2);color:var(--text)}.cal-add{min-height:40px;padding:0 14px 0 10px}.agenda-card{padding:6px 20px}.aday{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;padding:16px 0;border-top:1px solid var(--line)}.aday:first-child{border-top:0}.aday-date{display:flex;flex-direction:column;align-items:center;gap:2px;padding-top:2px}.aday-dow{color:var(--text-2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.aday-num{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font:600 22px/1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.aday.today .aday-dow{color:var(--today)}.aday.today .aday-num{background:var(--today);color:#fff}.aday-body{min-width:0}.aday-title{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;font:600 15px/1.3 var(--font)}.aday-title span{color:var(--text-2);font-weight:400;font-size:13px}.aday-empty{padding:2px 0 4px}.evs{display:flex;flex-direction:column;gap:4px}.ev{display:flex;align-items:center;gap:12px;min-height:50px;padding:7px 10px 7px 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:var(--r-md);text-align:left;transition:background .15s var(--ease)}.ev:hover{background:var(--fill-2)}.ev-time{display:flex;flex-direction:column;align-items:flex-end;width:52px;flex:none;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.3}.ev-time span+span{color:var(--text-3);font-weight:400;font-size:12px}.ev-bar{align-self:stretch;width:4px;border-radius:2px;background:var(--tint);flex:none}.ev-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.ev-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-sub{color:var(--text-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev.all-day{background:color-mix(in srgb,var(--tint) 11%,transparent)}.ev.all-day:hover{background:color-mix(in srgb,var(--tint) 17%,transparent)}.ev.all-day .ev-time{color:color-mix(in srgb,var(--tint) 70%,var(--text))}.ev.past{opacity:.5}.ev .who.xs{margin-left:4px}.cal-group+.cal-group{margin-top:12px}.cal-group-head{color:var(--text-2);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.cal-group .link{margin-top:6px;display:inline-block}.cal-toggle{text-align:left}.cal-toggle:disabled{opacity:.5}.cal-check{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;flex:none;box-shadow:inset 0 0 0 2px var(--tint);color:#fff;transition:background .15s var(--ease)}.cal-check.on{background:var(--tint)}.cal-check ha-icon{--mdc-icon-size: 16px}.wk-card{padding:14px 14px 18px 6px}.wk{--hh: 44px}.wk-row{display:grid;grid-template-columns:50px repeat(7,minmax(0,1fr))}.wk-head{position:sticky;top:0;padding-bottom:8px}.wk-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px 0;border-radius:var(--r-sm);color:var(--text-2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.wk-num{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--text);font:600 18px/1 var(--font-display);letter-spacing:-.01em;text-transform:none;font-variant-numeric:tabular-nums}.wk-day:hover .wk-num{background:var(--fill-2)}.wk-day.today,.wk-day.today .wk-num{color:var(--today)}.wk-day.sel .wk-num{background:var(--text);color:var(--bg)}.wk-day.sel.today .wk-num{background:var(--today);color:#fff}.wk-allday{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 0}.wk-gutter{color:var(--text-3);font-size:10px;font-weight:500;text-align:right;padding:5px 8px 0 0}.wk-cell{display:flex;flex-direction:column;gap:2px;padding:0 2px;min-width:0}.wk-pill{display:block;padding:3px 7px;border-radius:6px;background:color-mix(in srgb,var(--tint) 22%,transparent);color:color-mix(in srgb,var(--tint) 62%,var(--text));font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.wk-body{position:relative;height:calc(var(--hours) * var(--hh));margin-top:0}.wk-hours{position:relative}.wk-hours span{position:absolute;right:8px;top:calc(var(--h) * var(--hh));transform:translateY(-50%);color:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.wk-col{position:relative;min-width:0;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px var(--hh))}.wk-col.today{background-color:color-mix(in srgb,var(--today) 4%,transparent)}.wk-ev{position:absolute;top:calc(var(--t) * var(--hh) / 60 + 1px);height:calc(var(--d) * var(--hh) / 60 - 2px);left:calc(var(--c) * 100% / var(--n) + 2px);width:calc(100% / var(--n) - 4px);display:flex;flex-direction:column;gap:1px;padding:4px 6px;border-radius:7px;border-left:3px solid var(--tint);background:color-mix(in srgb,var(--tint) 20%,var(--surface));color:color-mix(in srgb,var(--tint) 55%,var(--text));font-size:12px;line-height:1.25;text-align:left;overflow:hidden;transition:filter .15s}.wk-ev:hover{filter:brightness(.97) saturate(1.1);z-index:2}.wk-ev-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.wk-ev-time{opacity:.8;font-variant-numeric:tabular-nums}.wk-ev.short{flex-direction:row;gap:4px;align-items:center;padding-top:1px;padding-bottom:1px}.wk-ev.short .wk-ev-title{-webkit-line-clamp:1;white-space:nowrap}.wk-now{position:absolute;left:-1px;right:0;top:calc(var(--t) * var(--hh) / 60);height:2px;background:var(--today);z-index:3;pointer-events:none}.wk-now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--today)}.ev-detail{display:flex;flex-direction:column;gap:14px}.ev-fact{display:flex;align-items:flex-start;gap:12px;font-size:15px}.ev-fact>ha-icon{color:var(--tint);margin-top:1px}.ev-fact.notes span{white-space:pre-wrap;color:var(--text-2);overflow-wrap:anywhere}.ev-fact.cal{padding-top:14px;border-top:1px solid var(--line);color:var(--text-2);align-items:center}.ev-fact.cal .cal-check{width:20px;height:20px;border-radius:50%}.check-field{display:flex;align-items:center;gap:10px;font-weight:500}.check-field input{width:20px;height:20px;accent-color:var(--accent);margin:0}.field-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}.field select{width:100%}.cal-form:has(input[name=all_day]:checked) .timed{display:none}.cal-form:has(input[name=all_day]:checked) .field-row{grid-template-columns:1fr}.planes{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}.planes-side{display:flex;flex-direction:column;gap:16px;min-width:0}.planes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.radar{position:relative;isolation:isolate;aspect-ratio:1;max-width:640px;margin:0 auto;border-radius:50%;overflow:hidden;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 6%,var(--surface-2)),var(--surface-2));box-shadow:inset 0 0 0 1px var(--line)}.radar-map{position:absolute;inset:0;z-index:-1;pointer-events:none}.radar-map img{position:absolute;height:auto;aspect-ratio:1;max-width:none;user-select:none;filter:grayscale(1) contrast(.9) brightness(1.04);opacity:.5}.app[data-theme=dark] .radar-map img{filter:grayscale(1) invert(1) contrast(.9) brightness(.9);opacity:.4}.radar svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.radar text{font-family:var(--font);font-weight:600;paint-order:stroke;stroke-linejoin:round}.radar .axis{stroke:color-mix(in srgb,var(--text) 9%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}.radar .ring{fill:none;stroke:color-mix(in srgb,var(--text) 17%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}.radar .ring-label{fill:var(--text-2);stroke:var(--surface-2);text-anchor:end}.radar .north{fill:var(--text-2);stroke:var(--surface-2);text-anchor:middle}.radar .alert-ring{fill:color-mix(in srgb,var(--accent) 7%,transparent);stroke:var(--accent);stroke-opacity:.75;stroke-width:1.5;vector-effect:non-scaling-stroke}.radar .trail{fill:none;stroke-width:2;stroke-opacity:.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.radar .home-dot{fill:var(--accent);stroke:var(--surface)}.radar .home-pulse{fill:var(--accent);transform-box:fill-box;transform-origin:center;animation:radar-pulse 2.6s var(--ease) infinite}@keyframes radar-pulse{0%{transform:scale(1);opacity:.45}to{transform:scale(4.5);opacity:0}}.radar .plane{cursor:pointer;transition:transform 1s linear}.radar .plane .hit{fill:transparent}.radar .plane path{fill:currentColor;stroke:var(--surface);stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));transition:filter .2s var(--ease)}.radar .plane:hover path,.radar .plane.nearest path{filter:drop-shadow(0 0 5px currentColor)}.radar .plane text{fill:var(--text);stroke:var(--surface)}.radar-quiet{position:absolute;left:50%;top:60%;transform:translate(-50%);padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--text-2);background:var(--glass);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:var(--glass-rim)}.radar-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-top:14px;font-size:12px;color:var(--text-2)}.alt-legend{display:flex;flex-wrap:wrap;gap:4px 12px}.alt-legend span{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}.alt-legend i{width:8px;height:8px;border-radius:50%}.attrib{color:var(--text-3);font-size:11px}.live-dot{animation:blink 2s ease-in-out infinite}@keyframes blink{50%{opacity:.3}}.plane-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;width:100%;min-height:210px;padding:22px 24px;border-radius:var(--r-xl);text-align:left;box-shadow:var(--shadow);background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--tint, var(--accent)) 24%,transparent),transparent 60%),var(--surface);transition:transform .15s var(--ease),box-shadow .2s}button.plane-hero:hover{box-shadow:var(--shadow-lift)}button.plane-hero:active{transform:scale(.99)}.plane-hero.quiet{--tint: var(--text-3)}.plane-hero>*:not(.plane-hero-photo):not(.cal-hero-art){position:relative;max-width:64%}.plane-hero .cal-hero-meta{max-width:100%}.plane-hero-photo{position:absolute;inset:0 0 0 36%;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 50%);mask-image:linear-gradient(to right,transparent,#000 50%)}.plane-hero-photo img{width:100%;height:100%;object-fit:cover;display:block}.plane-hero-title{font:700 28px/1.15 var(--font-display);letter-spacing:-.025em;margin-top:4px;overflow-wrap:anywhere}.plane-badge{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;flex:none;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint)}.plane-badge svg{width:22px;height:22px;fill:currentColor}.plane-nums{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;text-align:right}.plane-thumb{display:grid;place-items:center;width:64px;height:44px;border-radius:var(--r-sm);overflow:hidden;flex:none;background:var(--fill-2);color:var(--text-3)}.plane-thumb img{width:100%;height:100%;object-fit:cover}.plane-count{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.plane-count-v{font:700 44px/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.hour-bars{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;height:64px}.hour-bars span{display:flex;align-items:flex-end;border-radius:4px;background:var(--fill-2);overflow:hidden}.hour-bars i{display:block;width:100%;border-radius:4px;background:color-mix(in srgb,var(--indigo) 55%,var(--fill))}.hour-bars .now i{background:var(--indigo)}.hour-bars .later{opacity:.45}.plane-facts{margin-top:14px}.plane-facts .row{justify-content:space-between;min-height:44px}.plane-facts .row-value{white-space:normal;text-align:right}.plane-alert-opts{display:flex;flex-direction:column;gap:14px;margin-top:12px}.flight-photo{position:relative;margin:0 0 16px;aspect-ratio:16 / 10;border-radius:var(--r-lg);overflow:hidden;background:var(--fill-2)}.flight-photo img{width:100%;height:100%;object-fit:cover;display:block}.flight-photo figcaption{position:absolute;right:8px;bottom:8px;padding:2px 8px;border-radius:999px;font-size:11px;color:#fff;background:#00000073}.flight-route{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:20px}.flight-end{display:flex;flex-direction:column;gap:1px;min-width:0;max-width:130px}.flight-end:last-child{align-items:flex-end;text-align:right}.flight-code{font:700 28px/1.1 var(--font-display);letter-spacing:-.02em}.flight-track{position:relative;height:26px}.flight-line{position:absolute;left:0;right:0;top:50%;border-top:2px dashed var(--fill)}.flight-done{position:absolute;left:0;top:calc(50% - 1px);width:calc(var(--p) * 100%);height:2px;border-radius:2px;background:var(--accent)}.flight-icon{position:absolute;top:50%;left:calc(var(--p) * 100%);width:24px;height:24px;transform:translate(-50%,-50%);fill:var(--accent)}.tabbar{display:none}.fin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;align-items:start}.fin-hero{display:flex;flex-direction:column;gap:16px}.fin-hero .card-head{margin-bottom:-8px}.fin-big-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px}.fin-big{font:600 52px/1.02 var(--font-display);letter-spacing:-.035em;font-variant-numeric:tabular-nums}.chg{display:inline-flex;align-items:center;gap:2px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.chg ha-icon{--mdc-icon-size: 16px}.chg-s{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.chg.up,.chg-s.up{color:var(--ok)}.chg.down,.chg-s.down{color:var(--bad)}.fin-split{display:flex;gap:2px;height:12px;border-radius:999px;overflow:hidden;background:var(--fill-2)}.fin-split span{display:block;height:100%;min-width:3px}.fin-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.fin-leg{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--r-md);background:var(--fill-2);text-align:left;min-width:0;transition:background .2s var(--ease),transform .35s var(--spring)}button.fin-leg:hover{background:var(--fill)}button.fin-leg:active{transform:scale(.97)}.fin-leg .label i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.fin-leg .label i.neg{box-shadow:inset 0 0 0 2px var(--text-3)}.fin-leg-v{font:600 18px/1.2 var(--font-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.fin-hero .chart-plot{height:150px}.fin-grid>.fire-hero{align-self:stretch}.fire-hero{position:relative;display:flex;flex-direction:column;gap:8px;background:radial-gradient(130% 110% at 100% 0%,color-mix(in srgb,var(--warm) 30%,transparent),transparent 55%),radial-gradient(120% 120% at 0% 100%,color-mix(in srgb,var(--heat) 16%,transparent),transparent 60%),var(--surface)}.fire-title{font:700 26px/1.15 var(--font-display);letter-spacing:-.02em}.countdown{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px;margin-top:2px}.cd-n{font:700 72px/1 var(--font-display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;background:linear-gradient(160deg,var(--warm),var(--heat));-webkit-background-clip:text;background-clip:text;color:transparent}.cd-u{font:600 20px/1 var(--font-display);color:var(--text-2);margin-right:6px}.fire-when{font-size:15px;color:var(--text);font-weight:500}.fire-progress{margin-top:auto;padding-top:14px}.fin-bar{height:8px;border-radius:999px;background:var(--fill);overflow:hidden}.fin-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--heat),var(--warm));transition:width .9s var(--ease)}.fire-progress-legend{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}.fire-stats{margin-top:16px}.fire-stats .fit-stat-v{font-size:20px;display:inline-flex;align-items:center;gap:4px}.fire-stats .ok-text{color:var(--ok);--mdc-icon-size: 18px}.fire-hero .btn{align-self:flex-start;margin-top:10px}.chart.xy .chart-plot{height:170px}.chart.xy .ref{stroke:var(--warm);stroke-width:1.5;stroke-dasharray:5 5}.xy-ref{position:absolute;left:0;transform:translateY(-125%);font-size:11px;font-weight:600;color:var(--warm);font-variant-numeric:tabular-nums}.xy-mark{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--warm);box-shadow:0 0 0 3px var(--surface),0 0 0 6px color-mix(in srgb,var(--warm) 35%,transparent)}.xy-mark span{position:absolute;bottom:16px;left:50%;transform:translate(-50%);font-size:12px;font-weight:700;color:var(--warm);white-space:nowrap}.legend i.band{height:8px;background:color-mix(in srgb,var(--accent) 22%,transparent)}.legend i.ref{height:0;border-top:2px dashed var(--warm);border-radius:0}.pace{display:flex;flex-direction:column;gap:2px;margin-top:10px}.pace-head{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-variant-numeric:tabular-nums}.pace-head ha-icon{--mdc-icon-size: 18px}.pace.ahead .pace-head{color:var(--ok)}.pace.behind .pace-head{color:var(--warn)}.pace-line{display:inline-flex;align-items:center;gap:6px;margin-top:10px}.pace-line ha-icon{--mdc-icon-size: 16px}.plan-row{flex-wrap:wrap}.plan-v{display:flex;align-items:center;gap:10px;margin-left:auto}.plan-v .seg{flex:none}.plan-v .seg button{min-height:30px;padding:0 10px;font-size:12px}.fin-insight{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border-radius:var(--r-md);background:color-mix(in srgb,var(--warm) 12%,transparent);font-size:14px}.fin-insight ha-icon{color:var(--warm)}.fin-insight b{font-weight:600}.ticker{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(150deg,var(--accent),var(--indigo));color:#fff;font:700 11px/1 var(--font-display);letter-spacing:.02em;flex:none;box-shadow:inset 0 1px #ffffff40}.holding-v{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-variant-numeric:tabular-nums}.mort-top{display:flex;align-items:center;gap:16px;margin-bottom:18px}.mort-top .metric-v{font-size:28px}.fin-grid .chart.xy{margin-top:18px}.cat-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint);flex:none}.cat-ico ha-icon{--mdc-icon-size: 19px}.cat-ico.sm{width:26px;height:26px}.cat-ico.sm ha-icon{--mdc-icon-size: 15px}.spend-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.spend-top .big-reading{margin:0}.cat-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 24px;margin-top:12px}.cat-row{display:flex;align-items:center;gap:10px;min-height:38px}.cat-row .row-title{flex:1;min-width:0}.review{display:flex;flex-direction:column;gap:8px;margin-top:16px}.review .pills button{color:var(--text)}.review .pills ha-icon{color:var(--warn);--mdc-icon-size: 17px}.year-bars{grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin-top:20px}.year-bars .bar-track{height:72px}.year-bars .bar-track span{background:color-mix(in srgb,var(--accent) 40%,var(--fill))}.year-bars .bar.today .bar-track span{background:var(--accent)}.tx-v{color:var(--text);font-weight:500}.cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 4px}.cat-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;border-radius:var(--r-md);background:var(--fill-2);font-size:12px;font-weight:500;text-align:center;transition:background .2s var(--ease),transform .35s var(--spring)}.cat-grid button:active{transform:scale(.96)}.cat-grid button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:inset 0 0 0 2px var(--accent)}.input-unit{position:relative;display:flex;align-items:center}.input-unit>span{position:absolute;right:12px;color:var(--text-3);pointer-events:none}.input-unit input{padding-right:34px}.input-unit select{width:100%}.body-h{margin:28px 0 12px}.cam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cam-card{display:flex;flex-direction:column;gap:10px;padding:8px 8px 12px;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow);text-align:left;min-width:0;transition:box-shadow .2s var(--ease),transform .2s var(--ease)}.cam-card:hover{box-shadow:var(--shadow-lift)}.cam-card:active{transform:scale(.99)}.cam-meta{display:flex;flex-direction:column;gap:2px;padding:0 8px;min-width:0}.cam-name{font:600 15px/1.3 var(--font-display)}.cam-sub{color:var(--text-2);font-size:13px}.cam-grid.single{grid-template-columns:minmax(0,520px)}.cam-open{display:block;width:100%;padding:0;border-radius:var(--r-lg)}.cam-room{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:22px;align-items:start}.cam-side{display:flex;flex-direction:column;gap:4px;min-width:0}.cam-side .cam-line{margin-top:2px;font-size:15px;color:var(--text)}.cam-side .cam-strip-wrap{margin-top:18px}.cam-alert{margin-top:14px}.cam-alert .row{border-top:0;padding-bottom:0}.cam-move{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.sheet-move{margin-top:14px}.cam-pad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:6px}.cam-pad button{display:grid;place-items:center;border-radius:50%;background:var(--fill);color:var(--text);--mdc-icon-size: 24px;transition:background .15s var(--ease),transform .15s var(--ease)}.cam-pad button:hover{background:var(--fill-2)}.cam-pad button:active{transform:scale(.92)}.cam-pad button:disabled{opacity:.4}.pad-up{grid-column:2;grid-row:1}.pad-left{grid-column:1;grid-row:2}.pad-down{grid-column:2;grid-row:2}.pad-right{grid-column:3;grid-row:2}.cam-live{align-self:flex-start;margin-top:18px;gap:8px}@media(max-width:860px){.cam-room{grid-template-columns:minmax(0,1fr);gap:4px}.cam-live{align-self:stretch}}.cam-frame{position:relative;aspect-ratio:16 / 9;border-radius:var(--r-lg);overflow:hidden;background:var(--fill-2)}.cam-frame img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-select:none}.app[data-theme=dark] .cam-frame img{filter:brightness(.92)}.cam-frame.empty{display:grid;place-items:center}.cam-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-3);font-size:13px;--mdc-icon-size: 28px}.cam-chip{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px 5px 8px;border-radius:999px;font-size:12px;font-weight:500;color:#fff;background:#1c1c1e8c;-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);--mdc-icon-size: 14px}.cam-chip ha-icon{color:var(--c, #fff)}.cam-chip.quiet{--c: #5de07a}.cam-chip.person{--c: #ffd25a;background:#1c1c1eb3}.cam-chip.motion{--c: #6cc3ff}.cam-chip.off{--c: rgba(255, 255, 255, .6)}.cam-frame.empty .cam-chip.off{color:var(--text-2);background:var(--fill);-webkit-backdrop-filter:none;backdrop-filter:none}.cam-frame.empty .cam-chip.off ha-icon{color:var(--text-3)}.cam-line{margin:12px 2px 0;color:var(--text-2);font-size:14px}.cam-washer{display:flex;align-items:center;gap:8px;margin:8px 2px 0;color:var(--text-2);font-size:14px;--mdc-icon-size: 18px}.cam-strip-wrap{margin:16px 0 0}.cam-strip{display:grid;grid-template-columns:repeat(48,1fr);gap:2px;height:22px}.cam-strip i{border-radius:3px;background:var(--fill-2)}.cam-strip i.motion{background:var(--teal)}.cam-strip i.person{background:var(--accent)}.cam-strip-wrap .legend i{display:inline-block;width:8px;height:8px;border-radius:50%}.cam-strip-wrap .legend i.motion{background:var(--teal)}.cam-strip-wrap .legend i.person{background:var(--accent)}[data-tip]{position:relative;cursor:help;outline:none}[data-tip]:after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 8px);z-index:20;width:max-content;max-width:min(300px,80vw);padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--text) 94%,transparent);color:var(--surface);font:400 12px/1.45 var(--font-text, inherit);letter-spacing:0;white-space:pre-line;text-align:left;box-shadow:var(--shadow-lift);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .15s var(--ease),transform .15s var(--ease)}[data-tip]:hover:after,[data-tip]:focus-visible:after,[data-tip]:focus:after{opacity:1;transform:none}.body-stat:nth-child(3n):after,.trend-row .mini-stats>div:last-child:after{left:auto;right:0}.body-side{order:10}.body-deltas{display:flex;flex-wrap:wrap;gap:8px 20px}.delta-item{display:flex;flex-direction:column;gap:2px}.delta{font:600 17px/1.2 var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.delta.flat{color:var(--text-3);font-weight:500}.body-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.body-stat{display:flex;flex-direction:column;gap:2px;min-width:0}.spark{width:100%;height:24px;margin-top:4px;display:block}.spark.none{height:24px}.pending{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.pend-line{font-size:15px;margin-bottom:12px;color:var(--text)}.pend-actions{display:flex;flex-wrap:wrap;gap:8px}.pend-actions .btn{gap:8px}.trend-note{margin:12px 0 8px}.trend-rows{margin-top:14px}.trend-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;padding:12px 0;border-top:1px solid var(--line)}.trend-row .mini-stats{grid-column:1 / -1}.row-lead{display:inline-flex;flex:none}.field-row.two{grid-template-columns:1fr 1fr}.danger-link{color:var(--bad)}.fin-sheet-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}@media(min-width:1181px){.fin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fin-grid>[data-key=fin-recent]{grid-row:span 2}}@media(max-width:760px){.fin-grid{grid-template-columns:minmax(0,1fr);gap:12px}.fin-big{font-size:40px}.cd-n{font-size:60px}.fin-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-list{grid-template-columns:minmax(0,1fr)}}@media(max-width:1180px){.planes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home{grid-template-columns:minmax(0,1fr) 320px;gap:22px}.glances{grid-template-columns:repeat(2,minmax(0,1fr))}.glance:last-child:nth-child(odd){grid-column:1 / -1}.tasks-grid{grid-template-columns:minmax(0,1fr) 320px}.cal{grid-template-columns:minmax(0,1fr) 300px;gap:20px 22px}}@media(max-width:960px){.shell{padding:22px 24px 64px}.topbar{flex-direction:column;align-items:stretch;gap:18px}.segnav{order:-1;align-self:flex-start;max-width:100%;overflow-x:auto;scrollbar-width:none}.segnav::-webkit-scrollbar{display:none}.segnav button{padding:9px 16px}.home{display:flex;flex-direction:column;align-items:stretch;gap:22px}.home>*,.col-main>*,.col-side>*{min-width:0}.col-main,.col-side,.home-pair{display:contents}.s-glances{order:1}.s-note{order:2}.s-tasks{order:3}.s-controls{order:4}.s-health{order:5}.s-calendar{order:3}.s-finance{order:5}.s-planes,.s-groceries{order:6}.planes{grid-template-columns:minmax(0,1fr)}.s-appl{order:7}.s-access{order:8}.s-forecast{order:9}.cal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"hero hero" "month list" "view view";grid-template-rows:auto}.glances{grid-template-columns:repeat(var(--glances, 4),minmax(0,1fr))}.glance:last-child:nth-child(odd){grid-column:auto}.tasks-grid{grid-template-columns:1fr}.span-2{grid-column:1 / -1}.tile{min-height:72px}}@media(min-width:761px)and (max-width:960px){.home{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.s-glances,.s-note,.s-controls,.s-health,.s-appl{grid-column:1 / -1}.s-groceries{order:3}.s-forecast{order:8}.s-tasks>.card,.s-calendar>.card,.s-groceries>.card,.s-access>.card,.s-forecast>.card{height:100%}}@media(max-width:760px){.shell{padding:12px 16px calc(104px + env(safe-area-inset-bottom))}.segnav{display:none}.topbar{margin-bottom:20px}h1{font-size:30px}.glances{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.glance:last-child:nth-child(odd){grid-column:1 / -1}.glance{padding:14px 14px 13px}.glance-value{font-size:24px;margin-top:4px}.tile-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tile{padding:0 4px 0 10px;min-height:64px}.tile-body{padding:0 6px}.tile-icon{width:36px;height:36px}.board{grid-auto-columns:86%;margin:0 -16px;padding:2px 16px 6px;scroll-padding:0 16px;scroll-snap-type:x mandatory}.appl-grid,.room-grid,.climate-grid,.energy-grid,.fit-grid,.fit-people{grid-template-columns:minmax(0,1fr);gap:12px}.fit-people{margin-bottom:12px}.planes,.planes-side,.planes-grid{gap:12px}.planes{margin-bottom:12px}.planes-grid{grid-template-columns:minmax(0,1fr)}.plane-hero{min-height:0;padding:172px 18px 18px;border-radius:22px}.plane-hero.quiet{padding-top:18px;min-height:150px}.plane-hero>*:not(.plane-hero-photo):not(.cal-hero-art){max-width:100%}.plane-hero-photo{inset:0 0 auto;height:180px;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}.plane-hero-title{font-size:25px}.flight-code{font-size:24px}.fit-hero{padding:18px 16px 16px;gap:16px}.fit-rings-row{gap:20px}.fit-rings-row .rings{width:112px;height:112px}.ring-v{font-size:19px}.fit-stat-v{font-size:21px}.stack{gap:12px}.access-grid>*,.system-grid>*,.detail-grid>*{margin-bottom:12px}.card{padding:18px 16px;border-radius:22px}.hourly{margin:0 -16px 12px;padding:2px 16px 8px}.attention{padding:4px 16px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.air-pair{grid-template-columns:minmax(0,1fr);gap:20px}.air-now .big-v{font-size:28px}.air-metric{min-width:0}.air-metric .label{display:none}.reading-v{font-size:38px}.room-open{padding:16px 16px 12px}.room-head{margin-bottom:10px}.room-icon{width:36px;height:36px}.room-temp{font-size:22px}.room-quick{padding:0 12px 14px}.vac-map{padding:6px}.room-lede{margin-top:-10px}.control-row{grid-template-columns:minmax(0,1fr);gap:6px}.cal{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "month" "view" "list";gap:12px}.s-cal-view .board-bar{margin-top:8px}.cal-hero{min-height:0;padding:18px;border-radius:22px}.cal-hero-title{font-size:25px}.cal-hero-art ha-icon{--mdc-icon-size: 128px}.cal-tools{flex:1}.cal-tools .seg{flex:1;min-width:0}.agenda-card{padding:4px 16px}.aday{grid-template-columns:40px minmax(0,1fr);gap:10px}.aday-num{width:34px;height:34px;font-size:19px}.ev-time{width:44px;font-size:12px}.ev{gap:9px}.wk{--hh: 40px}.wk-card{padding:10px 6px 14px 0}.wk-row{grid-template-columns:34px repeat(7,minmax(0,1fr))}.wk-hours span{font-size:9px;right:4px}.wk-num{width:28px;height:28px;font-size:15px}.wk-day{font-size:10px}.wk-ev{padding:3px;font-size:10.5px;border-left-width:2px;border-radius:5px}.wk-ev-time{display:none}.wk-gutter{visibility:hidden}.wk-pill{font-size:10px;padding:2px 4px}.field-row{grid-template-columns:1fr 1fr}.field-row>.field:first-child{grid-column:1 / -1}.sheet{left:8px;right:8px;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:86vh;transform:none;border-radius:32px;padding:18px 18px 22px;animation:rise .42s var(--spring) both}.toasts{bottom:calc(96px + env(safe-area-inset-bottom))}.tabbar{display:flex;position:fixed;z-index:10;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));padding:5px;gap:2px;border-radius:999px;background:var(--glass);box-shadow:var(--glass-rim),var(--glass-shadow)}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;min-height:54px;justify-content:center;color:var(--text-2);font-size:10px;font-weight:600;letter-spacing:.01em;border-radius:999px;transition:background .25s var(--ease),color .2s var(--ease),transform .35s var(--spring)}.tabbar button ha-icon{--mdc-icon-size: 24px}.tabbar button:active{transform:scale(.92)}.tabbar button[aria-current=page]{color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent)}}@media(max-width:380px){.tiles{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-transparency:reduce){.app{--glass: var(--surface);--glass-thick: var(--surface);--glass-filter: none}.app[data-theme=dark]{--glass: var(--surface-2);--glass-thick: var(--surface-2)}}@media(prefers-contrast:more){.app{--glass-rim: inset 0 0 0 1px var(--text-3)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
