: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%; }
}

/* 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-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 { 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; }
}

/* 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 { position:relative; }.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-account-menu>span { position:absolute; z-index:8; right:0; bottom:calc(100% + 7px); display:grid; min-width:170px; gap:6px; padding:8px; border:1px solid rgba(45,52,58,.12); border-radius:12px; background:rgba(253,253,253,.98); box-shadow:0 18px 45px rgba(30,36,41,.18); }.user-account-menu>span button{width:100%;justify-content:flex-start}
.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%}.user-account-menu>span{right:0;bottom:calc(100% + 7px)}}

/* 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-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}
@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}}
.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}}

/* 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; }
.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; }
.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 { 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; }
.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:10px; padding:15px; border:1px solid rgba(34,39,44,.10); border-radius:15px; background:rgba(255,255,255,.55); }
.planner-checklist-field>div:first-child { display:grid; gap:3px; }
.planner-checklist-field>div:first-child>span { color:#465c6d; font-size:.62rem; font-weight:900; }
.planner-checklist-field>div:first-child>small { color:#7b858d; font-size:.52rem; }
#plannerChecklistChoices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
#plannerChecklistChoices label { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:center; gap:9px; min-height:44px; padding:8px 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:.57rem; 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-create>.primary-button { justify-self:start; margin:0; }
.planner-department-message { min-height:18px; color:#536b5e!important; font-weight:750; }
#plannerDepartmentList { display:grid; gap:8px; }
#plannerDepartmentList article { display:grid; grid-template-columns:10px minmax(0,1fr); align-items:center; gap:10px; min-height:62px; 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; }

@media(max-width:1100px){.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{align-items:flex-start}.tenant-planner-heading-actions{width:100%;justify-content:flex-start}.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}}

/* 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-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(4,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:flex;overflow-x:auto;scroll-snap-type:x mandatory}.energy-assistant-day{flex:0 0 132px;scroll-snap-align:start}.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 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%; }
}
