/* RONVO UI Standard v6.4.133.
   Load after app.css, before the active PHP theme tokens.
   Canonical colors own their values; compatibility aliases point in one direction. */
:root{
 --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;
 --border:var(--color-border);
 --surface-2:var(--color-surface-secondary);
 --accent:var(--color-primary);
 --card:var(--color-surface);
 --surface:var(--color-surface);
 --ink:var(--color-text);
 --ronvo-danger-text:#000000;
 --ronvo-danger-hover-background:#bf4151;
 --ronvo-danger-hover-text:#ffffff;
}
/* Avoid invalid font shorthand while preserving the intended typography. */
.welcome-system-status small{font-family:inherit;font-weight:600;font-size:12px;line-height:1.2}
.welcome-system-status strong{font-family:inherit;font-weight:800;font-size:17px;line-height:1.2}

/* Authorized RONVO Form Standard 1.0 v6.4.22. Central form geometry outside the frozen historical app.css baseline. */
:root{--ronvo-form-height:44px;--ronvo-form-border:var(--line);--ronvo-form-radius:10px;--ronvo-form-background:var(--panel);--ronvo-form-focus:var(--primary);--ronvo-form-focus-ring:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}
:is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),select,textarea){width:100%;min-width:0;border:1px solid var(--ronvo-form-border);border-radius:var(--ronvo-form-radius);background:var(--ronvo-form-background);color:var(--text);font:inherit;outline:none;transition:border-color .16s ease,box-shadow .16s ease}
:is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),select){height:var(--ronvo-form-height);min-height:var(--ronvo-form-height);padding:0 12px;box-sizing:border-box}
.form textarea,.ronvo-form textarea,textarea{padding:10px 12px}
:is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),select,textarea):focus{border-color:var(--ronvo-form-focus);box-shadow:var(--ronvo-form-focus-ring)}
:is(input,textarea)::placeholder{color:var(--muted);opacity:1}
@media(prefers-reduced-motion:reduce){:is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),select,textarea){transition:none}}



/* Authorized Global Button Interaction System v6.0.94. Kept outside the frozen historical app.css baseline. */
.btn,button,.event-delete,.system-toast-close,.notification-bell,.calendar-view-switch a,.customer-create-summary{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transition:transform var(--ronvo-btn-transition),box-shadow var(--ronvo-btn-transition),background-color var(--ronvo-btn-transition),border-color var(--ronvo-btn-transition),color var(--ronvo-btn-transition),opacity var(--ronvo-btn-transition);
}
.btn,button,.event-delete,.system-toast-close,.notification-bell,.calendar-view-switch a,.customer-create-summary{cursor:pointer}
@media(hover:hover) and (pointer:fine){
  .btn:not([disabled]):not([aria-disabled="true"]):hover,
  button:not([disabled]):not([aria-disabled="true"]):hover,
  .event-delete:hover,.system-toast-close:hover,.notification-bell:hover,.calendar-view-switch a:hover,.customer-create-summary:hover{
    transform:translateY(-1px);
  }
  .btn.primary:not([disabled]):hover{box-shadow:0 10px 24px color-mix(in srgb,var(--color-primary) 28%,transparent)}
  .btn.ghost:not([disabled]):hover{box-shadow:0 5px 14px color-mix(in srgb,var(--color-text) 8%,transparent)}
}
.btn:not([disabled]):not([aria-disabled="true"]):active,
button:not([disabled]):not([aria-disabled="true"]):active,
.event-delete:active,.system-toast-close:active,.notification-bell:active,.calendar-view-switch a:active,.customer-create-summary:active{
  transform:translateY(1px) scale(.975);
  box-shadow:0 2px 6px color-mix(in srgb,var(--color-text) 12%,transparent);
  transition-duration:var(--ronvo-motion-fast);
}
.btn:focus-visible,button:focus-visible,.event-delete:focus-visible,.system-toast-close:focus-visible,.notification-bell:focus-visible,.calendar-view-switch a:focus-visible,.customer-create-summary:focus-visible{
  outline:3px solid color-mix(in srgb,var(--color-primary) 30%,transparent);
  outline-offset:2px;
}
.btn[disabled],button[disabled],.btn[aria-disabled="true"],button[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){
  .btn,button,.event-delete,.system-toast-close,.notification-bell,.calendar-view-switch a,.customer-create-summary{transition:none}
}

/* Authorized RONVO Button System 2.0 v6.4.0.
   One geometry, typography and interaction contract for all standard .btn actions.
   Module semantics (primary, ghost, danger, wide, small) remain intact. */
