.logo{display:flex;align-items:flex-end;gap:.5rem;color:#1f2937}.logo__title{font-size:1.6rem;font-weight:700;letter-spacing:-.01em}.lg-surface{--lg-radius: 24px;--lg-pointer-x: 50%;--lg-pointer-y: 50%;--lg-pointer-opacity: 0;position:relative;isolation:isolate;border-radius:var(--lg-radius);overflow:hidden;border:1px solid var(--lg-border);box-shadow:var(--lg-shadow);color:var(--text-primary);transition:box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s ease,background .25s ease}.lg-surface--regular{background:var(--lg-tint-regular)}.lg-surface--clear{background:var(--lg-tint-clear)}.lg-surface--frost{backdrop-filter:var(--lg-blur-frost);-webkit-backdrop-filter:var(--lg-blur-frost)}.lg-surface--refract{background:var(--lg-tint-refract)}.lg-surface--opaque{background:var(--sm-bg);backdrop-filter:none;-webkit-backdrop-filter:none}.lg-surface:not(.lg-surface--static):hover{border-color:var(--lg-border-hover);box-shadow:var(--lg-shadow-hover)}.lg-surface__svg{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.lg-surface__specular{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:var(--lg-specular-gradient);opacity:var(--lg-specular-opacity);mix-blend-mode:screen;z-index:1}.lg-surface__pointer-glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;opacity:var(--lg-pointer-opacity);transition:opacity .3s ease;background:radial-gradient(circle 140px at var(--lg-pointer-x) var(--lg-pointer-y),var(--lg-pointer-glow),transparent 60%);mix-blend-mode:soft-light}.lg-surface--static .lg-surface__pointer-glow{display:none}.lg-surface__content{position:relative;z-index:3;height:100%}@media(prefers-reduced-motion:reduce){.lg-surface__pointer-glow{display:none}}.lg-button{display:inline-flex;vertical-align:middle}.lg-button__native{appearance:none;border:none;background:transparent;color:inherit;font:inherit;font-weight:600;padding:.75rem 1.5rem;cursor:pointer;width:100%;border-radius:inherit}.lg-button--disabled{opacity:.55;pointer-events:none}.lg-button__native:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}:root{color-scheme:light}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3rem;padding:2rem 1.5rem 4rem;background:var(--app-background)}.login-card.lg-surface{width:min(100%,420px);border-radius:var(--radius-xl);padding:2.5rem}.login-card>.lg-surface__content{display:flex;flex-direction:column;gap:1.25rem}.login-card__subtitle{color:#4b5563;font-size:.95rem;line-height:1.5;margin:0}.login-card__notice{border-radius:.9rem;background:#2563eb14;border:1px solid rgba(37,99,235,.18);padding:.85rem .95rem;display:flex;flex-direction:column;gap:.35rem}.login-card__notice-title{margin:0;font-weight:600;color:#1f2937}.login-card__notice-body{margin:0;color:#4b5563;font-size:.95rem}.login-card__notice-hint{margin:0;color:#2563eb;font-size:.9rem;font-weight:600}.login-form{display:flex;flex-direction:column;gap:.75rem}.login-form__label{font-weight:600;color:#1f2937;font-size:.95rem}.login-form__input{width:100%;padding:.75rem .9rem;border-radius:.75rem;border:1px solid rgba(148,163,184,.4);background:#fffffff2;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.login-form__input:focus-visible{outline:none;border-color:#2563ebb3;box-shadow:0 0 0 4px #2563eb33}.login-form__input:disabled{background:#e2e8f080;cursor:not-allowed}.login-form__submit{margin-top:.5rem;padding:.85rem;border-radius:.9rem;border:none;background:linear-gradient(135deg,#2563eb,#10b981);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease}.login-form__submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 15px 35px #2563eb40}.login-form__submit:disabled{opacity:.75;cursor:wait}.login-form__error{color:#dc2626;background:#f871711a;border-radius:.75rem;padding:.65rem .75rem;margin:.25rem 0 0}.login-form__success{color:#047857;background:#10b9811f;border-radius:.75rem;padding:.65rem .75rem;margin:.25rem 0 0}.login-form__success strong{font-weight:700}.login-form__logout{margin-top:.5rem;padding:.75rem;border-radius:.9rem;border:1px solid rgba(148,163,184,.6);background:#f8fafce6;color:#1f2937;font-weight:600;font-size:.95rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.login-form__logout:hover{border-color:#2563eb80;background:#e2e8f0cc}.login-card__footer{display:flex;justify-content:flex-end}.login-card__imprint{border:none;background:transparent;color:#2563eb;font-weight:600;cursor:pointer;padding:0;font-size:.95rem;text-decoration:none}.login-card__imprint:hover,.login-card__imprint:focus-visible{text-decoration:underline}.login-card__imprint:focus-visible{outline:none}.imprint-modal__backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000}.imprint-modal{width:min(100%,560px);max-height:min(90vh,640px);overflow-y:auto;background:#fffffff7;border-radius:1.25rem;box-shadow:0 25px 60px #0f172a40;padding:1.75rem 1.75rem 2rem;color:#1f2937;display:flex;flex-direction:column;gap:1.25rem}.imprint-modal__header{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid rgba(148,163,184,.35);padding-bottom:.75rem}.imprint-modal__header h2{margin:0;font-size:1.3rem}.imprint-modal__close{border:none;background:#e2e8f0a6;color:#1f2937;font-size:.9rem;font-weight:600;border-radius:999px;padding:.45rem .95rem;cursor:pointer;transition:background-color .2s ease,transform .2s ease}.imprint-modal__close:hover,.imprint-modal__close:focus-visible{background:#3b82f626;transform:translateY(-1px);outline:none}.imprint-modal__content{display:flex;flex-direction:column;gap:1.1rem}.imprint-modal__section h3{margin:0 0 .25rem;font-size:1.05rem}.imprint-modal__section p{margin:.15rem 0;line-height:1.55}.imprint-modal__section a{color:#2563eb;font-weight:600}.sidebar.lg-surface{--lg-radius: 24px;position:fixed;left:12px;top:12px;bottom:12px;width:72px;display:flex;flex-direction:column;border-radius:24px!important;border:1px solid var(--lg-border);z-index:100;overflow:hidden;color:var(--text-secondary)}.sidebar>.lg-surface__content{display:flex;flex-direction:column;height:100%;min-height:0}.sidebar__nav{flex:1;padding:.75rem .5rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.sidebar__nav::-webkit-scrollbar{display:none}.sidebar__section{display:flex;flex-direction:column;gap:.25rem}.sidebar__section-items{position:relative;display:flex;flex-direction:column;gap:.25rem}.sidebar__liquid-indicator{position:absolute;left:0;right:0;top:0;border-radius:14px;background:var(--lg-selection);border:1px solid var(--lg-selection-border);box-shadow:inset 0 1px #ffffff59;backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);opacity:0;pointer-events:none;z-index:0;will-change:transform,height;transition:transform .48s cubic-bezier(.4,0,.2,1),height .48s cubic-bezier(.4,0,.2,1),opacity .2s ease}.sidebar__liquid-indicator--visible{opacity:1}.sidebar__liquid-indicator:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 40%);pointer-events:none}:root[data-theme=dark] .sidebar__liquid-indicator{box-shadow:inset 0 1px #ffffff1a}:root[data-theme=dark] .sidebar__liquid-indicator:after{background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 40%)}.sidebar__item{display:flex;align-items:center;justify-content:center;padding:.7rem;border-radius:14px;text-decoration:none;color:var(--text-secondary);transition:color .2s ease;position:relative;z-index:1;font-weight:500;background:transparent}.sidebar__item:hover{color:var(--text-primary)}.sidebar__item--active{color:var(--text-primary);background:transparent;box-shadow:none;border:none}.sidebar__item--active:before{display:none}.sidebar__icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:currentColor;opacity:.72;flex-shrink:0;transition:opacity .2s ease,color .2s ease;z-index:1}.sidebar__icon svg{width:100%;height:100%;stroke-width:1.75}.sidebar__item:hover .sidebar__icon{opacity:.95}.sidebar__item--active .sidebar__icon{opacity:1;color:var(--text-primary)}.sidebar__footer{padding:.55rem .5rem .75rem;border-top:1px solid rgba(128,128,128,.18)}.sidebar__footer-actions{display:flex;flex-direction:column;gap:.25rem;align-items:center}.sidebar__theme-toggle,.sidebar__logout{display:flex;align-items:center;justify-content:center;width:100%;padding:.7rem;border:none;border-radius:14px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .2s ease,color .2s ease}.sidebar__theme-toggle:hover,.sidebar__logout:hover{background:var(--lg-selection);color:var(--text-primary)}.sidebar__theme-toggle--manual{box-shadow:inset 0 0 0 1px #80808059}.sidebar__theme-toggle-icon,.sidebar__logout .sidebar__icon{display:flex}@media(prefers-reduced-motion:reduce){.sidebar__liquid-indicator{transition:none}}@media(max-width:767px){.sidebar.lg-surface{left:0;top:0;bottom:0;width:64px;border-radius:0!important}}.topbar.lg-surface{--lg-radius: 20px;position:fixed;top:12px;left:12px;right:12px;min-height:52px;display:flex;flex-direction:column;border-radius:20px!important;border:1px solid var(--lg-border);z-index:99;transition:left .35s cubic-bezier(.4,0,.2,1),background .25s ease,border-color .25s ease,box-shadow .25s ease;padding:.4rem 1.15rem;overflow:visible}.topbar>.lg-surface__content{display:flex;flex-direction:column;width:100%}@media(min-width:768px){.topbar.lg-surface{left:100px}}.topbar__content{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem}.topbar__clock{font-size:1.05rem;font-weight:500;color:var(--text-primary);white-space:nowrap;margin-left:auto}.topbar__announcement{flex:1 1 320px;display:flex;align-items:center;gap:.5rem;background:var(--glass-bg-hover);border:1px solid var(--glass-border);border-radius:.85rem;padding:.35rem .85rem;box-shadow:0 10px 30px #0f172a14;min-height:34px;transition:border-color .2s ease,box-shadow .2s ease,background .3s ease;max-width:720px}.topbar__announcement-body{flex:1;display:flex;align-items:center;gap:.4rem;width:100%;flex-wrap:nowrap;background:transparent;border:none;text-align:left;cursor:pointer;padding:0;color:var(--text-primary)}.topbar__event{flex:1 1 320px;display:flex;align-items:center;gap:.5rem;min-height:34px;color:var(--text-primary);font-weight:500;justify-content:flex-start;text-align:left}.topbar__event-icon{font-size:1.15rem}.topbar__event-text{font-size:1.05rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar__announcement-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.topbar__announcement-icon{font-size:1.15rem;line-height:1;display:flex;align-items:center;justify-content:center;min-width:1.5rem}.topbar__announcement-chip{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap;display:inline-flex;align-items:center}.topbar__announcement-text{font-size:.92rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.topbar__announcement-dismiss{border:none;background:#0f172a0f;color:var(--text-primary);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease}.topbar__announcement-dismiss:hover{background:#0f172a1f}.topbar__announcement-panel{position:absolute;top:100%;left:0;right:0;margin-top:.75rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:1rem;box-shadow:0 35px 70px #0f172a2e;padding:1.25rem 1.5rem;max-height:420px;overflow-y:auto;z-index:2}.topbar__announcement-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.topbar__announcement-panel-title{font-size:1rem;font-weight:600;color:var(--text-primary);display:block}.topbar__announcement-panel-subtitle{font-size:.85rem;color:var(--text-tertiary);display:block;margin-top:.25rem}.topbar__announcement-panel-actions{display:flex;align-items:center;gap:.75rem}.topbar__announcement-link{border:none;background:transparent;color:var(--accent-blue);font-weight:600;cursor:pointer;padding:0;font-size:.9rem;transition:color .2s ease}.topbar__announcement-link:hover{color:#1d4ed8}.topbar__announcement-link--small{font-size:.85rem}.topbar__announcement-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.topbar__announcement-item{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:.85rem;padding:.9rem 1rem;box-shadow:inset 0 1px #ffffff1a}.topbar__announcement-item-content{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;flex-wrap:nowrap}.topbar__announcement-item-chip{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;display:inline-flex;align-items:center}.topbar__announcement-item-text{font-size:.95rem;color:var(--text-primary);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar__announcement-item-date{font-size:.78rem;color:var(--text-tertiary)}.topbar__announcement,.topbar__announcement-body,.topbar__announcement-panel,.topbar__announcement-item{font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif}.topbar__announcement-icon--list{font-size:1.05rem}.topbar__announcement-icon--fresh{animation:topbarAnnouncementIconPulse 1.2s ease-in-out infinite;color:#2563eb}@keyframes topbarAnnouncementIconPulse{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(37,99,235,0))}50%{transform:scale(1.15);filter:drop-shadow(0 0 8px rgba(37,99,235,.45))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(37,99,235,0))}}:root{--glass-bg-light: linear-gradient(135deg, #eff6ff 0%, #f5fff9 100%);--app-background: var(--glass-bg-light);--body-text-color: #0f172a;--body-muted-text-color: #475569;--lg-tint-regular: rgba(255, 255, 255, .45);--lg-tint-clear: rgba(255, 255, 255, .2);--lg-tint-refract: rgba(255, 255, 255, .28);--lg-border: rgba(255, 255, 255, .55);--lg-border-hover: rgba(255, 255, 255, .65);--lg-shadow: 0 12px 40px rgba(15, 23, 42, .1);--lg-shadow-hover: 0 14px 44px rgba(15, 23, 42, .12);--lg-blur-frost: blur(24px) saturate(160%);--lg-specular-gradient: linear-gradient( 180deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .12) 18%, transparent 42% );--lg-specular-opacity: .45;--lg-pointer-glow: rgba(255, 255, 255, .28);--lg-selection: rgba(0, 0, 0, .06);--lg-selection-border: rgba(255, 255, 255, .55);--sm-bg: rgba(255, 255, 255, .92);--sm-bg-hover: #ffffff;--sm-border: rgba(148, 163, 184, .35);--sm-border-hover: rgba(148, 163, 184, .5);--sm-shadow: 0 12px 32px rgba(15, 23, 42, .08);--sm-shadow-hover: 0 16px 40px rgba(15, 23, 42, .12);--glass-bg: var(--sm-bg);--glass-bg-hover: var(--sm-bg-hover);--glass-border: var(--sm-border);--glass-border-hover: var(--sm-border-hover);--glass-shadow: var(--sm-shadow);--glass-shadow-hover: var(--sm-shadow-hover);--glass-highlight: rgba(255, 255, 255, .8);--chart-grid-color: rgba(15, 23, 42, .08);--chart-axis-color: rgba(15, 23, 42, .65);--chart-reference-line: rgba(15, 23, 42, .35);--chart-battery-line: rgba(71, 85, 105, .9);--pv-solar-color-strong: #facc15;--pv-solar-color-soft: rgba(250, 204, 21, .35);--pv-consumption-color-strong: #06b6d4;--pv-consumption-color-soft: rgba(6, 182, 212, .35);--pv-battery-color-strong: var(--chart-battery-line);--pv-battery-color-soft: rgba(148, 163, 184, .35);--text-primary: #1f2937;--text-secondary: #4b5563;--text-tertiary: #6b7280;--accent-blue: #2563eb;--accent-green: #10b981;--accent-red: #dc2626;--radius-sm: .75rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-xl: 2rem;--blur-light: blur(10px) saturate(180%);--blur-medium: blur(15px) saturate(180%);--blur-heavy: blur(20px) saturate(180%)}:root[data-theme=dark]{color-scheme:dark;--glass-bg-light: radial-gradient(circle at top, #0f172a 0%, #0b1120 45%, #020617 100%);--app-background: var(--glass-bg-light);--body-text-color: #e2e8f0;--body-muted-text-color: #94a3b8;--lg-tint-regular: rgba(28, 28, 30, .55);--lg-tint-clear: rgba(28, 28, 30, .32);--lg-tint-refract: rgba(28, 28, 30, .4);--lg-border: rgba(255, 255, 255, .14);--lg-border-hover: rgba(255, 255, 255, .2);--lg-shadow: 0 12px 40px rgba(0, 0, 0, .35);--lg-shadow-hover: 0 14px 44px rgba(0, 0, 0, .4);--lg-blur-frost: blur(28px) saturate(170%);--lg-specular-gradient: linear-gradient( 180deg, rgba(255, 255, 255, .22) 0%, rgba(255, 255, 255, .06) 16%, transparent 40% );--lg-specular-opacity: .35;--lg-pointer-glow: rgba(255, 255, 255, .16);--lg-selection: rgba(255, 255, 255, .12);--lg-selection-border: rgba(255, 255, 255, .18);--sm-bg: rgba(15, 23, 42, .88);--sm-bg-hover: rgba(30, 41, 59, .95);--sm-border: rgba(96, 165, 250, .28);--sm-border-hover: rgba(147, 197, 253, .45);--sm-shadow: 0 12px 32px rgba(2, 6, 23, .45);--sm-shadow-hover: 0 16px 40px rgba(2, 6, 23, .55);--glass-bg: var(--sm-bg);--glass-bg-hover: var(--sm-bg-hover);--glass-border: var(--sm-border);--glass-border-hover: var(--sm-border-hover);--glass-shadow: var(--sm-shadow);--glass-shadow-hover: var(--sm-shadow-hover);--glass-highlight: rgba(255, 255, 255, .15);--chart-grid-color: rgba(248, 250, 252, .12);--chart-axis-color: rgba(248, 250, 252, .85);--chart-reference-line: rgba(248, 250, 252, .45);--chart-battery-line: rgba(203, 213, 225, .95);--pv-solar-color-strong: #fde047;--pv-solar-color-soft: rgba(253, 224, 71, .5);--pv-consumption-color-strong: #67e8f9;--pv-consumption-color-soft: rgba(103, 232, 249, .45);--pv-battery-color-strong: var(--chart-battery-line);--pv-battery-color-soft: rgba(203, 213, 225, .45);--text-primary: #f8fafc;--text-secondary: #cbd5f5;--text-tertiary: #94a3b8;--accent-blue: #60a5fa;--accent-green: #34d399;--accent-red: #f87171;--blur-light: blur(14px) saturate(180%);--blur-medium: blur(18px) saturate(180%);--blur-heavy: blur(28px) saturate(200%)}.standard-material,.sm-panel,.liquid-glass{background:var(--sm-bg);border:1px solid var(--sm-border);box-shadow:var(--sm-shadow);position:relative;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}.sm-panel--pad,.liquid-glass-panel{border-radius:var(--radius-lg);padding:1.5rem}.sm-panel--card,.liquid-glass-card{border-radius:var(--radius-md);padding:1.25rem}.liquid-glass:hover,.sm-panel:hover,.standard-material:hover{background:var(--sm-bg-hover);border-color:var(--sm-border-hover);box-shadow:var(--sm-shadow-hover);transform:none}.liquid-glass:before{display:none}.liquid-glass-static,.liquid-glass-static:hover{transform:none;background:var(--sm-bg);border-color:var(--sm-border);box-shadow:var(--sm-shadow);transition:none}.liquid-glass-button{border-radius:var(--radius-sm);padding:.75rem 1.5rem;cursor:pointer;border:1px solid var(--sm-border);font-weight:600;color:var(--text-primary);background:var(--sm-bg);transition:background .2s ease,border-color .2s ease}.liquid-glass-button:hover{background:var(--sm-bg-hover);border-color:var(--sm-border-hover);transform:none}.liquid-glass-bg{min-height:100vh;background:var(--app-background);position:relative;overflow-x:hidden;transition:background .4s ease}.liquid-glass-text-primary{color:var(--text-primary)}.liquid-glass-text-secondary{color:var(--text-secondary)}.liquid-glass-text-tertiary{color:var(--text-tertiary)}.liquid-glass-animate{animation:none}.liquid-glass-active{background:var(--sm-bg-hover);border-color:var(--accent-blue);box-shadow:0 0 0 4px #2563eb1a}.value-card{--value-card-start: rgba(251, 191, 36, .25);--value-card-end: rgba(250, 204, 21, .1);--value-card-shadow: rgba(251, 191, 36, .15);--value-card-highlight-opacity: .85;position:relative;display:flex;flex-direction:column;justify-content:flex-start;gap:.15rem;padding:.9rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--sm-border);background:linear-gradient(135deg,var(--value-card-start),var(--value-card-end));box-shadow:0 12px 30px var(--value-card-shadow);overflow:hidden;isolation:isolate;backdrop-filter:none;-webkit-backdrop-filter:none}.value-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 82% 88%,rgba(255,255,255,.6),transparent 62%);opacity:var(--value-card-highlight-opacity, .85);mix-blend-mode:screen}.value-card__helper{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);z-index:1}.value-card__value{margin:.2rem 0 0;font-size:1.35rem;font-weight:600;color:var(--text-primary);z-index:1}.value-card__value--small{font-size:.95rem;font-weight:500}.value-card__label{margin:.15rem 0 0;font-size:.85rem;color:var(--text-secondary);z-index:1}.lg-chrome{background:var(--lg-tint-regular);backdrop-filter:var(--lg-blur-frost);-webkit-backdrop-filter:var(--lg-blur-frost);border:1px solid var(--lg-border);box-shadow:var(--lg-shadow)}.dashboard-layout{min-height:100vh;background:var(--app-background);position:relative;display:flex;flex-direction:column;--holiday-lights-height: 95px;transition:background .4s ease;isolation:isolate}.dashboard-layout__lights{position:fixed;top:72px;left:0;width:100vw;height:var(--holiday-lights-height);display:flex;justify-content:center;align-items:center;pointer-events:none;z-index:98}@media(min-width:768px){.dashboard-layout__lights{left:100px;width:calc(100vw - 112px)}}.dashboard-layout__lights-inner{position:relative;width:100%;max-width:100%;height:100%;overflow:visible;background-image:url(/ezgif.com-webp-maker.webp);background-repeat:repeat-x;background-position:center top;background-size:auto 85%;image-rendering:optimizeQuality}.dashboard-layout__main{flex:1;margin-left:0;margin-top:72px;margin-bottom:0;padding:1.5rem 1.5rem 2rem;position:relative;z-index:1}.dashboard-layout--with-lights .dashboard-layout__main{margin-top:calc(72px + var(--holiday-lights-height))}.dashboard-layout__content{max-width:clamp(1200px,90vw,1680px);margin:0 auto;width:100%;overflow:visible}.dashboard-layout__content--wide{max-width:none;margin:0}.dashboard-layout__main--full-bleed{flex:0 0 auto;padding:0;margin-bottom:0;height:calc(100vh - 72px);max-height:calc(100vh - 72px);overflow:hidden;display:flex;flex-direction:column}.dashboard-layout--full-bleed-page{height:100vh;max-height:100vh;min-height:0;overflow:hidden}.dashboard-layout--with-lights.dashboard-layout--full-bleed-page{height:100vh;max-height:100vh}.dashboard-layout--with-lights .dashboard-layout__main--full-bleed{height:calc(100vh - 72px - var(--holiday-lights-height));max-height:calc(100vh - 72px - var(--holiday-lights-height))}.dashboard-layout__content--full-bleed{max-width:none;margin:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}@media(min-width:768px){.dashboard-layout__main{margin-left:100px;margin-top:72px;padding-bottom:1.5rem}.dashboard-layout--with-lights .dashboard-layout__main{margin-top:calc(72px + var(--holiday-lights-height))}}@media(min-width:1440px){.dashboard-layout__main:not(.dashboard-layout__main--full-bleed){padding:2rem 2.5rem 2.5rem}}@media(min-width:1920px){.dashboard-layout__main:not(.dashboard-layout__main--full-bleed){padding:2.5rem 3rem 3rem}}.dashboard-calendar-events{display:flex;flex-direction:column;gap:1.5rem}.dashboard-calendar-events__loading,.dashboard-calendar-events__error,.dashboard-calendar-events__empty{text-align:center;padding:1rem;font-size:.95rem}.dashboard-calendar-events__day{display:flex;flex-direction:column;gap:.75rem}.dashboard-calendar-events__day-title{font-size:1.1rem;font-weight:600;margin:0;letter-spacing:-.01em;padding-bottom:.5rem;border-bottom:1px solid var(--glass-border)}.dashboard-calendar-events__events-list{display:flex;flex-direction:column;gap:.75rem}.dashboard-calendar-events__event{padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.dashboard-calendar-events__event:hover{background:var(--glass-bg-hover);border-color:var(--glass-border)}.dashboard-calendar-events__event-header{display:flex;flex-direction:column;gap:.25rem}.dashboard-calendar-events__event-title{font-size:1rem;font-weight:600;margin:0;line-height:1.4}.dashboard-calendar-events__event-time{font-size:.875rem;font-weight:500}.dashboard-calendar-events__event-details{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;line-height:1.5}.dashboard-calendar-events__event-location{display:flex;align-items:flex-start;gap:.5rem}.dashboard-calendar-events__event-description{line-height:1.5;word-wrap:break-word}.dashboard-calendar-events__event-members{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid var(--glass-border)}.dashboard-calendar-events__event-members-label{font-size:.875rem;font-weight:500}.dashboard-calendar-events__event-members-icons{display:flex;align-items:center;gap:-10%}.dashboard-calendar-events__event-member-icon{width:40px;height:40px;border-radius:50%;border:2px solid;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ffffff80;margin-left:-5%}.dashboard-calendar-events__event-member-icon:first-child{margin-left:0}.dashboard-calendar-events__event-member-image{width:100%;height:100%;object-fit:cover}@media(min-width:768px){.dashboard-calendar-events{gap:2rem}.dashboard-calendar-events__day{gap:1rem}.dashboard-calendar-events__day-title{font-size:1.25rem}.dashboard-calendar-events__events-list{gap:1rem}.dashboard-calendar-events__event{padding:1.25rem;gap:1rem}.dashboard-calendar-events__event-title{font-size:1.1rem}.dashboard-calendar-events__event-member-icon{width:44px;height:44px}}.dashboard-shopping-list{display:flex;flex-direction:column;gap:1rem}.dashboard-shopping-list__loading,.dashboard-shopping-list__error,.dashboard-shopping-list__empty{padding:1rem;text-align:center;font-size:.9rem}.dashboard-shopping-list__items{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.dashboard-shopping-list__item{padding:.75rem 1rem;transition:transform .2s ease,box-shadow .2s ease}.dashboard-shopping-list__item:hover{transform:translateY(-1px)}.dashboard-shopping-list__item-content{display:flex;flex-direction:column;gap:.25rem}.dashboard-shopping-list__item-name{font-size:.95rem;font-weight:500;line-height:1.4}.dashboard-shopping-list__item-note{font-size:.85rem;line-height:1.4;opacity:.7}.dashboard-shopping-list__link{display:inline-block;margin-top:.5rem;font-size:.9rem;text-decoration:none;transition:opacity .2s ease;align-self:flex-start}.dashboard-shopping-list__link:hover{opacity:.8;text-decoration:underline}.dashboard-todo{display:flex;flex-direction:column;gap:1rem}.dashboard-todo__loading,.dashboard-todo__error,.dashboard-todo__empty{padding:1rem;text-align:center;font-size:.9rem}.dashboard-todo__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.dashboard-todo__item{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;padding:.6rem .85rem;transition:transform .2s ease,box-shadow .2s ease}.dashboard-todo__item:hover{transform:translateY(-1px)}.dashboard-todo__check{display:flex;align-items:flex-start;padding-top:.15rem;cursor:pointer}.dashboard-todo__check input{width:1.05rem;height:1.05rem;cursor:pointer}.dashboard-todo__content{display:flex;flex-direction:column;gap:.2rem;min-width:0}.dashboard-todo__title{font-size:.95rem;font-weight:500;line-height:1.4}.dashboard-todo__due{font-size:.8rem;line-height:1.3;opacity:.75}.dashboard-todo__due--overdue{opacity:1;font-weight:600;color:#b45309}.dashboard-todo__link{display:inline-block;margin-top:.25rem;font-size:.9rem;text-decoration:none;transition:opacity .2s ease;align-self:flex-start}.dashboard-todo__link:hover{opacity:.85;text-decoration:underline}.pv-history-graph{display:flex;flex-direction:column;gap:.75rem}.pv-history-graph__header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem}.pv-history-graph__title{font-size:1rem;margin:0}.pv-history-graph__snapshot{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto;justify-content:flex-end}.pv-history-graph__snapshot-item{font-size:.8rem;font-weight:600;padding:.35rem .65rem;border-radius:999px;border:1px solid rgba(148,163,184,.3);background:#fffc;color:var(--text-primary);box-shadow:inset 0 1px #ffffffa6}.pv-history-graph__snapshot-item--solar{border-color:#fde04780;color:#92400e}.pv-history-graph__snapshot-item--consumption{border-color:#06b6d480;color:#0f766e}.pv-history-graph__snapshot-item--battery{border-color:var(--chart-battery-line);color:var(--chart-battery-line);opacity:.9}.pv-history-graph__snapshot-item--grid{border-color:#94a3b873;color:var(--text-secondary)}.pv-history-graph__chart-container{width:100%;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(180deg,#0f172a33,#0f172a0d);padding:8px}.pv-history-graph__tooltip{background:#fffffff2;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.5rem;box-shadow:0 4px 12px #00000026}.pv-history-graph__tooltip-title{font-size:.75rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.pv-history-graph__tooltip-row{display:flex;justify-content:space-between;gap:.75rem;font-size:.75rem;margin-top:.25rem}.pv-history-graph__tooltip-label{color:var(--text-secondary)}.pv-history-graph__tooltip-value{font-weight:600;color:var(--text-primary)}.pv-history-graph__tooltip-value--solar{color:#92400e}.pv-history-graph__tooltip-value--consumption{color:#0f766e}.pv-history-graph__tooltip-value--battery{color:var(--chart-battery-line)}.dashboard-pv-status{display:flex;flex-direction:column;gap:1rem}.dashboard-pv-status__header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.dashboard-pv-status__eyebrow{font-size:.85rem;margin:0;letter-spacing:.08em;text-transform:uppercase}.dashboard-pv-status__title{font-size:1.25rem;margin:.15rem 0 0;letter-spacing:-.01em}.dashboard-pv-status__timestamp{font-size:.85rem}.dashboard-pv-status__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}@media(min-width:1440px){.dashboard-pv-status__metrics{gap:1rem}}@media(min-width:1920px){.dashboard-pv-status__metrics{gap:1.25rem}}.dashboard-pv-status__metric--solar{background:linear-gradient(135deg,#fde04759,#facc1533);box-shadow:0 12px 30px #fde04733}.dashboard-pv-status__metric--consumption{background:linear-gradient(135deg,#06b6d44d,#0ea5e926);box-shadow:0 12px 30px #06b6d42e}.dashboard-pv-status__metric--grid{background:linear-gradient(135deg,#94a3b866,#64748b33);box-shadow:0 12px 30px #94a3b833}.dashboard-pv-status__metric--battery{background:linear-gradient(135deg,#0f172a59,#1e293b33);box-shadow:0 12px 30px #0f172a33}.dashboard-pv-status__graph{display:flex;flex-direction:column;gap:.5rem}.dashboard-pv-status__graph-header{display:flex;justify-content:space-between;align-items:center}.dashboard-pv-status__graph-title{font-size:1rem;margin:0}.dashboard-pv-status__legend{display:flex;gap:.5rem;flex-wrap:wrap}.dashboard-pv-status__legend-item{font-size:.78rem;font-weight:600;padding:.2rem .75rem;border-radius:999px;border:1px solid transparent;background:#ffffffd9}.dashboard-pv-status__legend-item--solar{border-color:#fde04799;color:#92400e}.dashboard-pv-status__legend-item--consumption{border-color:#06b6d499;color:#0f766e}.dashboard-pv-status__legend-item--battery{border-color:#0f172a73;color:#0f172a}.dashboard-pv-status__graph-empty,.dashboard-pv-status__error,.dashboard-pv-status__loading{font-size:.9rem}.dashboard-pv-forecast{display:flex;flex-direction:column;gap:.75rem}.dashboard-pv-forecast__header{display:flex;flex-direction:column;gap:.4rem}.dashboard-pv-forecast__eyebrow{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary)}.dashboard-pv-forecast__meta{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dashboard-pv-forecast__error{color:#dc2626;font-weight:600}.dashboard-pv-forecast__pill{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);font-size:.75rem;font-weight:600}.dashboard-pv-forecast__meta-text{font-size:.85rem;color:var(--text-secondary)}.dashboard-pv-forecast__loading,.dashboard-pv-forecast__empty{font-size:.9rem;color:var(--text-secondary);text-align:center;padding:.5rem 0}.dashboard-pv-forecast__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:.75rem}.dashboard-pv-forecast__card{min-height:120px}.dashboard-pv-forecast__chart{display:flex;flex-direction:column;gap:.5rem}.dashboard-pv-forecast__chart-header{display:flex;justify-content:space-between;align-items:center}.dashboard-pv-forecast__chart-title{font-size:1rem;margin:0}.dashboard-pv-forecast__chart-content{width:100%;height:180px;border-radius:var(--radius-lg);overflow:hidden;background:#0003;padding:.5rem}.dashboard-pv-forecast__tooltip{background:#0f172af2;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md, .75rem);padding:.6rem .75rem;box-shadow:0 4px 12px #0000004d;backdrop-filter:blur(8px);min-width:140px}.dashboard-pv-forecast__tooltip-title{font-size:.85rem;font-weight:600;color:#ffffffe6;margin-bottom:.4rem;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.1)}.dashboard-pv-forecast__tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.dashboard-pv-forecast__tooltip-label{font-size:.75rem;color:#ffffffb3}.dashboard-pv-forecast__tooltip-value{font-size:.8rem;font-weight:600;color:#fbbf24}.gauge-chart{position:relative;display:inline-flex;align-items:center;justify-content:center}.gauge-chart__svg-wrapper{position:relative}.gauge-chart__track{fill:none;stroke:#0f172a14}.gauge-chart__progress{fill:none;stroke:var(--accent-blue, #38bdf8);stroke-linecap:round;transition:stroke-dashoffset .4s ease,stroke .3s ease}.gauge-chart__center-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.2;width:75%}.gauge-chart__title{margin:0;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-size:.8em}.gauge-chart__center-label{margin:.25rem 0 0;font-weight:700;color:var(--text-primary);font-size:1.1em}.gauge-chart__value{margin:.35rem 0 0;font-weight:700;color:var(--text-primary);display:flex;align-items:baseline;gap:.35rem}.gauge-chart__unit{font-size:.45em;text-transform:uppercase;color:var(--text-secondary)}.gauge-chart__badge{margin-top:.5rem;font-size:.8rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;border:1px solid currentColor;background:#ffffffe6}.gauge-chart--sm .gauge-chart__badge{font-size:.7rem}.gauge-chart--lg .gauge-chart__badge{font-size:.9rem}.dashboard-pool-status{display:flex;flex-direction:column;gap:1.25rem}.dashboard-pool-status__header{display:flex;flex-direction:column;gap:.4rem}.dashboard-pool-status__eyebrow{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary)}.dashboard-pool-status__title{margin:0;font-size:1.35rem;letter-spacing:-.01em}.dashboard-pool-status__meta{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.dashboard-pool-status__error{color:#dc2626;font-weight:600}.dashboard-pool-status__dot{width:.65rem;height:.65rem;border-radius:50%;background:linear-gradient(135deg,#38bdf8,#22d3ee);animation:dashboard-pool-pulse 1.4s ease-in-out infinite}@keyframes dashboard-pool-pulse{0%{transform:scale(.8);opacity:.6}50%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:.6}}.dashboard-pool-status__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}@media(min-width:1440px){.dashboard-pool-status__grid{gap:1rem}}@media(min-width:1920px){.dashboard-pool-status__grid{gap:1.25rem}}.dashboard-pool-status__card--pump{align-items:flex-start;text-align:left;gap:.35rem;justify-content:flex-start}.dashboard-pool-status__card--pump-off{--value-card-start: rgba(148, 163, 184, .45);--value-card-end: rgba(71, 85, 105, .25);--value-card-shadow: rgba(71, 85, 105, .25)}.dashboard-pool-status__card--pump-low{--value-card-start: rgba(59, 130, 246, .35);--value-card-end: rgba(14, 165, 233, .2);--value-card-shadow: rgba(14, 165, 233, .2)}.dashboard-pool-status__card--pump-medium{--value-card-start: rgba(250, 204, 21, .45);--value-card-end: rgba(253, 224, 71, .25);--value-card-shadow: rgba(250, 204, 21, .2)}.dashboard-pool-status__card--pump-high{--value-card-start: rgba(248, 113, 113, .5);--value-card-end: rgba(239, 68, 68, .3);--value-card-shadow: rgba(239, 68, 68, .25)}.dashboard-pool-status__card--pump-pending{--value-card-start: rgba(248, 250, 252, .45);--value-card-end: rgba(148, 163, 184, .15);--value-card-shadow: rgba(148, 163, 184, .15)}.dashboard-pool-status__card--heat-pump-gray{--value-card-start: rgba(148, 163, 184, .45);--value-card-end: rgba(71, 85, 105, .25);--value-card-shadow: rgba(71, 85, 105, .25)}.dashboard-pool-status__card--heat-pump-green{--value-card-start: rgba(34, 197, 94, .35);--value-card-end: rgba(16, 185, 129, .2);--value-card-shadow: rgba(16, 185, 129, .2)}.dashboard-pool-status__card--heat-pump-orange{--value-card-start: rgba(251, 146, 60, .45);--value-card-end: rgba(249, 115, 22, .25);--value-card-shadow: rgba(249, 115, 22, .2)}.dashboard-pool-status__card--heat-pump-red{--value-card-start: rgba(248, 113, 113, .5);--value-card-end: rgba(239, 68, 68, .3);--value-card-shadow: rgba(239, 68, 68, .25)}.dashboard-pool-status__card--heat-pump-pending{--value-card-start: rgba(248, 250, 252, .45);--value-card-end: rgba(148, 163, 184, .15);--value-card-shadow: rgba(148, 163, 184, .15)}.dashboard-pool-status__pump-mode-value-wrapper{width:100%;display:flex;justify-content:flex-start}.dashboard-pool-status__pump-mode-value{font-size:1.35rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary)}.dashboard-pool-status__pump-mode-value--pending{color:var(--text-secondary)}.dashboard-pool-status__pump-mode-power{margin:0;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.dashboard-pool-status__contamination{display:flex;gap:1rem;align-items:center;padding:1.1rem 1.2rem;border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow)}.dashboard-pool-status__contamination-gauge{flex:0 0 auto;display:flex;align-items:center;justify-content:center;transform:scale(.8);transform-origin:center}.dashboard-pool-status__contamination-info{display:flex;flex-direction:column;gap:.15rem}.dashboard-pool-status__contamination-label{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.dashboard-pool-status__contamination-value{margin:0;font-size:1.35rem;font-weight:700}.dashboard-pool-status__contamination-value--clean{color:var(--accent-green)}.dashboard-pool-status__contamination-value--warning{color:#f59e0b}.dashboard-pool-status__contamination-value--critical{color:#dc2626}.dashboard-pool-status__contamination-value--pending{color:var(--text-secondary)}.dashboard-pool-status__contamination-hint{margin:0;font-size:.9rem;color:var(--text-secondary)}.dashboard-pool-status__loading{font-size:.9rem;color:var(--text-secondary);text-align:center;padding:.5rem 0}.washing-machine-icon{display:block;flex-shrink:0}.washing-machine-icon__vortex{transform-origin:60px 62.5px;animation:vortex-spin 2s linear infinite}.washing-machine-icon__checkmark{animation:checkmark-appear .4s cubic-bezier(.34,1.56,.64,1);transform-origin:60px 62.5px}.dashboard-washing-machine{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;margin-bottom:1.5rem;transition:background-color .3s ease,border-color .3s ease;max-width:100%;width:100%;position:relative}@media(min-width:768px){.dashboard-washing-machine{max-width:calc(100vw * 1.42857 * .7 - 3rem)}}@media(min-width:1024px){.dashboard-washing-machine{max-width:350px}}.dashboard-washing-machine--finished{background:#10b98114;border-color:#10b98166}.dashboard-washing-machine__close-button{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:50%;color:#6b7280;font-size:1.5rem;font-weight:300;line-height:1;cursor:pointer;z-index:10;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;padding:0;margin:0}.dashboard-washing-machine__close-button:hover{background:#dc26261a;border-color:#dc26264d;color:#dc2626;transform:scale(1.1)}.dashboard-washing-machine__close-button:active{transform:scale(.95)}.dashboard-washing-machine__close-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.dashboard-washing-machine__title{margin:0;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;text-align:center}.dashboard-washing-machine--finished .dashboard-washing-machine__title{color:#10b981}.dashboard-washing-machine__content{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.dashboard-washing-machine__icon-wrapper{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%}.dashboard-washing-machine__info{flex:1;display:flex;flex-direction:column;gap:.375rem;width:100%;align-items:center}.dashboard-washing-machine__status{display:flex;align-items:baseline;justify-content:center;gap:.75rem;width:100%}.dashboard-washing-machine__status-label{font-size:.95rem;font-weight:600;color:var(--text-secondary, #4b5563)}.dashboard-washing-machine__status-label--finished{color:#10b981;font-weight:700;font-size:1.1rem}.dashboard-washing-machine__status-value{font-size:1.1rem;font-weight:700;color:var(--text-primary, #1f2937)}.dashboard-washing-machine--finished .dashboard-washing-machine__status-value{color:#10b981}.dashboard-washing-machine__details{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%;max-width:400px}.dashboard-washing-machine__detail{display:flex;flex-direction:column;gap:.25rem;align-items:center;text-align:center}.dashboard-washing-machine__detail-label{font-size:.875rem;color:var(--text-tertiary, #6b7280);font-weight:500}.dashboard-washing-machine__detail-value{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.dashboard-washing-machine--finished .dashboard-washing-machine__detail-value{color:#059669}.dashboard-washing-machine__error{padding:.75rem 1rem;background:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:.75rem;color:#dc2626;font-size:.9rem}.dashboard-washing-machine__mock-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:.75rem;color:#2563eb;font-size:.875rem;font-weight:600}.dashboard-washing-machine__mock-button{padding:.5rem 1rem;background:#3b82f633;border:1px solid rgba(59,130,246,.4);border-radius:.5rem;color:#2563eb;font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.dashboard-washing-machine__mock-button:hover{background:#3b82f64d;border-color:#3b82f680}@media(min-width:768px){.dashboard-washing-machine{padding:1.5rem}.dashboard-washing-machine__icon-wrapper{width:140px;height:140px}.dashboard-washing-machine__icon-wrapper svg{width:140px;height:140px}}@media(min-width:1024px){.dashboard-washing-machine__icon-wrapper{width:120px;height:120px}.dashboard-washing-machine__icon-wrapper svg{width:120px;height:120px}}.dryer-icon{display:block;flex-shrink:0}.dryer-icon__vortex{transform-origin:60px 62.5px;animation:vortex-spin 2s linear infinite}.dryer-icon__checkmark{animation:checkmark-appear .4s cubic-bezier(.34,1.56,.64,1);transform-origin:60px 62.5px}@keyframes vortex-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes checkmark-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.dashboard-dryer{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;margin-bottom:1.5rem;transition:background-color .3s ease,border-color .3s ease;max-width:100%;width:100%;position:relative}@media(min-width:768px){.dashboard-dryer{max-width:calc(100vw * 1.42857 * .7 - 3rem)}}@media(min-width:1024px){.dashboard-dryer{max-width:350px}}.dashboard-dryer--finished{background:#10b98114;border-color:#10b98166}.dashboard-dryer__close-button{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:50%;color:#6b7280;font-size:1.5rem;font-weight:300;line-height:1;cursor:pointer;z-index:10;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;padding:0;margin:0}.dashboard-dryer__close-button:hover{background:#dc26261a;border-color:#dc26264d;color:#dc2626;transform:scale(1.1)}.dashboard-dryer__close-button:active{transform:scale(.95)}.dashboard-dryer__close-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.dashboard-dryer__title{margin:0;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;text-align:center}.dashboard-dryer--finished .dashboard-dryer__title{color:#10b981}.dashboard-dryer__content{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.dashboard-dryer__icon-wrapper{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%}.dashboard-dryer__info{flex:1;display:flex;flex-direction:column;gap:.375rem;width:100%;align-items:center}.dashboard-dryer__status{display:flex;align-items:baseline;justify-content:center;gap:.75rem;width:100%}.dashboard-dryer__status-label{font-size:.95rem;font-weight:600;color:var(--text-secondary, #4b5563)}.dashboard-dryer__status-label--finished{color:#10b981;font-weight:700;font-size:1.1rem}.dashboard-dryer__status-value{font-size:1.1rem;font-weight:700;color:var(--text-primary, #1f2937)}.dashboard-dryer--finished .dashboard-dryer__status-value{color:#10b981}.dashboard-dryer__details{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%;max-width:400px}.dashboard-dryer__detail{display:flex;flex-direction:column;gap:.25rem;align-items:center;text-align:center}.dashboard-dryer__detail-label{font-size:.875rem;color:var(--text-tertiary, #6b7280);font-weight:500}.dashboard-dryer__detail-value{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.dashboard-dryer--finished .dashboard-dryer__detail-value{color:#059669}.dashboard-dryer__error{padding:.75rem 1rem;background:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:.75rem;color:#dc2626;font-size:.9rem}.dashboard-dryer__mock-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:.75rem;color:#2563eb;font-size:.875rem;font-weight:600}.dashboard-dryer__mock-button{padding:.5rem 1rem;background:#3b82f633;border:1px solid rgba(59,130,246,.4);border-radius:.5rem;color:#2563eb;font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.dashboard-dryer__mock-button:hover{background:#3b82f64d;border-color:#3b82f680}@media(min-width:768px){.dashboard-dryer{padding:1.5rem}.dashboard-dryer__icon-wrapper{width:140px;height:140px}.dashboard-dryer__icon-wrapper svg{width:140px;height:140px}}@media(min-width:1024px){.dashboard-dryer__icon-wrapper{width:120px;height:120px}.dashboard-dryer__icon-wrapper svg{width:120px;height:120px}}.vehicle-charge-card{padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem}.vehicle-charge-card--compact{padding:1.25rem;gap:1rem}.vehicle-charge-card--embedded,.vehicle-charge-card--embedded.vehicle-charge-card--compact{padding:0;gap:.75rem}.vehicle-charge-card--embedded .vehicle-charge-card__title{font-size:1.25rem}.vehicle-charge-card--embedded .vehicle-charge-card__metrics strong{font-size:1.1rem}.vehicle-charge-card__header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-start}.vehicle-charge-card__title{margin:0;font-size:clamp(1.5rem,2.2vw,2rem);color:var(--text-primary)}.vehicle-charge-card__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;min-width:min(100%,22rem)}.vehicle-charge-card__mode{border:none;border-radius:.85rem;padding:.5rem .35rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;color:#0f172a;cursor:pointer;opacity:.85;display:flex;align-items:center;justify-content:center;gap:.35rem}.vehicle-charge-card__mode--gray{background:linear-gradient(135deg,#e2e8f0,#cbd5f5)}.vehicle-charge-card__mode--yellow{background:linear-gradient(135deg,#fef3c7,#fde68a)}.vehicle-charge-card__mode--amber{background:linear-gradient(135deg,#fcd34d,#f59e0b)}.vehicle-charge-card__mode--orange{background:linear-gradient(135deg,#f97316,#fb923c)}.vehicle-charge-card__mode--active{opacity:1;transform:translateY(-1px);box-shadow:0 12px 24px #0f172a33}.vehicle-charge-card__mode--pending{opacity:1;cursor:wait;box-shadow:0 0 0 2px #3b82f673,0 8px 20px #3b82f633;animation:vehicle-charge-mode-pending 1.2s ease-in-out infinite}@keyframes vehicle-charge-mode-pending{0%,to{filter:brightness(1)}50%{filter:brightness(1.08)}}.vehicle-charge-card__mode:disabled{opacity:.5;cursor:not-allowed}.vehicle-charge-card__mode-dot{width:.45rem;height:.45rem;border-radius:999px;background:#94a3b873}.vehicle-charge-card__mode-dot--active{background:var(--accent-green);box-shadow:0 0 8px #10b9818c}.vehicle-charge-card__mode-dot--pending{background:#3b82f6;box-shadow:0 0 10px #3b82f6a6;animation:vehicle-charge-dot-pulse 1s ease-in-out infinite}@keyframes vehicle-charge-dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.75}}.vehicle-charge-card__metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.vehicle-charge-card__metrics span{display:block;font-size:.8rem;color:var(--text-secondary)}.vehicle-charge-card__metrics strong{font-size:1.35rem;color:var(--text-primary)}.vehicle-charge-card__vehicle{display:flex;gap:.75rem;align-items:flex-start}.vehicle-charge-card__vehicle strong{display:block;color:var(--text-primary)}.vehicle-charge-card__vehicle p{margin:.15rem 0 0;font-size:.85rem;color:var(--text-secondary)}.vehicle-charge-card__battery-bar{width:100%;height:1.75rem;border-radius:999px;overflow:hidden;position:relative}.vehicle-charge-card__battery-fill{height:100%;border-radius:999px;transition:width .4s ease}.vehicle-charge-card__battery-limit{position:absolute;top:0;bottom:0;width:3px;margin-left:-1px;background:#fffffff2;box-shadow:0 0 6px #0f172a59}.vehicle-charge-card__footer{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.vehicle-charge-card__footer span{display:block;font-size:.78rem;color:var(--text-secondary)}.vehicle-charge-card__footer strong{font-size:.95rem;color:var(--text-primary)}.vehicle-charge-card__extras{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.82rem;color:var(--text-secondary);border-top:1px solid rgba(148,163,184,.2);padding-top:.75rem}@media(max-width:640px){.vehicle-charge-card__modes{width:100%}.vehicle-charge-card__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-charge-card__metrics strong{font-size:1.1rem}}.dashboard-tesla{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;margin-bottom:1.5rem;transition:background-color .3s ease,border-color .3s ease,opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);max-width:min(22rem,100%);width:100%;min-height:0;min-width:0;position:relative;overflow:hidden;box-sizing:border-box;will-change:transform,opacity}.dashboard-tesla__title{margin:0 0 .25rem;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;text-align:left;flex-shrink:0}.dashboard-tesla__content{display:flex;flex-direction:column;gap:.5rem;width:100%;flex:1;min-height:0}.dashboard-tesla__section{display:flex;flex-direction:column;gap:.75rem;width:100%;padding:.75rem;border-radius:.75rem;transition:transform .2s ease,box-shadow .2s ease;flex-shrink:0}.dashboard-tesla__section--battery{border-radius:.75rem}.dashboard-tesla__charging-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}.dashboard-tesla__location{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.dashboard-tesla__status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:1rem;font-size:.875rem;font-weight:600;color:var(--text-secondary, #4b5563)}.dashboard-tesla__status-badge--charging{background:#22c55e1a;border-color:#22c55e4d;color:#16a34a}.dashboard-tesla__status-badge--climate{background:#3b82f61a;border-color:#3b82f64d;color:#2563eb}.dashboard-tesla__status-indicator{width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.dashboard-tesla__status-indicator--charging,.dashboard-tesla__status-indicator--climate{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.dashboard-tesla__climate-header{display:flex;align-items:center;justify-content:center;gap:1rem;width:100%}.dashboard-tesla__battery-section{display:flex;flex-direction:column;gap:.5rem;width:100%}.dashboard-tesla__battery-label{font-size:.9rem;color:var(--text-primary, #1f2937);font-weight:600;margin-bottom:.25rem}.dashboard-tesla__battery-bar-container{width:100%;margin-bottom:.5rem;padding:0 .25rem}.dashboard-tesla__battery-bar{width:100%;height:2rem;background:#0000001a;border-radius:.5rem;overflow:hidden;position:relative}.dashboard-tesla__battery-fill{height:100%;transition:width .5s ease;border-radius:.5rem;position:absolute;left:0;top:0}.dashboard-tesla__battery-percentage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:1rem;font-weight:700;color:#000;z-index:1;pointer-events:none}.dashboard-tesla__charging-info,.dashboard-tesla__temperature-info{display:flex;flex-direction:column;gap:.25rem;width:100%;margin-top:.25rem}.dashboard-tesla__climate-section{display:flex;flex-direction:column;gap:.35rem;width:100%}.dashboard-tesla__climate-cards-wrapper{width:100%;padding:0 .25rem}.dashboard-tesla__climate-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:100%}.dashboard-tesla__climate-card{border:1px solid var(--glass-border, rgba(148, 163, 184, .4));border-radius:.65rem;padding:.6rem .75rem;min-height:72px;display:flex;flex-direction:column;justify-content:center;gap:.15rem;color:var(--text-primary, #1f2937);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.dashboard-tesla__climate-card-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary, #4b5563)}.dashboard-tesla__climate-card-value{font-size:1.1rem;font-weight:700;color:inherit}.dashboard-tesla__climate-card-helper{font-size:.78rem;color:var(--text-secondary, #4b5563)}.dashboard-tesla__info-row{display:flex;flex-direction:row;align-items:baseline;gap:.5rem;text-align:left}.dashboard-tesla__info-label{font-size:.9rem;color:var(--text-secondary, #4b5563);font-weight:600;min-width:4rem}.dashboard-tesla__info-value{font-size:.9rem;font-weight:600;color:var(--text-primary, #1f2937)}.dashboard-tesla__temperature-section{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;width:100%}.dashboard-tesla__temp-item{display:flex;flex-direction:column;gap:.25rem;align-items:center;text-align:center;padding:.5rem;border-radius:.5rem;transition:transform .2s ease,box-shadow .2s ease}.dashboard-tesla__temp-label{font-size:.875rem;color:var(--text-tertiary, #6b7280);font-weight:500}.dashboard-tesla__temp-value{font-size:1.1rem;font-weight:700;color:var(--text-primary, #1f2937)}.dashboard-tesla__climate-button{width:100%;padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:.5rem;color:#2563eb;font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .15s ease}.dashboard-tesla__climate-button:hover:not(:disabled){background:#3b82f633;border-color:#3b82f666;transform:translateY(-1px)}.dashboard-tesla__climate-button:active:not(:disabled){transform:translateY(0)}.dashboard-tesla__climate-button:disabled{opacity:.5;cursor:not-allowed}.dashboard-tesla__climate-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.dashboard-tesla__error{padding:.75rem 1rem;background:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:.75rem;color:#dc2626;font-size:.9rem}.dashboard-garage-door{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;margin-bottom:1.5rem;transition:background-color .3s ease,border-color .3s ease;max-width:min(22rem,100%);width:100%;min-width:0;position:relative;box-sizing:border-box;overflow:hidden}.dashboard-garage-door__close-button{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:50%;color:#6b7280;font-size:1.5rem;font-weight:300;line-height:1;cursor:pointer;z-index:10;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;padding:0;margin:0}.dashboard-garage-door__close-button:hover{background:#0000001a;border-color:#0003;color:#374151;transform:scale(1.1)}.dashboard-garage-door__title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.dashboard-garage-door__content{display:flex;flex-direction:column;gap:1rem}.dashboard-garage-door__status{font-size:.875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.dashboard-garage-door__visualization{position:relative;width:100%;height:200px;background:linear-gradient(180deg,#1e293b99,#0f172acc);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;border:1px solid rgba(255,255,255,.1);transition:transform .2s ease,box-shadow .2s ease}.dashboard-garage-door__visualization:hover{transform:translateY(-2px);box-shadow:0 20px 40px #0000004d}.dashboard-garage-door__visualization:active{transform:translateY(0)}.dashboard-garage-door__visualization--toggle-feedback .dashboard-garage-door-overlay{opacity:0}.dashboard-garage-door__visualization--toggle-feedback-sending{cursor:wait}.dashboard-garage-door__visualization--toggle-feedback-sending:hover{transform:none;box-shadow:0 12px 28px #00000040}.dashboard-garage-door-toggle-hud{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;background:#ffffffe0;border:1px solid rgba(148,163,184,.45);backdrop-filter:blur(10px);box-shadow:0 8px 24px #0003;pointer-events:none}.dashboard-garage-door-toggle-hud__label{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.dashboard-garage-door-toggle-hud--success{background:#f0fdf4eb;border-color:#22c55e80;box-shadow:0 8px 24px #16a34a33}.dashboard-garage-door-toggle-hud--success .dashboard-garage-door-toggle-hud__label{color:#15803d}.dashboard-garage-door-toggle-hud__check{display:flex;flex-shrink:0;color:#16a34a}.dashboard-garage-door-toggle-hud__spinner{flex-shrink:0;width:1.125rem;height:1.125rem;border:2px solid rgba(148,163,184,.4);border-top-color:#334155f2;border-radius:50%;animation:dashboard-garage-door-toggle-spin .65s linear infinite}@keyframes dashboard-garage-door-toggle-spin{to{transform:rotate(360deg)}}.dashboard-garage-door-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;transform-origin:top center;transition:transform 15s cubic-bezier(.4,0,.2,1);z-index:2}.dashboard-garage-door-container--open{transform:translateY(-100%)}.dashboard-garage-door-segment{flex:1;background:linear-gradient(180deg,#fff,#f8fafc,#f1f5f9);border-bottom:2px solid rgba(0,0,0,.1);border-top:1px solid rgba(255,255,255,.3);position:relative;transform-origin:top center;transition:transform 15s cubic-bezier(.4,0,.2,1)}.dashboard-garage-door-segment--1{background:linear-gradient(180deg,#fff 0% 50%,#f8fafc)}.dashboard-garage-door-segment--2{background:linear-gradient(180deg,#fff,#f8fafc,#f1f5f9)}.dashboard-garage-door-segment--3{background:linear-gradient(180deg,#f8fafc,#f1f5f9,#e2e8f0)}.dashboard-garage-door-segment--4{background:linear-gradient(180deg,#f1f5f9,#e2e8f0,#cbd5e1)}.dashboard-garage-door-segment--5{background:linear-gradient(180deg,#e2e8f0,#cbd5e1,#94a3b8)}.dashboard-garage-door-segment--6{background:linear-gradient(180deg,#cbd5e1,#94a3b8,#64748b)}.dashboard-garage-door-container--opening .dashboard-garage-door-segment{transform:rotateX(-90deg)}.dashboard-garage-door-container--closing .dashboard-garage-door-segment{transform:rotateX(0)}.dashboard-garage-interior{position:absolute;bottom:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,#0f172a66,#1e293b99,#334155cc);display:flex;align-items:flex-end;justify-content:center;padding-bottom:1.5rem;opacity:1;pointer-events:auto;z-index:1}.dashboard-tesla-model-y{width:70%;height:auto;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(0,0,0,.5));opacity:0;transform:translateY(1.25rem) scale(.96);transition:opacity 5s ease,transform 5s ease}.dashboard-tesla-model-y--visible{opacity:1;transform:translateY(0) scale(1)}.dashboard-tesla-model-y--entering{animation:dashboard-tesla-enter 5s ease forwards}.dashboard-tesla-model-y--leaving{animation:dashboard-tesla-leave 5s ease forwards}@keyframes dashboard-tesla-enter{0%{opacity:0;transform:translateY(2.5rem) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dashboard-tesla-leave{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(2.5rem) scale(.9)}}.dashboard-garage-door-overlay{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:#0009;backdrop-filter:blur(8px);padding:.5rem 1rem;border-radius:999px;opacity:0;transition:opacity .3s ease;pointer-events:none}.dashboard-garage-door__visualization:hover .dashboard-garage-door-overlay{opacity:1}.dashboard-garage-door-hint{color:#ffffffe6;font-size:.85rem;font-weight:500;white-space:nowrap}.camera-lightbox__backdrop{position:fixed;inset:0;background:#0f172ad9;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:2000;animation:none}.camera-lightbox__container.lg-surface{width:100%;max-width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:none}.camera-lightbox__container>.lg-surface__content{display:flex;flex-direction:column;min-height:0;max-height:90vh}.camera-lightbox__header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);gap:1rem;background:transparent;backdrop-filter:none}.camera-lightbox__container--video .camera-lightbox__header,.camera-lightbox__container:has(.camera-lightbox__image-wrapper--video) .camera-lightbox__header{background:#0000004d!important;backdrop-filter:none!important;border-bottom:1px solid rgba(255,255,255,.05)!important}.camera-lightbox__title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.camera-lightbox__close{border:none;background:transparent;color:var(--text-secondary);font-size:1.5rem;font-weight:300;cursor:pointer;padding:.5rem;line-height:1;border-radius:var(--radius-sm);transition:all .2s ease;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center}.camera-lightbox__close:hover,.camera-lightbox__close:focus-visible{background:#ef444426;color:var(--accent-red, #dc2626);outline:none}.camera-lightbox__content{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:1.5rem;width:100%}.camera-lightbox__image-wrapper{position:relative;width:100%;height:100%;max-height:calc(90vh - 200px);display:flex;align-items:center;justify-content:center;background:transparent;border-radius:var(--radius-md);overflow:hidden}.camera-lightbox__image-wrapper--video{position:relative;width:100%;height:100%;background:#000!important;background-color:#000!important;background-image:none!important;padding:0!important;display:flex;align-items:center;justify-content:center;filter:none!important;-webkit-filter:none!important;isolation:isolate}.camera-lightbox__image-wrapper--video .camera-lightbox__video{position:relative;width:100%;height:100%;object-fit:contain;display:block;background:#000!important;opacity:1!important;filter:none!important;-webkit-filter:none!important;mix-blend-mode:normal!important;transform:none!important;isolation:isolate}.camera-lightbox__container--video,.camera-lightbox__container:has(.camera-lightbox__image-wrapper--video){background:transparent!important;backdrop-filter:none!important;box-shadow:none!important;border:none!important;--glass-bg: transparent !important;--glass-border: transparent !important;--glass-shadow: none !important}.camera-lightbox__content--video,.camera-lightbox__content:has(.camera-lightbox__image-wrapper--video){background:transparent!important;padding:0!important;background-color:transparent!important;background-image:none!important}.camera-lightbox__backdrop--video{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;z-index:2000;padding:0;margin:0}.camera-lightbox__video--direct{width:auto;height:auto;max-width:100vw;max-height:100vh;object-fit:contain;display:block;background:#000}.camera-lightbox__close--video{position:fixed;top:1rem;right:1rem;z-index:2001;border:none;background:#0009;backdrop-filter:blur(8px);color:#fff;font-size:1.5rem;font-weight:300;cursor:pointer;padding:.75rem 1rem;line-height:1;border-radius:8px;width:auto;height:auto;transition:all .2s ease}.camera-lightbox__close--video:hover,.camera-lightbox__close--video:focus-visible{background:#ef4444cc;outline:2px solid rgba(255,255,255,.3);outline-offset:2px}.camera-lightbox__nav--video{position:fixed;top:50%;transform:translateY(-50%);z-index:2001;border:none;background:#0009;backdrop-filter:blur(8px);color:#fff;font-size:2rem;font-weight:300;cursor:pointer;padding:1rem 1.25rem;border-radius:8px;width:auto;height:auto;transition:all .2s ease}.camera-lightbox__nav--video:hover,.camera-lightbox__nav--video:focus-visible{background:#ffffffe6;color:#000;outline:2px solid rgba(255,255,255,.3);outline-offset:2px}.camera-lightbox__nav--video-prev{left:1rem}.camera-lightbox__nav--video-next{right:1rem}.camera-lightbox__video-counter{position:fixed;top:1rem;left:1rem;z-index:2001;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;background:#0009;backdrop-filter:blur(8px);color:#fff;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:600}.camera-lightbox__video-meta{font-weight:500;opacity:.95}.camera-lightbox__error--video{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#dc2626eb;color:#fff;padding:1.5rem 2rem;border-radius:8px;z-index:2001;text-align:center;max-width:min(90vw,22rem)}.camera-lightbox__error--video p{margin:0}.camera-lightbox__error-hint{margin-top:.5rem!important;font-size:.9rem;opacity:.9}.camera-lightbox__error-close{margin-top:1rem;border:1px solid rgba(255,255,255,.45);background:#ffffff26;color:#fff;border-radius:8px;padding:.45rem 1rem;cursor:pointer}.camera-lightbox__error-close:hover{background:#ffffff40}.camera-lightbox__image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.camera-lightbox__video{max-width:100%;max-height:100%;width:100%;height:auto;display:block;border-radius:0;background:#000;opacity:1!important;filter:brightness(1) contrast(1) saturate(1)!important;-webkit-filter:brightness(1) contrast(1) saturate(1)!important;mix-blend-mode:normal!important}.camera-lightbox__video::-webkit-media-controls-enclosure{background:transparent;opacity:1!important}.camera-lightbox__video::-webkit-media-controls-panel{background:#000000bf!important;opacity:1!important;display:flex!important;mix-blend-mode:normal!important}.camera-lightbox__video::-webkit-media-controls-play-button,.camera-lightbox__video::-webkit-media-controls-current-time-display,.camera-lightbox__video::-webkit-media-controls-time-remaining-display,.camera-lightbox__video::-webkit-media-controls-timeline,.camera-lightbox__video::-webkit-media-controls-volume-slider,.camera-lightbox__video::-webkit-media-controls-mute-button,.camera-lightbox__video::-webkit-media-controls-fullscreen-button{color:#fff;opacity:1!important;display:block!important}.camera-lightbox__video::--media-controls{display:block!important}.camera-lightbox__loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000080}.camera-lightbox__spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--accent-blue, #2563eb);border-radius:50%;animation:camera-lightbox-spin 1s linear infinite}@keyframes camera-lightbox-spin{to{transform:rotate(360deg)}}.camera-lightbox__error{padding:2rem;text-align:center;color:var(--accent-red, #dc2626)}.camera-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);border:none;background:#ffffffe6;backdrop-filter:blur(10px);color:var(--text-primary);font-size:2rem;font-weight:300;cursor:pointer;padding:1rem 1.25rem;border-radius:var(--radius-md);box-shadow:0 4px 12px #0f172a33;transition:all .2s ease;z-index:10;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;line-height:1}.camera-lightbox__nav:hover,.camera-lightbox__nav:focus-visible{background:#fff;transform:translateY(-50%) scale(1.1);box-shadow:0 6px 16px #0f172a4d;outline:none}.camera-lightbox__nav:active{transform:translateY(-50%) scale(1.05)}.camera-lightbox__nav--prev{left:1.5rem}.camera-lightbox__nav--next{right:1.5rem}.camera-lightbox__footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;gap:1rem}.camera-lightbox__timestamp{font-size:.875rem;color:var(--text-secondary);margin:0}.camera-lightbox__hint{font-size:.75rem;color:var(--text-tertiary);margin:0}@media(max-width:768px){.camera-lightbox__container{max-width:100%;max-height:100vh;border-radius:0;margin:0}.camera-lightbox__content{padding:1rem}.camera-lightbox__nav{width:2.5rem;height:2.5rem;font-size:1.5rem;padding:.75rem}.camera-lightbox__nav--prev{left:.5rem}.camera-lightbox__nav--next{right:.5rem}.camera-lightbox__footer{flex-direction:column;align-items:flex-start;gap:.5rem}}.dashboard-einfahrt{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;margin-bottom:1.5rem;transition:background-color .3s ease,border-color .3s ease;max-width:100%;width:100%;position:relative}@media(min-width:768px){.dashboard-einfahrt{max-width:calc(100vw * 1.42857 * .7 - 3rem)}}@media(min-width:1024px){.dashboard-einfahrt{max-width:350px}}.dashboard-einfahrt__title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.dashboard-einfahrt__title--link{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.dashboard-einfahrt__title--link:hover{opacity:.8;transform:translate(2px)}.dashboard-einfahrt__title--link:active{opacity:.7;transform:translate(1px)}.dashboard-einfahrt__content{display:flex;flex-direction:column;gap:1rem}.dashboard-einfahrt__live-view{position:relative;width:100%;aspect-ratio:16 / 9;background:#0003;border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(255,255,255,.1)}.dashboard-einfahrt__stream{width:100%;height:100%;object-fit:cover;display:block}.dashboard-einfahrt__gallery{display:flex;gap:.75rem;width:100%}.dashboard-einfahrt__thumbnail{position:relative;flex:1;aspect-ratio:16 / 9;border:none;background:#0003;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;padding:0;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.dashboard-einfahrt__thumbnail:hover{background:#0000004d;border-color:#fff3;box-shadow:0 4px 12px #0f172a26}.dashboard-einfahrt__thumbnail:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.dashboard-einfahrt__thumbnail-video-wrapper{position:relative;width:100%;height:100%}.dashboard-einfahrt__thumbnail-video{width:100%;height:100%;object-fit:cover;display:block}.dashboard-einfahrt__thumbnail-play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.9;transition:opacity .2s ease,transform .2s ease}.dashboard-einfahrt__thumb-chip{position:absolute;left:.35rem;bottom:.35rem;z-index:2;display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;padding:.18rem .5rem;border-radius:999px;color:#f8fafc;background:#0f172abf;border:1px solid rgba(56,189,248,.45)}.dashboard-einfahrt__thumb-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;flex:0 0 auto}.dashboard-einfahrt__thumbnail:hover .dashboard-einfahrt__thumbnail-play-overlay{opacity:1;transform:translate(-50%,-50%) scale(1.1)}.dashboard-einfahrt__thumbnail-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 100%);padding:.5rem;display:flex;align-items:flex-end;justify-content:flex-start}.dashboard-einfahrt__thumbnail-time{color:#fffffff2;font-size:.75rem;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5)}.dashboard-einfahrt__gallery-loading{padding:1rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.dashboard-doorbell{position:relative;display:flex;align-items:center;justify-content:center;min-height:10rem;box-sizing:border-box}.dashboard-doorbell__stage{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:8.5rem}.dashboard-doorbell__icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;opacity:.85}@keyframes klingel-icon-rainbow{0%{color:#ef4444;opacity:1}20%{color:#f97316;opacity:.55}40%{color:#facc15;opacity:1}60%{color:#22c55e;opacity:.55}80%{color:#3b82f6;opacity:1}to{color:#ef4444;opacity:1}}.dashboard-doorbell__icon--ringing{animation:klingel-icon-rainbow 1.5s linear infinite;filter:drop-shadow(0 0 10px currentColor)}@media(prefers-reduced-motion:reduce){.dashboard-doorbell__icon--ringing{animation:none;color:#3b82f6;opacity:.85;filter:drop-shadow(0 0 4px currentColor)}}.dashboard-doorbell__foreground{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;padding:.5rem .75rem;max-width:100%}.dashboard-doorbell__text{font-size:.95rem;font-weight:500;color:var(--sm-text-primary, rgba(0, 0, 0, .85));line-height:1.3;text-shadow:0 0 8px var(--sm-panel-bg, #fff),0 0 4px var(--sm-panel-bg, #fff)}.dashboard-doorbell__time{font-size:1.25rem;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--sm-text-primary, rgba(0, 0, 0, .9));text-shadow:0 0 8px var(--sm-panel-bg, #fff),0 0 4px var(--sm-panel-bg, #fff)}.dashboard-cat{position:relative;display:flex;align-items:center;justify-content:center;min-height:10rem;box-sizing:border-box}.dashboard-cat__stage{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:8.5rem}.dashboard-cat__icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;opacity:.85}@keyframes cat-icon-rainbow{0%{color:#ef4444;opacity:1}20%{color:#f97316;opacity:.55}40%{color:#facc15;opacity:1}60%{color:#22c55e;opacity:.55}80%{color:#3b82f6;opacity:1}to{color:#ef4444;opacity:1}}.dashboard-cat__icon--active{animation:cat-icon-rainbow 1.5s linear infinite;filter:drop-shadow(0 0 10px currentColor)}@media(prefers-reduced-motion:reduce){.dashboard-cat__icon--active{animation:none;color:#3b82f6;opacity:.85;filter:drop-shadow(0 0 4px currentColor)}}.dashboard-cat__foreground{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;padding:.5rem .75rem;max-width:100%}.dashboard-cat__text{font-size:.95rem;font-weight:500;color:var(--sm-text-primary, rgba(0, 0, 0, .85));line-height:1.3;text-shadow:0 0 8px var(--sm-panel-bg, #fff),0 0 4px var(--sm-panel-bg, #fff)}.dashboard-cat__time{font-size:1.25rem;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--sm-text-primary, rgba(0, 0, 0, .9));text-shadow:0 0 8px var(--sm-panel-bg, #fff),0 0 4px var(--sm-panel-bg, #fff)}.weather-hourly-chart{--weather-hourly-day-background: rgba(148, 163, 184, .07);--weather-hourly-night-background: rgba(59, 130, 246, .06);display:flex;flex-direction:column;gap:1rem;padding:1.75rem}.weather-hourly-chart__header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;align-items:flex-end}.weather-hourly-chart__header--external{margin-bottom:.5rem}.weather-hourly-chart__eyebrow{margin:0;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600}.weather-hourly-chart__title{margin:.2rem 0 0;font-size:1.6rem;color:var(--text-primary)}.weather-hourly-chart__legend{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.95rem;color:var(--text-secondary)}.weather-hourly-chart__legend-item{display:inline-flex;align-items:center;gap:.45rem}.weather-hourly-chart__legend-dot{width:10px;height:10px;border-radius:999px;display:inline-flex}.weather-hourly-chart__legend-dot--temp{background:var(--pv-solar-color-strong)}.weather-hourly-chart__legend-dot--wind{background:var(--accent-blue)}.weather-hourly-chart__legend-pill{width:22px;height:8px;border-radius:8px;background:linear-gradient(90deg,var(--pv-consumption-color-strong) 0%,rgba(6,182,212,.35) 100%);display:inline-flex}.weather-hourly-chart__body{position:relative;min-height:220px}.weather-hourly-chart:not(.liquid-glass-panel) .weather-hourly-chart__body{min-height:140px}.weather-hourly-chart__empty{border-radius:var(--radius-md);border:1px dashed var(--glass-border);padding:1.25rem;text-align:center;color:var(--text-secondary)}.weather-hourly-chart__tooltip{background:#0f172aeb;color:#f8fafc;padding:.9rem 1.1rem;border-radius:var(--radius-md);box-shadow:0 18px 35px #0f172a73;font-size:.9rem;display:flex;flex-direction:column;gap:.35rem}.weather-hourly-chart__tooltip-title{font-weight:600;margin-bottom:.2rem}.weather-hourly-chart__tooltip-row{display:flex;justify-content:space-between;gap:1rem}.weather-hourly-chart__footer{display:flex;gap:1rem;flex-wrap:wrap;font-size:.9rem;color:var(--text-secondary)}.weather-hourly-chart__day-label{padding:.2rem .75rem;border-radius:999px;background:#94a3b82e}.weather-hourly-chart:not(.liquid-glass-panel){padding:.75rem .5rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg)}@media(min-width:1440px){.weather-hourly-chart{padding:2rem}.weather-hourly-chart:not(.liquid-glass-panel){padding:.75rem .5rem}}.dashboard-weather-card{display:flex;flex-direction:column;gap:.5rem}.dashboard-weather-card__header{display:flex}.dashboard-weather-card__title{margin:0;height:0;width:0;overflow:hidden;text-indent:-9999px}.dashboard-weather-card__status{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.dashboard-weather-card__status-text{margin:0;color:var(--text-secondary);font-size:.95rem}.dashboard-weather-card__pill{padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;background:#3b82f626;color:#1d4ed8}.dashboard-weather-card__pill--error{background:#dc262626;color:#b91c1c}.dashboard-weather-card__chart{border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg);padding:.75rem .5rem;min-height:150px;margin-top:.3rem}.dashboard-weather-card__timeline-empty{font-size:.9rem;color:var(--text-secondary)}.dashboard-weather-card__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:0}.dashboard-weather-card__tooltip{padding:.5rem .75rem;background:#0f172ae6;color:#f8fafc;border-radius:var(--radius-sm);font-size:.85rem;box-shadow:0 12px 30px #0f172a40}.dashboard-weather-card__tooltip-title{font-weight:600;margin-bottom:.25rem}.dashboard-weather-card__tooltip-row{display:flex;justify-content:space-between;gap:.75rem}.dashboard-weather-card__hourly{margin-top:.5rem;width:100%}@keyframes thunder-flash{0%,99%{opacity:1;filter:brightness(1);transform:scale(1)}49%,51%{opacity:1;filter:brightness(1.8);transform:scale(1.02)}50%{opacity:1;filter:brightness(2);transform:scale(1.03)}}.value-card--thunderstorm{position:relative;animation:none}.value-card--thunderstorm:before{display:none}@keyframes rain-shimmer{0%{background-position:0% 0%}to{background-position:0% 100%}}.value-card--rain-light,.value-card--rain-moderate,.value-card--rain-heavy,.value-card--rain-violent{position:relative;overflow:hidden}.value-card--rain-light:after,.value-card--rain-moderate:after,.value-card--rain-heavy:after,.value-card--rain-violent:after{display:none}@keyframes hail-pulse{0%,99%{transform:scale(1);filter:brightness(1);box-shadow:inherit}49%,51%{transform:scale(1.015);filter:brightness(1.3);box-shadow:0 0 20px #fff6}50%{transform:scale(1.02);filter:brightness(1.4);box-shadow:0 0 25px #ffffff80}}.value-card--hail{animation:none}@keyframes storm-wind{0%,to{transform:translate(0)}25%{transform:translate(-1px)}75%{transform:translate(1px)}}.value-card--storm{animation:none}.value-card--storm-with-rain{animation:none;position:relative;overflow:hidden}.value-card--storm-with-rain:after{display:none}.value-card--orkan-with-rain{animation:none;position:relative;overflow:hidden}.value-card--orkan-with-rain:after{display:none}.trash-icon{display:block}.trash-icon__recycle{animation:trashIconPulse 2s ease-in-out infinite}@keyframes trashIconPulse{0%,to{opacity:.6}50%{opacity:.9}}@media(prefers-reduced-motion:reduce){.trash-icon__recycle{animation:none}}.trash-schedule-alert-card{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;margin-bottom:1.5rem;transition:background-color .3s ease,border-color .3s ease;max-width:100%;width:100%;position:relative;background:linear-gradient(135deg,#f9731626,#f9731614);border:2px solid rgba(249,115,22,.4)}@media(min-width:768px){.trash-schedule-alert-card{max-width:calc(100vw * 1.42857 * .7 - 3rem)}}@media(min-width:1024px){.trash-schedule-alert-card{max-width:350px}}.trash-schedule-alert-card__close-button{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:50%;color:#6b7280;font-size:1.5rem;font-weight:300;line-height:1;cursor:pointer;z-index:10;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease;padding:0;margin:0}.trash-schedule-alert-card__close-button:hover{background:#dc26261a;border-color:#dc26264d;color:#dc2626;transform:scale(1.1)}.trash-schedule-alert-card__close-button:active{transform:scale(.95)}.trash-schedule-alert-card__close-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.trash-schedule-alert-card__title{margin:0;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;text-align:center;color:#f97316e6}.trash-schedule-alert-card__title--link{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.trash-schedule-alert-card__title--link:hover{opacity:.8;transform:translate(2px)}.trash-schedule-alert-card__title--link:active{opacity:.7;transform:translate(1px)}.trash-schedule-alert-card__content{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.trash-schedule-alert-card__icon-wrapper{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%}.trash-schedule-alert-card__info{flex:1;display:flex;flex-direction:column;gap:.375rem;width:100%;align-items:center}.trash-schedule-alert-card__status{display:flex;align-items:baseline;justify-content:center;gap:.75rem;width:100%}.trash-schedule-alert-card__status-label{font-size:.95rem;font-weight:600;color:var(--text-secondary, #4b5563)}.trash-schedule-alert-card__status-value{font-size:1.1rem;font-weight:700;color:#f97316e6}.trash-schedule-alert-card__details{display:grid;grid-template-columns:1fr;gap:1rem;width:100%;max-width:400px}.trash-schedule-alert-card__detail{display:flex;flex-direction:column;gap:.25rem;align-items:center;text-align:center}.trash-schedule-alert-card__detail-label{font-size:.875rem;color:var(--text-tertiary, #6b7280);font-weight:500}.trash-schedule-alert-card__detail-value{font-size:1rem;font-weight:600;color:var(--text-primary, #1f2937)}.trash-schedule-alert-card__error{padding:.75rem 1rem;background:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:.75rem;color:#dc2626;font-size:.9rem}.appliance-card--entering{opacity:0;transform:translateY(12px) scale(.98);filter:blur(.2px);animation:applianceFadeIn .35s cubic-bezier(.4,0,.2,1) forwards}.appliance-card--exiting{opacity:0;transform:translateY(-6px) scale(.97);filter:blur(.3px);animation:applianceFadeOut .5s cubic-bezier(.4,0,.2,1) forwards}.appliance-card--visible{opacity:1;transform:translateY(0) scale(1);filter:none}.appliance-card--hidden{display:none;opacity:0;transform:translateY(0)}@keyframes applianceFadeIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes applianceFadeOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.97)}}@media(prefers-reduced-motion:reduce){.trash-schedule-alert-card{transition:none;animation:none}.appliance-card--entering,.appliance-card--exiting{transform:none;filter:none;opacity:1}.appliance-card--hidden{display:none}}@media(min-width:768px){.trash-schedule-alert-card{padding:1.5rem}.trash-schedule-alert-card__icon-wrapper{width:140px;height:140px}.trash-schedule-alert-card__icon-wrapper svg{width:140px;height:140px}}@media(min-width:1024px){.trash-schedule-alert-card__icon-wrapper{width:120px;height:120px}.trash-schedule-alert-card__icon-wrapper svg{width:120px;height:120px}}.device-health-alert-card{display:flex;gap:1rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem;position:relative;background:linear-gradient(135deg,#f59e0b24,#f59e0b0f);border:2px solid rgba(245,158,11,.35);border-radius:var(--radius-lg, 1rem);max-width:100%;width:100%}@media(min-width:1024px){.device-health-alert-card{max-width:350px}}.device-health-alert-card__close-button{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:50%;color:#6b7280;font-size:1.5rem;line-height:1;cursor:pointer}.device-health-alert-card__icon{color:#f59e0bf2;flex-shrink:0;padding-top:.15rem}.device-health-alert-card__content{display:flex;flex-direction:column;gap:.5rem;min-width:0}.device-health-alert-card__title{margin:0;font-size:1.1rem;font-weight:600}.device-health-alert-card__title-link{color:inherit;text-decoration:none}.device-health-alert-card__message{margin:0;color:var(--text-secondary, #4b5563);line-height:1.45}.device-health-alert-card__error{margin:0;color:#dc2626;font-size:.875rem}.device-health-alert-card__action{display:inline-flex;align-items:center;gap:.35rem;color:#f59e0bf2;text-decoration:none;font-weight:500;width:fit-content}.device-health-alert-card--entering{opacity:0;transform:translateY(8px)}.device-health-alert-card--visible{opacity:1;transform:translateY(0);transition:opacity .35s ease,transform .35s ease}.device-health-alert-card--exiting{opacity:0;transform:translateY(-8px);transition:opacity .5s ease,transform .5s ease}.anwesend-bar{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary, #4b5563);margin-bottom:1rem}.anwesend-bar__label{font-weight:500}.anwesend-bar__value{display:inline-flex;align-items:center;gap:.375rem}.anwesend-bar__value--empty{font-style:italic;opacity:.8}.anwesend-bar__icon{flex-shrink:0;color:var(--accent-blue, #2563eb)}.klingel-bar{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary, #4b5563);margin-bottom:1rem}.klingel-bar__label{font-weight:500}.klingel-bar__value{display:inline-flex;align-items:center;gap:.375rem}.klingel-bar__icon{flex-shrink:0;opacity:.9}@keyframes klingel-icon-rainbow{0%{color:#ef4444;opacity:1}20%{color:#f97316;opacity:.6}40%{color:#facc15;opacity:1}60%{color:#22c55e;opacity:.6}80%{color:#3b82f6;opacity:1}to{color:#ef4444;opacity:1}}.klingel-bar__icon--ringing{animation:klingel-icon-rainbow 1.5s linear infinite;filter:drop-shadow(0 0 4px currentColor);opacity:1}.klingel-bar--offline{color:var(--accent-red, #ef4444)}.klingel-bar--offline .klingel-bar__status--offline{font-weight:600;letter-spacing:.04em;text-transform:uppercase}.klingel-bar__icon--offline{color:var(--accent-red, #ef4444);opacity:1}@media(prefers-reduced-motion:reduce){.klingel-bar__icon--ringing{animation:none;color:#3b82f6;filter:drop-shadow(0 0 3px currentColor)}}.dashboard-haus{display:flex;flex-direction:column;gap:.75rem}.dashboard-haus__loading{text-align:center;padding:.5rem;color:var(--text-secondary);font-size:.875rem}.dashboard-haus__rooms{display:flex;flex-direction:column;gap:.5rem}.dashboard-haus__room{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem;border-radius:.5rem;background:#ffffff05;transition:background-color .2s ease}.dashboard-haus__room:hover{background:#ffffff0a}.dashboard-haus__room-name{font-size:.875rem;font-weight:500;flex:0 0 100px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-haus__room-controls{display:grid;grid-template-columns:70px 60px 2rem .5rem 2rem 2rem;align-items:center;justify-items:end;column-gap:.375rem;row-gap:0;flex-shrink:0;min-width:180px}.dashboard-haus__light-button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:.375rem;background:#ffffff1a;color:var(--text-primary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.dashboard-haus__light-button--empty{display:inline-block;width:2rem;height:2rem;visibility:hidden;flex-shrink:0}.dashboard-haus__light-button:hover:not(:disabled){background:#ffffff26;transform:scale(1.05)}.dashboard-haus__light-button:active:not(:disabled){transform:scale(.95)}.dashboard-haus__light-button:disabled{opacity:.5;cursor:not-allowed}.dashboard-haus__light-button--on{background:#fbbf2433;color:#fbbf24}.dashboard-haus__light-button--on:hover:not(:disabled){background:#fbbf244d}.dashboard-haus__light-button--off{background:#ffffff1a;color:var(--text-secondary)}.dashboard-haus__light-button--unreachable{opacity:.4;filter:grayscale(.5)}.dashboard-haus__sensor{display:flex;align-items:center;gap:.25rem;font-size:.75rem;white-space:nowrap;justify-content:flex-start;flex-shrink:0;width:100%;min-width:0;justify-self:stretch;text-align:left;font-variant-numeric:tabular-nums}.dashboard-haus__sensor-value{display:flex;align-items:center;gap:.25rem}.dashboard-haus__sensor-warning{display:flex;align-items:center;gap:.25rem;color:#d97706;font-weight:600}.dashboard-haus__sensor svg{flex-shrink:0;opacity:.7}.dashboard-haus__spacer{width:.5rem;flex-shrink:0}.dashboard-haus__window-status{width:2rem;min-width:2rem;justify-content:center}.dashboard-haus__sensor-tooltip{cursor:help}.dashboard-haus__sensor-tooltip:hover svg{opacity:.9}@keyframes dashboard-haus-cat-rainbow{0%{color:#ef4444;opacity:1}20%{color:#f97316;opacity:.6}40%{color:#facc15;opacity:1}60%{color:#22c55e;opacity:.6}80%{color:#3b82f6;opacity:1}to{color:#ef4444;opacity:1}}.dashboard-haus__cat-icon{opacity:.85}.dashboard-haus__cat-icon--present{animation:dashboard-haus-cat-rainbow 1.5s linear infinite;filter:drop-shadow(0 0 4px currentColor);opacity:1}.dashboard-haus__water-leak{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem}.dashboard-haus__water-leak-icon{transition:color .2s ease,filter .2s ease,opacity .2s ease}.dashboard-haus__water-leak-icon--ok{color:var(--text-secondary);filter:drop-shadow(0 0 3px rgba(16,185,129,.6));opacity:.9}.dashboard-haus__water-leak-icon--warning{color:#facc15;filter:drop-shadow(0 0 3px rgba(250,204,21,.6))}@keyframes dashboard-haus-water-leak-alert{0%{color:#ef4444;opacity:1}50%{color:#f87171;opacity:.6}to{color:#ef4444;opacity:1}}.dashboard-haus__water-leak-icon--alert{animation:dashboard-haus-water-leak-alert 1s ease-in-out infinite;filter:drop-shadow(0 0 4px currentColor)}.dashboard-haus__device{display:flex;align-items:center;justify-content:flex-end;width:2rem;min-width:2rem;flex-shrink:0}.dashboard-haus__device--empty{display:inline-block;width:2rem;height:1rem;visibility:hidden;flex-shrink:0}.dashboard-haus__device-button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:.375rem;background:#ffffff1a;color:var(--text-primary);cursor:pointer;transition:all .2s ease;flex-shrink:0;position:relative;overflow:hidden}.dashboard-haus__device-button:hover:not(:disabled){background:#ffffff26;transform:scale(1.05)}.dashboard-haus__device-button:active:not(:disabled){transform:scale(.95)}.dashboard-haus__device-button:disabled{opacity:.5;cursor:not-allowed}.dashboard-haus__device-button--on{background:#3b82f640;color:#3b82f6}.dashboard-haus__device-button--on:hover:not(:disabled){background:#3b82f659}.dashboard-haus__device-button--off{background:#ffffff1a;color:var(--text-secondary)}.dashboard-haus__device-button--aquarium.dashboard-haus__device-button--on{background:#3b82f640;color:#3b82f6;box-shadow:0 0 12px #3b82f659}::root [data-theme=dark] .dashboard-haus__device-button--aquarium.dashboard-haus__device-button--on{background:#3b82f64d;color:#60a5fa;box-shadow:0 0 14px #3b82f673}.dashboard-haus__device-button--aquarium.dashboard-haus__device-button--off{background:linear-gradient(135deg,#1e3a8a66,#0f172a99);border:1px solid rgba(30,58,138,.3);color:var(--text-secondary);opacity:.7}::root [data-theme=dark] .dashboard-haus__device-button--aquarium.dashboard-haus__device-button--off{background:linear-gradient(135deg,#0f172acc,#000000e6);border:1px solid rgba(30,58,138,.4);color:var(--text-tertiary)}.dashboard-haus__device-button--tv.dashboard-haus__device-button--on{background:#3b82f640;color:#3b82f6}.dashboard-haus__device-button--tv-active{color:var(--accent-blue);box-shadow:0 0 12px currentColor}.dashboard-haus__device-button--tv-active .dashboard-haus__device-icon{filter:drop-shadow(0 0 6px currentColor)}.dashboard-haus__device-button--tv-active{--tv-screen-glow-color: var(--glass-highlight);--tv-screen-glow-shadow: var(--accent-blue)}:root[data-theme=dark] .dashboard-haus__device-button--tv-active{--tv-screen-glow-color: var(--text-primary);--tv-screen-glow-shadow: var(--text-primary)}.dashboard-haus__device-button--lan-host.dashboard-haus__device-button--on{color:var(--accent-green, #10b981)}.dashboard-haus__device-button--lan-host.dashboard-haus__device-button--off{color:var(--text-secondary)}.dashboard-haus__tv-screen-glow{position:absolute;width:.58rem;height:.38rem;border-radius:.12rem;background:var(--tv-screen-glow-color);opacity:.92;box-shadow:0 0 8px var(--tv-screen-glow-shadow);top:50%;left:50%;transform:translate(-50%,-46%);pointer-events:none;z-index:0}.dashboard-haus__device-icon{position:relative;z-index:1}.dashboard-haus__illuminance-icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;cursor:pointer;position:relative}.dashboard-haus__illuminance-icon__underlay{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:#ffffff1a;transition:all .2s ease}:root[data-theme=dark] .dashboard-haus__illuminance-icon__underlay{background:#ffffff26}.dashboard-haus__illuminance-icon:hover .dashboard-haus__illuminance-icon__underlay{background:#fff3;transform:scale(1.1)}:root[data-theme=dark] .dashboard-haus__illuminance-icon:hover .dashboard-haus__illuminance-icon__underlay{background:#ffffff40}.dashboard-haus__illuminance-icon svg{transition:transform .2s ease}.dashboard-haus__illuminance-icon:hover svg{transform:scale(1.1)}.dashboard-page{display:flex;flex-direction:column;gap:2rem;width:100%}.dashboard-page__appliances{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:clamp(1rem,1.5vw,1.25rem);width:100%;justify-content:flex-start;justify-items:flex-start;max-width:1400px;margin:0}.dashboard-page__appliances>*{min-width:0;width:100%;max-width:min(22rem,100%);margin-bottom:0;position:relative;box-sizing:border-box}.dashboard-page__appliances>*{transition:none}.appliance-card--entering{opacity:1;transform:none;filter:none;animation:none}.appliance-card--exiting{opacity:0;transform:none;filter:none;animation:none}.appliance-card--visible{opacity:1;transform:none;filter:none}.appliance-card--hidden{display:none;opacity:0;transform:none}@media(prefers-reduced-motion:reduce){.dashboard-page__appliances>*{transition:none;animation:none}.appliance-card--entering,.appliance-card--exiting{transform:none;filter:none;opacity:1}.appliance-card--hidden{display:none}}@media(max-width:639px){.dashboard-page__appliances{grid-template-columns:1fr}}@media(min-width:768px){.dashboard-page__appliances{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(1rem,1.5vw,1.25rem)}}@media(min-width:1024px){.dashboard-page__appliances{grid-template-columns:repeat(auto-fit,minmax(380px,430px));gap:clamp(1.25rem,1.5vw,1.75rem);max-width:1500px}}.dashboard-page__header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.dashboard-page__title{font-size:2rem;font-weight:700;margin:0;letter-spacing:-.02em}.dashboard-page__subtitle{font-size:1rem;margin:0;line-height:1.6}.dashboard-page__grid{display:grid;grid-template-columns:1fr;gap:1.5rem;width:100%}.dashboard-page__section{display:flex;flex-direction:column;gap:1rem;min-height:200px}.dashboard-page__section-title{font-size:1.25rem;font-weight:600;margin:0;letter-spacing:-.01em}.dashboard-page__section-title--link{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.dashboard-page__section-title--link:hover{opacity:.8;transform:translate(2px)}.dashboard-page__section-title--link:active{opacity:.7;transform:translate(1px)}.dashboard-page__widget-link{display:block;text-decoration:none;color:inherit;cursor:pointer;border-radius:.75rem;transition:opacity .2s ease}.dashboard-page__widget-link:hover{opacity:.92}.dashboard-page__section-content{font-size:.95rem;line-height:1.6;margin:0}@media(min-width:768px){.dashboard-page__grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.dashboard-page__section{min-height:250px}}@media(min-width:1024px){.dashboard-page__grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.dashboard-page__title{font-size:2.5rem}}@media(min-width:1440px){.dashboard-page{gap:2.5rem}.dashboard-page__appliances{grid-template-columns:repeat(auto-fit,minmax(400px,440px));gap:1.75rem;max-width:1600px}.dashboard-page__grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:2rem}.dashboard-page__section{min-height:280px}.dashboard-page__section-title{font-size:1.3rem}}@media(min-width:1920px){.dashboard-page{gap:3rem}.dashboard-page__appliances{grid-template-columns:repeat(auto-fit,minmax(420px,460px));gap:2rem;max-width:1700px}.dashboard-page__grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:2.25rem}.dashboard-page__section{min-height:320px}.dashboard-page__section-title{font-size:1.35rem}}.widget-error-boundary{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1rem 0}.widget-error-boundary__message{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.widget-error-boundary__button{border:1px solid var(--sm-border);border-radius:var(--radius-sm, .5rem);padding:.5rem .9rem;background:var(--sm-bg);color:var(--text-primary);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:border-color .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1)}.widget-error-boundary__button:hover{border-color:var(--accent-blue)}.todo-page{display:flex;flex-direction:column;gap:1.5rem;max-width:52rem;margin:0 auto}.todo-page__header{display:flex;flex-direction:column;gap:.35rem}.todo-page__title{font-size:2rem;font-weight:700;margin:0;letter-spacing:-.02em}.todo-page__subtitle{font-size:.95rem;margin:0;line-height:1.5}.todo-page__panel{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem 1.35rem}.todo-page__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem}.todo-page__filters{display:inline-flex;padding:.2rem;border-radius:.65rem;background:#94a3b81f;gap:.15rem}.todo-page__filter{border:none;background:transparent;color:inherit;font-size:.875rem;font-weight:500;padding:.45rem .85rem;border-radius:.5rem;cursor:pointer;opacity:.75;transition:background .15s ease,opacity .15s ease}.todo-page__filter:hover{opacity:1}.todo-page__filter--active{background:#ffffff8c;opacity:1}.todo-page__stats-line{margin:0;font-size:.875rem}.todo-page__add-row{display:flex;gap:.5rem;align-items:stretch}.todo-page__add-input{flex:1;min-width:0;padding:.65rem .9rem;font-size:1rem;border-radius:.65rem;border:1px solid rgba(148,163,184,.35);background:#ffffff73}.todo-page__add-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.75rem;border-radius:.65rem;border:1px solid rgba(148,163,184,.35);background:#ffffff80;cursor:pointer;color:inherit;transition:background .15s ease,opacity .15s ease}.todo-page__add-btn:hover:not(:disabled){background:#ffffffbf}.todo-page__add-btn:disabled{opacity:.45;cursor:not-allowed}.todo-page__loading,.todo-page__empty,.todo-page__section-empty{text-align:center;padding:1.25rem .5rem;font-size:.9rem}.todo-page__empty p{margin:0 0 .75rem}.todo-page__empty-cta{border:none;background:none;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:underline;color:inherit;padding:0}.todo-page__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.todo-page__row{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem .75rem;align-items:start;padding:.65rem .75rem}.todo-page__row--done{opacity:.72}.todo-page__row--done .todo-page__title-input{text-decoration:line-through}.todo-page__check{display:flex;align-items:flex-start;padding-top:.35rem;cursor:pointer}.todo-page__check input{width:1.15rem;height:1.15rem;cursor:pointer}.todo-page__row-main{display:flex;flex-direction:column;gap:.4rem;min-width:0}.todo-page__title-input{width:100%;border:none;background:transparent;font-size:1rem;font-weight:500;line-height:1.45;padding:.25rem 0}.todo-page__title-input:focus{outline:none}.todo-page__due-row{display:flex;align-items:center}.todo-page__date-input{font-size:.875rem;padding:.35rem .5rem;border-radius:.45rem;border:1px solid rgba(148,163,184,.35);background:#fff6}.todo-page__row-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.2rem;max-width:11rem}.todo-page__due-chip{min-height:1.5rem;display:inline-flex;align-items:center;font-size:.8rem}.todo-page__due-chip--overdue .todo-page__due-chip-btn{font-weight:600;color:#b45309}.todo-page__due-chip-btn{border:none;background:#94a3b826;border-radius:.35rem;padding:.2rem .45rem;font-size:.8rem;cursor:pointer;color:inherit}.todo-page__icon-btn{display:flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border:none;border-radius:.45rem;background:transparent;color:inherit;cursor:pointer;opacity:.65;transition:opacity .15s ease,background .15s ease}.todo-page__icon-btn:hover:not(:disabled){opacity:1;background:#94a3b81f}.todo-page__icon-btn:disabled{opacity:.25;cursor:not-allowed}.todo-page__icon-btn--danger:hover:not(:disabled){opacity:1;color:#b91c1c}.todo-page__reorder{display:inline-flex;flex-direction:column;gap:0}.todo-page__done-block{margin-top:.5rem;padding-top:1rem;border-top:1px solid rgba(148,163,184,.25)}.todo-page__done-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.todo-page__done-title{font-size:1rem;font-weight:600;margin:0}.todo-page__clear-done{border:none;background:none;font-size:.85rem;cursor:pointer;text-decoration:underline;color:inherit;opacity:.75;padding:0}.todo-page__clear-done:hover{opacity:1}@media(max-width:640px){.todo-page__row{grid-template-columns:auto 1fr}.todo-page__row-meta{grid-column:1 / -1;justify-content:flex-start;max-width:none}}.einkaufen-page{display:flex;flex-direction:column;gap:2rem}.einkaufen-page__header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.einkaufen-page__title{font-size:2rem;font-weight:700;margin:0;letter-spacing:-.02em}.einkaufen-page__subtitle{font-size:1rem;margin:0;line-height:1.6}.einkaufen-page__container{display:flex;flex-direction:column;gap:1.5rem}.einkaufen-page__list{display:flex;flex-direction:column;gap:1.5rem;flex:2;min-height:400px;transition:none}.einkaufen-page__list:hover{transform:none}.einkaufen-page__list-header{display:flex;justify-content:space-between;align-items:center}.einkaufen-page__list-title{font-size:1.5rem;font-weight:600;margin:0;letter-spacing:-.01em}.einkaufen-page__list-items{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;list-style:none;padding:0;margin:0}.einkaufen-page__list-loading,.einkaufen-page__list-error{text-align:center;padding:3rem 2rem;display:flex;flex-direction:column;gap:.5rem}.einkaufen-page__list-loading p,.einkaufen-page__list-error p{margin:0;font-size:.95rem;line-height:1.6}.einkaufen-page__list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .2s ease;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.einkaufen-page__list-item:hover{background:var(--glass-bg-hover);border-color:var(--accent-blue);box-shadow:0 4px 12px #0f172a26;transform:translateY(-2px)}.einkaufen-page__list-item:active{transform:translateY(0);box-shadow:var(--glass-shadow)}.einkaufen-page__list-item--processing{opacity:.6;pointer-events:none;animation:pulse .6s ease-in-out}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(.98)}}.einkaufen-page__list-item--glow-add{animation:glow-green 1.5s ease-out}.einkaufen-page__list-item--glow-remove{animation:glow-red 1.5s ease-out}@keyframes glow-green{0%{box-shadow:0 0 #10b98100;border-color:var(--glass-border)}50%{box-shadow:0 0 20px 8px #10b98199;border-color:#10b981cc;background:#10b9811a}to{box-shadow:0 0 #10b98100;border-color:var(--glass-border)}}@keyframes glow-red{0%{box-shadow:0 0 #dc262600;border-color:var(--glass-border);opacity:1;transform:scale(1)}30%{box-shadow:0 0 20px 8px #dc262699;border-color:#dc2626cc;background:#dc26261a}70%{opacity:.5;transform:scale(.95)}to{opacity:0;transform:scale(.9);box-shadow:0 0 #dc262600}}.einkaufen-page__item-content{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.einkaufen-page__item-action{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--glass-bg-hover);border:1px solid var(--glass-border);flex-shrink:0;transition:all .2s ease}.einkaufen-page__list-item:hover .einkaufen-page__item-action{background:var(--accent-blue);border-color:var(--accent-blue);transform:scale(1.1)}.einkaufen-page__item-action-icon{font-size:1.25rem;font-weight:600;line-height:1;color:var(--text-primary);transition:color .2s ease}.einkaufen-page__list-item:hover .einkaufen-page__item-action-icon{color:#fff}.einkaufen-page__item-name{font-size:.9375rem;font-weight:600;line-height:1.4;margin:0;letter-spacing:-.01em}.einkaufen-page__item-note{font-size:.8125rem;line-height:1.3;margin:0;opacity:.7}.einkaufen-page__list-empty{text-align:center;padding:3rem 2rem;display:flex;flex-direction:column;gap:.5rem}.einkaufen-page__list-empty p{margin:0;font-size:.95rem;line-height:1.6}.einkaufen-page__add-section{display:flex;flex-direction:column;gap:1.5rem;flex:2;min-height:200px;transition:none}.einkaufen-page__add-section:hover{transform:none}.einkaufen-page__add-section--collapsed{min-height:auto;gap:0}.einkaufen-page__add-section--collapsed .einkaufen-page__add-content{display:none}.einkaufen-page__add-header-wrapper{display:flex;justify-content:space-between;align-items:center}.einkaufen-page__add-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:0;background:transparent;border:none;cursor:pointer;transition:opacity .2s ease}.einkaufen-page__add-header:hover{opacity:.8}.einkaufen-page__add-title{font-size:1.5rem;font-weight:600;margin:0;letter-spacing:-.01em}.einkaufen-page__add-toggle{font-size:.875rem;opacity:.7;transition:transform .3s ease}.einkaufen-page__add-content{display:flex;flex-direction:column;gap:1.5rem;padding-top:.5rem}.einkaufen-page__recent-section{display:flex;flex-direction:column;gap:.75rem}.einkaufen-page__recent-title{font-size:.9375rem;font-weight:600;margin:0;opacity:.8}.einkaufen-page__recent-items{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;list-style:none;padding:0;margin:0}.einkaufen-page__input-form{display:flex;flex-direction:column;gap:.75rem}.einkaufen-page__input-wrapper{position:relative}.einkaufen-page__input{width:100%;padding:.875rem 1rem;border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);font-size:.9375rem;color:var(--text-primary);transition:all .2s ease}.einkaufen-page__input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #2563eb1a}.einkaufen-page__input::placeholder{color:var(--text-secondary);opacity:.6}.einkaufen-page__suggestions{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);z-index:10;max-height:300px;overflow-y:auto}.einkaufen-page__suggestions-list{list-style:none;padding:.25rem;margin:0}.einkaufen-page__suggestion-item{padding:.75rem 1rem;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s ease}.einkaufen-page__suggestion-item:hover{background:var(--glass-bg-hover)}.einkaufen-page__submit-button{padding:.875rem 1.5rem;border-radius:var(--radius-md);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);font-size:.9375rem;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .2s ease;align-self:flex-start}.einkaufen-page__submit-button:hover{background:var(--glass-bg-hover);border-color:var(--accent-blue);transform:translateY(-1px)}.einkaufen-page__submit-button:active{transform:translateY(0)}@media(min-width:768px){.einkaufen-page__list-items{grid-template-columns:repeat(3,1fr);gap:1rem}.einkaufen-page__list-item{padding:1rem 1.25rem}.einkaufen-page__item-name{font-size:1rem}.einkaufen-page__item-note{font-size:.875rem}.einkaufen-page__recent-items{grid-template-columns:repeat(3,1fr);gap:1rem}.einkaufen-page__input-form{flex-direction:row;align-items:flex-start}.einkaufen-page__input-wrapper{flex:1}}.pv-financial{gap:1.5rem}.pv-financial__header{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pv-financial__eyebrow{margin:0;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.pv-financial__title{margin:.15rem 0 0;font-size:1.3rem;font-weight:600}.pv-financial__note{margin:0;max-width:320px;font-size:.85rem}.pv-financial__table{width:100%;display:flex;flex-direction:column;border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow);overflow:hidden}.pv-financial__row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;padding:1rem 1.25rem;background:var(--glass-bg);border-bottom:1px solid var(--glass-border)}.pv-financial__row:nth-child(2n){background:var(--glass-bg-hover)}.pv-financial__row:last-child{border-bottom:none}.pv-financial__row--head{background:var(--glass-bg-hover);border-bottom:1px solid var(--glass-border-hover, var(--glass-border));font-size:.9rem;font-weight:600;color:var(--text-secondary)}.pv-financial__cell{display:flex;flex-direction:column;gap:.2rem}.pv-financial__cell--label{gap:.35rem}.pv-financial__cell--net{text-align:right;align-items:flex-end;justify-content:center}.pv-financial__label{font-weight:600;color:var(--text-primary)}.pv-financial__sub-label{font-size:.82rem;color:var(--text-secondary)}.pv-financial__value{font-weight:600;color:var(--text-primary)}.pv-financial__value--savings{color:var(--accent-green)}.pv-financial__meta{font-size:.82rem;color:var(--text-secondary)}.pv-financial__net--positive .pv-financial__value{color:var(--accent-green)}.pv-financial__net--negative .pv-financial__value{color:#dc2626}.pv-financial__net--neutral .pv-financial__value{color:var(--text-secondary)}.pv-forecast-dashboard{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;border-radius:var(--radius-lg, 1rem);min-height:0}.pv-forecast-dashboard__empty{padding:2rem;text-align:center;font-size:.95rem}.pv-forecast-dashboard__header{display:flex;flex-direction:column;gap:.25rem}.pv-forecast-dashboard__title{font-size:1.5rem;font-weight:600;margin:0}.pv-forecast-dashboard__day-label{font-size:.9rem;font-weight:400}.pv-forecast-dashboard__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.pv-forecast-dashboard__stat{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border-radius:var(--radius-md, .75rem);background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.pv-forecast-dashboard__stat-label{font-size:.85rem;font-weight:500;opacity:.8}.pv-forecast-dashboard__stat-value{font-size:1.25rem;font-weight:600;color:#fbbf24}.pv-forecast-dashboard__graph-container{display:flex;flex-direction:column;gap:.75rem}.pv-forecast-dashboard__graph-header{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.pv-forecast-dashboard__toggles{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.pv-forecast-dashboard__graph-title{font-size:1rem;font-weight:600;margin:0}.pv-forecast-dashboard__toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem;user-select:none}.pv-forecast-dashboard__toggle-input{width:1rem;height:1rem;cursor:pointer;accent-color:#fbbf24}.pv-forecast-dashboard__toggle-label{cursor:pointer;opacity:.8}.pv-forecast-dashboard__graph{width:100%;height:280px;min-height:280px;border-radius:var(--radius-md, .75rem);overflow:hidden;background:#0003;padding:.5rem}.pv-forecast-dashboard__legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;padding:0 .5rem}.pv-forecast-dashboard__legend-item{display:flex;align-items:center;gap:.5rem}.pv-forecast-dashboard__legend-item--adjusted:before{content:"";display:block;width:1rem;height:.5rem;background:linear-gradient(135deg,#fbbf24,#fbbf244d);border-radius:2px}.pv-forecast-dashboard__legend-item--theoretical:before{content:"";display:block;width:1rem;height:2px;background:#fbbf24;opacity:.6;border-top:2px dashed #fbbf24}.pv-forecast-dashboard__legend-item--live:before{content:"";display:block;width:1rem;height:2px;background:#10b981;border-radius:2px}.pv-forecast-dashboard__tooltip-value--live{color:#10b981}.pv-forecast-dashboard__tooltip{background:#0f172af2;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md, .75rem);padding:.75rem;box-shadow:0 4px 12px #0000004d;backdrop-filter:blur(8px);min-width:180px}.pv-forecast-dashboard__tooltip-title{font-size:.9rem;font-weight:600;color:#ffffffe6;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.pv-forecast-dashboard__tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem}.pv-forecast-dashboard__tooltip-row:first-of-type{margin-top:0}.pv-forecast-dashboard__tooltip-label{font-size:.8rem;color:#ffffffb3}.pv-forecast-dashboard__tooltip-value{font-size:.85rem;font-weight:600;color:#ffffffe6}.pv-forecast-dashboard__tooltip-value--adjusted{color:#fbbf24}.pv-forecast-dashboard__tooltip-value--theoretical{color:#fbbf24b3}.pv-forecast-section{display:flex;flex-direction:column;gap:1.5rem;scroll-margin-top:3.5rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.pv-forecast-section__error,.pv-forecast-section__loading,.pv-forecast-section__stale{padding:1.5rem;border-radius:var(--radius-lg, 1rem);text-align:center}.pv-forecast-section__retry-button{margin-top:1rem;padding:.5rem 1rem;border-radius:var(--radius-md, .75rem);border:1px solid rgba(255,255,255,.3);background:#ffffff1a;color:var(--text-primary, #0f172a);cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease}.pv-forecast-section__retry-button:hover{background:#fff3;transform:translateY(-1px)}.pv-forecast-section__retry-button:active{transform:translateY(0)}.pv-forecast-section__content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:900px){.pv-forecast-section__content{grid-template-columns:1fr}}.pv-forecast-section__dashboard-wrapper{min-width:0}.pv-household-billing{margin-top:1rem}.pv-household-billing__header{display:flex;align-items:center}.pv-household-billing__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem;border:0;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left}.pv-household-billing__stale{margin-left:.5rem;padding:.1rem .45rem;border-radius:999px;background:#f59e0b2e;color:#b45309;font-size:.75rem;font-weight:600}.pv-household-billing__body{padding:0 1.1rem 1.1rem}.pv-household-billing__intro,.pv-household-billing__muted,.pv-household-billing__footer{color:var(--text-muted, #64748b);line-height:1.5}.pv-household-billing__meta,.pv-household-billing__table td,.pv-household-billing__table th,.pv-household-billing__grid dd{color:var(--text-primary, #0f172a)}.pv-household-billing__warning{margin:.75rem 0;padding:.65rem .8rem;border-radius:.6rem;background:#f59e0b1f;color:#92400e}.pv-household-billing__controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin:1rem 0}.pv-household-billing__datepicker{position:relative;display:grid;gap:.25rem;min-width:10.5rem}.pv-household-billing__datepicker-label{font-size:.85rem}.pv-household-billing__datepicker-trigger{min-height:2.25rem;padding:.35rem .55rem;border-radius:.5rem;border:1px solid rgba(148,163,184,.35);background:#fff;color:var(--text-primary, #0f172a);font:inherit;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;text-align:left}.pv-household-billing__datepicker-trigger:disabled{opacity:.55;cursor:not-allowed}.pv-household-billing__datepicker-trigger:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.pv-household-billing__datepicker-icon{flex-shrink:0;opacity:.72}.pv-household-billing__datepicker-popover{position:absolute;z-index:30;top:calc(100% + .35rem);left:0;padding:.65rem;border-radius:.65rem;border:1px solid rgba(148,163,184,.35);background:var(--surface-elevated, #fff);box-shadow:0 10px 28px #0f172a29}.pv-household-billing__day-picker{--rdp-accent-color: #2563eb;--rdp-accent-background-color: rgba(37, 99, 235, .14);--rdp-day-height: 2rem;--rdp-day-width: 2rem;--rdp-day_button-height: 1.9rem;--rdp-day_button-width: 1.9rem;--rdp-day_button-border-radius: .35rem}.pv-household-billing__day-picker .rdp-day_button{border-radius:.35rem}.pv-household-billing__day-picker .rdp-button_next,.pv-household-billing__day-picker .rdp-button_previous{border:1px solid rgba(148,163,184,.35);border-radius:.45rem;background:#fff;color:var(--text-primary, #0f172a)}.pv-household-billing__day-picker .rdp-button_next:hover:not(:disabled):not([aria-disabled=true]),.pv-household-billing__day-picker .rdp-button_previous:hover:not(:disabled):not([aria-disabled=true]){background:#94a3b81f}.pv-household-billing__day-picker .rdp-chevron{fill:currentColor}.pv-household-billing__day-picker .rdp-month_caption,.pv-household-billing__day-picker .rdp-caption_label{color:var(--text-primary, #0f172a)}.pv-household-billing__day-picker .rdp-weekday{color:var(--text-muted, #64748b)}.pv-household-billing__day-picker .rdp-day.billing-day--available .rdp-day_button{background:#16a34a6b;border-color:#15803dd9;color:#14532d}.pv-household-billing__day-picker .rdp-day.billing-day--missing .rdp-day_button{background:#dc262666;border-color:#b91c1ce6;color:#7f1d1d}.pv-household-billing__day-picker .rdp-day.billing-day--unknown .rdp-day_button{background:#94a3b838;border-color:#64748b73;color:inherit}.pv-household-billing__day-picker .rdp-selected .rdp-day_button{background:#2563eb;border:2px solid #1d4ed8;color:#fff;box-shadow:0 0 0 2px #2563eb59}.pv-household-billing__day-picker .rdp-day_button:focus-visible{outline:2px solid #2563eb;outline-offset:1px}.pv-household-billing__datepicker-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-top:.45rem;padding-top:.45rem;border-top:1px solid rgba(148,163,184,.25);font-size:.78rem;color:var(--text-muted, #64748b)}.pv-household-billing__legend-swatch{width:.72rem;height:.72rem;border-radius:.2rem;border:1px solid transparent;display:inline-block}.pv-household-billing__legend-swatch--available{background:#16a34a8c;border-color:#15803dd9}.pv-household-billing__legend-swatch--missing{background:#dc262685;border-color:#b91c1ce6}.pv-household-billing__datepicker-footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:.45rem;padding-top:.45rem;border-top:1px solid rgba(148,163,184,.25)}.pv-household-billing__datepicker-footer button{flex:1;min-height:1.9rem;padding:.2rem .45rem;border-radius:.45rem;border:1px solid rgba(148,163,184,.35);background:#fff;color:var(--text-primary, #0f172a);font:inherit;font-size:.82rem;cursor:pointer}.pv-household-billing__datepicker-footer button:hover{background:#94a3b81f}.pv-household-billing__controls>button{min-height:2.25rem;padding:.35rem .8rem;border-radius:.5rem;border:0;background:#0f766e;color:#fff;cursor:pointer}.pv-household-billing__controls>button:disabled{opacity:.55;cursor:not-allowed}.pv-household-billing__meta{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:1rem;font-size:.9rem}.pv-household-billing__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.9rem;margin-bottom:1rem}.pv-household-billing__grid article{padding:.85rem;border-radius:.75rem;background:#ffffff59;border:1px solid rgba(148,163,184,.3)}.pv-household-billing__grid h3,.pv-household-billing__table-wrap h3{margin:0 0 .5rem;font-size:.95rem}.pv-household-billing__grid dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;font-size:.88rem}.pv-household-billing__grid dt{color:var(--text-muted, #64748b)}.pv-household-billing__grid dd{margin:0;font-weight:600}.pv-household-billing__table-wrap{overflow-x:auto;margin-bottom:1rem}.pv-household-billing__table{width:100%;border-collapse:collapse;font-size:.88rem}.pv-household-billing__table th,.pv-household-billing__table td{padding:.45rem .6rem;border-bottom:1px solid rgba(148,163,184,.25);text-align:left}.pv-household-billing__table th{color:var(--text-muted, #64748b)}.pv-household-billing__table-row--group td{padding-top:.75rem;font-weight:600;color:var(--text-primary, #0f172a);border-bottom:0}.pv-household-billing__table-row--sub td:first-child{padding-left:1.1rem}.pv-household-billing--collapsed .pv-household-billing__body{display:none}:root[data-theme=dark] .pv-household-billing__intro,:root[data-theme=dark] .pv-household-billing__muted,:root[data-theme=dark] .pv-household-billing__footer,:root[data-theme=dark] .pv-household-billing__grid dt,:root[data-theme=dark] .pv-household-billing__table th{color:#e2e8f0d1}:root[data-theme=dark] .pv-household-billing__meta,:root[data-theme=dark] .pv-household-billing__table td,:root[data-theme=dark] .pv-household-billing__grid dd,:root[data-theme=dark] .pv-household-billing__table-row--group td{color:#f8fafc}:root[data-theme=dark] .pv-household-billing__grid article{background:#94a3b838;border-color:#94a3b859}:root[data-theme=dark] .pv-household-billing__datepicker-trigger{background:#1e293bf2;border-color:#94a3b866;color:#f8fafc}:root[data-theme=dark] .pv-household-billing__datepicker-popover{background:#1e293b;border-color:#94a3b866;box-shadow:0 12px 30px #00000073}:root[data-theme=dark] .pv-household-billing__day-picker{--rdp-accent-color: #60a5fa;--rdp-accent-background-color: rgba(96, 165, 250, .18)}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-button_next,:root[data-theme=dark] .pv-household-billing__day-picker .rdp-button_previous{background:#1e293bf2;border-color:#94a3b866;color:#f8fafc}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-button_next:hover:not(:disabled):not([aria-disabled=true]),:root[data-theme=dark] .pv-household-billing__day-picker .rdp-button_previous:hover:not(:disabled):not([aria-disabled=true]){background:#94a3b833}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-month_caption,:root[data-theme=dark] .pv-household-billing__day-picker .rdp-caption_label{color:#f8fafc}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-weekday{color:#e2e8f0d1}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-day.billing-day--available .rdp-day_button{background:#22c55e61;border-color:#4ade80bf;color:#ecfdf5}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-day.billing-day--missing .rdp-day_button{background:#f871716b;border-color:#fca5a5bf;color:#fef2f2}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-day.billing-day--unknown .rdp-day_button{background:#64748b59;border-color:#94a3b88c;color:#e2e8f0}:root[data-theme=dark] .pv-household-billing__day-picker .rdp-selected .rdp-day_button{background:#3b82f6;border-color:#93c5fd;color:#fff;box-shadow:0 0 0 2px #93c5fd73}:root[data-theme=dark] .pv-household-billing__datepicker-footer button{background:#1e293bf2;border-color:#94a3b859;color:#f8fafc}:root[data-theme=dark] .pv-household-billing__datepicker-footer button:hover{background:#94a3b833}:root[data-theme=dark] .pv-household-billing__table th,:root[data-theme=dark] .pv-household-billing__table td{border-bottom-color:#94a3b857}.pv-page{display:flex;flex-direction:column;gap:1.5rem;padding:1rem}.pv-page__card{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.pv-page__card-meta{display:flex;justify-content:flex-end}.pv-page__timestamp{font-size:.9rem}.pv-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.pv-status-card{padding:1.25rem 1.5rem;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden}.pv-status-card:after{content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;background:radial-gradient(circle at top right,rgba(255,255,255,.6),transparent 55%)}.pv-status-card__helper{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.pv-status-card__value{margin:.35rem 0 0;font-size:2rem;font-weight:700;transition:color .3s ease}.pv-status-card__label{margin:.15rem 0 0;font-size:.95rem;color:var(--text-secondary)}.pv-battery-bar{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem}.pv-battery-bar__label-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--text-secondary)}.pv-battery-bar__track{position:relative;width:100%;height:44px;border-radius:var(--radius-lg);background:#94a3b833;border:1px solid rgba(148,163,184,.35);overflow:hidden;box-shadow:inset 0 1px 2px #0f172a14}.pv-battery-bar__fill{position:absolute;inset:0;width:0;border-radius:inherit;transition:width .4s ease,background .3s ease,opacity .3s ease;opacity:.95}.pv-battery-bar__label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:600;color:#0f172a;text-align:center;pointer-events:none}.pv-battery-bar--charging .pv-battery-bar__fill{background:linear-gradient(90deg,#10b981e6,#3b82f6e6)}.pv-battery-bar--discharging .pv-battery-bar__fill{background:linear-gradient(90deg,#f87171f2,#ef4444e6)}.pv-battery-bar--idle .pv-battery-bar__fill{background:#94a3b859}.pv-battery-bar--idle .pv-battery-bar__track{background:#e2e8f099;border-color:#94a3b84d}.pv-battery-bar--idle .pv-battery-bar__label{display:none}.pv-status-graph{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}.pv-status-graph__header{display:flex;justify-content:space-between;align-items:center}.pv-status-graph__title{margin:0;font-size:1rem}.pv-status-graph__legend{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.85rem;color:var(--text-secondary);align-items:center}.pv-status-graph__legend-item{display:inline-flex;align-items:center;gap:.45rem;padding:.25rem .85rem;border-radius:999px;border:1px solid var(--glass-border);background:#ffffffb3;font-weight:600;letter-spacing:.01em;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;box-shadow:0 8px 16px #0f172a14}[data-theme=dark] .pv-status-graph__legend-item{background:#0f172abf;border-color:#60a5fa66;box-shadow:0 8px 22px #02061759}.pv-status-graph__legend-item:before{content:"";width:1.1rem;height:.35rem;border-radius:999px;border:1px solid transparent;box-shadow:0 0 6px #0f172a1f}.pv-status-graph__legend-item--solar:before{background:linear-gradient(135deg,var(--pv-solar-color-strong),var(--pv-solar-color-soft));border-color:#facc15a6;box-shadow:0 0 12px var(--pv-solar-color-soft)}.pv-status-graph__legend-item--consumption:before{background:linear-gradient(135deg,var(--pv-consumption-color-strong),var(--pv-consumption-color-soft));border-color:#06b6d499;box-shadow:0 0 12px var(--pv-consumption-color-soft)}.pv-status-graph__legend-item--battery:before{background:linear-gradient(135deg,var(--pv-battery-color-strong),var(--pv-battery-color-soft));border-color:var(--pv-battery-color-strong);box-shadow:0 0 12px var(--pv-battery-color-soft)}.pv-day-overview{gap:1.5rem}.pv-day-overview__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.pv-day-overview__eyebrow{margin:0;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.pv-day-overview__title{margin:.15rem 0 0;font-size:1.4rem;font-weight:600}.pv-day-overview__timestamp{font-size:.9rem}.pv-day-overview__kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.pv-day-overview__kpi{padding:1rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow);display:flex;flex-direction:column;gap:.2rem}.pv-day-overview__kpi-label{font-size:.85rem;color:var(--text-secondary)}.pv-day-overview__kpi-value{font-size:1.2rem;font-weight:600;color:var(--text-primary)}.pv-day-overview__kpi-trend{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500}.pv-day-overview__kpi-trend-arrow{font-size:.75rem}.pv-day-overview__kpi-trend-value{font-variant-numeric:tabular-nums}.pv-day-overview__kpi-trend-label{color:var(--text-secondary);font-size:.78rem}.pv-day-overview__kpi-trend--positive{color:var(--accent-green)}.pv-day-overview__kpi-trend--negative{color:#dc2626}.pv-day-overview__kpi-trend--neutral{color:var(--text-secondary)}.pv-day-overview__graph{display:flex;flex-direction:column;gap:.75rem}.pv-day-overview__graph-header{display:flex;justify-content:space-between;align-items:baseline}.pv-day-overview__graph-title{margin:0;font-size:1.1rem}.pv-day-overview__graph-subtitle{margin:.15rem 0 0;font-size:.9rem}.pv-day-overview__graph-empty{padding:1.5rem;border-radius:var(--radius-md);border:1px dashed rgba(148,163,184,.6);text-align:center}.evcc-costs{display:flex;flex-direction:column;gap:1.5rem}.evcc-costs__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.evcc-costs__eyebrow{margin:0;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.evcc-costs__title{margin:.15rem 0 0;font-size:1.3rem;font-weight:600}.evcc-costs__tariff{margin:.5rem 0 0;font-size:.85rem;line-height:1.45}.evcc-costs__loading,.evcc-costs__error{padding:1.5rem;text-align:center;color:var(--text-secondary)}.evcc-costs__error{background:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:var(--radius-lg);color:#dc2626}.evcc-costs__periods{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.evcc-costs__period-card{padding:1.25rem;border-radius:var(--radius-lg);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--glass-shadow);text-align:center}.evcc-costs__period-label{margin:0 0 .5rem;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.evcc-costs__period-value{margin:0 0 .25rem;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.evcc-costs__period-energy{margin:0;font-size:.85rem;color:var(--text-secondary)}.evcc-costs__period-autarkie{color:var(--text-secondary);opacity:.8}.garage-door-section{padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem}.garage-door-loading{text-align:center;color:var(--text-secondary);padding:2rem}.garage-door-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}.garage-door-eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;margin:0;color:var(--text-secondary)}.garage-door-title{margin:.25rem 0 0;font-size:clamp(1.4rem,2vw,1.8rem);color:var(--text-primary)}.garage-door-preconditioning-controls{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.garage-door-preconditioning-btn{border:1px solid rgba(148,163,184,.45);background:#ffffffdb;color:var(--text-primary);border-radius:.6rem;padding:.4rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer}.garage-door-preconditioning-btn:disabled{opacity:.5;cursor:not-allowed}.garage-door-preconditioning-btn--secondary{background:#f1f5f9db}.garage-precond-climate__starting{width:min(100%,26rem);margin:0 auto;text-align:center;color:var(--text-secondary);font-size:.85rem;padding:.5rem 0 .25rem}.garage-precond-climate__ready{margin:.35rem 0 0;text-align:center;font-size:.8rem;font-weight:600;color:var(--text-secondary)}.garage-precond-climate{width:min(100%,26rem);margin:0 auto;padding:.75rem .5rem .25rem;--precond-progress: 0;--precond-scan-duration: 2.5s}.garage-precond-climate__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem}.garage-precond-climate__temp{min-width:2.75rem;text-align:center}.garage-precond-climate__value{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);font-variant-numeric:tabular-nums}.garage-precond-climate__temp--target .garage-precond-climate__value{opacity:.92}.garage-precond-climate__track{position:relative;height:.65rem;border-radius:999px;overflow:hidden}.garage-precond-climate__track-bg{position:absolute;inset:0;border-radius:inherit;background:#94a3b82e}.garage-precond-climate__fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;opacity:.35;transition:width 1s ease}.garage-precond-climate--heating .garage-precond-climate__fill{background:linear-gradient(90deg,#fb923c26,#ef44448c)}.garage-precond-climate--cooling .garage-precond-climate__fill{background:linear-gradient(90deg,#38bdf826,#2563eb8c)}.garage-precond-climate--idle .garage-precond-climate__fill{background:linear-gradient(90deg,#94a3b81a,#64748b59)}.garage-precond-climate__scan{position:absolute;top:-.15rem;bottom:-.15rem;width:38%;border-radius:999px;filter:blur(.5px);animation:garage-precond-scan var(--precond-scan-duration) ease-in-out infinite;opacity:.85}.garage-precond-climate--heating .garage-precond-climate__scan{background:linear-gradient(90deg,#fff0,#fb923c8c 35%,#ef4444f2,#fb923c8c 75%,#fff0)}.garage-precond-climate--cooling .garage-precond-climate__scan{background:linear-gradient(90deg,#fff0,#38bdf88c 35%,#2563ebf2,#38bdf88c 75%,#fff0)}.garage-precond-climate--idle .garage-precond-climate__scan{background:linear-gradient(90deg,#fff0,#94a3b873,#fff0)}.garage-precond-climate__marker{position:absolute;top:50%;width:.55rem;height:.55rem;border-radius:999px;transform:translate(-50%,-50%);transition:left 1s ease;box-shadow:0 0 .45rem #0f172a40}.garage-precond-climate--heating .garage-precond-climate__marker{background:#ef4444;box-shadow:0 0 .55rem #ef4444a6}.garage-precond-climate--cooling .garage-precond-climate__marker{background:#2563eb;box-shadow:0 0 .55rem #2563eba6}.garage-precond-climate--idle .garage-precond-climate__marker{background:#64748b}@keyframes garage-precond-scan{0%{left:0;transform:translate(-35%);opacity:.25}50%{opacity:1}to{left:100%;transform:translate(-65%);opacity:.25}}.garage-precond-climate--synced .garage-precond-climate__fill{opacity:.42;background:linear-gradient(90deg,#10b98133,#34d39980,#10b98133);transition:width .8s ease}.garage-precond-climate--synced .garage-precond-climate__scan{width:32%;animation:garage-precond-balance 3.8s ease-in-out infinite alternate;background:linear-gradient(90deg,#fff0,#6ee7b773 30%,#34d399e6,#6ee7b773 70%,#fff0)}.garage-precond-climate--synced .garage-precond-climate__marker{background:#34d399;box-shadow:0 0 .6rem #34d399b3;animation:garage-precond-marker-balance 3.8s ease-in-out infinite alternate}@keyframes garage-precond-balance{0%{left:18%;transform:translate(-50%);opacity:.55}50%{opacity:.95}to{left:82%;transform:translate(-50%);opacity:.55}}@keyframes garage-precond-marker-balance{0%{transform:translate(-50%,-50%) scale(1);opacity:.85}50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:.85}}.garage-precond-climate--synced .garage-precond-climate__ready{color:#059669}.garage-precond-climate__outside{margin:.45rem 0 0;text-align:center;font-size:.78rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.garage-precond-climate__cancel{display:block;margin:.55rem auto 0;border:none;background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:500;padding:.15rem .35rem;cursor:pointer}.garage-precond-climate__cancel:disabled{opacity:.5;cursor:not-allowed}.garage-precond-climate__cancel:hover:not(:disabled){color:var(--text-primary)}.garage-door-status-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;background:#fffc;border:1px solid rgba(148,163,184,.4);font-size:.9rem;font-weight:600;color:var(--text-primary)}.garage-door-status-indicator{width:.75rem;height:.75rem;border-radius:999px;background:#64748b;box-shadow:0 0 8px #64748b80;transition:background .3s ease,box-shadow .3s ease}.garage-door-status-indicator--open{background:#10b981;box-shadow:0 0 10px #10b981a6}.garage-door-status-indicator--closed{background:#64748b;box-shadow:0 0 8px #64748b80}.garage-door-visualization{position:relative;width:100%;max-width:50%;height:300px;margin:0 auto;background:linear-gradient(180deg,#1e293b99,#0f172acc);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;border:1px solid rgba(255,255,255,.1);transition:transform .2s ease,box-shadow .2s ease}.garage-door-visualization:hover{transform:translateY(-2px);box-shadow:0 20px 40px #0000004d}.garage-door-visualization:active{transform:translateY(0)}.garage-door-visualization--toggle-feedback .garage-door-overlay{opacity:0}.garage-door-visualization--toggle-feedback-sending{cursor:wait}.garage-door-visualization--toggle-feedback-sending:hover{transform:none;box-shadow:0 12px 28px #00000040}.garage-door-toggle-hud{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;background:#ffffffe0;border:1px solid rgba(148,163,184,.45);backdrop-filter:blur(10px);box-shadow:0 8px 24px #0003;pointer-events:none}.garage-door-toggle-hud__label{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.garage-door-toggle-hud--success{background:#f0fdf4eb;border-color:#22c55e80;box-shadow:0 8px 24px #16a34a33}.garage-door-toggle-hud--success .garage-door-toggle-hud__label{color:#15803d}.garage-door-toggle-hud__check{display:flex;flex-shrink:0;color:#16a34a}.garage-door-toggle-hud__spinner{flex-shrink:0;width:1.125rem;height:1.125rem;border:2px solid rgba(148,163,184,.4);border-top-color:#334155f2;border-radius:50%;animation:garage-door-toggle-spin .65s linear infinite}@keyframes garage-door-toggle-spin{to{transform:rotate(360deg)}}.garage-door-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;transform-origin:top center;transition:transform 15s cubic-bezier(.4,0,.2,1);z-index:2}.garage-door-container--open{transform:translateY(-100%)}.garage-door-segment{flex:1;background:linear-gradient(180deg,#fff,#f8fafc,#f1f5f9);border-bottom:2px solid rgba(0,0,0,.1);border-top:1px solid rgba(255,255,255,.3);position:relative;transform-origin:top center;transition:transform 15s cubic-bezier(.4,0,.2,1)}.garage-door-segment--1{background:linear-gradient(180deg,#fff 0% 50%,#f8fafc)}.garage-door-segment--2{background:linear-gradient(180deg,#fff,#f8fafc,#f1f5f9)}.garage-door-segment--3{background:linear-gradient(180deg,#f8fafc,#f1f5f9,#e2e8f0)}.garage-door-segment--4{background:linear-gradient(180deg,#f1f5f9,#e2e8f0,#cbd5e1)}.garage-door-segment--5{background:linear-gradient(180deg,#e2e8f0,#cbd5e1,#94a3b8)}.garage-door-segment--6{background:linear-gradient(180deg,#cbd5e1,#94a3b8,#64748b)}.garage-door-container--opening .garage-door-segment{transform:rotateX(-90deg)}.garage-door-container--closing .garage-door-segment{transform:rotateX(0)}.garage-interior{position:absolute;bottom:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,#0f172a66,#1e293b99,#334155cc);display:flex;align-items:center;justify-content:center;opacity:1;pointer-events:auto;z-index:1}.tesla-model-y{width:70%;max-width:280px;height:auto;object-fit:contain;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5));opacity:0;transition:opacity 5s ease}.tesla-model-y--visible{opacity:1}.garage-door-overlay{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:#0009;backdrop-filter:blur(8px);padding:.5rem 1rem;border-radius:999px;opacity:0;transition:opacity .3s ease;pointer-events:none}.garage-door-visualization:hover .garage-door-overlay{opacity:1}.garage-door-hint{color:#ffffffe6;font-size:.85rem;font-weight:500;white-space:nowrap}.evcc-page{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:4rem}.evcc-primary{padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem}.evcc-primary--collapsed{gap:.75rem}.evcc-primary__header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-start}.evcc-primary__eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;margin:0;color:var(--text-secondary)}.evcc-primary__title{margin:0;font-size:clamp(1.8rem,2.6vw,2.4rem);color:var(--text-primary)}.evcc-primary__subtitle{color:var(--text-secondary);font-size:.9rem}.evcc-primary__status-text{margin:0;color:var(--text-secondary);font-size:.85rem}.evcc-primary__update{font-size:.95rem;color:var(--text-secondary);display:flex;align-items:center;gap:.35rem}.evcc-primary__update strong{font-size:.95rem;color:var(--text-primary)}.evcc-primary__body{display:flex;flex-direction:column;gap:1.25rem}.evcc-primary__power{display:flex;flex-direction:column;gap:1rem}.evcc-power-block span{font-size:.85rem;color:var(--text-secondary)}.evcc-power-block strong{font-size:2.3rem;color:var(--text-primary)}.evcc-power-block small{color:var(--text-secondary)}.evcc-mode-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.evcc-mode-pill{border:none;border-radius:.95rem;padding:.55rem .5rem;font-weight:600;text-align:center;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;color:#0f172a;cursor:pointer;opacity:.85;transition:transform .15s ease,opacity .15s ease;display:flex;align-items:center;justify-content:center;gap:.4rem}.evcc-mode-pill--gray{background:linear-gradient(135deg,#e2e8f0,#cbd5f5)}.evcc-mode-pill--yellow{background:linear-gradient(135deg,#fef3c7,#fde68a)}.evcc-mode-pill--amber{background:linear-gradient(135deg,#fcd34d,#f59e0b)}.evcc-mode-pill--orange{background:linear-gradient(135deg,#f97316,#fb923c)}.evcc-mode-pill--active{opacity:1;transform:translateY(-2px);box-shadow:0 15px 30px #0f172a40}.evcc-mode-pill:disabled{opacity:.5;cursor:not-allowed}.evcc-mode-pill__label{color:inherit}.evcc-mode-pill__indicator{width:.55rem;height:.55rem;border-radius:999px;background:#94a3b866;box-shadow:0 0 6px #94a3b84d;transition:background .2s ease,box-shadow .2s ease}.evcc-mode-pill__indicator--active{background:var(--accent-green);box-shadow:0 0 10px #10b98199}.evcc-battery{display:flex;flex-direction:column;gap:.5rem}.evcc-primary__battery{width:100%}.evcc-battery__head{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:.85rem}.evcc-battery__bar{width:100%;height:28px;border-radius:999px;background:#94a3b840;overflow:hidden;position:relative}.evcc-battery__fill{height:100%;border-radius:999px;transition:width .5s ease}.evcc-primary__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;border-top:1px solid rgba(148,163,184,.25);padding-top:1.25rem}.evcc-primary__stats span{display:block;color:var(--text-secondary);font-size:.8rem}.evcc-primary__stats strong{font-size:1.1rem;color:var(--text-primary)}.evcc-control{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.evcc-control__group{display:flex;flex-direction:column;gap:.5rem}.evcc-control__group-header h3{margin:0;font-size:1.05rem}.evcc-control__group-header p,.evcc-control__hint{margin:0;color:var(--text-secondary);font-size:.9rem}.evcc-control__segmented{display:flex;flex-wrap:wrap;gap:.5rem}.evcc-control__option{flex:1 1 140px;border-radius:999px;padding:.6rem 1rem;border:1px solid rgba(148,163,184,.4);background:#fff9;cursor:pointer;transition:all .2s ease}.evcc-control__option--active{border-color:var(--accent-blue);background:#2563eb1a;color:var(--accent-blue);box-shadow:0 10px 30px #2563eb33}.evcc-control__option:disabled{opacity:.6;cursor:not-allowed}.evcc-control__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.evcc-control__field{display:flex;flex-direction:column;gap:.5rem}.evcc-control__field label{font-size:.9rem;color:var(--text-secondary)}.evcc-control__field input[type=range]{width:100%}.evcc-control__field-footer{display:flex;align-items:center;justify-content:space-between;font-weight:600}.evcc-control__field-footer button,.evcc-control__number-field button{border:none;border-radius:999px;padding:.45rem 1.25rem;background:linear-gradient(135deg,#2563eb,#10b981);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease}.evcc-control__field-footer button:disabled,.evcc-control__number-field button:disabled{opacity:.5;cursor:not-allowed}.evcc-control__field-footer button:not(:disabled):hover,.evcc-control__number-field button:not(:disabled):hover{transform:translateY(-1px)}.evcc-control__number-field{display:flex;gap:.5rem;align-items:center}.evcc-control__number-field input{width:100%;padding:.5rem .75rem;border-radius:.75rem;border:1px solid rgba(148,163,184,.5);background:#fffc}.evcc-placeholder{padding:2rem;text-align:center;font-size:1rem}.evcc-costs-details{padding:0 1rem 1rem}.evcc-costs-details summary{cursor:pointer;font-weight:600;padding:1rem .25rem;color:var(--text-primary)}.evcc-empty{padding:2.5rem;display:flex;flex-direction:column;gap:1rem;text-align:center}.evcc-empty__title{margin:0;font-size:1.5rem;color:var(--text-primary)}.evcc-empty__subtitle{margin:0;color:var(--text-secondary);font-size:1rem}.evcc-empty__actions button{border:none;border-radius:999px;padding:.6rem 1.6rem;background:linear-gradient(135deg,#2563eb,#10b981);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease}.evcc-empty__actions button:disabled{opacity:.6;cursor:not-allowed}.evcc-empty__actions button:not(:disabled):hover{transform:translateY(-1px)}.tesla-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.tesla-stat-card{padding:1.5rem;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.75rem}.tesla-stat-card:after{content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;background:radial-gradient(circle at top right,rgba(255,255,255,.6),transparent 55%)}.tesla-stat-card--range{background:linear-gradient(135deg,#0ea5e940,#3b82f626);box-shadow:0 20px 40px #0ea5e926}.tesla-stat-card--locked{background:linear-gradient(135deg,#f8fafc66,#0ea5e914);box-shadow:0 20px 40px #0f172a14}.tesla-stat-card--locked-active{background:linear-gradient(135deg,#10b98140,#22c55e26);box-shadow:0 20px 40px #10b98126}.tesla-stat-card--locked-inactive{background:linear-gradient(135deg,#f9731640,#fb923c26);box-shadow:0 20px 40px #f9731626}.tesla-stat-helper{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.tesla-stat-value{margin:0;font-size:2rem;color:var(--text-primary);font-weight:700}.tesla-stat-label{margin:0;font-size:.95rem;color:var(--text-secondary)}.tesla-battery-bar{width:100%;height:28px;border-radius:999px;background:#94a3b840;overflow:hidden;position:relative;margin:.25rem 0}.tesla-battery-fill{height:100%;border-radius:999px;transition:width .5s ease,background .3s ease}.tesla-climate-section{padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem}.tesla-climate-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}.tesla-climate-eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;margin:0;color:var(--text-secondary)}.tesla-climate-title{margin:.25rem 0 0;font-size:clamp(1.4rem,2vw,1.8rem);color:var(--text-primary)}.tesla-climate-status-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;background:#fffc;border:1px solid rgba(148,163,184,.4);font-size:.9rem;font-weight:600;color:var(--text-primary)}.tesla-climate-status-indicator{width:.75rem;height:.75rem;border-radius:999px;background:#64748b;box-shadow:0 0 8px #64748b80}.tesla-climate-status-indicator--on{background:#10b981;box-shadow:0 0 10px #10b981a6;animation:tesla-pulse 2s ease-in-out infinite}.tesla-climate-status-indicator--off{background:#64748b;box-shadow:0 0 8px #64748b80}@keyframes tesla-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.tesla-climate-temps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.tesla-temp-card{padding:1.5rem;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.75rem}.tesla-temp-card:after{content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;background:radial-gradient(circle at top right,rgba(255,255,255,.6),transparent 55%)}.tesla-temp-helper{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.tesla-temp-value{margin:0;font-size:2rem;color:var(--text-primary);font-weight:700}.tesla-temp-label{margin:0;font-size:.95rem;color:var(--text-secondary)}.tesla-climate-control{display:flex;justify-content:center;padding-top:1rem;border-top:1px solid rgba(148,163,184,.25)}.tesla-climate-toggle{border:none;border-radius:999px;padding:.75rem 2rem;background:linear-gradient(135deg,#2563eb,#10b981);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 10px 30px #2563eb4d;min-width:200px}.tesla-climate-toggle--on{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 10px 30px #ef44444d}.tesla-climate-toggle:disabled{opacity:.5;cursor:not-allowed;transform:none}.tesla-climate-toggle:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 15px 40px #2563eb66}.tesla-climate-toggle--on:not(:disabled):hover{box-shadow:0 15px 40px #ef444466}.tesla-stat-charging-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem}.tesla-stat-charging-indicator{width:.75rem;height:.75rem;border-radius:999px;background:#64748b;box-shadow:0 0 8px #64748b80;flex-shrink:0}.tesla-stat-charging-indicator--active{background:#10b981;box-shadow:0 0 10px #10b981a6;animation:tesla-charging-pulse 2s ease-in-out infinite}@keyframes tesla-charging-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.tesla-stat-charging-details{display:flex;flex-direction:column;gap:.4rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.2)}.tesla-stat-charging-detail{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.85rem}.tesla-stat-charging-detail span{color:var(--text-secondary)}.tesla-stat-charging-detail strong{color:var(--text-primary);font-weight:600}.trash-schedule-overview{display:flex;flex-direction:column;gap:1rem}.trash-schedule-overview__loading,.trash-schedule-overview__error,.trash-schedule-overview__empty{padding:1rem;text-align:center;color:var(--text-secondary, #4b5563);font-size:.95rem}.trash-schedule-overview__error{color:var(--accent-red, #dc2626)}.trash-schedule-overview__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.trash-schedule-overview__card{background:var(--glass-bg, rgba(255, 255, 255, .85));backdrop-filter:var(--blur-medium, blur(15px) saturate(180%));border:1px solid var(--glass-border, rgba(148, 163, 184, .4));border-radius:var(--radius-md, 1rem);padding:.75rem;box-shadow:var(--glass-shadow, 0 25px 60px rgba(15, 23, 42, .12));transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:.375rem}.trash-schedule-overview__card:hover{background:var(--glass-bg-hover, rgba(255, 255, 255, .95));border-color:var(--glass-border, rgba(148, 163, 184, .6));box-shadow:0 30px 70px #0f172a2e}.trash-schedule-overview__card--today{border-color:var(--accent-red, #dc2626);background:linear-gradient(135deg,#dc26261a,#dc26260d)}.trash-schedule-overview__card--tomorrow{border-color:var(--accent-orange, #f97316);background:linear-gradient(135deg,#f973161a,#f973160d)}.trash-schedule-overview__card--upcoming{border-color:var(--accent-blue, #2563eb);background:linear-gradient(135deg,#2563eb1a,#2563eb0d)}.trash-schedule-overview__card-category{font-size:.9375rem;font-weight:600;color:var(--text-primary, #1f2937);margin:0;letter-spacing:-.01em}.trash-schedule-overview__card-date{font-size:.8125rem;color:var(--text-secondary, #4b5563);margin:0}.trash-schedule-overview__card-days{font-size:.75rem;color:var(--text-tertiary, #6b7280);margin:0;font-weight:500}@media(min-width:768px){.trash-schedule-overview__grid{grid-template-columns:repeat(4,1fr);gap:.875rem}.trash-schedule-overview__card{padding:.875rem}.trash-schedule-overview__card-category{font-size:1rem}.trash-schedule-overview__card-date{font-size:.875rem}.trash-schedule-overview__card-days{font-size:.8125rem}}.level-up-animation{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.level-up-animation__aura{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,.8) 0%,rgba(255,165,0,.6) 50%,transparent 100%);animation:level-up-aura-pulse .5s ease-in-out infinite;opacity:0;transform:scale(.5)}.level-up-animation__aura--charging{opacity:1;animation:level-up-aura-charge 2s ease-out forwards}.level-up-animation__aura--transforming{animation:level-up-aura-transform 3s ease-in-out infinite;opacity:1;transform:scale(1.5)}.level-up-animation__aura--complete{animation:level-up-aura-complete 1s ease-out forwards}.level-up-animation__energy{position:absolute;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,215,0,.4) 0%,rgba(255,165,0,.3) 30%,rgba(255,69,0,.2) 60%,transparent 100%);opacity:0;transform:scale(.3)}.level-up-animation__energy--charging{animation:level-up-energy-charge 2s ease-out forwards}.level-up-animation__energy--transforming{animation:level-up-energy-transform 3s ease-in-out infinite;opacity:1}.level-up-animation__energy--complete{animation:level-up-energy-complete 1s ease-out forwards}.level-up-animation__lightning{position:absolute;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.8) 50%,transparent 100%),linear-gradient(0deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);opacity:0;transform:rotate(45deg)}.level-up-animation__lightning--transforming{animation:level-up-lightning .3s ease-in-out infinite;opacity:.6}.level-up-animation__text{position:relative;z-index:10;text-align:center;color:#fff;text-shadow:0 0 10px rgba(255,215,0,1),0 0 20px rgba(255,165,0,1),0 0 30px rgba(255,69,0,1),0 0 40px rgba(255,0,0,.8);animation:level-up-text-appear 1s ease-out forwards;opacity:0;transform:scale(.5)}.level-up-animation__name{font-size:3rem;font-weight:900;font-family:Courier New,Monaco,monospace;letter-spacing:.2em;margin-bottom:1rem;text-transform:uppercase;animation:level-up-text-bounce .5s ease-in-out infinite}.level-up-animation__level-up{font-size:4rem;font-weight:900;font-family:Courier New,Monaco,monospace;letter-spacing:.15em;color:gold;margin-bottom:.5rem;animation:level-up-text-pulse .3s ease-in-out infinite}.level-up-animation__level{font-size:2.5rem;font-weight:700;font-family:Courier New,Monaco,monospace;letter-spacing:.1em;color:orange}.level-up-animation__particles{position:absolute;width:100%;height:100%;pointer-events:none}.level-up-animation__particle{position:absolute;width:8px;height:8px;background:radial-gradient(circle,gold,orange);border-radius:50%;top:50%;left:50%;opacity:0;box-shadow:0 0 10px #ffd700cc}.level-up-animation__particles--transforming .level-up-animation__particle{animation:level-up-particle var(--delay, 0s) .5s ease-out forwards}@keyframes level-up-aura-charge{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes level-up-aura-transform{0%,to{transform:scale(1.5) rotate(0);opacity:1}50%{transform:scale(2) rotate(180deg);opacity:.9}}@keyframes level-up-aura-complete{0%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(3)}}@keyframes level-up-energy-charge{0%{opacity:0;transform:scale(.3)}to{opacity:.6;transform:scale(1)}}@keyframes level-up-energy-transform{0%,to{transform:scale(1) rotate(0);opacity:.6}50%{transform:scale(1.3) rotate(360deg);opacity:.8}}@keyframes level-up-energy-complete{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2)}}@keyframes level-up-lightning{0%,to{opacity:.3;transform:rotate(45deg) scale(1)}50%{opacity:.8;transform:rotate(45deg) scale(1.2)}}@keyframes level-up-text-appear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes level-up-text-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes level-up-text-pulse{0%,to{transform:scale(1);text-shadow:0 0 10px rgba(255,215,0,1),0 0 20px rgba(255,165,0,1),0 0 30px rgba(255,69,0,1)}50%{transform:scale(1.1);text-shadow:0 0 20px rgba(255,215,0,1),0 0 40px rgba(255,165,0,1),0 0 60px rgba(255,69,0,1),0 0 80px rgba(255,0,0,1)}}@keyframes level-up-particle{0%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) scale(0) rotate(720deg)}}.level-up-animation__particle:nth-child(1){animation:level-up-particle-1 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(2){animation:level-up-particle-2 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(3){animation:level-up-particle-3 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(4){animation:level-up-particle-4 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(5){animation:level-up-particle-5 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(6){animation:level-up-particle-6 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(7){animation:level-up-particle-7 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(8){animation:level-up-particle-8 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(9){animation:level-up-particle-9 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(10){animation:level-up-particle-10 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(11){animation:level-up-particle-11 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(12){animation:level-up-particle-12 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(13){animation:level-up-particle-13 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(14){animation:level-up-particle-14 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(15){animation:level-up-particle-15 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(16){animation:level-up-particle-16 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(17){animation:level-up-particle-17 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(18){animation:level-up-particle-18 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(19){animation:level-up-particle-19 .5s .5s ease-out forwards}.level-up-animation__particle:nth-child(20){animation:level-up-particle-20 .5s .5s ease-out forwards}@keyframes level-up-particle-1{0%{opacity:1;transform:translate(-50%,-50%) translate(150px,-180px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(150px,-180px) scale(0) rotate(720deg)}}@keyframes level-up-particle-2{0%{opacity:1;transform:translate(-50%,-50%) translate(-150px,-180px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-150px,-180px) scale(0) rotate(720deg)}}@keyframes level-up-particle-3{0%{opacity:1;transform:translate(-50%,-50%) translate(180px,150px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(180px,150px) scale(0) rotate(720deg)}}@keyframes level-up-particle-4{0%{opacity:1;transform:translate(-50%,-50%) translate(-180px,150px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-180px,150px) scale(0) rotate(720deg)}}@keyframes level-up-particle-5{0%{opacity:1;transform:translate(-50%,-50%) translate(200px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(200px) scale(0) rotate(720deg)}}@keyframes level-up-particle-6{0%{opacity:1;transform:translate(-50%,-50%) translate(-200px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-200px) scale(0) rotate(720deg)}}@keyframes level-up-particle-7{0%{opacity:1;transform:translate(-50%,-50%) translateY(-200px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translateY(-200px) scale(0) rotate(720deg)}}@keyframes level-up-particle-8{0%{opacity:1;transform:translate(-50%,-50%) translateY(200px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translateY(200px) scale(0) rotate(720deg)}}@keyframes level-up-particle-9{0%{opacity:1;transform:translate(-50%,-50%) translate(120px,-160px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(120px,-160px) scale(0) rotate(720deg)}}@keyframes level-up-particle-10{0%{opacity:1;transform:translate(-50%,-50%) translate(-120px,-160px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-120px,-160px) scale(0) rotate(720deg)}}@keyframes level-up-particle-11{0%{opacity:1;transform:translate(-50%,-50%) translate(160px,120px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(160px,120px) scale(0) rotate(720deg)}}@keyframes level-up-particle-12{0%{opacity:1;transform:translate(-50%,-50%) translate(-160px,120px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-160px,120px) scale(0) rotate(720deg)}}@keyframes level-up-particle-13{0%{opacity:1;transform:translate(-50%,-50%) translate(100px,170px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(100px,170px) scale(0) rotate(720deg)}}@keyframes level-up-particle-14{0%{opacity:1;transform:translate(-50%,-50%) translate(-100px,170px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-100px,170px) scale(0) rotate(720deg)}}@keyframes level-up-particle-15{0%{opacity:1;transform:translate(-50%,-50%) translate(170px,-100px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(170px,-100px) scale(0) rotate(720deg)}}@keyframes level-up-particle-16{0%{opacity:1;transform:translate(-50%,-50%) translate(-170px,-100px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-170px,-100px) scale(0) rotate(720deg)}}@keyframes level-up-particle-17{0%{opacity:1;transform:translate(-50%,-50%) translate(80px,190px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(80px,190px) scale(0) rotate(720deg)}}@keyframes level-up-particle-18{0%{opacity:1;transform:translate(-50%,-50%) translate(-80px,190px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-80px,190px) scale(0) rotate(720deg)}}@keyframes level-up-particle-19{0%{opacity:1;transform:translate(-50%,-50%) translate(190px,-80px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(190px,-80px) scale(0) rotate(720deg)}}@keyframes level-up-particle-20{0%{opacity:1;transform:translate(-50%,-50%) translate(-190px,-80px) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) translate(-190px,-80px) scale(0) rotate(720deg)}}@media(min-width:768px){.level-up-animation__name{font-size:4rem}.level-up-animation__level-up{font-size:5rem}.level-up-animation__level{font-size:3rem}}.trash-level-dashboard{display:flex;flex-direction:column;gap:1rem}.trash-level-dashboard__loading,.trash-level-dashboard__error,.trash-level-dashboard__empty{padding:1rem;text-align:center;color:var(--text-secondary, #4b5563);font-size:.95rem}.trash-level-dashboard__error{color:var(--accent-red, #dc2626)}.trash-level-dashboard__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.trash-level-dashboard__card{background:var(--glass-bg, rgba(255, 255, 255, .85));backdrop-filter:var(--blur-medium, blur(15px) saturate(180%));border:2px solid var(--glass-border, rgba(148, 163, 184, .4));border-radius:var(--radius-md, 1rem);padding:1rem;box-shadow:var(--glass-shadow, 0 25px 60px rgba(15, 23, 42, .12));display:flex;gap:1rem;align-items:flex-start;position:relative;overflow:hidden}.trash-level-dashboard__card:before{content:"";position:absolute;inset:0;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-md, 1rem);pointer-events:none;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.trash-level-dashboard__avatar-container{flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center}.trash-level-dashboard__avatar{width:56px;height:56px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;border:2px solid var(--text-primary, #1f2937);border-radius:4px;position:relative;background-color:var(--glass-bg, rgba(255, 255, 255, .95))}.trash-level-dashboard__avatar--basti{background:linear-gradient(135deg,#3b82f6,#2563eb,#1e40af);box-shadow:inset 2px 2px #ffffff4d,inset -2px -2px #0000004d,0 0 0 2px var(--text-primary, #1f2937)}.trash-level-dashboard__avatar--konrad{background:linear-gradient(135deg,#10b981,#059669,#047857);box-shadow:inset 2px 2px #ffffff4d,inset -2px -2px #0000004d,0 0 0 2px var(--text-primary, #1f2937)}.trash-level-dashboard__avatar--laura{background:linear-gradient(135deg,#f472b6,#ec4899,#db2777);box-shadow:inset 2px 2px #ffffff4d,inset -2px -2px #0000004d,0 0 0 2px var(--text-primary, #1f2937)}.trash-level-dashboard__avatar--melli{background:linear-gradient(135deg,#a78bfa,#8b5cf6,#7c3aed);box-shadow:inset 2px 2px #ffffff4d,inset -2px -2px #0000004d,0 0 0 2px var(--text-primary, #1f2937)}.trash-level-dashboard__avatar--josef{background:linear-gradient(135deg,#f59e0b,#d97706,#b45309);box-shadow:inset 2px 2px #ffffff4d,inset -2px -2px #0000004d,0 0 0 2px var(--text-primary, #1f2937)}.trash-level-dashboard__avatar--gabi{background:linear-gradient(135deg,#ef4444,#dc2626,#b91c1c);box-shadow:inset 2px 2px #ffffff4d,inset -2px -2px #0000004d,0 0 0 2px var(--text-primary, #1f2937)}.trash-level-dashboard__info{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}.trash-level-dashboard__name{font-size:1rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0;font-family:Courier New,Monaco,monospace;letter-spacing:.05em;text-transform:uppercase}.trash-level-dashboard__level-bar{display:flex;gap:2px;align-items:center;width:100%}.trash-level-dashboard__level-segment{flex:1;height:12px;background:var(--glass-border, rgba(148, 163, 184, .3));border:1px solid var(--text-tertiary, #6b7280);border-radius:2px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;transition:all .2s ease}.trash-level-dashboard__level-segment--active{background:linear-gradient(135deg,#10b981,#059669);border-color:#047857;box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #0003,0 0 4px #10b9814d}.trash-level-dashboard__level-text{font-size:.75rem;font-weight:600;color:var(--text-secondary, #4b5563);margin:0;font-family:Courier New,Monaco,monospace;letter-spacing:.05em}@media(min-width:768px){.trash-level-dashboard__grid{grid-template-columns:repeat(3,1fr);gap:1.25rem}.trash-level-dashboard__card{padding:1.25rem;gap:1.25rem}.trash-level-dashboard__avatar-container{width:80px;height:80px}.trash-level-dashboard__avatar{width:72px;height:72px}.trash-level-dashboard__name{font-size:1.125rem}.trash-level-dashboard__level-segment{height:14px}.trash-level-dashboard__level-text{font-size:.8125rem}}@media(min-width:1440px){.trash-level-dashboard__grid{gap:1.5rem}.trash-level-dashboard__card{padding:1.5rem}}.muellabholung-page{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.muellabholung-page__header{display:flex;flex-direction:column;gap:.75rem}.muellabholung-page__eyebrow{font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary, #6b7280);margin-bottom:.25rem}.muellabholung-page__status{font-size:.95rem;color:var(--text-secondary, #4b5563);display:flex;align-items:center;gap:.5rem}.muellabholung-page__status-dot{display:inline-flex;width:.75rem;height:.75rem;border-radius:999px;margin-left:.5rem;background:linear-gradient(135deg,#38bdf8,#22d3ee);animation:muellabholung-page-pulse 1.2s ease-in-out infinite}@keyframes muellabholung-page-pulse{0%{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:.5}}.muellabholung-page__status-error{color:var(--accent-red, #dc2626);font-weight:600}.muellabholung-page__overview-section,.muellabholung-page__levels-section{display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.muellabholung-page__section-title{font-size:1.25rem;font-weight:600;margin:0;letter-spacing:-.01em}@media(min-width:768px){.muellabholung-page__overview-section,.muellabholung-page__levels-section{padding:1.75rem}.muellabholung-page__section-title{font-size:1.5rem}}.camera-snapshot-gallery{margin-top:0;padding-top:0;border-top:none;flex-shrink:0}.camera-snapshot-gallery__header{display:flex;justify-content:flex-end;align-items:center;margin-bottom:.75rem;min-height:1.75rem}.camera-snapshot-gallery__header:not(:has(.camera-snapshot-gallery__actions button)){display:none}.camera-snapshot-gallery__loading,.camera-snapshot-gallery__error,.camera-snapshot-gallery__empty{padding:.5rem 0;color:var(--text-secondary);font-size:.9rem}.camera-snapshot-gallery__title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.camera-snapshot-gallery__actions{display:flex;gap:.5rem}.camera-snapshot-gallery__action-button{padding:.375rem .75rem;font-size:.875rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all .2s ease}.camera-snapshot-gallery__action-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.camera-snapshot-gallery__action-button:disabled{opacity:.5;cursor:not-allowed}.camera-snapshot-gallery__grid{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,1fr);gap:.75rem;min-height:0}.camera-snapshot-gallery__thumbnail-wrapper{position:relative;width:100%;aspect-ratio:16 / 9}.camera-snapshot-gallery__thumbnail-wrapper--selected{outline:2px solid var(--accent-blue, #3b82f6);outline-offset:2px;border-radius:var(--radius-sm)}.camera-snapshot-gallery__checkbox{position:absolute;top:.5rem;left:.5rem;z-index:10;width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--accent-blue, #3b82f6)}.camera-snapshot-gallery__thumbnail{position:relative;width:100%;aspect-ratio:16 / 9;border:none;background:#0003;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;padding:0;transition:all .2s ease}.camera-snapshot-gallery__thumbnail:hover{transform:scale(1.05);box-shadow:0 4px 12px #0f172a33;z-index:1}.camera-snapshot-gallery__thumbnail:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.camera-snapshot-gallery__video-thumbnail-wrapper{position:relative;width:100%;height:100%;overflow:hidden}.camera-snapshot-gallery__thumbnail-video,.camera-snapshot-gallery__thumbnail-image{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.camera-snapshot-gallery__meta-chips{position:absolute;left:.4rem;bottom:.4rem;z-index:3;display:flex;flex-wrap:wrap;gap:.25rem;max-width:calc(100% - .8rem)}.camera-snapshot-gallery__chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.65rem;font-weight:600;padding:.22rem .55rem;border-radius:999px;color:#f8fafc;background:#0f172abf;border:1px solid rgba(255,255,255,.2);white-space:nowrap}.camera-snapshot-gallery__chip-icon{display:inline-flex;align-items:center;justify-content:center;width:.95rem;height:.95rem;flex:0 0 auto}.camera-snapshot-gallery__chip--person{border-color:#38bdf88c}.camera-snapshot-gallery__chip--car,.camera-snapshot-gallery__chip--motorcycle,.camera-snapshot-gallery__chip--bicycle{border-color:#fbbf248c}.camera-snapshot-gallery__chip--zone{font-weight:500;opacity:.95;border-color:#a78bfa80}.camera-snapshot-gallery__video-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000001f;color:var(--text-primary);transition:all .2s ease}.camera-snapshot-gallery__thumbnail:hover .camera-snapshot-gallery__video-play-overlay{background:#0003}.camera-snapshot-gallery__video-play-overlay svg{filter:drop-shadow(0 4px 8px rgba(0,0,0,.4));transition:transform .2s ease}.camera-snapshot-gallery__thumbnail:hover .camera-snapshot-gallery__video-play-overlay svg{transform:scale(1.1)}.camera-snapshot-gallery__thumbnail-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:.5rem;opacity:0;transition:opacity .2s ease;display:flex;justify-content:space-between;align-items:center}.camera-snapshot-gallery__thumbnail:hover .camera-snapshot-gallery__thumbnail-overlay{opacity:1}.camera-snapshot-gallery__delete-button{background:#dc2626cc;border:none;border-radius:50%;width:1.5rem;height:1.5rem;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;flex-shrink:0}.camera-snapshot-gallery__delete-button:hover:not(:disabled){background:#dc2626;transform:scale(1.1)}.camera-snapshot-gallery__delete-button:disabled{opacity:.5;cursor:not-allowed}.camera-snapshot-gallery__thumbnail-time{color:#fff;font-size:.75rem;font-weight:500}.camera-snapshot-gallery__loading,.camera-snapshot-gallery__error,.camera-snapshot-gallery__empty{padding:2rem;text-align:center;color:var(--text-secondary)}.camera-snapshot-gallery__error{color:var(--accent-red, #dc2626)}.camera-snapshot-gallery__pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.1)}.camera-snapshot-gallery__pagination-button{padding:.5rem 1rem;font-size:.875rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all .2s ease}.camera-snapshot-gallery__pagination-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.camera-snapshot-gallery__pagination-button:disabled{opacity:.5;cursor:not-allowed}.camera-snapshot-gallery__pagination-info{font-size:.875rem;color:var(--text-secondary);min-width:200px;text-align:center}@media(max-width:768px){.camera-snapshot-gallery__grid{grid-template-columns:1fr;grid-template-rows:repeat(10,1fr)}.camera-snapshot-gallery__pagination{flex-direction:column;gap:.75rem}.camera-snapshot-gallery__pagination-info{min-width:auto}}.kamera-page{display:flex;flex-direction:column;gap:1.5rem;width:100%}.kamera-page__status,.kamera-page__status-info{display:flex;align-items:center;gap:1rem}.kamera-page__status-badge{padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.kamera-page__status-badge--online{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.kamera-page__status-badge--offline{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.kamera-page__status-model{font-size:.875rem;color:var(--text-secondary)}.kamera-page__loading,.kamera-page__error,.kamera-page__offline,.kamera-page__paused{padding:2rem}.kamera-page__offline{text-align:left}.kamera-page__offline-title{font-size:1.25rem;font-weight:600;color:var(--accent-red, #dc2626);margin:0 0 1rem}.kamera-page__offline-details{color:var(--text-secondary);margin:0 0 1rem;line-height:1.6}.kamera-page__offline-checklist{margin:1rem 0;padding-left:1.5rem;color:var(--text-secondary);line-height:1.8}.kamera-page__offline-checklist li{margin-bottom:.5rem}.kamera-page__error-message{color:var(--accent-red, #dc2626);margin-bottom:1rem}.kamera-page__retry-button{padding:.75rem 1.5rem;background:var(--accent-blue);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.kamera-page__retry-button:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.kamera-page__retry-button:active{transform:translateY(0)}.kamera-page__video-section{padding:0;overflow:hidden}.kamera-page__video-wrapper{position:relative;width:100%;padding-bottom:56.25%;background:#000;overflow:hidden;border-radius:var(--radius-sm)}.kamera-page__video-wrapper--detect{box-shadow:inset 0 0 0 1px #38bdf859}.kamera-page__view-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .85rem;margin:0 0 .75rem}.kamera-page__view-toggle{display:inline-flex;gap:.25rem;padding:.2rem;margin:0;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.kamera-page__view-toggle-btn{appearance:none;border:none;background:transparent;color:var(--text-secondary);font-size:.8rem;font-weight:600;padding:.4rem .85rem;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease}.kamera-page__view-toggle-btn--active{background:#38bdf833;color:#e0f2fe}.kamera-page__view-toggle-btn:hover:not(.kamera-page__view-toggle-btn--active){color:var(--text-primary)}.kamera-page__view-legend{margin:0;font-size:.75rem;color:var(--text-secondary);line-height:1.35}.kamera-page__detection-chip-bar{position:absolute;left:.6rem;right:.6rem;top:.55rem;bottom:auto;z-index:5;display:flex;flex-wrap:wrap;gap:.35rem;pointer-events:none}.kamera-page__detection-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .75rem;border-radius:999px;font-size:.84rem;font-weight:600;letter-spacing:.01em;color:#f8fafc;background:#0f172ab8;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px)}.kamera-page__detection-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex:0 0 auto}.kamera-page__detection-chip-label{display:inline-flex;align-items:center}.kamera-page__detection-chip--idle{font-weight:500;opacity:.9;border-color:#94a3b866}.kamera-page__detection-chip--person{border-color:#38bdf88c}.kamera-page__detection-chip--car,.kamera-page__detection-chip--motorcycle,.kamera-page__detection-chip--bicycle{border-color:#fbbf248c}.kamera-page__detection-chip--cat,.kamera-page__detection-chip--dog,.kamera-page__detection-chip--bird{border-color:#34d3998c}.kamera-page__detection-chip-score{opacity:.85;font-variant-numeric:tabular-nums}.kamera-page__detection-chip-zone{display:inline-flex;align-items:center;gap:.35rem;opacity:.9;font-weight:500}.kamera-page__detect-hint{display:none}.kamera-page__video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;display:block}.kamera-page__video--pending{opacity:0;pointer-events:none;z-index:1}.kamera-page__stream-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000c;z-index:10;gap:1.5rem}.kamera-page__spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--accent-blue, #2563eb);border-radius:50%;animation:kamera-spin 1s linear infinite}@keyframes kamera-spin{to{transform:rotate(360deg)}}.kamera-page__stream-loading-text{color:var(--text-primary, #ffffff);font-size:1rem;font-weight:500;margin:0;text-align:center}.kamera-page__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.kamera-page__grid--single{grid-template-columns:1fr;max-width:960px}.kamera-page__grid-item--hidden{display:none}.kamera-page__grid-item{min-height:400px;display:flex;flex-direction:column;padding:1.5rem;align-self:start;height:auto}.kamera-page__grid-item:has(.kamera-page__pool-with-rollo){min-height:0}.kamera-page__camera-view{display:flex;flex-direction:column;height:100%;width:100%;align-items:stretch}.kamera-page__camera-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.kamera-page__camera-title{font-size:1.5rem;font-weight:600;margin:0}.kamera-page__error--inline,.kamera-page__offline--inline,.kamera-page__paused--inline{padding:1rem;margin:1rem 0;border-radius:8px}.kamera-page__error--inline{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3)}.kamera-page__offline--inline{background-color:#9ca3af1a;border:1px solid rgba(156,163,175,.3)}.kamera-page__paused--inline{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3)}.kamera-page__grid-item .kamera-page__video-wrapper{position:relative;width:100%;flex:0 1 auto;min-height:300px;border-radius:8px;overflow:hidden;background-color:#0000004d;padding-bottom:0;display:flex;align-items:flex-start;justify-content:flex-start}.kamera-page__grid-item .kamera-page__video{position:relative;width:100%;height:100%;object-fit:contain;object-position:top center;display:block}@media(max-width:1024px),(max-height:800px)and (pointer:coarse){.kamera-page__grid{grid-template-columns:1fr;grid-template-rows:auto auto;gap:1.5rem}.kamera-page__grid-item{min-height:300px;padding:1rem}.kamera-page__camera-title{font-size:1.25rem}}.kamera-page__pool-with-rollo{display:flex;flex-direction:column;gap:.85rem;width:100%;height:auto}.kamera-page__pool-camera{min-width:0;width:100%;flex:0 0 auto}.kamera-page__pool-with-rollo .kamera-page__camera-view{height:auto}.kamera-page__pool-with-rollo .kamera-page__video-wrapper{flex:0 1 auto;min-height:300px}.kamera-page__pool-with-rollo .pool-rollo{flex:0 0 auto;width:100%;min-width:0}.kamera-collapsible{margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(255,255,255,.1);width:100%}.kamera-collapsible__toggle{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:.75rem;margin:0;padding:.35rem .15rem;border:none;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;font:inherit}.kamera-collapsible__toggle:hover .kamera-collapsible__title{opacity:.9}.kamera-collapsible__titles{display:flex;flex-direction:column;gap:.15rem;min-width:0}.kamera-collapsible__title{font-size:1rem;font-weight:600;line-height:1.3}.kamera-collapsible__subtitle{font-size:.75rem;font-weight:500;color:var(--text-secondary);line-height:1.35}.kamera-collapsible__chevron{flex-shrink:0;font-size:.7rem;opacity:.65;padding-top:.2rem}.kamera-collapsible__body{padding-top:.65rem}.kamera-collapsible--collapsed{padding-bottom:0}.kamera-page__rollo.kamera-collapsible{margin-top:.35rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pool-rollo{display:flex;flex-direction:column;gap:.6rem;width:100%;min-width:0}.pool-rollo__meta{display:flex;flex-wrap:wrap;gap:.5rem}.pool-rollo__pill{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:var(--radius-sm, 8px);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);background:#94a3b81f;border:1px solid rgba(148,163,184,.25)}.pool-rollo__pill--online{color:#059669;background:#10b9811f;border-color:#10b9814d}.pool-rollo__pill--offline{color:#dc2626;background:#ef44441f;border-color:#ef44444d}.pool-rollo__pill--moving{color:#0369a1;background:#0ea5e924;border-color:#0ea5e959}.pool-rollo__error{margin:0;font-size:.85rem;color:#dc2626;font-weight:600}.pool-rollo__buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;touch-action:none;user-select:none}.pool-rollo__btn{position:relative;appearance:none;border:1px solid rgba(15,23,42,.12);border-radius:var(--radius-md, 12px);padding:.85rem .5rem;font-size:1rem;font-weight:700;letter-spacing:.06em;cursor:pointer;color:var(--text-primary);background:#ffffff8c;overflow:hidden;transition:transform .12s ease,border-color .12s ease}.pool-rollo__btn:disabled{opacity:.45;cursor:not-allowed}.pool-rollo__btn:not(:disabled):active{transform:scale(.98)}.pool-rollo__btn--auf.is-active,.pool-rollo__btn--zu.is-active{border-color:#0ea5e98c}.pool-rollo__btn--auf.is-running,.pool-rollo__btn--zu.is-running{color:#0f172a}.pool-rollo__btn-label{position:relative;z-index:1;display:inline-flex;flex-direction:column;align-items:center;gap:.15rem;line-height:1.1}.pool-rollo__btn-time{font-size:.78rem;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums;opacity:.9}.pool-rollo__btn--stop{background:#ef444429;border-color:#ef444466;color:#b91c1c}.pool-rollo__hint{margin:0;font-size:.75rem;color:var(--text-tertiary);line-height:1.35}@media(prefers-reduced-motion:reduce){.pool-rollo__btn{transition:none}}.briefe-page{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.briefe-page__header{display:flex;flex-direction:column;gap:.75rem}@media(min-width:640px){.briefe-page__header{flex-direction:row;align-items:flex-start;justify-content:space-between}}.briefe-page__eyebrow{font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary, #6b7280);margin:0 0 .25rem}.briefe-page__status{font-size:.9rem;color:var(--text-secondary, #4b5563)}.briefe-page__status-error{color:var(--accent-red, #dc2626);font-weight:600}.briefe-page__actions{display:flex;gap:.5rem;flex-wrap:wrap}.briefe-page__btn{padding:.45rem .9rem;border-radius:8px;border:1px solid var(--border-subtle, rgba(255, 255, 255, .15));background:var(--btn-secondary-bg, rgba(255, 255, 255, .06));color:inherit;font:inherit;cursor:pointer}.briefe-page__btn:disabled{opacity:.5;cursor:not-allowed}.briefe-page__btn--primary{border-color:var(--accent-blue, #2563eb);background:#2563eb26}.briefe-page__unlock{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;max-width:28rem}.briefe-page__unlock-title{margin:0;font-size:1.25rem;font-weight:600}.briefe-page__unlock-text{margin:0;font-size:.9rem;color:var(--text-secondary, #4b5563);line-height:1.45}.briefe-page__unlock-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.briefe-page__btn--unlock{width:100%;min-height:3.25rem;padding:.9rem 1.25rem;font-size:1.05rem;font-weight:600}.briefe-page__unlock-wait{margin:0;width:100%;min-height:3.25rem;display:flex;align-items:center;justify-content:center;font-size:1.05rem;font-weight:600;color:var(--text-secondary, #4b5563)}.briefe-page__modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000073}.briefe-page__modal-card{width:100%;max-width:22rem;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.briefe-page__modal-title{margin:0;font-size:1.1rem;font-weight:600}.briefe-page__modal-subtitle{margin:0 0 .5rem;font-size:.85rem;color:var(--text-secondary, #4b5563)}.briefe-page__label{font-size:.8rem;font-weight:600;color:var(--text-secondary, #4b5563)}.briefe-page__input{width:100%;padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border-subtle, rgba(255, 255, 255, .12));background:var(--input-bg, rgba(0, 0, 0, .2));color:inherit;font:inherit;box-sizing:border-box}.briefe-page__modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.briefe-page__thumb--placeholder{background:#0000001f}.briefe-page__list{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.briefe-page__row{display:flex;gap:1rem;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .08))}.briefe-page__row:last-child{border-bottom:none}.briefe-page__thumb{width:48px;height:64px;object-fit:cover;border-radius:6px;flex-shrink:0;background:#00000026}.briefe-page__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.briefe-page__title{font-weight:600;font-size:1rem;margin:0;word-break:break-word}.briefe-page__meta{font-size:.85rem;color:var(--text-secondary, #4b5563);margin:0}.briefe-page__tags{display:flex;flex-wrap:wrap;gap:.35rem}.briefe-page__tag{font-size:.7rem;padding:.15rem .45rem;border-radius:999px;background:#3b82f61f;color:var(--accent-blue, #2563eb)}.briefe-page__row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.briefe-page__thumb-btn{padding:0;border:none;background:none;cursor:pointer;border-radius:6px;flex-shrink:0}.briefe-page__thumb-btn:focus-visible{outline:2px solid var(--accent-blue, #2563eb);outline-offset:2px}.briefe-page__link,.briefe-page__link-btn{font-size:.85rem;color:var(--accent-blue, #2563eb)}.briefe-page__link{text-decoration:none;align-self:flex-start}.briefe-page__link:hover{text-decoration:underline}.briefe-page__link-btn{padding:0;border:none;background:none;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.briefe-page__viewer{position:fixed;inset:0;z-index:200;touch-action:manipulation;display:flex;align-items:stretch;justify-content:stretch;padding:max(.25rem,env(safe-area-inset-top)) max(.25rem,env(safe-area-inset-right)) max(.25rem,env(safe-area-inset-bottom)) max(.25rem,env(safe-area-inset-left));background:#0000008c}.briefe-page__viewer-card.liquid-glass-panel{padding:0}.briefe-page__viewer-card{display:flex;flex-direction:column;flex:1;width:100%;max-width:none;height:100%;max-height:none;min-height:0;overflow:hidden}.briefe-page__viewer-header{display:flex;flex-wrap:wrap;gap:.35rem .5rem;align-items:center;justify-content:space-between;padding:.4rem .6rem;border-bottom:1px solid var(--border-subtle, rgba(255, 255, 255, .08));flex-shrink:0}.briefe-page__viewer-heading{flex:1;min-width:0}.briefe-page__viewer-title{margin:0;font-size:.9rem;font-weight:600;line-height:1.25;word-break:break-word}.briefe-page__viewer-meta{margin:.1rem 0 0;font-size:.75rem;color:var(--text-secondary, #4b5563);line-height:1.3}.briefe-page__viewer-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;flex-shrink:0}.briefe-page__viewer-toolbar .briefe-page__btn{padding:.3rem .55rem;font-size:.8rem}.briefe-page__viewer-body{flex:1;min-height:0;padding:0;display:flex;flex-direction:column}.briefe-page__viewer-status{margin:auto;text-align:center;color:var(--text-secondary, #4b5563);font-size:.9rem}.briefe-page__viewer-frame,.briefe-page__viewer-embed{flex:1;width:100%;height:100%;min-height:0;border:none;border-radius:0;background:#fff}.briefe-page__viewer-status .briefe-page__btn{margin-top:.75rem}.briefe-page__viewer-image{flex:1;width:100%;height:100%;min-height:0;max-width:100%;max-height:none;margin:0;object-fit:contain;border-radius:0;background:#fff}.briefe-page__empty{padding:2rem 1rem;text-align:center;color:var(--text-secondary, #4b5563)}.survival-offline-unlock{width:min(520px,92vw);margin:12vh auto 0;padding:1.25rem;display:grid;gap:.75rem}.survival-offline-unlock h2{margin:0;font-size:1.25rem}.survival-offline-unlock p{margin:0}.survival-offline-unlock label{display:grid;gap:.375rem;font-weight:600}.survival-offline-unlock input{border:1px solid var(--glass-border);background:var(--glass-bg);border-radius:.75rem;padding:.625rem .75rem;font:inherit;color:var(--text-primary)}.survival-offline-unlock button{width:fit-content;border:1px solid transparent;border-radius:.75rem;padding:.625rem 1rem;font:inherit;font-weight:600;color:#fff;background:linear-gradient(135deg,#2563eb,#10b981);cursor:pointer}.survival-offline-unlock button:disabled{opacity:.6;cursor:not-allowed}.survival-offline-unlock__message{font-size:.95rem;color:var(--text-secondary)}.app-loading-fallback,.app-error-boundary{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;background:linear-gradient(135deg,#0a1a2e,#1a1a3e,#2a1a4e);color:#fffffff2;text-align:center}.app-loading-fallback__spinner{width:2.5rem;height:2.5rem;border:3px solid rgba(255,255,255,.2);border-top-color:#fffffff2;border-radius:50%;animation:app-loading-spin .8s linear infinite}.app-loading-fallback__text{margin:1rem 0 0;font-size:.95rem}.app-error-boundary__title{margin:0 0 .75rem;font-size:1.25rem;font-weight:600}.app-error-boundary__message{margin:0 0 1.25rem;max-width:22rem;line-height:1.5;color:#fffc}.app-error-boundary__button{border:none;border-radius:.75rem;padding:.75rem 1.25rem;background:#ffffff24;color:inherit;font:inherit;font-weight:600;cursor:pointer}.app-error-boundary__button:hover{background:#ffffff38}@keyframes app-loading-spin{to{transform:rotate(360deg)}}#root{width:100%;margin:0;padding:0}:root{font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--body-text-color);background-color:transparent;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--app-background);color:var(--body-text-color);transition:background .4s ease,color .4s ease}a{color:inherit;transition:color .2s ease}button{font-family:inherit}
