:root{font-family:Inter,Segoe UI,sans-serif;color:#eef4ff;background:#08111f;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 0,#173254 0,transparent 35%),radial-gradient(circle at 90% 25%,#182f4b 0,transparent 30%),#08111f}a{color:inherit}.hub-shell{max-width:1500px;margin:auto;padding:28px 34px 50px}.hub-header{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #ffffff1a;padding-bottom:18px}.hub-header h1{font-size:28px;margin:3px 0}.eyebrow{letter-spacing:.3em;color:#61d5c9;font-size:11px;font-weight:800}.hub-header nav{display:flex;gap:8px;flex-wrap:wrap}.hub-header nav a{text-decoration:none;padding:9px 14px;border-radius:20px;color:#aebdd1;font-size:14px}.hub-header nav a:hover,.hub-header nav .active{background:#ffffff12;color:white}.hero{display:flex;justify-content:space-between;align-items:end;padding:42px 4px 28px}.date{margin:0;color:#8fa4bd;text-transform:uppercase;letter-spacing:.14em;font-size:13px}.clock{font-size:72px;line-height:1;margin:6px 0;font-weight:250;letter-spacing:-.05em}.clock span{font-size:20px;color:#61d5c9;margin-left:10px}.hero-note{text-align:right;color:#c5d1df;line-height:1.6}.hero-note small{color:#7890ab}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5fe1a2;box-shadow:0 0 16px #5fe1a2}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.widget-card{min-width:0;min-height:240px;height:100%;border:1px solid #ffffff14;border-radius:18px;padding:21px;background:linear-gradient(145deg,#ffffff10,#ffffff06);box-shadow:0 18px 45px #0003;backdrop-filter:blur(18px);overflow:hidden;cursor:pointer}.widget-card.widget-card-expanded{cursor:default}.widget-card header{display:flex;justify-content:space-between;align-items:center}.widget-card h2{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.15em;color:#9eb1c7}.widget-card header>span{font-size:20px;color:#61d5c9}.widget-body{margin-top:22px}.metric{font-size:64px;font-weight:250;letter-spacing:-.06em;margin:0}.metric.small{font-size:42px}.widget-card p{color:#bdcad8}.detail-row{display:flex;gap:18px;color:#8096ad;font-size:13px;margin-top:22px}ul{list-style:none;padding:0;margin:0}li{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid #ffffff0c}li time{width:70px;color:#61d5c9;font-size:12px}.news li{display:block}.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quote-grid div{display:flex;flex-direction:column;gap:6px}.quote-grid strong{font-size:12px;color:#8fa4bd}.quote-grid span{font-size:20px}.quote-grid em{font-style:normal;font-size:12px}.up{color:#5fe1a2}.down{color:#ff7c8f}.stale-badge{display:inline-flex;margin-bottom:8px;padding:4px 8px;border-radius:999px;background:#f0cb6322;color:#f0cb63;font-size:10px;font-weight:800;letter-spacing:.08em}.widget-updated{display:block;margin-top:10px;color:#7890ab}
.finance-chart{margin-bottom:14px}.finance-chart-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.finance-chart-heading strong{font-size:13px;color:#8fa4bd}.finance-chart-heading span{font-size:26px}.finance-chart-heading em{font-style:normal;font-size:13px}.finance-chart svg{display:block;width:100%;min-height:110px}.finance-chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.finance-chart-line.up{stroke:#5fe1a2;filter:drop-shadow(0 0 4px #5fe1a266)}.finance-chart-line.down{stroke:#ff7c8f;filter:drop-shadow(0 0 4px #ff7c8f66)}.finance-legend{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.gauge{height:7px;background:#ffffff10;border-radius:8px;overflow:hidden;margin:18px 0}.gauge i{height:100%;display:block;background:linear-gradient(90deg,#5fe1a2,#f0cb63,#ff7c8f)}.gauge.budget i{background:#61d5c9}.tide-line{height:45px;margin-top:25px;border-top:3px solid #61d5c9;border-radius:50%;transform:skewY(-4deg)}.widget-warning{margin-top:18px;color:#f0cb63}.admin-page{max-width:850px;margin:60px auto;padding:30px}.admin-page>a{color:#61d5c9}.admin-page h1{font-size:42px}.config-row{display:grid;grid-template-columns:1fr 1fr auto;gap:20px;padding:17px;border-bottom:1px solid #ffffff17}.config-row span{color:#91a4b9}.hint{color:#91a4b9}@media(max-width:1000px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.hub-shell{padding:20px 16px}.hub-header,.hero{align-items:start;flex-direction:column;gap:20px}.hero-note{text-align:left}.clock{font-size:56px}.dashboard-grid{grid-template-columns:1fr}.hub-header nav{display:none}}
.news a{color:#eef4ff;text-decoration:none}.news a:hover{color:#61d5c9}.news li{display:flex;flex-direction:column;gap:5px}.news small{color:#7890ab}
.designer{max-width:1100px}.designer-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.designer-heading h1{margin:.3rem 0}.designer-heading p,.secrets-editor small{color:#91a4b9}.designer button,.designer select,.designer input,.designer textarea{font:inherit;color:#eaf2fb;background:#101e30;border:1px solid #ffffff2c;border-radius:8px;padding:10px 12px}.designer button{cursor:pointer;font-weight:650}.designer button:hover{border-color:#61d5c9}.designer button:disabled{opacity:.35;cursor:not-allowed}.designer button.primary{background:#32a99f;border-color:#61d5c9;color:#051310}.designer button.danger{color:#ff9baa}.section-title{font-size:17px;color:#d9e7f5;margin:30px 0 10px}.editor-panel,.widget-editor{background:#ffffff0a;border:1px solid #ffffff1c;border-radius:14px;padding:20px}.page-toolbar,.page-details,.widget-add{display:flex;align-items:end;gap:12px;margin:0 0 20px}.page-toolbar label,.page-details label,.editor-grid label,.integration-block>label{display:flex;flex-direction:column;gap:7px;color:#aebfd1;font-size:13px;flex:1}.page-details label{flex:1}.preview-link{padding:10px;color:#61d5c9}.widget-add{justify-content:flex-end}.widget-editor{margin:14px 0}.widget-editor header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.widget-number{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#61d5c922;color:#61d5c9;margin-right:10px}.editor-actions{display:flex;gap:7px}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.editor-grid .wide{grid-column:1/-1}.editor-grid input,.editor-grid textarea{width:100%}.save-message{color:#72e5ad}.empty-config,.no-settings{color:#91a4b9}.empty-dashboard{text-align:center;padding:80px 20px;border:1px dashed #ffffff25;border-radius:18px}.empty-dashboard a{color:#61d5c9}.edit-pages-link{border:1px solid #61d5c955;color:#75e4d9!important}.secrets-editor{margin-top:38px}.secrets-editor summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}.secrets-editor summary span:first-child{display:flex;flex-direction:column;gap:5px}.summary-action{color:#61d5c9}.warning-note{color:#f0cb63}.integration-block{margin:18px 0;padding:17px;border-left:3px solid #61d5c9;background:#07131f80}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;margin-bottom:13px;font-weight:700;color:#dbe8f5!important}.check-label input{width:auto}.inline-message{margin-left:12px}@media(max-width:700px){.designer-heading,.page-toolbar,.page-details{align-items:stretch;flex-direction:column}.editor-grid{grid-template-columns:1fr}.editor-actions{flex-wrap:wrap}.hub-header nav{display:flex}.inline-message{display:block;margin:12px 0 0}}
.page-list{display:grid;gap:14px;margin:30px 0}.page-list-card{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:22px;border:1px solid #ffffff1c;border-radius:15px;background:#ffffff0a}.page-list-card h2{margin:5px 0}.page-list-card p{margin:0;color:#7890ab}.page-widget-count,.preview-label{font-size:11px;letter-spacing:.14em;color:#61d5c9;font-weight:800}.page-card-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.button-link{display:inline-block;border:1px solid #ffffff27;background:#142438;color:#eaf2fb;border-radius:8px;padding:10px 13px;text-decoration:none;font-weight:650}.button-link.primary{background:#32a99f;border-color:#61d5c9;color:#051310}.widget-editor-with-preview{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:18px;align-items:start;margin:18px 0;padding:18px;border:1px solid #ffffff12;border-radius:18px;background:#050d1880}.widget-editor-with-preview .widget-editor{margin:0}.widget-preview{position:sticky;top:18px}.preview-heading{display:flex;align-items:center;justify-content:space-between;margin:0 4px 9px}.widget-preview .preview-label{display:block}.designer button.preview-refresh{padding:6px 10px;background:#0e1b2b;color:#75e4d9;font-size:12px}.widget-preview .widget-card{min-height:240px}.widget-preview .widget-card:first-child{grid-column:auto}.widget-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-top:28px}.widget-toolbar h2{margin:0}.widget-toolbar p{margin:5px 0 0;color:#91a4b9}.widget-toolbar .widget-add{margin:0;padding:0;background:none;border:0}@media(max-width:900px){.widget-editor-with-preview{grid-template-columns:1fr}.widget-preview{position:static}}@media(max-width:700px){.page-list-card,.widget-toolbar{align-items:stretch;flex-direction:column}.page-card-actions{align-items:stretch}.page-card-actions>*{text-align:center}}
.recipe-week li{align-items:center;padding:7px 0}.recipe-week li.today{margin:0 -8px;padding:8px;border-radius:8px;background:#61d5c912}.recipe-week time{width:42px;font-weight:800}.recipe-week div{display:flex;flex-direction:column;gap:2px}.recipe-week strong{font-size:14px;font-weight:650}.recipe-more{color:#61d5c9;font-size:12px;font-weight:700}.recipe-week small{font-size:11px;color:#7890ab}.widget-link{display:inline-block;margin-top:14px;color:#61d5c9;text-decoration:none;font-size:13px}.widget-link:hover{text-decoration:underline}

/* Stronger separation for editor pages and individual widget sections. */
.admin-page{background:#07101de8;border:1px solid #ffffff17;border-radius:24px;box-shadow:0 30px 80px #0008}
.page-list{gap:20px}
.page-list-card{padding:24px;border:1px solid #5d769655;border-left:4px solid #61d5c9;background:#102137;box-shadow:0 12px 30px #0006}
.page-list-card p{color:#91a7c0}
.widget-toolbar{margin-top:34px;padding:18px 0;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20}
.widget-editor-with-preview{position:relative;gap:22px;margin:28px 0;padding:22px;border:1px solid #6d8bad70;border-left:5px solid #61d5c9;background:#102137;box-shadow:0 16px 38px #0008}
.widget-editor-with-preview .widget-editor{background:#081522;border-color:#7189a655}
.widget-preview{padding:14px;border:1px solid #ffffff20;border-radius:14px;background:#07111f}
.designer button.preview-refresh{background:#142a40}
.page-editor-header{position:sticky;z-index:20;top:0;margin:-14px -14px 0;padding:14px 14px 10px;border-bottom:1px solid #61d5c944;background:#07101df5;box-shadow:0 12px 24px #0005;backdrop-filter:blur(16px)}.page-editor-header>a{color:#61d5c9;font-size:.82rem}.page-editor-header .designer-heading{margin-top:6px}.page-editor-header .designer-heading h1{margin:.12rem 0;font-size:32px;line-height:1.1}.page-editor-header .designer-heading p{margin:.2rem 0;font-size:.88rem}.page-editor-header .save-message{margin:7px 0 0}.page-setup-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:12px;margin:14px 0}.page-setup-row h2{margin:0;color:#d9e7f5;font-size:15px;white-space:nowrap}.designer .page-details{display:grid;grid-template-columns:auto minmax(140px,1fr) minmax(140px,1fr) auto;align-items:end;gap:10px;margin:0;padding:10px 14px}.designer .page-details label{gap:4px}.designer .widget-add{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:end;gap:10px;margin:0;padding:10px 14px}.designer .widget-add select,.designer .widget-add button{padding-top:8px;padding-bottom:8px}.designer .widget-editor-with-preview{margin:18px 0}.designer .widget-preview{position:static}@media(max-width:950px){.page-setup-row{grid-template-columns:1fr}.designer .page-details,.designer .widget-add{grid-template-columns:1fr}.page-setup-row h2{margin-bottom:2px}}
.page-editor-page{display:flex;flex-direction:column;height:calc(100vh - 32px);margin-top:16px;margin-bottom:16px;overflow:hidden}.page-editor-page .page-editor-header{position:relative;flex:0 0 auto}.page-editor-page .page-setup-row{margin-bottom:0}.widget-controls-scroll{min-height:0;flex:1 1 auto;overflow-y:auto;padding:0 12px 24px 2px;scrollbar-gutter:stable}.widget-controls-scroll>.widget-editor-with-preview:first-of-type{margin-top:18px}@media(max-width:950px){.page-editor-page{height:auto;min-height:calc(100vh - 32px);overflow:visible}.widget-controls-scroll{overflow:visible;padding-right:2px}}
.sports-team-editor{display:grid;gap:12px}.sports-team-heading{display:flex;align-items:center;justify-content:space-between;color:#dbe8f5;font-weight:700}.sports-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:15px;border:1px solid #ffffff24;border-radius:10px;background:#0c1a2a}.sports-team-row>strong{grid-column:1/-1;color:#61d5c9}.sports-team-select{grid-column:1/-1}.selected-team-summary{display:flex;align-items:center;gap:10px;color:#dbe8f5}.selected-team-summary img{width:44px;height:44px;object-fit:contain}.selected-team-summary span{display:flex;flex-direction:column;gap:3px}.selected-team-summary small{color:#7890ab}.sports-team-row>.danger{justify-self:end;align-self:end}@media(max-width:700px){.sports-team-row{grid-template-columns:1fr}.sports-team-row>.danger{justify-self:stretch}}
.connection-actions{display:flex;align-items:center;gap:14px;margin-top:12px}.connection-status{color:#72e5ad}@media(max-width:650px){.connection-actions{align-items:stretch;flex-direction:column}}

.dashboard-page-header{min-width:240px;text-align:right}.dashboard-page-header>span{display:flex;flex-direction:column;font-size:18px;font-weight:700}.dashboard-page-header small{color:#61d5c9;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.dashboard-user{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:8px;color:#8fa4bd;font-size:11px}.dashboard-user form{margin:0}.dashboard-user button,.dashboard-user a{border:0;background:transparent;color:#8fa4bd;font:inherit;text-decoration:none;padding:0;cursor:pointer}.dashboard-user button:hover,.dashboard-user a:hover{color:#eef4ff}.hub-carousel-control{position:fixed;z-index:40;top:50%;display:flex;align-items:center;gap:7px;min-width:52px;min-height:92px;padding:10px 8px;color:#eef4ff;background:#08111fcc;border:1px solid #ffffff20;text-decoration:none;transform:translateY(-50%);backdrop-filter:blur(14px);box-shadow:0 12px 30px #0005;transition:background .18s,border-color .18s,transform .18s}.hub-carousel-control.previous{left:0;border-left:0;border-radius:0 18px 18px 0}.hub-carousel-control.next{right:0;border-right:0;border-radius:18px 0 0 18px}.hub-carousel-control span{font-size:44px;font-weight:200;line-height:1;color:#61d5c9}.hub-carousel-control small{max-width:0;overflow:hidden;white-space:nowrap;color:#c5d1df;font-size:12px;opacity:0;transition:max-width .2s,opacity .2s}.hub-carousel-control:hover,.hub-carousel-control:focus-visible{background:#10253beF;border-color:#61d5c966;transform:translateY(-50%) scale(1.03)}.hub-carousel-control:hover small,.hub-carousel-control:focus-visible small{max-width:140px;opacity:1}@media(max-width:650px){.hero{width:100%}.dashboard-page-header{width:100%;text-align:left}.dashboard-user{justify-content:flex-start}.hub-carousel-control{min-width:42px;min-height:72px;padding:7px 5px}.hub-carousel-control span{font-size:36px}.hub-carousel-control small{display:none}}
.dashboard-page-header summary .header-version{margin-left:.45em;color:#7890ab;font-style:normal;font-weight:600;letter-spacing:.06em}

.hub-shell{padding-top:10px}.hero{padding-top:8px;padding-bottom:16px}@media(max-width:650px){.hub-shell{padding-top:8px}.hero{padding-top:4px}}

.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-card{width:min(430px,100%);padding:34px;border:1px solid #ffffff20;border-radius:20px;background:#0d1b2cf2;box-shadow:0 24px 70px #0007}.login-card h1{margin:8px 0;font-size:38px}.login-card>p{color:#91a4b9}.login-card form,.login-card label{display:flex;flex-direction:column}.login-card form{gap:18px;margin-top:26px}.login-card label{gap:7px;color:#b9c8d8;font-size:13px}.login-card input{padding:12px 14px;border:1px solid #ffffff2c;border-radius:9px;background:#07131f;color:#eef4ff;font:inherit}.login-card button{padding:12px;border:1px solid #61d5c9;border-radius:9px;background:#32a99f;color:#051310;font:inherit;font-weight:750;cursor:pointer}.login-card .login-error{padding:10px 12px;border-radius:8px;background:#ff7c8f18;color:#ff9baa}.dashboard-user{display:flex;align-items:center;justify-content:space-between!important;gap:20px}.dashboard-user form{margin:0}.dashboard-user button{padding:5px 9px;border:1px solid #ffffff22;border-radius:14px;background:transparent;color:#91a4b9;cursor:pointer}.admin-users{margin:24px 0}.admin-section-heading h2,.selected-dashboard-heading h2{margin:0}.admin-section-heading p{margin:5px 0;color:#91a4b9}.user-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:16px}.user-selector a{display:flex;flex-direction:column;gap:3px;padding:13px;border:1px solid #ffffff1c;border-radius:10px;text-decoration:none;background:#0c1a2a}.user-selector a.active{border-color:#61d5c9;background:#61d5c912}.user-selector small{color:#8196ad}.create-user-panel{margin-top:18px;padding-top:14px;border-top:1px solid #ffffff18}.create-user-panel summary{color:#61d5c9;cursor:pointer;font-weight:700}.create-user-panel .editor-grid{margin-top:15px}.create-user-action{display:flex;align-items:end}.selected-dashboard-heading{display:flex;align-items:end;justify-content:space-between;margin:30px 0 12px}@media(max-width:650px){.login-card{padding:25px}.selected-dashboard-heading{align-items:start;flex-direction:column;gap:12px}}

.admin-section-nav{position:sticky;z-index:15;top:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0;padding:9px;border:1px solid #ffffff1c;border-radius:14px;background:#07101df2;backdrop-filter:blur(16px)}.admin-section-nav a{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:9px;color:#b8c8d9;text-decoration:none;font-weight:700}.admin-section-nav a:hover{background:#61d5c914;color:#fff}.admin-section-nav span,.section-number{color:#61d5c9;font-size:11px;font-weight:800;letter-spacing:.12em}.admin-section{scroll-margin-top:78px;margin:22px 0}.admin-section.editor-panel{padding:24px}.admin-section-heading>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:10px}.admin-section-heading .section-number{grid-row:1/3;padding-top:5px}.admin-section-heading h2{font-size:23px}.admin-section-heading p{grid-column:2}.section-heading-actions{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-heading-actions>div:last-child{display:flex;gap:9px}.pages-admin-section .page-list{margin-top:18px}.pages-admin-section .page-list-card:first-child{margin-top:0}.config-admin-section{padding:24px;border:1px solid #ffffff1c;border-radius:14px;background:#ffffff08}.config-admin-section .secrets-editor{margin-top:18px}.config-admin-section .admin-section-heading{padding:0 3px}@media(max-width:650px){.admin-section-nav{position:static}.admin-section-nav a{flex-direction:column;font-size:12px}.section-heading-actions{align-items:flex-start;flex-direction:column}.section-heading-actions>div:last-child{width:100%;flex-wrap:wrap}}

.version-stamp{display:block;margin-top:16px;color:#58708a;font-size:10px;letter-spacing:.08em}.dashboard-page-menu>.version-stamp{margin:13px 5px 0;padding-top:10px;border-top:1px solid #ffffff12}.login-card>.version-stamp{text-align:center}
.page-create-actions{display:flex;align-items:end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.page-create-actions label{display:flex;flex-direction:column;gap:4px;color:#91a4b9;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.page-create-actions select{min-width:150px}.page-owner-badge{display:inline-flex;margin:0 8px 8px 0;padding:4px 8px;border:1px solid #61d5c944;border-radius:999px;color:#61d5c9;font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.page-list-card .page-owner-badge+.page-widget-count{display:inline-flex}@media(max-width:650px){.page-create-actions{justify-content:flex-start}.page-create-actions label,.page-create-actions select{width:100%}}
.widget-preview .widget-card{background:linear-gradient(145deg,#20354b,#122337);border-color:#ffffff2e;box-shadow:0 12px 28px #0007}

/* Restored SmartHome weather presentation. */
.weather-rich{display:flex;flex-direction:column;gap:.75rem;min-width:320px}.weather-rich .widget-body{margin-top:8px}.weather-rich h2{font-size:1.15rem;background:linear-gradient(135deg,#60a5fa,#34d399);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.current-weather{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin:.4rem 0;flex-wrap:wrap}.temp-now{font-size:5rem;font-weight:300;line-height:1;background:linear-gradient(135deg,#e0f2fe,#fbbf24);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px #fbbf2440)}.big-icon{width:112px;height:112px;filter:drop-shadow(0 0 18px #ffffff40)}.feels-like{font-size:1.2rem;color:#94a3b8}.today-range{display:flex;justify-content:space-between;font-size:1rem;font-weight:600;padding:0 .5rem}.today-range .high,.high-temp{color:#fb923c}.today-range .low,.low-temp{color:#93c5fd}.forecast-grid{display:grid;grid-template-columns:repeat(5,minmax(62px,1fr));gap:.5rem;margin-top:.6rem;padding-top:.75rem;border-top:1px solid #ffffff1a}.forecast-day{display:flex;flex-direction:column;align-items:center;min-width:0;padding:.55rem .25rem;border-radius:.75rem;background:#1e293b80}.day-label{font-weight:700;font-size:.78rem;color:#fbbf24}.forecast-icon{width:42px;height:42px}.temp-range{display:flex;gap:.35rem;font-size:.85rem;font-weight:700}.condition{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.68rem;color:#aebdd1;text-transform:capitalize}

/* Restored SmartHome Fear & Greed gauge and history. */
.fear-rich .widget-body{margin-top:2px}.fear-gauge{width:min(350px,100%);height:225px;margin:-10px auto -8px}.fear-gauge svg{display:block;width:100%;height:100%;overflow:visible}.fear-zone,.fear-value-bar{fill:none;stroke-linecap:butt}.fear-zone{stroke-width:30}.fear-value-bar{stroke:#2b5876;stroke-width:12;opacity:.92}.fear-tick{fill:#fff;font-size:9px;text-anchor:middle;dominant-baseline:middle;opacity:.82}.fear-rating{fill:#fff;font-size:16px;text-anchor:middle;font-weight:500}.fear-number{fill:#fff;font-size:31px;text-anchor:middle;font-weight:500}.fear-history{display:grid;gap:8px;padding:0 12px;font-size:1rem}.fear-history>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #ffffff12}.fear-history>div>span{color:#fff;opacity:.8}.fear-history strong{font-weight:500}.fear-history strong small{font-size:.88rem;font-weight:400;opacity:.7}

/* Restored SmartHome portfolio chart, target pace, and period changes. */
.budget-rich .widget-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(150px,.7fr);gap:16px;align-items:center;margin-top:10px}.budget-chart svg{display:block;width:100%;min-height:170px}.chart-axis{stroke:#ffffff1c;stroke-width:1}.budget-actual-line,.budget-goal-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.budget-actual-line{stroke:#00ff88;filter:drop-shadow(0 0 4px #00ff8866)}.budget-goal-line{stroke:#ffcc00;stroke-width:2;stroke-dasharray:7 5}.budget-legend{display:flex;justify-content:center;gap:18px;color:#94a3b8;font-size:.76rem}.budget-legend span{display:flex;align-items:center;gap:6px}.budget-legend i{display:block;width:18px;height:3px}.budget-legend .actual{background:#00ff88}.budget-legend .goal{background:#ffcc00}.budget-performance{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 10px;border-radius:14px;background:#ffffff08}.budget-performance strong{font-size:2.2rem;line-height:1}.budget-performance.ahead strong{color:#00ff88}.budget-performance.behind strong{color:#ff6b7c}.budget-performance span{margin-top:6px;font-weight:750}.budget-performance small{margin-top:8px;color:#7890ab}.budget-periods{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid #ffffff14;padding-top:12px}.budget-periods>div{display:flex;flex-direction:column;align-items:center;gap:4px}.budget-periods span{color:#8fa4bd;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.budget-periods strong{font-size:.95rem}@media(max-width:650px){.budget-rich .widget-body{grid-template-columns:1fr}.budget-periods{grid-template-columns:repeat(2,1fr)}}
.budget-monthly .widget-body{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(0,1.2fr);gap:20px;align-items:center}.budget-summary{display:flex;flex-direction:column;gap:6px}.budget-summary small,.budget-updated{color:#7890ab}.budget-summary strong{font-size:2.5rem;font-weight:300}.budget-summary span{color:#bdcad8}.budget-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.budget-metrics div{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:10px;background:#ffffff08}.budget-metrics span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#8fa4bd}.budget-updated{grid-column:1/-1}@media(max-width:650px){.budget-monthly .widget-body{grid-template-columns:1fr}}
.budget-accounts .widget-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(160px,.65fr);gap:18px;align-items:center}.budget-account-chart svg{display:block;width:100%;min-height:170px}.budget-account-line,.budget-total-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #0008)}.budget-total-line{stroke:#eef4ff;stroke-width:3.5}.budget-account-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;color:#94a3b8;font-size:.72rem}.budget-account-legend span{display:flex;align-items:center;gap:5px}.budget-account-legend i{width:9px;height:9px;border-radius:50%}.budget-account-legend i.total{background:#eef4ff}.budget-account-legend i.target{width:15px;height:3px;border-radius:0;background:#ffcc00}.budget-account-legend strong{color:#dce8f5;font-size:.72rem}.budget-account-summary{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:14px;background:#ffffff08}.budget-account-summary>strong{font-size:2rem;font-weight:300}.budget-account-summary>small{color:#7890ab}.budget-account-summary>span{display:flex;justify-content:space-between;gap:10px}.budget-account-summary em{color:#8fa4bd;font-style:normal}@media(max-width:650px){.budget-accounts .widget-body{grid-template-columns:1fr}}

/* Restored SmartHome team-card sports presentation. */
.sports-rich .widget-body{margin-top:12px}.teams-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.team-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding:1rem;border:1px solid #ffffff12;border-radius:.875rem;background:#1e293b73;text-align:center;transition:.25s}.team-card:hover{transform:translateY(-4px);background:#22c55e1f;box-shadow:0 10px 30px #0005}.team-logo{width:80px;height:80px;object-fit:contain;margin-bottom:.65rem;filter:drop-shadow(0 2px 8px #0008)}.team-name{margin:0 0 .65rem;color:#fbbf24;font-size:1.1rem}.last-game,.next-game{width:100%;margin:.3rem 0;font-size:.84rem;line-height:1.4}.last-game strong{color:#fb923c}.next-game strong{color:#60a5fa}.result-badge{position:absolute;top:8px;right:-30px;padding:6px 40px;transform:rotate(45deg);background:#22c55e;color:#fff;font-size:.72rem;font-weight:900;letter-spacing:1px}.result-badge.lost{background:#ef4444}.result-badge.tied{background:#f59e0b}@media(max-width:650px){.weather-rich{min-width:0}.temp-now{font-size:4rem}.big-icon{width:90px;height:90px}.forecast-grid{overflow-x:auto}.fear-history{padding:0}.teams-grid{grid-template-columns:1fr}}

/* Dashboard viewport: keep the header plus a 3-column × 2-row card grid visible on desktop. */
@media (min-width:651px){
 .dashboard-shell{display:flex;flex-direction:column;width:100%;height:100dvh;max-width:1600px;padding:14px 24px 18px}
 .dashboard-shell .hero{flex:0 0 86px;min-height:0;padding:8px 2px 12px}
 .dashboard-shell .date{font-size:11px}
 .dashboard-shell .clock{font-size:48px;margin:3px 0}
 .dashboard-shell .clock span{font-size:16px}
 .dashboard-shell .dashboard-page-header{min-width:220px}
 .dashboard-shell .dashboard-grid{min-height:0;flex:1 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(160px,1fr);gap:12px}
 .dashboard-shell .widget-card{min-height:0;padding:13px 15px;border-radius:14px}
 .dashboard-shell .widget-card h2{font-size:11px}
 .dashboard-shell .widget-card header>span{font-size:17px}
 .dashboard-shell .widget-body{margin-top:10px}
 .dashboard-shell .metric{font-size:42px}
 .dashboard-shell .metric.small{font-size:32px}
 .dashboard-shell .widget-card p{margin:8px 0}
 .dashboard-shell .detail-row{gap:12px;margin-top:10px}
 .dashboard-shell li{padding:5px 0}
 .dashboard-shell .gauge{margin:9px 0}
}

/* Traditional multi-page administration layout. */
.admin-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh;background:#08111f}.admin-sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;padding:28px 20px;border-right:1px solid #ffffff18;background:#0b1727}.admin-brand{display:flex;flex-direction:column;gap:5px;margin:0 8px 30px;color:#eef4ff;text-decoration:none}.admin-brand strong{font-size:19px}.admin-sidebar nav{display:flex;flex-direction:column;gap:5px}.admin-sidebar nav a{padding:11px 13px;border-radius:8px;color:#9fb0c3;text-decoration:none;font-weight:650}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:#61d5c918;color:#fff}.admin-sidebar nav a.active{border-left:3px solid #61d5c9}.admin-dashboard-link{margin-top:auto;padding:11px;color:#61d5c9;text-decoration:none}.admin-content{width:min(1100px,100%);padding:42px 48px 70px}.admin-content-header{margin-bottom:28px}.admin-content-header h1{margin:6px 0;font-size:38px}.admin-content-header p,.admin-panel-heading p{margin:0;color:#91a4b9}.admin-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.admin-summary-card{display:flex;min-height:175px;flex-direction:column;padding:22px;border:1px solid #ffffff1c;border-radius:14px;background:#102137;color:#eef4ff;text-decoration:none}.admin-summary-card>span{color:#61d5c9;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.admin-summary-card strong{margin:15px 0 5px;font-size:28px}.admin-summary-card p{margin:auto 0 0;color:#91a4b9}.admin-panel{margin:0 0 18px;padding:23px;border:1px solid #ffffff1c;border-radius:14px;background:#ffffff08}.admin-panel h2{margin:0 0 8px}.admin-panel label{display:flex;flex-direction:column;gap:7px;color:#aebfd1;font-size:13px}.admin-panel input,.admin-panel select,.admin-panel button{padding:10px 12px;border:1px solid #ffffff2c;border-radius:8px;background:#101e30;color:#eaf2fb;font:inherit}.admin-panel button{cursor:pointer;font-weight:650}.admin-panel button.primary,.admin-save-bar button.primary{background:#32a99f;border-color:#61d5c9;color:#051310}.admin-quick-actions,.admin-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.admin-table{margin-top:17px;border-top:1px solid #ffffff18}.admin-table-row{display:grid;grid-template-columns:1.1fr 1.6fr .65fr .8fr;gap:16px;align-items:center;padding:14px 8px;border-bottom:1px solid #ffffff12}.admin-table-header{color:#7890ab;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-table-row a{color:#61d5c9}.role-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#61d5c918;color:#61d5c9;font-size:11px;font-style:normal}.admin-owner-bar{display:flex;align-items:end;justify-content:space-between;gap:20px}.admin-owner-bar label{min-width:260px}.admin-owner-bar>div{display:flex;gap:9px}.admin-panel-heading{display:flex;justify-content:space-between;align-items:center}.admin-save-bar{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:14px 0;background:linear-gradient(transparent,#08111f 30%)}.admin-save-bar button{padding:12px 20px;border:1px solid #61d5c9;border-radius:8px;font:inherit;font-weight:750;cursor:pointer}@media(max-width:850px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;padding:17px}.admin-brand{margin-bottom:14px}.admin-sidebar nav{flex-direction:row;flex-wrap:wrap}.admin-dashboard-link{margin-top:12px}.admin-content{padding:28px 20px 60px}.admin-summary-grid{grid-template-columns:1fr}.admin-table-row{grid-template-columns:1fr}.admin-table-header{display:none}.admin-owner-bar{align-items:stretch;flex-direction:column}}
.user-actions{display:flex;align-items:center;gap:10px}.user-actions button{padding:6px 10px}.admin-divider{margin:24px 0;border:0;border-top:1px solid #ffffff18}
.todo-panel-heading{align-items:end}.todo-list-name{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px;color:#91a4b9;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.todo-list-name>span{display:flex;align-items:center;gap:10px}.todo-list-name small{color:#61d5c9;font-size:10px;letter-spacing:.04em}.todo-panel-heading .todo-list-name input{width:100%;min-width:0;border:1px solid #ffffff22;border-radius:10px;background:#07111f;color:#eef4ff;padding:10px 12px;font-size:22px;font-weight:650;letter-spacing:normal;text-transform:none}.todo-panel-heading .todo-list-name input:hover{border-color:#61d5c966}.todo-panel-heading .todo-list-name input:focus{border-color:#61d5c9;outline:3px solid #61d5c922}
.todo-widget-list li{align-items:center;gap:10px;padding:8px 0}.todo-ring{width:14px;height:14px;flex:0 0 14px;padding:0;border:2px solid #61d5c9;border-radius:50%;background:transparent;cursor:pointer}.todo-ring:hover{background:#61d5c933}.todo-ring:disabled{opacity:.5;cursor:default}.todo-widget-empty{display:flex;flex-direction:column;gap:5px;color:#91a4b9}.todo-widget-empty strong{font-size:24px;color:#eef4ff}.todo-page{width:min(100% - 28px,700px);margin:0 auto;padding:24px 0 50px;min-height:100vh}.todo-page-header{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:12px;padding:16px 0 24px}.todo-page-header a,.todo-page-header button{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff24;border-radius:50%;background:#ffffff0b;color:#61d5c9;text-decoration:none;font-size:27px}.todo-page-header small{color:#61d5c9;letter-spacing:.25em;font-weight:800}.todo-page-header h1{margin:3px 0 0;font-size:clamp(34px,8vw,56px);font-weight:350}.todo-list-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 18px}.todo-list-tabs button{flex:none;border:0;border-radius:999px;padding:10px 15px;background:#ffffff12;color:#aebdd1}.todo-list-tabs button.active{background:#61d5c9;color:#051310;font-weight:750}.todo-panel{overflow:hidden;border:1px solid #ffffff18;border-radius:20px;background:linear-gradient(145deg,#ffffff10,#ffffff06);box-shadow:0 18px 45px #0003}.todo-panel-heading{display:flex;justify-content:space-between;gap:12px;padding:18px}.todo-panel-heading input{min-width:0;border:0;background:transparent;color:#eef4ff;font-size:24px;font-weight:650}.todo-panel button,.todo-panel input{font:inherit}.todo-panel .danger{border:0;background:transparent;color:#ff9aaa}.todo-panel form{display:flex;gap:8px;padding:0 18px 18px}.todo-panel form input{min-width:0;flex:1;border:1px solid #ffffff22;border-radius:12px;background:#07111f;color:#eef4ff;padding:13px}.todo-panel form button,.todo-welcome button{border:0;border-radius:12px;background:#61d5c9;color:#051310;padding:0 18px;font-weight:800}.todo-page-items li{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:5px;min-height:58px;padding:5px 10px;border-top:1px solid #ffffff0d}.todo-page-items button{border:0;background:transparent;font-size:22px}.todo-page-items .check{color:#61d5c9}.todo-page-items .remove{color:#7890ab}.todo-page-items li.complete span{text-decoration:line-through;color:#7890ab}.todo-empty,.todo-page-status{padding:30px;text-align:center;color:#91a4b9}.todo-welcome{text-align:center;padding:45px 20px}.todo-welcome button{padding:12px 18px}

/* Lyrion now-playing widget. */
.music-playlist{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;color:#91a4b9;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.music-playlist select{min-width:0;width:100%;padding:9px 10px;border:1px solid #61d5c955;border-radius:9px;background:#101e30;color:#eef4ff;font:inherit;text-transform:none;letter-spacing:normal}.music-playlist select:disabled{opacity:.5}
.spending-rich .widget-body{display:grid;gap:14px;margin-top:16px}.spending-status{display:flex;align-items:center;gap:9px;color:#5fe1a2;font-size:.78rem;font-weight:800;letter-spacing:.12em}.spending-status i{width:8px;height:8px;border-radius:50%;background:currentColor}.spending-status.over{color:#ff7c8f}.spending-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.spending-totals div,.spending-progress,.spending-categories>div{background:#ffffff08;border:1px solid #ffffff0d;border-radius:10px}.spending-totals div{display:flex;min-width:0;flex-direction:column;gap:5px;padding:11px}.spending-totals span,.spending-progress span{color:#8fa4bd;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em}.spending-totals strong{font-size:1.15rem}.spending-totals .bad{color:#ff7c8f}.spending-totals .good{color:#5fe1a2}.spending-progress{display:grid;gap:11px;padding:12px}.spending-progress>div{display:grid;grid-template-columns:128px minmax(70px,1fr) 42px;align-items:center;gap:10px}.spending-progress strong{text-align:right;font-size:.85rem}.spending-progress b{grid-column:2/4;text-align:right;color:#5fe1a2;font-size:1.15rem}.spending-bar{height:7px;border-radius:8px;background:#ffffff10;overflow:hidden}.spending-bar i{display:block;height:100%;border-radius:inherit;background:#61d5c9}.spending-bar.red i{background:linear-gradient(90deg,#61d5c9,#f0cb63,#ff7c8f)}.spending-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.spending-categories>div{display:flex;align-items:center;gap:10px;padding:10px}.spending-categories i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#ffffff08;color:#5fe1a2;font-style:normal;font-weight:800}.spending-categories .over i,.spending-categories .over strong{color:#ff7c8f}.spending-categories span{display:flex;min-width:0;flex-direction:column;color:#bdcad8}.spending-categories strong{color:#5fe1a2;font-size:.72rem}.spending-updated{color:#7890ab}@media(max-width:650px){.spending-totals{grid-template-columns:1fr}.spending-progress>div{grid-template-columns:105px minmax(55px,1fr) 38px}.spending-categories{grid-template-columns:1fr}}
.music-player .widget-body{display:flex;flex-direction:column;gap:16px;margin-top:12px}.music-now-playing{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center}.music-art{display:grid;place-items:center;width:92px;height:92px;overflow:hidden;border-radius:12px;background:linear-gradient(145deg,#61d5c933,#192d43);color:#61d5c9;font-size:34px;box-shadow:0 10px 24px #0005}.music-art img{width:100%;height:100%;object-fit:cover}.music-track{display:flex;min-width:0;flex-direction:column;gap:6px}.music-track strong,.music-track span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-track strong{font-size:20px}.music-track span{color:#91a4b9}.music-controls{display:flex;align-items:center;gap:10px}.music-controls button{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border:1px solid #61d5c955;border-radius:50%;background:#61d5c918;color:#eef4ff;font-weight:800;cursor:pointer}.music-controls button:first-child{background:#61d5c9;color:#051310}.music-controls button:disabled{opacity:.5}.music-controls label{display:grid;grid-template-columns:auto minmax(70px,1fr) 38px;align-items:center;gap:8px;min-width:0;flex:1;color:#91a4b9;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.music-controls input{width:100%;accent-color:#61d5c9}.music-controls output{color:#eef4ff}.music-empty{display:flex;align-items:center;gap:14px;color:#91a4b9}.music-disc{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#61d5c922;color:#61d5c9;font-size:25px}.music-error{color:#f0cb63}@media(max-width:420px){.music-now-playing{grid-template-columns:72px minmax(0,1fr)}.music-art{width:72px;height:72px}.music-controls label>span{display:none}}
.hubitat-switch .switch-widget-body{display:flex;min-height:155px;flex-direction:column;align-items:center;justify-content:center;gap:12px}.switch-control{display:flex;flex-direction:column;align-items:center;gap:13px;border:0;background:transparent;color:#91a4b9;cursor:pointer;font:inherit}.switch-control:disabled{cursor:wait;opacity:.7}.switch-track{position:relative;display:block;width:92px;height:48px;border:1px solid #ffffff2c;border-radius:999px;background:#ffffff12;box-shadow:inset 0 3px 10px #0005;transition:.2s}.switch-track i{position:absolute;top:5px;left:6px;width:36px;height:36px;border-radius:50%;background:#8fa4bd;box-shadow:0 5px 12px #0006;transition:.2s}.switch-control.on{color:#5fe1a2}.switch-control.on .switch-track{border-color:#5fe1a277;background:#5fe1a233;box-shadow:0 0 24px #5fe1a233}.switch-control.on .switch-track i{left:49px;background:#5fe1a2}.switch-control strong{font-size:22px}.switch-widget-body>small{color:#7890ab}.switch-error{margin:0;color:#f0cb63;text-align:center}

/* PhotoBook image and video slideshow. */
.media-slideshow{display:flex;overflow:hidden;flex-direction:column}.media-slideshow .widget-body{display:flex;min-height:0;flex:1;margin:10px -15px -13px}.media-slideshow-stage{position:relative;display:grid;width:100%;min-height:220px;overflow:hidden;place-items:center;background:#02060b}.media-slideshow-stage img,.media-slideshow-stage video{width:100%;height:100%;max-height:100%;object-fit:contain}.media-slideshow-controls{position:absolute;left:50%;bottom:13px;display:flex;gap:8px;padding:7px 9px;transform:translate(-50%,8px);border:1px solid #ffffff24;border-radius:999px;background:#02060bcc;opacity:0;transition:.2s}.media-slideshow-stage:hover .media-slideshow-controls,.media-slideshow-controls.visible{transform:translate(-50%,0);opacity:1}.media-slideshow-controls button,.media-slideshow-message button{border:1px solid #ffffff2c;background:#ffffff12;color:#eef4ff;cursor:pointer}.media-slideshow-controls button{display:grid;width:37px;height:37px;place-items:center;border-radius:50%;font-size:18px}.media-slideshow-message{display:flex;width:100%;min-height:190px;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#91a4b9;text-align:center}.media-slideshow-message button{padding:8px 14px;border-radius:9px}.widget-slot-large .media-slideshow-stage{min-height:430px}.widget-slot-fullscreen .media-slideshow-stage{height:100%;min-height:0}.widget-slot-standard .media-slideshow-controls button:nth-child(4){display:none}@media(max-width:650px){.media-slideshow-controls{opacity:1;transform:translate(-50%,0)}.widget-slot-large .media-slideshow-stage{min-height:280px}.widget-slot-fullscreen .media-slideshow-stage{min-height:calc(100dvh - 190px)}}
.switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:12px}.switch-item{display:flex;min-width:0;flex-direction:column;align-items:center;gap:7px;padding:10px;border-radius:12px;background:#ffffff06}.switch-item>span{max-width:100%;overflow:hidden;color:#bdcad8;text-overflow:ellipsis;white-space:nowrap}.switch-item .switch-track{width:68px;height:36px}.switch-item .switch-track i{top:4px;left:5px;width:26px;height:26px}.switch-item .switch-control.on .switch-track i{left:35px}.switch-item .switch-control{gap:7px}.switch-item .switch-control strong{font-size:15px}.switch-item .switch-error{max-width:100%;color:#f0cb63;font-size:10px}@media(max-width:420px){.switch-grid{grid-template-columns:1fr 1fr;gap:8px}}
.switch-grid.count-1{grid-template-columns:1fr;min-height:165px;place-items:center}.switch-grid.count-1 .switch-item{width:100%;height:100%;justify-content:center;background:transparent}.switch-grid.count-1 .switch-track{width:112px;height:58px}.switch-grid.count-1 .switch-track i{top:6px;left:7px;width:44px;height:44px}.switch-grid.count-1 .switch-control.on .switch-track i{left:59px}.switch-grid.count-1 .switch-control{gap:12px}.switch-grid.count-1 .switch-control strong{font-size:24px}.switch-grid.count-1 .switch-item>span{font-size:16px}.switch-grid.count-2{grid-template-columns:repeat(2,minmax(0,1fr));min-height:165px;align-items:stretch}.switch-grid.count-2 .switch-item{justify-content:center}.switch-grid.count-2 .switch-track{width:86px;height:44px}.switch-grid.count-2 .switch-track i{top:5px;left:6px;width:32px;height:32px}.switch-grid.count-2 .switch-control.on .switch-track i{left:46px}.switch-grid.count-2 .switch-control strong{font-size:18px}
.dimmer-level{display:grid;width:min(180px,100%);grid-template-columns:minmax(70px,1fr) 38px;align-items:center;gap:8px}.dimmer-level input{width:100%;accent-color:#61d5c9}.dimmer-level output{color:#eef4ff;font-size:12px;text-align:right}.switch-grid.count-3 .dimmer-level,.switch-grid.count-4 .dimmer-level{grid-template-columns:minmax(50px,1fr) 34px}
.govee-group .widget-body{display:flex;flex-direction:column;gap:13px;margin-top:14px}.govee-summary{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px}.govee-summary>strong{font-size:1.35rem}.govee-status{display:flex;align-items:center;gap:7px;color:#ff9baa;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.govee-status i{width:8px;height:8px;border-radius:50%;background:currentColor}.govee-status.online{color:#5fe1a2}.govee-members{padding:4px 8px;border-radius:999px;background:#ffffff0b;color:#91a4b9;font-size:.72rem}.govee-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.govee-actions button,.govee-scenes button,.govee-scenes select{min-height:38px;border:1px solid #ffffff24;border-radius:9px;background:#102137;color:#eef4ff;font:inherit}.govee-actions button,.govee-scenes button{cursor:pointer;font-weight:700}.govee-actions button.active,.govee-scenes .apply{border-color:#61d5c977;background:#61d5c922}.govee-actions .warm-white{grid-column:1/-1;color:#ffe8b0}.govee-actions button:disabled,.govee-scenes button:disabled,.govee-scenes select:disabled{cursor:not-allowed;opacity:.45}.govee-scenes{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.govee-scenes label{display:flex;min-width:0;flex-direction:column;gap:5px;color:#91a4b9;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.govee-scenes select{width:100%;padding:0 9px}.govee-scenes .apply{padding:0 15px}.govee-error,.govee-loading{margin:0!important;color:#f0cb63!important;font-size:.78rem}@media(max-width:420px){.govee-summary{grid-template-columns:1fr auto}.govee-members{grid-column:1/-1;justify-self:start}}

/* Widget footprint options: standard 1x1, wide 2x1, and large 2x2. */
.widget-slot{min-width:0;min-height:0}
.widget-slot-wide{grid-column:span 2}
.widget-slot-large{grid-column:span 2;grid-row:span 2}
.widget-slot-fullscreen{grid-column:1/-1;grid-row:span 2}
.widget-slot>.widget-card{height:100%}

/* True fullscreen: the whole page becomes one widget, no dashboard header/clock, no card chrome. */
.dashboard-shell.true-fullscreen-page{display:flex;width:100vw;height:100dvh;max-width:none;padding:0;margin:0}
.widget-slot-true-fullscreen{flex:1 1 auto;min-width:0;min-height:0}
.widget-slot-true-fullscreen>.widget-card{height:100%;width:100%;padding:0;border:0;border-radius:0;box-shadow:none}
.widget-slot-true-fullscreen>.widget-card>header{display:none}
.widget-slot-true-fullscreen>.widget-card>.widget-body{height:100%;margin:0}
.widget-slot-true-fullscreen .media-slideshow-stage{height:100%;min-height:0}
@media(max-width:650px){.widget-slot-wide,.widget-slot-large,.widget-slot-fullscreen{grid-column:1/-1;grid-row:auto}}

/* Savings tracker */
.savings-tracker .widget-body{display:flex;min-height:0;flex-direction:column;gap:11px;margin-top:7px}.savings-goal-summary{display:flex;align-items:center;gap:9px;color:#91a4b9;font-size:.76rem}.savings-goal-summary strong{color:#5fe1a2;font-size:.9rem}.savings-section h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 7px;color:#91a4b9;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.savings-section h3 span{font-size:.68rem;letter-spacing:normal;text-transform:none}.savings-pace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.savings-pace-card{min-width:0;padding:10px;border:1px solid #ffffff12;border-radius:10px;background:#ffffff06}.savings-pace-heading{display:flex;align-items:end;justify-content:space-between;gap:8px}.savings-pace-heading>div{display:flex;min-width:0;flex-direction:column;gap:2px}.savings-pace-heading small{color:#5fe1a2;font-weight:800;letter-spacing:.08em}.savings-pace-heading strong{overflow:hidden;font-size:1.15rem;white-space:nowrap;text-overflow:ellipsis}.savings-pace-heading em{color:#91a4b9;font-size:.68rem;font-style:normal;font-weight:500}.savings-pace-heading b{color:#5fe1a2;font-size:1.55rem}.savings-pace-card.annual small,.savings-pace-card.annual b{color:#4da3ff}.savings-track{position:relative;height:8px;margin:9px 0 7px;overflow:visible;border-radius:999px;background:#ffffff12}.savings-track i{display:block;width:var(--progress);height:100%;border-radius:inherit;background:#5fe1a2}.savings-track.annual i,.savings-account.retirement .savings-track i{background:#4da3ff}.savings-track.over i,.savings-account.over .savings-track i{background:linear-gradient(90deg,#5fe1a2 0 var(--goal),#f5ad35 var(--goal) 100%)}.savings-track>span{position:absolute;top:-3px;width:2px;height:14px;background:#fff;box-shadow:0 0 0 1px #0005}.savings-pace-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#91a4b9;font-size:.67rem}.savings-pace-footer strong{padding:3px 6px;border:1px solid currentColor;border-radius:999px;white-space:nowrap}.savings-pace-footer .ahead{color:#5fe1a2}.savings-pace-footer .behind{color:#f0cb63}.savings-account-list{display:grid;gap:6px}.savings-account{display:grid;grid-template-columns:minmax(125px,.75fr) minmax(0,1.6fr);align-items:center;gap:12px;padding:7px 9px;border:1px solid #ffffff0d;border-radius:9px;background:#ffffff04}.savings-account-name{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:3px 8px}.savings-account-name strong{font-size:.78rem}.savings-account-name b{color:#5fe1a2;font-size:1rem}.savings-account.retirement .savings-account-name b{color:#4da3ff}.savings-account-name small{grid-column:1/-1;color:#7890ab;font-size:.64rem}.savings-account-progress small{display:block;color:#91a4b9;font-size:.64rem;text-align:right}.savings-account-progress .savings-track{margin:0 0 4px}.savings-transfer{display:flex;align-items:center;gap:8px;margin-top:auto;padding:8px 10px;border-radius:9px;background:#5fe1a20c;color:#5fe1a2;font-size:.72rem}.savings-transfer.action{background:#f5ad3510;color:#f5ad35}.savings-transfer>span{display:grid;place-items:center;width:18px;height:18px;border:1px solid currentColor;border-radius:50%}.savings-admin-section{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding-top:13px;border-top:1px solid #ffffff18;color:#dbe8f5}.savings-admin-section small{color:#91a4b9}.widget-slot-standard .savings-accounts{display:none}.widget-slot-standard .savings-pace-grid{grid-template-columns:1fr}.widget-slot-standard .savings-pace-card.annual{display:none}.widget-slot-standard .savings-goal-summary span:last-child,.widget-slot-standard .savings-goal-summary>span{display:none}.widget-slot-wide .savings-account-progress{display:none}.widget-slot-wide .savings-account-list{grid-template-columns:repeat(3,minmax(0,1fr))}.widget-slot-wide .savings-account{display:block}.widget-slot-wide .savings-account-name{grid-template-columns:1fr}.widget-slot-wide .savings-account-name b{font-size:1.1rem}@media(max-width:650px){.savings-pace-grid{grid-template-columns:1fr}.savings-account{grid-template-columns:1fr}.savings-account-progress{display:block!important}.widget-slot-wide .savings-account-list{grid-template-columns:1fr}}
.template-download{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid #61d5c955;border-radius:9px;background:#61d5c912;color:#75e4d9;text-decoration:none;font-weight:700}.template-download:hover{border-color:#61d5c9;background:#61d5c920}.template-missing{margin:0;padding:10px 12px;border:1px solid #f0cb6344;border-radius:9px;background:#f0cb6310;color:#f0cb63}.template-missing code{color:#fff}

/* Phone-first shared todo editing. */
.todo-page-header form{margin:0}.todo-page-header .todo-signout{font-size:20px}.todo-page-items input{width:100%;min-width:0;border:0;background:transparent;color:#eef4ff;padding:12px 4px;font:inherit}.todo-page-items input:focus{border-radius:8px;outline:2px solid #61d5c966;background:#07111f}.todo-page-items li.complete input{text-decoration:line-through;color:#7890ab}@media(max-width:480px){.todo-page{width:min(100% - 20px,700px);padding-top:8px}.todo-page-header{grid-template-columns:42px 1fr 42px}.todo-page-header a,.todo-page-header button{width:42px;height:42px}.todo-panel-heading{align-items:stretch;flex-direction:column}.todo-panel-heading .danger{align-self:flex-end;padding:8px}.todo-panel form{position:sticky;top:0}.todo-panel form input{min-height:50px}.todo-panel form button{min-width:72px}.todo-page-items li{min-height:64px}}

/* External shared-app launcher. */
.shared-shell{width:min(100% - 28px,700px);margin:0 auto;padding:42px 0}.shared-header{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:32px}.shared-header h1{margin:6px 0 4px;font-size:clamp(36px,9vw,56px);font-weight:350}.shared-header p{margin:0;color:#91a4b9}.shared-header form{margin:0}.shared-header button{border:1px solid #ffffff22;border-radius:999px;background:#ffffff0b;color:#aebdd1;padding:9px 14px;font:inherit}.shared-app-grid{display:grid;gap:14px}.shared-app-card{display:grid;grid-template-columns:58px 1fr 30px;align-items:center;gap:14px;min-height:92px;padding:16px;border:1px solid #ffffff20;border-radius:20px;background:linear-gradient(145deg,#ffffff12,#ffffff07);box-shadow:0 18px 45px #0003;text-decoration:none}.shared-app-card>span{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#61d5c922;color:#61d5c9;font-size:28px}.shared-app-card div{display:flex;flex-direction:column;gap:5px}.shared-app-card strong{font-size:20px}.shared-app-card small{color:#91a4b9}.shared-app-card b{color:#61d5c9;font-size:32px;font-weight:300}@media(max-width:480px){.shared-shell{padding-top:24px}.shared-header{align-items:center}.shared-header h1{font-size:36px}.shared-header button{padding:8px 11px}}
.connection-status.connection-failed{color:#ff9baa}.connection-actions .connection-test{margin-top:0}.provider-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.provider-links .button-link{padding:7px 11px;font-size:.78rem}
.command-scene .widget-body{display:flex;flex-direction:column;gap:14px;margin-top:14px}.scene-widget-message{margin:0;color:#bdcad8}.scene-button-list{display:grid;gap:10px}.scene-button-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid #ffffff18;border-radius:12px;background:#ffffff08}.scene-button-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.scene-button-copy span,.scene-button-copy small{overflow:hidden;color:#91a4b9;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}.scene-button-copy small{color:#7890ab}.scene-run-button{min-width:76px;min-height:40px;border:1px solid #61d5c977;border-radius:10px;background:#61d5c922;color:#eef4ff;cursor:pointer;font:inherit;font-weight:750}.scene-run-button:disabled{cursor:wait;opacity:.55}.scene-run-status{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #61d5c933;border-radius:9px;background:#61d5c90d}.scene-run-status i{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#61d5c9;box-shadow:0 0 14px #61d5c999}.scene-run-status div{display:flex;flex-direction:column;gap:3px}.scene-run-status span{color:#91a4b9;font-size:.75rem}.scene-run-status.completed i{background:#5fe1a2}.scene-run-status.failed{border-color:#ff7c8f55}.scene-run-status.failed i{background:#ff7c8f}.scene-widget-error{margin:0;color:#ff9baa;font-size:.78rem}

/* Per-widget full-screen expand/collapse. */
.widget-card-actions{display:flex;align-items:center;gap:9px}
.widget-expand-toggle{display:grid;place-items:center;width:27px;height:27px;flex:0 0 auto;border:1px solid #ffffff2c;border-radius:8px;background:#ffffff0f;color:#eef4ff;font-size:13px;cursor:pointer}
.widget-expand-toggle:hover{border-color:#61d5c977;background:#61d5c922;color:#61d5c9}
.widget-card-backdrop{position:fixed;inset:0;z-index:999;background:#02060bc7;backdrop-filter:blur(6px);animation:widget-expand-fade .18s ease-out}
.widget-card.widget-card-expanded{position:fixed;inset:4vh 4vw;z-index:1000;width:auto;height:auto;max-width:none;max-height:none;margin:0;display:flex;flex-direction:column;box-shadow:0 40px 110px #000a;animation:widget-expand-in .18s ease-out}
.widget-card.widget-card-expanded .widget-body{flex:1;min-height:0;overflow:auto;zoom:1.7}
.widget-card.widget-card-expanded .widget-expand-toggle{border-color:#ff7c8f55;color:#ff9baa}
.widget-card.widget-card-expanded .widget-expand-toggle:hover{background:#ff7c8f22;border-color:#ff7c8f77;color:#ff9baa}
.dashboard-shell .widget-card.widget-card-expanded{padding:30px 34px;border-radius:22px}
.dashboard-shell .widget-card.widget-card-expanded h2{font-size:16px}
.dashboard-shell .widget-card.widget-card-expanded header>span{font-size:22px}
@keyframes widget-expand-fade{from{opacity:0}to{opacity:1}}
@keyframes widget-expand-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@media(max-width:650px){.widget-card.widget-card-expanded{inset:2vh 2vw}.widget-card.widget-card-expanded .widget-body{zoom:1.35}}

/* Collapsible configuration panels on Admin → Configuration, closed by default. */
.admin-panel>summary{cursor:pointer;margin:0 0 8px}
.admin-panel>summary h2{display:inline;margin:0}
.admin-panel>summary:hover h2{color:#61d5c9}
.admin-panel[open]>summary{margin-bottom:8px}
.admin-panel:not([open])>summary{margin-bottom:0}