:root{
 --ronvo-btn-height:40px;
 --ronvo-btn-height-large:44px;
 --ronvo-btn-height-small:36px;
 --ronvo-btn-radius:10px;
 --ronvo-btn-padding-x:16px;
 --ronvo-btn-font-size:14px;
 --ronvo-btn-font-weight:600;
 --ronvo-btn-line-height:1;
 --ronvo-btn-icon-size:16px;
 --ronvo-btn-gap:8px;
 --ronvo-btn-transition:var(--ronvo-motion-normal) var(--ronvo-ease-standard);
}
.btn{
 box-sizing:border-box;
 min-height:var(--ronvo-btn-height);
 height:auto;
 padding:0 var(--ronvo-btn-padding-x);
 border-radius:var(--ronvo-btn-radius);
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:var(--ronvo-btn-gap);
 font-size:var(--ronvo-btn-font-size);
 font-weight:var(--ronvo-btn-font-weight);
 line-height:var(--ronvo-btn-line-height);
 letter-spacing:0;
 vertical-align:middle;
 max-width:100%;
 cursor:pointer;
 text-align:center;
 text-decoration:none;
 transition:transform var(--ronvo-btn-transition),box-shadow var(--ronvo-btn-transition),background-color var(--ronvo-btn-transition),border-color var(--ronvo-btn-transition),color var(--ronvo-btn-transition),opacity var(--ronvo-btn-transition);
 -webkit-tap-highlight-color:transparent;
}
.btn:not(.primary):not(.ghost):not(.danger){background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}
.btn.primary{border-color:transparent}
.btn.ghost{border-color:var(--color-border)}
.btn.danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--ronvo-danger-text)}
.btn.small{min-height:var(--ronvo-btn-height-small);padding-inline:12px;font-size:13px;border-radius:9px}
.btn.wide{width:100%}
.btn svg{width:var(--ronvo-btn-icon-size);height:var(--ronvo-btn-icon-size);flex:0 0 var(--ronvo-btn-icon-size)}
.btn:hover:not(:disabled):not([aria-disabled="true"]){transform:translateY(-1px)}
.btn.primary:hover:not(:disabled):not([aria-disabled="true"]){box-shadow:0 10px 24px color-mix(in srgb,var(--color-primary) 26%,transparent)}
.btn:not(.primary):not(.danger):hover:not(:disabled):not([aria-disabled="true"]){background:var(--theme-surface-hover,var(--color-surface-secondary));border-color:color-mix(in srgb,var(--color-primary) 32%,var(--color-border));box-shadow:0 6px 16px color-mix(in srgb,var(--color-text) 8%,transparent)}
.btn.danger:hover:not(:disabled):not([aria-disabled="true"]){background:var(--ronvo-danger-hover-background);border-color:var(--ronvo-danger-hover-background);color:var(--ronvo-danger-hover-text);box-shadow:0 8px 20px color-mix(in srgb,var(--color-danger) 22%,transparent)}
.btn:active:not(:disabled):not([aria-disabled="true"]){transform:translateY(1px);box-shadow:none}
.btn:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 24%,transparent);outline-offset:3px}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.52;cursor:not-allowed;transform:none;box-shadow:none}
/* The advisor CTA is a service action outside .btn markup but follows the same button contract. */
.customer-advisor-actions .customer-advisor-message{min-height:var(--ronvo-btn-height-small);padding:0 12px;border-radius:9px;font-size:13px;font-weight:var(--ronvo-btn-font-weight);line-height:var(--ronvo-btn-line-height);transition:transform var(--ronvo-btn-transition),box-shadow var(--ronvo-btn-transition),background-color var(--ronvo-btn-transition),border-color var(--ronvo-btn-transition),color var(--ronvo-btn-transition)}
.customer-advisor-actions .customer-advisor-message:hover{transform:translateY(-1px)}
.customer-advisor-actions .customer-advisor-message:active{transform:translateY(1px);box-shadow:none}
.customer-advisor-actions .customer-advisor-message:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 24%,transparent);outline-offset:3px}
@media(max-width:767px){
 .btn:not(.small){min-height:var(--ronvo-btn-height-large)}
 .btn.small{min-height:40px}
 .customer-advisor-actions .customer-advisor-message{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
 .btn,.customer-advisor-actions .customer-advisor-message{transition:none}
 .btn:hover:not(:disabled):not([aria-disabled="true"]),.btn:active:not(:disabled):not([aria-disabled="true"]),.customer-advisor-actions .customer-advisor-message:hover,.customer-advisor-actions .customer-advisor-message:active{transform:none}
}

/* Customer website preview component. RONVO chrome follows the active theme. */
/* Customer websites v6.4.30: dashboard-like cards without a surrounding white panel. */
.customer-sites-stage{max-width:none;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.customer-sites-stage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 14px;padding:0 2px}
.customer-sites-stage-head h3{margin:0 0 3px;font-size:18px}
.customer-sites-stage-head p{margin:0;color:var(--muted);font-size:12px}
.customer-sites-stage-head .count{flex:0 0 auto}
.customer-sites-panel .customer-site-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch;width:100%}
.customer-sites-panel .customer-site-preview-card{min-width:0;display:flex;flex-direction:column;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--panel);box-shadow:0 16px 40px rgba(39,67,112,.08)}
.customer-sites-panel .customer-site-preview-summary{display:block;color:inherit;text-decoration:none}
.customer-sites-panel .customer-site-preview-summary .customer-site-row{width:100%;min-height:92px;border:0;border-radius:0;background:var(--panel)}
.customer-sites-panel .customer-site-preview-summary .customer-site-row:hover{background:var(--theme-surface-hover,var(--soft))}
.customer-sites-panel .customer-site-preview-frame-wrap{min-width:0;overflow:hidden;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:var(--panel)}
.customer-sites-panel .customer-site-preview-label{display:flex;align-items:center;min-height:40px;padding:9px 16px;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;color:var(--text)}
.customer-sites-panel .customer-site-preview-frame{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;background:#fff;pointer-events:none}
.customer-sites-panel .customer-site-preview-actions{display:flex;align-items:center;padding:14px 16px 16px;background:var(--panel);margin-top:auto}
.customer-sites-panel .customer-site-open-button{align-self:flex-start;text-decoration:none}
@media(max-width:1100px){.customer-sites-panel .customer-site-preview-grid{grid-template-columns:1fr}}
@media(max-width:620px){.customer-sites-stage-head{padding:0}.customer-sites-panel .customer-site-preview-grid{gap:16px}.customer-sites-panel .customer-site-preview-card{border-radius:18px}.customer-sites-panel .customer-site-preview-actions{padding:12px}.customer-sites-panel .customer-site-open-button{width:100%;justify-content:center;text-align:center}}

/* Shared card geometry v6.4.134. Module density variants (calendar/upload/PDF) remain explicit exceptions. */
:root{--ronvo-card-padding:24px;--ronvo-card-radius:var(--radius)}
.ronvo-panel,.ronvo-card{padding:var(--ronvo-card-padding);border-radius:var(--ronvo-card-radius)}
@media(max-width:620px){
 :root{--ronvo-card-padding:16px;--ronvo-card-radius:16px}
 .customer-detail-page .customer-presence-panel.ronvo-panel{padding:var(--ronvo-card-padding);border-radius:var(--ronvo-card-radius)}
}

/* Contrast safe text tokens v6.4.136. Token only, no theme branches; values come from theme_css_vars(). */
.status.online,.status.ok,.status.paid,.status.good,.pill.ok{color:var(--color-success-text)}
.status.warning,.status.open{color:var(--color-warning-text)}
.status.offline,.status.error,.pill.bad{color:var(--color-danger-text)}
.status.planned,.status.unknown{color:var(--color-info-text)}
.status.overdue{background:var(--theme-danger-soft);color:var(--color-danger-text)}
.status.draft,.status.archived{color:var(--color-neutral-text)}
.site-icon{color:var(--color-primary-text)}
.customer-site-status.online{background:var(--theme-success-soft);color:var(--color-success-text)}
.customer-site-status.care{background:var(--theme-info-soft);color:var(--color-info-text)}
.customer-site-status.error{background:var(--theme-danger-soft);color:var(--color-danger-text)}
.customer-care-note,.list-main small.customer-care-note{color:var(--color-text-muted-safe)}
.customer-care-note.error,.list-main small.customer-care-note.error{color:var(--color-danger-text)}
.customer-site-preview-card .list-main small:not(.customer-care-note){color:var(--color-text-muted-safe)}

/* Website Buchungen v6.4.137. Token only, no theme branches. */
.bookings-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.bookings-scope-form{max-width:420px;margin:0 0 16px}
.booking-day-head{margin:24px 0 8px;font-size:15px;color:var(--color-text)}
.booking-day-head:first-of-type{margin-top:8px}
.booking-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:start;padding:16px 0;border-top:1px solid var(--color-border)}
.booking-time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text)}
.booking-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.booking-main strong{color:var(--color-text);overflow-wrap:anywhere}
.booking-service,.booking-meta{color:var(--color-text-muted-safe);font-size:13px}
.booking-contacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.booking-contact{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 12px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-link);text-decoration:none;font-size:13px;overflow-wrap:anywhere}
.booking-contact:hover,.booking-contact:focus-visible{text-decoration:underline}
.booking-contact svg{width:16px;height:16px;flex:0 0 16px}
.booking-message summary{cursor:pointer;color:var(--color-link);font-size:13px}
.booking-message p,.booking-cancel-reason{margin:8px 0 0;color:var(--color-text);font-size:14px;white-space:normal;overflow-wrap:anywhere}
.booking-cancel-reason span{color:var(--color-text-muted-safe)}
.dashboard-bookings-card{margin-top:22px}
.dashboard-bookings-today{display:inline-flex;align-items:center;vertical-align:middle;margin-left:8px;min-height:24px;padding:2px 10px;border-radius:999px;background:var(--theme-primary-soft);color:var(--color-primary-text);font-size:13px;font-weight:700}
.dashboard-bookings-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dashboard-booking{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:14px 16px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface)}
.dashboard-booking strong{color:var(--color-text);overflow-wrap:anywhere}
.dashboard-booking-persons{color:var(--color-text-muted-safe);font-weight:600}
.dashboard-booking small{display:block;margin-top:2px;color:var(--color-text-muted-safe);font-size:13px}
.dashboard-bookings-empty{margin:0}
@media(max-width:900px){.dashboard-bookings-list{grid-template-columns:1fr;gap:10px}}
.customer-module-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.customer-module-row small{display:block;color:var(--color-text-muted-safe);font-size:13px}
.customer-module-row form{display:flex;align-items:center;gap:8px}
.customer-module-delete,.customer-module-retention{margin-top:16px}
@media(max-width:620px){.booking-row{grid-template-columns:56px minmax(0,1fr)}.booking-row>.status{grid-column:2;justify-self:start}.booking-contact{min-height:44px}}

