:root{--spacing-xs: 4px;--spacing-s: 8px;--spacing-m: 16px;--spacing-l: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--font-body: "Inter", "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--font-display: "Outfit", "Inter", "Segoe UI Variable", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-xs: 11px;--font-size-s: 12px;--font-size-m: 15px;--font-size-l: 20px;--font-size-xl: 24px;--font-size-xxl: 32px;--border-radius-s: 8px;--border-radius-m: 12px;--border-radius-l: 18px;--radius-xl: 22px;--radius-pill: 999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .16s;--dur: .26s;--dur-slow: .5s;--nav-height: 64px;--nav-height-mobile: 64px;--content-max: 1200px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@media (max-width: 768px){:root{--font-size-xs: 10px;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 18px;--font-size-xl: 22px;--font-size-xxl: 28px;--spacing-xs: 4px;--spacing-s: 8px;--spacing-m: 14px;--spacing-l: 20px;--spacing-xl: 26px;--spacing-xxl: 36px;--border-radius-l: 16px;--radius-xl: 20px}}:root,[data-theme=dark]{color-scheme:dark;--color-background-dark: oklch(.13 .028 264);--color-background: oklch(.18 .03 264);--color-background-light: oklch(.235 .032 264);--color-text-primary: oklch(.96 .02 264);--color-text-secondary: oklch(.74 .035 264);--color-text-muted: oklch(.58 .035 264);--color-border: oklch(.38 .045 264);--color-border-muted: oklch(.27 .04 264);--color-accent: oklch(.68 .19 262);--color-accent-2: oklch(.72 .17 305);--color-accent-contrast: #ffffff;--color-red: oklch(.66 .21 25);--color-orange: oklch(.76 .16 65);--color-yellow: oklch(.85 .17 90);--color-green: oklch(.74 .17 150);--color-blue: var(--color-accent);--color-blue-light: oklch(.8 .12 250);--color-purple: oklch(.72 .17 305);--aurora-1: oklch(.55 .2 262 / .28);--aurora-2: oklch(.6 .18 305 / .2);--shadow-color: 240 40% 2%}[data-theme=light]{color-scheme:light;--color-background-dark: oklch(.955 .012 264);--color-background: oklch(.995 .004 264);--color-background-light: oklch(.965 .012 264);--color-text-primary: oklch(.2 .04 264);--color-text-secondary: oklch(.45 .04 264);--color-text-muted: oklch(.6 .03 264);--color-border: oklch(.8 .025 264);--color-border-muted: oklch(.9 .015 264);--color-accent: oklch(.55 .2 262);--color-accent-2: oklch(.58 .2 305);--color-accent-contrast: #ffffff;--color-red: oklch(.6 .22 25);--color-orange: oklch(.7 .17 60);--color-yellow: oklch(.8 .17 85);--color-green: oklch(.62 .17 150);--color-blue: var(--color-accent);--color-blue-light: oklch(.7 .13 250);--color-purple: oklch(.58 .2 305);--aurora-1: oklch(.7 .16 262 / .22);--aurora-2: oklch(.75 .14 305 / .18);--shadow-color: 240 30% 30%}[data-theme=tokyo-night]{color-scheme:dark;--color-background-dark: oklch(.2 .03 280);--color-background: oklch(.245 .033 278);--color-background-light: oklch(.3 .036 276);--color-text-primary: oklch(.9 .035 270);--color-text-secondary: oklch(.72 .04 270);--color-text-muted: oklch(.58 .04 270);--color-border: oklch(.42 .05 270);--color-border-muted: oklch(.33 .04 270);--color-accent: oklch(.73 .13 265);--color-accent-2: oklch(.75 .14 300);--color-accent-contrast: oklch(.17 .03 280);--color-red: oklch(.72 .16 10);--color-orange: oklch(.78 .13 55);--color-yellow: oklch(.82 .12 80);--color-green: oklch(.8 .15 130);--color-blue: var(--color-accent);--color-blue-light: oklch(.82 .1 230);--color-purple: oklch(.75 .14 300);--aurora-1: oklch(.6 .16 265 / .3);--aurora-2: oklch(.62 .16 300 / .24);--shadow-color: 250 40% 3%}[data-theme=dimmed]{color-scheme:dark;--color-background-dark: oklch(.25 .012 250);--color-background: oklch(.295 .013 250);--color-background-light: oklch(.345 .014 250);--color-text-primary: oklch(.86 .015 250);--color-text-secondary: oklch(.68 .02 250);--color-text-muted: oklch(.55 .02 250);--color-border: oklch(.45 .02 250);--color-border-muted: oklch(.37 .016 250);--color-accent: oklch(.7 .14 255);--color-accent-2: oklch(.76 .12 240);--color-accent-contrast: oklch(.18 .01 250);--color-red: oklch(.66 .15 22);--color-orange: oklch(.74 .13 60);--color-yellow: oklch(.78 .11 85);--color-green: oklch(.72 .13 150);--color-blue: var(--color-accent);--color-blue-light: oklch(.8 .09 250);--color-purple: oklch(.7 .12 300);--aurora-1: oklch(.6 .1 255 / .18);--aurora-2: oklch(.6 .08 240 / .14);--shadow-color: 250 15% 5%}[data-theme=nord]{color-scheme:dark;--color-background-dark: oklch(.305 .02 265);--color-background: oklch(.35 .022 265);--color-background-light: oklch(.4 .024 265);--color-text-primary: oklch(.93 .015 256);--color-text-secondary: oklch(.76 .02 256);--color-text-muted: oklch(.62 .02 256);--color-border: oklch(.52 .025 256);--color-border-muted: oklch(.43 .022 256);--color-accent: oklch(.78 .07 210);--color-accent-2: oklch(.7 .07 245);--color-accent-contrast: oklch(.25 .02 265);--color-red: oklch(.62 .13 20);--color-orange: oklch(.74 .11 50);--color-yellow: oklch(.85 .1 90);--color-green: oklch(.78 .09 135);--color-blue: var(--color-accent);--color-blue-light: oklch(.86 .06 220);--color-purple: oklch(.74 .08 320);--aurora-1: oklch(.7 .08 210 / .22);--aurora-2: oklch(.65 .08 245 / .18);--shadow-color: 230 20% 8%}[data-theme=rose-pine]{color-scheme:dark;--color-background-dark: oklch(.2 .03 300);--color-background: oklch(.245 .032 300);--color-background-light: oklch(.3 .036 300);--color-text-primary: oklch(.91 .025 300);--color-text-secondary: oklch(.74 .03 300);--color-text-muted: oklch(.6 .03 300);--color-border: oklch(.43 .04 300);--color-border-muted: oklch(.33 .036 300);--color-accent: oklch(.77 .1 300);--color-accent-2: oklch(.82 .07 20);--color-accent-contrast: oklch(.2 .03 300);--color-red: oklch(.7 .15 5);--color-orange: oklch(.8 .11 60);--color-yellow: oklch(.84 .1 75);--color-green: oklch(.74 .09 165);--color-blue: var(--color-accent);--color-blue-light: oklch(.85 .06 310);--color-purple: oklch(.77 .1 300);--aurora-1: oklch(.6 .12 300 / .28);--aurora-2: oklch(.65 .1 20 / .2);--shadow-color: 290 35% 4%}:root{--color-surface: var(--color-background);--color-surface-2: var(--color-background-light);--color-surface-hover: color-mix(in oklch, var(--color-background-light) 80%, var(--color-text-primary) 20%);--color-card-background: var(--color-background-light);--color-background-subtle: var(--color-background-light);--color-background-hover: var(--color-surface-hover);--color-bg-secondary: var(--color-background);--color-primary: var(--color-accent);--color-primary-dark: color-mix(in oklch, var(--color-accent) 80%, black);--primary-color: var(--color-accent);--color-success: var(--color-green);--color-warning: var(--color-orange);--color-error: var(--color-red);--color-danger: var(--color-red);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--accent-soft: color-mix(in oklch, var(--color-accent) 14%, transparent);--accent-soft-strong: color-mix(in oklch, var(--color-accent) 26%, transparent);--accent-border: color-mix(in oklch, var(--color-accent) 45%, transparent);--gradient-accent: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-2) 100%);--gradient-accent-soft: linear-gradient(135deg, color-mix(in oklch, var(--color-accent) 18%, transparent), color-mix(in oklch, var(--color-accent-2) 18%, transparent));--glow-accent: 0 0 0 1px color-mix(in oklch, var(--color-accent) 40%, transparent), 0 8px 28px -6px color-mix(in oklch, var(--color-accent) 55%, transparent);--glow-green: 0 0 0 1px color-mix(in oklch, var(--color-green) 45%, transparent), 0 0 24px -4px color-mix(in oklch, var(--color-green) 60%, transparent);--shadow-s: 0 1px 2px hsl(var(--shadow-color) / .18), 0 2px 6px -2px hsl(var(--shadow-color) / .22);--shadow-m: 0 2px 4px hsl(var(--shadow-color) / .18), 0 10px 24px -10px hsl(var(--shadow-color) / .35);--shadow-l: 0 4px 8px hsl(var(--shadow-color) / .2), 0 24px 48px -16px hsl(var(--shadow-color) / .45);--shadow-card: 0 1px 0 color-mix(in oklch, var(--color-text-primary) 6%, transparent) inset, var(--shadow-m);--focus-ring: 0 0 0 1px var(--color-surface), 0 0 0 3px color-mix(in oklch, var(--color-accent) 85%, transparent);--scrim: rgba(8, 10, 22, .6);--scrim-blur: blur(6px)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}:root{font-family:var(--font-body);font-size:16px;line-height:1.45;font-weight:400;color:var(--color-text-primary);background-color:var(--color-background-dark);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overscroll-behavior-y:none;background-color:var(--color-background-dark);color:var(--color-text-primary);transition:background-color var(--dur) ease,color var(--dur) ease;position:relative;isolation:isolate}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(60vw 45vh at 8% -10%,var(--aurora-1),transparent 65%),radial-gradient(55vw 40vh at 100% 0%,var(--aurora-2),transparent 65%),radial-gradient(70vw 50vh at 50% 120%,color-mix(in oklch,var(--aurora-1) 60%,transparent),transparent 70%);opacity:.9}@media (max-width: 768px){body:before{background:radial-gradient(90vw 40vh at 10% -10%,var(--aurora-1),transparent 65%),radial-gradient(80vw 35vh at 100% 0%,var(--aurora-2),transparent 65%)}}h1,h2,h3,h4,h5{font-family:var(--font-display);letter-spacing:-.015em;line-height:1.15;font-weight:700}h4,h5{font-weight:600}p{margin-top:0}a{color:var(--color-accent);text-decoration:none}button{font-family:inherit;font-size:inherit;color:inherit}button,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}::selection{background:color-mix(in oklch,var(--color-accent) 40%,transparent);color:var(--color-text-primary)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;box-shadow:var(--focus-ring)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:0;left:0;z-index:10000;padding:.75rem 1.1rem;border:1px solid var(--color-accent);border-radius:0 0 var(--border-radius-m) 0;background:var(--color-surface);color:var(--color-text-primary);font-weight:600;text-decoration:none;transform:translateY(-120%);transition:transform var(--dur) var(--ease-out)}.skip-link:focus-visible,.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}*{scrollbar-width:thin;scrollbar-color:color-mix(in oklch,var(--color-text-secondary) 40%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--color-text-secondary) 35%,transparent);border-radius:999px;border:3px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-track{background:transparent}.location-card,.location-info-container,.location-devices-container,.location-lights-container,.location-automation-container,.location-settings-container,.automation-content-container,.device-info-container,.device-panel-container,.device-settings-container,.device-panel-container-light,.desktop-panel,.gs-panel,.mz-panel,.thermostat-panel,.global-section-card,.settings-section,.device-table-wrapper,.logs-container,.hero-container{background:var(--color-surface);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.graph-card,.sensor-card,.device-card,.location-automation-card,.location-controls-section,.location-automation-section,.light-controls-section,.light-automation-section,.smart-switch-controls-section,.smart-switch-automation-section,.sound-control-container,.curtain-controls-section,.automation-section,.global-inner-card,.transition-group,.anchor-column,.desktop-power-card,.gs-now-playing,.gs-controls-section,.mz-power-card,.mz-section,.fw-panel-section,.location-sensor-item{background:var(--color-surface-2);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l)}.location-info-header h3,.devices-header h3,.lights-header h3,.automation-header h3,.automation-header h2,.location-settings-header h3,.global-section-header h3,.global-section-header h2,.device-info-container>h3,.device-settings-container>h3,.device-panel-header h3,.device-panel-header-light h3,.section-title{margin:0;font-size:var(--font-size-l);color:var(--color-text-primary);display:flex;align-items:center;gap:10px}.location-info-header p,.devices-header p,.lights-header p,.automation-header p,.location-settings-header p,.global-section-header p,.device-info-container>p,.device-settings-container>p{margin:4px 0 0;color:var(--color-text-secondary);font-size:var(--font-size-s)}.ha-btn,.settings-btn-primary,.settings-btn-secondary,.location-settings-btn-primary,.location-settings-btn-secondary,.location-automation-save-btn,.location-automation-reset-btn,.global-btn-primary,.global-btn-secondary,.modal-btn,.save-changes-btn,.discard-changes-btn,.fw-panel-btn,.fw-choose-btn,.keep-on-btn,.card-cancel-btn,.palette-skip-btn,.lux-add-point-btn,.add-automation-btn,.settings-btn-danger,.settings-btn-warning,.delete-automation-btn,.desktop-power-btn,.gs-play-btn,.demo-button,.owner-button,.add-location-button,.add-location-btn,.slc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;min-height:40px;border-radius:var(--border-radius-m);border:1px solid transparent;font-weight:600;font-size:.92rem;line-height:1.2;cursor:pointer;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out),background-color var(--dur),color var(--dur),border-color var(--dur),opacity var(--dur);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.settings-btn-primary,.location-settings-btn-primary,.location-automation-save-btn,.global-btn-primary,.modal-btn-primary,.save-changes-btn,.fw-panel-btn,.keep-on-btn,.card-cancel-btn,.demo-button,.add-location-button,.add-location-btn,.gs-play-btn{background:var(--gradient-accent);color:var(--color-accent-contrast);box-shadow:0 6px 18px -8px color-mix(in oklch,var(--color-accent) 80%,transparent)}.settings-btn-primary:hover:not(:disabled),.location-settings-btn-primary:hover:not(:disabled),.location-automation-save-btn:hover:not(:disabled),.global-btn-primary:hover:not(:disabled),.modal-btn-primary:hover:not(:disabled),.save-changes-btn:hover:not(:disabled),.fw-panel-btn:hover:not(:disabled),.keep-on-btn:hover:not(:disabled),.card-cancel-btn:hover:not(:disabled),.demo-button:hover:not(:disabled),.add-location-button:hover:not(:disabled),.add-location-btn:hover:not(:disabled),.gs-play-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--glow-accent);filter:brightness(1.06)}.settings-btn-secondary,.location-settings-btn-secondary,.location-automation-reset-btn,.global-btn-secondary,.modal-btn-secondary,.fw-choose-btn,.palette-skip-btn,.lux-add-point-btn,.owner-button,.slc-btn-settings,.slc-btn-move{background:var(--color-surface-2);color:var(--color-text-primary);border-color:var(--color-border-muted)}.settings-btn-secondary:hover:not(:disabled),.location-settings-btn-secondary:hover:not(:disabled),.location-automation-reset-btn:hover:not(:disabled),.global-btn-secondary:hover:not(:disabled),.modal-btn-secondary:hover:not(:disabled),.fw-choose-btn:hover:not(:disabled),.palette-skip-btn:hover:not(:disabled),.lux-add-point-btn:hover:not(:disabled),.owner-button:hover:not(:disabled),.slc-btn-settings:hover:not(:disabled),.slc-btn-move:hover:not(:disabled){border-color:var(--accent-border);color:var(--color-accent);background:var(--accent-soft);transform:translateY(-1px)}.settings-btn-danger,.delete-automation-btn,.modal-btn-danger,.discard-changes-btn,.slc-btn-delete{background:color-mix(in oklch,var(--color-red) 12%,transparent);color:var(--color-red);border-color:color-mix(in oklch,var(--color-red) 30%,transparent)}.settings-btn-danger:hover:not(:disabled),.delete-automation-btn:hover:not(:disabled),.modal-btn-danger:hover:not(:disabled),.discard-changes-btn:hover:not(:disabled),.slc-btn-delete:hover:not(:disabled){background:var(--color-red);color:#fff;border-color:var(--color-red);transform:translateY(-1px);box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-red) 70%,transparent)}.settings-btn-warning{background:color-mix(in oklch,var(--color-orange) 12%,transparent);color:var(--color-orange);border-color:color-mix(in oklch,var(--color-orange) 35%,transparent)}.settings-btn-warning:hover:not(:disabled){background:color-mix(in oklch,var(--color-orange) 22%,transparent);transform:translateY(-1px)}.ha-btn:active,.settings-btn-primary:active,.settings-btn-secondary:active,.location-settings-btn-primary:active,.location-settings-btn-secondary:active,.global-btn-primary:active,.global-btn-secondary:active,.modal-btn:active,.save-changes-btn:active,.discard-changes-btn:active,.keep-on-btn:active,.card-cancel-btn:active,.demo-button:active,.owner-button:active,.add-location-button:active,.add-location-btn:active,.slc-btn:active{transform:translateY(0) scale(.98)}.settings-btn-primary:disabled,.location-settings-btn-primary:disabled,.global-btn-primary:disabled,.modal-btn:disabled,.fw-choose-btn:disabled,.desktop-power-btn:disabled,.slc-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;filter:none}.ha-input,.settings-input,.editor-input,.name-input,.automation-title-input,.slc-edit-input,.z2m-timer-input,.ha-select,.settings-select,.light-selector,.editor-select,.floor-select,.time-select,.palette-select,.add-item-select,.location-settings-selector,.graph-range-selector,.sound-select,.z2m-settings-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--color-surface-2);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-m);padding:.7rem .95rem;font-size:.95rem;line-height:1.2;min-height:44px;outline:none;box-shadow:none;transition:border-color var(--dur),box-shadow var(--dur),background-color var(--dur)}.ha-select,.settings-select,.light-selector,.editor-select,.floor-select,.time-select,.palette-select,.add-item-select,.location-settings-selector,.graph-range-selector,.sound-select,.z2m-settings-select{cursor:pointer;padding-right:2.4rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right .85rem center;background-size:16px}.ha-input:hover,.settings-input:hover,.editor-input:hover,.ha-select:hover,.settings-select:hover,.light-selector:hover,.editor-select:hover,.floor-select:hover,.time-select:hover,.palette-select:hover,.add-item-select:hover,.location-settings-selector:hover,.graph-range-selector:hover,.sound-select:hover{border-color:color-mix(in oklch,var(--color-border) 40%,var(--color-accent))}.ha-input:focus,.settings-input:focus,.editor-input:focus,.name-input:focus,.automation-title-input:focus,.slc-edit-input:focus,.z2m-timer-input:focus,.ha-select:focus,.settings-select:focus,.light-selector:focus,.editor-select:focus,.floor-select:focus,.time-select:focus,.palette-select:focus,.add-item-select:focus,.location-settings-selector:focus,.graph-range-selector:focus,.sound-select:focus,.z2m-settings-select:focus{border-color:var(--color-accent);box-shadow:var(--focus-ring)}select option{background-color:var(--color-background);color:var(--color-text-primary)}.ha-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--color-border-muted);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600}.ha-eyebrow,.palette-label,.gs-section-label,.feedback-label,.calibration-point-label,.dynamic-value-item .label,.location-sensor-label,.filter-group-label,.sun-time-label span:first-child{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.location-subnav,.device-subnav{display:flex;gap:4px;padding:4px;margin:0 var(--spacing-m) var(--spacing-s);background:color-mix(in oklch,var(--color-surface) 85%,transparent);border:1px solid var(--color-border-muted);border-radius:var(--radius-pill);overflow-x:auto;scrollbar-width:none;position:sticky;top:var(--spacing-s);z-index:40;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-s)}.location-subnav::-webkit-scrollbar,.device-subnav::-webkit-scrollbar{display:none}.subnav-item{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:64px;min-height:48px;padding:6px 10px;border-radius:var(--radius-pill);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em;transition:color var(--dur),background-color var(--dur),transform var(--dur-fast);-webkit-tap-highlight-color:transparent}.subnav-item:active{transform:scale(.96)}.subnav-item.active{color:var(--color-accent-contrast);background:var(--gradient-accent);box-shadow:0 4px 14px -6px color-mix(in oklch,var(--color-accent) 80%,transparent)}.subnav-icon{font-size:20px}@media (min-width: 769px){.location-subnav,.device-subnav{display:none}}.automation-logging-toggle{border-top:1px solid var(--color-border-muted);padding:var(--spacing-s) 0}.automation-logging-toggle.sub-toggle{border-top:none;padding:0;max-height:0;opacity:0;overflow:hidden;transition:max-height var(--dur) ease,opacity var(--dur) ease,padding var(--dur) ease}.automation-logging-toggle.sub-toggle.expanded{max-height:120px;opacity:1;padding-bottom:var(--spacing-s);border-top:1px solid var(--color-border-muted)}.status-dot,.device-list-status-dot{border-radius:50%}.status-dot.online,.device-list-status-dot.online{background-color:var(--color-green);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-green) 22%,transparent)}.status-dot.offline,.device-list-status-dot.offline{background-color:var(--color-red);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-red) 22%,transparent);animation:ha-blink 1.3s ease-in-out infinite}.device-list-status-dot.disconnected{background-color:var(--color-orange);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-orange) 22%,transparent)}.no-graph-message p,.no-devices-message p,.no-lights-msg,.editor-unknown{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-m)}@keyframes ha-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes ha-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ha-pop{0%{transform:scale(.85)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes ha-blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes ha-pulse-soft{0%,to{opacity:1}50%{opacity:.55}}@keyframes ha-glow-ring{0%{box-shadow:0 0 color-mix(in oklch,var(--ring-color, var(--color-accent)) 55%,transparent)}to{box-shadow:0 0 0 14px color-mix(in oklch,var(--ring-color, var(--color-accent)) 0%,transparent)}}@keyframes ha-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ha-gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes ha-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-transparency: reduce){.navbar,.nav-dropdown-menu,.modal-container,.modal-backdrop,.notification-item,.map-status-card,.map-room-label,.map-notice,.map-floor-buttons{background-color:var(--color-surface);backdrop-filter:none;-webkit-backdrop-filter:none}}@media (prefers-contrast: more){:root,[data-theme]{--color-border: var(--color-text-secondary);--color-border-muted: var(--color-text-secondary);--color-text-muted: var(--color-text-secondary);--focus-ring: 0 0 0 3px var(--color-text-primary)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.user-avatar{display:grid;place-items:center;flex-shrink:0;overflow:hidden;width:44px;height:44px;border-radius:50%;background:var(--gradient-accent);color:var(--color-accent-contrast);font-family:var(--font-display);font-size:var(--font-size-l);font-weight:700}.user-avatar img{display:block;width:100%;height:100%;object-fit:cover}.user-avatar-s{width:24px;height:24px;font-size:12px}.user-avatar-l{width:64px;height:64px;font-size:var(--font-size-xl)}.user-avatar-xl{width:96px;height:96px;font-size:var(--font-size-xxl)}.user-avatar-guest{background:color-mix(in oklch,var(--color-text-muted) 22%,transparent);color:var(--color-text-secondary)}.user-avatar-xxl{width:min(220px,60vw);height:auto;aspect-ratio:1;font-size:4.5rem}.navbar{position:fixed;z-index:100;display:flex;align-items:center;background:color-mix(in oklch,var(--color-surface) 82%,transparent);border:1px solid var(--color-border-muted);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:var(--shadow-m);transition:background-color var(--dur) ease,border-color var(--dur) ease}.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--color-text-primary);margin-right:var(--spacing-l);padding:4px 6px 4px 4px;border-radius:var(--radius-pill)}.nav-brand:after{content:"";width:1px;height:26px;margin-left:var(--spacing-m);background:var(--color-border-muted)}.nav-brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--gradient-accent);color:var(--color-accent-contrast);font-size:20px;box-shadow:0 6px 16px -6px color-mix(in oklch,var(--color-accent) 80%,transparent);flex-shrink:0}.nav-brand-text{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.nav-brand-text small{display:block;font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);line-height:1;margin-top:1px}.nav-item{position:relative;display:flex;align-items:center;color:var(--color-text-secondary);cursor:pointer;text-decoration:none;font-weight:600;transition:color var(--dur),background-color var(--dur),transform var(--dur-fast);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.nav-item.active{color:var(--color-accent)}button.nav-item,button.nav-dropdown-item{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:none;border:0;text-align:inherit}button.nav-dropdown-item{width:100%}.nav-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.nav-icon{font-size:22px;transition:transform var(--dur) var(--ease-spring)}.nav-badge{position:absolute;top:-6px;right:-10px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--color-red);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;border:2px solid var(--color-surface);box-shadow:0 2px 8px -2px color-mix(in oklch,var(--color-red) 70%,transparent);animation:ha-pop var(--dur-slow) var(--ease-spring)}.nav-badge.nav-badge-warning{background:var(--color-orange)}.nav-badge.nav-badge-warning.shifted{transform:translate(-22px)}.nav-dot{position:absolute;top:-3px;right:-5px;width:10px;height:10px;border:2px solid var(--color-surface);border-radius:50%;background:var(--color-orange);box-shadow:0 2px 6px -2px color-mix(in oklch,var(--color-orange) 70%,transparent);animation:ha-pop var(--dur-slow) var(--ease-spring)}.nav-avatar{box-shadow:0 0 0 2px var(--color-surface)}.nav-account-name{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item-dropdown-container{position:relative;display:flex;align-items:center;height:100%}.nav-dropdown-menu{position:absolute;display:none;flex-direction:column;gap:2px;min-width:240px;padding:6px;background:color-mix(in oklch,var(--color-surface) 92%,transparent);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);box-shadow:var(--shadow-l);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:1000}.nav-dropdown-menu.open{display:flex}.nav-dropdown-item{padding:11px 14px;color:var(--color-text-secondary);text-decoration:none;font-size:14px;font-weight:500;border-radius:var(--border-radius-m);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast)}.nav-dropdown-item:hover,.nav-dropdown-item.active{background:var(--accent-soft);color:var(--color-accent)}.nav-dropdown-icon{margin:0;font-size:22px;transition:transform var(--dur)}.nav-dropdown-icon.open,.nav-item-dropdown-container:hover .nav-dropdown-icon{transform:rotate(180deg)}@media (min-width: 769px){.navbar{top:12px;left:50%;transform:translate(-50%);width:min(calc(100% - 32px),1240px);height:var(--nav-height);padding:0 12px;gap:4px;border-radius:var(--radius-pill);justify-content:flex-start}.nav-item{flex-direction:row;gap:8px;font-size:14px;padding:9px 16px;border-radius:var(--radius-pill)}.nav-item:hover{background:var(--accent-soft);color:var(--color-accent)}.nav-item:hover .nav-icon{transform:translateY(-1px) scale(1.06)}.nav-item.active{background:var(--gradient-accent);color:var(--color-accent-contrast);box-shadow:0 6px 18px -8px color-mix(in oklch,var(--color-accent) 85%,transparent)}.nav-icon{font-size:19px}.nav-badge{top:-9px;right:-8px}.nav-icon-wrapper{margin-right:4px}.nav-dropdown-menu{top:calc(100% + 10px);left:0;display:flex;visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity var(--dur-fast) ease,transform var(--dur) var(--ease-out),visibility 0s linear .3s}.nav-dropdown-menu:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:16px}.nav-dropdown-menu.open,.nav-item-dropdown-container:hover .nav-dropdown-menu{visibility:visible;opacity:1;transform:translateY(0);transition-delay:0s}.navbar>.nav-account{margin-left:auto}.navbar>.nav-item:nth-last-child(-n+4):not(:first-child){margin-left:0}}@media (min-width: 769px) and (max-width: 1279px){.nav-brand-text{display:none}.nav-item{padding:9px 12px;gap:6px;font-size:13px}.nav-dropdown-icon{display:none}}@media (max-width: 768px){.navbar{left:0;right:0;bottom:0;top:auto;width:100%;height:calc(var(--nav-height-mobile) + var(--safe-bottom));padding:6px 8px calc(6px + var(--safe-bottom));justify-content:space-around;border-left:none;border-right:none;border-bottom:none;border-radius:22px 22px 0 0;box-shadow:0 -10px 30px -12px hsl(var(--shadow-color) / .5)}.nav-brand{display:none}.nav-item{flex:1;flex-direction:column;justify-content:center;gap:3px;font-size:11px;font-weight:600;padding:6px 4px;border-radius:14px;min-height:50px}.nav-item:active{transform:scale(.94)}.nav-item-dropdown-container{flex:1;height:auto}.nav-item-dropdown-container>.nav-item{width:100%}.nav-item .nav-icon-wrapper,.nav-item>.nav-icon{box-sizing:content-box;padding:4px 14px;border-radius:var(--radius-pill);transition:background-color var(--dur),transform var(--dur) var(--ease-spring)}.nav-item.active .nav-icon-wrapper,.nav-item.active>.nav-icon{background:var(--accent-soft-strong);transform:translateY(-2px)}.nav-item.active .nav-icon{color:var(--color-accent)}.nav-badge{top:-4px;right:0}.nav-dropdown-icon{display:none}.nav-dropdown-menu{bottom:calc(100% + 12px);top:auto;left:50%;transform:translate(-50%);min-width:210px}.nav-item-dropdown-container:hover .nav-dropdown-menu{display:none}.nav-item-dropdown-container .nav-dropdown-menu.open{display:flex;animation:nav-menu-in-mobile var(--dur) var(--ease-out)}.nav-dropdown-item{padding:13px 16px;font-size:15px}}@keyframes nav-menu-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes nav-menu-in-mobile{0%{opacity:0;transform:translate(-50%,8px) scale(.98)}to{opacity:1;transform:translate(-50%) scale(1)}}.hero-container{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-s);overflow:hidden;max-width:1100px;margin:calc(var(--nav-height) + 28px) auto 0;padding:var(--spacing-l) var(--spacing-l) var(--spacing-l);color:var(--color-text-primary);animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.hero-container:before{content:"";position:absolute;inset:-40% -20% auto auto;width:60%;height:140%;background:radial-gradient(closest-side,color-mix(in oklch,var(--color-accent) 22%,transparent),transparent);pointer-events:none}.hero-content{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-around;gap:var(--spacing-m);width:100%;max-width:820px}.hero-slide{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-s);min-width:0}.weather-main{text-align:center}.weather-icon-large{font-size:4.2rem;margin-bottom:-6px;color:var(--color-accent);filter:drop-shadow(0 6px 14px color-mix(in oklch,var(--color-accent) 45%,transparent));animation:ha-float 5s ease-in-out infinite}.weather-temp-large{font-family:var(--font-display);font-size:3.8rem;font-weight:700;letter-spacing:-.04em;line-height:1;margin-bottom:4px}.weather-condition{font-size:1.05rem;font-weight:600;color:var(--color-text-primary);text-transform:capitalize}.weather-location{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:.85rem;color:var(--color-text-secondary)}.sun-cycle-container{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.sun-cycle-svg{width:100%;max-width:320px;height:auto;overflow:visible}.sun-cycle-path{fill:none;stroke:color-mix(in oklch,var(--color-text-secondary) 45%,transparent);stroke-width:2;stroke-linecap:round;stroke-dasharray:3 5}.sun-icon{color:#fdb813;filter:drop-shadow(0 0 10px rgba(253,184,19,.9));animation:hero-sun-glow 3s ease-in-out infinite;overflow:visible}.moon-icon{color:var(--color-text-primary);filter:drop-shadow(0 0 10px color-mix(in oklch,var(--color-accent-2) 70%,white));overflow:visible}@keyframes hero-sun-glow{0%,to{filter:drop-shadow(0 0 8px rgba(253,184,19,.7))}50%{filter:drop-shadow(0 0 16px rgba(253,184,19,1))}}.sun-times{display:flex;justify-content:space-between;width:100%;max-width:320px;margin-top:var(--spacing-xs)}.sun-time-label{display:flex;flex-direction:column;align-items:center;gap:2px}.sun-time-label span:last-child{font-family:var(--font-display);font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums}.hero-actions{position:relative;display:flex;gap:4px;width:100%;max-width:440px;margin-top:var(--spacing-m);padding:5px;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border-muted)}.hero-button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:62px;padding:8px 6px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background var(--dur),color var(--dur),box-shadow var(--dur),transform var(--dur-fast);-webkit-tap-highlight-color:transparent}.hero-button:hover{color:var(--color-text-primary);background:color-mix(in oklch,var(--color-text-primary) 6%,transparent)}.hero-button:active{transform:scale(.97)}.hero-button.active{background:var(--gradient-accent);background-size:200% 200%;color:var(--color-accent-contrast);box-shadow:0 8px 22px -8px color-mix(in oklch,var(--color-accent) 90%,transparent);animation:ha-gradient-shift 6s ease infinite}.hero-button.active .hero-button-icon{animation:ha-pop var(--dur-slow) var(--ease-spring)}.hero-button-icon{font-size:1.5rem}.hero-button span{font-size:.82rem;font-weight:600;letter-spacing:.01em}.hero-mode-description{margin:var(--spacing-s) 0 0 0;max-width:460px;text-align:center;font-size:.85rem;line-height:1.45;color:var(--color-text-secondary)}.hero-greeting{position:relative;width:100%;max-width:820px;text-align:center}.hero-title{margin:0;font-family:var(--font-display);font-size:var(--font-size-xxl);font-weight:700;line-height:1.15;letter-spacing:-.01em;color:var(--color-text-primary)}.hero-title-name{background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent}@media (forced-colors: active){.hero-title-name{background:none;color:CanvasText}}.hero-status{margin:var(--spacing-xs) auto 0;max-width:620px;font-size:.95rem;line-height:1.5;color:var(--color-text-secondary);text-wrap:balance}@media (max-width: 1100px){.hero-container{margin-left:var(--spacing-xl);margin-right:var(--spacing-xl)}}@media (max-width: 768px){.hero-container{margin:var(--spacing-m) var(--spacing-m) 0;padding:var(--spacing-m) var(--spacing-m) var(--spacing-m);border-radius:var(--radius-xl)}.hero-content{gap:var(--spacing-s)}.hero-title{font-size:var(--font-size-xl)}.hero-status{font-size:.9rem}.weather-icon-large{font-size:3rem}.weather-temp-large{font-size:2.8rem}.weather-condition{font-size:.95rem}.sun-cycle-container{padding-left:0}.hero-actions{max-width:none;margin-top:var(--spacing-s)}.hero-button{min-height:56px}.hero-button-icon{font-size:1.35rem}}.hero-button[aria-disabled=true]{cursor:not-allowed}.hero-button[aria-disabled=true]:not(.active){opacity:.55}.hero-button[aria-disabled=true]:hover,.hero-button[aria-disabled=true]:active{transform:none}.toggle-switch-container{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m);padding:var(--spacing-s) 0}.toggle-info{display:flex;flex-direction:column;gap:3px;min-width:0}.toggle-label{font-size:var(--font-size-m);font-weight:500;color:var(--color-text-primary)}.toggle-subtext{font-size:var(--font-size-s);line-height:1.4;color:var(--color-text-secondary);margin-right:9px}.toggle-label{display:block}.switch-track{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0;position:relative;width:50px;height:28px;flex-shrink:0;border-radius:28px;background:var(--color-border-muted);border:1px solid var(--color-border);cursor:pointer;transition:background var(--dur),border-color var(--dur),box-shadow var(--dur);-webkit-tap-highlight-color:transparent}.switch-track:hover{border-color:var(--accent-border)}.switch-track.checked{background:var(--gradient-accent);border-color:transparent;box-shadow:0 4px 12px -4px color-mix(in oklch,var(--color-accent) 70%,transparent)}.switch-thumb{display:block;position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform var(--dur) var(--ease-spring),width var(--dur-fast)}.switch-track:active .switch-thumb{width:24px}.switch-track.checked .switch-thumb{transform:translate(22px)}.switch-track.checked:active .switch-thumb{transform:translate(18px)}.control-lock{min-width:0;margin:0;padding:0;border:0}.control-lock.locked :is(button,input,select,textarea,[role=slider],[role=switch],.range-input){cursor:not-allowed}.control-lock.locked [role=slider],.control-lock.locked [data-control]{pointer-events:none}.control-lock.locked :is(button,[role=switch],input,select):disabled{opacity:.55}.control-lock-note{display:flex;align-items:center;gap:8px;margin:0 0 var(--spacing-m);padding:10px 14px;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:var(--font-size-s)}.control-lock-note svg{flex-shrink:0;font-size:18px;color:var(--color-text-muted)}.sparkle-host{position:absolute;top:0;right:0;bottom:0;left:0;display:block;pointer-events:none;overflow:visible;z-index:5}.sparkle-burst{position:absolute;left:50%;top:50%;width:0;height:0}.sparkle-ring{position:absolute;left:0;top:0;width:var(--sparkle-size);height:var(--sparkle-size);margin:calc(var(--sparkle-size) / -2) 0 0 calc(var(--sparkle-size) / -2);border-radius:50%;border:2px solid var(--sparkle-color);opacity:0;animation:sparkle-ring .7s var(--ease-out) forwards}.sparkle-burst i{--angle: calc(360deg / var(--n) * var(--i));--hue: calc(var(--i) * (360 / var(--n)));position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:hsl(var(--hue) 95% 62%);box-shadow:0 0 8px hsl(var(--hue) 95% 62% / .9);transform:rotate(var(--angle)) translateY(0) scale(1);animation:sparkle-fly .95s var(--ease-out) forwards;animation-delay:calc(var(--i) * 6ms)}.sparkle-burst i:nth-child(odd){width:4px;height:4px;left:-2px;top:-2px;--dist: calc(var(--sparkle-size) * .95)}.sparkle-burst i:nth-child(2n){--dist: calc(var(--sparkle-size) * .7)}@keyframes sparkle-fly{0%{opacity:1;transform:rotate(var(--angle)) translateY(0) scale(.6)}35%{opacity:1;transform:rotate(var(--angle)) translateY(calc(var(--dist) * -.8)) scale(1.15)}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--dist) * -1)) scale(.2)}}@keyframes sparkle-ring{0%{opacity:.9;transform:scale(.2)}to{opacity:0;transform:scale(1.35)}}@media (prefers-reduced-motion: reduce){.sparkle-host{display:none}}.location-card{position:relative;padding:var(--spacing-m) var(--spacing-l);color:var(--color-text-primary);overflow:hidden;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur)}.location-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:transparent;opacity:0;transition:background var(--dur-slow),opacity var(--dur-slow)}.location-card.is-occupied:before{background:linear-gradient(90deg,var(--color-green),color-mix(in oklch,var(--color-green) 55%,transparent));opacity:.9}.location-card.is-occupied{border-color:color-mix(in oklch,var(--color-green) 35%,var(--color-border-muted))}@media (hover: hover){.location-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-l)}}.card-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-s);margin-bottom:var(--spacing-m);border-bottom:1px solid var(--color-border-muted)}.card-title{font-family:var(--font-display);font-size:var(--font-size-l);font-weight:700;letter-spacing:-.01em}.card-chevron{width:36px;height:36px;padding:6px;border-radius:50%;font-size:24px;color:var(--color-text-secondary);background:var(--color-surface-2);border:1px solid var(--color-border-muted);transition:color var(--dur),background var(--dur),transform var(--dur) var(--ease-spring)}.card-chevron.clickable{cursor:pointer}.card-chevron.clickable:hover{color:var(--color-accent-contrast);background:var(--gradient-accent);border-color:transparent;transform:translate(2px)}.card-row{display:flex;align-items:flex-start;gap:10px;min-height:34px;margin-bottom:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:500}.card-row:last-child{margin-bottom:0}.card-icon{font-size:18px;flex-shrink:0}.card-row>.card-icon{box-sizing:content-box;width:18px;height:18px;padding:4px;flex-shrink:0}.card-row>.card-icon,.card-row>.card-occupancy-icon,.card-row>.light-icon{margin-top:4px}.card-row>span:not(.card-occupancy-icon){line-height:34px}.card-row .toggle-switch-container{padding:3px 0}.card-row .toggle-info{display:none}.card-occupancy-icon{position:relative;display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:50%;transition:background var(--dur),box-shadow var(--dur)}.card-occupancy-icon.occupied{background:color-mix(in oklch,var(--color-green) 16%,transparent);box-shadow:0 0 0 1px color-mix(in oklch,var(--color-green) 40%,transparent);--ring-color: var(--color-green);animation:ha-glow-ring 1.2s var(--ease-out) 1}.occupied{color:var(--color-green);font-weight:600}.light-icon{box-sizing:content-box;width:18px;height:18px;padding:4px;flex-shrink:0;border-radius:50%;color:var(--color-text-secondary);transition:color var(--dur),background var(--dur),box-shadow var(--dur)}.light-icon.on{color:#d98b00;color:oklch(.7 .17 70);background:color-mix(in oklch,var(--color-yellow) 28%,transparent);box-shadow:0 0 0 1px color-mix(in oklch,var(--color-yellow) 55%,transparent),0 0 12px -2px color-mix(in oklch,var(--color-yellow) 80%,transparent);animation:ha-pop var(--dur-slow) var(--ease-spring)}[data-theme=dark] .light-icon.on,[data-theme=tokyo-night] .light-icon.on,[data-theme=dimmed] .light-icon.on,[data-theme=nord] .light-icon.on,[data-theme=rose-pine] .light-icon.on{color:var(--color-yellow)}.card-controls-row{display:flex;align-items:center;gap:var(--spacing-s);min-width:0}.card-row-light{align-items:center;min-height:44px}.card-row-light>.light-icon{margin-top:0}.card-controls-row.has-timer{padding:2px 2px 2px 3px;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border-muted);box-shadow:var(--shadow-s);animation:ha-fade-in var(--dur) ease}.card-controls-row.has-timer .switch-track{border-color:transparent}.card-timer-row{display:flex;align-items:center;gap:6px;padding-left:8px;border-left:1px solid var(--color-border-muted)}.card-timer-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px}.card-timer-text{font-family:var(--font-display);font-weight:700;font-size:14px;line-height:1;letter-spacing:-.02em;color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.card-timer-text.mid{font-size:11px}.card-timer-text.long{font-size:9px;letter-spacing:-.04em}.card-cancel-btn{width:32px;min-height:32px;padding:0;border-radius:50%}.card-cancel-btn span{display:none}.card-cancel-icon{font-size:18px}.location-card-content{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-m)}.location-card-left{display:flex;flex-direction:column;flex:1;min-width:0}.location-card-right{display:flex;flex-direction:column;justify-content:center;flex:1;padding-left:var(--spacing-m);border-left:1px solid var(--color-border-muted)}.location-sensor-list{display:none}.location-sensor-item{display:flex;align-items:center;gap:10px;padding:10px 12px;max-width:240px;transition:transform var(--dur),border-color var(--dur)}.location-sensor-item:hover{border-color:color-mix(in oklch,var(--sensor-color) 40%,var(--color-border-muted))}.location-sensor-item .location-sensor-icon{width:32px;height:32px;padding:6px;border-radius:10px;color:var(--sensor-color);background:color-mix(in oklch,var(--sensor-color) 15%,transparent);flex-shrink:0}.location-sensor-info{display:flex;flex-direction:column;line-height:1.15;min-width:0}.location-sensor-value{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.location-sensor-value .unit{margin-left:2px;font-family:var(--font-body);font-size:var(--font-size-s);font-weight:500;color:var(--color-text-secondary)}.location-sensor-label{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-mobile-sensors{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.mobile-sensor-item{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.mobile-sensor-item>svg{width:26px;height:26px;padding:5px;border-radius:8px;background:color-mix(in oklch,currentColor 14%,transparent);flex-shrink:0}.mobile-sensor-item span{color:var(--color-text-primary);font-family:var(--font-display);font-variant-numeric:tabular-nums}.mobile-sensor-item span .unit{margin-left:2px;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--color-text-secondary)}@media (min-width: 768px){.location-card-content{display:grid;grid-template-columns:minmax(170px,1fr) 2fr;gap:var(--spacing-l);align-items:center}.location-card-right{display:block;padding-left:var(--spacing-l)}.location-sensor-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-s)}.location-mobile-sensors{display:none!important}}@media (max-width: 767px){.location-card{padding:var(--spacing-m)}.location-card-left{flex:0 0 190px;max-width:60%}.location-card-right{flex:1 1 auto;min-width:0}}.card-chevron-btn{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;color:inherit;cursor:pointer;border-radius:50%}.card-chevron-btn:hover .card-chevron.clickable{color:var(--color-accent-contrast);background:var(--gradient-accent);border-color:transparent;transform:translate(2px)}.loader-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;z-index:9999;background:var(--scrim);backdrop-filter:var(--scrim-blur);-webkit-backdrop-filter:var(--scrim-blur);animation:ha-fade-in var(--dur) ease}.loader-spinner{width:54px;height:54px;border-radius:50%;border:4px solid color-mix(in oklch,var(--color-text-primary) 12%,transparent);border-top-color:var(--color-accent);border-right-color:var(--color-accent-2);animation:loader-spin .9s linear infinite;box-shadow:0 0 30px -6px color-mix(in oklch,var(--color-accent) 60%,transparent)}@keyframes loader-spin{to{transform:rotate(360deg)}}.dashboard-container{display:flex;flex-direction:column;gap:var(--spacing-m);max-width:1600px;margin:0 auto;padding:var(--spacing-m) var(--spacing-m) calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px)}.dashboard-container>.location-card{animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.dashboard-container>.location-card:nth-child(1){animation-delay:.05s}.dashboard-container>.location-card:nth-child(2){animation-delay:.1s}.dashboard-container>.location-card:nth-child(3){animation-delay:.15s}.dashboard-container>.location-card:nth-child(4){animation-delay:.2s}.dashboard-container>.location-card:nth-child(5){animation-delay:.25s}.dashboard-container>.location-card:nth-child(6){animation-delay:.3s}.dashboard-container>.location-card:nth-child(n+7){animation-delay:.35s}@media (min-width: 769px){.dashboard-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(560px,1fr));gap:var(--spacing-l);padding:var(--spacing-l) var(--spacing-xl) 48px}}.dashboard-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--spacing-l);text-align:center;animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.dashboard-welcome h1{font-size:clamp(2rem,5vw,3.2rem);margin:0 0 var(--spacing-m);background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.03em}.dashboard-welcome p{max-width:560px;margin-bottom:var(--spacing-xl);font-size:1.1rem;line-height:1.55;color:var(--color-text-secondary)}.welcome-actions{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-l);width:100%;max-width:380px}.demo-button{width:100%;min-height:56px;font-size:1.05rem;border-radius:var(--border-radius-l)}.owner-prompt{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-s);width:100%;padding-top:var(--spacing-l);border-top:1px solid var(--color-border-muted)}.owner-button{width:100%;min-height:48px;font-weight:500}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-m);min-height:50vh;padding:var(--spacing-l);text-align:center}.empty-state p{margin:0;font-size:1.05rem;color:var(--color-text-secondary)}.add-location-button{min-height:50px;padding:12px 28px;font-size:1rem;border-radius:var(--border-radius-l)}.sensor-card{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s);min-width:150px;padding:var(--spacing-m);transition:transform var(--dur) var(--ease-out),border-color var(--dur),box-shadow var(--dur)}@media (hover: hover){.sensor-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-m)}}.sensor-left{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0}.sensor-icon{width:32px;height:32px;padding:6px;border-radius:10px;background:color-mix(in oklch,currentColor 14%,transparent);font-size:24px;flex-shrink:0}.sensor-title{color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600;letter-spacing:.02em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-right{display:flex;align-items:baseline;gap:3px;flex-shrink:0}.sensor-value{font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.sensor-unit{font-size:var(--font-size-s);font-weight:500;color:var(--color-text-secondary)}@media (max-width: 768px){.sensor-card{flex-direction:column;align-items:flex-start;gap:4px;padding:var(--spacing-s) var(--spacing-m)}.sensor-left{width:100%}.sensor-right{padding-left:42px}.sensor-value{font-size:1.2rem}}.sensor-card.is-stacked{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;row-gap:0;align-items:center;align-content:center;padding-top:calc(var(--spacing-m) - 2px);padding-bottom:calc(var(--spacing-m) - 2px)}.sensor-card.is-stacked .sensor-left{display:contents}.sensor-card.is-stacked .sensor-icon{grid-column:1;grid-row:1 / span 2}.sensor-card.is-stacked .sensor-title{grid-column:2;grid-row:1;line-height:1.2}.sensor-card.is-stacked .sensor-right{grid-column:2;grid-row:2;min-width:0;padding-left:0}.sensor-card.is-stacked .sensor-value{font-size:1.05rem;line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-card.is-stacked .sensor-unit{flex-shrink:0;white-space:nowrap}@media (max-width: 768px){.sensor-card.is-stacked .sensor-right{flex-wrap:wrap;row-gap:0}}.settings-container{display:flex;flex-direction:column;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--spacing-m) var(--spacing-m) calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px);animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.settings-title{margin:0 0 var(--spacing-l);font-size:var(--font-size-xxl);letter-spacing:-.03em;color:var(--color-text-primary)}.settings-section{display:flex;flex-direction:column;margin-bottom:var(--spacing-l);padding:var(--spacing-l)}.settings-section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m);margin-bottom:var(--spacing-m)}.setting-item{display:flex;flex-direction:column;gap:var(--spacing-s);margin-top:var(--spacing-l);padding-top:var(--spacing-l);border-top:1px solid var(--color-border-muted)}.setting-info{display:flex;flex-direction:column;gap:3px}.setting-label{font-size:var(--font-size-m);font-weight:600;color:var(--color-text-primary)}.setting-description{font-size:var(--font-size-s);line-height:1.45;color:var(--color-text-secondary)}.settings-select{flex:1;max-width:350px;margin-top:var(--spacing-xs)}.theme-toggle-container{display:flex;flex-direction:column;gap:var(--spacing-m)}.theme-info{display:flex;flex-direction:column;gap:3px}.theme-label{margin-top:var(--spacing-s);font-size:var(--font-size-m);font-weight:600;color:var(--color-text-primary)}.theme-current{font-size:var(--font-size-s);color:var(--color-text-secondary)}.theme-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-s)}.theme-option{display:flex;align-items:center;gap:10px;min-height:54px;padding:var(--spacing-s) var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);background:var(--color-surface-2);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:border-color var(--dur),transform var(--dur-fast),box-shadow var(--dur),background var(--dur)}.theme-option:hover{border-color:var(--color-border);transform:translateY(-1px)}.theme-option:active{transform:scale(.98)}.theme-option.active{border-color:var(--color-accent);background:var(--accent-soft);box-shadow:0 0 0 1px color-mix(in oklch,var(--color-accent) 45%,transparent)}.theme-option-label{flex:1;font-size:var(--font-size-s);font-weight:600}.theme-option-check{font-size:var(--font-size-m);color:var(--color-accent);flex-shrink:0;animation:ha-pop var(--dur-slow) var(--ease-spring)}.theme-swatch{width:30px;height:30px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-border)}.theme-swatch-system{background:linear-gradient(135deg,#f5f6fa 0,#f5f6fa 50%,#151929 50%,#151929)}.theme-swatch-light{background:linear-gradient(135deg,#f7f8fc 0,#f7f8fc 55%,#4c6ef5 55%,#4c6ef5 80%,#7c4dff 80%,#7c4dff)}.theme-swatch-dark{background:linear-gradient(135deg,#151929 0,#151929 55%,#5b8def 55%,#5b8def 80%,#9b6dff 80%,#9b6dff)}.theme-swatch-tokyo-night{background:linear-gradient(135deg,#1a1b26 0,#1a1b26 55%,#7aa2f7 55%,#7aa2f7 80%,#bb9af7 80%,#bb9af7)}.theme-swatch-dimmed{background:linear-gradient(135deg,#22272e 0,#22272e 55%,#539bf5 55%,#539bf5 80%,#6cb6ff 80%,#6cb6ff)}.theme-swatch-nord{background:linear-gradient(135deg,#2e3440 0,#2e3440 55%,#88c0d0 55%,#88c0d0 80%,#81a1c1 80%,#81a1c1)}.theme-swatch-rose-pine{background:linear-gradient(135deg,#191724 0,#191724 55%,#c4a7e7 55%,#c4a7e7 80%,#ebbcba 80%,#ebbcba)}.add-location-wrapper{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:var(--spacing-l)}.add-location-container{display:flex;justify-content:center;grid-column:2}.bottom-actions{display:flex;justify-content:flex-end;gap:12px;grid-column:3}.add-location-btn{padding:12px 24px;font-size:var(--font-size-m)}.add-location-btn svg{font-size:1.2rem}.header-actions{display:flex;gap:12px}.save-changes-btn,.discard-changes-btn{animation:ha-fade-up var(--dur) var(--ease-out)}.version-info{font-family:var(--font-mono)}@media (min-width: 769px){.settings-container{padding-top:calc(var(--nav-height) + 28px);padding-bottom:48px}}@media (max-width: 768px){.settings-section{padding:var(--spacing-m)}.theme-options{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.btn-text{display:none}.discard-changes-btn,.save-changes-btn{padding:8px 14px}.header-actions{gap:8px}.add-location-wrapper{grid-template-columns:1fr;grid-template-rows:auto auto}.add-location-container{grid-column:1;grid-row:1}.add-location-btn{width:100%}.bottom-actions{grid-column:1;grid-row:2;justify-content:center}.settings-select{max-width:none}}.settings-embedded{margin-bottom:var(--spacing-l, 24px)}.settings-embedded .global-section{padding:0}.settings-info-subtitle{margin:4px 0 0;color:var(--color-text-secondary);font-size:var(--font-size-s)}.settings-info-group{margin:var(--spacing-s) 0 var(--spacing-s);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.settings-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--spacing-m);margin-bottom:var(--spacing-m)}.settings-info-grid:last-child{margin-bottom:0}.settings-info-grid .sensor-right{flex-shrink:1;min-width:0}.settings-info-grid .sensor-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-locations-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-m)}.settings-locations-row .setting-info{flex:1 1 280px}@media (max-width: 480px){.settings-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-s)}.settings-info-grid .sensor-card{min-width:0}.settings-info-grid .sensor-title{white-space:normal;overflow:visible;line-height:1.25}.settings-info-grid .sensor-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}}.global-section{width:100%}.global-section-card{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.global-inner-card{padding:var(--spacing-m) var(--spacing-l)}.global-info-card{background:var(--color-surface)}.global-inner-title{margin:0 0 var(--spacing-m);font-size:var(--font-size-m);font-weight:600;color:var(--color-text-primary)}.global-card-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:var(--spacing-m);flex-wrap:wrap}.global-back-btn{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--spacing-m);padding:6px 12px 6px 8px;border:1px solid var(--color-border-muted);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:.9rem;font-weight:600;cursor:pointer;transition:color var(--dur),border-color var(--dur),background var(--dur)}.global-back-btn:hover{color:var(--color-accent);border-color:var(--accent-border);background:var(--accent-soft)}.global-automation-card,.global-settings-card{display:flex;flex-direction:column}.global-card-header{display:flex;align-items:flex-start;gap:var(--spacing-m);margin-bottom:var(--spacing-s)}.global-card-icon{display:grid;place-items:center;width:44px;height:44px;padding:9px;border-radius:13px;font-size:1.6rem;color:var(--color-accent);background:var(--gradient-accent-soft);flex-shrink:0}.global-card-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--color-text-primary)}.global-card-subtitle{margin-top:2px;font-size:.9rem;line-height:1.4;color:var(--color-text-secondary)}.global-delay-editor{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m);flex-wrap:wrap}.global-delay-label{display:flex;flex-direction:column}.global-delay-title{color:var(--color-text-primary);font-size:var(--font-size-m);font-weight:500}.global-delay-subtext{margin-top:2px;color:var(--color-text-secondary);font-size:var(--font-size-s)}@media (max-width: 768px){.global-section-card{background:transparent;border:none;box-shadow:none;padding:0}.global-inner-card{padding:var(--spacing-m)}.global-card-actions>*{flex:1}}.routine-card{display:flex;flex-direction:column;gap:var(--spacing-s)}.routine-label{font-size:var(--font-size-s);font-weight:700;color:var(--color-text-primary);padding:0}.routine-name-input{min-height:44px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-surface);color:var(--color-text-primary);font-size:1rem}.routine-state{margin:0;font-size:var(--font-size-s);color:var(--color-text-secondary)}.routine-members{margin:0;min-width:0}.routine-location{display:flex;flex-direction:column;gap:4px;padding-top:var(--spacing-s)}.routine-location-name{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.routine-help{margin:0;font-size:var(--font-size-s);color:var(--color-text-secondary)}.routine-member{display:flex;align-items:stretch;border-radius:var(--border-radius-m);background:var(--color-surface);border:1px solid var(--color-border-muted);overflow:hidden;transition:border-color var(--dur),background var(--dur)}.routine-member-remove{display:grid;place-items:center;flex:0 0 56px;min-height:56px;padding:0;border:none;border-right:1px solid var(--color-border-muted);background:transparent;color:var(--color-text-secondary);font-size:1.4rem;cursor:pointer}.routine-member-remove:hover{background:color-mix(in oklch,var(--color-red) 10%,transparent);color:var(--color-red)}.routine-member-remove:focus-visible{outline:none;box-shadow:inset 0 0 0 3px color-mix(in oklch,var(--color-accent) 85%,transparent)}.routine-empty{margin:0;padding:var(--spacing-s) 0;font-size:var(--font-size-s);color:var(--color-text-secondary)}.routine-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:48px;margin-top:var(--spacing-s);border:1px dashed var(--accent-border);border-radius:var(--border-radius-m);background:transparent;color:var(--color-accent);font:inherit;font-weight:600;cursor:pointer}.routine-add-btn:hover{background:var(--accent-soft)}.routine-add-btn svg{font-size:1.2rem}.routine-picker{display:flex;flex-direction:column;gap:var(--spacing-s);text-align:left}.routine-picker-location{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;border:none;min-width:0}.routine-picker-location legend{padding:0 0 4px}.routine-pick{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:10px 12px;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface);cursor:pointer}.routine-pick:hover{border-color:var(--accent-border)}.routine-pick:focus-within{box-shadow:0 0 0 3px color-mix(in oklch,var(--color-accent) 85%,transparent)}.routine-pick.is-picked{border-color:var(--accent-border);background:var(--accent-soft)}.routine-pick.is-member{cursor:default;opacity:.7}.routine-pick input{flex-shrink:0;width:22px;height:22px;margin:1px 0 0;accent-color:var(--color-accent);cursor:inherit}.routine-pick-note{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary)}.routine-member-open{display:flex;align-items:center;gap:var(--spacing-s);flex:1;min-width:0;padding:10px 12px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.routine-member-open:hover{background:color-mix(in oklch,var(--color-text-primary) 4%,transparent)}.routine-member-open:focus-visible{outline:none;box-shadow:inset 0 0 0 3px color-mix(in oklch,var(--color-accent) 85%,transparent)}.routine-member-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.routine-member-title{font-weight:600;color:var(--color-text-primary)}.routine-member-desc{font-size:var(--font-size-s);color:var(--color-text-secondary)}.routine-member-edit{display:inline-flex;align-items:center;flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;color:var(--color-accent)}.routine-member-edit svg{font-size:1.1rem}.routine-member-switch{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:0 12px 0 4px}.routine-member-switch .toggle-switch-container{gap:0}.routine-member-state{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);min-width:2ch}@media (max-width: 480px){.routine-member-edit{font-size:0}.routine-member-edit svg{font-size:1.3rem}}.routine-error{margin:0;color:var(--color-red);font-size:var(--font-size-s)}.routine-days{margin:0;min-width:0}.routine-day-presets{display:flex;flex-wrap:wrap;gap:8px}.routine-day-preset{min-height:36px;padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-s);font-weight:600;cursor:pointer}.routine-day-preset.is-active{border-color:var(--accent-border);background:var(--accent-soft);color:var(--color-accent)}.routine-day-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.routine-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:0;line-height:1.15;border:1px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-surface);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-s);font-weight:600;cursor:pointer;transition:background var(--dur),color var(--dur),border-color var(--dur)}.routine-day.is-on{border-color:var(--color-accent);background:var(--gradient-accent, var(--color-accent));color:var(--color-accent-contrast)}.routine-day.is-on:before{content:"✓";font-size:.8em}.routine-day-preset:disabled,.routine-day:disabled{cursor:default;opacity:.6}.modal-backdrop{position:fixed;top:var(--modal-vv-top, 0px);left:0;right:0;height:var(--modal-vv-height, 100%);z-index:1000;display:flex;justify-content:center;align-items:center;background:var(--scrim);backdrop-filter:var(--scrim-blur);-webkit-backdrop-filter:var(--scrim-blur);animation:ha-fade-in var(--dur) ease}.modal-container{display:flex;flex-direction:column;width:92%;max-width:520px;max-height:90%;background:var(--color-surface);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl);box-shadow:var(--shadow-l);overflow:hidden;animation:modal-in .35s var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m);padding:18px 24px;border-bottom:1px solid var(--color-border-muted)}.modal-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--color-text-primary)}.modal-close-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--color-border-muted);border-radius:50%;background:var(--color-surface-2);color:var(--color-text-secondary);font-size:1.3rem;cursor:pointer;transition:background var(--dur),color var(--dur),transform var(--dur-fast)}.modal-close-btn:hover{background:var(--color-red);border-color:transparent;color:#fff}.modal-close-btn:active{transform:scale(.92)}.modal-body{padding:24px;overflow-y:auto;color:var(--color-text-secondary);font-size:1rem;line-height:1.55}.modal-body strong{color:var(--color-text-primary)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--color-border-muted);background:color-mix(in oklch,var(--color-surface-2) 60%,transparent)}.modal-btn{min-height:40px;padding:8px 18px;font-size:.92rem}@media (max-width: 768px){.modal-backdrop{padding:16px}.modal-container{width:100%;max-width:none;max-height:100%}.modal-header{padding:16px 20px}.modal-body{padding:20px}.modal-footer{padding:14px 20px}.modal-footer .modal-btn{flex:1;min-height:46px}}.add-location-form{display:flex;flex-direction:column;gap:var(--spacing-s);text-align:left}.add-location-label{font-size:var(--font-size-s);font-weight:700;color:var(--color-text-primary)}.add-location-input{min-height:44px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-surface);color:var(--color-text-primary);font:inherit}.add-location-error{margin:0;color:var(--color-red);font-size:var(--font-size-s)}.add-location-hint{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-s)}.profile-photo{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-s);text-align:center}.profile-photo-frame{position:relative;animation:profile-photo-grow .35s var(--ease-out)}@keyframes profile-photo-grow{0%{opacity:.4;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.profile-photo-frame.busy .user-avatar{opacity:.55;transition:opacity var(--dur)}.profile-photo-more{position:absolute;right:6%;bottom:6%;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--color-border-muted);border-radius:50%;background:var(--color-surface);color:var(--color-text-primary);font-size:24px;box-shadow:var(--shadow-m);cursor:pointer;transition:transform var(--dur-fast),background var(--dur)}.profile-photo-more:hover{background:var(--color-surface-2)}.profile-photo-more:active{transform:scale(.94)}.profile-photo-menu{position:absolute;top:calc(94% + 6px);right:0;z-index:1;min-width:190px;margin:0;padding:6px;list-style:none;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface);box-shadow:var(--shadow-l);text-align:left;animation:ha-fade-in var(--dur-fast) ease}.profile-photo-menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:var(--border-radius-s);background:transparent;color:var(--color-text-primary);font:inherit;font-size:var(--font-size-s);font-weight:600;cursor:pointer}.profile-photo-menu button:hover{background:var(--color-surface-2)}.profile-photo-menu button svg{flex-shrink:0;font-size:18px;color:var(--color-text-muted)}.profile-photo-menu button.danger,.profile-photo-menu button.danger svg{color:var(--color-red)}.profile-photo-name{margin:var(--spacing-s) 0 0;color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--font-size-l);font-weight:700}.profile-photo-hint{max-width:22rem;margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.5}@media (prefers-reduced-motion: reduce){.profile-photo-frame,.profile-photo-menu{animation:none}}.account-role{padding:4px 12px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--color-accent);font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.02em}.account-role-guest{background:color-mix(in oklch,var(--color-text-muted) 16%,transparent);color:var(--color-text-secondary)}.account-field{display:flex;flex-direction:column;gap:6px;max-width:22rem;margin-top:var(--spacing-s);color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600}.account-input{padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-m);transition:border-color var(--dur-fast) var(--ease-out)}.account-input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--accent-soft)}.account-note{display:flex;align-items:center;gap:8px;margin:var(--spacing-s) 0 0;color:var(--color-text-muted);font-size:var(--font-size-s);line-height:1.5;max-width:44rem}.account-actions{display:flex;gap:var(--spacing-s);margin-top:var(--spacing-m)}.account-error{margin:var(--spacing-s) 0 0;color:var(--color-red, #ef4444);font-size:var(--font-size-s);font-weight:600}.account-facts{display:flex;flex-wrap:wrap;gap:var(--spacing-m) var(--spacing-xl);margin:var(--spacing-l) 0 0;padding-top:var(--spacing-m);border-top:1px solid var(--color-border)}.account-facts dt{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.account-facts dd{margin:4px 0 0;color:var(--color-text-primary);font-size:var(--font-size-s);font-weight:600}.account-warn{color:var(--color-yellow)}.account-signout{display:flex;margin-top:var(--spacing-l);padding-top:var(--spacing-m);border-top:1px solid var(--color-border)}.account-signout .settings-btn-secondary[aria-disabled=true]{opacity:.55;cursor:not-allowed}.account-identity{display:flex;align-items:center;gap:var(--spacing-l);margin-top:var(--spacing-s)}.account-avatar-btn{position:relative;flex-shrink:0;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;transition:transform var(--dur) var(--ease-out)}.account-avatar-btn:hover{transform:scale(1.04)}.account-avatar-badge{position:absolute;right:0;bottom:0;display:grid;place-items:center;width:30px;height:30px;border:2px solid var(--color-surface);border-radius:50%;background:var(--color-surface-2);color:var(--color-text-secondary);font-size:16px;box-shadow:var(--shadow-s)}.account-identity-name{display:flex;flex:1;flex-direction:column;min-width:0}.account-name-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--spacing-s)}.account-name-row .account-field{flex:1 1 10rem;margin-top:0}.account-name-save{display:inline-flex;align-items:center;gap:6px;min-height:44px}@media (prefers-reduced-motion: reduce){.account-avatar-btn{transition:none}.account-avatar-btn:hover{transform:none}}@media (max-width: 768px){.account-identity{gap:var(--spacing-m)}.account-avatar-btn .user-avatar-xl{width:72px;height:72px;font-size:var(--font-size-xl)}.account-avatar-badge{width:26px;height:26px;font-size:14px}}.account-banner{display:flex;gap:10px;margin-top:var(--spacing-m);padding:12px 14px;border:1px solid var(--accent-border);border-radius:var(--border-radius-m);background:var(--accent-soft);color:var(--color-text-primary);font-size:var(--font-size-s);line-height:1.5;text-align:left}.account-banner>svg{flex-shrink:0;margin-top:2px;font-size:18px;color:var(--color-accent)}.account-banner p{margin:0}.account-banner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-s);margin-top:var(--spacing-s);color:var(--color-text-secondary)}.account-role-pending{display:inline-flex;align-items:center;gap:4px;background:color-mix(in srgb,var(--color-orange) 18%,transparent);color:color-mix(in srgb,var(--color-orange) 75%,var(--color-text-primary))}.account-banner-warning{border-color:color-mix(in srgb,var(--color-orange) 55%,transparent);background:color-mix(in srgb,var(--color-orange) 14%,var(--color-surface))}.account-banner-warning>svg{color:var(--color-orange)}.password-input{position:relative;display:block;width:100%;min-width:0}.password-input>input{box-sizing:border-box;width:100%;padding-right:48px}.password-input-toggle{position:absolute;top:50%;right:4px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--border-radius-s, 8px);background:transparent;color:var(--color-text-muted);font-size:20px;cursor:pointer;transform:translateY(-50%);transition:color var(--dur-fast),background-color var(--dur-fast)}.password-input-toggle:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.password-input-toggle[aria-pressed=true]{color:var(--color-accent)}.settings-section.delete-account{padding:var(--spacing-m) var(--spacing-l)}.delete-account-row{display:flex;align-items:center;gap:var(--spacing-m)}.delete-account-text{flex:1;min-width:0;text-align:left}.delete-account-title{margin:0;color:var(--color-text-primary);font-size:var(--font-size-m);font-weight:700}.delete-account-text p{margin:2px 0 0;color:var(--color-text-muted);font-size:var(--font-size-s)}.delete-account-btn{display:inline-flex;flex-shrink:0;align-items:center;gap:6px}.delete-account-form{display:flex;flex-direction:column;gap:var(--spacing-s);text-align:left}.delete-account-form p{margin:0}.delete-account-form .account-field{max-width:none;margin-top:var(--spacing-s)}@media (max-width: 768px){.settings-section.delete-account{padding:var(--spacing-m)}.delete-account-row{flex-wrap:wrap}.delete-account-btn{justify-content:center;width:100%}}.settings-section.local-password{padding:var(--spacing-m) var(--spacing-l)}.local-password-card{display:flex;align-items:center;gap:var(--spacing-m)}.local-password-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--color-surface-2);color:var(--color-text-secondary);font-size:20px}.local-password-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0;text-align:left}.local-password-title{margin:0;color:var(--color-text-primary);font-size:var(--font-size-m);font-weight:700}.local-password-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;color:var(--color-text-muted);font-size:var(--font-size-s)}.local-password-saved{display:inline-flex;align-items:center;gap:4px;color:var(--color-green);font-weight:600}.local-password-btn{flex-shrink:0;min-height:40px}.local-password-form{display:flex;flex-direction:column;gap:var(--spacing-s)}.local-password-form .account-field{max-width:none;margin-top:0}.local-password-lead{margin:0 0 var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:1.5;text-align:left}.local-password-rule{margin:-4px 0 2px;color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:left}.local-password-rule.bad{color:var(--color-red);font-weight:600}@media (max-width: 768px){.settings-section.local-password{padding:var(--spacing-m)}.local-password-card{flex-wrap:wrap}.local-password-btn{width:100%}}.people .section-title{display:inline-flex;align-items:center;gap:8px}.people-count{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.people-lead{margin:0 0 var(--spacing-m);color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:1.55;text-align:left}.people-muted{margin:0;color:var(--color-text-muted);font-size:var(--font-size-s)}.people-error{padding:10px 14px;border:1px solid color-mix(in oklch,var(--color-red) 40%,transparent);border-radius:var(--border-radius-m);background:color-mix(in oklch,var(--color-red) 8%,transparent);font-size:var(--font-size-s);text-align:left}.people-error p{margin:0 0 var(--spacing-s)}.people-error .settings-btn-secondary{display:inline-flex;align-items:center;gap:6px}.people-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-m);margin:0;padding:0;list-style:none}.people-row>li{display:flex}.people-card{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:var(--spacing-s);padding:var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);background:var(--color-surface-2);color:var(--color-text-primary);text-align:left;text-decoration:none;transition:border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.people-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-s);transform:translateY(-2px)}.people-card-top{display:flex;align-items:center;gap:12px;width:100%}.people-card-who{display:flex;flex:1;flex-direction:column;min-width:0}.people-card-name{font-size:var(--font-size-m);font-weight:700}.people-card-email{overflow:hidden;color:var(--color-text-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.people-card-chevron{flex-shrink:0;font-size:22px;color:var(--color-text-muted);transition:transform var(--dur) var(--ease-out),color var(--dur)}.people-card:hover .people-card-chevron{color:var(--color-accent);transform:translate(3px)}.people-card-facts{display:flex;flex-direction:column;gap:4px;width:100%;padding-top:var(--spacing-s);border-top:1px solid var(--color-border-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.people-card-facts>span{display:inline-flex;align-items:center;gap:6px}.people-card-facts svg{flex-shrink:0;font-size:15px;color:var(--color-text-muted)}@media (prefers-reduced-motion: reduce){.people-card,.people-card-chevron{transition:none}.people-card:hover,.people-card:hover .people-card-chevron{transform:none}}@media (max-width: 768px){.people-row{grid-template-columns:1fr}}.people-card-pills{display:flex;flex-wrap:wrap;gap:6px}.people-pending{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);background:color-mix(in oklch,var(--color-yellow) 18%,transparent);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:700}.people-pending svg{color:var(--color-yellow)}.settings-section.your-access{gap:var(--spacing-s);padding:var(--spacing-m) var(--spacing-l)}.your-access .section-title{margin-bottom:0}.your-access-intro,.your-access-none,.your-access-note,.your-access-owner{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:1.45}.your-access-rooms{display:flex;flex-wrap:wrap;gap:var(--spacing-xs, 6px);margin:0;padding:0;list-style:none}.your-access-room{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:var(--color-surface-2);color:var(--color-text-primary);font-size:var(--font-size-s);font-weight:600}.your-access-room svg{flex-shrink:0;color:var(--color-accent)}.your-access-note{color:var(--color-text-primary)}.your-access-owner{display:flex;align-items:flex-start;gap:6px;padding-top:var(--spacing-s);border-top:1px solid var(--color-border)}.your-access-owner svg{flex-shrink:0;margin-top:2px}@media (max-width: 768px){.settings-section.your-access{padding:var(--spacing-m)}}.push-panel{display:flex;flex-direction:column;gap:var(--spacing-s);margin-top:var(--spacing-m);padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted)}.global-live-card>.push-panel:first-child{margin-top:0;padding-top:0;border-top:none}.push-panel-title{margin:0;font-family:var(--font-display);font-size:var(--font-size-m);font-weight:600;color:var(--color-text-primary)}.push-status{display:flex;align-items:flex-start;gap:var(--spacing-m);padding:var(--spacing-m);border-radius:var(--border-radius-m);background:var(--color-surface)}.push-status-icon{flex-shrink:0;font-size:1.6rem;color:var(--color-text-muted)}.push-status-icon.state-armed{color:var(--color-green)}.push-status-icon.state-waiting{color:var(--color-accent)}.push-status-icon.state-confirming{color:var(--color-orange)}.push-status-title{font-weight:600;color:var(--color-text-primary)}.push-status-text{margin-top:2px;font-size:var(--font-size-s);line-height:1.45;color:var(--color-text-secondary)}.push-this-device,.push-device{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-s) var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface-2)}.push-this-device-text,.push-device-text{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}.push-this-device-text span,.push-device-text span{font-size:var(--font-size-s);color:var(--color-text-secondary)}.push-device-icon{flex-shrink:0;font-size:1.4rem;color:var(--color-text-muted)}.push-device-icon.on{color:var(--color-accent)}.push-device-here{font-weight:500;color:var(--color-text-secondary)}a.push-device-remove{text-decoration:none;display:inline-flex;align-items:center}.push-device-list{display:flex;flex-direction:column;gap:var(--spacing-s);margin:0;padding:0;list-style:none}.push-note{margin:0;padding:var(--spacing-s) var(--spacing-m);border-left:3px solid var(--color-orange);border-radius:var(--border-radius-s, 6px);background:color-mix(in oklch,var(--color-orange) 8%,transparent);font-size:var(--font-size-s);line-height:1.45;color:var(--color-text-primary)}.push-message{margin:0;font-size:var(--font-size-s);color:var(--color-text-primary)}.push-feedback:empty{display:none}.global-minutes-field{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m);flex-wrap:wrap}.global-minutes-input{display:flex;align-items:center;gap:var(--spacing-s)}.global-minutes-input .adorned-input-field{width:5.5rem}.global-minutes-unit{font-size:var(--font-size-s);color:var(--color-text-secondary)}@media (max-width: 768px){.push-this-device{flex-wrap:wrap}.push-this-device>button{flex:1 1 100%;min-height:44px}.push-device-remove{min-height:44px}}.intruder-role-group{display:flex;flex-direction:column;gap:6px}.intruder-role-title{margin:var(--spacing-s) 0 0;font-size:var(--font-size-s);font-weight:600;color:var(--color-text-primary)}.intruder-role-count{color:var(--color-text-muted);font-weight:500}.push-panel.push-panel-embedded{margin-top:0;padding-top:0;border-top:none}.room-access-rooms{min-width:0;margin:0;padding:0;border:0}.room-access-rooms legend{margin-bottom:var(--spacing-s);padding:0;font-size:var(--font-size-s);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.room-access-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;margin-top:6px}.room-access-room,.room-access-all{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface-2);color:var(--color-text-primary);font-size:var(--font-size-s);font-weight:600;cursor:pointer;transition:border-color var(--dur),background-color var(--dur)}.room-access-all{width:fit-content}.room-access-room:has(input:checked),.room-access-all:has(input:checked){border-color:var(--accent-border);background:var(--accent-soft)}.room-access-room input,.room-access-all input{width:18px;height:18px;margin:0;flex-shrink:0;accent-color:var(--color-accent)}.room-access-actions{display:flex;align-items:center;gap:var(--spacing-m);margin-top:var(--spacing-m)}.room-access-saved{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-s);font-weight:600;color:var(--color-green)}.room-access-error{margin:var(--spacing-s) 0 0;padding:10px 14px;border:1px solid color-mix(in oklch,var(--color-red) 40%,transparent);border-radius:var(--border-radius-m);background:color-mix(in oklch,var(--color-red) 8%,transparent);color:var(--color-text-primary);font-size:var(--font-size-s);text-align:left}@media (max-width: 768px){.room-access-grid{grid-template-columns:1fr 1fr}.room-access-actions .settings-btn-primary{flex:1}}.user-detail-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-bottom:var(--spacing-s);color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600;text-decoration:none}.user-detail-back:hover{color:var(--color-accent)}.user-detail-header{display:flex;align-items:center;gap:var(--spacing-m);margin-bottom:var(--spacing-l)}.user-detail-name{margin:0;text-align:left}.user-detail-sub{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0 0;color:var(--color-text-muted);font-size:var(--font-size-s)}.user-detail-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:0;padding-top:0;border-top:0}.user-detail-facts code{font-family:var(--font-mono);font-size:var(--font-size-xs)}.user-detail-empty{color:var(--color-text-muted);font-weight:500}.user-detail-page .section-title{display:inline-flex;align-items:center;gap:8px;margin-bottom:var(--spacing-m)}.user-detail-lead{margin:0 0 var(--spacing-m);color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:1.55;text-align:left}.user-detail-note{display:flex;gap:10px;margin:0;padding:12px 14px;border:1px solid var(--accent-border);border-radius:var(--border-radius-m);background:var(--accent-soft);color:var(--color-text-primary);font-size:var(--font-size-s);line-height:1.5;text-align:left}.user-detail-note svg{flex-shrink:0;margin-top:2px;font-size:18px;color:var(--color-accent)}.user-detail-sessions{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.user-detail-sessions li{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m);padding:10px 14px;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface-2)}.user-detail-session-what{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}.user-detail-session-device{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--font-size-s);font-weight:700}.user-detail-session-when{color:var(--color-text-muted);font-size:var(--font-size-xs)}.user-detail-tag{padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--color-border-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600}.user-detail-this{padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:700}.user-detail-signout{display:inline-flex;flex-shrink:0;align-items:center;gap:6px}@media (max-width: 768px){.user-detail-sessions li{flex-direction:column;align-items:stretch}.user-detail-signout{justify-content:center}}.user-detail-request{border-color:var(--accent-border)}.user-detail-decide{display:flex;flex-wrap:wrap;gap:var(--spacing-s)}.user-detail-decide .settings-btn-primary,.user-detail-decide .settings-btn-danger{display:inline-flex;align-items:center;gap:6px}.login-page{display:flex;align-items:flex-start;justify-content:center;width:100%;min-height:calc(100dvh - var(--nav-height) - 48px);padding:var(--spacing-l) var(--spacing-m) calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px)}.login-card{display:flex;flex-direction:column;margin:auto;width:100%;max-width:28rem;padding:var(--spacing-xl) var(--spacing-l);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl, 28px);background:var(--color-surface);box-shadow:var(--shadow-m);animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.login-intro{display:flex;flex-direction:column;align-items:center;text-align:center}.login-brand{display:flex;align-items:center;gap:10px;color:var(--color-text-primary)}.login-brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--color-accent);color:#fff;font-size:21px}.login-brand-text{display:flex;flex-direction:column;font-weight:800;letter-spacing:-.02em;line-height:1.1;text-align:left}.login-brand-text small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.login-title{margin:var(--spacing-l) 0 var(--spacing-s);color:var(--color-text-primary);font-size:var(--font-size-xl);letter-spacing:-.02em}.login-subtitle{margin-bottom:var(--spacing-l);color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:1.55}.login-subtitle p{margin:0}.login-done-icon{display:grid;place-items:center;width:56px;height:56px;margin-top:var(--spacing-l);border-radius:50%;background:var(--accent-soft);color:var(--color-accent);font-size:28px}.login-done-icon+.login-title{margin-top:var(--spacing-m)}.login-main{display:flex;flex-direction:column;min-width:0}.login-form{display:flex;flex-direction:column;gap:var(--spacing-m)}.login-field{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600}.login-input{box-sizing:border-box;width:100%;min-width:0;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-size-m);transition:border-color var(--dur-fast) var(--ease-out)}.login-input:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--spacing-m) var(--spacing-s)}.login-row-rule{grid-column:1 / -1;margin-top:calc(var(--spacing-m) * -1 + 6px)}.login-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-s)}.login-rule{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:500;line-height:1.45}.login-rule-bad{color:var(--color-red);font-weight:600}.login-error{margin:0;color:var(--color-red, #ef4444);font-size:var(--font-size-s);font-weight:600}.login-actions{display:flex;flex-direction:column-reverse;gap:var(--spacing-m);margin-top:var(--spacing-s)}.login-submit{justify-content:center;width:100%}.login-switch{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-s);text-align:center}.login-link{padding:2px 4px;border:none;border-radius:6px;background:none;color:var(--color-accent);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.login-link:hover{text-decoration:underline}.login-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.login-link-small{font-size:var(--font-size-xs)}@media (max-width: 480px){.login-row{grid-template-columns:minmax(0,1fr)}}@media (min-width: 769px){.login-page{min-height:calc(100dvh - var(--nav-height) - 40px);padding-top:calc(var(--nav-height) + 28px);padding-bottom:48px}}@media (min-width: 960px){.login-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:56px;max-width:62rem;padding:48px 48px 44px}.login-intro{align-items:flex-start;text-align:left}.login-title{margin-top:var(--spacing-xl);font-size:2.1rem;line-height:1.15}.login-done-icon{margin-top:var(--spacing-xl)}.login-subtitle{max-width:24rem;font-size:var(--font-size-m)}.login-main{justify-content:center;padding-top:var(--spacing-l)}.login-actions{flex-direction:row;align-items:center;justify-content:space-between;margin-top:var(--spacing-m)}.login-actions .login-submit{width:auto;min-width:11rem}.login-switch{text-align:left}.login-main>.login-submit{align-self:flex-end;width:auto;min-width:11rem}}.admin-only{display:flex;justify-content:center;padding:calc(var(--nav-height) + 40px) var(--spacing-m) var(--spacing-xl)}.admin-only-card{width:100%;max-width:520px;padding:var(--spacing-xl);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-m);text-align:left}.admin-only-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:var(--spacing-m);border-radius:50%;background:var(--accent-soft);color:var(--color-accent);font-size:26px}.admin-only-card h1{margin:0 0 var(--spacing-s);font-size:var(--font-size-xl);color:var(--color-text-primary)}.admin-only-card p{margin:0 0 var(--spacing-l);font-size:var(--font-size-m);line-height:1.55;color:var(--color-text-secondary)}.admin-only-link{display:inline-flex;text-decoration:none}@media (max-width: 768px){.admin-only{padding:var(--spacing-l) var(--spacing-s) calc(var(--nav-height-mobile) + var(--spacing-l))}.admin-only-card{padding:var(--spacing-l) var(--spacing-m)}}.graph-card{position:relative;display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m);cursor:pointer;overflow:hidden;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur),border-color var(--dur)}@media (hover: hover){.graph-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-m);border-color:var(--accent-border)}}.graph-card:active{transform:scale(.99)}.graph-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s)}.graph-title-row{display:flex;align-items:center;gap:8px;min-width:0}.graph-icon{width:30px;height:30px;padding:6px;border-radius:9px;background:color-mix(in oklch,currentColor 14%,transparent);flex-shrink:0}.graph-title{color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600;letter-spacing:.02em}.graph-expand-icon{padding:4px;border-radius:50%;font-size:26px;color:var(--color-text-muted);transition:background var(--dur),color var(--dur),transform var(--dur)}.graph-card:hover .graph-expand-icon{color:var(--color-accent);background:var(--accent-soft);transform:scale(1.08)}.graph-value-container{display:flex;align-items:baseline;gap:3px}.graph-value{font-family:var(--font-display);font-size:1.7rem;font-weight:700;letter-spacing:-.03em;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.graph-unit{font-size:var(--font-size-s);font-weight:500;color:var(--color-text-secondary)}.graph-chart-mini{margin-top:auto;height:60px}.graph-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;justify-content:center;align-items:center;background:var(--scrim);backdrop-filter:var(--scrim-blur);-webkit-backdrop-filter:var(--scrim-blur);animation:ha-fade-in var(--dur) ease}.graph-modal{position:relative;width:92%;max-width:1200px;padding:var(--spacing-l);background:var(--color-surface);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl);box-shadow:var(--shadow-l);animation:graph-modal-in .35s var(--ease-out)}@keyframes graph-modal-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.graph-modal-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m);margin-bottom:var(--spacing-l);flex-wrap:wrap}.graph-modal-header h2{display:flex;align-items:center;gap:10px;margin:0;font-size:var(--font-size-l);color:var(--color-text-primary)}.graph-modal-controls{display:flex;align-items:center;gap:var(--spacing-s)}.graph-range-selector{min-height:40px;padding:.5rem 2.2rem .5rem .8rem}.graph-modal-close-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--color-border-muted);border-radius:50%;background:var(--color-surface-2);color:var(--color-text-secondary);font-size:22px;cursor:pointer;transition:background var(--dur),color var(--dur),transform var(--dur-fast)}.graph-modal-close-button:hover{background:var(--color-red);border-color:transparent;color:#fff}.graph-modal-close-button:active{transform:scale(.92)}.graph-modal-value{margin-bottom:var(--spacing-l);font-family:var(--font-display);font-size:2.2rem;font-weight:700;letter-spacing:-.03em;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.graph-modal-chart{height:320px;width:100%}.graph-no-data{display:flex;justify-content:center;align-items:center;width:100%;color:var(--color-text-muted);font-size:var(--font-size-s)}.custom-tooltip{padding:var(--spacing-s) var(--spacing-m);background:color-mix(in oklch,var(--color-surface) 92%,transparent);border:1px solid var(--color-border);border-radius:var(--border-radius-m);box-shadow:var(--shadow-l);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tooltip-value{margin:0 0 2px;font-family:var(--font-display);font-size:var(--font-size-m);font-weight:700}.tooltip-unit{font-family:var(--font-body);font-size:var(--font-size-s);font-weight:400;color:var(--color-text-primary)}.tooltip-date{margin:0;font-size:var(--font-size-s);color:var(--color-text-secondary)}.tooltip-date-part{margin-left:4px;opacity:.8}@media (max-width: 768px){.graph-card{padding:var(--spacing-s) var(--spacing-m)}.graph-value{font-size:1.35rem}.graph-chart-mini{height:48px}.graph-modal-overlay{align-items:center;padding:var(--spacing-m);padding-bottom:calc(var(--nav-height-mobile) + var(--safe-bottom) + var(--spacing-m))}.graph-modal{width:100%;max-height:100%;padding:var(--spacing-m);border-radius:var(--radius-xl);overflow-y:auto}.graph-modal-chart{height:clamp(180px,38dvh,320px)}.graph-modal-value{font-size:1.8rem;margin-bottom:var(--spacing-m)}}.graph-expand-btn{display:inline-flex;padding:0;border:0;background:none;color:inherit;cursor:pointer;border-radius:50%}.graph-card:hover .graph-expand-btn .graph-expand-icon,.graph-expand-btn:hover .graph-expand-icon{color:var(--color-accent);background:var(--accent-soft);transform:scale(1.08)}.location-info-container{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.location-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-m)}.no-graph-message{padding:var(--spacing-m);border:1px dashed var(--color-border);border-radius:var(--border-radius-l);text-align:center}@media (max-width: 768px){.location-info-container{background:transparent;border:none;box-shadow:none;padding:0}.location-sensor-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-s)}}.location-devices-container{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.devices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-m)}.device-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:170px;padding:var(--spacing-m);overflow:hidden;cursor:pointer;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur),border-color var(--dur)}.device-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-accent-soft);opacity:0;transition:opacity var(--dur);pointer-events:none}@media (hover: hover){.device-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-m);border-color:var(--accent-border)}.device-card:hover:after{opacity:1}}.device-card:active{transform:scale(.98)}.device-card.is-occupied{border-color:color-mix(in oklch,var(--color-green) 45%,var(--color-border-muted));box-shadow:0 0 0 1px color-mix(in oklch,var(--color-green) 25%,transparent)}.device-info{position:relative;z-index:1;display:flex;flex-direction:column;gap:26px}.device-name-wrap{position:relative;display:flex;flex-direction:column;min-width:0}.device-name{font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-name-btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0;border:0;background:none;text-align:left;cursor:pointer;max-width:100%}.device-subtitle{position:absolute;top:100%;left:0;max-width:100%;margin-top:2px;font-size:.72rem;line-height:1.1;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-status{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:.88rem;font-weight:500}.device-status.occupied{color:var(--color-green);font-weight:600}.device-status-icon-wrap{position:relative;display:grid;place-items:center;width:24px;height:24px}.device-status-icon{font-size:1.25rem}.device-status.occupied .device-status-icon{animation:ha-pop var(--dur-slow) var(--ease-spring)}.device-icon-wrapper{position:relative;z-index:1;display:grid;place-items:center;align-self:flex-start;width:52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--color-accent);transition:background var(--dur),color var(--dur)}.device-card.is-occupied .device-icon-wrapper{background:color-mix(in oklch,var(--color-green) 16%,transparent);color:var(--color-green)}.device-icon{font-size:1.9rem}.status-dot{position:absolute;top:-4px;right:-4px;width:12px;height:12px;border:2px solid var(--color-surface-2)}.no-devices-message{padding:var(--spacing-m);border:1px dashed var(--color-border);border-radius:var(--border-radius-l);text-align:center}@media (max-width: 768px){.location-devices-container{background:transparent;border:none;box-shadow:none;padding:0}.devices-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-s)}.device-card{min-height:140px}.device-info{gap:14px}.device-icon-wrapper{width:44px;height:44px}.device-icon{font-size:1.6rem}}.range-slider-container{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-m)}.slider-header{display:flex;justify-content:space-between;align-items:center;color:var(--color-text-primary)}.slider-label-group{display:flex;align-items:center;gap:var(--spacing-s)}.slider-icon{font-size:20px;color:var(--color-text-secondary)}.slider-label{font-size:var(--font-size-m);font-weight:500}.slider-value{padding:2px 10px;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border-muted);font-family:var(--font-display);font-size:var(--font-size-s);font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.slider-track-container{position:relative;display:flex;align-items:center;height:36px}.range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:14px;border-radius:14px;background:var(--color-border-muted);border:1px solid var(--color-border-muted);outline:none;cursor:pointer;box-shadow:inset 0 1px 3px #00000040}.range-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--color-surface);box-shadow:0 2px 6px #00000059,0 0 0 1px #0000001a;cursor:grab;transition:transform var(--dur-fast),box-shadow var(--dur)}.range-input::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--color-surface);box-shadow:0 2px 6px #00000059,0 0 0 1px #0000001a;cursor:grab}.range-input::-webkit-slider-thumb:hover{transform:scale(1.1)}.range-input:active::-webkit-slider-thumb{transform:scale(1.15);cursor:grabbing;box-shadow:0 2px 6px #00000059,0 0 0 6px color-mix(in oklch,var(--color-accent) 25%,transparent)}.range-input:focus-visible{box-shadow:var(--focus-ring)}.slider-marker{position:absolute;top:50%;width:2px;height:18px;transform:translateY(-50%);border-radius:2px;background:var(--color-text-primary);opacity:.55;pointer-events:none;z-index:1}.range-slider-container{--trend: var(--color-orange)}.slider-header-end{display:inline-flex;align-items:center;gap:var(--spacing-s);min-width:0}.slider-trend{display:inline-flex;align-items:center;gap:4px;padding:2px 10px 2px 6px;border-radius:var(--radius-pill);border:1px dashed color-mix(in oklch,var(--trend) 70%,transparent);background:color-mix(in oklch,var(--trend) 10%,transparent);color:var(--color-text-primary);font-size:var(--font-size-s);font-weight:600;white-space:nowrap}.slider-trend.is-active{border-style:solid;background:color-mix(in oklch,var(--trend) 18%,transparent)}.slider-trend-icon{font-size:1rem;color:var(--trend)}.slider-trend.is-active .slider-trend-icon{animation:slider-trend-nudge 1.6s ease-in-out infinite}.slider-trend-to{font-weight:500;color:var(--color-text-secondary)}@keyframes slider-trend-nudge{0%,to{transform:translate(0)}50%{transform:translate(var(--nudge, 2px))}}.slider-lane{position:relative;height:10px;margin-bottom:-6px}.slider-lane.is-falling{--nudge: -2px}.slider-lane-rail{position:absolute;top:3px;height:4px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--trend) 0 6px,transparent 6px 11px);opacity:.55}.slider-lane.is-active .slider-lane-rail{animation:slider-lane-march 1.2s linear infinite}.slider-lane.is-active.is-falling .slider-lane-rail{animation-direction:reverse}@keyframes slider-lane-march{0%{background-position:0 0}to{background-position:11px 0}}.slider-lane-done{position:absolute;top:3px;height:4px;border-radius:2px;background:var(--trend)}.slider-lane-head{position:absolute;top:0;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent}.slider-lane.is-rising .slider-lane-head{margin-left:-9px;border-left:9px solid var(--trend)}.slider-lane.is-falling .slider-lane-head{margin-left:0;border-right:9px solid var(--trend)}.slider-end{position:absolute;top:50%;width:3px;height:24px;margin-left:-1.5px;transform:translateY(-50%);border-radius:2px;background:var(--trend);box-shadow:0 0 0 1px var(--color-surface);pointer-events:none;z-index:1}.slider-end:after{content:"";position:absolute;left:50%;bottom:-5px;width:9px;height:9px;transform:translate(-50%);border-radius:50%;border:2px solid var(--trend);background:var(--color-surface);box-sizing:border-box}.slider-end-to:after{background:var(--trend)}.slider-ends{position:relative;height:30px;margin-top:2px}.slider-end-label{position:absolute;top:0;display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.slider-end-label b{font-family:var(--font-display);font-size:var(--font-size-s);font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.slider-end-label.align-start{transform:translate(-6px)}.slider-end-label.align-end{transform:translate(calc(-100% + 6px))}.slider-end-label.align-center{transform:translate(-50%)}.range-slider-container.has-transition{margin-bottom:var(--spacing-s)}@media (prefers-reduced-motion: reduce){.slider-trend.is-active .slider-trend-icon,.slider-lane.is-active .slider-lane-rail{animation:none}}@media (max-width: 480px){.slider-trend-to{display:none}}.slider-trend.slider-auto{border-style:solid;border-color:color-mix(in oklch,var(--trend) 45%,transparent);background:color-mix(in oklch,var(--trend) 8%,transparent)}.slider-trend.slider-auto.is-palette{--trend: var(--color-accent)}.slider-dots{position:relative;height:14px;margin-bottom:-4px}.slider-dot{position:absolute;top:2px;width:10px;height:10px;margin-left:-5px;border-radius:50%;border:1.5px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-border),0 1px 2px #00000040}.slider-dot.is-lifted{top:-6px}.location-lights-container{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.lights-controls-row{display:flex;gap:var(--spacing-s);align-items:center;margin-bottom:var(--spacing-s)}.light-selector{flex-grow:1;max-width:360px}.power-button-small{display:grid;place-items:center;width:46px;height:46px;border-radius:var(--border-radius-m);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--dur) var(--ease-out)}.power-button-small:hover{border-color:var(--accent-border);color:var(--color-accent)}.power-button-small.on{background:var(--gradient-accent);color:var(--color-accent-contrast);border-color:transparent;box-shadow:var(--glow-accent)}.power-button-small:active{transform:scale(.93)}.power-icon-small{font-size:24px}.location-controls-section{padding:var(--spacing-l);transition:opacity var(--dur),filter var(--dur)}.location-controls-section.disabled{opacity:.45;filter:grayscale(.6);pointer-events:none}.location-automation-section{padding:var(--spacing-s) var(--spacing-l)}.location-automation-section>*{padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted)}.location-automation-section>*:last-child{border-bottom:none;padding-bottom:0}.location-automation-section.palette-active>*:last-child{border-bottom:1px solid var(--color-border-muted);padding-bottom:var(--spacing-s)}.location-automation-section h3{margin:0 0 var(--spacing-m);font-size:var(--font-size-l);color:var(--color-text-primary)}.location-automation-section.disabled{opacity:.45;pointer-events:none}.location-automation-row{padding:var(--spacing-s) 0}.timer-wrapper{position:relative;display:grid;place-items:center;width:40px;height:40px}.timer-text{position:absolute;font-size:.75rem;font-weight:600;color:var(--color-text-primary)}.timer-wrapper .card-timer-text{font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1;color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.timer-wrapper .card-timer-text.mid{font-size:12px}.timer-wrapper .card-timer-text.long{font-size:10px;letter-spacing:-.03em}.automation-row-content{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m)}.automation-text{display:flex;flex-direction:column;gap:3px;min-width:0}.automation-label{font-size:var(--font-size-m);font-weight:500;color:var(--color-text-primary)}.automation-subtext{font-size:var(--font-size-s);color:var(--color-text-secondary)}.automation-actions{display:flex;align-items:center;gap:var(--spacing-s);flex-shrink:0}.keep-on-btn{min-height:34px;padding:6px 14px;font-size:var(--font-size-s);border-radius:var(--radius-pill)}.status-blink{animation:ha-pulse-soft 2s infinite ease-in-out;color:var(--color-accent)}.location-light-automation-status{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) 0;color:var(--color-text-primary);font-size:var(--font-size-m);font-weight:500;flex-wrap:wrap}.location-light-status-value{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--color-accent);font-weight:600}.location-light-status-icon{font-size:1.15rem}.dynamic-palette-config{display:flex;flex-direction:column;gap:var(--spacing-m);margin-top:var(--spacing-m);padding:var(--spacing-m);background:var(--color-surface);border:1px solid var(--color-border-muted);border-bottom:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);animation:ha-fade-up var(--dur) var(--ease-out) backwards}.palette-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-m)}.palette-col{display:flex;flex-direction:column;gap:6px}.palette-select{min-height:40px;padding:.5rem 2.2rem .5rem .8rem;font-size:var(--font-size-s)}.palette-slider-wrapper{margin-top:var(--spacing-xs)}.palette-live-status{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-m) 0;border-top:1px dashed var(--color-border)}.palette-countdown{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-m);border-radius:var(--border-radius-m);background:var(--color-surface-2);border:1px solid var(--color-border-muted);font-size:var(--font-size-m)}.palette-countdown strong{margin-left:auto;margin-right:var(--spacing-s);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-l);font-variant-numeric:tabular-nums}.palette-skip-btn{min-height:34px;padding:6px 12px;font-size:var(--font-size-s)}.palette-device-status-list{display:flex;flex-direction:column;gap:var(--spacing-s)}.palette-device-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-m);border-radius:var(--border-radius-m);background:var(--color-surface-2);border:1px solid var(--color-border-muted)}.palette-device-name{flex:1;min-width:0;font-size:var(--font-size-s);font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-color-preview{display:flex;align-items:center;gap:var(--spacing-s);min-width:0}.palette-color-label{max-width:70px;font-size:var(--font-size-s);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-color-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-border),0 0 10px -2px currentColor}.palette-arrow{color:var(--color-text-muted);font-size:var(--font-size-s)}.palette-non-rgb{font-style:italic;font-size:var(--font-size-s);color:var(--color-text-secondary)}.palette-warning-badge{padding:3px 8px;border-radius:var(--radius-pill);background:color-mix(in oklch,var(--color-orange) 15%,transparent);color:var(--color-orange);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}@media (max-width: 768px){.location-lights-container{background:transparent;border:none;box-shadow:none;padding:0}.location-controls-section{padding:var(--spacing-m)}.location-automation-section{padding:var(--spacing-xs) var(--spacing-m)}.palette-col--full{grid-column:1 / -1}}@media (max-width: 350px){.palette-color-label{display:none}}.location-light-status-window{font-size:var(--font-size-s);font-weight:500;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.location-light-profiles{display:flex;flex-direction:column}.location-light-profiles .location-light-automation-status+.location-light-automation-status{padding-top:0}.location-automation-card{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-m);transition:transform var(--dur) var(--ease-out),border-color var(--dur),box-shadow var(--dur)}@media (hover: hover){.location-automation-card:hover{transform:translateY(-2px);border-color:var(--accent-border);box-shadow:var(--shadow-m)}}.automation-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--gradient-accent-soft);color:var(--color-accent);font-size:24px;flex-shrink:0}.automation-content{flex:1;min-width:0}.automation-title{margin:0 0 3px;font-family:var(--font-display);font-size:1.02rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.automation-description{margin:0;font-size:var(--font-size-s);line-height:1.4;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.automation-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.automation-title-btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.automation-order{display:flex;flex-direction:column;gap:2px;opacity:.55;transition:opacity var(--dur)}.location-automation-card:hover .automation-order,.automation-order:focus-within{opacity:1}.automation-order-btn{display:grid;place-items:center;width:26px;height:20px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:color var(--dur),background var(--dur),opacity var(--dur)}.automation-order-btn:hover:not(:disabled){color:var(--color-accent);background:var(--accent-soft)}.automation-order-btn:disabled{opacity:.25;cursor:default}@media (hover: none){.automation-order{opacity:1}}@media (max-width: 768px){.automation-order{display:none}}.automation-routines{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.automation-routine-chip{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:2px 10px;border:1px solid var(--accent-border);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--color-accent);font-size:var(--font-size-s);font-weight:600;cursor:pointer;transition:background var(--dur),color var(--dur)}.automation-routine-chip:hover{background:var(--color-accent);color:var(--color-accent-contrast)}.automation-routine-chip svg{font-size:1rem}.automation-routine-chip.is-off{border-style:dashed;border-color:var(--color-border);background:transparent;color:var(--color-text-secondary)}.automation-routine-chip.is-off:hover{background:var(--color-surface);color:var(--color-text-primary)}.location-automation-container{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.automation-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-m)}.add-automation-btn{background:transparent;border:1px dashed var(--color-border);color:var(--color-text-secondary);font-weight:500}.add-automation-btn:hover{border-color:var(--color-accent);border-style:solid;color:var(--color-accent);background:var(--accent-soft)}.automation-list{display:flex;flex-direction:column;gap:var(--spacing-s)}.automation-actions-footer{display:flex;gap:12px;justify-content:flex-end;padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted)}@media (max-width: 768px){.location-automation-container{background:transparent;border:none;box-shadow:none;padding:0}}.location-settings-container{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.location-settings-section-divider{height:1px;background:var(--color-border-muted)}.location-settings-group{display:flex;flex-direction:column;gap:var(--spacing-l);margin-top:var(--spacing-s)}.location-setting-item{display:flex;flex-direction:column;gap:12px}.location-setting-item label{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m)}.location-setting-label{font-size:1rem;font-weight:500;color:var(--color-text-primary)}.location-setting-value{min-width:50px;text-align:right;font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--color-accent);font-variant-numeric:tabular-nums}.location-setting-description{margin-top:2px;font-size:.85rem;line-height:1.4;color:var(--color-text-secondary)}.location-setting-info{display:flex;flex-direction:column;gap:4px}.location-settings-selector{flex-grow:1;max-width:350px}.btn-icon{display:grid;place-items:center;width:40px;height:40px;border:none;border-radius:50%;background:transparent;color:var(--color-accent);cursor:pointer;transition:background var(--dur),transform var(--dur-fast)}.btn-icon:hover{background:var(--accent-soft)}.btn-icon:active{transform:scale(.92)}.btn-icon svg{font-size:1.4rem}.setting-toggle label{flex-direction:row;gap:16px;align-items:center;justify-content:space-between}.location-settings-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:var(--spacing-m);padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted)}.location-name-section,.floor-section{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.name-control,.floor-control{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.name-display{font-size:1rem;font-weight:600;color:var(--color-text-primary)}.location-name-error{margin:0;color:var(--color-red);font-size:.85rem;font-weight:500}.name-input{flex:1;max-width:300px;min-height:40px;padding:6px 12px;font-size:.95rem}.floor-select{flex:1;max-width:220px}.connected-section{margin:0;padding:0;border:none;min-width:0}.connected-section legend{padding:0}.connected-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--spacing-s)}.connected-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 14px 6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-primary);font-size:.95rem;cursor:pointer;transition:border-color var(--dur),background var(--dur)}.connected-chip:hover{border-color:var(--accent-border)}.connected-chip.checked{border-color:var(--color-accent);background:var(--accent-soft);font-weight:600}.connected-chip input{width:18px;height:18px;margin:0;accent-color:var(--color-accent);cursor:pointer}.connected-chip:focus-within{box-shadow:var(--focus-ring)}.connected-chip-note{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:400}.location-settings-section-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.location-setting-subtitle{margin:var(--spacing-m) 0 var(--spacing-xs);font-size:.95rem;font-weight:600;color:var(--color-text-primary)}.location-setting-subtitle:first-of-type{margin-top:var(--spacing-s)}.location-setting-label-sub{font-size:.9rem;font-weight:400;color:var(--color-text-secondary)}.profile-header{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.profile-status-description{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--font-size-m);color:var(--color-text-primary)}.profile-status-description strong{color:var(--color-accent)}.profile-status-description.blinking strong{animation:ha-pulse-soft 2s infinite ease-in-out}.profile-status-description svg{font-size:1.25rem;color:var(--color-accent)}.sun-timeline-container{margin:0;padding:var(--spacing-m) var(--spacing-m) var(--spacing-s);border-radius:var(--border-radius-l);background:var(--color-surface-2);border:1px solid var(--color-border-muted)}.timeline-labels{display:flex;justify-content:space-between;padding:0 6px;font-size:1.4rem}.timeline-track-wrapper{position:relative;height:44px;margin-bottom:10px}.timeline-track{position:absolute;top:50%;left:0;right:0;height:6px;transform:translateY(-50%);border-radius:6px;opacity:.9;box-shadow:inset 0 1px 2px #00000040}.timeline-marker{position:absolute;top:50%;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);z-index:2}.marker-icon{display:grid;place-items:center;padding:3px;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border-muted);color:var(--color-text-primary);font-size:1.1rem;box-shadow:var(--shadow-s)}.marker-dot{width:9px;height:9px;border-radius:50%;background:var(--color-text-primary);border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-border)}.marker-time{margin-top:10px;font-size:.72rem;font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.current-time-indicator{position:absolute;width:3px;height:16px;border-radius:3px;background:var(--color-accent);transform:translateY(14px);box-shadow:0 0 10px color-mix(in oklch,var(--color-accent) 80%,transparent);z-index:5;pointer-events:none}.transition-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-m);margin:0}.transition-group{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m) var(--spacing-l)}.transition-group h5{margin:0 0 4px;font-size:.95rem;color:var(--color-text-primary)}.control-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m)}.control-label{font-size:.85rem;color:var(--color-text-secondary)}.time-select{min-height:40px;padding:.5rem 2.2rem .5rem .8rem}.appearance-anchors{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-m)}.anchor-column{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-m) var(--spacing-l)}.anchor-header{display:flex;align-items:center;gap:10px;margin-bottom:var(--spacing-xs);font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--color-text-primary)}.anchor-header svg{width:36px;height:36px;padding:7px;border-radius:10px;color:var(--color-yellow);background:color-mix(in oklch,var(--color-yellow) 15%,transparent)}.anchor-column:last-child .anchor-header svg{color:var(--color-accent);background:var(--accent-soft)}.anchor-setting{display:flex;flex-direction:column;gap:8px}.anchor-label{display:flex;justify-content:space-between;font-size:.85rem;color:var(--color-text-secondary)}.anchor-value{font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.anchor-slider{width:100%;height:8px;border-radius:8px;background:var(--color-border-muted);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.anchor-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--color-accent);box-shadow:0 2px 6px #00000040;cursor:pointer;transition:transform var(--dur-fast)}.anchor-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--color-accent);box-shadow:0 2px 6px #00000040;cursor:pointer}.anchor-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.anchor-slider.temp-slider{background:transparent;height:8px}.anchor-slider.temp-slider::-webkit-slider-runnable-track{height:8px;border-radius:8px;background:linear-gradient(to right,#ffb35c,#fff1d6,#bfe0ff)!important}.anchor-slider.temp-slider::-moz-range-track{height:8px;border-radius:8px;background:linear-gradient(to right,#ffb35c,#fff1d6,#bfe0ff)!important}.anchor-slider.temp-slider::-webkit-slider-thumb{margin-top:-7px}.exposure-section{padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted);transition:opacity var(--dur)}.feedback-item{display:flex;flex-direction:column;gap:4px}.feedback-value{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-accent);font-variant-numeric:tabular-nums}.helper-text{margin-top:4px;font-size:.8rem;font-style:italic;color:var(--color-text-secondary)}.helper-text.left{opacity:1}.helper-text.right{opacity:0}@media (max-width: 768px){.location-settings-container{background:transparent;border:none;box-shadow:none;padding:0}.profile-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-s)}.transition-controls,.appearance-anchors{grid-template-columns:1fr;gap:var(--spacing-m)}.transition-group,.anchor-column{padding:var(--spacing-m)}.time-select{max-width:130px}.feedback-item{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.helper-text.left{display:none}.helper-text.right{opacity:1}.location-settings-actions>*{flex:1}}.location-remove-section{margin-top:var(--spacing-l);padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-m)}.location-remove-section .location-setting-info{flex:1 1 260px}.smart-switch-panel{display:flex;flex-direction:column}.smart-switch-main-content{display:flex;flex-direction:column;gap:var(--spacing-l);transition:opacity var(--dur),filter var(--dur)}.smart-switch-main-content.disabled-content{opacity:.45;filter:grayscale(100%);pointer-events:none}.smart-switch-controls-section{padding:var(--spacing-l)}.smart-switch-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--spacing-m)}.smart-switch-automation-section{padding:var(--spacing-s) var(--spacing-l)}.smart-switch-automation-section>*{padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted)}.smart-switch-automation-section>*:last-child{border-bottom:none;padding-bottom:0}.sound-control-container{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.sound-select-wrapper{display:flex;align-items:center;gap:12px}.music-icon{font-size:1.25rem;color:var(--color-accent)}.sound-select{flex-grow:1;max-width:350px}.sound-player-row{display:flex;align-items:center;gap:16px;width:100%}.play-button{display:grid;place-items:center;width:52px;height:52px;border:none;border-radius:50%;background:var(--gradient-accent);color:var(--color-accent-contrast);cursor:pointer;flex-shrink:0;box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-accent) 85%,transparent);transition:transform var(--dur-fast),box-shadow var(--dur),background var(--dur)}.play-button:hover{transform:scale(1.05);box-shadow:var(--glow-accent)}.play-button:active{transform:scale(.94)}.play-button.stop{background:var(--color-red);color:#fff;box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-red) 85%,transparent)}.play-icon{font-size:1.25rem}.timeline{display:flex;align-items:center;gap:10px;flex:1}.timeline-bar{flex:1;height:6px;border-radius:6px;background:var(--color-border-muted);overflow:hidden}.timeline-progress{height:100%;background:var(--gradient-accent);border-radius:6px;transition:width .2s linear}.time-current,.time-total{min-width:38px;text-align:center;font-size:13px;font-weight:500;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}@media (max-width: 768px){.smart-switch-controls-section,.sound-control-container{padding:var(--spacing-m)}.smart-switch-automation-section{padding:var(--spacing-xs) var(--spacing-m)}.smart-switch-sensor-grid{gap:var(--spacing-s)}}.mz-panel{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.mz-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s);padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted);flex-wrap:wrap}.mz-header-left{display:flex;align-items:center;gap:var(--spacing-s);min-width:0}.mz-icon{width:42px;height:42px;padding:8px;border-radius:12px;font-size:1.8rem;color:var(--color-accent);background:var(--accent-soft);flex-shrink:0}.mz-title{margin:0;font-size:var(--font-size-l);line-height:1.2;color:var(--color-text-primary)}.mz-subtitle{font-size:var(--font-size-s);color:var(--color-text-secondary)}.mz-state-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-size:var(--font-size-s);font-weight:600;color:var(--badge-color, var(--color-text-secondary));background:color-mix(in srgb,var(--badge-color, currentColor) 12%,transparent);border:1px solid color-mix(in srgb,var(--badge-color, currentColor) 30%,transparent)}.mz-state-dot{width:7px;height:7px;border-radius:50%;background:var(--badge-color, var(--color-text-secondary));box-shadow:0 0 8px var(--badge-color, transparent);animation:ha-pulse-soft 2s infinite}.mz-power-card{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-m);transition:border-color var(--dur),box-shadow var(--dur)}.mz-power-card.on{border-color:var(--accent-border);box-shadow:var(--glow-accent)}.mz-power-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:var(--border-radius-l);font-size:1rem;color:#fff;flex-shrink:0}.mz-power-btn.off{background:var(--color-green);box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-green) 85%,transparent)}.mz-power-btn.on{background:var(--color-red);box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-red) 85%,transparent)}.mz-power-btn,.mz-step-btn{cursor:pointer;transition:transform var(--dur),filter var(--dur)}.mz-power-btn:hover:not(:disabled),.mz-step-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06)}.mz-power-btn:disabled,.mz-step-btn:disabled,.mz-mute-btn:disabled,.mz-chip:disabled{cursor:not-allowed}.mz-power-btn:disabled{background:var(--color-border);color:var(--color-text-secondary);box-shadow:none}.mz-power-icon{font-size:1.4rem}.mz-now{display:flex;flex-direction:column;min-width:0}.mz-label,.mz-section-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.mz-value{font-size:var(--font-size-m);font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mz-uptime{display:inline-flex;align-items:center;gap:5px;margin-top:2px;font-size:.8rem;color:var(--color-text-secondary)}.mz-hint{margin:0;font-size:var(--font-size-s);color:var(--color-text-secondary)}.mz-section{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m) var(--spacing-l);transition:opacity var(--dur)}.mz-section.disabled{opacity:.55}.mz-section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s)}.mz-volume-row{display:flex;align-items:center;gap:var(--spacing-s);transition:opacity var(--dur),filter var(--dur)}.mz-volume-row.muted .mz-slider{opacity:.4;filter:grayscale(100%)}.mz-slider{flex:1;min-width:0}.mz-step-btn{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;font-size:1.3rem;flex-shrink:0}.mz-mute-btn{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:4px 12px;border:1px solid var(--color-border-muted);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:500;cursor:pointer;transition:all var(--dur)}.mz-mute-btn:hover:not(:disabled){background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.mz-mute-btn.muted{background:var(--color-red);color:#fff;border-color:transparent}.mz-chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-s)}.mz-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--border-radius-l);background:var(--color-surface);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:all var(--dur)}.mz-chip:hover:not(:disabled){border-color:var(--accent-border)}.mz-chip.active{background:var(--gradient-accent);border-color:transparent;color:var(--color-accent-contrast);box-shadow:0 6px 16px -8px color-mix(in oklch,var(--color-accent) 80%,transparent)}.mz-chip-name{font-size:.9rem;font-weight:600;line-height:1.2}.mz-chip-code{font-size:var(--font-size-xs);opacity:.75}.mz-now-playing{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-s) var(--spacing-m);border:1px solid var(--accent-border);border-radius:var(--border-radius-l);background:var(--color-surface);box-shadow:var(--glow-accent)}.mz-now-playing-text{display:flex;flex-direction:column;min-width:0}.mz-now-song{font-size:var(--font-size-s);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mz-station-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.mz-station{display:flex;align-items:center;gap:4px;padding-right:6px;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);background:var(--color-surface);transition:border-color var(--dur),box-shadow var(--dur)}.mz-station:hover{border-color:var(--accent-border)}.mz-station.playing{border-color:var(--accent-border);box-shadow:var(--glow-accent)}.mz-station-play{display:flex;align-items:center;gap:var(--spacing-m);flex:1;min-width:0;min-height:60px;padding:8px 12px;border:none;border-radius:var(--border-radius-l);background:transparent;color:var(--color-text-primary);text-align:left;cursor:pointer;box-shadow:none}.mz-station-play:hover:not(:disabled){background:var(--accent-soft);transform:none}.mz-station-play:disabled{cursor:not-allowed}.mz-station-text{display:flex;flex-direction:column;flex:1;min-width:0}.mz-station-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mz-station-state{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-s);font-weight:600;color:var(--color-accent)}.mz-station-state svg{font-size:1.1rem}.mz-station-play-icon{flex-shrink:0;font-size:1.5rem;color:var(--color-accent)}.mz-mute-btn.editing{border-color:var(--accent-border);color:var(--color-accent)}.mz-station-tools{display:flex;gap:2px;flex-shrink:0}.mz-icon-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);font-size:1.1rem;cursor:pointer;box-shadow:none}.mz-icon-btn:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text-primary);transform:none}.mz-icon-btn.remove:hover:not(:disabled){color:var(--color-red)}.mz-icon-btn:disabled{opacity:.35;cursor:not-allowed}.mz-search-bar{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 16px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;box-shadow:none}.mz-search-bar:hover:not(:disabled){border-color:var(--accent-border);color:var(--color-text-primary);transform:none}.mz-search-bar:disabled{cursor:not-allowed}.mz-search-bar svg{font-size:1.3rem}.station-logo{display:grid;place-items:center;flex-shrink:0;overflow:hidden;border-radius:10px;background:var(--color-surface-2);color:var(--color-accent);border:1px solid var(--color-border-muted)}.station-logo-m{width:44px;height:44px;font-size:1.4rem}.station-logo-l{width:56px;height:56px;font-size:1.8rem}.station-logo img{width:100%;height:100%;object-fit:cover;background:#babec4}.radio-search-form{display:flex;flex-direction:column;gap:6px}.radio-search-label{font-size:var(--font-size-s);font-weight:600;color:var(--color-text-primary)}.radio-search-field{position:relative;display:flex;align-items:center}.radio-search-icon{position:absolute;left:14px;font-size:1.3rem;color:var(--color-text-secondary);pointer-events:none}.radio-search-input{width:100%;min-height:46px;padding:10px 14px 10px 44px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-primary);font-size:1rem}.radio-search-status{display:flex;align-items:center;gap:6px;margin:var(--spacing-s) 0;min-height:1.2em;font-size:var(--font-size-s);color:var(--color-text-secondary)}.radio-search-status.error{color:var(--color-red)}.radio-results{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.radio-result{display:flex;align-items:center;gap:var(--spacing-m);width:100%;min-height:58px;padding:6px 10px;border:1px solid transparent;border-radius:var(--border-radius-l);background:transparent;color:var(--color-text-primary);text-align:left;cursor:pointer;box-shadow:none}.radio-result:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-soft);transform:none}.radio-result:disabled{cursor:default}.radio-result-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radio-result-action{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:var(--font-size-s);font-weight:600;color:var(--color-accent)}.radio-result.saved .radio-result-action{color:var(--color-text-secondary)}@media (max-width: 768px){.mz-panel,.mz-section{padding:var(--spacing-m)}.mz-power-card{flex-direction:column;align-items:stretch}.mz-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.automation-content-container{display:flex;flex-direction:column;padding:var(--spacing-xl)}.automation-header-section{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-m);margin-bottom:var(--spacing-m)}.automation-header-info h1{display:flex;align-items:center;gap:10px;margin:0 0 var(--spacing-xs);font-size:var(--font-size-xl);color:var(--color-text-primary)}.automation-header-info p{margin:0;color:var(--color-text-secondary)}.title-edit-icon{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;background:none;font:inherit;display:flex;align-items:center;margin-left:var(--spacing-s);padding:6px;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;transition:color var(--dur),background var(--dur)}.title-edit-icon:hover{color:var(--color-accent);background:var(--accent-soft)}.title-edit-container{display:flex;align-items:center;gap:6px}.title-edit-description{font-size:var(--font-size-m);color:var(--color-text-secondary)}.automation-title-input{flex-grow:1;max-width:400px;font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;padding:4px 10px;min-height:44px}.title-edit-btn{display:grid;place-items:center;padding:6px;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:background var(--dur)}.title-edit-btn.save{color:var(--color-green)}.title-edit-btn.cancel{color:var(--color-red)}.title-edit-btn:hover{background:var(--color-surface-2)}.automation-section{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:var(--spacing-l)}.automation-section+.automation-section{padding-top:var(--spacing-l);border-top:1px solid var(--color-border-muted)}.section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s);margin-bottom:var(--spacing-m);flex-wrap:wrap}.section-header h2{margin:0;font-size:var(--font-size-l);font-weight:600;color:var(--color-text-primary)}.add-item-container{position:relative;display:flex;align-items:center;gap:var(--spacing-s)}.add-item-select{width:170px;min-height:40px;padding:.5rem 2.2rem .5rem .75rem;font-size:var(--font-size-s)}.add-btn{display:grid;place-items:center;width:36px;height:36px;border:none;border-radius:50%;background:var(--gradient-accent);color:var(--color-accent-contrast);cursor:pointer;box-shadow:0 6px 16px -8px color-mix(in oklch,var(--color-accent) 80%,transparent);transition:transform var(--dur-fast),box-shadow var(--dur)}.add-btn svg{font-size:1.25rem}.add-btn:hover:not(:disabled){transform:scale(1.06);box-shadow:var(--glow-accent)}.add-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.automation-items-list{display:flex;flex-direction:column;gap:var(--spacing-m)}.automation-items-list{gap:var(--spacing-s)}.automation-item{display:flex;gap:var(--spacing-m);align-items:flex-start;padding:var(--spacing-m) var(--spacing-l);background:var(--color-surface-2);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);animation:ha-fade-up var(--dur) var(--ease-out) backwards;transition:border-color var(--dur)}.automation-item:focus-within{border-color:var(--accent-border)}.automation-item.error{color:var(--color-red);font-weight:600;border-color:color-mix(in oklch,var(--color-red) 40%,transparent)}.item-content{flex-grow:1;display:flex;flex-direction:column;gap:var(--spacing-s);min-width:0}.item-editor{display:flex;flex-direction:column;gap:var(--spacing-s)}.item-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s)}.item-label{font-family:var(--font-display);font-weight:600;color:var(--color-text-primary);font-size:1.05rem}.delete-btn{display:grid;place-items:center;padding:6px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:color var(--dur),background var(--dur)}.delete-btn:hover{color:var(--color-red);background:color-mix(in oklch,var(--color-red) 12%,transparent)}.item-header-tools{display:flex;align-items:center;gap:2px}.order-btn{display:grid;place-items:center;padding:6px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:color var(--dur),background var(--dur),opacity var(--dur)}.order-btn:hover:not(:disabled){color:var(--color-accent);background:color-mix(in oklch,var(--color-accent) 12%,transparent)}.order-btn:disabled{opacity:.3;cursor:default}.item-step{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:var(--spacing-s);border-radius:50%;background:color-mix(in oklch,var(--color-accent) 16%,transparent);color:var(--color-accent);font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:700;vertical-align:middle}.editor-row{display:flex;align-items:center;gap:var(--spacing-m);flex-wrap:wrap}.editor-input,.editor-select{flex:1;min-width:180px;max-width:350px}.editor-unit{color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:500}.mode-chip-row{display:flex;gap:var(--spacing-s);flex-wrap:wrap}.mode-chip{padding:.55rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--dur)}.mode-chip:hover{border-color:var(--accent-border);color:var(--color-accent)}.mode-chip.active{background:var(--gradient-accent);border-color:transparent;color:var(--color-accent-contrast);box-shadow:0 6px 16px -8px color-mix(in oklch,var(--color-accent) 80%,transparent)}.automation-edit-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted)}.delete-automation-btn{margin-right:auto}.dynamic-info-box{display:flex;flex-direction:column;gap:var(--spacing-s);margin-top:var(--spacing-xs);padding:var(--spacing-s) var(--spacing-m);background:var(--color-surface);border-radius:var(--border-radius-m)}.dynamic-info-description{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-s)}.dynamic-state-description{margin:0;font-size:var(--font-size-s);color:var(--color-text-primary)}.dynamic-state-description strong{color:var(--color-accent)}.dynamic-state-description.blinking strong{animation:ha-pulse-soft 2s infinite ease-in-out}.dynamic-values{display:flex;gap:var(--spacing-m);flex-wrap:wrap}.dynamic-value-item{display:inline-flex;align-items:baseline;gap:8px}.dynamic-value-item+.dynamic-value-item{padding-left:var(--spacing-m);border-left:1px solid var(--color-border-muted)}.dynamic-value-item .value{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.switch-container{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-container input{display:none}.switch-slider{position:relative;width:42px;height:24px;border-radius:24px;background:var(--color-border);transition:background var(--dur)}.switch-slider:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform var(--dur) var(--ease-spring)}.switch-container input:checked+.switch-slider{background:var(--gradient-accent)}.switch-container input:checked+.switch-slider:after{transform:translate(18px)}.switch-label{font-size:var(--font-size-m);color:var(--color-text-primary)}.adorned-input-container{display:flex;align-items:center;width:fit-content;min-width:150px;overflow:hidden;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--border-radius-m);transition:border-color var(--dur),box-shadow var(--dur)}.adorned-input-container:focus-within{border-color:var(--color-accent);box-shadow:var(--focus-ring)}.adorned-input-field{flex-grow:1;width:78px;min-height:42px;padding:8px 12px;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-m);font-weight:600;text-align:center;outline:none;font-variant-numeric:tabular-nums}.adorned-input-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;align-self:stretch;min-height:42px;padding:0 1.9rem 0 12px;line-height:1.2;border:none;border-left:1px solid var(--color-border);background-color:color-mix(in oklch,var(--color-text-primary) 4%,transparent);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right .6rem center;background-size:14px;color:var(--color-text-primary);font-size:var(--font-size-s);font-weight:500;cursor:pointer;outline:none}.automation-toggle-section{padding:var(--spacing-xs) 0}.automation-toggle-section-auto-off{margin:var(--spacing-s) 0;padding:var(--spacing-xs) 0;border-top:1px dashed var(--color-border-muted)}.condition-explanation{margin:0;font-size:.85rem;line-height:1.5;color:var(--color-text-secondary)}.condition-explanation strong{color:var(--color-text-primary)}.condition-verdict{display:flex;align-items:flex-start;gap:8px;margin:0;padding-top:var(--spacing-s);border-top:1px dashed var(--color-border-muted);font-size:.85rem;font-weight:500;line-height:1.5;color:var(--color-text-primary)}.condition-verdict:before{content:"";width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--color-text-muted);flex-shrink:0}.condition-verdict.met:before{background:var(--color-green);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-green) 22%,transparent)}.condition-verdict.not-met:before{background:var(--color-orange);box-shadow:0 0 0 3px color-mix(in oklch,var(--color-orange) 22%,transparent)}@media (max-width: 768px){.automation-content-container{background:transparent;border:none;box-shadow:none;padding:0}.automation-section{background:var(--color-surface);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl);padding:var(--spacing-m);margin-bottom:var(--spacing-m)}.automation-section+.automation-section{padding-top:var(--spacing-m)}.automation-item{padding:var(--spacing-m)}.dynamic-values{gap:4px var(--spacing-m)}.dynamic-value-item+.dynamic-value-item{padding-left:0;border-left:none}.automation-header-info h1{font-size:var(--font-size-l)}.editor-input,.editor-select{min-width:0;width:100%;max-width:none}.automation-edit-footer>*{flex:1 1 auto}.delete-automation-btn{flex-basis:100%;margin-right:0}}.time-range-row{flex-wrap:wrap;align-items:center;gap:var(--spacing-s)}.time-range-label{font-weight:600;color:var(--color-text-secondary)}.time-range-row .editor-input{flex:1 1 120px;min-width:0}.location-page{max-width:var(--content-max);margin:0 auto;min-height:100vh;padding-bottom:calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px)}.location-header{padding:var(--spacing-m) var(--spacing-m) var(--spacing-s)}.location-header h1{margin:0;font-size:var(--font-size-xxl);color:var(--color-text-primary);letter-spacing:-.03em}.location-content{padding:0 var(--spacing-m) var(--spacing-m)}.location-section{background:var(--color-surface);border:1px solid var(--color-border-muted);border-radius:var(--radius-xl);padding:var(--spacing-m);margin-bottom:var(--spacing-m)}.location-section h3{margin:0 0 var(--spacing-m);padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted);color:var(--color-text-primary)}.location-section p{color:var(--color-text-secondary)}.desktop-layout{display:flex;flex-direction:column;gap:var(--spacing-l);max-width:var(--content-max);margin:0 auto}.grid-item{height:100%;animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.grid-item:nth-child(2){animation-delay:.06s}.grid-item:nth-child(3){animation-delay:.12s}.grid-item:nth-child(4){animation-delay:.18s}.grid-item:nth-child(5){animation-delay:.24s}@media (min-width: 769px){.location-page{padding-top:calc(var(--nav-height) + 28px);padding-bottom:48px}.location-header{padding:var(--spacing-s) var(--spacing-m) var(--spacing-m)}}.device-info-container{padding:var(--spacing-l)}.device-info-container>h3{padding-bottom:var(--spacing-s);margin-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted)}.device-info-container>p{margin-bottom:var(--spacing-s)}.device-info-grid{display:flex;flex-direction:column}.device-info-row{display:flex;align-items:center;gap:var(--spacing-m);padding:10px 0;border-bottom:1px solid var(--color-border-muted)}.device-info-row:last-child{border-bottom:none}.device-info-label{width:150px;flex-shrink:0;color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600;letter-spacing:.02em}.device-info-value{flex:1;color:var(--color-text-primary);font-weight:500;font-size:var(--font-size-m);word-break:break-word}.device-info-container strong{color:var(--color-text-primary)}.device-info-value.device-info-online,.device-info-value.device-info-offline,.device-info-value.device-info-notconnected{flex:0 0 auto;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-s);font-weight:700}.device-info-value.device-info-online{color:var(--color-green);background:color-mix(in oklch,var(--color-green) 14%,transparent)}.device-info-value.device-info-offline{color:var(--color-red);background:color-mix(in oklch,var(--color-red) 14%,transparent);animation:ha-blink 1.3s ease-in-out infinite}.device-info-value.device-info-notconnected{color:var(--color-orange);background:color-mix(in oklch,var(--color-orange) 14%,transparent)}.device-info-container.device-info-disconnected .device-info-grid{opacity:.6}.device-info-container.device-info-disconnected .device-info-value.device-info-notconnected{opacity:1}@media (max-width: 768px){.device-info-container{padding:var(--spacing-m)}.device-info-label{width:110px}}.device-panel-container-light{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.light-main-content{display:flex;flex-direction:column;gap:var(--spacing-m);transition:opacity var(--dur),filter var(--dur)}.light-main-content.disabled-content,.disabled-content{opacity:.45;filter:grayscale(100%);pointer-events:none}.light-controls-section{padding:var(--spacing-l)}.light-automation-section{padding:var(--spacing-s) var(--spacing-l)}.light-automation-section>*{padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted)}.light-automation-section>*:last-child{border-bottom:none;padding-bottom:0}.light-automation-section.palette-active>*:last-child{border-bottom:1px solid var(--color-border-muted);padding-bottom:var(--spacing-s)}.palette-device-status{display:flex;flex-direction:column;gap:var(--spacing-s)}@media (max-width: 768px){.device-panel-container-light{background:transparent;border:none;box-shadow:none;padding:0}.light-controls-section{padding:var(--spacing-m)}.light-automation-section{padding:var(--spacing-xs) var(--spacing-m)}}.door-window-panel{display:flex;flex-direction:column}.door-window-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--spacing-m)}@media (max-width: 768px){.door-window-sensor-grid{gap:var(--spacing-s)}}.curtain-panel{display:flex;flex-direction:column}.curtain-controls-section{display:flex;flex-direction:column;gap:var(--spacing-l);padding:var(--spacing-l)}.curtain-visual{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-m)}.curtain-window{position:relative;width:100%;max-width:340px;height:170px;border-radius:var(--border-radius-m);overflow:hidden;border:4px solid var(--color-border);box-shadow:var(--shadow-m),inset 0 0 30px #00000026;--curtain-fabric: var(--color-accent)}.curtain-window-glass{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#6db3ff,#b9dcff 55%,#e9f5ff)}.curtain-window-glass:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.35) 0%,transparent 40%)}.curtain-drape{position:absolute;top:0;bottom:0;background-color:var(--curtain-fabric);background-image:repeating-linear-gradient(90deg,#00000047,#0000000d 7px,#ffffff2e,#0000000d 19px,#00000047 24px);transition:width .25s linear}.curtain-drape.left{left:0;border-right:2px solid rgba(0,0,0,.35)}.curtain-drape.right{right:0;border-left:2px solid rgba(0,0,0,.35)}.curtain-readout{display:flex;flex-direction:column;align-items:center;gap:2px}.curtain-percent{font-family:var(--font-display);font-size:var(--font-size-xxl);font-weight:700;line-height:1;letter-spacing:-.03em;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.curtain-status{font-size:var(--font-size-s);font-weight:500;color:var(--color-text-secondary)}.curtain-status.moving{color:var(--color-accent);font-weight:600;animation:ha-pulse-soft 1.4s ease-in-out infinite}.curtain-presets-row{display:flex;gap:4px;padding:4px;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border)}.curtain-preset-btn{flex:1;min-height:40px;padding:var(--spacing-s) var(--spacing-m);border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-s);cursor:pointer;transition:all var(--dur)}.curtain-preset-btn:hover{color:var(--color-text-primary);background:color-mix(in oklch,var(--color-text-primary) 6%,transparent)}.curtain-preset-btn.active{background:var(--gradient-accent);color:var(--color-accent-contrast);box-shadow:0 4px 12px -6px color-mix(in oklch,var(--color-accent) 80%,transparent)}.curtain-slider{padding-top:var(--spacing-xs)}@media (max-width: 768px){.curtain-controls-section{padding:var(--spacing-m);gap:var(--spacing-m)}}.pir-panel{display:flex;flex-direction:column}.pir-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--spacing-m)}@media (max-width: 768px){.pir-sensor-grid{gap:var(--spacing-s)}}.lux-panel{display:flex;flex-direction:column}.lux-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--spacing-m)}@media (max-width: 768px){.lux-sensor-grid{gap:var(--spacing-s)}}.bed-panel{display:flex;flex-direction:column}.bed-sensor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--spacing-m)}@media (max-width: 768px){.bed-sensor-grid{gap:var(--spacing-s)}}.device-panel-container{display:flex;flex-direction:column;gap:var(--spacing-l);padding:var(--spacing-l)}.device-panel-header,.device-panel-header-light{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m);padding-bottom:var(--spacing-s);margin-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted)}.header-power-toggle{display:flex;align-items:center}.header-power-toggle .toggle-switch-container{padding:0}.controls-section{display:flex;flex-direction:column;gap:var(--spacing-m)}.device-panel-wrapper{position:relative}.device-offline-banner,.device-disconnected-banner{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:var(--spacing-m);padding:10px 14px;border-radius:var(--border-radius-m);font-weight:600;color:#fff;animation:ha-pulse-soft 1.6s ease-in-out infinite}.device-offline-banner{background:var(--color-red);box-shadow:0 8px 20px -10px color-mix(in oklch,var(--color-red) 80%,transparent)}.device-disconnected-banner{background:var(--color-orange);color:#201308;box-shadow:0 8px 20px -10px color-mix(in oklch,var(--color-orange) 80%,transparent)}.device-panel-wrapper.device-offline .device-panel-content,.device-panel-wrapper.device-disconnected .device-panel-content{opacity:.45;filter:grayscale(100%);pointer-events:none;cursor:not-allowed;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.device-panel-container{background:transparent;border:none;box-shadow:none;padding:0;gap:var(--spacing-m)}}.fw-modal{display:flex;flex-direction:column;gap:var(--spacing-m);min-width:min(440px,80vw)}.fw-current{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-m);padding:var(--spacing-s) var(--spacing-m);background:var(--color-surface-2);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m)}.fw-current-label{color:var(--color-text-secondary);font-size:var(--font-size-s)}.fw-current-value{color:var(--color-text-primary);font-family:var(--font-mono);font-weight:600;font-size:var(--font-size-m)}.fw-intro{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-s);line-height:1.5}.fw-slots{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-m)}.fw-slot{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m);background:var(--color-surface-2);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);transition:border-color var(--dur),box-shadow var(--dur)}.fw-slot.has-file{border-color:var(--color-accent);box-shadow:0 0 0 1px color-mix(in oklch,var(--color-accent) 30%,transparent)}.fw-slot-head{display:flex;align-items:center;gap:var(--spacing-s)}.fw-slot-icon{font-size:1.3rem;color:var(--color-accent);flex-shrink:0}.fw-slot-title{flex:1;font-weight:600;color:var(--color-text-primary);font-size:var(--font-size-m)}.fw-slot-check{color:var(--color-green);font-size:1.2rem;animation:ha-pop var(--dur-slow) var(--ease-spring)}.fw-choose-btn{min-height:38px;padding:6px 12px;font-size:var(--font-size-s);font-weight:500}.fw-file-meta{font-size:var(--font-size-s);color:var(--color-text-primary);word-break:break-all}.fw-file-hint{font-size:var(--font-size-s);font-style:italic;color:var(--color-text-secondary)}.fw-progress{height:6px;border-radius:6px;background:var(--color-border-muted);overflow:hidden}.fw-progress-bar{height:100%;background:var(--gradient-accent);border-radius:6px;transition:width .15s}.fw-error{padding:var(--spacing-s) var(--spacing-m);border-radius:var(--border-radius-m);background:color-mix(in oklch,var(--color-red) 12%,transparent);border:1px solid color-mix(in oklch,var(--color-red) 30%,transparent);color:var(--color-red);font-size:var(--font-size-s)}.fw-status{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-m);border-radius:var(--border-radius-m);background:var(--color-surface-2);border:1px solid var(--color-border-muted);color:var(--color-text-primary);font-size:var(--font-size-s)}.fw-status-dot{width:10px;height:10px;border-radius:50%;background:var(--color-yellow);animation:ha-blink 1.2s ease-in-out infinite;flex-shrink:0}.fw-status.done .fw-status-dot{background:var(--color-green);animation:none}.fw-status.error{color:var(--color-red)}.fw-status.error .fw-status-dot{background:var(--color-red);animation:none}.fw-capacity{display:flex;flex-direction:column;gap:4px}.fw-capacity-bar{height:8px;border-radius:8px;background:var(--color-border-muted);overflow:hidden}.fw-capacity-fill{height:100%;border-radius:8px;background:var(--color-green);transition:width .25s}.fw-capacity-fill.mid{background:var(--color-yellow)}.fw-capacity-fill.high{background:var(--color-red)}.fw-capacity-label{font-size:var(--font-size-s);color:var(--color-text-secondary)}.fw-panel-section{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m);padding:var(--spacing-m)}.fw-panel-section.fw-panel-column{flex-direction:column;align-items:stretch}.fw-panel-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m);flex-wrap:wrap}.fw-parts-wrap{display:flex;flex-direction:column;gap:var(--spacing-s);margin-top:var(--spacing-s)}.fw-parts{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-m)}.fw-part{display:flex;flex-direction:column;gap:6px}.fw-part-head{display:flex;align-items:center;gap:6px}.fw-part-icon{color:var(--color-accent);font-size:1.1rem;flex-shrink:0}.fw-part-label{flex:1;color:var(--color-text-primary);font-size:var(--font-size-s);font-weight:600}.fw-part-val,.fw-part-pct{color:var(--color-text-secondary);font-size:var(--font-size-s);font-variant-numeric:tabular-nums}.fw-panel-info{display:flex;flex-direction:column}.fw-panel-title{font-weight:600;color:var(--color-text-primary);font-size:var(--font-size-m)}.fw-panel-version{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--font-size-s)}.fw-panel-btn{min-height:38px;padding:6px 16px;font-size:var(--font-size-s)}@media (max-width: 520px){.fw-slots,.fw-parts{grid-template-columns:1fr}}.radar-chart-card{display:flex;flex-direction:column;gap:var(--spacing-s);min-width:0;padding:var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);background:var(--color-surface)}.radar-chart-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.radar-chart-heading h2{margin:0}.radar-chart-headline{font-size:.8rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.radar-chart-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-m);font-size:.75rem;color:var(--color-text-secondary)}.radar-legend-item{display:inline-flex;align-items:center;gap:6px}.radar-legend-measured{stroke:var(--color-accent);stroke-width:2}.radar-legend-threshold{stroke:var(--color-text-secondary);stroke-width:2;stroke-dasharray:6 4}.radar-chart-plot{width:100%;touch-action:none;-webkit-user-select:none;user-select:none}.radar-chart-placeholder{display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--color-text-muted)}.radar-chart-plot{position:relative}.radar-handles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.radar-handle{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;display:flex;align-items:center;justify-content:center;border-radius:50%;pointer-events:auto;cursor:ns-resize}.radar-handle-dot{width:10px;height:10px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-text-secondary);transition:transform var(--dur),border-color var(--dur)}.radar-handle:hover .radar-handle-dot,.radar-handle:focus-visible .radar-handle-dot,.radar-handle-dragging .radar-handle-dot{transform:scale(1.35);border-color:var(--color-text-primary)}.radar-handle-inactive .radar-handle-dot{opacity:.45}.radar-handle[aria-disabled=true]{cursor:default}.radar-measured-dot{fill:var(--color-accent)}.radar-measured-detected{stroke:var(--color-surface);stroke-width:2}.radar-tooltip p{margin:0}.radar-tooltip-row{display:flex;justify-content:space-between;gap:var(--spacing-m);font-size:.8rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.radar-tooltip-row strong{color:var(--color-text-primary)}.radar-tooltip-state{margin-top:4px!important;font-size:.8rem;font-weight:600;color:var(--color-text-primary)}.radar-chart-modal{display:flex;flex-direction:column;gap:var(--spacing-s)}.radar-chart-modal-plot{height:min(60vh,520px);width:100%}.radar-chart-caption{margin:0;font-size:.8rem;color:var(--color-text-secondary)}.radar-section{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);background:var(--color-surface-2)}.radar-section-compact{gap:var(--spacing-xs);padding:var(--spacing-s) var(--spacing-m)}.radar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-s);flex-wrap:wrap}.radar-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.95rem;color:var(--color-text-primary)}.radar-firmware{font-size:.8rem;color:var(--color-text-secondary)}.radar-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;white-space:nowrap;color:var(--color-text-secondary);background:color-mix(in oklch,var(--color-text-secondary) 14%,transparent);border:1px solid color-mix(in oklch,var(--color-text-secondary) 30%,transparent)}.radar-badge.radar-badge-offline{color:var(--color-orange);background:color-mix(in oklch,var(--color-orange) 14%,transparent);border-color:color-mix(in oklch,var(--color-orange) 35%,transparent)}.radar-hint{margin:0;font-size:.8rem;line-height:1.45;color:var(--color-text-secondary)}.radar-divider{width:100%;margin:0;border:0;border-top:1px solid var(--color-border-muted)}.radar-live{display:flex;flex-direction:column;gap:var(--spacing-m)}.radar-live-summary{display:grid;grid-template-columns:4.5rem 1fr;gap:2px var(--spacing-s);margin:0;font-size:.85rem;font-variant-numeric:tabular-nums}.radar-live-summary dt{color:var(--color-text-secondary)}.radar-live-summary dd{margin:0;color:var(--color-text-primary)}.radar-live-target{font-weight:600}.radar-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--spacing-m)}.radar-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-m);align-items:start}.radar-fields .settings-select,.radar-fields .settings-input{flex-grow:0;width:100%;max-width:none;background-color:var(--color-surface)}.radar-apply{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--spacing-s)}.radar-status{margin-right:auto;font-size:.8rem;color:var(--color-text-secondary)}.radar-action-list{display:flex;flex-direction:column;gap:var(--spacing-m)}.radar-action{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m)}.radar-action-text{display:flex;flex-direction:column;gap:2px;min-width:0}.radar-action-title{font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.radar-action-desc{font-size:.8rem;line-height:1.45;color:var(--color-text-secondary)}.radar-action button{flex-shrink:0;min-width:10rem}@media (max-width: 600px){.radar-fields{grid-template-columns:1fr}.radar-action{flex-direction:column;align-items:stretch}.radar-action button{min-width:0}}.device-settings-container{display:flex;flex-direction:column;gap:var(--spacing-l);padding:var(--spacing-l)}.device-settings-container>h3{padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted)}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-l)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{color:var(--color-text-secondary);font-size:.88rem;font-weight:600}.field-hint{color:var(--color-text-secondary);font-size:.8rem;line-height:1.45}.settings-input,.settings-select{flex-grow:1;max-width:350px}.settings-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;padding-top:var(--spacing-m);border-top:1px solid var(--color-border-muted)}.settings-btn-danger{margin-right:auto}.settings-danger-zone{display:flex;flex-direction:column;gap:var(--spacing-m);margin-top:var(--spacing-s);padding:var(--spacing-m);border:1px solid color-mix(in oklch,var(--color-red) 30%,transparent);border-radius:var(--border-radius-l);background:color-mix(in oklch,var(--color-red) 5%,transparent)}.settings-danger-item{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.settings-danger-item .settings-btn-danger,.settings-danger-item .settings-btn-warning{margin-right:0}.settings-danger-desc{margin:0;max-width:60ch;font-size:.85rem;line-height:1.45;color:var(--color-text-secondary)}.settings-section-disabled{opacity:.45;filter:grayscale(100%);pointer-events:none;-webkit-user-select:none;user-select:none}.checkbox-label{display:flex;align-items:center;gap:12px;cursor:pointer;flex-direction:row!important}.checkbox-label span{color:var(--color-text-primary);font-size:.95rem}.settings-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--color-accent)}.calibration-section{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l);background:var(--color-surface-2)}.calibration-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-s);flex-wrap:wrap}.calibration-title{font-weight:600;font-size:.95rem;color:var(--color-text-primary)}.calibration-badge{padding:3px 10px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;white-space:nowrap}.calibration-badge.calibration-none{color:var(--color-text-secondary);background:color-mix(in oklch,var(--color-text-secondary) 14%,transparent);border:1px solid color-mix(in oklch,var(--color-text-secondary) 30%,transparent)}.calibration-badge.calibration-1-point{color:var(--color-yellow);background:color-mix(in oklch,var(--color-yellow) 14%,transparent);border:1px solid color-mix(in oklch,var(--color-yellow) 35%,transparent)}.calibration-badge.calibration-2-point{color:var(--color-green);background:color-mix(in oklch,var(--color-green) 14%,transparent);border:1px solid color-mix(in oklch,var(--color-green) 35%,transparent)}.calibration-hint{margin:0;font-size:.8rem;line-height:1.45;color:var(--color-text-secondary)}.calibration-point{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-s) 0}.calibration-inputs{display:flex;gap:var(--spacing-m);flex-wrap:wrap;align-items:flex-end}.calibration-inputs .form-group{flex:1;min-width:120px}.calibration-inputs .settings-input{max-width:none}.settings-input-readonly{background-color:var(--color-surface)!important;color:var(--color-text-secondary)!important;border-style:dashed!important;cursor:not-allowed;opacity:.85}.settings-input-readonly:focus{box-shadow:none!important}.calibration-preview{margin:0;font-size:.85rem;font-weight:500;color:var(--color-text-primary)!important}.calibration-reset-btn{align-self:flex-start;padding:4px 0;border:none;background:none;color:var(--color-red);font-size:.85rem;font-weight:500;cursor:pointer}.calibration-reset-btn:hover{text-decoration:underline}.lux-point-remove{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:1px solid color-mix(in oklch,var(--color-red) 30%,transparent);border-radius:var(--border-radius-m);background:color-mix(in oklch,var(--color-red) 12%,transparent);color:var(--color-red);font-size:1.2rem;cursor:pointer;transition:background var(--dur),color var(--dur)}.lux-point-remove:hover{background:var(--color-red);color:#fff}.lux-add-point-btn{align-self:flex-start;margin-top:var(--spacing-s);border-style:dashed;font-weight:500}.automation-logging-container{display:flex;flex-direction:column}@media (max-width: 768px){.device-settings-container{background:transparent;border:none;box-shadow:none;padding:0}.settings-input,.settings-select{max-width:none}.settings-actions>*{flex:1 1 auto}.settings-btn-danger{flex-basis:100%;margin-right:0}}.device-settings-container .automation-logging-toggle.sub-toggle.expanded{max-height:280px}.alert-delay-field{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-s) var(--spacing-m);margin-top:var(--spacing-s);padding-top:var(--spacing-s);border-top:1px dashed var(--color-border-muted)}.alert-delay-text{display:flex;flex:1 1 220px;flex-direction:column;gap:2px;min-width:0}.alert-delay-label{font-size:var(--font-size-m);font-weight:500;color:var(--color-text-primary)}.alert-delay-field.alert-delay-row{margin-top:0;padding-top:0;border-top:none}.led-settings-section{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface)}.led-color-row{margin:0}.led-color-select{display:flex;align-items:center;gap:10px}.led-color-select select{flex:1;min-width:0}.led-swatch{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:1px solid var(--color-border);box-shadow:inset 0 0 0 2px var(--color-surface)}.led-swatch.is-off{background:linear-gradient(135deg,transparent 45%,var(--color-text-secondary) 45% 55%,transparent 55%)}.page-transition{animation:ha-fade-up .32s var(--ease-out) backwards}.device-page{min-height:100vh;padding-bottom:calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px)}.device-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--spacing-m);padding:var(--spacing-m) var(--spacing-m) var(--spacing-s)}.device-header h1{margin:0;font-size:var(--font-size-xxl);color:var(--color-text-primary);letter-spacing:-.03em;min-width:0;overflow-wrap:anywhere}.device-header p{margin:0 0 4px;padding:4px 10px;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;flex-shrink:0}.device-content{padding:0 var(--spacing-m) var(--spacing-m)}.device-desktop-grid{display:flex;flex-direction:column;gap:var(--spacing-l);max-width:var(--content-max);margin:0 auto}.device-grid-item{width:100%;animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.device-grid-item:nth-child(2){animation-delay:.06s}.device-grid-item:nth-child(3){animation-delay:.12s}@media (min-width: 769px){.device-page{padding-top:calc(var(--nav-height) + 28px);padding-bottom:48px}.device-header{max-width:var(--content-max);margin:0 auto;padding:var(--spacing-s) var(--spacing-m) var(--spacing-m)}}@media (max-width: 768px){.device-header{flex-direction:column;align-items:flex-start;gap:6px}}.gs-panel{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.gs-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s);padding-bottom:var(--spacing-s);border-bottom:1px solid var(--color-border-muted);flex-wrap:wrap}.gs-header-left{display:flex;align-items:center;gap:var(--spacing-s)}.gs-cast-icon{display:grid;place-items:center;width:42px;height:42px;padding:8px;border-radius:12px;font-size:1.8rem;color:var(--color-accent);background:var(--accent-soft);flex-shrink:0}.gs-title{margin:0;font-size:var(--font-size-l);line-height:1.2;color:var(--color-text-primary)}.gs-app-name{font-size:var(--font-size-s);color:var(--color-text-secondary)}.gs-state-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-size:var(--font-size-s);font-weight:600;color:var(--badge-color, var(--color-text-secondary));background:color-mix(in srgb,var(--badge-color, currentColor) 12%,transparent);border:1px solid color-mix(in srgb,var(--badge-color, currentColor) 30%,transparent)}.gs-state-dot{width:7px;height:7px;border-radius:50%;background:var(--badge-color, var(--color-text-secondary));box-shadow:0 0 8px var(--badge-color, transparent);animation:ha-pulse-soft 2s infinite}.gs-now-playing{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-m);transition:border-color var(--dur),box-shadow var(--dur)}.gs-now-playing.active{border-color:var(--accent-border);box-shadow:var(--glow-accent)}.gs-now-playing-icon{display:flex;align-items:center;font-size:2rem;color:var(--color-accent);flex-shrink:0}.gs-now-playing.active .gs-now-playing-icon{animation:ha-float 3s ease-in-out infinite}.gs-now-playing-text{display:flex;flex-direction:column;flex:1;min-width:0}.gs-label{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.gs-value{font-size:var(--font-size-m);font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-ip-info{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary);font-size:var(--font-size-xs);flex-shrink:0}.gs-small-icon{font-size:.9rem}.gs-uptime{display:inline-flex;align-items:center;gap:5px;margin-top:2px;font-size:.8rem;color:var(--color-text-secondary)}.gs-ip{font-family:var(--font-mono)}.gs-controls-section{display:flex;flex-direction:column;gap:var(--spacing-s);padding:var(--spacing-m) var(--spacing-l)}.gs-section-header{display:flex;justify-content:space-between;align-items:center}.gs-playback-row{display:flex;gap:var(--spacing-s);flex-wrap:wrap}.gs-play-btn{min-height:44px;padding:10px 22px;border-radius:var(--radius-pill);font-size:var(--font-size-m)}.gs-play-btn.playing{background:var(--color-orange);color:#201308;box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-orange) 85%,transparent)}.gs-btn-icon{font-size:1.3rem}.gs-mute-btn{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:4px 12px;border:1px solid var(--color-border-muted);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:500;cursor:pointer;transition:all var(--dur)}.gs-mute-btn:hover{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.gs-mute-btn.muted{background:var(--color-red);color:#fff;border-color:transparent}.gs-mute-icon{font-size:1rem}.gs-volume-row{transition:opacity var(--dur),filter var(--dur)}.gs-volume-row.muted{opacity:.35;filter:grayscale(100%);pointer-events:none}@media (max-width: 768px){.gs-panel,.gs-controls-section{padding:var(--spacing-m)}}.desktop-panel{display:flex;flex-direction:column;gap:var(--spacing-l);padding:var(--spacing-l)}.desktop-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-s);flex-wrap:wrap}.desktop-panel-header-left{display:flex;align-items:center;gap:var(--spacing-m)}.desktop-panel-icon{display:grid;place-items:center;width:46px;height:46px;padding:9px;border-radius:14px;font-size:2rem;color:var(--color-accent);background:var(--accent-soft)}.desktop-panel-title{margin:0;font-size:1.1rem;color:var(--color-text-primary)}.desktop-panel-name{font-size:.85rem;color:var(--color-text-secondary)}.desktop-state-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;color:var(--badge-color);background:color-mix(in srgb,var(--badge-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--badge-color) 35%,transparent);white-space:nowrap}.desktop-state-dot{width:8px;height:8px;border-radius:50%;background:var(--badge-color);box-shadow:0 0 8px var(--badge-color)}.desktop-power-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-m);padding:var(--spacing-l);transition:border-color var(--dur),box-shadow var(--dur)}.desktop-power-card.on{border-color:color-mix(in oklch,var(--color-green) 45%,transparent);box-shadow:var(--glow-green)}.desktop-power-btn{min-height:52px;padding:14px 28px;border-radius:var(--border-radius-l);font-size:1rem;color:#fff}.desktop-power-btn.off{background:var(--color-green);box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-green) 85%,transparent)}.desktop-power-btn.on{background:var(--color-red);box-shadow:0 8px 20px -8px color-mix(in oklch,var(--color-red) 85%,transparent)}.desktop-power-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06)}.desktop-power-btn:disabled{background:var(--color-border);color:var(--color-text-secondary)}.desktop-power-btn-icon{font-size:1.4rem}.desktop-power-btn-icon.spin{animation:desktop-spin 1.2s linear infinite}@keyframes desktop-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.desktop-uptime{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.desktop-uptime-icon{font-size:1rem}.desktop-power-hint{margin:0;max-width:360px;text-align:center;color:var(--color-text-secondary);font-size:.85rem;line-height:1.45}@media (max-width: 768px){.desktop-panel{padding:var(--spacing-m);gap:var(--spacing-m)}}.thermostat-panel{--tp-navy: var(--color-accent);--tp-navy-deep: var(--color-primary-dark);--tp-warm: var(--color-orange);--tp-card: var(--color-surface-2);--tp-soft: var(--color-surface-2);--tp-line: var(--color-border-muted);--tp-ink: var(--color-text-primary);--tp-ink-soft: var(--color-text-secondary);display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l);color:var(--tp-ink);font-variant-numeric:tabular-nums}.thermostat-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:var(--spacing-s);border-bottom:1px solid var(--tp-line);flex-wrap:wrap}.thermostat-head-title{display:flex;align-items:center;gap:var(--spacing-s)}.thermostat-head-icon{display:grid;place-items:center;width:42px;height:42px;padding:8px;border-radius:12px;font-size:1.6rem;color:var(--color-accent);background:var(--accent-soft);flex-shrink:0}.thermostat-head-title h3{margin:0;font-size:var(--font-size-l);line-height:1.2}.thermostat-head-title p{margin:2px 0 0;font-size:.8rem;color:var(--tp-ink-soft)}.thermostat-status{display:inline-flex;align-items:center;gap:7px;padding:5px 13px;border-radius:var(--radius-pill);background:var(--tp-card);border:1px solid var(--tp-line);font-size:.78rem;font-weight:600;white-space:nowrap}.thermostat-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.thermostat-status.active{color:var(--color-green)}.thermostat-status.active .thermostat-status-dot{animation:thermostat-pulse 1.6s ease-in-out infinite}.thermostat-status.idle{color:var(--tp-ink-soft)}.thermostat-status.unreachable{color:var(--color-red);animation:ha-blink 1.3s ease-in-out infinite}@keyframes thermostat-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}.thermostat-hero{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;padding:22px 24px;background:var(--tp-card);border:1px solid var(--tp-line);border-radius:var(--border-radius-l)}.thermostat-target-label{margin:0 0 4px;font-size:.8rem;color:var(--tp-ink-soft)}.thermostat-target{display:flex;align-items:baseline;gap:3px}.thermostat-target b{font-family:var(--font-display);font-size:3.6rem;font-weight:700;line-height:1;letter-spacing:-.04em}.thermostat-target span{font-size:1.35rem;font-weight:500;color:var(--tp-ink-soft)}.thermostat-heating-icon{align-self:center;margin-left:14px;font-size:3.4rem;color:var(--color-red);filter:drop-shadow(0 0 8px color-mix(in oklch,var(--color-red) 60%,transparent));animation:thermostat-heat-blink 1.6s ease-in-out infinite}@keyframes thermostat-heat-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.94)}}.thermostat-pending{margin:7px 0 0;height:16px;font-size:.78rem;color:var(--tp-warm);opacity:0;transition:opacity .15s}.thermostat-pending.on{opacity:1}.thermostat-pending.error{color:var(--color-red);font-weight:600}.thermostat-stepper{display:flex;gap:10px}.thermostat-stepper button{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;border:1px solid var(--tp-line);background:var(--color-surface);color:var(--color-accent);font-size:1.6rem;line-height:1;cursor:pointer;transition:background var(--dur),border-color var(--dur),transform var(--dur-fast),box-shadow var(--dur)}.thermostat-stepper button:hover{background:var(--accent-soft);border-color:var(--accent-border)}.thermostat-stepper button:active{transform:scale(.94)}.thermostat-stepper button:focus-visible{box-shadow:var(--focus-ring)}.thermostat-stepper button:disabled{opacity:.35;cursor:default}.thermostat-axis-wrap{padding:26px 30px 18px;background:var(--tp-card);border:1px solid var(--tp-line);border-radius:var(--border-radius-l)}.thermostat-axis{position:relative;height:56px;touch-action:none}.thermostat-track{position:absolute;top:22px;left:0;right:0;height:10px;border-radius:6px;background:var(--tp-line)}.thermostat-fill{position:absolute;top:22px;left:0;height:10px;border-radius:6px 0 0 6px;background:var(--gradient-accent);pointer-events:none}.thermostat-handle{position:absolute;top:13px;width:28px;height:28px;margin-left:-14px;border-radius:50%;background:#fff;border:3px solid var(--color-accent);box-shadow:0 2px 8px #0000004d;cursor:grab;touch-action:none}.thermostat-handle:active{cursor:grabbing}.thermostat-handle:focus-visible{box-shadow:var(--focus-ring)}.thermostat-now{position:absolute;top:8px;width:2px;height:38px;margin-left:-1px;background:var(--tp-warm);pointer-events:none}.thermostat-now-label{position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:.72rem;font-weight:600;color:var(--tp-warm);white-space:nowrap}.thermostat-ticks{position:relative;height:22px;margin-top:2px}.thermostat-tick{position:absolute;transform:translate(-50%);font-size:.72rem;color:var(--tp-ink-soft)}.thermostat-tick i{display:block;width:1px;height:5px;margin:0 auto 4px;background:var(--tp-line)}.thermostat-fact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:var(--tp-soft);border:1px solid var(--tp-line);border-radius:var(--border-radius-l)}.thermostat-fact-key{font-size:.85rem;color:var(--tp-ink-soft)}.thermostat-fact small{display:block;margin-top:3px;font-size:.78rem;color:var(--tp-ink-soft)}.thermostat-fact-value{font-family:var(--font-display);font-size:1.3rem;font-weight:600;text-align:right}.thermostat-fact-value em{font-style:normal;font-family:var(--font-body);font-size:.82rem;color:var(--tp-ink-soft);font-weight:500}@media (max-width: 768px){.thermostat-panel{padding:var(--spacing-m)}.thermostat-axis-wrap{padding:26px 18px 14px}}@media (max-width: 620px){.thermostat-hero{flex-direction:column;align-items:stretch;gap:18px}.thermostat-stepper button{flex:1}.thermostat-target b{font-size:3rem}.thermostat-heating-icon{font-size:2.9rem}}@keyframes pulse-accent{0%{box-shadow:0 0 color-mix(in oklch,var(--color-accent) 60%,transparent)}70%{box-shadow:0 0 0 12px color-mix(in oklch,var(--color-accent) 0%,transparent)}to{box-shadow:0 0 color-mix(in oklch,var(--color-accent) 0%,transparent)}}.add-location-btn.pulsing{animation:pulse-accent 2s infinite}.z2m-timer-input-container{display:flex;align-items:center;gap:12px;margin-top:var(--spacing-m);flex-wrap:wrap}.z2m-timer-wrapper{display:flex;align-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-surface-2)}.z2m-timer-btn{display:flex;justify-content:center;align-items:center;width:42px;height:42px;border:none;background:transparent;color:var(--color-accent);font-size:1.3rem;cursor:pointer;transition:background var(--dur)}.z2m-timer-btn:hover:not(:disabled){background:var(--accent-soft)}.z2m-timer-btn:disabled{opacity:.4;cursor:not-allowed}.z2m-timer-input{width:80px;height:42px;min-height:0;padding:0;border:none;border-left:1px solid var(--color-border-muted);border-right:1px solid var(--color-border-muted);border-radius:0;background:transparent;text-align:center;font-family:var(--font-display);font-weight:600;font-variant-numeric:tabular-nums}.z2m-timer-input:focus{box-shadow:none}.z2m-settings-select{max-width:120px;margin-top:var(--spacing-xs)}.z2m-info-grid{display:flex;flex-direction:column}.z2m-info-row{display:flex;align-items:center;gap:var(--spacing-m);padding:10px 0;border-bottom:1px solid var(--color-border-muted)}.z2m-info-row:last-child{border-bottom:none}.z2m-info-label{min-width:150px;color:var(--color-text-secondary);font-size:var(--font-size-s);font-weight:600}.z2m-info-value{flex:1;color:var(--color-text-primary);font-weight:500;font-size:var(--font-size-m);word-break:break-word}.z2m-info-value.permit-join-active{color:var(--color-accent);font-weight:700;animation:ha-pulse-soft 1.5s infinite ease-in-out}@media (max-width: 768px){.z2m-info-label{min-width:110px}}.device-list-container{max-width:var(--content-max);margin:0 auto;padding:var(--spacing-m) var(--spacing-m) calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px);color:var(--color-text-primary);animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.device-list-title{margin:0;font-family:var(--font-display);font-size:var(--font-size-xxl);font-weight:700;letter-spacing:-.03em;color:var(--color-text-primary)}.device-list-subtitle{display:flex;align-items:center;gap:10px;margin:var(--spacing-l) 0 var(--spacing-s);font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.device-list-subtitle:after{content:"";flex:1;height:1px;background:var(--color-border-muted)}.device-table-wrapper{overflow:hidden}.device-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}.device-table th:nth-child(1){width:40px}.device-table th:nth-child(2){width:56px}.device-table th:nth-child(3){width:20%}.device-table th:nth-child(4){width:22%}.device-table th:nth-child(5){width:90px}.device-table th:nth-child(6){width:30%}.device-table th,.device-table td{height:58px;padding:var(--spacing-s) var(--spacing-m);border-bottom:1px solid var(--color-border-muted);font-size:var(--font-size-m);font-weight:400}.device-table th{height:46px;background:color-mix(in oklch,var(--color-surface-2) 70%,transparent);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--dur),background var(--dur)}.device-table th:hover{color:var(--color-accent);background:var(--accent-soft)}.th-content{display:flex;align-items:center;gap:4px}.sort-icon-placeholder{opacity:.3}.device-table tr:last-child td{border-bottom:none}.device-row{position:relative;cursor:pointer;color:var(--color-text-primary);transition:background var(--dur)}.device-row:hover{background:var(--accent-soft)}.device-row td:first-child{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.device-row.requires-attention{color:var(--color-red);box-shadow:inset 4px 0 0 var(--color-red);background:color-mix(in oklch,var(--color-red) 5%,transparent)}.device-row.requires-attention:hover{background:color-mix(in oklch,var(--color-red) 10%,transparent)}.device-row.zigbee-disconnected:not(.requires-attention){box-shadow:inset 4px 0 0 var(--color-orange)}.device-row.zigbee-disconnected .device-name,.device-row.zigbee-disconnected .device-location,.device-row.zigbee-disconnected .device-ieee{opacity:.6}.device-icon-cell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--color-accent);font-size:1.35rem}.device-row.requires-attention .device-icon-cell{background:color-mix(in oklch,var(--color-red) 14%,transparent);color:var(--color-red)}.device-list-status-dot{position:absolute;top:-3px;right:-3px;width:11px;height:11px;border:2px solid var(--color-surface)}.device-location{color:var(--color-text-secondary)}.device-name{font-weight:600;color:var(--color-text-primary)}.device-row.requires-attention .device-name{color:inherit}.device-ieee{font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-secondary)}.col-index{text-align:center}@media (min-width: 769px){.device-list-container{padding-top:calc(var(--nav-height) + 28px);padding-bottom:48px}}@media (max-width: 768px){.device-table th:nth-child(1){width:34px}.device-table th:nth-child(2){width:50px}.device-table th:nth-child(3){width:34%}.device-table th:nth-child(4){width:46%}.device-table th,.device-table td{height:54px;padding:var(--spacing-s)}.device-table td.device-name,.device-table td.device-location{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-ieee,.col-floor{display:none}}.th-sort-btn,.device-row-btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:inherit;cursor:pointer}.th-sort-btn{width:100%}.device-row-btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logs-page{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-m);max-width:var(--content-max);margin:0 auto;padding:var(--spacing-m) var(--spacing-m) calc(var(--nav-height-mobile) + var(--safe-bottom) + 24px);animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.logs-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-m);width:100%;flex-wrap:wrap}.logs-header h1{margin:0;font-size:var(--font-size-xxl);letter-spacing:-.03em;color:var(--color-text-primary)}.logs-filter-section{display:flex;flex-direction:column;gap:12px;width:100%;padding:var(--spacing-m);background:var(--color-surface);border:1px solid var(--color-border-muted);border-radius:var(--border-radius-l)}.filter-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-group-inline{gap:20px}.filter-group-label{min-width:62px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{min-height:32px;padding:4px 13px;border:1px solid var(--color-border-muted);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:.78rem;font-weight:600;cursor:pointer;opacity:.6;transition:all var(--dur)}.filter-chip:hover{opacity:1;border-color:var(--color-border)}.filter-chip:active{transform:scale(.96)}.filter-chip.active{opacity:1;color:var(--color-text-primary);border-color:var(--color-border)}.filter-chip.level-error.active{color:var(--color-red);border-color:color-mix(in oklch,var(--color-red) 50%,transparent);background:color-mix(in oklch,var(--color-red) 12%,transparent)}.filter-chip.level-notice.active{color:var(--color-green);border-color:color-mix(in oklch,var(--color-green) 50%,transparent);background:color-mix(in oklch,var(--color-green) 12%,transparent)}.filter-chip.level-info.active,.filter-chip.category.active{color:var(--color-accent);border-color:var(--accent-border);background:var(--accent-soft)}.filter-field{display:flex;align-items:center;gap:8px}.filter-field .editor-select{min-width:150px;min-height:38px;padding:.4rem 2.2rem .4rem .75rem;font-size:var(--font-size-s)}.reset-filters-text-btn{padding:6px 10px;border:none;border-radius:var(--radius-pill);background:none;color:var(--color-text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:color var(--dur),background var(--dur)}.reset-filters-text-btn:hover{color:var(--color-accent);background:var(--accent-soft)}.refresh-btn-modern{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--color-border-muted);border-radius:50%;background:var(--color-surface-2);color:var(--color-text-secondary);cursor:pointer;transition:all var(--dur)}.refresh-btn-modern:hover{border-color:var(--accent-border);color:var(--color-accent);background:var(--accent-soft);transform:rotate(90deg)}.error-message{width:100%;padding:10px 14px;border:1px solid color-mix(in oklch,var(--color-red) 40%,transparent);border-radius:var(--border-radius-m);background:color-mix(in oklch,var(--color-red) 10%,transparent);color:var(--color-red);font-size:.9rem}.logs-container{display:flex;flex-direction:column;flex:1;width:100%;overflow:hidden}.table-container{flex:1;overflow:auto}.logs-table{width:100%;border-collapse:collapse;font-size:.85rem;table-layout:fixed}.logs-table th{position:sticky;top:0;z-index:1;padding:10px var(--spacing-m);text-align:left;background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--color-border-muted)}.logs-table td{padding:8px var(--spacing-m);border-bottom:1px solid var(--color-border-muted);color:var(--color-text-primary);vertical-align:top}.log-row{transition:background var(--dur-fast)}.log-row:hover{background:var(--accent-soft)}.log-row.error{box-shadow:inset 3px 0 0 var(--color-red)}.log-row.notice{box-shadow:inset 3px 0 0 var(--color-green)}.col-time{width:150px;font-size:var(--font-size-s);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.col-level{width:76px;font-size:var(--font-size-s)}.col-category{width:100px;font-size:var(--font-size-s)}.category-tag{display:inline-block;padding:2px 8px;border:1px solid var(--color-border-muted);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-secondary);font-size:.65rem;font-weight:600;letter-spacing:.03em;text-transform:lowercase}.col-message{font-size:var(--font-size-s);line-height:1.45;word-break:break-word}.level-badge{display:inline-block;min-width:50px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.level-badge.error{color:var(--color-red)}.level-badge.notice{color:var(--color-green)}.level-badge.info{color:var(--color-accent)}.loading-state,.empty-state{display:flex;align-items:center;justify-content:center;min-height:140px;color:var(--color-text-muted);font-size:.9rem}@media (min-width: 769px){.logs-page{padding-top:calc(var(--nav-height) + 28px);padding-bottom:48px}}.logs-list{display:flex;flex-direction:column;gap:var(--spacing-s);width:100%;margin:0;padding:0;list-style:none}.log-item{padding:10px 12px;border:1px solid var(--color-border-muted);border-left:3px solid var(--color-border);border-radius:var(--border-radius-m);background:var(--color-surface)}.log-item.error{border-left-color:var(--color-red)}.log-item.notice{border-left-color:var(--color-green)}.log-item.info{border-left-color:var(--color-accent)}.log-item-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.log-item-time{margin-left:auto;flex-shrink:0;color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.log-item .level-badge{min-width:0}.log-item .category-tag{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-item-message{margin:0;font-size:var(--font-size-s);line-height:1.5;color:var(--color-text-primary);word-break:break-word}@media (max-width: 768px){.logs-page{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.logs-filter-section{padding:var(--spacing-s) var(--spacing-m);gap:10px}.filter-group{flex-direction:column;align-items:stretch;gap:6px}.filter-group-label{min-width:0;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.filter-group-inline{flex-direction:row;flex-wrap:wrap;gap:10px}.filter-field{flex:1 1 140px;flex-direction:column;align-items:stretch;gap:4px;min-width:0}.filter-field .editor-select{min-width:0;width:100%;min-height:42px}.reset-filters-text-btn{flex:1 1 100%;min-height:40px;border:1px solid var(--color-border-muted)}}.log-row.is-target td{background:var(--accent-soft)}.log-row.is-target td:first-child{box-shadow:inset 3px 0 0 var(--color-accent)}.log-item.is-target{background:var(--accent-soft);outline:2px solid var(--accent-border);outline-offset:-2px}.log-target-tag{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-contrast);font-size:var(--font-size-xs);font-weight:600;vertical-align:1px}.log-item-head .log-target-tag{margin:0}.logs-error-actions{margin-top:var(--spacing-s)}.logs-error-actions .settings-btn-primary{display:inline-flex;align-items:center;gap:8px}.notification-container{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:400px;padding:0;pointer-events:none}.notification-item{position:relative;display:flex;flex-direction:column;justify-content:center;width:100%;padding:var(--spacing-m);padding-left:calc(var(--spacing-m) + 6px);border-radius:var(--border-radius-l);background:color-mix(in oklch,var(--color-surface) 88%,transparent);border:1px solid var(--color-border-muted);box-shadow:var(--shadow-l);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);overflow:hidden;pointer-events:auto;animation:toast-in .4s var(--ease-spring)}.notification-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--color-accent)}.notification-item.level-error:before{background:var(--color-red)}.notification-item.level-notice:before{background:var(--color-green)}.notification-item.level-info:before{background:var(--color-accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translate(0);max-height:200px}to{opacity:0;transform:translate(40px);max-height:0;padding-top:0;padding-bottom:0;margin-bottom:-10px}}.notification-item.exiting{animation:toast-out .3s ease-in forwards}.notification-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s)}.notification-title-group{display:flex;align-items:center;gap:var(--spacing-s);min-width:0}.notification-icon{display:flex}.notification-icon svg{font-size:1.15rem}.notification-title{font-weight:700;font-size:var(--font-size-s);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-primary)}.notification-timestamp{font-size:var(--font-size-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.notification-close{display:grid;place-items:center;margin:-4px -4px 0 0;padding:6px;border:none;border-radius:50%;background:none;color:var(--color-text-secondary);font-size:1rem;cursor:pointer;transition:background var(--dur),color var(--dur)}.notification-close:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.notification-message{margin-top:6px;font-size:var(--font-size-s);line-height:1.45;color:var(--color-text-primary)}.notification-progress{position:absolute;left:0;bottom:0;width:100%;height:3px;background:transparent}.notification-progress-bar{width:100%;height:100%;transform-origin:left;background:var(--color-accent);animation:toast-progress 10s linear forwards}.notification-item.level-error .notification-progress-bar{background:var(--color-red)}.notification-item.level-notice .notification-progress-bar{background:var(--color-green)}.notification-item.level-info .notification-progress-bar{background:var(--color-accent)}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width: 768px){.notification-container{right:0;bottom:calc(var(--nav-height-mobile) + var(--safe-bottom) + 10px);max-width:none;padding:0 var(--spacing-m)}.notification-icon svg{font-size:1rem}}.lock-tip{position:fixed;z-index:1100;left:-9999px;top:0;display:flex;align-items:flex-start;gap:8px;max-width:min(300px,calc(100vw - 24px));padding:10px 14px;border-radius:var(--border-radius-m);background:var(--color-text-primary);color:var(--color-surface);font-size:var(--font-size-s);line-height:1.45;text-align:left;box-shadow:var(--shadow-l);pointer-events:auto}.lock-tip.placed{animation:lock-tip-in .18s var(--ease-out)}.lock-tip:after{content:"";position:absolute;left:var(--arrow-left, 50%);bottom:-6px;width:12px;height:12px;background:inherit;transform:translate(-50%) rotate(45deg)}.lock-tip.below:after{top:-6px;bottom:auto}.lock-tip-icon{flex-shrink:0;margin-top:2px;font-size:16px;opacity:.8}.lock-tip-link{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}@keyframes lock-tip-in{0%{opacity:0;transform:translateY(4px) scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.lock-tip.placed{animation:none}}.sysdown-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:var(--spacing-l) var(--spacing-m);background:var(--color-background)}.sysdown-card{width:100%;max-width:640px;padding:var(--spacing-xl);border:1px solid color-mix(in oklch,var(--color-red) 35%,var(--color-border-muted));border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-l),0 0 60px -30px color-mix(in oklch,var(--color-red) 60%,transparent);animation:ha-fade-up var(--dur-slow) var(--ease-out) backwards}.sysdown-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:var(--spacing-m);border-radius:50%;background:color-mix(in oklch,var(--color-red) 14%,transparent);color:var(--color-red);font-size:32px}.sysdown-title{margin:0 0 var(--spacing-s);font-size:var(--font-size-xxl);letter-spacing:-.03em;color:var(--color-text-primary)}.sysdown-lead{margin:0 0 var(--spacing-m);font-size:var(--font-size-m);line-height:1.55;color:var(--color-text-secondary)}.sysdown-since{margin:0 0 var(--spacing-l);padding:10px 14px;border-left:3px solid var(--color-red);border-radius:0 var(--border-radius-m) var(--border-radius-m) 0;background:color-mix(in oklch,var(--color-red) 8%,transparent);font-size:var(--font-size-s);color:var(--color-text-primary)}.sysdown-statuses{display:flex;flex-direction:column;gap:6px;margin:0 0 var(--spacing-l);padding:0;list-style:none}.sysdown-status{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-border-muted);border-radius:var(--border-radius-m);background:var(--color-surface-2);font-size:var(--font-size-s)}.sysdown-status-icon{display:grid;place-items:center;font-size:18px;color:var(--color-text-muted)}.sysdown-status.online .sysdown-status-icon{color:var(--color-green)}.sysdown-status.offline .sysdown-status-icon{color:var(--color-red)}.sysdown-status.unknown .sysdown-status-icon{color:var(--color-orange)}.sysdown-status-label{font-weight:600;color:var(--color-text-primary)}.sysdown-status-state{display:flex;align-items:baseline;gap:6px;margin-left:auto;color:var(--color-text-secondary)}.sysdown-status-state small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.sysdown-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-m);margin-top:var(--spacing-l)}.sysdown-actions .settings-btn-primary,.sysdown-actions .settings-btn-secondary{display:inline-flex;align-items:center;gap:8px}.sysdown-foot{margin:var(--spacing-m) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}@media (max-width: 768px){.sysdown-page{align-items:flex-start;padding:var(--spacing-m) var(--spacing-s)}.sysdown-card{padding:var(--spacing-l) var(--spacing-m)}.sysdown-title{font-size:var(--font-size-xl)}.sysdown-actions .settings-btn-primary,.sysdown-actions .settings-btn-secondary{width:100%;justify-content:center}}
