:root{color-scheme:light;--color-background:#f4f7fb;--color-surface:#ffffff;--color-surface-secondary:#f8fafc;--color-primary:#3b6eea;--color-primary-hover:#315fc7;--color-text:#172033;--color-text-secondary:#6b778c;--color-border:#dfe6ef;--color-navigation:#111a2b;--color-navigation-active:#3b6eea;--color-success:#2f9b68;--color-warning:#d99122;--color-danger:#d94a5c;--color-info:#3b6eea;--color-on-primary:#ffffff;--color-on-navigation:#ffffff;--color-on-navigation-active:#ffffff;--bg:var(--color-background);--panel:var(--color-surface);--soft:var(--color-surface-secondary);--text:var(--color-text);--muted:var(--color-text-secondary);--line:var(--color-border);--primary:var(--color-primary);--primary2:var(--color-primary-hover);--success:var(--color-success);--warning:var(--color-warning);--danger:var(--color-danger);--sidebar:var(--color-navigation);--radius:20px;--shadow:0 12px 38px rgba(30,48,78,.08);--sidebar-w:280px;--content-max:1760px;--ronvo-depth-header-background:rgba(255,255,255,.965);--ronvo-depth-header-border:rgba(205,219,239,.82);--ronvo-depth-header-shadow:0 2px 5px rgba(47,67,105,.028),0 15px 34px rgba(68,93,143,.085),0 34px 72px rgba(93,121,181,.105);--ronvo-depth-badge-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 18px rgba(31,43,91,.20),0 20px 42px rgba(60,82,135,.11)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}svg{display:block;width:20px;height:20px}.app-shell{min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);z-index:50;display:flex;flex-direction:column;padding:24px 18px 18px;background:linear-gradient(180deg,#121c2e,#0d1523);color:#fff;border-right:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 22px}.brandmark,.login-brand>span,.install-brand>span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#4b7df0,#31b7a9);font-weight:900;font-size:21px;box-shadow:0 12px 28px rgba(59,110,234,.26)}.brandcopy strong,.brandcopy span{display:block}.brandcopy strong{font-size:14px;letter-spacing:.16em}.brandcopy span{font-size:10px;letter-spacing:.13em;color:#9eaabc;margin-top:4px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{min-height:47px;display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:13px;;border:1px solid transparent;font-size:14px;font-weight:650}.sidebar nav a.active{background:rgba(75,125,240,.17);border-color:rgba(109,152,255,.2);color:#fff;box-shadow:inset 3px 0 0 #6d98ff}.sidebar nav i{width:22px}.nav-label{margin:17px 10px 5px;padding-top:17px;border-top:1px solid rgba(255,255,255,.08);font-size:9px;letter-spacing:.18em;color:#728096}.sidebar-user{margin-top:auto;display:grid;grid-template-columns:38px minmax(0,1fr) 34px;align-items:center;gap:9px;padding:16px 4px 0;border-top:1px solid rgba(255,255,255,.09)}.sidebar-user .avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;;font-weight:800}.sidebar-user strong,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user strong{font-size:13px}.sidebar-user small{font-size:10px;color:#8f9bad;margin-top:2px}.sidebar-user>a{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;}.main{margin-left:var(--sidebar-w);min-width:0}.topbar{height:82px;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 38px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar h1{margin:0;font-size:20px;letter-spacing:-.025em}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.top-actions{display:flex;align-items:center;gap:10px}.version,.count{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border-radius:999px;;;font-size:11px;font-weight:750}.mobile-menu{display:none;border:0;background:transparent;font-size:21px}.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:30px 38px 64px}.welcome,.check-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 32px;border:1px solid #dfe7f3;border-radius:26px;background:linear-gradient(135deg,#fff,#f4f8ff);box-shadow:var(--shadow);margin-bottom:22px}.welcome h2,.check-hero h2,.page-actions h2{margin:5px 0 7px;font-size:28px;letter-spacing:-.04em}.welcome p,.check-hero p{margin:0;color:var(--muted)}.eyebrow{display:block;font-size:10px;font-weight:850;letter-spacing:.16em;}.welcome-badge{min-width:130px;padding:16px 18px;border-radius:18px;background:#172033;color:#fff}.welcome-badge span,.welcome-badge strong{display:block}.welcome-badge span{font-size:10px;color:#9fabbd}.welcome-badge strong{margin-top:5px;font-size:18px}.metrics,.check-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.check-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{display:flex;align-items:center;gap:15px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(30,48,78,.05)}.metric-icon,.site-icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:#edf3ff;color:var(--primary)}.metric small,.metric strong{display:block}.metric small{color:var(--muted);font-size:11px}.metric strong{font-size:24px;margin-top:2px}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.panel{min-width:0;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.panel h3{margin:0 0 14px;font-size:18px;letter-spacing:-.025em}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.panel-head h3{margin:2px 0 0}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel-head>a{color:var(--primary);font-size:12px;font-weight:700}.workspace{display:grid;grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:22px;align-items:start}.workspace>.sticky{position:sticky;top:105px}.grow{min-height:430px}.form{display:grid;gap:14px}.form label{display:grid;gap:7px;;font-size:12px;font-weight:700}.form input,.form select,.form textarea{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #d9e1ec;border-radius:11px;background:#fff;color:var(--text);outline:none}.form textarea{min-height:112px;resize:vertical}.form hr{width:100%;border:0;border-top:1px solid var(--line);margin:2px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:11px;padding:0 16px;font-weight:750;font-size:12px}.btn.ghost{background:#fff;border-color:var(--line);color:#354157}.btn.small{min-height:36px;padding:0 12px}.btn.wide{width:100%}.muted{color:var(--muted);font-size:13px;line-height:1.55}.list{display:grid}.list article{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid #edf1f6}.list article:last-child{border-bottom:0}.list-main{min-width:0;flex:1}.list-main strong,.list-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-main strong{font-size:13px}.list-main small{margin-top:4px;color:var(--muted);font-size:11px}.status{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:800;background:#eef2f7;color:#68758a}.status.online,.status.ok,.status.paid{background:#eaf7f0;color:#27835a}.status.offline,.status.error{background:#fcecee;color:#bd3e50}.status.warning,.status.open{background:#fff4df;color:#a66c13}.status.planned,.status.unknown{background:#edf3ff;color:#416fcf}.empty{min-height:220px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted)}.empty>span{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;;;font-weight:900}.empty p{font-size:12px}.customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.customer-card{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfcfe}.customer-avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;;;font-weight:900}.customer-card strong,.customer-contact{display:block}.customer-contact{margin-top:4px;color:var(--muted);font-size:11px}.customer-stats{grid-column:1/-1;display:flex;gap:18px;padding-top:12px;border-top:1px solid var(--line)}.customer-stats span{font-size:10px;color:var(--muted)}.customer-stats b{display:inline;font-size:12px;color:var(--text)}.notes{display:grid;gap:12px}.notes article{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.notes p{margin:0 0 10px;line-height:1.55}.notes small{color:var(--muted)}.api-secret{margin-top:18px;padding:14px;border-radius:13px;background:#fff7df;border:1px solid #f0dca0}.api-secret b,.api-secret code{display:block}.api-secret code{margin-top:8px;word-break:break-all;font-size:11px}.codebox{display:block;padding:14px;border-radius:12px;background:#111a2b;color:#dce7ff;overflow-wrap:anywhere}.settings-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}.settings-nav{position:sticky;top:105px;display:grid;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}.settings-nav a{padding:11px 12px;border-radius:10px;color:#536177;font-size:12px;font-weight:700}.settings-nav a:hover{background:#f1f5fb;color:var(--text)}.settings-content{display:grid;gap:18px}.upload{padding:18px;border:1px dashed #bcc9da;border-radius:14px;}.upload input{margin-top:5px;padding:0;border:0;background:transparent}.upload small{font-weight:500;color:var(--muted)}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.info-grid>div{padding:14px;border-radius:13px;}.info-grid span,.info-grid strong{display:block}.info-grid span{font-size:10px;color:var(--muted)}.info-grid strong{margin-top:4px;font-size:12px;overflow-wrap:anywhere}.security-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.security-list span{padding:12px;border-radius:11px;background:#eef7f3;color:#276d51;font-size:12px;font-weight:700}.alert{margin:0 0 18px;padding:13px 15px;border-radius:12px;font-size:12px;border:1px solid #d8e4f4;background:#eff5ff;color:#3b5d97}.page-actions{margin-bottom:18px}.login-page,.installer{min-height:100dvh;}.login-wrap,.install-wrap{min-height:100dvh;display:grid;place-items:center;padding:28px}.login-card,.install-card{width:min(460px,100%);padding:34px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(30,48,78,.13)}.install-card{width:min(720px,100%)}.login-brand,.install-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.login-brand b,.login-brand small,.install-brand b,.install-brand small{display:block}.login-brand b,.install-brand b{letter-spacing:.14em}.login-brand small,.install-brand small{margin-top:3px;color:var(--muted);font-size:9px;letter-spacing:.12em}.login-card h1,.install-card h1{margin:0 0 6px;font-size:28px;letter-spacing:-.04em}.login-foot{display:block;margin-top:22px;text-align:center;color:#8a95a6}.requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:22px 0}.requirements>div{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;;font-size:11px}.pill{font-size:9px;padding:4px 7px;border-radius:999px}.pill.ok{background:#e8f7ef;color:#277b56}.pill.bad{background:#fcecee;color:#b73749}.backdrop{display:none}
@media(max-width:1200px){.metrics{grid-template-columns:repeat(2,1fr)}.customer-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){:root{--sidebar-w:270px}.sidebar{transform:translateX(-102%);transition:transform .22s ease}.nav-open .sidebar{transform:translateX(0)}.main{margin-left:0}.mobile-menu{display:block}.topbar{padding:0 20px;justify-content:flex-start}.topbar>div:nth-child(2){flex:1}.top-actions .version{display:none}.content{padding:22px 18px 90px}.backdrop{position:fixed;inset:0;z-index:40;background:rgba(8,15,30,.38)}.nav-open .backdrop{display:block}.workspace,.settings-grid{grid-template-columns:1fr}.workspace>.sticky,.settings-nav{position:static}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{height:72px}.topbar p,.top-actions .btn{display:none}.topbar h1{font-size:17px}.content{padding:16px 12px 90px}.welcome,.check-hero{padding:22px 18px;border-radius:20px;align-items:flex-start}.welcome h2,.check-hero h2{font-size:23px}.welcome-badge{display:none}.metrics,.check-metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:14px;gap:10px}.metric-icon{width:36px;height:36px;flex-basis:36px}.metric strong{font-size:20px}.panel{padding:18px;border-radius:17px}.grid2,.info-grid,.security-list{grid-template-columns:1fr}.requirements{grid-template-columns:1fr}.login-card,.install-card{padding:24px 20px}.customer-grid{grid-template-columns:1fr}}

/* v3.3.0 · WordPress Connector */
.site-row-link{display:block;color:inherit;text-decoration:none}
.site-row-link article{transition:transform .16s ease,border-color .16s ease,background .16s ease}
.site-row-link:hover article{transform:translateY(-1px);border-color:rgba(129,140,248,.34);background:rgba(255,255,255,.025)}
.site-meta{margin-top:4px;color:var(--muted)}
.site-detail-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:22px}
.site-detail-head h2{margin:5px 0 4px}
.site-detail-head p{margin:0;color:var(--muted)}
.site-detail-head p a{color:inherit}
.back-link{display:inline-block;margin-bottom:16px;color:var(--muted);text-decoration:none}
.connector-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}
.metric-card span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}
.metric-card strong{font-size:21px}
.connector-table{display:grid;gap:0}
.ct-head,.ct-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(100px,.5fr) minmax(120px,.5fr);gap:16px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--line)}
.ct-head{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.ct-row:last-child{border-bottom:0}
.ct-row small{display:block;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.ct-row code{font-size:12px}
.payload-details summary{cursor:pointer;font-weight:700}
.payload-details pre{white-space:pre-wrap;overflow:auto;max-height:520px;margin:16px 0 0;padding:16px;border-radius:12px;background:#0a0f1d;border:1px solid var(--line);font-size:12px;line-height:1.55}
@media(max-width:900px){.connector-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.site-detail-head{flex-direction:column}.ct-head{display:none}.ct-row{grid-template-columns:1fr;gap:7px}.ct-row>span:nth-child(2)::before{content:"Version: ";color:var(--muted)}}
@media(max-width:520px){.connector-metrics{grid-template-columns:1fr}}

/* v3.3.1 · Connector Verbindung zurücksetzen */
.connection-token-panel{margin-bottom:18px}
.connection-management{margin-top:18px}
.connection-management .btn.danger{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.34);color:#fecaca}
.connection-management .btn.danger:hover{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.5)}

/* v3.4.1 · API Payload Lesbarkeit */
.payload-details pre{
  color:#e5e7eb !important;
  background:#0b1220 !important;
  border-color:rgba(148,163,184,.18) !important;
}
.payload-details pre,
.payload-details pre code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:13px;
  line-height:1.65;
}
.payload-details summary{
  color:var(--text);
}

/* v3.4.2 · API JSON Kontrastfix */
.payload-details pre,
.payload-details pre *,
.payload-details code,
.payload-details pre code{
  opacity:1 !important;
  text-shadow:none !important;
}
.payload-details pre{
  background:#0b1220 !important;
  caret-color:#ffffff;
}

/* v3.5.0 · Website Logo/Favicon */
.site-icon{
  overflow:hidden;
}
.site-icon .site-logo{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:inherit;;
}

/* v3.5.1 · Website Icon QA + manuelles Neuladen */
.site-icon-management{margin-top:18px}
.site-icon-preview{
  width:48px;
  height:48px;
  object-fit:contain;
  border-radius:12px;;
  border:1px solid var(--line);
  padding:4px;
}

/* v3.6.0 · Kombinierter Systemtest */
.settings-system-test-card{margin-bottom:18px}
.system-test-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.panel-actions{display:flex;gap:10px;flex-wrap:wrap}
.test-results{display:grid;gap:8px}
.test-result-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.test-result-row:last-child{border-bottom:0}
.test-result-row small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:900px){.system-test-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.system-test-summary{grid-template-columns:1fr}}

