:root{
  color-scheme:dark;
  --bg:#0d0d10;
  --panel:#17171e;
  --panel-2:#111117;
  --line:#252530;
  --line-strong:#343442;
  --text:#f5f5f8;
  --muted:#818195;
  --muted-2:#505061;
  --violet:#8870ee;
  --violet-soft:rgba(136,112,238,.13);
  --blue:#60a5fa;
  --pink:#f472b6;
  --orange:#fb923c;
  --green:#4ade80;
  --red:#fb7185;
  --shadow:0 20px 58px rgba(0,0,0,.25);
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#f2f2f7;
  --panel:#ffffff;
  --panel-2:#f8f8fb;
  --line:#e3e3eb;
  --line-strong:#d3d3dd;
  --text:#17171e;
  --muted:#686879;
  --muted-2:#9b9baa;
  --shadow:0 20px 58px rgba(39,39,61,.10);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
body{min-height:100vh;overflow-x:hidden}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
a{color:inherit}
[hidden]{display:none!important}
.ambient{position:fixed;border-radius:999px;filter:blur(90px);opacity:.14;pointer-events:none;z-index:0}
.ambient-one{width:430px;height:430px;background:#5b45d6;top:-245px;left:-130px}
.ambient-two{width:390px;height:390px;background:#163f7a;right:-190px;bottom:-250px}
.panel{background:rgba(23,23,30,.96);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);backdrop-filter:blur(18px)}
:root[data-theme="light"] .panel{background:rgba(255,255,255,.96)}
.dashboard-shell{position:relative;z-index:1;min-height:100vh;padding:18px 24px 12px;display:flex;flex-direction:column;gap:15px;max-width:1400px;margin:auto;transition:padding-top .28s ease}
.dashboard-nav{min-height:62px;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;max-height:84px;opacity:1;transform:translateY(0);transition:max-height .26s ease,opacity .2s ease,transform .26s ease,padding .26s ease,border-width .26s ease,margin .26s ease}
.dashboard-shell.nav-is-hidden .dashboard-nav{max-height:0;min-height:0;opacity:0;transform:translateY(-18px);padding-top:0;padding-bottom:0;border-width:0;margin-bottom:-15px;pointer-events:none}
.nav-peek{position:fixed;z-index:35;top:max(8px,env(safe-area-inset-top));right:18px;height:38px;padding:0 14px;border-radius:0 0 14px 14px;border:1px solid var(--line);border-top:0;background:rgba(17,17,23,.92);color:#a895ff;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;box-shadow:0 12px 28px rgba(0,0,0,.24);backdrop-filter:blur(18px);cursor:pointer;transition:transform .2s ease,opacity .2s ease}
:root[data-theme="light"] .nav-peek{background:rgba(255,255,255,.94)}
.nav-peek.is-open{transform:translateY(-110%);opacity:0;pointer-events:none}
.nav-hide-button{height:38px;padding:0 13px;border-radius:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;cursor:pointer}
.brand-block{display:flex;align-items:center;gap:11px;min-width:0}.brand-block>div:last-child{display:flex;flex-direction:column;min-width:0}.brand-block strong{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-block span{font-size:11px;color:var(--muted);margin-top:2px}
.brand-icon,.card-icon{display:grid;place-items:center;flex:0 0 auto;background:var(--violet-soft);border:1px solid rgba(136,112,238,.25);color:#9b87f5}.brand-icon{width:40px;height:40px;border-radius:13px;font-size:20px}.card-icon{width:42px;height:42px;border-radius:13px;font-size:20px}
.topbar-actions,.admin-actions{display:flex;align-items:center;gap:8px}.icon-button,.theme-toggle,.ghost-button{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);height:38px;min-width:38px;border-radius:12px;display:inline-grid;place-items:center;cursor:pointer}.icon-button:hover,.ghost-button:hover{color:var(--text);border-color:var(--line-strong)}
.theme-toggle{width:46px;overflow:hidden}.theme-orbit{position:relative;width:24px;height:24px;display:block;transition:transform .35s ease}.theme-orbit i{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .25s ease,transform .35s ease}.moon-icon{opacity:0;transform:rotate(-90deg) scale(.5)}:root[data-theme="light"] .sun-icon{opacity:0;transform:rotate(90deg) scale(.5)}:root[data-theme="light"] .moon-icon{opacity:1;transform:none}
.summary-row{display:flex;align-items:center;justify-content:space-between;padding:4px 10px 2px;min-height:112px}.summary-copy h1{font-size:40px;line-height:1.06;margin:9px 0 7px;letter-spacing:-1.5px}.summary-copy p{margin:0;color:var(--muted);font-size:16px;text-transform:capitalize;font-weight:550}.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;color:#9b87f5}.readable-clock{display:flex;align-items:flex-start;line-height:1}.readable-clock #clock{font-size:76px;font-weight:850;letter-spacing:-4px}.readable-clock #seconds{font-size:21px;color:var(--violet);font-weight:800;margin:10px 0 0 8px}
.echo-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:minmax(228px,1.08fr) minmax(196px,.92fr);gap:16px;flex:1;min-height:0}.echo-grid>.panel{min-width:0;overflow:hidden;padding:19px;text-align:left}.weather-card,.agenda-card,.proxmox-card,.alerts-card{height:100%}.proxmox-card{appearance:none;color:inherit;width:100%;cursor:pointer}
.card-heading{display:flex;align-items:center;gap:11px}.card-heading>div:last-child{display:flex;flex-direction:column}.card-heading span{font-size:16px;font-weight:800}.card-heading small{font-size:12px;color:var(--muted);margin-top:3px}.accent-blue{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.22);color:var(--blue)}.accent-pink{background:rgba(244,114,182,.12);border-color:rgba(244,114,182,.22);color:var(--pink)}.accent-orange{background:rgba(251,146,60,.12);border-color:rgba(251,146,60,.22);color:var(--orange)}.accent-red{background:rgba(251,113,133,.12);border-color:rgba(251,113,133,.22);color:var(--red)}.accent-violet{background:var(--violet-soft);border-color:rgba(136,112,238,.22);color:#9b87f5}
.weather-main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-top:16px}.weather-temperature{font-size:64px;font-weight:850;letter-spacing:-4px;line-height:1}.weather-temperature sup{font-size:25px;color:var(--muted);vertical-align:top;margin-left:2px}.weather-copy{display:flex;flex-direction:column;min-width:0}.weather-copy strong{font-size:20px}.weather-copy span{font-size:12px;color:var(--muted);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weather-visual{font-size:52px;color:var(--blue)}.weather-days{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}.weather-days div{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:7px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:13px;font-size:12px}.weather-days span{color:var(--muted);text-transform:capitalize}.weather-days i{color:var(--blue);font-size:16px}.weather-days b{font-size:13px}.weather-days small{color:var(--muted);font-size:11px}
.agenda-list,.alert-list{margin-top:14px;display:flex;flex-direction:column;gap:9px;max-height:calc(100% - 55px);overflow:auto;padding-right:3px}.agenda-row{display:flex;align-items:center;gap:12px;padding:11px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:14px}.agenda-provider{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none;background:var(--violet-soft);color:#a18df6;font-size:18px}.agenda-provider.google{background:rgba(96,165,250,.12);color:var(--blue)}.agenda-provider.apple{background:rgba(148,163,184,.13);color:#cbd5e1}.agenda-copy{min-width:0;display:flex;flex-direction:column}.agenda-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-copy small{font-size:11px;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proxmox-summary{display:flex;flex-direction:column;height:calc(100% - 54px);justify-content:center}.status-line{display:flex;align-items:center;gap:10px;margin:12px 0 18px}.status-line strong{font-size:17px}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--muted-2);box-shadow:0 0 0 5px rgba(120,120,140,.08)}.status-dot.online{background:var(--green);box-shadow:0 0 0 5px rgba(74,222,128,.10)}.status-dot.offline{background:var(--red);box-shadow:0 0 0 5px rgba(251,113,133,.10)}.status-dot.unknown,.status-dot.pending{background:#fbbf24}.mini-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mini-metrics div{padding:13px 8px;background:var(--panel-2);border:1px solid var(--line);border-radius:14px;text-align:center}.mini-metrics b{display:block;font-size:23px;letter-spacing:-.6px}.mini-metrics span{font-size:10px;color:var(--muted);margin-top:5px;display:block;line-height:1.2}
.alert-row{display:grid;grid-template-columns:auto 1fr;column-gap:11px;row-gap:3px;padding:11px 12px;background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:13px}.alert-row.severity-critical{border-left-color:var(--red)}.alert-row.severity-info{border-left-color:var(--blue)}.alert-source{grid-row:1/3;align-self:center;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:9px;background:rgba(251,146,60,.10);color:var(--orange);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.alert-row strong{font-size:13px}.alert-row small{font-size:10px;color:var(--muted);line-height:1.35}.empty-state{min-height:88px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:13px}.empty-state i{font-size:22px}.success-empty i{color:var(--green)}
.dashboard-footer{display:flex;justify-content:space-between;color:var(--muted-2);font-size:10px;padding:0 9px}.interactive{transition:transform .16s ease,border-color .16s ease}.interactive:active{transform:scale(.988);border-color:rgba(136,112,238,.35)}.spinning i{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.page-overlay{position:fixed;inset:0;z-index:50;background:rgba(7,7,10,.78);backdrop-filter:blur(13px);padding:28px;display:grid;place-items:center;opacity:0;transition:opacity .18s ease}.page-overlay.visible{opacity:1}.overlay-panel{width:min(980px,100%);max-height:min(730px,calc(100vh - 40px));overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:21px;box-shadow:0 30px 100px rgba(0,0,0,.55);transform:translateY(10px) scale(.985);transition:transform .18s ease}.page-overlay.visible .overlay-panel{transform:none}.overlay-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.overlay-head h2{margin:7px 0 0;font-size:25px}.node-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-card{background:var(--panel-2);border:1px solid var(--line);border-radius:15px;padding:14px}.detail-title{display:flex;align-items:center;gap:9px}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.detail-stats div{padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:11px}.detail-stats span{font-size:9px;color:var(--muted);display:block}.detail-stats b{font-size:14px}.guest-list{margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.guest-row{display:flex;align-items:center;gap:10px;padding:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px}.guest-type{width:34px;height:34px;border-radius:10px;background:var(--violet-soft);color:#9b87f5;display:grid;place-items:center}.guest-row>span:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.guest-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-row small{font-size:9px;color:var(--muted)}.guest-state{font-size:9px;font-weight:800}.guest-state.online{color:var(--green)}.guest-state.offline{color:var(--muted)}

/* Echo Show / Amazon Silk */
.silk-controls{display:none;position:fixed;right:12px;bottom:10px;z-index:24;align-items:center;gap:6px;padding:5px;background:rgba(17,17,23,.88);border:1px solid var(--line);border-radius:15px;box-shadow:0 14px 38px rgba(0,0,0,.3);backdrop-filter:blur(16px)}
.silk-control{height:36px;border:0;border-radius:10px;background:var(--violet-soft);color:#a895ff;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;font-size:9px;font-weight:800;cursor:pointer}.silk-control i{font-size:16px}.silk-control.active{background:rgba(74,222,128,.12);color:var(--green)}.icon-only-control{width:36px;padding:0;background:var(--panel-2);color:var(--muted)}
.silk-scroll-nudge{display:none;height:4px;width:1px;pointer-events:none}body.silk-device{min-height:calc(100vh + 4px)}body.silk-device .silk-controls{display:flex}body.silk-device .silk-scroll-nudge{display:block}body.silk-device .dashboard-shell{min-height:calc(100vh - 4px);padding:12px 20px 48px;gap:12px}body.silk-device .dashboard-footer{display:none}body.silk-device .nav-peek{right:14px;top:0}body.silk-device .summary-row{min-height:104px}body.silk-device .summary-copy h1{font-size:38px}body.silk-device .readable-clock #clock{font-size:72px}body.silk-device .echo-grid{gap:14px}body.silk-device .echo-grid>.panel{padding:17px;border-radius:20px}
@media(max-width:900px){body.silk-device .silk-controls{right:8px;bottom:7px}.silk-control span{display:none}.silk-control{width:36px;padding:0}}
@media(max-width:760px){.dashboard-shell{padding:12px;min-height:100dvh}.summary-row{align-items:center;min-height:100px}.summary-copy h1{font-size:28px}.summary-copy p{font-size:13px}.readable-clock #clock{font-size:48px}.readable-clock #seconds{font-size:15px}.echo-grid{grid-template-columns:1fr;grid-template-rows:auto}.echo-grid>.panel{min-height:190px}.weather-days{grid-template-columns:1fr}.node-grid,.guest-list{grid-template-columns:1fr}.brand-block span{display:none}.nav-peek span{display:none}.nav-peek{width:38px;padding:0;justify-content:center;border-radius:0 0 12px 12px}}
@media(min-width:900px) and (max-height:850px){.dashboard-shell{max-height:100vh;overflow:hidden}.summary-row{min-height:104px}.echo-grid{min-height:0}.agenda-list,.alert-list{scrollbar-width:none}.agenda-list::-webkit-scrollbar,.alert-list::-webkit-scrollbar{display:none}}
@media(min-width:1200px){.dashboard-shell{padding-left:28px;padding-right:28px}.summary-copy h1{font-size:43px}.readable-clock #clock{font-size:82px}}
body.night-mode{--bg:#050507;--panel:#101014;--panel-2:#0b0b0e}.night-mode .ambient{opacity:.06}.night-mode .dashboard-shell{filter:saturate(.82) brightness(.87)}

/* Admin */
.admin-shell{position:relative;z-index:1;max-width:1180px;margin:auto;padding:18px;min-height:100vh}.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;margin-bottom:14px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-card{padding:18px}.admin-card-wide{grid-column:1/-1}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:15px}.section-title h2{font-size:17px;margin:0}.section-title p{font-size:10px;color:var(--muted);margin:3px 0 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compact-form{grid-template-columns:repeat(4,1fr)}.form-grid label,.stack-form label{display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:650;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:11px;padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:rgba(136,112,238,.65);box-shadow:0 0 0 3px rgba(136,112,238,.10)}.full-span{grid-column:1/-1}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check-card{flex-direction:row!important;align-items:center!important;padding:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:11px}.check-card input{width:auto}.primary-button,.secondary-button,.danger-button{border:0;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;text-decoration:none;font-size:10px;font-weight:750;cursor:pointer}.primary-button{background:var(--violet);color:#fff}.secondary-button{background:var(--panel-2);border:1px solid var(--line);color:var(--text)}.danger-button{background:rgba(251,113,133,.12);border:1px solid rgba(251,113,133,.2);color:var(--red)}.icon-only{width:36px;height:36px;padding:0}.small-button{padding:8px 11px}.alert{display:flex;align-items:center;gap:8px;padding:11px 13px;border-radius:12px;margin-bottom:12px;font-size:11px}.alert-success{background:rgba(74,222,128,.10);border:1px solid rgba(74,222,128,.20);color:var(--green)}.alert-error{background:rgba(251,113,133,.10);border:1px solid rgba(251,113,133,.20);color:var(--red)}.diagnostic-box{padding:12px;border-radius:13px;border:1px solid var(--line);background:var(--panel-2);margin-bottom:10px}.diagnostic-ok{border-color:rgba(74,222,128,.24)}.diagnostic-error{border-color:rgba(251,113,133,.24)}.diagnostic-head{display:flex;align-items:center;gap:8px}.diagnostic-box p{font-size:10px;color:var(--muted);line-height:1.5}.diagnostic-box code,.help-box code,.redirect-uri code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;word-break:break-all}.help-box{display:flex;gap:9px;margin-top:11px;padding:11px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;color:var(--muted)}.help-box>i{color:var(--blue);font-size:18px}.help-box strong{color:var(--text);font-size:10px}.help-box p{font-size:9px;line-height:1.55;margin:4px 0 0}.calendar-connect-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.connect-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:12px}.connect-card input{grid-column:2/4}.connect-card p{font-size:9px;color:var(--muted);margin:3px 0}.provider-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--violet-soft);color:#9b87f5;flex:none}.provider-icon.google{background:rgba(96,165,250,.12);color:var(--blue)}.provider-icon.apple{background:rgba(148,163,184,.12);color:#cbd5e1}.redirect-uri{grid-column:1/-1;color:var(--muted);font-size:8px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px}.badge.muted{background:var(--panel);border:1px solid var(--line);color:var(--muted)}.connection-list{display:flex;flex-direction:column;gap:7px;margin:12px 0}.connection-row{display:flex;align-items:center;gap:9px;padding:9px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px}.connection-copy{display:flex;flex-direction:column;flex:1;min-width:0}.connection-copy strong{font-size:10px}.connection-copy small{font-size:8px;color:var(--muted)}.connection-copy em{font-size:8px;color:var(--red);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-admin{display:flex;align-items:center;justify-content:center;gap:7px;padding:18px;color:var(--muted);font-size:10px}.manual-event-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.edit-card{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px}.edit-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.edit-card summary::-webkit-details-marker{display:none}.edit-card summary>span{display:flex;align-items:center;gap:8px}.edit-card summary small{color:var(--muted);font-size:8px}.edit-card form{margin-top:10px}.form-actions{display:flex;align-items:end}.auth-page{min-height:100vh;display:grid;place-items:center;padding:18px}.auth-card{width:min(430px,100%);padding:24px}.auth-card h1{font-size:25px;margin:10px 0}.auth-card>p{color:var(--muted);font-size:11px;line-height:1.6}.auth-icon{width:54px;height:54px;border-radius:17px;background:var(--violet-soft);border:1px solid rgba(136,112,238,.22);display:grid;place-items:center;color:#9b87f5;font-size:23px;margin:16px 0}.back-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--muted);font-size:10px}.stack-form{display:flex;flex-direction:column;gap:10px}
@media(max-width:760px){.dashboard-shell{padding:10px;min-height:100dvh}.summary-row{align-items:center}.summary-copy h1{font-size:26px}.compact-clock #clock{font-size:42px}.echo-grid{grid-template-columns:1fr;grid-template-rows:auto}.echo-grid>.panel{min-height:180px}.weather-days{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr}.admin-card-wide{grid-column:auto}.form-grid,.compact-form,.calendar-connect-grid{grid-template-columns:1fr}.full-span{grid-column:auto}.check-grid{grid-template-columns:1fr}.connect-card{grid-template-columns:auto 1fr}.connect-card>*{grid-column:auto}.connect-card input,.redirect-uri{grid-column:1/-1}.node-grid,.guest-list{grid-template-columns:1fr}.brand-block span{display:none}}
@media(min-width:900px) and (max-height:850px){.dashboard-shell{max-height:100vh;overflow:hidden}.summary-row{min-height:82px}.echo-grid{min-height:0}.agenda-list,.alert-list{scrollbar-width:none}.agenda-list::-webkit-scrollbar,.alert-list::-webkit-scrollbar{display:none}}
@media(min-width:1200px){.dashboard-shell{padding-left:26px;padding-right:26px}.summary-copy h1{font-size:38px}.compact-clock #clock{font-size:64px}}
body.night-mode{--bg:#050507;--panel:#101014;--panel-2:#0b0b0e}.night-mode .ambient{opacity:.07}.night-mode .dashboard-shell{filter:saturate(.82) brightness(.88)}

/* Admin v4 additions */
.diagnostic-mode{display:block;margin-top:8px;color:var(--muted);font-size:9px}
.calendar-howto{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.calendar-howto>div{position:relative;padding:12px 12px 12px 44px;background:var(--panel-2);border:1px solid var(--line);border-radius:13px;min-height:76px}
.calendar-howto>div>span{position:absolute;left:11px;top:12px;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--violet-soft);color:#a895ff;font-size:10px;font-weight:850}
.calendar-howto strong{font-size:10px}.calendar-howto p{font-size:9px;line-height:1.45;color:var(--muted);margin:4px 0 0}.calendar-howto code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px}
@media(max-width:760px){.calendar-howto{grid-template-columns:1fr}}


/* Echo Show v5: fullscreen stabile e senza controlli flottanti */
body.silk-device.display-mode .silk-controls{display:none!important}
body.silk-device.display-mode .dashboard-shell{
  min-height:100vh;
  height:100vh;
  max-height:100vh;
  padding-bottom:12px;
  overflow:hidden;
}
body.silk-device.display-mode .echo-grid{
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
  grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr)!important;
  min-height:0;
}
body.silk-device.display-mode .echo-grid>.panel{min-height:0!important}
body.silk-device.display-mode .weather-days{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* Silk può dichiarare una viewport più stretta in modalità display.
   In orizzontale manteniamo sempre la dashboard 2×2, mai a lista. */
@media (orientation:landscape) and (max-width:900px){
  body.silk-device .dashboard-shell{
    padding:10px 14px 46px;
    gap:10px;
  }
  body.silk-device.display-mode .dashboard-shell{padding-bottom:10px}
  body.silk-device .summary-row{min-height:82px;padding:2px 6px}
  body.silk-device .summary-copy h1{font-size:31px;margin:6px 0 4px}
  body.silk-device .summary-copy p{font-size:13px}
  body.silk-device .eyebrow{font-size:9px}
  body.silk-device .readable-clock #clock{font-size:58px;letter-spacing:-3px}
  body.silk-device .readable-clock #seconds{font-size:16px;margin-top:7px}
  body.silk-device .echo-grid{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
    grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr)!important;
    gap:10px;
  }
  body.silk-device .echo-grid>.panel{min-height:0!important;padding:13px;border-radius:17px}
  body.silk-device .card-icon{width:36px;height:36px;border-radius:11px;font-size:17px}
  body.silk-device .card-heading span{font-size:14px}
  body.silk-device .card-heading small{font-size:10px}
  body.silk-device .weather-main{gap:11px;margin-top:9px}
  body.silk-device .weather-temperature{font-size:49px;letter-spacing:-3px}
  body.silk-device .weather-copy strong{font-size:16px}
  body.silk-device .weather-copy span{font-size:10px;margin-top:3px}
  body.silk-device .weather-visual{font-size:38px}
  body.silk-device .weather-days{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px;margin-top:9px}
  body.silk-device .weather-days div{grid-template-columns:1fr auto;gap:4px;padding:7px 8px;font-size:10px}
  body.silk-device .weather-days div i{display:none}
  body.silk-device .weather-days small{display:none}
  body.silk-device .agenda-list,
  body.silk-device .alert-list{gap:6px;margin-top:9px;max-height:calc(100% - 46px)}
  body.silk-device .agenda-row{gap:8px;padding:8px 9px;border-radius:11px}
  body.silk-device .agenda-provider{width:31px;height:31px;border-radius:9px;font-size:15px}
  body.silk-device .agenda-copy strong{font-size:12px}
  body.silk-device .agenda-copy small{font-size:9px;margin-top:2px}
  body.silk-device .status-line{margin:8px 0 10px}
  body.silk-device .status-line strong{font-size:14px}
  body.silk-device .mini-metrics{gap:6px}
  body.silk-device .mini-metrics div{padding:8px 4px;border-radius:11px}
  body.silk-device .mini-metrics b{font-size:18px}
  body.silk-device .mini-metrics span{font-size:8px;margin-top:3px}
  body.silk-device .alert-row{padding:8px 9px;column-gap:7px}
  body.silk-device .alert-source{padding:5px 6px;font-size:7px}
  body.silk-device .alert-row strong{font-size:11px}
  body.silk-device .alert-row small{font-size:9px}
}


/* v6: modalità display definitiva, leggibilità e spaziatura Proxmox */
body.display-mode .silk-controls,
body.display-mode .nav-peek,
body.display-mode .dashboard-nav{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.display-mode .dashboard-shell.nav-is-hidden .dashboard-nav{margin:0!important}

.proxmox-card .proxmox-summary{
  justify-content:flex-start;
  padding-top:18px;
  gap:18px;
}
.proxmox-card .status-line{
  margin:0;
  min-height:28px;
}
.proxmox-card .status-line strong{
  font-size:18px;
  line-height:1.25;
}

@media (orientation:landscape) and (max-width:900px){
  body.silk-device .proxmox-card .proxmox-summary{
    padding-top:11px;
    gap:10px;
  }
  body.silk-device .proxmox-card .status-line{
    margin:0;
    min-height:22px;
  }
  body.silk-device .proxmox-card .status-line strong{font-size:15px}
}

/* v7: Gmail, avvisi Proxmox fissati e anteprima sicura */
.alert-list{position:relative}
.pinned-alert-group{position:sticky;top:0;z-index:3;display:flex;flex-direction:column;gap:8px;padding:0 0 8px;background:linear-gradient(180deg,var(--panel) 78%,rgba(0,0,0,0))}
.pinned-alert-label,.mail-alert-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.pinned-alert-label{color:var(--orange)}
.pinned-alert-label i{font-size:12px}
.mail-alert-group{display:flex;flex-direction:column;gap:8px}
.alert-row{width:100%;font-family:inherit;color:inherit;text-align:left}
button.alert-row{appearance:none;cursor:pointer}
button.alert-row:hover{border-color:rgba(136,112,238,.38);transform:translateY(-1px)}
button.alert-row:active{transform:none}
.pinned-alert{box-shadow:0 7px 18px rgba(0,0,0,.12)}
.mail-alert-row{border-left-color:var(--blue);transition:transform .16s ease,border-color .16s ease,background .16s ease}
.mail-source{background:rgba(96,165,250,.12);color:var(--blue)}
.severity-mail{border-left-color:var(--blue)}

.mail-toast-stack{position:fixed;z-index:70;top:18px;left:50%;width:min(560px,calc(100vw - 28px));transform:translateX(-50%);display:flex;flex-direction:column;gap:9px;pointer-events:none}
.mail-toast{pointer-events:auto;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid rgba(136,112,238,.34);border-radius:17px;background:rgba(20,20,28,.96);color:#f7f7fb;box-shadow:0 22px 60px rgba(0,0,0,.42);backdrop-filter:blur(18px);font-family:inherit;text-align:left;cursor:pointer;opacity:0;transform:translateY(-18px) scale(.98);transition:opacity .24s ease,transform .24s ease}
:root[data-theme="light"] .mail-toast{background:rgba(255,255,255,.97);color:#18181d}
.mail-toast.visible{opacity:1;transform:none}
.mail-toast-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--violet-soft);color:#a18df6;font-size:20px}
.mail-toast-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.mail-toast-copy small{font-size:10px;color:var(--muted)}
.mail-toast-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.mail-preview-panel{width:min(760px,100%)}
.mail-preview-head{align-items:flex-start}
.mail-preview-head h2{max-width:620px;line-height:1.22}
.mail-preview-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;color:var(--muted);font-size:11px}
.mail-preview-body{min-height:180px;max-height:430px;overflow:auto;padding:18px;background:var(--panel-2);border:1px solid var(--line);border-radius:16px;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.65}
.mail-preview-attachments{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.mail-preview-attachments span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);font-size:10px;color:var(--muted)}

.check-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.gmail-admin-status{margin:12px 0;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}
.gmail-admin-copy{display:flex;align-items:flex-start;gap:10px}
.gmail-admin-copy>div{flex:1}
.gmail-admin-copy strong{font-size:12px}
.gmail-admin-copy p{margin:4px 0 0;color:var(--muted);font-size:9px;line-height:1.55}
.gmail-admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}
.badge.success{background:rgba(74,222,128,.10);border:1px solid rgba(74,222,128,.22);color:var(--green)}
.gmail-state-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.gmail-state-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.gmail-state-row strong{font-size:10px}
.gmail-state-row small{font-size:8px;color:var(--muted)}
.gmail-state-row em{grid-column:1/-1;font-size:8px;color:var(--red);font-style:normal}
.gmail-scope-note{margin-bottom:0}

.locked-page{min-height:100vh;display:grid;place-items:center;padding:20px}
.locked-card{width:min(480px,100%);padding:28px;text-align:center}
.locked-card .auth-icon{margin:0 auto 16px}
.locked-card h1{margin:0 0 10px;font-size:28px}
.locked-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}

@media (orientation:landscape) and (max-width:900px){
  body.silk-device .pinned-alert-group{gap:5px;padding-bottom:5px}
  body.silk-device .pinned-alert-label,body.silk-device .mail-alert-label{font-size:7px}
  body.silk-device .mail-alert-group{gap:5px}
  body.silk-device .mail-toast-stack{top:8px;width:min(500px,calc(100vw - 20px))}
  body.silk-device .mail-toast{padding:10px 12px;border-radius:14px}
  body.silk-device .mail-toast-icon{width:34px;height:34px;border-radius:10px;font-size:17px}
  body.silk-device .mail-toast-copy small{font-size:8px}
  body.silk-device .mail-toast-copy strong{font-size:12px}
  body.silk-device .mail-preview-panel{max-height:calc(100vh - 20px)}
  body.silk-device .mail-preview-body{max-height:300px;font-size:12px}
}

@media(max-width:760px){
  .check-grid{grid-template-columns:1fr 1fr}
  .gmail-admin-actions{align-items:stretch;flex-direction:column}
  .gmail-admin-actions form,.gmail-admin-actions button{width:100%}
  .gmail-state-row{grid-template-columns:1fr}
}

/* v8: centro Avvisi, riepilogo Gmail e stato sincronizzato */
.severity-success{border-left-color:var(--green)!important}
.alerts-overview-card .alert-list{overflow:auto}
.mail-summary-row{appearance:none;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.mail-summary-row:hover{transform:translateY(-1px);border-color:rgba(136,112,238,.42)}
.mail-summary-row:active{transform:none}
.mail-summary-row.has-unread{border-color:rgba(136,112,238,.34);background:linear-gradient(135deg,rgba(136,112,238,.13),var(--panel-2))}
.mail-summary-row.is-disabled{opacity:.78}
.mail-summary-icon{position:relative;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--violet-soft);color:#a18df6;font-size:20px}
.mail-summary-icon b{position:absolute;right:-7px;top:-7px;min-width:21px;height:21px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:var(--red);color:#fff;border:2px solid var(--panel);font-size:8px;line-height:1}
.mail-summary-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.mail-summary-copy strong{font-size:13px;line-height:1.25}
.mail-summary-copy small{color:var(--muted);font-size:9px;line-height:1.35}
.mail-summary-row>.ti-chevron-right{color:var(--muted);font-size:18px}

.alerts-page-shell{position:relative;z-index:2;width:min(1180px,100%);min-height:100vh;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.alerts-page-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px 18px}
.alerts-close-button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 15px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:inherit;text-decoration:none;font-size:12px;font-weight:800}
.alerts-close-button i{font-size:20px}
.alerts-page-title{min-width:0}
.alerts-page-title h1{margin:3px 0 3px;font-size:27px;line-height:1.1;letter-spacing:-.03em}
.alerts-page-title p{margin:0;color:var(--muted);font-size:10px}
.alerts-refresh-button{width:46px;height:46px}

.alerts-proxmox-pinned{position:sticky;top:10px;z-index:12;padding:14px 16px;box-shadow:0 18px 46px rgba(0,0,0,.18)}
.alerts-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}
.alerts-section-heading>div{display:flex;align-items:center;gap:12px;min-width:0}
.alerts-section-heading strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-proxmox-list{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:1px}
.alerts-proxmox-row{min-width:min(430px,76vw);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:12px;background:var(--panel-2)}
.alerts-proxmox-row>span:last-child{min-width:0;display:flex;flex-direction:column;gap:2px}
.alerts-proxmox-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-proxmox-row small{color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-proxmox-row.severity-critical{border-left-color:var(--red)}
.alerts-proxmox-row.severity-warning{border-left-color:var(--orange)}
.alerts-proxmox-row.severity-success{border-left-color:var(--green)}

.alerts-mail-panel{flex:1;min-height:0;padding:16px;display:flex;flex-direction:column}
.alerts-mail-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 2px 13px;border-bottom:1px solid var(--line)}
.alerts-mail-heading-copy h2{margin:3px 0 3px;font-size:22px;letter-spacing:-.025em}
.alerts-mail-heading-copy p{margin:0;color:var(--muted);font-size:9px}
.alerts-mail-legend{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.mail-state-badge{display:inline-flex;align-items:center;justify-content:center;min-width:65px;padding:6px 8px;border-radius:999px;border:1px solid var(--line);font-size:8px;font-weight:800;letter-spacing:.02em}
.mail-state-badge.unread{color:#b7a8ff;background:rgba(136,112,238,.13);border-color:rgba(136,112,238,.28)}
.mail-state-badge.read{color:var(--muted);background:var(--panel-2)}
.alerts-mail-list{min-height:220px;max-height:calc(100vh - 305px);overflow:auto;display:flex;flex-direction:column;gap:8px;padding:12px 2px 2px;overscroll-behavior:contain}
.alerts-mail-row{appearance:none;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease}
.alerts-mail-row:hover{transform:translateY(-1px);border-color:rgba(136,112,238,.38)}
.alerts-mail-row.unread{background:linear-gradient(135deg,rgba(136,112,238,.12),var(--panel-2));border-color:rgba(136,112,238,.28)}
.alerts-mail-avatar{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--violet-soft);color:#a18df6;font-size:20px}
.alerts-mail-row.read .alerts-mail-avatar{background:rgba(148,163,184,.10);color:var(--muted)}
.alerts-mail-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.alerts-mail-row-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.alerts-mail-row-top strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-mail-row.read .alerts-mail-row-top strong{font-weight:600;color:var(--muted)}
.alerts-mail-row-top time{font-size:8px;color:var(--muted);white-space:nowrap}
.alerts-mail-sender{font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-mail-copy small{color:var(--muted);font-size:9px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alerts-mail-chevron{color:var(--muted);font-size:18px}
.alerts-page-footer{padding-inline:4px}
.alerts-mail-preview-panel{max-height:calc(100vh - 30px);overflow:auto}
.mail-preview-sync-note{margin:0 0 10px;padding:10px 12px;border:1px solid rgba(251,146,60,.30);border-radius:12px;background:rgba(251,146,60,.09);color:var(--orange);font-size:10px;line-height:1.45}

@media (orientation:landscape) and (max-width:900px){
  body.alerts-silk-page .alerts-page-shell{padding:8px 12px 10px;gap:8px}
  body.alerts-silk-page .alerts-page-header{padding:9px 12px;gap:12px;border-radius:15px}
  body.alerts-silk-page .alerts-close-button{min-height:40px;padding:0 12px;border-radius:12px;font-size:10px}
  body.alerts-silk-page .alerts-page-title h1{font-size:22px;margin:2px 0}
  body.alerts-silk-page .alerts-page-title p{font-size:8px}
  body.alerts-silk-page .alerts-refresh-button{width:40px;height:40px}
  body.alerts-silk-page .alerts-proxmox-pinned{top:7px;padding:10px 12px;border-radius:15px}
  body.alerts-silk-page .alerts-section-heading{margin-bottom:6px}
  body.alerts-silk-page .alerts-section-heading strong{font-size:13px}
  body.alerts-silk-page .alerts-proxmox-row{min-width:min(390px,75vw);padding:8px 10px}
  body.alerts-silk-page .alerts-proxmox-row strong{font-size:11px}
  body.alerts-silk-page .alerts-proxmox-row small{font-size:8px}
  body.alerts-silk-page .alerts-mail-panel{padding:11px 12px;border-radius:15px}
  body.alerts-silk-page .alerts-mail-header{padding-bottom:8px}
  body.alerts-silk-page .alerts-mail-heading-copy h2{font-size:18px}
  body.alerts-silk-page .alerts-mail-heading-copy p{font-size:8px}
  body.alerts-silk-page .alerts-mail-list{max-height:calc(100vh - 245px);gap:6px;padding-top:8px}
  body.alerts-silk-page .alerts-mail-row{padding:9px 10px;gap:9px;border-radius:12px}
  body.alerts-silk-page .alerts-mail-avatar{width:36px;height:36px;border-radius:10px;font-size:17px}
  body.alerts-silk-page .alerts-mail-row-top strong{font-size:12px}
  body.alerts-silk-page .alerts-mail-sender,body.alerts-silk-page .alerts-mail-copy small{font-size:8px}
  body.alerts-silk-page .mail-state-badge{min-width:58px;padding:5px 7px;font-size:7px}
  body.alerts-silk-page .alerts-page-footer{display:none}
}

@media(max-width:700px){
  .alerts-page-header{grid-template-columns:auto 1fr auto}
  .alerts-page-title p{display:none}
  .alerts-close-button span{display:none}
  .alerts-close-button{width:46px;padding:0;justify-content:center}
  .alerts-mail-legend{display:none}
  .alerts-mail-row{grid-template-columns:auto minmax(0,1fr) auto}
  .alerts-mail-row>.mail-state-badge{grid-column:2;justify-self:start}
  .alerts-mail-chevron{grid-column:3;grid-row:1/3}
  .alerts-mail-list{max-height:none}
}

/* v8.2: elemento audio tecnico, invisibile e non interattivo */
.keep-awake-audio{
  position:fixed!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  left:-9999px!important;
  top:-9999px!important;
}