/* RONVO Motion Core 6.4.147. Effective owner; historical app.css unchanged. */
:root{--ronvo-motion-fast:120ms;--ronvo-motion-normal:180ms;--ronvo-motion-slow:200ms;--ronvo-ease-standard:ease-out}
.sidebar{transition:transform var(--ronvo-motion-normal) var(--ronvo-ease-standard)}
.system-toast{animation-duration:var(--ronvo-motion-normal);animation-timing-function:var(--ronvo-ease-standard)}
.system-toast.is-leaving{animation-duration:var(--ronvo-motion-fast)}
@keyframes ronvo-toast-in{from{opacity:.65;transform:translateX(4px)}to{opacity:1;transform:translateX(0)}}
@keyframes ronvo-toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(4px)}}
.compact-list>a.dashboard-invoice-row.dashboard-invoice-overdue,.dashboard-request-row.is-new{animation-duration:var(--ronvo-motion-slow);animation-iteration-count:1;will-change:auto}
.ronvo-status.is-pulsing::before,.ronvo-priority.is-pulsing::before,.ronvo-severity.is-pulsing::before{animation-duration:var(--ronvo-motion-slow);animation-iteration-count:1}
.ronvo-motion-ghost{pointer-events:none!important;animation:none!important;transition:none!important;user-select:none}
.ronvo-upload-status{position:fixed;top:90px;right:24px;z-index:10040;max-width:calc(100vw - 32px);padding:10px 14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--ronvo-shadow-sm);font-size:12px;color:var(--color-text);line-height:1.5;pointer-events:none}
.ronvo-upload-status:empty{display:none}
@media(max-width:620px){.ronvo-upload-status{top:76px;right:16px}}
.ronvo-is-busy{cursor:progress!important}
.ronvo-is-busy[data-rte-image]{color:transparent!important;position:relative}
.ronvo-is-busy[data-rte-image]::after{content:'';position:absolute;left:calc(50% - 6px);top:calc(50% - 6px);width:12px;height:12px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:ronvo-busy-spin .8s linear infinite}
@keyframes ronvo-busy-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .sidebar,.btn,button,.event-delete,.system-toast-close,.notification-bell,.calendar-view-switch a,.customer-create-summary{transition:none}
  .btn:not([disabled]):hover,button:not([disabled]):hover,.btn:not([disabled]):active,button:not([disabled]):active{transform:none}
  :is(.event-delete,.system-toast-close,.notification-bell,.calendar-view-switch a,.customer-create-summary):is(:hover,:active){transform:none}
  .system-toast,.system-toast.is-leaving,.compact-list>a.dashboard-invoice-row.dashboard-invoice-overdue,.dashboard-request-row.is-new,.ronvo-status.is-pulsing::before,.ronvo-priority.is-pulsing::before,.ronvo-severity.is-pulsing::before,.ronvo-is-busy[data-rte-image]::after{animation:none}
}