/* v3.7.0 · Kunden + Webseiten Verwaltung */
.customer-card-link{display:block;color:inherit;text-decoration:none;border-radius:var(--radius)}
.customer-card-link:hover .customer-card{transform:translateY(-1px)}
.customer-card{transition:transform .16s ease,border-color .16s ease}
.customer-state{display:inline-flex!important;width:max-content;margin-top:7px;padding:3px 8px;border-radius:999px;font-size:11px!important;font-weight:700}
.customer-state.active{background:rgba(34,197,94,.12);color:#16a34a}
.customer-state.inactive{background:rgba(239,68,68,.10);color:#dc2626}
.customer-detail-workspace .stack{display:grid;gap:18px}
.compact-form{max-width:520px}
.site-management{margin-top:18px}
.status.archived{background:rgba(100,116,139,.12);color:#64748b}

/* v3.8.0 · Anfragenverwaltung */
.request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.request-head h2{margin:6px 0}.request-badges,.request-row-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.request-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:20px}.request-message{font-size:15px;line-height:1.7;margin-top:16px}.request-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:22px;padding-top:16px;border-top:1px solid var(--border)}.request-meta span{font-size:12px;color:var(--muted);display:grid;gap:4px}.request-meta strong{color:var(--text);font-size:13px}.request-priority{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:rgba(100,116,139,.12);color:#64748b}.request-priority.high{background:rgba(245,158,11,.13);color:#d97706}.request-priority.urgent{background:rgba(239,68,68,.12);color:#dc2626}.request-priority.low{background:rgba(59,130,246,.11);color:#2563eb}.status.in_progress{color:#2563eb}.status.done{color:#16a34a}.status.open{background:rgba(245,158,11,.12);color:#d97706}.request-row-link{display:block;color:inherit;text-decoration:none}.request-row-link article{transition:background .15s ease}.request-row-link:hover article{background:rgba(100,116,139,.05)}.request-timeline{display:grid;gap:0;margin-top:8px}.timeline-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:10px;padding:10px 0}.timeline-item:before{content:"";position:absolute;left:6px;top:23px;bottom:-10px;width:1px;background:var(--border)}.timeline-item:last-child:before{display:none}.timeline-dot{width:13px;height:13px;border-radius:50%;background:var(--surface-2);border:3px solid var(--accent);margin-top:3px}.timeline-item div{display:grid;gap:4px}.timeline-item small{color:var(--muted)}@media(max-width:900px){.request-detail-grid{grid-template-columns:1fr}.request-head{flex-direction:column}}

/* v3.9.0 · Rechnungsverwaltung */
.invoice-row-link{display:block;color:inherit;text-decoration:none}.invoice-row-link article{transition:background .15s ease}.invoice-row-link:hover article{background:rgba(100,116,139,.05)}.invoice-row-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.invoice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.invoice-head h2{margin:6px 0}.invoice-total{display:grid;justify-items:end;gap:5px}.invoice-total>span:first-child{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.invoice-total>strong{font-size:28px}.invoice-detail-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);gap:20px}.invoice-facts{display:grid;grid-template-columns:1fr 1fr;gap:22px}.invoice-facts div{display:grid;gap:5px}.invoice-facts span{font-size:12px;color:var(--muted)}.status.draft{background:rgba(100,116,139,.12);color:#64748b}.status.overdue{background:rgba(239,68,68,.12);color:#dc2626}.status.paid{background:rgba(34,197,94,.12);color:#16a34a}@media(max-width:900px){.invoice-detail-grid{grid-template-columns:1fr}.invoice-head{flex-direction:column}.invoice-total{justify-items:start}.invoice-facts{grid-template-columns:1fr}}

/* v4.0.0 · Dokumente */
.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.document-card{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid var(--border);border-radius:14px;color:inherit;text-decoration:none;transition:background .15s ease,border-color .15s ease}.document-card:hover{background:rgba(100,116,139,.05);border-color:rgba(100,116,139,.3)}.document-card>div{display:grid;gap:4px;min-width:0}.document-card small{color:var(--muted)}.document-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2);flex:0 0 auto}.document-icon svg{width:20px}.document-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.document-detail-head h2{margin:6px 0}.document-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);gap:20px}.danger-zone{border-color:rgba(239,68,68,.2)}.btn.danger{background:#dc2626;color:#fff}@media(max-width:900px){.document-grid,.document-detail-grid{grid-template-columns:1fr}.document-detail-head{flex-direction:column}}

/* v4.1.0 · Termine */
.appointment-list{display:grid;gap:10px}.appointment-row{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:14px;color:inherit;text-decoration:none}.appointment-row:hover{background:rgba(100,116,139,.05)}.appointment-date{width:54px;height:54px;border-radius:13px;background:var(--surface-2);display:grid;place-items:center;align-content:center;flex:0 0 auto}.appointment-date strong{font-size:20px;line-height:1}.appointment-date small{margin-top:4px;color:var(--muted)}.status.planned{background:rgba(100,116,139,.12)}.status.confirmed{background:rgba(59,130,246,.12)}.status.completed{background:rgba(34,197,94,.12)}.status.cancelled{background:rgba(239,68,68,.12)}

/* v4.2.0 Dashboard */
.dash-site-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}.dash-site-summary>div{padding:14px;border:1px solid var(--border);border-radius:14px;text-align:center;background:var(--surface-2)}.dash-site-summary strong{display:block;font-size:22px}.dash-site-summary span{font-size:12px;color:var(--muted)}.compact-list{display:grid;gap:8px}.compact-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.compact-list>a:last-child{border-bottom:0}.compact-list strong,.compact-list small{display:block}.compact-list small{margin-top:4px;color:var(--muted)}.compact-list>a>span{min-width:0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-list .dash-alert{color:#ef4444;font-weight:700}@media(max-width:760px){.dash-site-summary{grid-template-columns:repeat(3,1fr)}}

/* v4.3.0 Anfrageverwaltung */
.request-message{white-space:normal}.request-timeline .timeline-item strong{overflow-wrap:anywhere}

.auth-secondary-link{display:block;text-align:center;margin-top:2px;;font-size:13px;font-weight:750}.auth-secondary-link:hover{text-decoration:underline}.auth-bottom-link{margin-top:18px}

.connector-status-list{display:grid;gap:10px;margin-top:18px}.connector-status-row{display:grid;grid-template-columns:minmax(190px,1.7fr) repeat(5,minmax(105px,1fr));gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.connector-status-row>div>span,.connector-status-row>div>small{display:block;color:var(--muted);font-size:10px}.connector-status-row>div>strong{display:block;font-size:12px;margin-top:3px;overflow-wrap:anywhere}@media(max-width:1100px){.connector-status-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.connector-status-row{grid-template-columns:1fr}}

/* RONVO 5.0.0 · Website Health & Maintenance */
.health-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.health-stat{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(30,48,78,.05)}.health-stat span,.health-stat small{display:block;color:var(--muted)}.health-stat span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.health-stat strong{display:block;margin:6px 0 4px;font-size:28px;line-height:1}.health-stat.ok{border-color:rgba(34,197,94,.28)}.health-stat.maintenance{border-color:rgba(245,158,11,.32)}.health-stat.critical{border-color:rgba(239,68,68,.28)}
.health-badge{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:6px 10px;border-radius:999px;font-size:10px;font-weight:850;white-space:normal}.health-badge.ok{background:rgba(34,197,94,.12);color:#16854c}.health-badge.maintenance{background:rgba(245,158,11,.14);color:#b96c00}.health-badge.critical{background:rgba(239,68,68,.12);color:#cf2f3d}.health-badge.archived{background:rgba(100,116,139,.12);color:#64748b}
.health-site-row{grid-template-columns:auto minmax(0,1fr) auto!important}.health-preview{display:block!important;margin-top:5px;color:#b96c00!important;font-weight:700}.website-health-panel{margin-bottom:18px}.health-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.health-facts>div{padding:13px 14px;border:1px solid var(--line);border-radius:13px;}.health-facts span,.health-facts strong{display:block}.health-facts span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.health-facts strong{margin-top:5px;font-size:13px}.health-messages{display:grid;gap:8px;margin-top:14px}.health-message{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:12px;font-size:12px}.health-message>span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-weight:900;flex:0 0 auto}.health-message p{margin:2px 0 0}.health-message.maintenance>span{background:rgba(245,158,11,.18)}.health-message.critical>span{background:rgba(239,68,68,.15)}.health-clear{margin-top:14px;padding:11px 12px;border-radius:12px;;;font-size:12px;font-weight:750}
@media(max-width:900px){.health-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.health-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.health-overview,.health-facts{grid-template-columns:1fr}.health-site-row{grid-template-columns:auto minmax(0,1fr)!important}.health-site-row>.health-badge{grid-column:2;justify-self:start;margin-top:6px}}


/* RONVO 5.1.0 · Kundenklassifizierung */
.customer-type-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.customer-type-badge{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;;;font-size:10px;font-weight:800;line-height:1.2}.customer-type-badge.maintenance{background:rgba(245,158,11,.13);color:#b96c00}.customer-type-badge.hosting{background:rgba(139,92,246,.11);color:#7c3aed}.customer-type-badge.seo{background:rgba(16,185,129,.11);color:#07845f}.customer-type-badge.software{background:rgba(14,165,233,.11);color:#0284c7}.customer-type-badge.one_time{background:rgba(100,116,139,.12);color:#64748b}.customer-type-badge.prospect{background:rgba(236,72,153,.10);color:#db2777}.customer-type-badge.unclassified{background:rgba(100,116,139,.08);color:var(--muted);font-weight:700}.customer-type-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.form .customer-type-option{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:11px;min-height:52px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-size:12px!important;font-weight:750!important;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.form .customer-type-option input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;margin:0!important;padding:0!important;border:1.5px solid #aeb9c9!important;border-radius:6px!important;background:#fff!important;display:grid;place-content:center;box-shadow:none!important}.form .customer-type-option input[type=checkbox]::before{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);transform-origin:center;transition:transform .12s ease}.form .customer-type-option input[type=checkbox]:checked{border-color:var(--primary)!important;background:var(--primary)!important}.form .customer-type-option input[type=checkbox]:checked::before{transform:rotate(-45deg) scale(1)}.form .customer-type-option span{display:block;line-height:1.3;}.form-section{display:grid;gap:2px}.form-label{font-size:12px;font-weight:800}.field-hint{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.customer-card .customer-type-badges{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px}.customer-card .customer-type-badge{display:inline-flex;align-items:center;width:auto;min-height:22px;margin:0;padding:4px 8px;border-radius:999px;line-height:1.15;white-space:normal}.customer-card .customer-type-badge.unclassified{display:inline-flex;min-height:22px;margin-top:7px}.customer-card .customer-state{margin-top:7px}
@media(max-width:520px){.customer-type-picker{grid-template-columns:1fr}}

/* v5.2.0 Rechnungen pro Kunde */
.invoice-page{display:grid;gap:18px}.invoice-upload{padding:18px 20px}.invoice-upload .panel-head{margin-bottom:10px}.invoice-upload-form{grid-template-columns:minmax(280px,1fr) auto;align-items:end}.invoice-upload-form .btn{min-width:160px}.invoice-upload>.muted{margin:8px 0 0}.invoice-overview{min-height:360px}.invoice-overview .panel-head h3{margin-bottom:4px}.invoice-customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.invoice-customer-card{display:grid;gap:16px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfcfe;color:inherit;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.invoice-customer-card:hover{border-color:#c5d3e8;box-shadow:0 10px 26px rgba(31,48,77,.07);transform:translateY(-1px)}.invoice-customer-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.invoice-customer-card-head>div{display:flex;align-items:center;gap:11px;min-width:0}.invoice-customer-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:12px;;;font-weight:900}.invoice-customer-card-head strong,.invoice-customer-card-head small{display:block}.invoice-customer-card-head strong{font-size:14px}.invoice-customer-card-head small{margin-top:3px;color:var(--muted);font-size:11px}.invoice-customer-total{font-size:16px;font-weight:850;white-space:normal}.invoice-customer-values{display:flex;gap:8px;flex-wrap:wrap}.invoice-value{display:grid;gap:2px;min-width:92px;padding:9px 11px;border-radius:11px;;;font-size:9px;font-weight:750}.invoice-value b{font-size:12px;color:var(--text)}.invoice-customer-open{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--line);color:#536177;font-size:11px;font-weight:750}.invoice-customer-open span{font-size:16px}@media(max-width:900px){.invoice-upload-form,.invoice-customer-grid{grid-template-columns:1fr}.invoice-upload-form .btn{width:100%}}@media(max-width:560px){.invoice-customer-card-head{flex-direction:column}.invoice-customer-total{padding-left:53px}}


/* v5.2.1 · Rechnungs-Cockpit UI + Asset Cache Busting */
.invoice-page .invoice-upload{padding:14px 18px}
.invoice-page .invoice-upload .panel-head{margin-bottom:6px}
.invoice-page .invoice-upload .eyebrow{font-size:9px}
.invoice-page .invoice-upload .panel-head h3{margin:2px 0 0}
.invoice-page .invoice-upload-form{display:grid;grid-template-columns:minmax(260px,1fr) 170px;gap:12px;align-items:end}
.invoice-page .invoice-upload-form label{margin:0}
.invoice-page .invoice-upload-form .btn{width:100%;min-width:0}
.invoice-page .invoice-upload>.muted{font-size:10px;margin:7px 0 0}
.invoice-page .invoice-customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.invoice-page a.invoice-customer-card{display:grid;grid-template-columns:1fr;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;;;text-decoration:none;min-width:0}
.invoice-page .invoice-customer-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.invoice-page .invoice-customer-card-head>div{display:flex;align-items:center;gap:11px;min-width:0}
.invoice-page .invoice-customer-avatar{display:grid;place-items:center;width:42px;height:42px;min-width:42px;min-height:42px;padding:0;margin:0;border-radius:12px;;;font-size:14px;font-weight:900;line-height:1}
.invoice-page .invoice-customer-card-head strong{display:block;font-size:14px;line-height:1.25}
.invoice-page .invoice-customer-card-head small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.2}
.invoice-page .invoice-customer-total{display:block;width:auto;height:auto;padding:0;margin:0;background:transparent;color:var(--text);border-radius:0;font-size:16px;font-weight:850;line-height:1.3;white-space:normal}
.invoice-page .invoice-customer-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.invoice-page .invoice-value{display:grid;gap:3px;width:auto;min-width:0;height:auto;min-height:54px;padding:9px 11px;margin:0;border-radius:11px;background:#f1f4f8;color:var(--muted);font-size:9px;font-weight:750;line-height:1.2}
.invoice-page .invoice-value b{display:block;font-size:12px;line-height:1.2;color:var(--text)}
.invoice-page .invoice-customer-open{display:flex;justify-content:space-between;align-items:center;padding-top:11px;border-top:1px solid var(--line);color:#536177;font-size:10px;font-weight:750}
.invoice-page .invoice-customer-open span{font-size:16px}
@media(max-width:900px){.invoice-page .invoice-customer-grid{grid-template-columns:1fr}.invoice-page .invoice-upload-form{grid-template-columns:1fr}.invoice-page .invoice-customer-values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.invoice-page .invoice-customer-card-head{flex-direction:column}.invoice-page .invoice-customer-total{padding-left:53px}}


/* v5.3.0 Kundenportal: beruhigter Website Status */
.customer-care-note{color:#64748b;margin-top:4px}.customer-site-status{display:inline-flex;align-items:center;justify-content:center;white-space:normal;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.customer-site-status.online{background:#e8f8ef;color:#168447}.customer-site-status.care{background:#edf3ff;color:#3568d4}.customer-site-status.error{background:#fdecec;color:#d92d20}.customer-care-note.error{color:#d92d20;font-weight:700}.customer-site-row{min-height:74px}@media(max-width:720px){.customer-site-row{align-items:flex-start}.customer-site-status{margin-top:4px}}


/* v5.3.2 Kunden-Webseitenansicht + Layout Guard Zielklassen */
.customer-sites-head{margin-bottom:16px}.customer-sites-panel{max-width:none}.customer-sites-panel .panel-head{margin-bottom:12px}.customer-sites-panel .customer-site-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-sites-panel .site-row-link{display:block;color:inherit;text-decoration:none}.customer-sites-panel .customer-site-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;min-height:92px}.customer-sites-panel .customer-site-row:hover{background:#fbfcff;border-color:#c8d5e8}.customer-sites-panel .site-icon{width:44px;height:44px;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:var(--soft)}.customer-sites-panel .site-logo{max-width:100%;max-height:100%;object-fit:contain}.customer-site-detail{margin-bottom:18px}.customer-site-detail .panel-head{margin-bottom:10px}.customer-site-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.customer-site-detail-facts>div{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.customer-site-detail-facts span,.customer-site-detail-facts strong{display:block}.customer-site-detail-facts span{font-size:10px;color:var(--muted);margin-bottom:4px}.customer-site-detail-facts strong{font-size:12px;overflow-wrap:anywhere}@media(max-width:850px){.customer-sites-panel .customer-site-list{grid-template-columns:1fr}}@media(max-width:620px){.customer-sites-panel .customer-site-row{grid-template-columns:auto minmax(0,1fr)}.customer-site-detail-facts{grid-template-columns:1fr}}


/* v5.4.0 Rechnungs PDF Vorschau */
.invoice-pdf-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin:0 0 14px}.invoice-pdf-preview{margin-bottom:18px;padding:16px}.invoice-pdf-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.invoice-pdf-preview-head h3{margin:2px 0 0}.invoice-pdf-preview-head>.muted{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.invoice-pdf-object{display:block;width:100%;height:760px;border:1px solid var(--line);border-radius:12px;background:#eef2f7}.invoice-pdf-fallback{display:grid;place-items:center;align-content:center;gap:8px;min-height:360px;padding:32px;text-align:center;background:#f8fafc}.invoice-pdf-fallback p{margin:0;color:var(--muted)}.invoice-pdf-fallback>div{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:6px}@media(max-width:900px){.invoice-pdf-object{height:620px}}@media(max-width:620px){.invoice-pdf-preview{padding:10px}.invoice-pdf-preview-head{align-items:flex-start;flex-direction:column}.invoice-pdf-preview-head>.muted{max-width:100%}.invoice-pdf-object{height:480px}.invoice-pdf-actions{justify-content:stretch}}


/* v5.5.0 PWA / Responsive Layout Guard */
body{overflow-x:hidden}img,iframe,object,embed,video{max-width:100%}.content,.panel,.workspace,.dashboard-grid,.customer-sites-panel,.invoice-page{min-width:0}.pwa-responsive-sentinel{display:none}
@media(max-width:900px){.main{width:100%;max-width:100%}.topbar{width:100%}.content{max-width:100%}.workspace>.sticky{top:auto}}
@media(max-width:620px){.panel-head{flex-wrap:wrap}.list article{min-width:0}.list-main{max-width:100%}.btn{min-height:44px}.mobile-menu{min-width:44px;min-height:44px}.invoice-pdf-object{max-width:100%}}

/* v5.6.0 Kunden Online Status */
.presence-dot{display:inline-block;width:10px;height:10px;border-radius:999px;flex:0 0 10px;background:#9ca3af;box-shadow:0 0 0 3px rgba(156,163,175,.14)}
.presence-dot.online{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.14)}
.presence-dot.offline{background:#94a3b8}
.customer-presence{display:flex!important;align-items:center;gap:7px;margin-top:8px;font-size:12px;line-height:1.35;color:var(--muted,#6b7280);white-space:normal}
.customer-presence.online{color:#15803d;font-weight:700}
.presence-state{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:normal}
.presence-state.online{background:rgba(34,197,94,.12);color:#15803d}
.presence-state.offline{background:rgba(148,163,184,.14);color:#64748b}

.presence-list{display:grid;gap:8px}
.presence-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line,#e5e7eb);border-radius:14px;text-decoration:none;color:inherit;transition:.18s ease}
.presence-list>a:hover{transform:translateY(-1px);border-color:rgba(99,102,241,.3)}
.presence-list strong,.presence-list small{display:block}.presence-list small{margin-top:2px;color:var(--muted,#6b7280)}
.customer-presence-panel{overflow:hidden}
.presence-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0 18px;border-bottom:1px solid var(--line,#e5e7eb)}
.presence-summary>div:first-child{display:flex;align-items:flex-start;gap:12px;min-width:0}.presence-summary strong,.presence-summary small{display:block}.presence-summary small{margin-top:4px;color:var(--muted,#6b7280)}
.presence-login{text-align:right;flex:0 0 auto}.presence-login span,.presence-login strong{display:block}.presence-login span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#6b7280)}
.session-history-head{margin-top:18px}
.session-history{display:grid;gap:8px}
.session-row{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(115px,1fr));gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line,#e5e7eb);border-radius:14px}
.session-main{display:flex;align-items:center;gap:10px;min-width:0}.session-main strong,.session-main small{display:block}.session-main small{margin-top:3px;color:var(--muted,#6b7280)}
.session-row>div:not(.session-main) span,.session-row>div:not(.session-main) strong{display:block}.session-row>div:not(.session-main) span{font-size:11px;color:var(--muted,#6b7280);margin-bottom:3px}.session-row>div:not(.session-main) strong{font-size:13px}
@media(max-width:900px){.session-row{grid-template-columns:1fr 1fr}.session-main{grid-column:1/-1}.presence-summary{align-items:flex-start}}
@media(max-width:620px){.presence-list>a{grid-template-columns:auto minmax(0,1fr)}.presence-list .presence-state{grid-column:2;justify-self:start}.presence-summary{flex-direction:column}.presence-login{text-align:left}.session-row{grid-template-columns:1fr}.session-main{grid-column:auto}.customer-presence-panel{padding-left:14px;padding-right:14px}}

/* v5.7.0 Kundenaktivitäten & Benachrichtigungen */
.notification-bell{position:relative;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;color:inherit;text-decoration:none;background:var(--panel)}
.notification-bell svg{width:18px;height:18px}.notification-bell b{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--danger);color:#fff;font-size:10px;display:grid;place-items:center}
.activities-panel{max-width:980px}.event-list{display:grid;gap:10px}.event-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px}.event-row.unread{border-width:2px}.event-icon{width:40px;height:40px;border-radius:12px;background:var(--soft);display:grid;place-items:center}.event-icon svg{width:18px}.event-copy{min-width:0}.event-copy>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.event-copy p{margin:4px 0;color:var(--muted)}.event-copy small{color:var(--muted)}.event-new{font-size:9px;font-weight:800;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;padding:3px 6px}.event-open{font-weight:700;text-decoration:none;white-space:normal}
@media(max-width:620px){.notification-bell{width:44px;height:44px}.event-row{grid-template-columns:38px minmax(0,1fr);padding:12px}.event-open{grid-column:2}.activities-panel{min-width:0}}

/* v5.8.0 Kundenkommunikation */
.request-reply-panel{min-width:0}.timeline-item.timeline-reply{padding:14px 0}.timeline-item.timeline-reply .timeline-dot{background:var(--accent)}.request-attachments{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}.request-attachment{display:inline-flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;text-decoration:none;min-width:0}.request-attachment svg{width:16px;flex:0 0 auto}.request-attachment span{display:grid;min-width:0;overflow-wrap:anywhere}.request-attachment small{font-size:10px}.request-reply-panel textarea{min-height:110px}
@media(max-width:620px){.request-reply-panel{padding:16px}.request-attachments{display:grid}.request-attachment{width:100%}.request-reply-panel .btn{width:100%;min-height:44px}}.activity-filters{margin-bottom:14px}.activity-filter-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.activity-filter-form label{min-width:150px;flex:1}.activity-filter-form select{width:100%}
@media(max-width:620px){.activity-filter-form{display:grid;grid-template-columns:1fr}.activity-filter-form label,.activity-filter-form .btn{width:100%;min-width:0}}

/* v5.8.5 Dashboard Cockpit vs. Aktivitäten Archiv */
.dashboard-activity-preview{max-width:none}.dashboard-activity-preview-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.dashboard-activity-preview-row{display:grid;grid-template-columns:34px minmax(0,1fr) 18px;gap:9px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:inherit;background:var(--surface-2);min-width:0}.dashboard-activity-preview-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--border)}.dashboard-activity-preview-icon svg{width:16px}.dashboard-activity-preview-copy{min-width:0}.dashboard-activity-preview-copy strong,.dashboard-activity-preview-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-activity-preview-copy small{margin-top:4px;color:var(--muted);font-size:11px}.dashboard-activity-preview-arrow{font-size:22px;color:var(--muted)}
.activity-archive{display:grid;gap:16px}.activity-archive-head{margin-bottom:0}.activity-archive-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.activity-archive-stats>div{padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.activity-archive-stats span,.activity-archive-stats strong{display:block}.activity-archive-stats span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.activity-archive-stats strong{margin-top:6px;font-size:20px}.activity-archive-toolbar{margin-bottom:0}.activity-full-history{max-width:none}.activity-full-history .event-list{display:grid;grid-template-columns:1fr}.activity-full-history .event-row{position:relative;padding-left:18px}.activity-full-history .event-row:before{content:"";position:absolute;left:0;top:18px;bottom:-18px;width:1px;background:var(--border)}.activity-full-history .event-row:last-child:before{bottom:18px}
@media(max-width:1100px){.dashboard-activity-preview-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-activity-preview-row:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:620px){.dashboard-activity-preview-list{grid-template-columns:1fr}.dashboard-activity-preview-row:last-child:nth-child(odd){grid-column:auto}.activity-archive-stats{grid-template-columns:1fr}.activity-archive-toolbar{padding:14px}.activity-full-history{padding:14px}}

/* v5.9.0 Dokumente nach Kunden */
.document-page{display:grid;gap:18px}.document-upload{padding:18px 20px}.document-overview{min-height:360px}.document-overview .panel-head h3{margin-bottom:4px}.document-customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.document-customer-card{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfcfe;color:inherit;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.document-customer-card:hover{border-color:#c5d3e8;box-shadow:0 10px 26px rgba(31,48,77,.07);transform:translateY(-1px)}.document-customer-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.document-customer-card-head>div{display:flex;align-items:center;gap:11px;min-width:0}.document-customer-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:12px;background:#172033;color:#fff;font-weight:900}.document-customer-card-head strong,.document-customer-card-head small{display:block}.document-customer-card-head strong{font-size:14px}.document-customer-card-head small{margin-top:3px;color:var(--muted);font-size:11px}.document-customer-total{display:grid;place-items:center;min-width:34px;height:34px;padding:0 10px;border-radius:10px;background:#eef2f7;font-size:14px;font-weight:850}.document-customer-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.document-value{display:grid;gap:2px;padding:9px 11px;border-radius:11px;background:#f1f4f8;color:var(--muted);font-size:9px;font-weight:750}.document-value b{font-size:12px;color:var(--text)}.document-value.visible{background:#eaf7f0;color:#27835a}.document-value.visible b{color:#27835a}.document-value.internal{background:#eef2f7;color:#536177}.document-customer-latest{display:grid;gap:3px;padding:11px 12px;border-radius:11px;background:#f7f9fc}.document-customer-latest span,.document-customer-latest small{font-size:9px;color:var(--muted)}.document-customer-latest strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-category-badge{justify-self:start;display:inline-flex;align-items:center;min-height:22px;padding:4px 8px;border-radius:999px;background:#eef2f7;color:#46556b;font-size:9px;font-style:normal;font-weight:800;line-height:1}.document-customer-open{display:flex;justify-content:space-between;align-items:center;padding-top:11px;border-top:1px solid var(--line);color:#536177;font-size:10px;font-weight:750}.document-customer-open span{font-size:16px}@media(max-width:900px){.document-customer-grid{grid-template-columns:1fr}}@media(max-width:560px){.document-customer-card-head{flex-direction:column}.document-customer-values{grid-template-columns:1fr}}

/* Dokument PDF Schnellansicht 5.10.0 */
.document-preview-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.document-pdf-preview{margin:0 0 18px;padding:16px}.document-pdf-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.document-pdf-preview-head h3{margin:2px 0 0}.document-pdf-preview-head>.muted{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.document-pdf-object{display:block;width:100%;height:760px;border:1px solid var(--line);border-radius:12px;background:#eef2f7}.document-pdf-fallback{display:grid;place-items:center;align-content:center;gap:8px;min-height:360px;padding:32px;text-align:center;background:#f8fafc}.document-pdf-fallback p{margin:0;color:var(--muted)}.document-pdf-fallback>div{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:6px}@media(max-width:900px){.document-pdf-object{height:620px}}@media(max-width:620px){.document-pdf-preview{padding:10px}.document-pdf-preview-head{align-items:flex-start;flex-direction:column}.document-pdf-preview-head>.muted{max-width:100%}.document-pdf-object{height:480px}.document-preview-actions{justify-content:stretch}.document-preview-actions .btn{flex:1 1 150px;text-align:center}}

.form .checkline{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f9fbfe}.form .checkline input[type=checkbox]{width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;margin:0;padding:0;accent-color:var(--primary)}

/* v5.13.0 Branding */
.branding-logo{display:block;max-width:100%;object-fit:contain}.brand-logo-slot{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;overflow:hidden}.sidebar-branding-logo{width:100%;height:100%;object-fit:contain;object-position:center}.login-logo-slot{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;overflow:hidden}.login-branding-logo{width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain;object-position:center}.branding-preview{display:flex;align-items:center;gap:18px;padding:18px;border:1px solid var(--border);border-radius:16px;margin:16px 0;background:var(--surface-2)}.branding-preview img{width:160px;height:72px;object-fit:contain;object-position:left center}.branding-preview div{display:flex;flex-direction:column;gap:4px}.branding-preview small{color:var(--muted)}.branding-reset-form{margin-top:12px}@media(max-width:640px){.branding-preview{align-items:flex-start;flex-direction:column}.branding-preview img{width:100%;object-position:left center}.brand-logo-slot{width:36px;height:36px;flex-basis:36px}}

.email-signature-settings{margin-top:18px;padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025)}.email-signature-settings h3{margin:4px 0 8px}

/* v5.14.1 E Mail Signatur Upload, Vorschau und Test */
.signature-assets-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}.signature-asset-card{padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:14px;}.signature-asset-card>strong{display:block;margin-bottom:10px}.signature-asset-preview{display:flex;align-items:center;justify-content:center;min-height:180px;margin-bottom:12px;padding:12px;border-radius:12px;background:#fff;overflow:hidden}.signature-photo-preview img{display:block;max-width:180px;max-height:260px;width:auto;height:auto}.signature-logo-preview img{display:block;max-width:240px;max-height:180px;width:auto;height:auto}.upload.compact{margin-top:0}.signature-remove-trigger{margin-top:10px;width:100%}.hidden-form{display:none}.signature-live-preview{margin-top:18px;border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;background:#fff}.signature-live-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--panel,#151922);color:var(--text,#fff)}.signature-live-preview iframe{display:block;width:100%;height:760px;border:0;background:#fff}.signature-test-panel{margin-top:18px;padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025)}.signature-test-panel h3{margin:4px 0 8px}.signature-test-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.signature-test-form .btn{min-height:44px}@media(max-width:780px){.signature-assets-grid{grid-template-columns:1fr}.signature-live-preview iframe{height:620px}.signature-test-form{grid-template-columns:1fr}.signature-test-form .btn{width:100%}}

/* RONVO 5.15 Aufgabenmanagement */
.task-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.task-list{display:flex;flex-direction:column;gap:10px}.task-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit;background:var(--card)}.task-row:hover{border-color:rgba(255,255,255,.18);transform:translateY(-1px)}.task-row.overdue{box-shadow:inset 3px 0 0 #ff6b6b}.task-priority{display:inline-flex;justify-content:center;align-items:center;min-height:28px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:rgba(255,255,255,.06)}.task-priority.high,.task-priority.urgent{background:rgba(255,107,107,.12)}.task-priority.low{opacity:.7}.status.in_progress{background:rgba(255,193,7,.12)}.status.done{background:rgba(63,214,142,.12)}
@media(max-width:900px){.task-metrics{grid-template-columns:1fr}.task-row{grid-template-columns:1fr auto}.task-priority{grid-column:1/-1;justify-self:start;padding:0 10px}.task-workspace{grid-template-columns:1fr}}
@media(max-width:620px){.task-row{grid-template-columns:1fr}.task-row .status{justify-self:start}}

/* v5.15.3 Aufgaben: klare Kundensichtbarkeit */
.task-visibility{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:normal;border:1px solid var(--border,#dbe2ea)}
.task-visibility.visible{background:#eef8f1;color:#287449}
.task-visibility.internal{background:#f4f6f8;color:#687385}
.task-customer-hidden{margin-bottom:16px}
@media(max-width:620px){.task-visibility{order:3}.task-row .status{order:4}}

/* v5.15.4 Kundenaufträge: interne Priorität und Sichtbarkeitskennzeichnung ausblenden */
.customer-task-row{grid-template-columns:minmax(0,1fr) auto}
.customer-task-row .list-main small:empty{display:none}
@media(max-width:620px){.customer-task-row{grid-template-columns:1fr}.customer-task-row .status{justify-self:start}}

/* v5.15.5 Aufgaben als Kalenderblock */
.task-schedule-box{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.task-schedule-box .form-section-head{display:grid;gap:3px}.task-schedule-box .form-section-head strong{font-size:13px}.task-schedule-box .form-section-head small{font-size:10px;color:var(--muted);line-height:1.45}
.task-calendar-block{box-shadow:inset 3px 0 0 rgba(99,102,241,.75)}.appointment-source{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:3px 8px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:10px;font-weight:800;white-space:normal}.task-calendar-source{margin-bottom:16px}.task-calendar-source a{font-weight:800}
@media(max-width:620px){.appointment-source{justify-self:start}.task-schedule-box .grid2{grid-template-columns:1fr}}

/* v5.15.7: klare Aufgaben-Zeitplanung */
.task-meta-box{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.task-timed-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(110px,.8fr) minmax(110px,.8fr);gap:12px}
.task-schedule-all-day{display:grid;gap:12px}
.task-multiday-toggle{margin-top:0}
.task-multiday-end{max-width:100%}
@media(max-width:620px){.task-timed-grid{grid-template-columns:1fr}}

/* v5.16.0 · Kalender Cockpit */
.calendar-cockpit{margin-bottom:22px;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.calendar-toolbar h2{margin:3px 0 0;font-size:24px;letter-spacing:-.035em}.calendar-nav{display:flex;align-items:center;gap:7px}.calendar-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 14px;color:var(--muted);font-size:10px;font-weight:750}.calendar-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%;background:var(--primary)}.legend-dot.task{background:#7c5ce7}.legend-dot.cancelled{background:var(--danger)}.calendar-weekdays,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;overflow:hidden;background:#f7f9fc}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.08em}.calendar-month-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-day{min-width:0;min-height:126px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day.outside{background:#f8fafc;color:#9aa5b5}.calendar-day.today{box-shadow:inset 0 0 0 2px rgba(59,110,234,.38)}.calendar-day-number{display:grid;place-items:center;border-radius:50%;font-weight:850}.calendar-day.today .calendar-day-number{background:var(--primary);color:#fff}.calendar-events{display:grid}.calendar-event{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px;align-items:center;min-width:0;border-radius:7px;background:#edf3ff;color:#315fc7;font-weight:750}.calendar-event.task{background:#f0edff;color:#6549c7}.calendar-event.cancelled{background:#fff0f2;color:#b83d50;text-decoration:line-through}.calendar-event time{opacity:.8}.calendar-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-more{padding:2px 5px;color:var(--muted)}.calendar-list-workspace{margin-top:0}@media(max-width:900px){.calendar-cockpit{overflow-x:auto}.calendar-weekdays,.calendar-month-grid{min-width:760px}.calendar-day{min-height:112px}}@media(max-width:620px){.calendar-cockpit{padding:14px}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-nav{width:100%;justify-content:space-between}.calendar-weekdays,.calendar-month-grid{min-width:700px}.calendar-day{min-height:104px;padding:7px}}

/* RONVO 5.16.1 Kalender Cockpit */
.calendar-cockpit{margin-bottom:18px;padding:20px 22px;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:10px}.calendar-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.calendar-view-switch{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--line);border-radius:11px;background:#f7f9fc}.calendar-view-switch a{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 11px;border-radius:8px;color:var(--muted);font-size:10px;font-weight:800}.calendar-view-switch a.active{background:#fff;color:var(--primary);box-shadow:0 2px 8px rgba(30,48,78,.08)}.calendar-nav{display:flex;align-items:center;gap:6px}.calendar-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:0 0 10px;color:var(--muted);font-size:10px;font-weight:750}.calendar-weekdays span{padding:7px 9px}.calendar-day{min-height:92px;padding:7px}.calendar-day-number{width:23px;height:23px;margin-bottom:4px;font-size:10px}.calendar-events{gap:3px}.calendar-event{padding:4px 5px;font-size:8.5px}.calendar-event time{font-size:7.5px}.calendar-more{font-size:7.5px}.calendar-list-workspace{grid-template-columns:minmax(360px,35%) minmax(0,65%);gap:18px}.calendar-list-workspace>.panel{min-height:0}.calendar-list-workspace>.grow{min-height:330px}.calendar-list-workspace .appointment-row{padding-top:12px;padding-bottom:12px}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden}.calendar-week-day{min-width:0;min-height:300px;border-right:1px solid var(--line);background:#fff}.calendar-week-day:last-child{border-right:0}.calendar-week-day.today{background:#f8fbff}.calendar-week-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:10px;border-bottom:1px solid var(--line);background:#f8fafc}.calendar-week-head strong{font-size:10px}.calendar-week-head span{font-size:9px;color:var(--muted)}.calendar-week-day.today .calendar-week-head{box-shadow:inset 0 -2px 0 var(--primary)}.calendar-week-events{display:grid;gap:7px;padding:9px}.calendar-week-event{display:grid;gap:3px;padding:8px;border-radius:9px;background:#edf3ff;color:#315fc7}.calendar-week-event.task{background:#f0edff;color:#6549c7}.calendar-week-event.cancelled{background:#fff0f2;color:#b83d50;text-decoration:line-through}.calendar-week-event time{font-size:8px;font-weight:850}.calendar-week-event strong{font-size:10px;line-height:1.3}.calendar-week-event small{font-size:8px;opacity:.78;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-free{display:block;padding:8px 4px;color:#a0a9b7;font-size:9px;text-align:center}.calendar-day-view{display:grid;gap:8px;min-height:260px}.calendar-day-event{display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid #dce7f5;border-radius:12px;background:#f8fbff}.calendar-day-event.task{border-color:#e1dafd;background:#faf8ff}.calendar-day-event.cancelled{border-color:#f4d8dd;background:#fff8f9}.calendar-day-time{font-size:12px;font-weight:850;color:var(--primary)}.calendar-day-event strong,.calendar-day-event small{display:block}.calendar-day-event strong{font-size:12px}.calendar-day-event small{margin-top:3px;color:var(--muted);font-size:9px}.calendar-open{font-size:10px;font-weight:800;color:var(--primary)}.calendar-day-empty{min-height:240px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted)}.calendar-day-empty strong{color:var(--text);font-size:14px}.calendar-day-empty span{margin-top:5px;font-size:11px}
@media(max-width:1100px){.calendar-week-grid{overflow-x:auto;grid-template-columns:repeat(7,minmax(150px,1fr))}.calendar-list-workspace{grid-template-columns:minmax(320px,38%) minmax(0,62%)}}
@media(max-width:900px){.calendar-cockpit{overflow-x:auto}.calendar-toolbar-actions{width:100%;justify-content:space-between}.calendar-weekdays,.calendar-month-grid{min-width:760px}.calendar-day{min-height:88px}.calendar-list-workspace{grid-template-columns:1fr}.calendar-week-grid{min-width:900px}.calendar-day-event{grid-template-columns:90px minmax(0,1fr) auto}}
@media(max-width:620px){.calendar-cockpit{padding:14px}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-toolbar-actions{align-items:stretch;flex-direction:column}.calendar-view-switch{width:100%}.calendar-view-switch a{flex:1}.calendar-nav{width:100%;justify-content:space-between}.calendar-weekdays,.calendar-month-grid{min-width:700px}.calendar-day{min-height:82px;padding:6px}.calendar-day-view{min-width:0}.calendar-day-event{grid-template-columns:1fr;gap:6px}.calendar-open{justify-self:start}.calendar-list-workspace{gap:14px}}

/* RONVO Responsive Foundation v5.16.2
   Tablet: give the workspace the full viewport and stack primary work areas.
   Mobile: keep only core information dense; secondary information wraps below instead of overflowing. */
html,body{max-width:100%;overflow-x:clip}
.main,.content,.panel,.workspace>*,.settings-grid>*,.dashboard-grid>*,.customer-grid>*,.invoice-customer-grid>*,.document-customer-grid>*,.task-workspace>*,.calendar-list-workspace>*{min-width:0}
.panel-head>*{min-width:0}
.panel-head h3,.panel-head p,.list-main,.customer-card,.invoice-customer-card,.document-customer-card,.health-site-row,.event-row,.task-row{overflow-wrap:anywhere}
.codebox,code,pre,.api-secret,.customer-contact,.muted{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.form input,.form select,.form textarea,.btn{max-width:100%}

@media(max-width:1180px){
  :root{--sidebar-w:270px}
  .sidebar{transform:translateX(-102%);transition:transform .22s ease;box-shadow:18px 0 50px rgba(8,15,30,.18)}
  .nav-open .sidebar{transform:translateX(0)}
  .main{margin-left:0}
  .mobile-menu{display:block}
  .topbar{padding:0 24px;justify-content:flex-start}
  .topbar>div:nth-child(2){flex:1;min-width:0}
  .content{padding:26px 24px 80px}
  .backdrop{position:fixed;inset:0;z-index:40;background:rgba(8,15,30,.38)}
  .nav-open .backdrop{display:block}
  .workspace,.settings-grid,.task-workspace,.calendar-list-workspace{grid-template-columns:1fr!important}
  .workspace>.sticky,.settings-nav{position:static}
  .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-nav{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-inline:contain;padding:8px;scrollbar-width:thin}
  .settings-nav a{flex:0 0 auto;white-space:nowrap}
  .health-site-row{grid-template-columns:auto minmax(0,1fr) auto!important}
  .signature-assets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .signature-live-preview{max-width:100%;overflow:hidden}
  .signature-live-preview iframe{width:100%;max-width:100%}
}

@media(max-width:820px){
  .topbar{height:74px;padding:0 16px;gap:12px}
  .topbar h1{font-size:18px}
  .topbar p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48vw}
  .top-actions{gap:6px}
  .top-actions .version{display:none}
  .content{padding:18px 14px 84px}
  .welcome,.check-hero{padding:22px 20px;align-items:flex-start}
  .welcome h2,.check-hero h2{font-size:24px}
  .metrics,.check-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:1fr}
  .customer-grid,.invoice-customer-grid,.document-customer-grid{grid-template-columns:1fr!important}
  .health-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .signature-assets-grid{grid-template-columns:1fr}
  .signature-test-form{grid-template-columns:1fr}
  .signature-test-form .btn{width:100%}
  .calendar-cockpit{overflow-x:auto;overscroll-behavior-inline:contain}
  .calendar-weekdays,.calendar-month-grid{min-width:700px}
  .calendar-week-grid{min-width:840px;overflow-x:auto}
  .calendar-toolbar{align-items:flex-start;flex-direction:column}
  .calendar-toolbar-actions{width:100%;justify-content:space-between}
  .task-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .activity-archive-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .activity-filter-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
  .activity-filter-form .btn{width:100%}
}

@media(max-width:620px){
  .topbar{height:68px;padding:0 12px}
  .topbar p{display:none}
  .topbar h1{font-size:16px}
  .content{padding:12px 10px 78px}
  .panel{padding:16px;border-radius:16px}
  .panel-head{gap:10px;flex-wrap:wrap}
  .panel-head>a{margin-left:auto}
  .welcome,.check-hero{padding:18px 16px;border-radius:18px}
  .welcome h2,.check-hero h2{font-size:21px}
  .welcome-badge{display:none}
  .metrics,.check-metrics{grid-template-columns:1fr 1fr;gap:8px}
  .metric{padding:12px;gap:9px}
  .metric-icon{width:34px;height:34px;flex-basis:34px}
  .metric small{font-size:10px}
  .metric strong{font-size:19px}
  .grid2,.info-grid,.security-list,.invoice-facts,.health-facts,.task-timed-grid,.task-meta-box .grid2{grid-template-columns:1fr!important}
  .settings-nav{margin:0 -2px 2px;padding:6px}
  .settings-nav a{min-height:38px;padding:0 11px;display:inline-flex;align-items:center;border-radius:9px}
  .codebox{font-size:10px;line-height:1.45}
  .health-overview{grid-template-columns:1fr 1fr}
  .health-site-row{grid-template-columns:auto minmax(0,1fr)!important;align-items:start!important}
  .health-site-row>.health-badge{grid-column:2;justify-self:start;margin-top:5px}
  .task-metrics,.activity-archive-stats{grid-template-columns:1fr}
  .task-row,.customer-task-row{grid-template-columns:1fr!important}
  .task-row .status,.task-visibility{justify-self:start}
  .activity-filter-form{grid-template-columns:1fr}
  .event-row{grid-template-columns:38px minmax(0,1fr)}
  .event-row>a,.event-row>.btn{grid-column:2;justify-self:start}
  .invoice-customer-card-head,.document-customer-card-head{flex-direction:column}
  .invoice-customer-values,.document-customer-values{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .customer-stats{gap:10px;flex-wrap:wrap}
  .signature-live-preview iframe{height:480px}
  .signature-asset-preview{min-height:130px}
  .calendar-cockpit{padding:12px}
  .calendar-toolbar-actions{align-items:stretch;flex-direction:column}
  .calendar-view-switch{width:100%}
  .calendar-view-switch a{flex:1}
  .calendar-nav{width:100%;justify-content:space-between}
  .calendar-weekdays,.calendar-month-grid{min-width:660px}
  .calendar-week-grid{min-width:800px}
  .calendar-day-event{grid-template-columns:1fr;gap:6px}
  .calendar-open{justify-self:start}
}

@media(max-width:420px){
  .metrics,.check-metrics,.health-overview{grid-template-columns:1fr}
  .invoice-customer-values,.document-customer-values{grid-template-columns:1fr!important}
  .top-actions{margin-left:auto}
  .panel-head>a{width:100%;margin-left:0}
  .calendar-weekdays,.calendar-month-grid{min-width:620px}
}

/* RONVO Mobile Contract Fix v5.16.6 */
@media(max-width:900px){
  .invoice-page .invoice-customer-grid{grid-template-columns:1fr!important}
  .invoice-page .invoice-upload-form{grid-template-columns:1fr}
}
@media(max-width:767px){
  .customer-sites-panel .customer-site-list{grid-template-columns:1fr}
  .invoice-page .invoice-customer-grid{grid-template-columns:1fr!important}
  .invoice-page .invoice-customer-values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .invoice-page .invoice-customer-card,.invoice-page .invoice-customer-card-head,.invoice-page .invoice-customer-card-head>div{min-width:0;max-width:100%}
}
@media(max-width:620px){
  .customer-sites-panel .customer-site-row{grid-template-columns:auto minmax(0,1fr)!important}
  .customer-sites-panel .customer-site-status{grid-column:2;justify-self:start;max-width:100%;white-space:normal}
  .customer-site-detail-facts{grid-template-columns:1fr}
  .invoice-pdf-preview{padding:10px}
  .invoice-pdf-preview-head{align-items:flex-start;flex-direction:column}
  .invoice-pdf-preview-head>.muted{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .invoice-pdf-object{width:100%;max-width:100%;height:480px}
  .invoice-pdf-actions{justify-content:stretch;flex-wrap:wrap}
  .invoice-pdf-actions .btn{flex:1 1 150px;text-align:center;max-width:100%}
}
@media(max-width:420px){
  .invoice-page .invoice-customer-values{grid-template-columns:1fr}
  .invoice-page .invoice-customer-card-head{flex-direction:column;gap:10px}
  .invoice-page .invoice-customer-total{padding-left:0}
}


/* RONVO Mid Width Layout Foundation v5.16.8
   React to the usable content width after the sidebar, not only to viewport width. */
.content{container-type:inline-size;container-name:ronvo-content}
.customers-workspace,.sites-workspace,.task-workspace,.calendar-list-workspace,.notes-workspace{min-width:0}
.customer-card{overflow-wrap:normal;word-break:normal}
.customer-card strong,.customer-number,.customer-presence,.customer-state{overflow-wrap:break-word;word-break:normal}
.health-site-row .list-main strong,.health-site-row .list-main small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:normal}
.health-site-row .health-badge,.health-site-row .status,.appointment-row .status,.appointment-source{max-width:100%;justify-self:start}
.appointment-row{min-width:0;flex-wrap:wrap;align-items:flex-start}
.appointment-row .list-main{flex:1 1 260px}
.appointment-row .status,.appointment-row .appointment-source{flex:0 0 auto}
.task-row .list-main{min-width:0}
.task-row .list-main strong,.task-row .list-main small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;word-break:normal}
.invoice-customer-total{overflow-wrap:normal;word-break:normal}

.api-version-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}

@container ronvo-content (max-width:1100px){
  .customers-workspace,.sites-workspace,.task-workspace,.calendar-list-workspace,.notes-workspace{grid-template-columns:1fr}
  .customers-workspace>.sticky,.sites-workspace>.sticky,.task-workspace>.sticky,.calendar-list-workspace>.sticky{position:static}
  .dashboard-grid{grid-template-columns:1fr}
  .dashboard-activity-preview-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-activity-preview-row:last-child:nth-child(odd){grid-column:1/-1}
  .dashboard-activity-preview-copy strong,.dashboard-activity-preview-copy small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;word-break:normal}
  .signature-assets-grid{grid-template-columns:1fr}
  .upload.compact input[type="file"]{width:100%;max-width:100%;min-width:0}
  .customer-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
  .health-site-row{grid-template-columns:auto minmax(0,1fr)}
  .health-site-row>.health-badge,.health-site-row>.status{grid-column:2;justify-self:start;margin-top:4px}
  .task-row{grid-template-columns:minmax(0,1fr) auto}
  .task-priority{grid-column:1/-1;justify-self:start}
  .appointment-row .list-main{flex-basis:320px}
}

@container ronvo-content (max-width:760px){
  .dashboard-activity-preview-list{grid-template-columns:1fr}
  .dashboard-activity-preview-row:last-child:nth-child(odd){grid-column:auto}
  .customer-grid,.invoice-customer-grid,.document-customer-grid{grid-template-columns:1fr}
  .task-row,.customer-task-row{grid-template-columns:1fr}
  .task-row .status,.task-visibility{justify-self:start}
  .appointment-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px}
  .appointment-row .list-main{grid-column:2;min-width:0}
  .appointment-row .appointment-source,.appointment-row .status{grid-column:2;justify-self:start}
}


/* RONVO Invoice Amount Render Guard v5.16.9 */
.invoice-amount{display:inline-block;max-width:100%;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.invoice-value .invoice-amount{justify-self:start}


/* RONVO UX Consolidation v5.17.0 */
.dashboard-grid{align-items:start}
.dashboard-grid>.panel{min-height:0;height:auto}
.dashboard-presence{margin-top:22px;padding-bottom:18px}
.dashboard-presence .presence-list a{padding-top:9px;padding-bottom:9px}
.dashboard-activity-preview{margin-top:22px}
.dashboard-activity-preview-list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.dashboard-activity-preview-row{padding:10px 11px}
.dashboard-activity-preview-copy strong,.dashboard-activity-preview-copy small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;word-break:normal}

.empty-state{width:100%;min-height:132px;display:flex;flex:1 1 132px;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;align-self:stretch}
.empty-state-icon{flex:0 0 42px;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eef3fa;color:#77849a;font-weight:900}
.empty-state>div{display:grid;justify-items:center;gap:3px;width:min(100%,420px);margin:0 auto}
.empty-state strong{font-size:13px;line-height:1.35;color:var(--text);text-align:center}
.empty-state small{font-size:11px;line-height:1.45;color:var(--muted);text-align:center}

.request-workspace,.task-workspace,.notes-workspace{align-items:start}
.request-overview-panel,.task-overview-panel,.notes-panel{min-height:0;height:auto}
.request-overview-panel .empty,.task-overview-panel .empty,.notes-panel .empty{min-height:132px}
.task-schedule-box .form-section-head,.task-meta-box .form-section-head{margin-bottom:10px}
.task-workspace>.sticky{align-self:start}

.customer-card-link{display:block;border-radius:16px;transition:transform .16s ease,box-shadow .16s ease}
.customer-card-link:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(31,48,77,.07)}
.customer-card-link:focus-visible{outline:3px solid #dce7ff;outline-offset:3px}
.customer-card-link:hover .customer-card{border-color:#c5d3e8;background:#fff}

.activity-full-history .event-row{padding:10px 12px;min-height:0}
.activity-full-history .event-icon{width:34px;height:34px}
.activity-full-history .event-copy p{margin:2px 0 0;line-height:1.35}
.activity-full-history .event-copy small{margin-top:2px}

.settings-grid{align-items:start}
.settings-panel{display:none}
.settings-panel.is-active{display:block}
.settings-nav a{cursor:pointer}
.settings-nav a.active{background:#edf3ff;color:var(--primary);font-weight:800}
.signature-live-preview{max-width:100%;overflow:visible}
.signature-live-preview iframe{height:330px;max-height:42vh}
.signature-live-preview-head{position:sticky;top:0;z-index:1}

.connector-status-row{grid-template-columns:minmax(190px,1.6fr) repeat(5,minmax(92px,1fr));align-items:start}
.connector-status-row>div{min-width:0}
.connector-status-row strong,.connector-status-row small{overflow-wrap:break-word;word-break:normal}

@container ronvo-content (max-width:1100px){
  .dashboard-activity-preview-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-panel{min-width:0}
  .connector-status-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .connector-status-row>div:first-child{grid-column:1/-1}
}
@container ronvo-content (max-width:760px){
  .dashboard-activity-preview-list{grid-template-columns:1fr}
  .connector-status-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .connector-status-row>div:first-child{grid-column:1/-1}
  .signature-live-preview iframe{height:280px;max-height:none}
}
@container ronvo-content (max-width:480px){
  .connector-status-row{grid-template-columns:1fr}
  .connector-status-row>div:first-child{grid-column:auto}
}

/* RONVO Dashboard Independent Column Flow v5.17.2 */
.dashboard-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;margin-top:22px}
.dashboard-column{display:flex;flex-direction:column;gap:22px;min-width:0;align-self:start}
.dashboard-column>.panel{min-width:0;min-height:0;height:auto}
@container ronvo-content (max-width:1100px){
  .dashboard-flow{grid-template-columns:1fr}
  .dashboard-column{gap:18px}
}
@media(max-width:900px){
  .dashboard-flow{grid-template-columns:1fr}
}


/* =========================================================
   RONVO Unified Layout Core v5.18.0
   Gemeinsame Layout Engine fuer Admin und Kundenportal.
   Modulspezifische Klassen duerfen Inhalt gestalten, nicht die Grundarchitektur.
   ========================================================= */
:root{
  --ronvo-space-xs:6px;
  --ronvo-space-sm:10px;
  --ronvo-space-md:14px;
  --ronvo-space-lg:22px;
  --ronvo-workspace-gap:22px;
  --ronvo-panel-gap:18px;
  --ronvo-form-gap:14px;
}
.ronvo-workspace,.ronvo-workspace-two-column,.ronvo-workspace-sidebar,.ronvo-independent-columns{min-width:0}
.ronvo-workspace>.panel,.ronvo-workspace-single>.panel,.ronvo-workspace-two-column>.panel,.ronvo-workspace-sidebar .panel{min-width:0;height:auto;align-self:start}
.ronvo-independent-columns .ronvo-column>.panel{min-width:0;height:auto;align-self:stretch;width:100%;max-width:100%}
.ronvo-workspace-two-column{display:flex;align-items:flex-start;gap:var(--ronvo-workspace-gap);width:100%}
.ronvo-workspace-two-column>*,.ronvo-independent-columns>*{min-width:0;align-self:flex-start}
.ronvo-workspace-two-column>:first-child{flex:0 1 430px}
.ronvo-workspace-two-column>:last-child{flex:1 1 0}
.ronvo-workspace-two-column>:only-child{flex:1 1 100%}
.ronvo-independent-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ronvo-workspace-gap);align-items:start}
.ronvo-column{display:flex;flex-direction:column;gap:var(--ronvo-workspace-gap);min-width:0;align-self:start}
.ronvo-column>.panel{height:auto;min-height:0}
.ronvo-workspace-sidebar{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--ronvo-workspace-gap);align-items:start}
.ronvo-workspace-single{display:block;min-width:0}
.ronvo-card-grid{min-width:0;align-items:start}
.ronvo-workspace .grow,.ronvo-workspace-two-column .grow{min-height:0;height:auto}
.ronvo-workspace .empty,.ronvo-workspace-two-column .empty{height:auto}
.ronvo-workspace .form{gap:var(--ronvo-form-gap)}
.ronvo-workspace .panel-head{gap:var(--ronvo-panel-gap)}
/* Alte Modul Grid Vorgaben sind bei Unified Workspaces wirkungslos, weil der Core Flex als verbindliche Engine setzt. */
.ronvo-workspace-two-column.customers-workspace,.ronvo-workspace-two-column.sites-workspace,.ronvo-workspace-two-column.task-workspace,.ronvo-workspace-two-column.calendar-list-workspace,.ronvo-workspace-two-column.request-workspace,.ronvo-workspace-two-column.notes-workspace{grid-template-columns:none}
@container ronvo-content (max-width:1100px){
  .ronvo-workspace-two-column{flex-direction:column;gap:18px}
  .ronvo-workspace-two-column>*{width:100%;flex:1 1 auto}
  .ronvo-independent-columns{grid-template-columns:1fr;gap:18px}
  .ronvo-workspace-sidebar{grid-template-columns:1fr;gap:18px}
}
@container ronvo-content (max-width:760px){
  .ronvo-workspace-two-column,.ronvo-column,.ronvo-independent-columns,.ronvo-workspace-sidebar{gap:14px}
  .ronvo-workspace .panel,.ronvo-workspace-single .panel,.ronvo-independent-columns .panel{width:100%;max-width:100%}
}
@media(max-width:900px){
  .ronvo-workspace-two-column{flex-direction:column}
  .ronvo-workspace-two-column>*{width:100%;flex:1 1 auto}
  .ronvo-workspace-sidebar{grid-template-columns:1fr}
}

/* v5.18.6 unified module page headers */
.module-page-header{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 32px;margin-bottom:22px;border:1px solid #dfe7f3;border-radius:26px;background:linear-gradient(135deg,#fff,#f4f8ff);box-shadow:var(--shadow);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.module-page-header>div{min-width:0;max-width:100%}
.module-page-header .eyebrow{display:block;margin:0;font-family:inherit;font-size:10px;font-weight:850;line-height:1.2;letter-spacing:.16em;color:#6d7b92;text-transform:uppercase}
.module-page-header h2{margin:5px 0 7px;font-family:inherit;font-size:28px;font-weight:750;line-height:1.15;letter-spacing:-.04em;color:var(--text)}
.module-page-header .muted{margin:0;max-width:980px;font-family:inherit;font-size:13px;font-weight:400;line-height:1.55;color:var(--muted)}
.module-page-header form{flex:0 0 auto;align-self:center}
@media(max-width:767px){.module-page-header{gap:12px;padding:22px 18px;margin-bottom:18px;border-radius:20px;align-items:flex-start;flex-wrap:wrap}.module-page-header h2{font-size:23px}.module-page-header .muted{font-size:13px}.module-page-header form{width:100%;align-self:auto}.module-page-header form .btn{width:100%}}

/* v5.19.0 Wartungsvertrag */
.task-schedule-box[hidden],.task-due-field[hidden]{display:none!important}

/* v5.20.0 · Central Design & Theme System */
:root{--color-background:var(--bg);--color-surface:var(--panel);--color-surface-secondary:var(--soft);--color-primary:var(--primary);--color-primary-hover:var(--primary2);--color-text:var(--text);--color-text-secondary:var(--muted);--color-border:var(--line);--color-navigation:var(--sidebar);--color-navigation-active:var(--primary);--color-success:var(--success);--color-warning:var(--warning);--color-danger:var(--danger);--color-info:var(--primary)}
.sidebar{background:linear-gradient(180deg,var(--color-navigation),color-mix(in srgb,var(--color-navigation) 88%,#000));}.sidebar nav a.active{background:color-mix(in srgb,var(--color-navigation-active) 22%,transparent);border-color:color-mix(in srgb,var(--color-navigation-active) 35%,transparent);box-shadow:inset 3px 0 0 var(--color-navigation-active)}
.topbar,.settings-nav,.btn.ghost,.form input,.form select,.form textarea,.login-card,.install-card{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}
.metric,.customer-card,.notes article,.info-grid>div,.upload,.module-page-header,.welcome,.check-hero{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}
.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.theme-card{padding:18px;border:1px solid var(--line);border-radius:16px;}.theme-card.is-active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 15%,transparent)}.theme-card-head{display:flex;justify-content:space-between;gap:12px}.theme-card-head strong,.theme-card-head small{display:block}.theme-card-head small{margin-top:6px;color:var(--muted);font-size:11px;line-height:1.45}.theme-swatches{display:flex;gap:7px;margin:18px 0}.theme-swatches i{width:28px;height:28px;border-radius:9px;background:var(--swatch);border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.theme-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.theme-actions form{margin:0}.custom-theme-card{margin-top:14px}.theme-color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.theme-color-control{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}.theme-color-control input[type=color]{width:48px;padding:3px}.theme-preview-bar{position:sticky;bottom:18px;z-index:20;margin-top:18px;padding:12px 14px;border:1px solid var(--primary);border-radius:14px;background:var(--panel);box-shadow:var(--shadow);display:flex;align-items:center;gap:12px}.theme-preview-bar[hidden]{display:none}.theme-preview-bar span{color:var(--muted);font-size:11px}.theme-preview-bar .btn{margin-left:auto}.theme-reset-form{margin-top:18px}.theme-dark{color-scheme:dark}.theme-dark .status,.theme-dark .version,.theme-dark .count{background:var(--soft);color:var(--text)}.theme-dark .status.online,.theme-dark .status.ok,.theme-dark .status.paid,.theme-dark .status.good{background:color-mix(in srgb,var(--success) 20%,var(--panel));color:var(--success)}.theme-dark .status.warning,.theme-dark .status.open{background:color-mix(in srgb,var(--warning) 18%,var(--panel));color:var(--warning)}.theme-dark .status.offline,.theme-dark .status.error{background:color-mix(in srgb,var(--danger) 18%,var(--panel));color:var(--danger)}
@media(max-width:1100px){.theme-grid{grid-template-columns:1fr 1fr}}@media(max-width:767px){.theme-grid,.theme-color-grid{grid-template-columns:1fr}.theme-preview-bar{align-items:flex-start;flex-direction:column}.theme-preview-bar .btn{margin-left:0;width:100%}}

/* v5.21.0 · Central Theme Core
   Shared visual primitives only. Layout, dimensions and business logic remain untouched. */
:root{
  --theme-surface-hover:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface));
  --theme-primary-soft:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));
  --theme-primary-ring:color-mix(in srgb,var(--color-primary) 22%,transparent);
  --theme-success-soft:color-mix(in srgb,var(--color-success) 13%,var(--color-surface));
  --theme-warning-soft:color-mix(in srgb,var(--color-warning) 14%,var(--color-surface));
  --theme-danger-soft:color-mix(in srgb,var(--color-danger) 12%,var(--color-surface));
  --theme-info-soft:color-mix(in srgb,var(--color-info) 12%,var(--color-surface));
  --theme-nav-muted:color-mix(in srgb,var(--color-on-navigation) 68%,var(--color-navigation));
  --theme-nav-subtle:color-mix(in srgb,var(--color-on-navigation) 45%,var(--color-navigation));
  --theme-nav-hover:color-mix(in srgb,var(--color-on-navigation) 7%,var(--color-navigation));
  --theme-nav-active-bg:color-mix(in srgb,var(--color-navigation-active) 22%,var(--color-navigation));
  --theme-shadow:0 12px 38px color-mix(in srgb,var(--color-text) 8%,transparent);
}
html,body{background:var(--color-background);color:var(--color-text)}
.panel,.metric,.theme-card,.theme-preview-bar,.login-card,.install-card{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}
.sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--color-navigation) 94%,white),var(--color-navigation));color:var(--color-on-navigation);border-right-color:color-mix(in srgb,var(--color-on-navigation) 8%,transparent)}
.brandcopy span,.sidebar-user small,.sidebar-user>a,.nav-label{color:var(--theme-nav-subtle)}
.sidebar nav a{color:var(--theme-nav-muted)}
.sidebar nav a:hover{background:var(--theme-nav-hover);color:var(--color-on-navigation)}
.sidebar nav a.active{background:var(--theme-nav-active-bg);border-color:color-mix(in srgb,var(--color-navigation-active) 34%,transparent);color:var(--color-on-navigation-active);box-shadow:inset 3px 0 0 var(--color-navigation-active)}
.sidebar-user,.nav-label{border-color:color-mix(in srgb,var(--color-on-navigation) 10%,transparent)}
.sidebar-user .avatar{background:color-mix(in srgb,var(--color-on-navigation) 12%,var(--color-navigation));color:var(--color-on-navigation)}
.topbar{background:color-mix(in srgb,var(--color-surface) 92%,transparent);border-color:var(--color-border);color:var(--color-text)}
.welcome,.check-hero,.module-page-header{border-color:var(--color-border);background:linear-gradient(135deg,var(--color-surface),color-mix(in srgb,var(--color-primary) 4%,var(--color-surface-secondary)));box-shadow:var(--theme-shadow)}
.eyebrow{color:var(--color-text-secondary)}
.welcome-badge{background:var(--color-navigation);color:var(--color-on-navigation)}
.welcome-badge span{color:var(--theme-nav-muted)}
.metric{background:var(--color-surface);box-shadow:0 5px 18px color-mix(in srgb,var(--color-text) 5%,transparent)}.metric-icon,.site-icon,.empty>span{background:var(--theme-primary-soft);color:var(--color-primary)}
.form label,.form-label{color:var(--color-text)}
.form input,.form select,.form textarea,.theme-color-control input[type=color],.theme-color-control input[type=text]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--theme-primary-ring)}
.btn.primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:0 8px 20px color-mix(in srgb,var(--color-primary) 22%,transparent)}
.btn.primary:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}
.btn.ghost{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}
.btn.ghost:hover{background:var(--theme-surface-hover);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}
.version,.count,.status{background:var(--color-surface-secondary);color:var(--color-text-secondary)}
.status.online,.status.ok,.status.paid,.status.good,.pill.ok{background:var(--theme-success-soft);color:var(--color-success)}
.status.warning,.status.open{background:var(--theme-warning-soft);color:var(--color-warning)}
.status.offline,.status.error,.pill.bad{background:var(--theme-danger-soft);color:var(--color-danger)}
.status.planned,.status.unknown{background:var(--theme-info-soft);color:var(--color-info)}.customer-card,.notes article,.invoice-customer-card,.invoice-page a.invoice-customer-card,.health-facts>div,.requirements>div,.request-message,.signature-asset-card{background:var(--color-surface-secondary);border-color:var(--color-border);color:var(--color-text)}
.customer-avatar,.invoice-customer-avatar,.invoice-page .invoice-customer-avatar{background:var(--color-navigation);color:var(--color-on-navigation)}.list article,.invoice-customer-open{border-color:var(--color-border)}
.invoice-value{background:var(--color-surface-secondary);color:var(--color-text-secondary)}
.invoice-value.paid,.invoice-page .invoice-value.paid{background:var(--theme-success-soft);color:var(--color-success)}
.invoice-value.paid b,.invoice-page .invoice-value.paid b{color:var(--color-success)}
.invoice-value.open,.invoice-page .invoice-value.open{background:var(--theme-warning-soft);color:var(--color-warning)}
.invoice-value.open b,.invoice-page .invoice-value.open b{color:var(--color-warning)}
.invoice-value.overdue,.invoice-page .invoice-value.overdue{background:var(--theme-danger-soft);color:var(--color-danger)}
.invoice-value.overdue b,.invoice-page .invoice-value.overdue b{color:var(--color-danger)}
.health-message.maintenance{background:var(--theme-warning-soft);color:var(--color-warning)}
.health-message.critical{background:var(--theme-danger-soft);color:var(--color-danger)}
.health-clear{background:var(--theme-success-soft);color:var(--color-success)}
.customer-type-badge{background:var(--theme-info-soft);color:var(--color-info)}
.form .customer-type-option{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}
.form .customer-type-option:hover{background:var(--theme-surface-hover);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}
.form .customer-type-option:has(input:checked){background:var(--theme-primary-soft);border-color:var(--color-primary);box-shadow:0 0 0 2px var(--theme-primary-ring)}
.form .customer-type-option span{color:var(--color-text)}
.codebox,.payload-details pre{background:var(--color-navigation)!important;color:var(--color-on-navigation)!important;border-color:var(--color-border)!important}
.payload-details pre,.payload-details pre *,.payload-details code,.payload-details pre code{-webkit-text-fill-color:var(--color-on-navigation)!important;color:var(--color-on-navigation)!important}
.site-icon .site-logo,.site-icon-preview{background:var(--color-surface)}
.alert.success{background:var(--theme-success-soft);color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 28%,transparent)}
.alert.warning{background:var(--theme-warning-soft);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 28%,transparent)}
.alert.danger,.alert.error{background:var(--theme-danger-soft);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 28%,transparent)}
.notification-bell{color:var(--color-text)}
.login-page{background:var(--color-background);color:var(--color-text)}
.login-card h1,.login-card label,.auth-secondary-link{color:var(--color-text)}

.theme-dark img:not(.branding-logo):not(.site-logo){color-scheme:normal}

/* v5.21.5 Design Active Badge Responsive Guard */
.theme-card-head .status.good{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;min-width:0;min-height:0;max-width:100%;padding:5px 9px;border-radius:7px;font-size:10px;line-height:1;font-weight:800;letter-spacing:.035em}

/* v5.21.6 · RONVO application background */
.app-shell.ronvo-background-enabled .main{position:relative;isolation:isolate;min-height:100vh;background:transparent}
.app-shell.ronvo-background-enabled .main::before{content:"";position:fixed;z-index:0;inset:0 0 0 var(--sidebar-w);pointer-events:none;background-color:var(--color-background);background-image:linear-gradient(color-mix(in srgb,var(--color-background) 52%,transparent),color-mix(in srgb,var(--color-background) 52%,transparent)),url('ronvo-background.png');background-repeat:no-repeat;background-position:right -90px bottom -70px;background-size:clamp(760px,62vw,1080px) auto}
.app-shell.ronvo-background-enabled .content{position:relative;z-index:1}
.theme-background-form{margin:18px 0}.theme-background-setting{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:18px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface)}.theme-background-copy strong,.theme-background-copy small{display:block}.theme-background-copy small{margin-top:5px;color:var(--color-text-secondary);font-size:11px;line-height:1.5}.theme-background-toggle{display:flex!important;align-items:center;gap:8px}.theme-background-toggle input{width:18px!important;min-height:18px!important}.theme-background-preview{grid-column:1/-1;height:150px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-background) url('ronvo-background.png') center/cover no-repeat}.theme-background-setting>.btn{justify-self:start}
@media(max-width:1024px){.app-shell.ronvo-background-enabled .main::before{inset:0;background-size:clamp(620px,82vw,860px) auto;background-position:right -80px bottom -55px}.theme-background-setting{grid-template-columns:1fr}.theme-background-preview{grid-column:1}}
@media(max-width:767px){.app-shell.ronvo-background-enabled .main::before{background-size:clamp(430px,118vw,620px) auto;background-position:right -115px bottom -35px}.theme-background-preview{height:120px}}

/* v5.21.13 · Aktivitäten Verwaltung */
.activity-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.activity-manage-form{display:grid;gap:12px}.activity-manage-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.activity-select-all{display:inline-flex;align-items:center;gap:8px;font-weight:700}.activity-select-all input,.event-select input{width:18px;height:18px;margin:0}.activity-full-history .event-row{grid-template-columns:26px 42px minmax(0,1fr) auto}.event-select{display:grid;place-items:center}.event-actions{display:flex;align-items:center;gap:8px}.event-delete{width:36px;height:36px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--danger,#dc2626);display:grid;place-items:center;cursor:pointer}.event-delete:hover{background:var(--theme-danger-soft,#fee2e2)}.event-delete svg{width:16px;height:16px}@media(max-width:620px){.activity-manage-bar{align-items:stretch;flex-direction:column}.activity-manage-bar .btn{width:100%}.activity-full-history .event-row{grid-template-columns:24px 38px minmax(0,1fr)}.activity-full-history .event-actions{grid-column:3;justify-content:flex-start}.activity-header-actions{width:100%}.activity-header-actions form,.activity-header-actions .btn{width:100%}}

/* v5.21.15 Branding architecture: separate brand logo and app icon */
.branding-icon-section{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:12px}.branding-icon-section>div{display:flex;flex-direction:column;gap:4px}.branding-icon-section small{color:var(--muted)}

/* v5.21.18: Aktivitäten Rollenlayout strikt trennen */
.activity-full-history .event-row-customer{grid-template-columns:42px minmax(0,1fr) auto}
.activity-full-history .event-row-customer .event-copy{min-width:0;width:auto}
.activity-full-history .event-row-customer .event-copy strong,.activity-full-history .event-row-customer .event-copy p,.activity-full-history .event-row-customer .event-copy small{overflow-wrap:break-word;word-break:normal}
.activity-full-history .event-row-customer .event-actions{grid-column:auto;justify-content:flex-end}
.activity-full-history .event-row-admin{grid-template-columns:26px 42px minmax(0,1fr) auto}
@media(max-width:620px){
 .activity-full-history .event-row-customer{grid-template-columns:38px minmax(0,1fr)}
 .activity-full-history .event-row-customer .event-actions{grid-column:2;justify-content:flex-start}
 .activity-full-history .event-row-admin{grid-template-columns:24px 38px minmax(0,1fr)}
 .activity-full-history .event-row-admin .event-actions{grid-column:3;justify-content:flex-start}
}


/* v5.21.20 · RONVO Depth Template – räumliches Referenzdesign */
.app-shell.theme-depth .main{position:relative;isolation:isolate;min-height:100vh;background:#f4f8ff;overflow-x:clip;overflow-y:visible}
.app-shell.theme-depth .main::before{content:"";position:fixed;z-index:0;inset:0 0 0 var(--sidebar-w);pointer-events:none;background:
 radial-gradient(ellipse 42% 34% at 14% 68%,rgba(104,164,255,.24) 0%,rgba(104,164,255,.10) 34%,transparent 68%),
 radial-gradient(ellipse 38% 30% at 93% 26%,rgba(115,161,255,.22) 0%,rgba(115,161,255,.08) 38%,transparent 72%),
 radial-gradient(ellipse 42% 34% at 72% 72%,rgba(217,129,255,.18) 0%,rgba(217,129,255,.07) 40%,transparent 72%),
 linear-gradient(145deg,rgba(255,255,255,.98) 0%,rgba(242,247,255,.96) 45%,rgba(247,244,255,.96) 100%)}
.app-shell.theme-depth .main::after{content:"";position:fixed;z-index:0;pointer-events:none;left:var(--sidebar-w);right:-8vw;bottom:-22vh;height:58vh;opacity:.58;transform:rotate(-8deg);background:linear-gradient(145deg,transparent 8%,rgba(195,174,255,.20) 38%,rgba(126,193,255,.14) 58%,transparent 82%);filter:blur(24px);border-radius:50%}
.app-shell.theme-depth .content{position:relative;z-index:2}
.app-shell.theme-depth .topbar{background:rgba(255,255,255,.78);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%);border-bottom-color:rgba(210,222,239,.68);box-shadow:0 10px 32px rgba(61,85,128,.045)}
.app-shell.theme-depth .content{padding-top:34px}
.app-shell.theme-depth .welcome,.app-shell.theme-depth .check-hero,.app-shell.theme-depth .panel,.app-shell.theme-depth .metric{border-color:rgba(208,220,239,.78);background:rgba(255,255,255,.94);backdrop-filter:blur(10px) saturate(112%);-webkit-backdrop-filter:blur(10px) saturate(112%)}
.app-shell.theme-depth .panel{box-shadow:0 2px 5px rgba(47,67,105,.035),0 13px 28px rgba(68,93,143,.085),0 30px 66px rgba(92,116,169,.095)}
.app-shell.theme-depth .metric{box-shadow:0 2px 4px rgba(47,67,105,.03),0 10px 22px rgba(68,93,143,.075),0 22px 44px rgba(92,116,169,.075)}
.app-shell.theme-depth .welcome,.app-shell.theme-depth .check-hero{position:relative;overflow:clip;isolation:isolate;background:linear-gradient(115deg,rgba(255,255,255,.98) 0%,rgba(252,253,255,.96) 54%,rgba(240,247,255,.90) 100%);box-shadow:0 2px 5px rgba(47,67,105,.035),0 16px 34px rgba(68,93,143,.10),0 36px 78px rgba(93,121,181,.12)}
.app-shell.theme-depth .welcome::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:430px;height:260px;right:70px;top:-58px;background:url('ronvo-background.png') center/cover no-repeat;opacity:.72;mix-blend-mode:multiply;filter:saturate(1.12)}
.app-shell.theme-depth .welcome>div,.app-shell.theme-depth .welcome-badge{position:relative;z-index:2}
.app-shell.theme-depth .welcome-badge{background:linear-gradient(145deg,#1d285d,#111747);border:1px solid rgba(112,151,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 9px 20px rgba(31,43,91,.22),0 22px 44px rgba(60,82,135,.12)}
.app-shell.theme-depth .welcome-badge strong{display:flex;align-items:center;gap:7px}
.app-shell.theme-depth .welcome-badge strong::before{content:"";width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#45dfaa;box-shadow:0 0 0 4px rgba(69,223,170,.10),0 0 14px rgba(69,223,170,.35)}
.app-shell.theme-depth .panel:hover,.app-shell.theme-depth .metric:hover{box-shadow:0 3px 7px rgba(47,67,105,.04),0 17px 36px rgba(68,93,143,.10),0 34px 72px rgba(92,116,169,.11)}
.app-shell.theme-depth .theme-card{background:rgba(255,255,255,.95)}
@media(max-width:1024px){
 .app-shell.theme-depth .main::before{inset:0}
 .app-shell.theme-depth .main::after{left:0}
 .app-shell.theme-depth .welcome::after{width:350px;height:220px;right:24px;top:-48px;opacity:.58}
}
@media(max-width:767px){
 .app-shell.theme-depth .main::after{height:42vh;bottom:-15vh;filter:blur(18px)}
 .app-shell.theme-depth .panel,.app-shell.theme-depth .metric{box-shadow:0 2px 4px rgba(47,67,105,.03),0 10px 24px rgba(68,93,143,.075),0 22px 46px rgba(92,116,169,.075)}
 .app-shell.theme-depth .panel:hover,.app-shell.theme-depth .metric:hover{box-shadow:0 2px 4px rgba(47,67,105,.03),0 10px 24px rgba(68,93,143,.075),0 22px 46px rgba(92,116,169,.075)}
 .app-shell.theme-depth .welcome::after{width:270px;height:180px;right:-80px;top:-28px;opacity:.40}
}
@media(max-width:620px){.app-shell.theme-depth .welcome::after{right:-105px;opacity:.30}}

/* v5.21.21 · RONVO Depth Header refinement */
.app-shell.theme-depth .welcome{
  background:var(--ronvo-depth-header-background);
  border-color:var(--ronvo-depth-header-border);
  box-shadow:var(--ronvo-depth-header-shadow);
}
.app-shell.theme-depth .welcome::before{
  content:"";
  position:absolute;
  z-index:-2;
  pointer-events:none;
  width:640px;
  height:310px;
  right:-20px;
  top:-78px;
  background:
    radial-gradient(ellipse at 55% 50%,rgba(185,221,255,.28) 0%,rgba(204,188,255,.18) 31%,rgba(235,223,255,.10) 52%,transparent 76%);
  filter:blur(18px);
  opacity:.92;
}
.app-shell.theme-depth .welcome::after{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  width:500px;
  height:300px;
  right:92px;
  top:-62px;
  background:url('ronvo-flower-depth.png') center/contain no-repeat;
  opacity:.72;
  mix-blend-mode:normal;
  filter:saturate(1.04) blur(.1px);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 0 54%,rgba(0,0,0,.92) 70%,transparent 100%);
  mask-image:radial-gradient(ellipse at center,#000 0 54%,rgba(0,0,0,.92) 70%,transparent 100%);
}
.app-shell.theme-depth .welcome-badge{
  box-shadow:var(--ronvo-depth-badge-shadow);
}
@media(max-width:1024px){
  .app-shell.theme-depth .welcome::before{width:520px;height:270px;right:-35px;top:-62px}
  .app-shell.theme-depth .welcome::after{width:390px;height:250px;right:34px;top:-50px;opacity:.60}
}
@media(max-width:767px){
  .app-shell.theme-depth .welcome::before{width:390px;height:220px;right:-110px;top:-34px;filter:blur(14px)}
  .app-shell.theme-depth .welcome::after{width:285px;height:190px;right:-70px;top:-22px;opacity:.42}
}
@media(max-width:620px){
  .app-shell.theme-depth .welcome::before{right:-145px;opacity:.74}
  .app-shell.theme-depth .welcome::after{right:-105px;opacity:.30}
}

/* v5.21.22 · RONVO Depth – einheitliche Modul Header */
.app-shell.theme-depth .module-page-header,
.app-shell.theme-depth .check-hero{
  position:relative;
  overflow:clip;
  isolation:isolate;
  background:var(--ronvo-depth-header-background);
  border-color:var(--ronvo-depth-header-border);
  box-shadow:var(--ronvo-depth-header-shadow);
}
.app-shell.theme-depth .module-page-header::before,
.app-shell.theme-depth .check-hero::before{
  content:"";
  position:absolute;
  z-index:-2;
  pointer-events:none;
  width:640px;
  height:310px;
  right:-20px;
  top:-78px;
  background:radial-gradient(ellipse at 55% 50%,rgba(185,221,255,.28) 0%,rgba(204,188,255,.18) 31%,rgba(235,223,255,.10) 52%,transparent 76%);
  filter:blur(18px);
  opacity:.92;
}
.app-shell.theme-depth .module-page-header::after,
.app-shell.theme-depth .check-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  width:500px;
  height:300px;
  right:92px;
  top:-62px;
  background:url('ronvo-flower-depth.png') center/contain no-repeat;
  opacity:.64;
  mix-blend-mode:normal;
  filter:saturate(1.04) blur(.1px);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 0 54%,rgba(0,0,0,.92) 70%,transparent 100%);
  mask-image:radial-gradient(ellipse at center,#000 0 54%,rgba(0,0,0,.92) 70%,transparent 100%);
}
.app-shell.theme-depth .module-page-header>* ,
.app-shell.theme-depth .check-hero>*{
  position:relative;
  z-index:2;
}
.app-shell.theme-depth .module-page-header>div:first-child,
.app-shell.theme-depth .check-hero>div:first-child{
  max-width:min(980px,70%);
}
@media(max-width:1024px){
  .app-shell.theme-depth .module-page-header::before,
  .app-shell.theme-depth .check-hero::before{width:520px;height:270px;right:-35px;top:-62px}
  .app-shell.theme-depth .module-page-header::after,
  .app-shell.theme-depth .check-hero::after{width:390px;height:250px;right:34px;top:-50px;opacity:.52}
}
@media(max-width:767px){
  .app-shell.theme-depth .module-page-header::before,
  .app-shell.theme-depth .check-hero::before{width:390px;height:220px;right:-110px;top:-34px;filter:blur(14px)}
  .app-shell.theme-depth .module-page-header::after,
  .app-shell.theme-depth .check-hero::after{width:285px;height:190px;right:-70px;top:-22px;opacity:.30}
  .app-shell.theme-depth .module-page-header>div:first-child,
  .app-shell.theme-depth .check-hero>div:first-child{max-width:100%}
}
@media(max-width:620px){
  .app-shell.theme-depth .module-page-header::before,
  .app-shell.theme-depth .check-hero::before{right:-145px;opacity:.70}
  .app-shell.theme-depth .module-page-header::after,
  .app-shell.theme-depth .check-hero::after{right:-105px;opacity:.22}
}

/* RONVO Safe Update & Recovery */
.update-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.update-status-grid>div,.safe-update-preview,.restore-item,.update-history{border:1px solid var(--border,#dfe5ee);background:var(--surface,#fff);border-radius:16px}.update-status-grid>div{padding:14px 16px}.update-status-grid span,.restore-item small{display:block;color:var(--text-secondary,#6c7890);font-size:12px;margin-bottom:4px}.update-status-grid strong{display:block;overflow-wrap:anywhere}.safe-update-preview{padding:18px;margin:18px 0}.safe-update-preview .info-grid{margin:14px 0}.update-release-notes{margin:14px 0;padding:14px 16px;border-radius:14px;background:var(--surface-secondary,#f5f7fb)}.update-release-notes ul{margin:8px 0 0;padding-left:20px}.safe-update-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.safe-update-actions form{margin:0}.restore-head{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-top:24px}.retention-form{display:flex;gap:8px;align-items:end}.retention-form label{margin:0}.restore-list{display:grid;gap:12px;margin-top:12px}.restore-item{padding:16px;display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.4fr) auto;gap:14px;align-items:center}.restore-meta,.restore-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.restore-meta span:not(.status){font-size:12px;color:var(--text-secondary,#6c7890)}.restore-actions form{margin:0}.update-history{padding:16px;margin-top:22px}.history-list{display:grid;gap:8px;margin-top:10px}.history-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border,#e6eaf0)}.history-list>div:last-child{border-bottom:0}.history-list small{color:var(--text-secondary,#6c7890)}
@media(max-width:900px){.update-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.restore-item{grid-template-columns:1fr}.restore-head{align-items:stretch;flex-direction:column}.retention-form{align-items:end}}
@media(max-width:560px){.update-status-grid{grid-template-columns:1fr}.safe-update-actions,.retention-form,.restore-actions{flex-direction:column;align-items:stretch}.safe-update-actions .btn,.retention-form .btn,.restore-actions .btn{width:100%;justify-content:center}.history-list>div{flex-direction:column;gap:2px}}
.update-danger-note{display:grid;gap:5px;margin:14px 0;padding:14px 16px;border-radius:14px;border:1px solid var(--color-danger,#b42318);background:color-mix(in srgb,var(--color-danger,#b42318) 7%,var(--surface,#fff));color:var(--text,#172033)}.update-danger-note span{color:var(--text-secondary,#6c7890)}


/* RONVO 5.22 Arbeitsworkflow */
.work-cockpit{display:flex;flex-direction:column;gap:16px}.work-actions{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.work-actions details{flex:1;min-width:240px}.work-inline-form{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.work-time-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.work-time-summary>div{padding:14px;border-radius:14px;background:var(--soft);border:1px solid var(--line)}.work-time-summary span{display:block;color:var(--muted);font-size:12px}.work-time-summary strong{display:block;margin-top:4px}.work-log{display:flex;flex-direction:column;gap:10px}.work-log-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.work-log-row:last-child{border-bottom:0}.work-log-row time{font-size:12px;color:var(--muted)}.work-log-row small{display:block;color:var(--muted);margin-top:3px}.failed-mail-list{display:flex;flex-direction:column;gap:10px}.failed-mail-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.status.paused{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.calendar-event.task-work-paused,.calendar-day-event.task-work-paused{opacity:.78}.calendar-event.task-work-done,.calendar-day-event.task-work-done{opacity:.65}.calendar-event.task-work-in_progress,.calendar-day-event.task-work-in_progress{box-shadow:inset 3px 0 0 var(--success)}
@media(max-width:767px){.work-time-summary{grid-template-columns:1fr}.work-log-row{grid-template-columns:1fr;gap:4px}.work-actions,.failed-mail-row{flex-direction:column;align-items:stretch}.work-actions details{min-width:0;width:100%}}

/* RONVO 5.22.6 workflow confirmation panels */
.work-action-dialog{position:relative}.work-action-dialog>summary{list-style:none;cursor:pointer}.work-action-dialog>summary::-webkit-details-marker{display:none}.work-action-dialog[open]>.work-inline-form{margin-top:12px;padding:16px;border:1px solid var(--border,#dbe3ef);border-radius:14px;background:var(--panel,#fff);box-shadow:0 12px 30px rgba(20,35,70,.08)}.work-action-dialog .checkline{margin:4px 0 2px}.work-dialog-actions{display:flex;gap:10px;align-items:center}@media(max-width:700px){.work-action-dialog[open]>.work-inline-form{padding:14px}.work-dialog-actions{flex-direction:column;align-items:stretch}}

/* v5.22.10 completed customer order retention */
.customer-task-row:has(.task-completed-meta){background:linear-gradient(90deg,rgba(234,248,243,.72),rgba(255,255,255,.96));border-color:#CDEDE2}
.customer-task-row:has(.task-completed-meta):hover{border-color:#B9E4D5}
.task-completed-meta{display:grid;justify-items:start;gap:4px;min-width:180px}
.task-completed-meta .status.done{background:#EAF8F3;color:#287A62;border:1px solid #CDEDE2}
.task-completed-meta>small{font-size:11px;color:var(--muted);white-space:normal;overflow-wrap:break-word}
.task-completed-meta .task-retention{color:#287A62}
@media(max-width:620px){.task-completed-meta{min-width:0}.task-completed-meta>small{white-space:normal}}


/* v5.22.11 dashboard invoice lifecycle */
.dashboard-invoice-list{gap:10px}
.compact-list>a.dashboard-invoice-row{padding:14px 16px;border:1px solid transparent;border-radius:14px;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.compact-list>a.dashboard-invoice-row:last-child{border-bottom:1px solid transparent}
.compact-list>a.dashboard-invoice-row:hover{transform:translateY(-1px)}
.compact-list>a.dashboard-invoice-row.dashboard-invoice-overdue{background:linear-gradient(90deg,color-mix(in srgb,var(--color-danger) 8%,var(--color-surface)),var(--color-surface));border-color:color-mix(in srgb,var(--color-danger) 24%,var(--color-border))}
.compact-list>a.dashboard-invoice-row.dashboard-invoice-overdue:hover{border-color:color-mix(in srgb,var(--color-danger) 38%,var(--color-border))}
/* RONVO 5.22.46 · Überfällige Rechnung pulsiert bis zur Zahlung */
.compact-list>a.dashboard-invoice-row.dashboard-invoice-overdue{animation:ronvoInvoiceOverduePulse 1.9s ease-in-out infinite;will-change:box-shadow}
@keyframes ronvoInvoiceOverduePulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-danger) 0%,transparent),0 8px 24px rgba(15,23,42,.04)}
  50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--color-danger) 10%,transparent),0 10px 30px color-mix(in srgb,var(--color-danger) 14%,transparent)}
}
@media(prefers-reduced-motion:reduce){.compact-list>a.dashboard-invoice-row.dashboard-invoice-overdue{animation:none;will-change:auto}}
.dashboard-invoice-status{display:grid;justify-items:end;gap:4px;min-width:170px}
.dashboard-invoice-status>small{font-size:11px;white-space:normal;overflow-wrap:break-word}
.dashboard-invoice-status.paid>small{color:#287A62}
.compact-list>a.dashboard-invoice-row.dashboard-invoice-paid{background:linear-gradient(90deg,rgba(234,248,243,.72),rgba(255,255,255,.96));border-color:#CDEDE2}
.compact-list>a.dashboard-invoice-row.dashboard-invoice-paid:hover{border-color:#B9E4D5}
.dashboard-invoice-row .status.paid{background:#EAF8F3;color:#287A62;border:1px solid #CDEDE2}
@media(max-width:620px){.compact-list>a.dashboard-invoice-row{align-items:flex-start;flex-direction:column}.dashboard-invoice-status{justify-items:start;min-width:0}.dashboard-invoice-status>small{white-space:normal}}


/* v5.22.13 global empty state alignment */
.empty-state{box-sizing:border-box}
.dashboard-paired-card>.empty-state,.panel>.empty-state{margin-inline:auto}

/* v5.22.12 paired dashboard cards */
.dashboard-paired-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch;margin-top:22px}
.dashboard-paired-grid>.dashboard-paired-card{min-width:0;height:100%;align-self:stretch;display:flex;flex-direction:column}
.dashboard-paired-grid>.dashboard-paired-card>.panel-head{flex:0 0 auto}.dashboard-paired-grid>.dashboard-paired-card>.task-list,.dashboard-paired-grid>.dashboard-paired-card>.compact-list,.dashboard-paired-grid>.dashboard-paired-card>.empty{flex:1 1 auto}
.dashboard-card-orders,.dashboard-card-information,.dashboard-card-invoices{min-height:0}
.dashboard-card-orders .customer-task-row,.dashboard-card-information .customer-task-row,.dashboard-card-invoices .dashboard-invoice-row{min-height:64px}
.dashboard-card-invoices>.dashboard-invoice-list{flex:0 0 auto}
.dashboard-card-information>.panel-head{margin-bottom:20px}
.dashboard-information-group{display:flex;flex:1 1 auto;flex-direction:column;gap:12px;min-width:0}
.dashboard-information-messages{border-top:1px solid var(--color-border);margin-top:18px;padding-top:18px}
.dashboard-information-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.dashboard-information-head h4{margin:2px 0 0;color:var(--text);font-size:18px;font-weight:700;letter-spacing:-.025em;line-height:1.2}
.dashboard-information-head a{max-width:100%;overflow:hidden;color:var(--primary);text-overflow:ellipsis;font-size:12px;font-weight:700;white-space:nowrap}
.compact-list>a.dashboard-invoice-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px}
.dashboard-invoice-row>div:first-child{min-width:0}
.dashboard-invoice-row>div:first-child strong,.dashboard-invoice-row>div:first-child small{overflow:visible;text-overflow:clip;overflow-wrap:break-word}
.dashboard-invoice-row>div:first-child strong{white-space:normal}
.dashboard-invoice-status{align-self:center;justify-items:end;min-width:180px}
.dashboard-invoice-row>span{justify-self:end}
@media(max-width:900px){.dashboard-paired-grid{grid-template-columns:1fr;gap:18px}.dashboard-paired-grid>.dashboard-paired-card{height:auto}.dashboard-card-appointments{order:1}.dashboard-card-sites{order:2}.dashboard-card-orders,.dashboard-card-information{order:3}.dashboard-card-invoices{order:4}}
@media(max-width:620px){.compact-list>a.dashboard-invoice-row{grid-template-columns:1fr;align-items:start}.dashboard-invoice-status{justify-items:start;min-width:0}.dashboard-invoice-row>span{justify-self:start}.dashboard-invoice-row>div:first-child strong{white-space:normal}}

/* RONVO 5.22.33 · Aufgaben Kennzahlen konsistent zum Wartungscockpit */
.task-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.task-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.task-metrics{grid-template-columns:1fr}}

/* RONVO 5.22.34 · Webseitenliste bleibt vollständig innerhalb ihrer Karte */
.sites-list-panel{
  display:flow-root;
  width:100%;
  height:auto!important;
  min-height:0!important;
  overflow:visible;
}
.sites-list-panel>.panel-head,
.sites-list-panel>.health-site-list{
  position:static;
  float:none;
  width:100%;
  max-width:100%;
}
.sites-list-panel>.health-site-list{
  display:grid;
  min-height:0;
}
.sites-list-panel .site-row-link,
.sites-list-panel .health-site-row{
  position:static;
  float:none;
  max-width:100%;
}
@container ronvo-content (max-width:1100px){
  .sites-workspace>.sites-list-panel{
    flex:1 1 auto;
    align-self:stretch;
  }
}

/* v5.22.35 · Kunden Dashboard Support Aktion im Systemstatus Design */
.welcome-actions{
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
  position:relative;
  z-index:2;
}
.welcome-actions .welcome-badge{
  width:150px;
  min-width:150px;
  min-height:76px;
  padding:16px 18px;
}
@media(max-width:820px){
  .welcome-actions{gap:8px}
  .welcome-actions .welcome-badge{width:142px;min-width:142px}
}
@media(max-width:620px){
  .welcome-actions{display:none}
}

/* v5.22.36 · Systemstatus ist Information, Problem melden ist Aktion */
.welcome-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex:0 0 auto;position:relative;z-index:2}
.welcome-system-status{display:flex;align-items:center;gap:10px;min-width:118px;padding:6px 2px;color:#17213b;background:transparent;border:0;box-shadow:none;cursor:default}
.welcome-system-dot{width:10px;height:10px;border-radius:50%;background:#39d9aa;box-shadow:0 0 0 6px rgba(57,217,170,.12);flex:0 0 10px}
.welcome-system-status span:last-child{display:flex;flex-direction:column;gap:1px}
.welcome-system-status small{font:600 12px/1.2 inherit;color:var(--muted)}
.welcome-system-status strong{font:800 17px/1.2 inherit;color:var(--ink)}
.welcome-support-action{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:178px;min-height:48px;padding:0 20px;border:1px solid var(--primary);border-radius:14px;background:var(--primary);box-shadow:0 8px 20px rgba(59,110,234,.22);color:#fff;text-decoration:none;white-space:normal;text-align:center;font-size:14px;font-weight:800;letter-spacing:-.01em;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
.welcome-support-action svg{width:17px;height:17px;flex:0 0 17px;color:#fff}
.welcome-support-action:hover{transform:translateY(-1px);background:var(--primary2);border-color:var(--primary2);box-shadow:0 10px 26px rgba(59,110,234,.28)}
.welcome-support-action:active{transform:translateY(0);box-shadow:0 6px 16px rgba(59,110,234,.20)}
.welcome-support-action:focus-visible{outline:3px solid rgba(59,110,234,.25);outline-offset:3px}
@media(max-width:820px){.welcome-actions{gap:12px}.welcome-support-action{min-width:166px;padding:0 14px}}
@media(max-width:620px){.welcome-actions{display:none}}

/* v5.22.37 · Problem melden klar als primäre Aktion */


/* v5.22.38 · Problem melden Modal */
.support-problem-dialog{width:min(620px,calc(100vw - 32px));max-height:min(820px,calc(100dvh - 32px));padding:0;border:1px solid rgba(28,47,88,.12);border-radius:22px;background:var(--panel,#fff);color:var(--text,#182033);box-shadow:0 30px 90px rgba(20,35,70,.28);overflow:auto}

.support-problem-form{gap:16px;padding:24px;margin:0}
.support-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:4px}
.support-dialog-head h3{margin:4px 0 6px;font-size:24px;letter-spacing:-.03em}
.support-dialog-head p{margin:0;max-width:470px;color:var(--muted,#69758a);line-height:1.55}
.support-dialog-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid var(--line,#dce3ee);border-radius:12px;background:var(--soft,#f4f7fb);color:var(--text,#182033);font-size:27px;font-weight:400;line-height:1;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.support-dialog-close:hover{background:#fff;border-color:#c7d2e3;transform:translateY(-1px)}
.support-dialog-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.45fr);gap:12px}
.support-dialog-upload{margin:0}
.support-dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:4px}
.support-dialog-actions .btn{min-width:132px}
body.support-dialog-open{overflow:hidden}
@media(max-width:620px){.support-problem-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.support-problem-form{min-height:100%;padding:20px 18px 24px}.support-dialog-grid{grid-template-columns:1fr}.support-dialog-actions{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;position:sticky;bottom:-24px;padding:14px 0 24px;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--panel,#fff) 18px)}.support-dialog-actions .btn{width:100%;min-width:0}}


/* v5.22.39 · Admin Anfragenpriorität und neue Anfrage Aufmerksamkeit */
.dashboard-request-list{gap:10px}
.compact-list>a.dashboard-request-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  min-height:64px;
  padding:14px 16px;
  border:1px solid transparent;
  border-radius:14px;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.compact-list>a.dashboard-request-row:last-child{border-bottom:1px solid transparent}
.compact-list>a.dashboard-request-row:hover{transform:translateY(-1px)}
.dashboard-request-row>div{min-width:0}
.dashboard-request-row>div strong,.dashboard-request-row>div small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word}
.dashboard-request-priority{justify-self:end;font-weight:800;white-space:normal;text-align:right}
.compact-list>a.dashboard-request-row.priority-normal,
.compact-list>a.dashboard-request-row.priority-low{
  background:linear-gradient(90deg,color-mix(in srgb,var(--color-success) 8%,var(--color-surface)),var(--color-surface));
  border-color:color-mix(in srgb,var(--color-success) 24%,var(--color-border));
}
.dashboard-request-row.priority-normal .dashboard-request-priority,
.dashboard-request-row.priority-low .dashboard-request-priority{color:var(--color-success)}
.compact-list>a.dashboard-request-row.priority-high{
  background:linear-gradient(90deg,color-mix(in srgb,var(--color-warning) 10%,var(--color-surface)),var(--color-surface));
  border-color:color-mix(in srgb,var(--color-warning) 30%,var(--color-border));
}
.dashboard-request-row.priority-high .dashboard-request-priority{color:#a66c13}
.compact-list>a.dashboard-request-row.priority-urgent{
  background:linear-gradient(90deg,color-mix(in srgb,var(--color-danger) 8%,var(--color-surface)),var(--color-surface));
  border-color:color-mix(in srgb,var(--color-danger) 26%,var(--color-border));
}
.dashboard-request-row.priority-urgent .dashboard-request-priority{color:var(--color-danger)}
@keyframes ronvo-new-request-pulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 0%,transparent)}
  50%{box-shadow:0 0 0 4px color-mix(in srgb,currentColor 10%,transparent),0 8px 22px rgba(31,48,77,.08)}
}
.dashboard-request-row.is-new{animation:ronvo-new-request-pulse 1.8s ease-in-out infinite}
.dashboard-request-row.priority-normal.is-new,.dashboard-request-row.priority-low.is-new{color:var(--color-success)}
.dashboard-request-row.priority-high.is-new{color:#b97816}
.dashboard-request-row.priority-urgent.is-new{color:var(--color-danger)}
.dashboard-request-row.is-new>div strong,.dashboard-request-row.is-new>div small{color:var(--text)}
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:900;line-height:1}
@media (prefers-reduced-motion:reduce){.dashboard-request-row.is-new{animation:none}}
@media(max-width:620px){
  .compact-list>a.dashboard-request-row{grid-template-columns:1fr;align-items:start}
  .dashboard-request-priority{justify-self:start}
}

/* v5.22.41 · Systemtest Regression Korrekturen */

/* RONVO 5.22.43 · Kundenantwort Aufmerksamkeit */
.customer-reply-alert{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:16px;
  align-items:center;
  margin:0 0 18px;
  padding:16px 18px;
  border:1px solid rgba(236,72,153,.38);
  border-radius:18px;
  background:linear-gradient(105deg,rgba(255,240,247,.96),rgba(248,245,255,.96) 58%,rgba(244,248,255,.98));
  box-shadow:0 12px 32px rgba(81,65,152,.10),inset 0 1px 0 rgba(255,255,255,.9);
  min-width:0;
}
.customer-reply-alert-icon{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:rgba(244,114,182,.22);color:#b51f67;border:1px solid rgba(236,72,153,.18);
}
.customer-reply-alert-icon svg{width:22px;height:22px}
.customer-reply-alert-copy{min-width:0;display:grid;gap:3px}
.customer-reply-alert-copy .eyebrow{color:#d22572;margin:0}
.customer-reply-alert-copy strong{font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.customer-reply-alert-copy small{color:var(--muted);font-size:12px;line-height:1.4}
.customer-reply-alert-time{font-size:12px;color:var(--muted);align-self:center}
.customer-reply-alert-open{min-height:42px;padding:0 16px;text-decoration:none}
.dashboard-activity-preview-row{position:relative}
.dashboard-activity-preview-row.is-unread-reply{
  border-color:rgba(236,72,153,.24);
  background:linear-gradient(105deg,rgba(255,242,248,.92),rgba(255,255,255,.98));
}
.dashboard-activity-preview-row.is-unread-reply .dashboard-activity-preview-icon{color:#d22572;background:rgba(244,114,182,.12);border-color:rgba(236,72,153,.18)}
.dashboard-activity-unread-dot{position:absolute;right:27px;top:10px;width:7px;height:7px;border-radius:50%;background:#ec3f83;box-shadow:0 0 0 3px rgba(236,63,131,.10)}
@media(max-width:900px){
  .customer-reply-alert{grid-template-columns:auto minmax(0,1fr) auto}
  .customer-reply-alert-time{grid-column:2;justify-self:start}
  .customer-reply-alert-open{grid-column:3;grid-row:1/3}
}
@media(max-width:620px){
  .customer-reply-alert{grid-template-columns:auto minmax(0,1fr);padding:15px;gap:12px}
  .customer-reply-alert-icon{width:42px;height:42px}
  .customer-reply-alert-time{grid-column:2}
  .customer-reply-alert-open{grid-column:1/-1;grid-row:auto;width:100%;justify-content:center}
}

/* v5.22.48 · Kundenportal visuelle Endpolitur */
.customer-request-workspace>:first-child{flex:0 1 40%}
.customer-request-workspace>:last-child{flex:1 1 60%}
.customer-request-workspace .request-overview-panel .empty{min-height:210px;display:grid;place-items:center;text-align:center}
.customer-maintenance-summary{align-self:start}
.customer-maintenance-summary .panel-head{margin-bottom:12px}
.maintenance-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.maintenance-summary-grid>div{padding:13px 14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-secondary)}
.maintenance-summary-grid span,.maintenance-summary-grid strong{display:block}
.maintenance-summary-grid span{font-size:10px;color:var(--color-text-secondary);margin-bottom:5px}
.activity-archive-toolbar{padding:14px 16px}
.activity-archive-toolbar .panel-head{margin-bottom:8px}
.activity-archive-toolbar .activity-filter-form{gap:8px}
.activity-archive-toolbar .activity-filter-form label{margin:0}
.activity-archive-toolbar .activity-filter-form select{min-height:36px;padding-top:7px;padding-bottom:7px}
.activity-archive-toolbar .activity-filter-form .btn{min-height:36px;padding-top:7px;padding-bottom:7px}
@container ronvo-content (max-width:1100px){.customer-request-workspace>:first-child,.customer-request-workspace>:last-child{flex:1 1 auto}}
@media(max-width:620px){.maintenance-summary-grid{grid-template-columns:1fr}.activity-archive-toolbar{padding:13px}}

/* RONVO 5.22.49 · Visueller Test */
.visual-test-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:20px;align-items:start}.visual-test-run-card,.visual-renderer-card{min-width:0}.visual-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}.visual-profile-option{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface-secondary);cursor:pointer}.visual-profile-option input{width:18px;height:18px;flex:0 0 auto}.visual-profile-option span{display:flex;flex-direction:column;gap:2px}.visual-profile-option small{color:var(--color-text-secondary)}.visual-renderer-status{display:grid;gap:10px;margin:14px 0 18px}.visual-renderer-status>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--color-border)}.visual-renderer-status span{color:var(--color-text-secondary)}.visual-renderer-form{margin-top:10px}.visual-test-results{margin-top:20px}.visual-shot-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.visual-shot-card{overflow:hidden;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface)}.visual-shot-card>a{display:block;aspect-ratio:16/10;background:var(--color-surface-secondary);overflow:hidden;border-bottom:1px solid var(--color-border)}.visual-shot-card img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block;transition:transform .2s ease}.visual-shot-card>a:hover img{transform:scale(1.015)}.visual-shot-card>div:last-child{padding:12px 14px;display:flex;flex-direction:column;gap:3px}.visual-shot-card small{color:var(--color-text-secondary)}.visual-shot-card.has-error{border-color:color-mix(in srgb,var(--color-danger) 45%,var(--color-border))}.visual-shot-error{height:150px;display:grid;place-items:center;font-size:34px;font-weight:800;color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 8%,var(--color-surface))}.visual-shot-card p{margin:6px 0 0;color:var(--color-danger);font-size:12px}.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}
@media(max-width:1180px){.visual-test-grid{grid-template-columns:1fr}.visual-shot-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.visual-profile-grid,.visual-shot-gallery{grid-template-columns:1fr}.visual-renderer-status>div{align-items:flex-start;flex-direction:column;gap:3px}}
.sidebar-profile-link{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:inherit;text-decoration:none}.sidebar-profile-link>div{min-width:0}.profile-avatar-small{object-fit:cover;border-radius:50%}.profile-avatar-editor{display:flex;align-items:center;justify-content:center;margin:14px 0 20px}.profile-avatar-editor img,.profile-avatar-placeholder{width:112px;height:112px;border-radius:50%;object-fit:cover}.profile-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--soft);border:1px solid var(--line);font-size:36px;font-weight:800}.compact-form{margin-top:10px}.profile-workspace hr{border:0;border-top:1px solid var(--line);margin:24px 0}

/* RONVO 5.22.60 · sichere Profilbild Positionierung und Sidebar Profil Fix */
.profile-avatar-frame,.profile-avatar-preview{display:inline-block;overflow:hidden;border-radius:50%;position:relative;background:var(--soft)}.profile-avatar-frame{width:34px;height:34px;flex:0 0 34px}.profile-avatar-frame img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transform:none}.profile-avatar-preview img{position:absolute;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--avatar-x,50%) var(--avatar-y,50%);transform:scale(var(--avatar-zoom,1));transform-origin:var(--avatar-x,50%) var(--avatar-y,50%)}.profile-avatar-preview{width:180px;height:180px}.profile-avatar-editor .profile-avatar-preview img{width:100%;height:100%;border-radius:0}.avatar-position-form{margin-top:18px}.avatar-position-grid{display:grid;gap:12px}.avatar-position-grid label{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}.avatar-position-grid input[type=range]{grid-column:1/-1;width:100%}

/* RONVO 5.22.60 · erster Sidebar Profil Fix */
.sidebar-user .sidebar-profile-link{grid-column:1 / 3;width:100%;min-width:0}
.sidebar-user>.sidebar-profile-link+ a{grid-column:3}

/* RONVO 5.22.61 · Sidebar Footer auf stabile Rasterlogik zurückgesetzt */
.sidebar-user > .sidebar-profile-link{
  grid-column:1 / 3;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:9px;
  width:auto;
  height:auto;
  min-width:0;
  padding:0;
  border-radius:0;
  place-items:initial;
  color:inherit;
  overflow:visible;
}
.sidebar-user > .sidebar-profile-link:hover{background:transparent;color:inherit}
.sidebar-user > .sidebar-profile-link .profile-avatar-frame{
  width:38px;
  height:38px;
  flex:none;
}
.sidebar-user > .sidebar-profile-link > div{
  display:block;
  min-width:0;
  width:auto;
  overflow:hidden;
}
.sidebar-user > .sidebar-profile-link > div strong,
.sidebar-user > .sidebar-profile-link > div small{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sidebar-user > a:not(.sidebar-profile-link){
  grid-column:3;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
}

/* RONVO 5.22.62 · Gespeicherte Profilbilder verwenden einen festen 1:1 Ausschnitt; Positionswerte wirken nur in der Editor Vorschau. */


/* RONVO 5.22.65 · Persistente Topbar.
   Hintergrund und Depth Stacking sind von der Topbar getrennt; die Topbar bleibt explizit sticky. */
.app-shell.ronvo-background-enabled .topbar,
.app-shell.theme-depth .topbar{position:sticky;top:0;z-index:30}


/* RONVO 5.22.70 · Mitteilungen */
.announcement-admin-grid{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(420px,1.15fr);gap:18px;align-items:start}.announcement-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.announcement-admin-list,.announcement-center-list{display:grid;gap:12px}.announcement-admin-item,.announcement-center-item{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--panel);display:flex;gap:16px}.announcement-admin-item{justify-content:space-between}.announcement-admin-main{min-width:0;display:grid;gap:7px}.announcement-admin-main p,.announcement-center-item p{margin:0;color:var(--muted);line-height:1.55}.announcement-admin-main small,.announcement-center-item small{color:var(--muted)}.announcement-admin-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.announcement-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.announcement-stats span{padding:6px 9px;border-radius:9px;background:var(--soft)}.announcement-priority{display:inline-flex;width:max-content;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--color-info);background:color-mix(in srgb,var(--color-info) 10%,transparent);padding:5px 8px;border-radius:999px}.announcement-priority.priority-important,.priority-important .announcement-priority{color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 12%,transparent)}.announcement-priority.priority-urgent,.priority-urgent .announcement-priority{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 12%,transparent)}.announcement-center-item{justify-content:flex-start}.announcement-center-item>div{display:grid;gap:7px}.announcement-center-item.is-unread{border-left:3px solid var(--color-primary)}.announcement-dialog{border:0;padding:0;background:transparent;max-width:min(620px,calc(100vw - 32px));width:100%;overflow:visible}.announcement-dialog-card{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:22px;;overflow:hidden}.announcement-dialog-head{display:flex;justify-content:space-between;gap:20px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}.announcement-dialog-head h3{margin:8px 0 4px;font-size:22px}.announcement-dialog-head small{color:var(--muted)}.announcement-close{border:0;background:var(--soft);color:var(--text);width:36px;height:36px;border-radius:50%;font-size:24px;cursor:pointer}.announcement-message{padding:22px 24px;line-height:1.65;max-height:48vh;overflow:auto;white-space:normal}.announcement-actions{padding:16px 24px 22px;display:flex;justify-content:flex-end;border-top:1px solid var(--line)}.announcement-dialog.priority-urgent .announcement-dialog-card{border-top:4px solid var(--color-danger)}.announcement-dialog.priority-important .announcement-dialog-card{border-top:4px solid var(--color-warning)}.announcement-dialog.priority-info .announcement-dialog-card{border-top:0}
@media(max-width:900px){.announcement-admin-grid{grid-template-columns:1fr}}@media(max-width:620px){.announcement-form-grid{grid-template-columns:1fr}.announcement-admin-item{flex-direction:column}.announcement-dialog{max-width:calc(100vw - 20px)}.announcement-dialog-head,.announcement-message,.announcement-actions{padding-left:18px;padding-right:18px}.announcement-actions .btn{width:100%}}

/* 5.22.71 Mitteilungen bearbeiten */

/* 5.22.72 · Mitteilungen bearbeiten als Lightbox */
.announcement-edit-dialog{border:0;padding:0;background:transparent;width:min(860px,calc(100vw - 40px));max-width:860px;max-height:calc(100vh - 40px);overflow:visible}

.announcement-edit-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:22px;box-shadow:0 28px 80px rgba(20,32,55,.22);overflow:hidden}
.announcement-edit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px 18px;border-bottom:1px solid var(--line)}
.announcement-edit-head h3{margin:6px 0 0;font-size:22px}.announcement-edit-body{padding:22px 26px 26px;overflow:auto;overscroll-behavior:contain}
.announcement-edit-form{max-width:none}.announcement-edit-form textarea{min-height:170px;resize:vertical}.announcement-edit-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}
.announcement-edit-hint{margin:-4px 0 8px;font-size:13px}.announcement-edit-dialog .announcement-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.announcement-edit-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.announcement-edit-card{max-height:calc(100vh - 20px)}.announcement-edit-head{padding:18px}.announcement-edit-body{padding:18px}.announcement-edit-dialog .announcement-form-grid{grid-template-columns:1fr}.announcement-edit-actions{flex-direction:column-reverse}.announcement-edit-actions .btn{width:100%}}

/* RONVO 5.22.74 · Mitteilungen Rich Text Editor */
.announcement-rte{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}.announcement-rte:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.announcement-rte-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 10px;border-bottom:1px solid var(--line);background:var(--soft)}.announcement-rte-toolbar button{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;min-height:34px;padding:6px 9px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.announcement-rte-toolbar button:hover{border-color:var(--primary);color:var(--primary)}.announcement-rte-toolbar button:disabled{opacity:.5;cursor:wait}.announcement-rte-surface{min-height:210px;max-height:430px;overflow:auto;padding:16px 18px;outline:0;line-height:1.62;color:var(--text);background:var(--panel)}.announcement-edit-form .announcement-rte-surface{min-height:240px}.announcement-rte-surface:empty:before{content:'Nachricht eingeben …';color:var(--muted)}.announcement-rte-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.announcement-rich-content{line-height:1.65;overflow-wrap:anywhere}.announcement-rich-content>:first-child{margin-top:0}.announcement-rich-content>:last-child{margin-bottom:0}.announcement-rich-content p{margin:0 0 1em}.announcement-rich-content h2,.announcement-rich-content h3{margin:1.1em 0 .45em;line-height:1.25}.announcement-rich-content ul,.announcement-rich-content ol{padding-left:1.45em;margin:.7em 0 1em}.announcement-rich-content blockquote{margin:1em 0;padding:.2em 0 .2em 1em;border-left:3px solid var(--line);color:var(--muted)}.announcement-rich-content hr{border:0;border-top:1px solid var(--line);margin:1.3em 0}.announcement-rich-content a:not(.announcement-cta){color:var(--primary);text-decoration:underline;text-underline-offset:2px}.announcement-rich-content .announcement-media,.announcement-rte-surface .announcement-media{display:block;max-width:100%;height:auto;border-radius:14px;margin:14px auto}.announcement-rich-content .announcement-video,.announcement-rte-surface .announcement-video{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:14px;margin:14px 0;background:#000}.announcement-rich-content .announcement-cta,.announcement-rte-surface .announcement-cta{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border-radius:11px;background:var(--primary);color:#fff!important;text-decoration:none!important;font-weight:800}.announcement-center-message{color:var(--text)}.announcement-message:has(.announcement-media,.announcement-video){max-height:60vh}.announcement-dialog:has(.announcement-media,.announcement-video){max-width:min(760px,calc(100vw - 32px))}
@media(max-width:620px){.announcement-rte-toolbar{gap:5px;padding:8px}.announcement-rte-toolbar button{min-height:36px;padding:7px 8px}.announcement-rte-surface{min-height:190px;padding:14px}.announcement-dialog:has(.announcement-media,.announcement-video){max-width:calc(100vw - 20px)}}


/* RONVO 5.22.75 · Smartphone Sidebar: Systembereich ausblenden */
@media(max-width:620px){.sidebar .system-navigation-section{display:none}}

/* RONVO 5.22.79 · Globale Systemmeldungen als Toast Notifications */
.toast-container{position:fixed;top:88px;right:24px;z-index:80;width:min(420px,calc(100vw - 48px));display:flex;flex-direction:column;gap:11px;pointer-events:none}.system-toast{--toast-accent:var(--color-info);--toast-bg:#f1f6ff;display:grid;grid-template-columns:40px minmax(0,1fr) 32px;align-items:center;gap:12px;min-height:64px;padding:12px 10px 12px 12px;border:1px solid color-mix(in srgb,var(--toast-accent) 42%,transparent);border-radius:15px;background:color-mix(in srgb,var(--toast-bg) 94%,rgba(255,255,255,.7));box-shadow:0 12px 32px rgba(30,48,78,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:auto;animation:ronvo-toast-in .28s ease-out both}.system-toast.toast-success{--toast-accent:var(--color-success);--toast-bg:#edf9f3}.system-toast.toast-warning{--toast-accent:var(--color-warning);--toast-bg:#fff8e9}.system-toast.toast-error{--toast-accent:var(--color-danger);--toast-bg:#fff1f3}.system-toast-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--toast-accent);color:#fff;font-size:21px;font-weight:800;line-height:1}.system-toast-copy{min-width:0}.system-toast-copy strong{display:block;color:color-mix(in srgb,var(--toast-accent) 82%,#172033);font-size:12px;line-height:1.45;font-weight:750;overflow-wrap:anywhere}.system-toast-close{width:32px;height:32px;display:grid;place-items:center;align-self:start;border:0;border-radius:9px;background:transparent;color:#526078;font-size:20px;line-height:1;cursor:pointer}.system-toast-close:hover{background:rgba(23,32,51,.06);color:var(--text)}.system-toast.is-leaving{animation:ronvo-toast-out .22s ease-in forwards}@keyframes ronvo-toast-in{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}@keyframes ronvo-toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(18px)}}@media(max-width:900px){.toast-container{top:82px;right:18px;width:min(420px,calc(100vw - 36px))}}@media(max-width:620px){.toast-container{top:76px;left:16px;right:16px;width:auto}.system-toast{grid-template-columns:38px minmax(0,1fr) 32px;padding:11px 9px 11px 11px}.system-toast-icon{width:36px;height:36px}}@media(prefers-reduced-motion:reduce){.system-toast,.system-toast.is-leaving{animation:none}}

/* =========================================================
   RONVO Unified Layout Architecture v5.23.0
   Konsolidiert wiederkehrende Layoutaufgaben auf verbindliche
   Core Varianten. Fachliche Komponenten behalten ihre Styles.
   ========================================================= */
:root{
  --ronvo-page-gap:22px;
  --ronvo-grid-gap:22px;
  --ronvo-split-left:minmax(320px,35fr);
  --ronvo-split-right:minmax(0,65fr);
  --ronvo-sidebar-width:220px;
}
.module-page-header{width:100%;min-width:0}
.ronvo-kpi-grid{display:grid;gap:var(--ronvo-grid-gap);align-items:stretch;min-width:0;margin-bottom:var(--ronvo-page-gap)}
.ronvo-kpi-grid>*{min-width:0}
.ronvo-kpi-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ronvo-kpi-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ronvo-layout-equal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ronvo-grid-gap);align-items:start;min-width:0}
.ronvo-layout-equal>*{min-width:0}
.ronvo-workspace-two-column.ronvo-layout-split,.announcement-admin-grid.ronvo-layout-split{display:grid;grid-template-columns:var(--ronvo-split-left) var(--ronvo-split-right);gap:var(--ronvo-grid-gap);align-items:start;width:100%;min-width:0}
.ronvo-workspace-two-column.ronvo-layout-split>*,.announcement-admin-grid.ronvo-layout-split>*{min-width:0;width:auto;max-width:100%}
.ronvo-workspace-two-column.ronvo-layout-split>:first-child,.ronvo-workspace-two-column.ronvo-layout-split>:last-child,.ronvo-workspace-two-column.ronvo-layout-split>:only-child{flex:none}
.ronvo-workspace-two-column.ronvo-layout-split>:only-child{grid-column:1/-1}
.ronvo-layout-sidebar{grid-template-columns:var(--ronvo-sidebar-width) minmax(0,1fr)}
.ronvo-card-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;min-width:0}
.ronvo-card-grid-2>*{min-width:0}
/* Aktivitäten verwenden dieselbe KPI Kartenlogik wie andere Statusbereiche. */
.activity-archive-stats.ronvo-kpi-compact>div{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px 20px;box-shadow:var(--shadow);min-width:0}
.activity-archive-stats.ronvo-kpi-compact>div span{display:block;margin-bottom:8px}
.activity-archive-stats.ronvo-kpi-compact>div strong{display:block;overflow-wrap:anywhere}
@container ronvo-content (max-width:1100px){
  .ronvo-workspace-two-column.ronvo-layout-split,.announcement-admin-grid.ronvo-layout-split{grid-template-columns:1fr;gap:18px}
  .ronvo-layout-equal{grid-template-columns:1fr;gap:18px}
  .ronvo-kpi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container ronvo-content (max-width:760px){
  .ronvo-kpi-grid{gap:14px;margin-bottom:18px}
  .ronvo-kpi-grid-3,.ronvo-kpi-grid-4,.ronvo-card-grid-2{grid-template-columns:1fr}
  .ronvo-workspace-two-column.ronvo-layout-split,.announcement-admin-grid.ronvo-layout-split,.ronvo-layout-equal{gap:14px}
}
@media(max-width:900px){
  .ronvo-workspace-two-column.ronvo-layout-split,.announcement-admin-grid.ronvo-layout-split{grid-template-columns:1fr}
  .ronvo-layout-equal{grid-template-columns:1fr}
  .ronvo-kpi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .ronvo-kpi-grid-3,.ronvo-kpi-grid-4,.ronvo-card-grid-2{grid-template-columns:1fr}
}

/* RONVO Customer Safe Delete v5.25.0 */
.customer-danger-zone{border:1px solid rgba(220,38,38,.28)}
.customer-danger-zone .eyebrow{color:#b91c1c}.customer-delete-modal[hidden]{display:none!important}.customer-delete-modal{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:24px}.customer-delete-backdrop{position:absolute;inset:0;background:rgba(11,13,18,.58);backdrop-filter:blur(4px)}.customer-delete-dialog{position:relative;width:min(620px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--panel,#fff);border-radius:20px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.customer-delete-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:28px;cursor:pointer}.customer-delete-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:20px 0;padding:16px;border-radius:14px;background:rgba(127,127,127,.07)}.customer-delete-counts span{display:flex;justify-content:space-between;gap:16px}.customer-delete-dialog .form{margin-top:16px}@media(max-width:620px){.customer-delete-modal{padding:16px}.customer-delete-dialog{padding:24px 18px}.customer-delete-counts{grid-template-columns:1fr}}


/* RONVO UI Core v5.26.3 · Phase 3.1–3.6 Compatibility Layer
   Architecture contract + semantic design tokens + non-breaking UI primitives.
   Existing selectors remain authoritative and unchanged. */
:root{
  --ronvo-color-bg:var(--color-background);
  --ronvo-color-surface:var(--color-surface);
  --ronvo-color-surface-secondary:var(--color-surface-secondary);
  --ronvo-color-text:var(--color-text);
  --ronvo-color-text-muted:var(--color-text-secondary);
  --ronvo-color-border:var(--color-border);
  --ronvo-color-primary:var(--color-primary);
  --ronvo-color-primary-hover:var(--color-primary-hover);
  --ronvo-color-success:var(--color-success);
  --ronvo-color-warning:var(--color-warning);
  --ronvo-color-danger:var(--color-danger);
  --ronvo-color-info:var(--color-info);
  --ronvo-color-navigation:var(--color-navigation);
  --ronvo-space-1:4px;
  --ronvo-space-2:8px;
  --ronvo-space-3:12px;
  --ronvo-space-4:16px;
  --ronvo-space-5:20px;
  --ronvo-space-6:24px;
  --ronvo-space-7:32px;
  --ronvo-space-8:40px;
  --ronvo-radius-sm:10px;
  --ronvo-radius-md:14px;
  --ronvo-radius-lg:var(--radius);
  --ronvo-radius-xl:26px;
  --ronvo-radius-pill:999px;
  --ronvo-shadow-sm:0 5px 18px rgba(30,48,78,.05);
  --ronvo-shadow-md:var(--shadow);
  --ronvo-shadow-lg:0 24px 80px rgba(0,0,0,.20);
  --ronvo-motion-fast:120ms;
  --ronvo-motion-normal:220ms;
  --ronvo-motion-slow:320ms;
  --ronvo-ease-standard:ease;
  --ronvo-sidebar-width:var(--sidebar-w);
  --ronvo-content-max:var(--content-max);
  --ronvo-breakpoint-desktop:1200px;
  --ronvo-breakpoint-nav:900px;
  --ronvo-breakpoint-mobile:620px;
  --ronvo-container-wide:1100px;
  --ronvo-container-compact:760px;
  --ronvo-container-narrow:480px;
}

/* New RONVO primitives mirror the current stable visual contract.
   They can be adopted module by module without changing legacy markup. */
.ronvo-page{width:100%;min-width:0}
.ronvo-section{min-width:0}
.ronvo-panel,.ronvo-card{min-width:0;padding:24px;border:1px solid var(--ronvo-color-border);border-radius:var(--ronvo-radius-lg);background:var(--ronvo-color-surface);box-shadow:var(--ronvo-shadow-md)}
.ronvo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--ronvo-space-3);flex-wrap:wrap}
.ronvo-grid{display:grid;gap:var(--ronvo-space-4)}
.ronvo-stack{display:grid;gap:var(--ronvo-space-4)}
.ronvo-btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:11px;padding:0 16px;font-weight:750;font-size:12px}
.ronvo-btn.is-primary{background:var(--ronvo-color-primary);color:#fff;box-shadow:0 8px 20px rgba(59,110,234,.2)}
.ronvo-btn.is-primary:hover{background:var(--ronvo-color-primary-hover)}
.ronvo-btn.is-ghost{background:var(--ronvo-color-surface);border-color:var(--ronvo-color-border);color:#354157}
.ronvo-form{display:grid;gap:14px}
.ronvo-field{display:grid;gap:7px}
.ronvo-input,.ronvo-select,.ronvo-textarea{width:100%;min-width:0;padding:10px 12px;border:1px solid #d9e1ec;border-radius:11px;background:var(--ronvo-color-surface);color:var(--ronvo-color-text);outline:none}.ronvo-input,.ronvo-select{min-height:44px}
.ronvo-textarea{min-height:112px;resize:vertical}
.ronvo-input:focus,.ronvo-select:focus,.ronvo-textarea:focus{border-color:#8aabff;box-shadow:0 0 0 3px #edf3ff}
.ronvo-status,.ronvo-badge{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:var(--ronvo-radius-pill);font-size:10px;font-weight:800;background:#eef2f7;color:#68758a}
.ronvo-status.is-success{background:#eaf7f0;color:#27835a}
.ronvo-status.is-warning{background:#fff4df;color:#a66c13}
.ronvo-status.is-danger{background:#fcecee;color:#bd3e50}
.ronvo-status.is-info{background:#edf3ff;color:#416fcf}
.ronvo-empty{min-height:220px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--ronvo-color-text-muted)}
.ronvo-list{display:grid}
.ronvo-table{min-width:0;width:100%}

/* Compatibility aliases expose the current stable building blocks to the Core
   without changing their legacy selectors or cascade. */
.panel{--ronvo-component:panel}
.btn{--ronvo-component:button}
.form{--ronvo-component:form}
.status{--ronvo-component:status}
.empty{--ronvo-component:empty}

@media(max-width:900px){
  .ronvo-toolbar{align-items:flex-start}
}
@media(max-width:620px){
  .ronvo-panel,.ronvo-card{padding:18px;border-radius:17px}
  .ronvo-btn{min-height:44px}
}

/* =========================================================
   RONVO Responsive Core v5.26.1 · Phase 3.4
   Verbindliche neue Core-Regeln. Bestehende Modul-Breakpoints
   bleiben bis zur jeweiligen Modulmigration unverändert erhalten.
   ========================================================= */

/* Desktop-first Core primitives. These selectors are additive and
   are not attached to legacy module markup automatically. */
.ronvo-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ronvo-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ronvo-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ronvo-responsive-item{min-width:0;max-width:100%}
.ronvo-responsive-media{display:block;max-width:100%;height:auto}
.ronvo-responsive-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.ronvo-responsive-wrap{display:flex;flex-wrap:wrap;gap:var(--ronvo-space-3);min-width:0}
.ronvo-only-mobile{display:none!important}
.ronvo-hide-mobile{display:initial}

/* Content-aware Core behavior uses the already established ronvo-content
   container. 1100 / 760 / 480 are compatibility container thresholds,
   not additional global viewport breakpoints. */
@container ronvo-content (max-width:1100px){
  .ronvo-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ronvo-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ronvo-responsive-split{grid-template-columns:1fr!important}
}
@container ronvo-content (max-width:760px){
  .ronvo-grid-2,.ronvo-grid-3,.ronvo-grid-4{grid-template-columns:1fr}
  .ronvo-toolbar{align-items:stretch}
  .ronvo-toolbar>.ronvo-toolbar-main,.ronvo-toolbar>.ronvo-toolbar-actions{min-width:0}
}
@container ronvo-content (max-width:480px){
  .ronvo-responsive-wrap{gap:var(--ronvo-space-2)}
}

/* Global viewport conventions for all NEW Core components:
   1200 = desktop compaction, 900 = navigation/tablet, 620 = mobile.
   Existing module-specific 520/760/767/820/1100 rules are intentionally
   untouched until those modules are migrated and visually verified. */
@media(max-width:1200px){
  .ronvo-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .ronvo-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ronvo-responsive-split{grid-template-columns:1fr!important}
}
@media(max-width:620px){
  .ronvo-grid-2,.ronvo-grid-3,.ronvo-grid-4{grid-template-columns:1fr}
  .ronvo-only-mobile{display:initial!important}
  .ronvo-hide-mobile{display:none!important}
  .ronvo-responsive-scroll{margin-inline:calc(var(--ronvo-space-3) * -1);padding-inline:var(--ronvo-space-3)}
}

@media(prefers-reduced-motion:reduce){
  .ronvo-responsive-scroll{scroll-behavior:auto}
}



/* =========================================================
   RONVO Status Core v5.26.2 · Phase 3.5
   Semantische Status- und Prioritätsarchitektur. Additiv und
   rückwärtskompatibel: fachliche Legacy-Statusklassen bleiben
   unverändert und werden erst modulweise migriert.
   ========================================================= */
:root{
  --ronvo-status-neutral-bg:var(--color-surface-secondary);
  --ronvo-status-neutral-fg:var(--color-text-secondary);
  --ronvo-status-info-bg:var(--theme-info-soft);
  --ronvo-status-info-fg:var(--color-info);
  --ronvo-status-success-bg:var(--theme-success-soft);
  --ronvo-status-success-fg:var(--color-success);
  --ronvo-status-warning-bg:var(--theme-warning-soft);
  --ronvo-status-warning-fg:var(--color-warning);
  --ronvo-status-danger-bg:var(--theme-danger-soft);
  --ronvo-status-danger-fg:var(--color-danger);
  --ronvo-status-critical-bg:var(--theme-danger-soft);
  --ronvo-status-critical-fg:var(--color-danger);
  --ronvo-status-height:27px;
  --ronvo-status-pad-inline:9px;
  --ronvo-status-font-size:10px;
  --ronvo-status-dot-size:7px;
}

/* New semantic component. Modules should prefer meaning over domain wording:
   is-success / is-info / is-warning / is-danger / is-critical / is-neutral. */
.ronvo-status,.ronvo-priority,.ronvo-severity{
  --ronvo-status-bg:var(--ronvo-status-neutral-bg);
  --ronvo-status-fg:var(--ronvo-status-neutral-fg);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:var(--ronvo-status-height);
  max-width:100%;
  padding:0 var(--ronvo-status-pad-inline);
  border-radius:var(--ronvo-radius-pill);
  background:var(--ronvo-status-bg);
  color:var(--ronvo-status-fg);
  font-size:var(--ronvo-status-font-size);
  font-weight:800;
  line-height:1.2;
  text-align:center;
  overflow-wrap:anywhere;
}
.ronvo-status.is-neutral,.ronvo-priority.is-normal,.ronvo-severity.is-neutral{--ronvo-status-bg:var(--ronvo-status-neutral-bg);--ronvo-status-fg:var(--ronvo-status-neutral-fg)}
.ronvo-status.is-info,.ronvo-status.is-planned,.ronvo-status.is-unknown,.ronvo-priority.is-low,.ronvo-severity.is-info{--ronvo-status-bg:var(--ronvo-status-info-bg);--ronvo-status-fg:var(--ronvo-status-info-fg)}
.ronvo-status.is-success,.ronvo-status.is-online,.ronvo-status.is-ok,.ronvo-status.is-paid,.ronvo-status.is-completed,.ronvo-status.is-done,.ronvo-severity.is-success{--ronvo-status-bg:var(--ronvo-status-success-bg);--ronvo-status-fg:var(--ronvo-status-success-fg)}
.ronvo-status.is-warning,.ronvo-status.is-open,.ronvo-status.is-paused,.ronvo-priority.is-high,.ronvo-severity.is-warning{--ronvo-status-bg:var(--ronvo-status-warning-bg);--ronvo-status-fg:var(--ronvo-status-warning-fg)}
.ronvo-status.is-danger,.ronvo-status.is-offline,.ronvo-status.is-error,.ronvo-status.is-overdue,.ronvo-status.is-cancelled,.ronvo-severity.is-danger{--ronvo-status-bg:var(--ronvo-status-danger-bg);--ronvo-status-fg:var(--ronvo-status-danger-fg)}
.ronvo-status.is-critical,.ronvo-priority.is-urgent,.ronvo-severity.is-critical{--ronvo-status-bg:var(--ronvo-status-critical-bg);--ronvo-status-fg:var(--ronvo-status-critical-fg)}

.ronvo-status.has-dot::before,.ronvo-priority.has-dot::before,.ronvo-severity.has-dot::before{
  content:"";
  width:var(--ronvo-status-dot-size);
  height:var(--ronvo-status-dot-size);
  flex:0 0 var(--ronvo-status-dot-size);
  border-radius:50%;
  background:currentColor;
}
.ronvo-status.is-pulsing::before,.ronvo-priority.is-pulsing::before,.ronvo-severity.is-pulsing::before{animation:ronvo-status-pulse 1.6s ease-in-out infinite}
@keyframes ronvo-status-pulse{0%,100%{opacity:.45;transform:scale(.86)}50%{opacity:1;transform:scale(1.12)}}

/* Legacy compatibility: only the already global and unambiguous mappings are
   bound to semantic tokens. Domain-specific values such as in_progress or done
   keep their existing module styling until that module is migrated. */
.status{
  --ronvo-status-bg:var(--ronvo-status-neutral-bg);
  --ronvo-status-fg:var(--ronvo-status-neutral-fg);
  background:var(--ronvo-status-bg);
  color:var(--ronvo-status-fg);
}
.status.online,.status.ok,.status.paid,.status.good,.pill.ok{--ronvo-status-bg:var(--ronvo-status-success-bg);--ronvo-status-fg:var(--ronvo-status-success-fg)}
.status.warning,.status.open{--ronvo-status-bg:var(--ronvo-status-warning-bg);--ronvo-status-fg:var(--ronvo-status-warning-fg)}
.status.offline,.status.error,.pill.bad{--ronvo-status-bg:var(--ronvo-status-danger-bg);--ronvo-status-fg:var(--ronvo-status-danger-fg)}
.status.planned,.status.unknown{--ronvo-status-bg:var(--ronvo-status-info-bg);--ronvo-status-fg:var(--ronvo-status-info-fg)}

@media(prefers-reduced-motion:reduce){
  .ronvo-status.is-pulsing::before,.ronvo-priority.is-pulsing::before,.ronvo-severity.is-pulsing::before{animation:none}
}


/* =========================================================
   RONVO Overlay Core v5.26.3 · Phase 3.6
   Zentrale Grundlage für Dialog, Modal und Lightbox Verhalten.
   Additiv und rückwärtskompatibel: bestehende Fachdialoge behalten
   Inhalt, Größe und Geschäftslogik und nutzen gemeinsame Grundlagen.
   ========================================================= */
:root{
  --ronvo-overlay-z:10020;
  --ronvo-overlay-backdrop:rgba(9,16,30,.55);
  --ronvo-overlay-backdrop-soft:rgba(20,32,55,.28);
  --ronvo-overlay-backdrop-blur:5px;
  --ronvo-overlay-radius:22px;
  --ronvo-overlay-shadow:0 28px 80px rgba(0,0,0,.25);
  --ronvo-overlay-gutter:16px;
  --ronvo-overlay-transition:180ms ease;
}
body.ronvo-overlay-open{overflow:hidden}

/* Primitive für neue Overlays. Bestehende Dialoge werden weiter unten
   über Compatibility Bindings angebunden. */
.ronvo-overlay-dialog{
  border:0;
  padding:0;
  background:transparent;
  color:var(--text);
  max-width:min(720px,calc(100vw - (var(--ronvo-overlay-gutter) * 2)));
  max-height:calc(100dvh - (var(--ronvo-overlay-gutter) * 2));
  overscroll-behavior:contain;
}
.ronvo-overlay-dialog::backdrop{
  background:var(--ronvo-overlay-backdrop);
  backdrop-filter:blur(var(--ronvo-overlay-backdrop-blur));
  -webkit-backdrop-filter:blur(var(--ronvo-overlay-backdrop-blur));
}
.ronvo-overlay-surface{
  position:relative;
  max-width:100%;
  max-height:100%;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:var(--ronvo-overlay-radius);
  background:var(--panel);
  box-shadow:var(--ronvo-overlay-shadow);
}
.ronvo-overlay-close{display:inline-grid;place-items:center;flex:0 0 auto}
.ronvo-overlay-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.ronvo-overlay-layer[hidden]{display:none!important}
.ronvo-overlay-layer{position:fixed;inset:0;z-index:var(--ronvo-overlay-z);display:grid;place-items:center;padding:24px;isolation:isolate}
.ronvo-overlay-layer>.ronvo-overlay-backdrop{position:absolute;inset:0;background:var(--ronvo-overlay-backdrop);backdrop-filter:blur(var(--ronvo-overlay-backdrop-blur));-webkit-backdrop-filter:blur(var(--ronvo-overlay-backdrop-blur))}
.ronvo-overlay-layer>.ronvo-overlay-surface{z-index:1}

/* Legacy compatibility bindings. Sizes and module-specific surfaces stay
   intentionally untouched; only shared overlay infrastructure is centralized. */
.announcement-dialog,.announcement-edit-dialog,.support-problem-dialog{overscroll-behavior:contain}
.announcement-dialog{--ronvo-overlay-backdrop:rgba(9,16,30,.55);--ronvo-overlay-backdrop-blur:5px}
.announcement-edit-dialog{--ronvo-overlay-backdrop:rgba(20,32,55,.28);--ronvo-overlay-backdrop-blur:4px}
.support-problem-dialog{--ronvo-overlay-backdrop:rgba(15,23,42,.48);--ronvo-overlay-backdrop-blur:5px}
.announcement-dialog::backdrop,.announcement-edit-dialog::backdrop,.support-problem-dialog::backdrop{
  background:var(--ronvo-overlay-backdrop);
  backdrop-filter:blur(var(--ronvo-overlay-backdrop-blur));
  -webkit-backdrop-filter:blur(var(--ronvo-overlay-backdrop-blur));
}
.announcement-dialog-card,.announcement-edit-card{box-shadow:var(--ronvo-overlay-shadow)}
.customer-delete-modal{z-index:var(--ronvo-overlay-z)}
.customer-delete-backdrop{background:var(--ronvo-overlay-backdrop);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.customer-delete-dialog{isolation:isolate}

@media(max-width:620px){
  .ronvo-overlay-layer{padding:var(--ronvo-overlay-gutter)}
  .ronvo-overlay-dialog.ronvo-overlay-mobile-fullscreen{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}
  .ronvo-overlay-dialog.ronvo-overlay-mobile-fullscreen>.ronvo-overlay-surface{width:100%;height:100%;max-height:none;border-radius:0;border:0}
}
@media(prefers-reduced-motion:reduce){
  .ronvo-overlay-dialog,.ronvo-overlay-layer,.ronvo-overlay-surface{scroll-behavior:auto;transition:none!important;animation:none!important}
}

/* =========================================================
   RONVO Dashboard Core Migration v5.27.0 · Phase 3.7.1
   Erstes produktiv migriertes Modul. Dashboard nutzt die zentralen
   Page, Section, Panel, KPI, Layout, Responsive und Overlay Primitive.
   Bestehende sichtbare Abstaende bleiben fuer diese Migration erhalten.
   ========================================================= */
.dashboard-page{width:100%;min-width:0}
.dashboard-page>.ronvo-responsive-item,.dashboard-page .ronvo-responsive-item{min-width:0;max-width:100%}
.dashboard-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.dashboard-page .dashboard-paired-card.ronvo-panel{min-width:0}
@media(max-width:620px){
  /* Legacy Dashboard Dichte bewusst erhalten: zentrale Panel Primitive,
     aber exakt die bisherige Smartphone Geometrie des Dashboards. */
  .dashboard-page .panel.ronvo-panel{padding:16px;border-radius:16px}
}

/* =========================================================
   RONVO Customers Core Migration v5.27.2 · Phase 3.7.2
   Kundenuebersicht und Kundendetail nutzen die zentralen Page,
   Section, Panel, Layout, Responsive und Overlay Primitive.
   Bestehende sichtbare Geometrie und Fachlogik bleiben erhalten.
   ========================================================= */
.customers-page,.customer-detail-page{width:100%;min-width:0}
.customers-page>.ronvo-responsive-item,.customers-page .ronvo-responsive-item,.customer-detail-page>.ronvo-responsive-item,.customer-detail-page .ronvo-responsive-item{min-width:0;max-width:100%}
.customers-page .panel.ronvo-panel,.customer-detail-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.customers-page .customer-grid[data-customer-core="card-grid"]{min-width:0}
.customer-detail-page .customer-delete-modal.ronvo-overlay-layer{z-index:var(--ronvo-overlay-z)}
@media(max-width:620px){
  /* Bestehende Smartphone Dichte des Kundenmoduls bleibt unveraendert. */
  .customers-page .panel.ronvo-panel,.customer-detail-page .panel.ronvo-panel{padding:16px;border-radius:16px}
  .customer-detail-page .customer-presence-panel.ronvo-panel{padding-left:14px;padding-right:14px}
}


/* =========================================================
   RONVO Websites Core Migration v5.27.4 · Phase 3.7.3
   Webseitenuebersicht, Wartungscockpit und Webseitendetail nutzen
   zentrale Page, Section, Panel, KPI, Layout und Responsive Primitive.
   Bestehende sichtbare Geometrie und Fachlogik bleiben erhalten.
   ========================================================= */
.sites-page,.site-detail-page{width:100%;min-width:0}
.sites-page>.ronvo-responsive-item,.sites-page .ronvo-responsive-item,.site-detail-page>.ronvo-responsive-item,.site-detail-page .ronvo-responsive-item{min-width:0;max-width:100%}
.sites-page .panel.ronvo-panel,.site-detail-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.sites-page .sites-workspace[data-sites-core="workspace"]{min-width:0}
.sites-page .health-overview[data-sites-core="kpis"]{min-width:0}
@media(max-width:620px){
  /* Bestehende Smartphone Dichte des Webseitenmoduls bleibt unveraendert. */
  .sites-page .panel.ronvo-panel,.site-detail-page .panel.ronvo-panel{padding:16px;border-radius:16px}
}

/* =========================================================
   RONVO Requests Core Migration v5.27.6 · Phase 3.7.4
   Anfrageuebersicht und Anfragedetail nutzen zentrale Page,
   Section, Panel, Form, List, Layout und Responsive Primitive.
   Bestehende sichtbare Geometrie und Fachlogik bleiben erhalten.
   ========================================================= */
.requests-page,.request-detail-page{width:100%;min-width:0}
.requests-page>.ronvo-responsive-item,.requests-page .ronvo-responsive-item,.request-detail-page>.ronvo-responsive-item,.request-detail-page .ronvo-responsive-item{min-width:0;max-width:100%}
.requests-page .panel.ronvo-panel,.request-detail-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.requests-page .request-workspace[data-requests-core="workspace"],.request-detail-page .request-detail-grid[data-requests-core="detail-layout"]{min-width:0}
.requests-page .form.ronvo-form,.request-detail-page .form.ronvo-form{gap:14px}
.requests-page .request-list.ronvo-list{display:grid}
@media(max-width:620px){
  /* Bestehende Smartphone Dichte des Anfragemoduls bleibt unveraendert. */
  .requests-page .panel.ronvo-panel,.request-detail-page .panel.ronvo-panel{padding:16px;border-radius:16px}
}


/* =========================================================
   RONVO Appointments Core Migration v5.27.7 · Phase 3.7.5
   Terminübersicht, Kalender Cockpit und Termindetail nutzen
   zentrale Page, Section, Panel, Form, Layout und Responsive Primitive.
   Bestehende Kalendergeometrie und Fachlogik bleiben erhalten.
   ========================================================= */
.appointments-page,.appointment-detail-page{width:100%;min-width:0}
.appointments-page>.ronvo-responsive-item,.appointments-page .ronvo-responsive-item,.appointment-detail-page>.ronvo-responsive-item,.appointment-detail-page .ronvo-responsive-item{min-width:0;max-width:100%}
.appointments-page .panel.ronvo-panel,.appointment-detail-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.appointments-page .calendar-cockpit.ronvo-panel{padding:20px 22px}
.appointments-page .calendar-list-workspace[data-appointments-core="workspace"],.appointment-detail-page .document-detail-grid[data-appointments-core="detail-layout"]{min-width:0}
.appointments-page .form.ronvo-form,.appointment-detail-page .form.ronvo-form{gap:14px}
@media(max-width:620px){
  .appointments-page .panel.ronvo-panel,.appointment-detail-page .panel.ronvo-panel{padding:16px;border-radius:16px}
  .appointments-page .calendar-cockpit.ronvo-panel{padding:14px}
}

/* =========================================================
   RONVO Documents Core Migration v5.27.8 · Phase 3.7.6
   Dokumentübersicht und Dokumentdetail nutzen zentrale Page,
   Section, Panel, Form und Responsive Primitive. Bestehende
   Dokumentgeometrie, PDF Vorschau und Fachlogik bleiben erhalten.
   ========================================================= */
.documents-page,.document-detail-page{width:100%;min-width:0}
.documents-page>.ronvo-responsive-item,.documents-page .ronvo-responsive-item,.document-detail-page>.ronvo-responsive-item,.document-detail-page .ronvo-responsive-item{min-width:0;max-width:100%}
.documents-page .panel.ronvo-panel,.document-detail-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.documents-page .document-upload.ronvo-panel{padding:18px 20px}
.document-detail-page .document-pdf-preview.ronvo-panel{padding:16px}
.documents-page .form.ronvo-form,.document-detail-page .form.ronvo-form{gap:14px}
.documents-page .document-page[data-documents-core="overview"],.document-detail-page .document-detail-grid[data-documents-core="detail-layout"]{min-width:0}
@media(max-width:620px){
  /* Bestehende Smartphone Dichte und PDF Vorschau Geometrie bleiben unveraendert. */
  .documents-page .panel.ronvo-panel,.document-detail-page .panel.ronvo-panel{padding:16px;border-radius:16px}
  .documents-page .document-upload.ronvo-panel{padding:16px}
  .document-detail-page .document-pdf-preview.ronvo-panel{padding:10px}
}

/* =========================================================
   RONVO Invoices Core Migration v5.27.9 · Phase 3.7.7
   Rechnungsübersicht und Rechnungsdetail nutzen zentrale Page,
   Section, Panel, Form und Responsive Primitive. Bestehende
   Rechnungsgeometrie, PDF Vorschau und Fachlogik bleiben erhalten.
   ========================================================= */
.invoices-page,.invoice-detail-page{width:100%;min-width:0}
.invoices-page>.ronvo-responsive-item,.invoices-page .ronvo-responsive-item,.invoice-detail-page>.ronvo-responsive-item,.invoice-detail-page .ronvo-responsive-item{min-width:0;max-width:100%}
.invoices-page .panel.ronvo-panel,.invoice-detail-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.invoices-page .invoice-upload.ronvo-panel{padding:14px 18px}
.invoice-detail-page .invoice-pdf-preview.ronvo-panel{padding:16px}
.invoices-page .form.ronvo-form,.invoice-detail-page .form.ronvo-form{gap:14px}
.invoices-page .invoice-page[data-invoices-core="overview"],.invoice-detail-page .invoice-detail-grid[data-invoices-core="detail-layout"]{min-width:0}
@media(max-width:620px){
  /* Bestehende Smartphone Dichte und PDF Vorschau Geometrie bleiben unveraendert. */
  .invoices-page .panel.ronvo-panel,.invoice-detail-page .panel.ronvo-panel{padding:16px;border-radius:16px}
  .invoices-page .invoice-upload.ronvo-panel{padding:16px}
  .invoice-detail-page .invoice-pdf-preview.ronvo-panel{padding:10px}
}


/* =========================================================
   RONVO Settings Core Migration v5.27.10 · Phase 3.7.8
   Einstellungen nutzen zentrale Page, Section, Panel, Form,
   Layout und Responsive Primitive. Bestehende sichtbare
   Geometrie, Bereichsnavigation und Fachlogik bleiben erhalten.
   ========================================================= */
.settings-page{width:100%;min-width:0}
.settings-page>.ronvo-responsive-item,.settings-page .ronvo-responsive-item{min-width:0;max-width:100%}
.settings-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.settings-page .settings-content.ronvo-stack{gap:18px}
.settings-page .form.ronvo-form{gap:14px}
.settings-page .settings-grid[data-settings-core="workspace"]{min-width:0}
.settings-page .settings-nav[data-settings-core="navigation"]{min-width:0}
@media(max-width:620px){
  .settings-page .panel.ronvo-panel{padding:16px;border-radius:16px}
}


/* =========================================================
   RONVO System Core Migration v5.27.11 · Phase 3.7.9
   Systemtest nutzt zentrale Page, Panel und Responsive Primitive.
   Test Engine, Browser Runtime, Downloads und Ergebnislogik bleiben unverändert.
   ========================================================= */
.system-test-page{width:100%;min-width:0}
.system-test-page .settings-test-wrap{min-width:0}
.system-test-page .panel.ronvo-panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}
.system-test-page .dashboard-grid[data-system-core="test-groups"]{min-width:0}
.system-test-page .system-test-summary[data-system-core="summary"]{min-width:0}
.system-test-page [data-system-core="runtime-panel"],.system-test-page [data-system-core="report-panel"]{min-width:0}
@media(max-width:620px){
  .system-test-page .panel.ronvo-panel{padding:16px;border-radius:16px}
}

/* =========================================================
   RONVO Site Check Core Migration v5.27.12 · Phase 3.7.10
   Der bestehende Site Check bleibt als Diagnose Engine unveraendert
   und ist im zentralen Systemtest UI Core semantisch angebunden.
   Bericht, Statusdarstellung und Responsive Geometrie bleiben erhalten.
   ========================================================= */
.system-test-page [data-site-check-core="summary-panel"],
.system-test-page [data-site-check-core="check-row"]{min-width:0}

/* Global loading indicator also on standalone authentication and installation pages. */
.ronvo-loading-bar{position:fixed;top:0;left:0;width:100%;height:3px;z-index:2147483647;pointer-events:none;opacity:0;overflow:hidden;transition:opacity .16s ease;background:transparent}
.ronvo-loading-bar>span{display:block;width:100%;height:100%;transform:translateX(-100%);transform-origin:left center;background:var(--primary,#2563eb);box-shadow:0 0 8px color-mix(in srgb,var(--primary,#2563eb) 45%,transparent);transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.ronvo-loading-bar.is-visible{opacity:1}
.ronvo-loading-bar.is-error>span{background:var(--danger,#dc2626)}
@media(prefers-reduced-motion:reduce){.ronvo-loading-bar,.ronvo-loading-bar>span{transition:none}}
