/* Shared Home Agent palette. Layout and device behaviour stay in their original modules. */
:root{--ha-page:#080b15;--ha-surface:#121521;--ha-side:#0d111a;--ha-text:#edf0f8;--ha-muted:#a1abc2;--ha-line:#2b3041;--ha-accent:#a391ff;--ha-soft:#24213f;--ha-primary:linear-gradient(110deg,#6c60f0,#8d54ef);--ha-agent:linear-gradient(105deg,#1c1935,#141427);color-scheme:dark}
html[data-ha-theme="day"]{--ha-page:#f5f6fb;--ha-surface:#fff;--ha-side:#eef0f8;--ha-text:#20263a;--ha-muted:#59647b;--ha-line:#dce0ed;--ha-accent:#6745b3;--ha-soft:#ece6fa;--ha-primary:linear-gradient(110deg,#6c60f0,#854be2);--ha-agent:linear-gradient(105deg,#eee8fc,#f8f5ff);color-scheme:light}
html[data-ha-theme],html[data-ha-theme] body,html[data-ha-theme] body.dark{--bg:var(--ha-page)!important;--card:var(--ha-surface)!important;--soft:var(--ha-soft)!important;--ink:var(--ha-text)!important;--text:var(--ha-text)!important;--muted:var(--ha-muted)!important;--line:var(--ha-line)!important;--border:var(--ha-line)!important;--green:var(--ha-accent)!important;--accent:var(--ha-accent)!important;--active:var(--ha-soft)!important;background-color:var(--ha-page)!important;color:var(--ha-text)!important}
html body :is(.access,.shell,.desktop,main){color:var(--ha-text)}
html body :is(aside,.side,.explanation){background:var(--ha-side)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important}
html body :is(.card,.panel,.formbox,.app,.app-card,.info,.modal,dialog,details,.sidebar,.detail,.empty,.stat,.services,.group){background-color:var(--ha-surface)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important}
html body :is(.story,.hero){background:var(--ha-agent)!important;color:var(--ha-text)!important}
html body :is(h1,h2,h3,h4,label,.title,.brand,.intro h1,.quote p){color:var(--ha-text)!important}
html body :is(.sub,.subtitle,.muted,.small,.crumb,.date,.help,.bottom,.storyfooter,.eyebrow,.intro>p,.quote small,small){color:var(--ha-muted)!important}
html body :is(.badge,.tag,.count,.notice,.banner,.sidebottom,.quote,.icon,.features span){background:var(--ha-soft)!important;color:var(--ha-accent)!important;border-color:var(--ha-line)!important}
html body :is(input,select,textarea){background:var(--ha-surface)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important;accent-color:var(--ha-accent)}
html body :is(input,select,textarea)::placeholder{color:var(--ha-muted)!important;opacity:1}
html body :is(button,.google,.secondary,.action){background-color:var(--ha-surface)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important}
html body :is(.primary,button[type="submit"],.logo,.mobilebrand .logo){background:var(--ha-primary)!important;color:#fff!important;border-color:#8867ee!important}
html body :is(.nav.active,nav a.active,button.active,button.selected,button[aria-pressed="true"]){background:var(--ha-soft)!important;color:var(--ha-accent)!important;border-color:var(--ha-accent)!important}
html body :is(a.link,.row a,.help a,.show,.row button,.message a){color:var(--ha-accent)!important}
html body :is(.top,header,footer,.row,summary,nav,hr,.divider:before,.divider:after){border-color:var(--ha-line)!important}
html body :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--ha-accent)!important;outline-offset:3px}
html body :is(.error,.message[data-state="error"]){color:#f29c9c!important}
html[data-ha-theme="day"] body :is(.error,.message[data-state="error"]){color:#ae3b42!important}
html body .message[data-state="success"]{background:var(--ha-soft)!important;color:var(--ha-accent)!important}
html body .mobilebar{background:var(--ha-side)!important;border-color:var(--ha-line)!important;color:var(--ha-muted)!important}
html body .ha-theme-switch{border:1px solid var(--ha-line);border-radius:10px;min-height:44px;padding:10px 14px;font:inherit;background:var(--ha-surface);color:var(--ha-text);cursor:pointer;z-index:20}
html body>.ha-theme-switch{position:fixed;right:20px;top:20px}
html body:has(.story) .demo{top:78px}
html body .mobilebar~.ha-theme-switch{top:auto;bottom:80px}

/* Global navigation belongs to the enclosing unified web shell. */
html[data-fv-embedded] .side,html[data-fv-embedded] body>aside,html[data-fv-embedded] .mobilebar{display:none!important}
html[data-fv-embedded] body>main,html[data-fv-embedded] .shell>main{margin-left:0!important;width:100%!important;max-width:none!important}
html[data-fv-embedded] details:has(#gate),html[data-fv-embedded] #siren-card{display:none!important}

html[data-fv-embedded] #theme{display:none!important}

/* Embedded modules expose content, never a second application menu. */
html[data-fv-embedded] :is(main>header.top,.shell>header.top,main>header:has(.action[href="/smartphone.html"])){display:none!important}
html[data-fv-embedded] body{min-width:0!important}
html[data-fv-embedded] :is(main,.shell){max-width:none!important}
html[data-fv-page="house"] .chips [data-link],
html[data-fv-page="house"] details:has(#people),
html[data-fv-page="house"] details:has(#entities){display:none!important}
html[data-fv-page="house"] .layout{grid-template-columns:1fr!important}
html[data-fv-page="house"] .layout>.side{display:grid!important;position:static!important;width:auto!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;padding:0!important;background:transparent!important}
html[data-fv-page="house"] .side>.sidecard{margin:0!important}
html[data-fv-page="house"] .side>.sidecard:has(a[href="security.html"]),
html[data-fv-page="house"] .side>.sidecard:last-child{display:none!important}
html[data-fv-page="portal"] #home>:not(.grid),
html[data-fv-page="portal"] .grid>:not(#desktop){display:none!important}
html[data-fv-page="portal"] .grid{display:block!important}
html[data-fv-page="portal"] #desktop{width:100%!important;max-width:850px}
html[data-fv-embedded] .desktop>.explanation,
html[data-fv-embedded] .desktop .statusbar{display:none!important}
html[data-fv-embedded] main.desktop{display:block!important;padding:24px!important;min-height:0!important}
html[data-fv-embedded] .desktop>.phone{width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;border:0!important;border-radius:12px!important;box-shadow:none!important;margin:0!important}

/* Complete shared-palette coverage for Gmail, Calendar and Drive. */
html body :is(.phone,.calendar,.agenda,.toolbar,.apphead,.mailbox,.filegrid,.detail,.detailbar,.bodytext,.sender){background:var(--ha-surface)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important}
html body :is(.search,.week,.bottom,.demo,.viewtools,.listlabel){background:var(--ha-page)!important;color:var(--ha-muted)!important;border-color:var(--ha-line)!important}
html body .search{background:var(--ha-page)!important;border:1px solid var(--ha-line)!important;border-radius:10px!important}
html body .search input{background:transparent!important;border:0!important;color:var(--ha-text)!important;padding:0!important;box-shadow:none!important;font-size:14px!important;min-height:20px}
html body .search input::placeholder{color:var(--ha-muted)!important}
html body :is(.account,.listlabel,.snippet,.time,.week span,.legend,.notice,#feedback,.previewnote,.viewtools,.sender small,.demo,.empty){color:var(--ha-muted)!important}
html body :is(.profile,.avatar){background:var(--ha-soft)!important;color:var(--ha-accent)!important;border-color:var(--ha-line)!important}
html body :is(.tabs button,.bottom button,.controls button,.reply,.detailbar button,.editorlinks a,.newtools a){border-color:var(--ha-line)!important;border-radius:9px!important;color:var(--ha-text)!important;background:var(--ha-surface)!important}
html body :is(.tabs button,.bottom button,.controls button,.reply,.detailbar button):hover{background:var(--ha-soft)!important;color:var(--ha-accent)!important}
html body :is(.tabs button.active,.bottom button.selected){background:var(--ha-soft)!important;color:var(--ha-accent)!important;border-color:var(--ha-accent)!important}
html body :is(.compose,.controls .primary,.editorlinks a.primary){background:var(--ha-primary)!important;color:#fff!important;border-color:#8867ee!important;box-shadow:none!important}
html body :is(.day,.day.off){background:var(--ha-surface)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important}
html body .day.off{background:var(--ha-page)!important;color:var(--ha-muted)!important}
html body .day:hover{background:var(--ha-soft)!important}
html body .day.selected{background:var(--ha-soft)!important;box-shadow:inset 0 0 0 2px var(--ha-accent)!important}
html body .today .number{background:var(--ha-accent)!important;color:var(--ha-page)!important}
html body :is(.event,.event.green,.event.rose,.appointment small){background:var(--ha-soft)!important;color:var(--ha-accent)!important}
html body :is(.calendar,.agenda,.phone,.appointment,.row,.reply,dialog,.notification,.week){border-color:var(--ha-line)!important}
html body :is(.heading h2,.toolbar h2,.agenda h3,.message,.subject,.bodytext,.filecard,.filename,.fileinfo strong){color:var(--ha-text)!important}
html body .star{background:transparent!important;color:var(--ha-muted)!important}
html body .star.on{color:#e6b95f!important}
html body dialog::backdrop{background:#0009!important}
html body .workspace-status{background:#2d2417!important;color:#f1c578!important;border:1px solid #6c512c!important;border-radius:10px!important;margin:0 24px!important;font-size:13px!important}
html[data-ha-theme="day"] body .workspace-status{background:#fff5df!important;color:#755011!important;border-color:#dec389!important}
html body .workspace-status a{color:inherit!important}
html body .workspace-status[hidden]{display:none!important}
html[data-fv-embedded] body>.workspace-status{margin:16px 24px 0!important}
html[data-fv-embedded] body main.desktop{padding:24px!important}
html[data-fv-embedded] body .phone{border:1px solid var(--ha-line)!important;border-radius:14px!important;background:var(--ha-surface)!important}
html[data-fv-embedded] body .agenda{display:block!important;background:var(--ha-surface)!important}

/* Shared family modules follow the same palette. */
html[data-fv-page="family"] :is(.card,.banner,.bubble,.day){background:var(--ha-surface)!important;color:var(--ha-text)!important;border-color:var(--ha-line)!important}
html[data-fv-page="family"] .calendar{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;background:transparent!important}
html[data-fv-page="family"] .day{min-height:62px!important}
html[data-fv-page="family"] .avatar{background:var(--ha-soft)!important;color:var(--ha-accent)!important}
html[data-fv-page="family"][data-fv-shared-space] nav[aria-label="Sezioni famiglia"]{display:none!important}

/* Embedded administrator panel: shared palette, twelve permission widgets. */
html[data-fv-page="admin"] .intro{display:flex!important;justify-content:space-between;align-items:center;padding:0!important;margin:0 0 20px!important}html[data-fv-page="admin"] .intro h1{font-size:26px!important}html[data-fv-page="admin"] .widget{background:var(--ha-page)!important;border-color:var(--ha-line)!important;color:var(--ha-text)!important}html[data-fv-page="admin"] .widget:has(input:checked),html[data-fv-page="admin"] .user.selected{background:var(--ha-soft)!important;border-color:var(--ha-accent)!important}html[data-fv-page="admin"] .avatar,html[data-fv-page="admin"] .badge{background:var(--ha-soft)!important;color:var(--ha-accent)!important}html[data-fv-page="admin"] .grid{grid-template-columns:minmax(240px,.8fr) minmax(0,1.8fr)!important}html[data-fv-page="admin"] .miniwidget{background:var(--ha-page)!important;border-color:var(--ha-line)!important}html[data-fv-page="admin"] main{padding:0!important}html[data-fv-page="admin"] .stats{margin-top:0!important}html[data-fv-page="admin"] input[type=checkbox]{accent-color:var(--ha-accent)!important}

/* Embedded family tools follow the available space of the unified shell. */
html[data-fv-embedded] :is(main,.card,.panel,.grid>*,.stats>*,.previewgrid>*,.user>*,.detail){min-width:0}
html[data-fv-embedded] :is(p,strong,.user,.fileinfo){overflow-wrap:anywhere}
@media(max-width:600px){
 html[data-fv-embedded] body main.desktop{padding:12px!important}
 html[data-fv-embedded] body>main,html[data-fv-embedded] .shell>main{padding:14px!important}
 html[data-fv-embedded] .desktop>.phone{border-radius:10px!important}
 html[data-fv-embedded] .settings-tabs{max-width:100%;overflow-x:auto;flex-wrap:nowrap;padding:4px 2px 12px}
 html[data-fv-embedded] .settings-tabs button{flex:none;white-space:nowrap;min-height:44px}
 html[data-fv-embedded] :is(.head,.intro,.toolbar,.actions){flex-wrap:wrap}
 html[data-fv-embedded] :is(input,select,textarea){max-width:100%;font-size:16px;min-height:44px}
 html[data-fv-embedded] :is(input[type=checkbox],input[type=radio]){min-height:0;flex-shrink:0}
 html[data-fv-embedded] dialog{width:calc(100% - 24px);max-width:calc(100% - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:18px}
 html[data-fv-page="admin"] .stats{grid-template-columns:1fr;gap:10px}
 html[data-fv-page="admin"] .stat{display:flex;align-items:center;justify-content:space-between;gap:12px}
 html[data-fv-page="admin"] .stat strong{margin:0}
 html[data-fv-page="house"] .layout>.side{grid-template-columns:minmax(0,1fr)!important}
}
