:root{color-scheme:dark;font-family:Inter,Arial,sans-serif;background:#0f1115;color:#f5f7fa;--card-pad: clamp(10px, 1.5vh, 18px)}*{box-sizing:border-box;-webkit-touch-callout:none}html,body,#root{margin:0;min-height:100%;width:100%}body{background:radial-gradient(circle at top left,#1a1f2b,#0f1115 50%),#0f1115}button,input{font:inherit}.app{height:100vh;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:8px;overflow:hidden}.pageSwiper{flex:1;min-height:0;touch-action:pan-y;overflow:hidden;will-change:transform;user-select:none;-webkit-user-select:none}.pageNavArrow{position:fixed;top:50%;transform:translateY(-50%);z-index:50;background:#1418248c;border:none;border-radius:50%;width:52px;height:52px;font-size:2rem;line-height:1;color:#ffffff80;cursor:pointer;opacity:0;transition:opacity .4s ease;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.pageNavArrow--left{left:16px}.pageNavArrow--right{right:16px}.pageNavArrow--visible{opacity:1}.pageNavArrow:hover{color:#fff;background:#141824cc}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.brand{font-size:1.6rem;font-weight:700;letter-spacing:.02em}.subtitle{font-size:.95rem;color:#b8c0cc;margin-top:4px}.settingsButton,.closeButton{border:0;border-radius:14px;padding:14px 18px;background:#2b3342;color:#fff;cursor:pointer;min-height:48px}.dashboard{display:grid;gap:8px;height:100%}.sortableWrapper{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0}.sortableWrapper>*{flex:1;min-height:0}@keyframes wiggle{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}.widgetBetaBadge{position:absolute;top:7px;left:7px;background:#ffb40026;color:#ffb400;font-size:1.1rem;font-weight:700;letter-spacing:.1em;padding:3px 8px;border-radius:6px;pointer-events:none;z-index:10;border:2px dashed rgba(255,180,0,.6)}.serviceGridBetaBadge{position:absolute;top:5px;right:5px;background:#ffb40026;color:#ffb400;font-size:.65rem;font-weight:700;letter-spacing:.08em;padding:2px 5px;border-radius:4px;pointer-events:none;border:1px dashed rgba(255,180,0,.55);line-height:1.2}.sortableWrapper--edit{animation:wiggle .35s ease-in-out infinite;cursor:grab}.sortableWrapper--edit:active{cursor:grabbing;animation:none}.editModeDoneBtn{position:fixed;top:4rem;left:50%;transform:translate(-50%);z-index:1000;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.45rem 1.4rem;font-size:1rem;font-weight:600;cursor:pointer;letter-spacing:.03em}.sortableWrapper--dragging{opacity:.95;transform:scale(1.04);box-shadow:0 8px 32px #00000073;cursor:grabbing;border-radius:12px}.card{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:linear-gradient(160deg,#649bf0cc,#3c5fb9a6);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:var(--card-pad);box-shadow:0 8px 32px #0006,inset 0 1px #ffffff14;overflow:hidden;box-sizing:border-box}.sortableWrapper>.card{height:100%;container-type:size}.cardHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.cardHeader h2{margin:0;font-size:1.2rem}.status{font-size:.85rem;border-radius:999px;padding:6px 10px;background:#243042;color:#dce8f8}.status.good{background:#1f3a2b;color:#d7ffe1}.status.bad{background:#4b2226;color:#ffd9dd}.metricGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metricBox{background:#ffffff0a;border-radius:18px;padding:16px;min-height:100px}.metricLabel{color:#aeb8c8;margin-bottom:10px;font-size:.95rem}.metricValue{font-size:2rem;font-weight:700}.metricValue.small{font-size:1.15rem;line-height:1.35}.clockCard{display:grid;grid-template-columns:2fr 1fr;gap:8px;width:100%}.clockDateSection{padding:16px 24px 16px 48px;display:flex;align-items:center;justify-content:center;font-size:clamp(3.88rem,8.49vw,6.79rem);font-weight:700;letter-spacing:-.06em;line-height:1;white-space:nowrap;color:#1a5080;background:#ffffffc7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.clockTimeSection{padding:16px 24px;display:flex;align-items:center;justify-content:center;font-size:clamp(4.5rem,10vw,7.5rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:#1a5080;background:#ffffffc7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.clockSettingsBtn{position:fixed;top:max(18px,env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));z-index:100;background:none;border:none;font-size:1.3rem;color:#8f9db0;cursor:pointer;padding:4px;line-height:1;opacity:.5;transition:opacity .15s}.clockSettingsBtn:hover{opacity:1}.addWidgetBtn{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:100;background:#facc15;border:none;border-radius:50%;font-size:1.6rem;color:#1a2a3a;cursor:pointer;width:2.4rem;height:2.4rem;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 8px #00000059;transition:transform .15s,background .15s}.addWidgetBtn:hover{background:#fde047;transform:scale(1.1)}.clockDashboardName{font-size:clamp(.8rem,1.5vw,1.1rem);color:#6b7a8d;margin-top:2px;cursor:pointer;width:fit-content}.clockDashboardName:hover{color:#1a1f2b}.pageNameBanner{padding:10px 28px;background:#2850a08c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:22px;box-shadow:0 8px 32px #0006,inset 0 1px #ffffff14;color:#f5f7fa;font-size:clamp(2rem,4.5vw,3.5rem);font-weight:700;letter-spacing:-.04em;line-height:1;text-align:center}.weatherCard{background:linear-gradient(180deg,#253042f2,#161c25f2),#1c212be0}.minimalWeather{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:40px}.weatherLabel{display:flex;flex-direction:column;gap:6px;font-size:3rem;font-weight:600;background:#ffffff0d;border:1px solid rgba(255,255,255,.05);border-radius:18px;padding:14px 16px;align-self:center;margin-bottom:15px;margin-top:-40px}.weatherTempOnly{font-size:clamp(6rem,12vw,10rem);font-weight:700;letter-spacing:-.04em;color:#fff;text-shadow:0 0 20px rgba(255,255,255,.08)}.windCard{display:flex;flex-direction:column;justify-content:flex-start;padding-top:40px;background:linear-gradient(180deg,#253042f2,#161c25f2),#1c212be0}.windValue{font-size:clamp(6rem,12vw,10rem);font-weight:700;align-self:center}.weatherCardsRow{grid-column:span 12;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.weatherCardsRow>.card{grid-column:auto!important;width:100%;min-width:0}.weatherCardsLeft{display:flex;flex-direction:column;gap:16px;min-width:0}.widgetSlotCard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;border:2px dashed rgba(255,255,255,.12);background:#1c212b80;color:inherit;width:100%;transition:border-color .15s,background .15s}.widgetSlotCard:hover{border-color:#ffffff4d;background:#1c212bbf}.widgetSlotIcon{font-size:2.5rem;font-weight:300;color:#ffffff59;line-height:1}.widgetSlotLabel{font-size:.95rem;color:#fff6}.selectedServiceCard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.selectedServiceCard .serviceIcon{font-size:2rem}.selectedServiceCard .serviceName{font-size:1.1rem;font-weight:600}.selectedServiceCard .serviceStatus{font-size:.85rem;color:#8f9db0}.connectLink{font-size:.85rem;color:#7eb8f7;text-decoration:none}.connectLink:hover{text-decoration:underline}[data-pressing=true]{transform:scale(.94);transition:transform .5s ease!important}[data-pressing]:not([data-pressing=true]){transition:transform .15s ease!important}.netatmoMetricCard{display:flex;flex-direction:column;align-items:stretch;text-align:center;position:relative;gap:0}.metricSubtitle{margin:calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad)) 0 calc(-1 * var(--card-pad));width:calc(100% + 2 * var(--card-pad));height:min(calc(30vh / var(--grid-rows, 2)),12vh);height:min(30cqh,12vh);flex-shrink:0;font-size:min(calc(20vh / var(--grid-rows, 2)),8vh);font-size:min(20cqh,8vh);color:#1a5080;background:linear-gradient(160deg,#96c3fff2,#6496e6d9);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 .5em;border-radius:22px 22px 0 0;overflow:hidden;white-space:nowrap}.metricSubtitleInput{height:min(calc(30vh / var(--grid-rows, 2)),12vh);height:min(30cqh,12vh);flex-shrink:0;font-size:min(calc(20vh / var(--grid-rows, 2)),8vh);font-size:min(20cqh,8vh);font-weight:700;color:#1a5080;background:#a8d4f5;border:none;border-radius:22px 22px 0 0;padding:0 .5em;outline:none;width:calc(100% + 2 * var(--card-pad));margin:calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad)) 0 calc(-1 * var(--card-pad));text-align:center}.metricBigValue{flex:1;font-size:min(calc(50vh / var(--grid-rows, 2)),calc(35vw / var(--grid-cols, 3)));font-size:min(50cqh,35cqw);font-weight:700;letter-spacing:-.04em;line-height:1;display:flex;align-items:center;justify-content:center;gap:.15em}.metricDescription{font-size:min(calc(18vh / var(--grid-rows, 2)),calc(14vw / var(--grid-cols, 3)));font-size:min(18cqh,14cqw);font-weight:700;line-height:1.2;display:flex;align-items:center;justify-content:center;flex:1;text-align:center;padding:0 .3em}.precipChart{width:100%;flex:1;display:flex;flex-direction:column;position:relative;cursor:pointer;min-height:0;padding:8px 0 4px}.precipNoRain{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0;font-size:clamp(.9rem,2vw,1.2rem);color:#ffffff59;pointer-events:none}.precipBars{display:flex;align-items:flex-end;gap:2px;flex:1;min-height:40px;width:100%}.precipBarCol{flex:1;display:flex;align-items:flex-end;height:100%}.precipBar{width:100%;border-radius:3px 3px 0 0;transition:height .3s ease}.precipLabels{display:flex;margin-top:4px}.precipLabel{flex:1;font-size:clamp(.6rem,1.2vw,.75rem);color:#fff6;text-align:center;white-space:nowrap}.countdownInputRow{display:flex;gap:10px;width:100%}.countdownStartBtn{background:#2a5fa8;border:none;border-radius:14px;padding:.2em 1em;color:#fff;font-size:clamp(1.4rem,3vw,2rem);font-weight:700;cursor:pointer;white-space:nowrap}.sunCardBody{display:flex;flex-direction:column;gap:8px;width:100%;flex:1;justify-content:center;align-items:center}.sunRow{display:flex;align-items:center;justify-content:center;gap:16px}.sunArrow{font-size:clamp(1.8rem,3.6vw,3rem);font-weight:700;line-height:1;color:#8f9db0}.sunValue{font-size:clamp(3.6rem,7.2vw,6rem);font-weight:700;letter-spacing:-.04em;line-height:1}.meaterTextValue{font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-.02em;text-align:center}.metricBigUnit{font-size:.38em;font-weight:400;color:#aeb8c8}.removeWidgetBtn{background:none;border:none;color:#aeb8c8;font-size:1.4rem;cursor:pointer;line-height:1;padding:0 4px;opacity:.4;transition:opacity .15s}.removeWidgetBtn:hover{opacity:1}.removeWidgetBtnAbs{position:absolute;top:12px;right:12px}.netatmoReconnectBtn{margin-top:.5rem;padding:.4rem .9rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:#fff;font-size:.85rem;cursor:pointer}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:30}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:40;background:#1a1f2b;border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:24px;width:380px;max-width:calc(100vw - 32px);box-shadow:0 24px 60px #00000080}.modalHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modalHeader h2{margin:0;font-size:1.2rem}.serviceList{list-style:none;margin:0;padding:0;display:grid;gap:10px}.serviceItem{display:flex;align-items:center;gap:16px;width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:16px;cursor:pointer;color:inherit;text-align:left;transition:background .15s,border-color .15s}.serviceItem:hover{background:#ffffff17;border-color:#ffffff26}.serviceIcon{font-size:1.8rem;flex-shrink:0}.serviceInfo{display:flex;flex-direction:column;gap:4px}.serviceName{font-size:1rem;font-weight:600}.serviceDescription{font-size:.85rem;color:#8f9db0}.serviceGridItem{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s}.serviceGridItem:hover{background:#ffffff17;border-color:#ffffff26}.serviceGridItem .serviceIcon{font-size:1.8rem}.serviceGridItem .serviceName{font-size:.85rem;font-weight:600;text-align:center;color:#e8ecf0}.pagesModal{width:420px}.settingsModal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow-y:auto}.addPageModal{width:480px;max-height:calc(100vh - 48px);overflow-y:auto}.addPageChoose{padding:8px 0 4px}.addPageManualBtn{display:flex;align-items:flex-start;gap:14px;width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:16px;color:inherit;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;margin-bottom:20px}.addPageManualBtn:hover{background:#ffffff17;border-color:#fff3}.addPageManualIcon{font-size:1.6rem;line-height:1;flex-shrink:0;margin-top:2px}.addPageManualTitle{font-size:1rem;font-weight:600;color:#e8edf4;margin-bottom:4px}.addPageManualDesc{font-size:.85rem;color:#8f9db0;line-height:1.45}.addPageServiceLabel{font-size:.85rem;color:#8f9db0;margin-bottom:10px}.addPageServiceGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.addPageServiceBtn{display:flex;flex-direction:column;align-items:center;gap:5px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px 6px;color:inherit;cursor:pointer;transition:background .15s,border-color .15s}.addPageServiceBtn:hover{background:#ffffff17;border-color:#ffffff2e}.addPageServiceIcon{font-size:1.5rem}.addPageServiceName{font-size:.78rem;color:#c0cad8;text-align:center}.addPageLoading{padding:32px 0;text-align:center;color:#8f9db0;font-size:.95rem}.addPageBack{background:none;border:none;color:#7aa2f7;cursor:pointer;font-size:.9rem;padding:0}.addPagePick{display:flex;flex-direction:column;gap:0}.addPagePickHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.addPagePickTitle{font-size:1rem;font-weight:600;color:#e8edf4}.addPageToggleAll{background:none;border:none;color:#7aa2f7;cursor:pointer;font-size:.85rem;padding:0}.addPagePickList{display:flex;flex-direction:column;gap:2px;max-height:340px;overflow-y:auto;margin-bottom:16px}.addPagePickItem{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;font-size:.88rem;color:#c0cad8;cursor:pointer;transition:background .1s}.addPagePickItem:hover{background:#ffffff0d}.addPagePickItem input[type=checkbox]{accent-color:#7aa2f7;width:15px;height:15px;flex-shrink:0}.addPagePickFooter{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid rgba(255,255,255,.07)}.addPagePickCount{font-size:.85rem;color:#8f9db0}.addPageEmpty{color:#8f9db0;font-size:.9rem;padding:16px 0}.settingsSection{padding:4px 0}.settingsSectionTitle{margin:0 0 16px;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#8f9db0}.settingsDivider{border:none;border-top:1px solid rgba(255,255,255,.07);margin:20px 0}.pagesList{display:flex;flex-direction:column;gap:12px}.pageItem{display:flex;align-items:center;gap:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:16px 18px}.pageItemLeft{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.pageItemDuration{display:flex;align-items:center;gap:8px;padding-left:34px}.pageItemDurationLabel{font-size:.9rem;color:#6b7a8d}.pageName{font-size:1.05rem;font-weight:600;cursor:pointer;border-bottom:1px dashed rgba(255,255,255,.2);padding-bottom:3px;width:fit-content}.pageName:hover{border-bottom-color:#ffffff80}.pageNameInput{font-size:1rem;font-weight:600;background:#ffffff14;border:1px solid rgba(126,184,247,.5);border-radius:8px;padding:4px 8px;color:#f5f7fa;outline:none;width:100%}.pageClockToggle{display:flex;align-items:center;gap:12px;font-size:1rem;color:#aeb8c8;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:36px;padding:2px 0}.pageClockToggle input{width:22px;height:22px;min-width:22px;margin:0;cursor:pointer;accent-color:#4a9eff}.pagesAddBtn{margin-top:16px;width:100%}.settingsPanel{position:fixed;top:0;right:-340px;width:320px;max-width:calc(100vw - 24px);height:100vh;background:#171c25;border-left:1px solid rgba(255,255,255,.08);padding:20px;z-index:20;transition:right .25s ease;box-shadow:-10px 0 30px #00000059}.settingsPanel.open{right:0}.settingsPanelHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.settingsPanelHeader h2{margin:0;font-size:1.2rem}.settingsGroup{display:grid;gap:14px}.toggleRow{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#ffffff0a;border-radius:16px;padding:14px 16px;min-height:56px}.toggleRow input{width:22px;height:22px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000057;border:0;z-index:10}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:40;display:flex;align-items:center;justify-content:center}.admin-modal{position:static;transform:none;width:480px;max-height:calc(100vh - 48px);overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{margin:0;font-size:1.2rem}.modal-close{background:none;border:none;color:#aeb8c8;font-size:1.8rem;cursor:pointer;line-height:1;padding:0 4px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.admin-centered{min-height:100vh;display:flex;align-items:center;justify-content:center}.admin-login-box{background:#1a1f2b;border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:40px 36px;width:360px;max-width:calc(100vw - 32px);box-shadow:0 24px 60px #00000080}.admin-login-title{margin:0 0 28px;font-size:1.6rem;font-weight:700;text-align:center}.admin-login-form{display:flex;flex-direction:column;gap:14px}.admin-page{min-height:100vh;display:flex;flex-direction:column}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.07);background:#141820e6}.admin-header-title{font-size:1.2rem;font-weight:700;margin-right:20px}.admin-header-link{color:#7eb8f7;text-decoration:none;font-size:.9rem}.admin-header-link:hover{text-decoration:underline}.admin-main{padding:32px 24px;max-width:860px;margin:0 auto;width:100%}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-section-title{margin:0;font-size:1.3rem}.admin-empty{background:#ffffff08;border:1px dashed rgba(255,255,255,.1);border-radius:16px;padding:40px;text-align:center;color:#8f9db0}.admin-service-list{display:flex;flex-direction:column;gap:10px}.admin-service-card{display:flex;align-items:center;gap:16px;background:#1c212be0;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:16px 20px}.admin-service-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.admin-service-name{font-size:1rem;font-weight:600}.admin-service-meta{font-size:.82rem;color:#8f9db0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-service-badges{display:flex;gap:6px;flex-shrink:0}.admin-badge{font-size:.78rem;border-radius:999px;padding:4px 10px}.admin-badge-active{background:#1f3a2b;color:#d7ffe1}.admin-badge-inactive{background:#2b2230;color:#d0b8ff}.admin-service-actions{display:flex;gap:8px;flex-shrink:0}.admin-input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 12px;color:#f5f7fa;margin-top:6px;display:block}.admin-input:focus{outline:none;border-color:#7eb8f780}.admin-label{display:block;font-size:.88rem;color:#aeb8c8;margin-bottom:12px}.admin-label-inline{display:flex;align-items:center;gap:10px;cursor:pointer;color:#f5f7fa}.admin-label-inline input{width:18px;height:18px;margin:0}.admin-fieldset{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin:0 0 12px}.admin-fieldset legend{font-size:.82rem;color:#8f9db0;padding:0 6px}.admin-modal-form{display:flex;flex-direction:column}.admin-error{color:#ff8a8a;font-size:.88rem;margin:0}.admin-btn-primary{background:#2a5fa8;border:none;border-radius:10px;padding:10px 20px;color:#fff;cursor:pointer;font-weight:600;transition:background .15s}.admin-btn-primary:hover:not(:disabled){background:#3570c4}.admin-btn-primary:disabled{opacity:.55;cursor:default}.login-tabs{display:flex;gap:4px;margin-bottom:20px;background:#ffffff0d;border-radius:10px;padding:4px}.login-tab{flex:1;background:transparent;border:none;border-radius:8px;padding:8px;color:#ffffff80;cursor:pointer;font-size:.9rem;transition:all .15s}.login-tab--active{background:#2a5fa8;color:#fff;font-weight:600}.login-divider{text-align:center;color:#ffffff4d;font-size:.85rem;margin:14px 0}.admin-btn-google{width:100%;background:#fff;color:#222;border:none;border-radius:10px;padding:10px 20px;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.admin-btn-google:hover:not(:disabled){background:#f0f0f0}.login-link{background:none;border:none;color:#fff6;font-size:.85rem;cursor:pointer;margin-top:12px;width:100%;text-align:center;padding:4px}.login-link:hover{color:#ffffffb3}.admin-info{color:#6ee7b7;font-size:.88rem;margin:0}.admin-btn-ghost{background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 16px;color:#f5f7fa;cursor:pointer;transition:background .15s}.admin-btn-ghost:hover{background:#ffffff21}.admin-btn-danger{background:#b4282833;border:1px solid rgba(180,40,40,.35);border-radius:10px;padding:8px 16px;color:#ffadad;cursor:pointer;transition:background .15s}.admin-btn-danger:hover{background:#b4282866}.hueLightBody{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.hueToggleBtn{border:none;border-radius:14px;padding:.3em 1.4em;font-size:clamp(1.4rem,3vw,2rem);font-weight:700;cursor:pointer;transition:background .15s}.hueToggleBtnOn{background:#b4282840;color:#ffadad}.hueToggleBtnOff{background:#28782840;color:#a7f3a7}.hueDimSlider{width:100%;accent-color:#7eb8f7;cursor:pointer;height:6px}.hueSceneBody{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.hueSceneRoom{font-size:clamp(1rem,2vw,1.4rem);color:#aeb8c8;margin:0}.hueSceneBtn{background:#2a5fa8;border:none;border-radius:14px;padding:.3em 1.4em;color:#fff;font-size:clamp(1.4rem,3vw,2rem);font-weight:700;cursor:pointer;transition:background .15s}.hueSceneBtn:hover:not(:disabled){background:#3570c4}.hueSceneBtnSuccess{background:#1f6b3a}.meater-auth-form{display:flex;flex-direction:column;gap:10px;padding-top:4px;border-top:1px solid rgba(255,255,255,.07)}.admin-hub-grid{display:flex;flex-direction:column;gap:12px}.admin-hub-card{display:flex;align-items:center;gap:16px;background:#1c212be0;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:20px 24px;cursor:pointer;text-decoration:none;color:inherit;transition:border-color .15s,background .15s;text-align:left;width:100%}.admin-hub-card:hover{border-color:#ffffff2e;background:#262c3af2}.admin-hub-icon{font-size:1.8rem;flex-shrink:0}.admin-hub-info{display:flex;flex-direction:column;gap:4px;flex:1}.admin-hub-title{font-size:1.05rem;font-weight:600;color:#f5f7fa}.admin-hub-desc{font-size:.85rem;color:#8f9db0}.admin-hub-arrow{font-size:1.2rem;color:#8f9db0;flex-shrink:0}.admin-section-desc{font-size:.85rem;color:#8f9db0;margin:0 0 14px}.admin-builtin-card{flex-direction:column;align-items:stretch;gap:0}.admin-builtin-main{display:flex;align-items:center;gap:14px}.admin-builtin-icon{font-size:1.4rem;flex-shrink:0;width:28px;text-align:center}.admin-service-meta{white-space:normal}.admin-builtin-form{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.07)}.admin-toggle{display:flex;align-items:center;cursor:pointer;gap:0}.admin-toggle input{position:absolute;opacity:0;width:0;height:0}.admin-toggle-track{display:inline-block;width:40px;height:22px;background:#ffffff1f;border-radius:999px;position:relative;transition:background .2s;flex-shrink:0}.admin-toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.admin-toggle input:checked+.admin-toggle-track{background:#2a5fa8}.admin-toggle input:checked+.admin-toggle-track:after{transform:translate(18px)}.admin-toggle input:disabled+.admin-toggle-track{opacity:.5}.admin-toggle-labeled{display:flex;align-items:center;gap:7px;flex-shrink:0}.admin-toggle-label{font-size:.8rem;color:#888;white-space:nowrap}@media (max-width: 600px){.metricGrid{grid-template-columns:1fr}}@media (max-width: 640px){.app{padding:14px}.topbar{align-items:flex-start;flex-direction:column}.settingsButton{width:100%}}.servicesPage{min-height:100vh;padding:24px 20px 48px;max-width:760px;margin:0 auto}.servicesPageHeader{display:flex;align-items:center;gap:16px;margin-bottom:32px}.servicesBackBtn{background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#c8d4e0;padding:8px 16px;font-size:.9rem;cursor:pointer;transition:background .15s}.servicesBackBtn:hover{background:#ffffff1f}.servicesPageTitle{font-size:1.6rem;font-weight:700;margin:0;color:#f5f7fa}.servicesConnectedBanner{background:#4ade801f;border:1px solid rgba(74,222,128,.3);border-radius:10px;color:#4ade80;padding:10px 16px;font-size:.9rem;margin-bottom:24px}.servicesSection{margin-bottom:36px}.servicesSectionTitleRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.servicesSectionTitle{font-size:1.05rem;font-weight:600;color:#8f9db0;text-transform:uppercase;letter-spacing:.06em;margin:0 0 14px}.servicesSectionTitleRow .servicesSectionTitle{margin-bottom:0}.servicesSearch{background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#f5f7fa;padding:8px 14px;font-size:.9rem;width:200px;outline:none}.servicesSearch:focus{border-color:#ffffff40}.servicesEmptyNote{color:#8f9db0;font-size:.9rem;margin:0}.servicesActiveList{display:flex;flex-direction:column;gap:8px}.servicesActiveRow{display:flex;align-items:center;gap:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 16px}.servicesActiveRowFree{opacity:.7}.servicesActiveIcon{font-size:1.4rem;flex-shrink:0}.servicesActiveInfo{display:flex;flex-direction:column;flex:1;min-width:0}.servicesActiveName{font-size:.95rem;font-weight:600;color:#f5f7fa}.servicesActiveDesc{font-size:.8rem;color:#8f9db0}.servicesConnectedBadge{background:#4ade801f;color:#4ade80;font-size:.75rem;font-weight:600;border-radius:8px;padding:3px 10px;flex-shrink:0}.servicesFreeBadge{background:#94a3b81f;color:#94a3b8;font-size:.75rem;font-weight:600;border-radius:8px;padding:3px 10px;flex-shrink:0}.servicesGrid{display:flex;flex-direction:column;gap:8px}.servicesCard{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;transition:border-color .15s}.servicesCard--expanded{border-color:#ffffff2e}.servicesCardTop{display:flex;align-items:center;gap:12px;padding:14px 16px}.servicesCardIcon{font-size:1.5rem;flex-shrink:0}.servicesCardInfo{display:flex;flex-direction:column;flex:1;min-width:0}.servicesCardName{font-size:.95rem;font-weight:600;color:#f5f7fa}.servicesCardDesc{font-size:.82rem;color:#8f9db0}.servicesGroupLabel{font-size:.78rem;font-weight:600;color:#8f9db0;text-transform:uppercase;letter-spacing:.07em;margin:0 0 8px}.servicesShortcutBtn{width:100%;border:none;border-radius:10px;padding:9px 14px;font-size:.88rem;text-align:left;margin-bottom:4px}.servicesCardForm{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;border-top:1px solid rgba(255,255,255,.06)}@media (max-width: 500px){.servicesSearch{width:140px}.servicesActiveRow{flex-wrap:wrap}}.wizardOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0d1724;display:flex;flex-direction:column}.wizardContainer{display:flex;flex-direction:column;height:100%}.wizardTopBar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#131f2e;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.wizardNameInput{flex:1;min-width:0;background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:#e8edf3;font-size:1rem;padding:7px 12px;outline:none}.wizardNameInput:focus{border-color:#4a9eff}.wizardLayoutToggle{display:flex;background:#ffffff0f;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.wizardLayoutBtn{padding:7px 14px;background:none;border:none;color:#8f9db0;font-size:.88rem;cursor:pointer;transition:background .15s,color .15s}.wizardLayoutBtn.active{background:#4a9eff;color:#fff}.wizardLayoutBtn:disabled{opacity:.35;cursor:not-allowed}.wizardRotationLabel{display:flex;align-items:center;gap:8px;font-size:.88rem;color:#8f9db0;white-space:nowrap;cursor:default}.wizardToggleSwitch{width:36px;height:20px;border-radius:10px;background:#ffffff1f;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.wizardToggleSwitch.on{background:#4a9eff}.wizardToggleThumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s}.wizardToggleSwitch.on .wizardToggleThumb{transform:translate(16px)}.wizardRotationInput{width:52px;background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:#e8edf3;font-size:.88rem;padding:4px 8px;text-align:center;outline:none}.wizardRotationUnit{color:#6b7a8d;font-size:.85rem}.wizardCloseBtn{background:none;border:none;color:#8f9db0;font-size:1.4rem;cursor:pointer;padding:4px 8px;line-height:1;margin-left:auto}.wizardCloseBtn:hover{color:#e8edf3}.wizardBody{display:flex;flex:1;min-height:0}.wizardPicker{width:300px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.08);overflow-y:auto;display:flex;flex-direction:column}.wizardPickerInner{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1}.wizardPickerHint{font-size:.82rem;color:#6b7a8d;margin:0}.wizardServiceGrid{display:flex;flex-direction:column;gap:6px}.wizardServiceBtn{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#c8d4e0;font-size:.9rem;cursor:pointer;text-align:left;transition:background .15s}.wizardServiceBtn:hover{background:#ffffff1a}.wizardServiceIcon{font-size:1.2rem}.wizardServiceName{flex:1}.wizardServiceCount{background:#4a9eff;color:#fff;font-size:.75rem;font-weight:700;border-radius:10px;padding:1px 7px}.wizardSelectedList{border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.wizardSelectedLabel{font-size:.8rem;color:#6b7a8d;margin:0 0 8px}.wizardSelectedItem{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;font-size:.85rem;color:#a8b8cc;border-bottom:1px solid rgba(255,255,255,.04)}.wizardSelectedRemove{background:none;border:none;color:#6b7a8d;cursor:pointer;font-size:1rem;padding:0 4px;flex-shrink:0}.wizardSelectedRemove:hover{color:#f87171}.wizardPickerLoading{color:#8f9db0;font-size:.9rem}.wizardPickerHeader{display:flex;align-items:center;gap:8px}.wizardPickerBack{background:none;border:none;color:#4a9eff;font-size:.88rem;cursor:pointer;padding:0}.wizardPickerTitle{flex:1;font-size:.9rem;color:#c8d4e0}.wizardPickerList{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.wizardPickerFooter{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.wizardPreviewArea{flex:1;min-width:0;display:flex;align-items:stretch;padding:16px;background:#0a1420}.wizardPreviewEmpty{flex:1;display:flex;align-items:center;justify-content:center;color:#3d4f63;font-size:.95rem;text-align:center}.wizardPreviewGrid{flex:1;display:grid;gap:10px}.wizardFooter{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 20px;background:#131f2e;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}.wizardCancelBtn{background:none;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:#8f9db0;font-size:.9rem;padding:8px 18px;cursor:pointer}.wizardCancelBtn:hover{color:#e8edf3;border-color:#ffffff4d}.settingsRotationRow{display:flex;flex-direction:column;gap:6px;margin-top:8px}.settingsRotationDuration{display:flex;align-items:center;gap:10px;padding-left:34px}.settingsDurationInput{width:72px;background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:#e8edf3;font-size:1rem;padding:8px 10px;text-align:center;outline:none}.settingsDurationInput:focus{border-color:#4a9eff}.settingsRotationUnit{color:#6b7a8d;font-size:.88rem}.settingsDurationError{color:#f87171;font-size:.82rem}
