/* ============================================================================
   Schönbrunn:Connect — CI-Feinschliff  ·  v1  ·  28.09.2026
   Ergänzung zu css/app.css — wird NACH app.css geladen (gewinnt dadurch).
   Wirkt über die bestehenden --app-* / --brand-* Tokens: KEIN HTML-Umbau nötig.
   ============================================================================ */
:root{
  --app-font:         "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --app-font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --app-font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --app-text-muted: #8b8478;
  --app-border:      #e7e0d3;
  --app-border-soft: #f1ece1;
  --app-petrol:       #3b7a86;
  --app-petrol-soft:  #dfebec;
  --st-req:#c0902e;    --st-req-bg:#f7eccf;
  --st-fix:#5e8a6f;    --st-fix-bg:#e2ede4;
  --st-move:#7e72a6;   --st-move-bg:#eae6f2;
  --st-cancel:#c0563e; --st-cancel-bg:#f6e2dc;
}
:root{
  --bs-body-font-family: var(--app-font);
  --bs-body-color:       var(--app-ink);
  --bs-body-bg:          var(--app-paper);
  --bs-border-color:     var(--app-border);
  --bs-border-radius:      12px;
  --bs-border-radius-sm:   8px;
  --bs-border-radius-lg:   16px;
  --bs-link-color:         var(--app-petrol);
  --bs-link-hover-color:   #2e626c;
}
body{ font-family: var(--app-font); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, .page-title, .app-title{ font-family: var(--app-font-display); font-weight: 500; letter-spacing: -.2px; }
h1, .page-title{ font-size: 1.75rem; line-height: 1.1; }
h2{ font-size: 1.2rem; line-height: 1.2; }
h3, .card-title, .section-title{ font-family: var(--app-font); font-weight: 700; letter-spacing: .1px; }
.app-rail-group, .form-label, .overline, label.small{ font-weight: 600; letter-spacing: .5px; }
.stat-value, .kpi, .metric, .amount, td.num, .tnum, .mono{ font-variant-numeric: tabular-nums; }
.mono, code, .version, .app-version{ font-family: var(--app-font-mono); }
.btn{ font-weight: 600; }
.btn-primary{ --bs-btn-bg: var(--app-accent-deep); --bs-btn-border-color: var(--app-accent-deep); --bs-btn-hover-bg:#b8742d; --bs-btn-hover-border-color:#b8742d; }
:where(.form-control,.form-select,.btn,a):focus-visible{ outline: 2px solid var(--app-petrol); outline-offset: 1px; box-shadow: none; }
.ci-pill{ display:inline-flex; align-items:center; gap:5px; font-size:.72rem; font-weight:600; line-height:1.35; padding:3px 9px; border-radius:99px; }
.ci-pill::before{ content:""; width:6px; height:6px; border-radius:99px; background:currentColor; }
.ci-pill--req{ color:var(--st-req); background:var(--st-req-bg); }
.ci-pill--fix{ color:var(--st-fix); background:var(--st-fix-bg); }
.ci-pill--move{ color:var(--st-move); background:var(--st-move-bg); }
.ci-pill--cancel{ color:var(--st-cancel); background:var(--st-cancel-bg); }
.ci-conf{ background:var(--app-surface); border:1px dashed var(--app-border); border-radius:var(--app-radius-sm); padding:10px 12px; }
.ci-conf__h{ font-size:.66rem; letter-spacing:.6px; text-transform:uppercase; font-weight:700; color:var(--app-accent-deep); display:flex; gap:6px; align-items:center; margin-bottom:7px; }
.ci-dot{ display:inline-block; width:9px; height:9px; border-radius:3px; vertical-align:middle; }

/* ===== SCREEN 1 · Dashboard — kompakter & feiner ===== */
.app-dash-kpis{ gap: 10px; }
.app-dash-kpi{ padding: 11px 14px; border-radius: 12px; }
.app-dash-kpi__value{ font-variant-numeric: tabular-nums; letter-spacing: -.4px; }
.app-dash-kpi__label{ color: var(--app-text-muted); font-size: .74rem; letter-spacing: .3px; }
.app-dash-main-grid{ gap: 14px; }
.app-dash-panel__title{ font-family: var(--app-font-display); font-weight: 500; letter-spacing: -.2px; }
.app-dash-event-list__item{ padding-top: 7px; padding-bottom: 7px; }
.app-dash-event-list__date{ font-family: var(--app-font-mono); font-variant-numeric: tabular-nums; font-size: .78rem; color: var(--app-text-muted); }
.app-dash-event-list__title{ font-weight: 600; }
.app-dash-event-list__company{ color: var(--app-text-muted); }
.app-dash-board-list__item{ padding-top: 9px; padding-bottom: 9px; }
.app-dash-board-list__title{ font-weight: 600; }
.app-dash-board-list__excerpt{ color: var(--app-text-muted); }
.app-dash-board-list__meta{ font-size: .72rem; color: var(--app-text-muted); }
.app-dash-event-list__date{ font-size:.72rem; white-space:nowrap; }

/* ===== SCREEN 2 · Veranstaltungs-Eintrag — kompakt & fein ===== */
.app-form-card{ padding: 22px; }
.app-event-section{ padding: 15px 16px; }
.app-event-ux__row--top{ gap: 14px; }
.app-event-section__title{ font-weight: 500; }
.app-form-field{ margin-bottom: 10px; }
.app-form-field:not(:has(input[type=checkbox])):not(:has(input[type=radio])) > label{
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  font-weight: 600; color: var(--app-text-muted); margin-bottom: 3px;
}
.app-event-section input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.app-event-section select,
.app-event-section textarea{ padding-top: 7px; padding-bottom: 7px; }
.app-event-section textarea{ min-height: 72px; }
.app-event-section input[type=number]{ font-variant-numeric: tabular-nums; }

/* Screen 2 – Label-Selektor korrigiert (CakePHP div.input.<typ>) */
.app-form-field .input:not(.checkbox):not(.radio) > label{
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  font-weight: 600; color: var(--app-text-muted); margin-bottom: 3px;
}

/* ===== SCREEN 3 · Profil-Boxen (Betrieb & Person) ===== */
.app-detail-grid{
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: var(--app-radius);
  padding: 16px 18px;
  gap: 12px 24px;
  box-shadow: var(--app-shadow);
}
.app-detail-panel__title{ font-family: var(--app-font-display); font-weight: 500; letter-spacing: -.2px; }
.app-detail-panel ul.columns-2{ column-count: 4; column-gap: 24px; }
@media (max-width: 900px){ .app-detail-panel ul.columns-2{ column-count: 2; } }
@media (max-width: 560px){ .app-detail-panel ul.columns-2{ column-count: 1; } }

/* ===== SCREEN 4 · Kalender — Status-Farbpalette ===== */
.app-calendar-event--angefragt{  border-left-color: var(--st-req)    !important; }
.app-calendar-event--fixiert{    border-left-color: var(--st-fix)    !important; }
.app-calendar-event--verschoben{ border-left-color: var(--st-move)   !important; }
.app-calendar-event--abgesagt{   border-left-color: var(--st-cancel) !important; }
.app-calendar-event__status{ font-size: 9px; text-transform: uppercase; letter-spacing: .5px; font-weight: 700; }
.app-calendar-event--angefragt  .app-calendar-event__status{ color: var(--st-req); }
.app-calendar-event--fixiert    .app-calendar-event__status{ color: var(--st-fix); }
.app-calendar-event--verschoben .app-calendar-event__status{ color: var(--st-move); }
.app-calendar-event--abgesagt   .app-calendar-event__status{ color: var(--st-cancel); }
.app-calendar-event--abgesagt .app-calendar-event__title{ text-decoration: line-through; opacity: .7; }

/* ===== SCREEN 4 · Status zusätzlich als zarter Kachel-Ton ===== */
.app-calendar-event--angefragt{  background: color-mix(in srgb, var(--st-req)    9%, var(--app-surface)) !important; }
.app-calendar-event--fixiert{    background: color-mix(in srgb, var(--st-fix)    8%, var(--app-surface)) !important; }
.app-calendar-event--verschoben{ background: color-mix(in srgb, var(--st-move)   9%, var(--app-surface)) !important; }
.app-calendar-event--abgesagt{   background: color-mix(in srgb, var(--st-cancel) 9%, var(--app-surface)) !important; }

/* ===== SCREEN 5 · Login / URL-Screen ===== */
.auth-login-panel__inner{ background: var(--app-surface); border: 1px solid var(--app-border); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
.auth-login__title{ font-family: var(--app-font-display); font-weight: 500; letter-spacing: -.3px; }
.auth-login__lede{ color: var(--app-text-muted); }
.auth-field__label{ font-size: 11px; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; color: var(--app-text-muted); }
.auth-input{ border-radius: var(--app-radius-sm); }
.auth-input:focus{ outline: 2px solid var(--app-petrol); outline-offset: 1px; border-color: var(--app-petrol); }
.auth-pw-toggle{ color: var(--app-text-muted); }
.auth-pw-toggle:hover{ color: var(--app-ink); }
.auth-login__submit{ width: 100%; font-weight: 600; }
.auth-login-aside{ background: linear-gradient(160deg, var(--app-surface), #f6f1e4); }
.auth-login-aside__title{ font-family: var(--app-font-display); font-weight: 500; }
.auth-login-aside__slogan{ font-style: italic; color: var(--app-text-muted); }
.auth-brand__logo{ border-radius: 12px; }

/* ===== KORREKTUR · Aktionsfarbe = Terrakotta ===== */
:root{
  --app-accent:      #BF5B3C;
  --app-accent-deep: #A94E32;
  --app-accent-soft: #F6E7DF;
}
.btn-primary{ --bs-btn-hover-bg: #93412A; --bs-btn-hover-border-color: #93412A; }

/* ===== Aktionsfarbe = Terrakotta ===== */
:root{ --app-accent:#BF5B3C; --app-accent-deep:#A94E32; --app-accent-soft:#F6E7DF; }
.btn-primary{ --bs-btn-hover-bg:#93412A; --bs-btn-hover-border-color:#93412A; }

/* ===== Kalender-Detail: 2 Spalten, Kollisionen unten ===== */
.app-main:has(> .app-collision-panel){ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.app-main:has(> .app-collision-panel) > .app-flash,
.app-main:has(> .app-collision-panel) > .app-page-head,
.app-main:has(> .app-collision-panel) > .app-page-header,
.app-main:has(> .app-collision-panel) > p,
.app-main:has(> .app-collision-panel) > .app-collision-panel,
.app-main:has(> .app-collision-panel) > .app-detail-actions{ grid-column:1 / -1; }
@media (max-width: 820px){ .app-main:has(> .app-collision-panel){ grid-template-columns:1fr; } }
.app-detail-panel .app-detail-grid{ background:transparent; border:0; box-shadow:none; padding:0; }
.app-detail-panel__title{ border-left:3px solid var(--app-accent-deep); padding-left:10px; }

/* ===== KALENDER-KACHELN — grafischer Feinschliff ===== */
.app-calendar-event--angefragt{  background: color-mix(in srgb, var(--st-req)    8%, var(--app-surface)) !important; }
.app-calendar-event--fixiert{    background: color-mix(in srgb, var(--st-fix)    7%, var(--app-surface)) !important; }
.app-calendar-event--verschoben{ background: color-mix(in srgb, var(--st-move)   8%, var(--app-surface)) !important; }
.app-calendar-event--abgesagt{   background: color-mix(in srgb, var(--st-cancel) 8%, var(--app-surface)) !important; }
.app-calendar-event__title{ font-family: var(--app-font-display); font-weight: 600; letter-spacing: -.1px; }
.app-cal-fabus{ color: var(--app-accent-deep); }
/* ===== CI · Abschnittstitel in der Serife ===== */
.app-section-title, .app-form-section-title{ font-family: var(--app-font-display); font-weight: 500; letter-spacing: -.1px; }

/* ===== Kachel-Titel nach Kategorie (abgedunkelt = lesbar) ===== */
.app-calendar-event__title{ font-family: var(--app-font-display); font-weight: 600; letter-spacing: -.1px; color: color-mix(in srgb, var(--cat-color, var(--app-ink)) 60%, var(--app-ink)); }

/* ===== Alarm-Plan · Vergrößern-Overlay (CI-Optik) ===== */
.app-plan-zoom-btn{ position:absolute; top:8px; right:8px; z-index:5; display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; padding:4px 9px; border-radius:7px; background:color-mix(in srgb,var(--app-surface) 88%,transparent); border:1px solid var(--app-border); color:var(--app-ink); cursor:pointer; }
.app-alarm-trigger-plan__frame{ position:relative; }
.app-plan-zoom-backdrop{ position:fixed; inset:0; background:rgba(38,35,31,.55); z-index:1000; display:none; }
.app-plan-zoom-backdrop.is-open{ display:block; }
.app-plan-viewport--zoom{ position:fixed; inset:3vh 3vw; margin:auto; z-index:1001; width:auto; height:auto; max-width:94vw; max-height:92vh; background:var(--app-surface); border:1px solid var(--app-border); border-radius:var(--app-radius); box-shadow:var(--app-shadow); overflow:auto; }
.app-plan-viewport--zoom .app-plan-viewport__img{ width:100%; height:auto; }
.app-plan-zoom-close{ position:fixed; top:calc(3vh - 6px); right:calc(3vw - 6px); z-index:1002; width:34px; height:34px; border-radius:99px; border:1px solid var(--app-border); background:var(--app-surface); color:var(--app-ink); font-size:18px; line-height:1; cursor:pointer; box-shadow:var(--app-shadow); display:none; }
.app-plan-zoom-close.is-open{ display:block; }

/* ---- B2: Aktiv/Inaktiv-Schalter, Namens-Links, Personen im Partner-Profil ---- */
.app-switch{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; color:var(--app-text-muted); font-size:.78rem; font-weight:600; white-space:nowrap; }
.app-switch__track{ position:relative; width:32px; height:18px; border-radius:999px; background:#d8d1c3; transition:background .15s; flex:none; }
.app-switch__knob{ position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.2); transition:left .15s; }
.app-switch.is-on{ color:#2c6b3e; }
.app-switch.is-on .app-switch__track{ background:var(--st-fix); }
.app-switch.is-on .app-switch__knob{ left:16px; }
.app-switch:hover .app-switch__track, .app-switch:focus-visible .app-switch__track{ box-shadow:0 0 0 3px var(--app-petrol-soft); }
.app-name-link{ color:inherit; font-weight:600; text-decoration:none; }
.app-name-link:hover, .app-name-link:focus-visible{ color:var(--app-petrol); text-decoration:underline; text-underline-offset:3px; }
.app-people-list{ list-style:none; margin:0; padding:0; column-count:3; column-gap:24px; }
@media (max-width: 900px){ .app-people-list{ column-count:2; } }
@media (max-width: 560px){ .app-people-list{ column-count:1; } }
.app-people-list li{ break-inside:avoid; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px solid var(--app-border-soft); }
.app-people-list li.is-inactive .app-people-list__name{ opacity:.55; text-decoration:line-through; text-decoration-color:rgba(0,0,0,.25); }
.app-people-list__name{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-people-list__tag{ display:inline-block; margin-left:6px; padding:1px 6px; border-radius:999px; font-size:.66rem; font-weight:700; letter-spacing:.3px; background:var(--app-accent-deep); color:#fff; vertical-align:1px; }
.app-people-list__tag--su{ background:var(--app-petrol); }
.app-people-list li.is-superadmin{ background:linear-gradient(90deg, var(--st-req-bg), transparent 70%); padding-left:6px; border-radius:6px; }

/* ---- B2 CRM: Filterleiste, CRM-Karte, Avatare, Kooperationen, Micro-Labels ---- */
.app-form-micro .input:not(.checkbox):not(.radio) > label,
.app-filter-bar .input > label{
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  font-weight: 600; color: var(--app-text-muted); margin-bottom: 3px;
}
.app-form-micro .app-form-section{ margin-bottom: 14px; }
.app-form-micro .app-form-grid{ gap: 10px 16px; }
.app-form-grid__spacer{ display:none; }
@media (min-width: 992px){ .app-form-grid__spacer{ display:block; } }
.app-form-help--warn{ color: var(--st-req); background: var(--st-req-bg); padding: 6px 10px; border-radius: 8px; }
.app-upload-row{ display:flex; align-items:center; gap:10px; }
.app-upload-row__preview{ width:40px; height:40px; object-fit:contain; border:1px solid var(--app-border); border-radius:8px; background:#fff; }

.app-filter-bar{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 14px; padding:10px 14px; }
.app-filter-bar .app-form-field{ margin:0; min-width:140px; flex:0 1 170px; }
.app-filter-bar .app-filter-bar__search{ flex:1 1 240px; }
.app-filter-bar .form-control, .app-filter-bar .form-select{ padding-top:.3rem; padding-bottom:.3rem; font-size:.88rem; }
.app-list-count{ padding:8px 16px; font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color:var(--app-text-muted); border-bottom:1px solid var(--app-border-soft); }

.app-person-cell{ display:flex; align-items:center; gap:10px; min-width:0; }
.app-person-cell__text{ display:flex; flex-direction:column; min-width:0; }
.app-person-cell__sub{ display:block; font-size:.76rem; color:var(--app-text-muted); font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:22rem; }
.app-name-link--quiet{ font-weight:500; }
tr.is-inactive .app-name-link, tr.is-inactive .app-company-name{ color:var(--app-text-muted); }
.app-nowrap{ white-space:nowrap; }

.app-avatar{ display:inline-flex; align-items:center; justify-content:center; flex:none; border-radius:50%; object-fit:cover;
  background:var(--app-petrol-soft); color:var(--app-petrol); font-weight:700; letter-spacing:.3px; }
.app-avatar--sm{ width:30px; height:30px; font-size:.7rem; }
.app-avatar--lg{ width:84px; height:84px; font-size:1.5rem; }
.is-inactive .app-avatar{ filter:grayscale(1); opacity:.6; }

.app-crm-card{ display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start; background:var(--app-surface);
  border:1px solid var(--app-border); border-radius:var(--app-radius); box-shadow:var(--app-shadow); padding:16px 18px; margin-bottom:4px; }
.app-crm-card.is-inactive{ background:repeating-linear-gradient(135deg, var(--app-surface) 0 14px, #faf7f1 14px 28px); }
.app-crm-card__logo{ width:84px; height:84px; border-radius:14px; border:1px solid var(--app-border-soft); background:#fff;
  display:flex; align-items:center; justify-content:center; overflow:hidden; }
.app-crm-card__logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.app-crm-card__logo--round{ border:0; background:transparent; border-radius:50%; }
.app-crm-card__logo-fallback{ font-family:var(--app-font-display); font-size:1.6rem; color:var(--app-accent-deep); }
.app-crm-card__grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px 22px; margin:0; }
.app-crm-card__grid dt{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color:var(--app-text-muted); margin:0 0 2px; }
.app-crm-card__grid dd{ margin:0; font-weight:600; word-break:break-word; }
.app-crm-card__wide{ grid-column:span 3; }
.app-crm-card__note{ grid-column:1 / -1; background:var(--st-req-bg); border-radius:8px; padding:8px 10px; }
.app-crm-card__note dd{ font-weight:400; }
@media (max-width: 900px){ .app-crm-card__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } .app-crm-card__wide{ grid-column:span 2; } }
@media (max-width: 560px){ .app-crm-card{ grid-template-columns:1fr; } .app-crm-card__grid{ grid-template-columns:1fr; } .app-crm-card__wide{ grid-column:auto; } }

.app-panel-count{ font-family:var(--app-font); font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color:var(--app-text-muted); margin-left:8px; }
.app-panel-action{ float:right; margin-top:-3px; }
.app-detail-panel--collapsible > summary{ cursor:pointer; list-style:none; margin-bottom:0; }
.app-detail-panel--collapsible[open] > summary{ margin-bottom:.75rem; }
.app-detail-panel--collapsible > summary::after{ content:'▸'; float:right; color:var(--app-text-muted); }
.app-detail-panel--collapsible[open] > summary::after{ content:'▾'; }

.app-coop-table td{ vertical-align:middle; }
.app-coop-table tr.is-inactive td{ color:var(--app-text-muted); }
.app-coop-history{ margin-top:10px; }
.app-coop-history > summary{ cursor:pointer; font-size:.82rem; color:var(--app-text-muted); font-weight:600; }
.app-coop-request{ margin-top:14px; padding-top:12px; border-top:1px dashed var(--app-border); }
.app-coop-request__title{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:700; color:var(--app-text-muted); margin:0 0 8px; }
.app-coop-request__grid{ display:grid; grid-template-columns:1.2fr 1fr 1.6fr auto; gap:10px 14px; align-items:end; }
.app-coop-request__grid .app-form-field{ margin:0; }
.app-coop-request .input > label, .app-inline-edit .input > label{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color:var(--app-text-muted); margin-bottom:3px; }
@media (max-width: 900px){ .app-coop-request__grid{ grid-template-columns:1fr 1fr; } .app-coop-request__note{ grid-column:1 / -1; } }
@media (max-width: 560px){ .app-coop-request__grid{ grid-template-columns:1fr; } }
.app-inline-edit{ position:relative; display:inline-block; }
.app-inline-edit > summary{ list-style:none; }
.app-inline-edit > summary::-webkit-details-marker{ display:none; }
.app-inline-edit__form{ position:absolute; right:0; z-index:5; width:280px; margin-top:6px; padding:12px; text-align:left;
  background:var(--app-surface); border:1px solid var(--app-border); border-radius:10px; box-shadow:var(--app-shadow); }
.app-inline-edit__form .app-form-field{ margin-bottom:8px; }

/* ---- Kalender Outlook-Prinzip: Slot-Klick + Schnell-Anlegen ---- */
.app-cal-tg.is-creatable .app-cal-tg__col,
.app-cal-tg.is-creatable .app-cal-tg__allday-cell,
.app-calendar.is-creatable .app-calendar-day{ cursor: cell; }
.app-cal-tg.is-creatable .app-cal-tg__col:hover{ background-color: rgba(59, 122, 134, .04); }
.app-calendar.is-creatable .app-calendar-day:hover{ box-shadow: inset 0 0 0 1px var(--app-petrol-soft); }
.app-cal-tg__draft{
  position:absolute; left:2px; right:2px; z-index:2; pointer-events:none;
  padding:2px 6px; font-size:.72rem; font-weight:600; color:var(--app-petrol);
  background:var(--app-petrol-soft); border:1px dashed var(--app-petrol); border-radius:6px;
}
.app-calendar-event.is-new{ animation: app-cal-new 1.6s ease-out 2; box-shadow: 0 0 0 2px var(--app-accent-deep); }
@keyframes app-cal-new{ 0%{ box-shadow:0 0 0 6px rgba(207,132,56,.45); } 100%{ box-shadow:0 0 0 2px var(--app-accent-deep); } }

.app-cal-qc{
  position:absolute; z-index:1050; width:320px; max-width:calc(100vw - 16px);
  background:var(--app-surface); border:1px solid var(--app-border); border-radius:12px;
  box-shadow:0 12px 32px rgba(40, 32, 20, .18); padding:12px 14px;
}
.app-cal-qc[hidden]{ display:none; }
.app-cal-qc__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:8px; }
.app-cal-qc__eyebrow{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:700; color:var(--app-accent-deep); }
.app-cal-qc__when{ font-family:var(--app-font-display); font-size:1rem; line-height:1.25; }
.app-cal-qc__close{ border:0; background:none; color:var(--app-text-muted); font-size:1rem; line-height:1; padding:2px 4px; }
.app-cal-qc__form .input{ margin-bottom:8px; }
.app-cal-qc__form .form-control,
.app-cal-qc__form .form-select,
.app-cal-qc__form input,
.app-cal-qc__form select{ font-size:.875rem; }
.app-cal-qc__times{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.app-cal-qc__times[hidden]{ display:none; }
.app-cal-qc__static{ font-size:.875rem; padding:4px 0; }
.app-cal-qc__actions{ display:flex; gap:8px; margin-top:4px; }
.app-cal-qc__hint{ margin:6px 0 0; font-size:.72rem; color:var(--app-text-muted); }
@media (max-width: 575.98px){
  .app-cal-qc{ position:fixed; left:0 !important; right:0; bottom:0; top:auto !important; width:auto; max-width:none;
    border-radius:16px 16px 0 0; max-height:85vh; overflow:auto; }
}
.app-cal-qc__form .input{ margin-bottom:8px; }
.app-cal-qc .app-cal-qc__form .input:not(.checkbox):not(.radio) > label{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; color:var(--app-text-muted); margin-bottom:3px; }
.app-cal-qc__form .form-control,
.app-cal-qc__form .form-select{ min-height:0; padding:6px 10px; font-size:.875rem; }
.app-cal-qc__times .input{ margin-bottom:8px; }

/* Login: „Passwort vergessen?“ direkt unter dem Passwortfeld */
.auth-login__forgot{ margin:-.35rem 0 1rem; text-align:right; font-size:.85rem; }
.auth-login__forgot a{ color: var(--app-accent-deep, var(--app-ink)); }

/* ===== ALLE Eingabefelder mit runden Ecken (wie die Dropdowns) ===== */
.form-control,
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], input[type="url"],
input[type="date"], input[type="time"], input[type="datetime-local"],
textarea, .app-input{
  border-radius: var(--app-radius-sm) !important;
}

/* ===== Eingabefelder EINHEITLICH (wie Dropdowns), kein Schatten, kein Text am Rand ===== */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], input[type="url"],
input[type="date"], input[type="time"], input[type="datetime-local"],
textarea, .form-control, .app-input{
  box-shadow: none !important;
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius-sm) !important;
  background-color: #fff !important;
  color: var(--app-ink);
  padding: 9px 12px !important;
  min-height: 42px;
  font-size: 14px;
  line-height: 1.4;
  box-sizing: border-box;
}
textarea{ min-height: 72px !important; height: auto; }
select, .form-select{
  box-shadow: none !important;
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius-sm) !important;
  min-height: 42px;
  background-color: #fff;
}
input:focus, textarea:focus, select:focus,
.form-control:focus, .form-select:focus, .app-input:focus{
  outline: 2px solid var(--app-petrol) !important;
  outline-offset: 1px;
  border-color: var(--app-petrol) !important;
  box-shadow: none !important;
}
/* Platz fuer das Passwort-Auge trotz einheitlichem Padding */
.auth-pwwrap .auth-input{ padding-right: 2.75rem !important; }

/* ── E1 Partner-Hub (companies/view): 1 Generelle Infos · 2 Personen · 3 Benefits B2B · 4 B2C ── */
.app-hub-nav{ display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 12px; }
.app-hub-nav a{ display:inline-flex; align-items:center; gap:6px; padding:4px 12px 4px 5px; border:1px solid var(--app-border); border-radius:999px;
  background:var(--app-surface); font-size:.8rem; font-weight:600; color:var(--app-text); text-decoration:none; }
.app-hub-nav a:hover{ border-color:var(--app-accent-deep); color:var(--app-accent-deep); }
.app-hub-nav a span{ display:inline-flex; width:20px; height:20px; border-radius:50%; align-items:center; justify-content:center;
  background:var(--app-accent-soft); color:var(--app-accent-deep); font-size:.7rem; }
.app-hub-nav__extra{ padding-left:12px !important; color:var(--app-text-muted) !important; }

.app-hub{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:14px; align-items:start; }
.app-hub__col{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.app-hub__panel{ background:var(--app-surface); border:1px solid var(--app-border); border-radius:var(--app-radius);
  box-shadow:var(--app-shadow); padding:14px 16px; min-width:0; scroll-margin-top:80px; }
.app-hub__panel--people .app-people-list__name{ white-space:normal; overflow:visible; }
/* Personen im Partner-Hub: einspaltig über die volle linke Spaltenbreite (sonst greift column-count:3 der globalen Liste) */
.app-people-list--single, .app-hub__panel--people .app-people-list{ column-count:1 !important; columns:auto; }
.app-hub__panel--people .app-people-list li{ gap:14px; }
.app-hub__panel--people .app-people-list__name{ flex:1 1 auto; min-width:12rem; overflow-wrap:anywhere; }
.app-hub__title{ font-family:var(--app-font-display); font-weight:500; font-size:1.15rem; letter-spacing:-.2px; margin:0 0 10px;
  display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; }
.app-hub__title small{ font-family:var(--app-font); font-size:10px; font-weight:700; letter-spacing:.5px; color:var(--app-petrol);
  background:var(--app-petrol-soft); border-radius:999px; padding:2px 7px; }
.app-hub__title .app-panel-count{ margin-left:0; }
.app-hub__title .app-panel-action{ margin-left:auto; float:none; margin-top:0; }
.app-hub__nr{ display:inline-flex; width:24px; height:24px; border-radius:50%; align-items:center; justify-content:center; flex:none;
  background:var(--app-accent-deep); color:#fff; font-family:var(--app-font); font-size:.75rem; font-weight:700; }
.app-hub__lede{ font-size:.82rem; color:var(--app-text-muted); margin:-4px 0 10px; }
.app-hub__panel .app-crm-card{ box-shadow:none; border-color:var(--app-border-soft); padding:12px 14px; }
.app-hub__split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:12px; margin-top:12px; }
.app-hub__box{ border:1px solid var(--app-border-soft); border-radius:12px; padding:10px 12px; min-width:0; }
.app-hub__subtitle{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:700; color:var(--app-text-muted);
  margin:0 0 8px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.app-hub__subtitle .badge, .app-hub__subtitle > span{ text-transform:none; letter-spacing:0; }
.app-hub__placeholder{ border:1px dashed var(--app-border); border-radius:12px; padding:12px 14px; background:repeating-linear-gradient(135deg, var(--app-surface) 0 14px, #faf7f1 14px 28px); }

.app-hours{ width:100%; border-collapse:collapse; font-size:.86rem; }
.app-hours th{ width:3rem; font-weight:600; color:var(--app-text-muted); padding:3px 6px 3px 0; }
.app-hours th abbr{ text-decoration:none; cursor:default; }
.app-hours td{ font-weight:600; padding:3px 0; font-variant-numeric:tabular-nums; }
.app-hours tr + tr{ border-top:1px solid var(--app-border-soft); }
.app-hours tr.is-closed td{ color:var(--app-text-muted); font-weight:400; }
.app-hours tr.is-today{ background:linear-gradient(90deg, var(--app-accent-soft), transparent 85%); }
.app-hours tr.is-today th{ color:var(--app-accent-deep); padding-left:6px; }
.app-hours__note{ font-size:.78rem; color:var(--app-text-muted); margin:8px 0 0; }

.app-plan-mini{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:12px; align-items:start; }
.app-plan-mini__map{ position:relative; display:block; border-radius:10px; overflow:hidden; border:1px solid var(--app-border-soft); background:#f4f1ea; line-height:0; }
.app-plan-mini__map img{ width:100%; height:auto; display:block; }
.app-plan-mini__map:hover{ border-color:var(--app-accent-deep); }
.app-plan-mini__marker{ position:absolute; transform:translate(-50%,-50%); min-width:18px; height:18px; padding:0 4px; border-radius:999px;
  background:var(--app-petrol); color:#fff; font-size:10px; font-weight:700; line-height:18px; text-align:center;
  box-shadow:0 0 0 2px #fff, 0 1px 4px rgba(0,0,0,.35); }
.app-plan-mini__marker.is-primary{ background:var(--app-accent-deep); min-width:22px; height:22px; line-height:22px; font-size:11px; z-index:1; }
.app-plan-mini__list{ list-style:none; margin:0; padding:0; font-size:.86rem; }
.app-plan-mini__list li{ display:flex; align-items:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--app-border-soft); }
.app-plan-mini__nr{ display:inline-flex; min-width:22px; height:22px; padding:0 5px; border-radius:999px; align-items:center; justify-content:center;
  background:var(--app-petrol); color:#fff; font-size:.7rem; font-weight:700; flex:none; }
.app-plan-mini__nr.is-primary{ background:var(--app-accent-deep); }

.app-people-list--single{ column-count:1; }
.app-people-list__actions{ display:inline-flex; align-items:center; gap:6px; flex-shrink:0; }
.app-people-list__actions .btn-sm{ padding:2px 10px; font-size:.78rem; }
@media (max-width: 560px){ .app-people-list--single li{ flex-wrap:wrap; } .app-people-list__actions{ width:100%; justify-content:flex-end; } }
.app-offer-list{ list-style:none; margin:0; padding:0; }
.app-offer-list li{ padding:7px 0; border-bottom:1px solid var(--app-border-soft); }
.app-offer-list li.is-inactive{ opacity:.6; }
.app-offer-list__head{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; }
.app-offer-list__value{ font-size:.72rem; font-weight:700; color:var(--app-accent-deep); background:var(--app-accent-soft); border-radius:999px; padding:1px 8px; }
.app-offer-list__sub{ font-size:.78rem; color:var(--app-text-muted); margin:2px 0 0; }
.app-offer-list--b2c p{ font-size:.82rem; color:var(--app-text-muted); margin-top:2px; }

.app-point-grid .input.select{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:2px 14px; }
.app-point-grid .input.select > label:first-child{ grid-column:1 / -1; }
.app-point-check label{ font-weight:400; font-size:.85rem; display:flex; gap:6px; align-items:center; margin:0; }
.app-hours-form{ display:grid; gap:4px; margin-bottom:10px; }
.app-hours-form__row{ display:grid; grid-template-columns:7.5rem 7rem 8rem auto 8rem; gap:8px; align-items:center; }
.app-hours-form__row .input{ margin:0; }
.app-hours-form__row .input.checkbox label{ display:flex; gap:6px; align-items:center; margin:0; font-weight:400; }
.app-hours-form__day{ font-weight:600; }
.app-hours-form__sep{ color:var(--app-text-muted); text-align:center; }

@media (max-width: 1100px){
  .app-hub{ grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
  .app-point-grid .input.select{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (max-width: 720px){
  .app-hub{ grid-template-columns:1fr; }
  .app-hub__split{ grid-template-columns:1fr; }
  .app-point-grid .input.select{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .app-hours-form__row{ grid-template-columns:5.5rem auto 1fr auto 1fr; }
}
@media (max-width: 420px){ .app-plan-mini{ grid-template-columns:110px minmax(0,1fr); } }

/* „Ansicht als Rolle“ (SuperUser-Vorschau) */
.app-role-preview-switch{ display:flex; flex-direction:column; gap:3px; margin:0; }
.app-role-preview-switch__label{ font-size:.68rem; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--app-text-muted); }
.app-userbox .app-role-preview-switch__hint{ font-size:.68rem; }
.app-role-preview-banner{ position:sticky; top:0; z-index:1030; display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:10px 16px; background:#2B2A33; color:#fff; border-bottom:4px solid #F2C500; }
.app-role-preview-banner__tag{ background:#F2C500; color:#2B2A33; font-size:.7rem; font-weight:700; letter-spacing:.6px; text-transform:uppercase; border-radius:999px; padding:2px 10px; }
.app-role-preview-banner__text{ flex:1 1 16rem; font-size:.88rem; }
.app-role-preview-banner__btn{ background:#F2C500; color:#2B2A33; font-weight:700; border:0; }
.app-role-preview-banner__btn:hover{ background:#fff; color:#2B2A33; }

/* Rollen × Rechte-Gruppen (Übersicht) und Gruppen-Schalter im Rechte-Editor */
.app-role-matrix th, .app-role-matrix td{ white-space:nowrap; font-size:.82rem; }
.app-role-matrix td.app-role-matrix__cell{ text-align:center; font-variant-numeric:tabular-nums; }
.app-role-matrix__cell.is-full{ color:#1f7a3f; font-weight:700; }
.app-role-matrix__cell.is-none{ color:var(--app-text-muted); }
.app-permission-group__head{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.app-permission-group__toggle{ display:flex; align-items:center; gap:6px; font-size:.75rem; font-weight:600; margin:0; cursor:pointer; }
.app-permission-group__count{ font-size:.72rem; color:var(--app-text-muted); font-weight:500; }

/* AREALPLAN · Aktionsbutton auf Terrakotta (eigene Klasse ap-btn-primary) */
.ap-btn-primary{ background: var(--app-accent-deep) !important; border-color: var(--app-accent-deep) !important; color:#fff !important; }
.ap-btn-primary:hover{ background:#93412A !important; border-color:#93412A !important; }

/* AREALPLAN · groesserer Plan bei geoeffnetem Tool (2 Spalten, Tool+Legende rechts gestapelt) — nur Desktop (ab lg) */
@media (min-width: 992px){
  .ap-planpage.ap-has-tool{ grid-template-columns: minmax(0,720px) minmax(340px,1fr) !important; grid-template-rows: auto auto !important; column-gap:24px !important; row-gap:16px !important; align-items:start !important; }
  .ap-planpage.ap-has-tool > .ap-planpage-map{ grid-column:1 !important; grid-row:1 / span 2 !important; }
  .ap-planpage.ap-has-tool > .ap-planpage-tool{ grid-column:2 !important; grid-row:1 !important; }
  .ap-planpage.ap-has-tool > .ap-planpage-side{ grid-column:2 !important; grid-row:2 !important; }
}
/* AREALPLAN · Handy/schmal (unter lg): einspaltig — Plan volle Breite, Tool-Box + Legende darunter */
@media (max-width: 991.98px){
  .ap-root .ap-planpage,
  .ap-root .ap-planpage.ap-has-tool{ grid-template-columns:minmax(0,1fr); gap:14px; }
  .ap-root .ap-planpage > .ap-planpage-map,
  .ap-root .ap-planpage > .ap-planpage-tool,
  .ap-root .ap-planpage > .ap-planpage-side{ grid-column:1; grid-row:auto; }
  .ap-root .ap-planpage-map,
  .ap-root .ap-planpage-tool{ position:static; max-height:none; }
  .ap-root .ap-planpage-map{ width:100%; }
}

/* ===== Login-Button = Terrakotta ===== */
.auth-login__submit,
.auth-login__submit.btn-primary{
  --bs-btn-bg:#A94E32; --bs-btn-border-color:#A94E32; --bs-btn-color:#fff;
  --bs-btn-hover-bg:#93412A; --bs-btn-hover-border-color:#93412A; --bs-btn-hover-color:#fff;
  --bs-btn-active-bg:#93412A; --bs-btn-active-border-color:#93412A; --bs-btn-active-color:#fff;
  background:#A94E32; border-color:#A94E32; color:#fff;
}
.auth-login__submit:hover,
.auth-login__submit:focus-visible,
.auth-login__submit:active{ background:#93412A; border-color:#93412A; color:#fff; }

/* Login: Karte mit Innenabstand */
.auth-login-panel{ padding:48px !important; }
.auth-login-panel__inner{ padding:40px 44px !important; box-sizing:border-box !important; }
.auth-brand{ margin-bottom:26px !important; }
.auth-login__title{ margin-bottom:10px !important; }
.auth-login__lede{ margin-bottom:26px !important; }

/* ===== Mobile Bottom-Navigation (unter lg) ===== */
:root{ --app-bottomnav-h: 60px; }
.app-bottomnav{
  position:fixed; left:0; right:0; bottom:0; z-index:1025; /* unter Offcanvas (1045) und Dialogen */
  display:flex; align-items:stretch;
  padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  background:var(--app-surface, #fff); border-top:1px solid var(--app-border);
  box-shadow:0 -4px 16px -14px rgba(120,95,55,.45);
}
.app-bottomnav__tab{
  flex:1 1 0; min-width:0; min-height:max(44px, var(--app-bottomnav-h));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  padding:6px 4px; color:var(--app-text-muted); text-decoration:none;
  font-size:.7rem; font-weight:600; letter-spacing:.2px; line-height:1.1;
  -webkit-tap-highlight-color:transparent;
}
.app-bottomnav__tab:hover{ color:var(--app-ink); }
.app-bottomnav__tab.is-active{ color:var(--app-accent-deep); box-shadow:inset 0 2px 0 var(--app-accent-deep); }
.app-bottomnav__label{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width: 991.98px){
  /* Inhalt, Footer und Versionsnummer enden oberhalb der Leiste */
  body.app-has-bottomnav{ padding-bottom:calc(var(--app-bottomnav-h) + env(safe-area-inset-bottom)); }
  body.app-has-bottomnav .app-version-badge{ position:static; display:block; width:fit-content; margin:0 .5rem .4rem auto; }
}
@media print{ .app-bottomnav{ display:none !important; } body.app-has-bottomnav{ padding-bottom:0; } }

/* ===== Veranstaltungs-Formular: Master-Detail (ab lg) / Accordion (mobil) =====
   Alle Abschnitte bleiben im Formular; ausgeblendet wird nur per CSS, erst wenn das JS läuft (.is-enhanced). */
.app-event-step--8{ background:#7a8a6b; }
.app-event-md__nav{ display:none; }
.app-event-md__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.app-event-md__link{
  display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 12px;
  border-radius:10px; border-left:3px solid transparent;
  color:var(--app-ink); text-decoration:none; font-weight:600; font-size:.88rem;
}
.app-event-md__link:hover{ background:var(--app-accent-soft); color:var(--app-accent-deep); }
.app-event-md__num{
  flex-shrink:0; width:1.6rem; height:1.6rem; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:.75rem; font-weight:700;
}
.app-event-md__label{ flex:1 1 auto; min-width:0; }
.app-event-md__link.is-active{ background:var(--app-accent-soft); color:var(--app-accent-deep); border-left-color:var(--app-accent-deep); }
.app-event-md__link.is-active .app-event-md__num{ background:var(--app-accent-deep); }
.app-event-md__err{ flex-shrink:0; width:8px; height:8px; border-radius:999px; background:var(--app-danger, #c0392b); }
.app-event-md__err[hidden]{ display:none; }
.app-event-md__panes .app-event-section{ margin-bottom:1rem; }

@media (min-width: 992px){
  .app-event-md.is-enhanced{ display:grid; grid-template-columns:minmax(200px,240px) minmax(0,1fr); gap:24px; align-items:start; }
  .app-event-md.is-enhanced > .app-event-md__nav{ display:block; position:sticky; top:1rem; padding-right:12px; border-right:1px solid var(--app-border-soft); }
  .app-event-md.is-enhanced .app-event-md__panes .app-event-section:not(.is-active){ display:none; }
  .app-event-md.is-enhanced .app-event-md__panes .app-event-section{ margin-bottom:0; }
  /* Noch kein Abschnitt gewählt (Standard beim Anlegen und Öffnen) */
  .app-event-md.is-enhanced:not(.has-active) .app-event-md__empty{ display:flex; }
}
.app-event-md__empty{
  display:none; align-items:center; justify-content:center; min-height:220px; padding:24px; text-align:center;
  border:1px dashed var(--app-border); border-radius:12px; color:var(--app-text-muted); font-size:.92rem;
}

@media (max-width: 991.98px){
  .app-event-md.is-enhanced .app-event-md__panes .app-event-section{ padding:0; margin-bottom:.5rem; overflow:hidden; }
  .app-event-md.is-enhanced .app-event-section__head{
    cursor:pointer; margin:0; padding:12px 44px 12px 14px; min-height:44px; border-bottom:0; position:relative;
    -webkit-tap-highlight-color:transparent;
  }
  .app-event-md.is-enhanced .app-event-section__head::after{
    content:""; position:absolute; right:18px; top:50%; width:9px; height:9px; margin-top:-6px;
    border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); opacity:.55; transition:transform .15s;
  }
  .app-event-md.is-enhanced .app-event-section.is-active > .app-event-section__head{ border-bottom:1px solid var(--app-border-soft); }
  .app-event-md.is-enhanced .app-event-section.is-active > .app-event-section__head::after{ transform:rotate(-135deg); margin-top:-2px; }
  .app-event-md.is-enhanced .app-event-section.is-active .app-event-section__title{ color:var(--app-accent-deep); }
  .app-event-md.is-enhanced .app-event-section > .app-event-section__body{ padding:14px; }
  .app-event-md.is-enhanced .app-event-section:not(.is-active) > :not(.app-event-section__head){ display:none; }
}

/* Veranstaltung · „Exportieren“-Dropdown (Function Sheet) */
.app-export-menu .dropdown-menu{ min-width:13rem; }
.app-export-menu__note{ font-size:.78rem; color:var(--app-text-muted); max-width:16rem; white-space:normal; }

/* ===== Checkbox/Radio: Kästchen mittig zum Text, mit Abstand ===== */
form label:has(> input[type="checkbox"]),
form label:has(> input[type="radio"]){
  display:inline-flex !important; align-items:center; gap:9px; cursor:pointer; line-height:1.3;
}
form label > input[type="checkbox"],
form label > input[type="radio"]{
  width:17px !important; height:17px !important; margin:0 !important;
  flex:0 0 auto; vertical-align:-3px; accent-color:var(--app-accent-deep);
}

/* ===== Veranstaltung · Function Sheet (Overlay, Leseansicht) ===== */
.app-event-fs-bar{ display:flex; justify-content:flex-end; margin-bottom:12px; }
.app-event-fs-open{ display:inline-flex; align-items:center; gap:6px; }
@media (min-width: 992px){
  .app-fs .modal-dialog{ max-width:min(1200px, 94vw); }
  .app-fs .modal-content{ min-height:88vh; }
}
.app-fs .modal-content{ background:var(--app-paper, #fbf8f2); border:0; border-radius:16px; }
.app-fs__head{ align-items:flex-start; gap:12px; border-bottom:1px solid var(--app-border); background:var(--app-surface, #fff); border-radius:16px 16px 0 0; }
.app-fs__heading{ min-width:0; flex:1 1 auto; }
.app-fs__eyebrow{ font-size:.7rem; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:var(--app-accent-deep); }
.app-fs__head .modal-title{ font-family:var(--app-font-display); font-weight:500; margin:2px 0 0; overflow-wrap:anywhere; }
.app-fs__actions{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.app-fs__actions .btn-close{ margin:0; }
.app-fs__body{ padding:20px clamp(16px, 3vw, 32px) 28px; columns:2 420px; column-gap:32px; }
.app-fs__section{ break-inside:avoid; margin:0 0 20px; background:var(--app-surface, #fff); border:1px solid var(--app-border); border-radius:12px; padding:12px 16px 8px; }
.app-fs__title{ font-family:var(--app-font); font-size:.95rem; font-weight:700; color:var(--app-accent-deep); margin:0 0 8px; padding-bottom:6px; border-bottom:1px solid var(--app-border-soft); }
.app-fs__list{ margin:0; }
.app-fs__row{ display:grid; grid-template-columns:minmax(120px, 38%) minmax(0, 1fr); gap:2px 14px; padding:4px 0; border-bottom:1px dashed var(--app-border-soft); }
.app-fs__row:last-child{ border-bottom:0; }
.app-fs__row dt{ font-weight:500; color:var(--app-text-muted); font-size:.84rem; }
.app-fs__row dd{ margin:0; font-size:.9rem; white-space:pre-line; overflow-wrap:anywhere; }
.app-fs__row dd.is-empty{ color:var(--app-text-muted); opacity:.75; }
@media (max-width: 560px){ .app-fs__row{ grid-template-columns:1fr; } }

/* ===== Veranstaltung · Eingabeformat, schreibgeschützt (ohne Bearbeitungsrecht) ===== */
.app-event-readonly-set{ border:0; margin:0; padding:0; min-width:0; }
.app-event-ux--readonly .app-event-readonly-set :is(input, select, textarea):disabled{ opacity:1; cursor:default; background-color:var(--app-paper, #fbf8f2); color:var(--app-text, inherit); }
.app-event-ux--readonly :is(#event-resource-add, #event-delivery-add, [data-resource-remove], [data-delivery-remove]){ display:none !important; }

/* ===== Einstellungen · Tore, Lieferanten & Parkzonen ===== */
.app-settings-cell--plan{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.app-settings-cell--plan .btn.is-invalid{ border-color:var(--app-danger, #c0392b); color:var(--app-danger, #c0392b); }
.app-settings-cell--plan [data-plan-status].is-empty{ opacity:.7; }
@media (min-width: 992px){
  .app-settings-list--lg-gates .app-settings-row{ grid-template-columns:6.5rem minmax(0, 1fr) minmax(0, 1fr) 6rem; }
  .app-settings-list--lg-suppliers .app-settings-row{ grid-template-columns:6.5rem minmax(0, 1.2fr) 11rem minmax(0, 1fr) minmax(0, 1.2fr) 6rem; }
  .app-settings-list--lg-parking .app-settings-row{ grid-template-columns:6.5rem minmax(0, 1fr) 13rem minmax(0, 1fr) 6rem; }
  .app-settings-list--lg-residents .app-settings-row{ grid-template-columns:6.5rem minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr) 6rem; }
}
@media (min-width: 576px) and (max-width: 991.98px){
  :is(.app-settings-list--lg-gates, .app-settings-list--lg-suppliers, .app-settings-list--lg-parking, .app-settings-list--lg-residents) .app-settings-row{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
  :is(.app-settings-list--lg-gates, .app-settings-list--lg-suppliers, .app-settings-list--lg-parking, .app-settings-list--lg-residents) .app-settings-cell--grow{ grid-column:1 / -1; }
}
/* Anliefer-Slots je Tor (Version 1.46): eigene Zeile unter Bezeichnung/Position */
.app-gate-delivery--slots{ padding:8px 0 2px; background:none; }
.app-gate-delivery__title{ display:block; font-size:.72rem; font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:var(--app-text-muted); margin-bottom:4px; }
.app-gate-delivery--slots .form-label{ font-size:.78rem; margin-bottom:2px; }
.app-gate-delivery--slots .app-gate-delivery__day input:checked + span{ background:var(--app-accent-deep); }

/* Plan-Fenster (Position / Umriss setzen) */
.app-plan-picker__hint{ font-size:.85rem; color:var(--app-text-muted); }
.app-plan-picker__stage{ max-width:760px; margin:0 auto; }
.app-plan-picker__svg{ display:block; width:100%; height:auto; cursor:crosshair; border-radius:10px; background:#f4f1ea; touch-action:manipulation; }
.app-plan-picker__count{ font-size:.85rem; color:var(--app-text-muted); }

/* ===== Veranstaltung · Abschnitt „Anlieferungen“ (Anlieferungen + Abtransporte) ===== */
.app-logi-block + .app-logi-block{ margin-top:22px; padding-top:16px; border-top:1px solid var(--app-border-soft); }
.app-logi-block__title{ font-family:var(--app-font); font-size:.95rem; font-weight:700; color:var(--app-accent-deep); margin:0 0 6px; }
.app-logi-rows{ display:flex; flex-direction:column; gap:10px; }
.app-logi-row{ padding:12px; border:1px solid var(--app-border-soft); border-radius:var(--app-radius-sm, 12px); background:rgba(255,255,255,.35); }
.app-logi-row .app-form-field{ margin-bottom:.5rem; }
.app-logi-row__remove{ display:flex; align-items:flex-end; }
.app-logi-empty{ margin:0; }
.app-form-optional{ font-weight:400; color:var(--app-text-muted); font-size:.85em; }

/* Termin & Dauer unter dem Veranstaltungstitel (page_header „meta“, Function-Sheet-Overlay) */
.app-page-meta, .app-fs__meta{ display:flex; flex-wrap:wrap; gap:2px 18px; margin:0; font-size:.85rem; color:var(--app-text-muted); }
.app-fs__meta{ margin-top:4px; }
.app-fs__meta:empty{ display:none; }
.app-page-meta__label{ font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-right:4px; }
.app-page-meta__value{ font-family:var(--app-font-mono); font-variant-numeric:tabular-nums; color:var(--app-ink); }

/* ===== Verwaltung · Laufliste ===== */
.app-laufliste-cols{ border:0; margin:.75rem 0 0; padding:0; }
.app-laufliste-cols legend{ font-size:.85rem; margin-bottom:.25rem; float:none; width:auto; }
.app-laufliste-table td{ vertical-align:top; font-size:.9rem; }
.app-laufliste-table :is(.app-laufliste-cell--datum, .app-laufliste-cell--uhrzeit){ font-family:var(--app-font-mono); font-variant-numeric:tabular-nums; white-space:nowrap; font-size:.84rem; }
.app-laufliste-row--event td{ background:var(--app-paper, #fbf8f2); }
.app-laufliste-type{ display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:2px 8px; border-radius:999px; white-space:nowrap; }
.app-laufliste-type--event{ background:var(--app-accent-soft, #f6e7df); color:var(--app-accent-deep, #a94e32); }
.app-laufliste-type--in{ background:#e3f0e6; color:#2f6b3f; }
.app-laufliste-type--out{ background:#e6ecf6; color:#2f4f86; }

/* ===== Export: Teilen (event-share.js) ===== */
.app-export-menu .dropdown-toggle.is-ready{ animation:app-share-pulse 1s ease-in-out 2; }
@keyframes app-share-pulse{ 50%{ box-shadow:0 0 0 4px var(--app-accent-soft, #f6e7df); } }

/* ===== Handy: Auswahl als Overlay von unten (select-sheet.js) ===== */
.app-sheet-native{ position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; border:0 !important; opacity:0; pointer-events:none; }
.app-form-field:has(> .app-sheet-native), .input:has(> .app-sheet-native){ position:relative; }
.app-sheet-toggle{ display:block; width:100%; text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-height:44px; }
.app-sheet-toggle.is-placeholder{ color:var(--app-text-muted); }
html.app-sheet-open, html.app-sheet-open body{ overflow:hidden; }
.app-sheet{ position:fixed; inset:0; z-index:1070; display:flex; align-items:flex-end; justify-content:center; }
.app-sheet[hidden]{ display:none; }
.app-sheet__backdrop{ position:absolute; inset:0; background:rgba(43,42,51,.45); opacity:0; transition:opacity .18s ease; }
.app-sheet__panel{
  position:relative; width:100%; max-width:640px; max-height:min(80vh, 640px);
  display:flex; flex-direction:column;
  background:var(--app-surface, #fff); border-radius:16px 16px 0 0;
  box-shadow:0 -10px 30px -12px rgba(43,42,51,.35);
  padding:6px 0 env(safe-area-inset-bottom);
  transform:translateY(100%); transition:transform .2s ease;
}
.app-sheet.is-open .app-sheet__backdrop{ opacity:1; }
.app-sheet.is-open .app-sheet__panel{ transform:none; }
.app-sheet__grip{ width:40px; height:4px; border-radius:2px; background:var(--app-border); margin:4px auto 6px; }
.app-sheet__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:4px 16px 10px; border-bottom:1px solid var(--app-border-soft, #eee); }
.app-sheet__title{ font-size:1rem; font-weight:700; margin:0; min-width:0; overflow-wrap:anywhere; }
.app-sheet__done{ flex-shrink:0; min-height:36px; }
.app-sheet__search{ margin:10px 16px 4px; width:auto; }
.app-sheet__list{ list-style:none; margin:0; padding:4px 0 8px; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
.app-sheet__group{ padding:10px 16px 4px; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--app-text-muted); }
.app-sheet__item{
  display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%;
  min-height:48px; padding:10px 16px; border:0; background:none; text-align:left; font-size:1rem; color:var(--app-ink, inherit);
  border-bottom:1px solid var(--app-border-soft, #f0ece4);
}
.app-sheet__item::after{ content:""; flex-shrink:0; width:18px; height:18px; border-radius:50%; border:1.5px solid var(--app-border); }
.app-sheet__list[aria-multiselectable="true"] .app-sheet__item::after{ border-radius:4px; }
.app-sheet__item.is-selected{ font-weight:600; color:var(--app-accent-deep); background:var(--app-paper, #fbf8f2); }
.app-sheet__item.is-selected::after{ border-color:var(--app-accent-deep); background:var(--app-accent-deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; }
.app-sheet__item:disabled{ opacity:.45; }
.app-sheet__item:focus-visible{ outline:2px solid var(--app-accent-deep); outline-offset:-2px; }
@media (prefers-reduced-motion: reduce){ .app-sheet__panel, .app-sheet__backdrop{ transition:none; } }

/* ===== Anlieferungen · Tagesliste je Tor (Version 1.46) ===== */
.app-delivery-gate__meta{ margin:-6px 0 10px; font-size:.82rem; color:var(--app-text-muted); }
.app-delivery-item__facts{ display:flex; flex-wrap:wrap; gap:4px 12px; font-size:.86rem; margin:2px 0; }
.app-delivery-item__vehicles{ font-weight:700; }
.app-delivery-item__load{ font-family:var(--app-font-mono); font-variant-numeric:tabular-nums; }
.app-delivery-item__load.is-full{ color:var(--app-ink); font-weight:600; }
.app-delivery-item__load.is-over{ color:var(--app-danger, #c0392b); font-weight:700; }
.app-delivery-item.is-requested{ opacity:1; box-shadow:inset 3px 0 0 var(--st-req); padding-left:10px; }
.app-delivery-item.is-over .app-delivery-item__time{ color:var(--app-danger, #c0392b); }
@media (max-width: 575.98px){
  .app-delivery-daynav .btn{ flex:1 1 0; min-height:44px; display:flex; align-items:center; justify-content:center; }
  .app-slot-grid{ grid-template-columns:repeat(auto-fill, minmax(4.9rem, 1fr)); }
}

/* ===== Einheitliche Konfliktanzeige (Version 1.47) — Rot nur Warnung, nie Aktion ===== */
.app-conflict-box{ margin:0 0 14px; padding:12px 14px; border:1px solid var(--app-danger, #c0392b); border-left-width:5px; border-radius:12px; background:rgba(192,57,43,.07); color:var(--app-ink); }
.app-conflict-box__title{ font-family:var(--app-font); font-size:1rem; font-weight:700; color:var(--app-danger, #c0392b); margin:0 0 4px; }
.app-conflict-box__lede{ font-size:.88rem; margin:0 0 8px; }
.app-conflict-list{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.app-conflict{ display:grid; grid-template-columns:auto auto 1fr; gap:4px 8px; align-items:baseline; font-size:.9rem; line-height:1.35; }
.app-conflict__kind{ font-size:.7rem; font-weight:700; letter-spacing:.4px; text-transform:uppercase; padding:2px 7px; border-radius:999px; background:#fff; border:1px solid var(--app-border); color:var(--app-ink); white-space:nowrap; }
.app-conflict__level{ font-size:.72rem; font-weight:700; white-space:nowrap; color:var(--app-danger, #c0392b); }
.app-conflict--warn .app-conflict__level{ color:var(--st-req); }
.app-conflict--hint .app-conflict__level{ color:var(--app-text-muted); font-weight:600; }
.app-conflict__link{ white-space:nowrap; margin-left:4px; }
.app-conflict-hints{ margin:0 0 14px; padding:8px 12px; border:1px solid var(--app-border); border-radius:12px; background:var(--app-card, #fff); font-size:.88rem; }
.app-conflict-hints summary{ cursor:pointer; color:var(--app-text-muted); font-weight:600; min-height:32px; display:flex; align-items:center; }
.app-conflict-hints .app-conflict-list{ margin-top:6px; }
.app-flash .app-conflict-box, .app-flash .app-conflict-hints{ margin:8px 0; }
@media (max-width: 575.98px){
  .app-conflict{ grid-template-columns:auto 1fr; }
  .app-conflict__text{ grid-column:1 / -1; }
}

/* ===== Einstellungen › Sperrzeiten (Version 1.47): Karten mit sichtbaren Feldnamen ===== */
.app-settings-list--blackouts .app-settings-row{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); align-items:end; }
.app-settings-list--blackouts .app-blackout-row__location,
.app-settings-list--blackouts .app-blackout-row__reason,
.app-settings-list--blackouts .app-blackout-row__days,
.app-settings-list--blackouts .app-blackout-row__actions{ grid-column:1 / -1; }
.app-settings-list--blackouts .app-blackout-row__days{ border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px; }
.app-settings-list--blackouts .app-blackout-row__days legend{ width:100%; }
.app-blackout-row__actions{ display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; }
@media (min-width: 992px){
  .app-settings-list--blackouts{ gap:.5rem; }
  .app-settings-list--blackouts .app-settings-row{ grid-template-columns:minmax(0, 1.4fr) minmax(0, 1.3fr) 9.5rem 9.5rem 7.5rem 7.5rem; border:1px solid var(--app-border-soft); border-radius:var(--app-radius-sm); padding:.75rem; background:#fff; }
  .app-settings-list--blackouts .app-settings-row.is-inactive{ background:#f7f5ef; }
  .app-settings-list--blackouts .app-blackout-row__location,
  .app-settings-list--blackouts .app-blackout-row__reason{ grid-column:auto; }
  .app-settings-list--blackouts .app-blackout-row__days{ grid-column:1 / 5; }
  .app-settings-list--blackouts .app-blackout-row__actions{ grid-column:5 / -1; justify-content:flex-end; }
  .app-settings-list--blackouts .app-settings-cell__label{ position:static; width:auto; height:auto; overflow:visible; clip:auto; white-space:normal; }
}
