:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#dfe4ea;--bg-elevated:#f4f6f8;--bg-subtle:#e8ecf0;--border:#c8d0da;--border-strong:#a8b4c2;--text:#121820;--text-muted:#4e5d6e;--text-subtle:#6b7a8c;--accent:#0284c7;--accent-hover:#0369a1;--accent-muted:color-mix(in srgb, var(--accent) 12%, transparent);--accent-on:#fff;--danger:#c62828;--danger-muted:color-mix(in srgb, var(--danger) 12%, transparent);--ok:#15803d;--ok-muted:color-mix(in srgb, var(--ok) 12%, transparent);--warn:#b45309;--warn-muted:color-mix(in srgb, var(--warn) 12%, transparent);--pending:#7c6f1a;--armed:#6d28d9;--armed-muted:color-mix(in srgb, var(--armed) 12%, transparent);--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:9999px;--font-display:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--font:var(--font-body);--text-xs:.72rem;--text-sm:.82rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--tracking-tight:-.02em;--tracking-label:.06em;--leading-body:1.55;--leading-tight:1.2;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--shadow-sm:0 1px 2px #1218200f;--shadow-md:0 4px 14px #12182014;--shadow-lg:0 12px 36px #1218201f;--shadow-inset:inset 0 1px 0 #ffffff8c;--motion-fast:.14s;--motion-base:.22s;--motion-slow:.38s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--focus-ring:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent)}:root,[data-theme=dark],[data-theme=light]{--pending-muted:color-mix(in srgb, var(--pending) 14%, transparent)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c1016;--bg-elevated:#151b24;--bg-subtle:#1a222e;--border:#2a3544;--border-strong:#3d4d62;--text:#e8edf4;--text-muted:#8b98a8;--text-subtle:#6b7888;--accent:#38bdf8;--accent-hover:#7dd3fc;--accent-muted:color-mix(in srgb, var(--accent) 15%, transparent);--danger:#f07178;--danger-muted:color-mix(in srgb, var(--danger) 14%, transparent);--ok:#7fd962;--ok-muted:color-mix(in srgb, var(--ok) 14%, transparent);--warn:#ffb454;--warn-muted:color-mix(in srgb, var(--warn) 14%, transparent);--pending:#e6c84a;--armed:#a78bfa;--armed-muted:color-mix(in srgb, var(--armed) 14%, transparent);--shadow-sm:0 1px 3px #00000059;--shadow-md:0 6px 20px #0006;--shadow-lg:0 16px 48px #00000080;--shadow-inset:inset 0 1px 0 #ffffff0a}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}#__nuxt,body,html{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;margin:0}body{overflow-x:clip}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,select,textarea{font:inherit}.container{width:min(1100px,100% - 2rem);margin-inline:auto}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}.table-scroll>table{min-width:28rem}.card{box-shadow:var(--shadow-sm);padding:1rem 1.25rem}.btn,.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius)}.btn{min-height:2.75rem;color:var(--text);cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard);justify-content:center;align-items:center;gap:.35rem;padding:.55rem 1rem;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-on)}.btn-ghost{background:0 0}.btn-sm{min-height:2.25rem;font-size:var(--text-sm);padding:.25rem .55rem}.btn-danger{border-color:color-mix(in srgb,var(--danger) 50%,var(--border));color:var(--danger)}.field{gap:.35rem;margin-bottom:1rem;display:grid}.field label{color:var(--text-muted);font-size:.9rem}.field input,.field select,.kb-select{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;padding:.6rem .75rem;line-height:1.35}.field select,.kb-select{appearance:none;cursor:pointer;background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20fill%3D%22none%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20stroke%3D%22%234e5d6e%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.6%22%20d%3D%22m1%201.5%205%205%205-5%22%2F%3E%3C%2Fsvg%3E);background-position:right .75rem center;background-repeat:no-repeat;background-size:.75rem;background-color:var(--bg);min-height:2.5rem;padding-right:2.25rem;transition:border-color .15s,box-shadow .15s,background-color .15s}.field select{width:100%}[data-theme=dark] .field select,[data-theme=dark] .kb-select{background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20fill%3D%22none%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20stroke%3D%22%23e8edf4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%221.6%22%20d%3D%22m1%201.5%205%205%205-5%22%2F%3E%3C%2Fsvg%3E)}.field input:hover,.field select:hover,.kb-select:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.field input:focus,.field select:focus,.kb-select:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px;border-color:var(--accent)}.field select:disabled,.kb-select:disabled{opacity:.55;cursor:not-allowed}.field select option,.kb-select option{background:var(--bg-elevated);color:var(--text)}.error{color:var(--danger);font-size:.9rem}.chip{border:1px solid var(--border);color:var(--text-muted);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .5rem;font-size:.78rem;display:inline-flex}.chip.on{background:var(--accent-muted);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--text)}@media (width>=720px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.container{width:min(1100px,100% - 1.5rem)}.page-title{font-size:1.3rem}.card{padding:.9rem 1rem}.toasts{left:.75rem;right:.75rem;bottom:max(.75rem,env(safe-area-inset-bottom,0px));max-width:none}}@media (width<=480px){.container{width:min(1100px,100% - 1rem)}.field input,.field select,.kb-select{min-height:2.75rem}}.page-title{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-tight);margin:0 0 1rem;font-weight:650}.page-head{flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;margin-bottom:1rem;display:flex}.page-head .page-title{margin-bottom:0}.page-head-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.section-lede{max-width:52ch;margin:.25rem 0 0;font-size:.92rem}.muted,.section-lede{color:var(--text-muted)}.num{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:.92em}.label-caps{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:600}.empty,.label-caps{color:var(--text-muted)}.empty{text-align:center;padding:2rem}.skeleton{background:linear-gradient(90deg,color-mix(in srgb,var(--border) 60%,transparent) 25%,color-mix(in srgb,var(--border) 30%,transparent) 50%,color-mix(in srgb,var(--border) 60%,transparent) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.2s infinite shimmer}.skeleton-line{height:.85rem}.skeleton-line.w40{width:40%}.skeleton-line.w60{width:60%}.skeleton-line.w80{width:80%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toasts{z-index:9999;gap:.5rem;max-width:min(22rem,100vw - 2rem);display:grid;position:fixed;bottom:1rem;right:1rem}.toast{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;box-shadow:var(--shadow-md);padding:.65rem .9rem;font-size:.9rem}.toast.ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}.toast.err{border-color:color-mix(in srgb,var(--danger) 45%,var(--border));color:var(--danger)}.toast.info{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}:root,[data-theme=light]{--ha-bg:#dfe4ea;--ha-card:#f4f6f8;--ha-card-border:#c8d0da;--ha-card-radius:16px;--ha-tile-radius:12px;--ha-primary:#0284c7;--ha-primary-muted:color-mix(in srgb, var(--ha-primary) 12%, transparent);--ha-section-gap:1.25rem;--ha-tile-min:13.5rem;--ha-shadow:var(--shadow-sm);--ha-chip-bg:color-mix(in srgb, var(--ha-card) 88%, var(--ha-bg));--ha-surface-noise:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cfilter%20id%3D%22a%22%3E%3CfeTurbulence%20baseFrequency%3D%22.85%22%20numOctaves%3D%224%22%20stitchTiles%3D%22stitch%22%20type%3D%22fractalNoise%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url\(%23a\)%22%20opacity%3D%22.035%22%2F%3E%3C%2Fsvg%3E);--ha-icon-climate:#0284c7;--ha-icon-climate-bg:#0284c729;--ha-icon-humidity:#0891b2;--ha-icon-humidity-bg:#0891b229;--ha-icon-air:#0f766e;--ha-icon-air-bg:#0f766e24;--ha-icon-light:#d97706;--ha-icon-light-bg:#d9770629;--ha-icon-sensor:#0d9488;--ha-icon-sensor-bg:#0d948824;--ha-icon-default:#64748b;--ha-icon-default-bg:#64748b24;--density-tile-min:var(--ha-tile-min);--density-tile-pad:.85rem 1rem;--density-tile-gap:.65rem}[data-theme=dark]{--ha-bg:#0e1319;--ha-card:#171e28;--ha-card-border:#2a3544;--ha-primary:#38bdf8;--ha-primary-muted:color-mix(in srgb, var(--ha-primary) 15%, transparent);--ha-chip-bg:color-mix(in srgb, var(--ha-card) 92%, #000);--ha-shadow:var(--shadow-sm);--ha-surface-noise:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cfilter%20id%3D%22a%22%3E%3CfeTurbulence%20baseFrequency%3D%22.85%22%20numOctaves%3D%224%22%20stitchTiles%3D%22stitch%22%20type%3D%22fractalNoise%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url\(%23a\)%22%20opacity%3D%22.06%22%2F%3E%3C%2Fsvg%3E);--ha-icon-climate:#38bdf8;--ha-icon-climate-bg:#38bdf82e;--ha-icon-humidity:#22d3ee;--ha-icon-humidity-bg:#22d3ee29;--ha-icon-air:#2dd4bf;--ha-icon-air-bg:#2dd4bf24;--ha-icon-light:#fbbf24;--ha-icon-light-bg:#fbbf2429;--ha-icon-sensor:#2dd4bf;--ha-icon-sensor-bg:#2dd4bf24}[data-density=compact]{--density-tile-min:11rem;--density-tile-pad:.65rem .75rem;--density-tile-gap:.45rem;--ha-section-gap:.85rem}.ha-page{--bg:var(--ha-bg);--bg-elevated:var(--ha-card);--border:var(--ha-card-border);--accent:var(--ha-primary);--radius:var(--ha-tile-radius)}.ha-climate-bar{flex-wrap:wrap;gap:.5rem;min-height:2.5rem;margin-bottom:1rem;display:flex}.ha-pill{background:var(--ha-card);border:1px solid var(--ha-card-border);max-width:100%;box-shadow:var(--ha-shadow);color:var(--text);border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.88rem;display:inline-flex;overflow:hidden}.ha-pill-icon{flex-shrink:0;font-size:1.05rem;line-height:1}.ha-pill-value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;font-weight:600;overflow:hidden}.ha-section{margin-bottom:var(--ha-section-gap);touch-action:pan-y}.ha-section-head{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.65rem;padding:0 .15rem;display:flex}.ha-section-title{min-width:0;font-size:1.05rem;font-weight:600;font-family:var(--font-display);align-items:center;gap:.45rem;margin:0;display:flex}.ha-section-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ha-section-icon{font-size:1.15rem;line-height:1}.ha-section-chips{flex-wrap:wrap;gap:.35rem;margin-left:auto;display:flex}.ha-section-chip{background:var(--ha-chip-bg);border:1px solid var(--ha-card-border);max-width:100%;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer;font-size:.78rem;font:inherit;line-height:inherit;transition:border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .55rem;display:inline-flex;overflow:hidden}.ha-section-chip:hover{border-color:color-mix(in srgb,var(--ha-primary) 40%,var(--ha-card-border));color:var(--text);background:color-mix(in srgb,var(--ha-primary) 8%,var(--ha-chip-bg))}.ha-section-chip:focus-visible{outline:2px solid var(--ha-primary);outline-offset:2px}.ha-tiles{grid-template-columns:repeat(auto-fill,minmax(var(--density-tile-min),1fr));gap:var(--density-tile-gap);display:grid}.ha-tile{padding:var(--density-tile-pad);border-radius:var(--ha-tile-radius);background:var(--ha-card);border:1px solid var(--ha-card-border);min-width:0;max-width:100%;min-height:6.5rem;box-shadow:var(--ha-shadow);cursor:pointer;text-align:left;color:inherit;font:inherit;transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-out);touch-action:pan-y;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:flex-start;gap:.35rem;display:flex;overflow:hidden}.ha-tile:hover{border-color:color-mix(in srgb,var(--ha-primary) 35%,var(--ha-card-border));box-shadow:var(--shadow-md)}.ha-tile:active{transform:scale(.985)}.ha-tile:focus-visible{outline:2px solid var(--ha-primary);outline-offset:2px}.ha-tile--dragging{opacity:.55;box-shadow:var(--shadow-md)}.ha-tile--drop-target{border-color:var(--ha-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--ha-primary) 35%,transparent)}.ha-tile[draggable=true]{cursor:grab}.ha-tile[draggable=true]:active{cursor:grabbing}.ha-tile--edit{cursor:grab;border-style:dashed;padding-top:1.35rem;position:relative}.ha-tile-grip{letter-spacing:-.05em;pointer-events:none;font-size:.85rem;top:.35rem;left:.55rem}.ha-tile-grip,.ha-tile-hide{color:var(--text-muted);line-height:1;position:absolute}.ha-tile-hide{border:1px solid var(--ha-card-border);background:var(--ha-card);cursor:pointer;z-index:2;border-radius:50%;justify-content:center;align-items:center;width:1.55rem;height:1.55rem;font-size:.75rem;display:inline-flex;top:.3rem;right:.35rem}.ha-tile-hide:focus-visible,.ha-tile-hide:hover{color:var(--ha-primary);border-color:color-mix(in srgb,var(--ha-primary) 45%,var(--ha-card-border));outline:none}.ha-section--edit{border-radius:var(--ha-tile-radius);border:1px dashed color-mix(in srgb,var(--ha-primary) 35%,var(--ha-card-border));background:color-mix(in srgb,var(--ha-primary) 4%,transparent);padding:.55rem .45rem .65rem}.ha-section-edit-hint{margin:-.25rem 0 .55rem;padding:0 .15rem;font-size:.8rem}.ha-section-move{gap:.25rem;margin-left:auto;display:inline-flex}.ha-section-move-btn{border:1px solid var(--ha-card-border);background:var(--ha-card);width:2rem;height:2rem;color:inherit;font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.ha-section-move-btn:focus-visible:not(:disabled),.ha-section-move-btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--ha-primary) 45%,var(--ha-card-border));color:var(--ha-primary);outline:none}.ha-section-move-btn:disabled{opacity:.35;cursor:not-allowed}.ha-page--edit .ha-tile[draggable=true]{cursor:grab}.ha-tile-icon{border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.2rem;line-height:1;display:flex}.ha-tile-icon--climate{background:var(--ha-icon-climate-bg);color:var(--ha-icon-climate)}.ha-tile-icon--humidity{background:var(--ha-icon-humidity-bg);color:var(--ha-icon-humidity)}.ha-tile-icon--air{background:var(--ha-icon-air-bg);color:var(--ha-icon-air)}.ha-tile-icon--light{background:var(--ha-icon-light-bg);color:var(--ha-icon-light)}.ha-tile-icon--sensor{background:var(--ha-icon-sensor-bg);color:var(--ha-icon-sensor)}.ha-tile-icon--default{background:var(--ha-icon-default-bg);color:var(--ha-icon-default)}.ha-tile-meta,.ha-tile-metric,.ha-tile-name,.ha-tile-value{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.ha-tile-name{color:var(--text-muted);font-size:.82rem;line-height:1.25}.ha-tile-metric{color:var(--text,inherit);font-size:.78rem;font-weight:500;line-height:1.2}.ha-tile-value{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:600;line-height:1.2;font-family:var(--font-mono);min-height:1.35em;margin-top:auto}.ha-tile-meta{color:var(--text-muted);min-height:1em;font-size:.72rem}.ha-modal-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.45rem;display:flex}.ha-modal-title{margin:0;font-size:1.05rem;font-weight:600}.ha-modal-sub{color:var(--text-muted);margin:.2rem 0 0;font-size:.82rem}.ha-modal-value{font-variant-numeric:tabular-nums;font-size:2.25rem;font-weight:700;line-height:1.1;font-family:var(--font-mono);min-height:1.1em;margin:.5rem 0 .25rem}.ha-modal-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:1rem 0 .5rem;font-size:.85rem;font-weight:600}.ha-sensor-panel{background:var(--ha-card);border:1px solid var(--ha-card-border);border-radius:var(--ha-card-radius);width:min(22rem,100vw - 1.5rem);max-height:min(85vh,36rem);box-shadow:var(--shadow-lg);transition:box-shadow var(--motion-base) var(--ease-out);flex-direction:column;display:flex;position:fixed;overflow:hidden}.ha-sensor-panel.is-dragging{opacity:.95;box-shadow:var(--shadow-lg);-webkit-user-select:none;user-select:none}.ha-sensor-panel-head{cursor:grab;border-bottom:1px solid var(--ha-card-border);background:color-mix(in srgb,var(--ha-card) 92%,var(--ha-primary));touch-action:none;flex-shrink:0;align-items:flex-start;gap:.65rem;padding:.85rem .85rem .65rem;display:flex}.ha-sensor-panel-head:active{cursor:grabbing}.ha-sensor-panel-titles{flex:1;min-width:0}.ha-sensor-panel-close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;font-size:1.35rem;line-height:1}.ha-sensor-panel-close:hover{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.ha-sensor-panel-body{overscroll-behavior:contain;touch-action:pan-y;padding:.75rem 1rem 1.1rem;overflow:auto}.ha-sensor-panel .metric-history-chart{margin-top:.15rem}.ha-sensor-chart-slot{min-height:220px}.ha-sensor-panel-resizer{cursor:nwse-resize;background-image:linear-gradient(135deg,transparent 40%,var(--border) 40%,var(--border) 55%,transparent 55%),linear-gradient(135deg,transparent 60%,var(--border) 60%,var(--border) 75%,transparent 75%);border-radius:0 0 var(--ha-card-radius) 0;opacity:.5;touch-action:none;width:1.5rem;height:1.5rem;position:absolute;bottom:0;right:0}.ha-sensor-panel-resizer:active,.ha-sensor-panel-resizer:hover{opacity:1}@media (width<=768px){.ha-sensor-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:none;max-height:min(88vh,32rem);box-shadow:0 -10px 40px #00000047;width:100%!important;inset:auto 0 0!important}.ha-sensor-panel-resizer{display:none}}@media (width<=520px){.ha-sensor-panel-resizer{display:none}}@media (width<=720px){:root,[data-theme=dark],[data-theme=light]{--ha-tile-min:10.5rem;--ha-section-gap:1rem}}@media (width<=520px){:root,[data-theme=dark],[data-theme=light]{--ha-tile-min:9.5rem}.ha-tile{min-height:5.75rem}.ha-sensor-panel{width:calc(100vw - 1rem);max-height:min(78vh,32rem)}.ha-section-chips{width:100%;margin-left:0}}.ha-admin-panel{border-radius:var(--ha-card-radius);margin-bottom:1rem}.surface-textured{background-image:var(--ha-surface-noise);background-repeat:repeat}.brand-mark{border-radius:var(--radius-sm);background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#000));width:1.65rem;height:1.65rem;color:var(--accent-on);box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:800;display:inline-flex}.brand-mark-sm{width:1.25rem;height:1.25rem;font-size:.6rem}.status-dot{border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;display:inline-block}.status-dot.online{background:var(--ok);box-shadow:0 0 0 2px var(--ok-muted)}.status-dot.offline{background:var(--text-subtle)}.status-dot.stale{background:var(--warn);box-shadow:0 0 0 2px var(--warn-muted)}.status-dot.pending{background:var(--pending);box-shadow:0 0 0 2px var(--pending-muted)}.status-dot.error{background:var(--danger);box-shadow:0 0 0 2px var(--danger-muted)}.kb-tabs{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-subtle);gap:.15rem;width:fit-content;max-width:100%;padding:.2rem;display:flex;overflow-x:auto}.kb-tabs button{border-radius:calc(var(--radius) - 2px);min-height:2.25rem;color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast);background:0 0;border:none;padding:.4rem .75rem}.kb-tabs button:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 6%,transparent)}.kb-tabs button.active,.kb-tabs button.is-active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-sm)}.kb-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.empty-state{text-align:center;border:1px dashed var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-subtle) 60%,var(--bg-elevated));padding:2.5rem 1.5rem}.empty-state-icon{background:var(--accent-muted);width:3rem;height:3rem;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.85rem;display:inline-flex}.empty-state h3{font-size:var(--text-lg);margin:0 0 .35rem}.empty-state p{max-width:32ch;color:var(--text-muted);font-size:var(--text-sm);margin:0 auto 1rem}.cmd-feedback{border-radius:var(--radius-pill);font-size:var(--text-xs);font-family:var(--font-mono);border:1px solid var(--border);align-items:center;gap:.4rem;padding:.25rem .55rem;display:inline-flex}.cmd-feedback.pending{color:var(--pending);border-color:color-mix(in srgb,var(--pending) 40%,var(--border));background:var(--pending-muted)}.cmd-feedback.queued{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--accent-muted)}.cmd-feedback.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:var(--ok-muted)}.cmd-feedback.fail{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border));background:var(--danger-muted)}.rbac-lock{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-subtle);font-size:var(--text-sm);color:var(--text-muted);align-items:flex-start;gap:.65rem;padding:.75rem 1rem;display:flex}.rbac-lock strong{color:var(--text);margin-bottom:.15rem;display:block}.role-badge{border:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:.1rem .4rem;font-size:.68rem}.role-badge.admin{border-color:color-mix(in srgb,var(--warn) 45%,var(--border));color:var(--warn)}.role-badge.operator{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent)}.density-toggle{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-subtle);gap:.15rem;padding:.15rem;display:inline-flex}.density-toggle button{border-radius:calc(var(--radius) - 2px);min-height:2.25rem;color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:.35rem .65rem}.density-toggle button.is-active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-sm)}.admin-surface{border-color:color-mix(in srgb,var(--warn) 35%,var(--border));background:color-mix(in srgb,var(--warn-muted) 35%,var(--bg-elevated))}.admin-banner{border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--warn) 40%,var(--border));background:var(--warn-muted);font-size:var(--text-sm);color:var(--text);align-items:flex-start;gap:.65rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.settings-content,.settings-layout{flex-direction:column;gap:1rem;display:flex}.settings-content{flex:1;min-width:0}.settings-sidebar{min-width:0}.settings-groups{flex-direction:column;gap:1.25rem;min-width:0;display:none}.settings-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .15rem;font-size:.72rem;font-weight:600}.settings-group-lede{color:var(--text-muted);max-width:42ch;margin:0 0 .5rem;font-size:.82rem}.settings-group-items{flex-direction:column;gap:.25rem;display:flex}.settings-group-items a{border-radius:var(--radius);color:var(--text);border:1px solid #0000;justify-content:flex-start;align-items:center;gap:.5rem;min-width:0;padding:.55rem .75rem;display:flex}.settings-group-items a>span:first-child{text-overflow:ellipsis;min-width:0;overflow:hidden}.settings-group-items a .role-badge{flex-shrink:0;margin-left:auto}.settings-group-items a:hover{background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:var(--border);color:var(--text)}.settings-group-items a.is-active{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.settings-nav.mobile-only{display:flex}@media (width>=900px){.settings-layout{flex-direction:row;align-items:flex-start;gap:1.5rem}.settings-sidebar{flex:0 0 15rem;width:15rem;min-width:14rem;max-width:16rem}.settings-nav.mobile-only{display:none}.settings-groups{width:100%;display:flex}}@media (width<=480px){.density-toggle button,.kb-tabs button{min-height:2.75rem}}.chip.online{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:var(--ok-muted)}.chip.offline{color:var(--text-muted)}.chip.stale{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--border));background:var(--warn-muted)}.chip.pending{color:var(--pending);border-color:color-mix(in srgb,var(--pending) 40%,var(--border));background:var(--pending-muted)}.chip.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border));background:var(--danger-muted)}.chip.detected{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 10%,transparent);align-items:center;gap:.4rem;margin-top:1rem;display:inline-flex}.kb-toast{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-md);align-items:flex-start;gap:.65rem;max-width:22rem;padding:.75rem 1rem;display:flex}.kb-toast.success{border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}.kb-toast.error{border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}.kb-modal-backdrop{z-index:80;background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.kb-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(28rem,100%);box-shadow:var(--shadow-lg);overflow:hidden}.kb-modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.15rem;display:flex}.kb-modal-head h2{font-size:var(--text-lg);margin:0}.kb-modal-body{padding:1rem 1.15rem 1.15rem}.kb-modal-foot{background:var(--bg-subtle);justify-content:flex-end;gap:.5rem;padding:.85rem 1.15rem;display:flex}.kb-modal-foot,.kb-sheet{border-top:1px solid var(--border)}.kb-sheet{background:var(--bg-elevated);border-radius:var(--radius-xl,1rem) var(--radius-xl,1rem) 0 0;max-height:85vh;box-shadow:var(--shadow-lg);z-index:90;position:fixed;bottom:0;left:0;right:0;overflow:auto}.kb-sheet-handle{border-radius:var(--radius-pill);background:var(--border-strong,var(--border));width:2.5rem;height:.25rem;margin:.65rem auto 0}.kb-dropdown{display:inline-block;position:relative}.kb-dropdown-menu{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);min-width:11rem;box-shadow:var(--shadow-md);z-index:40;padding:.35rem;position:absolute;top:calc(100% + .35rem);right:0}.kb-dropdown-menu a,.kb-dropdown-menu button{border-radius:calc(var(--radius) - 2px);width:100%;min-height:2.5rem;color:var(--text);text-align:left;cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .65rem;text-decoration:none;display:flex}.kb-dropdown-menu a:hover,.kb-dropdown-menu button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.kb-dropdown-menu .danger{color:var(--danger)}.skeleton-tile{border-radius:var(--ha-tile-radius,var(--radius));height:6.5rem}.skeleton-card{gap:.5rem;padding:1rem 1.25rem;display:grid}.more-menu{position:relative}.more-menu>summary{list-style:none}.more-menu>summary::-webkit-details-marker{display:none}.more-panel{z-index:15;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);min-width:8rem;box-shadow:var(--shadow-md);gap:.25rem;padding:.35rem;display:grid;position:absolute;top:calc(100% + .2rem);right:0}.kb-dropdown.desktop-more{display:none}.more-menu.mobile-more{display:inline-block}@media (width>=721px){.kb-dropdown.desktop-more{display:inline-block}.more-menu.mobile-more{display:none}.device-card,.device-card-static{overflow:visible}}@media (width<=720px){.more-menu.mobile-more{width:100%}.more-panel{box-shadow:none;background:color-mix(in srgb,var(--bg-elevated) 80%,var(--bg));margin-top:.25rem;position:static}}.icon-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);width:2.75rem;height:2.75rem;color:var(--text);cursor:pointer;transition:border-color var(--motion-fast),background var(--motion-fast);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--accent)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-bar,.filter-strip{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-bottom:1rem;display:flex}.field-inline{align-items:center;gap:.45rem;display:inline-flex}.field-inline label{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.device-grid{gap:.75rem;display:grid}@media (width>=640px){.device-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.device-grid{grid-template-columns:repeat(3,1fr)}}.device-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-sm);gap:.55rem;min-width:0;padding:1rem;display:grid;overflow:visible}.device-card:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.device-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.device-meta-row{font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;gap:.35rem;display:flex}.card-actions{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:1fr}@media (width>=768px){.grid-2{grid-template-columns:repeat(2,1fr)}}.facts{margin:.75rem 0 0}.facts,.facts div{gap:.5rem;display:grid}.facts div{grid-template-columns:8rem 1fr}.facts dt{color:var(--text-muted);font-size:var(--text-sm);margin:0}.facts dd{margin:0}.action-bar{flex-wrap:wrap;align-items:center;gap:.65rem;padding:.75rem 0;display:flex}.chart-slot{min-height:180px}.sensor-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.sensor-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.sensor-table td,.sensor-table th{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .65rem}.sensor-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label,.04em);color:var(--text-muted);font-weight:600}.settings-overview-grid{gap:1rem;display:grid}@media (width>=768px){.settings-overview-grid{grid-template-columns:repeat(2,1fr)}}.settings-segment-card{padding:1rem 1.15rem}.settings-segment-card h2{margin:0 0 .25rem;font-size:1.05rem}.settings-segment-card .links{flex-direction:column;gap:.35rem;margin-top:.75rem;display:flex}.settings-segment-card .links a{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:.45rem 0;display:flex}.settings-segment-card .links a:last-child{border-bottom:none}.auth-trust{flex-direction:column;gap:.55rem;margin-top:1.5rem;display:flex}.auth-trust span{font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:.4rem;display:inline-flex}.auth-trust svg{opacity:.8;flex-shrink:0}.divider-or{color:var(--text-muted);font-size:var(--text-sm);align-items:center;gap:.75rem;margin:1rem 0 .75rem;display:flex}.divider-or:after,.divider-or:before{content:"";background:var(--border);flex:1;height:1px}.b2b-hero-grid{gap:var(--space-8,2rem);align-items:center;display:grid}@media (width>=900px){.b2b-hero-grid{gap:var(--space-10,2.5rem);grid-template-columns:minmax(0,1fr) minmax(280px,420px)}}.public-visual{border-radius:var(--radius-lg);border:1px solid var(--border);background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 8%,var(--bg-elevated)),var(--bg-elevated) 48%);box-shadow:var(--shadow-md),var(--shadow-inset,inset 0 1px 0 #ffffff0a);min-height:240px;position:relative;overflow:hidden}.public-visual:before{content:"";background:radial-gradient(ellipse 80% 60% at 70% 20%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%);pointer-events:none;position:absolute;inset:0}.public-visual svg{width:100%;height:auto;display:block}.public-visual .pv-surface{fill:var(--bg-elevated);stroke:var(--border);stroke-width:1px}.public-visual .pv-accent{fill:none;stroke:var(--accent)}.public-visual .pv-text{fill:var(--text)}.public-visual .pv-muted{fill:var(--text-muted);opacity:.45}.public-visual .pv-ok{fill:var(--ok)}.public-visual .pv-accent-soft{fill:color-mix(in srgb,var(--accent) 18%,transparent)}.public-visual .pv-border-line,.public-visual .pv-grid-line{stroke:var(--border);stroke-width:1px}.public-visual .pv-grid-line{opacity:.35}.public-visual .pv-fill-stop-top{stop-color:var(--accent);stop-opacity:.28}.public-visual .pv-fill-stop-bottom{stop-color:var(--accent);stop-opacity:0}.public-visual .pv-fill{fill:url(#pv-chart-fill);opacity:0;animation:.7s 1.15s forwards pv-fill-in}.public-visual .pv-line-path{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:pv-chart-draw 2s var(--ease-standard,cubic-bezier(.2,0,0,1)) forwards}.public-visual .pv-cursor-group{opacity:0;animation:.35s 1.85s forwards pv-cursor-in}.public-visual .pv-cursor{fill:var(--accent);transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out 2.2s infinite pv-cursor-pulse}.public-visual .pv-cursor-ring{fill:none;stroke:var(--accent);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out 2.2s infinite pv-cursor-ring}.public-visual .pv-live-badge{fill:color-mix(in srgb,var(--ok) 16%,var(--bg-elevated));stroke:color-mix(in srgb,var(--ok) 40%,var(--border));stroke-width:1px}.public-visual .pv-live-text{fill:var(--ok);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:600}.public-visual .pv-live-dot{fill:var(--ok);animation:1.8s ease-in-out infinite pv-live-dot}@keyframes pv-chart-draw{to{stroke-dashoffset:0}}@keyframes pv-fill-in{to{opacity:1}}@keyframes pv-cursor-in{to{opacity:1}}@keyframes pv-cursor-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes pv-cursor-ring{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.12;transform:scale(1.55)}}@keyframes pv-live-dot{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.public-visual .pv-cursor-group,.public-visual .pv-fill,.public-visual .pv-line-path{stroke-dashoffset:0;opacity:1;animation:none}.public-visual .pv-cursor,.public-visual .pv-cursor-ring,.public-visual .pv-live-dot{animation:none}.public-visual .pv-cursor-ring{opacity:.35}}.public-stat-strip{gap:var(--space-4,1rem) var(--space-6,1.5rem);margin-top:var(--space-6,1.5rem);padding-top:var(--space-5,1.25rem);border-top:1px solid var(--border-soft,var(--border));flex-wrap:wrap;display:flex}.public-stat{flex-direction:column;gap:.15rem;display:flex}.public-stat strong{font-family:var(--font-mono);font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.public-stat span{font-size:var(--text-sm);color:var(--text-muted)}.tile-icon{border-radius:var(--radius-sm);background:var(--accent-muted);width:2.25rem;height:2.25rem;color:var(--accent);justify-content:center;align-items:center;margin-bottom:.15rem;display:inline-flex}.int-chip-row{gap:var(--space-2,.5rem);margin-top:var(--space-4,1rem);flex-wrap:wrap;display:flex}.int-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-elevated);font-size:var(--text-sm);color:var(--text-muted);box-shadow:var(--shadow-sm);align-items:center;gap:.35rem;padding:.35rem .65rem;display:inline-flex}.downloads-trust{gap:var(--space-3,.75rem) var(--space-5,1.25rem);margin-top:var(--space-4,1rem);flex-wrap:wrap;display:flex}.downloads-trust span{font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:.35rem;display:inline-flex}.downloads-trust svg{opacity:.85;flex-shrink:0}.ha-tile.is-stale .ha-tile-value{color:var(--warn)}.ha-tile.is-offline{opacity:.72}.ha-tile.is-offline .ha-tile-value{color:var(--text-muted)}@media (width<=768px){.page-head-actions{flex-wrap:wrap;align-items:center;gap:.5rem;width:100%;margin-left:0;display:flex}.filter-bar,.filter-strip{gap:.65rem}.field-inline,.filter-bar,.filter-strip{flex-direction:column;align-items:stretch}.field-inline{gap:.35rem;width:100%}.field-inline .kb-select,.field-inline select{width:100%;min-height:2.75rem}.public-stat-strip{flex-direction:column;align-items:flex-start;gap:.75rem}.settings-overview-grid{grid-template-columns:1fr}.card-actions{width:100%}}@media (width<=520px){.facts div{grid-template-columns:1fr;gap:.15rem}}@media (width<=480px){.public-visual{min-height:200px}.b2b-hero-grid{gap:1.25rem}}.kb-map-main{flex-direction:column;flex:1;min-height:0;padding-top:0;display:flex}.kb-map-layout{grid-template-columns:minmax(17.5rem,22rem) 1fr;min-height:calc(100vh - 3.25rem);display:grid}.kb-map-side{gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-6);border-right:1px solid var(--border);background:var(--bg-elevated);flex-direction:column;display:flex;overflow:auto}.kb-map-side .page-title{font-size:var(--text-xl)}.kb-map-side-list{gap:var(--space-2);display:grid}.kb-map-item{text-align:left;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);width:100%;min-height:2.75rem;color:var(--text);cursor:pointer;gap:.2rem;padding:.7rem .8rem;display:grid}.kb-map-item:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--bg-elevated)}.kb-map-item.is-active{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--accent-muted);box-shadow:var(--shadow-sm)}.kb-map-item:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:2px}.kb-map-item strong{font-size:var(--text-sm)}.kb-map-item span{font-size:var(--text-xs);color:var(--text-muted)}.kb-map-stage{background:var(--bg-subtle);height:100%;min-height:28rem;position:relative;overflow:hidden}.kb-map-stage>#map-root,.kb-map-stage>.kb-ymap-wrap{height:100%;min-height:inherit}.kb-map-toolbar{top:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:4;gap:var(--space-2);pointer-events:none;display:grid;position:absolute}.kb-map-toolbar>*{pointer-events:auto}.kb-map-search{max-width:28rem;position:relative}.kb-map-search input{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);width:100%;min-height:2.75rem;color:var(--text);box-shadow:var(--shadow-md);padding:.6rem .85rem}.kb-map-search input:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px;border-color:var(--accent)}.kb-suggest{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);max-height:16rem;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow:auto}.kb-suggest[hidden]{display:none}.kb-suggest button{text-align:left;border-radius:var(--radius-sm);width:100%;min-height:2.75rem;color:var(--text);cursor:pointer;background:0 0;border:0;gap:.1rem;padding:.5rem .65rem;display:grid}.kb-suggest button.is-active,.kb-suggest button:hover{background:var(--accent-muted)}.kb-suggest button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.kb-suggest small{color:var(--text-muted);font-size:var(--text-xs)}.kb-map-canvas{cursor:crosshair;width:100%;height:100%;min-height:28rem;display:block}.kb-map-canvas.view-only{cursor:grab}.kb-map-ground{fill:var(--bg-subtle)}.kb-map-water{fill:color-mix(in srgb,var(--accent) 18%,var(--bg-subtle))}.kb-map-park{fill:color-mix(in srgb,var(--ok) 16%,var(--bg-subtle))}.kb-map-block{fill:var(--bg-elevated);stroke:var(--border);stroke-width:1px}.kb-map-street{fill:none;stroke:var(--bg);stroke-width:14px;stroke-linecap:round;stroke-linejoin:round}.kb-map-street-major{stroke-width:22px;stroke:color-mix(in srgb,var(--bg) 70%,var(--border))}.kb-map-label{fill:var(--text-muted);font-family:var(--font-body);letter-spacing:.04em;pointer-events:none;font-size:11px}.kb-map-radius{fill:color-mix(in srgb,var(--accent) 16%,transparent);stroke:color-mix(in srgb,var(--accent) 55%,var(--border));stroke-width:1.5px}.kb-map-radius.wide{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:color-mix(in srgb,var(--accent) 35%,var(--border));stroke-dasharray:5 4}.kb-map-radius.is-active{fill:color-mix(in srgb,var(--accent) 24%,transparent);stroke:var(--accent)}.kb-map-radius.offline{fill:color-mix(in srgb,var(--text-subtle) 14%,transparent);stroke:var(--border-strong)}.kb-map-radius.stale{fill:color-mix(in srgb,var(--warn) 16%,transparent);stroke:color-mix(in srgb,var(--warn) 50%,var(--border))}.kb-map-dot{fill:var(--accent);stroke:var(--bg-elevated);stroke-width:2px}.kb-map-dot.offline{fill:var(--text-subtle)}.kb-map-dot.stale{fill:var(--warn)}.kb-map-pin{fill:var(--accent);stroke:var(--accent-on);stroke-width:2px}.kb-map-metric{fill:var(--text);font-family:var(--font-mono);pointer-events:none;font-size:11px}.kb-map-metric-bg{fill:var(--bg-elevated);stroke:var(--border);stroke-width:1px}.kb-map-float{z-index:3;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-sm);font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.35rem .55rem;display:flex;position:absolute}.kb-map-legend{left:var(--space-4);bottom:2.5rem}.kb-map-scale{right:var(--space-4);font-family:var(--font-mono);bottom:2.5rem}.kb-map-attrib{color:var(--text-subtle);background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border-top:1px solid var(--border);margin:0;padding:.25rem .65rem;font-size:.68rem;position:absolute;bottom:0;left:0;right:0}.kb-map-privacy{border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));background:var(--accent-muted);font-size:var(--text-sm);color:var(--text);margin:0;padding:.7rem .8rem}.kb-map-privacy strong{margin-bottom:.15rem;display:block}.kb-map-actions{flex-wrap:wrap;gap:.5rem;margin-top:auto;display:flex}.kb-map-subnav{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);gap:.15rem;padding:.2rem;display:flex}.kb-map-subnav a{text-align:center;border-radius:calc(var(--radius) - 2px);min-height:2.5rem;color:var(--text-muted);font-size:var(--text-sm);flex:1;padding:.45rem .55rem;font-weight:500}.kb-map-subnav a:hover{color:var(--text)}.kb-map-subnav a.is-active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-sm)}.kb-map-subnav a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (width<=768px){.kb-map-layout{grid-template-rows:minmax(18rem,52vh) 1fr;grid-template-columns:1fr;min-height:calc(100vh - 3.25rem)}.kb-map-side{border-right:0;border-top:1px solid var(--border);padding:var(--space-4);order:2}.kb-map-stage{order:1}.kb-map-canvas,.kb-map-stage{min-height:18rem}.kb-map-toolbar{top:var(--space-3);left:var(--space-3);right:var(--space-3)}.kb-map-search{max-width:none}.kb-map-actions .btn{flex:1;min-height:2.75rem}}
