:root {
  color-scheme: light;
  --ink: #102a43;
  --ink-soft: #486581;
  --navy: #0b253f;
  --blue: #1769aa;
  --teal: #0d9488;
  --orange: #e4772d;
  --canvas: #f3f6fa;
  --line: #dbe4ec;
  --white: #ffffff;
  --shadow: 0 16px 40px rgba(16, 42, 67, 0.09);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Mandantenbasierter Planner PoC */
.tenant-planner-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.tenant-planner-heading h2{margin:3px 0 5px;font-size:clamp(1.55rem,2.5vw,2.4rem)}.tenant-planner-heading p{margin:0;color:#75808a}.tenant-planner-heading-actions{display:flex;gap:9px}.tenant-planner-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid rgba(31,39,47,.09);border-radius:18px;background:rgba(255,255,255,.58);box-shadow:0 12px 30px rgba(30,38,44,.06)}.tenant-planner-toolbar label{display:grid;flex:1;gap:6px}.tenant-planner-toolbar label span{color:#5d6871;font-size:.62rem;font-weight:800}.tenant-planner-toolbar input{width:100%;min-height:44px;padding:0 14px;border:1px solid rgba(41,51,59,.14);border-radius:12px;background:#fff;font:inherit}.tenant-planner-toolbar>div{display:flex;padding:3px;border:1px solid rgba(31,39,47,.1);border-radius:12px;background:#edf0f2}.tenant-planner-toolbar button{min-height:36px;padding:0 16px;border:0;border-radius:9px;background:transparent;color:#64707a;font-weight:800}.tenant-planner-toolbar button.active{background:#fff;color:#20272d;box-shadow:0 4px 12px rgba(27,34,39,.08)}.tenant-planner-status{padding:12px 3px 10px;color:#74808a;font-size:.63rem;font-weight:750}.tenant-planner-board{display:grid;grid-auto-columns:minmax(270px,330px);grid-auto-flow:column;gap:14px;align-items:start;overflow-x:auto;padding:2px 2px 18px;scrollbar-gutter:stable}.tenant-planner-board.is-list{display:grid;grid-auto-flow:row;grid-template-columns:1fr;overflow:visible}.tenant-planner-column{display:grid;min-width:0;overflow:hidden;border:1px solid rgba(31,39,47,.1);border-radius:18px;background:rgba(238,241,243,.7)}.tenant-planner-column>header{display:flex;align-items:center;justify-content:space-between;padding:14px 15px}.tenant-planner-column>header h3{margin:0;font-size:.75rem}.tenant-planner-column>header span{display:grid;min-width:25px;height:25px;place-items:center;border-radius:999px;background:rgba(38,47,54,.08);font-size:.58rem}.tenant-planner-cards{display:grid;gap:9px;padding:0 9px 10px}.tenant-planner-card{display:grid;gap:10px;width:100%;padding:14px;border:1px solid rgba(31,39,47,.1);border-left:4px solid #7c858d;border-radius:13px;background:rgba(255,255,255,.92);box-shadow:0 8px 20px rgba(28,35,40,.05);color:#20262b;text-align:left;cursor:pointer}.tenant-planner-card:hover{border-color:rgba(31,39,47,.22);transform:translateY(-1px)}.tenant-planner-card.status-in_progress{border-left-color:#547a6b}.tenant-planner-card.status-waiting,.tenant-planner-card.priority-urgent{border-left-color:#a76048}.tenant-planner-card.status-done{opacity:.7}.tenant-planner-card strong{font-size:.69rem;line-height:1.48}.tenant-planner-card p{display:-webkit-box;overflow:hidden;margin:0;color:#69737b;font-size:.59rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tenant-planner-card>small{color:#7a848c;font-size:.54rem}.tenant-planner-card>div{display:flex;align-items:center;justify-content:space-between}.tenant-planner-card>div>span{padding:4px 7px;border-radius:999px;background:#edf0f1;color:#5f6971;font-size:.49rem;font-weight:800}.planner-card-avatars{display:flex}.planner-card-avatars b{display:grid;width:27px;height:27px;margin-left:-5px;place-items:center;border:2px solid #fff;border-radius:50%;background:#3b454e;color:#fff;font-size:.46rem;font-style:normal}.planner-column-empty{margin:5px;padding:22px 10px;color:#8a9298;font-size:.59rem;text-align:center}.tenant-planner-board.is-list .tenant-planner-column>header{padding-bottom:8px}.tenant-planner-board.is-list .tenant-planner-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.linked-planner-panel{display:grid;gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(31,39,47,.09)}.linked-planner-panel h3{margin:3px 0}.tenant-planner-dialog{width:min(1050px,calc(100vw - 30px));max-width:none;max-height:calc(100dvh - 30px);padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:28px;background:#eef1f3;box-shadow:0 35px 110px rgba(19,25,29,.3)}.tenant-planner-dialog::backdrop{background:rgba(24,29,33,.52);backdrop-filter:blur(12px)}.tenant-planner-dialog-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 30px)}.tenant-planner-dialog-shell>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 27px;border-bottom:1px solid rgba(31,39,47,.09);background:rgba(255,255,255,.66)}.tenant-planner-dialog-shell>header h2{margin:4px 0;font-size:1.35rem}.tenant-planner-dialog-shell>header p{margin:0;color:#77818a;font-size:.62rem}.tenant-planner-dialog-shell>header>button{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(31,39,47,.12);border-radius:50%;background:#fff;font-size:1.1rem}.tenant-planner-dialog-body{display:grid;gap:16px;overflow:auto;padding:22px 27px}.planner-form-grid{display:grid;gap:12px}.planner-form-identification{grid-template-columns:repeat(5,minmax(0,1fr))}.planner-form-dates{grid-template-columns:repeat(4,minmax(0,1fr))}.planner-form-routing{grid-template-columns:2fr 1fr 1fr}.planner-form-grid label,.planner-notes-field{display:grid;gap:6px}.planner-form-grid label>span,.planner-notes-field>span,.planner-people-field>span{color:#506579;font-size:.59rem;font-weight:850}.planner-form-grid input,.planner-form-grid select,.planner-notes-field textarea{width:100%;min-height:45px;padding:10px 12px;border:1px solid rgba(31,39,47,.13);border-radius:12px;background:rgba(255,255,255,.88);font:inherit}.planner-form-grid small{color:#7e878e;font-size:.48rem}.planner-people-field{display:grid;gap:8px}.planner-people-field>div{display:flex;flex-wrap:wrap;gap:7px}.planner-people-field label{position:relative}.planner-people-field input{position:absolute;opacity:0}.planner-people-field label span{display:block;padding:8px 11px;border:1px solid rgba(31,39,47,.12);border-radius:999px;background:rgba(255,255,255,.72);font-size:.57rem;font-weight:750;cursor:pointer}.planner-people-field input:checked+span{border-color:#3e545f;background:#3e4850;color:#fff}.planner-pdf-link{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 14px;border:1px solid rgba(31,39,47,.12);border-radius:12px;background:#fff;color:#29343c;font-size:.62rem;font-weight:850;text-decoration:none}.tenant-planner-dialog-shell>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 27px;border-top:1px solid rgba(31,39,47,.09);background:rgba(255,255,255,.72)}.tenant-planner-dialog-shell>footer p{margin:0;color:#8a4f42;font-size:.58rem}.tenant-planner-dialog-shell>footer>div{display:flex;gap:9px}
@media(max-width:900px){.tenant-planner-heading{align-items:flex-start;flex-direction:column}.tenant-planner-heading-actions{width:100%;flex-wrap:wrap}.planner-form-identification{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-form-dates,.planner-form-routing{grid-template-columns:repeat(2,minmax(0,1fr))}.tenant-planner-board.is-list .tenant-planner-cards{grid-template-columns:1fr}}
@media(max-width:620px){.tenant-planner-toolbar{align-items:stretch;flex-direction:column}.tenant-planner-toolbar>div button{flex:1}.tenant-planner-board{grid-auto-columns:minmax(84vw,84vw)}.planner-form-identification,.planner-form-dates,.planner-form-routing{grid-template-columns:1fr}.tenant-planner-dialog{width:100vw;max-height:100dvh;border-radius:0}.tenant-planner-dialog-shell{max-height:100dvh}.tenant-planner-dialog-shell>header,.tenant-planner-dialog-body,.tenant-planner-dialog-shell>footer{padding-right:17px;padding-left:17px}.tenant-planner-dialog-shell>footer{align-items:stretch;flex-direction:column}.tenant-planner-dialog-shell>footer>div{justify-content:flex-end}}

/* V57 · iPhone-Dialoge, kompakte RoE-Details und PV-Prognose */
html.dialog-scroll-locked { height:100%; overflow:hidden; overscroll-behavior:none; }
body.dialog-scroll-locked { position:fixed; right:0; left:0; width:100%; overflow:hidden; overscroll-behavior:none; touch-action:none; }
.energy-details-dialog[open] { position:fixed; inset:0; overflow:hidden; }
.energy-details-shell { height:min(860px,calc(100dvh - 34px)); max-height:100%; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y pinch-zoom; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
.energy-chart { touch-action:pan-x pinch-zoom; }
.dashboard-info-shell { max-height:min(82dvh,760px); overflow:hidden; }
.dashboard-info-body { overscroll-behavior:contain; touch-action:pan-y pinch-zoom; -webkit-overflow-scrolling:touch; }
.energy-details-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
.energy-details-kpis .energy-net-kpi { border-color:rgba(54,76,66,.16); background:linear-gradient(145deg,rgba(243,248,245,.86),rgba(255,255,255,.52)); }

.energy-pv-forecast-compact { display:flex; align-items:center; gap:9px; margin:0 16px 10px; padding:8px 11px; overflow:hidden; border:1px solid rgba(48,68,60,.12); border-radius:11px; background:rgba(244,248,246,.64); }
.energy-pv-forecast-compact[hidden] { display:none!important; }
.energy-pv-forecast-compact small { flex:0 0 auto; color:#68736e; font-size:.5rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.energy-pv-forecast-compact strong { overflow:hidden; color:#30423a; font-size:.57rem; text-overflow:ellipsis; white-space:nowrap; }
.energy-charging-advice { display:block; }
.energy-charging-advice>header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.energy-charging-advice>header>div { display:grid; gap:3px; }
.energy-charging-advice>header>span { flex:0 0 auto; padding:6px 9px; border:1px solid rgba(52,74,64,.12); border-radius:999px; color:#52635b; background:rgba(255,255,255,.58); font-size:.56rem; font-weight:820; }
.pv-forecast-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:13px; }
.pv-forecast-day { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 9px; padding:11px; border:1px solid rgba(46,61,54,.09); border-radius:13px; background:rgba(255,255,255,.48); }
.pv-forecast-day.is-best { border-color:rgba(52,82,68,.24); box-shadow:inset 3px 0 0 rgba(55,86,71,.58); }
.pv-forecast-day>div { display:grid; gap:3px; min-width:0; }
.pv-forecast-day>div small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pv-forecast-day>div strong { color:#303b36; font-size:.64rem; }
.pv-forecast-day>div span,.pv-forecast-day>p { color:#6c7671; font-size:.53rem; line-height:1.38; }
.pv-forecast-day>b { display:grid; min-width:38px; height:38px; place-content:center; border:1px solid rgba(52,74,64,.11); border-radius:50%; background:rgba(255,255,255,.67); color:#35483f; font-size:.68rem; text-align:center; }
.pv-forecast-day>b small { display:block; font-size:.37rem; }
.pv-forecast-day>p { grid-column:1/-1; margin:0; }
.energy-charging-advice>footer { margin-top:10px; }
.dashboard-pv-forecast { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:13px; }
.dashboard-pv-row { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:11px 12px; border:1px solid rgba(31,39,47,.08); border-radius:12px; background:rgba(255,255,255,.48); }
.dashboard-pv-row>div { display:grid; gap:3px; min-width:0; }.dashboard-pv-row small { color:#737d78; font-size:.52rem; }.dashboard-pv-row strong { font-size:.63rem; }.dashboard-pv-row span { color:#737b77; font-size:.53rem; line-height:1.4; }
.dashboard-pv-row>b { flex:0 0 auto; padding:4px 7px; border-radius:999px; color:#405a4e; background:rgba(80,112,96,.10); font-size:.48rem; }

.dashboard-roe-mobile-details { display:none; }
.roe-summary-body { gap:10px; }
.roe-summary-body section { display:grid; gap:12px; }
.roe-summary-time>div,.roe-summary-values { grid-template-columns:repeat(3,minmax(0,1fr)); }
.roe-summary-time>div { display:grid; gap:8px; }
.roe-summary-time span,.roe-summary-values span { display:grid; gap:4px; padding:12px; border:1px solid rgba(31,39,47,.08); border-radius:12px; background:rgba(255,255,255,.54); }
.roe-summary-body span small { color:#747c83; font-size:.54rem; }.roe-summary-body span strong { font-size:.75rem; font-variant-numeric:tabular-nums; }
.roe-summary-link { display:flex; align-items:center; justify-content:space-between; min-height:46px; padding:0 15px; border:1px solid rgba(31,39,47,.12); border-radius:13px; color:#293139; background:rgba(255,255,255,.65); font-size:.68rem; font-weight:850; text-decoration:none; }

/* Hochwertige neutrale Liquid-Glass-Startsequenz */
.portal-intro { isolation:isolate; perspective:1200px; background:radial-gradient(circle at 50% 42%,#fff 0,rgba(248,249,250,.97) 25%,rgba(227,231,234,.96) 72%,#dce1e5 100%); }
.portal-intro::before { position:absolute; z-index:-3; inset:-18%; background:radial-gradient(ellipse 38% 31% at 32% 34%,rgba(255,255,255,.98),transparent 72%),radial-gradient(ellipse 34% 28% at 70% 65%,rgba(255,255,255,.74),transparent 76%),linear-gradient(125deg,transparent 32%,rgba(255,255,255,.72) 48%,transparent 64%); filter:blur(16px); content:""; animation:portalLiquidBackdrop 2.4s cubic-bezier(.16,1,.3,1) both; }
.portal-intro::after { position:absolute; z-index:5; top:-40%; left:-35%; width:34%; height:180%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent); filter:blur(24px); opacity:0; transform:rotate(18deg); content:""; pointer-events:none; }
.portal-intro.is-ready::after { animation:portalLiquidBeam 1.25s .48s cubic-bezier(.22,.75,.2,1) both; }
.portal-intro-glow { width:min(82vw,930px); border-radius:44% 56% 61% 39% / 55% 43% 57% 45%; background:linear-gradient(145deg,rgba(255,255,255,.43),rgba(255,255,255,.12)); box-shadow:0 60px 160px rgba(25,31,37,.13),inset 0 1px 0 rgba(255,255,255,.95),inset 24px 16px 50px rgba(255,255,255,.25); filter:drop-shadow(0 24px 46px rgba(31,37,43,.08)); }
.portal-intro-stage { width:min(78vw,520px); }
.portal-intro-lens { position:relative; display:grid; width:min(78vw,470px); min-height:228px; place-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.82); border-radius:48px; background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(238,241,243,.22)); box-shadow:0 34px 90px rgba(25,30,35,.16),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.45); -webkit-backdrop-filter:blur(42px) saturate(138%); backdrop-filter:blur(42px) saturate(138%); transform-style:preserve-3d; }
.portal-intro-refraction { position:absolute; inset:-30%; border-radius:46%; background:conic-gradient(from 110deg,transparent,rgba(255,255,255,.58),transparent 34%,rgba(167,177,185,.16),transparent 62%); filter:blur(20px); opacity:.55; }
.portal-intro-sheen { position:absolute; top:-35%; left:-42%; width:46%; height:175%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent); filter:blur(18px); transform:rotate(18deg); }
.portal-intro-logo { position:relative; z-index:2; width:82%; min-height:130px; filter:none; }
.portal-intro-logo .brand-mark { box-shadow:0 22px 48px rgba(24,29,34,.19),inset 0 1px 0 rgba(255,255,255,.52); }
.portal-intro-logo .brand-mark.custom-logo { width:100%; height:132px; mix-blend-mode:multiply; }
.portal-intro-orb { position:absolute; border:1px solid rgba(255,255,255,.68); border-radius:50%; background:linear-gradient(145deg,rgba(255,255,255,.64),rgba(213,219,224,.16)); box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 22px 60px rgba(24,30,36,.10); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); opacity:0; }
.portal-intro-orb-a { top:17%; left:18%; width:74px; height:74px; }.portal-intro-orb-b { right:15%; bottom:17%; width:104px; height:104px; }.portal-intro-orb-c { top:22%; right:25%; width:38px; height:38px; }
.portal-intro.is-ready .portal-intro-glow { animation:portalLiquidField 2.15s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-stage { animation:portalLiquidLens 1.45s .08s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-logo { animation:portalLiquidLogo 1.2s .2s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-sheen { animation:portalLiquidSheen 1.05s .42s cubic-bezier(.22,.75,.2,1) both; }
.portal-intro.is-ready .portal-intro-orb-a { animation:portalLiquidOrbA 1.8s .1s cubic-bezier(.16,1,.3,1) both; }.portal-intro.is-ready .portal-intro-orb-b { animation:portalLiquidOrbB 1.9s .18s cubic-bezier(.16,1,.3,1) both; }.portal-intro.is-ready .portal-intro-orb-c { animation:portalLiquidOrbC 1.6s .26s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-leaving .portal-intro-lens { transform:translateZ(80px) scale(1.08); opacity:0; transition:transform .62s cubic-bezier(.22,.75,.2,1),opacity .5s; }
@keyframes portalLiquidBackdrop { from{transform:scale(.88) rotate(-3deg);opacity:.2} to{transform:scale(1) rotate(0);opacity:1} }
@keyframes portalLiquidBeam { 0%{left:-35%;opacity:0} 22%{opacity:.76} 100%{left:120%;opacity:0} }
@keyframes portalLiquidField { 0%{opacity:0;transform:scale(.68) rotate(-8deg)} 58%{opacity:.64} 100%{opacity:.46;transform:scale(1) rotate(0)} }
@keyframes portalLiquidLens { from{opacity:0;transform:translateY(30px) rotateX(13deg) scale(.88)} to{opacity:1;transform:translateY(0) rotateX(0) scale(1)} }
@keyframes portalLiquidLogo { from{opacity:0;filter:blur(15px);transform:translateZ(-40px) scale(.88)} to{opacity:1;filter:blur(0);transform:translateZ(22px) scale(1)} }
@keyframes portalLiquidSheen { from{left:-42%;opacity:0} 30%{opacity:.9} to{left:112%;opacity:0} }
@keyframes portalLiquidOrbA { from{opacity:0;transform:translate(-44px,36px) scale(.45)} to{opacity:.62;transform:translate(0,0) scale(1)} }
@keyframes portalLiquidOrbB { from{opacity:0;transform:translate(48px,-30px) scale(.45)} to{opacity:.54;transform:translate(0,0) scale(1)} }
@keyframes portalLiquidOrbC { from{opacity:0;transform:translate(20px,22px) scale(.35)} to{opacity:.72;transform:translate(0,0) scale(1)} }

@media (max-width:680px) {
  .energy-details-dialog[open] { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; border-radius:0; }
  .energy-details-shell { width:100%; height:100dvh; max-height:none; padding-bottom:max(12px,env(safe-area-inset-bottom)); overflow-y:scroll; scrollbar-gutter:auto; }
  .energy-details-shell>header { padding-top:max(17px,env(safe-area-inset-top)); }
  .energy-details-kpis { grid-template-columns:1fr 1fr; }
  .pv-forecast-list { grid-template-columns:1fr; }
  .energy-charging-advice>header { align-items:flex-start; flex-direction:column; }
  .energy-details-shell>footer { align-items:stretch; flex-direction:column; }
  .energy-details-shell>footer button { width:100%; }
  .dashboard-pv-forecast { grid-template-columns:1fr; }
  .dashboard-roe-mobile-details { display:flex; align-items:center; justify-content:space-between; width:calc(100% - 26px); min-height:42px; margin:0 13px 13px; padding:0 13px; border:1px solid rgba(31,39,47,.10); border-radius:12px; color:#30383f; background:rgba(255,255,255,.58); font:inherit; font-size:.62rem; font-weight:850; }
  .dashboard-roe-worktime>span:nth-of-type(n+3),.dashboard-roe-total { display:none; }
  .dashboard-roe-worktime { grid-template-columns:minmax(0,1.45fr) repeat(2,minmax(70px,.6fr)); }
  .dashboard-roe-worktime-title span { display:none; }
  .roe-summary-dialog[open] { width:calc(100vw - 18px); max-height:calc(100dvh - 18px); }
  .roe-summary-time>div,.roe-summary-values { grid-template-columns:1fr; }
  .portal-intro-lens { width:min(86vw,390px); min-height:188px; border-radius:36px; }
  .portal-intro-logo .brand-mark.custom-logo { height:104px; }
  .portal-intro-orb-a { top:13%; left:4%; width:52px; height:52px; }.portal-intro-orb-b { right:2%; bottom:13%; width:76px; height:76px; }.portal-intro-orb-c { right:16%; }
}

/* Build 152: Der Assistent zeigt bewusst nur Heute, Morgen und Übermorgen. */
.energy-assistant-days { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
@media (max-width:620px) {
  .energy-assistant-days { display:grid; grid-template-columns:1fr; overflow:visible; }
  .energy-assistant-day { width:100%; min-height:96px; }
}

/* V142 final cascade guard. */
html.energy-app-host,html.energy-app-host body{min-width:0;min-height:100%;overflow-x:hidden;background:#080c12!important}
.energy-app-host .workspace{width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important;overflow-x:hidden!important;background:#080c12!important}
.energy-app-host #energy-statisticsView,.energy-app-host .dynamics-app{width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;background:#080c12!important}
.energy-statistics-view .dynamics-battery-card .marstek-soc-ring{background:radial-gradient(circle,#101923 0 58%,transparent 59%),conic-gradient(var(--dyn-storage) var(--soc,0%),#202b35 0)!important}

/* V142 – 21Dynamics bleibt als eigenständige ESP32-Oberfläche im Vollbild. */
html.energy-app-host,
html.energy-app-host body {
  min-width:0;
  min-height:100%;
  overflow-x:hidden;
  background:#080c12!important;
}
.energy-app-host .workspace {
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
  background:#080c12!important;
}
.energy-app-host #energy-statisticsView,
.energy-app-host .dynamics-app {
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  background:#080c12!important;
}
.energy-statistics-view .dynamics-battery-card .marstek-soc-ring {
  background:
    radial-gradient(circle,#101923 0 58%,transparent 59%),
    conic-gradient(var(--dyn-storage) var(--soc,0%),#202b35 0)!important;
}

/* 21Dynamics v141 — verbindliche ESP32-GUI-Struktur */
.energy-statistics-view .dynamics-app{--dyn-panel:#111a24;--dyn-panel-deep:#0c141d;--dyn-edge:#263846;--dyn-muted:#91a5b2;grid-template-columns:96px minmax(0,1fr)}
.energy-statistics-view .dynamics-rail{width:96px}.energy-statistics-view .dynamics-main{padding:0 34px 52px}.energy-statistics-view .dynamics-header{grid-template-columns:1fr auto auto auto;min-height:76px}.dynamics-storage-action{min-height:42px;padding:0 19px;border:1px solid #50606e;border-radius:999px;color:#fff;background:#5d6974;font:inherit;font-size:.75rem;font-weight:850;cursor:pointer}.dynamics-storage-action:hover{background:#6b7884}.energy-statistics-view .dynamics-exit{padding:0 13px;color:#9eafbb;background:#111b24}
.dynamics-flow-card{padding-bottom:20px}.dynamics-flow-priority{width:max-content;max-width:calc(100% - 52px);margin:9px 26px 7px;padding:7px 11px;border:1px solid #234153;border-radius:999px;color:#9ab0bd;background:#0c161f;font-size:.67rem;font-weight:750}.dynamics-flow-stage{position:relative;min-width:760px;min-height:360px;margin:13px 22px 0;border:1px solid #243747;border-radius:22px;background:radial-gradient(circle at 50% 50%,#123143 0,#0f1d28 25%,#101820 62%,#0d141c 100%);overflow:hidden}.dynamics-flow-stage:before{position:absolute;inset:0;background-image:linear-gradient(rgba(111,232,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(111,232,255,.032) 1px,transparent 1px);background-size:34px 34px;content:"";mask-image:radial-gradient(circle,#000 15%,transparent 72%)}.dynamics-energy-routes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.dynamics-energy-routes .route-base{fill:none;stroke:#334a58;stroke-width:5;stroke-linecap:round}.dynamics-energy-routes .route-live{fill:none;stroke-width:4;stroke-linecap:round;stroke-dasharray:9 15;animation:dynamics-route-move 1.3s linear infinite;filter:drop-shadow(0 0 5px currentColor)}.dynamics-energy-routes .route-live.reverse{animation-direction:reverse}.dynamics-energy-routes .route-live.idle,.dynamics-flow-stage.is-offline .route-live{opacity:.12;animation:none}.dynamics-energy-routes .route-pv{stroke:#4bea73;color:#4bea73}.dynamics-energy-routes .route-grid{stroke:#ffd84c;color:#ffd84c}.dynamics-energy-routes .route-home{stroke:#63e6ff;color:#63e6ff}.dynamics-energy-routes .route-battery{stroke:#4aa8ff;color:#4aa8ff}@keyframes dynamics-route-move{to{stroke-dashoffset:-48}}
.dynamics-map-node{position:absolute;z-index:2;width:172px;padding:15px 17px;border:1px solid #345065;border-radius:18px;color:#f7fbff;background:linear-gradient(145deg,#152430,#0d171f);box-shadow:0 16px 35px rgba(0,0,0,.47),inset 0 1px rgba(255,255,255,.05)}.dynamics-map-node small{display:block;color:#9cb0bd;font-size:.63rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.dynamics-map-node strong{display:block;margin-top:7px;color:#f7fbff;font-size:1.38rem}.dynamics-map-node span{display:block;margin-top:4px;color:#8297a5;font-size:.64rem}.dynamics-map-node.node-pv{top:7%;left:3%;border-color:#269b4b;box-shadow:0 16px 35px rgba(0,0,0,.47),0 0 28px rgba(49,221,101,.13)}.dynamics-map-node.node-grid{bottom:7%;left:3%;border-color:#9a7c17;box-shadow:0 16px 35px rgba(0,0,0,.47),0 0 28px rgba(255,216,76,.1)}.dynamics-map-node.node-home{top:50%;right:3%;width:185px;border-color:#2da2bd;transform:translateY(-50%);box-shadow:0 16px 35px rgba(0,0,0,.47),0 0 34px rgba(99,230,255,.13)}.dynamics-map-node.node-hub{top:50%;left:50%;display:grid;width:156px;height:156px;place-content:center;border:2px solid #4ebad2;border-radius:50%;text-align:center;background:radial-gradient(circle,#183443 0,#0e202b 66%);transform:translate(-50%,-50%);box-shadow:0 0 0 9px rgba(75,220,242,.04),0 0 45px rgba(75,220,242,.18)}.dynamics-map-node.node-hub:after{position:absolute;inset:-14px;border:1px dashed rgba(92,218,239,.33);border-radius:50%;content:"";animation:dynamics-spin 18s linear infinite}.dynamics-map-node.node-hub strong{margin:4px 0;color:#dffaff;font-size:.9rem}.dynamics-map-node.node-hub span{margin:0 12px;font-size:.58rem}.dynamics-map-node.node-battery{bottom:3%;left:50%;width:160px;border-color:#2877bc;text-align:center;transform:translateX(-50%)}
.dynamics-flow-label{position:absolute;z-index:3;padding:6px 10px;border:1px solid #2b4251;border-radius:99px;color:#b9cbd6;background:rgba(10,18,25,.86);box-shadow:0 7px 18px rgba(0,0,0,.53);font-size:.61rem;font-weight:800;white-space:nowrap}.dynamics-flow-label.label-pv{top:12%;left:27%}.dynamics-flow-label.label-home{top:39%;right:23%}.dynamics-flow-label.label-grid{bottom:12%;left:25%}.dynamics-flow-label.label-battery{bottom:23%;left:52%}.dynamics-flow-legend{display:flex;gap:8px;flex-wrap:wrap;margin:12px 22px 0}.dynamics-flow-legend span{padding:7px 10px;border:1px solid #263846;border-radius:10px;color:#91a5b2;background:#101820;font-size:.62rem}.dynamics-flow-legend b{color:#edfaff}.dynamics-flow-explanation{margin:10px 22px 0;color:#92a6b3;font-size:.69rem;line-height:1.5}.dynamics-flow-explanation strong{color:#d9f8ff}
.dynamics-meter-panel,.dynamics-frequency-card{margin-top:14px;border:1px solid var(--dyn-edge);border-radius:22px;color:#edf5fa;background:linear-gradient(145deg,#111b25,#0b141c);box-shadow:0 18px 48px rgba(0,0,0,.18)}.dynamics-meter-panel{padding:24px 26px}.dynamics-meter-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dynamics-meter-panel h3,.dynamics-frequency-card h3{margin:0;color:#fff;font-size:1.12rem}.dynamics-meter-panel header small{display:block;margin-top:5px;color:#a7adb7}.dynamics-meter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:16px}.dynamics-meter-grid article{position:relative;min-height:102px;padding:17px 18px;border:1px solid var(--dyn-edge);border-radius:15px;background:linear-gradient(135deg,rgba(13,21,29,.92),rgba(20,29,39,.84));overflow:hidden}.dynamics-meter-grid article:before{position:absolute;top:0;bottom:0;left:0;width:3px;background:#4ea6ff;content:""}.dynamics-meter-grid small{display:block;color:#899ca9;font-size:.58rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.dynamics-meter-grid strong{display:block;margin:7px 0 4px;color:#fff;font-size:1.23rem}.dynamics-meter-grid span{display:block;color:#8193a5;font-size:.68rem;overflow-wrap:anywhere}
.energy-statistics-view .dynamics-battery-card{margin-top:14px!important;border-radius:22px;overflow:hidden;background:radial-gradient(circle at 18% 20%,rgba(63,155,255,.13),transparent 27%),linear-gradient(135deg,#121b26,#0c141d)}.energy-statistics-view .dynamics-battery-card>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 26px;border-bottom:1px solid #273848}.energy-statistics-view .dynamics-battery-card>header h3{margin:6px 0;color:#fff;font-size:1.2rem}.energy-statistics-view .dynamics-battery-card>header .eyebrow{color:#68c7ff}.energy-statistics-view .dynamics-battery-card>header>span{padding:8px 12px;border-radius:999px;color:#a8bac7;background:#182733;font-size:.65rem;font-weight:800}.energy-statistics-view .dynamics-battery-card>header>span.online{color:#70eb9b;background:#123624}.dynamics-battery-body{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:24px 26px}.energy-statistics-view .dynamics-battery-card .marstek-soc-ring{width:148px;height:148px}.dynamics-battery-details{min-width:0}.dynamics-battery-lead{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.dynamics-battery-lead strong{color:#fff;font-size:1.05rem}.dynamics-battery-lead span{color:#8ea0ad;font-size:.72rem}.energy-statistics-view .dynamics-battery-card dl{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;padding:0}.energy-statistics-view .dynamics-battery-card dl div{min-height:82px;padding:14px;border:1px solid #263746;border-radius:12px;background:rgba(8,15,22,.66)}.energy-statistics-view .dynamics-battery-card dl dt{color:#8294a2;font-size:.57rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.energy-statistics-view .dynamics-battery-card dl dd{margin-top:8px;color:#fff;font-size:1rem;font-weight:850}.dynamics-battery-note{grid-column:1/-1;margin:10px 0 0;padding:12px 14px;border-radius:11px;color:#9eb1bf;background:#101c27;font-size:.69rem}
.dynamics-frequency-card{padding:25px 28px;background:radial-gradient(circle at 50% 120%,rgba(70,220,240,.13),transparent 42%),linear-gradient(145deg,#131d28,#0d151e)}.dynamics-frequency-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dynamics-frequency-card header p{margin:5px 0 0;color:#91a2b1;font-size:.72rem}.dynamics-frequency-card header>div:last-child{text-align:right}.dynamics-frequency-card header strong{display:block;color:#fff;font-size:2rem;letter-spacing:-.04em}.dynamics-frequency-card header span{color:#8fa4b3;font-size:.7rem}.dynamics-frequency-scale{position:relative;margin:36px 20px 7px;padding-top:23px}.dynamics-frequency-scale>div{height:13px;border-radius:8px;background:linear-gradient(90deg,#f25562 0%,#e7ae3d 28%,#39d879 46%,#39d879 54%,#e7ae3d 72%,#f25562 100%);box-shadow:0 0 24px rgba(68,213,184,.16)}.dynamics-frequency-scale>i{position:absolute;top:16px;left:50%;width:2px;height:27px;background:#f4f8fb;opacity:.8;transform:translateX(-1px)}.dynamics-frequency-scale>b{position:absolute;top:4px;left:50%;width:4px;height:38px;border-radius:4px;background:#fff;box-shadow:0 0 13px #fff,0 0 25px #5ee7ff;transform:translateX(-2px);transition:left .7s cubic-bezier(.2,.8,.2,1)}.dynamics-frequency-scale>b:before{position:absolute;top:-7px;left:50%;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 0 13px #5ee7ff;content:"";transform:translateX(-50%)}.dynamics-frequency-scale p{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:12px;color:#9aacb9;font-size:.63rem;font-weight:800;letter-spacing:.07em}.dynamics-frequency-scale p span:nth-child(2){color:#f3f7fa;text-align:center}.dynamics-frequency-scale p span:last-child{text-align:right}.dynamics-frequency-card footer{display:flex;justify-content:space-between;gap:18px;margin-top:21px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);color:#91a3b1;font-size:.68rem}
@media(max-width:1050px){.energy-statistics-view .dynamics-app{grid-template-columns:76px minmax(0,1fr)}.energy-statistics-view .dynamics-rail{width:76px}.dynamics-live-layout{grid-template-columns:1fr}.dynamics-flow-card{overflow-x:auto}.energy-statistics-view .dynamics-battery-card dl{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.energy-statistics-view .dynamics-main{padding:0 10px 28px}.energy-statistics-view .dynamics-header{grid-template-columns:1fr auto;gap:8px}.energy-statistics-view .dynamics-header .energy-statistics-live{display:none}.energy-statistics-view .dynamics-storage-action{min-height:39px;max-width:138px;padding:0 12px;font-size:.61rem}.dynamics-tabs{display:none}.dynamics-command-hero{margin-top:10px}.dynamics-flow-card{padding:17px 13px;overflow:hidden}.dynamics-flow-card>header{padding:0}.dynamics-flow-priority{max-width:100%;margin:8px 0 0;border-radius:12px;white-space:normal}.dynamics-flow-stage{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"hub hub" "pv grid" "home home" "battery battery";gap:9px;min-width:0;min-height:0;margin:14px 0 0;padding:15px 12px;border-radius:17px}.dynamics-energy-routes,.dynamics-flow-label{display:none}.dynamics-map-node{position:relative!important;inset:auto!important;width:auto!important;min-width:0;min-height:88px;padding:12px 13px;border-radius:15px;transform:none!important}.dynamics-map-node.node-hub{grid-area:hub;width:134px!important;height:134px;min-height:0;justify-self:center}.dynamics-map-node.node-pv{grid-area:pv}.dynamics-map-node.node-grid{grid-area:grid}.dynamics-map-node.node-home{grid-area:home;min-height:78px}.dynamics-map-node.node-battery{grid-area:battery;min-height:78px}.dynamics-map-node small{font-size:.52rem}.dynamics-map-node strong{margin-top:5px;font-size:1.12rem}.dynamics-map-node span{font-size:.52rem;line-height:1.3}.dynamics-flow-legend{display:none}.dynamics-flow-explanation{margin:11px 0 0;padding:11px 12px;border:1px solid rgba(86,229,255,.09);border-radius:12px;background:rgba(12,25,34,.78);font-size:.61rem}.dynamics-balance-card{margin-top:10px;padding-bottom:12px}.dynamics-balance-card dl{grid-template-columns:1fr 1fr!important;gap:6px;margin:11px 13px 0}.dynamics-balance-card dl div{display:block;min-height:70px;padding:11px 8px 11px 12px;background:rgba(10,18,25,.58)}.dynamics-balance-card dt{font-size:.61rem}.dynamics-balance-card dd{margin-top:7px;font-size:.92rem}.dynamics-meter-panel{margin-top:10px;padding:17px 13px}.dynamics-meter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.dynamics-meter-grid article{min-height:94px;padding:13px 10px}.dynamics-meter-grid small{font-size:.48rem}.dynamics-meter-grid strong{font-size:.98rem}.dynamics-meter-grid span{font-size:.52rem}.dynamics-battery-body{grid-template-columns:1fr;padding:17px 13px;gap:17px}.energy-statistics-view .dynamics-battery-card .marstek-soc-ring{width:120px;height:120px;margin:auto}.energy-statistics-view .dynamics-battery-card dl{grid-template-columns:1fr 1fr;gap:7px}.energy-statistics-view .dynamics-battery-card dl div{min-width:0;padding:12px 10px}.dynamics-frequency-card{padding:18px 13px}.dynamics-frequency-card>header,.dynamics-frequency-card footer{flex-direction:column}.dynamics-frequency-card header>div:last-child{text-align:left}.dynamics-frequency-scale{margin-right:4px;margin-left:4px}.dynamics-frequency-scale p{font-size:.45rem}.dynamics-mobile-dock{grid-template-columns:repeat(7,1fr)}.dynamics-mobile-dock button{padding:0 2px;font-size:.45rem}.dynamics-mobile-dock button span{font-size:.9rem}}
@media(max-width:370px){.dynamics-meter-grid,.energy-statistics-view .dynamics-battery-card dl,.dynamics-balance-card dl{grid-template-columns:1fr!important}.dynamics-mobile-dock button{font-size:0}.dynamics-mobile-dock button span{font-size:1rem}}
.energy-statistics-view .energy-statistics-assistant{margin:0!important;padding:22px!important;border-radius:22px!important}.energy-assistant-calibration{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border:1px solid #236c80;border-radius:11px;background:linear-gradient(100deg,rgba(13,55,63,.88),rgba(15,38,66,.9))}.energy-assistant-calibration div{display:grid;gap:4px}.energy-assistant-calibration small{color:#63e6ff;font-size:.5rem;font-weight:900;letter-spacing:.08em}.energy-assistant-calibration strong{color:#fff;font-size:.86rem}.energy-assistant-calibration>span{max-width:58%;color:#a9c3d2;font-size:.54rem;line-height:1.45;text-align:right}.energy-statistics-view .energy-assistant-header h4{font-size:1.08rem}.energy-statistics-view .energy-assistant-meta article{min-height:62px}.energy-statistics-view .energy-assistant-analysis{padding:15px}.energy-statistics-view .energy-assistant-title h5{font-size:1rem}.energy-statistics-view .energy-assistant-kpis article{min-height:60px}.energy-statistics-view .energy-assistant-forecast{padding:14px}.energy-statistics-view .energy-assistant-day{min-height:90px}.energy-statistics-view .energy-assistant-chart{min-height:230px}.energy-statistics-view .energy-assistant-chart svg{min-width:900px}
@media(max-width:620px){.energy-statistics-view .energy-statistics-assistant{padding:11px!important}.energy-assistant-calibration{display:grid}.energy-assistant-calibration>span{max-width:none;text-align:left}.energy-statistics-view .energy-assistant-chart svg{min-width:0}}
.dynamics-analysis-hero{margin-bottom:12px;padding:25px 26px 11px;border:1px solid var(--dyn-edge);border-radius:22px;background:radial-gradient(circle at 85% 0,rgba(39,227,27,.12),transparent 34%),linear-gradient(135deg,#142231,#101820);box-shadow:0 18px 48px rgba(0,0,0,.18)}.dynamics-analysis-hero>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.dynamics-analysis-hero h2{margin:0 0 6px;color:#fff;font-size:1.4rem}.dynamics-analysis-hero header p{margin:0;color:#93a7b5;font-size:.72rem}.dynamics-analysis-hero header strong{padding:8px 12px;border-radius:999px;color:#6dea91;background:#10291e;font-size:.61rem}.dynamics-analysis-hero .energy-statistics-controls{margin:19px 0 0;padding:0;border:0;background:transparent;box-shadow:none}.dynamics-analysis-hero .energy-statistics-status{margin:10px 2px 0}
.energy-statistics-view .energy-statistics-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 12px}.energy-statistics-view .energy-statistics-kpis>.energy-reference-kpi{display:grid;align-content:center;gap:7px;min-height:112px;padding:18px 19px;border:1px solid #243746;border-radius:14px;color:#fff;background:#0d161f}.energy-reference-kpi small{color:#859dac!important;font-size:.58rem!important;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.energy-reference-kpi strong{color:#fff!important;font-size:1.15rem!important}.energy-reference-kpi span{color:#8fa4b3;font-size:.65rem}.energy-reference-kpi.pv,.energy-reference-kpi.direct{border-top:2px solid #42db74!important}.energy-reference-kpi.grid{border-top:2px solid #2196f3!important}.energy-reference-kpi.battery{border-top:2px solid #a579ff!important}.energy-statistics-view .energy-statistics-analysis-grid{grid-template-columns:minmax(0,2fr) minmax(250px,.75fr)!important}.energy-statistics-view .energy-statistics-chart-card,.energy-statistics-view .energy-source-card{border-radius:18px}.energy-statistics-view .energy-statistics-chart{min-height:365px;background:#090f15!important}.energy-statistics-view .energy-statistics-chart svg{height:365px}.energy-statistics-view .energy-stat-grid line{stroke:#354451}.energy-statistics-view .energy-source-donut{width:210px;height:210px}
@media(max-width:1050px){.energy-statistics-view .energy-statistics-kpis{grid-template-columns:1fr 1fr}.energy-statistics-view .energy-statistics-analysis-grid{grid-template-columns:1fr!important}}
@media(max-width:620px){.dynamics-analysis-hero{padding:18px 14px 11px}.dynamics-analysis-hero>header{display:grid}.dynamics-analysis-hero h2{font-size:1.2rem}.energy-statistics-view .energy-statistics-kpis{grid-template-columns:1fr 1fr}.energy-statistics-view .energy-statistics-kpis>.energy-reference-kpi{min-height:108px;padding:14px 11px}.energy-statistics-view .energy-statistics-chart{min-height:270px}.energy-statistics-view .energy-statistics-chart svg{height:270px}}
@media(max-width:370px){.energy-statistics-view .energy-statistics-kpis{grid-template-columns:1fr}}

/* 21Dynamics v2.8 — ESP32 dashboard visual language */
.energy-statistics-view{--dyn-bg:#080c12;--dyn-panel:#111b25;--dyn-panel-2:#181c22;--dyn-line:#263847;--dyn-text:#f4f6fa;--dyn-muted:#9da9b6;--dyn-pv:#27e31b;--dyn-grid:#ffe100;--dyn-load:#50d8f0;--dyn-storage:#8b66ff;--dyn-error:#ff5360;max-width:none!important;margin:0!important;padding:0!important;color:var(--dyn-text);background:var(--dyn-bg)}
.energy-statistics-view .eyebrow{color:#7e91a2}.dynamics-app,.dynamics-app *{box-sizing:border-box}.dynamics-app{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);min-height:100dvh;background:radial-gradient(circle at 82% -12%,#173149 0,transparent 36%),linear-gradient(135deg,#071018,#111820 52%,#080b10);font-family:Inter,"Segoe UI",system-ui,sans-serif}.dynamics-rail{position:sticky;z-index:5;top:0;display:flex;height:100dvh;flex-direction:column;align-items:center;border-right:1px solid #354453;background:rgba(8,13,19,.92);backdrop-filter:blur(18px)}
.dynamics-brand{display:grid;width:100%;height:72px;place-content:center;border-bottom:1px solid #283642;color:#fff;text-decoration:none;line-height:.9}.dynamics-brand b{font-size:1.25rem}.dynamics-brand span{color:#65d67a;font-size:1.15rem;font-weight:950}.dynamics-rail nav{display:flex;width:100%;flex:1;flex-direction:column;align-items:center;gap:9px;padding:17px 10px}.dynamics-rail button{display:grid;width:48px;height:48px;place-content:center;border:1px solid transparent;border-radius:13px;color:#8f9aa5;background:transparent;font-size:1.15rem;cursor:pointer}.dynamics-rail button:hover,.dynamics-rail button.active{border-color:#28465b;color:#fff;background:#152a3a;box-shadow:inset 0 0 18px rgba(57,177,232,.08)}
.dynamics-main{min-width:0;padding:0 28px 48px}.dynamics-header{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px;min-height:76px;border-bottom:1px solid #354655}.dynamics-header small{color:#70a6ce;font-size:.64rem;letter-spacing:.12em}.dynamics-header h2{margin:4px 0 0;color:#fff;font-size:1.28rem;letter-spacing:-.04em}.dynamics-exit{min-height:42px;padding:0 16px;border:1px solid #3b4956;border-radius:999px;color:#eff5fa;background:#1a2630;font-weight:800;cursor:pointer}.dynamics-tabs{display:flex;gap:6px;width:max-content;max-width:100%;margin:14px 0 18px;padding:6px;border:1px solid #24323e;border-radius:13px;background:#0b1219;overflow-x:auto;scrollbar-width:none}.dynamics-tabs button{min-height:40px;padding:0 17px;border:1px solid transparent;border-radius:9px;color:#a8b4c0;background:transparent;font-weight:700;white-space:nowrap;cursor:pointer}.dynamics-tabs button:hover,.dynamics-tabs button.active{border-color:#1f5678;color:#fff;background:linear-gradient(145deg,#0f3b59,#0c2940)}
.dynamics-screen{display:none}.dynamics-screen.active{display:block;animation:dynamics-in .22s ease-out}@keyframes dynamics-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}.dynamics-command-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;min-height:138px;padding:28px;border:1px solid #23503f;border-radius:26px;background:linear-gradient(105deg,rgba(17,43,58,.96),rgba(10,51,39,.92));box-shadow:0 20px 55px rgba(0,0,0,.22)}.dynamics-command-hero p{margin:0 0 12px;color:#59d8f0;font-size:.66rem;font-weight:900;letter-spacing:.13em}.dynamics-command-hero h1{margin:0;color:#fff;font-size:2rem;letter-spacing:-.045em}.dynamics-command-hero span{display:block;margin-top:6px;color:#a4b3c1}.dynamics-command-hero>div:last-child{text-align:right}.dynamics-command-hero>div:last-child small{color:#9eabb6;letter-spacing:.1em}.dynamics-command-hero>div:last-child strong{display:block;margin:6px 0;color:#fff;font-size:2.05rem}.dynamics-command-hero>div:last-child span{color:#6eec83;font-weight:750}
.dynamics-live-layout{display:grid;grid-template-columns:minmax(560px,2fr) minmax(285px,.9fr);gap:14px;margin-top:14px}.dynamics-flow-card,.dynamics-balance-card,.dynamics-section-head,.dynamics-placeholder-grid article,.dynamics-help-grid article{border:1px solid var(--dyn-line);background:linear-gradient(145deg,rgba(17,27,37,.98),rgba(12,19,27,.98));box-shadow:0 18px 48px rgba(0,0,0,.2)}.dynamics-flow-card,.dynamics-balance-card{min-height:390px;border-radius:22px}.dynamics-flow-card>header,.dynamics-balance-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 26px 0}.dynamics-flow-card h3,.dynamics-balance-card h3{margin:0;color:#fff;font-size:1rem}.dynamics-flow-card header small,.dynamics-balance-card header small{display:block;margin-top:5px;color:#7f91a1}.dynamics-live-badge{padding:8px 11px;border:1px solid #71343f;border-radius:999px;color:#fff;background:#2a1720;font-size:.62rem;font-weight:900}.dynamics-live-badge i{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:var(--dyn-error);box-shadow:0 0 12px var(--dyn-error)}
.dynamics-flow-stage{position:relative;min-height:315px;margin:0 22px 18px;overflow:hidden}.dynamics-flow-source{position:absolute;z-index:2;display:grid;align-content:center;width:180px;min-height:92px;padding:17px 20px;border:1px solid currentColor;border-radius:18px;background:#101b24}.dynamics-flow-source small{color:#d9e2e9;font-weight:800}.dynamics-flow-source strong{margin-top:9px;color:#fff;font-size:1.38rem}.dynamics-flow-source span{margin-top:4px;color:#7e8e9b;font-size:.7rem}.dynamics-flow-source.pv{top:34px;left:4%;color:var(--dyn-pv);background:radial-gradient(circle at 100% 100%,rgba(39,227,27,.2),transparent 48%),#101b24}.dynamics-flow-source.grid{bottom:34px;left:4%;color:var(--dyn-grid);background:radial-gradient(circle at 100% 100%,rgba(255,225,0,.17),transparent 48%),#101b24}.dynamics-flow-source.battery{right:4%;bottom:18px;color:var(--dyn-storage);background:radial-gradient(circle at 100% 100%,rgba(139,102,255,.18),transparent 48%),#101b24}.dynamics-flow-center{position:absolute;z-index:3;top:74px;left:60%;display:grid;width:178px;height:178px;place-content:center;border:1px solid #3985a2;border-radius:50%;color:#fff;text-align:center;background:radial-gradient(circle,#183445,#0e1922 66%);box-shadow:0 0 0 9px rgba(57,153,190,.06),0 0 38px rgba(58,189,230,.16)}.dynamics-flow-center:after{position:absolute;inset:-10px;border:1px dashed rgba(72,184,225,.35);border-radius:50%;content:"";animation:dynamics-spin 16s linear infinite}@keyframes dynamics-spin{to{transform:rotate(360deg)}}.dynamics-flow-center small{color:#a7b3bd;font-weight:800}.dynamics-flow-center strong{margin:8px 0 5px;font-size:1.65rem}.dynamics-flow-center span{color:#82909d;font-size:.7rem}
.dynamics-wire{position:absolute;z-index:1;height:2px;overflow:visible;background:#354755;transform-origin:left center}.dynamics-wire i{position:absolute;top:-4px;width:10px;height:10px;border-radius:50%;animation:dynamics-pulse 2s linear infinite}@keyframes dynamics-pulse{from{left:0}to{left:calc(100% - 10px)}}.dynamics-wire.pv-wire{top:94px;left:calc(4% + 180px);width:calc(56% - 180px);background:linear-gradient(90deg,var(--dyn-pv),#43cde7);transform:rotate(7deg)}.dynamics-wire.pv-wire i{background:var(--dyn-pv);box-shadow:0 0 14px var(--dyn-pv)}.dynamics-wire.grid-wire{bottom:79px;left:calc(4% + 180px);width:calc(56% - 180px);background:linear-gradient(90deg,var(--dyn-grid),#43cde7);transform:rotate(-9deg)}.dynamics-wire.grid-wire i{background:var(--dyn-grid);box-shadow:0 0 14px var(--dyn-grid);animation-delay:-.9s}.dynamics-wire.battery-wire{right:calc(4% + 175px);bottom:66px;width:16%;background:var(--dyn-storage);transform:rotate(19deg)}.dynamics-wire.battery-wire i{background:var(--dyn-storage);box-shadow:0 0 14px var(--dyn-storage);animation-delay:-.4s}.dynamics-flow-stage.is-offline .dynamics-wire i{animation-play-state:paused;opacity:.25}.dynamics-flow-stage.is-delayed .dynamics-wire i{animation-duration:4s}
.dynamics-balance-card dl{display:grid;gap:0;margin:20px 24px 0}.dynamics-balance-card dl div{display:grid;grid-template-columns:1fr auto;gap:12px;padding:20px 8px;border-bottom:1px solid #24323d}.dynamics-balance-card dl div:last-child{border:0}.dynamics-balance-card dt{color:#dbe3e9;font-weight:800}.dynamics-balance-card dd{margin:0;color:#fff;font-size:1.05rem;font-weight:900}.dynamics-balance-card .pv{border-left:3px solid var(--dyn-pv)}.dynamics-balance-card .grid{border-left:3px solid var(--dyn-grid)}.dynamics-balance-card .site{border-left:3px solid var(--dyn-load)}.dynamics-balance-card .battery{border-left:3px solid var(--dyn-storage)}.dynamics-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px;padding:24px 26px;border-radius:20px}.dynamics-section-head p{margin:0 0 7px;color:#5fcde9;font-size:.64rem;font-weight:900;letter-spacing:.12em}.dynamics-section-head h2{margin:0;color:#fff;font-size:1.35rem}.dynamics-section-head>span{color:#8b9aa7;font-size:.75rem}
.dynamics-placeholder-grid,.dynamics-help-grid,.dynamics-phase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dynamics-placeholder-grid article,.dynamics-help-grid article,.dynamics-phase-grid article{min-height:150px;padding:24px;border-radius:18px}.dynamics-placeholder-grid b,.dynamics-help-grid b{display:block;color:#fff;font-size:1.05rem}.dynamics-placeholder-grid span,.dynamics-help-grid p{display:block;margin:10px 0 0;color:#8e9ba7;line-height:1.55}.dynamics-phase-grid article{border:1px solid var(--dyn-line);color:#fff;background:#111b25}.dynamics-phase-grid h3{margin:0;color:#cbd5dd;letter-spacing:.09em}.dynamics-phase-grid>article>strong{display:block;margin:14px 0 20px;font-size:1.7rem}.dynamics-phase-grid dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.dynamics-phase-grid dl div{padding:12px;border-radius:10px;background:#0b141c}.dynamics-phase-grid dt{color:#7f909e;font-size:.66rem}.dynamics-phase-grid dd{margin:4px 0 0;font-weight:800}.dynamics-help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dynamics-mobile-dock{display:none}
.energy-statistics-view .energy-statistics-live-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.energy-statistics-view .energy-stat-live-card{min-height:105px;padding:19px;border-color:var(--dyn-line);color:#fff;background:#101a23;box-shadow:none}.energy-statistics-view .energy-stat-live-card strong{color:#fff}.energy-statistics-view .energy-stat-live-card span,.energy-statistics-view .energy-stat-live-card small{color:#7f909e}.energy-statistics-view .marstek-statistics-card,.energy-statistics-view .energy-device-telemetry,.energy-statistics-view .energy-statistics-controls,.energy-statistics-view .energy-statistics-chart-card,.energy-statistics-view .energy-source-card,.energy-statistics-view .energy-balance-card,.energy-statistics-view .energy-balance-status,.energy-statistics-view .energy-remote-control-card{border-color:var(--dyn-line);color:var(--dyn-text);background:linear-gradient(145deg,#111b25,#0b141c);box-shadow:0 18px 48px rgba(0,0,0,.18)}.energy-statistics-view .marstek-statistics-card{margin:0;padding:0}.energy-statistics-view .marstek-statistics-card>header,.energy-statistics-view .energy-device-telemetry>header{border-bottom-color:var(--dyn-line)}.energy-statistics-view .marstek-statistics-card h3,.energy-statistics-view .energy-device-telemetry h3,.energy-statistics-view .energy-statistics-chart-card h3,.energy-statistics-view .energy-source-card h3,.energy-statistics-view .energy-balance-card strong{color:#fff}.energy-statistics-view .marstek-statistics-card small,.energy-statistics-view .marstek-statistics-card dt,.energy-statistics-view .energy-device-telemetry small{color:#82919d}.energy-statistics-view .marstek-statistics-card dd{color:#eef4f8}.energy-statistics-view .marstek-soc-ring{background:conic-gradient(var(--dyn-storage) var(--soc),#202b35 0)}
.energy-statistics-view .energy-statistics-controls{margin:0 0 12px;padding:14px;border-radius:18px}.energy-statistics-view .energy-range-buttons{background:#080e14}.energy-statistics-view .energy-range-buttons button,.energy-statistics-view .energy-date-navigation button,.energy-statistics-view .energy-date-navigation input,.energy-statistics-view .energy-chart-zoom select{min-height:42px;border-color:#31424f;color:#dce5ec;background:#0d1720}.energy-statistics-view .energy-range-buttons button.active{color:#fff;background:#166497}.energy-statistics-view .energy-date-navigation label span,.energy-statistics-view .energy-statistics-status{color:#8999a7}.energy-statistics-view .energy-statistics-status{margin:8px 3px 13px}.energy-statistics-view .energy-statistics-kpis{gap:12px;margin:0 0 14px}.energy-statistics-view .energy-balance-row{border-top-color:#24333f}.energy-statistics-view .energy-balance-card header span,.energy-statistics-view .energy-source-card header small{color:#80909d}.energy-statistics-view .energy-statistics-analysis-grid{gap:14px;margin:0}.energy-statistics-view .energy-statistics-chart-card>header,.energy-statistics-view .energy-source-card>header{border-bottom-color:#24333f}.energy-statistics-view .energy-statistics-chart{min-height:390px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 86px,rgba(74,93,109,.18) 87px)}.energy-statistics-view .energy-stat-grid line{stroke:#344553}.energy-statistics-view .energy-stat-grid text,.energy-statistics-view .energy-chart-date{fill:#8394a1}.energy-statistics-view .energy-source-donut{color:#fff;background:radial-gradient(circle,#0f1a23 58%,transparent 59%),conic-gradient(var(--dyn-pv) 0 var(--source-pv),var(--dyn-storage) var(--source-pv) var(--source-battery),#5b9fde var(--source-battery) 100%)}.energy-statistics-view .energy-source-legend span{border-top-color:#24333f}.energy-statistics-view .energy-source-legend b,.energy-statistics-view .energy-source-legend strong{color:#dce5eb}.energy-statistics-view .energy-assistant-panel{margin:0!important;width:100%!important;max-width:none!important}.energy-statistics-view .energy-remote-control-card{margin:14px 0 0}
.energy-app-host .app-shell:not([hidden]){display:block!important}.energy-app-host .app-shell>.sidebar,.energy-app-host .mobile-app-header,.energy-app-host .mobile-nav{display:none!important}.energy-app-host .workspace{width:100%;min-height:100dvh;padding:0!important;background:#080c12!important}.energy-app-host .energy-statistics-view{width:100%;min-height:100dvh}.energy-app-host .dynamics-exit{display:none}.energy-app-host body{background:#080c12}.energy-app-host .portal-intro{background:#080c12}.energy-statistics-live.delayed{border-color:#745f1e;color:#ffe778;background:#24200e}.energy-statistics-live.delayed i{background:#ffe100}.dynamics-command-hero #dynamicsHeroState[data-state="delayed"]{color:#ffe778}.dynamics-command-hero #dynamicsHeroState[data-state="offline"]{color:#ff7781}
@media(max-width:1100px){.dynamics-live-layout{grid-template-columns:1fr}.dynamics-flow-card,.dynamics-balance-card{min-height:360px}.dynamics-balance-card{min-height:0;padding-bottom:16px}.dynamics-balance-card dl{grid-template-columns:1fr 1fr}.energy-statistics-view .energy-statistics-live-grid{grid-template-columns:1fr 1fr}.dynamics-placeholder-grid,.dynamics-phase-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){html:has(.energy-statistics-view:not([hidden])){overflow-x:hidden;background:#080c12}.energy-statistics-view{overflow:hidden}.dynamics-app{display:block;width:100%;max-width:100vw;min-height:100dvh;padding-bottom:calc(78px + env(safe-area-inset-bottom));overflow-x:hidden}.dynamics-rail{display:none}.dynamics-main{width:100%;max-width:100vw;min-width:0;padding:0 12px 26px}.dynamics-header{grid-template-columns:minmax(0,1fr) minmax(108px,140px);min-width:0;min-height:68px}.dynamics-header>div{min-width:0}.dynamics-header small{font-size:.48rem;line-height:1.4}.dynamics-header h2{font-size:1.08rem}.dynamics-header .dynamics-exit{display:none}.dynamics-header .energy-statistics-live{max-width:140px;padding:7px 9px;font-size:.56rem;line-height:1.25;text-align:center;white-space:normal}.dynamics-tabs{width:100%;max-width:100%;min-width:0;margin:10px 0 12px;padding:4px}.dynamics-tabs button{min-height:44px;flex:1;padding:0 13px}.dynamics-tabs button:nth-child(n+5){display:none}.dynamics-command-hero{display:grid;min-width:0;min-height:0;padding:20px;border-radius:20px}.dynamics-command-hero h1{font-size:1.55rem}.dynamics-command-hero>div:last-child{text-align:left}.dynamics-command-hero>div:last-child strong{font-size:1.65rem}.dynamics-live-layout{min-width:0;margin-top:10px}.dynamics-flow-card{min-width:0;min-height:480px}.dynamics-flow-card>header,.dynamics-balance-card>header{padding:19px 18px 0}.dynamics-flow-stage{min-width:0;min-height:410px;margin:0 10px 14px}.dynamics-flow-source{width:138px;min-height:80px;padding:13px}.dynamics-flow-source.pv{top:30px;left:1%}.dynamics-flow-source.grid{bottom:36px;left:1%}.dynamics-flow-source.battery{right:1%;bottom:36px}.dynamics-flow-center{top:154px;left:50%;width:144px;height:144px;transform:translateX(-50%)}.dynamics-wire.pv-wire{top:105px;left:34%;width:34%;transform:rotate(42deg)}.dynamics-wire.grid-wire{bottom:95px;left:34%;width:34%;transform:rotate(-42deg)}.dynamics-wire.battery-wire{right:26%;bottom:96px;width:24%;transform:rotate(47deg)}.dynamics-balance-card dl{grid-template-columns:1fr;margin:14px 16px 0}.energy-statistics-view .energy-statistics-live-grid{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.energy-statistics-view .energy-stat-live-card{min-width:0;min-height:94px;padding:14px}.energy-statistics-view .energy-stat-live-card strong{font-size:1.05rem}.energy-statistics-view .marstek-statistics-card{border-radius:18px}.energy-statistics-view .marstek-statistics-card>header{padding:17px}.energy-statistics-view .marstek-soc{grid-template-columns:110px 1fr;padding:15px}.energy-statistics-view .marstek-statistics-card dl{grid-template-columns:1fr 1fr;padding:0 15px 15px}.dynamics-section-head{display:grid;padding:19px;border-radius:17px}.dynamics-placeholder-grid,.dynamics-help-grid,.dynamics-phase-grid{grid-template-columns:1fr}.energy-statistics-view .energy-statistics-controls{display:grid;padding:10px}.energy-statistics-view .energy-range-buttons{display:flex;width:100%;overflow-x:auto}.energy-statistics-view .energy-range-buttons button{flex:0 0 auto}.energy-statistics-view .energy-date-navigation{display:grid;grid-template-columns:44px 1fr 1fr 44px;width:100%}.energy-statistics-view .energy-statistics-kpis{grid-template-columns:1fr}.energy-statistics-view .energy-statistics-analysis-grid{grid-template-columns:1fr}.energy-statistics-view .energy-statistics-chart-card>header{display:grid;padding:16px}.energy-statistics-view .energy-chart-actions{align-items:flex-start}.energy-statistics-view .energy-statistics-chart-scroll{overflow-x:hidden}.energy-statistics-view .energy-statistics-chart{min-height:300px;overflow:hidden}.energy-statistics-view .energy-statistics-chart svg{min-width:0!important;width:100%!important}.energy-statistics-view .energy-source-card{min-height:0}.dynamics-mobile-dock{position:fixed;z-index:20;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid #2b3a46;background:rgba(7,13,19,.96);backdrop-filter:blur(18px)}.dynamics-mobile-dock button{display:grid;min-height:52px;place-items:center;border:0;border-radius:11px;color:#8594a0;background:transparent;font-size:.55rem;font-weight:800}.dynamics-mobile-dock button span{display:block;color:inherit;font-size:1.05rem}.dynamics-mobile-dock button.active{color:#fff;background:#12314a}.energy-app-host .workspace{overflow-x:hidden}}
@media(max-width:420px){.dynamics-main{padding-right:9px;padding-left:9px}.dynamics-flow-source{width:124px}.dynamics-flow-source strong{font-size:1.05rem}.dynamics-flow-center{width:132px;height:132px}.dynamics-flow-center strong{font-size:1.25rem}.energy-statistics-view .energy-statistics-live-grid{grid-template-columns:1fr}.energy-statistics-view .energy-date-navigation{grid-template-columns:44px 1fr}.energy-statistics-view .energy-date-navigation button:last-child{grid-column:2}.energy-statistics-view .energy-statistics-chart{min-height:270px}}

/* Dashboard-Energiebilanz v129: Livefluss und MARSTEK direkt im Widget. */
.energy-live-card { grid-column:span 2; }
.energy-live-card::after { content:"Energiestatistik  →"; }
.energy-widget-overview { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:0 16px 13px; }
.energy-widget-overview>div { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:10px; min-width:0; min-height:68px; padding:10px 12px; overflow:hidden; border:1px solid rgba(31,39,47,.085); border-radius:14px; background:linear-gradient(145deg,rgba(255,255,255,.73),rgba(237,241,243,.48)); box-shadow:inset 0 1px 0 rgba(255,255,255,.82); }
.energy-widget-overview>div>span:last-child { display:grid; min-width:0; gap:1px; }
.energy-widget-overview small { overflow:hidden; color:#717b82; font-size:.5rem; font-weight:850; letter-spacing:.055em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.energy-widget-overview strong { color:#293138; font-size:.82rem; font-variant-numeric:tabular-nums; }
.energy-widget-overview em { overflow:hidden; color:#758087; font-size:.52rem; font-style:normal; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.energy-widget-symbol { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(75,114,132,.16); border-radius:12px; color:#436677; background:rgba(225,237,242,.74); font-size:1rem; font-weight:900; }
.energy-widget-balance.exporting .energy-widget-symbol { color:#39725a; border-color:rgba(57,114,90,.16); background:rgba(225,240,232,.74); }
.energy-widget-battery { transition:border-color .2s ease,background .2s ease; }
.energy-widget-battery.online { border-color:rgba(100,78,157,.18); background:linear-gradient(145deg,rgba(249,247,255,.82),rgba(235,231,247,.54)); }
.energy-widget-battery.charging { border-color:rgba(49,140,91,.22); background:linear-gradient(145deg,rgba(242,252,246,.86),rgba(224,242,231,.58)); }
.energy-widget-battery.discharging { border-color:rgba(163,123,46,.22); background:linear-gradient(145deg,rgba(255,251,240,.87),rgba(247,237,215,.58)); }
.energy-widget-battery.offline { opacity:.72; }
.energy-battery-gauge { position:relative; display:block; width:38px; height:24px; padding:3px; border:2px solid #7d6aa8; border-radius:7px; background:rgba(255,255,255,.66); box-sizing:border-box; }
.energy-battery-gauge::after { position:absolute; top:6px; right:-6px; width:4px; height:9px; border-radius:0 3px 3px 0; background:#7d6aa8; content:""; }
.energy-battery-gauge i { display:block; width:var(--battery-soc,0%); max-width:100%; height:100%; border-radius:3px; background:linear-gradient(90deg,#8068b6,#a58bdc); transition:width .45s ease; }
.energy-widget-battery.charging .energy-battery-gauge,.energy-widget-battery.charging .energy-battery-gauge::after { border-color:#4a936d; }.energy-widget-battery.charging .energy-battery-gauge::after { background:#4a936d; }.energy-widget-battery.charging .energy-battery-gauge i { background:linear-gradient(90deg,#46a36f,#71c893); }
.energy-widget-battery.discharging .energy-battery-gauge,.energy-widget-battery.discharging .energy-battery-gauge::after { border-color:#ae853e; }.energy-widget-battery.discharging .energy-battery-gauge::after { background:#ae853e; }.energy-widget-battery.discharging .energy-battery-gauge i { background:linear-gradient(90deg,#c59b4d,#e0bc70); }

@media (max-width:1024px) {
  .energy-live-card { grid-column:1/-1; }
}
@media (max-width:650px) {
  .energy-live-card { grid-column:auto; }
  .energy-widget-overview { gap:7px; margin:0 14px 12px; }
  .energy-widget-overview>div { grid-template-columns:34px minmax(0,1fr); gap:8px; min-height:62px; padding:9px 10px; border-radius:12px; }
  .energy-widget-symbol { width:32px; height:32px; border-radius:10px; }
  .energy-battery-gauge { width:32px; height:21px; }
  .energy-widget-overview strong { font-size:.73rem; }
  .energy-widget-overview em { font-size:.48rem; }
}
@media (max-width:370px) {
  .energy-widget-overview { grid-template-columns:1fr; }
  .energy-widget-overview>div { min-height:58px; }
}

/* 21Dynamics Output-2 Energiestatistik */
.energy-app-host .main-nav>a:not([data-liquid-nav="energy-statistics"]),.energy-app-host .energy-statistics-heading-actions [data-page-target="dashboard"]{display:none!important}
.energy-app-host .energy-statistics-view{max-width:1780px}
.energy-app-host .workspace{background:radial-gradient(circle at 85% 8%,rgba(66,142,119,.08),transparent 32%),#f1f3f4}
.energy-statistics-view { display:grid; gap:16px; max-width:1600px; margin:0 auto; }
.energy-statistics-view[hidden] { display:none!important; }
.energy-statistics-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:5px 2px 2px; }
.energy-statistics-heading h2 { margin:4px 0 5px; font-size:clamp(1.8rem,3vw,2.8rem); letter-spacing:-.055em; }
.energy-statistics-heading p:last-child { margin:0; color:#75808a; }
.energy-statistics-heading-actions { display:flex; align-items:center; gap:10px; }
.energy-statistics-live { display:inline-flex; align-items:center; gap:7px; min-height:42px; padding:0 14px; border:1px solid rgba(38,111,80,.16); border-radius:999px; color:#3d6b58; background:rgba(224,240,233,.62); font-size:.64rem; font-weight:850; white-space:nowrap; }
.energy-statistics-live i { width:8px; height:8px; border-radius:50%; background:#36a970; box-shadow:0 0 0 5px rgba(54,169,112,.12); }
.energy-statistics-live.offline { color:#7c5550; border-color:rgba(137,72,64,.18); background:rgba(246,229,226,.62); }.energy-statistics-live.offline i { background:#b05d54; box-shadow:0 0 0 5px rgba(176,93,84,.11); }
.energy-statistics-controls { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:end; gap:13px; padding:13px; border:1px solid rgba(34,43,51,.09); border-radius:20px; background:rgba(255,255,255,.58); box-shadow:0 12px 32px rgba(28,35,41,.05); }
.energy-range-buttons { display:flex; gap:5px; overflow-x:auto; scrollbar-width:none; }.energy-range-buttons::-webkit-scrollbar { display:none; }
.energy-range-buttons button,.energy-date-navigation>button { min-height:40px; padding:0 13px; border:1px solid transparent; border-radius:11px; color:#66717a; background:transparent; font:inherit; font-size:.63rem; font-weight:850; white-space:nowrap; cursor:pointer; }
.energy-range-buttons button:hover { background:rgba(255,255,255,.8); }.energy-range-buttons button.active { color:#fff; background:#242a30; box-shadow:0 8px 18px rgba(27,33,39,.18); }
.energy-date-navigation { display:flex; align-items:end; gap:6px; }.energy-date-navigation label,.energy-device-control { display:grid; gap:4px; color:#68747d; font-size:.54rem; font-weight:850; text-transform:uppercase; }
.energy-date-navigation input,.energy-device-control select { min-height:40px; padding:0 10px; border:1px solid rgba(35,44,52,.12); border-radius:11px; color:#283038; background:rgba(255,255,255,.74); font:inherit; font-size:.64rem; font-weight:750; }
.energy-date-navigation>button { width:40px; padding:0; border-color:rgba(35,44,52,.1); background:rgba(255,255,255,.65); }
.energy-device-control select { max-width:270px; }
.energy-statistics-status { min-height:18px; margin:-4px 3px 0; color:#74808a; font-size:.61rem; }.energy-statistics-status.warning { color:#9a6438; }
.energy-statistics-live-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.energy-stat-live-card { position:relative; display:grid; gap:5px; min-height:120px; padding:18px; overflow:hidden; border:1px solid rgba(36,45,53,.09); border-radius:19px; background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(238,242,244,.58)); box-shadow:0 16px 38px rgba(27,34,40,.055); }
.energy-stat-live-card::after { position:absolute; right:-26px; bottom:-42px; width:110px; height:110px; border-radius:50%; background:var(--energy-glow,rgba(80,105,115,.12)); filter:blur(4px); content:""; }
.energy-stat-live-card small { color:#717d85; font-size:.57rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }.energy-stat-live-card strong { position:relative; z-index:1; font-size:clamp(1.3rem,2vw,2rem); font-variant-numeric:tabular-nums; }.energy-stat-live-card span { color:#8a939a; font-size:.57rem; }
.energy-stat-live-card.pv { --energy-glow:rgba(57,214,111,.18); border-left:3px solid #39b96b; }.energy-stat-live-card.grid { --energy-glow:rgba(88,169,255,.18); border-left:3px solid #5b9fde; }.energy-stat-live-card.site { --energy-glow:rgba(90,101,111,.14); border-left:3px solid #53606a; }.energy-stat-live-card.battery { --energy-glow:rgba(167,123,255,.17); border-left:3px solid #8f6ed1; }
.energy-device-telemetry{overflow:hidden;border:1px solid rgba(34,43,51,.09);border-radius:19px;background:rgba(255,255,255,.5)}.energy-device-telemetry>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid rgba(35,44,52,.07)}.energy-device-telemetry h3{margin:3px 0;font-size:.9rem}.energy-device-telemetry header>small{color:#718079;font-size:.57rem}.energy-device-telemetry>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.energy-device-telemetry article{display:grid;gap:6px;min-height:78px;padding:14px 18px;border-right:1px solid rgba(35,44,52,.07)}.energy-device-telemetry article:last-child{border-right:0}.energy-device-telemetry article small{color:#79848c;font-size:.53rem}.energy-device-telemetry article strong{align-self:end;overflow-wrap:anywhere;font-size:.7rem}
.energy-statistics-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; }
.energy-statistics-kpis>article { display:grid; gap:6px; min-height:91px; padding:14px 15px; border:1px solid rgba(35,44,52,.08); border-radius:15px; background:rgba(255,255,255,.52); }
.energy-statistics-kpis small { color:#737e86; font-size:.54rem; line-height:1.3; }.energy-statistics-kpis strong { align-self:end; color:#293138; font-size:.82rem; font-variant-numeric:tabular-nums; }.energy-statistics-kpis .quality-low { border-color:rgba(174,89,72,.26); background:rgba(246,230,225,.62); }.energy-statistics-kpis .pv { border-top:2px solid rgba(57,185,107,.65); }.energy-statistics-kpis .grid { border-top:2px solid rgba(91,159,222,.65); }.energy-statistics-kpis .export { border-top:2px solid rgba(213,175,51,.7); }.energy-statistics-kpis .charge { border-top:2px solid rgba(143,110,209,.62); }.energy-statistics-kpis .discharge { border-top:2px solid rgba(66,181,180,.65); }
.energy-statistics-analysis-grid { display:grid; grid-template-columns:minmax(0,3fr) minmax(260px,1fr); gap:12px; }
.energy-statistics-chart-card,.energy-source-card,.marstek-statistics-card { overflow:hidden; border:1px solid rgba(34,43,51,.09); border-radius:21px; background:rgba(255,255,255,.58); box-shadow:0 16px 42px rgba(28,35,41,.055); }
.energy-statistics-chart-card>header,.energy-source-card>header,.marstek-statistics-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px 13px; border-bottom:1px solid rgba(35,44,52,.07); }.energy-statistics-chart-card h3,.energy-source-card h3,.marstek-statistics-card h3 { margin:3px 0; font-size:1rem; }.energy-statistics-chart-card header small,.energy-source-card header small,.marstek-statistics-card header small { color:#7a858d; font-size:.58rem; }
.energy-source-card>header { display:grid; gap:2px; }
.energy-chart-actions{display:grid;justify-items:end;gap:9px}.energy-chart-actions .text-button{min-height:34px}.energy-stat-chart-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px 11px; max-width:560px; }.energy-stat-chart-legend span { display:inline-flex; align-items:center; gap:5px; color:#637078; font-size:.53rem; }.energy-stat-chart-legend span::before { width:14px; height:4px; border-radius:999px; background:#999; content:""; }.energy-stat-chart-legend .direct::before { background:#39b96b; }.energy-stat-chart-legend .pv::before { height:2px;background:#146c3b; }.energy-stat-chart-legend .grid::before { background:#5b9fde; }.energy-stat-chart-legend .export::before { height:2px;background:#d5af33; }.energy-stat-chart-legend .discharge::before { background:#8f6ed1; }
.energy-statistics-chart-scroll { min-height:390px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:#a7b0b6 transparent; }.energy-statistics-chart { min-width:100%; min-height:390px; }.energy-statistics-chart svg { display:block; height:390px; }.energy-stat-grid line { stroke:rgba(45,57,65,.1); }.energy-stat-grid .zero { stroke:rgba(28,35,41,.58); stroke-width:1.6; }.energy-stat-grid text,.energy-chart-date { fill:#78838b; font-size:10px; }.energy-data-gap { fill:url(#none); opacity:.22; stroke:#ad6f62; stroke-width:1; stroke-dasharray:4 4; }.energy-chart-hit { fill:transparent; pointer-events:all; cursor:crosshair; }
.energy-source-visual { display:grid; justify-items:center; gap:22px; padding:25px 20px 23px; }.energy-source-donut { display:grid; width:170px; height:170px; place-content:center; border-radius:50%; background:radial-gradient(circle at center,#f7f9fa 0 55%,transparent 56%),conic-gradient(#39b96b 0 var(--source-pv,0%),#8f6ed1 var(--source-pv,0%) var(--source-battery,0%),#5b9fde var(--source-battery,0%) 100%); box-shadow:inset 0 0 0 1px rgba(35,44,52,.08),0 17px 34px rgba(34,42,49,.08); text-align:center; }.energy-source-donut strong { font-size:1.5rem; }.energy-source-donut span { color:#77828a; font-size:.57rem; }.energy-source-legend { display:grid; width:100%; gap:9px; }.energy-source-legend>span { display:grid; grid-template-columns:8px 1fr auto; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid rgba(35,44,52,.07); font-size:.6rem; }.energy-source-legend i { width:8px; height:8px; border-radius:50%; background:#39b96b; }.energy-source-legend .battery i { background:#8f6ed1; }.energy-source-legend .grid i { background:#5b9fde; }.energy-source-legend b { font-weight:750; }.energy-source-legend strong { font-variant-numeric:tabular-nums; }
.marstek-statistics-card { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(0,2fr); }.marstek-statistics-card>header { grid-column:1/-1; }.marstek-statistics-card>header>span { padding:6px 10px; border-radius:999px; color:#87554d; background:rgba(178,85,70,.1); font-size:.57rem; font-weight:850; }.marstek-statistics-card>header>span.online { color:#367257; background:rgba(54,169,112,.11); }
.marstek-soc { display:flex; align-items:center; gap:20px; padding:21px; border-right:1px solid rgba(35,44,52,.07); }.marstek-soc-ring { display:grid; width:112px; height:112px; flex:0 0 auto; place-content:center; border-radius:50%; background:radial-gradient(circle,#f7f9fa 0 61%,transparent 62%),conic-gradient(#8f6ed1 var(--soc,0%),rgba(143,110,209,.11) 0); text-align:center; }.marstek-soc-ring strong { font-size:1.25rem; }.marstek-soc-ring small { color:#7b858d; font-size:.51rem; }.marstek-soc>div:last-child { display:grid; gap:5px; }.marstek-soc>div:last-child strong { font-size:.9rem; }.marstek-soc>div:last-child span { color:#77828a; font-size:.6rem; }
.marstek-statistics-card dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; }.marstek-statistics-card dl div { display:grid; align-content:center; gap:5px; min-height:88px; padding:15px 17px; border-right:1px solid rgba(35,44,52,.07); border-bottom:1px solid rgba(35,44,52,.07); }.marstek-statistics-card dt { color:#77828a; font-size:.54rem; }.marstek-statistics-card dd { margin:0; font-size:.74rem; font-weight:850; font-variant-numeric:tabular-nums; }
.energy-remote-control-card{overflow:hidden;border:1px solid rgba(34,43,51,.1);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.75),rgba(235,240,243,.68));box-shadow:0 18px 46px rgba(28,35,41,.07)}
.energy-remote-control-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid rgba(35,44,52,.08)}.energy-remote-control-card h3{margin:4px 0;font-size:1.05rem}.energy-remote-control-card header small{display:block;max-width:760px;color:#717d85;font-size:.62rem;line-height:1.5}.energy-remote-control-card>header>span{flex:0 0 auto;padding:8px 12px;border-radius:999px;color:#7b5d35;background:#f2e8da;font-size:.58rem;font-weight:900}.energy-remote-control-card>header>span.secure{color:#2f6a50;background:#dfeee7}.energy-remote-control-card>header>span.offline{color:#8a4f48;background:#f3e2df}
.energy-remote-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid rgba(35,44,52,.08)}.energy-remote-overview article{display:grid;gap:6px;min-height:86px;padding:16px 20px;border-right:1px solid rgba(35,44,52,.07)}.energy-remote-overview article:last-child{border-right:0}.energy-remote-overview small,.energy-remote-control-card footer small{color:#78838b;font-size:.55rem}.energy-remote-overview strong{align-self:end;font-size:.76rem;font-variant-numeric:tabular-nums}
.energy-remote-provision,.energy-remote-command-head,.energy-storage-display-switch{display:flex;align-items:center;justify-content:space-between;gap:18px}.energy-remote-provision{margin:18px 20px 0;padding:17px;border:1px solid rgba(64,91,104,.13);border-radius:16px;background:rgba(255,255,255,.7)}.energy-remote-provision strong,.energy-remote-provision small,.energy-remote-command-head strong,.energy-remote-command-head small,.energy-storage-display-switch strong,.energy-storage-display-switch small{display:block}.energy-remote-provision strong,.energy-remote-command-head strong,.energy-storage-display-switch strong{font-size:.76rem}.energy-remote-provision small,.energy-remote-command-head small,.energy-storage-display-switch small{margin-top:4px;color:#747f87;font-size:.59rem;line-height:1.45}
.energy-remote-secret{margin:12px 20px 0;padding:17px;border:1px solid rgba(181,125,45,.3);border-radius:16px;background:#fff8e9}.energy-remote-secret>strong{display:block;margin-bottom:9px;color:#7f5a20;font-size:.72rem}.energy-remote-secret>div{display:grid;grid-template-columns:minmax(0,1fr) auto}.energy-remote-secret input{min-width:0;min-height:44px;padding:0 12px;border:1px solid #dfc797;border-radius:10px 0 0 10px;background:#fff;font:700 .68rem ui-monospace,SFMono-Regular,Consolas,monospace}.energy-remote-secret button{padding:0 16px;border:1px solid #dfc797;border-left:0;border-radius:0 10px 10px 0;background:#f4e4c3;font-size:.62rem;font-weight:850}.energy-remote-secret p{margin:10px 0 0;color:#795f36;font-size:.61rem;line-height:1.5}
.energy-remote-controls{display:grid;gap:13px;padding:19px 20px}.energy-storage-display-switch{min-height:62px;padding:13px 15px;border:1px solid rgba(35,44,52,.1);border-radius:14px;background:rgba(255,255,255,.66)}.energy-storage-display-switch input{width:44px;height:24px;accent-color:#376956}.energy-remote-controls fieldset{min-width:0;margin:0;padding:14px 15px 16px;border:1px solid rgba(35,44,52,.1);border-radius:15px}.energy-remote-controls fieldset:disabled{opacity:.54}.energy-remote-controls legend{display:flex;align-items:center;gap:9px;padding:0 7px}.energy-remote-controls legend b{font-size:.67rem}.energy-remote-controls legend span{color:#87645f;font-size:.55rem}.energy-remote-demo-grid{display:grid;grid-template-columns:1.2fr .8fr auto 1fr auto 1fr .8fr auto;align-items:end;gap:8px}.energy-remote-demo-grid label{display:grid;grid-template-columns:1fr auto;gap:4px;color:#68747d;font-size:.54rem;font-weight:800}.energy-remote-demo-grid label select,.energy-remote-demo-grid label input{grid-column:1;min-width:0;min-height:40px;padding:0 9px;border:1px solid rgba(35,44,52,.13);border-radius:10px;background:#fff;font:inherit}.energy-remote-demo-grid label span{grid-column:2;grid-row:2;align-self:center;color:#7b858d}.energy-remote-demo-grid button{min-height:40px;white-space:nowrap}
.energy-remote-control-card>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;border-top:1px solid rgba(35,44,52,.08);background:rgba(255,255,255,.36)}.energy-remote-control-card footer div{display:grid;gap:3px}.energy-remote-control-card footer strong{font-size:.7rem}.energy-remote-control-card footer span{color:#737f87;font-size:.59rem}
.energy-remote-diagnostics,.energy-gree-status{margin:16px 20px 0;padding:16px;border:1px solid rgba(35,44,52,.1);border-radius:16px;background:rgba(255,255,255,.55)}.energy-remote-diagnostics>header,.energy-gree-status>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.energy-remote-diagnostics header strong,.energy-gree-status header strong{display:block;font-size:.76rem}.energy-remote-diagnostics header small,.energy-gree-status header small{display:block;margin-top:4px;color:#747f87;font-size:.57rem}.energy-remote-diagnostics label{display:grid;gap:4px;color:#747f87;font-size:.53rem;font-weight:850}.energy-remote-diagnostics select{min-height:36px;padding:0 28px 0 10px;border:1px solid rgba(35,44,52,.14);border-radius:9px;background:#fff;font:inherit}.energy-remote-diagnostics>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.energy-remote-diagnostics article{display:grid;gap:4px;padding:13px;border:1px solid rgba(35,44,52,.08);border-radius:12px;background:rgba(255,255,255,.65)}.energy-remote-diagnostics article small,.energy-remote-diagnostics article span{color:#747f87;font-size:.53rem}.energy-remote-diagnostics article strong{font-size:.78rem}.energy-remote-diagnostics>p{margin:10px 1px 0;color:#747f87;font-size:.54rem}.energy-gree-status>header>span{padding:7px 10px;border-radius:999px;color:#67737b;background:rgba(112,126,136,.12);font-size:.54rem;font-weight:850}.energy-gree-status>header>span.active{color:#296849;background:#dceee3}.energy-gree-status>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.energy-gree-status article{padding:14px;border:1px solid rgba(35,44,52,.1);border-left:3px solid #a4afb6;border-radius:13px;background:rgba(255,255,255,.64)}.energy-gree-status article.online{border-left-color:#3cac70}.energy-gree-status article>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.energy-gree-status article>header strong{font-size:.72rem}.energy-gree-status article>header span{color:#7c878f;font-size:.55rem;font-weight:850}.energy-gree-status article.online>header span{color:#2c7651}.energy-gree-status article>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.energy-gree-status article p{display:grid;gap:4px;margin:0}.energy-gree-status article small{color:#7a858c;font-size:.5rem}.energy-gree-status article b{font-size:.65rem}.energy-gree-status article>.error{margin-top:10px;color:#a0463f;font-size:.56rem}
.energy-statistics-view .energy-remote-diagnostics,.energy-statistics-view .energy-gree-status{border-color:var(--dyn-line);background:#0c151d}.energy-statistics-view .energy-remote-diagnostics article,.energy-statistics-view .energy-gree-status article{border-color:#24333f;background:#111b25}.energy-statistics-view .energy-remote-diagnostics select{border-color:#31424f;color:#dce5ec;background:#0d1720}.energy-statistics-view .energy-remote-diagnostics header strong,.energy-statistics-view .energy-remote-diagnostics article strong,.energy-statistics-view .energy-gree-status header strong,.energy-statistics-view .energy-gree-status article strong,.energy-statistics-view .energy-gree-status article b{color:#eef4f8}
.energy-chart-actions>div:last-child{display:flex;align-items:center;gap:8px}.energy-chart-zoom{display:flex;align-items:center;gap:5px;color:#6d7880;font-size:.53rem;font-weight:800}.energy-chart-zoom select{min-height:34px;padding:0 7px;border:1px solid rgba(35,44,52,.11);border-radius:9px;background:#fff;font:inherit}
.module-symbol.energy-statistics { color:#fff; background:linear-gradient(145deg,#1e3a38,#438068); }

@media (max-width:1180px) {
  .energy-statistics-controls { grid-template-columns:1fr; }.energy-date-navigation { justify-content:flex-start; }.energy-device-control select { max-width:none; }
  .energy-statistics-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }.energy-statistics-analysis-grid { grid-template-columns:1fr; }.energy-source-visual { grid-template-columns:auto minmax(220px,1fr); align-items:center; }.energy-source-legend { max-width:500px; }
  .marstek-statistics-card dl { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .energy-statistics-view { gap:12px; }.energy-statistics-heading { align-items:flex-start; flex-direction:column; }.energy-statistics-heading-actions { width:100%; justify-content:space-between; }.energy-statistics-heading-actions .secondary-button { min-height:40px; }
  .energy-statistics-controls { padding:10px; border-radius:17px; }.energy-range-buttons { margin:0 -2px; }.energy-date-navigation { display:grid; grid-template-columns:38px 1fr 1fr 38px; width:100%; }.energy-date-navigation input { width:100%; min-width:0; }
  .energy-statistics-live-grid { grid-template-columns:1fr 1fr; }.energy-stat-live-card { min-height:105px; padding:14px; }.energy-statistics-kpis { grid-template-columns:1fr 1fr; }.energy-statistics-kpis>article { min-height:82px; padding:12px; }
  .energy-device-telemetry>header{display:grid}.energy-device-telemetry>div{grid-template-columns:1fr 1fr}.energy-device-telemetry article:nth-child(2){border-right:0}.energy-device-telemetry article{border-bottom:1px solid rgba(35,44,52,.07)}
  .energy-statistics-chart-card>header { display:grid; padding:16px 15px 12px; }.energy-chart-actions{justify-items:start}.energy-stat-chart-legend { justify-content:flex-start; }.energy-statistics-chart-scroll,.energy-statistics-chart { min-height:340px; }.energy-statistics-chart svg { height:340px; }
  .energy-source-visual { grid-template-columns:1fr; }.energy-source-donut { width:150px; height:150px; }
  .marstek-statistics-card { grid-template-columns:1fr; }.marstek-statistics-card>header { grid-column:auto; }.marstek-soc { border-right:0; border-bottom:1px solid rgba(35,44,52,.07); }.marstek-statistics-card dl { grid-template-columns:1fr 1fr; }
}
@media (max-width:430px) {
  .energy-statistics-heading-actions { align-items:stretch; flex-direction:column; }.energy-statistics-live { justify-content:center; }.energy-statistics-live-grid { gap:8px; }.energy-stat-live-card strong { font-size:1.1rem; }
  .energy-date-navigation { grid-template-columns:36px 1fr 36px; }.energy-date-navigation label:first-of-type { grid-column:2; }.energy-date-navigation label:nth-of-type(2) { grid-column:2; }.energy-date-navigation>button:first-child { grid-column:1; grid-row:1/3; align-self:stretch; height:auto; }.energy-date-navigation>button:last-child { grid-column:3; grid-row:1/3; align-self:stretch; height:auto; }
  .marstek-soc { align-items:flex-start; flex-direction:column; }.marstek-statistics-card dl { grid-template-columns:1fr; }
  .energy-device-telemetry>div{grid-template-columns:1fr}.energy-device-telemetry article{border-right:0}
}
@media (min-width:1800px) {
  .energy-statistics-view { max-width:1780px; gap:21px; }.energy-statistics-live-grid { gap:14px; }.energy-stat-live-card { min-height:150px; padding:23px; }.energy-statistics-kpis>article { min-height:110px; padding:18px; }.energy-statistics-chart-scroll,.energy-statistics-chart { min-height:460px; }.energy-statistics-chart svg { height:460px; }.energy-source-donut { width:210px; height:210px; }
}
@media(max-width:1180px){.energy-remote-overview{grid-template-columns:1fr 1fr}.energy-remote-overview article:nth-child(2){border-right:0}.energy-remote-demo-grid{grid-template-columns:1fr 1fr auto}.energy-remote-demo-grid label:nth-of-type(4){grid-column:1}.energy-remote-diagnostics>div{grid-template-columns:1fr 1fr}.energy-gree-status article>div{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.energy-remote-control-card>header,.energy-remote-provision,.energy-remote-command-head,.energy-remote-diagnostics>header,.energy-gree-status>header{align-items:stretch;flex-direction:column}.energy-remote-control-card>header>span,.energy-gree-status>header>span{align-self:flex-start}.energy-remote-overview{grid-template-columns:1fr}.energy-remote-overview article{min-height:70px;border-right:0;border-bottom:1px solid rgba(35,44,52,.07)}.energy-remote-demo-grid{grid-template-columns:1fr 1fr}.energy-remote-demo-grid button{width:100%}.energy-remote-demo-grid label:nth-of-type(4){grid-column:auto}.energy-remote-control-card>footer{align-items:flex-start;flex-direction:column}.energy-remote-diagnostics>div,.energy-gree-status>div{grid-template-columns:1fr}.energy-remote-diagnostics,.energy-gree-status{margin-inline:12px;padding:13px}}
@media(max-width:430px){.energy-remote-demo-grid{grid-template-columns:1fr}.energy-remote-secret>div{grid-template-columns:1fr}.energy-remote-secret input,.energy-remote-secret button{border:1px solid #dfc797;border-radius:10px}.energy-remote-secret button{margin-top:7px;min-height:40px}}

/* 21Dynamics: readable balance instead of a wall of anonymous KPI tiles. */
.energy-statistics-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.energy-statistics-kpis>.energy-balance-card{display:block;min-height:0;padding:0;overflow:hidden;border:1px solid rgba(35,44,52,.09);border-radius:19px;background:rgba(255,255,255,.66);box-shadow:0 13px 34px rgba(28,35,41,.045)}
.energy-balance-card>header{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:17px 18px 15px;border-bottom:1px solid rgba(35,44,52,.07)}
.energy-balance-card>header div{display:grid;gap:5px}.energy-balance-card>header small{color:#68747c;font-size:.58rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.energy-balance-card>header strong{font-size:1.28rem;font-variant-numeric:tabular-nums}.energy-balance-card>header>span{max-width:145px;color:#7b858c;font-size:.56rem;line-height:1.35;text-align:right}
.energy-balance-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px;border-bottom:1px solid rgba(35,44,52,.055)}.energy-balance-row:last-child{border-bottom:0}.energy-balance-row>span{display:flex;align-items:center;gap:8px;color:#56626a;font-size:.64rem}.energy-balance-row i{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#85919a}.energy-balance-row strong{font-size:.68rem;font-variant-numeric:tabular-nums}.energy-balance-row.pv i{background:#39b96b}.energy-balance-row.battery i{background:#8f6ed1}.energy-balance-row.grid i{background:#5b9fde}.energy-balance-row.export i{background:#d5af33}.energy-balance-row.money i{background:#53606a}
.energy-source-bar{display:flex;height:7px;margin:14px 18px 5px;overflow:hidden;border-radius:999px;background:#e4e8ea}.energy-source-bar i{display:block;height:100%}.energy-source-bar .pv{background:#39b96b}.energy-source-bar .battery{background:#8f6ed1}.energy-source-bar .grid{background:#5b9fde}
.energy-balance-status{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid rgba(35,44,52,.08);border-radius:16px;background:rgba(255,255,255,.5)}.energy-balance-status>span{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:12px 17px;border-right:1px solid rgba(35,44,52,.07)}.energy-balance-status>span:last-child{border-right:0}.energy-balance-status small{color:#727d85;font-size:.58rem}.energy-balance-status strong{font-size:.75rem;font-variant-numeric:tabular-nums}.energy-balance-status .warning{color:#934f45;background:rgba(244,225,221,.5)}
.energy-statistics-analysis-grid{grid-template-columns:minmax(0,1fr)}.energy-source-card{display:none}.energy-statistics-chart-card{min-width:0}.energy-statistics-chart-scroll,.energy-statistics-chart{min-height:360px}.energy-statistics-chart svg{height:360px;max-width:none}.energy-stat-grid text{font-size:11px;font-weight:700}.energy-chart-date{font-size:10px}
@media(max-width:1050px){.energy-statistics-kpis{grid-template-columns:1fr 1fr}.energy-balance-status{grid-column:1/-1}}
@media(max-width:680px){.energy-statistics-kpis{grid-template-columns:1fr}.energy-balance-status{grid-column:auto;grid-template-columns:1fr}.energy-balance-status>span{border-right:0;border-bottom:1px solid rgba(35,44,52,.07)}.energy-balance-status>span:last-child{border-bottom:0}.energy-balance-card>header{align-items:flex-start}.energy-statistics-chart-scroll,.energy-statistics-chart{min-height:320px}.energy-statistics-chart svg{height:320px}.energy-statistics-chart-card>header{gap:12px}.energy-chart-actions>div:last-child{width:100%;justify-content:space-between}}

/* Master backup center */
.backup-settings { display:grid; gap:18px; }
.backup-scope-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.backup-scope-grid article { display:grid; gap:7px; min-height:120px; padding:18px; border:1px solid var(--line); border-radius:17px; background:rgba(255,255,255,.72); }
.backup-scope-grid strong { color:var(--ink); font-size:.88rem; }
.backup-scope-grid span { color:var(--ink-soft); font-size:.73rem; line-height:1.45; }
.backup-scope-grid span::before { content:"✓"; display:inline-grid; width:17px; height:17px; margin-right:7px; place-items:center; border-radius:50%; color:#23614e; background:#e7f3ee; font-size:.62rem; font-weight:900; }
.backup-target-card,.backup-recovery-card,.backup-history-card { padding:20px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.75); box-shadow:0 10px 28px rgba(44,54,64,.04); }
.backup-automatic-card{display:grid;gap:16px;padding:20px;border:1px solid rgba(43,125,112,.22);border-radius:20px;background:linear-gradient(135deg,rgba(244,251,249,.95),rgba(255,255,255,.78));box-shadow:0 14px 34px rgba(44,81,77,.07)}
.backup-automatic-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.backup-automatic-card h4{margin:4px 0 5px;color:var(--ink);font-size:1rem}.backup-automatic-card header p{margin:0;color:var(--ink-soft);font-size:.72rem;line-height:1.45}
.backup-coverage-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.backup-coverage-strip>div{display:grid;gap:4px;min-width:0;padding:14px;border:1px solid rgba(34,39,44,.08);border-radius:14px;background:rgba(255,255,255,.72)}.backup-coverage-strip small,.backup-coverage-strip span{color:var(--ink-soft);font-size:.62rem}.backup-coverage-strip strong{overflow:hidden;color:var(--ink);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}
.backup-automatic-fields{display:grid;grid-template-columns:minmax(250px,1.2fr) repeat(2,minmax(170px,.7fr));gap:12px}.backup-automatic-fields>label{display:grid;gap:6px;color:var(--ink-soft);font-size:.68rem;font-weight:800}.backup-automatic-fields select{height:46px!important;min-height:46px!important;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:#fff;font:inherit}
.backup-enable-control{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.78)}.backup-enable-control>span{display:grid;gap:3px}.backup-enable-control strong{color:var(--ink);font-size:.75rem}.backup-enable-control small{color:var(--ink-soft);font-size:.61rem;font-weight:600}.backup-enable-control input{width:22px;height:22px;accent-color:#287d70}
.backup-automatic-card>footer{display:flex;align-items:center;justify-content:flex-end;gap:9px}.backup-automatic-card>footer>div{display:grid;gap:3px;margin-right:auto}.backup-automatic-card>footer strong{color:var(--ink);font-size:.7rem}.backup-automatic-card>footer small{color:var(--ink-soft);font-size:.62rem}.backup-target-state.is-warning{color:#875d25;border-color:#ead6ae;background:#fff8e8}.backup-target-state.is-error{color:#94483f;border-color:#e8c1bc;background:#fff1ef}
.backup-target-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:16px; }
.backup-target-card>header div { display:grid; gap:4px; }
.backup-target-card>header strong,.backup-recovery-card strong { color:var(--ink); font-size:.95rem; }
.backup-target-card>header small,.backup-recovery-card small { color:var(--ink-soft); font-size:.72rem; line-height:1.45; }
.backup-target-state { flex:0 0 auto; padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:#7c6262; background:#faf5f5; font-size:.68rem; font-weight:800; }
.backup-target-state.is-ready { color:#285b4c; border-color:#c9ddd5; background:#edf6f2; }
.backup-target-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.backup-target-card>footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; margin-top:15px; }
.backup-target-card>footer .primary-button { margin-left:auto; }
.backup-recovery-card { display:grid; grid-template-columns:minmax(260px,1fr) minmax(220px,.55fr) auto; align-items:end; gap:16px; }
.backup-recovery-card>div { display:grid; gap:5px; }
.backup-recovery-card label { display:grid; gap:6px; color:var(--ink-soft); font-size:.68rem; font-weight:800; }
.backup-recovery-card input { min-height:42px; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.backup-history-card { display:grid; gap:14px; }
.backup-progress { display:grid; gap:8px; padding:14px; border-radius:13px; background:#edf3f6; }
.backup-progress>div { display:flex; justify-content:space-between; color:var(--ink); font-size:.76rem; }
.backup-progress progress { width:100%; height:9px; accent-color:#2d526c; }
.backup-history-list { display:grid; gap:8px; }
.backup-history-row { display:grid; grid-template-columns:minmax(220px,1fr) minmax(190px,.7fr) minmax(160px,.55fr); align-items:center; gap:14px; padding:13px 15px; border:1px solid var(--line); border-radius:13px; background:rgba(249,250,251,.86); }
.backup-history-row>div { display:grid; gap:3px; min-width:0; }
.backup-history-row strong { overflow:hidden; color:var(--ink); font-size:.74rem; text-overflow:ellipsis; white-space:nowrap; }
.backup-history-row small,.backup-history-row>span { overflow:hidden; color:var(--ink-soft); font-size:.65rem; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.backup-history-row.is-success { border-left:4px solid #4f876f; }
.backup-history-row.is-failed { border-left:4px solid #ad665b; }
.backup-history-row.is-running,.backup-history-row.is-queued { border-left:4px solid #54788f; }
@media (max-width:980px) {
  .backup-scope-grid,.backup-target-grid,.backup-coverage-strip,.backup-automatic-fields { grid-template-columns:1fr; }
  .backup-recovery-card { grid-template-columns:1fr; }
  .backup-history-row { grid-template-columns:1fr; }
  .backup-history-row small,.backup-history-row>span { white-space:normal; }
  .backup-automatic-card>header,.backup-automatic-card>footer{align-items:stretch;flex-direction:column}.backup-automatic-card>footer>div{margin:0}.backup-automatic-card>footer button{width:100%;min-height:46px}
}

/* V107 · mandantenbezogene Benutzerverwaltung */
.user-settings .settings-title-actions { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.user-admin-toolbar { display:grid; grid-template-columns:minmax(260px,1.5fr) minmax(180px,.75fr) minmax(180px,.75fr) auto; align-items:end; gap:10px; margin-top:18px; padding:13px; border:1px solid rgba(42,49,55,.09); border-radius:16px; background:rgba(244,247,249,.72); }
.user-admin-toolbar label { display:grid; gap:6px; min-width:0; }.user-admin-toolbar label>span { color:#64707a; font-size:.57rem; font-weight:850; letter-spacing:.035em; }.user-admin-toolbar input,.user-admin-toolbar select { min-height:44px; border-color:rgba(58,66,73,.13); border-radius:11px; background:rgba(255,255,255,.88); }
.user-admin-toolbar button { min-height:44px; white-space:nowrap; }
.user-create-form[hidden] { display:none!important; }.user-create-form>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }.user-create-form>header>div { display:grid; gap:3px; }.user-create-form>header strong { color:#292e33; font-size:.76rem; }.user-create-form>header small { color:#788087; font-size:.57rem; }
.user-settings .user-list { display:grid; gap:15px; margin-top:16px; }
.user-department-section { overflow:visible; border:1px solid rgba(47,54,61,.10); border-radius:18px; background:rgba(255,255,255,.64); box-shadow:0 13px 34px rgba(33,39,45,.045); }
.user-department-section>header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 16px; border-bottom:1px solid rgba(47,54,61,.08); background:linear-gradient(135deg,rgba(241,244,246,.9),rgba(249,250,251,.78)); }.user-department-section>header>div { display:grid; gap:2px; }.user-department-section>header small { color:#788189; font-size:.51rem; font-weight:900; letter-spacing:.095em; text-transform:uppercase; }.user-department-section>header strong { color:#282d32; font-size:.76rem; }
.user-department-section>.user-department-section { border:0; }
.user-department-section .user-row { display:grid; grid-template-columns:minmax(260px,1.25fr) minmax(160px,.48fr) minmax(230px,.8fr); align-items:center; gap:10px 14px; padding:14px 16px; border-top:1px solid rgba(47,54,61,.07); }.user-department-section .user-row:first-child { border-top:0; }
.user-department-section .user-identity { display:grid; min-width:0; gap:3px; }.user-department-section .user-identity strong { overflow:hidden; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }.user-department-section .user-identity>small { overflow:hidden; color:#7a838b; font-size:.56rem; text-overflow:ellipsis; white-space:nowrap; }
.user-department-section .user-memberships { display:flex; flex-wrap:wrap; gap:5px; margin-top:4px; }.user-department-section .user-memberships b { padding:4px 7px; border:1px solid rgba(63,76,69,.09); border-radius:999px; color:#58665f; background:rgba(239,245,241,.86); font-size:.49rem; }
.user-department-section .user-row select,.user-department-section .user-email-input { width:100%; min-width:0; min-height:40px; border-color:rgba(47,54,61,.11); border-radius:10px; background:rgba(255,255,255,.86); }
.user-department-section .user-row-actions { grid-column:1/-1; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:7px; padding-top:2px; }.user-department-section .user-row-actions button { min-height:34px; padding:7px 10px; border-radius:9px; font-size:.57rem; }
.user-account-menu { min-width:0; }.user-account-menu>summary { display:flex; align-items:center; min-height:34px; padding:7px 10px; border:1px solid rgba(36,39,44,.14); border-radius:9px; color:#4a5057; background:#fff; font-size:.57rem; font-weight:800; cursor:pointer; list-style:none; }.user-account-menu>summary::-webkit-details-marker{display:none}.user-account-menu>summary::after{margin-left:7px;content:"⌄"}.user-account-menu[open]>summary::after{transform:rotate(180deg)}
.user-admin-empty { display:grid; justify-items:center; gap:5px; padding:48px 20px; border:1px dashed rgba(47,54,61,.16); border-radius:18px; color:#68727a; text-align:center; }.user-admin-empty strong { color:#32383e; font-size:.8rem; }.user-admin-empty span { font-size:.62rem; }
@media(max-width:1050px){.user-admin-toolbar{grid-template-columns:1fr 1fr}.user-admin-search{grid-column:1/-1}.user-admin-toolbar button{width:100%}.user-department-section .user-row{grid-template-columns:1fr 1fr}.user-department-section .user-identity{grid-column:1/-1}}
@media(max-width:680px){.user-settings .settings-title-actions{align-items:stretch;flex-direction:column;width:100%}.user-settings .settings-title-actions>*{width:100%}.user-admin-toolbar{grid-template-columns:1fr}.user-admin-search{grid-column:auto}.user-create-form>header{flex-direction:column}.user-department-section .user-row{grid-template-columns:1fr}.user-department-section .user-identity,.user-department-section .user-row-actions{grid-column:1}.user-department-section .user-row-actions{display:grid;grid-template-columns:1fr 1fr}.user-department-section .user-row-actions>button,.user-account-menu,.user-account-menu>summary{width:100%}}

/* V58 cascade: nach sämtlichen historischen Layoutregeln. */
.sidebar {
  isolation:isolate;
  contain:layout paint;
  overflow:hidden;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  -webkit-transform:translate3d(0,0,0);
  transform:translate3d(0,0,0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.sidebar::before {
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(150deg,rgba(255,255,255,.055),transparent 38%),linear-gradient(168deg,#292c31,#111316 92%);
  content:"";
  pointer-events:none;
}
.sidebar > * { position:relative; z-index:1; }
.main-nav a,.sidebar-account,.logout-button { -webkit-transform:translateZ(0); transform:translateZ(0); }

@media (max-width:900px) {
  .dashboard-info-dialog[open] {
    position:fixed;
    inset:0;
    width:100vw;
    max-width:none;
    height:100dvh;
    max-height:none;
    margin:0;
    overflow:hidden;
    border:0;
    border-radius:0;
  }
  .dashboard-info-shell {
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    width:100%;
    height:100dvh;
    max-height:none;
    overflow:hidden;
  }
  .dashboard-info-shell>header {
    position:relative;
    z-index:2;
    padding-top:max(18px,env(safe-area-inset-top));
    background:rgba(247,249,250,.88);
    -webkit-backdrop-filter:blur(24px) saturate(120%);
    backdrop-filter:blur(24px) saturate(120%);
  }
  .dashboard-info-body {
    min-height:0;
    max-height:none;
    padding-bottom:max(44px,calc(env(safe-area-inset-bottom) + 28px));
    overflow-x:hidden;
    overflow-y:scroll;
    overscroll-behavior:contain;
    touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
  }
}

/* V58: stabile Navigation und vollständig scrollbarere Live-Dialoge auf iPhone/iPad. */
.sidebar {
  isolation:isolate;
  contain:layout paint;
  overflow:hidden;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  -webkit-transform:translate3d(0,0,0);
  transform:translate3d(0,0,0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.sidebar::before {
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(150deg,rgba(255,255,255,.055),transparent 38%),linear-gradient(168deg,#292c31,#111316 92%);
  content:"";
  pointer-events:none;
}
.sidebar > * { position:relative; z-index:1; }
.main-nav a,.sidebar-account,.logout-button { -webkit-transform:translateZ(0); transform:translateZ(0); }

@media (max-width:900px) {
  .dashboard-info-dialog[open] {
    position:fixed;
    inset:0;
    width:100vw;
    max-width:none;
    height:100dvh;
    max-height:none;
    margin:0;
    overflow:hidden;
    border:0;
    border-radius:0;
  }
  .dashboard-info-shell {
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    width:100%;
    height:100dvh;
    max-height:none;
    overflow:hidden;
  }
  .dashboard-info-shell>header {
    position:relative;
    z-index:2;
    padding-top:max(18px,env(safe-area-inset-top));
    background:rgba(247,249,250,.88);
    -webkit-backdrop-filter:blur(24px) saturate(120%);
    backdrop-filter:blur(24px) saturate(120%);
  }
  .dashboard-info-body {
    min-height:0;
    max-height:none;
    padding-bottom:max(44px,calc(env(safe-area-inset-bottom) + 28px));
    overflow-x:hidden;
    overflow-y:scroll;
    overscroll-behavior:contain;
    touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
  }
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--canvas); }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--canvas); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 260px 1fr; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 260px; padding: 28px 22px; display: flex; flex-direction: column; color: #fff; background: linear-gradient(165deg, var(--navy) 0%, color-mix(in srgb, var(--navy) 74%, #000) 100%); }
.brand { display: flex; align-items: center; gap: 13px; color: inherit; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 47px; height: 47px; border-radius: 14px; color: #fff; font-weight: 850; letter-spacing: -.04em; background: linear-gradient(145deg, var(--orange), #f2a15f); box-shadow: 0 8px 24px rgba(228,119,45,.25); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: .98rem; }
.brand small { margin-top: 3px; color: #9fb3c7; font-size: .72rem; }
.main-nav { display: grid; gap: 8px; margin-top: 52px; }
.main-nav > span { display: contents; }
.main-nav a { display: flex; align-items: center; gap: 13px; padding: 12px 14px; border-radius: 10px; color: #b8c9d9; text-decoration: none; font-size: .92rem; }
.main-nav a span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #39546b; border-radius: 7px; font-size: .74rem; }
.main-nav a.active, .main-nav a:hover { color: #fff; background: rgba(255,255,255,.09); }
.sidebar-footer { margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; gap: 11px; }
.sidebar-footer strong, .sidebar-footer small { display: block; }
.sidebar-footer strong { font-size: .84rem; }
.sidebar-footer small { margin-top: 2px; color: #9fb3c7; font-size: .72rem; }
.user-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #164e72; font-size: .76rem; font-weight: 800; }
.logout-button { margin-left: auto; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; color: #d7e3ed; background: rgba(255,255,255,.06); font-size: 1rem; cursor: pointer; }
.logout-button:hover { color: #fff; background: rgba(255,255,255,.12); }

.workspace { grid-column: 2; min-width: 0; padding: 38px clamp(28px, 5vw, 72px) 70px; }
.workspace.roe-active{padding-top:20px}.workspace.roe-active>.topbar{display:none}
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.eyebrow { margin: 0 0 5px; color: var(--blue); font-size: .71rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
.topbar h1 { margin-bottom: 0; font-size: clamp(1.65rem, 3vw, 2.25rem); letter-spacing: -.035em; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.connection { padding: 9px 13px; border: 1px solid #cfe8e4; border-radius: 999px; color: #14756c; background: #effaf8; font-size: .78rem; font-weight: 700; }
.connection i { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #16a394; }
.icon-button { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 12px; color: #fff; background: var(--ink); font-weight: 800; cursor: pointer; }

.status-strip { margin: 32px 0 46px; padding: 18px 20px; display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 22px; border: 1px solid #dce5ed; border-left: 4px solid var(--orange); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(16,42,67,.05); }
.status-strip > div, .status-summary { display: flex; align-items: center; gap: 12px; }
.status-summary { padding: 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.status-summary:hover strong { color: var(--blue); }
.status-strip p { margin: 0; }
.status-strip strong, .status-strip small { display: block; }
.status-strip strong { font-size: .86rem; }
.status-strip small { margin-top: 3px; color: var(--ink-soft); font-size: .73rem; }
.status-strip > a { color: var(--blue); font-size: .82rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.status-strip > a span { margin-left: 8px; }
.status-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; font-weight: 850; }
.status-icon.warning { color: #9a4a16; background: #fff1e7; }
.status-icon.success { color: #16756d; background: #e8f7f4; }
.status-icon.storage { color: #375f7d; background: #e8f0f6; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-heading h2 { margin-bottom: 0; font-size: 1.35rem; letter-spacing: -.02em; }
.secondary-button { padding: 9px 14px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink-soft); background: #fff; cursor: pointer; }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.module-card { position: relative; min-height: 205px; padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(16,42,67,.045); transition: transform .18s ease, box-shadow .18s ease; }
.module-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.module-card.featured { border-top: 4px solid var(--orange); padding-top: 16px; }
.module-symbol { display: grid; place-items: center; width: 41px; height: 41px; margin-bottom: 15px; border-radius: 11px; color: #fff; background: var(--orange); font-size: .7rem; font-weight: 900; letter-spacing: .05em; }
.module-symbol.inventory { background: #0f8b82; }
.module-symbol.documents { background: #236aa2; }
.module-symbol.planner { background: #2563a5; }
.module-symbol.roe { background: #6454a4; }
.module-symbol.admin { background: #455a6f; }
.module-symbol.external { position: relative; overflow: hidden; background: #1769aa; font-size: 1rem; }
.module-symbol.external img { position: absolute; inset: 7px; width: calc(100% - 14px); height: calc(100% - 14px); padding: 2px; border-radius: 6px; background: #fff; object-fit: contain; }
.module-card h3 { margin-bottom: 6px; font-size: .96rem; }
.module-card p { min-height: 40px; margin-bottom: 14px; color: var(--ink-soft); font-size: .76rem; line-height: 1.45; }
.module-card > a { color: var(--blue); font-size: .8rem; font-weight: 800; text-decoration: none; }
.module-card > a span { margin-left: 7px; }
.module-card > a.disabled-link { color: #829ab1; }
.badge { position: absolute; top: 19px; right: 19px; padding: 5px 8px; border-radius: 999px; font-size: .61rem; font-weight: 850; letter-spacing: .03em; }
.badge.ready { color: #11685f; background: #e4f6f2; }
.badge.planned { color: #52687d; background: #edf2f6; }
.badge.protected { color: #98501d; background: #fff0e4; }
.module-meta { display: flex; gap: 8px; margin: -8px 0 16px; }
.module-meta span { padding: 5px 8px; border-radius: 7px; color: #52687d; background: #f0f4f7; font-size: .67rem; font-weight: 700; }
.mobile-nav { display: none; }

.content-page { min-height: 520px; padding-top: 14px; }
.content-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.content-page-heading h2 { margin-bottom: 6px; font-size: 1.65rem; }
.content-page-heading p:last-child { margin-bottom: 0; color: var(--ink-soft); }
.planner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.planner-link-card { position: relative; min-height: 190px; padding: 19px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(16,42,67,.045); }
.planner-link-icon { display: grid; place-items: center; width: 41px; height: 41px; margin-bottom: 14px; overflow: hidden; border-radius: 11px; color: #fff; background: #2563a5; font-size: .7rem; }
.planner-link-icon img { width: 100%; height: 100%; padding: 7px; background: #fff; object-fit: contain; }
.planner-link-card h3 { margin-bottom: 6px; font-size: .96rem; }
.planner-link-card p { min-height: 38px; margin-bottom: 15px; color: var(--ink-soft); font-size: .76rem; line-height: 1.45; }
.planner-link-card a { color: var(--blue); font-size: .76rem; font-weight: 800; text-decoration: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.roe-view { padding-bottom: 40px; }
.roe-heading { align-items: center; }
.roe-heading-actions { display: flex; align-items: end; gap: 10px; }
.roe-heading-actions label { display: grid; gap: 6px; color: var(--ink-soft); font-size: .7rem; font-weight: 800; }
.roe-heading-actions select { min-width: 155px; height: 38px; padding: 7px 34px 7px 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fff; }
.roe-period-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: -6px 0 16px; padding: 12px 15px; border: 1px solid #d7e3ec; border-radius: 12px; background: #f8fbfd; }
.roe-period-bar strong, .roe-period-bar small { display: block; }
.roe-period-bar strong { font-size: .78rem; }
.roe-period-bar small { margin-top: 3px; color: var(--ink-soft); font-size: .67rem; }
.roe-readonly { padding: 6px 9px; border-radius: 999px; color: #52687d; background: #e9f0f5; font-size: .64rem; font-weight: 800; white-space: nowrap; }
.roe-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.roe-metrics article { padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 8px 22px rgba(16,42,67,.04); }
.roe-metrics span, .roe-metrics small { display: block; color: var(--ink-soft); font-size: .66rem; }
.roe-metrics strong { display: block; margin: 7px 0 4px; font-size: 1.25rem; letter-spacing: -.025em; }
.roe-metrics article:last-child { border-top: 3px solid #6454a4; padding-top: 14px; }
.roe-section { margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(16,42,67,.04); }
.roe-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.roe-section-heading h3 { margin: 0 0 4px; font-size: 1rem; }
.roe-section-heading p { margin: 0; color: var(--ink-soft); font-size: .7rem; }
.roe-department-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.roe-department-card { position: relative; overflow: hidden; padding: 14px; border: 1px solid #e3eaf0; border-radius: 11px; background: #fbfcfd; }
.roe-department-card::before { position: absolute; top: 0; left: 0; bottom: 0; width: 4px; content: ""; background: var(--department-color, #6454a4); }
.roe-department-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.roe-department-title strong { font-size: .82rem; }
.roe-achievement { padding: 4px 7px; border-radius: 999px; color: #52687d; background: #edf2f6; font-size: .61rem; font-weight: 850; }
.roe-department-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 13px; }
.roe-department-values span { color: var(--ink-soft); font-size: .59rem; }
.roe-department-values strong { display: block; margin-top: 3px; color: var(--ink); font-size: .73rem; }
.roe-department-footer { display: flex; justify-content: space-between; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #e7edf2; color: var(--ink-soft); font-size: .62rem; }
.roe-department-footer strong { color: var(--ink); }
.roe-money-positive { color: #147568 !important; }
.roe-money-negative { color: #b5473c !important; }
.roe-invoice-heading { align-items: center; }
.roe-search input { width: min(290px, 36vw); height: 38px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fff; }
.roe-table-wrap { overflow-x: auto; border: 1px solid #e3eaf0; border-radius: 10px; }
.roe-invoice-table { width: 100%; border-collapse: collapse; min-width: 820px; }
.roe-invoice-table th { padding: 10px 12px; color: #52687d; background: #f6f9fb; font-size: .63rem; text-align: left; text-transform: uppercase; letter-spacing: .04em; }
.roe-invoice-table th:nth-child(4), .roe-invoice-table th:nth-child(5), .roe-invoice-table td:nth-child(4), .roe-invoice-table td:nth-child(5) { text-align: right; }
.roe-invoice-table td { padding: 11px 12px; border-top: 1px solid #edf1f5; color: #334e68; font-size: .7rem; vertical-align: top; }
.roe-invoice-table td:first-child { color: var(--ink); font-weight: 800; }
.roe-allocation-list { display: flex; flex-wrap: wrap; gap: 4px; min-width: 170px; }
.roe-allocation-chip { padding: 4px 6px; border-left: 3px solid var(--chip-color, #6454a4); border-radius: 5px; color: #415b72; background: #f0f4f7; font-size: .6rem; white-space: nowrap; }
.roe-loading, .roe-error { padding: 30px; color: var(--ink-soft); text-align: center; }
.roe-error { color: #a13b32; }
.roe-tabs { display:flex; gap:6px; margin:0 0 14px; padding:5px; overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:#fff; scrollbar-width:thin; }
.roe-tabs button { flex:0 0 auto; padding:8px 11px; border:0; border-radius:8px; color:#52687d; background:transparent; font:inherit; font-size:.68rem; font-weight:800; cursor:pointer; }
.roe-tabs button.active { color:#fff; background:#6454a4; }
.roe-tab-panel[hidden] { display:none !important; }
.roe-list { display:grid; gap:7px; margin:10px 0 20px; }
.roe-list-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px; border:1px solid #e3eaf0; border-radius:9px; background:#fbfcfd; }
.roe-list-row strong,.roe-list-row small { display:block; }
.roe-list-row strong { font-size:.74rem; }.roe-list-row small { margin-top:3px; color:var(--ink-soft); font-size:.62rem; }
.roe-row-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.roe-row-actions button,.roe-invoice-table td button { padding:5px 7px; border:1px solid #d6e0e8; border-radius:6px; color:#1769aa; background:#fff; font:inherit; font-size:.6rem; font-weight:800; cursor:pointer; }
.roe-row-actions .danger-link,.roe-invoice-table .danger-link { color:#a13b32; }
.roe-editor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:10px 0 18px; }
.roe-edit-card { display:grid; gap:8px; padding:12px; border:1px solid #e1e9ef; border-radius:10px; background:#fbfcfd; }
.roe-edit-card strong { font-size:.76rem; }.roe-edit-card label,.roe-form-grid label { display:grid; gap:5px; color:#52687d; font-size:.62rem; font-weight:800; }
.roe-edit-card input,.roe-form-grid input,.roe-form-grid select { width:100%; min-height:35px; padding:7px 9px; border:1px solid #cfdce6; border-radius:7px; color:var(--ink); background:#fff; font:inherit; }
.roe-edit-card label:has(input[type=checkbox]),.roe-form-grid label:has(input[type=checkbox]) { display:flex; align-items:center; gap:7px; }.roe-edit-card input[type=checkbox],.roe-form-grid input[type=checkbox] { width:auto; min-height:0; }
.roe-action-grid,.roe-report-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.roe-token-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px;margin:0 0 12px}.roe-token-row label{display:grid;gap:5px;color:#52687d;font-size:.62rem;font-weight:800}.roe-token-row input{min-height:36px;padding:7px 9px;border:1px solid #cfdce6;border-radius:7px}
.integration-card{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}.integration-card strong,.integration-card small{display:block}.integration-card small{margin-top:4px;color:var(--ink-soft)}.integration-card label{display:grid;gap:6px;font-size:.72rem;font-weight:800}.integration-card input{min-height:39px;padding:8px 10px;border:1px solid #cfdce6;border-radius:8px}.integration-consumers,.integration-actions{display:flex;flex-wrap:wrap;gap:7px}.integration-consumers span{padding:5px 8px;border-radius:999px;background:#e9f1f7;color:#415b72;font-size:.65rem;font-weight:800}
.roe-report-grid button { min-height:58px; padding:12px; border:1px solid #d6e0e8; border-radius:9px; color:#1769aa; background:#f8fbfd; font:inherit; font-size:.7rem; font-weight:850; cursor:pointer; }
.roe-report-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:12px}.roe-report-options label{display:grid;gap:5px;color:#52687d;font-size:.62rem;font-weight:800}.roe-report-options input,.roe-report-options select{min-height:36px;padding:7px 9px;border:1px solid #cfdce6;border-radius:7px;background:#fff;color:var(--ink)}
.roe-dialog { width:min(760px,calc(100vw - 24px)); max-height:90vh; padding:0; border:0; border-radius:15px; box-shadow:0 24px 80px rgba(16,42,67,.28); }.roe-dialog::backdrop{background:rgba(16,42,67,.55)}
.roe-dialog form { padding:18px; }.roe-dialog-head,.roe-dialog-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; }.roe-dialog-head h3{margin:3px 0 0}.roe-dialog-head>button{border:0;background:transparent;font-size:1.5rem;cursor:pointer}.roe-dialog-body{max-height:65vh;padding:16px 0;overflow:auto}.roe-dialog-actions{justify-content:flex-end;border-top:1px solid #e7edf2;padding-top:12px}.roe-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.roe-about{display:flex;justify-content:space-between;gap:12px;margin-top:15px;padding:12px;border-radius:9px;background:#f1f5f8;color:#52687d;font-size:.65rem}
.roe-quick-allocation{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:8px 0 12px;padding:9px;border-radius:8px;background:#f1f5f8}.roe-quick-allocation select,.roe-quick-allocation button{min-height:33px;padding:6px 9px;border:1px solid #cfdce6;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:.66rem}.roe-quick-allocation button{color:#1769aa;font-weight:800;cursor:pointer}.roe-quick-allocation small{color:var(--ink-soft)}

/* RoE Controlling: Webabbildung der produktiven Desktopoberfläche */
.roe-view{max-width:none;padding:0 0 36px;background:#f3f5f8}
.roe-app-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border:1px solid #d8e0e7;border-bottom:0;background:#fff}
.roe-app-title{display:flex;align-items:center;gap:12px}.roe-app-title h2{margin:0;font-size:1.08rem}.roe-app-title p{margin:3px 0 0;color:#60758a;font-size:.67rem}.roe-app-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;color:#fff;background:#142f48;font-weight:900}
.roe-app-actions,.roe-toolbar-controls,.roe-cost-actions,.roe-project-buttons,.roe-report-dialog-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.roe-tabs{margin:0;padding:0 12px;border:1px solid #d8e0e7;border-radius:0;background:#e9edf1;overflow:visible}
.roe-tabs button{margin-top:6px;padding:10px 18px;border:1px solid transparent;border-bottom:0;border-radius:5px 5px 0 0;font-size:.72rem}
.roe-tabs button.active{color:#18344d;border-color:#cfd7df;background:#fff}
.roe-desktop-panel{min-height:520px;padding:18px;border:1px solid #d8e0e7;border-top:0;background:#fff}
.roe-panel-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.roe-panel-toolbar h3{margin:0;font-size:1rem}.roe-panel-toolbar p{margin:5px 0 0;color:#667b8e;font-size:.67rem}
.roe-toolbar-controls{justify-content:flex-end}.roe-toolbar-controls label,.roe-month-filter label{display:flex;align-items:center;gap:6px;color:#4c6275;font-size:.67rem;font-weight:750}.roe-toolbar-controls select,.roe-month-filter select{min-height:35px;padding:6px 30px 6px 9px;border:1px solid #cbd6df;border-radius:5px;background:#fff;color:#18344d}
.roe-toolbar-controls button,.roe-app-actions button{flex:0 0 auto;width:auto!important;min-height:35px;padding:7px 11px;border-radius:5px;font-size:.67rem}
.roe-month-filter{display:flex;align-items:center;gap:18px;margin:0 0 12px;padding:10px 12px;border:1px solid #dbe2e8;background:#f8fafb}.roe-month-filter>span{display:flex;align-items:center;gap:10px}.roe-month-filter strong{font-size:.7rem}.roe-month-filter small{color:#667b8e;font-size:.64rem}
.roe-desktop-panel .roe-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.roe-desktop-panel .roe-metrics article{padding:12px;border-radius:5px;box-shadow:none}.roe-desktop-panel .roe-metrics strong{font-size:1.02rem}.roe-annual-metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.roe-table-wrap{border-color:#d7dfe6;border-radius:3px}.roe-data-table{width:100%;border-collapse:collapse;min-width:760px}.roe-data-table th{padding:9px 10px;border-bottom:1px solid #cfd8df;color:#304a60;background:#f1f4f6;font-size:.63rem;text-align:left;white-space:nowrap}.roe-data-table td{padding:9px 10px;border-top:1px solid #e5eaee;color:#344e63;font-size:.68rem;vertical-align:middle}.roe-data-table tbody tr:hover{background:#f4f8fb}.roe-data-table td:not(:first-child){font-variant-numeric:tabular-nums}.roe-summary-table th:not(:first-child),.roe-summary-table td:not(:first-child),.roe-monthly-table th:nth-child(n+3),.roe-monthly-table td:nth-child(n+3),.roe-invoice-table th:nth-child(n+8),.roe-invoice-table td:nth-child(n+8){text-align:right}.roe-data-table td:first-child{font-weight:750}.roe-invoice-table{min-width:1080px;table-layout:fixed}.roe-invoice-table th:nth-child(1){width:36px}.roe-invoice-table th:nth-child(2){width:112px}.roe-invoice-table th:nth-child(3){width:94px}.roe-invoice-table th:nth-child(4){width:138px}.roe-invoice-table th:nth-child(5){width:152px}.roe-invoice-table th:nth-child(6){width:162px}.roe-invoice-table th:nth-child(7){width:190px}.roe-invoice-table th:nth-child(8){width:105px}.roe-invoice-table th:nth-child(9){width:100px}.roe-invoice-table td:first-child,.roe-monthly-table td:first-child{width:30px;text-align:center}.roe-invoice-table td:nth-child(2){font-weight:800}.roe-invoice-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roe-assigned-row{background:#eef8ef}.roe-selected-row{outline:2px solid #2f6fed;outline-offset:-2px;background:#eaf3ff!important}.roe-department-dot{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--department-color,#6454a4)}
.roe-monthly-table{table-layout:fixed;min-width:960px}.roe-monthly-table th:nth-child(1){width:34px}.roe-monthly-table th:nth-child(2){width:130px}.roe-monthly-table th:nth-child(n+3):nth-child(-n+8){width:98px}.roe-monthly-table th:nth-child(9){width:184px}.roe-monthly-department strong{font:inherit}.roe-monthly-achievement{padding-block:7px!important;text-align:left!important}
.roe-target-progress{--roe-progress-color:#477f85;display:grid;gap:6px;min-width:145px}.roe-target-progress[data-tone="critical"]{--roe-progress-color:#b65850}.roe-target-progress[data-tone="behind"]{--roe-progress-color:#b27b35}.roe-target-progress[data-tone="close"]{--roe-progress-color:#477f85}.roe-target-progress[data-tone="complete"]{--roe-progress-color:#2f8068}.roe-target-progress-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.roe-target-progress-head span{color:#6d7b87;font-size:.58rem;font-weight:750}.roe-target-progress-head strong{color:#263b4b;font-size:.68rem;font-variant-numeric:tabular-nums;white-space:nowrap}.roe-target-progress-track{height:7px;overflow:hidden;border:1px solid rgba(42,61,76,.08);border-radius:999px;background:#e6ebef;box-shadow:inset 0 1px 2px rgba(26,39,49,.08)}.roe-target-progress-track i{display:block;width:var(--roe-progress,0%);height:100%;border-radius:inherit;background:var(--roe-progress-color);transition:width .35s ease}.roe-target-progress.is-empty .roe-target-progress-head strong{color:#7a8791}.roe-target-progress.is-empty .roe-target-progress-track i{width:0}
.roe-search input{width:210px;height:35px;border-radius:5px}.roe-invoice-actions{max-width:1000px;flex-wrap:nowrap}.roe-invoice-actions button{min-width:140px}.roe-table-actions{white-space:nowrap;text-align:right}.roe-table-actions button,.roe-cost-actions button,.roe-project-buttons button,.roe-path-grid button,.roe-share-section button{padding:6px 9px;border:1px solid #cbd6df;border-radius:5px;color:#1769aa;background:#fff;font:inherit;font-size:.63rem;font-weight:800;cursor:pointer}.roe-table-actions button+button{margin-left:4px}.roe-table-actions .danger-link{color:#a13b32}
.roe-dialog{width:min(780px,calc(100vw - 24px));border-radius:8px}.roe-dialog.roe-dialog-wide{width:min(1080px,calc(100vw - 24px))}.roe-dialog form{padding:20px}.roe-dialog-body{max-height:72vh}.roe-dialog-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.roe-dialog-intro h4,.roe-settings-block h4,.roe-share-section h4,#roeCostScopePanel>h4{margin:0 0 5px;font-size:.82rem}.roe-dialog-intro p,.roe-settings-block>p,.roe-central-api p{margin:0;color:#667b8e;font-size:.67rem;line-height:1.5}
.roe-settings-block{padding:15px 0;border-bottom:1px solid #dfe6eb}.roe-settings-block:first-child{padding-top:0}.roe-settings-block:last-child{border-bottom:0}.roe-path-grid{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:8px 10px;margin-top:12px}.roe-path-grid label{display:contents}.roe-path-grid label::before{content:attr(data-label)}.roe-path-grid input{min-height:35px;padding:7px 9px;border:1px solid #cdd8e1;border-radius:5px;background:#f7f9fa;color:#52687d}.roe-path-grid label{color:#4e6578;font-size:.66rem;font-weight:750}.roe-path-grid label input{grid-column:2}.roe-path-grid button{grid-column:3}.roe-check{display:flex;align-items:center;gap:8px;margin-top:10px;color:#344e63;font-size:.68rem}.roe-inline-field{display:flex;align-items:center;gap:10px;margin:10px 0 0 24px;color:#52687d;font-size:.67rem}.roe-inline-field input{width:70px;min-height:32px;padding:5px 8px;border:1px solid #cdd8e1;border-radius:5px}.roe-project-buttons{margin-top:10px}.roe-settings-block details{margin-top:12px}.roe-settings-block summary{cursor:pointer;color:#1769aa;font-size:.68rem;font-weight:800}
.roe-cost-tabs{display:flex;gap:2px;margin:0 0 14px;border-bottom:1px solid #cfd8df;overflow-x:auto}.roe-cost-tabs button{padding:8px 12px;border:1px solid transparent;border-bottom:0;border-radius:5px 5px 0 0;color:#52687d;background:#edf1f4;font:inherit;font-size:.66rem;font-weight:800;white-space:nowrap;cursor:pointer}.roe-cost-tabs button.active{color:#18344d;border-color:#cfd8df;background:#fff}.roe-cost-actions{justify-content:space-between;margin:10px 0}.roe-cost-actions strong{font-size:.7rem}.roe-calculated-row{background:#f1f5f8;font-style:italic}.roe-share-section{margin-top:14px;padding-top:14px;border-top:1px solid #dbe2e8}.roe-share-table{display:grid;gap:5px;margin:10px 0}.roe-share-head,.roe-share-table label{display:grid;grid-template-columns:minmax(160px,1fr) 150px 160px;align-items:center;gap:12px;padding:5px 8px;font-size:.66rem}.roe-share-head{color:#52687d;background:#f1f4f6}.roe-share-table label input{width:95px;min-height:32px;padding:5px 8px;border:1px solid #cbd6df;border-radius:5px}.roe-share-table label strong{text-align:right}.roe-cost-footer{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #dbe2e8}.roe-cost-footer span{margin-right:auto;color:#52687d;font-size:.67rem;font-weight:800}.roe-cost-footer button,.roe-dialog-intro button,.roe-project-buttons .primary-button{flex:0 0 auto;width:auto!important}.roe-central-api{padding:8px 0}.roe-central-api .status-pill{float:right}.roe-report-dialog-actions{justify-content:flex-end;margin-top:14px}.roe-annual-metrics{margin-bottom:16px}
.roe-target-progress-track{display:block;width:100%;border-color:rgba(42,61,76,.1);background:#e2e8ec;box-shadow:inset 0 1px 2px rgba(26,39,49,.09);-webkit-appearance:none;appearance:none}.roe-target-progress-track::-webkit-progress-bar{border-radius:999px;background:#e2e8ec}.roe-target-progress-track::-webkit-progress-value{border-radius:999px;background:var(--roe-progress-color)}.roe-target-progress-track::-moz-progress-bar{border-radius:999px;background:var(--roe-progress-color)}
@media(max-width:1100px){.roe-desktop-panel .roe-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1250px){.roe-invoice-toolbar{align-items:stretch;flex-direction:column}.roe-invoice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.roe-invoice-actions button{width:100%!important;min-width:0}}
@media(max-width:760px){.roe-editor-grid,.roe-action-grid,.roe-report-grid,.roe-report-options,.roe-form-grid,.roe-token-row{grid-template-columns:1fr}.roe-list-row{align-items:flex-start;flex-direction:column}.roe-row-actions{justify-content:flex-start}.roe-tabs{margin-inline:-4px}.roe-about{flex-direction:column}.roe-app-header,.roe-panel-toolbar{align-items:stretch;flex-direction:column}.roe-app-actions,.roe-toolbar-controls{justify-content:flex-start}.roe-app-actions .roe-readonly{margin-right:auto}.roe-tabs{margin:0;padding:0 6px}.roe-tabs button{padding:9px 11px}.roe-desktop-panel{min-height:0;padding:12px}.roe-desktop-panel .roe-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.roe-month-filter{align-items:flex-start;flex-direction:column}.roe-month-filter>span{align-items:flex-start;flex-direction:column;gap:4px}.roe-toolbar-controls label{flex:1 1 130px}.roe-toolbar-controls select,.roe-toolbar-controls input{width:100%}.roe-path-grid{grid-template-columns:1fr auto}.roe-path-grid label{display:grid;grid-column:1/-1;gap:5px}.roe-path-grid label input{grid-column:auto}.roe-path-grid button{grid-column:2}.roe-share-head,.roe-share-table label{grid-template-columns:minmax(115px,1fr) 105px 120px}.roe-cost-footer{align-items:flex-start;flex-wrap:wrap}.roe-cost-footer span{flex-basis:100%}.roe-dialog-intro{flex-direction:column}.roe-invoice-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.roe-invoice-actions .roe-search{grid-column:1/-1}}
@media(max-width:1320px){.roe-monthly-table{display:block;width:100%;min-width:0}.roe-monthly-table thead{display:none}.roe-monthly-table tbody{display:grid;gap:12px}.roe-monthly-table tr{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0 14px;overflow:hidden;padding:15px;border:1px solid #dbe2e8;border-radius:16px;background:rgba(255,255,255,.8);box-shadow:0 10px 28px rgba(30,43,53,.07)}.roe-monthly-table td{display:flex!important;align-items:center;justify-content:space-between;gap:10px;width:auto!important;min-width:0;padding:9px 0!important;border:0!important;border-top:1px solid #edf0f2!important;text-align:right!important}.roe-monthly-table td::before{content:attr(data-label);color:#74828e;font-size:.61rem;font-weight:750;text-align:left}.roe-monthly-table .roe-monthly-select{position:absolute;z-index:1;top:14px;right:14px;display:block!important;padding:0!important;border:0!important}.roe-monthly-table .roe-monthly-select::before{content:none}.roe-monthly-table .roe-monthly-select input{width:24px;height:24px;margin:0}.roe-monthly-table .roe-monthly-department{grid-column:1/-1;justify-content:flex-start;padding:0 42px 13px 0!important;border-top:0!important;text-align:left!important;font-size:.84rem}.roe-monthly-table .roe-monthly-department::before{content:none}.roe-monthly-table .roe-monthly-achievement{grid-column:1/-1;display:block!important;padding:13px 0 0!important}.roe-monthly-table .roe-monthly-achievement::before{content:none}.roe-monthly-table .roe-target-progress{gap:8px;min-width:0}.roe-monthly-table .roe-target-progress-head span{font-size:.65rem}.roe-monthly-table .roe-target-progress-head strong{font-size:.78rem}.roe-monthly-table .roe-target-progress-track{height:10px}.roe-monthly-table .empty-state{grid-column:1/-1;display:block!important;text-align:center!important}.roe-monthly-table .empty-state::before{content:none}.roe-monthly-table tr.roe-selected-row{outline:2px solid #477f85;outline-offset:-2px;background:rgba(235,244,245,.92)!important}}
@media(min-width:1101px) and (max-width:1320px){.roe-monthly-table tbody{grid-template-columns:repeat(2,minmax(0,1fr))}.roe-monthly-table .empty-state{grid-column:1/-1}}
.roe-annual-inline{margin-top:20px;padding-top:18px;border-top:1px solid #d8e0e7}.roe-annual-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px}.roe-annual-heading h4{margin:0;font-size:.92rem}.roe-annual-heading p{margin:4px 0 0;color:#667b8e;font-size:.66rem}.roe-annual-tables{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);gap:14px}.roe-annual-tables h5{margin:0 0 7px;font-size:.72rem}.roe-annual-tables .roe-data-table{min-width:560px}.roe-annual-tables>div:nth-child(2) .roe-data-table{min-width:480px}
@media(max-width:1100px){.roe-annual-tables{grid-template-columns:1fr}}
@media(max-width:760px){.roe-annual-heading{align-items:stretch;flex-direction:column}}

/* The pale layer is a forecast only; actual values remain the solid foreground. */
.roe-target-progress-bars{display:grid;isolation:isolate;border-radius:999px;background:#e2e8ec}
.roe-target-progress-bars>progress{grid-area:1/1;min-width:0;width:100%}
.roe-target-progress-bars>.roe-target-progress-track{z-index:1;background:transparent;box-shadow:none}
.roe-target-progress-bars>.roe-target-progress-track::-webkit-progress-bar{background:transparent}
.roe-potential-track{display:block;height:7px;overflow:hidden;border:1px solid transparent;border-radius:999px;background:transparent;appearance:none;-webkit-appearance:none}
.roe-potential-track::-webkit-progress-bar{background:transparent;border-radius:999px}
.roe-potential-track::-webkit-progress-value{background:rgba(47,128,104,.28);border-radius:999px}
.roe-potential-track::-moz-progress-bar{background:rgba(47,128,104,.28);border-radius:999px}
.roe-potential-amount{display:flex;align-items:baseline;justify-content:space-between;gap:5px;flex-wrap:wrap;color:#365b53;font-size:.62rem}
.roe-potential-amount strong{white-space:nowrap;font-size:.68rem}
.roe-potential-note{display:block;color:#647681;font-size:.6rem;line-height:1.45;overflow-wrap:anywhere}
.roe-potential-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:12px 0;color:#536776;font-size:.7rem}
.roe-potential-legend>span{display:inline-flex;align-items:center;gap:6px}
.roe-potential-legend i{width:24px;height:7px;border-radius:999px}
.roe-legend-actual{background:#477f85}.roe-legend-potential{background:rgba(47,128,104,.28)}
.roe-potential-legend small{flex:1 1 300px;font-size:.65rem;color:#647681}
.roe-potential-explanation{margin-top:13px;color:#647681;font-size:.66rem;line-height:1.6}
.roe-potential-explanation summary{cursor:pointer;min-height:28px}.roe-potential-explanation p{max-width:1000px;margin:6px 0}
@media(max-width:1320px){.roe-potential-track{height:10px}.roe-potential-amount,.roe-potential-note{font-size:.7rem}.roe-potential-amount strong{font-size:.78rem}.roe-potential-explanation summary{min-height:36px}}

/* Persönlicher Zugang und verpflichtender Passwortwechsel */
.sidebar-account { min-width:0; display:flex; align-items:center; gap:11px; color:inherit; text-decoration:none; }
.sidebar-account > span:last-child { min-width:0; }
.sidebar-account strong,.sidebar-account small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-account:hover strong { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.profile-view { max-width:980px; }
.account-layout { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(360px,1.28fr); gap:18px; align-items:start; }
.account-card,.account-password-card { border:1px solid rgba(36,39,44,.12); border-radius:22px; background:rgba(255,255,255,.76); box-shadow:0 18px 50px rgba(20,22,26,.09),inset 0 1px 0 rgba(255,255,255,.92); -webkit-backdrop-filter:blur(28px) saturate(115%); backdrop-filter:blur(28px) saturate(115%); }
.account-card { display:flex; align-items:center; gap:16px; padding:22px; }
.account-avatar { flex:0 0 auto; display:grid; width:58px; height:58px; place-items:center; border-radius:18px; color:#fff; background:linear-gradient(145deg,#45494f,#17191c); font-weight:850; }
.account-card small,.account-card strong,.account-card div>span { display:block; }
.account-card small { color:#737980; font-size:.68rem; }
.account-card strong { margin:4px 0 8px; font-size:1rem; }
.account-card div>span { margin-top:4px; color:#656b72; font-size:.75rem; }
.account-password-card { display:grid; gap:13px; padding:24px; }
.account-password-card h3 { margin:0 0 5px; }
.account-password-card>div>p:last-child { margin:0; color:#70767d; font-size:.73rem; }
.account-password-card label,.password-setup-dialog label { display:grid; gap:6px; color:#42474d; font-size:.72rem; font-weight:750; }
.account-password-card input,.password-setup-dialog input { width:100%; min-height:44px; padding:10px 12px; border:1px solid rgba(36,39,44,.18); border-radius:12px; color:#202226; background:rgba(255,255,255,.82); outline:none; }
.account-password-card input:focus,.password-setup-dialog input:focus { border-color:#5a6067; box-shadow:0 0 0 3px rgba(36,39,44,.08); }
.password-guidance { margin:0; color:#737980; font-size:.66rem; line-height:1.5; }
.form-success { min-height:18px; margin:0; color:#28705d; font-size:.75rem; }
.account-password-card .primary-button { width:auto; justify-self:start; margin-top:0; padding-inline:20px; background:#25282d; }
.password-setup-dialog { width:min(500px,calc(100vw - 28px)); padding:0; border:1px solid rgba(255,255,255,.68); border-radius:26px; color:#202226; background:rgba(249,250,251,.88); box-shadow:0 30px 100px rgba(15,17,20,.34),inset 0 1px 0 #fff; -webkit-backdrop-filter:blur(38px) saturate(125%); backdrop-filter:blur(38px) saturate(125%); }
.password-setup-dialog::backdrop { background:rgba(16,18,21,.52); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.password-setup-dialog form { display:grid; gap:14px; padding:30px; }
.password-setup-dialog h2 { margin:0; font-size:1.55rem; letter-spacing:-.03em; }
.password-setup-dialog .muted { margin:0 0 4px; font-size:.82rem; }
.password-setup-dialog .primary-button { margin-top:2px; background:#25282d; }
.password-setup-logout { justify-self:center; border:0; background:transparent; }
.login-card .login-remember { display:grid; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:10px; margin-top:15px; cursor:pointer; }
.login-card .login-remember input { width:18px; height:18px; min-height:18px; margin:2px 0 0; padding:0; accent-color:#25282d; }
.login-remember strong,.login-remember small { display:block; }
.login-remember strong { color:#34383e; font-size:.73rem; }
.login-remember small { margin-top:3px; color:#777d84; font-size:.62rem; font-weight:500; line-height:1.4; }
@media(max-width:760px){
  .account-layout{grid-template-columns:1fr}.account-card,.account-password-card{border-radius:18px}.account-password-card{padding:19px}
  .password-setup-dialog form{padding:22px}.password-setup-dialog h2{font-size:1.32rem}
}

/* Einheitliches, bewusst neutrales Schaltflächensystem im RoE-Modul. */
.roe-view .primary-button,
.roe-view .secondary-button,
.roe-dialog .primary-button,
.roe-dialog .secondary-button,
.roe-dialog-actions button,
.roe-project-buttons button,
.roe-app-actions button,
.roe-toolbar-controls button,
.roe-cost-actions button,
.roe-cost-footer button,
.roe-dialog-intro button,
.roe-path-grid button,
.roe-share-section button {
  box-sizing: border-box;
  width: auto !important;
  min-height: 38px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #b9c8d5;
  border-radius: 6px;
  color: #24445f;
  background: #fff;
  box-shadow: none;
  font: inherit;
  font-size: .68rem;
  font-weight: 780;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}
.roe-view .primary-button,
.roe-dialog .primary-button {
  color: #17354e;
  border-color: #7f97aa;
  background: #eef3f6;
}
.roe-view button:hover:not(:disabled),
.roe-dialog button:hover:not(:disabled) {
  color: #102f49;
  border-color: #7892a7;
  background: #f3f6f8;
}
.roe-view button:focus-visible,
.roe-dialog button:focus-visible {
  outline: 3px solid rgba(23,105,170,.18);
  outline-offset: 2px;
}
.roe-view button:disabled,
.roe-dialog button:disabled { opacity: .55; cursor: not-allowed; }
.roe-tabs button,
.roe-cost-tabs button,
.roe-table-actions button,
.roe-dialog-head > button { min-height: 0; }
.roe-tabs button { padding: 10px 18px; border-radius: 5px 5px 0 0; }
.roe-cost-tabs button { padding: 8px 12px; border-radius: 5px 5px 0 0; }
.roe-table-actions button { min-height: 30px; padding: 0 9px; }
.roe-dialog-head > button { width: 36px !important; height: 36px; padding: 0; border: 0; background: transparent; }
.roe-invoice-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(138px, 1fr));
  gap: 8px;
  width: min(100%, 720px);
  max-width: none;
}
.roe-invoice-actions button { width: 100% !important; min-width: 0; }
.roe-api-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 10px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e1e7ec;
}
.roe-api-actions button {
  width: 100% !important;
  height: 40px;
  min-height: 40px;
  white-space: normal;
}
.roe-api-actions .primary-button { height: 40px; min-height: 40px; }
.roe-dialog-actions button { min-width: 112px; }
@media(max-width:760px){
  .roe-invoice-actions { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .roe-api-actions { grid-template-columns:1fr; }
  .roe-api-actions button { width:100%!important; }
}
#roePrintReport{display:none}
@page { size: A4 portrait; margin: 17mm 18mm; }
@media print {
  body[data-roe-report] { margin:0!important; background:#fff!important; }
  body[data-roe-report]>*:not(#roePrintReport){display:none!important}
  #roePrintReport{display:block!important;width:auto;min-height:263mm;margin:0;padding:0 0 12mm;color:#162033;background:#fff;font:9.5pt/1.35 "Segoe UI",Arial,sans-serif;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  #roePrintReport header{display:flex;align-items:flex-start;justify-content:space-between;gap:12mm;margin:0 0 8mm;padding:0;border:0}
  #roePrintReport header>div{min-width:0}
  #roePrintReport header img{width:24mm;height:29mm;object-fit:contain;object-position:center}
  #roePrintReport h1{margin:0 0 2mm;color:#162033;font-size:22pt;line-height:1.15;font-weight:500;letter-spacing:0}
  #roePrintReport header p{margin:0;color:#344054;font-size:9pt}
  #roePrintReport h2{margin:8mm 0 3mm;color:#162033;font-size:13pt;line-height:1.25;break-after:avoid}
  #roePrintReport table{width:100%;margin:0;border-collapse:collapse;table-layout:fixed;font-size:8.5pt;break-inside:auto}
  #roePrintReport thead{display:table-header-group}
  #roePrintReport tr{break-inside:avoid}
  #roePrintReport th,#roePrintReport td{padding:2.1mm 2.7mm;border:.35pt solid #d7dce5;text-align:right;vertical-align:middle}
  #roePrintReport th{color:#fff;background:#162033;font-weight:600}
  #roePrintReport th:first-child,#roePrintReport td:first-child{text-align:left}
  #roePrintReport tbody tr:nth-child(even) td{background:#f7f8fa}
  #roePrintReport .positive{color:#067647}
  #roePrintReport .negative{color:#b42318}
  .roe-report-kpis,.roe-report-cumulative{display:grid;margin:0;border:.35pt solid #d7dce5;background:#f4f6fa;break-inside:avoid}
  .roe-report-kpis{grid-template-columns:repeat(4,1fr)}
  .roe-report-cumulative{grid-template-columns:repeat(3,1fr);margin-top:5mm}
  .roe-report-kpis>div,.roe-report-cumulative>div{min-width:0;padding:2.4mm 3mm;border-right:.35pt solid #d7dce5}
  .roe-report-kpis>div:last-child,.roe-report-cumulative>div:last-child{border-right:0}
  .roe-report-kpis span,.roe-report-cumulative span{display:block;margin-bottom:2.4mm;color:#344054;font-size:8pt}
  .roe-report-kpis strong,.roe-report-cumulative strong{display:block;color:#162033;font-size:13.5pt;font-weight:500;white-space:nowrap}
  .roe-report-cumulative span{margin:-2.4mm -3mm 2.4mm;padding:2mm 3mm;color:#fff;background:#162033}
  .roe-report-cumulative strong.negative{color:#b42318}.roe-report-cumulative strong.positive{color:#067647}
  .roe-print-chart{margin:8mm 0 0;break-inside:avoid}
  .roe-print-chart figcaption{margin-bottom:1mm;color:#162033;font-size:12pt}
  .roe-print-chart svg{display:block;width:100%;height:auto;overflow:visible}
  .roe-print-chart svg .grid line{stroke:#d7dce5;stroke-width:.7}
  .roe-print-chart svg text{fill:#667085;font:9px Arial,sans-serif}
  .roe-print-chart svg .legend text{fill:#344054;font-size:10px}
  .roe-print-chart svg rect.target{fill:#162033}
  .roe-print-chart svg text.month{font-size:10px}.roe-print-chart svg text.unit{font-size:9px}
  .roe-department-report{position:relative;min-height:263mm;padding-bottom:12mm;break-inside:avoid}
  .roe-report-new-page{break-before:page;page-break-before:always}
  #roePrintReport tr.roe-report-total td{font-weight:700;border-top:1pt solid #98a2b3}
  .roe-report-note{margin:0;color:#344054;font-size:9pt;line-height:1.45}
  .roe-report-page-footer{position:absolute;right:0;bottom:0;left:0;display:flex;justify-content:space-between;color:#667085;font-size:8pt}
  #roePrintReport footer{position:fixed;right:0;bottom:0;left:0;display:flex;justify-content:space-between;color:#667085;font-size:8pt}
}
.activity-list { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(16,42,67,.045); }
.activity-entry { display: grid; grid-template-columns: minmax(0, 1fr) 140px 145px; gap: 18px; align-items: center; padding: 16px 18px; border-top: 1px solid #edf1f5; }
.activity-entry:first-child { border-top: 0; }
.activity-entry strong, .activity-entry small { display: block; }
.activity-entry small { margin-top: 4px; color: var(--ink-soft); font-size: .72rem; }
.activity-result { justify-self: start; padding: 5px 8px; border-radius: 999px; color: #11685f; background: #e4f6f2; font-size: .68rem; font-weight: 800; }
.activity-result.denied, .activity-result.failure { color: #a13b32; background: #fff0ed; }
.activity-time { color: var(--ink-soft); font-size: .73rem; text-align: right; }
.empty-state { grid-column: 1 / -1; margin: 0; padding: 25px; color: var(--ink-soft); text-align: center; }
.help-grid, .service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.help-grid article, .service-card { padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(16,42,67,.045); }
.help-grid article strong { font-size: .95rem; }
.help-grid article p { min-height: 70px; margin: 10px 0 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.55; }
.service-card { display: grid; gap: 7px; }
.service-card span { color: var(--ink-soft); font-size: .72rem; }
.service-card strong { font-size: 1.15rem; }
.service-card i { width: 11px; height: 11px; border-radius: 50%; background: #16a394; box-shadow: 0 0 0 5px rgba(22,163,148,.12); }

.panel-backdrop { position: fixed; z-index: 30; inset: 0; background: rgba(4, 19, 33, .48); backdrop-filter: blur(3px); }
.customize-panel { position: fixed; z-index: 31; top: 0; right: 0; bottom: 0; width: min(580px, 100%); display: grid; grid-template-rows: auto 1fr auto; background: #f7f9fb; box-shadow: -20px 0 60px rgba(4,19,33,.2); }
.customize-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 28px; border-bottom: 1px solid var(--line); background: #fff; }
.customize-header h2 { margin: 0; font-size: 1.28rem; }
.panel-close { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; font-size: 1.5rem; cursor: pointer; }
.customize-content { overflow-y: auto; padding: 22px 28px 40px; }
.admin-tabs { position: sticky; z-index: 2; top: -22px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: -22px -28px 20px; padding: 14px 28px; border-bottom: 1px solid var(--line); background: rgba(247,249,251,.96); backdrop-filter: blur(8px); }
.admin-tabs button { min-height: 40px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink-soft); background: #fff; font-size: .72rem; font-weight: 800; cursor: pointer; }
.admin-tabs button.active { color: #fff; border-color: var(--blue); background: var(--blue); }
.settings-section { margin-bottom: 18px; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.settings-section h3 { margin-bottom: 16px; font-size: .95rem; }
.settings-help { margin: -7px 0 15px; color: var(--ink-soft); font-size: .71rem; line-height: 1.5; }
.settings-section label { display: grid; gap: 7px; color: #486581; font-size: .72rem; font-weight: 750; }
.settings-section input, .settings-section select, .settings-section textarea, .settings-title-row select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #bcccdc; border-radius: 8px; color: var(--ink); background: #fff; }
.settings-section textarea { resize: vertical; line-height: 1.45; }
.settings-section input[type="color"] { padding: 4px; cursor: pointer; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.upload-field { margin-top: 15px; }
.settings-title-row { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.settings-title-row h3 { margin-bottom: 3px; }
.settings-title-row p { margin: 0; color: var(--ink-soft); font-size: .74rem; }
.settings-title-row select { width: 170px; }
.visibility-list { display: grid; gap: 2px; margin-top: 16px; }
.visibility-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid #edf1f5; }
.visibility-row span, .visibility-row strong, .visibility-row small { display: block; }
.visibility-identity { min-width: 0; }
.visibility-row strong { color: var(--ink); font-size: .79rem; }
.visibility-row small { margin-top: 2px; color: #829ab1; font-size: .65rem; }
.visibility-row .menu-name-input { min-height: 35px; padding: 6px 8px; border-color: transparent; color: var(--ink); font-size: .79rem; font-weight: 800; }
.visibility-row .menu-name-input:hover, .visibility-row .menu-name-input:focus { border-color: #bcccdc; }
.visibility-row .visibility-toggle { width: 20px; height: 20px; min-height: 20px; accent-color: var(--blue); cursor: pointer; }
.row-actions { display: flex !important; gap: 4px; }
.row-action { display: grid; place-items: center; width: 31px; height: 31px; padding: 0; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-soft); background: #fff; cursor: pointer; }
.row-action:hover { color: var(--ink); border-color: #9fb3c7; background: #f4f7fa; }
.row-action:disabled { opacity: .28; cursor: not-allowed; }
.text-button { margin-top: 12px; padding: 7px 0; border: 0; color: var(--blue); background: transparent; font-size: .72rem; font-weight: 800; cursor: pointer; }
.link-grid { grid-template-columns: .8fr 1.2fr; }
.link-description-field { grid-column: 1 / -1; }
.tool-card-editor-list { display: grid; gap: 10px; margin-top: 18px; }
.tool-card-editor { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px 12px; padding: 14px; border: 1px solid #e2e9ef; border-radius: 11px; background: #f8fafc; }
.tool-card-editor-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; color: #fff; background: var(--blue); font-weight: 900; }
.tool-card-editor-icon img { width: 25px; height: 25px; padding: 2px; border-radius: 5px; background: #fff; object-fit: contain; }
.tool-card-editor-fields { display: grid; gap: 8px; }
.tool-card-editor-fields input, .tool-card-editor-fields textarea { min-height: 36px; font-size: .72rem; }
.tool-card-editor-actions { grid-column: 2; display: flex; justify-content: flex-end; }
.tool-card-editor-actions button { margin: 0; }
.panel-secondary { display: inline-block; margin-top: 14px; }
.user-create-form { margin-top: 18px; padding: 16px; border: 1px solid #e2e9ef; border-radius: 11px; background: #f8fafc; }
.user-list { display: grid; margin-top: 16px; }
.user-row { display: grid; grid-template-columns: minmax(0, 1fr) 135px auto auto; align-items: center; gap: 8px; padding: 11px 0; border-top: 1px solid #edf1f5; }
.user-row:first-child { border-top: 0; }
.user-identity strong, .user-identity small { display: block; }
.user-identity strong { color: var(--ink); font-size: .77rem; }
.user-identity small { margin-top: 3px; color: #829ab1; font-size: .65rem; }
.user-row select { min-height: 36px; padding-block: 5px; }
.user-status-button { min-width: 86px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; color: #52687d; background: #fff; font-size: .67rem; font-weight: 800; cursor: pointer; }
.user-status-button.danger { color: #a13b32; border-color: #efcfcb; background: #fff8f7; }
.user-status-button:disabled { opacity: .45; cursor: not-allowed; }
.roe-access-list { display: grid; gap: 8px; margin-top: 14px; }
.roe-access-row { display: grid; grid-template-columns: minmax(180px, 1fr) 150px 170px; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.72); }
.roe-access-row > span strong, .roe-access-row > span small { display: block; }
.roe-access-row > span small { margin-top: 2px; color: var(--ink-soft); font-size: .68rem; }
.roe-access-row label { display: flex; align-items: center; gap: 7px; font-size: .75rem; font-weight: 750; }
.roe-access-actions { display: flex; justify-content: flex-end; margin-top: 14px; }
@media (max-width: 620px) { .roe-access-row { grid-template-columns: 1fr; gap: 8px; } }
.user-delete-button { padding: 8px 9px; border: 1px solid #efcfcb; border-radius: 8px; color: #a13b32; background: #fff8f7; font-size: .67rem; font-weight: 800; cursor: pointer; }
.user-delete-button:disabled { opacity: .35; cursor: not-allowed; }
.inline-create-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin-top: 18px; padding: 16px; border: 1px solid #e2e9ef; border-radius: 11px; background: #f8fafc; }
.inline-create-form .secondary-button { min-height: 42px; }
.role-list { display: grid; margin-top: 14px; }
.role-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid #edf1f5; }
.role-row strong, .role-row small { display: block; }
.role-row strong { color: var(--ink); font-size: .77rem; }
.role-row small { margin-top: 3px; color: #829ab1; font-size: .65rem; }
.role-row-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.role-row-actions button { min-height: 44px; }
.role-name-editor { grid-column: 1 / -1; display: grid; gap: 8px; min-width: 0; }
.role-name-editor input { width: 100%; min-width: 0; min-height: 44px; font-size: 16px; }
.role-name-editor .settings-help { margin: 0; }
.role-name-editor .settings-help:empty { display: none; }
@media (max-width: 620px) { .role-row { grid-template-columns: minmax(0, 1fr); } }
.planner-create-form { margin-top: 18px; padding: 16px; border: 1px solid #e2e9ef; border-radius: 11px; background: #f8fafc; }
.role-choice-fieldset { margin: 15px 0 0; padding: 12px; border: 1px solid #dbe4ec; border-radius: 9px; }
.role-choice-fieldset legend { padding: 0 6px; color: var(--ink-soft); font-size: .7rem; font-weight: 800; }
.role-choice-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.role-choice-list label { display: flex; grid-template-columns: none; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid #dbe4ec; border-radius: 999px; background: #fff; cursor: pointer; }
.role-choice-list input { width: 16px; height: 16px; min-height: 16px; accent-color: var(--blue); }
.planner-admin-list { display: grid; gap: 12px; margin-top: 18px; }
.planner-admin-card { display: grid; gap: 9px; padding: 14px; border: 1px solid #e2e9ef; border-radius: 11px; background: #f8fafc; }
.planner-admin-card > input, .planner-admin-card > textarea { min-height: 37px; font-size: .72rem; }
.planner-admin-header { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 9px; }
.planner-admin-header .planner-link-icon { width: 38px; height: 38px; margin: 0; }
.planner-admin-header > input { min-height: 38px; }
.compact-checkbox { display: flex !important; align-items: center; gap: 4px !important; white-space: nowrap; }
.compact-checkbox input { width: 17px; height: 17px; min-height: 17px; }
.planner-admin-actions { display: flex; justify-content: flex-end; gap: 8px; }
.planner-admin-actions .secondary-button { margin: 0; }
.api-endpoints { display: grid; gap: 8px; margin: 14px 0; }
.api-endpoints div { display: grid; grid-template-columns: 66px minmax(0, 1fr); align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #e2e9ef; border-radius: 9px; background: #f8fafc; }
.api-endpoints span { color: #52687d; font-size: .66rem; font-weight: 850; }
.api-endpoints code { overflow: hidden; color: var(--ink); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.live-preview { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 13px; border-radius: 10px; color: #0b253f; background: #edf8f5; }
.live-preview strong, .live-preview small { display: block; }
.live-preview strong { font-size: .76rem; }
.live-preview small { margin-top: 3px; color: #52736d; font-size: .63rem; }
.live-preview .secondary-button { min-height: 36px; padding: 8px 10px; }
.live-dot { width: 10px; height: 10px; border-radius: 50%; background: #20a178; box-shadow: 0 0 0 5px rgba(32,161,120,.14); }
.storage-rules { display: grid; gap: 8px; margin: 14px 0 18px; }
.storage-rules div { padding: 11px 12px; border: 1px solid #e2e9ef; border-radius: 9px; background: #f8fafc; }
.storage-rules strong, .storage-rules small { display: block; }
.storage-rules strong { color: var(--ink); font-size: .74rem; }
.storage-rules small { margin-top: 3px; color: #627d98; font-size: .65rem; line-height: 1.4; }
.storage-budget-list { display: grid; }
.storage-budget-row { grid-template-columns: minmax(0, 1fr) 115px !important; align-items: center; gap: 14px !important; padding: 10px 0; border-top: 1px solid #edf1f5; }
.storage-budget-row strong, .storage-budget-row > span > small { display: block; }
.storage-budget-row strong { color: var(--ink); font-size: .74rem; }
.storage-budget-row > span > small { margin-top: 3px; color: #829ab1; font-size: .63rem; font-weight: 500; }
.storage-overview-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.storage-overview-strip>div{display:grid;gap:4px;padding:14px 16px;border:1px solid rgba(64,87,99,.14);border-radius:14px;background:linear-gradient(145deg,rgba(247,250,251,.94),rgba(238,245,246,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.storage-overview-strip small{color:#6a7981;font-size:.64rem;font-weight:760;text-transform:uppercase;letter-spacing:.08em}.storage-overview-strip strong{color:#203139;font-size:1.15rem}
.storage-budget-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(160px,1.2fr) minmax(110px,.55fr) minmax(110px,.55fr) auto!important;gap:12px!important;padding:13px 0!important}
.storage-budget-progress{display:grid;gap:6px;min-width:0}.storage-budget-progress>span{display:flex;justify-content:space-between;gap:10px;color:#61747d;font-size:.64rem}.storage-budget-progress progress{width:100%;height:7px;overflow:hidden;border:0;border-radius:999px;background:#e7edef}.storage-budget-progress progress::-webkit-progress-bar{background:#e7edef;border-radius:999px}.storage-budget-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#4e8b85,#315f62);border-radius:999px}.storage-budget-progress progress::-moz-progress-bar{background:#4e8b85;border-radius:999px}
.storage-budget-field{display:grid;gap:5px;color:#60727a;font-size:.62rem;font-weight:750}.storage-budget-field .input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.storage-budget-field input{min-height:38px;padding:7px 9px;border-radius:9px}.storage-budget-field .input-with-unit small{padding:0 8px}
.storage-budget-save{min-height:38px;align-self:end;padding:0 12px;border:1px solid rgba(52,85,94,.22);border-radius:10px;background:rgba(255,255,255,.8);color:#273a42;font-size:.68rem;font-weight:850;cursor:pointer}.storage-budget-save:hover{background:#fff}.storage-budget-save:disabled{opacity:.55;cursor:wait}
.planner-storage-control{display:grid;gap:18px;margin-top:22px;padding:20px;border:1px solid rgba(55,104,103,.22);border-radius:20px;background:linear-gradient(145deg,rgba(240,248,247,.92),rgba(255,255,255,.78));box-shadow:0 18px 44px rgba(34,55,63,.06),inset 0 1px 0 rgba(255,255,255,.95)}
.planner-storage-control>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.planner-storage-control h4{margin:4px 0 5px;color:#202d33;font-size:1rem}.planner-storage-control header p{margin:0;color:#66757d;font-size:.72rem}.settings-kicker{color:#467774;font-size:.58rem;font-weight:900;letter-spacing:.14em}.storage-backup-state{flex:0 0 auto;padding:7px 10px;border:1px solid rgba(40,125,91,.2);border-radius:999px;background:rgba(224,244,235,.82);color:#216044;font-size:.62rem;font-weight:850;white-space:nowrap}
.planner-storage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.planner-storage-metrics>div{display:grid;gap:4px;padding:14px;border:1px solid rgba(65,88,98,.13);border-radius:14px;background:rgba(255,255,255,.72)}.planner-storage-metrics small{color:#6b7d84;font-size:.62rem;font-weight:760}.planner-storage-metrics strong{color:#21323a;font-size:1.03rem}.planner-storage-metrics span{color:#718087;font-size:.6rem;line-height:1.35}
.planner-retention-row{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(260px,1fr);align-items:end;gap:14px}.planner-retention-actions{display:flex;justify-content:flex-end;gap:9px}.planner-retention-actions button{min-height:42px}.danger-button{padding:0 14px;border:1px solid rgba(154,68,62,.3);border-radius:10px;background:rgba(255,246,245,.9);color:#8b3e39;font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}.danger-button:hover{background:#fff1ef}.danger-button:disabled{opacity:.45;cursor:not-allowed}
.storage-control-status{min-height:18px;margin:0;color:#5e737b;font-size:.68rem;line-height:1.45}.planner-storage-control>footer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding-top:14px;border-top:1px solid rgba(67,91,102,.14);color:#63757d;font-size:.65rem;line-height:1.45}.planner-storage-control>footer strong{color:#2f625c}
@media(max-width:980px){.storage-budget-row{grid-template-columns:minmax(160px,1fr) minmax(180px,1.4fr) repeat(2,minmax(100px,.6fr))!important}.storage-budget-save{grid-column:1/-1;justify-self:end}.planner-storage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.storage-overview-strip{grid-template-columns:1fr}.storage-budget-row{grid-template-columns:1fr 1fr!important}.storage-budget-row>span:first-child,.storage-budget-progress,.storage-budget-save{grid-column:1/-1}.storage-budget-save{width:100%;min-height:44px}.planner-storage-control{padding:15px;border-radius:18px}.planner-storage-control>header{flex-direction:column}.storage-backup-state{white-space:normal}.planner-storage-metrics{grid-template-columns:1fr 1fr}.planner-retention-row{grid-template-columns:1fr}.planner-retention-actions{display:grid;grid-template-columns:1fr}.planner-retention-actions button{width:100%;min-height:46px}.planner-storage-control>footer{grid-template-columns:1fr}}
.security-state { padding: 6px 9px; border-radius: 999px; color: #11685f; background: #e4f6f2; font-size: .65rem; font-weight: 850; white-space: nowrap; }
.security-number-grid { margin-top: 18px; }
.security-notice { margin: 16px 0 8px; padding: 11px 12px; border-left: 3px solid var(--orange); border-radius: 7px; color: #52687d; background: #fff7f0; font-size: .69rem; line-height: 1.45; }
.permission-list { display: grid; gap: 12px; }
.permission-row { grid-template-columns: minmax(0, 1fr) auto !important; align-items: center; gap: 14px !important; padding: 11px 0; border-top: 1px solid #edf1f5; cursor: pointer; }
.permission-row strong, .permission-row small { display: block; }
.permission-row strong { color: var(--ink); font-size: .75rem; }
.permission-row small { margin-top: 3px; color: #829ab1; font-size: .64rem; font-weight: 500; }
.permission-row input { width: 20px; height: 20px; min-height: 20px; accent-color: var(--blue); }
.permission-group-card { overflow: hidden; border: 1px solid rgba(36,39,44,.11); border-radius: 16px; background: rgba(255,255,255,.64); box-shadow: inset 0 1px 0 rgba(255,255,255,.9); }
.permission-group-card>header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 14px; background:rgba(231,233,235,.62); }
.permission-group-card>header strong,.permission-group-card>header small { display:block; }.permission-group-card>header strong { font-size:.8rem; }.permission-group-card>header small { margin-top:3px; color:#737980; font-size:.63rem; }
.permission-group-rows { padding:0 14px; }.permission-group-rows .permission-row:first-child { border-top:0; }
.permission-parent { margin-inline:-14px; padding-inline:14px; background:rgba(245,246,247,.72); }.permission-parent strong { font-size:.79rem; }
.permission-master { display:flex; align-items:center; gap:8px; color:#5e646b; font-size:.65rem; font-weight:800; cursor:pointer; }.permission-master input { width:20px; height:20px; min-height:20px; accent-color:#30343a; }
.input-with-unit { position: relative; display: block !important; }
.input-with-unit input { padding-right: 56px; }
.input-with-unit small { position: absolute; top: 50%; right: 10px; margin: 0; transform: translateY(-50%); color: #829ab1; font-size: .65rem; }
.security-toggle-list { display: grid; margin-top: 20px; }
.security-toggle-list > label { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 13px 0; border-top: 1px solid #edf1f5; cursor: pointer; }
.security-toggle-list strong, .security-toggle-list small { display: block; }
.security-toggle-list strong { color: var(--ink); font-size: .76rem; }
.security-toggle-list small { margin-top: 3px; color: #829ab1; font-size: .65rem; font-weight: 500; line-height: 1.4; }
.security-toggle-list input { width: 20px; height: 20px; min-height: 20px; accent-color: var(--blue); }
.customize-footer { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding: 17px 28px; border-top: 1px solid var(--line); background: #fff; }
.customize-footer span { margin-right: auto; color: var(--ink-soft); font-size: .72rem; }
.panel-save { width: auto; margin: 0; padding-inline: 20px; }
.panel-open { overflow: hidden; }
.brand-mark.custom-logo {
  width: min(190px, 100%);
  height: 70px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: none;
}
.brand.has-custom-logo > span:last-child, .login-brand.has-custom-logo > p { display: none; }
.login-brand .brand-mark.custom-logo { width: min(220px, calc(100vw - 64px)); height: 82px; }

.login-shell { min-height: 100vh; padding: 28px; display: grid; place-items: center; background: radial-gradient(circle at 80% 10%, #d7e7f4 0, transparent 30%), linear-gradient(135deg, #eef3f8, #f8fafc); }
.login-brand { position: fixed; top: 28px; left: 32px; display: flex; align-items: center; gap: 12px; }
.login-brand p { margin: 0; font-weight: 800; }
.login-card { width: min(100%, 420px); padding: 38px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.login-card h1 { margin-bottom: 8px; font-size: 1.8rem; }
.muted { color: var(--ink-soft); line-height: 1.55; }
.login-card label { display: grid; gap: 7px; margin-top: 18px; color: #334e68; font-size: .78rem; font-weight: 750; }
.login-card input, .login-card select { width: 100%; padding: 12px 13px; border: 1px solid #bcccdc; border-radius: 9px; color: var(--ink); background: #fff; outline: none; }
.login-card input:focus, .login-card select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,105,170,.12); }
.primary-button { width: 100%; margin-top: 22px; padding: 13px; border: 0; border-radius: 10px; color: #fff; background: var(--blue); font-weight: 800; cursor: pointer; }
.form-error { min-height: 18px; margin: 10px 0 0; color: #b42318; font-size: .75rem; }
.preview-hint { margin: 16px 0 0; padding: 10px 11px; border-radius: 8px; color: #52687d; background: #f0f4f7; font-size: .68rem; line-height: 1.45; }
.setup-link { display: block; box-sizing: border-box; text-align: center; text-decoration: none; }

@media (max-width: 1080px) {
  .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roe-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roe-department-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .status-strip { grid-template-columns: 1fr 1fr; }
  .status-strip > a { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid var(--line); }
}

@media (min-width: 1500px) {
  .module-grid, .planner-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  .workspace { padding: max(22px, env(safe-area-inset-top)) 18px calc(92px + env(safe-area-inset-bottom)); }
  .topbar { align-items: flex-start; }
  .topbar .eyebrow, .connection { display: none; }
  .topbar h1 { font-size: 1.55rem; }
  .status-strip { margin: 24px 0 36px; grid-template-columns: 1fr; gap: 14px; }
  .status-strip > a { grid-column: auto; }
  .section-heading { align-items: center; }
  .section-heading .secondary-button { display: inline-block; padding: 8px 10px; font-size: .7rem; }
  .module-grid { grid-template-columns: 1fr; }
  .help-grid, .service-grid, .planner-grid { grid-template-columns: 1fr; }
  .roe-heading { align-items: flex-start; }
  .roe-heading-actions { width: 100%; align-items: stretch; }
  .roe-heading-actions label { flex: 1; }
  .roe-heading-actions select { width: 100%; min-width: 0; }
  .roe-period-bar { align-items: flex-start; flex-direction: column; }
  .roe-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roe-department-grid { grid-template-columns: 1fr; }
  .roe-invoice-heading { align-items: stretch; flex-direction: column; }
  .roe-search input { width: 100%; }
  .content-page-heading { align-items: flex-start; }
  .activity-entry { grid-template-columns: minmax(0, 1fr) auto; }
  .activity-time { grid-column: 1 / -1; text-align: left; }
  .module-card { min-height: 180px; }
  .mobile-nav { position: fixed; z-index: 10; left: 12px; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(4, 1fr); padding: 8px; border: 1px solid rgba(255,255,255,.12); border-radius: 17px; background: rgba(11,37,63,.96); box-shadow: 0 10px 35px rgba(11,37,63,.28); backdrop-filter: blur(18px); }
  .mobile-nav a { display: grid; justify-items: center; gap: 4px; padding: 6px; color: #9fb3c7; text-decoration: none; }
  .mobile-nav a span { font-size: .72rem; font-weight: 850; }
  .mobile-nav a small { font-size: .62rem; }
  .mobile-nav a.active { color: #fff; }
  .login-brand { position: static; margin-bottom: 24px; }
  .login-shell { display: flex; flex-direction: column; align-items: stretch; justify-content: center; }
  .login-card { margin: 0 auto; padding: 28px 22px; }
  .customize-panel { width: 100%; }
  .customize-header { padding: 20px 18px; }
  .customize-content { padding: 16px 14px 110px; }
  .settings-section { padding: 18px; }
  .settings-grid, .link-grid { grid-template-columns: 1fr; }
  .settings-title-row { display: grid; }
  .settings-title-row select { width: 100%; }
  .user-row { grid-template-columns: minmax(0, 1fr) auto; }
  .user-row select { grid-column: 1; grid-row: 2; }
  .user-row .user-delete-button { grid-column: 2; grid-row: 2; }
  .inline-create-form, .live-preview { grid-template-columns: 1fr; }
  .live-dot { display: none; }
  .visibility-row { grid-template-columns: minmax(0, 1fr) auto; }
  .visibility-row .row-actions { grid-column: 1 / -1; grid-row: 2; }
  .visibility-row .visibility-toggle { grid-column: 2; grid-row: 1; }
  .row-action { width: 38px; height: 36px; }
  .customize-footer { position: fixed; left: 0; right: 0; bottom: 0; padding: 14px; display: grid; }
  .customize-footer span { min-height: 16px; }
  .panel-save { width: 100%; }
}

@media (max-width: 420px) {
  .workspace { padding-inline: 13px; }
  .topbar h1 { max-width: 235px; font-size: 1.35rem; }
  .icon-button { width: 38px; height: 38px; }
  .status-strip { padding: 15px; }
  .section-heading h2 { font-size: 1.12rem; }
  .module-card { min-height: 0; padding: 20px; }
  .module-card.featured { padding-top: 17px; }
  .module-card p { min-height: 0; }
  .roe-heading-actions { display: grid; grid-template-columns: 1fr; }
  .roe-metrics { grid-template-columns: 1fr 1fr; gap: 8px; }
  .roe-metrics article { padding: 13px; }
  .roe-metrics strong { font-size: 1rem; }
  .roe-section { margin-inline: -2px; padding: 14px; }
  .badge { top: 20px; right: 20px; }
  .mobile-nav { left: 7px; right: 7px; }
  .mobile-nav a { min-width: 0; }
  .mobile-nav a small { max-width: 64px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .customize-header h2 { font-size: 1.08rem; }
  .settings-section { padding: 16px 14px; }
  .security-toggle-list > label { gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* T21 Designsystem 2026 – ruhiges Liquid Glass mit Phi-Abstandsskala. */
:root {
  --ink: #12283b;
  --ink-soft: #5d7183;
  --navy: #102b42;
  --blue: #176da8;
  --canvas: #eaf0f5;
  --line: rgba(80, 111, 135, .18);
  --glass: rgba(255, 255, 255, .66);
  --glass-strong: rgba(255, 255, 255, .82);
  --glass-dark: rgba(12, 39, 60, .84);
  --phi-1: 6px;
  --phi-2: 10px;
  --phi-3: 16px;
  --phi-4: 26px;
  --phi-5: 42px;
  --phi-6: 68px;
  --radius-s: 10px;
  --radius-m: 16px;
  --radius-l: 26px;
  --shadow: 0 26px 68px rgba(26, 52, 72, .12), inset 0 1px 0 rgba(255, 255, 255, .86);
}
html, body { max-width: 100%; overflow-x: clip; }
body {
  background:
    radial-gradient(circle at 12% 4%, rgba(255,255,255,.95), transparent 28%),
    radial-gradient(circle at 88% 2%, rgba(168,204,229,.35), transparent 31%),
    linear-gradient(145deg, #edf3f8 0%, #e8eef4 48%, #f4f7fa 100%);
  background-attachment: fixed;
}
button, input, select, textarea { border-radius: var(--radius-s); }
button { transition: transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
button:active:not(:disabled) { transform: scale(.985); }

.app-shell { grid-template-columns: 248px minmax(0, 1fr); }
.sidebar {
  width: 248px;
  padding: var(--phi-4);
  border-right: 1px solid rgba(255,255,255,.13);
  background: linear-gradient(160deg, rgba(20,54,80,.93), rgba(9,31,49,.88));
  box-shadow: 18px 0 48px rgba(18,40,58,.12);
  -webkit-backdrop-filter: blur(28px) saturate(145%);
  backdrop-filter: blur(28px) saturate(145%);
}
.brand-mark { border-radius: var(--radius-m); box-shadow: 0 10px 26px rgba(228,119,45,.22), inset 0 1px 0 rgba(255,255,255,.45); }
.main-nav { gap: var(--phi-1); margin-top: var(--phi-5); }
.main-nav a { padding: 12px var(--phi-3); border: 1px solid transparent; border-radius: var(--radius-s); }
.main-nav a.active, .main-nav a:hover { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.10); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.workspace { grid-column: 2; width: 100%; padding: var(--phi-5) clamp(var(--phi-4), 4vw, var(--phi-6)) var(--phi-6); }
.portal-view:not(.roe-view), .topbar { width: min(100%, 1480px); margin-inline: auto; }

.status-strip,
.module-card,
.planner-link-card,
.help-grid article,
.service-card,
.activity-list,
.settings-section,
.integration-card,
.roe-metrics article,
.roe-section,
.roe-app-header,
.roe-desktop-panel,
.roe-dialog,
.login-card {
  border-color: rgba(105,132,153,.20);
  background: var(--glass);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(24px) saturate(145%);
  backdrop-filter: blur(24px) saturate(145%);
}
.status-strip { margin: var(--phi-4) 0 var(--phi-5); padding: var(--phi-3) var(--phi-4); border-left: 1px solid rgba(105,132,153,.20); border-radius: var(--radius-m); }
.module-grid, .planner-grid { gap: var(--phi-3); }
.module-card, .planner-link-card { min-height: 190px; padding: var(--phi-4); border-radius: var(--radius-m); }
.module-card.featured { padding-top: var(--phi-4); border-top: 1px solid rgba(105,132,153,.20); }
.module-card:hover { transform: translateY(-2px); background: rgba(255,255,255,.80); box-shadow: 0 30px 68px rgba(26,52,72,.15), inset 0 1px 0 #fff; }
.module-symbol, .planner-link-icon { width: 42px; height: 42px; margin-bottom: var(--phi-3); border-radius: 13px; box-shadow: inset 0 1px 0 rgba(255,255,255,.36); }
.badge, .connection, .roe-readonly { border: 1px solid rgba(86,113,133,.10); box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }

.secondary-button,
.primary-button,
.row-action,
.user-status-button,
.user-delete-button,
.integration-actions button {
  min-height: 40px;
  margin: 0;
  padding: 0 var(--phi-3);
  border: 1px solid rgba(91,119,140,.26);
  border-radius: var(--radius-s);
  color: #264760;
  background: rgba(255,255,255,.58);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 6px 16px rgba(28,54,73,.06);
  font-weight: 750;
  cursor: pointer;
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
}
.primary-button { width: auto; color: #17364e; border-color: rgba(56,88,111,.34); background: rgba(225,236,244,.76); }
.secondary-button:hover, .primary-button:hover { border-color: rgba(56,88,111,.48); background: rgba(255,255,255,.86); }
.login-card .primary-button, .panel-save { width: 100%; }

.login-shell {
  padding: var(--phi-5);
  background:
    radial-gradient(circle at 75% 18%, rgba(167,205,232,.48), transparent 28%),
    radial-gradient(circle at 18% 86%, rgba(255,255,255,.92), transparent 32%),
    linear-gradient(145deg, #eaf1f7, #f5f8fa);
}
.login-brand { top: var(--phi-5); left: var(--phi-5); }
.login-card { width: min(100%, 468px); padding: var(--phi-5); border-radius: var(--radius-l); }
.login-card h1 { margin-bottom: var(--phi-2); font-size: clamp(1.65rem,4vw,2rem); letter-spacing: -.035em; }
.login-card label { margin-top: var(--phi-4); }
.login-card input { min-height: 50px; padding: 12px var(--phi-3); border-color: rgba(89,119,142,.30); background: rgba(255,255,255,.62); box-shadow: inset 0 1px 0 rgba(255,255,255,.9); }
.login-card input:focus { border-color: rgba(23,105,170,.62); background: rgba(255,255,255,.9); box-shadow: 0 0 0 4px rgba(23,105,170,.10); }
.login-card .primary-button { min-height: 50px; margin-top: var(--phi-4); }

.customize-panel { background: rgba(239,244,248,.90); -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px); }
.customize-header, .customize-footer { background: rgba(255,255,255,.70); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
.settings-section { padding: var(--phi-4); border-radius: var(--radius-m); }
.user-row { grid-template-columns: minmax(0,1fr) 150px; gap: var(--phi-2) var(--phi-3); padding: var(--phi-3) 0; }
.user-email-input { min-height: 38px!important; padding: 7px 10px!important; }
.user-row-actions { display:flex; justify-content:flex-end; gap:var(--phi-1); }
.user-row-actions button { min-height: 36px; font-size: .66rem; }

.roe-view { min-width: 0; background: transparent; }
.roe-app-header { padding: var(--phi-3) var(--phi-4); border-radius: var(--radius-m) var(--radius-m) 0 0; }
.roe-tabs { padding: var(--phi-1) var(--phi-2); border-color: rgba(105,132,153,.18); background: rgba(231,238,244,.72); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.roe-desktop-panel { min-width: 0; padding: var(--phi-4); border-radius: 0 0 var(--radius-m) var(--radius-m); }
.roe-table-wrap { max-width: 100%; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.roe-dialog { border-radius: var(--radius-m); }
.roe-dialog::backdrop { background: rgba(20,39,54,.42); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* Temporäre Rechnungsansicht: Die PDF bleibt ausschließlich im Browserfenster. */
.roe-dialog.roe-dialog-pdf { width:min(1420px,calc(100vw - 24px)); }
.roe-dialog-pdf .roe-dialog-body { max-height:72vh; overflow:auto; }
.roe-invoice-editor.has-pdf { display:grid; grid-template-columns:minmax(390px,.82fr) minmax(520px,1.18fr); gap:18px; align-items:start; }
.roe-invoice-fields { min-width:0; }
.roe-invoice-fields>h4 { margin:20px 0 10px; }
.roe-pdf-preview { min-width:0; overflow:hidden; border:1px solid rgba(91,116,136,.22); border-radius:14px; background:rgba(247,250,252,.86); box-shadow:0 10px 28px rgba(22,43,61,.08); }
.roe-pdf-preview>header { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; padding:10px 12px; border-bottom:1px solid rgba(91,116,136,.18); background:rgba(255,255,255,.78); }
.roe-pdf-preview>header strong,.roe-pdf-preview>header small { display:block; }
.roe-pdf-preview>header small { margin-top:2px; color:var(--ink-soft); font-size:.66rem; }
.roe-pdf-controls { display:flex; align-items:center; gap:6px; }
.roe-pdf-controls button { width:auto!important; min-width:34px!important; min-height:34px!important; padding:6px 10px!important; }
.roe-pdf-controls output { min-width:76px; color:var(--ink-soft); font-size:.68rem; font-weight:800; text-align:center; }
.roe-pdf-controls .roe-pdf-page-status { min-width:82px; }
.roe-pdf-stage { position:relative; height:62vh; min-height:520px; background:#6f7880; }
.roe-pdf-stage>p { position:absolute; inset:14px auto auto 50%; z-index:1; margin:0; padding:7px 10px; border-radius:999px; transform:translateX(-50%); color:#18344d; background:rgba(255,255,255,.9); font-size:.68rem; font-weight:800; }
.roe-pdf-stage>p.roe-pdf-error { top:50%; max-width:80%; border-radius:10px; transform:translate(-50%,-50%); color:#9c3027; text-align:center; }
.roe-pdf-pages { display:grid; align-content:start; gap:14px; width:100%; height:100%; min-width:100%; min-height:0; max-height:100%; padding:12px; overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
.roe-pdf-page { width:max-content; margin:0 auto; background:#fff; box-shadow:0 4px 18px rgba(0,0,0,.22); }
.roe-pdf-page canvas { display:block; max-width:none; background:#fff; }
.roe-pdf-preview-placeholder { display:grid; height:100%; place-items:center; padding:24px; color:#fff; text-align:center; }

@media(max-width:900px){
  .roe-dialog.roe-dialog-pdf { width:calc(100vw - 12px); max-height:calc(100dvh - 12px); margin:6px; }
  .roe-dialog-pdf form { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:calc(100dvh - 12px); padding:12px; overflow:hidden; }
  .roe-dialog-pdf .roe-dialog-body { min-height:0; max-height:none; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .roe-invoice-editor.has-pdf { grid-template-columns:1fr; }
  .roe-pdf-preview { order:-1; }
  .roe-pdf-preview>header { align-items:flex-start; flex-direction:column; }
  .roe-pdf-stage { height:58dvh; min-height:340px; max-height:620px; overflow:hidden; }
  .roe-pdf-controls { width:100%; flex-wrap:wrap; }
  .roe-pdf-controls output:not(.roe-pdf-page-status) { flex:1; }
  .roe-pdf-controls .roe-pdf-page-status { margin-right:auto; text-align:left; }
}

@media(max-width:480px){
  .roe-pdf-preview>header { position:sticky; top:0; z-index:3; gap:8px; padding:9px 10px; }
  .roe-pdf-preview>header small { font-size:.61rem; }
  .roe-pdf-controls { gap:5px; }
  .roe-pdf-controls button { min-width:40px!important; min-height:40px!important; }
  .roe-pdf-controls output { min-width:56px; }
  .roe-pdf-stage { height:56dvh; min-height:300px; }
  .roe-pdf-pages { gap:10px; padding:8px; }
}

@media (max-width: 1180px) {
  .module-grid, .planner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .roe-desktop-panel .roe-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .roe-annual-metrics { grid-template-columns: repeat(2,minmax(0,1fr))!important; }
  .roe-annual-tables { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .app-shell { display:block; }
  .sidebar { display:none; }
  .workspace { padding: var(--phi-4) var(--phi-4) calc(92px + env(safe-area-inset-bottom)); }
  .mobile-nav {
    position: fixed;
    z-index: 50;
    left: max(var(--phi-3), env(safe-area-inset-left));
    right: max(var(--phi-3), env(safe-area-inset-right));
    bottom: max(var(--phi-2), env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(4,1fr);
    padding: 8px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: var(--radius-m);
    background: rgba(12,39,60,.86);
    box-shadow: 0 20px 45px rgba(10,31,47,.24), inset 0 1px 0 rgba(255,255,255,.12);
    -webkit-backdrop-filter: blur(26px) saturate(145%);
    backdrop-filter: blur(26px) saturate(145%);
  }
  .mobile-nav a { display:grid; justify-items:center; gap:4px; min-width:0; padding:7px; color:#aebfcc; text-decoration:none; }
  .mobile-nav a span { font-weight:850; }
  .mobile-nav a small { overflow:hidden; max-width:100%; font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-nav a.active { color:#fff; }
  .roe-app-header, .roe-panel-toolbar { align-items:stretch; flex-direction:column; }
  .roe-app-actions, .roe-toolbar-controls { justify-content:flex-start; }
  .roe-toolbar-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .roe-toolbar-controls label { display:grid; grid-template-columns:auto minmax(0,1fr); }
  .roe-toolbar-controls button { width:100%!important; }
  .roe-invoice-actions { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
}

@media (max-width: 820px) {
  .workspace { padding: var(--phi-4) var(--phi-3) calc(94px + env(safe-area-inset-bottom)); }
  .topbar { align-items:center; }
  .topbar h1 { font-size:1.6rem; }
  .status-strip { grid-template-columns:1fr; gap:var(--phi-3); }
  .status-strip > a { padding-top:var(--phi-3); border-top:1px solid var(--line); }
  .help-grid, .service-grid { grid-template-columns:1fr; }
  .section-heading { align-items:center; }
  .module-card, .planner-link-card { min-height:0; }
  .roe-app-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; }
  .roe-app-actions .roe-readonly { grid-column:1/-1; justify-self:start; }
  .roe-app-actions button { width:100%!important; }
  .roe-tabs { overflow-x:auto; white-space:nowrap; }
  .roe-desktop-panel { min-height:0; padding:var(--phi-3); overflow:hidden; }
  .roe-desktop-panel .roe-metrics, .roe-annual-metrics { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .roe-desktop-panel .roe-metrics article:last-child:nth-child(odd) { grid-column:1/-1; }
  .roe-annual-tables { min-width:0; }
  .roe-annual-tables > div { min-width:0; overflow:hidden; }
  .roe-annual-heading { align-items:stretch; flex-direction:column; }
  .roe-month-filter { align-items:stretch; flex-direction:column; }
  .roe-share-head, .roe-share-table label { grid-template-columns:minmax(115px,1fr) 95px 115px; }
  .roe-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
  .roe-dialog form { padding:var(--phi-3); }
  .roe-dialog-body { max-height:calc(100dvh - 150px); }
  .roe-form-grid { grid-template-columns:1fr; }
  .roe-api-actions { grid-template-columns:1fr; }
}

@media (max-width: 600px) {
  .workspace { padding: var(--phi-3) 12px calc(92px + env(safe-area-inset-bottom)); }
  .module-grid, .planner-grid { grid-template-columns:1fr; }
  .topbar h1 { max-width:250px; font-size:1.36rem; }
  .status-strip { margin:var(--phi-4) 0; padding:var(--phi-3); }
  .section-heading { align-items:flex-start; flex-direction:column; gap:var(--phi-2); }
  .section-heading .secondary-button { width:100%; }
  .module-card { padding:var(--phi-3); }
  .login-shell { justify-content:center; padding:var(--phi-3); }
  .login-brand { position:static; width:min(100%,468px); margin:0 auto var(--phi-3); }
  .login-card { padding:var(--phi-4); border-radius:var(--radius-m); }
  .login-card h1 { font-size:1.55rem; }
  .roe-view { margin-inline:-2px; }
  .roe-app-header { padding:var(--phi-3); }
  .roe-toolbar-controls { grid-template-columns:1fr; }
  .roe-toolbar-controls label { grid-template-columns:72px minmax(0,1fr); }
  .roe-invoice-actions { grid-template-columns:1fr; }
  .roe-desktop-panel .roe-metrics, .roe-annual-metrics { gap:var(--phi-2); }
  .roe-desktop-panel .roe-metrics article { min-width:0; padding:var(--phi-2); }
  .roe-desktop-panel .roe-metrics strong { overflow:hidden; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
  .roe-annual-inline { margin-top:var(--phi-4); padding-top:var(--phi-4); }
  .roe-annual-tables .roe-data-table { min-width:560px; }
  .roe-dialog-actions { display:grid; grid-template-columns:1fr 1fr; }
  .roe-dialog-actions button { width:100%!important; min-width:0; }
  .customize-content { padding:var(--phi-3) 12px 110px; }
  .settings-section { padding:var(--phi-3); }
  .user-row { grid-template-columns:1fr; }
  .user-row select, .user-email-input, .user-row-actions { grid-column:1; width:100%; }
  .user-row-actions button { flex:1; }
}

/* Administration v20: echtes, responsives Verwaltungsmenü */
.customize-panel {
  inset: 18px;
  width: auto;
  overflow: hidden;
  border: 1px solid rgba(130,154,174,.34);
  border-radius: 22px;
  box-shadow: -18px 20px 70px rgba(4,19,33,.24), inset 0 1px 0 rgba(255,255,255,.75);
}
.customize-header { padding: 18px 24px; }
.admin-command-header { display:grid; grid-template-columns:minmax(260px,1fr) minmax(280px,390px) 46px; align-items:center; gap:18px; }
.admin-command-title > span { display:block; margin-top:4px; color:#72767d; font-size:.69rem; }
.admin-command-title h2 { margin-top:2px; }
.admin-company-context { display:grid; gap:5px; min-width:0; }
.admin-company-context > small { color:#72767d; font-size:.56rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.admin-company-context > span { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:8px; min-height:43px; padding:4px 5px; border:1px solid rgba(70,74,80,.14); border-radius:14px; background:rgba(255,255,255,.58); box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 7px 24px rgba(42,46,52,.06); }
.admin-company-context b { display:grid; width:32px; height:32px; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,#50545a,#24272b); font-size:.58rem; letter-spacing:.02em; }
.admin-company-context select { width:100%; min-width:0; height:34px; padding:0 28px 0 6px; border:0; outline:0; color:#292c31; background:transparent; font-weight:760; }
.customize-content {
  display: grid;
  grid-template-columns: 272px minmax(0,1fr);
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
.admin-menu-toggle { display: none; }
.admin-tabs {
  position: static;
  display: block;
  min-width: 0;
  margin: 0;
  padding: 16px 14px 28px;
  overflow-y: auto;
  border: 0;
  border-right: 1px solid rgba(130,154,174,.24);
  background: rgba(225,234,241,.62);
}
.admin-tabs > p { margin: 20px 10px 7px; color: #777c84; font-size: .56rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.admin-tabs > p:first-child { margin-top: 2px; }
.admin-tabs button {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 54px;
  margin: 3px 0;
  padding: 8px 10px;
  border-color: transparent;
  border-radius: 12px;
  text-align: left;
  background: transparent;
}
.admin-tabs button > span:last-child, .admin-tabs button strong, .admin-tabs button small { display: block; min-width: 0; }
.admin-tabs button strong { color: #30343a; font-size: .76rem; }
.admin-tabs button small { margin-top: 3px; overflow: hidden; color: #777c84; font-size: .59rem; font-weight: 620; text-overflow:ellipsis; white-space:nowrap; }
.admin-tabs button.active { border-color: rgba(82,120,148,.22); color: #17364e; background: rgba(255,255,255,.78); box-shadow: 0 8px 22px rgba(35,67,91,.08), inset 3px 0 0 var(--blue); }
.admin-tabs button.active strong { color: #0b5f9e; }
.admin-nav-icon { display: grid!important; place-items: center; width: 32px; height: 32px; border-radius: 9px; color: #49677e; background: rgba(255,255,255,.68); font-size: .63rem; font-weight: 900; }
.admin-tabs button.active .admin-nav-icon { color: #fff; background: var(--blue); }
.admin-page-content { min-width:0; padding:28px clamp(20px,3vw,44px) 44px; overflow-x:hidden; overflow-y:auto; background:linear-gradient(145deg,rgba(238,240,242,.72),rgba(226,229,232,.74)); }
.admin-page-content > .settings-section { max-width: 100%; margin: 0; }
.admin-page-content > .settings-section + .settings-section { margin-top:18px; }
.tenant-branding-settings { padding:clamp(20px,3vw,34px); }
.branding-workspace { display:grid; grid-template-columns:minmax(260px,.74fr) minmax(420px,1.4fr); gap:22px; margin-top:22px; }
.branding-live-preview { position:relative; display:flex; align-items:center; gap:17px; min-height:190px; padding:26px; overflow:hidden; border:1px solid rgba(66,70,76,.12); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(244,245,246,.62)); box-shadow:0 18px 42px rgba(43,47,52,.09),inset 0 1px 0 #fff; }
.branding-live-preview::after { content:""; position:absolute; right:-45px; bottom:-62px; width:180px; height:180px; border-radius:50%; background:color-mix(in srgb,var(--orange) 12%,transparent); filter:blur(8px); }
.branding-preview-logo { position:relative; z-index:1; display:grid; flex:0 0 auto; width:64px; height:64px; place-items:center; border-radius:19px; color:#fff; background:linear-gradient(145deg,#565a60,#222529); box-shadow:0 13px 26px rgba(34,37,41,.25),inset 0 1px 0 rgba(255,255,255,.35); font-size:.78rem; font-weight:900; background-size:contain; background-position:center; background-repeat:no-repeat; }
.branding-live-preview > div:last-child { position:relative; z-index:1; display:grid; min-width:0; gap:4px; }
.branding-live-preview small { color:#777c84; font-size:.55rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.branding-live-preview strong { overflow:hidden; color:#202327; font-size:1.05rem; text-overflow:ellipsis; white-space:nowrap; }
.branding-live-preview span { color:#73777e; font-size:.68rem; }
.branding-fields { align-content:start; }
.branding-upload { display:flex!important; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; padding:16px 18px!important; border-style:solid!important; border-radius:16px!important; }
.branding-upload span { display:grid; gap:3px; }
.branding-upload small { color:#777c84; font-size:.61rem; font-weight:600; }
.branding-upload input { max-width:280px; }
.settings-title-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.organization-onboarding { display:grid; grid-template-columns:auto minmax(24px,1fr) auto minmax(24px,1fr) auto; align-items:center; gap:12px; margin:20px 0; padding:16px 18px; border:1px solid rgba(67,71,77,.1); border-radius:17px; background:rgba(255,255,255,.5); }
.organization-onboarding span { display:flex; align-items:center; gap:9px; color:#4f545b; font-size:.66rem; }
.organization-onboarding b { display:grid; width:26px; height:26px; place-items:center; border-radius:9px; color:#fff; background:linear-gradient(145deg,#555960,#282b30); font-size:.57rem; }
.organization-onboarding i { height:1px; background:linear-gradient(90deg,rgba(68,73,80,.22),rgba(68,73,80,.07)); }
.organization-person[role="button"] { cursor:pointer; transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease; }
.organization-person[role="button"]:hover { border-color:rgba(31,39,47,.18); background:rgba(255,255,255,.92); box-shadow:0 9px 22px rgba(31,39,47,.08); transform:translateY(-1px); }
.organization-person[role="button"]:focus-visible { outline:3px solid rgba(57,62,68,.18); outline-offset:3px; }
.organization-person-profile { display:flex; align-items:center; gap:14px; padding:4px 2px 8px; }
.organization-person-profile>span { display:grid; flex:0 0 52px; width:52px; height:52px; place-items:center; border-radius:17px; color:#fff; background:linear-gradient(145deg,#555b62,#272b30); font-size:.7rem; font-weight:900; box-shadow:0 10px 24px rgba(27,31,36,.16); }
.organization-person-profile>div { display:grid; gap:5px; min-width:0; }.organization-person-profile strong { color:#292e33; font-size:.78rem; }.organization-person-profile a { overflow:hidden; color:#69727a; font-size:.65rem; text-overflow:ellipsis; text-decoration:none; white-space:nowrap; }
.organization-person-detail { display:grid; gap:10px; }.organization-person-assignments { display:grid; gap:8px; }.organization-person-assignments article { padding:12px 13px; border:1px solid rgba(31,39,47,.08); border-radius:12px; background:rgba(255,255,255,.58); }.organization-person-assignments article div { display:grid; gap:3px; }.organization-person-assignments strong { color:#2c3136; font-size:.7rem; }.organization-person-assignments span { color:#737b82; font-size:.59rem; line-height:1.45; }
.organization-admin-form textarea { width:100%; min-width:0; padding:9px 10px; resize:vertical; border:1px solid rgba(31,39,47,.12); border-radius:10px; color:#31353a; background:rgba(255,255,255,.82); font:inherit; font-size:.68rem; line-height:1.45; }
.organization-company-description { grid-column:1/-1; }.organization-company-description-text { max-width:720px; margin-top:7px!important; color:#5f6870!important; line-height:1.48; white-space:pre-line; }.organization-company-website { display:inline-block; max-width:min(100%,520px); margin-top:6px; overflow:hidden; color:#4f6575; font-size:.59rem; font-weight:750; text-overflow:ellipsis; text-decoration:none; white-space:nowrap; }.organization-company-website:hover { text-decoration:underline; }
.tenant-access-panel { display:grid; gap:13px; margin-top:20px; padding:17px; border:1px solid rgba(67,71,77,.11); border-radius:18px; background:linear-gradient(145deg,rgba(244,247,246,.78),rgba(255,255,255,.72)); box-shadow:0 12px 32px rgba(40,44,49,.05); }
.tenant-access-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.tenant-access-panel > header div { display:grid; gap:3px; }.tenant-access-panel h4 { margin:0; color:#2d3237; font-size:.82rem; }.tenant-access-panel header small { color:#777e84; font-size:.59rem; line-height:1.45; }.tenant-access-panel > header > span { flex:0 0 auto; padding:7px 10px; border:1px solid rgba(61,73,67,.1); border-radius:999px; color:#596861; background:rgba(240,245,242,.9); font-size:.54rem; font-weight:850; }
.tenant-access-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px; }
.tenant-access-item { display:flex!important; align-items:center; justify-content:space-between; gap:14px!important; min-width:0; min-height:62px; padding:11px 12px; border:1px solid rgba(64,69,75,.09); border-radius:13px; background:rgba(255,255,255,.76); cursor:pointer; }
.tenant-access-item.base { border-color:rgba(72,91,81,.17); background:rgba(239,245,241,.8); }.tenant-access-item.admin { cursor:default; }
.tenant-access-item > span:first-child { display:grid; min-width:0; gap:3px; }.tenant-access-item strong { overflow:hidden; color:#34393d; font-size:.66rem; text-overflow:ellipsis; white-space:nowrap; }.tenant-access-item small { color:#7b8287; font-size:.53rem; font-weight:620; }
.tenant-access-notice { margin:0; color:#747c81; font-size:.54rem; line-height:1.5; }
.permission-workbench { display:grid; grid-template-columns:minmax(230px,.72fr) minmax(430px,1.55fr); gap:16px; margin-top:22px; }
.permission-module-list { display:grid; align-content:start; gap:6px; padding:8px; border:1px solid rgba(67,71,77,.11); border-radius:18px; background:rgba(244,245,246,.62); }
.permission-module-button { display:grid; grid-template-columns:38px minmax(0,1fr) 15px; align-items:center; gap:10px; width:100%; min-height:62px; padding:9px 10px; border:1px solid transparent; border-radius:13px; color:#31353a; text-align:left; background:transparent; cursor:pointer; }
.permission-module-button:hover { background:rgba(255,255,255,.58); }
.permission-module-button.active { border-color:rgba(57,62,69,.14); background:rgba(255,255,255,.88); box-shadow:0 9px 24px rgba(35,39,45,.08),inset 3px 0 0 #383c42; }
.permission-module-button > b { display:grid; width:36px; height:36px; place-items:center; border-radius:11px; color:#fff; background:linear-gradient(145deg,#5b6066,#2b2e33); font-size:.58rem; }
.permission-module-button > span { display:grid; min-width:0; gap:3px; }
.permission-module-button strong { font-size:.71rem; }
.permission-module-button small { overflow:hidden; color:#7b7f85; font-size:.56rem; font-weight:620; text-overflow:ellipsis; white-space:nowrap; }
.permission-module-button > i { color:#95999e; font-size:1rem; font-style:normal; }
.permission-module-detail { min-width:0; overflow:hidden; border:1px solid rgba(67,71,77,.11); border-radius:18px; background:rgba(255,255,255,.72); box-shadow:0 15px 38px rgba(40,44,49,.07); }
.permission-detail-header { display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,.72fr); align-items:center; gap:18px; padding:21px; border-bottom:1px solid rgba(67,71,77,.09); }
.permission-detail-identity { display:flex; align-items:center; gap:13px; min-width:0; }
.permission-detail-identity > b { display:grid; flex:0 0 auto; width:48px; height:48px; place-items:center; border-radius:15px; color:#fff; background:linear-gradient(145deg,#555a60,#24272b); font-size:.66rem; box-shadow:0 10px 22px rgba(37,40,45,.18); }
.permission-detail-identity div { display:grid; min-width:0; gap:2px; }
.permission-detail-identity small { color:#7d8187; font-size:.53rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.permission-detail-identity h4 { margin:0; color:#26292e; font-size:.96rem; }
.permission-detail-identity p { margin:2px 0 0; color:#777b81; font-size:.61rem; line-height:1.4; }
.permission-visibility-switch { display:flex!important; align-items:center; justify-content:space-between; gap:14px!important; padding:12px 13px; border:1px solid rgba(64,69,75,.1); border-radius:13px; background:rgba(246,247,248,.75); cursor:pointer; }
.permission-visibility-switch span { display:grid; gap:2px; }
.permission-visibility-switch strong { color:#34383e; font-size:.64rem; }
.permission-visibility-switch small { color:#83878c; font-size:.52rem; font-weight:600; }
.permission-checkbox-control { position:relative; display:block; flex:0 0 22px; width:22px; height:22px; overflow:visible; }
.permission-checkbox-control input { position:absolute; z-index:2; inset:0; width:22px!important; height:22px!important; min-width:22px!important; min-height:22px!important; margin:0!important; padding:0!important; opacity:0; cursor:pointer; }
.permission-checkbox-control i { position:absolute; inset:1px; display:block; box-sizing:border-box; border:1px solid rgba(51,56,62,.28); border-radius:6px; background:rgba(255,255,255,.92); box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 1px 3px rgba(34,38,43,.08); pointer-events:none; }
.permission-checkbox-control input:checked + i,.permission-checkbox-control input:indeterminate + i { border-color:#34383e; background:#34383e; box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 2px 6px rgba(32,36,41,.16); }
.permission-checkbox-control input:checked + i::after { position:absolute; top:3px; left:6px; width:5px; height:9px; border-right:2px solid #fff; border-bottom:2px solid #fff; content:""; transform:rotate(45deg); }
.permission-checkbox-control input:indeterminate + i::after { position:absolute; top:8px; left:4px; width:10px; height:2px; border-radius:2px; background:#fff; content:""; }
.permission-checkbox-control input:focus-visible + i { outline:3px solid rgba(73,78,86,.20); outline-offset:3px; }
.permission-checkbox-control input:disabled { cursor:not-allowed; }
.permission-checkbox-control input:disabled + i { opacity:.48; }
.login-checkbox-control { margin-top:1px; }
.permission-detail-rule-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:17px 21px 10px; }
.permission-detail-rule-header > div { display:grid; gap:2px; }
.permission-detail-rule-header strong { color:#33373c; font-size:.69rem; }
.permission-detail-rule-header small { color:#83878c; font-size:.55rem; }
.permission-detail-rows { display:grid; gap:7px; padding:7px 14px 18px; }
.permission-detail-row { display:flex!important; align-items:center; justify-content:space-between; gap:18px!important; min-height:58px; padding:11px 13px; border:1px solid rgba(64,69,75,.08); border-radius:13px; background:rgba(248,249,250,.72); cursor:pointer; }
.permission-detail-row.parent { border-color:rgba(57,62,68,.16); background:rgba(239,241,243,.78); }
.permission-detail-row > span { display:grid; gap:3px; }
.permission-detail-row strong { color:#34383d; font-size:.65rem; }
.permission-detail-row small { color:#81858b; font-size:.54rem; font-weight:600; }
.permission-advanced-button { display:flex; align-items:center; justify-content:space-between; gap:16px; width:calc(100% - 28px); margin:0 14px 18px; padding:14px 15px; border:1px solid rgba(55,66,61,.13); border-radius:14px; color:#35423c; background:linear-gradient(145deg,rgba(241,246,243,.88),rgba(255,255,255,.72)); text-align:left; cursor:pointer; }
.permission-advanced-button span { display:grid; gap:3px; }
.permission-advanced-button strong { font-size:.66rem; }.permission-advanced-button small { color:#728078; font-size:.55rem; }.permission-advanced-button > b { font-size:.6rem; white-space:nowrap; }
.permission-savebar { position:sticky; z-index:3; bottom:-28px; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:18px -1px -1px; padding:14px 16px; border:1px solid rgba(64,69,75,.12); border-radius:15px; background:rgba(250,250,250,.88); box-shadow:0 -10px 30px rgba(45,49,54,.07); backdrop-filter:blur(18px); }
.permission-savebar > div { display:grid; gap:2px; }.permission-savebar strong { color:#383c41; font-size:.64rem; }.permission-savebar small { color:#81858a; font-size:.54rem; }
.permission-detail-back { margin-bottom:12px!important; }
.admin-role-context {
  display: grid;
  grid-template-columns: minmax(170px,1fr) 165px minmax(210px,1.25fr);
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid rgba(117,145,166,.25);
  border-radius: 14px;
  background: rgba(255,255,255,.65);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.admin-role-context[hidden] { display: none!important; }
.admin-role-context div small, .admin-role-context div strong { display: block; }
.admin-role-context div small { color: #71879a; font-size: .62rem; font-weight: 800; }
.admin-role-context div strong { margin-top: 3px; color: #17364e; font-size: .73rem; }
.admin-role-context select { width: 100%; min-width: 0; min-height: 40px; padding: 8px 10px; border: 1px solid #bcccdc; border-radius: 9px; color: var(--ink); background: rgba(255,255,255,.88); }
.access-reset-button { grid-column: 2/-1; justify-self: end; margin: -2px 0 0; padding: 5px 8px; white-space: nowrap; }
.roe-access-columns, .roe-access-row { display: grid; grid-template-columns: minmax(180px,1fr) 108px 118px; align-items: center; gap: 10px; }
.roe-access-columns { margin: 16px 0 6px; padding: 0 12px; color: #7890a4; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.roe-access-list { gap: 6px; margin-top: 0; }
.roe-access-row { padding: 11px 12px; border-radius: 12px; background: rgba(248,251,253,.78); }
.roe-access-option { position: relative; display: grid!important; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 8px!important; cursor: pointer; }
.roe-access-option input { position: absolute; width: 1px!important; height: 1px!important; min-height: 1px!important; opacity: 0; }
.roe-access-option i { position: relative; width: 34px; height: 20px; border-radius: 999px; background: #cad6df; box-shadow: inset 0 1px 3px rgba(20,45,64,.18); transition: .2s ease; }
.roe-access-option i::after { content:""; position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(20,45,64,.24); transition:.2s ease; }
.roe-access-option input:checked + i { background: #1d78b8; }
.roe-access-option input:checked + i::after { transform: translateX(14px); }
.roe-access-option input:disabled + i { opacity: .48; }
.roe-access-option span { overflow: hidden; color: #426078; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.customize-footer { padding: 14px 24px; }
.customize-footer .panel-save { width: auto; }

@media (max-width: 760px) {
  .customize-panel { inset: 0; width: 100%; border: 0; border-radius: 0; }
  .customize-header { padding: 13px 14px; }
  .admin-command-header { grid-template-columns:minmax(0,1fr) 42px; gap:10px; }
  .admin-command-title > span { display:none; }
  .admin-company-context { grid-column:1/-1; grid-row:2; }
  .admin-command-header .panel-close { grid-column:2; grid-row:1; }
  .customize-content { position: relative; display: block; overflow-y: auto; }
  .admin-menu-toggle {
    position: sticky;
    z-index: 6;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 58px;
    padding: 10px 16px;
    border: 0;
    border-bottom: 1px solid rgba(117,145,166,.25);
    color: #17364e;
    background: rgba(244,248,251,.94);
    text-align: left;
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
  }
  .admin-menu-toggle small, .admin-menu-toggle strong { display: block; }
  .admin-menu-toggle small { color: #71879a; font-size: .59rem; }
  .admin-menu-toggle strong { margin-top: 2px; font-size: .8rem; }
  .admin-menu-toggle b { font-size: 1.2rem; transition: transform .2s ease; }
  .menu-open .admin-menu-toggle b { transform: rotate(180deg); }
  .admin-tabs { display: none; max-height: calc(100dvh - 145px); padding: 10px 12px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .customize-content.menu-open { height:100%; min-height:0; overflow:hidden; }
  .menu-open .admin-tabs { display:block; box-sizing:border-box; height:100%; max-height:none; padding-bottom:calc(28px + env(safe-area-inset-bottom)); overflow-x:hidden; overflow-y:auto; overscroll-behavior-y:contain; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
  .admin-page-content { padding: 14px 12px 120px; overflow: visible; }
  .menu-open .admin-page-content { display: none; }
  .admin-role-context { grid-template-columns: 1fr 1fr; }
  .admin-role-context > div { grid-column: 1/-1; }
  .admin-role-context select:last-of-type { grid-column: 1/-1; }
  .access-reset-button { grid-column: 1/-1; justify-self:start; }
  .roe-access-columns { display: none; }
  .roe-access-row { grid-template-columns: minmax(0,1fr) auto; gap: 10px 14px; }
  .roe-access-name { grid-column: 1/-1; }
  .roe-access-option { grid-template-columns: 34px auto; }
  .roe-access-actions .secondary-button { width: 100%; }
  .customize-footer { padding: 10px 12px max(10px,env(safe-area-inset-bottom)); }
  .customize-footer .panel-save { width: 100%; }
  .branding-workspace { grid-template-columns:1fr; }
  .branding-live-preview { min-height:138px; }
  .branding-upload { align-items:flex-start; flex-direction:column; }
  .branding-upload input { max-width:100%; }
  .settings-title-actions { align-items:flex-end; flex-direction:column; }
  .organization-onboarding { grid-template-columns:1fr; gap:8px; }
  .organization-onboarding i { width:1px; height:14px; margin-left:13px; }
  .tenant-access-panel > header { flex-direction:column; }.tenant-access-list { grid-template-columns:1fr; }
  .permission-workbench { grid-template-columns:1fr; }
  .permission-module-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .permission-module-button { grid-template-columns:34px minmax(0,1fr); }
  .permission-module-button > i { display:none; }
  .permission-detail-header { grid-template-columns:1fr; }
  .permission-savebar { bottom:-14px; align-items:stretch; flex-direction:column; }
  .permission-savebar button { width:100%; }
}

@media (max-width:430px) {
  .permission-module-list { grid-template-columns:1fr; }
  .permission-detail-header,.permission-detail-rule-header { padding-right:14px; padding-left:14px; }
}

@media (max-width: 420px) {
  .admin-role-context { grid-template-columns: 1fr; }
  .admin-role-context > * { grid-column: 1!important; }
  .roe-access-row { grid-template-columns: 1fr; }
  .roe-access-option { justify-self:start; }
}

/* T21 Titanium Glass v30
   Eine ruhige, hochwertige Oberfläche aus Graphit, Glas und Metalltönen.
   Benutzerdefinierte Markenfarben bleiben gespeichert, werden aber nur noch
   sehr sparsam als Fokusdetail eingesetzt. */
:root {
  --t21-text: #17191d;
  --t21-text-soft: #62676f;
  --t21-graphite: #17191d;
  --t21-graphite-2: #24272c;
  --t21-metal: #747a82;
  --t21-line: rgba(36, 39, 44, .12);
  --t21-line-light: rgba(255, 255, 255, .72);
  --t21-glass: rgba(255, 255, 255, .62);
  --t21-glass-strong: rgba(255, 255, 255, .80);
  --t21-glass-soft: rgba(244, 246, 248, .62);
  --t21-dark-glass: rgba(24, 26, 30, .86);
  --t21-shadow: 0 24px 70px rgba(26, 29, 34, .10), 0 5px 18px rgba(26, 29, 34, .05), inset 0 1px 0 rgba(255, 255, 255, .82);
  --t21-shadow-hover: 0 30px 86px rgba(26, 29, 34, .14), 0 8px 24px rgba(26, 29, 34, .07), inset 0 1px 0 rgba(255, 255, 255, .92);
  --t21-positive: #38695d;
  --t21-negative: #9a504a;
  --ink: var(--t21-text);
  --ink-soft: var(--t21-text-soft);
  --canvas: #eceff2;
  --line: var(--t21-line);
  --shadow: var(--t21-shadow);
  --radius-s: 12px;
  --radius-m: 18px;
  --radius-l: 28px;
}

html { background: #eceff2; }
body {
  color: var(--t21-text);
  background:
    radial-gradient(ellipse 78% 58% at 50% -10%, rgba(255,255,255,.98) 0%, rgba(255,255,255,.42) 52%, transparent 75%),
    radial-gradient(ellipse 50% 48% at 88% 20%, rgba(186,192,200,.22) 0%, transparent 72%),
    radial-gradient(ellipse 54% 42% at 5% 92%, rgba(255,255,255,.70) 0%, transparent 74%),
    linear-gradient(145deg, #e7eaed 0%, #f4f5f6 46%, #e9ecef 100%);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", Inter, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255,255,255,.30), transparent 32%, rgba(255,255,255,.16) 61%, transparent 82%);
}
::selection { color: #fff; background: #3a3d43; }

h1, h2, h3, h4, h5, strong { letter-spacing: -.022em; }
.eyebrow { color: #62676f; letter-spacing: .16em; }
.muted, .module-card p, .planner-link-card p, .content-page-heading p:last-child { color: var(--t21-text-soft); }

/* Glasoberflächen */
.module-card,
.planner-link-card,
.help-grid article,
.service-card,
.activity-list,
.settings-section,
.integration-card,
.roe-metrics article,
.roe-section,
.roe-app-header,
.roe-desktop-panel,
.roe-dialog,
.login-card,
.admin-role-context,
.roe-access-row,
.roe-pdf-preview {
  border: 1px solid var(--t21-line);
  background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(250,251,252,.54));
  box-shadow: var(--t21-shadow);
  -webkit-backdrop-filter: blur(28px) saturate(118%);
  backdrop-filter: blur(28px) saturate(118%);
}

/* Dunkle, nahezu monochrome Navigation */
.sidebar {
  border-right: 1px solid rgba(255,255,255,.10);
  color: #f7f7f8;
  background:
    linear-gradient(135deg, rgba(255,255,255,.055), transparent 42%),
    linear-gradient(168deg, rgba(37,39,44,.97), rgba(17,19,22,.96));
  box-shadow: 18px 0 56px rgba(20,22,26,.14), inset -1px 0 0 rgba(0,0,0,.18);
  -webkit-backdrop-filter: blur(34px) saturate(105%);
  backdrop-filter: blur(34px) saturate(105%);
}
.brand-mark {
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(145deg, #45494f, #202226 62%, #15171a);
  box-shadow: 0 14px 30px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.28);
}
.brand-mark.custom-logo {
  border-color: transparent;
  background-color: transparent;
  box-shadow: none;
}
.sidebar .brand-mark.custom-logo { filter: invert(1); }
.brand small, .sidebar-footer small { color: rgba(237,239,242,.56); }
.main-nav a { color: rgba(240,242,244,.64); }
.main-nav a span { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.035); }
.main-nav a.active,
.main-nav a:hover {
  color: #fff;
  border-color: rgba(255,255,255,.12);
  background: linear-gradient(110deg, rgba(255,255,255,.13), rgba(255,255,255,.065));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 10px 26px rgba(0,0,0,.12);
}
.sidebar-footer { border-top-color: rgba(255,255,255,.11); }
.user-avatar {
  color: #f7f7f8;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.09);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.logout-button { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.055); }

/* Dashboard: ruhige Module statt Farbkacheln */
.module-grid, .planner-grid { gap: 18px; }
.module-card, .planner-link-card { border-radius: 20px; }
.module-card::after, .planner-link-card::after {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  content: "";
  pointer-events: none;
  background: linear-gradient(120deg, rgba(255,255,255,.24), transparent 36%);
}
.module-card:hover, .planner-link-card:hover {
  border-color: rgba(36,39,44,.18);
  background: linear-gradient(145deg, rgba(255,255,255,.90), rgba(250,251,252,.65));
  box-shadow: var(--t21-shadow-hover);
  transform: translateY(-3px);
}
.module-card.featured { border-top: 1px solid var(--t21-line); padding-top: var(--phi-4); }
.module-symbol,
.module-symbol.inventory,
.module-symbol.documents,
.module-symbol.planner,
.module-symbol.roe,
.module-symbol.admin,
.module-symbol.external,
.planner-link-icon {
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(145deg, #4a4e54, #25282d 64%, #1a1c20);
  box-shadow: 0 10px 22px rgba(25,27,31,.16), inset 0 1px 0 rgba(255,255,255,.24);
}
.module-symbol.external img, .planner-link-icon img { background: rgba(255,255,255,.96); }
.badge, .module-meta span, .integration-consumers span, .roe-readonly, .connection, .activity-result {
  color: #5b6068;
  border: 1px solid rgba(36,39,44,.08);
  background: rgba(235,238,241,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.badge.ready, .badge.planned, .badge.protected { color: #5b6068; background: rgba(235,238,241,.72); }
.connection { color: #3f645b; background: rgba(231,238,236,.72); }
.connection i, .service-card i { background: #568174; box-shadow: 0 0 0 4px rgba(86,129,116,.10); }
.status-icon.warning, .status-icon.success, .status-icon.storage {
  color: #555b63;
  background: rgba(231,234,237,.76);
}
.module-card > a, .planner-link-card a, .status-strip > a { color: #31343a; }
.module-card > a:hover, .planner-link-card a:hover { color: #000; }
.icon-button {
  color: #fff;
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(145deg, #3d4147, #1d1f23);
  box-shadow: 0 10px 24px rgba(23,25,29,.15), inset 0 1px 0 rgba(255,255,255,.22);
}

/* Einheitliches Button- und Formsystem */
.secondary-button,
.primary-button,
.row-action,
.user-status-button,
.user-delete-button,
.integration-actions button,
.roe-view .primary-button,
.roe-view .secondary-button,
.roe-dialog .primary-button,
.roe-dialog .secondary-button,
.roe-dialog-actions button,
.roe-project-buttons button,
.roe-app-actions button,
.roe-toolbar-controls button,
.roe-cost-actions button,
.roe-cost-footer button,
.roe-dialog-intro button,
.roe-path-grid button,
.roe-share-section button,
.roe-table-actions button {
  color: #34373c;
  border: 1px solid rgba(42,45,51,.17);
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(236,239,242,.72));
  box-shadow: 0 6px 16px rgba(23,25,29,.055), inset 0 1px 0 rgba(255,255,255,.96);
}
.primary-button,
.login-card .primary-button,
.panel-save,
.roe-view .primary-button,
.roe-dialog .primary-button {
  color: #fff;
  border-color: rgba(0,0,0,.32);
  background: linear-gradient(180deg, #383b41 0%, #1c1e22 100%);
  box-shadow: 0 11px 24px rgba(20,22,25,.16), inset 0 1px 0 rgba(255,255,255,.22);
}
.secondary-button:hover,
.primary-button:hover,
.row-action:hover,
.integration-actions button:hover,
.roe-view button:hover:not(:disabled),
.roe-dialog button:hover:not(:disabled) {
  color: #111317;
  border-color: rgba(28,30,34,.28);
  background: rgba(255,255,255,.92);
  box-shadow: 0 9px 22px rgba(23,25,29,.08), inset 0 1px 0 #fff;
}
.primary-button:hover,
.login-card .primary-button:hover,
.panel-save:hover,
.roe-view .primary-button:hover:not(:disabled),
.roe-dialog .primary-button:hover:not(:disabled) {
  color: #fff;
  border-color: #0f1012;
  background: linear-gradient(180deg, #45484e, #202226);
}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.roe-view button:focus-visible, .roe-dialog button:focus-visible {
  outline: 3px solid rgba(73,78,86,.20);
  outline-offset: 3px;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]), select, textarea,
.settings-section input:not([type="color"]), .settings-section select, .settings-section textarea,
.roe-edit-card input, .roe-form-grid input, .roe-form-grid select, .roe-report-options input, .roe-report-options select {
  color: #222429;
  border-color: rgba(53,57,63,.18);
  background: rgba(255,255,255,.66);
  box-shadow: inset 0 1px 1px rgba(32,35,39,.035), inset 0 1px 0 rgba(255,255,255,.9);
}
input:focus, select:focus, textarea:focus,
.login-card input:focus {
  border-color: rgba(52,56,63,.42);
  background: rgba(255,255,255,.90);
  box-shadow: 0 0 0 4px rgba(64,68,76,.08);
}

/* Anmeldung */
.login-shell {
  background:
    radial-gradient(ellipse 62% 54% at 52% -4%, rgba(255,255,255,.98), transparent 73%),
    radial-gradient(ellipse 42% 40% at 85% 22%, rgba(181,187,195,.20), transparent 74%),
    linear-gradient(145deg, #e7eaed, #f6f7f8 52%, #e9ecef);
}
.login-card { border-radius: 30px; background: linear-gradient(145deg, rgba(255,255,255,.76), rgba(248,249,250,.54)); }
.login-card::before {
  display: block;
  width: 42px;
  height: 4px;
  margin: -14px auto 30px;
  border-radius: 999px;
  content: "";
  background: rgba(49,52,58,.20);
}
.login-card label { color: #4f545c; }
.preview-hint { color: #6a7078; border: 1px solid rgba(40,43,48,.07); background: rgba(233,236,239,.58); }

/* Roherlös: dieselbe Sprache wie das Portal */
.roe-view { color: var(--t21-text); background: transparent; }
.roe-app-header { border-radius: 20px 20px 0 0; }
.roe-app-mark {
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(145deg, #45494f, #1d1f23);
  box-shadow: 0 9px 20px rgba(20,22,25,.14), inset 0 1px 0 rgba(255,255,255,.22);
}
.roe-tabs {
  gap: 6px;
  padding: 8px 10px;
  border-color: var(--t21-line);
  background: rgba(231,234,237,.64);
  -webkit-backdrop-filter: blur(24px) saturate(110%);
  backdrop-filter: blur(24px) saturate(110%);
}
.roe-tabs button { margin: 0; padding: 9px 15px; border: 1px solid transparent; border-radius: 10px; color: #656a72; }
.roe-tabs button.active {
  color: #1b1d21;
  border-color: rgba(38,41,46,.12);
  background: rgba(255,255,255,.80);
  box-shadow: 0 8px 18px rgba(29,31,35,.07), inset 0 1px 0 #fff;
}
.roe-desktop-panel { border-radius: 0 0 20px 20px; }
.roe-metrics article { border-radius: 15px; box-shadow: none; }
.roe-metrics article:last-child { padding-top: 12px; border-top: 1px solid var(--t21-line); }
.roe-table-wrap { border-color: var(--t21-line); border-radius: 12px; background: rgba(255,255,255,.42); }
.roe-data-table th { color: #555b63; border-color: var(--t21-line); background: rgba(226,229,232,.58); }
.roe-data-table td { color: #383c42; border-color: rgba(36,39,44,.08); }
.roe-data-table tbody tr:hover { background: rgba(255,255,255,.56); }
.roe-assigned-row { background: rgba(230,237,234,.60); }
.roe-selected-row { outline-color: #555b63; background: rgba(225,228,232,.72)!important; }
.roe-department-dot { background: #747981; }
.roe-department-card::before { width: 3px; background: linear-gradient(#8a8f96, #373a40); }
.roe-achievement, .roe-allocation-chip { color: #5b6068; background: rgba(232,235,238,.70); }
.roe-allocation-chip { border-left-color: #767b83; }
.roe-money-positive { color: var(--t21-positive)!important; }
.roe-money-negative { color: var(--t21-negative)!important; }
.roe-dialog { border-radius: 22px; }
.roe-dialog::backdrop { background: rgba(18,20,23,.44); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.roe-dialog-head > button { color: #22252a; }
.roe-pdf-stage { background: #5d6269; }

/* Administration */
.panel-backdrop { background: rgba(18,20,23,.42); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.customize-panel {
  border-color: rgba(36,39,44,.16);
  background: rgba(236,239,242,.88);
  box-shadow: -24px 26px 90px rgba(17,19,22,.22), inset 0 1px 0 rgba(255,255,255,.82);
  -webkit-backdrop-filter: blur(34px) saturate(112%);
  backdrop-filter: blur(34px) saturate(112%);
}
.customize-header, .customize-footer { background: rgba(255,255,255,.68); border-color: var(--t21-line); }
.admin-tabs { border-color: var(--t21-line); background: rgba(226,229,232,.60); }
.admin-tabs > p { color: #777c84; }
.admin-tabs button strong, .admin-role-context div strong { color: #35383e; }
.admin-tabs button small, .admin-role-context div small { color: #777c84; }
.admin-nav-icon { color: #62676f; background: rgba(255,255,255,.54); }
.admin-tabs button.active {
  color: #202227;
  border-color: rgba(36,39,44,.13);
  background: rgba(255,255,255,.78);
  box-shadow: 0 10px 24px rgba(24,26,30,.08), inset 3px 0 0 #4a4e54;
}
.admin-tabs button.active strong { color: #202227; }
.admin-tabs button.active .admin-nav-icon { color: #fff; background: linear-gradient(145deg, #4b4f55, #25282c); }
.roe-access-option input:checked + i { background: #4c5158; }
.roe-access-option i { background: #c8ccd1; }
.security-state {
  color: #555b63;
  border: 1px solid rgba(36,39,44,.08);
  background: rgba(231,234,237,.74);
}
.security-notice { color: #60656d; border-left-color: #565b62; background: rgba(239,241,243,.74); }
.live-preview { color: #34383e; border: 1px solid rgba(36,39,44,.09); background: rgba(238,240,242,.72); }
.live-preview small { color: #70757d; }
.live-dot { background: #687078; box-shadow: 0 0 0 5px rgba(104,112,120,.10); }
.role-choice-list input,
.permission-row input,
.security-toggle-list input,
input[type="checkbox"], input[type="radio"] { accent-color: #4c5158; }

/* Nur semantische Zustände behalten dezente Farbe. */
.activity-result { color: var(--t21-positive); background: rgba(226,236,232,.72); }
.activity-result.denied, .activity-result.failure, .form-error { color: var(--t21-negative); }
.activity-result.denied, .activity-result.failure { background: rgba(241,229,227,.72); }

/* Flüssige Navigation auf Tablet und Telefon */
@media (max-width: 1024px) {
  .mobile-nav {
    border-color: rgba(255,255,255,.16);
    background: linear-gradient(150deg, rgba(48,51,57,.90), rgba(21,23,27,.90));
    box-shadow: 0 24px 54px rgba(18,20,23,.24), inset 0 1px 0 rgba(255,255,255,.16);
    -webkit-backdrop-filter: blur(28px) saturate(110%);
    backdrop-filter: blur(28px) saturate(110%);
  }
  .mobile-nav a { color: rgba(245,246,247,.58); }
  .mobile-nav a.active { color: #fff; background: rgba(255,255,255,.09); border-radius: 11px; }
}

@media (max-width: 760px) {
  .admin-menu-toggle { color: #30343a; border-color: var(--t21-line); background: rgba(245,246,247,.86); }
  .login-card { border-radius: 24px; }
}

@media (max-width: 600px) {
  .module-grid, .planner-grid { gap: 12px; }
  .module-card, .planner-link-card { border-radius: 18px; }
  .module-card:hover, .planner-link-card:hover { transform: none; }
  .login-shell { background: linear-gradient(155deg, #e8ebee, #f7f8f9 54%, #eaedef); }
  .login-card::before { margin-top: -8px; margin-bottom: 24px; }
}

@media (prefers-reduced-transparency: reduce) {
  .sidebar, .mobile-nav, .module-card, .planner-link-card, .settings-section, .roe-dialog, .login-card { backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* Planner v113 · eigene Abteilungen, klare AB-Führung und Standard-Checkliste */
.tenant-planner-heading { display:grid; grid-template-columns:minmax(260px,1fr) minmax(260px,360px) auto; align-items:center; }
.tenant-planner-heading-actions { align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.tenant-planner-heading-actions .primary-button,
.tenant-planner-heading-actions .secondary-button { min-height:44px; margin:0; }
.planner-tenant-switcher { display:grid; min-width:0; gap:6px; }
.planner-tenant-switcher>span:first-child { color:#6e7880; font-size:.54rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.planner-tenant-select-shell { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; overflow:hidden; min-height:52px; border:1px solid rgba(34,39,44,.12); border-radius:16px; background:rgba(255,255,255,.78); box-shadow:0 12px 30px rgba(28,33,38,.07),inset 0 1px 0 rgba(255,255,255,.86); }
.planner-tenant-select-shell>i { display:grid; width:34px; height:34px; margin-left:8px; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(145deg,#495159,#252a2f); font-size:.55rem; font-style:normal; font-weight:950; letter-spacing:-.03em; }
.planner-tenant-select-shell select { width:100%; min-width:0; height:50px; padding:0 38px 0 12px; border:0; outline:0; color:#252a2f; background:transparent; font:inherit; font-size:.76rem; font-weight:850; cursor:pointer; }
.planner-tenant-select-shell:focus-within { border-color:rgba(45,65,78,.35); box-shadow:0 0 0 4px rgba(60,87,104,.09),0 14px 32px rgba(28,33,38,.08); }
.tenant-planner-board { grid-auto-columns:320px; gap:16px; align-items:stretch; padding:4px 4px 22px; }
.tenant-planner-column { align-self:start; border-color:rgba(34,39,44,.10); border-radius:20px; background:linear-gradient(155deg,rgba(241,243,245,.92),rgba(232,235,238,.72)); box-shadow:0 14px 34px rgba(28,32,36,.06); }
.tenant-planner-column>header { min-height:62px; padding:15px 16px; border-bottom:1px solid rgba(34,39,44,.08); background:rgba(255,255,255,.46); }
.tenant-planner-column>header>div { display:flex; align-items:center; min-width:0; gap:9px; }
.tenant-planner-column>header>div>i { width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:var(--planner-department-color,#64717a); box-shadow:0 0 0 4px color-mix(in srgb,var(--planner-department-color,#64717a) 14%,transparent); }
.tenant-planner-column>header h3 { overflow:hidden; font-size:.78rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.tenant-planner-cards { align-content:start; gap:11px; padding:11px; }
.tenant-planner-card { display:flex; min-height:245px; flex-direction:column; gap:9px; width:100%; padding:14px; border:1px solid rgba(34,39,44,.11); border-left:4px solid var(--planner-card-color,#69737b); border-radius:15px; background:rgba(255,255,255,.94); box-shadow:0 10px 24px rgba(25,30,34,.055); color:#20252a; text-align:left; cursor:pointer; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.tenant-planner-card:hover,.tenant-planner-card:focus-visible { border-color:rgba(34,39,44,.23); outline:0; box-shadow:0 16px 30px rgba(25,30,34,.10); transform:translateY(-2px); }
.tenant-planner-card.status-waiting,.tenant-planner-card.priority-urgent { border-left-color:#a76048; }
.tenant-planner-card.status-done { opacity:.72; }
.planner-card-top,.planner-card-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.planner-card-top code { padding:5px 8px; border-radius:8px; color:#fff; background:#2c3339; font-family:inherit; font-size:.56rem; font-weight:900; letter-spacing:.025em; }
.planner-card-copy { min-height:28px; padding:0 8px; border:1px solid rgba(34,39,44,.10); border-radius:8px; color:#58626a; background:#f1f3f4; font:inherit; font-size:.49rem; font-weight:850; cursor:pointer; }
.planner-card-copy:hover { color:#171b1f; background:#e4e7e9; }
.tenant-planner-card>strong { display:block; min-height:38px; font-size:.76rem; line-height:1.42; }
.tenant-planner-card .planner-card-activity { display:-webkit-box; min-height:32px; overflow:hidden; margin:0; color:#67717a; font-size:.6rem; line-height:1.45; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.planner-card-roe { color:#3f4b53; font-size:.59rem; font-weight:850; }
.planner-card-progress { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; margin-top:auto; }
.planner-card-progress>i { position:relative; height:6px; overflow:hidden; border-radius:999px; background:#e3e7e9; }
.planner-card-progress>i::after { position:absolute; inset:0 auto 0 0; width:var(--planner-progress,0%); border-radius:inherit; content:""; background:var(--planner-card-color,#64717a); }
.planner-card-progress>small,.planner-card-date { color:#747e86; font-size:.51rem; }
.planner-card-meta { min-height:31px; padding-top:8px; border-top:1px solid rgba(34,39,44,.07); }
.planner-card-meta>span { padding:5px 8px; border-radius:999px; color:#5d6870; background:#edf0f2; font-size:.5rem; font-weight:850; }
.planner-card-avatars { display:flex; }
.planner-card-avatars b { display:grid; width:28px; height:28px; margin-left:-5px; place-items:center; border:2px solid #fff; border-radius:50%; color:#fff; background:#3b454e; font-size:.46rem; font-style:normal; }
.tenant-planner-board.is-list { grid-template-columns:1fr; grid-auto-columns:auto; }
.tenant-planner-board.is-list .tenant-planner-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
.planner-syntax-preview { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:8px; }
.planner-syntax-preview code { max-width:min(680px,70vw); overflow:hidden; padding:8px 10px; border:1px solid rgba(34,39,44,.10); border-radius:9px; color:#4f5961; background:rgba(236,239,241,.9); font-family:inherit; font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.planner-syntax-preview button { min-height:34px; padding:0 11px; border:1px solid rgba(34,39,44,.12); border-radius:9px; color:#2e363c; background:#fff; font:inherit; font-size:.54rem; font-weight:850; cursor:pointer; }
.planner-ab-field { grid-column:span 1; }
.planner-ab-field small { min-height:27px; color:#61768a; line-height:1.35; }
.planner-form-identification label { align-content:start; }
.planner-form-identification label>input { height:54px; min-height:54px; align-self:start; }
.planner-checklist-field { display:grid; gap:0; padding:0; overflow:hidden; border:1px solid rgba(34,39,44,.10); border-radius:15px; background:rgba(255,255,255,.55); }
.planner-checklist-toggle { display:grid; grid-template-columns:minmax(0,1fr) auto 20px; align-items:center; gap:12px; width:100%; min-height:62px; padding:11px 15px; border:0; background:transparent; color:#35424b; text-align:left; cursor:pointer; }
.planner-checklist-toggle:hover { background:rgba(72,116,109,.055); }
.planner-checklist-copy { display:grid; gap:3px; min-width:0; }
.planner-checklist-copy>strong { color:#334853; font-size:.82rem; font-weight:850; }
.planner-checklist-copy>small { color:#6b7881; font-size:.68rem; line-height:1.35; }
.planner-checklist-progress { padding:6px 9px; border:1px solid rgba(58,96,91,.14); border-radius:999px; background:rgba(83,130,123,.08); color:#42645f; font-size:.72rem; font-weight:800; white-space:nowrap; }
.planner-checklist-progress.is-complete { background:#e5f5ee; color:#22654f; }
.planner-checklist-toggle>i::before { content:"⌄"; display:block; font-size:1.1rem; font-style:normal; transition:transform .18s ease; }
.planner-checklist-field.is-open .planner-checklist-toggle>i::before { transform:rotate(180deg); }
#plannerChecklistChoices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:0 15px 14px; }
#plannerChecklistChoices[hidden] { display:none!important; }
#plannerChecklistChoices label { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:center; gap:9px; min-height:42px; padding:7px 10px; border:1px solid rgba(34,39,44,.09); border-radius:11px; background:rgba(255,255,255,.8); cursor:pointer; }
#plannerChecklistChoices input { position:absolute; opacity:0; pointer-events:none; }
#plannerChecklistChoices label>i { display:grid; width:22px; height:22px; place-items:center; border:1px solid rgba(34,39,44,.22); border-radius:7px; background:#fff; }
#plannerChecklistChoices input:checked+i { border-color:#3d4a53; background:#3d4a53; }
#plannerChecklistChoices input:checked+i::after { color:#fff; content:"✓"; font-size:.68rem; font-style:normal; font-weight:900; }
#plannerChecklistChoices label>span { color:#465059; font-size:.78rem; line-height:1.35; }
.planner-department-dialog { width:min(980px,calc(100vw - 30px)); }
.planner-department-body { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); align-items:start; }
.planner-department-create,.planner-department-overview { display:grid; gap:14px; padding:18px; border:1px solid rgba(34,39,44,.10); border-radius:18px; background:rgba(255,255,255,.58); }
.planner-department-create h3 { margin:3px 0 6px; font-size:1rem; }
.planner-department-create p { margin:0; color:#768089; font-size:.58rem; line-height:1.5; }
.planner-department-fields { display:grid; grid-template-columns:minmax(0,1fr) 88px; gap:10px; }
.planner-department-fields label { display:grid; gap:6px; color:#506579; font-size:.59rem; font-weight:850; }
.planner-department-fields input { width:100%; min-height:45px; padding:8px 11px; border:1px solid rgba(34,39,44,.13); border-radius:11px; background:#fff; font:inherit; }
.planner-department-fields input[type=color] { padding:5px; }
.planner-department-editor-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.planner-department-editor-actions .primary-button,.planner-department-editor-actions .secondary-button { min-height:42px; margin:0; }
.planner-department-message { min-height:18px; color:#536b5e!important; font-weight:750; }
.planner-department-overview-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.planner-department-overview-heading h3 { margin:3px 0 0; font-size:.9rem; }
.planner-department-overview-heading>span { flex:0 0 auto; padding:6px 9px; border:1px solid rgba(34,39,44,.09); border-radius:999px; color:#657078; background:rgba(242,244,245,.9); font-size:.51rem; font-weight:850; }
#plannerDepartmentList { display:grid; gap:8px; }
#plannerDepartmentList article { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:72px; padding:11px; border:1px solid rgba(34,39,44,.09); border-radius:12px; background:rgba(255,255,255,.82); }
#plannerDepartmentList article>i { width:10px; height:34px; border-radius:999px; background:var(--planner-department-color,#4f606b); }
#plannerDepartmentList article>div { display:grid; gap:4px; min-width:0; }
#plannerDepartmentList strong { font-size:.66rem; }
#plannerDepartmentList small { overflow:hidden; color:#78828a; font-size:.52rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.planner-department-card-actions { display:flex!important; grid-auto-flow:column; align-items:center; justify-content:flex-end; gap:5px!important; }
.planner-department-card-actions button { min-width:34px; min-height:34px; padding:0 9px; border:1px solid rgba(34,39,44,.10); border-radius:9px; color:#4d5860; background:#f5f6f7; font:inherit; font-size:.5rem; font-weight:850; cursor:pointer; }
.planner-department-card-actions button:hover:not(:disabled) { color:#1f252a; border-color:rgba(34,39,44,.2); background:#fff; }
.planner-department-card-actions button:disabled { opacity:.35; cursor:default; }
.planner-department-card-actions button.danger { color:#8c4e43; }

@media(max-width:1250px){.tenant-planner-heading{grid-template-columns:minmax(240px,1fr) minmax(250px,330px)}.tenant-planner-heading-actions{grid-column:1/-1}.tenant-planner-board.is-list .tenant-planner-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-department-body{grid-template-columns:1fr}.planner-form-identification{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.tenant-planner-heading{grid-template-columns:1fr;align-items:flex-start}.planner-tenant-switcher{width:100%}.tenant-planner-heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;justify-content:flex-start}.tenant-planner-heading-actions>*{width:100%}.tenant-planner-heading-actions>*:last-child{grid-column:1/-1}.tenant-planner-board{grid-auto-columns:minmax(84vw,84vw)}.tenant-planner-board.is-list .tenant-planner-cards,#plannerChecklistChoices,.planner-form-identification,.planner-form-dates,.planner-form-routing{grid-template-columns:1fr}.planner-syntax-preview{align-items:stretch;flex-direction:column}.planner-syntax-preview code{max-width:100%}.planner-department-fields{grid-template-columns:minmax(0,1fr) 72px}#plannerDepartmentList article{grid-template-columns:8px minmax(0,1fr)}.planner-department-card-actions{grid-column:1/-1;justify-content:stretch!important}.planner-department-card-actions button{flex:1}.planner-department-overview-heading{align-items:flex-start;flex-direction:column}.planner-department-editor-actions{display:grid;grid-template-columns:1fr}.planner-department-editor-actions>*{width:100%}}
@media(min-width:1800px){#plannerView{max-width:none}.tenant-planner-heading{grid-template-columns:minmax(360px,1fr) 390px auto;gap:30px}.planner-tenant-select-shell{min-height:60px}.planner-tenant-select-shell select{height:58px;font-size:.86rem}.tenant-planner-board{grid-auto-columns:minmax(360px,420px);gap:20px}.tenant-planner-card{min-height:270px;padding:18px}.tenant-planner-card>strong{font-size:.86rem}.tenant-planner-card .planner-card-activity{font-size:.68rem}.tenant-planner-toolbar{padding:18px 20px}.tenant-planner-toolbar input{min-height:50px;font-size:.82rem}}

/* sevdesk Dokumente · Titanium Glass v31 */
.documents-view { padding: 0; }
.documents-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:24px 26px 18px; border-bottom:1px solid var(--t21-line); }
.documents-header h2 { margin:4px 0 5px; font-size:clamp(1.55rem,2.4vw,2.15rem); letter-spacing:-.035em; }
.documents-header p:last-child { margin:0; color:var(--t21-text-soft); }
.documents-header-actions { display:flex; align-items:center; gap:10px; }
.documents-company-control { display:grid; gap:4px; min-width:220px; }
.documents-company-control span { color:#6d737b; font-size:.58rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.documents-company-control select { min-height:38px; max-width:320px; padding:6px 34px 6px 12px; border:1px solid rgba(36,39,44,.13); border-radius:12px; color:#24272c; background:rgba(255,255,255,.9); font:inherit; font-size:.74rem; font-weight:800; }
.documents-connection,.documents-readonly { display:inline-flex; align-items:center; min-height:32px; padding:6px 11px; border:1px solid rgba(36,39,44,.10); border-radius:999px; color:#575c64; background:rgba(240,242,244,.78); font-size:.68rem; font-weight:800; white-space:nowrap; }
.documents-connection::before { width:7px; height:7px; margin-right:8px; border-radius:50%; background:#676c73; box-shadow:0 0 0 4px rgba(103,108,115,.10); content:""; }
.documents-toolbar { display:grid; grid-template-columns:minmax(260px,1fr) 170px 170px auto; align-items:end; gap:10px; padding:18px 26px 14px; }
.documents-toolbar label { display:grid; gap:6px; color:#646970; font-size:.68rem; font-weight:800; }
.documents-toolbar label small { color:#8a8f95; font-size:.57rem; font-weight:600; line-height:1.35; }
.documents-toolbar .documents-search { position:relative; }.documents-toolbar .documents-search small { position:absolute; top:100%; left:0; margin-top:5px; }
.documents-toolbar { padding-bottom:28px; }
.documents-toolbar input { width:100%; min-height:44px; padding:9px 12px; border:1px solid rgba(36,39,44,.14); border-radius:12px; color:var(--t21-text); background:rgba(255,255,255,.74); box-shadow:inset 0 1px 0 rgba(255,255,255,.86); font:inherit; }
.documents-toolbar input:focus { outline:2px solid rgba(61,65,71,.22); outline-offset:1px; border-color:#676c73; }
.documents-tabs { display:flex; gap:5px; margin:0 26px; padding:5px; overflow:auto; border:1px solid rgba(36,39,44,.09); border-radius:14px; background:rgba(226,229,232,.62); scrollbar-width:none; }
.documents-tabs::-webkit-scrollbar { display:none; }
.documents-tabs button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:38px; padding:7px 13px; border:1px solid transparent; border-radius:10px; color:#666b72; background:transparent; font:inherit; font-size:.69rem; font-weight:800; white-space:nowrap; cursor:pointer; }
.documents-tabs button span { min-width:22px; padding:2px 6px; border-radius:999px; background:rgba(255,255,255,.58); font-size:.61rem; }
.documents-tabs button.active { color:#22252a; border-color:rgba(36,39,44,.10); background:rgba(255,255,255,.84); box-shadow:0 8px 18px rgba(20,22,25,.07),inset 0 1px 0 #fff; }
.documents-results { margin:16px 26px 28px; overflow:hidden; border:1px solid rgba(36,39,44,.10); border-radius:20px; background:rgba(255,255,255,.66); box-shadow:0 18px 48px rgba(27,29,33,.07),inset 0 1px 0 rgba(255,255,255,.90); }
.documents-result-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; border-bottom:1px solid var(--t21-line); }
.documents-result-head h3 { margin:0 0 4px; font-size:1rem; }
.documents-result-head p { margin:0; color:var(--t21-text-soft); font-size:.7rem; }
.documents-table-wrap { overflow:auto; }
.documents-table { width:100%; border-collapse:collapse; font-size:.71rem; }
.documents-table th { padding:11px 13px; color:#70757c; background:rgba(235,237,239,.72); font-size:.61rem; letter-spacing:.035em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.documents-table td { padding:12px 13px; border-top:1px solid rgba(36,39,44,.07); vertical-align:middle; }
.documents-table td:nth-child(6) { font-variant-numeric:tabular-nums; white-space:nowrap; }
.documents-table td strong,.documents-table td small { display:block; }
.documents-table td small { max-width:260px; margin-top:3px; overflow:hidden; color:var(--t21-text-soft); font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.document-type,.document-status { display:inline-flex; align-items:center; min-height:26px; padding:4px 8px; border-radius:8px; color:#4f545b; background:#eceef0; font-size:.61rem; font-weight:800; white-space:nowrap; }
.document-type.order { background:#e9ebed; }
.document-type.delivery { background:#dfe2e5; }
.document-type.invoice { color:#f8f9fa; background:#555a61; }
.document-status { min-height:24px; border:1px solid rgba(36,39,44,.08); background:rgba(245,246,247,.82); }
.document-open { min-height:34px; padding:6px 10px; border:1px solid rgba(36,39,44,.16); border-radius:9px; color:#32363b; background:rgba(255,255,255,.78); font:inherit; font-size:.66rem; font-weight:800; cursor:pointer; }
.document-open:hover:not(:disabled) { color:#fff; border-color:#383c42; background:#383c42; }
.document-open:disabled { opacity:.45; cursor:not-allowed; }
.documents-card-list { display:none; }

.documents-dialog { width:min(1320px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.68); border-radius:24px; background:rgba(235,238,240,.94); box-shadow:0 30px 100px rgba(16,18,21,.30),inset 0 1px 0 #fff; -webkit-backdrop-filter:blur(30px) saturate(110%); backdrop-filter:blur(30px) saturate(110%); }
.documents-dialog::backdrop { background:rgba(18,20,23,.48); -webkit-backdrop-filter:blur(13px); backdrop-filter:blur(13px); }
.documents-dialog-shell { display:grid; grid-template-rows:auto auto minmax(0,1fr); height:min(880px,calc(100dvh - 24px)); }
.documents-dialog-shell>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px 13px; border-bottom:1px solid var(--t21-line); background:rgba(255,255,255,.62); }
.documents-dialog-shell>header h3 { margin:3px 0 4px; font-size:1.05rem; }
.documents-dialog-shell>header small { color:var(--t21-text-soft); }
.documents-dialog-shell>header>button { width:38px; height:38px; padding:0; border:1px solid rgba(36,39,44,.10); border-radius:50%; color:#292c31; background:rgba(255,255,255,.58); font-size:1.3rem; cursor:pointer; }
.documents-pdf-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:6px; min-height:50px; padding:7px 16px; border-bottom:1px solid rgba(36,39,44,.10); background:rgba(244,245,246,.72); }
.documents-pdf-toolbar button { min-width:38px; min-height:36px; padding:6px 10px; border:1px solid rgba(36,39,44,.14); border-radius:9px; color:#34383d; background:rgba(255,255,255,.78); font:inherit; font-weight:800; cursor:pointer; }
.documents-pdf-toolbar output { min-width:82px; color:#62676e; font-size:.68rem; font-weight:800; text-align:center; }
.documents-pdf-stage { position:relative; min-height:0; overflow:hidden; background:#5d6268; }
.documents-pdf-stage>p { position:absolute; z-index:2; top:14px; left:50%; margin:0; padding:7px 11px; border-radius:999px; transform:translateX(-50%); color:#34383d; background:rgba(255,255,255,.90); box-shadow:0 8px 20px rgba(0,0,0,.12); font-size:.68rem; font-weight:800; }
.documents-pdf-stage>p.is-error { top:50%; max-width:80%; border-radius:12px; transform:translate(-50%,-50%); color:var(--t21-negative); text-align:center; }
.documents-pdf-pages { display:grid; align-content:start; gap:14px; width:100%; height:100%; padding:14px; overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; }
.documents-pdf-page { width:max-content; margin:0 auto; background:#fff; box-shadow:0 5px 22px rgba(0,0,0,.24); }
.documents-pdf-page canvas { display:block; max-width:none; }
.documents-pdf-demo { display:grid; width:min(680px,90%); aspect-ratio:1/1.414; margin:0 auto; place-content:center; gap:10px; padding:30px; color:#30343a; background:#fff; box-shadow:0 5px 22px rgba(0,0,0,.24); text-align:center; }
.documents-pdf-demo strong { font-size:1.4rem; }.documents-pdf-demo span { color:#737880; }

@media(max-width:900px){
  .documents-header { align-items:flex-start; flex-direction:column; }
  .documents-toolbar { grid-template-columns:1fr 1fr auto; }
  .documents-search { grid-column:1/-1; }
  .documents-table-wrap { display:none; }
  .documents-card-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:12px; }
  .document-card { display:grid; gap:10px; padding:14px; border:1px solid rgba(36,39,44,.09); border-radius:15px; background:rgba(255,255,255,.68); }
  .document-card header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .document-card h3,.document-card p { margin:0; }.document-card p { color:var(--t21-text-soft); font-size:.7rem; }
  .document-card dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0; }
  .document-card dl div { display:grid; gap:2px; }.document-card dt { color:#777c83; font-size:.6rem; }.document-card dd { margin:0; font-size:.7rem; font-weight:800; }
  .document-card .document-open { width:100%; }
}
@media(max-width:600px){
  .documents-header { padding:18px 15px 14px; }.documents-header-actions { width:100%; flex-wrap:wrap; justify-content:space-between; }.documents-company-control { width:100%; }.documents-company-control select { width:100%; max-width:none; }
  .documents-toolbar { grid-template-columns:1fr 1fr; gap:16px 10px; padding:14px 15px 18px; }.documents-toolbar .secondary-button,.documents-toolbar .erp-refresh-button { grid-column:1/-1; width:100%; }.documents-toolbar .documents-search { margin-bottom:10px; }
  .documents-tabs { margin-inline:15px; }.documents-results { margin:12px 15px 20px; border-radius:17px; }
  .documents-result-head { padding:14px; }.documents-card-list { grid-template-columns:1fr; }
  .documents-dialog { width:calc(100vw - 8px); max-height:calc(100dvh - 8px); margin:4px; border-radius:18px; }
  .documents-dialog-shell { height:calc(100dvh - 8px); }.documents-dialog-shell>header { padding:13px 14px 10px; }
  .documents-dialog-shell>header h3 { max-width:72vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .documents-pdf-toolbar { justify-content:space-between; padding:6px 8px; }.documents-pdf-toolbar output { min-width:54px; }
  .documents-pdf-toolbar button { min-width:42px; min-height:42px; }.documents-pdf-pages { gap:10px; padding:8px; }
}

/* Warenwirtschaft · strukturierte Titanium-Glass-Oberfläche v32 */
.erp-tabs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:4px; margin:16px 26px 0; padding:5px; border:1px solid rgba(36,39,44,.10); border-radius:15px; background:rgba(222,225,228,.68); box-shadow:inset 0 1px 0 rgba(255,255,255,.82); }
.erp-tabs button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:50px; padding:8px 11px; border:0; border-radius:11px; color:#555b62; background:transparent; font:inherit; font-size:.73rem; font-weight:800; cursor:pointer; transition:background .16s ease,color .16s ease,transform .16s ease; }
.erp-tabs button>span { min-width:24px; color:#7a7f85; font-size:.62rem; font-weight:900; text-align:center; }
.erp-tabs button:hover:not(.active) { color:#202328; background:rgba(255,255,255,.52); }
.erp-tabs button.active { color:#fff; background:#292d32; box-shadow:0 7px 18px rgba(20,22,25,.20),inset 0 1px 0 rgba(255,255,255,.12); }
.erp-tabs button.active>span { color:rgba(255,255,255,.72); }.erp-tabs button:focus-visible { outline:2px solid #292d32; outline-offset:3px; }
.erp-refresh-button { min-height:44px; padding:9px 17px; border:0; border-radius:12px; color:#fff; background:#292d32; box-shadow:0 8px 20px rgba(25,28,31,.16); font:inherit; font-size:.71rem; font-weight:850; cursor:pointer; }.erp-refresh-button:hover { background:#17191c; transform:translateY(-1px); }.erp-refresh-button:focus-visible { outline:2px solid #292d32; outline-offset:3px; }
.erp-panel { margin:16px 26px 28px; overflow:hidden; border:1px solid rgba(36,39,44,.10); border-radius:20px; background:rgba(255,255,255,.66); box-shadow:0 18px 48px rgba(27,29,33,.07),inset 0 1px 0 rgba(255,255,255,.90); }
.documents-results.erp-panel { margin:16px 26px 28px; }
.erp-panel-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding:20px 20px 16px; border-bottom:1px solid var(--t21-line); }.erp-panel-heading h3 { margin:3px 0 4px; font-size:1.2rem; }.erp-panel-heading p { margin:0; color:var(--t21-text-soft); font-size:.7rem; }
.erp-metrics { display:grid; grid-template-columns:1.35fr repeat(4,1fr); gap:10px; padding:16px 20px 4px; }
.erp-metrics article { display:grid; gap:5px; min-height:110px; padding:15px; border:1px solid rgba(36,39,44,.10); border-radius:15px; align-content:center; background:rgba(250,250,250,.72); }.erp-metrics span,.erp-metrics small { color:#747980; font-size:.63rem; }.erp-metrics strong { color:#22252a; font-size:clamp(1rem,1.8vw,1.35rem); letter-spacing:-.025em; }
.erp-chart-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:12px 20px; }
.erp-chart-card { padding:18px; border:1px solid rgba(36,39,44,.10); border-radius:17px; background:rgba(250,250,250,.72); }.erp-chart-card header h4 { margin:0 0 4px; font-size:.9rem; }.erp-chart-card header small { color:#777c83; font-size:.64rem; }
.erp-donut-layout { display:grid; grid-template-columns:minmax(145px,.72fr) 1.28fr; align-items:center; gap:20px; margin-top:15px; }.erp-donut { position:relative; display:grid; width:min(170px,100%); aspect-ratio:1; margin:auto; place-content:center; border-radius:50%; background:#e5e7e9; text-align:center; }.erp-donut::after { position:absolute; inset:23%; border-radius:50%; background:#f8f8f8; box-shadow:0 0 0 1px rgba(36,39,44,.06); content:""; }.erp-donut strong,.erp-donut span { position:relative; z-index:1; }.erp-donut strong { font-size:.86rem; }.erp-donut span { margin-top:3px; color:#767b82; font-size:.59rem; }
.erp-donut-layout ol { display:grid; gap:9px; margin:0; padding:0; list-style:none; }.erp-donut-layout li { display:grid; grid-template-columns:9px minmax(0,1fr) auto; align-items:center; gap:8px; color:#555b62; font-size:.64rem; }.erp-donut-layout li i { width:8px; height:8px; border-radius:3px; background:var(--legend); }.erp-donut-layout li strong { color:#282c31; font-size:.62rem; font-variant-numeric:tabular-nums; }
.erp-insights { margin:0 20px 20px; padding:17px; border:1px solid rgba(36,39,44,.10); border-radius:17px; background:rgba(238,240,242,.62); }.erp-insights-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }.erp-insights-head h4 { margin:0 0 4px; font-size:.9rem; }.erp-insights-head p { margin:0; color:#747980; font-size:.64rem; }.erp-insights-head>span { padding:5px 8px; border-radius:999px; color:#5d6269; background:rgba(255,255,255,.64); font-size:.58rem; font-weight:800; }
.erp-insight-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:14px; }.erp-insight-grid article { display:grid; grid-template-columns:9px 1fr; gap:10px; padding:13px; border:1px solid rgba(36,39,44,.08); border-radius:13px; background:rgba(255,255,255,.68); }.erp-insight-grid article>span { width:8px; height:8px; margin-top:4px; border-radius:50%; background:#777b81; }.erp-insight-grid article.good>span { background:#41464c; }.erp-insight-grid article.attention>span { background:#9b7557; }.erp-insight-grid h5 { margin:0 0 4px; font-size:.7rem; }.erp-insight-grid p { margin:0; color:#71767d; font-size:.62rem; line-height:1.55; }
.erp-customer-dialog { width:min(760px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:24px; background:rgba(239,241,243,.96); box-shadow:0 30px 90px rgba(16,18,21,.28); }.erp-customer-dialog::backdrop { background:rgba(18,20,23,.48); backdrop-filter:blur(12px); }.erp-customer-shell>header { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:20px; border-bottom:1px solid var(--t21-line); background:rgba(255,255,255,.62); }.erp-customer-shell h3 { margin:3px 0; }.erp-customer-shell header small { color:#737980; }.erp-customer-shell header button { width:38px; height:38px; border:1px solid rgba(36,39,44,.1); border-radius:50%; background:rgba(255,255,255,.64); font-size:1.25rem; cursor:pointer; }
.erp-customer-detail { display:grid; gap:14px; max-height:70dvh; padding:18px 20px 22px; overflow:auto; }.erp-customer-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }.erp-customer-facts article,.erp-customer-detail>section { padding:13px; border:1px solid rgba(36,39,44,.09); border-radius:13px; background:rgba(255,255,255,.66); }.erp-customer-facts small,.erp-customer-facts strong { display:block; }.erp-customer-facts small { color:#777c83; font-size:.58rem; }.erp-customer-facts strong { margin-top:4px; font-size:.7rem; }.erp-customer-detail h4 { margin:0 0 10px; font-size:.78rem; }.erp-customer-detail section p { margin:7px 0; color:#626870; font-size:.68rem; line-height:1.55; }.erp-customer-detail section p span { display:inline-block; min-width:55px; color:#888d93; font-size:.58rem; }.erp-customer-detail section p strong { color:#30343a; }
.erp-customer-dialog { width:min(980px,calc(100vw - 24px)); }.erp-customer-roe { display:flex; align-items:center; justify-content:space-between; gap:18px; border-left:4px solid #596269!important; }.erp-customer-roe.is-open { border-left-color:#a36f4d!important; background:rgba(255,247,239,.76)!important; }.erp-customer-roe small { color:#777c83; font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.erp-customer-roe h4 { margin:3px 0!important; }.erp-customer-roe button { min-height:38px; padding:8px 12px; border:1px solid rgba(36,39,44,.14); border-radius:10px; color:#fff; background:#292d32; font:inherit; font-size:.65rem; font-weight:850; cursor:pointer; }.erp-customer-documents { padding:0!important; overflow:hidden; }.erp-customer-documents nav { display:flex; overflow:auto; border-bottom:1px solid rgba(36,39,44,.09); scrollbar-width:thin; }.erp-customer-documents nav button { flex:1 0 130px; min-height:48px; border:0; border-right:1px solid rgba(36,39,44,.07); color:#626870; background:rgba(239,241,243,.72); font:inherit; font-size:.65rem; font-weight:800; cursor:pointer; }.erp-customer-documents nav button.active { color:#24282d; background:#fff; }.erp-customer-documents nav span { margin-left:6px; padding:2px 6px; border-radius:999px; background:#e5e7e9; font-size:.55rem; }.erp-customer-documents>[data-customer-doc-list] { display:grid; gap:7px; max-height:270px; padding:12px; overflow:auto; }.erp-customer-document { display:grid; grid-template-columns:minmax(0,1fr) 110px auto; align-items:center; gap:12px; min-height:54px; padding:9px 11px; border:1px solid rgba(36,39,44,.09); border-radius:11px; color:#30343a; background:rgba(250,250,250,.8); font:inherit; text-align:left; cursor:pointer; }.erp-customer-document span strong,.erp-customer-document span small { display:block; }.erp-customer-document span strong { font-size:.68rem; }.erp-customer-document span small,.erp-customer-document i { margin-top:3px; color:#767b82; font-size:.58rem; font-style:normal; }.erp-customer-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.erp-customer-contact-grid>section { padding:13px; border:1px solid rgba(36,39,44,.09); border-radius:13px; background:rgba(255,255,255,.66); }
.erp-customer-notes { border-left:4px solid #596269!important; }.erp-customer-notes p { margin-bottom:0!important; color:#30343a!important; white-space:pre-wrap; overflow-wrap:anywhere; }
.document-type.offer { color:#363a40; background:#d8dbde; }
.erp-search-panel { margin:16px 26px 28px; overflow:hidden; border:1px solid rgba(36,39,44,.12); border-radius:20px; background:rgba(255,255,255,.76); box-shadow:0 22px 60px rgba(24,27,30,.10),inset 0 1px 0 #fff; }
.erp-search-panel>header { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding:19px 20px; border-bottom:1px solid rgba(36,39,44,.09); }.erp-search-panel>header h3 { margin:3px 0 4px; font-size:1.15rem; }.erp-search-panel>header p:last-child { margin:0; color:#737980; font-size:.68rem; }.erp-search-panel>header button { min-height:38px; padding:7px 12px; border:1px solid rgba(36,39,44,.13); border-radius:10px; color:#3b4046; background:rgba(244,245,246,.86); font:inherit; font-size:.66rem; font-weight:800; cursor:pointer; }
.erp-search-groups { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:0; }.erp-search-groups>section { min-width:0; padding:18px 20px 22px; }.erp-search-groups>section+section { border-left:1px solid rgba(36,39,44,.09); }.erp-search-groups h4 { margin:0 0 11px; color:#555b62; font-size:.68rem; letter-spacing:.04em; text-transform:uppercase; }
.erp-search-list { display:grid; gap:7px; }.erp-search-result { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:11px; width:100%; min-height:58px; padding:9px 11px; border:1px solid rgba(36,39,44,.09); border-radius:12px; color:#282c31; background:rgba(247,248,249,.82); font:inherit; text-align:left; cursor:pointer; transition:background .14s ease,border-color .14s ease,transform .14s ease; }.erp-search-result:hover { border-color:rgba(36,39,44,.18); background:#fff; transform:translateY(-1px); }.erp-search-result:disabled { opacity:.48; cursor:not-allowed; }.erp-result-mark { display:grid; width:34px; height:34px; place-items:center; border-radius:9px; color:#fff; background:#34383d; font-size:.59rem; font-weight:900; }.erp-search-result strong,.erp-search-result small { display:block; }.erp-search-result strong { overflow:hidden; font-size:.73rem; text-overflow:ellipsis; white-space:nowrap; }.erp-search-result small { margin-top:3px; overflow:hidden; color:#747980; font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }.erp-search-result i { color:#737980; font-size:.59rem; font-style:normal; font-weight:800; }

@media(max-width:1100px){.erp-tabs { grid-template-columns:repeat(3,1fr); }.erp-metrics { grid-template-columns:repeat(3,1fr); }.erp-metrics article:first-child { grid-column:span 2; }.erp-insight-grid { grid-template-columns:1fr; }}
@media(max-width:760px){.erp-tabs { display:flex; overflow:auto; margin-inline:15px; scrollbar-width:none; }.erp-tabs button { flex:0 0 auto; min-height:46px; }.erp-panel,.documents-results.erp-panel,.erp-search-panel { margin:12px 15px 20px; border-radius:17px; }.erp-metrics { grid-template-columns:1fr 1fr; padding:13px; }.erp-metrics article:first-child { grid-column:1/-1; }.erp-chart-grid { grid-template-columns:1fr; padding:0 13px 13px; }.erp-insights { margin:0 13px 13px; }.erp-customer-facts,.erp-customer-contact-grid { grid-template-columns:1fr 1fr; }.erp-customer-roe { align-items:flex-start; flex-direction:column; }.erp-search-groups { grid-template-columns:1fr; }.erp-search-groups>section+section { border-top:1px solid rgba(36,39,44,.09); border-left:0; }}
@media(max-width:480px){.erp-donut-layout { grid-template-columns:1fr; }.erp-metrics article { min-height:90px; }.erp-panel-heading { align-items:flex-start; flex-direction:column; }.erp-insights-head { flex-direction:column; }.erp-customer-dialog { width:calc(100vw - 8px); max-height:calc(100dvh - 8px); margin:4px; border-radius:18px; }.erp-customer-contact-grid { grid-template-columns:1fr; }.erp-customer-document { grid-template-columns:minmax(0,1fr) auto; }.erp-customer-document i { display:none; }}

/* Persönliche Startseitenoptionen und sicherer administrativer Ansichtswechsel v42 */
.account-card { grid-row:1 / span 2; }
.account-preference-card { display:grid; gap:14px; padding:22px; border:1px solid rgba(36,39,44,.12); border-radius:22px; background:rgba(255,255,255,.76); box-shadow:0 18px 50px rgba(20,22,26,.09),inset 0 1px 0 rgba(255,255,255,.92); backdrop-filter:blur(28px) saturate(115%); }
.account-preference-card h3 { margin:0 0 5px; }.account-preference-card>div>p:last-child { margin:0; color:#70767d; font-size:.73rem; }
.account-toggle { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 14px; border:1px solid rgba(36,39,44,.10); border-radius:14px; background:rgba(245,246,247,.75); cursor:pointer; }
.account-toggle strong,.account-toggle small { display:block; }.account-toggle strong { font-size:.76rem; }.account-toggle small { margin-top:4px; color:#777d84; font-size:.64rem; font-weight:500; line-height:1.4; }
.account-toggle input { flex:0 0 auto; width:22px; height:22px; accent-color:#292d32; }
.impersonation-banner { position:sticky; z-index:35; top:0; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 -28px 18px; padding:10px 28px; color:#202328; border-bottom:1px solid rgba(36,39,44,.11); background:rgba(246,247,248,.90); box-shadow:0 8px 24px rgba(20,22,25,.08); backdrop-filter:blur(24px) saturate(120%); }
.impersonation-banner span strong,.impersonation-banner span small { display:block; }.impersonation-banner span strong { font-size:.76rem; }.impersonation-banner span small { margin-top:2px; color:#6f757c; font-size:.62rem; }
.impersonation-banner button { min-height:36px; padding:7px 12px; border:1px solid rgba(36,39,44,.16); border-radius:10px; color:#fff; background:#292d32; font:inherit; font-size:.67rem; font-weight:800; cursor:pointer; }
.admin-password-dialog select { width:100%; min-height:44px; padding:10px 12px; border:1px solid rgba(36,39,44,.18); border-radius:12px; color:#202226; background:rgba(255,255,255,.82); font:inherit; }
.admin-password-actions { display:flex; justify-content:flex-end; gap:9px; }.admin-password-actions .primary-button { width:auto; margin:0; padding-inline:18px; }
.user-row { grid-template-columns:minmax(190px,1fr) 155px minmax(210px,1fr); }
.user-row-actions { grid-column:1 / -1; flex-wrap:wrap; }.user-row-actions button { padding:8px 10px; border:1px solid rgba(36,39,44,.14); border-radius:8px; color:#4a5057; background:#fff; font:inherit; font-size:.66rem; font-weight:800; cursor:pointer; }
.user-row-actions .user-inspect-button { color:#fff; border-color:#292d32; background:#292d32; }.user-row-actions button:disabled { opacity:.4; cursor:not-allowed; }
@media(max-width:760px){.account-card{grid-row:auto}.account-preference-card{padding:19px;border-radius:18px}.impersonation-banner{align-items:flex-start;flex-direction:column;margin:0 -15px 14px;padding:10px 15px}.impersonation-banner button{width:100%}.user-row{grid-template-columns:1fr}.user-row select,.user-email-input,.user-row-actions{grid-column:1}.user-row-actions{display:grid;grid-template-columns:1fr 1fr}.admin-password-actions{display:grid;grid-template-columns:1fr 1fr}.admin-password-actions button{width:100%!important}}

/* Warenwirtschaft v35 · ruhige Navigation und schnelle, eindeutige Suche */
.erp-tabs { gap:3px; padding:4px; border-color:rgba(24,39,52,.1); border-radius:16px; background:rgba(228,232,235,.72); box-shadow:inset 0 1px 1px rgba(13,28,40,.05),0 1px 0 rgba(255,255,255,.8); }
.erp-tabs button { min-height:45px; border-radius:12px; color:#59636c; font-size:.72rem; font-weight:750; letter-spacing:-.005em; }
.erp-tabs button:hover:not(.active) { color:#172839; background:rgba(255,255,255,.48); }
.erp-tabs button.active { color:#172839; background:rgba(255,255,255,.94); box-shadow:0 3px 12px rgba(20,38,52,.1),inset 0 0 0 1px rgba(255,255,255,.75); }
.documents-toolbar { grid-template-columns:minmax(320px,1fr) 148px 148px auto; gap:12px; padding-top:15px; padding-bottom:24px; }
.documents-toolbar .documents-search { display:grid; gap:6px; margin:0; }
.documents-toolbar .documents-search>span:first-child { color:#57616a; font-size:.68rem; font-weight:800; }
.documents-toolbar .documents-search small { position:static; margin:0; color:#7b858e; font-size:.59rem; }
.erp-search-control { position:relative; display:flex; align-items:center; min-height:48px; overflow:hidden; border:1px solid rgba(24,39,52,.14); border-radius:14px; background:rgba(255,255,255,.88); box-shadow:0 5px 18px rgba(20,38,52,.055),inset 0 1px 0 #fff; }
.documents-toolbar .erp-search-control input { min-height:46px; padding:9px 75px 9px 43px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.documents-toolbar .erp-search-control input:focus { outline:0; }
.documents-toolbar .erp-search-control input::-webkit-search-cancel-button { display:none; }
.erp-search-control:focus-within { border-color:rgba(18,56,83,.45); box-shadow:0 0 0 3px rgba(31,77,108,.1),0 8px 24px rgba(20,38,52,.08); }
.erp-search-icon { position:absolute; left:16px; width:14px; height:14px; border:2px solid #52606b; border-radius:50%; pointer-events:none; }
.erp-search-icon::after { position:absolute; right:-5px; bottom:-3px; width:6px; height:2px; border-radius:2px; background:#52606b; transform:rotate(45deg); content:""; }
.erp-search-control button { position:absolute; right:35px; display:grid; width:28px; height:28px; padding:0; place-items:center; border:0; border-radius:50%; color:#55616b; background:#edf0f2; font:inherit; font-size:1rem; cursor:pointer; }
.erp-search-control kbd { position:absolute; right:10px; display:grid; width:20px; height:22px; place-items:center; border:1px solid rgba(24,39,52,.12); border-radius:5px; color:#76818a; background:#f7f8f9; box-shadow:0 1px 1px rgba(20,38,52,.06); font:600 .62rem/1 inherit; }
.erp-refresh-button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:46px; padding:9px 16px; border:1px solid rgba(24,39,52,.13); color:#213747; background:rgba(255,255,255,.82); box-shadow:0 5px 16px rgba(20,38,52,.06),inset 0 1px 0 #fff; }
.erp-refresh-button:hover { color:#102b3e; background:#fff; transform:translateY(-1px); }
.erp-refresh-button span { font-size:1rem; font-weight:500; }
.erp-search-panel { border-radius:18px; background:rgba(250,251,252,.9); }
.erp-search-panel>header { align-items:center; padding:17px 20px; }
.erp-search-panel>header h3 { font-size:1.04rem; }
.erp-search-groups { grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr); }
.erp-search-groups h4 { display:flex; align-items:center; min-height:24px; margin-bottom:9px; color:#60707b; font-size:.62rem; letter-spacing:.065em; }
.erp-search-result { grid-template-columns:34px minmax(0,1fr) auto; min-height:56px; border-color:transparent; color:#20323f; background:transparent; }
.erp-search-result:hover,.erp-search-result.is-best { border-color:rgba(24,55,77,.12); background:#fff; box-shadow:0 5px 16px rgba(20,38,52,.055); transform:none; }
.erp-search-result.is-best { box-shadow:inset 3px 0 #284f68,0 5px 16px rgba(20,38,52,.055); }
.erp-result-mark { color:#eaf1f5; background:#29495e; }
.erp-search-result i { display:flex; align-items:center; gap:8px; color:#66747e; white-space:nowrap; }
.erp-search-result i b { color:#29495e; font-size:.78rem; }
.documents-header-actions .secondary-button { white-space:nowrap; }

/* Sachliche Farbcodierung für Controlling-Diagramme und Hinweise */
.erp-donut-layout li i { width:10px; height:10px; border-radius:50%; box-shadow:0 0 0 1px rgba(22,38,50,.08); }
.erp-donut-layout li i.erp-legend-color-0 { background:#18384f; }
.erp-donut-layout li i.erp-legend-color-1 { background:#2e6f73; }
.erp-donut-layout li i.erp-legend-color-2 { background:#6c5b7b; }
.erp-donut-layout li i.erp-legend-color-3 { background:#a97944; }
.erp-donut-layout li i.erp-legend-color-4 { background:#8b959e; }
.erp-insight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.erp-insight-grid article { border-left:3px solid #75818a; }
.erp-insight-grid article.good { border-left-color:#2e6f73; }.erp-insight-grid article.good>span { background:#2e6f73; }
.erp-insight-grid article.attention { border-left-color:#a97944; }.erp-insight-grid article.attention>span { background:#a97944; }
.erp-insight-grid article.critical { border-left-color:#9b4a46; }.erp-insight-grid article.critical>span { background:#9b4a46; }
.erp-insight-grid article.neutral { border-left-color:#596c7d; }.erp-insight-grid article.neutral>span { background:#596c7d; }

@media(max-width:1100px){.documents-toolbar { grid-template-columns:minmax(260px,1fr) 140px 140px; }.documents-toolbar .erp-refresh-button { grid-column:2/4; justify-self:end; }}
@media(max-width:760px){.documents-toolbar { grid-template-columns:1fr 1fr; }.documents-toolbar .documents-search { grid-column:1/-1; }.documents-toolbar .erp-refresh-button { grid-column:1/-1; justify-self:stretch; }.erp-search-control kbd { display:none; }.documents-toolbar .erp-search-control input { padding-right:48px; }.erp-search-control button { right:10px; }.erp-tabs button { min-height:43px; padding-inline:14px; }.erp-insight-grid { grid-template-columns:1fr; }}

/* Dashboard · persönlicher RoE-Zielstand v40 */
.dashboard-roe-progress { margin:28px 0 34px; overflow:hidden; border:1px solid rgba(31,39,47,.11); border-radius:22px; background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(242,244,246,.72)); box-shadow:0 20px 56px rgba(26,31,36,.075),inset 0 1px 0 rgba(255,255,255,.95); -webkit-backdrop-filter:blur(24px) saturate(112%); backdrop-filter:blur(24px) saturate(112%); }
.dashboard-roe-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 22px 16px; }
.dashboard-roe-heading h2 { margin:2px 0 5px; color:#20252a; font-size:1.18rem; letter-spacing:-.025em; }
.dashboard-roe-heading p:last-child { margin:0; color:#737b83; font-size:.7rem; }
.dashboard-roe-scope { display:inline-flex; align-items:center; min-height:30px; padding:6px 10px; border:1px solid rgba(31,39,47,.09); border-radius:999px; color:#555e66; background:rgba(255,255,255,.66); font-size:.63rem; font-weight:800; white-space:nowrap; }
.dashboard-roe-month { display:grid; grid-template-columns:minmax(190px,.55fr) minmax(260px,1fr) 110px; align-items:center; gap:20px; padding:16px 22px 18px; border-block:1px solid rgba(31,39,47,.08); background:rgba(255,255,255,.42); }
.dashboard-roe-progress-copy { display:grid; gap:4px; }.dashboard-roe-progress-copy>span { color:#727a82; font-size:.62rem; font-weight:750; }.dashboard-roe-progress-copy strong { color:#20252a; font-size:1.02rem; letter-spacing:-.02em; }.dashboard-roe-progress-copy strong small { margin:0 4px; color:#858c93; font-size:.62rem; font-weight:650; }
.dashboard-roe-track { position:relative; height:12px; overflow:hidden; border:1px solid rgba(31,39,47,.08); border-radius:999px; background:#dfe3e6; box-shadow:inset 0 2px 5px rgba(25,31,36,.10); }
.dashboard-roe-track i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#38434c,#5d6972); box-shadow:0 0 16px rgba(51,62,71,.2); transition:width .55s cubic-bezier(.22,.7,.2,1); }
.dashboard-roe-track.complete i { background:linear-gradient(90deg,#334d50,#537275); }
.dashboard-roe-progress-value { display:grid; gap:2px; text-align:right; }.dashboard-roe-progress-value strong { color:#252a2f; font-size:1rem; }.dashboard-roe-progress-value small { color:#747c84; font-size:.61rem; }
.dashboard-roe-worktime { display:grid; grid-template-columns:minmax(230px,1.62fr) repeat(5,minmax(92px,1fr)); align-items:stretch; gap:0; border-bottom:1px solid rgba(31,39,47,.08); background:rgba(237,240,242,.44); }
.dashboard-roe-worktime-title,.dashboard-roe-worktime>span { display:grid; align-content:center; min-width:0; padding:13px 16px; }
.dashboard-roe-worktime-title { gap:3px; padding-left:22px; border-right:1px solid rgba(31,39,47,.075); }
.dashboard-roe-worktime-title small,.dashboard-roe-worktime>span small { color:#767e85; font-size:.56rem; font-weight:750; }
.dashboard-roe-worktime-title strong { color:#273038; font-size:.78rem; line-height:1.25; }
.dashboard-roe-worktime-title span { color:#858c92; font-size:.53rem; line-height:1.35; }
.dashboard-roe-worktime>span { gap:4px; border-right:1px solid rgba(31,39,47,.065); }
.dashboard-roe-worktime>span:last-child { border-right:0; }
.dashboard-roe-worktime>span strong { overflow-wrap:anywhere; color:#2c343a; font-size:.73rem; font-variant-numeric:tabular-nums; line-height:1.25; }
.dashboard-roe-total { display:grid; grid-template-columns:repeat(3,minmax(110px,1fr)) auto; align-items:center; gap:18px; padding:14px 22px 16px; }
.dashboard-roe-total>span { display:grid; gap:3px; }.dashboard-roe-total small { color:#7b8289; font-size:.59rem; }.dashboard-roe-total strong { color:#2d3237; font-size:.78rem; font-variant-numeric:tabular-nums; }.dashboard-roe-total>a { color:#303840; font-size:.68rem; font-weight:850; text-decoration:none; white-space:nowrap; }.dashboard-roe-total>a span { margin-left:6px; }
.dashboard-roe-progress .roe-money-positive { color:#2e6f73!important; }.dashboard-roe-progress .roe-money-negative { color:#9b4a46!important; }
@media(max-width:1100px){.dashboard-roe-worktime { grid-template-columns:repeat(3,1fr); }.dashboard-roe-worktime-title { grid-column:1/-1; padding-left:18px; border-right:0; border-bottom:1px solid rgba(31,39,47,.075); }.dashboard-roe-worktime>span:nth-last-child(-n+2) { border-top:1px solid rgba(31,39,47,.065); }}
@media(max-width:900px){.dashboard-roe-month { grid-template-columns:1fr 90px; }.dashboard-roe-track { grid-column:1/-1; grid-row:2; }.dashboard-roe-progress-value { grid-column:2; grid-row:1; }.dashboard-roe-total { grid-template-columns:repeat(3,1fr); }.dashboard-roe-total>a { grid-column:1/-1; padding-top:4px; }}
@media(max-width:600px){.dashboard-roe-progress { margin:18px 0 24px; border-radius:19px; }.dashboard-roe-heading { padding:17px 16px 13px; }.dashboard-roe-heading { flex-direction:column; gap:10px; }.dashboard-roe-scope { max-width:100%; white-space:normal; }.dashboard-roe-month { grid-template-columns:1fr auto; gap:13px; padding:14px 16px 17px; }.dashboard-roe-progress-copy strong { font-size:.9rem; }.dashboard-roe-progress-value strong { font-size:.88rem; }.dashboard-roe-worktime { grid-template-columns:1fr 1fr; }.dashboard-roe-worktime-title { padding:13px 16px; }.dashboard-roe-worktime>span { padding:12px 16px; }.dashboard-roe-worktime>span:last-child { grid-column:1/-1; border-top:1px solid rgba(31,39,47,.065); }.dashboard-roe-total { grid-template-columns:1fr 1fr; gap:13px 16px; padding:14px 16px 17px; }.dashboard-roe-total>span:last-of-type { grid-column:1/-1; padding-top:10px; border-top:1px solid rgba(31,39,47,.08); }.dashboard-roe-total>a { grid-column:1/-1; }}

/* Dashboard · Shelly und Standortwetter v43 */
.dashboard-live-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr); gap:16px; margin:-16px 0 34px; }
.dashboard-live-card { position:relative; min-width:0; overflow:hidden; border:1px solid rgba(31,39,47,.11); border-radius:20px; background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(239,242,244,.72)); box-shadow:0 18px 46px rgba(24,29,34,.07),inset 0 1px 0 rgba(255,255,255,.95); -webkit-backdrop-filter:blur(24px) saturate(110%); backdrop-filter:blur(24px) saturate(110%); }
.dashboard-live-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:17px 19px 13px; border-bottom:1px solid rgba(31,39,47,.075); }
.dashboard-live-card h2 { margin:2px 0 3px; color:#20252a; font-size:1rem; letter-spacing:-.02em; }.dashboard-live-card header small { color:#7a8188; font-size:.61rem; }
.live-state { display:inline-flex; align-items:center; gap:7px; min-height:28px; padding:5px 9px; border:1px solid rgba(46,111,115,.14); border-radius:999px; color:#39676a; background:rgba(228,238,235,.65); font-size:.6rem; font-weight:850; white-space:nowrap; }.live-state i { width:7px; height:7px; border-radius:50%; background:#397679; box-shadow:0 0 0 4px rgba(57,118,121,.09); }.live-state.offline { color:#7b6060; background:rgba(241,232,231,.72); }.live-state.offline i { background:#9b4a46; }
.energy-flow { display:grid; grid-template-columns:minmax(96px,1fr) minmax(55px,.75fr) minmax(96px,1fr); align-items:center; gap:8px; padding:14px 19px; }
.energy-node { display:grid; grid-template-columns:34px 1fr; grid-template-rows:auto auto; align-items:center; gap:1px 9px; min-width:0; }.energy-node-icon { grid-row:1/3; display:grid; width:34px; height:34px; place-items:center; border:1px solid rgba(31,39,47,.1); border-radius:11px; color:#39434b; background:rgba(255,255,255,.76); font-size:1rem; box-shadow:0 5px 14px rgba(28,33,38,.06); }.energy-node small { color:#788087; font-size:.58rem; }.energy-node strong { overflow:hidden; color:#252a2f; font-size:.84rem; text-overflow:ellipsis; white-space:nowrap; font-variant-numeric:tabular-nums; }
.energy-flow-line { position:relative; height:2px; overflow:visible; border-radius:999px; background:#c8cdd1; }.energy-flow-line::before,.energy-flow-line::after { position:absolute; top:50%; width:6px; height:6px; border-top:2px solid #6b747b; border-right:2px solid #6b747b; content:""; }.energy-flow-line::before { left:-1px; transform:translateY(-50%) rotate(-135deg); }.energy-flow-line::after { right:-1px; transform:translateY(-50%) rotate(45deg); }.energy-flow-line i { position:absolute; top:50%; left:50%; width:8px; height:8px; border-radius:50%; background:#5b666e; box-shadow:0 0 0 4px rgba(91,102,110,.10); transform:translate(-50%,-50%); }.energy-flow-line i.reverse { background:#3f7476; }
.energy-live-card>footer { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:14px; padding:11px 19px 14px; border-top:1px solid rgba(31,39,47,.075); background:rgba(255,255,255,.34); }.energy-live-card footer span { display:grid; gap:2px; }.energy-live-card footer small { color:#7b8289; font-size:.55rem; }.energy-live-card footer strong { color:#30363b; font-size:.7rem; font-variant-numeric:tabular-nums; }
.live-refresh { min-height:31px; padding:6px 9px; border:1px solid rgba(31,39,47,.11); border-radius:9px; color:#4d555c; background:rgba(255,255,255,.64); font:inherit; font-size:.58rem; font-weight:800; cursor:pointer; }.live-refresh:hover { background:#fff; }.live-card-message { margin:0; padding:0 19px 15px; color:#785e5d; font-size:.62rem; line-height:1.45; }.energy-live-card.has-error .energy-flow,.energy-live-card.has-error>footer { opacity:.38; }
.weather-symbol { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(31,39,47,.10); border-radius:13px; color:#3e4850; background:rgba(255,255,255,.72); font-size:1.25rem; box-shadow:0 6px 16px rgba(28,33,38,.06); }
.weather-current { display:flex; align-items:center; gap:15px; padding:13px 19px 10px; }.weather-current>strong { color:#20252a; font-size:1.7rem; letter-spacing:-.045em; font-variant-numeric:tabular-nums; }.weather-current span { display:grid; gap:3px; }.weather-current b { color:#3a4046; font-size:.7rem; }.weather-current small { color:#7a8188; font-size:.57rem; }
.weather-days { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:4px 19px 11px; }.weather-days>span { display:grid; justify-items:center; gap:2px; min-width:0; padding:7px 4px; border:1px solid rgba(31,39,47,.075); border-radius:11px; background:rgba(255,255,255,.42); }.weather-days small { color:#727a81; font-size:.53rem; font-weight:750; }.weather-days b { color:#444c53; font-size:.83rem; }.weather-days strong { color:#30363b; font-size:.62rem; }.weather-days strong em { color:#8a9096; font-style:normal; font-weight:650; }.weather-days i { color:#858c92; font-size:.47rem; font-style:normal; white-space:nowrap; }
.weather-live-card>footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 19px 13px; }.weather-live-card footer>small { color:#858b91; font-size:.53rem; }
.shelly-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.shelly-integration-card .settings-help { margin:0; color:#727a82; font-size:.62rem; line-height:1.5; }
@media(max-width:1100px){.dashboard-live-grid { grid-template-columns:1fr; }.weather-live-card { display:grid; grid-template-columns:minmax(240px,.7fr) minmax(300px,1.3fr); }.weather-live-card>header { grid-row:1/3; border-right:1px solid rgba(31,39,47,.075); border-bottom:0; }.weather-current { padding-bottom:4px; }.weather-days { padding-top:0; }.weather-live-card>footer { grid-column:2; }}
@media(max-width:680px){.dashboard-live-grid { gap:12px; margin:-8px 0 24px; }.dashboard-live-card { border-radius:18px; }.dashboard-live-card>header { padding:15px 15px 12px; }.energy-flow { grid-template-columns:1fr; gap:9px; padding:13px 15px; }.energy-flow-line { width:2px; height:24px; margin-left:16px; }.energy-flow-line::before { top:-1px; left:50%; transform:translateX(-50%) rotate(-45deg); }.energy-flow-line::after { top:auto; right:auto; bottom:-1px; left:50%; transform:translateX(-50%) rotate(135deg); }.energy-live-card>footer { grid-template-columns:1fr 1fr; gap:11px; padding:11px 15px 14px; }.energy-live-card>footer .live-refresh { grid-column:1/-1; width:100%; }.weather-live-card { display:block; }.weather-live-card>header { border-right:0; border-bottom:1px solid rgba(31,39,47,.075); }.weather-current { padding:13px 15px 9px; }.weather-days { gap:4px; padding:4px 15px 10px; }.weather-live-card>footer { padding-inline:15px; }.shelly-settings-grid { grid-template-columns:1fr; }}

/* Mobile Portal Shell v44 · Logo und Profil bleiben erreichbar, ohne platzraubende Bodenleiste. */
.mobile-app-header { display:none; }
.account-session-note { margin-top:10px!important; padding-top:9px; border-top:1px solid rgba(36,39,44,.09); color:#4f5b64!important; font-size:.64rem!important; }

@media (max-width:1024px) {
  .mobile-app-header {
    position:fixed;
    z-index:60;
    top:0;
    left:0;
    right:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:calc(64px + env(safe-area-inset-top));
    padding:max(9px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 9px max(14px,env(safe-area-inset-left));
    border-bottom:1px solid rgba(36,39,44,.10);
    background:rgba(245,247,249,.86);
    box-shadow:0 12px 34px rgba(20,24,28,.08),inset 0 1px 0 rgba(255,255,255,.88);
    -webkit-backdrop-filter:blur(26px) saturate(115%);
    backdrop-filter:blur(26px) saturate(115%);
  }
  .mobile-brand { display:flex; align-items:center; min-width:0; color:inherit; text-decoration:none; }
  .mobile-brand .brand-mark { width:46px; height:40px; border-radius:12px; font-size:.68rem; }
  .mobile-brand .brand-mark.custom-logo { width:min(142px,42vw); height:42px; background-position:left center; }
  .mobile-header-actions { display:flex; align-items:center; gap:8px; }
  .mobile-account-link { display:flex; align-items:center; gap:8px; min-width:0; padding:4px 7px 4px 4px; border:1px solid rgba(36,39,44,.09); border-radius:13px; color:#30353a; background:rgba(255,255,255,.56); text-decoration:none; }
  .mobile-account-link .user-avatar { width:32px; height:32px; color:#fff; background:linear-gradient(145deg,#4c5157,#24282c); box-shadow:inset 0 1px 0 rgba(255,255,255,.18); font-size:.62rem; }
  .mobile-account-link strong,.mobile-account-link small { display:block; max-width:76px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-account-link strong { font-size:.67rem; }.mobile-account-link small { margin-top:1px; color:#7b8187; font-size:.56rem; }
  .mobile-menu-toggle { display:grid; width:42px; height:42px; place-content:center; gap:6px; border:1px solid rgba(36,39,44,.11); border-radius:13px; background:rgba(255,255,255,.68); box-shadow:inset 0 1px 0 rgba(255,255,255,.9); cursor:pointer; }
  .mobile-menu-toggle i { display:block; width:18px; height:2px; border-radius:2px; background:#30353a; transition:transform .18s ease; }
  .mobile-menu-toggle[aria-expanded="true"] i:first-child { transform:translateY(4px) rotate(45deg); }.mobile-menu-toggle[aria-expanded="true"] i:last-child { transform:translateY(-4px) rotate(-45deg); }
  .workspace { padding-top:calc(82px + env(safe-area-inset-top)); padding-bottom:var(--phi-5); }
  .mobile-nav {
    position:fixed;
    z-index:59;
    top:calc(64px + env(safe-area-inset-top));
    right:max(12px,env(safe-area-inset-right));
    bottom:auto;
    left:auto;
    display:block;
    width:min(420px,calc(100vw - 24px));
    max-height:calc(100dvh - 78px - env(safe-area-inset-top));
    padding:15px;
    overflow:auto;
    border:1px solid rgba(36,39,44,.12);
    border-radius:20px;
    color:#282d32;
    background:rgba(241,243,245,.96);
    box-shadow:0 28px 78px rgba(15,18,21,.24),inset 0 1px 0 #fff;
    -webkit-backdrop-filter:blur(30px) saturate(112%);
    backdrop-filter:blur(30px) saturate(112%);
  }
  .mobile-nav[hidden] { display:none!important; }
  .mobile-nav-title { display:block; padding:2px 3px 10px; color:#747a80; font-size:.61rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
  .mobile-nav-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
  .mobile-nav a { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; justify-items:stretch; gap:9px; min-height:52px; padding:8px 10px; border:1px solid rgba(36,39,44,.08); border-radius:13px; color:#34393f; background:rgba(255,255,255,.56); text-decoration:none; }
  .mobile-nav a>span { display:grid; width:34px; height:34px; place-items:center; border-radius:10px; color:#f5f6f7; background:linear-gradient(145deg,#555a60,#292d31); font-size:.61rem; font-weight:900; }
  .mobile-nav a strong { overflow:hidden; font-size:.69rem; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-nav a.active { color:#202429; border-color:rgba(36,39,44,.17); background:#fff; box-shadow:0 7px 18px rgba(22,25,29,.08); }
  .mobile-nav .mobile-nav-profile { grid-column:1/-1; grid-template-columns:34px minmax(0,1fr); }
  .mobile-nav-profile small { grid-column:2; margin-top:-8px; color:#777d83; font-size:.57rem; }
  .mobile-nav-footer { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:10px; padding-top:10px; border-top:1px solid rgba(36,39,44,.09); }
  .mobile-nav-footer button { min-height:40px; padding:8px 10px; border:1px solid rgba(36,39,44,.12); border-radius:11px; color:#3b4046; background:rgba(255,255,255,.66); font:inherit; font-size:.65rem; font-weight:800; cursor:pointer; }
  .mobile-nav-footer .mobile-nav-logout { color:#775654; }
  .mobile-menu-open::after { position:fixed; z-index:58; inset:0; background:rgba(18,21,24,.26); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); content:""; }
  .dashboard-live-grid { margin:0 0 26px; }
  .dashboard-live-grid:not([hidden]) { display:grid; }
  .profile-view { max-width:none; }
  .account-layout { grid-template-columns:1fr; }
  .account-card { grid-row:auto; }
}

@media (max-width:600px) {
  .workspace { padding:calc(78px + env(safe-area-inset-top)) 12px 26px; }
  .topbar { gap:10px; }.topbar-actions { gap:7px; }.topbar .icon-button { width:38px; height:38px; }
  .mobile-account-link span:last-child { display:none; }
  .dashboard-live-grid { gap:11px; margin:0 0 22px; }
  .dashboard-live-card { border-radius:18px; }
  .dashboard-live-card>header { padding:14px 14px 11px; }
  .dashboard-live-card h2 { font-size:.92rem; }
  .energy-flow { grid-template-columns:minmax(78px,1fr) minmax(34px,.55fr) minmax(78px,1fr); gap:7px; padding:13px 14px; }
  .energy-node { grid-template-columns:30px minmax(0,1fr); gap:1px 7px; }.energy-node-icon { width:30px; height:30px; border-radius:10px; font-size:.88rem; }.energy-node strong { font-size:.72rem; }
  .energy-flow-line { width:auto; height:2px; margin:0; }
  .energy-flow-line::before { top:50%; left:-1px; transform:translateY(-50%) rotate(-135deg); }.energy-flow-line::after { top:50%; right:-1px; bottom:auto; left:auto; transform:translateY(-50%) rotate(45deg); }
  .energy-live-card>footer { grid-template-columns:1fr 1fr auto; gap:8px; padding:10px 14px 13px; }.energy-live-card>footer .live-refresh { grid-column:auto; width:auto; }
  .weather-current { padding:12px 14px 8px; }.weather-current>strong { font-size:1.45rem; }
  .weather-days { grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; padding:4px 10px 10px; }.weather-day { padding:7px 2px; }.weather-day strong { font-size:.58rem; }.weather-day span { font-size:.56rem; }
  .weather-live-card>footer { padding-inline:14px; }
  .account-card,.account-preference-card,.account-password-card { padding:17px; border-radius:17px; }
  .account-card { align-items:flex-start; }.account-card div { min-width:0; }.account-card div>span { overflow-wrap:anywhere; }
  .login-card .login-remember { display:grid!important; grid-template-columns:22px minmax(0,1fr); visibility:visible; opacity:1; }
  .login-card .login-remember input { display:block!important; }
}

/* Dashboard-Erweiterungen v51: Abholkalender und detaillierte Energieansicht */
.waste-live-card { grid-column:1/-1; }
.waste-live-card>header { align-items:center; }
.waste-alert-state { display:inline-flex; align-items:center; min-height:28px; padding:0 11px; border:1px solid rgba(32,38,44,.09); border-radius:999px; color:#5d656c; background:rgba(255,255,255,.58); font-size:.58rem; font-weight:850; white-space:nowrap; }
.waste-live-card.warning { border-color:rgba(153,89,54,.32); box-shadow:0 18px 46px rgba(91,57,39,.10),inset 0 1px 0 rgba(255,255,255,.95); }
.waste-live-card.warning .waste-alert-state { color:#7d4228; border-color:rgba(153,89,54,.22); background:rgba(205,145,106,.15); }
.waste-events { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:14px 19px; }
.waste-event { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; min-width:0; padding:11px 12px; border:1px solid rgba(31,39,47,.08); border-radius:13px; background:rgba(255,255,255,.5); }
.waste-event .waste-bin { display:block; width:28px; height:31px; border:2px solid #646c73; border-top-width:4px; border-radius:3px 3px 7px 7px; opacity:.78; }
.waste-event small,.waste-event strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.waste-event small { color:#7b8288; font-size:.53rem; }.waste-event strong { margin-top:2px; color:#30363b; font-size:.67rem; }.waste-event>b { color:#7d4228; font-size:.55rem; white-space:nowrap; }
.waste-event.warning { border-color:rgba(153,89,54,.23); background:rgba(246,237,231,.78); }.waste-paper .waste-bin { border-color:#54778a; }.waste-bio .waste-bin { border-color:#687760; }.waste-recycling .waste-bin { border-color:#9a7740; }.waste-residual .waste-bin { border-color:#5a5f64; }
.waste-live-card>footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 19px 13px; border-top:1px solid rgba(31,39,47,.07); }.waste-live-card>footer small { color:#7a8187; font-size:.55rem; }
.waste-empty { grid-column:1/-1; margin:0; padding:12px; color:#747c82; text-align:center; font-size:.63rem; }
.waste-upload-form { display:grid; gap:14px; }.waste-upload-field { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.65fr); align-items:center; gap:18px; padding:16px; border:1px solid rgba(31,39,47,.10); border-radius:16px; background:rgba(255,255,255,.55); }.waste-upload-field span { display:grid; gap:4px; }.waste-upload-field small { color:#717981; font-size:.65rem; }.waste-upload-field input { width:100%; }.waste-import-status { padding:13px 15px; border-radius:13px; background:rgba(45,55,62,.045); color:#5f686f; font-size:.68rem; }

.energy-live-card { cursor:pointer; }.energy-live-card button,.energy-live-card a { cursor:pointer; }
.energy-live-card>footer { grid-template-columns:repeat(3,minmax(90px,1fr)) auto auto auto; }
.energy-live-card>footer .live-detail-button { min-height:32px; padding:0 12px; border:1px solid rgba(40,48,55,.13); border-radius:10px; color:#30383f; background:rgba(255,255,255,.65); font:inherit; font-size:.58rem; font-weight:850; }
.energy-hall>div { grid-template-columns:repeat(4,minmax(0,1fr)); }.energy-hall-daily { padding-left:8px; border-left:1px solid rgba(31,39,47,.08); }

.energy-details-dialog { width:min(1120px,calc(100vw - 34px)); max-width:none; max-height:min(860px,calc(100dvh - 34px)); margin:auto; padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:26px; color:#242a2f; background:rgba(241,244,246,.90); box-shadow:0 38px 110px rgba(18,24,30,.28),inset 0 1px 0 rgba(255,255,255,.95); -webkit-backdrop-filter:blur(34px) saturate(118%); backdrop-filter:blur(34px) saturate(118%); }
.energy-details-dialog::backdrop { background:rgba(23,29,34,.46); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); }
.energy-details-shell { max-height:inherit; overflow:auto; }
.energy-details-shell>header { position:sticky; z-index:3; top:0; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 25px 17px; border-bottom:1px solid rgba(31,39,47,.08); background:rgba(246,248,249,.86); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); }.energy-details-shell>header h3 { margin:3px 0; font-size:1.38rem; letter-spacing:-.035em; }.energy-details-shell>header small { color:#778087; }.energy-details-shell>header button { display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(31,39,47,.11); border-radius:50%; color:#2c3338; background:rgba(255,255,255,.65); font-size:1.35rem; }
.energy-details-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; padding:18px 25px 0; }.energy-details-kpis article { display:grid; gap:4px; padding:15px 16px; border:1px solid rgba(31,39,47,.09); border-radius:15px; background:rgba(255,255,255,.52); }.energy-details-kpis small,.energy-details-kpis span { color:#778087; font-size:.58rem; }.energy-details-kpis strong { font-size:1.1rem; font-variant-numeric:tabular-nums; }
.energy-chart-panel { margin:13px 25px; overflow:hidden; border:1px solid rgba(31,39,47,.09); border-radius:17px; background:rgba(255,255,255,.54); }.energy-chart-panel>header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px 10px; }.energy-chart-panel h4 { margin:0 0 3px; font-size:.82rem; }.energy-chart-panel header small { color:#778087; font-size:.57rem; }.energy-chart-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; }.energy-chart-legend span { display:inline-flex; align-items:center; gap:6px; color:#5f686f; font-size:.56rem; }.energy-chart-legend i { width:16px; height:3px; border-radius:999px; background:#486f83; }.energy-chart-legend .hall2 { background:#8b744e; }.energy-chart-legend .total { background:#30383f; }
.energy-chart { min-height:300px; padding:0 10px 5px; }.energy-chart svg { display:block; width:100%; height:auto; max-height:330px; }.energy-chart .grid line { stroke:rgba(48,57,64,.10); stroke-width:1; }.energy-chart .grid text { fill:#7a8288; font-size:10px; }.energy-line { fill:none; stroke:#486f83; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }.energy-line.hall2 { stroke:#8b744e; }.energy-line.total { stroke:#30383f; stroke-width:2.8; }.energy-chart-empty { display:grid; min-height:280px; place-items:center; margin:0; color:#737c83; text-align:center; font-size:.68rem; }
.energy-details-halls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; padding:0 25px 19px; }.energy-details-halls>article { padding:15px 16px; border:1px solid rgba(31,39,47,.09); border-radius:16px; background:rgba(255,255,255,.5); }.energy-details-halls header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }.energy-details-halls h4 { margin:3px 0 0; font-size:.9rem; }.energy-details-halls header small { color:#6c777d; font-size:.55rem; }.energy-details-halls header>strong { display:grid; gap:2px; text-align:right; font-size:.9rem; font-variant-numeric:tabular-nums; }.energy-details-halls dl { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:13px 0 0; padding-top:12px; border-top:1px solid rgba(31,39,47,.07); }.energy-details-halls dl div { display:grid; gap:2px; }.energy-details-halls dt { color:#7a8288; font-size:.54rem; }.energy-details-halls dd { margin:0; font-size:.66rem; font-weight:800; font-variant-numeric:tabular-nums; }
.energy-details-shell>footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 25px 18px; border-top:1px solid rgba(31,39,47,.08); }.energy-details-shell>footer small { color:#747d84; font-size:.58rem; }

@media (max-width:820px) {
  .waste-events { grid-template-columns:1fr; padding-inline:15px; }.waste-upload-field { grid-template-columns:1fr; }
  .energy-live-card>footer { grid-template-columns:repeat(2,minmax(0,1fr)); }.energy-live-card>footer .live-detail-button,.energy-live-card>footer .live-direct-button,.energy-live-card>footer .live-refresh { width:100%; }
  .energy-details-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.energy-details-halls { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .energy-hall>div { grid-template-columns:repeat(2,minmax(0,1fr)); }.energy-hall-daily { padding-left:0; border-left:0; }
  .energy-details-dialog { width:100vw; height:100dvh; max-height:none; border:0; border-radius:0; }.energy-details-shell>header { padding:17px 16px 13px; }.energy-details-kpis { gap:8px; padding:13px 13px 0; }.energy-details-kpis article { padding:12px; }.energy-chart-panel { margin:10px 13px; }.energy-chart-panel>header { display:grid; }.energy-chart-legend { justify-content:flex-start; }.energy-chart { min-height:240px; overflow-x:auto; }.energy-chart svg { width:760px; max-width:none; }.energy-details-halls { padding:0 13px 13px; }.energy-details-shell>footer { padding:12px 14px 17px; }
}

/* Live-Daten v54: Shelly-Tageshistorie, Wetterhinweise und PV-Ladefenster */
.weather-advice,.weather-charge-recommendation {
  margin:0 19px 9px;
  padding:11px 12px;
  border:1px solid rgba(31,39,47,.08);
  border-radius:13px;
  background:rgba(255,255,255,.48);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82);
}
.weather-advice div,.weather-charge-recommendation { display:grid; gap:3px; }
.weather-advice small,.weather-charge-recommendation small { color:#727a81; font-size:.53rem; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.weather-advice strong,.weather-charge-recommendation strong { color:#30363b; font-size:.66rem; line-height:1.35; }
.weather-advice span,.weather-charge-recommendation span { color:#737b82; font-size:.55rem; line-height:1.45; }
.weather-charge-recommendation { border-color:rgba(69,99,86,.14); background:linear-gradient(145deg,rgba(239,246,242,.78),rgba(255,255,255,.46)); }
.weather-charge-recommendation strong { color:#354f45; }
.energy-charging-advice {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px 18px;
  margin:13px 25px 0;
  padding:15px 16px;
  border:1px solid rgba(67,92,82,.14);
  border-radius:17px;
  background:linear-gradient(145deg,rgba(237,244,240,.82),rgba(255,255,255,.52));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.energy-charging-advice>div { display:grid; gap:3px; }
.energy-charging-advice small { color:#69766f; font-size:.56rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.energy-charging-advice strong { color:#2f443b; font-size:.79rem; }
.energy-charging-advice span { color:#6f7974; font-size:.58rem; line-height:1.45; }
.energy-charging-advice>b { display:grid; min-width:58px; min-height:58px; place-content:center; border:1px solid rgba(67,92,82,.15); border-radius:50%; color:#334b41; background:rgba(255,255,255,.62); text-align:center; font-size:1rem; }
.energy-charging-advice>b small { display:block; margin-top:-2px; font-size:.45rem; }
.energy-charging-advice>footer { grid-column:1/-1; padding-top:8px; border-top:1px solid rgba(67,92,82,.09); color:#717b76; font-size:.55rem; }
.energy-charging-advice>footer strong { font-size:inherit; }
.energy-details-kpis article:first-child strong { overflow-wrap:anywhere; }

@media(max-width:1100px) {
  .weather-live-card .weather-advice,.weather-live-card .weather-charge-recommendation { grid-column:1/-1; }
  .weather-live-card>footer { grid-column:1/-1; }
}
@media(max-width:680px) {
  .weather-advice,.weather-charge-recommendation { margin-inline:14px; }
  .weather-days i { white-space:normal; text-align:center; line-height:1.25; }
}
@media(max-width:560px) {
  .energy-charging-advice { grid-template-columns:1fr auto; margin:10px 13px 0; padding:13px; }
  .energy-charging-advice>b { min-width:50px; min-height:50px; }
}

/* Shelly Smart Control Direktansicht v45 */
.energy-live-card>footer { grid-template-columns:1fr 1fr auto auto; }
.live-direct-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:31px; padding:6px 10px; border:1px solid rgba(31,39,47,.13); border-radius:9px; color:#32383d; background:rgba(255,255,255,.76); font-size:.59rem; font-weight:850; text-decoration:none; white-space:nowrap; }
.live-direct-button:hover { border-color:rgba(31,39,47,.24); background:#fff; }.live-direct-button b { font-size:.72rem; }
.shelly-direct-panel { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:13px 0; padding:14px; border:1px solid rgba(36,39,44,.10); border-radius:15px; background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(235,238,240,.68)); box-shadow:inset 0 1px 0 rgba(255,255,255,.92); }
.shelly-direct-panel strong,.shelly-direct-panel small { display:block; }.shelly-direct-panel strong { font-size:.75rem; }.shelly-direct-panel small { margin-top:4px; color:#71777d; font-size:.63rem; line-height:1.45; }
.shelly-direct-panel a { flex:0 0 auto; min-height:38px; padding:9px 12px; border:1px solid rgba(36,39,44,.14); border-radius:10px; color:#fff; background:linear-gradient(145deg,#454a50,#24282d); font-size:.66rem; font-weight:850; text-decoration:none; }
.shelly-edge-panel { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:13px 0; padding:14px; border:1px dashed rgba(36,39,44,.18); border-radius:15px; background:rgba(243,246,247,.72); }.shelly-edge-panel strong,.shelly-edge-panel small{display:block}.shelly-edge-panel strong{font-size:.75rem}.shelly-edge-panel small{margin-top:4px;color:#71777d;font-size:.63rem;line-height:1.45}.shelly-edge-panel span{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#e7eaec;color:#687078;font-size:.61rem;font-weight:850}
.shelly-edge-console{display:grid;gap:14px;margin:14px 0;padding:17px;border:1px solid rgba(36,39,44,.12);border-radius:18px;background:linear-gradient(145deg,rgba(249,250,251,.94),rgba(232,236,239,.78));box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 12px 28px rgba(27,31,35,.055)}
.shelly-edge-console>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid rgba(36,39,44,.09)}.shelly-edge-console>header strong,.shelly-edge-console>header small{display:block}.shelly-edge-console>header strong{font-size:.8rem}.shelly-edge-console>header small{margin-top:4px;color:#707880;font-size:.61rem;line-height:1.45}.shelly-edge-console>header>span{flex:0 0 auto;padding:7px 10px;border-radius:999px;color:#646d74;background:#e4e8ea;font-size:.56rem;font-weight:850}.shelly-edge-console>header>span.is-live{color:#315e50;background:#deebe5}.shelly-edge-console>header>span.is-waiting{color:#825b33;background:#f1e8dd}
.shelly-edge-switch{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:11px}.shelly-edge-switch>label{display:flex!important;align-items:center;gap:9px;min-height:48px;padding:10px 12px;border:1px solid rgba(36,39,44,.10);border-radius:12px;background:rgba(255,255,255,.76);color:#465159;font-size:.62rem;font-weight:800}.shelly-edge-switch input{width:19px;height:19px;min-height:19px;accent-color:#36444d}.shelly-edge-switch select{width:auto;min-width:115px;min-height:34px;margin-left:auto;padding:4px 8px;border:1px solid rgba(36,39,44,.12);border-radius:8px;background:#fff;font:inherit}
.shelly-edge-credentials{display:grid;grid-template-columns:1fr 1fr;gap:11px}.shelly-edge-credentials>label{display:grid;gap:6px;color:#4c6071;font-size:.59rem;font-weight:850}.shelly-edge-credentials>label>div{display:grid;grid-template-columns:minmax(0,1fr) auto}.shelly-edge-credentials input{min-width:0;min-height:44px;padding:9px 11px;border:1px solid rgba(36,39,44,.13);border-right:0;border-radius:11px 0 0 11px;background:#fff;font:inherit;font-size:.61rem}.shelly-edge-credentials button{min-height:44px;padding:0 11px;border:1px solid rgba(36,39,44,.13);border-radius:0 11px 11px 0;color:#424b52;background:#edf0f2;font:inherit;font-size:.55rem;font-weight:850}.shelly-edge-console .integration-actions{display:flex;flex-wrap:wrap;gap:8px}.shelly-edge-console .integration-actions button{margin:0}
@media(max-width:860px){.shelly-edge-switch,.shelly-edge-credentials{grid-template-columns:1fr}.shelly-edge-console>header{align-items:flex-start;flex-direction:column}.shelly-edge-console .integration-actions button{width:100%}}

/* V116 · 21Dynamics-Assistent aus dem ESP32-Broadcast */
.energy-assistant-panel{display:grid;gap:12px;margin:13px 25px;padding:15px;overflow:hidden;border:1px solid #253443;border-radius:18px;color:#f3f7fb;background:linear-gradient(145deg,#101923,#07121b 72%);box-shadow:0 18px 42px rgba(7,18,27,.22),inset 0 1px 0 rgba(255,255,255,.035)}
.energy-assistant-panel[hidden]{display:none}.energy-assistant-panel *{box-sizing:border-box}.energy-assistant-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.energy-assistant-header h4{margin:0;font-size:.96rem;letter-spacing:-.02em}.energy-assistant-header span{padding:6px 9px;border-radius:999px;color:#e9ff5f;background:#17623b;font-size:.54rem;font-weight:900;letter-spacing:.04em}.energy-assistant-meta{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.energy-assistant-meta article,.energy-assistant-kpis article{display:grid;align-content:center;gap:2px;min-width:0;min-height:56px;padding:10px 11px;border:1px solid #1b2834;border-radius:10px;background:#0c141d}.energy-assistant-meta strong,.energy-assistant-kpis strong{overflow:hidden;color:#edf3f8;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.energy-assistant-meta small,.energy-assistant-kpis small{overflow:hidden;color:#71859a;font-size:.49rem;text-overflow:ellipsis;white-space:nowrap}.energy-assistant-analysis{display:grid;gap:11px;padding:12px;border:1px solid #22313f;border-radius:14px;background:#101a24}.energy-assistant-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.energy-assistant-title h5{margin:0 0 3px;font-size:.88rem}.energy-assistant-title p{margin:0;color:#71869b;font-size:.52rem}.energy-assistant-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.energy-assistant-kpis article{min-height:52px}.energy-assistant-kpis strong{font-size:.71rem}.energy-assistant-recommendation{display:grid;gap:4px;padding:12px 13px;border:1px solid #1c5b4b;border-radius:10px;background:linear-gradient(100deg,rgba(10,56,41,.82),rgba(12,43,67,.88))}.energy-assistant-recommendation small{color:#58df86;font-size:.5rem;font-weight:900;text-transform:uppercase}.energy-assistant-recommendation strong{font-size:.82rem}.energy-assistant-recommendation span{color:#b5c7d5;font-size:.52rem}.energy-assistant-forecast{padding:11px;border:1px solid #172734;border-radius:12px;background:#07121b}.energy-assistant-forecast>header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px}.energy-assistant-forecast h6{margin:0 0 2px;font-size:.67rem}.energy-assistant-forecast header small{color:#6d8296;font-size:.48rem}.energy-assistant-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.energy-assistant-day{display:grid;gap:3px;min-width:0;min-height:70px;padding:8px;border:1px solid #1b2a37;border-radius:8px;background:#0d1822}.energy-assistant-day.is-selected{border-color:#2389a4;background:linear-gradient(145deg,#123e4b,#102534)}.energy-assistant-day small{overflow:hidden;color:#dce7ee;font-size:.48rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.energy-assistant-day strong{color:#43ed73;font-size:.68rem}.energy-assistant-day span{color:#7790a4;font-size:.45rem;line-height:1.35}.energy-assistant-day b{color:#f2d72f;font-size:.44rem;font-weight:750}.energy-assistant-chart-wrap{display:grid;gap:7px}.energy-assistant-chart-head,.energy-assistant-chart-legend{display:flex;align-items:center;justify-content:space-between;gap:10px}.energy-assistant-chart-head small{color:#7690a3;font-size:.46rem}.energy-assistant-chart-legend{justify-content:flex-start;flex-wrap:wrap}.energy-assistant-chart-legend span{display:inline-flex;align-items:center;gap:5px;color:#9eb0be;font-size:.45rem}.energy-assistant-chart-legend i{display:block;width:10px;height:3px;border-radius:999px;background:#f4d700}.energy-assistant-chart-legend i.pv{background:#29cf42}.energy-assistant-chart-legend i.clouds{background:#5aaef2}.energy-assistant-chart{min-height:170px;overflow-x:auto;border:1px solid #17232e;border-radius:10px;background:#090f15}.energy-assistant-chart svg{display:block;width:100%;min-width:760px;height:auto}.energy-assistant-chart .grid line{stroke:#34414d;stroke-width:1;opacity:.55}.energy-assistant-chart .grid text{fill:#738899;font-size:9px}.energy-assistant-chart .price-line{fill:none;stroke:#f1d400;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.energy-assistant-chart .price-point{fill:#f1d400}.energy-assistant-chart .pv-area{fill:url(#assistantPvGradient)}.energy-assistant-chart .cloud-bar{fill:#57aef1}.energy-assistant-chart .charge-window{fill:#17782f;opacity:.22}.energy-assistant-chart .charge-label{fill:#3de267;font-size:9px}.energy-assistant-chart .axis-label{fill:#8495a2;font-size:8px}
.energy-statistics-assistant{margin:0;width:100%;max-width:100%}
.energy-assistant-days{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.energy-assistant-day em{display:block;margin-top:3px;color:#64d9ef;font-size:.45rem;font-style:normal;font-weight:800}.energy-assistant-day:has(em){min-height:102px}
.energy-assistant-day{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;appearance:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.energy-assistant-day:hover{border-color:#356279;background:#102330;transform:translateY(-1px)}
.energy-assistant-day:focus-visible{outline:2px solid #58d8f4;outline-offset:2px}
.energy-assistant-day.is-selected{border-color:#35b5d3;box-shadow:inset 0 0 0 1px rgba(88,216,244,.18)}
.energy-assistant-waiting{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr);align-items:center;gap:16px;min-height:190px;padding:18px;border:1px solid #22313f;border-radius:14px;background:#101a24}.energy-assistant-waiting strong{font-size:.9rem}.energy-assistant-waiting p{max-width:560px;margin:8px 0 0;color:#8297aa;font-size:.58rem;line-height:1.55}.energy-assistant-waiting-chart{position:relative;display:flex;align-items:flex-end;gap:5px;height:130px;padding:15px 12px;border:1px solid #17232e;border-radius:10px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#263644 32px),#090f15}.energy-assistant-waiting-chart:after{position:absolute;right:10px;bottom:14px;left:10px;height:2px;border-radius:99px;background:linear-gradient(90deg,#f1d400,#27c440 58%,#5aaef2);content:"";animation:assistantWaiting 1.7s ease-in-out infinite}.energy-assistant-waiting-chart i{flex:1;min-width:5px;border-radius:3px 3px 0 0;background:linear-gradient(#22b942,#123e1c);opacity:.32}.energy-assistant-waiting-chart i:nth-child(1),.energy-assistant-waiting-chart i:nth-child(8){height:12%}.energy-assistant-waiting-chart i:nth-child(2),.energy-assistant-waiting-chart i:nth-child(7){height:25%}.energy-assistant-waiting-chart i:nth-child(3),.energy-assistant-waiting-chart i:nth-child(6){height:48%}.energy-assistant-waiting-chart i:nth-child(4),.energy-assistant-waiting-chart i:nth-child(5){height:78%}@keyframes assistantWaiting{0%,100%{opacity:.28;transform:scaleX(.25);transform-origin:left}50%{opacity:1;transform:scaleX(1)}}
@media(max-width:980px){.energy-assistant-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.energy-assistant-days{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.energy-assistant-panel{margin:10px 13px;padding:11px;border-radius:14px}.energy-assistant-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-assistant-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-assistant-days{display:grid;grid-template-columns:1fr;overflow:visible;scroll-snap-type:none}.energy-assistant-day{width:100%;min-height:96px}.energy-assistant-title{display:grid}.energy-assistant-header{align-items:flex-start;flex-direction:column}.energy-assistant-waiting{grid-template-columns:1fr;padding:13px}.energy-assistant-waiting-chart{min-width:0;height:115px}}

/* V118 · vollständige 21Dynamics-Darstellung auf iPhone-Breite */
.energy-charging-advice[hidden]{display:none!important}
@media(max-width:620px){
  .energy-assistant-panel{width:calc(100% - 26px);max-width:calc(100% - 26px);min-width:0;overflow:hidden}
  .energy-assistant-analysis,.energy-assistant-forecast,.energy-assistant-chart-wrap,.energy-assistant-chart{width:100%;min-width:0;max-width:100%}
  .energy-assistant-meta,.energy-assistant-kpis{grid-template-columns:1fr 1fr}
  .energy-assistant-meta strong,.energy-assistant-meta small,.energy-assistant-kpis strong,.energy-assistant-kpis small{white-space:normal;overflow-wrap:anywhere}
  .energy-assistant-forecast>header,.energy-assistant-chart-head{display:grid;justify-content:start}
  .energy-assistant-days{display:grid;grid-template-columns:1fr;overflow:visible;scroll-snap-type:none}
  .energy-assistant-day{min-width:0;min-height:92px}
  .energy-assistant-chart{min-height:200px;overflow:hidden;touch-action:pan-y pinch-zoom}
  .energy-assistant-chart svg{width:100%;min-width:0;height:auto}
}
@media(max-width:380px){
  .energy-assistant-meta,.energy-assistant-kpis,.energy-assistant-days{grid-template-columns:1fr}
}
.shelly-api-details { margin-top:10px; padding-top:10px; border-top:1px solid rgba(36,39,44,.09); }.shelly-api-details summary { color:#5f666d; font-size:.66rem; font-weight:800; cursor:pointer; }.shelly-api-details[open] summary { margin-bottom:13px; }.shelly-api-details .integration-actions { margin-top:10px; }
@media(max-width:760px){.shelly-direct-panel{align-items:stretch;flex-direction:column}.shelly-direct-panel a{text-align:center}.energy-live-card>footer{grid-template-columns:1fr 1fr}.live-direct-button{grid-column:1/-1}.energy-live-card>footer .live-refresh{grid-column:1/-1;width:100%}}

@media (max-width:390px) {
  .mobile-nav-grid { grid-template-columns:1fr; }
  .mobile-nav .mobile-nav-profile { grid-column:auto; }
  .mobile-nav-footer { grid-template-columns:1fr; }
  .live-state { padding-inline:7px; }.dashboard-live-card>header { gap:9px; }
  .energy-live-card>footer { grid-template-columns:1fr 1fr; }.energy-live-card>footer .live-refresh { grid-column:1/-1; width:100%; }
}

/* Liquid-Glass Bereichsumschalter v45 */
.main-nav.liquid-nav-slider {
  position:relative;
  display:grid;
  gap:6px;
  margin-top:42px;
  padding:6px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 38px rgba(4,14,22,.13);
  -webkit-backdrop-filter:blur(24px) saturate(125%);
  backdrop-filter:blur(24px) saturate(125%);
}
.main-nav.liquid-nav-slider::before {
  position:absolute;
  z-index:0;
  top:6px;
  right:6px;
  left:6px;
  height:50px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:13px;
  background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.09));
  box-shadow:0 9px 24px rgba(4,14,22,.18),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .34s cubic-bezier(.22,.75,.2,1);
  content:"";
}
.main-nav.liquid-nav-slider[data-active-section="tools"]::before { transform:translateY(56px); }
.main-nav.liquid-nav-slider[data-active-section="profile"]::before { transform:translateY(112px); }
.main-nav.liquid-nav-slider[data-active-section="help"]::before { transform:translateY(168px); }
.main-nav.liquid-nav-slider a {
  position:relative;
  z-index:1;
  min-height:50px;
  padding:10px 11px;
  border:0;
  border-radius:13px;
  color:rgba(240,243,245,.65);
  background:transparent;
  box-shadow:none;
  font-size:.78rem;
  font-weight:750;
}
.main-nav.liquid-nav-slider a span { width:27px; height:27px; border-color:rgba(255,255,255,.11); border-radius:9px; color:rgba(246,247,248,.74); background:rgba(255,255,255,.045); }
.main-nav.liquid-nav-slider a:hover,.main-nav.liquid-nav-slider a.active { color:#fff; border-color:transparent; background:transparent; box-shadow:none; }
.main-nav.liquid-nav-slider a.active span { color:#22272c; border-color:rgba(255,255,255,.38); background:rgba(255,255,255,.82); box-shadow:0 5px 14px rgba(3,12,19,.13); }
.account-logout-button { align-self:flex-start; min-height:36px; padding:7px 11px; border:1px solid rgba(36,39,44,.12); border-radius:10px; color:#745653; background:rgba(255,255,255,.68); font:inherit; font-size:.65rem; font-weight:800; cursor:pointer; }

@media (max-width:1024px) {
  .mobile-menu-toggle { display:none; }
  .workspace { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
  .mobile-nav.liquid-nav-slider {
    position:fixed;
    z-index:65;
    top:auto;
    right:auto;
    bottom:max(8px,env(safe-area-inset-bottom));
    left:50%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    width:min(500px,calc(100vw - 20px));
    height:auto;
    max-height:none;
    padding:5px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.68);
    border-radius:21px;
    color:#33383d;
    background:linear-gradient(145deg,rgba(246,248,249,.82),rgba(224,228,231,.72));
    box-shadow:0 18px 48px rgba(17,20,23,.20),inset 0 1px 0 rgba(255,255,255,.95);
    transform:translateX(-50%);
    -webkit-backdrop-filter:blur(30px) saturate(130%);
    backdrop-filter:blur(30px) saturate(130%);
  }
  .mobile-nav.liquid-nav-slider[hidden] { display:none!important; }
  .mobile-nav.liquid-nav-slider::before {
    position:absolute;
    z-index:0;
    top:5px;
    bottom:5px;
    left:5px;
    width:calc((100% - 10px) / 4);
    border:1px solid rgba(255,255,255,.78);
    border-radius:16px;
    background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(245,246,247,.68));
    box-shadow:0 8px 20px rgba(19,23,27,.13),inset 0 1px 0 #fff;
    transition:transform .34s cubic-bezier(.22,.75,.2,1);
    content:"";
  }
  .mobile-nav.liquid-nav-slider[data-active-section="tools"]::before { transform:translateX(100%); }
  .mobile-nav.liquid-nav-slider[data-active-section="profile"]::before { transform:translateX(200%); }
  .mobile-nav.liquid-nav-slider[data-active-section="help"]::before { transform:translateX(300%); }
  .mobile-nav.liquid-nav-slider a {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:22px auto;
    justify-items:center;
    gap:1px;
    min-height:52px;
    padding:5px 3px;
    border:0;
    border-radius:16px;
    color:#737980;
    background:transparent;
    box-shadow:none;
  }
  .mobile-nav.liquid-nav-slider a>span { display:grid; width:22px; height:22px; place-items:center; border:0; border-radius:7px; color:inherit; background:transparent; font-size:.76rem; font-weight:900; }
  .mobile-nav.liquid-nav-slider a small { max-width:100%; overflow:hidden; color:inherit; font-size:.56rem; font-weight:780; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-nav.liquid-nav-slider a.active { color:#22272c; border:0; background:transparent; box-shadow:none; }
  .mobile-menu-open::after { display:none; }
}

@media (max-width:600px) {
  .workspace { padding-bottom:calc(84px + env(safe-area-inset-bottom)); }
  .account-card { display:grid; grid-template-columns:auto minmax(0,1fr); }
  .account-logout-button { grid-column:1/-1; width:100%; }
}

/* Getrennte Portalbereiche und proportionales Mobilraster v46 */
.topbar[hidden] { display:none!important; }
.tools-view .section-heading { margin-block:var(--phi-4); }
.tools-view .module-card { aspect-ratio:1.618 / 1; min-height:0; }

@media (max-width:1024px) {
  .workspace { padding-inline:clamp(13px,3.4vw,34px); }
  .tools-view .section-heading { margin-block:var(--phi-4); }
  .tools-view .module-grid { gap:var(--phi-3); }
  .dashboard-roe-progress,.dashboard-live-card { border-radius:21px; }
}

@media (max-width:600px) {
  .workspace { padding-top:calc(76px + env(safe-area-inset-top)); padding-inline:13px; }
  .topbar { min-height:55px; margin-bottom:21px; }
  .topbar h1 { max-width:none; font-size:clamp(1.28rem,6vw,1.55rem); line-height:1.13; }
  .topbar .eyebrow { margin-bottom:5px; }
  .tools-view .section-heading { gap:13px; margin:21px 0; }
  .tools-view .section-heading h2 { font-size:1.22rem; line-height:1.2; }
  .tools-view .module-grid { gap:13px; }
  .tools-view .module-card { min-height:calc((100vw - 26px) / 1.618); padding:21px; border-radius:21px; }
  .tools-view .module-symbol { margin-bottom:21px; }
  .dashboard-roe-progress { margin:21px 0; }
  .dashboard-roe-heading { gap:13px; padding:21px 21px 13px; }
  .dashboard-roe-month { gap:13px; padding:13px 21px 21px; }
  .dashboard-roe-total { gap:13px 21px; padding:13px 21px 21px; }
  .dashboard-live-grid { gap:13px; margin:0 0 21px; }
  .dashboard-live-card>header { padding:21px 21px 13px; }
  .energy-flow { padding:13px 21px; }
  .energy-live-card>footer { padding:13px 21px 21px; }
  .weather-current { padding:13px 21px 8px; }
  .weather-days { padding:5px 13px 13px; }
  .weather-live-card>footer { padding:10px 21px 13px; }
}

@media (max-width:360px) {
  .workspace { padding-inline:13px; }
  .dashboard-roe-heading { padding-inline:16px; }
  .dashboard-roe-month { padding-inline:16px; }
  .dashboard-roe-progress-copy strong { display:grid; grid-template-columns:1fr; gap:2px; }
  .dashboard-roe-progress-copy strong small { margin:0; }
  .dashboard-roe-total { padding-inline:16px; }
  .dashboard-live-card>header,.energy-flow,.energy-live-card>footer,.weather-current { padding-inline:16px; }
  .tools-view .module-card { padding:21px; }
}

/* Kumulierte Shelly-Liveanzeige Halle 1 + 2 v46 */
.energy-flow-line i { animation:energyFlowForward 1.8s linear infinite; }
.energy-flow-line i.reverse { animation-name:energyFlowReverse; }
@keyframes energyFlowForward { 0%{left:8%;opacity:.35} 45%{opacity:1} 100%{left:92%;opacity:.35} }
@keyframes energyFlowReverse { 0%{left:92%;opacity:.35} 45%{opacity:1} 100%{left:8%;opacity:.35} }
.live-state i { animation:livePulse 1.55s ease-in-out infinite; }
.live-state.connecting { color:#6f6659; background:rgba(247,242,231,.72); }
.live-state.connecting i { background:#9d8d72; }
@keyframes livePulse { 0%,100%{box-shadow:0 0 0 0 currentColor;opacity:.7} 50%{box-shadow:0 0 0 5px transparent;opacity:1} }
.energy-halls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0 19px 14px; }
.energy-hall { overflow:hidden; border:1px solid rgba(31,39,47,.09); border-radius:13px; background:rgba(255,255,255,.5); box-shadow:inset 0 1px 0 rgba(255,255,255,.88); }
.energy-hall>header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 11px; border-bottom:1px solid rgba(31,39,47,.07); }
.energy-hall>header strong { color:#30353a; font-size:.68rem; }
.energy-hall>header span { display:inline-flex; align-items:center; gap:5px; color:#47716d; font-size:.54rem; font-weight:800; }
.energy-hall>header span i { width:6px; height:6px; border-radius:50%; background:#4f837e; animation:livePulse 1.55s ease-in-out infinite; }
.energy-hall.offline { opacity:.62; }.energy-hall.offline>header span { color:#8a5d58; }.energy-hall.offline>header span i { background:#9b6963; }
.energy-hall>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:10px 11px 11px; }
.energy-hall>div span { display:grid; gap:2px; min-width:0; }.energy-hall small { color:#7b8288; font-size:.52rem; }.energy-hall b { overflow:hidden; color:#343a3f; font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; font-variant-numeric:tabular-nums; }
.shelly-hall-heading { grid-column:1/-1; margin:7px 0 0; padding-top:13px; border-top:1px solid rgba(36,39,44,.09); color:#33393e; font-size:.75rem; }

@media (max-width:600px) {
  .energy-halls { grid-template-columns:1fr; gap:8px; padding:0 21px 13px; }
  .energy-hall>div { gap:5px; }
}

@media (max-width:360px) {
  .energy-halls { padding-inline:16px; }
  .energy-hall>div { grid-template-columns:1fr 1fr; }
  .energy-hall>div span:first-child { grid-column:1/-1; }
}

@media (prefers-reduced-motion:reduce) {
  .energy-flow-line i,.live-state i,.energy-hall>header span i { animation:none; }
}

/* Werkzeugkarten: Goldener Schnitt und vollständig geschützter Innenraum v50 */
.tools-view .module-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tools-view .module-card {
  display:flex;
  flex-direction:column;
  aspect-ratio:1.618 / 1;
  min-height:220px;
  padding:21px;
}
.tools-view .module-symbol { flex:0 0 auto; margin-bottom:8px; }
.tools-view .module-card h3 { flex:0 0 auto; }
.tools-view .module-card p { flex:0 0 auto; min-height:40px; margin-bottom:8px; }
.tools-view .module-meta { flex:0 0 auto; margin:0 0 5px; }
.tools-view .module-card>a { position:relative; z-index:1; display:inline-flex; align-items:center; align-self:flex-start; margin-top:auto; padding-top:4px; line-height:1.25; }
.tools-view .badge { top:21px; right:21px; }

@media (max-width:1180px) {
  .tools-view .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:600px) {
  .tools-view .module-grid { grid-template-columns:1fr; }
  .tools-view .module-card { aspect-ratio:auto; min-height:max(205px,calc((100vw - 26px) / 1.618)); }
}

/* v51 final cascade: the energy footer has six deliberate cells. */
.energy-live-card>footer { grid-template-columns:repeat(3,minmax(88px,1fr)) auto auto auto; }
@media (max-width:900px) {
  .energy-live-card>footer { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .energy-live-card>footer .live-detail-button,.energy-live-card>footer .live-direct-button,.energy-live-card>footer .live-refresh { grid-column:auto; width:100%; }
}
@media (max-width:600px) {
  .energy-live-card>footer { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .energy-live-card>footer>span:nth-child(3) { grid-column:1/-1; }
  .energy-live-card>footer .live-detail-button,.energy-live-card>footer .live-direct-button,.energy-live-card>footer .live-refresh { grid-column:1/-1; }
}

/* v52 mobile viewport: contained content, a disappearing header and stable account cards. */
html,body,.app-shell,.workspace,.portal-view { max-width:100%; }
html,body { width:100%; overflow-x:clip; }
.workspace,.portal-view,.profile-view,.account-layout,.account-card,.account-preference-card,.account-password-card,.roe-view { min-width:0; }
.roe-view { width:100%; overflow-x:hidden; }

/* v104 · sichere RoE-Mandantenauswahl */
.roe-tenant-switcher{display:grid;min-width:240px;gap:4px;margin-left:auto}.roe-tenant-switcher span{color:#60758a;font-size:.58rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.roe-tenant-switcher select{min-height:38px;padding:7px 34px 7px 11px;border:1px solid #d7dee5;border-radius:8px;background:#fff;color:#20262c;font-weight:800}.roe-tenant-notice{display:flex;align-items:center;gap:14px;padding:24px;border:1px solid #d8e0e7;background:#fff}.roe-tenant-notice h3{margin:0 0 5px;font-size:1rem}.roe-tenant-notice p{margin:0;color:#647180;line-height:1.5}.roe-tenant-unavailable .roe-tabs,.roe-tenant-unavailable .roe-tab-panel{display:none!important}.roe-tenant-unavailable .roe-app-actions .roe-manage,.roe-tenant-unavailable #roeOpenSettings{display:none!important}
@media(max-width:900px){.roe-tenant-switcher{width:100%;min-width:0;margin-left:0}.roe-app-header{flex-wrap:wrap}}
.roe-table-wrap { width:100%; max-width:100%; overflow-x:auto; }

@media (max-width:1100px) {
  .profile-view { overflow-x:hidden; }
  .account-layout { grid-template-columns:minmax(0,1fr); width:100%; }
  .account-card {
    grid-row:auto;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    width:100%;
    max-width:100%;
    align-items:start;
  }
  .account-card>div { min-width:0; }
  .account-card>div>span { overflow-wrap:anywhere; }
  .account-logout-button {
    grid-column:1/-1;
    width:100%;
    max-width:100%;
    justify-self:stretch;
    text-align:center;
  }
}

@media (max-width:1024px) {
  .mobile-app-header {
    transition:transform .3s cubic-bezier(.22,.75,.2,1),opacity .2s ease;
    will-change:transform,opacity;
  }
  .mobile-app-header.is-hidden {
    opacity:0;
    pointer-events:none;
    transform:translate3d(0,calc(-100% - env(safe-area-inset-top)),0);
  }
  .workspace { width:100%; }
}

@media (max-width:600px) {
  .content-page-heading,.content-page-heading>div { min-width:0; }
  .roe-shell,.roe-content,.roe-tab-panel,.roe-panel { width:100%; max-width:100%; min-width:0; }
}

@media (prefers-reduced-motion:reduce) {
  .mobile-app-header { transition:none; }
}
/* Einmalige T21-Startsequenz. Das Logo bleibt das zentral gepflegte Portal-Logo. */
.portal-intro {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #202328;
  background:
    radial-gradient(ellipse 58% 46% at 50% 45%, rgba(255,255,255,.98), rgba(241,243,245,.80) 58%, transparent 82%),
    linear-gradient(145deg, #e8ebee, #f7f8f9 48%, #e6e9ec);
  opacity: 1;
  transition: opacity .52s cubic-bezier(.22,.61,.36,1), visibility .52s;
}
.portal-intro[hidden] { display: none; }
.portal-intro-glow {
  position: absolute;
  width: min(72vw, 820px);
  aspect-ratio: 1.618 / 1;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 50%;
  background: rgba(255,255,255,.28);
  box-shadow: 0 46px 120px rgba(28,31,36,.10), inset 0 1px 0 rgba(255,255,255,.92);
  -webkit-backdrop-filter: blur(34px) saturate(112%);
  backdrop-filter: blur(34px) saturate(112%);
  opacity: 0;
  transform: scale(.78);
}
.portal-intro-stage {
  position: relative;
  display: grid;
  justify-items: center;
  width: min(72vw, 430px);
  opacity: 0;
  transform: translateY(12px) scale(.965);
}
.portal-intro-logo {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 112px;
  filter: blur(10px);
}
.portal-intro-logo .brand-mark {
  width: 92px;
  height: 92px;
  border-radius: 24px;
  font-size: 1.38rem;
  box-shadow: 0 28px 58px rgba(20,22,26,.20), inset 0 1px 0 rgba(255,255,255,.34);
}
.portal-intro-logo .brand-mark.custom-logo {
  width: min(78vw, 360px);
  height: 108px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  filter: none;
}
.t21-group-wordmark { display:flex; align-items:flex-end; gap:12px; color:#202328; filter:drop-shadow(0 24px 34px rgba(20,22,26,.16)); }
.t21-group-wordmark b { font-size:clamp(4.2rem,10vw,7.2rem); font-weight:950; font-style:italic; letter-spacing:-.11em; line-height:.78; }
.t21-group-wordmark small { margin-bottom:.18em; font-size:clamp(.72rem,1.7vw,1.05rem); font-weight:900; letter-spacing:.38em; line-height:1; }
.t21-group-loading-logo { display:block; width:min(78vw,390px); max-height:132px; object-fit:contain; filter:drop-shadow(0 24px 34px rgba(20,22,26,.16)); }
.portal-intro-rule {
  width: min(62vw, 270px);
  height: 1px;
  margin-top: 16px;
  overflow: hidden;
  background: rgba(35,38,43,.12);
}
.portal-intro-rule i { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, #33373d 30%, #33373d 70%, transparent); transform: translateX(-110%); }
.portal-intro-stage p { margin: 15px 0 0; color: #565b63; font-size: .67rem; font-weight: 780; letter-spacing: .22em; text-transform: uppercase; opacity: 0; transform: translateY(5px); }
.portal-intro.is-ready .portal-intro-glow { animation: portalIntroGlass 1.55s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-stage { animation: portalIntroStage 1.1s .10s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-logo { animation: portalIntroFocus .95s .12s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-rule i { animation: portalIntroRule .76s .48s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-stage p { animation: portalIntroCaption .62s .68s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-leaving { opacity: 0; visibility: hidden; }
.portal-intro.is-leaving .portal-intro-stage { transform: translateY(-5px) scale(1.015); transition: transform .52s cubic-bezier(.22,.61,.36,1); }
@keyframes portalIntroGlass { 0% { opacity:0; transform:scale(.78) rotate(-2deg); } 55% { opacity:.82; } 100% { opacity:.46; transform:scale(1) rotate(0); } }
@keyframes portalIntroStage { from { opacity:0; transform:translateY(12px) scale(.965); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes portalIntroFocus { from { filter:blur(10px); transform:scale(.92); opacity:.2; } to { filter:blur(0); transform:scale(1); opacity:1; } }
@keyframes portalIntroRule { from { transform:translateX(-110%); } to { transform:translateX(0); } }
@keyframes portalIntroCaption { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media (max-width: 640px) {
  .portal-intro-stage { width:min(82vw,360px); }
  .portal-intro-logo .brand-mark.custom-logo { width:min(78vw,310px); height:92px; }
  .portal-intro-glow { width:92vw; }
  .t21-group-wordmark { gap:9px; }
  .t21-group-loading-logo { width:min(76vw,320px); max-height:104px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-intro { display:none!important; }
}

/* Kompakte Live-Zeile v55: Überblick zuerst, Details erst nach Auswahl. */
.dashboard-live-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:13px; margin:0 0 26px; }
.dashboard-live-card { grid-column:auto; min-height:188px; cursor:pointer; transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.dashboard-live-card:hover,.dashboard-live-card:focus-visible { border-color:rgba(31,39,47,.19); box-shadow:0 22px 54px rgba(24,29,34,.10),inset 0 1px 0 rgba(255,255,255,.98); transform:translateY(-2px); outline:none; }
.dashboard-live-card::after { position:absolute; right:16px; bottom:12px; color:#697078; content:"Details  →"; font-size:.54rem; font-weight:850; letter-spacing:.02em; pointer-events:none; }
.dashboard-live-card>header { padding:15px 16px 11px; }
.dashboard-live-card h2 { font-size:.86rem; }
.waste-live-card { grid-column:auto; }
.waste-events { grid-template-columns:1fr; padding:12px 16px 34px; }
.waste-events>*:not(:first-child),.waste-live-card>footer { display:none; }
.energy-flow { padding:13px 16px 11px; }
.energy-halls { display:none; }
.energy-live-card>footer { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:10px 84px 32px 16px; }
.energy-live-card>footer .live-detail-button,.energy-live-card>footer .live-direct-button,.energy-live-card>footer .live-refresh { display:none!important; }
.energy-month-warning { display:grid; gap:2px; margin:0 16px 10px; padding:9px 11px; border:1px solid rgba(132,68,55,.20); border-radius:11px; color:#743f36; background:rgba(164,91,70,.08); box-shadow:inset 3px 0 0 rgba(132,68,55,.62); }
.energy-month-warning[hidden] { display:none!important; }
.energy-month-warning strong { font-size:.61rem; line-height:1.35; }
.energy-month-warning span { color:#80615b; font-size:.54rem; line-height:1.4; }
.energy-month-warning-details { margin:0 22px 14px; padding:13px 15px; border-radius:14px; }
.energy-month-warning-details strong { font-size:.72rem; }.energy-month-warning-details span { font-size:.61rem; }
.weather-days,.weather-advice,.weather-charge-recommendation,.weather-live-card>footer { display:none; }
.weather-current { padding:16px 16px 8px; }
.weather-risk-compact { display:grid; gap:3px; margin:0 16px 35px; padding:9px 11px; border:1px solid rgba(60,85,74,.13); border-radius:11px; background:rgba(239,246,242,.62); }
.weather-risk-compact small { color:#6e7b75; font-size:.5rem; font-weight:820; letter-spacing:.055em; text-transform:uppercase; }
.weather-risk-compact strong { color:#35483f; font-size:.61rem; line-height:1.35; }
.weather-risk-compact.is-warning { border-color:rgba(153,105,49,.22); background:rgba(186,139,72,.10); }.weather-risk-compact.is-warning strong { color:#76542d; }
.weather-risk-compact.is-danger { border-color:rgba(151,65,55,.25); background:rgba(168,70,60,.10); }.weather-risk-compact.is-danger strong { color:#7c3932; }

.dashboard-info-dialog { width:min(760px,calc(100vw - 24px)); max-height:min(82vh,760px); padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.72); border-radius:24px; color:#25292e; background:linear-gradient(145deg,rgba(250,251,252,.96),rgba(232,236,239,.93)); box-shadow:0 34px 100px rgba(18,22,26,.28),inset 0 1px 0 rgba(255,255,255,.98); -webkit-backdrop-filter:blur(34px) saturate(115%); backdrop-filter:blur(34px) saturate(115%); }
.dashboard-info-dialog::backdrop { background:rgba(25,29,34,.42); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); }
.dashboard-info-shell>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:21px 24px 16px; border-bottom:1px solid rgba(31,39,47,.09); }
.dashboard-info-shell h3 { margin:3px 0 0; font-size:1.18rem; }
.dashboard-info-shell>header button { display:grid; width:36px; height:36px; place-items:center; border:1px solid rgba(31,39,47,.10); border-radius:12px; color:#333940; background:rgba(255,255,255,.68); font:inherit; font-size:1.2rem; cursor:pointer; }
.dashboard-info-body { display:grid; gap:13px; max-height:calc(82vh - 82px); padding:18px 24px 24px; overflow:auto; }
.dashboard-info-weather { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.dashboard-info-weather article { display:grid; justify-items:center; gap:5px; padding:15px 8px; border:1px solid rgba(31,39,47,.09); border-radius:15px; background:rgba(255,255,255,.56); }
.dashboard-info-weather article small,.dashboard-info-body section>small { color:#727980; font-size:.56rem; font-weight:820; letter-spacing:.06em; text-transform:uppercase; }
.dashboard-info-weather article b { font-size:1.12rem; }.dashboard-info-weather article strong { font-size:.73rem; }.dashboard-info-weather article em { color:#858c92; font-style:normal; }.dashboard-info-weather article span { color:#747b82; font-size:.54rem; text-align:center; }
.dashboard-info-body section { padding:16px 17px; border:1px solid rgba(31,39,47,.08); border-radius:15px; background:rgba(255,255,255,.44); }
.dashboard-info-body section h4 { margin:5px 0; font-size:.8rem; }.dashboard-info-body section p,.dashboard-info-note { margin:0; color:#6e767e; font-size:.63rem; line-height:1.5; }
.dashboard-weather-warnings { display:grid; gap:8px; margin-top:10px; }.dashboard-weather-warning { padding:11px 12px; border:1px solid rgba(31,39,47,.09); border-radius:12px; background:rgba(255,255,255,.56); }.dashboard-weather-warning>div { display:grid; gap:3px; }.dashboard-weather-warning small { color:#747c83; font-size:.53rem; font-weight:820; text-transform:uppercase; }.dashboard-weather-warning strong { font-size:.7rem; }.dashboard-weather-warning span,.dashboard-pv-row em { color:#6e767e; font-size:.59rem; font-style:normal; line-height:1.45; }.dashboard-weather-warning.is-warning { border-left:3px solid #a67a42; }.dashboard-weather-warning.is-danger { border-left:3px solid #9c4a41; background:rgba(156,74,65,.06); }
.dashboard-info-waste { display:grid; gap:9px; }.dashboard-info-waste-row { display:flex; align-items:center; gap:12px; padding:13px 14px; border:1px solid rgba(31,39,47,.09); border-radius:14px; background:rgba(255,255,255,.54); }.dashboard-info-waste-row>div { display:grid; gap:2px; }.dashboard-info-waste-row small { color:#777f86; font-size:.57rem; }.dashboard-info-waste-row strong { font-size:.72rem; }.dashboard-info-waste-row>b { margin-left:auto; color:#8b4f35; font-size:.59rem; }
@media (max-width:1024px) { .dashboard-live-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.waste-live-card { grid-column:1/-1; }.weather-live-card { display:block; }.weather-live-card>header { border-right:0; border-bottom:1px solid rgba(31,39,47,.075); } }
@media (max-width:650px) {
  .dashboard-live-grid { grid-template-columns:1fr; gap:11px; }
  .waste-live-card { grid-column:auto; }
  .dashboard-live-card { min-height:174px; border-radius:19px; }
  .dashboard-info-shell>header { padding:18px 18px 14px; }
  .dashboard-info-body { padding:14px 18px 20px; }
  .dashboard-info-weather { grid-template-columns:1fr 1fr; }
  .energy-flow { grid-template-columns:minmax(96px,1fr) minmax(42px,.55fr) minmax(96px,1fr); }
  .energy-flow-line { width:auto; height:2px; margin-left:0; }
  .energy-flow-line::before,.energy-flow-line::after { top:50%; bottom:auto; left:auto; }
  .energy-flow-line::before { left:-1px; transform:translateY(-50%) rotate(-135deg); }
  .energy-flow-line::after { right:-1px; transform:translateY(-50%) rotate(45deg); }
  .energy-live-card>footer { grid-template-columns:repeat(3,minmax(0,1fr)); padding-inline:16px 76px; }
}

/* V57 cascade: diese Regeln müssen nach allen älteren Layoutvarianten stehen. */
.energy-details-dialog[open] { position:fixed; inset:0; overflow:hidden; }
.energy-details-shell { height:min(860px,calc(100dvh - 34px)); max-height:100%; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y pinch-zoom; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
.energy-chart { touch-action:pan-x pinch-zoom; }
.dashboard-info-shell { max-height:min(82dvh,760px); overflow:hidden; }
.dashboard-info-body { overscroll-behavior:contain; touch-action:pan-y pinch-zoom; -webkit-overflow-scrolling:touch; }
.energy-charging-advice { display:block; }

.portal-intro { isolation:isolate; perspective:1200px; background:radial-gradient(circle at 50% 42%,#fff 0,rgba(248,249,250,.97) 25%,rgba(227,231,234,.96) 72%,#dce1e5 100%); }
.portal-intro::before { position:absolute; z-index:-3; inset:-18%; background:radial-gradient(ellipse 38% 31% at 32% 34%,rgba(255,255,255,.98),transparent 72%),radial-gradient(ellipse 34% 28% at 70% 65%,rgba(255,255,255,.74),transparent 76%),linear-gradient(125deg,transparent 32%,rgba(255,255,255,.72) 48%,transparent 64%); filter:blur(16px); content:""; animation:portalLiquidBackdrop 2.4s cubic-bezier(.16,1,.3,1) both; }
.portal-intro::after { position:absolute; z-index:5; top:-40%; left:-35%; width:34%; height:180%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent); filter:blur(24px); opacity:0; transform:rotate(18deg); content:""; pointer-events:none; }
.portal-intro.is-ready::after { animation:portalLiquidBeam 1.25s .48s cubic-bezier(.22,.75,.2,1) both; }
.portal-intro-glow { width:min(82vw,930px); border-radius:44% 56% 61% 39% / 55% 43% 57% 45%; background:linear-gradient(145deg,rgba(255,255,255,.43),rgba(255,255,255,.12)); box-shadow:0 60px 160px rgba(25,31,37,.13),inset 0 1px 0 rgba(255,255,255,.95),inset 24px 16px 50px rgba(255,255,255,.25); filter:drop-shadow(0 24px 46px rgba(31,37,43,.08)); }
.portal-intro-stage { width:min(78vw,520px); }
.portal-intro-lens { position:relative; display:grid; width:min(78vw,470px); min-height:228px; place-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.82); border-radius:48px; background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(238,241,243,.22)); box-shadow:0 34px 90px rgba(25,30,35,.16),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.45); -webkit-backdrop-filter:blur(42px) saturate(138%); backdrop-filter:blur(42px) saturate(138%); transform-style:preserve-3d; }
.portal-intro-refraction { position:absolute; inset:-30%; border-radius:46%; background:conic-gradient(from 110deg,transparent,rgba(255,255,255,.58),transparent 34%,rgba(167,177,185,.16),transparent 62%); filter:blur(20px); opacity:.55; }
.portal-intro-sheen { position:absolute; top:-35%; left:-42%; width:46%; height:175%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent); filter:blur(18px); transform:rotate(18deg); }
.portal-intro-logo { position:relative; z-index:2; width:82%; min-height:130px; filter:none; }
.portal-intro-logo .brand-mark.custom-logo { width:100%; height:132px; mix-blend-mode:multiply; }
.portal-intro-orb { position:absolute; border:1px solid rgba(255,255,255,.68); border-radius:50%; background:linear-gradient(145deg,rgba(255,255,255,.64),rgba(213,219,224,.16)); box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 22px 60px rgba(24,30,36,.10); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); opacity:0; }
.portal-intro-orb-a { top:17%; left:18%; width:74px; height:74px; }.portal-intro-orb-b { right:15%; bottom:17%; width:104px; height:104px; }.portal-intro-orb-c { top:22%; right:25%; width:38px; height:38px; }
.portal-intro.is-ready .portal-intro-glow { animation:portalLiquidField 2.15s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-stage { animation:portalLiquidLens 1.45s .08s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-logo { animation:portalLiquidLogo 1.2s .2s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-ready .portal-intro-sheen { animation:portalLiquidSheen 1.05s .42s cubic-bezier(.22,.75,.2,1) both; }
.portal-intro.is-ready .portal-intro-orb-a { animation:portalLiquidOrbA 1.8s .1s cubic-bezier(.16,1,.3,1) both; }.portal-intro.is-ready .portal-intro-orb-b { animation:portalLiquidOrbB 1.9s .18s cubic-bezier(.16,1,.3,1) both; }.portal-intro.is-ready .portal-intro-orb-c { animation:portalLiquidOrbC 1.6s .26s cubic-bezier(.16,1,.3,1) both; }
.portal-intro.is-leaving .portal-intro-lens { transform:translateZ(80px) scale(1.08); opacity:0; transition:transform .62s cubic-bezier(.22,.75,.2,1),opacity .5s; }

@media (max-width:680px) {
  .energy-details-dialog[open] { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; border-radius:0; }
  .energy-details-shell { width:100%; height:100dvh; max-height:none; padding-bottom:max(12px,env(safe-area-inset-bottom)); overflow-y:scroll; scrollbar-gutter:auto; }
  .energy-details-shell>header { padding-top:max(17px,env(safe-area-inset-top)); }
  .energy-details-kpis { grid-template-columns:1fr 1fr; }
  .pv-forecast-list,.dashboard-pv-forecast { grid-template-columns:1fr; }
  .energy-charging-advice>header { align-items:flex-start; flex-direction:column; }
  .energy-details-shell>footer { align-items:stretch; flex-direction:column; }.energy-details-shell>footer button { width:100%; }
  .dashboard-roe-mobile-details { display:flex; align-items:center; justify-content:space-between; width:calc(100% - 26px); min-height:42px; margin:0 13px 13px; padding:0 13px; border:1px solid rgba(31,39,47,.10); border-radius:12px; color:#30383f; background:rgba(255,255,255,.58); font:inherit; font-size:.62rem; font-weight:850; }
  .dashboard-roe-worktime>span:nth-of-type(n+3),.dashboard-roe-total { display:none; }
  .dashboard-roe-worktime { grid-template-columns:minmax(0,1.45fr) repeat(2,minmax(70px,.6fr)); }
  .dashboard-roe-worktime-title span { display:none; }
  .roe-summary-dialog[open] { width:calc(100vw - 18px); max-height:calc(100dvh - 18px); }
  .roe-summary-time>div,.roe-summary-values { grid-template-columns:1fr; }
  .portal-intro-lens { width:min(86vw,390px); min-height:188px; border-radius:36px; }
  .portal-intro-logo .brand-mark.custom-logo { height:104px; }
  .portal-intro-orb-a { top:13%; left:4%; width:52px; height:52px; }.portal-intro-orb-b { right:2%; bottom:13%; width:76px; height:76px; }.portal-intro-orb-c { right:16%; }
}
/* Security hardening · MFA and step-up authentication */
.security-dialog{width:min(560px,calc(100vw - 32px));border:1px solid rgba(75,93,105,.22);border-radius:28px;padding:0;color:var(--text,#202328);background:rgba(248,250,251,.96);box-shadow:0 28px 80px rgba(21,31,38,.24);backdrop-filter:blur(28px) saturate(1.16)}
.security-dialog::backdrop{background:rgba(10,18,24,.52);backdrop-filter:blur(10px)}
.security-dialog form{display:grid;gap:18px;padding:26px}
.security-dialog header{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:start}
.security-dialog header h2{margin:3px 0 6px;font-size:clamp(24px,5vw,32px);line-height:1.05}
.security-dialog header p{margin:0;color:var(--muted,#6f7780);line-height:1.45}
.security-dialog-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;color:#fff;background:linear-gradient(145deg,#26343c,#12191e);font-weight:900;letter-spacing:.04em;box-shadow:inset 0 1px rgba(255,255,255,.22),0 10px 26px rgba(25,48,59,.18)}
.security-dialog label{display:grid;gap:8px;font-weight:750}
.security-dialog input{min-height:50px;border:1px solid rgba(75,93,105,.22);border-radius:15px;padding:0 15px;font:inherit;background:rgba(255,255,255,.82)}
.security-dialog input[name="code"]{font-size:24px;font-weight:850;letter-spacing:.24em;text-align:center;font-variant-numeric:tabular-nums}
.mfa-trust-note{display:grid;gap:4px;margin:0;padding:13px 15px;border:1px solid rgba(38,124,120,.2);border-radius:15px;background:rgba(226,243,241,.62);color:#24434a;line-height:1.4}
.mfa-trust-note strong{font-size:13px}.mfa-trust-note span{font-size:12px;color:#60727a}
.security-dialog footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.mfa-setup-box{display:grid;gap:12px;padding:16px;border:1px solid rgba(43,128,119,.28);border-radius:18px;background:linear-gradient(145deg,rgba(234,248,246,.86),rgba(255,255,255,.74))}
.mfa-setup-box p{margin:0;color:var(--muted,#6f7780);line-height:1.45}
.mfa-setup-box>a{width:max-content;text-decoration:none}
.mfa-secret{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.82);border:1px solid rgba(75,93,105,.16)}
.mfa-secret code{font-size:14px;font-weight:850;letter-spacing:.09em;overflow-wrap:anywhere}
.user-mfa-control{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(180px,auto);gap:12px;align-items:center;width:100%;padding:10px 0}
.user-mfa-control span{display:grid;gap:2px}.user-mfa-control small{color:var(--muted,#6f7780);font-size:11px}
.user-mfa-control select{min-height:42px;border-radius:12px;border:1px solid rgba(75,93,105,.22);background:rgba(255,255,255,.82);padding:0 10px}
@media(max-width:620px){.security-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:24px}.security-dialog form{padding:20px;gap:15px}.security-dialog header{grid-template-columns:46px 1fr}.security-dialog-mark{width:46px;height:46px;border-radius:15px}.security-dialog footer>*{min-height:48px;flex:1}.mfa-secret{grid-template-columns:1fr}.mfa-secret button{justify-self:start}.user-mfa-control{grid-template-columns:1fr}.user-mfa-control select{width:100%;min-height:48px}}

/* V249: account controls expand inside the row, never over another user. */
.user-settings .user-list { max-height:none; overflow:visible; }
.user-department-section .user-row-actions { align-items:flex-start; min-width:0; }
.user-department-section .user-account-menu[open] { flex-basis:100%; width:100%; max-width:440px; margin-left:auto; }
.user-account-menu[open]>summary { width:max-content; max-width:100%; margin-left:auto; }
.user-account-menu>span { display:grid; grid-template-columns:minmax(0,1fr); min-width:0; gap:8px; margin-top:8px; padding:14px; border:1px solid rgba(45,52,58,.12); border-radius:12px; background:#fdfdfd; }
.user-account-menu:not([open])>span { display:none; }
.user-account-menu .user-mfa-control { grid-template-columns:minmax(0,1fr); min-width:0; gap:8px; align-items:start; padding:8px 0; }
.user-account-menu .user-mfa-control span { min-width:0; gap:4px; white-space:normal; overflow-wrap:anywhere; }
.user-account-menu .user-mfa-control strong { font-size:13px; line-height:1.4; }
.user-account-menu .user-mfa-control small { font-size:12px; line-height:1.5; }
.user-department-section .user-account-menu .user-mfa-control select { grid-column:auto; grid-row:auto; width:100%; min-width:0; min-height:44px; font-size:13px; }
.user-department-section .user-account-menu>span button { width:100%; min-width:0; min-height:44px; padding:10px 12px; font-size:12px; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:760px) {
  .user-department-section .user-account-menu[open] { grid-column:1/-1; max-width:none; }
}

/* Planner21 · sichere Arbeitsunterlagen am Auftrag */
.planner-attachments{display:grid;gap:16px;padding:20px;border:1px solid rgba(77,98,109,.18);border-radius:22px;background:linear-gradient(145deg,rgba(244,249,249,.92),rgba(255,255,255,.74));box-shadow:inset 0 1px 0 rgba(255,255,255,.94),0 14px 34px rgba(35,54,63,.06)}
.planner-attachments>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.planner-attachments>header h3{margin:4px 0 5px;font-size:18px;line-height:1.2}
.planner-attachments>header p{max-width:680px;margin:0;color:var(--muted,#66727a);font-size:13px;line-height:1.45}
.planner-attachment-count{flex:0 0 auto;padding:7px 10px;border:1px solid rgba(38,124,120,.18);border-radius:999px;color:#315e61;background:rgba(226,244,242,.76);font-size:11px;font-weight:850;white-space:nowrap}
.planner-intake-photo-rule{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(74,94,104,.14);border-radius:15px;background:rgba(248,250,251,.72);transition:border-color .18s,background .18s}.planner-intake-photo-rule>span{padding:6px 8px;border-radius:9px;background:#e6ecee;color:#4e6068;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.planner-intake-photo-rule>div{display:grid;gap:2px}.planner-intake-photo-rule strong{font-size:12px}.planner-intake-photo-rule small{color:#687981;font-size:10px;line-height:1.4}.planner-intake-photo-rule>b{color:#66777e;font-size:10px;white-space:nowrap}.planner-intake-photo-rule.is-required{border-color:rgba(183,124,35,.3);background:rgba(255,247,229,.78)}.planner-intake-photo-rule.is-required>span{background:#f2dba9;color:#755319}.planner-intake-photo-rule.is-required>b{color:#8d5d10}.planner-intake-photo-rule.is-complete{border-color:rgba(40,126,91,.28);background:rgba(231,247,239,.78)}.planner-intake-photo-rule.is-complete>span{background:#cdebdc;color:#215f46}.planner-intake-photo-rule.is-complete>b{color:#216044}
.planner-attachment-controls{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(240px,1fr) minmax(230px,.8fr);gap:12px;align-items:end}
.planner-attachment-controls[hidden]{display:none!important}
.planner-attachment-controls>label:not(.planner-attachment-picker){display:grid;gap:7px;min-width:0;color:#53636c;font-size:12px;font-weight:780}
.planner-attachment-controls select,.planner-attachment-controls input{width:100%;min-width:0;min-height:48px;padding:0 14px;border:1px solid rgba(72,91,103,.22);border-radius:14px;color:#27333a;background:rgba(255,255,255,.9);font:inherit;outline:none;transition:border-color .18s,box-shadow .18s,background .18s}
.planner-attachment-controls select:focus-visible,.planner-attachment-controls input:focus-visible{border-color:#4b8a85;box-shadow:0 0 0 4px rgba(65,133,126,.15);background:#fff}
.planner-attachment-link-field[hidden],.planner-attachment-link-add[hidden],.planner-attachment-picker[hidden]{display:none!important}.planner-attachment-link-add{min-height:48px;padding:0 16px;border:1px dashed rgba(46,119,112,.45);border-radius:14px;color:#285e59;background:rgba(231,247,244,.78);font:inherit;font-size:13px;font-weight:850;cursor:pointer}.planner-attachment-link-add:hover{background:#e7f5f2;border-style:solid}
.planner-attachment-picker{position:relative;display:grid;align-content:center;min-height:64px;padding:10px 14px;border:1px dashed rgba(44,113,108,.42);border-radius:16px;color:#244d50;background:rgba(235,248,246,.8);cursor:pointer;overflow:hidden;transition:border-color .18s,background .18s,transform .18s}
.planner-attachment-picker:hover{border-color:#337c77;background:rgba(226,244,242,.94);transform:translateY(-1px)}
.planner-attachment-picker:focus-within{border-color:#337c77;box-shadow:0 0 0 4px rgba(65,133,126,.15)}
.planner-attachment-picker input{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;opacity:0;cursor:pointer}
.planner-attachment-picker>span{font-size:13px;font-weight:900}.planner-attachment-picker>small{margin-top:2px;color:#60777d;font-size:10px;line-height:1.25}
.planner-attachment-status{min-height:17px;margin:0;color:#587078;font-size:11px;line-height:1.45}
.planner-attachment-list{display:grid;gap:9px}
.planner-attachment-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:66px;padding:10px 12px;border:1px solid rgba(76,95,106,.16);border-radius:16px;background:rgba(255,255,255,.8)}
.planner-attachment-card.is-pending{border-style:dashed;border-color:rgba(44,113,108,.34);background:rgba(235,248,246,.58)}
.planner-attachment-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.45);border-radius:13px;color:#fff;background:linear-gradient(145deg,#38555c,#1f3036);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);font-size:10px;font-weight:950;letter-spacing:.05em}
.planner-attachment-card.is-link .planner-attachment-icon{background:linear-gradient(145deg,#2f766d,#204c47)}
.planner-attachment-preview{display:block;width:72px;height:54px;overflow:hidden;border:1px solid rgba(55,78,89,.18);border-radius:12px;background:#dfe7e9}.planner-attachment-thumb{display:block;width:100%;height:100%;object-fit:cover}.planner-attachment-card.is-photo{grid-template-columns:72px minmax(0,1fr) auto}.planner-attachment-card.is-photo>.planner-attachment-preview{padding:0;border-radius:12px}
.planner-attachment-card>div:nth-child(2){display:grid;gap:4px;min-width:0}.planner-attachment-card strong{overflow:hidden;color:#253139;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.planner-attachment-card small{overflow:hidden;color:#6a7981;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.planner-attachment-card>div:last-child{display:flex;gap:7px;align-items:center}
.planner-attachment-card a,.planner-attachment-card button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 12px;border:1px solid rgba(64,87,99,.2);border-radius:12px;color:#26373f;background:rgba(255,255,255,.86);font:inherit;font-size:11px;font-weight:850;text-decoration:none;cursor:pointer}
.planner-attachment-card .danger{color:#944b46}.planner-attachment-card a:hover,.planner-attachment-card button:hover{background:#fff;border-color:rgba(47,82,94,.36)}
.planner-attachment-empty{display:grid;gap:4px;padding:17px;border:1px dashed rgba(76,95,106,.2);border-radius:16px;color:#718087;text-align:center}.planner-attachment-empty strong{font-size:12px}.planner-attachment-empty span{font-size:11px}
@media(max-width:860px){.planner-attachment-controls{grid-template-columns:1fr 1fr}.planner-attachment-picker{grid-column:1/-1}}
@media(max-width:620px){.planner-attachments{gap:13px;padding:15px;border-radius:19px}.planner-attachments>header{align-items:flex-start;flex-direction:column;gap:9px}.planner-attachment-count{align-self:flex-start}.planner-intake-photo-rule{grid-template-columns:auto minmax(0,1fr)}.planner-intake-photo-rule>b{grid-column:1/-1;white-space:normal}.planner-attachment-controls{grid-template-columns:minmax(0,1fr);gap:10px}.planner-attachment-picker{grid-column:auto;width:100%;min-height:62px}.planner-attachment-controls select,.planner-attachment-controls input{min-height:50px;font-size:16px}.planner-attachment-card,.planner-attachment-card.is-photo{grid-template-columns:64px minmax(0,1fr);gap:10px;padding:10px}.planner-attachment-icon{width:42px;height:42px}.planner-attachment-preview{width:64px;height:54px}.planner-attachment-card>div:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));width:100%}.planner-attachment-card a:not(.planner-attachment-preview),.planner-attachment-card button{min-height:44px;width:100%}.planner-attachment-card strong,.planner-attachment-card small{white-space:normal;overflow-wrap:anywhere}.pm-order-reading .planner-attachment-controls{display:none!important}}

/* Planner21 · PDF-Zusammenfassung und delegierbare Unterarbeitsschritte */
.planner-ai-summary,.planner-subtasks{display:grid;grid-column:1/-1;gap:14px;padding:18px;border:1px solid rgba(70,96,108,.17);border-radius:20px;background:linear-gradient(145deg,rgba(244,249,249,.9),rgba(255,255,255,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.92)}
.planner-ai-summary[hidden],.planner-subtasks[hidden]{display:none!important}
.planner-ai-summary>header,.planner-subtasks>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.planner-ai-summary h3,.planner-subtasks h3{margin:4px 0 4px;font-size:17px}.planner-ai-summary header p,.planner-subtasks header p{max-width:690px;margin:0;color:#68777f;font-size:12px;line-height:1.45}
.planner-ai-summary header button,.planner-subtasks header button{flex:0 0 auto;margin:0;min-height:42px}
.planner-ai-summary>label{display:grid;gap:7px}.planner-ai-summary>label>span,.planner-subtask-row label>span{color:#536670;font-size:11px;font-weight:850}
.planner-ai-summary textarea{box-sizing:border-box;width:100%;min-height:142px;padding:13px 14px;border:1px solid rgba(65,88,100,.2);border-radius:14px;color:#26343c;background:rgba(255,255,255,.9);font:inherit;font-size:14px;line-height:1.5;resize:vertical}
.planner-ai-summary textarea:focus-visible,.planner-subtask-row input:focus-visible,.planner-subtask-row select:focus-visible{outline:0;border-color:#4b8a85;box-shadow:0 0 0 4px rgba(65,133,126,.14)}
.planner-ai-summary>p{margin:0;color:#52716e;font-size:11px;line-height:1.4}
.planner-subtask-list{display:grid;gap:8px}.planner-subtask-row{display:grid;grid-template-columns:34px minmax(220px,1.5fr) minmax(170px,.8fr) minmax(190px,.8fr) auto;align-items:end;gap:9px;padding:10px;border:1px solid rgba(67,88,99,.14);border-radius:15px;background:rgba(255,255,255,.82)}
.planner-subtask-row>label:not(.planner-subtask-completed){display:grid;gap:6px;min-width:0}.planner-subtask-row input[type=text],.planner-subtask-row input[type=datetime-local],.planner-subtask-row select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:0 11px;border:1px solid rgba(65,88,100,.18);border-radius:11px;color:#26343c;background:#fff;font:inherit;font-size:13px}
.planner-subtask-completed{display:grid;align-self:center;place-items:center;width:32px;height:44px}.planner-subtask-completed input{position:absolute;opacity:0}.planner-subtask-completed i{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(48,67,77,.25);border-radius:8px;background:#fff;cursor:pointer}.planner-subtask-completed input:checked+i{border-color:#315e59;background:#315e59}.planner-subtask-completed input:checked+i::after{content:'✓';color:#fff;font-size:13px;font-style:normal;font-weight:900}.planner-subtask-row.is-complete{background:rgba(232,244,239,.76)}.planner-subtask-row.is-complete .planner-subtask-title input{text-decoration:line-through;color:#61706e}
.planner-subtask-remove{min-height:44px;padding:0 12px;border:1px solid rgba(132,73,64,.18);border-radius:11px;color:#914f47;background:rgba(255,255,255,.86);font:inherit;font-size:11px;font-weight:850;cursor:pointer}.planner-subtask-remove:disabled{opacity:.45;cursor:default}
.planner-subtask-empty{margin:0;padding:14px;border:1px dashed rgba(70,96,108,.2);border-radius:14px;color:#748087;text-align:center;font-size:11px}.planner-subtask-empty[hidden]{display:none!important}
@media(max-width:820px){.planner-subtask-row{grid-template-columns:34px minmax(0,1fr) minmax(160px,.75fr)}.planner-subtask-title{grid-column:2/-1}.planner-subtask-row>label:nth-of-type(3){grid-column:2}.planner-subtask-row>label:nth-of-type(4){grid-column:3}.planner-subtask-remove{grid-column:2/-1;justify-self:end}}
@media(max-width:620px){.planner-ai-summary,.planner-subtasks{gap:12px;padding:14px;border-radius:18px}.planner-ai-summary>header,.planner-subtasks>header{flex-direction:column;gap:10px}.planner-ai-summary header button,.planner-subtasks header button{width:100%;min-height:48px}.planner-ai-summary textarea{min-height:160px;font-size:16px}.planner-subtask-row{grid-template-columns:34px minmax(0,1fr);align-items:start;padding:11px}.planner-subtask-title,.planner-subtask-row>label:nth-of-type(3),.planner-subtask-row>label:nth-of-type(4),.planner-subtask-remove{grid-column:2}.planner-subtask-completed{grid-row:1/4}.planner-subtask-row input[type=text],.planner-subtask-row input[type=datetime-local],.planner-subtask-row select{min-height:48px;font-size:16px}.planner-subtask-remove{width:100%;min-height:46px}}
