:root{--bg-0:#030406;--bg-1:#090c11;--bg-2:#11161d;--font-heading:"Segoe UI","Verdana","Inter","Roboto",sans-serif;--font-mono:"Consolas","Courier New","SFMono-Regular",ui-monospace,monospace;--glass:#ffffff12;--glass-strong:#080b1080;--line:#fff3;--line-strong:#ffffff6b;--text:#f8fafc;--text-muted:#e4e9f1c2;--ok:#e8e8e8;--warn:#cfcfcf;--error:#f0c9c9;--focus:#fff;--cta:#fff;--cta-hover:#e9eef5;--radius:6px}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);font-family:var(--font-heading),"Segoe UI",sans-serif;background:linear-gradient(#04060e75,#04060e75),url(/portal-neon-bg.png) 50%/cover no-repeat fixed;margin:0;padding:0}.app-shell{min-height:100vh}a{color:inherit}button,input{font:inherit;color:inherit}.login-page,.kiosk-unauthorized{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-form{border:1px solid var(--line-strong);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(170deg,#0b0e1380,#07090c80);gap:.6rem;width:min(420px,100%);padding:1.15rem;display:grid;box-shadow:0 26px 60px #00000085}.login-form h1{letter-spacing:.02em;margin:0 0 .3rem}.login-form label{color:var(--text-muted);font-size:.88rem}.login-form input,.excel-filterbar input{border:1px solid var(--line);background:#080a1280;border-radius:4px;padding:.62rem .68rem}.login-form input:focus,.excel-filterbar input:focus{outline:2px solid var(--focus);border-color:#0000}.login-form button,.logout-button,.cta{background:linear-gradient(155deg,var(--cta),#dfe6ee);color:#0e0e0e;cursor:pointer;letter-spacing:.01em;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:.6rem .95rem;font-weight:700;text-decoration:none;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.login-form button:hover,.logout-button:hover,.cta:hover{background:linear-gradient(155deg,var(--cta-hover),#cfd7df);transform:translateY(-1px);box-shadow:0 8px 18px #00000057}.login-form button:disabled,.cta:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.cta.secondary{color:#f6f7f9;border-color:var(--line);background:linear-gradient(155deg,#ffffff14,#ffffff29)}.cta.secondary:hover{background:linear-gradient(155deg,#ffffff1f,#fff3)}.app-page,.kiosk-page{min-height:100vh;padding:.85rem}.dashboard,.excel-page{border:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(175deg,#0d111880,#080b1080);border-radius:6px;padding:.85rem;box-shadow:0 24px 56px #00000085}.dashboard{gap:.8rem;display:grid}.dashboard.app{overflow:visible}.dashboard-header{gap:.6rem;display:grid}.portal-headline{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.8rem;display:flex}.dashboard-header h1{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:clamp(1.18rem,2vw,1.55rem)}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.9rem}.status{font-size:.86rem;font-family:var(--font-mono),ui-monospace,monospace;margin:0}.status.online{color:var(--ok)}.status.offline{color:var(--warn)}.top-menu{border:1px solid var(--line-strong);scrollbar-width:thin;background:#080a1280;border-radius:4px;flex-wrap:nowrap;grid-auto-columns:minmax(110px,1fr);grid-auto-flow:column;gap:0;width:100%;padding:0;display:grid;overflow-x:auto}.top-menu::-webkit-scrollbar{height:7px}.top-menu::-webkit-scrollbar-thumb{background:#dcdcdc4d;border-radius:999px}.top-menu button{border:0;border-right:1px solid var(--line);color:#e8edf5;cursor:pointer;white-space:nowrap;background:0 0;border-radius:0;padding:.56rem .78rem;transition:border-color .16s,background .16s,color .16s}.top-menu button:last-child{border-right:0}.top-menu button:hover{background:#ffffff1a}.top-menu button.active{color:#0b0d11;background:#fff;border-right-color:#0000001f}.view-nav{flex-wrap:wrap;gap:.45rem;display:flex}.view-nav button{border:1px solid var(--line);background:var(--glass);color:#ebeff6;cursor:pointer;white-space:nowrap;border-radius:4px;padding:.5rem .72rem;transition:border-color .16s,background .16s,color .16s}.view-nav button.active{color:#0d1015;background:#fff;border-color:#fff}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:.8rem;display:grid}.kiosk .cards-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{border:1px solid var(--line);background:linear-gradient(170deg,#0e121980,#0a0d1280);border-radius:4px;align-content:start;gap:.56rem;min-height:128px;padding:.75rem;display:grid}.kiosk .card{min-height:165px}.card header{letter-spacing:.01em;font-weight:650}.card strong{font-size:1.28rem;line-height:1.15}.card small{color:#9a9a9a;font-family:var(--font-mono),ui-monospace,monospace;word-break:break-all;font-size:.74rem}.alarm-panel{background:linear-gradient(155deg,#10141c80,#090c1280);grid-template-rows:auto auto auto auto auto auto auto auto}.alarm-state{text-transform:uppercase;letter-spacing:.08em;color:#d8d8d8;margin:0;font-size:.76rem}.alarm-state.armed{color:#f0d5d5}.alarm-state.disarmed{color:#d8e6d8}.alarm-hint{color:var(--text-muted);margin:0;font-size:.76rem}.alarm-display{border:1px solid var(--line);font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.22em;background:#080a1280;border-radius:4px;padding:.44rem .55rem}.alarm-input{border:1px solid var(--line);background:#080a1280;border-radius:4px;padding:.46rem .55rem}.alarm-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;display:grid}.alarm-key{border:1px solid var(--line);color:#f2f4f7;cursor:pointer;background:#080a1280;border-radius:4px;padding:.36rem .45rem}.alarm-key:hover{background:#ffffff24}.alarm-key.action{color:#fff;background:#ffffff2e}.card.is-unavailable{background:linear-gradient(170deg,#624646cc,#412c2cd1);border-color:#e0aeae7a}.card.camera img{object-fit:cover;border:1px solid var(--line);border-radius:4px;width:100%;height:168px}.card.camera{grid-template-rows:auto auto}.light-card{grid-template-rows:auto auto auto auto auto}.light-actions{grid-template-columns:1fr 1fr;gap:.36rem;display:grid}.light-dimmer{grid-template-columns:1fr auto;align-items:center;gap:.45rem;display:grid}.light-dimmer input[type=range]{accent-color:#f0f0f0;width:100%}.lights-hub{gap:.7rem;display:grid}.lights-hub-head{border:1px solid var(--line);background:linear-gradient(170deg,#0c0f15b3,#090c11bd);border-radius:4px;padding:.6rem .7rem}.lights-hub-head h2{margin:0;font-size:1.05rem}.lights-hub-head p{color:var(--text-muted);margin:.22rem 0 0;font-size:.82rem}.lights-area-list{gap:.7rem;display:grid}.lights-area{border:1px solid var(--line);background:linear-gradient(170deg,#0c10169e,#080b10b8);border-radius:4px;gap:.62rem;padding:.58rem;display:grid}.lights-area-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.lights-area-head h3{letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.94rem}.lights-area-head p{color:var(--text-muted);margin:0;font-size:.76rem}.lights-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.55rem;display:grid}.light-tile{border:1px solid var(--line);background:linear-gradient(170deg,#0c0f1580,#080a0f80);border-radius:4px;gap:.44rem;padding:.55rem;display:grid}.light-tile.is-on{border-color:#f0f0f080;box-shadow:inset 0 0 0 1px #ffffff12}.light-tile header{gap:.1rem;display:grid}.light-tile strong{font-size:.92rem;line-height:1.2}.light-tile small{color:#9a9a9a;font-size:.68rem;font-family:var(--font-mono),ui-monospace,monospace;word-break:break-all}.light-state-line{color:#d0d0d0;text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;gap:.5rem;margin:0;font-size:.78rem;display:flex}.light-tile.is-unavailable{background:linear-gradient(170deg,#261818db,#110b0bd6);border-color:#c7959585}.camera-hub{align-items:start;gap:.75rem;display:grid}.camera-thumb-grid{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:.5rem;display:grid}.camera-thumb{border:1px solid var(--line);cursor:pointer;text-align:left;background:#0c101680;border-radius:4px;gap:.34rem;padding:.28rem;transition:border-color .16s,background .16s;display:grid}.camera-thumb:hover{border-color:var(--line-strong);background:#13182180}.camera-thumb.active{background:#ffffff80;border-color:#fff}.camera-thumb.offline{opacity:.82}.camera-thumb img{aspect-ratio:16/9;border:1px solid var(--line);object-fit:cover;border-radius:3px;width:100%}.camera-thumb-offline{aspect-ratio:16/9;border:1px dashed var(--line);width:100%;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;background:#00000070;border-radius:3px;place-items:center;font-size:.78rem;display:grid}.camera-thumb span{gap:.12rem;font-size:.84rem;display:grid}.camera-thumb span small{color:var(--text-muted);font-size:.7rem}.camera-focus{border:1px solid var(--line);background:linear-gradient(174deg,#0d111880,#080b1180);border-radius:4px;gap:.62rem;padding:.64rem;display:grid}.camera-focus-body{grid-template-columns:minmax(0,1fr) minmax(230px,280px);align-items:start;gap:.64rem;display:grid}.camera-focus-side{align-content:start;gap:.6rem;display:grid}.camera-focus-side h4{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.74rem}.camera-focus header{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.camera-focus h2{margin:0;font-size:1.05rem}.camera-focus p{color:var(--text-muted);margin:.12rem 0 0;font-size:.8rem}.camera-live-pill{border:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.14rem .54rem;font-size:.71rem}.camera-live-pill.online{color:#e1efe1;background:#3d5d3d59;border-color:#badfba85}.camera-live-pill.offline{color:#dedede;background:#4c4c4c4d;border-color:#b2b2b285}.camera-focus-img{border:1px solid var(--line);object-fit:cover;background:#080808;border-radius:4px;width:100%;min-height:220px;max-height:46vh}.camera-focus-placeholder{height:220px}.ptz-pad{grid-template-columns:repeat(3,minmax(0,54px));grid-template-areas:".up.""left center right"".down.""zoom-in zoom-out.";align-items:center;gap:.34rem;display:grid}.ptz-arrow{border:1px solid var(--line);color:#ececec;cursor:pointer;background:#ffffff80;border-radius:4px;width:54px;height:40px;padding:0}.ptz-arrow:hover{background:#ffffff2e}.ptz-arrow:disabled{opacity:.55;cursor:not-allowed}.ptz-arrow.up{grid-area:up}.ptz-arrow.left{grid-area:left}.ptz-arrow.center{grid-area:center}.ptz-arrow.right{grid-area:right}.ptz-arrow.down{grid-area:down}.ptz-arrow.zoom-in{grid-area:zoom-in}.ptz-arrow.zoom-out{grid-area:zoom-out}.ptz-panel,.playback-panel{border:1px solid var(--line);background:#080a1280;border-radius:4px;gap:.42rem;padding:.45rem;display:grid}.playback-panel-lite{gap:.28rem;width:100%;display:grid}.playback-panel-lite label{color:var(--text-muted);font-size:.74rem}.playback-panel-lite input{border:1px solid var(--line);color:inherit;background:#080a1280;border-radius:4px;padding:.38rem .45rem}.playback-segments{gap:.33rem;max-height:196px;display:grid;overflow:auto}.segment-btn{border:1px solid var(--line);color:#f0f3f7;text-align:left;cursor:pointer;font-family:var(--font-mono),ui-monospace,monospace;background:#ffffff80;border-radius:4px;padding:.36rem .45rem;font-size:.73rem}.segment-btn:hover{background:#ffffff2e}.playback-video{border:1px solid var(--line);background:#000;border-radius:4px;width:100%;min-height:150px}.camera-error{color:#e7b1ab;margin:0;font-size:.76rem}.camera-placeholder{border:1px dashed var(--line);height:168px;color:var(--text-muted);background:#ffffff08;border-radius:4px;place-items:center;display:grid}.camera-placeholder.camera-focus-placeholder{height:220px}.offline-banner,.error-banner,.loading{border:1px solid;border-radius:4px;margin:0;padding:.62rem .68rem;font-size:.9rem}.offline-banner{color:#edf2fb;background:#ffffff80;border-color:#f0f4fc6b}.error-banner{color:var(--error);background:#57211e66;border-color:#ffa89d8c}.loading{border-color:var(--line);color:var(--text-muted);background:#ffffff12}.start-hub{flex-direction:column;align-items:stretch;gap:.9rem;width:100%;min-width:0;display:flex;position:relative;overflow:hidden visible}.start-hub>.card{margin-top:0}.start-section{width:100%;overflow-x:hidden}.start-hub>.card{align-self:stretch;width:100%;min-width:0;max-width:100%;min-height:0;overflow:hidden}.start-section{isolation:isolate;flex-direction:column;align-self:stretch;gap:.72rem;width:100%;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden visible}.start-hub .card{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.start-section__head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.8rem;min-width:0;display:grid}.start-section__head>div{min-width:0}.start-section__head h2{letter-spacing:.02em;min-width:0;margin:0;font-size:1rem}.start-section__head p{color:var(--text-muted);min-width:0;margin:.14rem 0 0;font-size:.84rem}.start-section--cameras{gap:.8rem}.start-scenario-grid,.start-room-grid,.start-summary-list{box-sizing:border-box;align-items:stretch;gap:.55rem;width:100%;min-width:0;display:grid}.start-scenario-grid,.start-room-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.start-summary-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:minmax(min-content,auto)}.start-summary-list .start-summary-card{min-width:0}.start-action-button,.start-room-button,.start-summary-card{border:1px solid var(--line);box-sizing:border-box;background:linear-gradient(160deg,#ffffff0f,#0a0e166b);border-radius:6px;width:100%;min-width:0;padding:.72rem .78rem}.start-action-button,.start-room-button{text-align:left;cursor:pointer;gap:.18rem;transition:transform .16s,border-color .16s,background .16s;display:grid}.start-action-button:hover,.start-room-button:hover{border-color:var(--line-strong);transform:translateY(-1px)}.start-action-button:disabled,.start-room-button:disabled{opacity:.58;cursor:not-allowed;transform:none}.start-action-button strong,.start-room-button strong,.start-summary-card strong{min-width:0;font-size:.92rem;line-height:1.15}.start-action-button span,.start-room-button span,.start-summary-card p,.start-summary-card small{color:var(--text-muted)}.start-action-button span,.start-room-button span{font-size:.82rem}.start-room-button.is-on{background:linear-gradient(155deg,#ffcc5238,#ffffff1a);border-color:#ffc83db8}.start-summary-card{gap:.48rem;width:100%;min-width:0;display:grid;overflow:hidden}.start-summary-card header{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;min-width:0;display:grid}.start-summary-card__meta{flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;display:flex}.start-summary-card p,.start-summary-card small{margin:0;font-size:.82rem}.start-summary-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-width:0;margin:0;display:grid}.start-summary-card dl div{gap:.08rem;min-width:0;display:grid}.start-summary-card dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.start-summary-card dd{margin:0;font-size:.88rem;font-weight:700}.start-status-pill{border:1px solid var(--line);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;justify-content:center;align-items:center;padding:.18rem .52rem;font-size:.72rem;display:inline-flex}.start-status-pill.is-live{color:#ffddb0;background:#9f5b1847;border-color:#ffb75e9e}.start-source-pill{border:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.14rem .47rem;font-size:.7rem;display:inline-flex}.start-source-pill--ha{color:#c7d5ff;background:#4365d338;border-color:#8ca6ff99}.start-source-pill--tesla{color:#ffd0d0;background:#d3484833;border-color:#ff7f7f94}.start-summary-card__meta small{color:var(--text-muted);font-size:.8rem}.start-summary-card,.start-action-button,.start-room-button,.start-section__head,.start-source-pill,.start-status-pill,.start-camera-thumb{min-width:0}.start-source-pill,.start-status-pill{white-space:normal}.start-section__head p,.start-summary-card strong,.start-summary-card p,.start-summary-card small,.start-action-button strong,.start-room-button strong,.start-action-button span,.start-room-button span,.start-camera-thumb span strong,.start-camera-thumb span small{overflow-wrap:anywhere;word-break:break-word}.start-verisure{gap:.72rem;width:100%;min-width:0;position:relative;overflow:visible}.start-verisure-head{grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:.7rem;width:100%;min-width:0;max-width:100%;display:grid}.start-verisure-head>div{min-width:0}.start-verisure-head p{color:var(--text-muted);overflow-wrap:anywhere;min-width:0;margin:.14rem 0 0;font-size:.84rem}.verisure-logo{object-fit:contain;flex:0 auto;justify-self:end;width:min(124px,34vw);max-width:40%;height:auto}.alarm-control-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;display:grid}.alarm-control-row button,.start-action-button,.start-room-button{box-sizing:border-box;white-space:normal;min-width:0}.alarm-display,.alarm-input,.alarm-keypad,.start-summary-list,.start-room-grid,.start-scenario-grid,.start-camera-grid{min-width:0}@media (max-width:520px){.start-hub{gap:.7rem}.start-camera-grid,.start-summary-list,.start-scenario-grid,.start-room-grid,.ismartgate-start-grid,.ismartgate-grid{grid-template-columns:1fr!important}.alarm-control-row{gap:.32rem;grid-template-columns:minmax(0,1fr)!important}}.ismartgate-start-grid,.ismartgate-grid{gap:.42rem;width:100%;min-width:0;display:grid}.ismartgate-start-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ismartgate-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ismartgate-card{border:1px solid var(--line);text-align:left;cursor:pointer;background:linear-gradient(160deg,#ffffff0f,#0a0e166b);border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.72rem;padding:.66rem .75rem;transition:transform .16s,border-color .16s,background .16s;display:grid}.ismartgate-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.ismartgate-card:disabled{opacity:.65;cursor:not-allowed;transform:none}.ismartgate-card.is-open{background:linear-gradient(160deg,#ffaa5c3d,#582a122e);border-color:#ffb163b8}.ismartgate-card.is-closed{background:linear-gradient(160deg,#4f8a6c2e,#0c181242);border-color:#8ddab094}.ismartgate-card.is-unreliable{border-style:dashed}.ismartgate-card--compact{gap:.58rem;padding:.56rem .62rem}.ismartgate-card__icon{color:#f5f8faeb;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;justify-content:center;align-items:center;width:2.45rem;height:2.45rem;display:inline-flex}.ismartgate-card.is-open .ismartgate-card__icon{color:#ffd2b2;background:#9c501c57;border-color:#ffb97ab8}.ismartgate-card.is-closed .ismartgate-card__icon{color:#d3ffe6;background:#2b704f52;border-color:#8ae3b599}.ismartgate-card__copy{gap:.12rem;min-width:0;display:grid}.ismartgate-card__copy strong{font-size:.9rem;line-height:1.12}.ismartgate-card__copy small,.ismartgate-card__meta{color:var(--text-muted);line-height:1.15}.ismartgate-card__copy small{font-size:.8rem}.ismartgate-card__meta{font-size:.74rem}.garage-hub{gap:.75rem;display:grid}.garage-hub-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;display:flex}.garage-hub-head h2{letter-spacing:.02em;margin:0;font-size:1rem}.garage-hub-head p{color:var(--text-muted);margin:.14rem 0 0;font-size:.84rem}.start-camera-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,auto);gap:.55rem;width:100%;min-width:0;display:grid}.start-camera-thumb{border:1px solid var(--line);cursor:pointer;text-align:left;background:#0d1118d6;border-radius:6px;gap:.38rem;padding:.38rem;transition:border-color .16s,transform .16s,background .16s;display:grid}.start-camera-thumb:hover{border-color:var(--line-strong);background:#141922e6;transform:translateY(-1px)}.start-camera-thumb img{aspect-ratio:16/9;border:1px solid var(--line);object-fit:cover;background:#ffffff08;border-radius:4px;width:100%}.start-camera-thumb span{gap:.08rem;display:grid}.start-camera-thumb span strong{font-size:.88rem}.start-camera-thumb span small{color:var(--text-muted);font-size:.76rem}.start-camera-thumb.offline{opacity:.82}.start-camera-thumb__fallback{aspect-ratio:16/9;border:1px solid var(--line);width:100%;color:var(--text-muted);background:#ffffff0a;border-radius:4px;place-items:center;display:grid}.kiosk-unauthorized{text-align:center}.kiosk-unauthorized p{max-width:680px;color:var(--text-muted)}.app-toolbar{border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(160deg,#0c1017b8,#080b10c7);border-radius:4px;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem .9rem;display:flex}.app-toolbar-left{gap:.4rem;display:grid}.app-toolbar p{color:var(--text-muted);margin:0;font-size:.88rem}.app-toolbar-nav{flex-wrap:wrap;gap:.45rem;display:flex}.app-toolbar-nav a{border:1px solid var(--line);background:var(--glass);border-radius:4px;padding:.36rem .62rem;font-size:.9rem;text-decoration:none}.app-toolbar-nav a.active{color:#0b0f14;background:#fff;border-color:#fff}.excel-page{gap:.75rem;display:grid}.excel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.7rem;display:flex}.excel-header h1{margin:0;font-size:1.3rem}.excel-header p{color:var(--text-muted);margin:.2rem 0 0}.excel-generated{font-family:var(--font-mono),ui-monospace,monospace;font-size:.8rem}.excel-actions{flex-wrap:wrap;gap:.5rem;display:flex}.excel-filterbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.excel-filterbar label{color:var(--text-muted);font-size:.9rem}.excel-filterbar input{min-width:min(460px,100%)}.excel-categories{flex-wrap:wrap;gap:.45rem;display:flex}.excel-category-chip{border:1px solid var(--line);background:#ffffff12;border-radius:999px;align-items:center;gap:.45rem;padding:.34rem .6rem;font-size:.82rem;display:inline-flex}.excel-category-name,.code-col{font-family:var(--font-mono),ui-monospace,monospace}.excel-grid-wrap{border:1px solid var(--line);background:#0a0d12bd;border-radius:4px;max-height:72vh;overflow:auto}.excel-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.84rem}.excel-grid th,.excel-grid td{text-align:left;vertical-align:top;white-space:nowrap;border-bottom:1px solid #85a8d033;border-right:1px solid #85a8d038;padding:.45rem .52rem}.excel-grid th{z-index:2;color:#efefef;background:linear-gradient(175deg,#0f131af5,#0a0d12f5);position:sticky;top:0}.excel-grid tr:nth-child(2n) td{background:#ffffff05}.excel-grid th:last-child,.excel-grid td:last-child{border-right:0}.excel-grid tbody tr:last-child td{border-bottom:0}.excel-sort-btn{font:inherit;color:inherit;font-weight:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0}.index-col{text-align:right;width:48px;color:var(--text-muted)}@media (max-width:1140px){.start-camera-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-thumb-grid{grid-template-columns:repeat(auto-fit,minmax(142px,1fr))}.camera-focus-body{grid-template-columns:1fr}}@media (max-width:900px){.cards-grid,.kiosk .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-toolbar{flex-direction:column;align-items:flex-start}.alarm-control-row,.start-scenario-grid,.start-room-grid,.start-summary-list,.ismartgate-start-grid{grid-template-columns:1fr}.start-verisure-head{grid-template-columns:minmax(0,1fr)}.verisure-logo{justify-self:start;width:min(110px,46vw)}}@media (max-width:720px){.app-page,.kiosk-page{padding:.65rem}.dashboard,.excel-page{padding:.7rem}.card{min-height:146px}.top-menu button{padding:.45rem .62rem;font-size:.87rem}.camera-thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-focus-img,.camera-placeholder.camera-focus-placeholder{height:210px;min-height:210px}.lights-grid,.ismartgate-grid,.light-dimmer,.start-camera-grid,.start-summary-card dl{grid-template-columns:1fr}.ptz-pad{grid-template-columns:repeat(3,minmax(0,48px))}.ptz-arrow{width:48px}.excel-filterbar input{min-width:100%}}@media (max-width:400px){.start-hub{gap:.75rem}.start-section__head h2{font-size:.95rem}.start-section__head{grid-template-columns:minmax(0,1fr)}.start-section__head p{min-width:0}.start-section__head p,.start-verisure-head p,.start-summary-card small,.start-summary-card p,.start-source-pill,.start-status-pill,.start-camera-thumb span small{font-size:.76rem}.start-action-button,.start-room-button,.start-summary-card{padding:.64rem .68rem}.start-action-button strong,.start-room-button strong{font-size:.88rem}.start-verisure-head{gap:.45rem}.verisure-logo{width:100px;max-width:46vw}.start-summary-list,.start-scenario-grid,.start-room-grid,.start-summary-card dl{gap:.4rem}.start-summary-card dl{grid-template-columns:1fr}}.energy-hub{gap:.95rem;display:grid}.energy-hub-head,.energy-chart-card header,.energy-device-card header,.energy-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.energy-hub-head h2,.energy-chart-card h3,.energy-device-card h3,.energy-hero-card h3{letter-spacing:.02em;margin:0;font-size:1rem}.energy-hub-head p,.energy-chart-card p,.energy-device-card p,.energy-stat-card small,.energy-hero-kicker,.energy-market-note p{color:var(--text-muted);margin:0}.energy-head-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.energy-head-tags{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.energy-hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr);gap:.75rem;display:grid}.energy-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.energy-hero-card,.energy-stat-card,.energy-chart-card,.energy-device-card{border:1px solid var(--line);background:linear-gradient(#ffffff14,#070c13e0);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 18px 36px #00000047}.energy-hero-card:before,.energy-stat-card:before,.energy-chart-card:before,.energy-device-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff47,#fff0);width:100%;height:1px;position:absolute;inset:0 auto auto 0}.energy-hero-card{gap:1rem;min-height:240px;padding:1.1rem;display:grid}.energy-hero-card--huawei{background:radial-gradient(circle at 0 0,#63d69938,#0000 38%),linear-gradient(#ffffff14,#070c13e6)}.energy-hero-card--market{background:radial-gradient(circle at 100% 0,#f6b54838,#0000 40%),linear-gradient(#ffffff14,#070c13e6)}.energy-hero-card.is-online{border-color:#76f5af6b}.energy-hero-card.is-offline{border-color:#ffa66f6b}.energy-hero-card.is-market-live{border-color:#ffd25461}.energy-hero-card.is-market-muted{border-color:#ffa66f61}.energy-hero-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.energy-hero-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.energy-hero-main div{gap:.28rem;display:grid}.energy-hero-main span{text-transform:uppercase;letter-spacing:.08em;color:#ffffffb3;font-size:.78rem}.energy-hero-main strong{letter-spacing:-.03em;font-size:clamp(1.55rem,3vw,2.4rem);line-height:1}.energy-hero-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.energy-inline-stat{background:#04080e75;border:1px solid #ffffff14;border-radius:10px;gap:.22rem;padding:.7rem .8rem;display:grid}.energy-inline-label{text-transform:uppercase;letter-spacing:.12em;color:#ffffff8a;font-size:.68rem}.energy-inline-value{font-size:.9rem;font-weight:600}.energy-market-note{gap:.6rem;display:grid}.energy-price-band{background:#ffffff14;border:1px solid #ffffff1a;border-radius:999px;height:12px;position:relative;overflow:hidden}.energy-price-band-fill{background:linear-gradient(90deg,#60deaaf2,#ffd454f2,#ff874bf2);position:absolute;inset:0}.energy-price-band-marker{background:#f8fafc;border:2px solid #05080ce6;border-radius:999px;width:14px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #ffffff29}.energy-band-scale{color:#ffffffa8;justify-content:space-between;align-items:center;gap:.45rem;font-size:.74rem;display:flex}.energy-stat-card{align-content:start;gap:.32rem;min-height:124px;padding:.95rem;display:grid}.energy-stat-card strong{letter-spacing:.01em;font-size:clamp(1.05rem,2vw,1.55rem)}.energy-stat-label{color:#ffffffd1;text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.78rem}.energy-stat-icon{background:#080a1280;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.energy-stat-card.accent-current{border-color:#ffd25470}.energy-stat-card.accent-current .energy-stat-icon{color:#ffd254;background:#ffd25424}.energy-stat-card.accent-next .energy-stat-icon{color:#77c3ff;background:#77c3ff24}.energy-stat-card.accent-low .energy-stat-icon{color:#5bdbad;background:#5bdbad24}.energy-stat-card.accent-battery .energy-stat-icon{color:#76f5af;background:#76f5af24}.energy-stat-card.accent-warning .energy-stat-icon{color:#ffa66f;background:#ffa66f24}.energy-chart-card,.energy-device-card{padding:1rem}.energy-chart-card header,.energy-device-card header{margin-bottom:.9rem}.energy-chart-scroll{padding-bottom:.3rem;overflow-x:auto}.energy-chart-grid{align-items:end;gap:.22rem;min-height:220px;display:grid}.energy-bar{background:linear-gradient(#6697ffeb,#2b50afd1);border-radius:999px 999px 4px 4px;min-width:8px;position:relative;box-shadow:inset 0 1px #ffffff38}.energy-bar.is-current{background:linear-gradient(#ffd454fa,#ff9e22e0);box-shadow:0 0 0 1px #ffdb6699,0 0 24px #ffb04859}.energy-bar span{transform-origin:50%;color:#ffffff73;letter-spacing:.02em;opacity:0;font-size:.56rem;position:absolute;bottom:-1.25rem;left:50%;transform:translate(-50%)rotate(-90deg)}.energy-bar:hover span,.energy-bar.is-current span{opacity:1}.energy-empty-state{text-align:center;background:#03070c66;border:1px dashed #ffffff24;border-radius:10px;place-items:center;gap:.28rem;min-height:180px;display:grid}.energy-empty-state p,.energy-empty-state small{margin:0}.energy-empty-state small{color:var(--text-muted)}.energy-detail-grid{grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:.75rem;display:grid}.energy-device-card.is-online{border-color:#76f5af73}.energy-device-card.is-offline{border-color:#ffa66f66}.energy-pill{text-transform:uppercase;letter-spacing:.06em;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .62rem;font-size:.74rem;display:inline-flex}.energy-pill.online{color:#76f5af;background:#76f5af14}.energy-pill.offline{color:#ffa66f;background:#ffa66f14}.energy-pill.neutral{color:#dfe7f5;background:#080a1280}.energy-device-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:0;display:grid}.energy-device-list div{gap:.18rem;display:grid}.energy-device-list dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}.energy-device-list dd{margin:0;font-weight:600}.energy-device-hints{gap:.5rem;margin-top:.85rem;display:grid}.energy-device-hints p{background:#080a1280;border:1px solid #ffffff14;border-radius:10px;margin:0;padding:.7rem .8rem}@media (max-width:980px){.energy-hero-grid,.energy-summary-grid,.energy-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-hero-meta{grid-template-columns:1fr}}@media (max-width:640px){.energy-hero-grid,.energy-summary-grid,.energy-detail-grid,.energy-device-list,.energy-hero-main{grid-template-columns:1fr}.energy-head-meta,.energy-head-tags{grid-template-columns:1fr;display:grid}.energy-chart-grid{min-height:180px}.energy-head-meta{justify-content:stretch;width:100%}.energy-head-meta .cta{width:100%}.energy-head-tags{width:100%;display:grid}}.weather-hub{gap:.7rem;display:grid}.weather-hero,.weather-hourly-card,.sea-temperature-card,.weather-sensor-card,.weather-day-card{border:1px solid var(--line);background:linear-gradient(#ffffff0f,#0a0f16d6);border-radius:8px;box-shadow:0 14px 30px #0000003d}.weather-hero{background:radial-gradient(680px 220px at 0 0,#5798ff2e,#0000 62%),radial-gradient(420px 180px at 100% 100%,#ffb74d1f,#0000 62%),linear-gradient(#ffffff0d,#0a0f16d6);grid-template-columns:minmax(0,1.2fr) minmax(220px,.7fr);gap:.85rem;padding:.9rem;display:grid}.weather-kicker{text-transform:uppercase;letter-spacing:.12em;color:#d7e6ffb8;margin:0 0 .18rem;font-size:.68rem}.weather-hero h2,.weather-hourly-card h3,.sea-temperature-card h3,.weather-sensor-card h3,.weather-day-card strong,.sea-spot-card h4{margin:0}.weather-hero h2{font-size:clamp(1rem,1.8vw,1.3rem)}.weather-hero-now{align-items:center;gap:.7rem;margin-top:.55rem;display:flex}.weather-hero-now strong{font-size:clamp(1.35rem,3vw,2.1rem);line-height:1;display:block}.weather-hero-icon,.weather-inline-icon{background:#080a1280;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.weather-hero-icon{width:3rem;height:3rem}.weather-inline-icon{width:1.7rem;height:1.7rem}.weather-inline-icon--large{width:2rem;height:2rem}.weather-hero-icon--sun,.weather-inline-icon--sun{color:#ffd35a;background:#ffd35a1f}.weather-hero-icon--moon,.weather-inline-icon--moon{color:#b9d1ff;background:#8caaff1f}.weather-hero-icon--rain,.weather-inline-icon--rain{color:#75c8ff;background:#75c8ff1f}.weather-hero-icon--cloud,.weather-inline-icon--cloud,.weather-hero-icon--fog,.weather-inline-icon--fog{color:#d8e1f2;background:#d8e1f214}.weather-hero-icon--snow,.weather-inline-icon--snow{color:#eaf7ff;background:#eaf7ff1f}.weather-hero-icon--storm,.weather-inline-icon--storm{color:#ffcb6b;background:#ffb43c1f}.weather-glyph--sun{animation:16s linear infinite weather-spin}.weather-glyph--moon{animation:4.8s ease-in-out infinite weather-float}.weather-glyph--cloud,.weather-glyph--fog{animation:5.2s ease-in-out infinite weather-drift}.weather-glyph--rain,.weather-glyph--storm{animation:1.6s ease-in-out infinite weather-rain}.weather-glyph--snow{animation:3.6s ease-in-out infinite weather-float}.weather-hero-now p,.weather-hero-meta,.weather-hourly-card p,.sea-temperature-card p,.weather-sensor-card p,.sea-spot-card p{color:var(--text-muted);margin:0}.weather-hero-meta{font-size:.82rem}.weather-hero-side{align-content:space-between;gap:.55rem;display:grid}.weather-stat-pills{flex-wrap:wrap;gap:.4rem;display:flex}.weather-stat-pills span,.sea-temp-badge{background:#080a1280;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .5rem;font-size:.72rem;display:inline-flex}.weather-hourly-card,.sea-temperature-card,.weather-sensor-card{padding:.85rem}.weather-hourly-card header,.sea-temperature-card header,.weather-sensor-card header,.sea-spot-card header,.weather-day-card header{justify-content:space-between;align-items:flex-start;gap:.6rem;margin-bottom:.6rem;display:flex}.weather-hourly-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:.45rem;display:grid}.weather-hourly-slot{text-align:center;background:#080a1280;border:1px solid #ffffff12;border-radius:8px;justify-items:center;gap:.18rem;padding:.55rem .45rem;display:grid}.weather-hourly-slot strong,.weather-hourly-slot b{font-size:.82rem}.weather-hourly-slot small,.weather-hourly-slot span,.weather-day-card dl,.weather-day-card p{color:var(--text-muted)}.weather-hourly-slot small{font-size:.68rem}.weather-daily-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;display:grid}.weather-day-card{padding:.75rem}.weather-day-card p{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.weather-day-temps{align-items:baseline;gap:.45rem;margin-bottom:.5rem;display:flex}.weather-day-temps b{font-size:1.15rem}.weather-day-card dl{gap:.32rem;margin:0;font-size:.74rem;display:grid}.weather-day-card dl div{justify-content:space-between;align-items:center;gap:.45rem;display:flex}.weather-day-card dt,.weather-day-card dd{margin:0}.sea-temperature-grid,.weather-sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.sea-spot-card,.weather-sensor-grid article{background:#080a1280;border:1px solid #ffffff12;border-radius:8px;padding:.7rem}.sea-spot-card strong{font-size:1rem}.sea-spot-forecast{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;display:grid}.sea-spot-forecast div{background:#080a1280;border-radius:6px;gap:.14rem;padding:.35rem;font-size:.72rem;display:grid}.sea-spot-forecast span,.weather-sensor-grid article span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}.weather-sensor-grid article{gap:.28rem;min-height:84px;display:grid}.weather-sensor-grid article strong{font-size:.82rem;line-height:1.3}.weather-sensor-panel--indoor{grid-column:span 2}.weather-indoor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:.45rem;display:grid}.weather-indoor-card{background:#080a1280;border:1px solid #ffffff14;border-radius:7px;gap:.12rem;padding:.45rem .5rem;display:grid}.weather-indoor-card p,.weather-indoor-card small{color:var(--text-muted);margin:0}.weather-indoor-card p{text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}.weather-indoor-card b{font-size:1rem}.weather-indoor-card small{font-size:.7rem}.weather-indoor-spark{width:100%;height:1.9rem;margin-top:.12rem;overflow:visible}.weather-indoor-spark polyline{stroke:#ffd35a;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;opacity:.95;filter:drop-shadow(0 0 6px #ffd35a47)}@keyframes weather-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes weather-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes weather-drift{0%,to{transform:translate(0)}50%{transform:translate(1.5px)}}@keyframes weather-rain{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.9;transform:translateY(1.5px)}}@media (max-width:1100px){.weather-hourly-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.weather-daily-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:820px){.weather-hero,.weather-daily-grid,.sea-temperature-grid,.weather-sensor-grid,.weather-indoor-grid{grid-template-columns:1fr}.weather-sensor-panel--indoor{grid-column:span 1}.weather-hourly-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:560px){.weather-hourly-grid,.sea-spot-forecast{grid-template-columns:repeat(2,minmax(0,1fr))}}.lights-hub--compact .lights-compact-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem;display:grid}.light-tile--compact{gap:.36rem;padding:.52rem}.light-chip{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#ffffff14;border-radius:999px;padding:.34rem .72rem}.light-chip.is-on{color:#0c0f14;background:#f0f0f0}.light-mini-meta{color:var(--text-muted);justify-content:space-between;gap:.4rem;font-size:.72rem;display:flex}.direct-hub{gap:.8rem;display:grid}.direct-hub__head{border:1px solid var(--line);background:linear-gradient(160deg,#11161ce6,#070a0fdb);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.8rem;display:flex}.direct-hub__head h2{margin:.18rem 0 .12rem}.direct-hub__eyebrow{color:#d4b277;text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:.72rem}.direct-hub__sub{color:var(--text-muted);margin:0}.direct-pill{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.28rem .68rem;font-size:.74rem}.direct-pill.online{background:#b3e8ab24;border-color:#b3e8ab59}.direct-pill.offline{background:#e8abab1f;border-color:#e8abab59}.direct-hero{grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:.8rem;display:grid}.direct-hero__primary,.direct-panel,.direct-device-card,.media-now,.media-tv-wall,.media-spotify__devices,.start-mini-card{border:1px solid var(--line);background:linear-gradient(165deg,#0e1218e0,#070a0fe0);border-radius:8px;padding:.8rem}.direct-hero__primary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;display:grid}.direct-hero__stat{background:#ffffff08;border:1px solid #ffffff14;border-radius:6px;gap:.32rem;padding:.72rem;display:grid}.direct-hero__stat span{color:var(--text-muted);font-size:.76rem}.direct-hero__stat strong{font-size:1.22rem}.direct-panel{gap:.7rem;display:grid}.direct-panel__meta{gap:.3rem;display:grid}.direct-panel__meta p,.direct-device-meta p{color:var(--text-muted);margin:0}.compact-action-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;display:grid}.direct-card-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.8rem;display:grid}.direct-device-card{gap:.7rem;display:grid}.direct-device-card header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.direct-device-card header p{color:var(--text-muted);margin:.18rem 0 0;font-size:.82rem}.media-spotify{gap:.8rem;display:grid}.media-spotify__layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:.8rem;display:grid}.media-spotify__hero{background:radial-gradient(circle at 0 0,#47c98733,#0000 38%),radial-gradient(circle at 100%,#547fff2e,#0000 32%),linear-gradient(160deg,#0c1219f5,#05080df5);border:1px solid #ffffff14;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);align-items:center;gap:1rem;padding:.95rem;display:grid}.media-spotify__hero-copy{gap:.3rem;display:grid}.media-spotify__hero-tools{gap:.8rem;display:grid}.media-spotify__hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.media-search{background:#090d12d1;border:1px solid #ffffff14;border-radius:999px;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.6rem;padding:.72rem .95rem;display:grid}.media-search input{color:var(--text);font:inherit;background:0 0;border:0;min-width:0}.media-search input:focus{outline:none}.media-spotify__sidebar,.media-spotify__main,.media-library-grid,.media-search-grid,.media-tv-list,.media-target-list,.media-track-list,.media-tile-grid{gap:.6rem;display:grid}.media-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-search-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.media-now{grid-template-columns:180px minmax(0,1fr);gap:1rem;min-height:290px;display:grid}.media-now__art{background-color:#0000;background-image:linear-gradient(165deg,#2c3a4aa6,#0b0e12d1),linear-gradient(145deg,#ffffff0f,#ffffff05);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #ffffff14;border-radius:10px;min-height:180px}.media-now__content{align-content:center;gap:.75rem;display:grid}.media-now h3{margin:0;font-size:clamp(1.5rem,3vw,2.4rem)}.media-now p{color:var(--text-muted);margin:0}.media-now__eyebrow,.media-panel__eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#90d0a4;margin:0;font-size:.72rem}.media-now__controls{flex-wrap:wrap;gap:.5rem;display:flex}.media-progress{color:var(--text-muted);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.55rem;font-size:.8rem;display:grid}.media-progress__bar{background:#ffffff14;border-radius:999px;height:7px;position:relative;overflow:hidden}.media-progress__bar span{border-radius:inherit;background:linear-gradient(90deg,#45cc89,#8fe0a3);position:absolute;inset:0 auto 0 0}.media-volume{grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid}.media-volume input[type=range]{width:100%}.media-panel,.media-target,.media-tv-card,.media-track,.media-tile,.media-artist{border:1px solid var(--line);background:linear-gradient(165deg,#0e1218e0,#070a0fe6);border-radius:10px;gap:.7rem;padding:.8rem;display:grid}.media-panel__head{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.media-panel__head h3,.media-search-grid h4{margin:.12rem 0 0}.media-panel--connect{align-content:center;min-height:220px}.media-target{gap:.5rem}.media-target.is-active{background:radial-gradient(circle at 100% 0,#45cc891f,#0000 26%),linear-gradient(165deg,#0f1814f2,#070a0feb);border-color:#45cc8973}.media-target--cast{grid-template-columns:minmax(0,1fr) auto;align-items:center}.media-target__button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:.6rem;padding:0;display:grid}.media-target__icon{background:#ffffff0f;border-radius:999px;place-items:center;width:32px;height:32px;display:inline-grid}.media-target__text{gap:.14rem;display:grid}.media-target__text strong,.media-track__copy strong,.media-tile strong{font-size:.92rem}.media-target__text span,.media-tv-card p,.media-track__copy span,.media-tile span,.media-empty,.media-cast-meta p{color:var(--text-muted);margin:0;font-size:.8rem}.media-tv-card{gap:.55rem}.media-track{text-align:left;cursor:pointer;grid-template-columns:46px minmax(0,1fr) auto;align-items:center}.media-track__art,.media-tile__art{background-color:#0000;background-image:linear-gradient(155deg,#3a495cbf,#0e1115f2),linear-gradient(145deg,#ffffff12,#ffffff05);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-radius:8px;width:46px;height:46px}.media-track__copy{gap:.14rem;min-width:0;display:grid}.media-tile-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.media-tile-grid--compact{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.media-tile{text-align:left;cursor:pointer;align-content:start}.media-tile__art{aspect-ratio:1;width:100%;height:auto}.media-artist-list{gap:.45rem;display:grid}.media-artist{grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.5rem}.media-cast-meta{gap:.7rem;display:grid}.start-mini-card{align-content:start;gap:.6rem;display:grid}.start-mini-card header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.sauna-mini-card__stats{flex-wrap:wrap;gap:.8rem;display:flex}.sauna-mini-card__stats p{color:var(--text-muted);align-items:center;gap:.35rem;margin:0;display:inline-flex}@media (max-width:920px){.direct-hero,.media-spotify__layout,.media-spotify__hero,.media-now,.media-search-grid,.media-library-grid{grid-template-columns:1fr}}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-home394-sans:ui-sans-serif,system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-home394-display:ui-serif,"Palatino Linotype",Palatino,"Book Antiqua",Georgia,Cambria,serif;--home394-bg:#edf3fb;--home394-bg-accent:#d4e6fb;--home394-surface:#fafdffe6;--home394-surface-strong:#fff;--home394-surface-soft:#f0f8ffd1;--home394-line:#24548124;--home394-line-strong:#2454813d;--home394-text:#10233a;--home394-muted:#4e637a;--home394-accent:#0b74de;--home394-accent-soft:#0b74de24;--home394-accent-strong:#0859ad;--home394-danger:#bb4d2f;--home394-warning:#9a6d10;--home394-success:#2c8355;--home394-shadow:0 22px 60px #0f315c24;--home394-sidebar-width:17rem;--home394-glow-a:#9dccff73;--home394-glow-b:#71aef04d}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--home394-bg:#09121c;--home394-bg-accent:#12253a;--home394-surface:#0c1824eb;--home394-surface-strong:#132739;--home394-surface-soft:#112130d1;--home394-line:#b3d6f724;--home394-line-strong:#b3d6f73d;--home394-text:#e8f2fb;--home394-muted:#9eb9d3;--home394-accent:#5fb2ff;--home394-accent-soft:#5fb2ff2e;--home394-accent-strong:#a6d4ff;--home394-danger:#ff8e6c;--home394-warning:#f2c668;--home394-success:#8ddc9c;--home394-shadow:0 26px 70px #00000047;--home394-glow-a:#5fb2ff38;--home394-glow-b:#2767a633}html,body{min-height:100%}html{background:radial-gradient(circle at top left,var(--home394-glow-a),transparent 32%),radial-gradient(circle at top right,var(--home394-glow-b),transparent 28%),var(--home394-bg)}.home394-body{background:radial-gradient(circle at top left,var(--home394-glow-a),transparent 28%),radial-gradient(circle at top right,var(--home394-glow-b),transparent 24%),linear-gradient(180deg,#ffffff0f,transparent 24%),var(--home394-bg);color:var(--home394-text);font-family:var(--font-home394-sans),"Segoe UI",sans-serif}html[data-theme=dark][data-theme-accent=cosmos]{background:radial-gradient(circle at 78% 20%,#ff3dd66b,#0000 14%),radial-gradient(circle at 18% 62%,#3683ff57,#0000 18%),radial-gradient(circle at 50% 52%,#923fff2e,#0000 22%),linear-gradient(140deg,#02020a 0%,#090118 36%,#140329 66%,#040511 100%)}html[data-theme=dark][data-theme-accent=cosmos] .home394-body{background-color:#0000;background-image:radial-gradient(60rem 18rem at -4% 64%,#3079ff4d,#0000 42%),radial-gradient(58rem 22rem at 98% 38%,#ff31d657,#0000 40%),radial-gradient(32rem 12rem at 56% 72%,#824cff33,#0000 36%),linear-gradient(162deg,#0000 12%,#ffffff1a 25%,#0000 36%),linear-gradient(198deg,#0000 18%,#3989ff2e 33%,#0000 47%),linear-gradient(132deg,#0000 46%,#ff34ca33 60%,#0000 74%),linear-gradient(#ffffff08,#0000 22%),linear-gradient(140deg,#02020a 0%,#090118 36%,#140329 66%,#040511 100%);background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto,auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box}.home394-body *,.home394-body :before,.home394-body :after{box-sizing:border-box}.home394-body ::selection{background:color-mix(in srgb,var(--home394-accent)24%,transparent);color:var(--home394-text)}.home394-body a{color:inherit}.home394-body button,.home394-body input,.home394-body textarea,.home394-body select{font:inherit}.home394-body input,.home394-body textarea,.home394-body select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark] .home394-body input,:root[data-theme=dark] .home394-body textarea,:root[data-theme=dark] .home394-body select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.home394-body select,.home394-body select option{background:var(--home394-surface-strong)!important;color:var(--home394-text)!important}.home394-body :focus-visible{outline:2px solid var(--home394-accent);outline-offset:2px}.home394-body .app-shell{box-sizing:border-box;min-width:0;max-width:100vw;min-height:100vh;overflow-x:hidden}.home394-body .login-page{place-items:center;min-height:100vh;padding:2rem;display:grid}.home394-body .login-form{border:1px solid var(--home394-line);background:linear-gradient(180deg,color-mix(in srgb,var(--home394-accent)10%,transparent),transparent 42%),var(--home394-surface);width:min(100%,26rem);box-shadow:var(--home394-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:1.8rem;gap:.9rem;padding:2rem;display:grid}.home394-body .login-form h1{font-family:var(--font-home394-display),Georgia,serif;letter-spacing:-.05em;margin:0 0 .35rem;font-size:clamp(2rem,5vw,2.8rem);line-height:.95}.home394-body .login-form label{color:var(--home394-muted);font-size:.95rem;font-weight:600}.home394-body .login-form input{border:1px solid var(--home394-line);background:var(--home394-surface-strong);width:100%;color:var(--home394-text);border-radius:1rem;padding:.95rem 1rem}.home394-body .login-form button,.home394-body .logout-button{appearance:none;background:var(--home394-text);color:var(--home394-bg);cursor:pointer;border:0;border-radius:999px;padding:.85rem 1.2rem;transition:transform .16s,opacity .16s,background-color .16s}.home394-body .login-form button:hover,.home394-body .logout-button:hover{opacity:.92;transform:translateY(-1px)}.home394-body .login-form button:disabled{opacity:.65;cursor:progress}.home394-body .error-banner{color:var(--home394-danger);background:#bb4d2f1f;border-radius:1rem;margin:0;padding:.85rem 1rem}.home394-body .kiosk-unauthorized{text-align:center;place-content:center;gap:1rem;min-height:100vh;padding:2rem;display:grid}
