:root {
    --border:#242424;
    --light:#f4f3f4;
    --muted:#474747;
    --bg:#edf0f1;
    --card:#fff;
    --pmb-red:#e30613;
    --pmb-red-dark:#c10821;
    --pmb-anthracite:#242424;
    --pmb-charcoal:#474747;
    --pmb-light:#edf0f1;
    --pmb-soft:#f4f3f4;
    --pmb-logo-gray:#cdd3d1;
  }
  * { box-sizing:border-box; }
  button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
  body { margin:0; font-family:"Open Sans", Arial, Helvetica, sans-serif; background:var(--bg); color:#111; overflow-x:hidden; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body.site-management-open,
  body.site-pdf-markup-open { overflow:hidden; }
  .app { max-width: 1280px; margin: 0 auto; padding: 20px; }
  .toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
  .toolbar h1 { margin:0; font-size:28px; }
  .toolbar > div:first-child { min-width:0; }
  .btn { border:0; border-radius:8px; padding:10px 14px; min-height:44px; cursor:pointer; font-weight:700; font-size:14px; background:var(--pmb-anthracite); color:white; touch-action:manipulation; }
  .btn.secondary { background:#e5e1d6; color:var(--pmb-anthracite); }
  /* Hierarchie: primary = Hauptaktion (Markenrot); ghost = dezent (z.B. Abmelden) */
  .btn.primary { background:var(--pmb-red); color:#fff; }
  .btn.ghost { background:transparent; color:var(--pmb-anthracite); border:1px solid #cdd3d1; box-shadow:none; font-weight:700; }
  .btn.warning { background:#facc15; color:#713f12; }
  .btn:disabled { cursor:not-allowed; opacity:.65; }
  /* Diktat-Knopf (Spracheingabe) */
  .mic-btn { display:inline-flex; align-items:center; gap:6px; margin-top:6px; padding:6px 11px; min-height:38px; border:1px solid #cdd3d1; border-radius:8px; background:#fff; color:var(--pmb-anthracite); font-weight:800; font-size:12.5px; cursor:pointer; touch-action:manipulation; }
  .mic-btn:hover { border-color:#9aa3a1; }
  .mic-btn.recording { background:var(--pmb-red); border-color:var(--pmb-red); color:#fff; animation:micpulse 1.1s ease-in-out infinite; }
  @keyframes micpulse { 0%,100% { opacity:1; } 50% { opacity:.62; } }
  body.no-dictation .mic-btn { display:none; }
  details.drop-card > summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; margin:0; }
  details.drop-card > summary::-webkit-details-marker { display:none; }
  details.drop-card > summary h2 { display:inline; margin:0; }
  details.drop-card > summary .drop-chevron { color:#9aa3a1; transition:transform .15s; font-size:13px; }
  details.drop-card[open] > summary .drop-chevron { transform:rotate(90deg); }
  .inbox-reminder-banner { margin-bottom:12px; padding:10px 12px; border-radius:10px; background:#fff8e6; border:1px solid #facc15; color:#713f12; font-weight:800; font-size:13px; }
  .login-shell { min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:20px; background:linear-gradient(160deg,#f4f3f4 0%,#e9edee 60%,#dfe4e6 100%); }
  .login-card { width:min(420px, 100%); background:#fff; border:1px solid #e2e8f0; border-top:4px solid var(--pmb-red); border-radius:16px; padding:26px 24px; box-shadow:0 18px 44px rgba(15,23,42,.16); }
  .login-logo { display:block; height:44px; width:auto; max-width:70%; margin:2px auto 18px; }
  .login-card h1 { margin:0 0 8px; font-size:24px; text-align:center; }
  .login-card p { margin:0 0 18px; color:#64748b; text-align:center; }
  .login-card .btn { width:100%; margin-top:14px; }
  .auth-field { margin-bottom:12px; }
  .auth-message { min-height:20px; margin-top:12px; color:#991b1b; font-weight:700; font-size:13px; }
  .remember-row { display:flex; align-items:center; gap:8px; margin-top:4px; font-size:13px; color:#334155; font-weight:700; }
  .remember-row input { width:auto; margin:0; }
  .mfa-setup-box { display:grid; gap:8px; margin:0 0 12px; padding:10px; border:1px solid #bfdbfe; border-radius:10px; background:#eff6ff; }
  .mfa-setup-box[hidden] { display:none; }
  .mfa-setup-box p { margin:0; color:#1e40af; font-size:13px; line-height:1.35; text-align:left; font-weight:800; }
  .mfa-qr-wrap { display:flex; justify-content:center; padding:6px 0 2px; }
  .mfa-qr-wrap[hidden] { display:none; }
  .mfa-qr-image { width:220px; max-width:100%; height:auto; border:1px solid #bfdbfe; border-radius:10px; background:#fff; }
  .mfa-secret-input { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; letter-spacing:0; }
  .userbar { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .current-user { color:#475569; font-size:13px; font-weight:700; }
  .push-setting { display:none; align-items:center; gap:9px; min-height:42px; padding:8px 10px; border:1px solid #dbe3ee; border-radius:10px; background:#f8fafc; color:#334155; font-size:13px; font-weight:800; }
  .push-setting input { width:18px; min-height:18px; margin:0; flex:0 0 auto; }
  .push-setting span { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
  .push-setting small { color:#64748b; font-size:12px; font-weight:800; white-space:nowrap; }
  .push-setting.push-pending { background:#f8fafc; border-color:#cbd5e1; color:#334155; }
  .push-setting.push-active { background:#f0fdf4; border-color:#86efac; color:#166534; }
  .push-setting.push-blocked { background:#fff1f2; border-color:#fecdd3; color:#991b1b; }
  .offline-status { display:inline-flex; align-items:center; gap:6px; min-height:30px; padding:5px 9px; border-radius:999px; border:1px solid #bbf7d0; background:#f0fdf4; color:#166534; font-size:12px; font-weight:900; white-space:nowrap; }
  .offline-status::before { content:""; width:8px; height:8px; border-radius:999px; background:#22c55e; }
  .offline-status.offline { border-color:#fde68a; background:#fffbeb; color:#92400e; }
  .offline-status.offline::before { background:#f59e0b; }
  .offline-status.pending { border-color:#bfdbfe; background:#eff6ff; color:#1d4ed8; }
  .offline-status.pending::before { background:#3b82f6; }
  .offline-status.error { border-color:#fecdd3; background:#fff1f2; color:#991b1b; }
  .offline-status.error::before { background:#ef4444; }
  .offline-card { display:none; padding:0; border:0; box-shadow:none; background:transparent; margin-bottom:10px; }
  .offline-card.show { display:block; }
  .offline-card-toggle {
    width:100%;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 11px;
    border:1px solid #dbe3ee;
    border-radius:12px;
    background:#f8fafc;
    color:#0f172a;
    cursor:pointer;
    text-align:left;
  }

@media (min-width:901px) {
  body.desktop-admin-mode #resourcePlanningApp.resource-planning-no-panel .resource-planning-workspace {
    grid-template-columns:minmax(0,1fr);
  }
}

/* Localdev: kompakte Baustellenplanung */
#resourcePlanningApp [hidden] { display:none !important; }
#resourcePlanningApp .resource-planning-commandbar {
  display:grid;
  gap:10px;
  padding:12px 14px;
}
#resourcePlanningApp .resource-planning-primarybar {
  display:grid;
  grid-template-columns:auto minmax(210px,230px) auto minmax(250px,auto);
  align-items:end;
  gap:10px;
}
#resourcePlanningApp .resource-planning-primarybar label,
#resourcePlanningApp .resource-planning-filter-panel label {
  display:block;
  margin:0 0 5px;
  color:#566272;
  font-size:11px;
  font-weight:900;
}
#resourcePlanningApp .resource-planning-filter-toggle {
  min-height:40px;
  white-space:nowrap;
}
#resourcePlanningApp .resource-planning-filter-toggle.active {
  border-color:#d71920;
  color:#b4151b;
  background:#fff5f5;
}
#resourcePlanningApp .resource-planning-filter-toggle span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  margin-left:5px;
  padding:0 5px;
  border-radius:999px;
  background:#d71920;
  color:#fff;
  font-size:11px;
}
#resourcePlanningApp .resource-planning-primary-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
}
#resourcePlanningApp .resource-planning-primary-actions > .btn { min-height:40px; }
#resourcePlanningApp .resource-planning-more-menu { position:relative; }
#resourcePlanningApp .resource-planning-more-menu summary {
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  list-style:none;
  cursor:pointer;
  user-select:none;
}
#resourcePlanningApp .resource-planning-more-menu summary::-webkit-details-marker { display:none; }
#resourcePlanningApp .resource-planning-more-menu-panel {
  position:absolute;
  z-index:80;
  top:calc(100% + 6px);
  right:0;
  width:220px;
  display:grid;
  gap:3px;
  padding:6px;
  border:1px solid #d8dee7;
  border-radius:7px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
}
#resourcePlanningApp .resource-planning-more-menu-panel button {
  min-height:38px;
  width:100%;
  border:0;
  border-radius:5px;
  padding:8px 10px;
  background:#fff;
  color:#202a36;
  text-align:left;
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
#resourcePlanningApp .resource-planning-more-menu-panel button:hover { background:#f2f4f7; }
#resourcePlanningApp .resource-planning-filter-panel {
  display:grid;
  grid-template-columns:minmax(220px,1.4fr) minmax(170px,.7fr) minmax(210px,1fr) auto;
  align-items:end;
  gap:10px;
  padding:11px;
  border:1px solid #dfe4eb;
  border-radius:7px;
  background:#f7f8fa;
}
#resourcePlanningApp .resource-planning-filter-panel select { min-height:40px; }
#resourcePlanningApp .resource-planning-filter-reset { min-height:40px; }
#resourcePlanningApp .resource-planning-active-filters {
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  overflow-x:auto;
  padding-bottom:1px;
  scrollbar-width:thin;
}
#resourcePlanningApp .resource-planning-active-filters span {
  flex:0 0 auto;
  padding:5px 8px;
  border:1px solid #dce2e9;
  border-radius:999px;
  background:#fff;
  color:#4c5968;
  font-size:11px;
}
#resourcePlanningApp .resource-planning-load-status { min-height:16px; font-size:11px; }
#resourcePlanningApp .resource-planning-mobile-list-card { display:none; }
#resourcePlanningApp.resource-planning-no-panel .resource-planning-workspace { grid-template-columns:minmax(0,1fr); }
#resourcePlanningApp .resource-planning-panel-close,
#resourcePlanningApp .resource-planning-editor-close {
  width:34px;
  height:34px;
  min-width:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d9dfe7;
  border-radius:50%;
  background:#fff;
  color:#202a36;
  font-size:23px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}
#resourcePlanningApp .resource-planning-panel-close:hover,
#resourcePlanningApp .resource-planning-editor-close:hover { border-color:#d71920; color:#b4151b; }
#resourcePlanningApp .resource-planning-selected-actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding-top:9px;
  border-top:1px solid #e2e7ed;
}
#resourcePlanningApp .resource-planning-selected-actions .btn {
  min-height:34px;
  padding:6px 8px;
  font-size:11px;
}
#resourcePlanningApp .resource-planning-selected-actions .btn:last-child { grid-column:1 / -1; }
#resourcePlanningApp .resource-planning-row-track { cursor:crosshair; }
#resourcePlanningApp .resource-planning-bar { cursor:pointer; }
#resourcePlanningApp .resource-planning-forms { display:none !important; }
#resourcePlanningApp .resource-planning-forms.open {
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex !important;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(15,23,42,.48);
}
#resourcePlanningApp .resource-planning-forms.open > #resourceAssignmentFormCard,
#resourcePlanningApp .resource-planning-forms.open > #resourceTransferFormCard,
#resourcePlanningApp .resource-planning-forms.open > .resource-planning-form-row { display:none; }
#resourcePlanningApp .resource-planning-forms[data-mode="assignment"] > #resourceAssignmentFormCard,
#resourcePlanningApp .resource-planning-forms[data-mode="transfer"] > #resourceTransferFormCard,
#resourcePlanningApp .resource-planning-forms[data-mode="need"] > .resource-planning-form-row { display:block; }
#resourcePlanningApp .resource-planning-forms[data-mode="need"] #resourceNeedFormCard { display:block; }
#resourcePlanningApp .resource-planning-forms.open .resource-planning-machine-master-card { display:none; }
#resourcePlanningApp .resource-planning-forms.open #resourceAssignmentFormCard,
#resourcePlanningApp .resource-planning-forms.open #resourceTransferFormCard,
#resourcePlanningApp .resource-planning-forms.open #resourceNeedFormCard {
  width:min(760px,100%);
  max-height:calc(100dvh - 48px);
  overflow:auto;
  margin:0;
  border-radius:8px;
  box-shadow:0 20px 54px rgba(15,23,42,.3);
}
#resourcePlanningApp .resource-planning-forms.open .resource-planning-form-actions {
  position:sticky;
  bottom:-14px;
  z-index:2;
  margin:12px -14px -14px;
  padding:10px 14px;
  border-top:1px solid #dfe4ea;
  background:#fff;
}

@media (max-width: 1100px) {
  #resourcePlanningApp .resource-planning-primarybar {
    grid-template-columns:auto minmax(200px,1fr) auto;
  }
  #resourcePlanningApp .resource-planning-primary-actions { grid-column:1 / -1; }
  #resourcePlanningApp .resource-planning-filter-panel { grid-template-columns:1fr 1fr; }
}

@media (max-width: 820px) {
  #resourcePlanningApp { padding-bottom:106px; }
  #resourcePlanningApp .resource-planning-commandbar {
    position:relative;
    padding:10px;
    border-radius:8px;
  }
  #resourcePlanningApp .resource-planning-primarybar {
    grid-template-columns:1fr 1fr auto;
    align-items:end;
    gap:8px;
  }
  #resourcePlanningApp .resource-planning-view,
  #resourcePlanningApp .resource-planning-primarybar > div:nth-child(2) { grid-column:1 / -1; }
  #resourcePlanningApp .resource-planning-primary-actions { display:contents; }
  #resourcePlanningApp .resource-planning-primary-actions > .btn,
  #resourcePlanningApp .resource-planning-filter-toggle,
  #resourcePlanningApp .resource-planning-more-menu summary {
    width:100%;
    min-height:42px;
    padding:8px 10px;
    font-size:12px;
  }
  #resourcePlanningApp .resource-planning-more-menu-panel {
    position:fixed;
    z-index:11000;
    top:auto;
    right:10px;
    bottom:92px;
    left:10px;
    width:auto;
    padding:8px;
  }
  #resourcePlanningApp .resource-planning-filter-panel {
    grid-template-columns:1fr;
    padding:9px;
  }
  #resourcePlanningApp .resource-planning-active-filters { margin:0 -2px; }
  #resourcePlanningApp .resource-planning-kpi-section {
    display:block !important;
    margin:0 0 10px;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  #resourcePlanningApp .resource-planning-kpis {
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding:1px 1px 4px;
    scrollbar-width:none;
  }
  #resourcePlanningApp .resource-planning-kpis::-webkit-scrollbar { display:none; }
  #resourcePlanningApp .resource-planning-kpi {
    flex:0 0 auto;
    min-width:94px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:8px 9px;
    border-radius:7px;
    box-shadow:none;
  }
  #resourcePlanningApp .resource-planning-kpi span { font-size:9px; }
  #resourcePlanningApp .resource-planning-kpi strong { margin:0; font-size:19px; }
  #resourcePlanningApp .resource-planning-workspace { display:block; }
  #resourcePlanningApp .resource-planning-timeline-card,
  #resourcePlanningApp .resource-planning-panel,
  #resourcePlanningApp .resource-planning-legend { display:none !important; }
  #resourcePlanningApp .resource-planning-mobile-list-card {
    display:block;
    margin:0;
    padding:10px;
    border-radius:8px;
  }
  #resourcePlanningApp .resource-planning-mobile-list-card .subheader {
    display:flex;
    flex-direction:row;
    align-items:center;
    margin-bottom:8px;
  }
  #resourcePlanningApp .resource-planning-mobile-list-card h2 { font-size:17px; }
  #resourcePlanningApp .resource-planning-mobile-notices {
    display:flex;
    gap:6px;
    overflow-x:auto;
    margin-bottom:8px;
  }
  #resourcePlanningApp .resource-planning-mobile-notices button {
    flex:0 0 auto;
    min-height:34px;
    border:1px solid #f0c36b;
    border-radius:7px;
    background:#fff8e8;
    color:#7a4d00;
    padding:6px 9px;
    font:inherit;
    font-size:11px;
    font-weight:850;
  }
  #resourcePlanningApp .resource-planning-mobile-notices button.conflict {
    border-color:#f1a4ab;
    background:#fff1f2;
    color:#a50f22;
  }
  #resourcePlanningApp .resource-planning-mobile-list { display:grid; gap:8px; }
  #resourcePlanningApp .resource-planning-mobile-site {
    overflow:hidden;
    border:1px solid #dfe4ea;
    border-left:4px solid #9aa5b1;
    border-radius:7px;
    background:#fff;
  }
  #resourcePlanningApp .resource-planning-mobile-site.site-manager-mt { border-left-color:#22c55e; }
  #resourcePlanningApp .resource-planning-mobile-site.site-manager-mb { border-left-color:#3b82f6; }
  #resourcePlanningApp .resource-planning-mobile-site.site-manager-pg { border-left-color:#f97316; }
  #resourcePlanningApp .resource-planning-mobile-site-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:9px 10px;
    border-bottom:1px solid #e7ebf0;
    background:#f7f8fa;
  }
  #resourcePlanningApp .resource-planning-mobile-site-head > div { min-width:0; }
  #resourcePlanningApp .resource-planning-mobile-site-head strong {
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#17202b;
    font-size:13px;
  }
  #resourcePlanningApp .resource-planning-mobile-site-head span { color:#687483; font-size:10px; font-weight:800; }
  #resourcePlanningApp .resource-planning-mobile-site-head button {
    width:32px;
    height:32px;
    min-width:32px;
    border:1px solid #d9dfe7;
    border-radius:50%;
    background:#fff;
    color:#27313d;
    font-size:21px;
    font-weight:900;
  }
  #resourcePlanningApp .resource-planning-mobile-assignments { display:grid; }
  #resourcePlanningApp .resource-planning-mobile-assignment {
    position:relative;
    min-width:0;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:2px 8px;
    padding:9px 10px;
    border:0;
    border-bottom:1px solid #edf0f4;
    background:#fff;
    color:#202a36;
    text-align:left;
    font:inherit;
  }
  #resourcePlanningApp .resource-planning-mobile-assignment:last-child { border-bottom:0; }
  #resourcePlanningApp .resource-planning-mobile-assignment.conflict { background:#fff6f7; }
  #resourcePlanningApp .resource-planning-mobile-resource-type {
    grid-row:1 / span 3;
    align-self:start;
    padding:3px 5px;
    border-radius:4px;
    background:#eef1f5;
    color:#536171;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
  }
  #resourcePlanningApp .resource-planning-mobile-assignment strong,
  #resourcePlanningApp .resource-planning-mobile-assignment span,
  #resourcePlanningApp .resource-planning-mobile-assignment small { min-width:0; overflow-wrap:anywhere; }
  #resourcePlanningApp .resource-planning-mobile-assignment strong { font-size:13px; }
  #resourcePlanningApp .resource-planning-mobile-assignment > span:not(.resource-planning-mobile-resource-type) { color:#566272; font-size:11px; }
  #resourcePlanningApp .resource-planning-mobile-assignment small { color:#778392; font-size:9px; font-weight:800; }
  #resourcePlanningApp .resource-planning-mobile-empty {
    display:grid;
    gap:4px;
    padding:18px 10px;
    color:#687483;
    text-align:center;
  }
  #resourcePlanningApp .resource-planning-mobile-empty strong { color:#25303c; }
  #resourcePlanningApp .resource-planning-forms.open {
    align-items:stretch;
    padding:0;
    background:#f4f6f8;
  }
  #resourcePlanningApp .resource-planning-forms.open #resourceAssignmentFormCard,
  #resourcePlanningApp .resource-planning-forms.open #resourceTransferFormCard,
  #resourcePlanningApp .resource-planning-forms.open #resourceNeedFormCard {
    width:100%;
    min-height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
    padding:12px;
    box-shadow:none;
  }
  #resourcePlanningApp .resource-planning-forms.open .subheader {
    position:sticky;
    top:-12px;
    z-index:3;
    display:flex;
    flex-direction:row;
    align-items:center;
    padding:10px 0;
    background:#fff;
  }
  #resourcePlanningApp .resource-planning-forms.open .resource-planning-form-actions {
    bottom:-12px;
    margin:12px -12px -12px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
  }
  #resourcePlanningApp .resource-planning-forms.open .resource-planning-form-actions > div {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  #resourcePlanningApp .resource-planning-forms.open .resource-planning-form-actions .btn:last-child { grid-column:1 / -1; }
}
  .offline-card-toggle-main { min-width:0; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .offline-card-toggle-title { color:#0f172a; font-size:13px; font-weight:950; line-height:1.15; }
  .offline-card-toggle-meta { color:#64748b; font-size:12px; font-weight:850; line-height:1.2; }
  .offline-card-toggle-badge { display:inline-flex; align-items:center; gap:6px; min-height:24px; padding:3px 8px; border-radius:999px; border:1px solid #bbf7d0; background:#f0fdf4; color:#166534; font-size:11px; font-weight:950; white-space:nowrap; }
  .offline-card-toggle-badge::before { content:""; width:7px; height:7px; border-radius:999px; background:#22c55e; }
  .offline-card-chevron { flex:0 0 auto; color:#64748b; font-size:16px; font-weight:950; transition:transform .16s ease; }
  .offline-card-body { display:none; margin-top:8px; }
  .offline-card.expanded .offline-card-body { display:block; }
  .offline-card.expanded .offline-card-chevron { transform:rotate(180deg); }
  .offline-card.warn .offline-card-toggle { border-color:#fde68a; background:#fffbeb; }
  .offline-card.warn .offline-card-toggle-badge { border-color:#fde68a; background:#fef3c7; color:#92400e; }
  .offline-card.warn .offline-card-toggle-badge::before { background:#f59e0b; }
  .offline-card.pending .offline-card-toggle { border-color:#bfdbfe; background:#eff6ff; }
  .offline-card.pending .offline-card-toggle-badge { border-color:#bfdbfe; background:#dbeafe; color:#1d4ed8; }
  .offline-card.pending .offline-card-toggle-badge::before { background:#3b82f6; }
  .offline-card.error .offline-card-toggle { border-color:#fecdd3; background:#fff1f2; }
  .offline-card.error .offline-card-toggle-badge { border-color:#fecdd3; background:#ffe4e6; color:#991b1b; }
  .offline-card.error .offline-card-toggle-badge::before { background:#ef4444; }
  .offline-inline {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:8px 10px;
    border:1px solid #dbe3ee;
    border-radius:12px;
    background:#f8fafc;
  }
  .offline-inline strong { display:block; color:#0f172a; font-size:13px; line-height:1.2; }
  .offline-inline span { display:block; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; }
  .offline-inline.warn { border-color:#fde68a; background:#fffbeb; }
  .offline-inline.warn span { color:#92400e; }
  .offline-inline.error { border-color:#fecdd3; background:#fff1f2; }
  .offline-inline.error span { color:#991b1b; }
  .offline-inline-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
  .offline-inline-actions .btn { min-height:34px; padding:6px 9px; font-size:12px; border-radius:9px; }
  .app-update-notice { position:fixed; left:16px; right:16px; top:calc(12px + env(safe-area-inset-top)); z-index:10000; display:none; align-items:center; justify-content:space-between; gap:14px; max-width:720px; margin:0 auto; padding:13px 14px; border:1px solid #bfdbfe; border-left:5px solid #2563eb; border-radius:14px; background:#eff6ff; color:#1e3a8a; box-shadow:0 16px 36px rgba(15,23,42,.2); }
  .app-update-notice.show { display:flex; }
  .app-update-notice strong { display:block; font-size:14px; margin-bottom:2px; }
  .app-update-notice span { display:block; color:#1e40af; font-size:13px; font-weight:700; line-height:1.3; }
  .app-update-notice .btn { flex:0 0 auto; background:#2563eb; color:#fff; border-color:#2563eb; }
  .pwa-install-notice { position:fixed; left:16px; right:16px; bottom:92px; z-index:9999; display:none; align-items:center; justify-content:space-between; gap:14px; max-width:680px; margin:0 auto; padding:12px 14px; border:1px solid #fed7aa; border-radius:14px; background:#fff7ed; color:#7c2d12; box-shadow:0 16px 36px rgba(15,23,42,.16); }
  .pwa-install-notice.show { display:flex; }
  .pwa-install-notice strong { display:block; font-size:14px; margin-bottom:2px; }
  .pwa-install-notice span { display:block; color:#9a3412; font-size:13px; font-weight:700; line-height:1.3; }
  .pwa-install-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .pwa-install-notice .btn { flex:0 0 auto; }
  .app-version-pill { display:inline-flex; align-items:center; min-height:28px; max-width:100%; padding:4px 9px; border:1px solid #cbd5e1; border-radius:10px; background:#f8fafc; color:#334155; font-size:12px; font-weight:900; white-space:normal; overflow-wrap:anywhere; line-height:1.25; }
  .app-maintenance-panel { margin-top:14px; padding-top:14px; border-top:1px solid #e2e8f0; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
  .app-maintenance-panel strong { display:block; color:#0f172a; font-size:15px; margin-bottom:3px; }
  .app-maintenance-panel span { display:block; color:#64748b; font-size:13px; font-weight:800; line-height:1.35; }
  .app-maintenance-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
  .offline-summary { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:#475569; font-size:13px; font-weight:800; }
  .offline-summary #reportDraftStatus { flex:1 1 220px; min-width:180px; }
  .offline-health-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin:10px 0; }
  .offline-health-tile { min-height:74px; padding:10px; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; }
  .offline-health-tile strong { display:block; color:#0f172a; font-size:13px; margin-bottom:3px; }
  .offline-health-tile span { display:block; color:#64748b; font-size:12px; font-weight:800; line-height:1.3; }
  .offline-health-tile.good { border-color:#bbf7d0; background:#f0fdf4; }
  .offline-health-tile.good span { color:#166534; }
  .offline-health-tile.warn { border-color:#fde68a; background:#fffbeb; }
  .offline-health-tile.warn span { color:#92400e; }
  .offline-health-tile.error { border-color:#fecdd3; background:#fff1f2; }
  .offline-health-tile.error span { color:#991b1b; }
  .offline-section-title { margin:12px 0 6px; color:#334155; font-size:13px; font-weight:900; }
  .offline-details { display:none; margin-top:8px; padding:10px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; }
  .offline-details.show { display:block; }
  .offline-detail-toggle { min-height:34px !important; padding:6px 9px !important; font-size:12px !important; border-radius:9px !important; }
  .offline-draft-list { display:grid; gap:8px; margin-top:8px; }
  .offline-draft-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .offline-queue-list { display:grid; gap:8px; margin-top:10px; }
  .offline-queue-item { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:9px 10px; border:1px solid #dbe3ee; border-radius:10px; background:#f8fafc; font-size:13px; }
  .offline-queue-item.error { border-color:#fecdd3; background:#fff1f2; }
  .offline-queue-item.sent { border-color:#bbf7d0; background:#f0fdf4; }
  .offline-queue-item.warn { border-color:#fde68a; background:#fffbeb; }
  .offline-queue-item strong { display:block; color:#0f172a; margin-bottom:2px; }
  .offline-queue-item span { color:#64748b; font-weight:800; }
  .offline-queue-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
  .offline-queue-actions .btn { min-height:32px; padding:5px 8px; font-size:12px; }
  .stats-repair-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .stats-repair-actions strong { color:#0f172a; }
  .card { min-width:0; background:var(--card); border:1px solid #e2e8f0; border-radius:16px; padding:16px; margin-bottom:16px; box-shadow:0 1px 3px rgba(15,23,42,.08); }
  .card h2 { margin:0 0 12px 0; font-size:20px; }
  .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
  .report-type-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; }
  .report-type-option { width:100%; min-height:54px; text-align:left; border:1px solid #cbd5e1; border-radius:12px; padding:12px; background:#f8fafc; color:#0f172a; cursor:pointer; }
  .report-type-option strong { display:block; font-size:15px; }
  .report-type-option span { display:block; color:#64748b; font-size:13px; font-weight:700; line-height:1.35; }
  .report-type-option.active { border-color:#0f172a; background:#e0f2fe; box-shadow:inset 0 0 0 1px #0f172a; }
  .report-type-status { margin-top:8px; color:#64748b; font-size:13px; font-weight:800; }
  .report-type-hidden { display:none !important; }
  label { display:block; font-size:13px; font-weight:700; color:#334155; margin-bottom:5px; }
  input, select, textarea { width:100%; min-height:42px; padding:9px; border:1px solid #cbd5e1; border-radius:9px; font-size:14px; background:#fff; color:#0f172a; box-shadow:none; }
  input:focus, select:focus, textarea:focus { outline:2px solid rgba(14,116,144,.18); outline-offset:1px; border-color:#94a3b8; background:#fff; box-shadow:none; }
  input:-webkit-autofill, select:-webkit-autofill, textarea:-webkit-autofill { -webkit-box-shadow:0 0 0 1000px #fff inset !important; -webkit-text-fill-color:#0f172a !important; caret-color:#0f172a; }
  textarea { min-height:80px; resize:vertical; }
  .line { display:grid; grid-template-columns:repeat(auto-fit,minmax(115px,1fr)); gap:8px; border:1px solid #e2e8f0; border-radius:12px; padding:10px; margin-bottom:10px; background:#fff; }
  .subheader { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
  .subheader h2 { margin:0; }
  .calc { background:#f1f5f9; font-weight:700; }
  .smallnote { color:#64748b; font-size:13px; margin-top:-6px; }
  .quote-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr); gap:16px; align-items:start; }
  .quote-main-panel,
  .quote-side-panel { display:grid; gap:16px; min-width:0; }
  .quote-kpi-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .quote-kpi { min-height:74px; border:1px solid #dbe3ee; border-radius:12px; padding:11px; background:#f8fafc; }
  .quote-kpi strong { display:block; color:#0f172a; font-size:22px; line-height:1.1; }
  .quote-kpi span { display:block; margin-top:4px; color:#64748b; font-size:12px; font-weight:900; text-transform:uppercase; }
  .quote-status-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
  .quote-chip { display:inline-flex; align-items:center; min-height:24px; padding:3px 8px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:12px; font-weight:900; }
  .quote-chip.draft { background:#e2e8f0; color:#334155; }
  .quote-chip.visited { background:#dbeafe; color:#1d4ed8; }
  .quote-chip.offered { background:#fef3c7; color:#92400e; }
  .quote-chip.sent { background:#dcfce7; color:#166534; }
  .quote-chip.accepted { background:#dcfce7; color:#166534; }
  .quote-chip.rejected { background:#fee2e2; color:#991b1b; }
  .quote-chip.archived { background:#f1f5f9; color:#475569; }
  .quote-chip.high,
  .quote-chip.urgent { background:#fee2e2; color:#991b1b; }
  .quote-chip.pending { background:#e2e8f0; color:#334155; }
  .quote-chip.in_progress { background:#dbeafe; color:#1d4ed8; }
  .quote-chip.done { background:#dcfce7; color:#166534; }
  .quote-chip.active { background:#dbeafe; color:#1d4ed8; }
  .quote-chip.planned { background:#fef3c7; color:#92400e; }
  .quote-chip.completed { background:#f1f5f9; color:#475569; }
  .quote-chip.overdue { background:#fee2e2; color:#991b1b; }
  .quote-chip.due_soon { background:#fef3c7; color:#92400e; }
  .quote-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
  .quote-form-grid .wide-field { grid-column:1 / -1; }
  .quote-item-builder { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:9px; align-items:end; }
  .quote-item-builder .wide-field { grid-column:1 / -1; }
  .quote-item-list,
  .quote-file-list,
  .quote-contact-list,
  .quote-visit-list { display:grid; gap:9px; min-width:0; }
  .quote-item-card,
  .quote-file-card,
  .quote-contact-card,
  .quote-visit-card { border:1px solid #dbe3ee; border-radius:12px; padding:11px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.07); min-width:0; }
  .quote-visit-card { width:100%; text-align:left; cursor:pointer; display:grid; gap:7px; color:#0f172a; font:inherit; }
  .quote-visit-card:focus { outline:2px solid rgba(227,6,19,.28); outline-offset:2px; }
  .quote-visit-card.active { border-color:var(--pmb-red); box-shadow:0 0 0 3px rgba(227,6,19,.12); }
  .quote-visit-card.overdue { border-color:#fca5a5; background:#fff7f7; }
  .quote-visit-card.due-soon { border-color:#fde68a; background:#fffbeb; }
  .quote-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; min-width:0; }
  .quote-card-title { min-width:0; font-weight:900; color:#0f172a; line-height:1.25; overflow-wrap:anywhere; }
  .quote-card-meta { color:#64748b; font-size:12px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .quote-card-text { margin-top:4px; color:#475569; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
  .quote-card-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .quote-file-card { display:grid; grid-template-columns:54px minmax(0,1fr); align-items:center; gap:10px; }
  .quote-file-card.image-file { grid-template-columns:minmax(120px,180px) minmax(0,1fr); align-items:start; }
  .quote-file-card .quote-card-actions { grid-column:1 / -1; }
  .quote-file-thumb { width:54px; height:54px; border-radius:10px; border:1px solid #dbe3ee; background:#f8fafc; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#64748b; font-weight:900; font-size:12px; }
  .quote-file-card.image-file .quote-file-thumb { width:100%; height:auto; aspect-ratio:4 / 3; }
  .quote-file-thumb img { width:100%; height:100%; object-fit:contain; background:#fff; image-orientation:from-image; }
  .quote-handwriting-panel { display:grid; gap:10px; }
  .quote-handwriting-tools { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
  .quote-handwriting-tools .btn.active { background:var(--pmb-red); border-color:var(--pmb-red); color:#fff; }
  .quote-handwriting-size { display:flex; gap:6px; align-items:center; min-width:150px; color:#475569; font-size:12px; font-weight:900; }
  .quote-handwriting-size input { min-height:32px; padding:0; }
  .quote-handwriting-card { grid-column:1 / -1; width:min(1120px,100%); justify-self:center; }
  .quote-handwriting-canvas-wrap { max-height:min(72dvh,680px); min-height:430px; border:1px solid #cbd5e1; border-radius:12px; background:#f8fafc; overflow:auto; overscroll-behavior:contain; padding:12px; box-shadow:inset 0 0 0 1px rgba(148,163,184,.18); }
  .quote-handwriting-paper { width:min(980px,100%); min-height:1120px; margin:0 auto; background-color:#fff; background-image:linear-gradient(#e2e8f0 1px, transparent 1px), linear-gradient(90deg, #e2e8f0 1px, transparent 1px); background-size:24px 24px; box-shadow:0 10px 30px rgba(15,23,42,.12); }
  .quote-handwriting-canvas { display:block; width:100%; height:1120px; background:transparent; touch-action:none; cursor:crosshair; }
  .quote-handwriting-caption { display:grid; gap:6px; }
  .quote-mobile-workbar { display:none; }
  .quote-mobile-stepper { display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
  .quote-mobile-stepper::-webkit-scrollbar { display:none; }
  .quote-mobile-step { flex:1 0 auto; min-height:40px; border:1px solid #dbe3ee; border-radius:999px; padding:7px 10px; background:#fff; color:#334155; font-size:12px; font-weight:950; white-space:nowrap; cursor:pointer; }
  .quote-mobile-step.active { border-color:#e30613; background:#fff5f5; color:#991b1b; box-shadow:0 0 0 3px rgba(227,6,19,.08); }
  .quote-mobile-action-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:7px; }
  .quote-mobile-action-row .btn { min-width:0; padding:8px 7px; font-size:12.5px; line-height:1.1; }
  .quote-section-kicker { display:none; color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .quote-field-open-button { min-height:32px; border:1px solid #dbe3ee; border-radius:999px; padding:5px 9px; background:#f8fafc; color:#334155; font-size:11.5px; font-weight:900; cursor:pointer; }
  .quote-field-open-button:hover { border-color:#94a3b8; background:#fff; }
  .quote-mobile-file-primary { display:none; }
  .quote-archive-chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
  .quote-archive-chip { min-height:34px; border:1px solid #dbe3ee; border-radius:999px; padding:6px 11px; background:#fff; color:#334155; font-size:12px; font-weight:950; cursor:pointer; }
  .quote-archive-chip.active { border-color:#e30613; background:#fff5f5; color:#991b1b; box-shadow:0 0 0 3px rgba(227,6,19,.08); }
  .quote-visit-card-main { display:grid; gap:5px; min-width:0; }
  .quote-visit-card-topline { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
  .quote-visit-card .quote-card-actions { justify-content:stretch; }
  .quote-visit-card .quote-card-actions .btn { flex:1 1 110px; min-height:36px; padding:7px 10px; font-size:12.5px; }
  .quote-preview-overlay,
  .quote-fullscreen-editor-overlay { position:fixed; inset:0; z-index:9800; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.55); }
  .quote-preview-dialog,
  .quote-fullscreen-editor { width:min(720px,100%); max-height:calc(100dvh - 36px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:12px; border:1px solid #dbe3ee; border-radius:14px; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.28); overflow:hidden; }
  .quote-preview-head,
  .quote-fullscreen-editor-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:14px; border-bottom:1px solid #e2e8f0; }
  .quote-preview-head h3,
  .quote-fullscreen-editor-head h3 { margin:0; color:#0f172a; font-size:20px; line-height:1.15; overflow-wrap:anywhere; }
  .quote-preview-body,
  .quote-fullscreen-editor-body { overflow:auto; padding:0 14px; display:grid; gap:10px; }
  .quote-preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; }
  .quote-preview-fact { border:1px solid #e2e8f0; border-radius:9px; padding:9px; background:#f8fafc; }
  .quote-preview-fact strong { display:block; color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .quote-preview-fact span { display:block; margin-top:3px; color:#0f172a; font-size:13px; font-weight:800; line-height:1.3; overflow-wrap:anywhere; }
  .quote-preview-text { white-space:pre-wrap; border:1px solid #e2e8f0; border-radius:9px; padding:10px; background:#f8fafc; color:#334155; font-size:13px; font-weight:700; line-height:1.4; }
  .quote-preview-actions,
  .quote-fullscreen-editor-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; padding:14px; border-top:1px solid #e2e8f0; background:#fff; }
  .quote-fullscreen-editor textarea { width:100%; min-height:min(56dvh,520px); resize:vertical; font-size:16px; line-height:1.45; }
  .site-management-next-action { display:grid; gap:8px; border:1px solid #dbe3ee; border-left:5px solid #64748b; border-radius:12px; background:#fff; padding:11px 12px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-next-action.attention { border-left-color:#e30613; background:#fff7f7; }
  .site-management-next-action.ready { border-left-color:#16a34a; background:#f7fef9; }
  .site-management-next-action strong { color:#0f172a; font-size:14px; line-height:1.2; }
  .site-management-next-action span { color:#64748b; font-size:12px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-next-action .btn { justify-self:start; min-height:34px; padding:6px 10px; font-size:12px; }
  .site-management-contact-actions { display:flex; flex-wrap:wrap; gap:7px; }
  .site-management-contact-button { min-height:34px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #dbe3ee; border-radius:999px; padding:6px 11px; background:#fff; color:#0f172a; font-size:12px; font-weight:950; text-decoration:none; }
  .site-management-contact-button:hover { border-color:#94a3b8; background:#f8fafc; }
  .site-management-filters { display:grid; grid-template-columns:minmax(160px,220px) minmax(150px,190px) minmax(220px,1fr); gap:8px; align-items:end; }
  .site-management-filters label { margin:0; }
  .site-form-details { overflow:hidden; }
  .site-form-details summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; margin:-16px -16px 0; padding:16px; border-radius:16px 16px 0 0; background:#fff; color:#0f172a; font-weight:900; }
  .site-form-details summary::-webkit-details-marker { display:none; }
  .site-form-details summary::after { content:""; width:10px; height:10px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg); transition:transform .15s ease; flex:0 0 auto; }
  .site-form-details[open] summary::after { transform:rotate(225deg); }
  .site-form-details-body { padding-top:14px; }
  .site-management-overlay { position:fixed; inset:0; z-index:9000; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(15,23,42,.5); overscroll-behavior:contain; }
  .site-management-dialog { width:min(1180px,100%); max-height:calc(100dvh - 40px); display:grid; grid-template-rows:auto auto minmax(0,1fr); overflow:hidden; border-radius:16px; background:#f8fafc; border:1px solid #dbe3ee; box-shadow:0 24px 70px rgba(15,23,42,.28); }
  .site-management-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; padding:16px; background:#fff; border-bottom:1px solid #e2e8f0; }
  .site-management-head h2 { margin:0; font-size:24px; line-height:1.12; color:#0f172a; }
  .site-management-subtitle { margin-top:4px; color:#64748b; font-weight:800; line-height:1.35; }
  .site-management-tabs { display:flex; gap:6px; overflow-x:auto; padding:10px 16px; background:#fff; border-bottom:1px solid #e2e8f0; }
  .site-management-tabs button { flex:0 0 auto; min-height:38px; border:1px solid transparent; border-radius:8px; padding:8px 12px; background:#fff; color:#334155; font-weight:900; cursor:pointer; }
  .site-management-tabs button.active { background:#fff5f5; border-color:#fecaca; color:#991b1b; box-shadow:inset 0 -3px 0 var(--pmb-red); }
  .site-management-tabs.tile-mode-tabs-hidden { display:none; }
  .site-management-body { overflow:auto; padding:16px; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .site-management-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; }
  .site-management-overview-grid { margin-top:10px; }
  .site-management-info-card,
  .site-management-panel,
  .site-management-item { border:1px solid #dbe3ee; border-radius:10px; padding:10px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); min-width:0; }
  .site-management-info-card strong { display:block; margin-bottom:3px; color:#0f172a; font-size:12px; line-height:1.25; }
  .site-management-info-card span { color:#64748b; font-size:13px; font-weight:700; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-info-card.is-note { grid-column:1 / -1; }
  .site-management-info-card.is-note span { display:block; max-height:145px; overflow:auto; white-space:pre-wrap; background:#f8fafc; border-radius:8px; padding:8px; color:#475569; font-size:12px; font-weight:650; line-height:1.45; }
  .site-management-panel { display:grid; gap:12px; margin-bottom:14px; }
  .site-management-panel h3 { margin:0; color:#0f172a; font-size:17px; }
  .site-management-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:9px; align-items:end; }
  .site-management-form-grid .wide-field { grid-column:1 / -1; }
  .site-management-list { display:grid; gap:10px; }
  .site-management-item { display:grid; gap:8px; }
  .site-management-item-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
  .site-management-item-title { font-weight:900; color:#0f172a; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-meta { color:#64748b; font-size:12px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-text { color:#475569; font-size:13px; line-height:1.4; white-space:pre-wrap; overflow-wrap:anywhere; }
  .site-management-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .site-management-note-list-head { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:10px; }
  .site-management-note-list-head h3 { margin:0; color:#0f172a; font-size:17px; line-height:1.2; }
  .site-management-note-editor { min-height:min(620px,calc(100dvh - 220px)); align-content:start; }
  .site-management-note-editor .site-management-form-grid { grid-template-columns:minmax(130px,180px) minmax(150px,220px) minmax(0,1fr); align-items:end; }
  .site-management-note-editor-text { display:grid; gap:8px; align-items:start; }
  .site-management-note-color-toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .site-management-note-color-button { min-height:38px; border:1px solid #d7dcde; border-radius:9px; padding:8px 12px; background:#fff; color:#0f172a; font-size:13px; font-weight:900; cursor:pointer; }
  .site-management-note-color-button.active { border-color:#0f172a; box-shadow:inset 0 -3px 0 #0f172a; }
  .site-management-note-color-button.is-red { color:#991b1b; border-color:#fecaca; background:#fff5f5; }
  .site-management-note-color-button.is-red.active { border-color:#b91c1c; box-shadow:inset 0 -3px 0 #b91c1c; }
  .site-management-note-rich-editor { min-height:clamp(280px,48dvh,520px); border:1px solid #cbd5e1; border-radius:10px; padding:12px; background:#fff; color:#0f172a; font-size:16px; font-weight:700; line-height:1.5; overflow:auto; white-space:pre-wrap; outline:none; }
  .site-management-note-rich-editor:focus { border-color:#94a3b8; box-shadow:0 0 0 3px rgba(148,163,184,.22); }
  .site-management-note-rich-editor:empty::before { content:attr(data-placeholder); color:#94a3b8; font-weight:700; }
  .site-management-note-editor-actions { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; padding-top:10px; background:linear-gradient(rgba(255,255,255,0),#fff 24%); }
  .site-management-note-text-red { color:#b91c1c !important; font-weight:780; }
  .site-management-section-title { margin:12px 0 6px; display:flex; align-items:center; justify-content:space-between; gap:8px; color:#0f172a; font-size:14px; font-weight:950; }
  .site-management-status-pill { display:inline-flex; align-items:center; min-height:24px; padding:3px 8px; border-radius:999px; font-size:11px; font-weight:950; white-space:nowrap; }
  .site-management-status-pill.open { background:#fee2e2; color:#991b1b; }
  .site-management-status-pill.in_progress { background:#fef3c7; color:#92400e; }
  .site-management-status-pill.done { background:#dcfce7; color:#166534; }
  .site-management-status-pill.draft { background:#e2e8f0; color:#334155; }
  .site-management-status-pill.checked { background:#dbeafe; color:#1d4ed8; }
  .site-management-status-pill.billed { background:#dcfce7; color:#166534; }
  .site-management-status-pill.overdue { background:#991b1b; color:#fff; }
  .site-management-status-pill.due_today { background:#facc15; color:#713f12; }
  .site-management-status-pill.priority-low { background:#e2e8f0; color:#334155; }
  .site-management-status-pill.priority-normal { background:#dbeafe; color:#1d4ed8; }
  .site-management-status-pill.priority-high { background:#ffedd5; color:#9a3412; }
  .site-management-status-pill.priority-urgent { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
  .site-management-item.overdue { border-color:#fca5a5; background:#fff7f7; }
  .site-management-item.due-today { border-color:#facc15; background:#fffbeb; }
  .site-management-item.priority-urgent:not(.done) { border-color:#fca5a5; box-shadow:0 0 0 3px rgba(252,165,165,.14); }
  .site-management-item.priority-high:not(.done) { border-color:#fed7aa; }
  .site-management-item.done { background:#f8fafc; opacity:.92; }
  .site-management-measurement-tools { display:flex; justify-content:space-between; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
  .site-management-measurement-table-wrap { overflow:auto; border:1px solid #dbe3ee; border-radius:12px; background:#fff; }
  .site-management-measurement-table { width:100%; min-width:920px; border-collapse:collapse; font-size:13px; }
  .site-management-measurement-table th,
  .site-management-measurement-table td { border-bottom:1px solid #e2e8f0; padding:8px 9px; text-align:left; vertical-align:top; }
  .site-management-measurement-table th { background:#f8fafc; color:#334155; font-size:12px; font-weight:950; }
  .site-management-measurement-table td.num,
  .site-management-measurement-table th.num { text-align:right; white-space:nowrap; }
  .site-management-measurement-photo-cell { min-width:165px; max-width:230px; }
  .site-management-measurement-photos { display:grid; grid-template-columns:repeat(auto-fit,minmax(64px,1fr)); gap:6px; max-width:220px; margin-bottom:7px; }
  .site-management-measurement-photo { position:relative; display:block; min-height:70px; border:1px solid #dbe3ee; border-radius:9px; overflow:hidden; background:#fff; }
  .site-management-measurement-photo img { display:block; width:100%; height:76px; object-fit:contain; background:#fff; }
  .site-management-measurement-photo span { display:block; padding:4px 5px; color:#475569; font-size:10.5px; font-weight:800; line-height:1.2; overflow-wrap:anywhere; }
  .site-management-measurement-photo-upload { display:grid; gap:6px; }
  .site-management-measurement-photo-upload input { min-height:38px; padding:7px; font-size:12px; }
  .site-management-measurement-photo-upload .btn { width:100%; min-height:38px; padding:8px 10px; font-size:12px; }
  .site-management-measurement-card-list { display:none; gap:10px; }
  .site-management-measurement-card { display:grid; gap:10px; border:1px solid #dbe3ee; border-radius:14px; background:#fff; padding:12px; box-shadow:0 8px 20px rgba(15,23,42,.08); }
  .site-management-measurement-card-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; }
  .site-management-measurement-card-head strong { color:#0f172a; font-size:15px; line-height:1.22; overflow-wrap:anywhere; }
  .site-management-measurement-card-kpi { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:5px 9px; border-radius:999px; background:#f8fafc; border:1px solid #dbe3ee; color:#0f172a; font-size:12px; font-weight:950; white-space:nowrap; }
  .site-management-measurement-card-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .site-management-measurement-card-fact { display:grid; gap:2px; min-width:0; padding:8px; border-radius:10px; background:#f8fafc; border:1px solid #e2e8f0; }
  .site-management-measurement-card-fact span { color:#64748b; font-size:10.5px; font-weight:950; text-transform:uppercase; line-height:1.15; }
  .site-management-measurement-card-fact strong { color:#0f172a; font-size:13px; font-weight:850; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-measurement-card .site-management-actions { justify-content:stretch; }
  .site-management-measurement-card .site-management-actions .btn { flex:1 1 130px; }
  .site-management-measurement-form-panel > summary { cursor:pointer; list-style:none; font-weight:900; font-size:17px; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:36px; }
  .site-management-measurement-form-panel > summary::-webkit-details-marker { display:none; }
  .site-management-measurement-form-panel > summary::after { content:"+"; width:32px; height:32px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:var(--chip); border:1px solid var(--border); color:var(--text); font-size:22px; line-height:1; flex:0 0 auto; }
  .site-management-measurement-form-panel[open] > summary::after { content:"-"; }
  .site-management-measurement-form-panel > summary + .site-management-form-grid { margin-top:12px; }
  .site-card-more-actions { display:none; }
  .site-card-more-actions summary { list-style:none; cursor:pointer; min-height:42px; border-radius:10px; border:1px solid #d8d2c4; background:var(--pmb-sand); color:#151515; font-weight:900; display:flex; align-items:center; justify-content:center; padding:0 12px; }
  .site-card-more-actions summary::-webkit-details-marker { display:none; }
  .site-card-more-actions summary::after { content:"+"; margin-left:8px; font-size:18px; line-height:1; }
  .site-card-more-actions[open] summary::after { content:"-"; }
  .site-card-more-actions-body { display:grid; gap:8px; margin-top:8px; }
  #sitesApp .site-list-toolbar .btn,
  #sitesApp .site-card-actions .btn,
  .site-management-dialog .site-management-actions .btn,
  .site-management-dialog .site-card-actions .btn,
  .site-management-folder-actions .btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:38px;
    padding:8px 12px;
    border:1px solid #dbe3ee;
    border-radius:9px;
    box-shadow:0 1px 2px rgba(15,23,42,.05);
    font-size:13px;
    font-weight:900;
    line-height:1.15;
    white-space:nowrap;
    transition:background .14s ease, border-color .14s ease, box-shadow .14s ease, transform .14s ease;
  }
  #sitesApp .site-card-actions .btn:not(.secondary):not(.ghost):not(.danger):not(.warning),
  .site-management-dialog .site-management-actions .btn:not(.secondary):not(.ghost):not(.danger):not(.warning),
  .site-management-dialog .site-card-actions .btn:not(.secondary):not(.ghost):not(.danger):not(.warning),
  .site-management-folder-actions .btn:not(.secondary):not(.ghost):not(.danger):not(.warning) {
    background:#242424;
    border-color:#242424;
    color:#fff;
  }
  #sitesApp .site-list-toolbar .btn.secondary,
  #sitesApp .site-card-actions .btn.secondary,
  .site-management-dialog .site-management-actions .btn.secondary,
  .site-management-dialog .site-card-actions .btn.secondary,
  .site-management-folder-actions .btn.secondary {
    background:#fff;
    border-color:#d7dcde;
    color:#0f172a;
  }
  #sitesApp .site-card-actions .btn.danger,
  .site-management-dialog .site-management-actions .btn.danger,
  .site-management-dialog .site-card-actions .btn.danger {
    background:#fff7f7;
    border-color:#fecaca;
    color:#991b1b;
  }
  #sitesApp .site-list-toolbar .btn:hover,
  #sitesApp .site-card-actions .btn:hover,
  .site-management-dialog .site-management-actions .btn:hover,
  .site-management-dialog .site-card-actions .btn:hover,
  .site-management-folder-actions .btn:hover {
    border-color:#94a3b8;
    box-shadow:0 3px 9px rgba(15,23,42,.11);
    transform:translateY(-1px);
  }
  #sitesApp .site-list-toolbar .btn:focus-visible,
  #sitesApp .site-card-actions .btn:focus-visible,
  .site-management-dialog .site-management-actions .btn:focus-visible,
  .site-management-dialog .site-card-actions .btn:focus-visible,
  .site-management-folder-actions .btn:focus-visible,
  .site-card-more-actions summary:focus-visible {
    outline:none;
    box-shadow:0 0 0 3px rgba(148,163,184,.28);
  }
  #sitesApp .site-list-toolbar .btn:disabled,
  #sitesApp .site-card-actions .btn:disabled,
  .site-management-dialog .site-management-actions .btn:disabled,
  .site-management-dialog .site-card-actions .btn:disabled,
  .site-management-folder-actions .btn:disabled {
    transform:none;
    box-shadow:none;
  }
  .site-card-more-actions summary {
    min-height:38px;
    border-color:#d7dcde;
    background:#fff;
    color:#0f172a;
    box-shadow:0 1px 2px rgba(15,23,42,.05);
    font-size:13px;
  }
  .time-today-shortcut { display:none; }
  .mobile-more-menu-section { display:none; }
  .mobile-more-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(124px,1fr)); gap:10px; }
  .mobile-more-tile { position:relative; min-height:112px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; color:var(--text); box-shadow:0 9px 22px rgba(36,36,36,.08); padding:12px 9px; display:grid; justify-items:center; align-content:center; gap:8px; text-align:center; cursor:pointer; }
  .mobile-more-tile .home-tile-icon { width:46px; height:46px; border-radius:10px; }
  .mobile-more-tile strong { font-size:13px; line-height:1.15; overflow-wrap:anywhere; }
  .mobile-more-tile span { color:#64748b; font-size:11px; font-weight:800; line-height:1.15; }
  .site-management-defect-toolbar { display:flex; gap:8px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:10px; }
  .site-management-defect-filter { display:flex; gap:8px; align-items:center; flex-wrap:wrap; width:100%; padding:8px 10px; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:10px; }
  .site-management-defect-filter .filter-tag { font-size:11.5px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; color:#64748b; }
  .site-management-defect-filter label { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:800; color:#475569; }
  .site-management-defect-filter select, .site-management-defect-filter input[type="date"] { width:auto; padding:7px 9px; min-height:38px; border:1px solid #cdd5df; border-radius:8px; background:#fff; font-size:13px; color:var(--pmb-anthracite); }
  .site-management-defect-filter select { min-width:150px; }
  .site-management-task-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; margin-bottom:10px; }
  .site-management-task-kpi { border:1px solid #dbe3ee; border-radius:10px; background:#fff; padding:9px 10px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-task-kpi strong { display:block; color:#0f172a; font-size:22px; line-height:1; }
  .site-management-task-kpi span { display:block; margin-top:5px; color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.15; }
  .site-management-task-kpi.attention { border-color:#fecaca; background:#fff7f7; }
  .site-management-task-kpi.warning { border-color:#fde68a; background:#fffbeb; }
  .site-management-task-board { display:grid; gap:10px; }
  .site-management-task-board .site-management-folder-body { padding-left:12px; }
  .site-management-task-card-meta { display:flex; flex-wrap:wrap; gap:6px; align-items:center; color:#64748b; font-size:12px; font-weight:850; line-height:1.25; }
  .site-management-task-assignee { display:inline-flex; align-items:center; gap:5px; min-height:24px; border:1px solid #cbd5e1; border-radius:999px; padding:3px 8px; background:#f8fafc; color:#334155; font-size:11px; font-weight:950; line-height:1; }
  .site-management-task-assignee.mine { border-color:#bbf7d0; background:#f0fdf4; color:#166534; }
  .site-management-task-empty-assignee { border-color:#fde68a; background:#fffbeb; color:#92400e; }
  .site-management-task-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
  .site-management-task-actions .btn { min-height:34px; padding:6px 10px; font-size:12px; border-radius:8px; }
  .site-management-defect-compact-details { display:none; }
  .site-management-defect-form-toggle,
  .site-management-defect-filter-toggle { margin-bottom:10px; }
  .site-management-defect-filter-toggle .site-management-folder-count { margin-left:auto; }
  @media (max-width: 720px) { .site-management-defect-filter { flex-direction:column; align-items:stretch; } .site-management-defect-filter label, .site-management-defect-filter select, .site-management-defect-filter input[type="date"], .site-management-defect-filter button { width:100%; } }
  .site-management-defect-select { display:flex; align-items:flex-start; gap:9px; min-width:0; }
  .site-management-defect-select input { width:20px; height:20px; min-height:0; margin-top:1px; padding:0; accent-color:var(--pmb-red); flex:0 0 auto; }
  .site-management-defect-select label { margin:0; font-weight:900; color:#0f172a; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-defect-photos { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,200px)); gap:8px; }
  .site-management-defect-photo { position:relative; display:block; min-height:86px; border:1px solid #dbe3ee; border-radius:10px; overflow:hidden; background:#fff; }
  .site-management-defect-photo img { display:block; width:100%; height:140px; object-fit:contain; background:#fff; }
  .site-management-defect-photo span { display:block; padding:5px 7px; color:#475569; font-size:11px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-defect-photo-delete { position:absolute; top:5px; right:5px; width:26px; height:26px; border:0; border-radius:999px; background:rgba(15,23,42,.82); color:#fff; font-size:16px; font-weight:900; line-height:1; cursor:pointer; }
  .site-management-defect-photo-upload { display:grid; grid-template-columns:minmax(180px,1fr) auto; gap:8px; align-items:end; }
  .site-management-file-overview { display:grid; gap:10px; margin-bottom:14px; }
  .site-management-file-toolbar { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:8px; align-items:end; }
  .site-management-file-categories { display:flex; gap:8px; flex-wrap:wrap; }
  .site-management-file-filter { border:1px solid #cbd5e1; border-radius:999px; padding:8px 12px; min-height:38px; background:#fff; color:#334155; font-weight:900; cursor:pointer; }
  .site-management-file-filter.active { background:var(--pmb-red); border-color:var(--pmb-red); color:#fff; }
  .site-management-file-group { border:1px solid #dbe3ee; border-radius:14px; background:#fff; overflow:hidden; }
  .site-management-file-group summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px; color:#0f172a; font-weight:900; }
  .site-management-file-group summary::-webkit-details-marker { display:none; }
  .site-management-file-group-count { color:#64748b; font-size:12px; font-weight:900; }
  .site-management-file-group-body { display:grid; gap:10px; padding:0 12px 12px; }
  .site-management-file-card { display:grid; grid-template-columns:72px minmax(0,1fr); gap:10px; align-items:center; }
  .site-management-file-thumb { width:72px; height:72px; border:1px solid #dbe3ee; border-radius:10px; background:#f8fafc; display:flex; align-items:center; justify-content:center; overflow:hidden; font-size:12px; font-weight:900; color:#64748b; padding:0; cursor:pointer; text-decoration:none; transition:border-color .15s ease, background .15s ease, box-shadow .15s ease; }
  .site-management-file-thumb:hover,
  .site-management-file-thumb:focus-visible { border-color:#94a3b8; background:#fff; box-shadow:0 8px 20px rgba(15,23,42,.12); outline:none; }
  .site-management-file-thumb img { width:100%; height:100%; object-fit:cover; }
  .site-management-file-icon { position:relative; width:54px; height:54px; border-radius:14px; display:grid; place-items:center; background:#fff; color:#475569; box-shadow:inset 0 0 0 1px rgba(148,163,184,.32); }
  .site-management-file-icon svg { width:34px; height:34px; stroke:currentColor; stroke-width:1.9; fill:none; stroke-linecap:round; stroke-linejoin:round; }
  .site-management-file-icon.category-plan { background:#ecfdf5; color:#0f766e; }
  .site-management-file-icon.category-schedule { background:#eff6ff; color:#1d4ed8; }
  .site-management-file-icon.category-protocol { background:#f8fafc; color:#475569; }
  .site-management-file-icon.category-sketch { background:#fefce8; color:#a16207; }
  .site-management-file-icon.category-quote { background:#fff1f2; color:#be123c; }
  .site-management-file-icon.category-supplier { background:#f5f3ff; color:#6d28d9; }
  .site-management-file-icon.category-contract { background:#f0f9ff; color:#0369a1; }
  .site-management-file-icon.category-permit { background:#f0fdf4; color:#15803d; }
  .site-management-file-badge { position:absolute; right:-6px; bottom:-5px; min-width:30px; height:18px; padding:0 5px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#e30613; color:#fff; border:2px solid #fff; font-size:8.5px; font-weight:950; line-height:1; letter-spacing:0; box-shadow:0 4px 10px rgba(15,23,42,.14); }
  .site-management-file-extra { display:flex; gap:6px; flex-wrap:wrap; margin-top:5px; }
  .site-management-doc-badge { display:inline-flex; align-items:center; min-height:22px; padding:3px 8px; border-radius:999px; border:1px solid #cbd5e1; background:#f8fafc; color:#334155; font-size:11px; font-weight:900; line-height:1; }
  .site-management-doc-badge.current { border-color:#86efac; background:#dcfce7; color:#166534; }
  .site-management-doc-badge.replaced { border-color:#fde68a; background:#fef3c7; color:#92400e; }
  .site-management-doc-badge.archived { border-color:#cbd5e1; background:#e2e8f0; color:#334155; }
  .site-management-file-edit { grid-column:1 / -1; display:grid; gap:9px; padding:10px; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; }
  .site-management-file-edit-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; align-items:end; }
  .site-pdf-markup-overlay { position:fixed; inset:0; z-index:9300; display:none; align-items:center; justify-content:center; padding:10px; background:rgba(15,23,42,.62); }
  /* Fenster ist STATISCH (feste Hoehe, nicht max-height) und nutzt den vollen Platz aus -> es
     waechst/schrumpft NICHT mehr mit der Werkzeugleiste. Flex-Spalte statt Grid: der Planbereich
     (flex:1) faengt alles ab und bleibt korrekt, egal ob die Werkzeugleiste ein-/ausgeblendet ist
     (display:none wuerde bei Grid die Zeilen-Zuordnung verschieben). */
  .site-pdf-markup-dialog { width:96vw; height:calc(100dvh - 24px); display:flex; flex-direction:column; overflow:hidden; border-radius:16px; background:#f8fafc; border:1px solid #dbe3ee; box-shadow:0 24px 70px rgba(15,23,42,.32); }
  .site-pdf-markup-dialog > * { flex:0 0 auto; }
  .site-pdf-markup-dialog > .site-pdf-markup-body { flex:1 1 auto; min-height:0; }
  .site-pdf-markup-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:14px; background:#fff; border-bottom:1px solid #e2e8f0; }
  .site-pdf-markup-head-actions { display:flex; gap:8px; align-items:flex-start; flex:0 0 auto; }
  .site-pdf-markup-tools-toggle { display:none; }
  .site-pdf-markup-head h2 { margin:0; font-size:22px; line-height:1.12; color:#0f172a; }
  .site-pdf-markup-meta { margin-top:4px; color:#64748b; font-weight:800; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
  .site-pdf-markup-toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:end; padding:10px 14px; background:#fff; border-bottom:1px solid #e2e8f0; }
  .site-pdf-markup-toolbar .btn.active { background:var(--pmb-red); color:#fff; }
  .site-pdf-markup-tool { width:46px; min-width:46px; min-height:44px; padding:8px; display:inline-flex; align-items:center; justify-content:center; }
  .site-pdf-markup-tool svg { width:21px; height:21px; stroke-width:2.2; }
  .site-pdf-markup-tool[data-tool="highlight"] svg { stroke:#ca8a04; }
  .site-pdf-markup-toolbar .btn.active[data-tool="highlight"] { background:#facc15; border-color:#eab308; color:#422006; }
  .site-pdf-markup-toolbar .btn.active[data-tool="highlight"] svg { stroke:#422006; }
  .site-pdf-markup-toolbar .btn.active[data-tool="arrow"] { background:#e30613; color:#fff; }
  .site-pdf-markup-toolbar .btn.active[data-tool="cloud"] { background:#0ea5e9; color:#fff; }
  .site-pdf-markup-toolbar .btn.active[data-tool="eraser"] { background:#0f172a; color:#fff; }
  .site-pdf-markup-toolbar .btn.active[data-tool="pan"] { background:#334155; color:#fff; }
  .site-pdf-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .site-pdf-markup-toolbar label { margin:0; font-size:11px; }
  .site-pdf-color-swatches { display:flex; gap:6px; align-items:center; flex-wrap:wrap; min-width:180px; }
  .site-pdf-color-swatch { width:28px; height:28px; min-width:28px; min-height:28px; padding:0; border:2px solid #cbd5e1; border-radius:999px; cursor:pointer; box-shadow:inset 0 0 0 2px rgba(255,255,255,.7); }
  .site-pdf-color-swatch.active { border-color:#0f172a; box-shadow:0 0 0 3px rgba(15,23,42,.14), inset 0 0 0 2px rgba(255,255,255,.8); }
  .site-pdf-markup-toolbar input[type="color"] { width:48px; min-height:40px; padding:2px; }
  .site-pdf-markup-toolbar input[type="number"] { width:76px; min-height:40px; }
  .site-pdf-markup-toolbar input[type="text"] { width:min(270px,100%); min-height:40px; }
  .site-pdf-markup-text-toolbar-field { display:none !important; }
  .site-pdf-markup-body { overflow:auto; padding:14px; display:flex; justify-content:flex-start; background:#e5e7eb; }
  /* margin:auto zentriert den Plan, solange er passt; bei groesserem Plan kollabieren die
     Auto-Margins auf 0 -> linke/obere Kante bleibt scrollbar erreichbar (zoom-Anker exakt).
     flex:none verhindert, dass der Flex-Container den breiten Plan zusammenstaucht (sonst
     weicht die Wrap-Box von der echten Inhaltsbreite ab und der Zoom-Anker driftet). */
  .site-pdf-markup-canvas-wrap { position:relative; flex:none; width:max-content; min-width:280px; min-height:220px; margin:auto; background:#fff; box-shadow:0 10px 30px rgba(15,23,42,.18); }
  .site-pdf-markup-canvas-wrap canvas { display:block; }
  .site-pdf-markup-draw-canvas { position:absolute; inset:0; touch-action:none; cursor:crosshair; }
  .site-pdf-markup-draw-canvas.is-texting { cursor:text; }
  .site-pdf-markup-draw-canvas.is-erasing { cursor:cell; }
  .site-pdf-markup-draw-canvas.is-panning { cursor:grab; }
  .site-pdf-markup-draw-canvas.is-panning.is-dragging { cursor:grabbing; }
  .site-pdf-markup-draw-canvas.is-moving { cursor:move; }
  .site-pdf-markup-inline-text { position:absolute; z-index:4; min-width:160px; max-width:300px; min-height:38px; padding:8px 10px; border:2px solid #e30613; border-radius:8px; background:#fff; color:#0f172a; font:700 14px Arial,sans-serif; line-height:1.25; box-shadow:0 10px 24px rgba(15,23,42,.2); transform:translate(4px,-50%); resize:both; }
  .site-pdf-markup-foot { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 14px; background:#fff; border-top:1px solid #e2e8f0; }
  .site-pdf-markup-status { color:#64748b; font-size:12px; font-weight:800; line-height:1.35; }
  .site-pdf-markup-zoom-label { min-width:54px; text-align:center; color:#0f172a; font-size:12px; font-weight:900; }
  .site-management-empty { border:1px dashed #cbd5e1; border-radius:12px; padding:14px; color:#64748b; background:#fff; font-weight:800; line-height:1.35; }
  .site-management-cover { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,340px); gap:12px; align-items:stretch; }
  .site-management-cover-main,
  .site-management-cover-side { border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); min-width:0; }
  .site-management-cover-main { display:grid; gap:10px; padding:14px; border-left:6px solid var(--pmb-red); }
  .site-management-cover-eyebrow { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .site-management-cover-main h3 { margin:0; color:#0f172a; font-size:24px; line-height:1.12; overflow-wrap:anywhere; }
  .site-management-cover-address { color:#475569; font-size:14px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-chips { display:flex; gap:6px; flex-wrap:wrap; }
  .site-management-chip { display:inline-flex; align-items:center; min-height:26px; border-radius:999px; border:1px solid #cbd5e1; padding:4px 9px; background:#f8fafc; color:#334155; font-size:11.5px; font-weight:900; line-height:1.1; }
  .site-management-chip.status-active { border-color:#bbf7d0; background:#f0fdf4; color:#166534; }
  .site-management-chip.status-paused { border-color:#fde68a; background:#fffbeb; color:#92400e; }
  .site-management-chip.status-done { border-color:#cbd5e1; background:#f1f5f9; color:#334155; }
  .site-management-cover-side { display:grid; gap:10px; align-content:start; padding:12px; }
  .site-management-cover-side h3 { margin:0; color:#0f172a; font-size:16px; line-height:1.2; }
  .site-management-mini-facts { display:grid; gap:7px; }
  .site-management-mini-fact { display:grid; grid-template-columns:minmax(78px,auto) minmax(0,1fr); gap:8px; align-items:start; padding-bottom:7px; border-bottom:1px solid #e2e8f0; }
  .site-management-mini-fact:last-child { border-bottom:0; padding-bottom:0; }
  .site-management-mini-fact strong { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.25; }
  .site-management-mini-fact span { color:#0f172a; font-size:13px; font-weight:850; line-height:1.3; overflow-wrap:anywhere; }
  .site-management-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); gap:8px; }
  .site-management-kpi { position:relative; overflow:hidden; border:1px solid #dbe3ee; border-radius:12px; padding:11px 12px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-kpi::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#cbd5e1; }
  .site-management-kpi.attention::before { background:var(--pmb-red); }
  .site-management-kpi.ready::before { background:#16a34a; }
  .site-management-kpi strong { display:block; color:#0f172a; font-size:24px; line-height:1; }
  .site-management-kpi span { display:block; margin-top:5px; color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.15; }
  .site-management-workbook { display:grid; gap:14px; }
  .site-management-workbook-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
  .site-management-dashboard { display:grid; gap:12px; }
  .site-management-dashboard-hero { display:grid; gap:8px; border:1px solid #dbe3ee; border-left:6px solid var(--pmb-red); border-radius:12px; background:#fff; padding:14px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-dashboard-eyebrow { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .site-management-dashboard-hero h3 { margin:0; color:#0f172a; font-size:24px; line-height:1.12; overflow-wrap:anywhere; }
  .site-management-dashboard-address { color:#475569; font-size:14px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-overview-status { display:grid; grid-template-columns:repeat(auto-fit,minmax(142px,1fr)); gap:8px; }
  .site-management-overview-kpi { min-width:0; border:1px solid #dbe3ee; border-radius:10px; background:#fff; padding:10px 11px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-overview-kpi.attention { border-color:#fecaca; background:#fff7f7; }
  .site-management-overview-kpi.ready { border-color:#bbf7d0; background:#f7fef9; }
  .site-management-overview-kpi strong { display:block; color:#0f172a; font-size:22px; line-height:1; }
  .site-management-overview-kpi span { display:block; margin-top:5px; color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.15; }
  .site-management-overview-kpi small { display:block; margin-top:5px; color:#475569; font-size:11.5px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-overview-tools { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:8px; align-items:end; border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-overview-tools label { margin:0 0 5px; }
  .site-management-overview-results { display:grid; gap:8px; }
  .site-management-overview-result { width:100%; display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; border:1px solid #e2e8f0; border-radius:10px; background:#fff; color:#0f172a; padding:9px 10px; text-align:left; cursor:pointer; box-shadow:0 1px 3px rgba(15,23,42,.04); }
  .site-management-overview-result:hover,
  .site-management-overview-result:focus-visible { border-color:#94a3b8; outline:none; box-shadow:0 9px 22px rgba(15,23,42,.1); }
  .site-management-overview-result-mark { width:38px; height:38px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; background:#f8fafc; color:#334155; }
  .site-management-overview-result-mark .app-icon { width:22px; height:22px; stroke-width:2.1; }
  .site-management-overview-result strong { display:block; color:#0f172a; font-size:13.5px; line-height:1.2; overflow-wrap:anywhere; }
  .site-management-overview-result small { display:block; margin-top:3px; color:#64748b; font-size:11.5px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-overview-result-badge { justify-self:end; min-height:24px; display:inline-flex; align-items:center; border:1px solid #cbd5e1; border-radius:999px; padding:3px 8px; background:#f8fafc; color:#334155; font-size:10.5px; font-weight:950; line-height:1; white-space:nowrap; }
  .site-management-overview-split { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr); gap:12px; align-items:start; }
  .site-management-overview-card { border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-overview-card h3 { margin:0 0 10px; color:#0f172a; font-size:16px; line-height:1.2; }
  .site-management-dashboard-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(142px,1fr)); gap:14px; }
  .site-management-dashboard-tile { position:relative; min-height:112px; display:grid; grid-template-rows:56px minmax(36px,auto); gap:10px; align-items:start; justify-items:center; border:1px solid #d7dcde; border-radius:12px; background:#fff; color:var(--pmb-anthracite); padding:18px 14px 15px; text-align:center; cursor:pointer; touch-action:manipulation; box-shadow:0 10px 24px rgba(36,36,36,.08); transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
  .site-management-dashboard-tile:hover,
  .site-management-dashboard-tile:focus-visible { border-color:var(--pmb-red); outline:none; box-shadow:0 14px 30px rgba(221,49,34,.14); transform:translateY(-1px); }
  .site-management-dashboard-tile.attention,
  .site-management-dashboard-tile.ready,
  .site-management-dashboard-tile.neutral { background:#fff; }
  .site-management-dashboard-tile-top { display:flex; justify-content:center; width:100%; }
  .site-management-dashboard-mark { width:56px; height:56px; border:1px solid #d7dcde; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(180deg,#fff 0%,#f4f3f4 100%); color:var(--pmb-red); font-size:20px; font-weight:950; line-height:1; flex:0 0 auto; box-shadow:0 8px 18px rgba(36,36,36,.07); }
  .site-management-dashboard-mark .app-icon { width:30px; height:30px; stroke-width:2.1; }
  .site-management-dashboard-tile:hover .site-management-dashboard-mark,
  .site-management-dashboard-tile:focus-visible .site-management-dashboard-mark { border-color:var(--pmb-red); background:#fff5f4; color:var(--pmb-red-dark); }
  .site-management-dashboard-count { position:absolute; top:10px; right:10px; min-width:25px; height:25px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; padding:0 7px; background:var(--pmb-red); color:#fff; font-size:12px; font-weight:900; line-height:1; box-shadow:0 8px 18px rgba(227,6,19,.25); }
  .site-management-dashboard-tile.attention .site-management-dashboard-count { background:var(--pmb-red); }
  .site-management-dashboard-tile.ready .site-management-dashboard-count { background:#16a34a; box-shadow:0 8px 18px rgba(22,163,74,.2); }
  .site-management-dashboard-tile.neutral .site-management-dashboard-count { background:#64748b; box-shadow:0 8px 18px rgba(100,116,139,.18); }
  .site-management-dashboard-title { display:-webkit-box; max-width:100%; color:var(--pmb-anthracite); font-size:15px; font-weight:900; line-height:1.18; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow-wrap:break-word; word-break:normal; }
  .site-management-detail-view { display:grid; gap:12px; }
  .site-management-detail-head { position:sticky; top:0; z-index:3; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:46px; padding-bottom:6px; background:linear-gradient(#f8fafc 72%, rgba(248,250,252,0)); }
  .site-management-back-button { width:44px; height:44px; min-width:44px; min-height:44px; display:inline-grid; place-items:center; border:2px solid #d7dcde; border-radius:999px; background:#fff; color:#0f172a; font-size:30px; font-weight:1000; line-height:0; font-family:Arial, sans-serif; cursor:pointer; box-shadow:0 8px 18px rgba(36,36,36,.08); padding:0 0 3px; }
  .site-management-back-button:hover,
  .site-management-back-button:focus-visible { border-color:#94a3b8; outline:none; box-shadow:0 8px 20px rgba(15,23,42,.12); }
  .site-management-detail-close-button { min-height:40px; border:1px solid #d7dcde; border-radius:999px; background:#fff; color:#0f172a; padding:0 14px; font-size:13px; font-weight:900; cursor:pointer; box-shadow:0 6px 16px rgba(15,23,42,.08); }
  .site-management-detail-close-button:hover,
  .site-management-detail-close-button:focus-visible { border-color:#94a3b8; outline:none; box-shadow:0 8px 20px rgba(15,23,42,.12); }
  .site-management-quick-card { min-height:74px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:9px; align-items:center; border:1px solid #dbe3ee; border-radius:10px; padding:10px; background:#fff; color:#0f172a; text-align:left; cursor:pointer; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-quick-card:hover,
  .site-management-quick-card:focus-visible { border-color:#94a3b8; outline:none; box-shadow:0 10px 22px rgba(15,23,42,.11); }
  .site-management-quick-mark { width:34px; height:34px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; background:#f1f5f9; color:#334155; font-size:13px; font-weight:950; }
  .site-management-quick-copy { display:block; min-width:0; }
  .site-management-quick-card strong { display:block; font-size:14px; line-height:1.2; }
  .site-management-quick-copy span { display:block; margin-top:4px; color:#64748b; font-size:11.5px; font-weight:800; line-height:1.3; }
  .site-management-workbook-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,330px); gap:14px; align-items:start; }
  .site-management-workbook-main { display:grid; gap:10px; min-width:0; }
  .site-management-workbook-side { position:sticky; top:0; display:grid; gap:10px; border:1px solid #dbe3ee; border-radius:10px; padding:12px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-workbook-side h3 { margin:0; color:#0f172a; font-size:16px; line-height:1.2; }
  .site-management-fact-list { display:grid; gap:8px; }
  .site-management-fact { display:grid; gap:2px; padding-bottom:8px; border-bottom:1px solid #e2e8f0; }
  .site-management-fact:last-child { border-bottom:0; padding-bottom:0; }
  .site-management-fact strong { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .site-management-fact span { color:#0f172a; font-size:13px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-recent-list { display:grid; gap:8px; }
  .site-management-recent-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:8px 9px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .site-management-recent-item strong { display:block; color:#0f172a; font-size:12.5px; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-recent-item small { display:block; margin-top:2px; color:#64748b; font-size:11px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-recent-badge { align-self:start; min-height:22px; border-radius:999px; border:1px solid #cbd5e1; padding:3px 7px; background:#fff; color:#334155; font-size:10.5px; font-weight:950; line-height:1.1; white-space:nowrap; }
  .site-management-folder { border:1px solid #dbe3ee; border-radius:12px; background:#fff; overflow:hidden; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-folder summary { list-style:none; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:12px; cursor:pointer; }
  .site-management-folder summary::-webkit-details-marker { display:none; }
  .site-management-folder summary,
  .site-management-mobile-details summary,
  .site-management-mobile-upload-details summary,
  .site-management-file-group summary { touch-action:manipulation; user-select:none; -webkit-user-select:none; }
  .site-management-folder summary > *,
  .site-management-mobile-details summary > *,
  .site-management-mobile-upload-details summary > *,
  .site-management-file-group summary > * { pointer-events:none; }
  .site-management-folder-title { display:flex; align-items:center; gap:9px; min-width:0; color:#0f172a; font-size:15px; font-weight:950; line-height:1.2; }
  .site-management-folder-title::before { content:""; width:10px; height:26px; border-radius:999px; background:#e30613; flex:0 0 auto; }
  .site-management-folder.folder-docs .site-management-folder-title::before { background:#2563eb; }
  .site-management-folder.folder-open .site-management-folder-title::before { background:#f59e0b; }
  .site-management-folder.folder-done .site-management-folder-title::before { background:#16a34a; }
  .site-management-folder.folder-check .site-management-folder-title::before { background:#0f766e; }
  .site-management-folder.folder-neutral .site-management-folder-title::before { background:#64748b; }
  .site-management-folder-count { min-width:34px; min-height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:3px 9px; background:#f1f5f9; color:#334155; font-size:12px; font-weight:950; }
  .site-management-folder summary::after { content:""; width:9px; height:9px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg); transition:transform .15s ease; }
  .site-management-folder[open] summary::after { transform:rotate(225deg); }
  .site-management-folder-body { display:grid; gap:8px; padding:0 12px 12px 31px; }
  .site-management-folder-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .site-management-folder-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; padding:9px 10px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .site-management-folder-row strong { display:block; color:#0f172a; font-size:13px; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-folder-row small { display:block; margin-top:3px; color:#64748b; font-size:11.5px; font-weight:800; line-height:1.3; overflow-wrap:anywhere; }
  .site-management-folder-row-badge { justify-self:end; max-width:160px; min-height:24px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #cbd5e1; border-radius:999px; padding:3px 8px; background:#fff; color:#334155; font-size:11px; font-weight:950; line-height:1.1; text-align:center; }
  .site-management-folder-empty { border:1px dashed #cbd5e1; border-radius:8px; padding:10px; background:#fff; color:#64748b; font-size:12px; font-weight:800; line-height:1.35; }
  .site-management-folder-note { color:#64748b; font-size:12px; font-weight:800; line-height:1.35; }
  .site-management-checklist-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:10px; }
  .site-management-checklist-card { display:grid; gap:10px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-checklist-card.ready { border-color:#bbf7d0; background:#f7fef9; }
  .site-management-checklist-card.attention { border-color:#fde68a; background:#fffbeb; }
  .site-management-checklist-head { display:grid; grid-template-columns:40px minmax(0,1fr) auto; gap:10px; align-items:center; }
  .site-management-checklist-mark { width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background:#f1f5f9; color:#0f766e; }
  .site-management-checklist-mark .app-icon { width:23px; height:23px; stroke-width:2.2; }
  .site-management-checklist-head strong { display:block; color:#0f172a; font-size:15px; line-height:1.2; overflow-wrap:anywhere; }
  .site-management-checklist-head small { display:block; margin-top:3px; color:#64748b; font-size:11.5px; font-weight:800; line-height:1.3; }
  .site-management-checklist-count { min-width:42px; min-height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:3px 9px; background:#f1f5f9; color:#334155; font-size:12px; font-weight:950; }
  .site-management-checklist-list { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
  .site-management-checklist-list li { display:grid; grid-template-columns:22px minmax(0,1fr); gap:7px; align-items:start; color:#334155; font-size:12.5px; font-weight:850; line-height:1.3; }
  .site-management-checklist-dot { width:18px; height:18px; margin-top:1px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #cbd5e1; border-radius:999px; background:#fff; color:#64748b; font-size:11px; font-weight:950; }
  .site-management-checklist-list li.done .site-management-checklist-dot { border-color:#86efac; background:#dcfce7; color:#166534; }
  .site-management-checklist-list li.open .site-management-checklist-dot { border-color:#fde68a; background:#fef3c7; color:#92400e; }
  .site-management-checklist-list li.missing .site-management-checklist-dot { border-color:#cbd5e1; background:#fff; color:#94a3b8; }
  .site-management-checklist-actions { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
  .site-management-mobile-overview { display:none; }
  .site-management-mobile-hero { display:grid; gap:7px; border:1px solid #dbe3ee; border-left:5px solid var(--pmb-red); border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-mobile-eyebrow { color:#64748b; font-size:10.5px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .site-management-mobile-title { margin:0; color:#0f172a; font-size:18px; line-height:1.15; overflow-wrap:anywhere; }
  .site-management-mobile-address { color:#475569; font-size:12.5px; font-weight:850; line-height:1.35; overflow-wrap:anywhere; }
  .site-management-mobile-chips { display:flex; gap:5px; flex-wrap:wrap; }
  .site-management-mobile-chip { display:inline-flex; min-height:24px; align-items:center; border:1px solid #cbd5e1; border-radius:999px; padding:4px 8px; background:#f8fafc; color:#334155; font-size:10.5px; font-weight:950; line-height:1; }
  .site-management-mobile-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .site-management-mobile-stat { min-width:0; border:1px solid #dbe3ee; border-radius:10px; background:#fff; padding:8px 6px; text-align:center; box-shadow:0 1px 2px rgba(15,23,42,.04); }
  .site-management-mobile-stat.attention { border-color:#fecaca; background:#fff7f7; }
  .site-management-mobile-stat.ready { border-color:#bbf7d0; background:#f7fef9; }
  .site-management-mobile-stat strong { display:block; color:#0f172a; font-size:20px; line-height:1; }
  .site-management-mobile-stat span { display:block; margin-top:4px; color:#64748b; font-size:9.5px; font-weight:950; text-transform:uppercase; line-height:1.1; }
  .site-management-mobile-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(82px,1fr)); gap:7px; }
  .site-management-mobile-action { min-height:52px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; color:#0f172a; display:grid; grid-template-columns:28px minmax(0,1fr); gap:8px; align-items:center; padding:8px; text-align:left; font-weight:900; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-mobile-action-mark { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:#f1f5f9; color:#334155; font-size:11px; font-weight:950; }
  .site-management-mobile-action strong { display:block; font-size:12.5px; line-height:1.15; overflow-wrap:anywhere; }
  .site-management-mobile-action span:last-child { color:#0f172a; }
  .site-management-mobile-priority { display:grid; gap:7px; }
  .site-management-mobile-priority-title { margin:2px 0 -2px; color:#64748b; font-size:10.5px; font-weight:950; text-transform:uppercase; line-height:1.2; }
  .site-management-mobile-section { display:grid; gap:8px; }
  .site-management-mobile-section h3 { margin:4px 0 0; color:#0f172a; font-size:15px; line-height:1.2; }
  .site-management-mobile-list { display:grid; gap:7px; }
  .site-management-mobile-row { width:100%; min-height:58px; display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:9px; align-items:center; border:1px solid #dbe3ee; border-radius:10px; background:#fff; color:#0f172a; padding:9px; text-align:left; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-mobile-row.attention { border-color:#fecaca; background:#fff7f7; }
  .site-management-mobile-row-mark { width:34px; height:34px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; background:#f1f5f9; color:#334155; font-size:12px; font-weight:950; }
  .site-management-mobile-row.attention .site-management-mobile-row-mark { background:#fee2e2; color:#991b1b; }
  .site-management-mobile-row-title { display:block; font-size:14px; font-weight:950; line-height:1.15; overflow-wrap:anywhere; }
  .site-management-mobile-row-meta { display:block; margin-top:3px; color:#64748b; font-size:11.5px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .site-management-mobile-row-count { min-width:30px; min-height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#f1f5f9; color:#334155; padding:3px 8px; font-size:12px; font-weight:950; }
  .site-management-mobile-details { border:1px solid #dbe3ee; border-radius:10px; background:#fff; overflow:hidden; box-shadow:0 1px 3px rgba(15,23,42,.05); }
  .site-management-mobile-details summary { min-height:46px; list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 12px; color:#0f172a; font-size:14px; font-weight:950; }
  .site-management-mobile-details summary::-webkit-details-marker { display:none; }
  .site-management-mobile-details summary::after { content:""; width:9px; height:9px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg); transition:transform .15s ease; }
  .site-management-mobile-details[open] summary::after { transform:rotate(225deg); }
  .site-management-mobile-details-body { display:grid; gap:8px; padding:0 10px 10px; }
  .site-management-mobile-upload-details { padding:0; overflow:hidden; }
  .site-management-mobile-upload-details summary { min-height:48px; list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; color:#0f172a; font-size:15px; font-weight:950; }
  .site-management-mobile-upload-details summary::-webkit-details-marker { display:none; }
  .site-management-mobile-upload-details summary::after { content:""; width:9px; height:9px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg); transition:transform .15s ease; }
  .site-management-mobile-upload-details[open] summary::after { transform:rotate(225deg); }
  .site-management-mobile-upload-body { display:grid; gap:12px; padding:0 10px 10px; }
  .site-management-mobile-upload-details:not([open]) .site-management-mobile-upload-body { display:none; }
  .quote-contact-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; }
  .quote-contact-form .wide-field { grid-column:1 / -1; }
  .quote-contact-card { display:grid; gap:8px; }
  .quote-contact-card.active { border-color:var(--pmb-red); box-shadow:0 0 0 3px rgba(227,6,19,.12); }
  .quote-contact-search { margin:10px 0 0; display:grid; gap:8px; }
  .quote-company-card { border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.07); overflow:hidden; }
  .quote-company-card.active { border-color:var(--pmb-red); box-shadow:0 0 0 3px rgba(227,6,19,.12); }
  .quote-company-card summary { list-style:none; cursor:pointer; display:grid; gap:8px; padding:12px; }
  .quote-company-card summary::-webkit-details-marker { display:none; }
  .quote-company-card summary::after { content:""; width:9px; height:9px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg); justify-self:end; margin-top:-28px; transition:transform .15s ease; }
  .quote-company-card[open] summary::after { transform:rotate(225deg); }
  .quote-company-body { display:grid; gap:12px; padding:0 12px 12px; border-top:1px solid #edf0f1; }
  .quote-company-section { display:grid; gap:8px; }
  .quote-company-section h3 { margin:8px 0 0; color:#334155; font-size:13px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
  .quote-contact-person-list,
  .quote-project-list { display:grid; gap:8px; }
  .quote-contact-person-card,
  .quote-project-card { border:1px solid #e2e8f0; border-radius:10px; padding:10px; background:#f8fafc; display:grid; gap:6px; }
  .quote-project-card { background:#fff; }
  .quote-project-group { display:grid; gap:7px; }
  .quote-project-group-title { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#334155; font-size:13px; font-weight:900; }
  .quote-project-group-title span { color:#64748b; font-size:12px; }
  .quote-empty { border:1px dashed #cbd5e1; border-radius:12px; padding:14px; color:#64748b; background:#fff; font-weight:800; line-height:1.35; }
  .quote-filter-grid { display:grid; grid-template-columns:minmax(0,1fr) 132px 150px; gap:8px; }
  .quote-board { display:grid; gap:9px; min-width:0; }
  .quote-stage { display:grid; gap:8px; min-width:0; }
  .quote-stage-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-radius:10px; background:#f8fafc; border:1px solid #dbe3ee; }
  .quote-stage-head strong { color:#0f172a; font-size:14px; }
  .quote-stage-head span { min-width:28px; min-height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#e2e8f0; color:#334155; font-size:12px; font-weight:900; }
  .quote-stage-dropdown { border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.06); overflow:hidden; }
  .quote-stage-dropdown summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; background:#f8fafc; color:#0f172a; font-weight:900; }
  .quote-stage-dropdown summary::-webkit-details-marker { display:none; }
  .quote-stage-dropdown summary::after { content:""; width:9px; height:9px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg); margin-left:auto; transition:transform .15s ease; }
  .quote-stage-dropdown[open] summary::after { transform:rotate(225deg); }
  .quote-stage-dropdown summary strong { min-width:28px; min-height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#e2e8f0; color:#334155; font-size:12px; font-weight:900; }
  .quote-stage-list { display:grid; gap:8px; min-width:0; }
  .quote-deadline-line { display:flex; align-items:center; flex-wrap:wrap; gap:6px; color:#64748b; font-size:12px; font-weight:900; }
  .quote-pdf-report { box-sizing:border-box; width:196mm; min-height:277mm; margin:0 auto; padding:8mm; background:#fff; color:#111; font-family:Arial, Helvetica, sans-serif; font-size:9.5px; line-height:1.25; overflow:visible; }
  .quote-pdf-head { display:grid; grid-template-columns:minmax(0,1fr) 38mm; gap:6mm; border-bottom:1.5px solid #242424; padding-bottom:4mm; margin-bottom:4mm; }
  .quote-pdf-title { font-size:18px; font-weight:900; line-height:1.08; }
  .quote-pdf-subtitle { margin-top:1.5mm; color:#555; font-size:10px; font-weight:700; }
  .quote-pdf-logo { text-align:right; font-size:13px; font-weight:900; color:#242424; text-transform:uppercase; }
  .quote-pdf-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.5mm; margin-bottom:4mm; }
  .quote-pdf-box { border:1px solid #d5d5d5; padding:2mm; min-height:13mm; }
  .quote-pdf-box strong { display:block; margin-bottom:1mm; color:#242424; font-size:8px; text-transform:uppercase; }
  .quote-pdf-section { margin-top:3.5mm; break-inside:avoid; }
  .quote-pdf-section h3 { margin:0 0 1.5mm; font-size:11px; color:#242424; }
  .quote-pdf-head,
  .quote-pdf-grid,
  .quote-pdf-box,
  .quote-pdf-text { break-inside:avoid; page-break-inside:avoid; }
  .quote-pdf-text { white-space:pre-wrap; }
  .quote-pdf-table { width:100%; border-collapse:collapse; table-layout:fixed; }
  .quote-pdf-table th,
  .quote-pdf-table td { border:1px solid #d5d5d5; padding:1.2mm; text-align:left; vertical-align:top; word-break:break-word; }
  .quote-pdf-table th { background:#f1f5f9; font-weight:900; }
  .quote-pdf-table tr { break-inside:avoid; page-break-inside:avoid; }
  .quote-pdf-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5mm; align-items:start; }
  .quote-pdf-photo { margin:0; border:1px solid #d5d5d5; padding:1.3mm; break-inside:avoid; background:#fff; }
  .quote-pdf-photo img { display:block; max-width:100%; max-height:62mm; width:auto; height:auto; margin:0 auto; object-fit:contain; background:#f8fafc; image-orientation:from-image; }
  .quote-pdf-photo span { display:block; margin-top:1mm; font-size:8px; font-weight:700; color:#333; word-break:break-word; }
  .defect-pdf-report { box-sizing:border-box; width:196mm; min-height:277mm; margin:0 auto; padding:8mm; background:#fff; color:#111; font-family:Arial, Helvetica, sans-serif; font-size:9.5px; line-height:1.28; overflow:visible; }
  .defect-pdf-head { display:grid; grid-template-columns:minmax(0,1fr) 38mm; gap:6mm; border-bottom:1.5px solid #242424; padding-bottom:4mm; margin-bottom:4mm; break-inside:avoid; page-break-inside:avoid; }
  .defect-pdf-title { font-size:18px; font-weight:900; line-height:1.1; }
  .defect-pdf-subtitle { margin-top:1.5mm; color:#555; font-size:10px; font-weight:700; }
  .defect-pdf-logo { text-align:right; font-size:13px; font-weight:900; color:#242424; text-transform:uppercase; }
  .defect-pdf-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2.5mm; margin-bottom:4mm; break-inside:avoid; page-break-inside:avoid; }
  .defect-pdf-box { border:1px solid #d5d5d5; padding:2mm; min-height:13mm; break-inside:avoid; page-break-inside:avoid; }
  .defect-pdf-box strong { display:block; margin-bottom:1mm; color:#242424; font-size:8px; text-transform:uppercase; }
  .defect-pdf-section { margin-top:3.5mm; }
  .defect-pdf-section h3 { margin:0 0 1.5mm; font-size:11px; color:#242424; }
  .defect-pdf-item { margin-top:3mm; border:1px solid #cbd5e1; padding:2mm; break-inside:avoid; page-break-inside:avoid; background:#fff; }
  .defect-pdf-item-head { display:grid; grid-template-columns:6mm minmax(0,1fr) 24mm; gap:2mm; align-items:start; }
  .defect-pdf-check { width:4.2mm; height:4.2mm; border:1.5px solid #111; display:inline-flex; align-items:center; justify-content:center; font-size:10px; font-weight:900; line-height:1; }
  .defect-pdf-item-title { font-weight:900; font-size:11px; word-break:break-word; }
  .defect-pdf-status { text-align:right; font-size:8px; font-weight:900; text-transform:uppercase; }
  .defect-pdf-meta { margin-top:1.2mm; color:#444; font-size:8.5px; font-weight:700; word-break:break-word; }
  .defect-pdf-text { margin-top:1.8mm; white-space:pre-wrap; word-break:break-word; }
  .defect-pdf-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2mm; margin-top:2mm; }
  .defect-pdf-photo { margin:0; border:1px solid #d5d5d5; padding:1.2mm; break-inside:avoid; page-break-inside:avoid; background:#fff; }
  .defect-pdf-photo img { display:block; width:100%; height:32mm; object-fit:contain; background:#f8fafc; }
  .defect-pdf-photo span { display:block; margin-top:1mm; font-size:7.5px; font-weight:700; color:#333; word-break:break-word; }
  .project-picker { display:grid; gap:8px; }
  .project-gps-btn { justify-self:start; padding:8px 12px; min-height:40px; font-size:13px; }
  .project-search-status { margin-top:-2px; min-height:18px; }
  .damage-toggle { display:flex; align-items:center; gap:10px; min-height:44px; font-weight:800; color:#0f172a; }
  .damage-toggle input { width:22px; height:22px; min-height:0; padding:0; accent-color:#64748b; }
  .damage-details { display:none; margin-top:12px; border-top:1px solid #e2e8f0; padding-top:12px; }
  .damage-details.show { display:block; }
  .damage-list { display:grid; gap:12px; }
  .damage-entry { border:1px solid #dbe3ee; border-radius:10px; padding:12px; background:#f8fafc; }
  .damage-entry-header { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
  .damage-entry-title { font-weight:900; color:#0f172a; }
  .damage-entry textarea { min-height:82px; }
  .damage-photo-preview { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; margin-top:10px; }
  .damage-photo-preview-item { position:relative; min-width:0; }
  .damage-photo-preview img { width:100%; height:110px; object-fit:cover; border:1px solid #cbd5e1; border-radius:9px; background:#f8fafc; }
  .damage-photo-remove { position:absolute; top:6px; right:6px; width:28px; height:28px; border:0; border-radius:999px; background:rgba(15,23,42,.82); color:#fff; font-size:18px; line-height:1; font-weight:900; cursor:pointer; }
  .photo-save-button { position:absolute; left:7px; bottom:7px; min-height:28px; border:0; border-radius:999px; background:rgba(15,23,42,.84); color:#fff; padding:5px 9px; font-size:11px; line-height:1; font-weight:900; cursor:pointer; box-shadow:0 6px 14px rgba(15,23,42,.18); }
  .photo-save-button:hover,
  .photo-save-button:focus-visible { background:#0f172a; outline:none; }
  .damage-hint { margin-top:8px; color:#64748b; font-size:12px; font-weight:800; }
  .rapport-photo-preview { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-top:12px; }
  .rapport-photo-preview-item { position:relative; min-width:0; }
  .rapport-photo-preview img { width:100%; height:180px; object-fit:cover; border:1px solid #cbd5e1; border-radius:10px; background:#f8fafc; }
  .rapport-photo-remove { position:absolute; top:7px; right:7px; width:32px; height:32px; border:0; border-radius:999px; background:rgba(15,23,42,.82); color:#fff; font-size:20px; line-height:1; font-weight:900; cursor:pointer; }
  .threecol { display:grid; grid-template-columns:2fr 1fr 1fr; gap:8px; align-items:center; margin-bottom:8px; }
  .threecol.head { font-weight:700; }
  .danger { background:#fee2e2; color:#991b1b; }
  .readonly { background:#f1f5f9; }
  #printArea { display:none; background:#fff; }

 
.report {
  width: 196mm;
  margin: 0 auto;
  font-family: Arial, Helvetica, sans-serif;
  --report-border: 0.75pt solid #111;

  background: #fff;
  color: #111;
  font-size: 8.2px;
  line-height: 1.05;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.report * {
  box-sizing: border-box;
}

.report-top {
  display: grid;
  grid-template-columns: 1fr 36mm 52mm;
  gap: 0;
  align-items: stretch;
  margin-bottom: 2mm;
}

.report-main-title {
  border: var(--report-border);
  background: #e5e5e5;
  font-size: 18px;
  font-weight: 800;
  text-align: center;
  padding: 4px;
}

.report-date {
  border: var(--report-border);
  border-left: 0;
  font-weight: 700;
  text-align: center;
  padding: 4px;
  background: #fff;
}

.report-logo {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-left: 6mm;
}

.report-logo img {
  max-width: 48mm;
  max-height: 14mm;
}

.report-line {
  display: grid;
  grid-template-columns: 38mm 1fr;
  border: var(--report-border);
  margin-bottom: 2mm;
}

.report-line-label {
  background: #e5e5e5;
  border-right: var(--report-border);
  font-weight: 700;
  padding: 2px 4px;
}

.report-line-value {
  padding: 2px 4px;
  background: #fff;
}

.report-grid {
  display: grid;
  gap: 1.5mm;
  margin-bottom: 1.5mm;
}

.report-grid > div {
  min-width: 0;
}

.grid-2 {
  grid-template-columns: 1fr 1fr;
}

.grid-3 {
  grid-template-columns: 35fr 27fr 38fr;
}

.grid-bottom {
  grid-template-columns: 44fr 56fr;
}

.grid-side-drilling {
  grid-template-columns: 35fr 65fr;
}

.sidework-table th:first-child,
.sidework-table td:first-child {
  white-space: nowrap;
}

.r-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
  margin: 0;
}

.r-table tr,
.r-table thead,
.r-table tbody {
  border: 0;
}

.employee-machine-table {
  margin-bottom: 1.5mm;
}

.r-table th,
.r-table td {
  border: var(--report-border);
  padding: 2px 3px;
  height: 4.5mm;
  vertical-align: middle;
  overflow: hidden;
}

.r-table td {
  background: #fff;
}

.r-table th {
  background: #e5e5e5;
  font-weight: 700;
  text-align: left;
}

.r-table .center {
  text-align: center;
}

.remarks-box {
  border: var(--report-border);
  height: 47mm;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.remarks-box.has-photo {
  grid-template-columns: 32fr 68fr;
}

.remarks-half {
  min-width: 0;
  overflow: hidden;
}

.remarks-half + .remarks-half {
  border-left: var(--report-border);
}

.remarks-title {
  background: #e5e5e5;
  border-bottom: var(--report-border);
  font-weight: 700;
  padding: 2px 3px;
  height: 5mm;
}

.remarks-body {
  height: calc(100% - 5mm);
  padding: 3px;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  background: #fff;
}

.report-photo-wrap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2mm;
  height: calc(100% - 5mm);
  padding: 1.5mm;
  background: #fff;
}

.report-photo-slot {
  min-width: 0;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  background: #fff;
}

.report-photo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: auto;
}

.report-page-break {
  break-before: page;
  page-break-before: always;
  margin-top: 0;
}

.damage-report {
  min-height: 0;
  padding: 0;
}

.damage-report-header {
  display: grid;
  grid-template-columns: 1fr 54mm;
  align-items: stretch;
  background: #e5e5e5;
  margin-bottom: 3mm;
}

.damage-report-header h2 {
  margin: 0;
  padding: 3mm;
  border: var(--report-border);
  background: transparent;
  color: #111;
  font-size: 18px;
  display: flex;
  align-items: center;
}

.damage-report-page-count {
  margin-left: 3mm;
  font-size: 11px;
  font-weight: 700;
}

.damage-report-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2mm;
  background: #fff;
}

.damage-report-logo img {
  max-width: 48mm;
  max-height: 14mm;
  object-fit: contain;
}

.damage-report-meta {
  display: grid;
  grid-template-columns: 38mm 1fr;
  border: var(--report-border);
  border-bottom: 0;
  margin-bottom: 3mm;
}

.damage-report-meta > div {
  border-bottom: var(--report-border);
  padding: 2mm;
  min-height: 8mm;
}

.damage-report-meta > div:nth-child(odd) {
  background: #e5e5e5;
  border-right: var(--report-border);
  font-weight: 700;
}

.damage-report-entry {
  margin-bottom: 0;
  break-inside: avoid;
  page-break-inside: avoid;
}

.damage-report-entry-list {
  display: grid;
  gap: 2.4mm;
}

.damage-report-entry h3 {
  margin: 0;
  padding: 1.6mm 2mm;
  background: #e5e5e5;
  border: var(--report-border);
  color: #111;
  font-size: 12px;
}

.damage-report-main {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 2mm;
  align-items: start;
  padding: 1.5mm 0;
}

.damage-report-side {
  display: grid;
  gap: 1.4mm;
}

.damage-report-empty {
  border: var(--report-border);
  padding: 3mm;
  margin-bottom: 3mm;
}

.damage-report-grid {
  display: grid;
  grid-template-columns: 38mm 1fr;
  border: var(--report-border);
  border-bottom: 0;
  margin: 0;
}

.damage-report-grid > div {
  border-bottom: var(--report-border);
  padding: 1.2mm 1.5mm;
  min-height: 5.2mm;
}

.damage-report-grid > div:nth-child(odd) {
  background: #e5e5e5;
  border-right: var(--report-border);
  font-weight: 700;
}

.damage-report-note {
  border: var(--report-border);
  min-height: 12mm;
  padding: 1.5mm;
  overflow-wrap: anywhere;
}

.damage-report-side .remarks-title {
  border: var(--report-border);
  border-bottom: 0;
  height: auto;
  min-height: 4.2mm;
}

.damage-report-side .damage-report-note {
  border-top: 0;
}

.damage-report-photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2mm;
  padding: 0;
}

.damage-report-photo {
  height: 38mm;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #fff;
  color: #666;
  text-align: center;
  padding: 0;
}

.damage-report-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.confirm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, .45);
}

.confirm-box {
  width: min(420px, calc(100vw - 32px));
  background: #fff;
  border-radius: 12px;
  padding: 18px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .25);
}

.confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

.site-form-section {
  border-top: 1px solid #e2e8f0;
  padding-top: 14px;
  margin-top: 14px;
}

.site-form-section:first-of-type {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}

.site-form-section h3 {
  margin: 0 0 10px;
  font-size: 15px;
  color: #0f172a;
}

.site-form-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.site-addressbook-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.site-addressbook-actions .btn {
  min-height: 42px;
  white-space: nowrap;
}

.site-manager-picker {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:8px;
  padding:8px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#f8fafc;
}

.site-manager-option {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:7px 9px;
  border:1px solid #dbe3ee;
  border-radius:9px;
  background:#fff;
  color:#0f172a;
  font-size:13px;
  font-weight:800;
}

.site-manager-option input {
  width:auto;
  min-height:0;
}

.site-manager-chips {
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}

.site-manager-chip {
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 8px;
  border-radius:999px;
  background:#e0f2fe;
  color:#075985;
  font-size:11px;
  font-weight:900;
}

.site-contact-dialog-overlay {
  position: fixed;
  inset: 0;
  z-index: 12010;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(15, 23, 42, .54);
}

.site-contact-dialog {
  width: min(760px, 100%);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  background: #fff;
  border: 1px solid #dbe3ee;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .34);
  padding: 16px;
}

.site-contact-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 12px;
  margin-bottom: 12px;
}

.site-contact-dialog-head h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
}

.site-contact-dialog-head p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
  font-weight: 700;
}

.site-contact-dialog-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.site-contact-dialog-fields .wide-field {
  grid-column: 1 / -1;
}

.site-contact-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.form-actions,
.site-card-actions,
.site-list-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.form-actions {
  justify-content: space-between;
  margin-top: 14px;
}

.form-status {
  color: #64748b;
  font-size: 13px;
  font-weight: 700;
}

.site-list-section {
  margin-bottom: 16px;
}

.site-list-toolbar {
  justify-content: space-between;
  margin-bottom: 12px;
}

.site-list-toolbar h2 {
  margin: 0;
  font-size: 20px;
}

.site-search {
  width: min(360px, 100%);
}

.site-folders {
  display: grid;
  gap: 14px;
}

.site-folder {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.site-folder summary {
  cursor: pointer;
  padding: 12px 14px;
  font-weight: 800;
  color: #0f172a;
  background: #f8fafc;
}

.site-folder-body {
  padding: 12px;
}

.site-subfolder {
  margin-bottom: 12px;
}

.site-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 12px;
}

.site-card {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .1);
  min-width: 0;
}

.site-card.reports-open {
  grid-column: 1 / -1;
}

.site-card h3 {
  margin: 0 0 8px;
  font-size: 17px;
}

.site-card-meta {
  display: grid;
  gap: 5px;
  color: #334155;
  font-size: 13px;
  min-height: 86px;
}

  .site-card-actions {
    margin-top: 12px;
  }
  .site-report-list { margin-top:12px; border-top:1px solid #e2e8f0; padding-top:10px; display:grid; gap:8px; min-width:0; }
  .site-report-row { display:grid; grid-template-columns:minmax(110px,.8fr) minmax(88px,.55fr) minmax(0,1.7fr) minmax(132px,auto); gap:8px; align-items:center; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:8px; min-width:0; }
  .site-report-row.report-actionable { cursor:pointer; }
  .site-report-row.report-actionable:hover { border-color:#facc15; box-shadow:0 0 0 3px rgba(250,204,21,.22); }
  .site-report-row.report-void { background:#fff1f2; border-color:#fb7185; box-shadow:inset 5px 0 0 #e11d48; }
  .site-report-row > div { min-width:0; overflow-wrap:anywhere; }
  .site-report-row strong { display:block; }
  .site-report-meta { color:#475569; font-size:13px; }
  .site-report-status-badge { display:inline-flex; align-items:center; width:max-content; max-width:100%; margin-top:4px; padding:3px 8px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
  .site-report-status-badge.void { background:#be123c; color:#fff; }
  .site-report-void-note { margin-top:6px; padding:6px 8px; border:1px solid #fecdd3; border-radius:8px; background:#ffe4e6; color:#9f1239; font-size:12px; font-weight:900; }
  .site-report-actions { display:flex; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
  .site-report-actions .btn { padding:7px 10px; font-size:12px; }
  .site-report-empty { color:#64748b; font-weight:700; font-size:13px; }
  .report-void-form { display:grid; gap:12px; margin-top:12px; }
  .report-void-form label { font-weight:800; color:#334155; display:grid; gap:5px; }
  .report-void-form input { width:100%; }
  .report-void-hint { color:#64748b; font-size:13px; margin:0; line-height:1.35; }
  .report-void-error { min-height:18px; color:#991b1b; font-weight:800; font-size:13px; }
  .stats-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; align-items:end; }
  .stats-filter-action { display:flex; gap:8px; flex-wrap:wrap; align-items:end; }
  .stats-filter-action .stats-export-button { background:#166534; color:#fff; }
  .stats-export-help { width:100%; color:#475569; font-size:12px; font-weight:800; line-height:1.25; }
  .stats-mode-tabs { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .stats-mode-tabs .btn { border-color:#cbd5e1; background:#fff; color:#334155; }
  .stats-mode-tabs .btn.active { border-color:var(--pmb-red); background:var(--pmb-red); color:#fff; }
  .stats-mode-note { color:#475569; font-size:12px; font-weight:800; line-height:1.3; }
  .stats-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:4px 0 10px; }
  .stats-section-heading h2 { margin:0; font-size:18px; }
  .stats-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
  .stats-detail-heading h2 { margin:0; font-size:18px; }
  .stats-detail-kpis { margin-bottom:16px; }
  .stats-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:16px; }
  .stat-tile { min-width:0; min-height:96px; display:grid; grid-template-rows:minmax(30px,auto) minmax(32px,auto) auto; align-content:start; background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:14px; box-shadow:0 1px 3px rgba(15,23,42,.08); }
  .stat-label { min-height:28px; color:#64748b; font-size:12px; font-weight:800; text-transform:uppercase; line-height:1.18; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow-wrap:break-word; word-break:normal; }
  .stat-value { align-self:end; color:#0f172a; font-size:26px; font-weight:900; margin-top:6px; line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
  .stat-subvalue { margin-top:4px; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; }
  .stats-grid-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; min-width:0; }
  .stats-grid-two > * { min-width:0; }
  .stats-table-wrap { width:100%; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .stats-table { width:100%; min-width:720px; border-collapse:collapse; font-size:13px; }
  .stats-table th, .stats-table td { border-bottom:1px solid #e2e8f0; padding:9px 8px; text-align:left; vertical-align:top; }
  .stats-table th { color:#334155; background:#f8fafc; font-size:12px; text-transform:uppercase; }
  .stats-table td::before { display:none; }
  .stats-table td.num, .stats-table th.num { text-align:right; white-space:nowrap; }
  .stats-table tr.stats-clickable-row { cursor:pointer; }
  .stats-table tr.stats-clickable-row:hover td { background:#f8fafc; }
  .stats-table tr.stats-selected-row td { background:#fff1f2; }
  .stats-table-group + .stats-table-group { margin-top:18px; }
  .stats-table-group h3 { margin:0 0 8px; font-size:15px; color:#0f172a; }
  .stats-manager-note { display:block; margin-top:3px; color:#64748b; font-size:12px; font-weight:800; }
  .stats-download-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0 12px; }
  .stats-select-control { display:flex; justify-content:center; }
  .stats-select-control input { width:20px; height:20px; margin:0; accent-color:var(--pmb-red); cursor:pointer; }
  .stats-print-control { display:inline-flex; align-items:center; gap:8px; min-height:32px; color:#334155; font-weight:800; }
  .stats-print-control input { width:20px; height:20px; margin:0; flex:0 0 auto; accent-color:#16a34a; cursor:pointer; }
  .stats-print-note { display:block; margin-top:2px; color:#64748b; font-size:11px; font-weight:700; white-space:nowrap; }
  .stats-detail-button { padding:6px 10px; font-size:12px; }
  .stats-detail-button + .stats-detail-button { margin-left:10px; }
  .stats-empty { border:1px dashed #cbd5e1; border-radius:12px; padding:14px; color:#64748b; font-weight:700; background:#fff; }
  .stats-damage-filter { align-self:end; margin:0; }
  .stats-damage-badge { display:inline-flex; align-items:center; width:max-content; max-width:100%; min-height:24px; padding:3px 8px; border-radius:999px; background:#fee2e2; color:#991b1b; font-size:12px; font-weight:900; }
  .stats-damage-badge.none { background:#e2e8f0; color:#475569; }
  .stats-damage-note { display:block; margin-top:4px; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .today-controls,
  .planning-controls { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
  .today-controls > div,
  .planning-controls > div { min-width:180px; flex:1; }
  .planning-controls > .planning-time-field { min-width:130px; flex:.75; }
  .planning-date-preview { margin:0 0 12px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:12px; background:#f8fafc; color:#0f172a; font-size:14px; font-weight:900; line-height:1.35; }
  .planning-quick-times { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:10px; align-items:stretch; margin-top:12px; padding:12px; border:1px solid #dbe3ee; border-radius:14px; background:#f8fafc; overflow:hidden; }
  .planning-quick-times-label { grid-column:1 / -1; display:flex; align-items:center; min-height:18px; color:#334155; font-size:13px; font-weight:950; line-height:1.2; }
  .planning-time-preset.btn.secondary { min-height:66px; width:100%; display:grid; align-content:center; justify-items:center; gap:3px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:12px; background:#fff; color:#0f172a; text-align:center; box-shadow:0 1px 3px rgba(15,23,42,.07); }
  .planning-time-preset.btn.secondary strong { display:block; font-size:14px; line-height:1.15; font-weight:950; }
  .planning-time-preset.btn.secondary small { display:block; color:#64748b; font-size:12px; font-weight:900; line-height:1.15; }
  .planning-time-preset.btn.secondary:hover,
  .planning-time-preset.btn.secondary:focus { border-color:#94a3b8; background:#fff; outline:none; box-shadow:0 0 0 3px rgba(148,163,184,.16); }
  .planning-time-preset.btn.secondary.primary { border-color:#fecaca; background:#fff5f5; }
  .planning-time-preset.btn.secondary.primary small { color:#991b1b; }
  .planning-time-preset.btn.secondary.active { border-color:#b91c1c; background:#fff1f2; box-shadow:0 0 0 3px rgba(185,28,28,.14); }
  .planning-after-save-actions { display:none; margin:10px 0 0; padding:10px; border:1px solid #bbf7d0; border-radius:12px; background:#f0fdf4; color:#166534; gap:8px; flex-wrap:wrap; align-items:center; }
  .planning-after-save-actions.show { display:flex; }
  .planning-after-save-actions strong { flex:1 1 220px; font-size:13px; line-height:1.35; }
  .planning-after-save-actions .btn { min-height:38px; padding:7px 11px; border-radius:10px; font-size:13px; }
  .planning-week-field { min-width:300px; flex:1.2; position:relative; }
  .planning-week-input-row { min-height:44px; display:flex; align-items:center; overflow:hidden; border:1px solid #cbd5e1; border-radius:10px; background:#fff; }
  .planning-week-prefix { align-self:stretch; display:inline-flex; align-items:center; padding:0 11px; border-right:1px solid #dbe3ee; background:#f8fafc; color:#334155; font-weight:900; white-space:nowrap; }
  .planning-week-date-button { flex:1; min-width:170px; align-self:stretch; border:0; border-radius:0; background:transparent; color:#0f172a; font:inherit; font-weight:800; text-align:left; padding:0 12px; cursor:pointer; }
  .planning-week-date-button:hover,
  .planning-week-date-button:focus { background:#f8fafc; outline:none; }
  .planning-month-field { min-width:250px; flex:.9; }
  .planning-month-input-row { min-height:44px; display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:stretch; overflow:hidden; border:1px solid #cbd5e1; border-radius:10px; background:#fff; }
  .planning-month-input-row input { width:100%; min-width:0; min-height:42px; border:0; border-radius:0; background:#fff; color:#0f172a; font:inherit; font-weight:800; text-align:center; padding:0 8px; }
  .planning-month-input-row input:focus { outline:2px solid rgba(14,116,144,.25); outline-offset:-2px; }
  .planning-month-nav { border:0; border-radius:0; background:#f8fafc; color:#0f172a; font-size:18px; font-weight:900; cursor:pointer; }
  .planning-month-nav:hover,
  .planning-month-nav:focus { background:#e2e8f0; outline:none; }
  .planning-week-picker { display:none; position:absolute; z-index:85; top:calc(100% + 8px); left:0; width:min(390px, calc(100vw - 28px)); border:1px solid #cbd5e1; border-radius:12px; background:#fff; box-shadow:0 18px 45px rgba(15,23,42,.22); padding:12px; }
  .planning-week-picker.show { display:block; }
  .planning-week-picker-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
  .planning-week-picker-title { font-weight:900; color:#0f172a; }
  .planning-week-picker-nav { width:38px; min-height:38px; padding:0; border-radius:9px; }
  .planning-week-picker-grid { display:grid; grid-template-columns:52px repeat(7,minmax(0,1fr)); gap:4px; }
  .planning-week-picker-cell,
  .planning-week-picker-day { min-height:34px; display:flex; align-items:center; justify-content:center; border-radius:8px; font-size:12px; font-weight:900; }
  .planning-week-picker-cell { color:#64748b; background:#f8fafc; }
  .planning-week-picker-kw { color:#334155; background:#e2e8f0; }
  .planning-week-picker-day { border:1px solid transparent; background:#fff; color:#0f172a; cursor:pointer; }
  .planning-week-picker-day:hover,
  .planning-week-picker-day:focus { border-color:#b91c1c; outline:none; }
  .planning-week-picker-day.outside { color:#94a3b8; background:#f8fafc; }
  .planning-week-picker-day.today { border-color:#94a3b8; }
  .planning-week-picker-day.selected { background:#b91c1c; color:#fff; border-color:#b91c1c; }
  .today-summary-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(118px,1fr)); gap:8px; margin-bottom:12px; }
  .today-summary-tile { min-height:64px; padding:9px 10px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.06); }
  .today-summary-tile strong { display:block; color:#0f172a; font-size:20px; line-height:1.05; }
  .today-summary-tile span { display:block; margin-top:4px; color:#64748b; font-size:12px; font-weight:900; line-height:1.2; }
  .today-summary-tile.warning { border-color:#facc15; background:#fffbeb; }
  .today-summary-tile.success { border-color:#86efac; background:#f0fdf4; }
  .today-summary-tile.danger { border-color:#fb7185; background:#fff1f2; }
  .today-summary-tile.info { border-color:#bfdbfe; background:#eff6ff; }
  .today-plan-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; }
  /* Live-Tagesuebersicht: wer ist heute wo (pro Mitarbeiter) */
  .today-board-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:2px 0 8px; }
  .today-board-head h3 { margin:0; font-size:16px; color:#0f172a; }
  .today-board-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(238px,1fr)); gap:10px; margin-bottom:14px; }
  .today-board-card { border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:10px 12px; box-shadow:0 1px 3px rgba(15,23,42,.07); }
  .today-board-card.is-idle { background:#f8fafc; border-style:dashed; }
  .today-board-name { display:flex; align-items:center; justify-content:space-between; gap:8px; font-weight:900; color:#0f172a; line-height:1.2; }
  .today-board-role { margin-top:1px; font-size:11px; font-weight:800; color:#94a3b8; text-transform:uppercase; letter-spacing:.02em; }
  .today-board-dot { width:11px; height:11px; border-radius:999px; flex:0 0 auto; box-shadow:0 0 0 3px rgba(15,23,42,.05); }
  .today-board-item { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; padding:6px 8px; border-radius:8px; background:#f8fafc; cursor:pointer; }
  .today-board-item:hover { background:#eef2f7; }
  .today-board-item .tb-ktr { font-weight:800; color:#0f172a; font-size:13px; }
  .today-board-item .tb-addr { color:#64748b; font-size:11.5px; line-height:1.25; overflow-wrap:anywhere; }
  .today-board-empty { margin-top:6px; color:#64748b; font-size:12.5px; font-weight:700; }
  .today-plan-card,
  .planning-item-card { background:#f8fafc; border:1px solid #cbd5e1; border-radius:12px; padding:14px; box-shadow:0 1px 4px rgba(15,23,42,.1); }
  .today-plan-card { cursor:pointer; min-height:128px; display:flex; flex-direction:column; gap:10px; }
  .today-plan-card.active { border-color:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.12); }
  .today-plan-card.done { background:#dcfce7; border-color:#86efac; box-shadow:0 0 0 3px rgba(22,163,74,.14); }
  .planning-item-card.done { background:#dcfce7; border-color:#86efac; box-shadow:0 0 0 3px rgba(22,163,74,.12); }
  .today-plan-card.high-priority { background:#fff1f2; border-color:#fca5a5; box-shadow:0 0 0 3px rgba(252,165,165,.16); }
  .today-plan-card.high-priority.active { border-color:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.18); }
  .today-plan-card.high-priority.done { background:#dcfce7; border-color:#86efac; box-shadow:0 0 0 3px rgba(22,163,74,.16); }
  .planning-item-card.high-priority.done { background:#dcfce7; border-color:#86efac; box-shadow:0 0 0 3px rgba(22,163,74,.14); }
  .today-plan-card.absent { background:#fff1f2; border-color:#fb7185; box-shadow:0 0 0 3px rgba(244,63,94,.14); }
  .today-plan-card.needs-reschedule,
  .planning-item-card.needs-reschedule { background:#fef9c3; border-color:#facc15; box-shadow:0 0 0 3px rgba(250,204,21,.18); }
  .planning-item-card.spacing-warning { border-color:#facc15; box-shadow:0 0 0 3px rgba(250,204,21,.14); }
  .planning-item-card.spacing-warning:not(.done):not(.needs-reschedule):not(.high-priority) { background:#fffbeb; }
  .planning-item-card.conflict { border-color:#fb7185; box-shadow:0 0 0 3px rgba(244,63,94,.18); }
  .planning-item-card.conflict:not(.done):not(.needs-reschedule) { background:#fff1f2; }
  .plan-card-head { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
  .plan-priority { min-width:58px; height:34px; border-radius:999px; padding:0 10px; display:inline-flex; align-items:center; justify-content:center; background:#0f172a; color:#fff; font-size:13px; font-weight:900; flex:0 0 auto; }
  .plan-title { margin:0; font-size:17px; line-height:1.25; }
  .plan-compact-time { display:inline-flex; align-items:center; justify-content:center; min-height:34px; border-radius:999px; padding:0 11px; background:#0f172a; color:#fff; font-size:13px; font-weight:900; white-space:nowrap; }
  .plan-compact-ktr { margin:0; font-size:18px; line-height:1.15; overflow-wrap:anywhere; }
  .plan-compact-address { color:#475569; font-size:14px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .plan-card-status { display:inline-flex; align-items:center; width:max-content; max-width:100%; min-height:26px; padding:4px 9px; border-radius:999px; background:#facc15; color:#713f12; font-size:12px; font-weight:900; }
  .plan-card-status.completed { background:#bbf7d0; color:#166534; border:1px solid #86efac; }
  .plan-card-status.conflict { background:#ffe4e6; color:#9f1239; border:1px solid #fb7185; }
  .plan-card-status.spacing-warning { background:#fef3c7; color:#92400e; border:1px solid #facc15; }
  .plan-card-status.open { background:#e0f2fe; color:#075985; border:1px solid #bae6fd; }
  .plan-card-status.report { background:#dcfce7; color:#166534; border:1px solid #86efac; }
  .plan-card-status.absence { background:#fff1f2; color:#9f1239; border:1px solid #fb7185; }
  .plan-info-badges { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
  .plan-info-badge { display:inline-flex; align-items:center; justify-content:center; min-height:22px; padding:3px 8px; border-radius:999px; border:1px solid #cbd5e1; background:#e2e8f0; color:#334155; font-size:11px; font-weight:900; line-height:1; white-space:nowrap; }
  .plan-info-badge.plan { background:#fee2e2; border-color:#fecaca; color:#991b1b; }
  .plan-info-badge.photo { background:#dcfce7; border-color:#bbf7d0; color:#166534; }
  .plan-info-badge.file { background:#e0f2fe; border-color:#bae6fd; color:#075985; }
  .plan-info-badge.info { background:#fef3c7; border-color:#fde68a; color:#92400e; }
  .plan-meta { display:grid; gap:5px; color:#475569; font-size:13px; }
  .address-nav-link { color:#b91c1c; font-weight:800; text-decoration:none; overflow-wrap:anywhere; }
  .address-nav-link:hover,
  .address-nav-link:focus { text-decoration:underline; }
  .address-nav-link:focus { outline:2px solid rgba(227,6,19,.35); outline-offset:2px; border-radius:4px; }
  .plan-work { border-left:4px solid #e30613; padding-left:10px; color:#0f172a; font-weight:700; min-height:22px; }
  .plan-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
  .spontaneous-card { overflow:hidden; }
  .spontaneous-toggle { width:100%; min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:0; background:transparent; color:#0f172a; padding:0; text-align:left; cursor:pointer; }
  .spontaneous-toggle strong { display:block; font-size:20px; line-height:1.15; }
  .spontaneous-toggle small { display:block; margin-top:3px; color:#64748b; font-size:13px; font-weight:800; }
  #spontaneousToggleIcon { flex:0 0 auto; width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#e2e8f0; color:#0f172a; font-size:20px; font-weight:900; }
  .spontaneous-body { margin-top:14px; padding-top:14px; border-top:1px solid #e2e8f0; }
  .spontaneous-card.collapsed .spontaneous-body { display:none; }
  .plan-feedback { display:none; margin:10px 0 0; padding:9px 11px; border-radius:10px; font-size:13px; font-weight:900; line-height:1.35; }
  .plan-feedback.show { display:block; }
  .plan-feedback.pending { background:#fef3c7; color:#92400e; border:1px solid #facc15; }
  .plan-feedback.success { background:#dcfce7; color:#166534; border:1px solid #86efac; }
  .plan-feedback.error { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
  .planning-conflict-warning { display:none; margin-top:12px; padding:11px 12px; border-radius:12px; background:#fff1f2; border:1px solid #fb7185; color:#9f1239; font-size:13px; font-weight:800; line-height:1.35; overflow-wrap:anywhere; }
  .planning-conflict-warning.spacing-warning { background:#fffbeb; border-color:#facc15; color:#92400e; }
  .planning-conflict-warning.show { display:block; }
  .planning-conflict-warning ul { margin:6px 0 0; padding-left:18px; font-weight:700; }
  .absence-summary { display:none; margin:12px 0 0; padding:12px; border:1px solid #cbd5e1; border-radius:12px; background:#f8fafc; color:#334155; font-size:13px; font-weight:800; line-height:1.35; }
  .absence-summary.show { display:block; }
  .absence-chip-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
  .absence-chip { display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:4px 9px; border-radius:999px; background:#fff1f2; border:1px solid #fb7185; color:#9f1239; font-size:12px; font-weight:900; }
  .absence-row-muted { display:block; margin-top:2px; color:#64748b; font-size:12px; font-weight:800; }
  .reschedule-form { display:none; margin-top:12px; padding:12px; border:1px solid #facc15; border-radius:12px; background:#fffbeb; }
  .reschedule-form.show { display:grid; gap:10px; }
  .reschedule-form textarea { min-height:78px; background:#fff; }
  .reschedule-reason-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; }
  .reschedule-reason-option { min-height:42px; border:1px solid #fde68a; border-radius:10px; background:#fff; color:#713f12; font-weight:900; cursor:pointer; }
  .reschedule-reason-option.active { border-color:#b91c1c; background:#fff1f2; color:#991b1b; box-shadow:0 0 0 2px rgba(185,28,28,.12); }
  .reschedule-quick-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
  .reschedule-quick-grid > div { min-width:0; }
  .reschedule-quick-grid input,
  .reschedule-quick-grid select { background:#fff; }
  .reschedule-form-note { color:#713f12; font-size:13px; font-weight:800; line-height:1.35; }
  .additional-report-form { border-color:#86efac; background:#f0fdf4; }
  .admin-alert-overlay { position:fixed; inset:0; z-index:80; display:none; align-items:flex-end; justify-content:center; background:rgba(15,23,42,.22); padding:18px; }
  .admin-alert-box { width:min(520px,100%); max-height:calc(100dvh - 36px); overflow:auto; background:#fff; border:1px solid #facc15; border-radius:14px; box-shadow:0 20px 50px rgba(15,23,42,.22); padding:16px; display:grid; gap:12px; }
  .admin-alert-box h3 { margin:0; font-size:18px; }
  .admin-alert-list { display:grid; gap:8px; max-height:260px; overflow:auto; }
  .admin-alert-item { border:1px solid #fde68a; border-radius:10px; padding:10px; background:#fffbeb; font-size:13px; line-height:1.35; }
  .admin-alert-actions { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
  .plan-empty { border:1px dashed #cbd5e1; border-radius:12px; padding:18px; color:#64748b; background:#fff; font-weight:700; }
  .planning-week-grid { overflow-x:auto; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; padding-bottom:6px; }
  .planning-calendar { min-width:1060px; display:grid; grid-template-columns:72px repeat(7,minmax(132px,1fr)); grid-template-rows:48px auto; border:1px solid #dbe3ee; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.08); }
  .planning-calendar-corner,
  .planning-day-header { position:sticky; top:0; z-index:3; background:#f8fafc; border-bottom:1px solid #dbe3ee; min-height:48px; display:flex; align-items:center; justify-content:center; padding:8px; font-weight:900; color:#0f172a; }
  .planning-calendar-corner { grid-column:1; flex-direction:column; gap:2px; line-height:1.1; }
  .planning-week-corner-kw { color:#64748b; font-size:11px; font-weight:900; }
  .planning-day-header { border-left:1px solid #e2e8f0; font-size:13px; }
  .planning-time-column { grid-column:1; grid-row:2; background:#f8fafc; border-right:1px solid #dbe3ee; }
  .planning-time-row { height:72px; border-bottom:1px solid #e2e8f0; padding:6px 8px 0 0; text-align:right; color:#64748b; font-size:12px; font-weight:800; }
  .planning-day-column { position:relative; grid-row:2; min-height:720px; border-left:1px solid #e2e8f0; background:repeating-linear-gradient(to bottom, #fff 0, #fff 71px, #e2e8f0 72px); }
  .planning-day-empty { position:absolute; top:12px; left:10px; right:10px; color:#94a3b8; font-size:12px; font-weight:800; }
  .planning-item-card { padding:10px; margin-bottom:10px; }
  .planning-calendar-card { position:absolute; left:7px; right:7px; min-height:0; overflow:hidden; cursor:pointer; display:grid; align-content:start; gap:4px; }
  .planning-calendar-card.draggable { cursor:grab; touch-action:none; }
  .planning-calendar-card.dragging { opacity:.45; cursor:grabbing; }
  .planning-day-column.drag-target { background:repeating-linear-gradient(to bottom, #fff7ed 0, #fff7ed 71px, #fed7aa 72px); }
  .planning-drag-time-hint { position:absolute; left:5px; right:5px; height:3px; background:#b91c1c; z-index:6; pointer-events:none; border-radius:999px; box-shadow:0 0 0 3px rgba(185,28,28,.16); }
  .planning-drag-time-hint span { position:absolute; right:0; top:5px; display:inline-flex; min-height:24px; align-items:center; padding:2px 7px; border-radius:999px; background:#b91c1c; color:#fff; font-size:11px; font-weight:900; white-space:nowrap; }
  .planning-drag-ghost { position:fixed; z-index:100; pointer-events:none; opacity:.92; transform:translate(-50%,-50%); overflow:visible; box-shadow:0 18px 40px rgba(15,23,42,.28); }
  .planning-drag-card-time { position:absolute; top:-13px; left:50%; z-index:3; transform:translateX(-50%); display:inline-flex; min-height:28px; align-items:center; justify-content:center; padding:3px 10px; border:2px solid #fff; border-radius:999px; background:#b91c1c; color:#fff; font-size:12px; font-weight:900; line-height:1; white-space:nowrap; box-shadow:0 10px 24px rgba(15,23,42,.26); }
  .planning-calendar-card:not(.done):not(.needs-reschedule):not(.high-priority):not(.conflict):not(.spacing-warning) { background:#f1f5f9; border-color:#cbd5e1; }
  .planning-item-card.high-priority { background:#fff1f2; border-color:#fca5a5; }
  .planning-calendar-card.high-priority { background:#fff1f2; border-color:#fca5a5; }
  .planning-item-card h4 { margin:0 0 6px; font-size:14px; line-height:1.2; }
  .planning-calendar-card h4 { font-size:13px; }
  .planning-calendar-card .plan-compact-ktr { font-size:14px; }
  .planning-calendar-card .plan-compact-address { font-size:12px; }
  .planning-calendar-card .plan-compact-user { color:#334155; font-size:11px; line-height:1.12; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .planning-calendar-card .plan-card-head { display:grid; gap:2px; }
  .planning-calendar-card .plan-compact-time { min-height:0; padding:0; justify-content:flex-start; background:transparent; color:#64748b; font-size:10.5px; line-height:1.1; font-weight:900; }
  .planning-calendar-card .plan-compact-ktr { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; overflow-wrap:normal; line-height:1.1; }
  .planning-calendar-card .plan-compact-address { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.18; }
  .planning-calendar-card .plan-card-status { min-height:20px; padding:2px 6px; font-size:10.5px; line-height:1.15; }
  .planning-calendar-card .plan-info-badges { gap:3px; }
  .planning-calendar-card .plan-info-badge { min-height:18px; padding:2px 5px; font-size:9.5px; }
  .planning-calendar-card.compact-short { gap:2px; padding:6px; z-index:2; }
  .planning-calendar-card.compact-short .plan-compact-time { font-size:9.5px; }
  .planning-calendar-card.compact-short .plan-compact-ktr,
  .planning-calendar-card.compact-short .plan-compact-address,
  .planning-calendar-card.compact-short .plan-compact-user { font-size:10.5px; line-height:1.05; }
  .planning-calendar-card.compact-short .plan-compact-address { -webkit-line-clamp:1; }
  .planning-calendar-card.compact-short .plan-card-status { display:none; }
  .planning-item-card .plan-meta { font-size:12px; }
  .planning-calendar-card .plan-meta { gap:3px; }
  .planning-calendar-card .plan-actions { margin-top:7px; }
  .planning-calendar-card .btn { padding:6px 8px; font-size:12px; border-radius:8px; }
  .planning-mobile-shell { display:grid; gap:12px; min-width:0; }
  .planning-mobile-week-nav { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:center; gap:8px; }
  .planning-mobile-week-button { width:42px; min-height:42px; padding:0; border-radius:12px; font-size:20px; font-weight:900; }
  .planning-mobile-week-title { min-width:0; padding:10px 12px; border:1px solid #dbe3ee; border-radius:14px; background:#fff; text-align:center; box-shadow:0 8px 20px rgba(36,36,36,.06); }
  .planning-mobile-week-title strong,
  .planning-mobile-week-title span { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .planning-mobile-week-title strong { color:var(--pmb-anthracite); font-size:15px; line-height:1.15; }
  .planning-mobile-week-title span { margin-top:2px; color:var(--pmb-charcoal); font-size:12px; font-weight:800; }
  .planning-mobile-day-strip { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
  .planning-mobile-day-button { position:relative; min-width:0; min-height:68px; padding:8px 4px 7px; border:1px solid #d7dcde; border-radius:12px; background:#fff; color:var(--pmb-anthracite); font:inherit; font-weight:900; cursor:pointer; box-shadow:0 6px 16px rgba(36,36,36,.06); }
  .planning-mobile-day-button span { display:block; line-height:1.05; }
  .planning-mobile-day-button small { display:block; margin-top:5px; color:var(--pmb-charcoal); font-size:11px; font-weight:900; line-height:1; }
  .planning-mobile-day-button.active { border-color:var(--pmb-red); background:#fff5f4; color:var(--pmb-red-dark); box-shadow:0 0 0 3px rgba(227,6,19,.13); }
  .planning-mobile-day-button.today:not(.active) { border-color:#94a3b8; }
  .planning-mobile-day-count { position:absolute; top:-6px; right:-4px; min-width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; padding:0 6px; border-radius:999px; background:var(--pmb-red); color:#fff; font-size:11px; font-weight:900; box-shadow:0 6px 14px rgba(227,6,19,.22); }
  .planning-mobile-command-row { display:none; gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .planning-mobile-command-row .btn { width:100%; min-height:42px; padding:8px 9px; border-radius:11px; font-size:12.5px; line-height:1.12; }
  .planning-mobile-command-row .planning-mobile-primary-action { grid-column:1 / -1; background:var(--pmb-red); color:#fff; }
  .planning-form-header { align-items:flex-start; gap:10px; }
  .planning-form-heading { display:grid; gap:2px; min-width:0; }
  .planning-form-heading h2 { margin:0; }
  .planning-form-subtitle { display:none; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; }
  .planning-form-toggle { display:none; align-items:center; gap:7px; min-height:38px; padding:8px 11px; border:1px solid #d7dcde; border-radius:11px; background:#fff; color:var(--pmb-anthracite); font:inherit; font-weight:900; cursor:pointer; }
  .planning-form-toggle-icon { min-width:16px; text-align:center; font-size:15px; line-height:1; }
  .planning-form-body { display:block; }
  .planning-mobile-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; align-items:center; }
  .planning-mobile-filter-button { min-width:0; min-height:38px; padding:7px 6px; border:1px solid #d7dcde; border-radius:11px; background:#fff; color:var(--pmb-charcoal); font:inherit; font-size:12px; font-weight:900; cursor:pointer; line-height:1.05; }
  .planning-mobile-filter-button.active { border-color:var(--pmb-red); background:var(--pmb-red); color:#fff; }
  .planning-mobile-user-filter { grid-column:1 / -1; display:grid; grid-template-columns:94px minmax(0,1fr); align-items:center; gap:8px; min-width:0; }
  .planning-mobile-user-filter span { color:#475569; font-size:12px; font-weight:900; }
  .planning-mobile-select { width:100%; min-width:0; min-height:42px; border:1px solid #cbd5e1; border-radius:12px; background:#fff; color:#0f172a; font:inherit; font-weight:800; padding:0 10px; }
  .planning-mobile-list { display:grid; gap:10px; min-width:0; }
  .planning-mobile-card { display:grid; gap:9px; min-width:0; padding:12px; border:1px solid #dbe3ee; border-radius:14px; background:#fff; color:#0f172a; box-shadow:0 10px 24px rgba(36,36,36,.08); cursor:pointer; }
  .planning-mobile-card.high-priority { border-color:#fca5a5; background:#fff1f2; }
  .planning-mobile-card.done { border-color:#86efac; background:#f0fdf4; }
  .planning-mobile-card.needs-reschedule { border-color:#facc15; background:#fffbeb; }
  .planning-mobile-card.conflict { border-color:#fb7185; background:#fff1f2; }
  .planning-mobile-card.spacing-warning { border-color:#facc15; background:#fffbeb; }
  .planning-mobile-card-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px; min-width:0; }
  .planning-mobile-title { min-width:0; }
  .planning-mobile-title strong { display:block; color:var(--pmb-anthracite); font-size:16px; line-height:1.18; overflow-wrap:anywhere; }
  .planning-mobile-title span { display:block; margin-top:3px; color:#475569; font-size:13px; font-weight:900; line-height:1.2; overflow-wrap:anywhere; }
  .planning-mobile-time { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:0 9px; border-radius:999px; background:var(--pmb-anthracite); color:#fff; font-size:12px; font-weight:900; white-space:nowrap; }
  .planning-mobile-meta { display:grid; gap:5px; color:#475569; font-size:13px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
  .planning-mobile-work { border-left:4px solid var(--pmb-red); padding-left:9px; color:#0f172a; font-size:13px; font-weight:800; line-height:1.3; overflow-wrap:anywhere; }
  .planning-mobile-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .planning-mobile-actions .btn { min-width:0; width:100%; padding:8px 6px; font-size:12px; line-height:1.1; }
  .planning-mobile-empty { border:1px dashed #cbd5e1; border-radius:14px; padding:18px 12px; background:#fff; color:#64748b; font-weight:800; text-align:center; line-height:1.35; }
  body.mobile-app-shell .planning-week-grid { overflow-x:visible; padding-bottom:0; }
  .planning-file-panel { margin-top:12px; border:1px dashed #cbd5e1; border-radius:12px; padding:12px; background:#f8fafc; }
  .planning-file-panel input { background:#fff; }
  .planning-attachment-list { display:grid; gap:8px; margin-top:10px; }
  .planning-attachment-item { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; min-width:0; }
  .planning-attachment-item a { color:#b91c1c; font-weight:900; text-decoration:none; overflow-wrap:anywhere; }
  .planning-attachment-item a:hover,
  .planning-attachment-item a:focus { text-decoration:underline; }
  .planning-attachment-open { border:0; background:transparent; color:#b91c1c; font:inherit; font-weight:900; text-align:left; padding:0; cursor:pointer; overflow-wrap:anywhere; }
  .planning-attachment-open:hover,
  .planning-attachment-open:focus { text-decoration:underline; }
  body.attachment-viewer-open { overflow:hidden; overscroll-behavior:none; }
  .pdf-open-link { color:#b91c1c; font-weight:900; text-decoration:none; }
  .pdf-open-link:hover,
  .pdf-open-link:focus { text-decoration:underline; }
  .planning-attachment-viewer-overlay { position:fixed; inset:0; z-index:12000; background:rgba(15,23,42,.58); display:none; align-items:center; justify-content:center; padding:14px; overscroll-behavior:none; }
  .planning-attachment-viewer { position:relative; width:min(980px,100%); height:min(860px,calc(100dvh - 28px)); background:#fff; border:1px solid #dbe3ee; border-radius:8px; box-shadow:0 24px 70px rgba(15,23,42,.35); display:grid; grid-template-rows:auto auto minmax(0,1fr); overflow:hidden; }
  .planning-attachment-viewer-head { position:relative; z-index:3; min-width:0; display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 10px; border-bottom:1px solid #e2e8f0; background:#fff; }
  .planning-attachment-viewer-back,
  .planning-attachment-viewer-icon-action { width:42px; height:42px; min-width:42px; min-height:42px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #cbd5e1; border-radius:999px; padding:0; background:#fff; color:#0f172a; font:inherit; font-size:21px; font-weight:950; line-height:1; text-decoration:none; cursor:pointer; }
  .planning-attachment-viewer-back:hover,
  .planning-attachment-viewer-back:focus-visible,
  .planning-attachment-viewer-icon-action:hover,
  .planning-attachment-viewer-icon-action:focus-visible { background:#f1f5f9; outline:3px solid rgba(227,6,19,.2); outline-offset:1px; }
  .planning-attachment-viewer-title-wrap { min-width:0; }
  .planning-attachment-viewer-head h2 { margin:0; max-width:100%; color:inherit; font-size:17px; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .planning-attachment-viewer-head .form-status { max-width:100%; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .planning-attachment-viewer-actions { display:flex; align-items:center; gap:8px; flex-wrap:nowrap; justify-content:flex-end; }
  .planning-attachment-viewer-body { min-height:0; background:#f8fafc; overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
  .planning-attachment-viewer-body iframe,
  .planning-attachment-viewer-body img { width:100%; height:100%; border:0; display:block; }
  .planning-attachment-viewer-body img { object-fit:contain; padding:12px; image-orientation:from-image; }
  .planning-attachment-pdf-toolbar { position:relative; z-index:2; min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:5px 10px; border-bottom:1px solid #31353a; background:#292c30; color:#fff; }
  .planning-attachment-pdf-toolbar[hidden] { display:none !important; }
  .planning-attachment-pdf-page-controls,
  .planning-attachment-pdf-zoom-controls { display:flex; align-items:center; gap:5px; min-width:0; }
  .planning-attachment-pdf-toolbar button { min-width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #555b61; border-radius:6px; padding:0 9px; background:#3b3f44; color:#fff; font:inherit; font-size:19px; font-weight:900; line-height:1; cursor:pointer; }
  .planning-attachment-pdf-toolbar button:hover,
  .planning-attachment-pdf-toolbar button:focus-visible { background:#50555b; border-color:#7b828a; outline:2px solid rgba(255,255,255,.24); outline-offset:1px; }
  .planning-attachment-pdf-toolbar button:disabled { opacity:.38; cursor:default; }
  #planningAttachmentPdfPageIndicator { min-width:92px; color:#f8fafc; font-size:12px; font-weight:900; text-align:center; white-space:nowrap; }
  .planning-attachment-pdf-toolbar .planning-attachment-pdf-zoom-label { min-width:58px; font-size:12px; }
  .planning-attachment-pdf-toolbar .planning-attachment-pdf-fit { min-width:58px; font-size:12px; }
  .planning-attachment-viewer-overlay.pdf-mode { padding:0; background:#202124; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer { width:100%; height:100dvh; border:0; border-radius:0; box-shadow:none; background:#3f4246; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer-head { border-bottom-color:#31353a; background:#202124; color:#fff; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer-head .form-status { color:#cbd5e1; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer-back,
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer-icon-action { border-color:#4b5055; background:#303337; color:#fff; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer-body { overflow-x:hidden; background:#525659; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-viewer-body.pdf-zoomed { overflow-x:auto; }
  .planning-attachment-viewer-overlay.pdf-mode #planningAttachmentViewerExternal { display:none !important; }
  .planning-attachment-pdf-pages { width:max-content; min-width:100%; min-height:100%; display:grid; gap:18px; justify-items:center; align-content:start; padding:18px; }
  .planning-attachment-pdf-page { width:max-content; min-width:100%; display:grid; gap:6px; justify-items:center; scroll-margin-top:12px; }
  .planning-attachment-pdf-page-label { color:#64748b; font-size:12px; font-weight:900; }
  .planning-attachment-viewer-overlay.pdf-mode .planning-attachment-pdf-page-label { color:#e2e8f0; }
  .planning-attachment-pdf-canvas { max-width:none; height:auto; display:block; background:#fff; border:1px solid #9ca3af; border-radius:2px; box-shadow:0 8px 24px rgba(0,0,0,.34); }
  .tr-thumb[type="button"] { padding:0; font-family:inherit; cursor:pointer; }
  body.planning-detail-open { overflow:hidden; }
  .planning-detail-overlay { position:fixed; inset:0; z-index:9400; background:rgba(15,23,42,.46); display:none; align-items:flex-start; justify-content:center; padding:24px 14px; overflow:auto; overscroll-behavior:contain; touch-action:pan-y; }
  .planning-detail-dialog { width:min(720px,100%); background:#fff; border-radius:14px; border:1px solid #dbe3ee; box-shadow:0 24px 70px rgba(15,23,42,.32); padding:16px; overscroll-behavior:contain; }
  .planning-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; border-bottom:1px solid #e2e8f0; padding-bottom:12px; margin-bottom:12px; }
  .planning-detail-head h2 { margin:0; font-size:22px; line-height:1.15; }
  .planning-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .planning-detail-field { border:1px solid #e2e8f0; border-radius:10px; padding:10px; background:#f8fafc; min-width:0; }
  .planning-detail-field strong { display:block; font-size:12px; color:#64748b; margin-bottom:4px; }
  .planning-detail-field div { overflow-wrap:anywhere; }
  .planning-detail-line { margin-top:4px; }
  .planning-detail-line:first-child { margin-top:0; }
  .planning-detail-label { font-weight:800; color:#475569; margin-right:4px; }
  .planning-detail-wide { grid-column:1 / -1; }
  .resource-planning-page { display:grid; gap:14px; }
  .resource-planning-toolbar { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
  .resource-planning-toolbar > div { min-width:170px; flex:1; }
  .resource-planning-toolbar .resource-planning-view { flex:0 0 auto; min-width:0; }
  .resource-planning-toolbar label { color:#475569; font-size:12px; font-weight:900; }
  .resource-planning-segment { display:inline-grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border:1px solid #d6dbe2; border-radius:7px; overflow:hidden; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
  .resource-planning-segment button { min-height:40px; min-width:82px; border:0; border-left:1px solid #e2e8f0; border-radius:0; background:#fff; color:#1f2937; font:inherit; font-size:13px; font-weight:900; cursor:pointer; }
  .resource-planning-segment button:first-child { border-left:0; }
  .resource-planning-segment button.active { background:#d71920; color:#fff; box-shadow:inset 0 -2px 0 rgba(0,0,0,.08); }
  .resource-planning-date-nav { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; border:1px solid #d6dbe2; border-radius:7px; overflow:hidden; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
  .resource-planning-date-field { position:relative; min-width:0; border-left:1px solid #e2e8f0; border-right:1px solid #e2e8f0; }
  .resource-planning-date-nav input { min-width:0; border:0; border-radius:0; text-align:center; font-weight:900; }
  .resource-planning-date-field input { position:relative; z-index:1; width:100%; }
  .resource-planning-date-field input::-webkit-calendar-picker-indicator { opacity:1; }
  .resource-planning-date-field span { position:absolute; inset:0 34px 0 10px; z-index:0; display:none; align-items:center; justify-content:center; color:#111827; font-size:13px; font-weight:900; pointer-events:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .resource-planning-date-nav button { border:0; border-radius:0; background:#fff; color:#111827; font-size:18px; font-weight:900; cursor:pointer; }
  .resource-planning-date-nav button:hover,
  .resource-planning-date-nav button:focus { background:#f3f4f6; outline:none; }
  .resource-planning-actions { display:flex; align-items:end; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .resource-planning-actions .btn { border-radius:7px; }
  .resource-planning-period-chip { display:none; color:#6b7280; font-size:12px; font-weight:800; white-space:nowrap; }
  .resource-planning-top-search { display:none; }
  .resource-planning-top-profile { display:none; }
  .resource-planning-notification,
  .resource-planning-user-pill { font:inherit; }
  .desktop-shell-topbar { display:none; }
  .desktop-shell-search { position:relative; }
  .desktop-shell-search input { width:100%; }
  .desktop-global-search-results { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:95; display:none; max-height:min(520px, calc(100dvh - 120px)); overflow:auto; border:1px solid #cbd5e1; border-radius:10px; background:#fff; box-shadow:0 18px 42px rgba(15,23,42,.18); padding:6px; }
  .desktop-global-search-results.show { display:grid; gap:4px; }
  .desktop-global-search-title { padding:7px 9px 3px; color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:0; }
  .desktop-global-search-item { width:100%; min-height:48px; display:grid; grid-template-columns:80px minmax(0,1fr); gap:9px; align-items:center; border:0; border-radius:8px; padding:8px 9px; background:#fff; color:#0f172a; text-align:left; cursor:pointer; }
  .desktop-global-search-item:hover,
  .desktop-global-search-item.active { background:#f1f5f9; outline:none; }
  .desktop-global-search-type { display:inline-flex; align-items:center; justify-content:center; min-height:24px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; font-weight:950; }
  .desktop-global-search-main { min-width:0; }
  .desktop-global-search-main strong,
  .desktop-global-search-main small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .desktop-global-search-main strong { font-size:13px; line-height:1.2; }
  .desktop-global-search-main small { margin-top:3px; color:#64748b; font-size:12px; font-weight:800; }
  .resource-planning-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
  .resource-planning-kpi { min-width:0; border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 3px rgba(15,23,42,.07); }
  .resource-planning-kpi span { display:block; color:#64748b; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
  .resource-planning-kpi strong { display:block; margin-top:5px; color:#0f172a; font-size:26px; line-height:1; font-weight:900; }
  .resource-planning-workspace { display:grid; grid-template-columns:minmax(0,2fr) minmax(320px,.9fr); gap:14px; align-items:start; }
  .resource-planning-timeline-card { min-width:0; }
  .resource-planning-timeline-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px; }
  .resource-planning-grid { min-width:max-content; display:grid; grid-template-columns:minmax(var(--rp-label-width, 220px), var(--rp-label-width, 220px)) repeat(var(--rp-cols), var(--rp-col-width)); border:1px solid #dbe3ee; border-radius:12px; overflow:visible; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.08); }
  .resource-planning-corner,
  .resource-planning-slot { min-height:46px; display:flex; align-items:center; justify-content:center; padding:8px; border-bottom:1px solid #dbe3ee; background:#f8fafc; color:#0f172a; font-size:12px; font-weight:900; line-height:1.15; text-align:center; }
  .resource-planning-corner { justify-content:flex-start; position:sticky; left:0; z-index:4; border-right:1px solid #dbe3ee; }
  .resource-planning-slot { border-left:1px solid #e2e8f0; }
  .resource-planning-slot.today { background:#fff1f2; color:#991b1b; }
  .resource-planning-slot span { display:block; }
  .resource-planning-slot small { display:block; margin-top:2px; color:#6b7280; font-size:11px; font-weight:900; }
  .resource-planning-week-cell,
  .resource-planning-weekday-cell,
  .resource-planning-day-cell {
    min-height:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-left:1px solid #edf2f7;
    border-bottom:1px solid #dbe3ee;
    background:#fff;
    color:#111827;
    font-size:11px;
    font-weight:900;
    line-height:1;
  }
  .resource-planning-week-cell { color:#475569; font-size:10px; }
  .resource-planning-weekday-cell { min-height:25px; }
  .resource-planning-day-cell { min-height:25px; }
  .resource-planning-weekday-cell.weekend,
  .resource-planning-day-cell.weekend { background:#fff7f7; color:#b91c1c; }
  .resource-planning-day-cell.today span {
    width:22px;
    height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#d71920;
    color:#fff;
  }
  .resource-planning-calendar-corner {
    align-items:flex-start;
    justify-content:flex-start;
    padding:28px 10px 8px;
    background:#fff;
  }
  .resource-planning-today-button {
    min-height:32px;
    padding:0 12px;
    border:1px solid #d6dbe2;
    border-radius:5px;
    background:#fff;
    color:#111827;
    font:inherit;
    font-size:12px;
    font-weight:850;
    cursor:pointer;
  }
  .resource-planning-group-label,
  .resource-planning-group-track { min-height:46px; display:flex; align-items:center; border-top:1px solid #dbe3ee; background:#f8fafc; }
  .resource-planning-group-label { position:sticky; left:0; z-index:3; grid-column:1; gap:8px; padding:0 12px; border-right:1px solid #dbe3ee; color:#111827; font-size:18px; font-weight:900; }
  .resource-planning-group-label span { display:inline-flex; align-items:center; justify-content:center; min-width:25px; height:20px; padding:0 7px; border-radius:999px; background:#e5e7eb; color:#475569; font-size:12px; font-weight:900; }
  .resource-planning-group-track { grid-column:2 / -1; border-left:0; color:#94a3b8; }
  .resource-planning-row-label { position:sticky; left:0; z-index:3; grid-column:1; min-height:42px; display:flex; flex-direction:column; justify-content:center; gap:2px; padding:7px 10px; border-top:1px solid #e2e8f0; border-right:1px solid #dbe3ee; background:#fff; color:#0f172a; font-weight:900; overflow:visible; }
  .resource-planning-row-main { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0; }
  .resource-planning-row-main strong { min-width:0; overflow:visible; overflow-wrap:anywhere; white-space:normal; line-height:1.15; }
  .resource-planning-row-label span { color:#64748b; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
  .resource-planning-row-tools { display:flex; align-items:center; gap:6px; flex:0 0 auto; }
  .resource-planning-order-buttons { display:inline-flex; align-items:center; gap:2px; }
  .resource-planning-order-button { width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #dbe3ee; border-radius:6px; background:#fff; color:#475569; font-size:12px; font-weight:900; line-height:1; cursor:pointer; }
  .resource-planning-order-button:hover,
  .resource-planning-order-button:focus { border-color:#d71920; color:#d71920; outline:none; }
  .resource-planning-order-button:disabled { opacity:.35; cursor:not-allowed; border-color:#e5e7eb; color:#94a3b8; }
  .resource-planning-row-track { position:relative; grid-column:2 / -1; min-height:42px; border-top:1px solid #e2e8f0; background:repeating-linear-gradient(to right,#fff 0,#fff calc(var(--rp-col-width) - 1px),#edf2f7 calc(var(--rp-col-width) - 1px),#edf2f7 var(--rp-col-width)); transition:background-color .14s ease, box-shadow .14s ease; }
  .resource-planning-row-track.drop-target { background-color:#f0fdf4; box-shadow:inset 0 0 0 2px rgba(34,197,94,.36); }
  .resource-planning-row-track.drop-blocked { background-color:#fff1f2; box-shadow:inset 0 0 0 2px rgba(244,63,94,.28); }
  .resource-planning-bar { position:absolute; top:6px; height:28px; display:flex; align-items:center; gap:6px; min-width:34px; padding:0 9px; border:1px solid #9ca3af; border-radius:4px; background:#e0f2fe; color:#075985; box-shadow:0 5px 12px rgba(15,23,42,.09); font-size:12px; font-weight:950; line-height:1.08; letter-spacing:0; overflow:hidden; cursor:pointer; }
  .resource-planning-bar:hover,
  .resource-planning-bar:focus { outline:2px solid rgba(185,28,28,.25); outline-offset:2px; }
  .resource-planning-bar small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:950; line-height:1.08; }
  .resource-planning-bar.person { background:#dbeafe; border-color:#93c5fd; color:#1e3a8a; }
  .resource-planning-bar.machine { background:#dcfce7; border-color:#86efac; color:#166534; }
  .resource-planning-bar.site-color-0 { background:#fee2e2; border-color:#fca5a5; color:#7f1d1d; }
  .resource-planning-bar.site-color-1 { background:#fef3c7; border-color:#facc15; color:#78350f; }
  .resource-planning-bar.site-color-2 { background:#dbeafe; border-color:#93c5fd; color:#1e3a8a; }
  .resource-planning-bar.site-color-3 { background:#dcfce7; border-color:#86efac; color:#14532d; }
  .resource-planning-bar.site-color-4 { background:#ffedd5; border-color:#fdba74; color:#7c2d12; }
  .resource-planning-bar.site-color-5 { background:#f3e8ff; border-color:#d8b4fe; color:#581c87; }
  .resource-planning-bar.site-color-6 { background:#e5e7eb; border-color:#cbd5e1; color:#374151; }
  .resource-planning-bar.tentative { background:#fef9c3; border-color:#facc15; color:#854d0e; }
  .resource-planning-bar.transferred { background:#ede9fe; border-color:#c4b5fd; color:#5b21b6; }
  .resource-planning-bar.completed { background:#dcfce7; border-color:#86efac; color:#166534; }
  .resource-planning-bar.site-manager-mt { background:#dcfce7; border-color:#86efac; color:#14532d; }
  .resource-planning-bar.site-manager-mb { background:#dbeafe; border-color:#93c5fd; color:#1e3a8a; }
  .resource-planning-bar.site-manager-pg { background:#ffedd5; border-color:#fdba74; color:#7c2d12; }
  .resource-planning-bar.site-manager-unassigned { background:#e5e7eb; border-color:#cbd5e1; color:#374151; }
  .resource-planning-bar.conflict { background:#ffe4e6; border-color:#fb7185; color:#9f1239; }
  .resource-planning-bar.automatic { border-style:dashed; }
  .resource-planning-bar.site-board-editable { padding-left:20px; padding-right:20px; cursor:grab; touch-action:none; user-select:none; }
  .resource-planning-bar.site-board-editable small { pointer-events:none; }
  .resource-planning-bar.site-board-editable.dragging { z-index:30; opacity:.94; cursor:grabbing; box-shadow:0 12px 26px rgba(15,23,42,.22); }
  .resource-planning-bar.site-board-editable.saving { opacity:.64; cursor:progress; }
  .resource-planning-bar.site-board-editable .resource-planning-resize-handle { position:absolute; top:4px; bottom:4px; width:11px; border-radius:3px; background:rgba(15,23,42,.18); opacity:.55; cursor:ew-resize; }
  .resource-planning-bar.site-board-editable .resource-planning-resize-handle:hover { opacity:.85; background:rgba(15,23,42,.28); }
  .resource-planning-bar.site-board-editable .resource-planning-resize-handle.start { left:3px; }
  .resource-planning-bar.site-board-editable .resource-planning-resize-handle.end { right:3px; }
  body.resource-planning-drag-active { cursor:grabbing; }
  .resource-planning-empty { padding:18px; border:1px dashed #cbd5e1; border-radius:12px; background:#fff; color:#64748b; font-weight:800; text-align:center; }
  .resource-planning-panel { display:grid; gap:12px; }
  .resource-planning-panel-card { border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 3px rgba(15,23,42,.07); min-width:0; }
  .resource-planning-panel-card h3 { margin:0 0 10px; color:#0f172a; font-size:16px; line-height:1.2; }
  .resource-planning-panel-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
  .resource-planning-panel-head h3 { margin:0; }
  .resource-planning-count-badge { min-width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; padding:0 7px; border-radius:7px; background:#fee2e2; color:#dc2626; font-size:12px; font-weight:900; }
  .resource-planning-list { display:grid; gap:8px; }
  .resource-planning-list-item { display:grid; gap:5px; min-width:0; padding:9px; border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; }
  .resource-planning-list-item strong,
  .resource-planning-list-item span { min-width:0; overflow-wrap:anywhere; }
  .resource-planning-list-item span { color:#64748b; font-size:12px; font-weight:800; line-height:1.3; }
  .resource-planning-list-item.conflict { border-color:#fb7185; background:#fff1f2; }
  .resource-planning-list-actions { display:flex; gap:7px; flex-wrap:wrap; }
  .resource-planning-list-actions .btn { min-height:32px; padding:6px 9px; border-radius:8px; font-size:12px; }
  .resource-planning-inline-assign { display:grid; gap:6px; margin-top:2px; }
  .resource-planning-inline-assign select { width:100%; min-height:34px; border-radius:8px; font-size:12px; font-weight:800; }
  .resource-planning-selected { display:grid; gap:9px; }
  .resource-planning-selected-title { display:flex; align-items:center; gap:8px; min-width:0; font-weight:900; color:#111827; }
  .resource-planning-selected-dot { width:12px; height:12px; flex:0 0 auto; border-radius:999px; background:#facc15; box-shadow:0 0 0 3px rgba(250,204,21,.18); }
  .resource-planning-selected-grid { display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 12px; color:#374151; font-size:13px; font-weight:800; }
  .resource-planning-selected-grid span:nth-child(odd) { color:#6b7280; }
  .resource-planning-selected-editor { display:grid; gap:8px; padding-top:8px; border-top:1px solid #e5e7eb; }
  .resource-planning-selected-editor label { display:grid; gap:4px; margin:0; color:#475569; font-size:12px; font-weight:900; }
  .resource-planning-selected-editor select,
  .resource-planning-selected-editor input { min-height:34px; border-radius:8px; font-size:12px; font-weight:800; }
  .resource-planning-selected-editor .date-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .resource-planning-selected-editor .btn { width:100%; min-height:36px; border-radius:8px; }
  .resource-planning-selected-section { display:grid; gap:8px; padding-top:8px; border-top:1px solid #e5e7eb; }
  .resource-planning-selected-section-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .resource-planning-selected-section-head strong { color:#0f172a; font-size:13px; font-weight:950; }
  .resource-planning-selected-section-head .btn { min-height:30px; padding:5px 8px; border-radius:7px; font-size:12px; }
  .resource-planning-selected-resource-list { display:grid; gap:7px; }
  .resource-planning-selected-resource-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0; padding:8px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; color:#0f172a; font-size:12px; font-weight:850; }
  .resource-planning-selected-resource-item strong,
  .resource-planning-selected-resource-item span { min-width:0; overflow-wrap:anywhere; }
  .resource-planning-selected-resource-item span { display:block; margin-top:2px; color:#64748b; font-size:11px; font-weight:800; line-height:1.25; }
  .resource-planning-selected-resource-item .btn { min-height:28px; padding:4px 8px; border-radius:7px; font-size:11px; white-space:nowrap; }
  .resource-planning-selected-resource-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
  .resource-planning-quick-person-form { display:grid; gap:7px; padding:8px; border:1px solid #dbe3ee; border-radius:9px; background:#fff; }
  .resource-planning-quick-person-form label { display:grid; gap:4px; margin:0; color:#475569; font-size:11px; font-weight:900; }
  .resource-planning-quick-person-form select,
  .resource-planning-quick-person-form input { min-height:32px; border-radius:7px; font-size:12px; font-weight:850; }
  .resource-planning-quick-person-form .date-row { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
  .resource-planning-quick-person-actions { display:flex; align-items:center; justify-content:space-between; gap:7px; }
  .resource-planning-quick-person-actions .btn { min-height:32px; padding:5px 9px; border-radius:7px; font-size:12px; }
  .resource-planning-quick-person-actions .btn.secondary { min-width:52px; }
  .resource-planning-quick-person-status { min-height:16px; color:#64748b; font-size:11px; font-weight:800; line-height:1.25; }
  .resource-planning-legend { display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:10px 12px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; color:#374151; font-size:12px; font-weight:800; box-shadow:0 1px 3px rgba(15,23,42,.06); }
  .resource-planning-legend-item { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
  .resource-planning-legend-dot { width:10px; height:10px; border-radius:999px; border:1px solid rgba(15,23,42,.12); }
  .resource-planning-forms { display:grid; gap:14px; }
  .resource-planning-form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; align-items:start; }
  .resource-planning-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .resource-planning-form-grid .wide-field { grid-column:1 / -1; }
  .resource-planning-form-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .resource-planning-form-actions > div { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .machines-page { display:grid; gap:14px; }
  .machine-filter-pills { display:flex; gap:7px; flex-wrap:wrap; align-items:center; min-width:0; }
  .machine-filter-pills button { min-height:34px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; color:#334155; padding:6px 10px; font-size:12px; font-weight:900; cursor:pointer; }
  .machine-filter-pills button.active { border-color:var(--pmb-red); background:#fff1f2; color:#991b1b; box-shadow:inset 0 0 0 1px rgba(227,6,19,.22); }
  .machine-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:10px; }
  .machine-kpi { min-width:0; padding:12px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; }
  .machine-kpi.bad { background:#fff1f2; border-color:#fecaca; }
  .machine-kpi.warn { background:#fffbeb; border-color:#fde68a; }
  .machine-kpi.ok { background:#f0fdf4; border-color:#bbf7d0; }
  .machine-kpi span { display:block; color:#64748b; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
  .machine-kpi strong { display:block; margin-top:4px; color:#0f172a; font-size:24px; line-height:1; font-weight:950; }
  .machine-workspace { display:grid; grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr); gap:14px; align-items:start; }
  .machines-page .resource-planning-top-search { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,.55fr); gap:8px; min-width:min(520px,100%); }
  .machine-overview-card .subheader { align-items:flex-start; }
  .machine-category-manager { display:grid; gap:10px; }
  .machine-category-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .machine-category-toolbar .btn { min-height:34px; padding:6px 10px; border-radius:7px; font-size:12px; }
  .machine-category-create { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
  .machine-category-list { display:grid; gap:9px; min-width:0; }
  .machine-category-pill { display:inline-flex; align-items:center; gap:7px; min-height:32px; padding:4px 7px 4px 9px; border:1px solid #d7e0ea; border-radius:7px; background:#f8fafc; color:#344054; font-size:12px; font-weight:900; }
  .machine-category-pill.selected { background:#dbeafe; border-color:#93c5fd; color:#1e3a8a; }
  .machine-category-name-button { display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; padding:0; min-height:24px; text-align:left; }
  .machine-category-name-button strong { display:inline-flex; align-items:center; justify-content:center; min-width:22px; min-height:20px; padding:0 6px; border-radius:999px; background:#fff; color:#475569; font-size:11px; font-weight:950; }
  .machine-category-pill .btn { min-height:24px; min-width:24px; padding:0 6px; border-radius:6px; font-size:11px; }
  .machine-list { display:grid; gap:9px; }
  .machine-category-group { display:grid; gap:8px; min-width:0; }
  .machine-category-group-title { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; min-height:42px; padding:0; border:1px solid #dbe3ee; border-radius:8px; background:#f1f5f9; color:#334155; font-size:12px; font-weight:950; overflow:hidden; }
  .machine-category-group-title.open { background:#e0f2fe; border-color:#bae6fd; color:#0c4a6e; }
  .machine-category-main-button { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:8px; min-height:42px; padding:7px 9px; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
  .machine-category-main-button strong { min-width:0; overflow-wrap:anywhere; }
  .machine-category-group-title .machine-category-group-count { display:inline-flex; align-items:center; justify-content:center; min-width:24px; min-height:22px; padding:0 7px; border-radius:999px; background:#fff; color:#475569; font-size:11px; font-weight:950; }
  .machine-category-group-toggle { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:999px; background:#fff; color:#0f172a; font-size:15px; line-height:1; font-weight:950; }
  .machine-category-delete-button { align-self:stretch; min-width:40px; min-height:42px; border:0; border-left:1px solid #dbe3ee; border-radius:0; background:#fff1f2; color:#991b1b; font-size:16px; font-weight:950; cursor:pointer; }
  .machine-category-group-body { display:grid; gap:8px; min-width:0; }
  .machine-card { display:grid; grid-template-columns:92px minmax(0,1fr); gap:10px; min-width:0; padding:11px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.06); }
  .machine-card.selected { border-color:var(--pmb-red); box-shadow:0 0 0 2px rgba(227,6,19,.12), 0 8px 22px rgba(15,23,42,.08); }
  .machine-card-media { width:92px; height:92px; min-height:0; align-self:start; border:1px solid #dbe3ee; border-radius:8px; overflow:hidden; background:#f1f5f9; color:#475569; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:950; text-align:center; cursor:pointer; padding:0; }
  .machine-card-media img { width:100%; height:100%; object-fit:cover; display:block; }
  .machine-fallback-visual { width:100%; height:100%; min-height:inherit; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:7px 6px; background:#f2f4f7; color:#202936; overflow:hidden; }
  .machine-fallback-visual svg { width:min(62px,76%); height:min(58px,68%); flex:0 0 auto; fill:currentColor; stroke:none; }
  .machine-fallback-visual small { display:block; max-width:100%; color:#4b5565; font-size:10px; line-height:1; font-weight:950; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .machine-fallback-visual.compact { min-height:0; gap:0; padding:0; background:transparent; color:inherit; }
  .machine-fallback-visual.compact svg { width:82%; height:82%; max-width:52px; max-height:52px; fill:currentColor; stroke:none; }
  .machine-card-body { min-width:0; display:grid; gap:8px; }
  .machine-card-top { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; }
  .machine-card-title { min-width:0; }
  .machine-card-title strong { display:block; min-width:0; color:#0f172a; font-size:15px; line-height:1.15; font-weight:950; overflow-wrap:anywhere; }
  .machine-card-title span { display:block; margin-top:3px; color:#64748b; font-size:12px; font-weight:850; overflow-wrap:anywhere; }
  .machine-meta { display:flex; flex-wrap:wrap; gap:6px; }
  .machine-chip { min-height:24px; display:inline-flex; align-items:center; padding:0 7px; border:1px solid #d7e0ea; border-radius:6px; background:#f8fafc; color:#344054; font-size:11px; font-weight:900; white-space:nowrap; }
  .machine-chip.ok { background:#dcfce7; border-color:#bbf7d0; color:#166534; }
  .machine-chip.warn { background:#fef3c7; border-color:#fde68a; color:#92400e; }
  .machine-chip.bad { background:#fee2e2; border-color:#fecaca; color:#991b1b; }
  .machine-card-actions { display:flex; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
  .machine-card-actions .btn { min-height:32px; padding:6px 9px; border-radius:7px; font-size:12px; }
  .machine-current-site { display:flex; gap:6px; align-items:flex-start; padding:7px 8px; border:1px solid #e2e8f0; border-radius:7px; background:#f8fafc; color:#334155; font-size:12px; font-weight:850; }
  .machine-current-site strong { color:#0f172a; font-weight:950; white-space:nowrap; }
  .machine-current-site span { min-width:0; overflow-wrap:anywhere; }
  .machine-photo-strip { display:flex; gap:7px; flex-wrap:wrap; align-items:center; min-width:0; }
  .machine-photo-thumb { position:relative; width:74px; height:56px; border:1px solid #dbe3ee; border-radius:7px; overflow:hidden; background:#f8fafc; }
  .machine-photo-thumb a { display:block; width:100%; height:100%; }
  .machine-photo-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
  .machine-photo-thumb .btn { position:absolute; top:3px; right:3px; width:24px; min-width:24px; min-height:24px; padding:0; border-radius:999px; font-size:12px; line-height:1; }
  .machine-photo-thumb .photo-save-button { left:3px; bottom:3px; min-height:22px; padding:4px 6px; font-size:9px; }
  .machine-photo-empty { padding:8px; border:1px dashed #cbd5e1; border-radius:8px; color:#64748b; font-size:12px; font-weight:850; background:#f8fafc; }
  .machine-photo-upload { display:grid; gap:7px; padding:10px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; }
  .machine-photo-upload-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .machine-photo-upload input[type="file"] { padding:8px; border:1px dashed #cbd5e1; border-radius:7px; background:#fff; }
  .machine-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .machine-form-grid .wide-field { grid-column:1 / -1; }
  .machine-form-grid textarea { min-height:84px; resize:vertical; }
  .machine-detail-summary { display:grid; gap:10px; margin-bottom:12px; }
  .machine-detail-hero { display:grid; grid-template-columns:112px minmax(0,1fr); gap:12px; align-items:center; padding:10px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; }
  .machine-detail-photo { width:112px; aspect-ratio:4 / 3; border:1px solid #dbe3ee; border-radius:8px; overflow:hidden; background:#fff; color:#64748b; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:950; text-align:center; }
  .machine-detail-photo img { width:100%; height:100%; object-fit:cover; display:block; }
  .machine-detail-title { min-width:0; display:grid; gap:6px; }
  .machine-detail-title strong { color:#0f172a; font-size:20px; line-height:1.1; font-weight:950; overflow-wrap:anywhere; }
  .machine-detail-title span { color:#64748b; font-size:13px; font-weight:850; overflow-wrap:anywhere; }
  .machine-detail-actions { display:flex; gap:7px; flex-wrap:wrap; }
  .machine-detail-actions .btn { min-height:34px; padding:6px 10px; border-radius:7px; font-size:12px; }
  .machine-detail-tabs { display:flex; gap:7px; overflow-x:auto; padding-bottom:2px; margin-bottom:12px; }
  .machine-detail-tabs button { flex:0 0 auto; min-height:36px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; color:#334155; padding:7px 10px; font-size:12px; font-weight:900; cursor:pointer; }
  .machine-detail-tabs button.active { border-color:var(--pmb-red); background:var(--pmb-red); color:#fff; }
  .machine-tab-panel { display:none; }
  .machine-tab-panel.active { display:block; }
  .machine-service-toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; padding:10px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; margin-top:10px; }
  .machine-service-toolbar .form-status { flex:1 1 180px; }
  @media (max-width: 900px) {
    .machines-page { gap:12px; }
    .machines-page .toolbar { align-items:stretch; }
    .machines-page .resource-planning-top-search { width:100%; min-width:0; grid-template-columns:1fr; }
    .machine-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .machine-kpi { padding:10px; }
    .machine-kpi strong { font-size:20px; }
    .machine-filter-pills { overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; }
    .machine-filter-pills button { flex:0 0 auto; min-height:38px; }
    .machine-workspace { grid-template-columns:1fr; gap:12px; }
    .machine-category-toolbar { justify-content:space-between; }
    .machine-category-toolbar .btn { min-height:38px; }
    .machine-category-create { grid-template-columns:1fr; }
    .machine-category-create .btn { width:100%; }
    .machine-category-main-button { min-height:48px; }
    .machine-category-delete-button { min-height:48px; }
    .machine-category-pill { width:100%; justify-content:space-between; }
    .machine-list { gap:10px; }
    .machine-card { grid-template-columns:78px minmax(0,1fr); padding:12px; gap:10px; }
    .machine-card-media { width:78px; height:78px; min-height:0; }
    .machine-card-top { grid-template-columns:1fr; }
    .machine-card-title strong { font-size:17px; }
    .machine-card-title span { font-size:13px; }
    .machine-meta { gap:7px; }
    .machine-chip { min-height:28px; font-size:12px; }
    .machine-photo-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
    .machine-photo-thumb { width:100%; height:76px; }
    .machine-card-actions .btn { width:100%; min-height:42px; font-size:14px; }
    .machine-detail-hero { grid-template-columns:1fr; }
    .machine-detail-photo { width:min(160px, 100%); justify-self:center; }
    .machine-detail-title strong { font-size:17px; }
    .machine-detail-actions .btn { flex:1 1 120px; min-height:40px; }
    .machine-detail-tabs { margin-left:-2px; margin-right:-2px; }
    .machine-detail-tabs button { min-height:40px; }
    body.mobile-app-shell #resourceMachineFormCard.machine-form-idle { display:none; }
    .machine-form-grid { grid-template-columns:1fr; }
    .machine-form-grid .wide-field { grid-column:auto; }
    .machine-photo-upload-row { display:grid; grid-template-columns:1fr; }
    .machine-photo-upload input[type="file"],
    .machine-photo-upload .btn { width:100%; }
  }
  .employee-planning-page { display:grid; gap:14px; }
  .employee-planning-top-search { display:none; }
  .employee-planning-workspace { display:grid; grid-template-columns:minmax(0,1fr) 70px; gap:14px; align-items:stretch; }
  .employee-planning-board { min-width:0; display:grid; gap:10px; }
  .employee-planning-week-strip { display:grid; grid-template-columns:repeat(var(--employee-planning-slots, 15), minmax(34px, 1fr)); border:1px solid #dbe3ee; border-radius:10px; overflow:hidden; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.06); }
  .employee-planning-week-strip div { min-height:38px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-left:1px solid #edf1f5; color:#344054; font-size:10px; font-weight:900; text-align:center; line-height:1.1; }
  .employee-planning-week-strip div:first-child { border-left:0; }
  .employee-planning-week-strip div.weekend { background:#fff7f7; color:#b91c1c; }
  .employee-planning-week-strip strong { display:block; margin-top:2px; font-size:12px; }
  .employee-planning-bands { display:grid; gap:10px; }
  .employee-planning-band { border:1px solid #dbe3ee; border-radius:10px; background:#f8fafc; overflow:hidden; box-shadow:0 1px 3px rgba(15,23,42,.07); }
  .employee-planning-band-head { min-height:50px; display:grid; grid-template-columns:minmax(160px, 220px) minmax(0,1fr) auto; gap:12px; align-items:center; padding:9px 12px; border-bottom:1px solid #dbe3ee; }
  .employee-planning-band-head strong { display:block; color:#0f172a; font-size:15px; line-height:1.1; font-weight:950; }
  .employee-planning-band-head span { display:block; margin-top:3px; color:#64748b; font-size:11px; font-weight:850; }
  .employee-planning-band-note { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#475569; font-size:11px; font-weight:800; }
  .employee-planning-band-counts { display:flex; justify-content:flex-end; gap:5px; flex-wrap:wrap; }
  .employee-planning-pill { min-height:24px; display:inline-flex; align-items:center; padding:0 7px; border:1px solid rgba(15,23,42,.12); border-radius:6px; background:rgba(255,255,255,.78); color:#1f2937; font-size:10px; font-weight:950; white-space:nowrap; }
  .employee-planning-card-grid { padding:10px; display:grid; grid-template-columns:repeat(auto-fit, minmax(282px, 1fr)); gap:10px; align-items:start; }
  .employee-planning-site-card { min-width:0; border:1px solid #d7e0ea; border-radius:8px; background:#fff; box-shadow:0 8px 18px rgba(15,23,42,.065); overflow:hidden; }
  .employee-planning-site-card.selected { box-shadow:0 0 0 2px rgba(223,24,32,.2), 0 8px 18px rgba(15,23,42,.065); }
  .employee-planning-site-card.drop-target { border-color:#22c55e; box-shadow:0 0 0 3px rgba(34,197,94,.22), 0 8px 18px rgba(15,23,42,.065); }
  .employee-planning-site-top { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; padding:8px 9px; border-bottom:1px solid #e2e8f0; border-left:5px solid #cbd5e1; background:#f8fafc; }
  .employee-planning-site-top strong { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#0f172a; font-size:12px; line-height:1.15; font-weight:950; }
  .employee-planning-site-top span { display:block; margin-top:3px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#64748b; font-size:10px; font-weight:850; }
  .employee-planning-status-tag { min-height:21px; display:inline-flex; align-items:center; padding:0 6px; border:1px solid #d7e0ea; border-radius:5px; background:#f8fafc; color:#344054; font-size:10px; font-weight:950; white-space:nowrap; }
  .employee-planning-status-tag.ok { background:#dcfce7; border-color:#bbf7d0; color:#166534; }
  .employee-planning-status-tag.warn { background:#fef3c7; border-color:#fde68a; color:#92400e; }
  .employee-planning-status-tag.bad { background:#fee2e2; border-color:#fecaca; color:#991b1b; }
  .employee-planning-mini-timeline { height:23px; display:grid; grid-template-columns:68px minmax(0,1fr); gap:7px; align-items:center; padding:0 9px; border-bottom:1px solid #eef2f7; }
  .employee-planning-mini-timeline small { color:#344054; font-size:10px; font-weight:950; }
  .employee-planning-mini-line { position:relative; height:7px; border-radius:999px; background:#e5e7eb; overflow:hidden; }
  .employee-planning-mini-fill { position:absolute; top:0; bottom:0; border-radius:999px; background:#111827; }
  .employee-planning-compact-rows { display:grid; gap:5px; padding:7px 9px 9px; }
  .employee-planning-compact-row { min-height:22px; display:grid; grid-template-columns:82px minmax(0,1fr); gap:7px; align-items:center; }
  .employee-planning-compact-row label { color:#64748b; font-size:9px; font-weight:950; text-transform:uppercase; }
  .employee-planning-chips { display:flex; gap:4px; min-width:0; overflow:hidden; }
  .employee-planning-chip { max-width:104px; min-height:22px; display:inline-flex; align-items:center; padding:0 6px; border:1px solid #d7e0ea; border-radius:5px; background:#f8fafc; color:#1f2937; font:inherit; font-size:10px; font-weight:900; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  button.employee-planning-chip { cursor:pointer; }
  .employee-planning-chip.draggable { cursor:grab; user-select:none; }
  .employee-planning-chip.draggable:active { cursor:grabbing; }
  .employee-planning-chip.assignment-selected { box-shadow:0 0 0 2px rgba(215,25,32,.22); border-color:#d71920; }
  .employee-planning-chip.lead,
  .employee-planning-chip.machine { background:#111827; border-color:#111827; color:#fff; }
  .employee-planning-chip.crane { background:#4c1d95; border-color:#4c1d95; color:#fff; }
  .employee-planning-chip.person { background:#e6f1ff; border-color:#9fc5f8; color:#183f72; }
  .employee-planning-chip.helper { background:#eaf7ec; border-color:#95d3a1; color:#19592a; }
  .employee-planning-chip.open { background:#fff7ed; border-color:#fdba74; color:#9a3412; }
  .employee-planning-chip.more { background:#f1f5f9; border-color:#cbd5e1; color:#334155; }
  .employee-planning-rail { display:flex; flex-direction:column; gap:8px; }
  .employee-planning-rail-button { min-height:76px; border:1px solid #d7e0ea; border-radius:8px; background:#fff; color:#253044; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:6px 4px; font-size:10px; font-weight:850; text-align:center; line-height:1.05; cursor:pointer; box-shadow:0 1px 3px rgba(15,23,42,.06); }
  .employee-planning-rail-button.active { background:#111827; border-color:#111827; color:#fff; box-shadow:0 8px 18px rgba(15,23,42,.16); }
  .employee-planning-rail-button.drop-target { border-color:#22c55e; box-shadow:0 0 0 3px rgba(34,197,94,.22), 0 8px 18px rgba(15,23,42,.14); }
  .employee-planning-rail-button strong { min-width:22px; height:22px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#eef2f7; color:#101828; font-size:11px; font-weight:950; }
  .employee-planning-rail-button.active strong { background:#fff; color:#111827; }
  .employee-planning-workspace { position:relative; }
  .employee-planning-drawer {
    position:absolute;
    top:0;
    right:84px;
    z-index:24;
    width:min(360px, calc(100vw - 360px));
    max-height:calc(100dvh - 150px);
    overflow:auto;
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid #dbe3ee;
    border-radius:10px;
    background:#fff;
    box-shadow:0 18px 40px rgba(15,23,42,.18);
  }
  .employee-planning-drawer[hidden] { display:none !important; }
  .employee-planning-drawer-head { display:flex; align-items:start; justify-content:space-between; gap:10px; padding-bottom:8px; border-bottom:1px solid #e5e7eb; }
  .employee-planning-drawer-head h3 { margin:0; color:#0f172a; font-size:15px; line-height:1.15; font-weight:950; }
  .employee-planning-drawer-head span { display:block; margin-top:3px; color:#64748b; font-size:11px; font-weight:800; line-height:1.25; }
  .employee-planning-drawer-close { width:28px; height:28px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; border:1px solid #d7e0ea; border-radius:7px; background:#fff; color:#334155; font-size:16px; font-weight:950; cursor:pointer; }
  .employee-planning-drawer-section { display:grid; gap:7px; }
  .employee-planning-drawer-section strong { color:#0f172a; font-size:12px; font-weight:950; }
  .employee-planning-drawer-section-title { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#0f172a; font-size:12px; font-weight:950; }
  .employee-planning-drawer-section-title span { color:#64748b; font-size:10px; font-weight:900; }
  .employee-planning-drawer-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px 9px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .employee-planning-drawer-item.draggable { cursor:grab; user-select:none; }
  .employee-planning-drawer-item.draggable:active { cursor:grabbing; }
  .employee-planning-drawer-item.pool-selected { border-color:#d71920; background:#fff1f2; box-shadow:0 0 0 2px rgba(215,25,32,.12); }
  .employee-planning-drawer-item.assignment-selected { border-color:#d71920; background:#fff1f2; box-shadow:0 0 0 2px rgba(215,25,32,.12); }
  .employee-planning-drawer-item strong { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#0f172a; font-size:12px; line-height:1.15; font-weight:950; }
  .employee-planning-drawer-item span { display:block; margin-top:3px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#64748b; font-size:10px; font-weight:800; }
  .employee-planning-drawer-item-main { min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:7px; align-items:center; }
  .employee-planning-drawer-item-main.with-machine-thumb { grid-template-columns:36px minmax(0,1fr); }
  .employee-planning-drawer-item .employee-planning-machine-thumb { width:36px; height:32px; display:grid; place-items:center; margin:0; border:1px solid #dbe3ee; border-radius:6px; background:#eef2f6; color:#344054; overflow:hidden; }
  .employee-planning-drawer-item .employee-planning-machine-thumb img { width:100%; height:100%; display:block; object-fit:cover; }
  .employee-planning-drawer-item .employee-planning-machine-thumb .machine-fallback-visual { width:100%; height:100%; min-height:0; margin:0; padding:0; color:#344054; }
  .employee-planning-drawer-item .employee-planning-machine-thumb svg { width:26px; height:26px; }
  .employee-planning-drawer-kv { display:grid; grid-template-columns:96px minmax(0,1fr); gap:6px 10px; color:#334155; font-size:12px; font-weight:850; }
  .employee-planning-drawer-kv span:nth-child(odd) { color:#64748b; }
  .employee-planning-pool-return-zone { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:9px; border:1px dashed #cbd5e1; border-radius:9px; background:#f8fafc; color:#334155; }
  .employee-planning-pool-return-zone.drop-target { border-color:#22c55e; background:#ecfdf5; box-shadow:0 0 0 3px rgba(34,197,94,.16); }
  .employee-planning-pool-return-zone strong { display:block; color:#0f172a; font-size:12px; font-weight:950; }
  .employee-planning-pool-return-zone span { display:block; margin-top:3px; color:#64748b; font-size:10px; font-weight:800; line-height:1.25; }
  .employee-planning-pool-return-zone .btn { min-height:30px; padding:5px 8px; border-radius:7px; font-size:11px; white-space:nowrap; }
  .employee-planning-pool-category { display:grid; gap:6px; }
  .employee-planning-pool-category-button { width:100%; min-height:38px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; align-items:center; padding:7px 9px; border:1px solid #dbe3ee; border-radius:8px; background:#f1f5f9; color:#334155; font:inherit; font-size:12px; font-weight:950; text-align:left; cursor:pointer; }
  .employee-planning-pool-category-button.open { background:#e0f2fe; border-color:#bae6fd; color:#0c4a6e; }
  .employee-planning-pool-category-button strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; }
  .employee-planning-pool-category-count { display:inline-flex; align-items:center; justify-content:center; min-width:24px; min-height:22px; padding:0 7px; border-radius:999px; background:#fff; color:#475569; font-size:11px; font-weight:950; }
  .employee-planning-pool-category-toggle { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:999px; background:#fff; color:#0f172a; font-size:15px; line-height:1; font-weight:950; }
  .employee-planning-pool-category-body { display:grid; gap:7px; }
  .employee-planning-empty { padding:18px; border:1px dashed #cbd5e1; border-radius:10px; background:#fff; color:#64748b; font-weight:850; text-align:center; }
  @media (min-width:1700px) {
    .employee-planning-card-grid { grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); }
  }
  @media (max-width:1099px) {
    .employee-planning-workspace { grid-template-columns:1fr; }
    .employee-planning-rail { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
    .employee-planning-rail-button { min-height:54px; }
    .employee-planning-drawer { position:static; width:100%; max-height:none; }
    .employee-planning-band-head { grid-template-columns:1fr; align-items:start; }
    .employee-planning-band-counts { justify-content:flex-start; }
  }
  .checkbox-field { min-height:42px; display:flex; align-items:center; gap:8px; padding:9px; margin-bottom:0; border:1px solid #cbd5e1; border-radius:9px; background:#fff; font-weight:800; color:#334155; cursor:pointer; }
  .checkbox-field input { width:auto; min-height:auto; height:auto; padding:0; margin:0; border:0; border-radius:0; }
  .wide-field { grid-column:span 2; }
  .pmb-icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
  .pmb-icon-sprite symbol * { fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
  .desktop-admin-sidebar { display:none; }
  .desktop-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr); gap:14px; align-items:start; }
  .desktop-dashboard-side { display:grid; gap:12px; min-width:0; }
  .desktop-kpi-summary { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(0,2fr); gap:12px; margin-bottom:14px; }
  .desktop-kpi-panel { min-width:0; display:grid; gap:10px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; padding:12px; box-shadow:0 1px 4px rgba(15,23,42,.07); }
  .desktop-kpi-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px solid #eef2f7; }
  .desktop-kpi-panel-head span { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; line-height:1.15; }
  .desktop-kpi-panel-head strong { color:#0f172a; font-size:15px; font-weight:950; line-height:1.15; text-align:right; white-space:nowrap; }
  .desktop-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(118px,1fr)); gap:8px; margin:0; }
  .desktop-kpi { min-width:0; min-height:76px; display:grid; grid-template-rows:minmax(24px,auto) 30px; align-content:start; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:10px 11px; box-shadow:none; }
  .desktop-kpi.is-attention { background:#fff7ed; border-color:#fed7aa; }
  .desktop-kpi.is-danger { background:#fff1f2; border-color:#fecdd3; }
  .desktop-kpi-label { min-height:24px; color:#64748b; font-size:10.5px; font-weight:950; text-transform:uppercase; letter-spacing:0; line-height:1.15; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow-wrap:break-word; word-break:normal; }
  .desktop-kpi-value { align-self:end; display:flex; align-items:flex-end; min-height:30px; margin-top:4px; color:#0f172a; font-size:26px; font-weight:950; line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
  .desktop-list { display:grid; gap:9px; }
  .desktop-list-item { min-width:0; border:1px solid #dbe3ee; border-radius:10px; padding:10px; background:#f8fafc; }
  .desktop-list-item strong,
  .desktop-list-item span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .desktop-list-item small { display:block; margin-top:3px; color:#64748b; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .desktop-action-list { display:grid; gap:8px; }
  .desktop-action-card { width:100%; display:grid; gap:2px; border:1px solid #dbe3ee; border-radius:10px; padding:10px; background:#f8fafc; color:#0f172a; text-align:left; cursor:pointer; }
  .desktop-action-card:hover,
  .desktop-action-card:focus-visible { border-color:#94a3b8; background:#fff; outline:none; box-shadow:0 8px 18px rgba(15,23,42,.10); }
  .desktop-action-card.warn { border-left:4px solid #f59e0b; }
  .desktop-action-card.error { border-left:4px solid #dc2626; }
  .desktop-action-card.good { border-left:4px solid #16a34a; }
  .desktop-action-card strong { font-size:13px; line-height:1.25; }
  .desktop-action-card span { color:#64748b; font-size:12px; font-weight:800; line-height:1.3; }
  .desktop-action-empty { min-height:58px; display:flex; align-items:center; justify-content:center; padding:14px; border:1px dashed #cbd5e1; border-radius:10px; background:#f8fafc; color:#64748b; font-size:13px; font-weight:900; text-align:center; }
  .desktop-action-card strong,
  .desktop-action-card span,
  .desktop-print-row strong,
  .desktop-print-row small,
  .home-mobile-overview-item strong,
  .home-mobile-overview-item span,
  .home-mobile-task-row strong,
  .home-mobile-task-row span { overflow-wrap:break-word; word-break:normal; }
  .desktop-print-panel { display:grid; gap:8px; }
  .desktop-print-toolbar { display:grid; gap:8px; padding:9px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; }
  .desktop-print-toolbar-row { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
  .desktop-print-select-all { display:inline-flex; align-items:center; gap:8px; min-height:32px; color:#334155; font-size:13px; font-weight:900; cursor:pointer; }
  .desktop-print-select-all input,
  .desktop-print-row input { width:20px; height:20px; min-height:0; margin:0; flex:0 0 auto; accent-color:var(--pmb-red); cursor:pointer; }
  .desktop-print-batch-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .desktop-print-batch-actions .btn { min-height:34px; padding:6px 9px; border-radius:8px; font-size:12px; }
  .desktop-print-status { min-height:18px; color:#64748b; font-size:12px; font-weight:800; }
  .desktop-print-list-table { display:grid; gap:6px; max-height:430px; overflow:auto; padding-right:2px; }
  .desktop-print-row { display:grid; grid-template-columns:26px minmax(0,1fr); gap:8px; align-items:start; padding:9px; border:1px solid #dbe3ee; border-radius:9px; background:#f8fafc; cursor:pointer; }
  .desktop-print-row:hover { background:#fff; }
  .desktop-print-row.is-selected { border-color:#fca5a5; background:#fff1f2; }
  .desktop-print-row.is-missing { opacity:.72; cursor:default; }
  .desktop-print-row strong,
  .desktop-print-row small { display:block; overflow:visible; text-overflow:clip; white-space:normal; }
  .desktop-print-row strong { color:#0f172a; font-size:13px; line-height:1.2; }
  .desktop-print-row small { margin-top:2px; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; }
  .desktop-print-type { color:#334155; }
  .desktop-print-missing { color:#92400e; font-size:12px; font-weight:900; }
  .desktop-week-strip { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
  .desktop-day-column { min-width:0; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; padding:10px; }
  .desktop-day-column h3 { margin:0 0 8px; font-size:13px; color:#334155; }
  .desktop-week-pill { margin-top:6px; border-radius:8px; padding:7px 8px; background:#fff; border:1px solid #e2e8f0; font-size:12px; font-weight:800; line-height:1.25; overflow:hidden; }
  .desktop-week-pill.done { background:#dcfce7; border-color:#86efac; color:#166534; }
  .desktop-week-pill.warning { background:#fef3c7; border-color:#facc15; color:#713f12; }
  .rapport-test-mode-toggle {
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:9px 12px;
    border:1px solid #f59e0b;
    border-radius:10px;
    background:#fffbeb;
    color:#78350f;
    font-size:13px;
    font-weight:950;
    line-height:1;
    cursor:pointer;
  }
  .rapport-test-mode-toggle input {
    width:18px;
    height:18px;
    min-height:0;
    margin:0;
    accent-color:#f59e0b;
    cursor:pointer;
  }
  .rapport-test-mode-toggle[hidden],
  .rapport-test-mode-banner[hidden] { display:none !important; }
  .rapport-test-mode-banner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:-4px 0 10px;
    padding:10px 12px;
    border:1px solid #f59e0b;
    border-radius:12px;
    background:#fffbeb;
    color:#78350f;
    font-size:13px;
    font-weight:900;
    line-height:1.3;
  }
  .rapport-test-mode-banner strong { color:#92400e; }
  .home-shell { display:grid; gap:14px; }
  .home-title-lockup { display:flex; align-items:center; gap:12px; min-width:0; }
  .home-logo-mark {
    width:44px;
    height:44px;
    flex:0 0 auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2px;
    padding:4px;
    border:1px solid var(--pmb-logo-gray);
    border-radius:8px;
    background:#fff;
    box-shadow:0 8px 18px rgba(36,36,36,.10);
  }
  .home-logo-mark i { display:block; border-radius:1px; background:var(--pmb-red); }
  .home-logo-mark i:nth-child(2) { background:var(--pmb-logo-gray); transform:rotate(6deg); }
  .home-toolbar-subline { margin-top:2px; color:var(--pmb-charcoal); font-size:14px; font-weight:800; line-height:1.25; }
  .home-tile-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(142px,1fr));
    gap:14px;
  }
  .home-tile {
    position:relative;
    min-height:132px;
    display:grid;
    grid-template-rows:56px minmax(48px,auto);
    gap:10px;
    align-items:start;
    justify-items:center;
    padding:18px 14px 15px;
    border:1px solid #d7dcde;
    border-radius:12px;
    background:#fff;
    color:var(--pmb-anthracite);
    text-align:center;
    box-shadow:0 10px 24px rgba(36,36,36,.08);
    cursor:pointer;
    touch-action:manipulation;
  }
  .home-tile:hover,
  .home-tile:focus {
    border-color:var(--pmb-red);
    outline:none;
    box-shadow:0 14px 30px rgba(221,49,34,.14);
  }
  .home-tile-icon {
    width:56px;
    height:56px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #d7dcde;
    border-radius:12px;
    background:linear-gradient(180deg,#fff 0%,#f4f3f4 100%);
    color:var(--pmb-red);
    line-height:1;
    box-shadow:0 8px 18px rgba(36,36,36,.07);
  }
  .home-tile-icon .app-icon { width:30px; height:30px; stroke-width:2.1; }
  .home-tile:hover .home-tile-icon,
  .home-tile:focus .home-tile-icon {
    border-color:var(--pmb-red);
    background:#fff5f4;
    color:var(--pmb-red-dark);
  }
  .home-tile > span:last-child { min-width:0; width:100%; display:grid; align-content:start; justify-items:center; }
  .home-tile-title { display:-webkit-box; max-width:100%; font-size:15px; font-weight:900; line-height:1.18; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow-wrap:break-word; word-break:normal; }
  .home-tile-subtitle { display:-webkit-box; max-width:100%; min-height:30px; margin-top:4px; color:var(--pmb-charcoal); font-size:12px; font-weight:800; line-height:1.25; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow-wrap:break-word; word-break:normal; }
  .home-tile-badge {
    position:absolute;
    top:10px;
    right:10px;
    min-width:25px;
    height:25px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 7px;
    border-radius:999px;
    background:var(--pmb-red);
    color:#fff;
    font-size:12px;
    font-weight:900;
    box-shadow:0 8px 18px rgba(227,6,19,.25);
  }
  .home-tile-badge.warning { background:#f59e0b; }
  .home-tile-badge.danger { background:var(--pmb-red); }
  .home-mobile-status {
    display:none;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:8px 10px;
    border:1px solid #d7dcde;
    border-radius:12px;
    background:#fff;
    box-shadow:0 8px 20px rgba(36,36,36,.07);
  }
  .home-mobile-status-main {
    min-width:0;
    display:grid;
    gap:2px;
  }
  .home-mobile-status-main strong {
    color:var(--pmb-anthracite);
    font-size:13px;
    line-height:1.15;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home-mobile-status-main span {
    color:#64748b;
    font-size:11px;
    font-weight:850;
    line-height:1.15;
  }
  .home-mobile-status .offline-status {
    flex:0 0 auto;
    min-height:28px;
    padding:4px 8px;
    font-size:11px;
  }
  .home-mobile-status .btn {
    flex:0 0 auto;
    min-height:34px;
    padding:6px 9px;
    border-radius:9px;
    font-size:12px;
  }
  .home-mobile-status-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    flex:0 0 auto;
  }
  .home-mobile-support-button {
    border-color:#d7dcde;
    color:var(--pmb-anthracite);
  }
  .home-mobile-quick-actions {
    display:none;
  }
  .home-mobile-overview {
    display:none;
  }
  .home-mobile-tasks {
    display:none;
  }
  .home-mobile-overview-card {
    border:1px solid #d7dcde;
    border-radius:16px;
    background:#fff;
    box-shadow:0 12px 28px rgba(36,36,36,.10);
    overflow:hidden;
  }
  .home-mobile-overview-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding:13px 14px 10px;
    border-bottom:1px solid #eef2f6;
  }
  .home-mobile-overview-head strong {
    display:block;
    color:var(--pmb-anthracite);
    font-size:16px;
    font-weight:950;
    line-height:1.12;
  }
  .home-mobile-overview-head span {
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
    line-height:1.2;
  }
  .home-mobile-overview-count {
    flex:0 0 auto;
    min-width:36px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 9px;
    border-radius:999px;
    background:#fef2f2;
    color:var(--pmb-red);
    font-size:15px;
    font-weight:950;
  }
  .home-mobile-overview-list {
    display:grid;
  }
  .home-mobile-overview-item {
    width:100%;
    min-height:58px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:10px;
    align-items:center;
    padding:10px 14px;
    border:0;
    border-bottom:1px solid #eef2f6;
    background:#fff;
    color:var(--pmb-anthracite);
    text-align:left;
    cursor:pointer;
    touch-action:manipulation;
  }
  .home-mobile-overview-item:last-child { border-bottom:0; }
  .home-mobile-overview-time {
    min-width:52px;
    padding:5px 7px;
    border-radius:9px;
    background:#f4f3f4;
    color:var(--pmb-anthracite);
    font-size:11px;
    font-weight:950;
    line-height:1.1;
    text-align:center;
  }
  .home-mobile-overview-item strong,
  .home-mobile-overview-item span {
    display:block;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home-mobile-overview-item strong {
    font-size:13px;
    font-weight:950;
    line-height:1.12;
  }
  .home-mobile-overview-item span {
    margin-top:3px;
    color:#64748b;
    font-size:11px;
    font-weight:850;
    line-height:1.12;
  }
  .home-mobile-overview-empty {
    padding:13px 14px;
    color:#64748b;
    font-size:13px;
    font-weight:850;
    line-height:1.25;
  }
  .home-mobile-overview-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:10px 14px 13px;
    border-top:1px solid #eef2f6;
    background:#f8fafc;
  }
  .home-mobile-overview-actions .btn {
    width:100%;
    min-height:38px;
    padding:7px 9px;
    border-radius:10px;
    font-size:12px;
  }
  .home-mobile-task-card {
    border:1px solid #d7dcde;
    border-radius:16px;
    background:#fff;
    box-shadow:0 12px 28px rgba(36,36,36,.09);
    overflow:hidden;
  }
  .home-mobile-task-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding:12px 14px 10px;
    border-bottom:1px solid #eef2f6;
  }
  .home-mobile-task-head strong {
    display:block;
    color:var(--pmb-anthracite);
    font-size:15px;
    font-weight:950;
    line-height:1.12;
  }
  .home-mobile-task-head span {
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
    line-height:1.2;
  }
  .home-mobile-task-list {
    display:grid;
  }
  .home-mobile-task-row {
    width:100%;
    min-height:54px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:10px 14px;
    border:0;
    border-bottom:1px solid #eef2f6;
    background:#fff;
    color:var(--pmb-anthracite);
    text-align:left;
    cursor:pointer;
  }
  .home-mobile-task-row:last-child { border-bottom:0; }
  .home-mobile-task-row strong,
  .home-mobile-task-row span {
    display:block;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .home-mobile-task-row strong {
    font-size:13px;
    font-weight:950;
    line-height:1.15;
  }
  .home-mobile-task-row span {
    margin-top:3px;
    color:#64748b;
    font-size:11px;
    font-weight:850;
    line-height:1.12;
  }
  .home-mobile-task-badge {
    min-width:28px;
    height:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 8px;
    border-radius:999px;
    background:#f4f3f4;
    color:var(--pmb-anthracite);
    font-size:11px;
    font-weight:950;
  }
  .home-mobile-task-badge.warn {
    background:#fff1f2;
    color:#991b1b;
  }
  .home-mobile-task-empty {
    padding:12px 14px;
    color:#64748b;
    font-size:13px;
    font-weight:850;
    line-height:1.25;
  }
  .rapport-mobile-workbar,
  .rapport-mobile-review-card {
    display:none;
  }
  .rapport-mobile-workbar {
    border:1px solid #d7dcde;
    border-radius:16px;
    background:#fff;
    box-shadow:0 12px 28px rgba(36,36,36,.10);
    padding:10px;
    gap:10px;
  }
  .rapport-mobile-workbar-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }
  .rapport-mobile-workbar-head strong {
    display:block;
    color:var(--pmb-anthracite);
    font-size:14px;
    font-weight:950;
    line-height:1.12;
  }
  .rapport-mobile-workbar-head span {
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:11px;
    font-weight:850;
    line-height:1.15;
  }
  .rapport-mobile-stepper {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:6px;
  }
  .rapport-mobile-step {
    min-width:0;
    min-height:44px;
    padding:7px 4px;
    border:1px solid #dbe3ee;
    border-radius:10px;
    background:#f8fafc;
    color:#475569;
    font-size:11px;
    font-weight:900;
    line-height:1.08;
    text-align:center;
    cursor:pointer;
  }
  .rapport-mobile-step.active {
    border-color:var(--pmb-red);
    background:#fff5f4;
    color:var(--pmb-red-dark);
    box-shadow:0 8px 18px rgba(227,6,19,.10);
  }
  .rapport-mobile-step.done {
    border-color:#bbf7d0;
    background:#f0fdf4;
    color:#166534;
  }
  .rapport-mobile-action-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  .rapport-mobile-action-row .btn {
    width:100%;
    min-height:38px;
    padding:8px 6px;
    border-radius:10px;
    font-size:12px;
  }
  .rapport-mobile-review-card {
    border:1px solid #d7dcde;
    border-radius:14px;
    background:#fff;
    box-shadow:0 10px 24px rgba(36,36,36,.08);
  }
  .rapport-mobile-review-card .review-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
  }
  .rapport-mobile-review-card .review-head strong {
    display:block;
    color:var(--pmb-anthracite);
    font-size:16px;
    font-weight:950;
    line-height:1.12;
  }
  .rapport-mobile-review-card .review-head span {
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
    line-height:1.2;
  }
  .rapport-mobile-check-list {
    display:grid;
    gap:7px;
  }
  .rapport-mobile-check-item {
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:8px;
    align-items:start;
    padding:9px 10px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc;
    color:#334155;
    font-size:12px;
    font-weight:850;
    line-height:1.25;
  }
  .rapport-mobile-check-item.warn {
    border-color:#fde68a;
    background:#fffbeb;
    color:#92400e;
  }
  .rapport-mobile-check-item.error {
    border-color:#fecdd3;
    background:#fff1f2;
    color:#991b1b;
  }
  .rapport-mobile-check-mark {
    width:20px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#e2e8f0;
    color:#334155;
    font-size:12px;
    font-weight:950;
  }
  .rapport-mobile-check-item.ok .rapport-mobile-check-mark {
    background:#dcfce7;
    color:#166534;
  }
  .rapport-mobile-check-item.warn .rapport-mobile-check-mark {
    background:#fef3c7;
    color:#92400e;
  }
  .rapport-mobile-check-item.error .rapport-mobile-check-mark {
    background:#ffe4e6;
    color:#991b1b;
  }
  .home-mobile-quick-action {
    position:relative;
    min-width:0;
    min-height:74px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:10px;
    padding:11px 12px;
    border:1px solid #d7dcde;
    border-radius:14px;
    background:#fff;
    color:var(--pmb-anthracite);
    text-align:left;
    box-shadow:0 10px 24px rgba(36,36,36,.08);
    cursor:pointer;
    touch-action:manipulation;
  }
  .home-mobile-quick-action:focus-visible,
  .home-mobile-quick-action:hover {
    border-color:var(--pmb-red);
    outline:none;
    box-shadow:0 14px 30px rgba(221,49,34,.13);
  }
  .home-mobile-quick-action .home-tile-icon {
    width:42px;
    height:42px;
    border-radius:11px;
  }
  .home-mobile-quick-action strong,
  .home-mobile-quick-action span {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .home-mobile-quick-action strong {
    display:block;
    color:var(--pmb-anthracite);
    font-size:14px;
    font-weight:950;
    line-height:1.1;
    white-space:nowrap;
  }
  .home-mobile-quick-action span:not(.home-tile-icon):not(.home-tile-badge) {
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:11px;
    font-weight:850;
    line-height:1.15;
    white-space:nowrap;
  }
  .home-daily-summary-teaser {
    display:none;
    width:100%;
    border:1px solid #dbe3ee;
    border-radius:14px;
    background:#fff;
    color:var(--pmb-anthracite);
    box-shadow:0 10px 24px rgba(15,23,42,.08);
    cursor:pointer;
    text-align:left;
    touch-action:manipulation;
    overflow:hidden;
  }
  .home-daily-summary-teaser:focus-visible,
  .home-daily-summary-teaser:hover {
    border-color:var(--pmb-red);
    outline:none;
    box-shadow:0 14px 30px rgba(221,49,34,.12);
  }
  .home-daily-summary-copy {
    display:grid;
    gap:2px;
    min-width:0;
    padding:12px 13px;
  }
  .home-daily-summary-copy span {
    color:#64748b;
    font-size:10px;
    font-weight:950;
    letter-spacing:0;
    line-height:1.1;
    text-transform:uppercase;
  }
  .home-daily-summary-copy strong {
    color:var(--pmb-anthracite);
    font-size:15px;
    font-weight:950;
    line-height:1.15;
  }
  .home-daily-summary-copy small {
    color:#475569;
    font-size:12px;
    font-weight:850;
    line-height:1.2;
  }
  .home-daily-summary-visual {
    position:relative;
    min-height:76px;
    align-self:stretch;
    overflow:hidden;
    background:linear-gradient(180deg,#e0f2fe 0%,#f8fbff 74%,#e8f5ee 100%);
  }
  .home-daily-summary-sun {
    position:absolute;
    width:30px;
    height:30px;
    right:16px;
    top:14px;
    border-radius:50%;
    background:#facc15;
    box-shadow:0 0 0 7px rgba(250,204,21,.14), 0 0 22px rgba(250,204,21,.38);
    animation:dailyWeatherSun 4.5s ease-in-out infinite;
  }
  .home-daily-summary-cloud {
    position:absolute;
    width:58px;
    height:22px;
    left:12px;
    top:40px;
    border-radius:999px;
    background:#fff;
    box-shadow:0 8px 16px rgba(15,23,42,.1);
    animation:dailyWeatherCloud 7s ease-in-out infinite;
  }
  .home-daily-summary-cloud::before {
    content:"";
    position:absolute;
    width:28px;
    height:28px;
    left:8px;
    bottom:8px;
    border-radius:50%;
    background:#fff;
  }
  .home-daily-summary-cloud::after {
    content:"";
    position:absolute;
    width:32px;
    height:32px;
    right:8px;
    bottom:5px;
    border-radius:50%;
    background:#fff;
  }
  .home-admin-content { display:grid; gap:16px; }
  .home-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .home-section-heading h2 { margin:0; font-size:20px; color:var(--pmb-anthracite); text-transform:uppercase; letter-spacing:0; }
  .home-section-heading span { color:var(--pmb-charcoal); font-size:13px; font-weight:800; }
  .home-section-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .home-section-actions .btn { min-height:36px; padding:8px 12px; }
  .home-tile-grid.order-editing .home-tile { cursor:grab; }
  .home-tile-grid.order-editing .home-tile:active { cursor:grabbing; }
  .home-tile-grid.favorite-editing .home-tile { cursor:default; }
  .home-tile.mobile-favorite-active {
    border-color:var(--pmb-red);
    background:#fff5f4;
    box-shadow:0 12px 28px rgba(227,6,19,.12);
  }
  .home-tile-sort-card {
    user-select:none;
    outline:2px dashed transparent;
  }
  .home-tile-sort-card.drag-over {
    outline-color:var(--pmb-red);
    outline-offset:3px;
    background:#fff5f4;
  }
  .home-tile-order-actions {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-top:auto;
  }
  .home-tile-order-actions .btn {
    min-height:34px;
    padding:6px 8px;
    border-radius:9px;
    font-size:13px;
  }
  .home-tile-favorite-actions {
    width:100%;
    display:grid;
    gap:6px;
    margin-top:auto;
  }
  .home-tile-favorite-actions .btn {
    min-height:34px;
    padding:6px 8px;
    border-radius:9px;
    font-size:12px;
  }
  .home-tile-favorite-order {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .home-tile-favorite-order .btn {
    min-height:32px;
    padding:5px 8px;
    border-radius:8px;
    font-size:12px;
  }
  .home-tile-favorite-note {
    display:block;
    color:#64748b;
    font-size:11px;
    font-weight:850;
    line-height:1.2;
  }
  .support-type-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
  .support-type-card { display:grid; gap:4px; min-height:78px; padding:11px; border:1px solid #d7dcde; border-radius:12px; background:#fff; color:var(--pmb-anthracite); font:inherit; text-align:left; cursor:pointer; }
  .support-type-card strong { font-size:14px; line-height:1.1; }
  .support-type-card span { color:#64748b; font-size:12px; font-weight:800; line-height:1.2; }
  .support-type-card.active { border-color:var(--pmb-red); background:#fff5f4; box-shadow:0 0 0 3px rgba(227,6,19,.12); }
  .support-ticket-list { display:grid; gap:10px; }
  .support-ticket-card { display:grid; gap:8px; padding:12px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 8px 18px rgba(15,23,42,.06); }
  .support-ticket-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; flex-wrap:wrap; }
  .support-ticket-meta { display:flex; gap:6px; flex-wrap:wrap; color:#64748b; font-size:12px; font-weight:800; }
  .support-ticket-badge { display:inline-flex; align-items:center; min-height:22px; padding:3px 8px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; font-weight:900; }
  .support-ticket-badge.open { background:#fee2e2; color:#991b1b; }
  .support-ticket-badge.in_progress { background:#fef3c7; color:#92400e; }
  .support-ticket-badge.done { background:#dcfce7; color:#166534; }
  .support-ticket-badge.rejected { background:#e2e8f0; color:#475569; }
  .support-feedback { margin-top:10px; padding:11px 12px; border-radius:10px; border:1px solid #cbd5e1; background:#f8fafc; color:#334155; font-size:13px; font-weight:850; line-height:1.35; }
  .support-feedback.success { border-color:#86efac; background:#dcfce7; color:#166534; }
  .support-feedback.error { border-color:#fca5a5; background:#fee2e2; color:#991b1b; }
  .support-feedback.info { border-color:#bfdbfe; background:#eff6ff; color:#1d4ed8; }
  .support-diagnostic-card { margin-top:12px; display:grid; gap:10px; padding:12px; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; }
  .support-diagnostic-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; flex-wrap:wrap; }
  .support-diagnostic-head strong { display:block; color:#0f172a; font-size:15px; line-height:1.2; }
  .support-diagnostic-head span { display:block; margin-top:3px; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; }
  .support-diagnostic-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .support-diagnostic-actions .btn { min-height:38px; padding:7px 11px; font-size:13px; }
  .support-diagnostic-result { display:grid; gap:7px; }
  .support-diagnostic-result[hidden] { display:none; }
  .support-diagnostic-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:7px; }
  .support-diagnostic-check { display:grid; gap:3px; min-width:0; padding:8px 9px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; }
  .support-diagnostic-check strong { color:#0f172a; font-size:12px; line-height:1.15; }
  .support-diagnostic-check span { color:#64748b; font-size:11px; font-weight:800; line-height:1.2; overflow-wrap:anywhere; }
  .support-diagnostic-check.ok { border-color:#bbf7d0; background:#f0fdf4; }
  .support-diagnostic-check.warn { border-color:#fde68a; background:#fffbeb; }
  .support-diagnostic-check.error { border-color:#fecaca; background:#fff7f7; }
  .support-diagnostic-note { min-height:74px; }
  .support-diagnostic-details { border:1px solid #dbe3ee; border-radius:10px; background:#fff; overflow:hidden; }
  .support-diagnostic-details summary { cursor:pointer; list-style:none; padding:9px 11px; font-weight:900; color:#0f172a; background:#f8fafc; }
  .support-diagnostic-details summary::-webkit-details-marker { display:none; }
  .support-diagnostic-details-body { display:grid; gap:8px; padding:10px; }
  .admin-support-diagnosis-card { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; padding:12px; border:1px solid #bfdbfe; border-radius:12px; background:#eff6ff; color:#1e3a8a; }
  .admin-support-diagnosis-card strong { display:block; font-size:14px; line-height:1.2; color:#0f172a; }
  .admin-support-diagnosis-card span { display:block; margin-top:3px; font-size:12px; font-weight:800; line-height:1.25; color:#475569; }
  .admin-support-diagnosis-card .btn { flex:0 0 auto; min-height:38px; }
  @media (max-width:720px) {
    .admin-support-diagnosis-card { display:grid; align-items:stretch; }
    .admin-support-diagnosis-card .btn { width:100%; }
  }
  .support-admin-editor { display:grid; gap:8px; grid-template-columns:180px minmax(0,1fr); align-items:end; }
  .support-admin-editor .wide-field { grid-column:1 / -1; }
  .daily-summary-overlay { position:fixed; inset:0; z-index:180; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.42); backdrop-filter:blur(4px); }
  .daily-summary-overlay[hidden] { display:none !important; }
  .daily-summary-dialog { width:min(720px,100%); max-height:min(760px,calc(100dvh - 28px)); overflow:auto; display:grid; gap:14px; border:1px solid #dbe3ee; border-radius:18px; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.26); color:var(--pmb-anthracite); }
  .daily-summary-dialog.daily-summary-intro { position:relative; width:min(860px,100%); gap:0; overflow:auto; border:0; background:#fff; color:var(--pmb-anthracite); box-shadow:0 28px 80px rgba(15,23,42,.32); }
  .daily-summary-intro .daily-summary-head { position:absolute; inset:0 0 auto; z-index:8; display:flex; justify-content:flex-end; padding:14px; pointer-events:none; }
  .daily-summary-intro .daily-summary-head > div { display:none; }
  .daily-summary-intro .daily-summary-close { pointer-events:auto; border-color:rgba(255,255,255,.42); background:rgba(15,23,42,.46); color:#fff; backdrop-filter:blur(8px); box-shadow:0 10px 22px rgba(15,23,42,.18); }
  .daily-summary-intro .daily-summary-body { gap:0; padding:0; }
  .daily-summary-intro .daily-summary-actions { margin-top:0; padding:13px 16px 16px; background:#fff; border-top:1px solid #e2e8f0; }
  .daily-intro-hero { position:relative; min-height:390px; overflow:hidden; color:#fff; background:#0f172a; }
  .daily-intro-visual { position:absolute; inset:0; min-height:100%; }
  .daily-intro-visual .daily-weather-visual { width:100%; height:100%; min-height:390px; border-radius:0; }
  .daily-intro-visual .daily-weather-visual::after { opacity:.72; background:linear-gradient(90deg,rgba(15,23,42,.78) 0%,rgba(15,23,42,.52) 45%,rgba(15,23,42,.16) 100%), linear-gradient(180deg,rgba(15,23,42,.12),rgba(15,23,42,.46)); mix-blend-mode:normal; }
  .daily-intro-content { position:relative; z-index:5; min-height:390px; display:grid; align-content:end; gap:18px; padding:34px; }
  .daily-intro-kicker { display:inline-flex; align-items:center; width:max-content; min-height:28px; padding:5px 10px; border:1px solid rgba(255,255,255,.38); border-radius:999px; background:rgba(15,23,42,.24); color:#fff; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:0; backdrop-filter:blur(6px); }
  .daily-intro-content h3 { margin:0; max-width:640px; color:#fff; font-size:42px; line-height:1.02; letter-spacing:0; text-shadow:0 12px 32px rgba(15,23,42,.32); }
  .daily-intro-content p { margin:0; max-width:570px; color:rgba(255,255,255,.9); font-size:16px; font-weight:850; line-height:1.35; text-shadow:0 8px 22px rgba(15,23,42,.35); }
  .daily-intro-metrics { display:flex; flex-wrap:wrap; gap:8px; }
  .daily-intro-metric { display:inline-flex; align-items:center; min-height:32px; padding:7px 11px; border:1px solid rgba(255,255,255,.34); border-radius:999px; background:rgba(255,255,255,.18); color:#fff; font-size:13px; font-weight:950; line-height:1.1; backdrop-filter:blur(8px); }
  .daily-intro-panel { display:grid; gap:12px; padding:16px 18px 18px; background:#fff; }
  .daily-intro-panel-head { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .daily-intro-panel-head strong { color:var(--pmb-anthracite); font-size:15px; font-weight:950; line-height:1.15; }
  .daily-intro-panel-head span { color:#64748b; font-size:12px; font-weight:850; }
  .daily-intro-plan-grid { display:grid; gap:9px; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
  .daily-intro-plan-card { display:grid; gap:6px; min-width:0; padding:11px; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; }
  .daily-intro-plan-card strong { color:var(--pmb-anthracite); font-size:13px; font-weight:950; line-height:1.2; overflow-wrap:anywhere; }
  .daily-intro-plan-card small { color:#64748b; font-size:11px; font-weight:850; line-height:1.25; overflow-wrap:anywhere; }
  .daily-intro-plan-card span { color:#334155; font-size:12px; font-weight:900; line-height:1.2; }
  .daily-summary-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; padding:18px 18px 0; }
  .daily-summary-head h2 { margin:0; font-size:24px; line-height:1.08; color:var(--pmb-anthracite); }
  .daily-summary-head p { margin:5px 0 0; color:#64748b; font-size:13px; font-weight:800; }
  .daily-summary-close { width:38px; height:38px; border:1px solid #d7dcde; border-radius:999px; background:#fff; color:var(--pmb-anthracite); font-size:24px; line-height:1; font-weight:900; cursor:pointer; }
  .daily-summary-body { display:grid; gap:12px; padding:0 18px; }
  .daily-summary-weather { min-height:166px; display:grid; grid-template-columns:minmax(0,1fr) 190px; gap:0; align-items:stretch; overflow:hidden; border:1px solid #dbe3ee; border-radius:16px; background:#fff; box-shadow:0 12px 26px rgba(15,23,42,.08); }
  .daily-weather-copy { display:grid; align-content:center; gap:10px; min-width:0; padding:18px; }
  .daily-weather-kicker { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:0; }
  .daily-weather-copy strong { display:block; color:var(--pmb-anthracite); font-size:22px; line-height:1.08; }
  .daily-weather-metrics { display:flex; flex-wrap:wrap; gap:7px; }
  .daily-weather-metric { display:inline-flex; align-items:center; min-height:28px; padding:5px 9px; border-radius:999px; background:#f8fafc; border:1px solid #e2e8f0; color:#334155; font-size:12px; font-weight:950; line-height:1.1; }
  .daily-weather-source { color:#64748b; font-size:11px; font-weight:850; line-height:1.25; }
  .daily-weather-temp { color:var(--pmb-red); font-weight:950; }
  .daily-weather-visual { position:relative; min-height:166px; overflow:hidden; background:#eaf6ff; --cloud-color:rgba(255,255,255,.94); --cloud-shadow:rgba(15,23,42,.12); --weather-photo:none; --weather-photo-position:center center; isolation:isolate; }
  .daily-weather-visual::before { content:""; position:absolute; z-index:0; inset:0; background-image:linear-gradient(180deg,rgba(15,23,42,.05),rgba(15,23,42,.03)), var(--weather-photo), linear-gradient(180deg,#9fd8ff 0%,#d9f3ff 52%,#f8fbff 74%,#edf8f1 100%); background-size:cover, cover, cover; background-position:center center, var(--weather-photo-position), center center; filter:saturate(.98) contrast(1.02); transform:scale(1.01); }
  .daily-weather-visual::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:radial-gradient(circle at 26% 14%,rgba(255,255,255,.22),transparent 28%), linear-gradient(180deg,rgba(255,255,255,.03),rgba(15,23,42,.10)); mix-blend-mode:screen; opacity:.55; }
  .daily-weather-ground { position:absolute; z-index:1; left:-10%; right:-10%; bottom:-28px; height:70px; border-radius:50% 50% 0 0; background:linear-gradient(180deg,#dff3e5,#cfe8d8); opacity:.9; }
  .daily-weather-canvas { position:absolute; z-index:4; inset:0; width:100%; height:100%; pointer-events:none; }
  .daily-weather-sun { position:absolute; z-index:2; width:76px; height:76px; left:calc(50% - 38px); top:25px; border-radius:50%; background:#facc15; box-shadow:0 0 0 13px rgba(250,204,21,.18), 0 0 54px rgba(250,204,21,.68); animation:dailyWeatherSun 4.5s ease-in-out infinite; }
  .daily-weather-sun::before { content:""; position:absolute; inset:-20px; border-radius:50%; background:repeating-conic-gradient(from 0deg, rgba(250,204,21,.45) 0 8deg, transparent 8deg 22deg); animation:dailyWeatherSunRays 12s linear infinite; }
  .daily-weather-sun::after { content:""; position:absolute; inset:0; border-radius:50%; background:#facc15; box-shadow:inset -8px -10px 18px rgba(234,179,8,.35); }
  .daily-weather-cloud { --cloud-scale:1; position:absolute; z-index:3; width:122px; height:44px; left:calc(50% - 72px); top:78px; border-radius:999px; background:var(--cloud-color); box-shadow:0 14px 24px var(--cloud-shadow), inset 0 -11px 20px rgba(148,163,184,.16), inset 0 8px 16px rgba(255,255,255,.58); filter:blur(.15px); animation:dailyWeatherCloud 7s ease-in-out infinite; }
  .daily-weather-cloud::before { content:""; position:absolute; width:62px; height:62px; left:13px; bottom:13px; border-radius:50%; background:var(--cloud-color); box-shadow:inset -8px -10px 16px rgba(148,163,184,.13); }
  .daily-weather-cloud::after { content:""; position:absolute; width:70px; height:70px; right:13px; bottom:8px; border-radius:50%; background:var(--cloud-color); box-shadow:inset -10px -12px 18px rgba(148,163,184,.14); }
  .daily-weather-cloud.two { --cloud-scale:.82; left:calc(50% - 18px); top:102px; opacity:.78; animation-duration:9s; animation-delay:-2s; }
  .daily-weather-rain,
  .daily-weather-snow,
  .daily-weather-fog,
  .daily-weather-wind,
  .daily-weather-lightning { display:none; }
  .daily-weather-visual.photo .daily-weather-sun,
  .daily-weather-visual.photo .daily-weather-cloud,
  .daily-weather-visual.photo .daily-weather-ground,
  .daily-weather-visual.photo .daily-weather-rain,
  .daily-weather-visual.photo .daily-weather-snow,
  .daily-weather-visual.photo .daily-weather-fog,
  .daily-weather-visual.photo .daily-weather-wind,
  .daily-weather-visual.photo .daily-weather-lightning { display:none !important; }
  .daily-weather-rain { position:absolute; z-index:3; width:8px; height:23px; border-radius:999px 999px 999px 2px; background:#1d4ed8; opacity:.9; transform:rotate(22deg); box-shadow:0 6px 12px rgba(37,99,235,.18); animation:dailyWeatherRain 1s linear infinite; }
  .daily-weather-rain.one { left:calc(50% - 46px); top:116px; }
  .daily-weather-rain.two { left:calc(50% - 18px); top:122px; animation-delay:-.28s; }
  .daily-weather-rain.three { left:calc(50% + 12px); top:116px; animation-delay:-.55s; }
  .daily-weather-rain.four { left:calc(50% + 42px); top:124px; animation-delay:-.76s; }
  .daily-weather-rain.five { left:calc(50% - 70px); top:127px; animation-delay:-.42s; }
  .daily-weather-rain.six { left:calc(50% + 68px); top:116px; animation-delay:-.18s; }
  .daily-weather-snow { position:absolute; z-index:3; width:22px; height:22px; color:#2563eb; animation:dailyWeatherSnow 3.2s ease-in-out infinite; }
  .daily-weather-snow::before,
  .daily-weather-snow::after { content:""; position:absolute; left:10px; top:2px; width:2px; height:18px; border-radius:999px; background:#fff; box-shadow:0 0 0 1px rgba(37,99,235,.16), 0 0 10px rgba(255,255,255,.75); }
  .daily-weather-snow::after { transform:rotate(60deg); }
  .daily-weather-snow i { position:absolute; left:10px; top:2px; width:2px; height:18px; border-radius:999px; background:#fff; transform:rotate(-60deg); box-shadow:0 0 0 1px rgba(37,99,235,.16); }
  .daily-weather-snow.one { left:calc(50% - 54px); top:113px; }
  .daily-weather-snow.two { left:calc(50% - 9px); top:103px; animation-delay:-1.1s; }
  .daily-weather-snow.three { left:calc(50% + 36px); top:119px; animation-delay:-2s; }
  .daily-weather-fog { position:absolute; z-index:3; left:22px; right:22px; height:10px; border-radius:999px; background:rgba(71,85,105,.5); box-shadow:0 1px 0 rgba(255,255,255,.52); animation:dailyWeatherFog 4.5s ease-in-out infinite; }
  .daily-weather-fog.one { top:92px; }
  .daily-weather-fog.two { top:116px; left:46px; animation-delay:-1.6s; }
  .daily-weather-fog.three { top:140px; right:48px; animation-delay:-3.1s; }
  .daily-weather-wind { position:absolute; z-index:4; left:22px; right:24px; height:9px; border-radius:999px; border-top:4px solid rgba(51,65,85,.72); animation:dailyWeatherWind 1.7s ease-in-out infinite; }
  .daily-weather-wind::after { content:""; position:absolute; right:0; top:-10px; width:22px; height:22px; border:4px solid rgba(51,65,85,.72); border-left-color:transparent; border-bottom-color:transparent; border-radius:50%; }
  .daily-weather-wind.one { top:104px; }
  .daily-weather-wind.two { top:128px; left:46px; animation-delay:-.55s; }
  .daily-weather-wind.three { top:151px; right:54px; animation-delay:-1.1s; }
  .daily-weather-lightning { position:absolute; z-index:5; left:calc(50% - 7px); top:104px; width:28px; height:56px; background:#facc15; filter:drop-shadow(0 6px 10px rgba(234,179,8,.35)); clip-path:polygon(42% 0,100% 0,62% 42%,100% 42%,24% 100%,44% 55%,0 55%); animation:dailyWeatherFlash 2.2s ease-in-out infinite; }
  .daily-weather-visual.sunny .daily-weather-cloud { opacity:0; }
  .daily-weather-visual.sunny { --weather-photo:url("/weather/sunny-v2.webp"); --weather-photo-position:center 46%; }
  .daily-weather-visual.partly { --weather-photo:url("/weather/partly-v2.webp"); --weather-photo-position:center 45%; }
  .daily-weather-visual.partly::after { opacity:.42; background:radial-gradient(circle at 28% 18%,rgba(255,255,255,.18),transparent 30%), linear-gradient(180deg,rgba(255,255,255,.08),rgba(15,23,42,.08)); }
  .daily-weather-visual.cloudy { --cloud-color:rgba(226,232,240,.96); --cloud-shadow:rgba(51,65,85,.2); }
  .daily-weather-visual.cloudy { --weather-photo:url("/weather/cloudy-v2.webp"); --weather-photo-position:center 45%; }
  .daily-weather-visual.cloudy::before { background:linear-gradient(180deg,#a8cfe8 0%,#dbeafe 55%,#f8fbff 78%,#eef7f1 100%); }
  .daily-weather-visual.rain { --cloud-color:rgba(100,116,139,.95); --cloud-shadow:rgba(30,41,59,.3); }
  .daily-weather-visual.rain { --weather-photo:url("/weather/rain-v2.webp"); --weather-photo-position:center 43%; }
  .daily-weather-visual.rain::before { background:linear-gradient(180deg,#7f9fbd 0%,#b6cbe0 58%,#dbeafe 78%,#d8ebe0 100%); }
  .daily-weather-visual.storm { --cloud-color:rgba(51,65,85,.95); --cloud-shadow:rgba(15,23,42,.42); }
  .daily-weather-visual.storm { --weather-photo:url("/weather/storm-v2.webp"); --weather-photo-position:center 42%; }
  .daily-weather-visual.snow { --cloud-color:rgba(248,250,252,.98); --cloud-shadow:rgba(51,65,85,.18); }
  .daily-weather-visual.snow { --weather-photo:url("/weather/snow-v2.webp"); --weather-photo-position:center 47%; }
  .daily-weather-visual.fog { --weather-photo:url("/weather/fog-v2.webp"); --weather-photo-position:center 48%; }
  .daily-weather-visual.wind { --cloud-color:rgba(100,116,139,.9); --cloud-shadow:rgba(30,41,59,.28); }
  .daily-weather-visual.wind { --weather-photo:url("/weather/wind-v2.webp"); --weather-photo-position:center 43%; }
  .daily-weather-visual.cloudy .daily-weather-cloud,
  .daily-weather-visual.rain .daily-weather-cloud,
  .daily-weather-visual.storm .daily-weather-cloud,
  .daily-weather-visual.snow .daily-weather-cloud { opacity:.98; }
  .daily-weather-visual.cloudy .daily-weather-sun { opacity:.46; left:calc(50% - 16px); top:28px; }
  .daily-weather-visual.storm::before { background:linear-gradient(180deg,#334155 0%,#64748b 62%,#cbd5e1 82%,#d8ebe0 100%); }
  .daily-weather-visual.storm::after { content:""; position:absolute; z-index:2; inset:0; background:rgba(15,23,42,.18); mix-blend-mode:normal; animation:dailyWeatherStormPulse 2.2s ease-in-out infinite; }
  .daily-weather-visual.rain .daily-weather-sun,
  .daily-weather-visual.storm .daily-weather-sun,
  .daily-weather-visual.fog .daily-weather-sun { opacity:.28; }
  .daily-weather-visual.rain .daily-weather-rain,
  .daily-weather-visual.storm .daily-weather-rain { display:block; }
  .daily-weather-visual.storm .daily-weather-lightning { display:block; }
  .daily-weather-visual.fog::before { background:linear-gradient(180deg,#dbe4ed 0%,#f8fafc 76%,#edf2f7 100%); }
  .daily-weather-visual.fog::after { content:""; position:absolute; z-index:2; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(226,232,240,.54)); mix-blend-mode:normal; opacity:.88; }
  .daily-weather-visual.fog .daily-weather-ground { opacity:.35; }
  .daily-weather-visual.fog .daily-weather-fog { display:block; }
  .daily-weather-visual.fog .daily-weather-cloud { opacity:.22; }
  .daily-weather-visual.snow::before { background:linear-gradient(180deg,#e0f2fe 0%,#f8fafc 72%,#eef6ff 100%); }
  .daily-weather-visual.snow .daily-weather-ground { background:#f8fafc; opacity:1; }
  .daily-weather-visual.snow .daily-weather-sun { opacity:.18; }
  .daily-weather-visual.snow .daily-weather-snow { display:block; }
  .daily-weather-visual.wind::before { background:linear-gradient(180deg,#94a3b8 0%,#cbd5e1 70%,#e8f5ee 100%); }
  .daily-weather-visual.wind .daily-weather-sun { opacity:.18; }
  .daily-weather-visual.wind .daily-weather-cloud { opacity:.95; animation-duration:2.4s; }
  .daily-weather-visual.wind .daily-weather-wind { display:block; }
  .daily-weather-visual.photo::before { background-image:linear-gradient(180deg,rgba(15,23,42,.05),rgba(15,23,42,.03)), var(--weather-photo), linear-gradient(180deg,#9fd8ff 0%,#d9f3ff 52%,#f8fbff 74%,#edf8f1 100%); background-size:cover, cover, cover; background-position:center center, var(--weather-photo-position), center center; filter:saturate(.98) contrast(1.02); transform:scale(1.01); }
  .daily-intro-visual .daily-weather-visual.photo::after { opacity:1; background:linear-gradient(90deg,rgba(15,23,42,.52) 0%,rgba(15,23,42,.26) 48%,rgba(15,23,42,.04) 100%),linear-gradient(180deg,rgba(15,23,42,.02),rgba(15,23,42,.16)); mix-blend-mode:normal; }
  .daily-weather-preview { display:grid; gap:8px; padding:11px; border:1px dashed #cbd5e1; border-radius:14px; background:#f8fafc; }
  .daily-weather-preview-title { margin:0; color:#334155; font-size:12px; font-weight:950; text-transform:uppercase; letter-spacing:0; }
  .daily-weather-preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(134px,1fr)); gap:8px; }
  .daily-weather-preview-card { overflow:hidden; border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 8px 18px rgba(15,23,42,.05); }
  .daily-weather-preview-card .daily-weather-visual { min-height:128px; }
  .daily-weather-preview-card strong { display:block; padding:8px 9px; color:var(--pmb-anthracite); font-size:12px; font-weight:950; line-height:1.15; text-align:center; }
  @keyframes dailyWeatherSun {
    0%,100% { transform:scale(1); box-shadow:0 0 0 10px rgba(250,204,21,.16), 0 0 34px rgba(250,204,21,.42); }
    50% { transform:scale(1.06); box-shadow:0 0 0 15px rgba(250,204,21,.1), 0 0 42px rgba(250,204,21,.5); }
  }
  @keyframes dailyWeatherSunRays {
    to { transform:rotate(360deg); }
  }
  @keyframes dailyWeatherCloud {
    0%,100% { transform:translateX(0) scale(var(--cloud-scale,1)); }
    50% { transform:translateX(8px) scale(var(--cloud-scale,1)); }
  }
  @keyframes dailyWeatherRain {
    0% { transform:translateY(-12px) rotate(22deg); opacity:0; }
    20% { opacity:.95; }
    100% { transform:translateY(38px) rotate(22deg); opacity:0; }
  }
  @keyframes dailyWeatherSnow {
    0%,100% { transform:translate(0,0) rotate(0deg); opacity:.55; }
    50% { transform:translate(10px,24px) rotate(28deg); opacity:1; }
  }
  @keyframes dailyWeatherFog {
    0%,100% { transform:translateX(-12px); opacity:.45; }
    50% { transform:translateX(12px); opacity:.92; }
  }
  @keyframes dailyWeatherWind {
    0%,100% { transform:translateX(-22px); opacity:.2; }
    35% { opacity:.88; }
    70% { transform:translateX(24px); opacity:.5; }
  }
  @keyframes dailyWeatherFlash {
    0%,70%,100% { opacity:0; transform:translateY(-4px); }
    76%,84% { opacity:1; transform:translateY(0); }
  }
  @keyframes dailyWeatherStormPulse {
    0%,70%,100% { opacity:.08; }
    76%,84% { opacity:.28; }
  }
  .daily-summary-section-title { margin:2px 0 0; color:#334155; font-size:12px; font-weight:950; text-transform:uppercase; letter-spacing:0; }
  .daily-summary-plan-list { display:grid; gap:8px; }
  .daily-summary-plan-card { display:grid; gap:6px; padding:12px; border:1px solid #dbe3ee; border-radius:14px; background:#fff; box-shadow:0 8px 18px rgba(15,23,42,.05); }
  .daily-summary-plan-card header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; }
  .daily-summary-plan-card strong { font-size:15px; line-height:1.15; }
  .daily-summary-plan-card small { color:#64748b; font-size:12px; font-weight:850; line-height:1.25; }
  .daily-summary-plan-card p { margin:0; color:#334155; font-size:13px; font-weight:800; line-height:1.35; }
  .daily-summary-pill-row { display:flex; gap:6px; flex-wrap:wrap; }
  .daily-summary-pill { display:inline-flex; align-items:center; min-height:22px; padding:3px 8px; border-radius:999px; background:#f1f5f9; color:#475569; font-size:11px; font-weight:950; }
  .daily-summary-pill.warn { background:#fef3c7; color:#92400e; }
  .daily-summary-pill.good { background:#dcfce7; color:#166534; }
  .daily-summary-pill.info { background:#e0f2fe; color:#075985; }
  .daily-summary-empty { padding:14px; border:1px dashed #cbd5e1; border-radius:14px; background:#f8fafc; color:#64748b; font-size:13px; font-weight:850; text-align:center; }
  .daily-summary-actions { display:flex; justify-content:flex-end; gap:8px; padding:0 18px 18px; flex-wrap:wrap; }
  .daily-summary-actions .btn { min-height:38px; }
  @media (max-width:720px) {
    .support-type-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .support-diagnostic-head { display:grid; grid-template-columns:1fr; }
    .support-diagnostic-actions { display:grid; grid-template-columns:1fr; }
    .support-diagnostic-actions .btn { width:100%; }
    .support-diagnostic-grid { grid-template-columns:1fr; }
    .support-admin-editor { grid-template-columns:1fr; }
    .daily-summary-overlay { align-items:flex-end; padding:10px; }
    .daily-summary-dialog { width:100%; max-height:calc(100dvh - 20px); border-radius:18px 18px 0 0; }
    .daily-summary-dialog.daily-summary-intro { width:100%; max-height:calc(100dvh - 20px); border-radius:20px 20px 0 0; }
    .daily-summary-intro .daily-summary-head { padding:12px; }
    .daily-summary-intro .daily-summary-actions { display:grid; grid-template-columns:1fr; padding:12px 14px 14px; }
    .daily-intro-hero { min-height:390px; }
    .daily-intro-visual .daily-weather-visual { min-height:390px; }
    .daily-intro-visual .daily-weather-visual::after,
    .daily-intro-visual .daily-weather-visual.photo::after { opacity:1; background:linear-gradient(180deg,rgba(15,23,42,.01) 0%,rgba(15,23,42,.12) 48%,rgba(15,23,42,.62) 100%); mix-blend-mode:normal; }
    .daily-intro-content { min-height:390px; gap:13px; padding:72px 18px 24px; }
    .daily-intro-content h3 { font-size:31px; line-height:1.04; }
    .daily-intro-content p { font-size:14px; line-height:1.32; }
    .daily-intro-metric { min-height:30px; padding:6px 9px; font-size:12px; }
    .daily-intro-panel { padding:14px; }
    .daily-intro-plan-grid { grid-template-columns:1fr; }
    .daily-summary-head { padding:16px 14px 0; }
    .daily-summary-head h2 { font-size:21px; }
    .daily-summary-body { padding:0 14px; }
    .daily-summary-weather { grid-template-columns:1fr; }
    .daily-weather-visual { order:-1; min-height:126px; }
    .daily-weather-copy { padding:14px; }
    .daily-weather-copy strong { font-size:20px; }
    .daily-summary-plan-card header { grid-template-columns:1fr; }
    .daily-summary-actions { display:grid; grid-template-columns:1fr; padding:0 14px 14px; }
    .daily-summary-actions .btn { width:100%; }
  }
  .mobile-app-nav { display:none; }
  @media (min-width: 1100px) {
    body.desktop-admin-mode { background:var(--pmb-light); }
    body.desktop-admin-mode .desktop-admin-sidebar {
      position:fixed;
      inset:0 auto 0 0;
      z-index:40;
      width:248px;
      display:flex !important;
      flex-direction:column;
      gap:14px;
      padding:18px 14px;
      background:var(--pmb-anthracite);
      color:#fff;
      box-shadow:10px 0 30px rgba(36,36,36,.18);
    }
    .desktop-sidebar-brand { padding:8px 10px 16px; border-bottom:1px solid rgba(255,255,255,.16); }
    .desktop-sidebar-logo-wrap {
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:56px;
      padding:8px;
      background:#edf0f1;
      border:1px solid rgba(255,255,255,.18);
      border-radius:6px;
      box-shadow:0 10px 24px rgba(0,0,0,.18);
    }
    .desktop-sidebar-logo { display:block; width:100%; max-width:188px; height:auto; object-fit:contain; mix-blend-mode:multiply; }
    .desktop-sidebar-brand span { display:block; margin-top:7px; color:#f4f3f4; font-size:12px; font-weight:900; text-transform:uppercase; }
    .desktop-sidebar-user { padding:0 10px; color:#f4f3f4; font-size:12px; font-weight:800; min-height:18px; }
    .desktop-sidebar-nav { display:grid; gap:7px; }
    .desktop-sidebar-nav button {
      width:100%;
      min-height:42px;
      border:0;
      border-radius:9px;
      padding:0 12px;
      text-align:left;
      background:transparent;
      color:#f4f3f4;
      font-size:14px;
      font-weight:900;
      cursor:pointer;
    }
    .desktop-sidebar-nav button:hover,
    .desktop-sidebar-nav button.active { background:var(--pmb-red); color:#fff; }
    .desktop-sidebar-footer { margin-top:auto; display:grid; gap:8px; }
    body.desktop-admin-mode .app {
      max-width:none;
      margin-left:248px;
      padding:28px 30px;
    }
    body.desktop-admin-mode .toolbar {
      background:#fff;
      border:1px solid #d7dcde;
      border-radius:10px;
      padding:16px 18px;
      box-shadow:0 1px 4px rgba(36,36,36,.08);
    }
    body.desktop-admin-mode .toolbar h1 { font-size:26px; }
    /* Im Desktop-Modus mit Seitenleiste die doppelte Top-Navigation ausblenden;
       nur seiten-spezifische Aktionen (PDF erstellen, abschliessen ...) bleiben oben. */
    body.desktop-admin-mode .toolbar .toolbar-nav-button { display:none; }
    body.desktop-admin-mode #planningApp,
    body.desktop-admin-mode #resourcePlanningApp,
    body.desktop-admin-mode #employeePlanningApp,
    body.desktop-admin-mode #statisticsApp,
    body.desktop-admin-mode #sitesApp,
    body.desktop-admin-mode #todayApp,
    body.desktop-admin-mode #timeApp,
    body.desktop-admin-mode #adminApp,
    body.desktop-admin-mode #desktopDashboardApp { max-width:none; }
    body.desktop-admin-mode #planningApp .card,
    body.desktop-admin-mode #resourcePlanningApp .card,
    body.desktop-admin-mode #employeePlanningApp .card,
    body.desktop-admin-mode #statisticsApp .card,
    body.desktop-admin-mode #sitesApp .card,
    body.desktop-admin-mode #todayApp .card,
    body.desktop-admin-mode #timeApp .card,
    body.desktop-admin-mode #adminApp .card,
    body.desktop-admin-mode #desktopDashboardApp .card { border-radius:12px; box-shadow:0 1px 4px rgba(15,23,42,.08); }
    body.desktop-admin-mode #desktopDashboardApp .home-shell { gap:14px; }
    body.desktop-admin-mode #desktopDashboardApp #homeAdminContent { order:1; }
    body.desktop-admin-mode #desktopDashboardApp .home-area-section {
      order:2;
      display:none !important;
    }
    body.desktop-admin-mode #desktopDashboardApp .home-section-heading { align-items:center; }
    body.desktop-admin-mode #desktopDashboardApp .home-section-heading h2 { font-size:15px; text-transform:none; }
    body.desktop-admin-mode #desktopDashboardApp .home-section-actions { gap:6px; }
    body.desktop-admin-mode #desktopDashboardApp .home-section-actions .btn { min-height:30px; padding:6px 9px; border-radius:8px; font-size:12px; }
    body.desktop-admin-mode #desktopDashboardApp #mobileFavoriteEditButton,
    body.desktop-admin-mode #desktopDashboardApp #mobileFavoriteResetButton { display:none !important; }
    body.desktop-admin-mode #desktopDashboardApp .home-tile-grid {
      grid-template-columns:repeat(auto-fit,minmax(138px,1fr));
      gap:8px;
    }
    body.desktop-admin-mode #desktopDashboardApp .home-tile {
      min-height:78px;
      grid-template-columns:36px minmax(0,1fr);
      grid-template-rows:1fr;
      align-items:center;
      justify-items:start;
      gap:10px;
      padding:10px 11px;
      text-align:left;
      border-radius:10px;
      box-shadow:0 1px 3px rgba(15,23,42,.06);
    }
    body.desktop-admin-mode #desktopDashboardApp .home-tile-icon {
      width:36px;
      height:36px;
      border-radius:9px;
      box-shadow:none;
    }
    body.desktop-admin-mode #desktopDashboardApp .home-tile-icon .app-icon { width:21px; height:21px; stroke-width:2; }
    body.desktop-admin-mode #desktopDashboardApp .home-tile > span:last-child { justify-items:start; }
    body.desktop-admin-mode #desktopDashboardApp .home-tile-title { font-size:13px; line-height:1.15; -webkit-line-clamp:1; }
    body.desktop-admin-mode #desktopDashboardApp .home-tile-subtitle { min-height:0; margin-top:2px; font-size:11px; line-height:1.18; -webkit-line-clamp:1; }
    body.desktop-admin-mode #desktopDashboardApp .home-tile-badge {
      top:6px;
      right:6px;
      min-width:21px;
      height:21px;
      padding:0 6px;
      font-size:10px;
      box-shadow:none;
    }
    body.desktop-admin-mode .desktop-admin-sidebar {
      width:212px;
      padding:16px 0;
      gap:0;
      background:linear-gradient(180deg,#111d25 0%,#0b1720 100%);
      box-shadow:10px 0 28px rgba(15,23,42,.20);
    }
    body.desktop-admin-mode .desktop-sidebar-brand { padding:8px 16px 16px; border-bottom:1px solid rgba(255,255,255,.10); }
    body.desktop-admin-mode .desktop-sidebar-logo-wrap {
      justify-content:flex-start;
      min-height:52px;
      padding:6px 9px;
      background:#f8fafc;
      border-color:rgba(255,255,255,.20);
      border-radius:6px;
      box-shadow:none;
    }
    body.desktop-admin-mode .desktop-sidebar-logo { max-width:166px; }
    body.desktop-admin-mode .desktop-sidebar-brand span { font-size:11px; opacity:.76; }
    body.desktop-admin-mode .desktop-sidebar-user { display:none; }
    body.desktop-admin-mode .desktop-sidebar-nav {
      gap:0;
      padding:16px 0 8px;
      overflow:auto;
    }
    body.desktop-admin-mode .desktop-sidebar-nav button,
    body.desktop-admin-mode .desktop-sidebar-footer-button {
      min-height:39px;
      border-radius:0;
      border:0;
      background:transparent;
      color:#f8fafc;
      font:inherit;
      font-size:12px;
      font-weight:850;
      text-align:left;
      cursor:pointer;
    }
    body.desktop-admin-mode .desktop-sidebar-nav > button,
    body.desktop-admin-mode .desktop-nav-parent,
    body.desktop-admin-mode .desktop-sidebar-footer-button {
      width:100%;
      display:grid;
      grid-template-columns:20px minmax(0,1fr) auto;
      align-items:center;
      gap:10px;
      padding:0 16px;
    }
    body.desktop-admin-mode .desktop-sidebar-nav svg,
    body.desktop-admin-mode .desktop-sidebar-footer-button svg {
      width:17px;
      height:17px;
      color:#dbe4ea;
      stroke:currentColor;
      fill:none;
    }
    body.desktop-admin-mode .desktop-sidebar-nav button span {
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    body.desktop-admin-mode .desktop-nav-group { display:grid; }
    body.desktop-admin-mode .desktop-nav-sublist {
      display:grid;
      margin-left:31px;
      padding:0 0 6px 11px;
      border-left:1px solid rgba(255,255,255,.12);
    }
    body.desktop-admin-mode .desktop-nav-group.collapsed .desktop-nav-sublist {
      display:none;
    }
    body.desktop-admin-mode .desktop-nav-sublist button {
      min-height:30px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      padding:0 8px 0 7px;
      color:#d8e2e8;
      font-size:11px;
      font-weight:760;
    }
    body.desktop-admin-mode .desktop-nav-sublist button.active {
      width:calc(100% + 31px);
      margin-left:-31px;
      padding-left:38px;
      padding-right:14px;
    }
    body.desktop-admin-mode .desktop-nav-new span {
      min-width:26px;
      min-height:16px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0 4px;
      border-radius:3px;
      background:#fff;
      color:#d71920;
      font-size:9px;
      font-weight:950;
    }
    body.desktop-admin-mode .desktop-nav-chevron {
      color:#b9c7cf;
      font-size:13px;
      transition:transform .15s ease;
    }
    body.desktop-admin-mode .desktop-nav-group.collapsed .desktop-nav-chevron {
      transform:rotate(-90deg);
    }
    body.desktop-admin-mode .desktop-sidebar-nav button:hover,
    body.desktop-admin-mode .desktop-sidebar-nav button.active {
      background:#d71920;
      box-shadow:inset 4px 0 0 rgba(255,255,255,.22);
      color:#fff;
    }
    body.desktop-admin-mode .desktop-sidebar-nav button.active svg,
    body.desktop-admin-mode .desktop-sidebar-nav button:hover svg { color:#fff; }
    body.desktop-admin-mode .desktop-sidebar-footer {
      margin-top:auto;
      display:grid;
      gap:0;
      padding:10px 0 4px;
      border-top:1px solid rgba(255,255,255,.10);
    }
    body.desktop-admin-mode .desktop-sidebar-footer-button:hover,
    body.desktop-admin-mode .desktop-sidebar-footer-button:focus {
      background:rgba(255,255,255,.08);
      outline:none;
    }
    body.desktop-admin-mode .desktop-shell-topbar {
      position:fixed;
      top:0;
      right:0;
      left:212px;
      z-index:35;
      min-height:90px;
      display:grid;
      grid-template-columns:minmax(220px,1fr) minmax(260px,330px) auto;
      align-items:center;
      gap:18px;
      padding:18px 20px;
      background:#fff;
      border-bottom:1px solid #dbe3ee;
      box-shadow:0 1px 3px rgba(15,23,42,.06);
    }
    body.desktop-admin-mode .desktop-shell-title {
      min-width:0;
      display:grid;
      gap:3px;
    }
    body.desktop-admin-mode .desktop-shell-title h1 {
      margin:0;
      color:#111827;
      font-size:25px;
      line-height:1.05;
      font-weight:900;
      letter-spacing:0;
    }
    body.desktop-admin-mode .desktop-shell-title span {
      min-height:15px;
      color:#64748b;
      font-size:12px;
      font-weight:800;
    }
    body.desktop-admin-mode .desktop-shell-search {
      min-width:0;
      display:block;
    }
    body.desktop-admin-mode .desktop-shell-search input {
      min-height:38px;
      border-radius:7px;
      background:#fff;
      color:#111827;
      font-size:13px;
    }
    body.desktop-admin-mode .desktop-shell-actions {
      position:relative;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:14px;
      min-width:0;
    }
    body.desktop-admin-mode .desktop-shell-notification {
      position:relative;
      width:34px;
      height:34px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:0;
      border-radius:999px;
      background:#fff;
      color:#111827;
      cursor:pointer;
    }
    body.desktop-admin-mode .desktop-shell-notification svg {
      width:19px;
      height:19px;
      fill:none;
      stroke:currentColor;
      stroke-width:1.9;
      stroke-linecap:round;
      stroke-linejoin:round;
    }
    body.desktop-admin-mode .desktop-shell-notification span {
      position:absolute;
      top:1px;
      right:0;
      min-width:16px;
      height:16px;
      display:none;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      background:#d71920;
      color:#fff;
      border:2px solid #fff;
      font-size:10px;
      font-weight:950;
      line-height:1;
    }
    body.desktop-admin-mode .desktop-shell-notification.has-count span {
      display:inline-flex;
    }
    body.desktop-admin-mode .desktop-shell-user {
      display:flex;
      align-items:center;
      gap:10px;
      border:0;
      background:transparent;
      color:#111827;
      padding:0;
      cursor:pointer;
      white-space:nowrap;
      font:inherit;
    }
    body.desktop-admin-mode .desktop-shell-user > span:first-child {
      display:grid;
      justify-items:end;
      line-height:1.15;
    }
    body.desktop-admin-mode .desktop-shell-user strong {
      max-width:150px;
      overflow:hidden;
      text-overflow:ellipsis;
      color:#111827;
      font-size:13px;
      font-weight:900;
    }
    body.desktop-admin-mode .desktop-shell-user small {
      color:#6b7280;
      font-size:11px;
      font-weight:800;
    }
    body.desktop-admin-mode .desktop-shell-avatar {
      width:34px;
      height:34px;
      border-radius:999px;
      background:
        radial-gradient(circle at 50% 35%, #f5c7a3 0 22%, transparent 23%),
        radial-gradient(circle at 50% 78%, #334155 0 30%, transparent 31%),
        linear-gradient(135deg,#e5e7eb,#cbd5e1);
      border:1px solid #dbe3ee;
      box-shadow:inset 0 0 0 2px #fff;
    }
    body.desktop-admin-mode .desktop-shell-user-menu {
      position:absolute;
      top:calc(100% + 8px);
      right:0;
      z-index:50;
      width:210px;
      display:none;
      padding:8px;
      border:1px solid #dbe3ee;
      border-radius:8px;
      background:#fff;
      box-shadow:0 18px 45px rgba(15,23,42,.18);
    }
    body.desktop-admin-mode .desktop-shell-user-menu.open { display:grid; gap:4px; }
    body.desktop-admin-mode .desktop-shell-user-menu button {
      min-height:36px;
      border:0;
      border-radius:6px;
      padding:8px 10px;
      background:#fff;
      color:#111827;
      font:inherit;
      font-size:13px;
      font-weight:850;
      text-align:left;
      cursor:pointer;
    }
    body.desktop-admin-mode .desktop-shell-user-menu button:hover,
    body.desktop-admin-mode .desktop-shell-user-menu button:focus {
      background:#f3f4f6;
      outline:none;
    }
    body.desktop-admin-mode .app {
      margin-left:212px;
      padding-top:112px;
    }
    body.desktop-admin-mode #resourcePlanningApp {
      min-height:100dvh;
      padding:106px 16px 14px;
      background:#f4f5f7;
    }
    body.desktop-admin-mode #employeePlanningApp {
      min-height:100dvh;
      padding:106px 16px 14px;
      background:#f4f5f7;
    }
    body.desktop-admin-mode #resourcePlanningApp > .toolbar {
      display:none;
    }
    body.desktop-admin-mode #employeePlanningApp > .toolbar {
      display:none;
    }
    body.desktop-admin-mode #resourcePlanningApp > .toolbar h1 { font-size:25px; line-height:1.05; letter-spacing:0; }
    body.desktop-admin-mode #resourcePlanningApp > .toolbar .userbar { display:none; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-period-chip { display:none; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-top-search {
      display:block;
      width:100%;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-top-search input {
      min-height:38px;
      border-radius:7px;
      background:#fff;
      font-size:13px;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-top-profile {
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:14px;
      min-width:0;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-notification {
      position:relative;
      width:34px;
      height:34px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:0;
      border-radius:999px;
      background:#fff;
      color:#111827;
      cursor:pointer;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-notification svg {
      width:19px;
      height:19px;
      fill:none;
      stroke:currentColor;
      stroke-width:1.9;
      stroke-linecap:round;
      stroke-linejoin:round;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-notification span {
      position:absolute;
      top:1px;
      right:0;
      min-width:16px;
      height:16px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      background:#d71920;
      color:#fff;
      border:2px solid #fff;
      font-size:10px;
      font-weight:950;
      line-height:1;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-user-pill {
      display:flex;
      align-items:center;
      gap:10px;
      color:#111827;
      white-space:nowrap;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-user-pill div {
      display:grid;
      justify-items:end;
      line-height:1.15;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-user-pill strong {
      font-size:13px;
      font-weight:900;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-user-pill span {
      color:#6b7280;
      font-size:11px;
      font-weight:800;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-avatar {
      width:34px;
      height:34px;
      border-radius:999px;
      background:
        radial-gradient(circle at 50% 35%, #f5c7a3 0 22%, transparent 23%),
        radial-gradient(circle at 50% 78%, #334155 0 30%, transparent 31%),
        linear-gradient(135deg,#e5e7eb,#cbd5e1);
      border:1px solid #dbe3ee;
      box-shadow:inset 0 0 0 2px #fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-commandbar {
      margin-bottom:0;
      padding:13px 16px;
      border-radius:7px;
      box-shadow:0 1px 3px rgba(15,23,42,.06);
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-commandbar .subheader { display:none; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-date-field input {
      color:transparent;
      caret-color:transparent;
      background:transparent;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-date-field span {
      display:flex;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-toolbar {
      display:grid;
      grid-template-columns:minmax(200px,auto) minmax(200px,220px) minmax(160px,1fr) minmax(150px,170px) minmax(150px,170px);
      gap:12px;
      align-items:end;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-toolbar > div { min-width:0; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-toolbar .resource-planning-view { min-width:200px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-actions {
      grid-column:1 / -1;
      justify-content:flex-end;
      flex-wrap:nowrap;
      white-space:nowrap;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-actions .btn {
      min-height:40px;
      padding:9px 14px;
      font-size:13px;
    }
    body.desktop-admin-mode #resourcePlanningApp #resourcePlanningRefreshButton {
      display:none;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-kpi-section { display:none; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-workspace {
      grid-template-columns:minmax(0,1fr) 286px;
      gap:12px;
      align-items:start;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-timeline-card {
      padding:0;
      overflow:hidden;
      border-radius:7px;
      box-shadow:0 1px 3px rgba(15,23,42,.07);
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-timeline-card > .subheader {
      display:none;
      min-height:0;
      margin:0;
      padding:10px 14px;
      border-bottom:1px solid #dbe3ee;
      background:#fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-timeline-wrap {
      max-height:calc(100dvh - 204px);
      padding-bottom:0;
      background:#fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-grid {
      border:0;
      border-radius:0;
      box-shadow:none;
      grid-template-columns:minmax(var(--rp-label-width, 220px), var(--rp-label-width, 220px)) repeat(var(--rp-cols), var(--rp-col-width));
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-corner,
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-slot {
      min-height:50px;
      background:#fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-corner {
      padding-left:14px;
      color:#6b7280;
      font-size:13px;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-slot {
      font-size:12px;
      border-left:1px solid #edf2f7;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-slot.weekend { background:#fff7f7; color:#b91c1c; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-slot.today span {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:22px;
      height:22px;
      border-radius:999px;
      background:#d71920;
      color:#fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-week-cell { min-height:22px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-weekday-cell,
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-day-cell { min-height:27px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-calendar-corner {
      padding:27px 10px 8px;
      border-bottom:1px solid #dbe3ee;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-label,
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-track { min-height:34px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-label { padding:5px 10px 5px 14px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-track {
      background:
        repeating-linear-gradient(to right, transparent 0, transparent calc(var(--rp-col-width) - 1px), #edf2f7 calc(var(--rp-col-width) - 1px), #edf2f7 var(--rp-col-width)),
        #fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-bar {
      top:6px;
      height:28px;
      border-radius:3px;
      font-size:12px;
      font-weight:950;
      letter-spacing:0;
      padding:0 9px;
      box-shadow:0 5px 12px rgba(15,23,42,.1);
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-bar small {
      font-weight:950;
      line-height:1.08;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-main strong { font-size:12px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-label span { font-size:10px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-row-tools { gap:4px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-order-button { width:19px; height:19px; font-size:10px; border-radius:5px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-panel { gap:10px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-panel-card {
      border-radius:7px;
      padding:12px;
      box-shadow:0 1px 3px rgba(15,23,42,.06);
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-list { gap:7px; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-list-item {
      border-radius:7px;
      padding:8px 9px;
      background:#fff;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-legend {
      min-height:47px;
      border-radius:7px;
      margin-top:0;
    }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-form-row { grid-template-columns:1fr 1fr; }
    body.desktop-admin-mode #resourcePlanningApp .resource-planning-forms .card {
      border-radius:7px;
      box-shadow:0 1px 3px rgba(15,23,42,.06);
    }
    @media (min-width: 1560px) {
      body.desktop-admin-mode #resourcePlanningApp .resource-planning-toolbar {
        grid-template-columns:204px 220px minmax(170px,.8fr) minmax(150px,.65fr) minmax(150px,.7fr) auto;
      }
      body.desktop-admin-mode #resourcePlanningApp .resource-planning-actions { grid-column:auto; }
    }
    @media (max-width: 1240px) {
      body.desktop-admin-mode #resourcePlanningApp .resource-planning-workspace {
        grid-template-columns:1fr;
      }
      body.desktop-admin-mode #resourcePlanningApp .resource-planning-panel {
        grid-template-columns:repeat(3,minmax(0,1fr));
      }
    }
    @media (max-width: 1040px) {
      body.desktop-admin-mode #resourcePlanningApp .resource-planning-panel {
        grid-template-columns:1fr;
      }
    }
  }
  @media (max-width: 980px) {
    .resource-planning-workspace { grid-template-columns:1fr; }
    .resource-planning-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .resource-planning-toolbar { align-items:stretch; }
    .resource-planning-actions { justify-content:flex-start; }
    .resource-planning-form-row { grid-template-columns:1fr; }
  }
  @media (max-width: 720px) {
    .app { padding:14px; }
    .toolbar { display:grid; grid-template-columns:1fr; gap:12px; margin-bottom:14px; }
    .toolbar h1 { font-size:25px; line-height:1.08; }
    .app-update-notice { left:10px; right:10px; top:calc(10px + env(safe-area-inset-top, 0px)); align-items:flex-start; border-radius:12px; }
    .app-update-notice .btn { min-height:40px; padding:9px 12px; }
    .pwa-install-notice { left:10px; right:10px; bottom:calc(154px + env(safe-area-inset-bottom, 0px)); align-items:flex-start; border-radius:12px; }
    .pwa-install-notice .btn { min-height:40px; padding:9px 12px; }
    .app-maintenance-panel { align-items:flex-start; }
    .app-maintenance-actions { justify-content:flex-start; }
    .userbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; justify-content:stretch; width:100%; }
    .userbar .current-user { grid-column:1 / -1; text-align:center; }
    .userbar .btn { width:100%; padding-left:10px; padding-right:10px; }
    .userbar .btn:last-child { grid-column:1 / -1; }
    .card { border-radius:14px; padding:14px; margin-bottom:14px; }
    .card h2 { font-size:19px; }
    input, select, textarea { font-size:16px; min-height:46px; }
    .checkbox-field { min-height:46px; }
    .form-actions { align-items:stretch; }
    .form-actions > div { display:flex; gap:8px; flex-wrap:wrap; width:100%; }
    .form-actions .btn,
    .today-controls .btn,
    .planning-controls .btn { width:100%; }
    .resource-planning-toolbar { display:grid; grid-template-columns:1fr; }
    .resource-planning-toolbar > div,
    .resource-planning-toolbar .resource-planning-view { min-width:0; width:100%; }
    .resource-planning-segment { width:100%; }
    .resource-planning-actions { display:grid; grid-template-columns:1fr; }
    .resource-planning-actions .btn { width:100%; }
    .resource-planning-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .resource-planning-workspace { grid-template-columns:1fr; }
    .resource-planning-grid { grid-template-columns:minmax(var(--rp-label-width, 180px), var(--rp-label-width, 180px)) repeat(var(--rp-cols), var(--rp-col-width)); }
    .resource-planning-form-row { grid-template-columns:1fr; }
    .resource-planning-form-grid { grid-template-columns:1fr; }
    .resource-planning-form-actions { align-items:stretch; }
    .resource-planning-form-actions > div,
    .resource-planning-form-actions .btn { width:100%; }
    .push-setting { width:100%; justify-content:flex-start; min-height:46px; }
    .push-setting span { white-space:normal; }
    .push-setting small { margin-left:auto; }
    .subheader { align-items:stretch; }
    .subheader .btn { width:100%; }
    .site-list-toolbar { align-items:stretch; }
    .site-list-toolbar > .form-actions { width:100%; }
    .site-search { width:100%; }
    .site-management-filters { grid-template-columns:1fr; }
    .site-management-overlay { align-items:stretch; justify-content:stretch; padding:0; background:#f8fafc; }
    .site-management-dialog { width:100vw; max-height:100dvh; min-height:100dvh; border-radius:0; border:0; box-shadow:none; }
    .site-management-head { position:sticky; top:0; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:10px 12px; }
    .site-management-head h2 { font-size:18px; }
    .site-management-subtitle { display:none; }
    .site-management-head .btn { width:auto; min-height:36px; padding:8px 12px; border-radius:9px; }
    .site-management-tabs { flex-wrap:nowrap; overflow-x:auto; padding:8px 10px; gap:6px; -webkit-overflow-scrolling:touch; }
    .site-management-tabs.mobile-overview-tabs-hidden { display:none; }
    .site-management-tabs button { flex:0 0 auto; min-height:34px; min-width:auto; padding:7px 10px; font-size:12px; }
    .site-management-body { padding:10px; }
    .site-management-mobile-overview { display:grid; gap:10px; }
    .site-management-dashboard { gap:10px; }
    .site-management-dashboard-hero { padding:12px; border-radius:12px; }
    .site-management-dashboard-hero h3 { font-size:20px; }
    .site-management-overview-status { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    .site-management-overview-kpi { padding:9px; }
    .site-management-overview-kpi strong { font-size:20px; }
    .site-management-overview-tools { grid-template-columns:1fr; padding:10px; }
    .site-management-overview-tools .form-actions { display:grid; grid-template-columns:1fr 1fr; }
    .site-management-overview-tools .btn { width:100%; }
    .site-management-overview-split { grid-template-columns:1fr; gap:10px; }
    .site-management-overview-result { grid-template-columns:34px minmax(0,1fr); }
    .site-management-overview-result-badge { justify-self:start; grid-column:2; }
    .site-management-overview-result-mark { width:34px; height:34px; border-radius:9px; }
    .site-management-dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .site-management-dashboard-tile { min-height:98px; padding:14px 8px 12px; border-radius:12px; box-shadow:0 9px 22px rgba(36,36,36,.09); }
    .site-management-dashboard-title { font-size:13px; }
    .site-management-dashboard-mark { width:48px; height:48px; border-radius:10px; font-size:18px; }
    .site-management-dashboard-mark .app-icon { width:25px; height:25px; }
    .site-management-dashboard-count { min-width:25px; height:25px; min-height:25px; font-size:12px; top:8px; right:8px; }
    .site-management-detail-head { min-height:44px; padding-bottom:5px; }
    .site-management-back-button { width:42px; height:42px; min-width:42px; min-height:42px; font-size:29px; }
    .site-management-cover { grid-template-columns:1fr; }
    .site-management-cover-main h3 { font-size:20px; }
    .site-management-mini-fact { grid-template-columns:1fr; gap:2px; }
    .site-management-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .site-management-workbook-actions { grid-template-columns:1fr 1fr; }
    .site-management-workbook-layout { grid-template-columns:1fr; }
    .site-management-workbook-side { position:static; order:-1; }
    .site-management-folder summary { grid-template-columns:minmax(0,1fr) auto auto; padding:11px; }
    .site-management-folder-body { padding:0 11px 11px; }
    .site-management-folder-row { grid-template-columns:1fr; }
    .site-management-folder-row-badge { justify-self:start; max-width:100%; }
    .site-management-file-toolbar { grid-template-columns:1fr; }
    .site-management-file-toolbar .btn { width:100%; }
    .site-management-file-filter { flex:1 1 145px; }
    .site-management-file-card { grid-template-columns:1fr; }
    .site-management-file-thumb { width:100%; height:150px; }
    .site-management-defect-toolbar { display:grid; grid-template-columns:1fr; }
    .site-management-defect-toolbar .btn { width:100%; }
    .site-management-defect-photo-upload { grid-template-columns:1fr; }
    .site-management-defect-photos { grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); }
    .site-pdf-markup-overlay { align-items:stretch; justify-content:stretch; padding:0; }
    .site-pdf-markup-dialog { width:100vw; height:100dvh; max-height:100dvh; border-radius:0; border:0; }
    .site-pdf-markup-head { padding:8px 10px; align-items:center; gap:8px; }
    .site-pdf-markup-head h2 { font-size:15px; margin:0; }
    .site-pdf-markup-head .site-pdf-markup-meta { display:none; }
    .site-pdf-markup-head .btn { width:auto; padding:8px 11px; font-size:13px; }
    .site-pdf-markup-toolbar { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; align-items:center; padding:8px; }
    .site-pdf-markup-tools-toggle { display:inline-flex; }
    .site-pdf-markup-toolbar:not(.site-pdf-markup-pagebar) { display:none; }
    .tools-expanded .site-pdf-markup-toolbar:not(.site-pdf-markup-pagebar) { display:grid; max-height:46vh; overflow-y:auto; box-shadow:inset 0 -8px 8px -8px rgba(15,23,42,.2); }
    .site-pdf-markup-toolbar .btn,
    .site-pdf-markup-toolbar input { width:100%; min-width:0; }
    .site-pdf-markup-toolbar .btn { min-height:38px; padding:6px; }
    .site-pdf-markup-toolbar .site-pdf-markup-tool { width:100%; min-width:0; min-height:40px; }
    .site-pdf-markup-toolbar > div { grid-column:span 2; min-width:0; }
    .site-pdf-markup-toolbar [data-markup-wide],
    .site-pdf-markup-foot { grid-column:1 / -1; }
    .site-pdf-markup-pagebar { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:4px; padding:5px 8px; }
    .site-pdf-markup-pagebar .btn,
    .site-pdf-markup-pagebar .site-pdf-markup-tool { width:auto; min-width:auto; min-height:34px; padding:5px 9px; font-size:12px; white-space:nowrap; flex:0 0 auto; }
    .site-pdf-markup-pagebar .site-pdf-markup-status,
    .site-pdf-markup-pagebar .site-pdf-markup-zoom-label { flex:0 0 auto; white-space:nowrap; align-self:center; }
    .site-pdf-markup-body { min-height:260px; padding:6px; justify-content:flex-start; }
    .site-pdf-markup-foot { display:flex; flex-wrap:wrap; gap:6px; padding:6px 8px; }
    .site-pdf-markup-foot .site-pdf-markup-status { display:none; }
    .site-pdf-markup-foot #sitePdfMarkupSaveBtn { flex:1 1 100%; min-height:40px; }
    .site-pdf-markup-foot .btn:not(#sitePdfMarkupSaveBtn) { flex:1 1 0; min-width:0; min-height:36px; padding:6px 6px; font-size:11.5px; line-height:1.15; }
    .site-management-note-list-head { display:grid; grid-template-columns:1fr; }
    .site-management-note-list-head .btn { width:100%; }
    .site-management-note-editor { min-height:calc(100dvh - 170px); }
    .site-management-note-editor .site-management-form-grid { grid-template-columns:1fr; }
    .site-management-note-color-toolbar { display:grid; grid-template-columns:1fr 1fr; }
    .site-management-note-rich-editor { min-height:52dvh; }
    .site-management-note-editor-actions { display:grid; grid-template-columns:1fr; }
    .site-management-note-editor-actions .btn { width:100%; }
    .site-management-actions .btn { flex:1 1 150px; }
    .site-addressbook-actions { grid-template-columns:1fr; }
    .site-addressbook-actions .btn { width:100%; }
    .site-contact-dialog-overlay { align-items:flex-end; padding:10px; }
    .site-contact-dialog { width:100%; max-height:calc(100dvh - 20px); border-radius:14px 14px 0 0; }
    .site-contact-dialog-head { display:grid; grid-template-columns:1fr; }
    .site-contact-dialog-head .btn { width:100%; }
    .site-contact-dialog-actions { display:grid; grid-template-columns:1fr; }
    .site-contact-dialog-actions .btn { width:100%; }
    .today-controls > div,
    .planning-controls > div { min-width:100%; }
    .stats-filters { grid-template-columns:1fr; }
    .stats-export-help { display:none; }
    .stats-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .stats-grid-two { grid-template-columns:1fr; }
    .stat-tile { padding:12px; min-width:0; }
    .stat-value { font-size:28px; overflow-wrap:anywhere; }
    .site-report-row { grid-template-columns:1fr; align-items:stretch; }
    .site-report-row .btn { width:100%; text-align:center; }
    .site-report-actions { justify-content:stretch; }
    .planning-week-grid { overflow-x:auto; }
    .planning-calendar { min-width:920px; }
    .planning-detail-overlay { padding:12px 12px calc(96px + env(safe-area-inset-bottom, 0px)); }
    .planning-detail-dialog { border-radius:12px; padding:14px; max-height:calc(100dvh - 112px - env(safe-area-inset-bottom, 0px)); overflow:auto; }
    .planning-detail-head { display:grid; grid-template-columns:1fr; }
    .planning-detail-head .btn { width:100%; }
    .planning-detail-grid { grid-template-columns:1fr; }
    .planning-detail-dialog .plan-actions .btn { flex:1 1 160px; min-height:44px; }
    .reschedule-quick-grid { grid-template-columns:1fr 1fr; }
    .admin-alert-overlay { align-items:flex-end; padding:10px; }
    .admin-alert-box { max-height:calc(100dvh - 20px); padding:14px; }
    .wide-field { grid-column:span 1; }
  }
  @media (max-width: 520px) {
    .app { padding:12px; }
    .toolbar h1 { font-size:24px; }
    .login-shell { padding:12px; align-items:flex-start; }
    .login-card { border-radius:14px; padding:18px; margin-top:28px; }
    .grid { grid-template-columns:1fr; gap:10px; }
    .line { grid-template-columns:1fr; }
    .threecol { grid-template-columns:1fr 1fr; gap:7px; }
    .threecol.head { display:none; }
    .threecol > div:first-child { grid-column:1 / -1; }
    .site-list { grid-template-columns:1fr; }
    .site-folder-body { padding:10px; }
    .site-card { padding:12px; }
    .site-card-meta { min-height:0; }
    .site-card-actions { display:grid; grid-template-columns:1fr; }
    .site-card-actions .btn { width:100%; }
    .report-void-form { gap:10px; }
    .stats-table { min-width:560px; }
    .planning-calendar { min-width:860px; }
    .planning-detail-dialog .plan-actions { display:grid; grid-template-columns:1fr; }
    .planning-detail-dialog .plan-actions .btn { width:100%; }
    .reschedule-reason-grid,
    .reschedule-quick-grid { grid-template-columns:1fr; }
    .admin-alert-actions { display:grid; grid-template-columns:1fr; }
    .admin-alert-actions .btn { width:100%; }
    .planning-attachment-item { display:grid; grid-template-columns:1fr; align-items:stretch; }
    .planning-attachment-item .btn { width:100%; }
    .planning-attachment-viewer-overlay { padding:0; }
    .planning-attachment-viewer { width:100%; height:100dvh; border:0; border-radius:0; }
    .planning-attachment-viewer-head { grid-template-columns:42px minmax(0,1fr) 42px; gap:8px; padding:calc(7px + env(safe-area-inset-top, 0px)) 9px 7px; }
    .planning-attachment-viewer-head h2 { font-size:14px; }
    .planning-attachment-viewer-head .form-status { font-size:11px; }
    .planning-attachment-viewer-actions { display:block; }
    #planningAttachmentViewerExternal { display:none !important; }
    .planning-attachment-viewer-close { display:none !important; }
    .planning-attachment-viewer-back,
    .planning-attachment-viewer-icon-action { width:40px; height:40px; min-width:40px; min-height:40px; }
    .planning-attachment-viewer-icon-action { font-size:20px; }
    .planning-attachment-pdf-toolbar { min-height:50px; padding:5px 7px; padding-left:max(7px, env(safe-area-inset-left, 0px)); padding-right:max(7px, env(safe-area-inset-right, 0px)); }
    .planning-attachment-pdf-page-controls,
    .planning-attachment-pdf-zoom-controls { gap:3px; }
    .planning-attachment-pdf-toolbar button { min-width:36px; height:38px; padding:0 7px; }
    #planningAttachmentPdfPageIndicator { min-width:76px; font-size:11px; }
    .planning-attachment-pdf-toolbar .planning-attachment-pdf-zoom-label { min-width:52px; font-size:11px; }
    .planning-attachment-pdf-toolbar .planning-attachment-pdf-fit { display:none; }
    .planning-attachment-pdf-pages { gap:12px; padding:10px; padding-bottom:calc(18px + env(safe-area-inset-bottom, 0px)); }
    .planning-attachment-pdf-page { scroll-margin-top:8px; }
    .planning-attachment-viewer-body { padding-bottom:env(safe-area-inset-bottom, 0px); scrollbar-gutter:auto; }
    body.attachment-viewer-open .mobile-app-nav { display:none !important; }
  }
  @media (max-width: 370px) {
    #planningAttachmentPdfPageIndicator { min-width:64px; }
    .planning-attachment-pdf-toolbar button { min-width:34px; padding:0 6px; }
    .planning-attachment-pdf-toolbar .planning-attachment-pdf-zoom-label { min-width:48px; }
  }
  @media (max-width: 380px) {
    .userbar { grid-template-columns:1fr; }
    .stats-kpis { grid-template-columns:1fr; }
    .stat-value { font-size:26px; }
  }
  @media (min-width: 521px) and (max-width: 900px) {
    .stats-grid-two { grid-template-columns:1fr; }
    .stats-table { min-width:640px; }
  }

  @media (max-width: 1099px) {
    body.mobile-app-shell { background:var(--pmb-light); color:var(--pmb-anthracite); }
    body.mobile-app-shell .app {
      max-width:920px;
      padding:0 14px calc(96px + env(safe-area-inset-bottom));
    }
    body.mobile-app-shell .toolbar {
      position:relative;
      margin:0 -14px 14px;
      padding:13px 14px 15px;
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      overflow:hidden;
      color:#fff;
      background:linear-gradient(145deg, #242424 0%, #3a3a3a 64%, #474747 100%);
      border-bottom:1px solid rgba(255,255,255,.16);
      border-radius:0 0 16px 16px;
      box-shadow:0 12px 26px rgba(36,36,36,.20);
    }
    body.mobile-app-shell .toolbar::after {
      content:"";
      position:absolute;
      left:14px;
      right:14px;
      bottom:0;
      height:4px;
      border-radius:999px 999px 0 0;
      background:linear-gradient(90deg, var(--pmb-red), var(--pmb-red), var(--pmb-logo-gray));
    }
    body.mobile-app-shell .toolbar h1 {
      color:#fff;
      font-size:22px;
      line-height:1.1;
      letter-spacing:0;
    }
    body.mobile-app-shell .toolbar > div:first-child div {
      color:#f4f3f4 !important;
      margin-top:3px;
      font-weight:700;
      font-size:12.5px;
      line-height:1.3;
    }
    body.mobile-app-shell .current-user {
      color:#f4f3f4;
      font-size:12px;
      text-align:left;
    }
    body.mobile-app-shell .toolbar .userbar {
      display:flex;
      align-items:center;
      justify-content:flex-start;
      gap:8px;
      width:100%;
    }
    body.mobile-app-shell .toolbar .toolbar-nav-button { display:none !important; }
    body.mobile-app-shell .toolbar .toolbar-action-button,
    body.mobile-app-shell .toolbar .toolbar-logout-button {
      border:1px solid rgba(226,232,240,.28);
      background:rgba(255,255,255,.95);
      color:var(--pmb-anthracite);
      box-shadow:0 8px 18px rgba(36,36,36,.16);
    }
    body.mobile-app-shell .toolbar .toolbar-logout-button {
      background:transparent;
      border-color:rgba(255,255,255,.45);
      color:#f4f3f4;
      box-shadow:none;
      font-weight:700;
    }
    /* Hauptaktion auf dem dunklen Kopf hervorheben (Markenrot) */
    body.mobile-app-shell .toolbar .toolbar-action-button.primary {
      background:var(--pmb-red);
      border-color:var(--pmb-red);
      color:#fff;
    }
    body.mobile-app-shell .card,
    body.mobile-app-shell .site-card,
    body.mobile-app-shell .stat-tile,
    body.mobile-app-shell .desktop-list-item,
    body.mobile-app-shell .today-plan-card,
    body.mobile-app-shell .planning-item-card {
      border-color:#d7dcde;
      border-radius:12px;
      box-shadow:0 10px 28px rgba(36,36,36,.09);
    }
    body.mobile-app-shell .card { margin-bottom:14px; }
    body.mobile-app-shell #desktopDashboardApp .toolbar {
      grid-template-columns:minmax(0,1fr) auto;
      align-items:start;
      min-height:0;
      gap:10px;
      margin-bottom:12px;
      padding:14px 14px 16px;
      border-radius:0 0 16px 16px;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar h1 {
      font-size:26px;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar .current-user {
      display:none;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar .offline-status,
    body.mobile-app-shell #desktopDashboardRefreshButton,
    body.mobile-app-shell #dailySummaryDesktopTestButton {
      display:none;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar .userbar {
      width:auto;
      justify-content:flex-end;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar .btn {
      min-height:38px;
      padding:8px 10px;
    }
    body.mobile-app-shell .home-shell {
      gap:12px;
    }
    body.mobile-app-shell .home-mobile-status {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      column-gap:8px;
      row-gap:8px;
      overflow:hidden;
      border-radius:16px;
      box-shadow:0 12px 28px rgba(36,36,36,.10);
    }
    body.mobile-app-shell .home-mobile-status-main {
      min-width:0;
      grid-column:1;
    }
    body.mobile-app-shell .home-mobile-status .offline-status {
      grid-column:2;
      justify-self:end;
      max-width:100%;
    }
    body.mobile-app-shell .home-mobile-status-actions {
      grid-column:1 / -1;
      width:100%;
      display:grid;
      grid-template-columns:repeat(auto-fit,minmax(96px,1fr));
      gap:6px;
    }
    body.mobile-app-shell .home-daily-summary-teaser {
      display:grid;
      grid-template-columns:minmax(0,1fr) 84px;
      align-items:stretch;
    }
    body.mobile-app-shell .home-daily-summary-teaser[hidden],
    body.mobile-app-shell [onclick*="openDailySummary"][hidden] {
      display:none !important;
    }
    body.mobile-app-shell .home-mobile-status-actions .btn {
      width:100%;
      min-width:0;
      min-height:34px;
      padding:6px 9px;
      font-size:12px;
      line-height:1.15;
      white-space:normal;
    }
    body.mobile-app-shell .home-mobile-quick-actions {
      display:none !important;
    }
    body.mobile-app-shell .home-mobile-overview {
      display:block;
    }
    body.mobile-app-shell .home-mobile-tasks {
      display:block;
    }
    body.mobile-app-shell .home-mobile-quick-action {
      min-height:76px;
    }
    @media (max-width: 420px) {
      body.mobile-app-shell .home-mobile-status {
        align-items:stretch;
        grid-template-columns:1fr;
      }
      body.mobile-app-shell .home-mobile-status-main {
        grid-column:1;
      }
      body.mobile-app-shell .home-mobile-status .offline-status {
        grid-column:1;
        justify-self:start;
      }
      body.mobile-app-shell .home-mobile-status-actions {
        grid-column:1;
        grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
      }
      body.mobile-app-shell .home-mobile-status-actions .btn {
        width:100%;
      }
    }
    body.mobile-app-shell .home-toolbar-subline {
      font-size:13px;
    }
    body.mobile-app-shell .home-tile-grid {
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:10px;
    }
    body.mobile-app-shell .home-area-section {
      display:none !important;
    }
    body.mobile-app-shell .home-tile-grid:not(.order-editing):not(.favorite-editing) .home-tile-mobile-quick-duplicate {
      display:none !important;
    }
    body.mobile-app-shell .home-tile {
      min-height:78px;
      grid-template-columns:auto minmax(0,1fr);
      grid-template-rows:auto;
      align-items:center;
      justify-items:start;
      gap:10px;
      padding:12px;
      border-radius:14px;
      text-align:left;
      box-shadow:0 10px 24px rgba(36,36,36,.08);
    }
    body.mobile-app-shell .home-tile-icon {
      width:40px;
      height:40px;
      border-radius:11px;
    }
    body.mobile-app-shell .home-tile-icon .app-icon { width:23px; height:23px; }
    body.mobile-app-shell .home-tile-title {
      display:block;
      font-size:13.5px;
      line-height:1.12;
      white-space:nowrap;
      text-overflow:ellipsis;
      overflow:hidden;
      max-width:100%;
    }
    body.mobile-app-shell .home-tile-subtitle {
      display:block;
      min-height:0;
      margin-top:3px;
      color:#64748b;
      font-size:11px;
      line-height:1.15;
      white-space:nowrap;
      text-overflow:ellipsis;
      overflow:hidden;
      max-width:100%;
    }
    body.mobile-app-shell .home-tile > span:last-child {
      min-width:0;
      max-width:100%;
    }
    body.mobile-app-shell .home-tile-badge {
      top:8px;
      right:8px;
      min-width:22px;
      height:22px;
      padding:0 6px;
      font-size:10.5px;
    }
    body.mobile-app-shell .home-mobile-admin-summary {
      display:inline-flex;
    }
    body.mobile-app-shell .home-mobile-admin-summary[hidden],
    .home-admin-cockpit-card[hidden] {
      display:none !important;
    }
    body.mobile-app-shell .home-mobile-admin-summary.warn {
      border-color:#fecaca;
      background:#fff5f5;
      color:#991b1b;
    }
    @media (max-width: 360px) {
      body.mobile-app-shell .home-mobile-quick-actions,
      body.mobile-app-shell .home-tile-grid {
        grid-template-columns:1fr;
      }
      body.mobile-app-shell .home-mobile-quick-action,
      body.mobile-app-shell .home-tile {
        min-height:70px;
      }
    }
    @media (min-width: 721px) and (max-width: 1099px) {
      body.mobile-app-shell .home-mobile-quick-actions,
      body.mobile-app-shell .home-tile-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
      }
    }
    body.mobile-app-shell .home-admin-content {
      display:none !important;
    }
    body.mobile-app-shell.home-admin-cockpit-open .home-admin-content {
      display:grid !important;
      gap:12px;
    }
    body.mobile-app-shell.home-admin-cockpit-open #homeAdminContent > .desktop-kpi-grid,
    body.mobile-app-shell.home-admin-cockpit-open #homeAdminContent .desktop-dashboard-grid > section,
    body.mobile-app-shell.home-admin-cockpit-open #homeAdminContent .desktop-dashboard-grid > div > section {
      display:none;
    }
    body.mobile-app-shell.home-admin-cockpit-open #homeAdminContent .desktop-dashboard-grid {
      display:block;
    }
    body.mobile-app-shell.home-admin-cockpit-open #homeAdminContent .home-admin-cockpit-card {
      display:block !important;
    }
    body.mobile-app-shell.home-admin-cockpit-open #homeAdminContent .home-admin-cockpit-card .subheader {
      align-items:flex-start;
    }
    body.mobile-app-shell #rapportApp {
      display:flex;
      flex-direction:column;
    }
    body.mobile-app-shell #rapportApp .report-desktop-top-grid {
      display:contents;
    }
    body.mobile-app-shell #rapportApp .toolbar {
      margin-bottom:10px;
    }
    body.mobile-app-shell #rapportApp .toolbar h1 {
      font-size:22px;
      line-height:1.08;
    }
    body.mobile-app-shell #rapportApp #rapportSubtitle {
      display:none;
    }
    body.mobile-app-shell #rapportApp .toolbar .userbar {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      width:100%;
      justify-content:stretch;
    }
    body.mobile-app-shell #rapportApp .toolbar .current-user,
    body.mobile-app-shell #rapportApp .toolbar .offline-status {
      align-self:center;
    }
    body.mobile-app-shell #rapportApp .toolbar .current-user {
      grid-column:1;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      font-size:12px;
    }
    body.mobile-app-shell #rapportApp .toolbar .offline-status {
      grid-column:2;
      justify-self:end;
    }
    body.mobile-app-shell #rapportApp .toolbar .toolbar-nav-button,
    body.mobile-app-shell #rapportApp .toolbar .toolbar-logout-button {
      display:none !important;
    }
    body.mobile-app-shell #rapportApp .toolbar .toolbar-action-button {
      width:100%;
      min-height:44px;
      padding:10px 8px;
      font-size:13px;
    }
    body.mobile-app-shell #rapportApp .toolbar .rapport-reset-toolbar-button {
      display:block !important;
      grid-column:1 / -1;
    }
    body.mobile-app-shell #rapportApp .toolbar .rapport-test-mode-toggle {
      grid-column:1 / -1;
      width:100%;
      min-height:42px;
    }
    body.mobile-app-shell #rapportApp .rapport-test-mode-banner {
      order:0;
      margin:0 0 8px;
      padding:9px 10px;
      font-size:12px;
    }
    body.mobile-app-shell #rapportApp .report-base-card { order:1; }
    body.mobile-app-shell #rapportApp .report-type-card { order:2; }
    body.mobile-app-shell #rapportApp .rapport-mobile-workbar {
      order:0;
      display:none;
      position:sticky;
      top:0;
      z-index:18;
      margin:0 0 10px;
    }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .rapport-mobile-workbar {
      display:none;
    }
    body.mobile-app-shell #rapportApp .offline-card {
      order:3;
      padding:0;
      margin:0 0 8px;
    }
    body.mobile-app-shell #rapportApp .offline-card-toggle {
      min-height:38px;
      padding:7px 9px;
      border-radius:10px;
      gap:8px;
    }
    body.mobile-app-shell #rapportApp .offline-card-toggle-main {
      gap:6px;
      flex-wrap:nowrap;
      overflow:hidden;
    }
    body.mobile-app-shell #rapportApp .offline-card-toggle-title {
      font-size:12px;
      white-space:nowrap;
    }
    body.mobile-app-shell #rapportApp .offline-card-toggle-meta {
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      font-size:11px;
    }
    body.mobile-app-shell #rapportApp .offline-card-toggle-badge {
      min-height:22px;
      padding:2px 7px;
      font-size:10px;
    }
    body.mobile-app-shell #rapportApp .offline-inline {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:8px;
      padding:7px 8px;
      border-radius:9px;
    }
    body.mobile-app-shell #rapportApp .offline-inline strong {
      font-size:12px;
      line-height:1.1;
    }
    body.mobile-app-shell #rapportApp .offline-inline span {
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
      font-size:11px;
      line-height:1.15;
    }
    body.mobile-app-shell #rapportApp .offline-inline-actions {
      justify-content:flex-end;
      display:flex;
      gap:6px;
      flex-wrap:nowrap;
    }
    body.mobile-app-shell #rapportApp .offline-inline-actions .btn {
      display:none;
      width:auto;
      min-height:30px;
      padding:5px 8px;
      font-size:11px;
    }
    body.mobile-app-shell #rapportApp #offlineSaveDraftButton,
    body.mobile-app-shell #rapportApp #offlineSyncButton,
    body.mobile-app-shell #rapportApp #offlineDiscardErrorButton {
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }
    body.mobile-app-shell #rapportApp .offline-details {
      display:none !important;
    }
    body.mobile-app-shell #rapportApp.mobile-report-guided:not(.mobile-report-tagesrapport) [data-mobile-report-step] {
      display:none !important;
    }
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="base"]:not(.mobile-report-tagesrapport) [data-mobile-report-step~="base"]:not(.report-type-hidden),
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="team"]:not(.mobile-report-tagesrapport) [data-mobile-report-step~="team"]:not(.report-type-hidden),
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="work"]:not(.mobile-report-tagesrapport) [data-mobile-report-step~="work"]:not(.report-type-hidden),
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="photos"]:not(.mobile-report-tagesrapport) [data-mobile-report-step~="photos"]:not(.report-type-hidden),
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="check"]:not(.mobile-report-tagesrapport) [data-mobile-report-step~="check"]:not(.report-type-hidden) {
      display:block !important;
    }
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="check"]:not(.mobile-report-tagesrapport) .report-extra-notes-wrap[data-mobile-report-step~="check"] {
      display:grid !important;
    }
    body.mobile-app-shell #rapportApp.mobile-report-guided:not(.mobile-report-tagesrapport) .rapport-mobile-review-card[data-mobile-report-step~="check"] {
      display:none !important;
    }
    body.mobile-app-shell #rapportApp.mobile-report-guided[data-mobile-report-step-active="check"]:not(.mobile-report-tagesrapport) .rapport-mobile-review-card[data-mobile-report-step~="check"] {
      display:block !important;
    }
    body.mobile-app-shell #rapportApp > section:not(.report-base-card):not(.report-type-card):not(.offline-card) {
      order:4;
    }
    body.mobile-app-shell #rapportApp .report-extra-notes-wrap {
      order:4;
    }
    body.mobile-app-shell .time-today-shortcut {
      display:grid;
      gap:10px;
      padding:12px;
      margin-bottom:12px;
      border:1px solid #dbe3ee;
      border-radius:12px;
      background:#f8fafc;
    }
    body.mobile-app-shell .time-today-shortcut-head {
      display:flex;
      justify-content:space-between;
      gap:10px;
      align-items:flex-start;
    }
    body.mobile-app-shell .time-today-shortcut-head strong {
      display:block;
      font-size:16px;
      line-height:1.2;
    }
    body.mobile-app-shell .time-today-shortcut-head span {
      display:block;
      margin-top:3px;
      color:#64748b;
      font-size:12px;
      font-weight:800;
      line-height:1.25;
    }
    body.mobile-app-shell .time-today-plan-list {
      display:grid;
      gap:8px;
    }
    body.mobile-app-shell .time-today-plan-button {
      width:100%;
      border:1px solid #dbe3ee;
      border-radius:10px;
      background:#fff;
      color:#0f172a;
      padding:10px;
      text-align:left;
      cursor:pointer;
    }
    body.mobile-app-shell .time-today-plan-button strong,
    body.mobile-app-shell .time-today-plan-button span {
      display:block;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    body.mobile-app-shell .time-today-plan-button strong { font-size:14px; }
    body.mobile-app-shell .time-today-plan-button span { margin-top:3px; color:#64748b; font-size:12px; font-weight:800; }
    body.mobile-app-shell #sitesApp .site-list-toolbar {
      gap:8px;
    }
    body.mobile-app-shell #sitesApp .site-card {
      padding:11px;
      border-radius:14px;
      gap:8px;
    }
    body.mobile-app-shell #sitesApp .site-card h3 {
      margin:2px 0 0;
      font-size:17px;
      line-height:1.18;
    }
    body.mobile-app-shell #sitesApp .site-card-meta {
      display:grid;
      gap:3px;
      font-size:13px;
      line-height:1.28;
    }
    body.mobile-app-shell #sitesApp .site-card-meta > div:nth-child(3),
    body.mobile-app-shell #sitesApp .site-card-meta > div:nth-child(4),
    body.mobile-app-shell #sitesApp .site-card-meta > div:nth-child(6),
    body.mobile-app-shell #sitesApp .site-card-meta > div:nth-child(7) {
      display:none;
    }
    body.mobile-app-shell #sitesApp .site-card-actions.mobile-site-actions {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin-top:4px;
    }
    body.mobile-app-shell #sitesApp .site-card-actions.mobile-site-actions .btn {
      width:100%;
      min-height:40px;
      padding:8px 11px;
      border-radius:9px;
      font-size:13px;
      justify-content:center;
    }
    body.mobile-app-shell #sitesApp .site-card-more-actions {
      display:block;
    }
    body.mobile-app-shell #sitesApp .site-card-more-actions summary {
      min-height:40px;
      padding:8px 11px;
      border-radius:9px;
    }
    body.mobile-app-shell #sitesApp .site-card-more-actions-body {
      gap:7px;
    }
    body.mobile-app-shell .mobile-more-menu-section {
      display:block;
    }
    body.mobile-app-shell .quote-layout {
      display:grid;
      grid-template-columns:1fr;
      gap:12px;
    }
    body.mobile-app-shell #quoteVisitApp .quote-mobile-workbar {
      position:sticky;
      top:0;
      z-index:12;
      display:grid;
      gap:8px;
      margin:-4px 0 12px;
      padding:9px 0 10px;
      background:linear-gradient(var(--pmb-light) 78%, rgba(244,246,250,0));
    }
    body.mobile-app-shell #quoteVisitApp .quote-section-kicker {
      display:block;
      margin-bottom:7px;
    }
    body.mobile-app-shell #quoteVisitApp .quote-step-section {
      display:none;
      margin-bottom:0;
    }
    body.mobile-app-shell #quoteVisitApp .quote-step-section.active {
      display:block;
    }
    body.mobile-app-shell #quoteVisitApp .quote-side-panel,
    body.mobile-app-shell #quoteVisitApp .quote-main-panel {
      gap:12px;
    }
    body.mobile-app-shell #quoteVisitApp .quote-form-grid,
    body.mobile-app-shell #quoteVisitApp .quote-item-builder {
      grid-template-columns:1fr;
    }
    body.mobile-app-shell #quoteVisitApp textarea {
      min-height:96px;
    }
    body.mobile-app-shell #quoteVisitApp .quote-form-grid .wide-field,
    body.mobile-app-shell #quoteVisitApp .quote-item-builder .wide-field {
      grid-column:auto;
    }
    body.mobile-app-shell #quoteVisitApp .quote-mobile-file-primary {
      display:grid;
      gap:7px;
      margin-bottom:10px;
    }
    body.mobile-app-shell #quoteVisitApp .quote-field-open-button {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      border-radius:8px;
      margin-top:6px;
    }
    body.mobile-app-shell #quoteVisitApp .toolbar .toolbar-action-button,
    body.mobile-app-shell #quoteVisitApp .toolbar .toolbar-logout-button,
    body.mobile-app-shell #quoteArchiveApp .toolbar .toolbar-logout-button {
      display:none !important;
    }
    body.mobile-app-shell #quoteArchiveApp .quote-filter-grid {
      display:none;
    }
    body.mobile-app-shell #quoteArchiveApp .quote-archive-chips {
      margin-bottom:8px;
    }
    body.mobile-app-shell #quoteArchiveApp .quote-visit-card {
      gap:9px;
      padding:12px;
    }
    body.mobile-app-shell #quoteArchiveApp .quote-card-head {
      display:grid;
      gap:7px;
    }
    body.mobile-app-shell #quoteArchiveApp .quote-deadline-line {
      gap:5px;
    }
    body.mobile-app-shell #quoteArchiveApp .quote-stage-dropdown:not([open]) .quote-stage-list {
      display:none;
    }
    body.mobile-app-shell .quote-preview-overlay,
    body.mobile-app-shell .quote-fullscreen-editor-overlay {
      align-items:stretch;
      padding:0;
    }
    body.mobile-app-shell .quote-preview-dialog,
    body.mobile-app-shell .quote-fullscreen-editor {
      width:100%;
      max-height:100dvh;
      border-radius:0;
      border-left:0;
      border-right:0;
    }
    body.mobile-app-shell .quote-preview-actions,
    body.mobile-app-shell .quote-fullscreen-editor-actions {
      display:grid;
      grid-template-columns:1fr;
    }
    body.mobile-app-shell .quote-preview-actions .btn,
    body.mobile-app-shell .quote-fullscreen-editor-actions .btn {
      width:100%;
    }
    body.mobile-app-shell .site-management-contact-actions {
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
    }
    body.mobile-app-shell .site-management-contact-button {
      min-width:0;
      padding:7px 8px;
      font-size:11.5px;
    }
    body.mobile-app-shell .quote-kpi-grid {
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:7px;
    }
    body.mobile-app-shell .quote-kpi {
      min-height:64px;
      padding:9px 8px;
    }
    body.mobile-app-shell .quote-kpi strong { font-size:19px; }
    body.mobile-app-shell .quote-kpi span { font-size:10px; line-height:1.15; }
    body.mobile-app-shell .quote-filter-grid,
    body.mobile-app-shell .quote-file-card {
      grid-template-columns:1fr;
    }
    body.mobile-app-shell .quote-file-thumb {
      width:100%;
      height:150px;
    }
    body.mobile-app-shell .quote-handwriting-tools {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    body.mobile-app-shell .quote-handwriting-tools .btn,
    body.mobile-app-shell .quote-handwriting-tools .quote-handwriting-size {
      width:100%;
    }
    body.mobile-app-shell .quote-handwriting-size {
      grid-column:1 / -1;
    }
    body.mobile-app-shell .quote-handwriting-canvas-wrap {
      max-height:68dvh;
      min-height:360px;
      padding:8px;
    }
    body.mobile-app-shell .quote-handwriting-paper {
      width:100%;
      min-height:1200px;
    }
    body.mobile-app-shell .quote-handwriting-canvas {
      height:1200px;
    }
    body.mobile-app-shell .card h2,
    body.mobile-app-shell .site-list-toolbar h2,
    body.mobile-app-shell .stats-section-heading h2 {
      font-size:20px;
      line-height:1.12;
    }
    body.mobile-app-shell .today-plan-card:not(.done):not(.high-priority):not(.needs-reschedule),
    body.mobile-app-shell .planning-item-card:not(.done):not(.high-priority):not(.needs-reschedule):not(.conflict):not(.spacing-warning),
    body.mobile-app-shell .site-card {
      background:#f3f6fa;
    }
    body.mobile-app-shell #todayApp .today-plan-grid {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
    }
    body.mobile-app-shell #todayApp .today-plan-card {
      position:relative;
      min-height:0;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:4px 12px;
      padding:13px 14px 13px 24px;
      border-radius:16px;
      background:#fff;
    }
    body.mobile-app-shell #todayApp .today-plan-card::before {
      content:"";
      position:absolute;
      left:11px;
      top:18px;
      width:7px;
      height:7px;
      border-radius:999px;
      background:#f59e0b;
      box-shadow:0 0 0 4px rgba(245,158,11,.14);
    }
    body.mobile-app-shell #todayApp .today-plan-card.done::before,
    body.mobile-app-shell #todayApp .today-plan-card.active::before {
      background:#16a34a;
      box-shadow:0 0 0 4px rgba(22,163,74,.14);
    }
    body.mobile-app-shell #todayApp .today-plan-card.high-priority::before,
    body.mobile-app-shell #todayApp .today-plan-card.needs-reschedule::before {
      background:#e30613;
      box-shadow:0 0 0 4px rgba(227,6,19,.12);
    }
    body.mobile-app-shell #todayApp .today-plan-card .plan-card-head { display:contents; }
    body.mobile-app-shell #todayApp .today-plan-card .plan-card-head > div { min-width:0; }
    body.mobile-app-shell #todayApp .today-plan-card .plan-compact-ktr {
      grid-column:1;
      grid-row:1;
      font-size:17px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      overflow-wrap:normal;
    }
    body.mobile-app-shell #todayApp .today-plan-card .plan-compact-time {
      grid-column:2;
      grid-row:1 / span 2;
      align-self:start;
      min-height:0;
      padding:0;
      background:transparent;
      color:#0f172a;
      font-size:13px;
      line-height:1.2;
      text-align:right;
      justify-content:flex-end;
      white-space:normal;
    }
    body.mobile-app-shell #todayApp .today-plan-card .plan-compact-address {
      grid-column:1;
      grid-row:2;
      color:#64748b;
      font-size:13px;
      line-height:1.25;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
    }
    body.mobile-app-shell #todayApp .today-plan-card .plan-compact-user,
    body.mobile-app-shell #todayApp .today-plan-card .plan-card-status,
    body.mobile-app-shell #todayApp .today-plan-card .badge,
    body.mobile-app-shell #todayApp .today-plan-card .plan-info-badges {
      grid-column:1 / -1;
      margin-top:4px;
    }
    body.mobile-app-shell #todayApp .spontaneous-card {
      padding:14px;
      background:#f8fafc;
    }
    body.mobile-app-shell #todayApp .spontaneous-toggle strong { font-size:18px; }
    body.mobile-app-shell #todayApp .spontaneous-body { margin-top:12px; padding-top:12px; }
    body.mobile-app-shell input,
    body.mobile-app-shell select,
    body.mobile-app-shell textarea {
      width:100%;
      max-width:100%;
      min-width:0;
      border-radius:12px;
      border-color:#cbd5e1;
      background:#fff;
    }
    body.mobile-app-shell .grid > *,
    body.mobile-app-shell .today-controls > *,
    body.mobile-app-shell .planning-controls > *,
    body.mobile-app-shell .project-picker {
      min-width:0 !important;
      max-width:100%;
    }
    body.mobile-app-shell input[type="date"],
    body.mobile-app-shell input[type="time"] {
      display:block;
      inline-size:100%;
      min-inline-size:0;
      max-inline-size:100%;
    }
    body.mobile-app-shell input[type="checkbox"] {
      width:20px;
      min-width:20px;
      max-width:20px;
      height:20px;
      min-height:20px;
      padding:0;
      margin:0;
      flex:0 0 auto;
      border-radius:4px;
    }
    body.mobile-app-shell .btn { border-radius:12px; }
    body.mobile-app-shell .site-management-dialog {
      width:100%;
      max-height:100dvh;
      height:100dvh;
      border-radius:0;
      border:0;
    }
    body.mobile-app-shell .site-management-body {
      padding:12px;
    }
    body.mobile-app-shell .site-management-panel {
      gap:10px;
      padding:12px;
      border-radius:14px;
      box-shadow:0 8px 20px rgba(15,23,42,.08);
    }
    body.mobile-app-shell .site-management-form-grid {
      grid-template-columns:1fr;
      gap:10px;
    }
    body.mobile-app-shell .site-management-form-grid .wide-field {
      grid-column:auto;
    }
    body.mobile-app-shell #siteManagementMeasurementPhotos,
    body.mobile-app-shell .site-management-measurement-photo-upload input {
      padding:10px;
      min-height:46px;
      font-size:14px;
    }
    body.mobile-app-shell .site-management-measurement-tools {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
    }
    body.mobile-app-shell .site-management-measurement-tools .site-management-actions {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      justify-content:stretch;
    }
    body.mobile-app-shell .site-management-measurement-tools .btn {
      width:100%;
    }
    body.mobile-app-shell .site-management-measurement-table-wrap {
      display:none;
    }
    body.mobile-app-shell .site-management-measurement-card-list {
      display:grid;
    }
    body.mobile-app-shell .site-management-measurement-card-facts {
      grid-template-columns:1fr;
    }
    body.mobile-app-shell .site-management-measurement-photos {
      grid-template-columns:repeat(2,minmax(0,1fr));
      max-width:none;
      margin-bottom:8px;
    }
    body.mobile-app-shell .site-management-measurement-photo {
      min-height:112px;
      border-radius:12px;
    }
    body.mobile-app-shell .site-management-measurement-photo img {
      height:118px;
    }
    body.mobile-app-shell .site-management-measurement-photo-upload {
      gap:8px;
    }
    body.mobile-app-shell .site-management-measurement-photo-upload .btn {
      min-height:44px;
      font-size:13px;
    }
    body.mobile-app-shell .site-management-task-summary {
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:6px;
      margin-bottom:8px;
    }
    body.mobile-app-shell .site-management-task-kpi {
      padding:7px 8px;
      border-radius:9px;
      box-shadow:none;
    }
    body.mobile-app-shell .site-management-task-kpi strong {
      font-size:18px;
    }
    body.mobile-app-shell .site-management-task-kpi span {
      margin-top:3px;
      font-size:9.5px;
      line-height:1.05;
    }
    body.mobile-app-shell .site-management-task-kpi.mobile-secondary {
      display:none;
    }
    body.mobile-app-shell .site-management-defect-toolbar {
      gap:6px;
      margin-bottom:8px;
    }
    body.mobile-app-shell .site-management-defect-filter {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:6px;
      padding:0;
      border:0;
      background:transparent;
    }
    body.mobile-app-shell .site-management-defect-filter .filter-tag {
      grid-column:1 / -1;
      font-size:10px;
    }
    body.mobile-app-shell .site-management-defect-filter label {
      display:grid;
      gap:3px;
      font-size:10.5px;
    }
    body.mobile-app-shell .site-management-defect-filter select,
    body.mobile-app-shell .site-management-defect-filter input[type="date"] {
      min-width:0;
      width:100%;
      min-height:38px;
      padding:6px 8px;
      font-size:13px;
      border-radius:8px;
    }
    body.mobile-app-shell .site-management-defect-filter button {
      grid-column:1 / -1;
      width:100%;
      min-height:38px;
    }
    body.mobile-app-shell .site-management-defect-filter-toggle .site-management-mobile-details-body {
      gap:8px;
    }
    body.mobile-app-shell .site-management-defect-form-toggle .site-management-panel {
      margin-bottom:0;
      padding:0;
      border:0;
      border-radius:0;
      box-shadow:none;
      background:transparent;
    }
    body.mobile-app-shell .site-management-defect-form-toggle .site-management-panel h3 {
      display:none;
    }
    body.mobile-app-shell .site-management-defect-filter-toggle .site-management-actions {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:6px;
    }
    body.mobile-app-shell .site-management-defect-filter-toggle .site-management-actions .btn {
      width:100%;
      min-height:38px;
      padding:7px 8px;
      font-size:11.5px;
      line-height:1.1;
    }
    body.mobile-app-shell .site-management-task-board {
      gap:8px;
    }
    body.mobile-app-shell .site-management-task-board .site-management-folder-body {
      padding:0 8px 8px;
    }
    body.mobile-app-shell .site-management-task-board .site-management-list {
      gap:7px;
    }
    body.mobile-app-shell .site-management-task-board .site-management-item {
      gap:6px;
      padding:8px;
      border-radius:11px;
      box-shadow:none;
    }
    body.mobile-app-shell .site-management-task-board .site-management-item-head {
      display:grid;
      grid-template-columns:1fr;
      gap:6px;
    }
    body.mobile-app-shell .site-management-defect-select {
      gap:7px;
    }
    body.mobile-app-shell .site-management-defect-select input {
      width:17px;
      height:17px;
      margin-top:1px;
    }
    body.mobile-app-shell .site-management-defect-select label {
      font-size:14px;
      line-height:1.18;
    }
    body.mobile-app-shell .site-management-task-board .quote-status-row {
      gap:4px;
    }
    body.mobile-app-shell .site-management-task-board .site-management-status-pill {
      min-height:21px;
      padding:2px 6px;
      font-size:10px;
    }
    body.mobile-app-shell .site-management-task-card-meta {
      gap:4px;
      font-size:10.5px;
      line-height:1.15;
    }
    body.mobile-app-shell .site-management-task-assignee {
      min-height:21px;
      padding:2px 6px;
      font-size:10px;
    }
    body.mobile-app-shell .site-management-task-card-description,
    body.mobile-app-shell .site-management-defect-photos,
    body.mobile-app-shell .site-management-defect-photo-upload {
      display:none;
    }
    body.mobile-app-shell .site-management-defect-compact-details {
      display:block;
      border:1px solid #e2e8f0;
      border-radius:9px;
      background:#f8fafc;
      overflow:hidden;
    }
    body.mobile-app-shell .site-management-defect-compact-details summary {
      list-style:none;
      min-height:34px;
      padding:7px 9px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      color:#334155;
      font-size:11.5px;
      font-weight:950;
      cursor:pointer;
    }
    body.mobile-app-shell .site-management-defect-compact-details summary::-webkit-details-marker {
      display:none;
    }
    body.mobile-app-shell .site-management-defect-compact-details summary::after {
      content:"+";
      font-size:16px;
      line-height:1;
      color:#64748b;
    }
    body.mobile-app-shell .site-management-defect-compact-details[open] summary::after {
      content:"-";
    }
    body.mobile-app-shell .site-management-defect-compact-body {
      display:grid;
      gap:7px;
      padding:0 8px 8px;
    }
    body.mobile-app-shell .site-management-defect-compact-body .site-management-text,
    body.mobile-app-shell .site-management-defect-compact-body .site-management-defect-photos,
    body.mobile-app-shell .site-management-defect-compact-body .site-management-defect-photo-upload {
      display:grid;
    }
    body.mobile-app-shell .site-management-defect-compact-body .site-management-defect-photo-upload {
      grid-template-columns:1fr;
    }
    body.mobile-app-shell .site-management-defect-compact-body .site-management-defect-photos {
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    body.mobile-app-shell .site-management-defect-compact-body .site-management-defect-photo img {
      height:94px;
    }
    body.mobile-app-shell .site-management-task-actions {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:5px;
      justify-content:stretch;
    }
    body.mobile-app-shell .site-management-task-actions .btn {
      min-height:34px;
      width:100%;
      padding:6px 7px;
      font-size:11px;
      line-height:1.05;
      border-radius:8px;
    }
    body.mobile-app-shell .push-setting {
      display:grid !important;
      grid-template-columns:auto minmax(0,1fr) auto;
      align-items:center;
      width:100%;
      min-width:0;
      max-width:100%;
    }
    body.mobile-app-shell .push-setting input {
      width:18px;
      min-width:18px;
      max-width:18px;
      min-height:18px;
    }
    body.mobile-app-shell .push-setting span {
      min-width:0;
      white-space:normal;
    }
    body.mobile-app-shell .push-setting small {
      margin-left:0;
    }
    body.mobile-app-shell .planning-week-grid,
    body.mobile-app-shell .stats-table-wrap {
      border-radius:16px;
    }
    body.mobile-app-shell #statisticsApp .stats-download-bar {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
    }
    body.mobile-app-shell #statisticsApp .stats-download-bar .btn {
      width:100%;
    }
    body.mobile-app-shell #statsReports .stats-table-wrap {
      overflow:visible;
      border-radius:0;
    }
    body.mobile-app-shell #statsReports .stats-table,
    body.mobile-app-shell #statsReports .stats-table tbody,
    body.mobile-app-shell #statsReports .stats-table tr,
    body.mobile-app-shell #statsReports .stats-table td {
      display:block;
      width:100%;
      min-width:0;
    }
    body.mobile-app-shell #statsReports .stats-table {
      border-collapse:separate;
      border-spacing:0;
      font-size:13px;
    }
    body.mobile-app-shell #statsReports .stats-table thead {
      display:none;
    }
    body.mobile-app-shell #statsReports .stats-table tr {
      margin-bottom:10px;
      padding:10px 12px;
      border:1px solid #dbe3ee;
      border-radius:14px;
      background:#fff;
      box-shadow:0 8px 20px rgba(15,23,42,.08);
    }
    body.mobile-app-shell #statsReports .stats-table td {
      display:grid;
      grid-template-columns:92px minmax(0,1fr);
      gap:8px;
      align-items:center;
      min-height:30px;
      padding:5px 0;
      border-bottom:0;
      text-align:left;
      white-space:normal;
      overflow-wrap:anywhere;
    }
    body.mobile-app-shell #statsReports .stats-table td::before {
      content:attr(data-label);
      display:block;
      color:#64748b;
      font-size:12px;
      font-weight:900;
      line-height:1.15;
    }
    body.mobile-app-shell #statsReports .stats-table td:first-child {
      grid-template-columns:92px minmax(0,1fr);
    }
    body.mobile-app-shell #statsReports .stats-table td:first-child::before {
      content:"Auswahl";
    }
    body.mobile-app-shell #statsReports .stats-table td.num {
      text-align:left;
    }
    body.mobile-app-shell #statsReports .stats-select-control,
    body.mobile-app-shell #statsReports .stats-print-control {
      justify-content:flex-start;
      min-height:0;
    }
    body.mobile-app-shell #statsReports .stats-select-control input,
    body.mobile-app-shell #statsReports .stats-print-control input {
      width:18px;
      min-width:18px;
      max-width:18px;
      height:18px;
      min-height:18px;
    }
    body.mobile-app-shell #statsReports .stats-print-note {
      margin-top:0;
      white-space:normal;
    }
    body.mobile-app-shell #timeEntriesList .stats-table-wrap {
      overflow:visible;
      border-radius:0;
    }
    body.mobile-app-shell #timeEntriesList .stats-table,
    body.mobile-app-shell #timeEntriesList .stats-table tbody,
    body.mobile-app-shell #timeEntriesList .stats-table tr,
    body.mobile-app-shell #timeEntriesList .stats-table td {
      display:block;
      width:100%;
      min-width:0;
    }
    body.mobile-app-shell #timeEntriesList .stats-table thead {
      display:none;
    }
    body.mobile-app-shell #timeEntriesList .stats-table tr {
      margin-bottom:10px;
      padding:10px 12px;
      border:1px solid #dbe3ee;
      border-radius:14px;
      background:#fff;
      box-shadow:0 8px 20px rgba(15,23,42,.08);
    }
    body.mobile-app-shell #timeEntriesList .stats-table td {
      display:grid;
      grid-template-columns:88px minmax(0,1fr);
      gap:8px;
      align-items:center;
      min-height:30px;
      padding:5px 0;
      border-bottom:0;
      text-align:left;
      white-space:normal;
      overflow-wrap:anywhere;
    }
    body.mobile-app-shell #timeEntriesList .stats-table td::before {
      content:attr(data-label);
      display:block;
      color:#64748b;
      font-size:12px;
      font-weight:900;
      line-height:1.15;
    }
    body.mobile-app-shell #timeEntriesList .stats-table td.num {
      text-align:left;
    }
    body.mobile-app-shell #timeEntriesList .stats-table td > * {
      min-width:0;
      max-width:100%;
    }
    body.mobile-app-shell #timeEntriesList .time-entry-source {
      width:max-content;
      max-width:100%;
      justify-content:flex-start;
    }
    .mobile-app-nav {
      position:fixed;
      left:12px;
      right:12px;
      bottom:calc(10px + env(safe-area-inset-bottom));
      z-index:90;
      display:none;
      grid-template-columns:repeat(var(--mobile-nav-count, 5),minmax(0,1fr));
      gap:6px;
      padding:8px;
      border:1px solid rgba(255,255,255,.20);
      border-radius:22px;
      background:rgba(27,27,27,.97);
      box-shadow:0 18px 42px rgba(36,36,36,.36), 0 0 0 1px rgba(0,0,0,.08);
      backdrop-filter:blur(16px);
    }
    body.mobile-app-shell .mobile-app-nav { display:grid; }
    .mobile-app-nav button {
      position:relative;
      min-width:0;
      min-height:52px;
      border:0;
      border-radius:15px;
      padding:6px 4px;
      background:transparent;
      color:#f4f3f4;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:3px;
      font-size:10.5px;
      font-weight:900;
      line-height:1;
      overflow:hidden;
      cursor:pointer;
      touch-action:manipulation;
    }
    .mobile-nav-icon {
      width:21px;
      height:21px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      color:currentColor;
    }
    .mobile-nav-icon .app-icon { width:21px; height:21px; stroke-width:2.2; }
    .mobile-nav-label {
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .mobile-app-nav button.active {
      background:#fff;
      color:var(--pmb-red);
      box-shadow:0 10px 22px rgba(36,36,36,.28);
    }
    .mobile-app-nav button.active::before {
      content:"";
      position:absolute;
      left:50%;
      top:5px;
      width:18px;
      height:3px;
      border-radius:999px;
      transform:translateX(-50%);
      background:var(--pmb-red);
    }
    .mobile-app-nav button[hidden] { display:none !important; }
  }

  @media (min-width: 721px) and (max-width: 1099px) {
    body.mobile-app-shell .app {
      padding-left:22px;
      padding-right:22px;
    }
    body.mobile-app-shell .toolbar {
      margin-left:-22px;
      margin-right:-22px;
      padding:16px 22px 18px;
      border-radius:0 0 22px 22px;
    }
    body.mobile-app-shell .toolbar h1 { font-size:26px; }
    .mobile-app-nav {
      left:50%;
      right:auto;
      width:min(760px, calc(100vw - 32px));
      transform:translateX(-50%);
    }
  }

  @media (max-width: 430px) {
    .mobile-app-nav {
      left:10px;
      right:10px;
      gap:3px;
      padding:7px;
    }
    .mobile-app-nav button {
      min-height:48px;
      font-size:11px;
      padding-left:3px;
      padding-right:3px;
    }
  }

  @media (max-width: 720px) {
    body.mobile-app-shell .today-controls,
    body.mobile-app-shell .planning-controls {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
    }
    body.mobile-app-shell #planningApp .planning-range-card { display:none; }
    body.mobile-app-shell #planningApp .planning-week-card,
    body.mobile-app-shell #planningApp .planning-form-card { padding:12px; border-radius:14px; }
    body.mobile-app-shell #planningApp .planning-week-card { margin-bottom:10px; }
    body.mobile-app-shell #planningApp .planning-form-card .subheader { margin-bottom:8px; }
    body.mobile-app-shell #planningApp .planning-form-card .subheader h2 { font-size:18px; }
    body.mobile-app-shell #planningApp .planning-form-header {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto auto;
      align-items:center;
      gap:8px;
      margin-bottom:0;
    }
    body.mobile-app-shell #planningApp .planning-form-subtitle { display:block; }
    body.mobile-app-shell #planningApp .planning-form-toggle { display:inline-flex; }
    body.mobile-app-shell #planningApp .planning-form-card.planning-form-collapsed .planning-form-body { display:none; }
    body.mobile-app-shell #planningApp .planning-form-card:not(.planning-form-collapsed) .planning-form-body { margin-top:10px; }
    body.mobile-app-shell #planningApp .planning-controls {
      grid-template-columns:minmax(0,1fr) minmax(0,1fr);
      gap:9px;
    }
    body.mobile-app-shell #planningApp .planning-controls > div:nth-child(3),
    body.mobile-app-shell #planningApp .planning-controls > div:nth-child(4) {
      grid-column:1 / -1;
    }
    body.mobile-app-shell .today-controls > div,
    body.mobile-app-shell .planning-controls > div,
    body.mobile-app-shell .planning-quick-times,
    body.mobile-app-shell .push-setting,
    body.mobile-app-shell .offline-sync-button,
    body.mobile-app-shell .offline-summary {
      width:100%;
    }
    body.mobile-app-shell .planning-date-preview { margin-top:2px; font-size:13px; }
    body.mobile-app-shell .planning-quick-times { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; margin-top:0; padding:9px; border-radius:13px; }
    body.mobile-app-shell .planning-quick-times-label { grid-column:1 / -1; min-height:auto; }
    body.mobile-app-shell .planning-time-preset.btn.secondary { width:100%; min-height:62px; padding:9px 10px; border-radius:11px; }
    body.mobile-app-shell .planning-time-preset.btn.secondary strong { font-size:13px; }
    body.mobile-app-shell .planning-time-preset.btn.secondary small { font-size:11px; }
    body.mobile-app-shell .planning-mobile-command-row { display:grid; }
    body.mobile-app-shell .planning-after-save-actions { display:none; }
    body.mobile-app-shell .planning-after-save-actions.show { display:grid; grid-template-columns:1fr; }
    body.mobile-app-shell .planning-after-save-actions .btn { width:100%; min-height:42px; }
  }

.site-badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border-radius: 999px;
  padding: 3px 9px;
  background: #e2e8f0;
  color: #0f172a;
  font-size: 12px;
  font-weight: 800;
}

.badge.status-active { background: #dcfce7; color: #166534; }
.badge.status-planned { background: #dbeafe; color: #1d4ed8; }
.badge.status-paused { background: #fef3c7; color: #92400e; }
.badge.status-completed { background: #e2e8f0; color: #334155; }
.badge.status-archived { background: #fee2e2; color: #991b1b; }
.badge.priority-high { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.badge.needs-reschedule { background:#fef3c7; color:#92400e; border:1px solid #facc15; }
.badge.source-spontaneous { background:#e0f2fe; color:#075985; border:1px solid #bae6fd; }

.site-empty {
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  padding: 18px;
  color: #64748b;
  background: #fff;
}

.time-status-panel {
  display:grid;
  gap:8px;
  border:1px solid #dbe3ee;
  border-radius:12px;
  padding:14px;
  background:#f8fafc;
}

.time-status-panel.running {
  border-color:#22c55e;
  background:#f0fdf4;
}

.time-status-panel.paused {
  border-color:#facc15;
  background:#fffbeb;
}

.time-month-lock-panel {
  display:grid;
  gap:8px;
  margin:0 0 12px;
  padding:12px;
  border:1px solid #dbe3ee;
  border-radius:12px;
  background:#f8fafc;
}

.time-month-lock-panel.closed {
  border-color:#bbf7d0;
  background:#f0fdf4;
}

.time-month-lock-panel.reminder {
  border-color:#facc15;
  background:#fffbeb;
}

.time-month-lock-title {
  font-weight:900;
  color:#0f172a;
}

.time-month-lock-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}

.time-status-title {
  font-weight:900;
  color:#0f172a;
}

.time-clock-actions,
.time-entry-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.time-kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:12px 0;
}

.time-kpi {
  border:1px solid #dbe3ee;
  border-radius:10px;
  padding:12px;
  background:#fff;
}

.time-kpi-label {
  color:#64748b;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
}

.time-kpi-value {
  margin-top:4px;
  color:#0f172a;
  font-size:22px;
  font-weight:900;
}

.time-entry-source {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-size:12px;
  font-weight:800;
}

.time-entry-source.report { background:#dbeafe; color:#1d4ed8; }
.time-entry-source.timer { background:#dcfce7; color:#166534; }

.admin-choice-grid,
.admin-time-user-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
}

.admin-choice-card,
.admin-time-user-card {
  width:100%;
  min-height:110px;
  display:grid;
  gap:6px;
  align-content:start;
  border:1px solid #dbe3ee;
  border-radius:12px;
  padding:14px;
  background:#fff;
  color:#0f172a;
  text-align:left;
  cursor:pointer;
  box-shadow:0 1px 3px rgba(15,23,42,.08);
}

.admin-choice-card:hover,
.admin-choice-card:focus,
.admin-time-user-card:hover,
.admin-time-user-card:focus,
.admin-time-user-card.active {
  border-color:#b91c1c;
  outline:none;
  box-shadow:0 0 0 3px rgba(185,28,28,.12);
}

.admin-choice-card strong,
.admin-time-user-card strong {
  display:block;
  font-size:18px;
  font-weight:900;
}

.admin-choice-card span,
.admin-time-user-card span,
.admin-correction-note {
  display:block;
  color:#64748b;
  font-size:13px;
  font-weight:800;
  line-height:1.35;
}

.admin-correction-note {
  margin-top:5px;
  color:#92400e;
}

.user-admin-layout {
  display:grid;
  grid-template-columns:minmax(280px,.9fr) minmax(0,1.4fr);
  gap:14px;
  align-items:start;
}

.user-admin-layout > * { min-width:0; }

.permission-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:8px;
}

.permission-option {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  align-items:start;
  min-width:0;
  padding:10px;
  border:1px solid #dbe3ee;
  border-radius:10px;
  background:#fff;
}

.permission-option input { margin-top:3px; }
.permission-option strong { display:block; color:#0f172a; font-size:13px; font-weight:900; line-height:1.2; }
.permission-option span { display:block; margin-top:2px; color:#64748b; font-size:12px; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }

.user-status-pill {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border-radius:999px;
  background:#dcfce7;
  color:#166534;
  font-size:12px;
  font-weight:900;
}

.user-status-pill.inactive { background:#fee2e2; color:#991b1b; }
.user-status-pill.pending { background:#fef3c7; color:#92400e; }
.user-admin-reset-box { display:grid; gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid #e2e8f0; }

.employee-admin-controls {
  display:flex;
  align-items:end;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.employee-admin-controls > div { min-width:190px; flex:1; }
.employee-admin-layout {
  display:grid;
  grid-template-columns:minmax(290px,.78fr) minmax(460px,1.22fr);
  gap:16px;
  align-items:start;
}
.employee-admin-layout > * { min-width:0; }
.employee-admin-form,
.employee-timecard-panel {
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
  padding:14px;
}
.employee-card-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:12px;
}
.employee-card {
  min-width:0;
  border:1px solid #dbe3ee;
  border-radius:12px;
  background:#fff;
  padding:13px;
  box-shadow:0 1px 3px rgba(15,23,42,.07);
  display:grid;
  gap:10px;
}
.employee-card.active {
  border-color:#b91c1c;
  box-shadow:0 0 0 3px rgba(185,28,28,.10);
}
.employee-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.employee-card-name {
  margin:0;
  color:#0f172a;
  font-size:17px;
  line-height:1.18;
  overflow-wrap:anywhere;
}
.employee-card-meta {
  display:grid;
  gap:3px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.employee-card-kpis {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.employee-card-kpi {
  min-height:54px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:#f8fafc;
  padding:7px;
}
.employee-card-kpi strong {
  display:block;
  color:#0f172a;
  font-size:15px;
  line-height:1.1;
}
.employee-card-kpi span {
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:10.5px;
  font-weight:900;
  text-transform:uppercase;
}
.employee-card-actions {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.employee-card-actions .btn {
  min-height:34px;
  padding:6px 9px;
  font-size:12px;
  border-radius:8px;
}
.employee-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.employee-badge.account { background:#dcfce7; color:#166534; }
.employee-badge.manual { background:#fef3c7; color:#92400e; }
.employee-badge.absence { background:#fff1f2; color:#9f1239; }
.employee-function-choices {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  min-height:46px;
  padding:7px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
}
.employee-function-option {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:5px 9px;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#f8fafc;
  color:#334155;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.employee-function-option:has(input:checked) {
  border-color:#fecaca;
  background:#fff1f2;
  color:#b91c1c;
}
.employee-function-option input {
  width:auto;
  height:auto;
  min-height:auto;
  margin:0;
  padding:0;
}
.employee-function-option small {
  color:#64748b;
  font-size:10px;
  font-weight:900;
}

@media (max-width: 900px) {
  .user-admin-layout { grid-template-columns:minmax(0,1fr); }
  .employee-admin-layout { grid-template-columns:minmax(0,1fr); }
  .employee-admin-controls .btn { width:100%; }
  .permission-grid { grid-template-columns:minmax(0,1fr); }
}

.admin-time-table-wrap {
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid #dbe3ee;
  border-radius:12px;
  background:#fff;
}

.admin-time-table {
  width:100%;
  min-width:980px;
  border-collapse:collapse;
  font-size:13px;
}

.admin-time-table th,
.admin-time-table td {
  border-bottom:1px solid #e2e8f0;
  padding:9px 10px;
  text-align:left;
  vertical-align:middle;
}

.admin-time-table th {
  position:sticky;
  top:0;
  z-index:1;
  background:#f8fafc;
  color:#334155;
  font-size:12px;
  font-weight:900;
}

.admin-time-table td.num,
.admin-time-table th.num {
  text-align:right;
  white-space:nowrap;
}

.admin-time-row.active {
  background:#fff7ed;
}

.admin-time-actions {
  display:flex;
  gap:6px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.admin-time-actions .btn {
  min-height:34px;
  padding:6px 8px;
  border-radius:8px;
  font-size:12px;
}

.admin-status-badge,
.admin-balance-badge {
  display:inline-flex;
  min-height:24px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:3px 8px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.admin-status-open { background:#e0f2fe; color:#075985; }
.admin-status-submitted { background:#fef3c7; color:#92400e; }
.admin-status-checked { background:#dcfce7; color:#166534; }
.admin-status-corrected { background:#fee2e2; color:#991b1b; }
.admin-status-missing { background:#e2e8f0; color:#475569; }
.admin-balance-positive { background:#dcfce7; color:#166534; }
.admin-balance-negative { background:#fee2e2; color:#991b1b; }
.admin-balance-zero { background:#e2e8f0; color:#334155; }

.admin-time-user-name {
  font-weight:900;
  color:#0f172a;
}

.admin-time-user-meta {
  display:block;
  margin-top:2px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
}

.time-pdf-area {
  width:196mm;
  padding:10mm;
  background:#fff;
  color:#0f172a;
  font-family:Arial, sans-serif;
}

.time-pdf-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  border-bottom:2px solid #0f172a;
  padding-bottom:8px;
  margin-bottom:12px;
}

.time-pdf-title {
  font-size:22px;
  font-weight:900;
}

.time-pdf-meta {
  color:#475569;
  font-size:12px;
  text-align:right;
}

.time-pdf-table {
  width:100%;
  border-collapse:collapse;
  font-size:10px;
}

.time-pdf-table th,
.time-pdf-table td {
  border:1px solid #cbd5e1;
  padding:4px;
  vertical-align:top;
}

.time-pdf-table th {
  background:#e2e8f0;
  text-align:left;
}

.time-pdf-summary {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:10px 0 12px;
}

.time-pdf-summary div {
  border:1px solid #cbd5e1;
  padding:8px;
  font-size:11px;
}

.time-card-pdf {
  width:285mm;
  padding:6mm;
}

.time-card-pdf .time-pdf-head {
  margin-bottom:6px;
  padding-bottom:5px;
  border-bottom:2px solid #000;
}

.time-card-pdf .time-pdf-title {
  font-size:18px;
}

.time-card-pdf .time-pdf-meta {
  font-size:9px;
}

.time-card-logo {
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  min-width:50mm;
}

.time-card-logo img {
  max-width:45mm;
  max-height:13mm;
  object-fit:contain;
}

.time-card-logo-fallback {
  font-weight:900;
  font-size:12px;
  text-transform:lowercase;
}

.time-card-summary {
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin:5px 0 6px;
  font-size:8.6px;
}

.time-card-table {
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:7.2px;
  line-height:1.18;
}

.time-card-table th,
.time-card-table td {
  border:1px solid #000;
  padding:2.2px 1.2px;
  text-align:center;
  vertical-align:middle;
  height:13.5px;
}

.time-card-table th {
  background:#fff;
  font-weight:800;
}

.time-card-table .time-card-site {
  width:54mm;
  text-align:left;
  font-size:7.4px;
  line-height:1.18;
  word-break:break-word;
}

.time-card-table .time-card-total {
  width:12mm;
  font-weight:800;
  background:#eee;
}

.time-card-table .time-card-day {
  width:6.1mm;
}

.time-card-table .time-card-offday {
  background:#d0d0d0;
}

.time-card-table .time-card-absence-day {
  color:#b91c1c;
  font-weight:900;
}

.time-card-table .time-card-emptyday {
  background:#f3f3f3;
  color:#777;
}

.time-card-table tfoot td {
  font-weight:800;
  background:#fff;
}

.time-card-table .time-card-row-label {
  background:#eee;
}

.time-card-site-ktr {
  font-weight:900;
}

.time-card-site-address {
  color:#222;
}

@media (max-width: 720px) {
  .time-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .time-clock-actions .btn,
  .time-entry-actions .btn { flex:1 1 140px; }
}

@media print {
  @page { size: A4; margin: 7mm; }

  html, body {
    margin: 0;
    padding: 0;
    background: #fff;
  }

  body > :not(#printArea),
  #desktopAdminSidebar,
  #loginApp,
  #passwordChangeApp,
  .admin-alert-overlay,
  .planning-detail-overlay,
  .planning-attachment-viewer-overlay,
  .site-contact-dialog-overlay,
  .planning-week-picker-overlay {
    display: none !important;
  }

  .app {
    display: none !important;
  }

  #printArea {
    display: block !important;
    width: 196mm;
    margin: 0 auto;
    overflow: visible;
  }

  .report {
    width: 196mm;
    transform-origin: top left;
  }
}

  /* UX: dezente Hinweise (Toasts) statt blockierender alert()-Pop-ups */
  #toast-container { position:fixed; left:50%; bottom:calc(18px + env(safe-area-inset-bottom)); transform:translateX(-50%); z-index:9999; display:flex; flex-direction:column; gap:8px; align-items:center; width:min(92vw,420px); pointer-events:none; }
  .toast { pointer-events:auto; width:100%; box-sizing:border-box; padding:12px 16px; border-radius:10px; font-weight:700; font-size:14px; line-height:1.3; box-shadow:0 6px 24px rgba(0,0,0,.18); opacity:0; transform:translateY(12px); transition:opacity .25s ease, transform .25s ease; cursor:pointer; border:1px solid transparent; word-break:break-word; }
  .toast.toast-show { opacity:1; transform:translateY(0); }
  .toast.toast-hide { opacity:0; transform:translateY(12px); }
  .toast-info { background:#1f2937; color:#ffffff; }
  .toast-success { background:#dcfce7; color:#166534; border-color:#86efac; }
  .toast-error { background:#fee2e2; color:#991b1b; border-color:#fca5a5; }
  /* UX: gut sichtbarer Offline-Banner oben */
  .offline-banner { position:sticky; top:0; z-index:9998; display:none; align-items:center; justify-content:center; gap:12px; padding:9px 14px; padding-top:calc(9px + env(safe-area-inset-top)); font-size:13.5px; font-weight:800; line-height:1.3; text-align:center; box-shadow:0 2px 10px rgba(0,0,0,.12); }
  .offline-banner.show { display:flex; }
  .offline-banner-text { flex:1 1 auto; }
  .offline-banner-action { flex:0 0 auto; border:0; border-radius:8px; padding:6px 12px; font-weight:800; font-size:13px; cursor:pointer; background:rgba(255,255,255,.85); color:#1f2937; }
  .offline-banner-offline { background:#fffbeb; color:#92400e; border-bottom:1px solid #fde68a; }
  .offline-banner-pending { background:#eff6ff; color:#1d4ed8; border-bottom:1px solid #bfdbfe; }
  .offline-banner-error { background:#fff1f2; color:#991b1b; border-bottom:1px solid #fecdd3; }

  .kat-admin-shell { display:grid; gap:12px; }
  .kat-primary-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:4px; border:1px solid #dbe3ee; border-radius:10px; background:#f1f5f9; }
  .kat-primary-button { min-height:48px; display:flex; align-items:center; justify-content:center; gap:8px; padding:9px 12px; border:0; border-radius:7px; background:transparent; color:#475569; font:inherit; font-size:14px; font-weight:950; cursor:pointer; }
  .kat-primary-button.active { background:#fff; color:#0f172a; box-shadow:0 1px 4px rgba(15,23,42,.12); }
  .kat-primary-button-count { min-width:26px; min-height:22px; display:inline-flex; align-items:center; justify-content:center; padding:2px 7px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; }
  .kat-type-tabs { display:flex; gap:6px; overflow-x:auto; padding:2px 0 4px; scrollbar-width:none; }
  .kat-type-tabs::-webkit-scrollbar { display:none; }
  .kat-type-tab { flex:1 1 0; min-width:145px; min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 11px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; color:#334155; font:inherit; font-size:13px; font-weight:900; cursor:pointer; }
  .kat-type-tab.active { border-color:var(--pmb-red); color:#0f172a; box-shadow:inset 3px 0 0 var(--pmb-red); }
  .kat-type-tab span { min-width:26px; min-height:22px; display:inline-flex; align-items:center; justify-content:center; padding:2px 7px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; }
  .kat-management-panel { display:grid; gap:10px; padding:12px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; }
  .kat-management-head h3 { margin:0; color:#0f172a; font-size:18px; }
  .kat-management-head p { margin:3px 0 0; color:#64748b; font-size:12px; font-weight:800; }
  .kat-management-rules { border:1px solid #dbe3ee; border-radius:8px; background:#fff; overflow:hidden; }
  .kat-management-rules > summary { padding:11px 12px; cursor:pointer; color:#0f172a; font-size:14px; font-weight:950; }
  .kat-management-rules > div { padding:0 12px 12px; }
  .kat-admin-top { display:grid; gap:10px; padding:12px; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; }
  .kat-admin-top-main { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .kat-admin-version strong { display:block; color:#0f172a; font-size:14px; line-height:1.25; }
  .kat-admin-version span { display:block; margin-top:2px; color:#64748b; font-size:12px; font-weight:800; line-height:1.35; }
  .kat-admin-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
  .kat-admin-actions .btn,
  .kat-admin-actions select { min-height:36px; font-size:12px; }
  .kat-admin-actions select { width:auto; min-width:118px; padding:7px 9px; }
  .kat-version-form { display:grid; grid-template-columns:minmax(150px,.9fr) minmax(180px,1.3fr) auto; gap:8px; align-items:end; }
  .kat-version-form input { min-height:38px; }
  .kat-history-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; margin-top:8px; }
  .kat-history-list { display:grid; gap:6px; }
  .kat-history-row { display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid #edf0f1; font-size:13px; }
  .kat-history-row strong { min-width:54px; color:#0f172a; }
  .kat-history-row span { flex:1; min-width:120px; color:#334155; font-weight:800; line-height:1.3; }
  .kat-workspace { display:grid; gap:12px; min-width:0; }
  .kat-tabs { display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; }
  .kat-tab { flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:8px 12px; border:1px solid #cbd5e1; border-radius:10px; background:#fff; color:#334155; font-size:13px; font-weight:900; cursor:pointer; }
  .kat-tab strong { min-width:26px; min-height:24px; display:inline-flex; align-items:center; justify-content:center; padding:0 7px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:12px; }
  .kat-tab.active { border-color:var(--pmb-red); background:#fff1f2; color:#991b1b; box-shadow:inset 0 0 0 1px rgba(227,6,19,.28); }
  .kat-tab.active strong { background:var(--pmb-red); color:#fff; }
  .kat-tab-icon { width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:#f1f5f9; color:#334155; font-size:12px; font-weight:950; }
  .kat-tab.active .kat-tab-icon { background:#fee2e2; color:#991b1b; }
  .kat-controlbar { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; gap:8px; align-items:end; padding:10px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; }
  .kat-controlbar label { margin:0; }
  .kat-toggle-line { min-height:40px; display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border:1px solid #dbe3ee; border-radius:9px; background:#f8fafc; color:#334155; font-size:12px; font-weight:900; white-space:nowrap; }
  .kat-toggle-line input { width:18px; min-height:18px; margin:0; padding:0; accent-color:var(--pmb-red); }
  .kat-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; }
  .kat-summary-item { padding:10px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; }
  .kat-summary-item strong { display:block; color:#0f172a; font-size:20px; line-height:1.05; }
  .kat-summary-item span { display:block; margin-top:3px; color:#64748b; font-size:11px; font-weight:900; text-transform:uppercase; }
  .kat-editor-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:12px; align-items:start; }
  .kat-sidebar { display:grid; gap:7px; align-content:start; position:sticky; top:10px; }
  .kat-sidebar-title { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; }
  .kat-group-create { display:grid; gap:6px; padding:8px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; }
  .kat-group-create label { margin:0; font-size:11px; }
  .kat-group-create input { min-height:36px; padding:7px 8px; font-size:13px; }
  .kat-group-create .btn { min-height:34px; padding:7px 9px; font-size:12px; }
  .kat-group-row { display:grid; grid-template-columns:minmax(0,1fr) 36px; gap:5px; align-items:center; }
  .kat-group-filter { width:100%; min-height:40px; display:flex; align-items:center; justify-content:space-between; gap:8px; border:1px solid #dbe3ee; border-radius:10px; padding:8px 10px; background:#fff; color:#334155; font-size:13px; font-weight:900; cursor:pointer; text-align:left; }
  .kat-group-filter span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .kat-group-filter strong { flex:0 0 auto; min-width:26px; min-height:22px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; }
  .kat-group-filter.active { border-color:#0f172a; background:#0f172a; color:#fff; }
  .kat-group-filter.active strong { background:#fff; color:#0f172a; }
  .kat-group-delete { width:36px; min-width:36px; min-height:40px; padding:6px; border:1px solid #fecdd3; border-radius:10px; background:#fee2e2; color:#991b1b; font-weight:950; cursor:pointer; }
  .kat-group-delete:disabled { cursor:not-allowed; opacity:.5; background:#f8fafc; border-color:#dbe3ee; color:#94a3b8; }
  .kat-main { display:grid; gap:10px; min-width:0; }
  .kat-subgroup-panel { display:grid; gap:8px; padding:10px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; }
  .kat-subgroup-head { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#0f172a; font-size:13px; font-weight:950; }
  .kat-subgroup-list { display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-width:0; }
  .kat-subgroup-create { display:grid; grid-template-columns:minmax(160px,1fr) auto; gap:6px; align-items:end; max-width:420px; }
  .kat-subgroup-create label { margin:0; font-size:11px; }
  .kat-subgroup-create input { min-height:36px; padding:7px 8px; font-size:13px; }
  .kat-subgroup-row { display:inline-grid; grid-template-columns:minmax(0,1fr) 32px; gap:4px; align-items:center; min-width:170px; max-width:260px; }
  .kat-subgroup-filter { min-width:0; min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:7px; border:1px solid #dbe3ee; border-radius:999px; padding:6px 9px; background:#f8fafc; color:#334155; font-size:12px; font-weight:900; cursor:pointer; text-align:left; }
  .kat-subgroup-filter span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .kat-subgroup-filter strong { flex:0 0 auto; min-width:22px; min-height:20px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#e2e8f0; color:#334155; font-size:10.5px; }
  .kat-subgroup-filter.active { border-color:#b91c1c; background:#fff1f2; color:#991b1b; }
  .kat-subgroup-delete { width:32px; min-width:32px; min-height:34px; padding:5px; border:1px solid #fecdd3; border-radius:999px; background:#fee2e2; color:#991b1b; font-weight:950; cursor:pointer; }
  .kat-subgroup-delete:disabled { cursor:not-allowed; opacity:.5; background:#f8fafc; border-color:#dbe3ee; color:#94a3b8; }
  .kat-quick-add { display:grid; gap:8px; padding:0; border:1px solid #dbe3ee; border-radius:10px; background:#f8fafc; overflow:hidden; }
  .kat-quick-add > summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 12px; color:#0f172a; font-size:14px; font-weight:950; cursor:pointer; list-style:none; }
  .kat-quick-add > summary::-webkit-details-marker { display:none; }
  .kat-quick-add > summary::after { content:"+"; font-size:20px; line-height:1; }
  .kat-quick-add[open] > summary::after { content:"−"; }
  .kat-quick-add-body { display:grid; gap:9px; padding:0 10px 10px; }
  .kat-quick-add-title { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#0f172a; font-size:13px; font-weight:950; }
  .kat-quick-add-grid { display:grid; grid-template-columns:minmax(190px,1.35fr) minmax(130px,.9fr) minmax(120px,.8fr) 82px minmax(150px,1fr) auto auto; gap:8px; align-items:end; }
  .kat-quick-add-grid label { margin:0; }
  .kat-quick-add-grid input { min-height:38px; }
  .kat-list-head { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:8px 2px; }
  .kat-list-head strong { color:#0f172a; font-size:16px; }
  .kat-list-head span { color:#64748b; font-size:12px; font-weight:900; }
  .kat-list { display:grid; gap:10px; min-width:0; }
  .kat-group-section { display:grid; gap:7px; min-width:0; }
  .kat-group-head { display:flex; align-items:center; gap:8px; padding:7px 9px; border:1px solid #dbe3ee; border-radius:10px; background:#edf0f1; }
  .kat-group-head input { flex:1; min-height:32px; border:0; background:transparent; padding:4px 2px; font-weight:950; color:#0f172a; }
  .kat-group-head span { color:#64748b; font-size:12px; font-weight:900; white-space:nowrap; }
  .kat-sub-section { display:grid; gap:7px; padding:8px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; }
  .kat-sub-head { display:flex; align-items:center; gap:8px; min-width:0; }
  .kat-sub-head input { flex:1; min-width:0; min-height:32px; padding:5px 8px; border:1px solid #dbe3ee; border-radius:9px; background:#f8fafc; color:#0f172a; font-weight:900; }
  .kat-sub-head input:disabled { color:#64748b; background:#f1f5f9; }
  .kat-sub-head span { color:#64748b; font-size:12px; font-weight:900; white-space:nowrap; }
  .kat-list-entry { display:grid; gap:5px; min-width:0; }
  .kat-item { display:grid; grid-template-columns:34px minmax(220px,1.1fr) minmax(110px,.7fr) minmax(150px,.9fr) 72px 84px 38px; gap:7px; align-items:end; padding:8px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; min-width:0; }
  .kat-item.is-inactive { opacity:.66; background:#f8fafc; }
  .kat-item label { margin:0; min-width:0; }
  .kat-item input { min-height:36px; padding:7px 8px; font-size:13px; }
  .kat-drag { width:34px; height:36px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; color:#64748b; cursor:grab; font-size:15px; }
  .kat-title-input { font-weight:900; }
  .kat-active-toggle { min-height:36px; display:inline-flex; align-items:center; justify-content:center; gap:5px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; color:#334155; font-size:12px; font-weight:900; }
  .kat-active-toggle input { width:16px; min-height:16px; margin:0; padding:0; accent-color:var(--pmb-red); }
  .kat-icon-btn { min-width:38px; min-height:36px; padding:6px 8px; border-radius:8px; font-size:16px; line-height:1; }
  .kat-child-editor { margin-left:41px; border:1px solid #edf0f1; border-radius:10px; background:#fbfcfd; overflow:hidden; }
  .kat-child-editor summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; color:#334155; font-size:12px; font-weight:950; }
  .kat-child-editor summary::-webkit-details-marker { display:none; }
  .kat-child-editor summary::after { content:""; width:8px; height:8px; border-right:2px solid #94a3b8; border-bottom:2px solid #94a3b8; transform:rotate(45deg); transition:transform .15s ease; }
  .kat-child-editor[open] summary::after { transform:rotate(225deg); }
  .kat-child-body { display:grid; gap:8px; padding:0 10px 10px; }
  .kat-child-groups { display:grid; gap:7px; }
  .kat-child-group-title { color:#64748b; font-size:11px; font-weight:950; text-transform:uppercase; }
  .kat-child-options { display:flex; flex-wrap:wrap; gap:6px; }
  .kat-child-option { display:inline-flex; align-items:center; gap:5px; min-height:28px; padding:4px 7px; border:1px solid #dbe3ee; border-radius:999px; background:#fff; color:#334155; font-size:12px; font-weight:800; }
  .kat-child-option input { width:15px; min-height:15px; margin:0; padding:0; accent-color:var(--pmb-red); }
  .kat-rules-shell { display:grid; gap:10px; min-width:0; }
  .kat-rule-add { display:grid; grid-template-columns:minmax(150px,1fr) minmax(190px,1.3fr) minmax(170px,1fr) minmax(170px,1fr) auto; gap:8px; align-items:end; padding:10px; border:1px solid #dbe3ee; border-radius:12px; background:#f8fafc; }
  .kat-rule-list { display:grid; gap:8px; }
  .kat-rule { display:grid; grid-template-columns:minmax(150px,1fr) minmax(190px,1.25fr) minmax(170px,1fr) minmax(170px,1fr) 82px 38px; gap:7px; align-items:end; padding:8px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; }
  .kat-rule label { margin:0; }
  .kat-rule input,
  .kat-rule select { min-height:36px; padding:7px 8px; font-size:13px; }
  .kat-empty { padding:14px; border:1px dashed #cbd5e1; border-radius:10px; background:#fff; color:#64748b; font-size:13px; font-weight:800; text-align:center; }
  .kat-suggestions { display:grid; gap:8px; padding:10px; border-top:1px solid #edf0f1; }
  .kat-suggestion-row { display:flex; gap:8px; align-items:center; padding:7px 8px; border:1px solid #dbe3ee; border-radius:10px; background:#fff; font-size:13px; }
  .kat-suggestion-row span { flex:1; min-width:0; overflow-wrap:anywhere; }
  .kat-modern-shell { display:grid; gap:12px; min-width:0; }
  .kat-modern-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; padding:12px 0; border-bottom:1px solid #e2e8f0; }
  .kat-modern-title h3 { margin:0; color:#0f172a; font-size:24px; line-height:1.12; }
  .kat-modern-title span { display:block; margin-top:4px; color:#64748b; font-size:13px; font-weight:800; line-height:1.35; }
  .kat-modern-search { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:8px; align-items:center; }
  .kat-modern-search input { min-height:42px; }
  .kat-modern-type-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:8px; }
  .kat-modern-type { min-height:66px; display:grid; grid-template-columns:minmax(0,1fr) 56px; gap:9px; align-items:center; padding:11px 12px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; color:#0f172a; cursor:pointer; text-align:left; }
  .kat-modern-type.active { border-color:var(--pmb-red); box-shadow:inset 3px 0 0 var(--pmb-red), inset 0 0 0 1px rgba(227,6,19,.16); background:#fff; }
  .kat-modern-type strong { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; line-height:1.15; }
  .kat-modern-type span { display:block; margin-top:3px; color:#64748b; font-size:11px; font-weight:850; }
  .kat-modern-type-count { justify-self:center; min-width:34px; height:26px; display:inline-flex; align-items:center; justify-content:center; padding:0 9px; border-radius:999px; background:#e2e8f0; color:#334155; font-size:12px; font-weight:950; text-align:center; }
  .kat-modern-layout { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(340px,.72fr); gap:12px; align-items:start; }
  .kat-modern-list { display:grid; gap:8px; min-width:0; }
  .kat-modern-group { border:1px solid #dbe3ee; border-radius:8px; background:#fff; overflow:hidden; }
  .kat-modern-group-head { width:100%; min-height:48px; display:grid; grid-template-columns:minmax(0,1fr) 82px auto; gap:9px; align-items:center; padding:10px 12px; border:0; border-bottom:1px solid transparent; background:#f8fafc; color:#0f172a; text-align:left; cursor:pointer; }
  .kat-modern-group.open .kat-modern-group-head { border-bottom-color:#e2e8f0; background:#edf0f1; }
  .kat-modern-group-head strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
  .kat-modern-group-head span { color:#64748b; font-size:12px; font-weight:900; white-space:nowrap; }
  .kat-modern-group-count { justify-self:center; min-width:62px; min-height:26px; display:inline-flex !important; align-items:center; justify-content:center; padding:3px 9px; border-radius:999px; background:#e2e8f0; color:#334155 !important; text-align:center; }
  .kat-modern-group-actions { display:flex; gap:5px; align-items:center; }
  .kat-modern-group-actions button { min-height:30px; padding:5px 8px; border-radius:7px; font-size:12px; }
  .kat-modern-subchips { display:flex; gap:6px; flex-wrap:wrap; padding:8px 10px 0; }
  .kat-modern-subchip { min-height:28px; border:1px solid #dbe3ee; border-radius:999px; padding:5px 9px; background:#fff; color:#334155; font-size:12px; font-weight:900; cursor:pointer; }
  .kat-modern-subchip.active { background:#111827; border-color:#111827; color:#fff; }
  .kat-modern-items { display:grid; gap:7px; padding:10px; }
  .kat-modern-card { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:10px 11px; border:1px solid #e2e8f0; border-radius:8px; background:#fff; color:#0f172a; text-align:left; cursor:pointer; }
  .kat-modern-card.selected { border-color:var(--pmb-red); box-shadow:0 0 0 2px rgba(227,6,19,.12); }
  .kat-modern-card.is-inactive { opacity:.64; background:#f8fafc; }
  .kat-modern-card-main { min-width:0; display:grid; gap:4px; }
  .kat-modern-card-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:950; }
  .kat-modern-card-meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; color:#64748b; font-size:11px; font-weight:850; }
  .kat-modern-pill { min-height:22px; display:inline-flex; align-items:center; padding:3px 7px; border:1px solid #dbe3ee; border-radius:999px; background:#f8fafc; color:#334155; font-size:11px; font-weight:900; white-space:nowrap; }
  .kat-modern-pill.ok { background:#dcfce7; border-color:#bbf7d0; color:#166534; }
  .kat-modern-pill.price { background:#eff6ff; border-color:#bfdbfe; color:#1d4ed8; }
  .kat-modern-card-actions { display:flex; gap:5px; justify-content:flex-end; flex-wrap:wrap; }
  .kat-modern-card-actions .btn { min-height:30px; padding:5px 8px; border-radius:7px; font-size:12px; }
  .kat-detail-panel { position:sticky; top:10px; display:grid; gap:10px; padding:12px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.06); min-width:0; }
  .kat-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
  .kat-detail-close { display:none; width:38px; min-width:38px; height:38px; align-items:center; justify-content:center; padding:0; border:1px solid #cbd5e1; border-radius:999px; background:#fff; color:#0f172a; font-size:22px; font-weight:900; cursor:pointer; }
  .kat-relationship-summary { display:grid; gap:7px; }
  .kat-relationship-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px 9px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .kat-relationship-row strong { min-width:0; color:#0f172a; font-size:13px; overflow-wrap:anywhere; }
  .kat-relationship-row span { color:#64748b; font-size:11px; font-weight:900; }
  .kat-detail-panel h3 { margin:0; color:#0f172a; font-size:18px; line-height:1.15; }
  .kat-detail-panel p { margin:3px 0 0; color:#64748b; font-size:12px; font-weight:800; line-height:1.35; }
  .kat-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .kat-detail-grid .wide-field { grid-column:1 / -1; }
  .kat-detail-grid input,
  .kat-detail-grid select,
  .kat-detail-grid textarea { min-height:38px; font-size:13px; }
  .kat-price-box,
  .kat-link-box { display:grid; gap:8px; padding:10px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .kat-price-box summary,
  .kat-link-box summary { cursor:pointer; font-size:13px; font-weight:950; color:#0f172a; }
  .kat-price-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .kat-price-grid .wide-field { grid-column:1 / -1; }
  .kat-link-mini { display:grid; gap:6px; }
  .kat-link-mini-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; align-items:center; padding:7px 8px; border:1px solid #e2e8f0; border-radius:8px; background:#fff; }
  .kat-link-mini-row strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
  .kat-link-mini-row span { color:#64748b; font-size:11px; font-weight:850; white-space:nowrap; }
  .kat-detail-actions { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
  .kat-advanced-tools { display:grid; gap:10px; padding:10px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .kat-advanced-tools summary { cursor:pointer; font-size:13px; font-weight:950; color:#334155; }
  .kat-accessory-shell { display:grid; grid-template-columns:minmax(260px,.42fr) minmax(0,1fr); gap:12px; align-items:start; }
  .kat-accessory-admin { display:grid; gap:12px; }
  .kat-accessory-list,
  .kat-accessory-editor,
  .kat-accessory-direct { display:grid; gap:9px; padding:12px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; min-width:0; }
  .kat-accessory-list { position:sticky; top:10px; }
  .kat-accessory-list h3,
  .kat-accessory-editor h3,
  .kat-accessory-direct h3 { margin:0; color:#0f172a; font-size:18px; line-height:1.2; }
  .kat-accessory-list p,
  .kat-accessory-editor p,
  .kat-accessory-direct p { margin:0; color:#64748b; font-size:12px; font-weight:800; line-height:1.35; }
  .kat-accessory-direct-grid { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:8px; align-items:end; }
  .kat-accessory-direct-grid .btn { min-height:42px; }
  .kat-accessory-direct-summary { display:flex; gap:8px; flex-wrap:wrap; align-items:center; color:#64748b; font-size:12px; font-weight:850; }
  .kat-accessory-direct-list { display:grid; gap:7px; }
  .kat-accessory-direct-row { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:8px; align-items:end; padding:8px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; }
  .kat-accessory-direct-row .btn { min-height:36px; padding:7px 9px; border-radius:8px; }
  .kat-accessory-direct-actions { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
  .kat-picker-field { width:100%; min-height:46px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:9px 11px; border:1px solid #cbd5e1; border-radius:9px; background:#fff; color:#0f172a; text-align:left; font:inherit; font-size:14px; cursor:pointer; }
  .kat-picker-field strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
  .kat-picker-field span { color:#64748b; font-size:12px; font-weight:900; }
  .kat-picker-overlay { position:fixed; inset:0; z-index:12000; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.48); }
  .kat-picker-dialog { width:min(720px,100%); max-height:min(760px,calc(100dvh - 36px)); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; gap:10px; padding:14px; border:1px solid #dbe3ee; border-radius:12px; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.28); overflow:hidden; }
  .kat-picker-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
  .kat-picker-head strong { color:#0f172a; font-size:18px; line-height:1.2; }
  .kat-picker-head span { display:block; margin-top:3px; color:#64748b; font-size:12px; font-weight:850; }
  .kat-picker-search { min-height:44px; font-size:16px; }
  .kat-picker-list { display:grid; gap:6px; overflow:auto; padding-right:3px; overscroll-behavior:contain; }
  .kat-picker-option { width:100%; min-height:46px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:9px 10px; border:1px solid #dbe3ee; border-radius:9px; background:#f8fafc; color:#0f172a; text-align:left; font:inherit; cursor:pointer; }
  .kat-picker-option.active { border-color:var(--pmb-red); box-shadow:inset 3px 0 0 var(--pmb-red); background:#fff; }
  .kat-picker-option strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
  .kat-picker-option span { color:#64748b; font-size:12px; font-weight:850; text-align:right; }
  .kat-picker-foot { display:flex; justify-content:flex-end; gap:8px; }
  .kat-accessory-create { display:grid; gap:7px; padding:9px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .kat-accessory-create input { min-height:38px; }
  .kat-accessory-button { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; min-height:44px; padding:9px 10px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; color:#0f172a; text-align:left; cursor:pointer; }
  .kat-accessory-button.active { border-color:var(--pmb-red); box-shadow:inset 3px 0 0 var(--pmb-red); }
  .kat-accessory-button strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
  .kat-accessory-button span { justify-self:center; min-width:34px; min-height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; background:#e2e8f0; color:#334155; font-size:11px; font-weight:950; }
  .kat-accessory-legacy { display:grid; gap:8px; margin-top:4px; border-top:1px solid #e2e8f0; padding-top:10px; }
  .kat-accessory-legacy > summary { cursor:pointer; font-weight:950; color:#0f172a; font-size:13px; }
  .kat-accessory-legacy-list { display:grid; gap:7px; max-height:360px; overflow:auto; padding-right:2px; }
  .kat-accessory-legacy-row { display:grid; gap:6px; padding:8px; border:1px solid #dbe3ee; border-radius:8px; background:#f8fafc; min-width:0; }
  .kat-accessory-legacy-row strong { color:#0f172a; font-size:13px; line-height:1.2; overflow-wrap:anywhere; }
  .kat-accessory-legacy-row span,
  .kat-accessory-legacy-row small { color:#64748b; font-size:12px; font-weight:800; line-height:1.3; overflow-wrap:anywhere; }
  .kat-accessory-legacy-actions { display:flex; gap:6px; flex-wrap:wrap; }
  .kat-accessory-legacy-actions .btn { min-height:32px; padding:6px 8px; font-size:12px; border-radius:8px; }
  .kat-accessory-form-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(120px,.3fr); gap:8px; align-items:end; }
  .kat-accessory-form-grid .wide-field { grid-column:1 / -1; }
  .kat-accessory-block { display:grid; gap:8px; padding:10px; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
  .kat-accessory-block-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .kat-accessory-block-head strong { color:#0f172a; font-size:14px; }
  .kat-accessory-rows { display:grid; gap:7px; }
  .kat-accessory-item-row { display:grid; grid-template-columns:minmax(170px,1.2fr) 88px 76px 88px 34px; gap:7px; align-items:end; padding:8px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; }
  .kat-accessory-trigger-row { display:grid; grid-template-columns:120px minmax(160px,1fr) minmax(90px,.55fr) minmax(120px,.75fr) minmax(120px,.75fr) 34px; gap:7px; align-items:end; padding:8px; border:1px solid #dbe3ee; border-radius:8px; background:#fff; }
  .kat-accessory-trigger-row[data-mode="catalog_item"] .kat-acc-category-field { display:none; }
  .kat-accessory-trigger-row[data-mode="category"] .kat-acc-item-field { display:none; }
  .kat-accessory-row-remove { min-width:34px; min-height:36px; padding:6px; border-radius:8px; font-size:16px; }

  @media (max-width: 980px) {
    .kat-modern-layout { grid-template-columns:1fr; }
    .kat-detail-panel { position:static; }
    .kat-modern-search { grid-template-columns:1fr; }
    .kat-accessory-shell { grid-template-columns:1fr; }
    .kat-accessory-list { position:static; }
    .kat-editor-layout { grid-template-columns:1fr; }
    .kat-sidebar { position:static; display:flex; overflow-x:auto; padding-bottom:2px; }
    .kat-sidebar-title { flex:0 0 auto; align-self:center; }
    .kat-group-create { flex:0 0 220px; }
    .kat-group-row { flex:0 0 auto; min-width:220px; }
    .kat-group-filter { flex:0 0 auto; width:auto; max-width:220px; }
    .kat-subgroup-list { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
    .kat-subgroup-row { flex:0 0 auto; min-width:190px; }
    .kat-quick-add-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .kat-quick-add-grid .btn { width:100%; }
    .kat-item,
    .kat-rule { grid-template-columns:34px repeat(2,minmax(0,1fr)); align-items:end; }
    .kat-item .kat-active-toggle,
    .kat-item .kat-icon-btn,
    .kat-rule .kat-active-toggle,
    .kat-rule .kat-icon-btn { align-self:end; }
    .kat-child-editor { margin-left:0; }
    .kat-rule-add { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }

  @media (max-width: 720px) {
    .kat-primary-nav { position:sticky; top:0; z-index:15; grid-template-columns:repeat(3,minmax(0,1fr)); }
    .kat-primary-button { min-width:0; min-height:44px; padding:7px 5px; font-size:12px; }
    .kat-primary-button-count { display:none; }
    .kat-type-tabs { margin-right:-14px; padding-right:14px; }
    .kat-type-tab { flex:0 0 auto; min-width:132px; }
    .kat-modern-head { grid-template-columns:1fr; }
    .kat-modern-type-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .kat-modern-group-head { grid-template-columns:minmax(0,1fr) 82px; }
    .kat-modern-group-actions { grid-column:1 / -1; justify-content:flex-start; }
    .kat-modern-card { grid-template-columns:1fr; align-items:start; }
    .kat-modern-card-actions { grid-column:1 / -1; justify-content:flex-start; }
    .kat-accessory-form-grid,
    .kat-accessory-direct-grid,
    .kat-accessory-direct-row,
    .kat-accessory-item-row,
    .kat-accessory-trigger-row { grid-template-columns:1fr; }
    .kat-picker-overlay { align-items:stretch; padding:10px; }
    .kat-picker-dialog { max-height:calc(100dvh - 20px); }
    .kat-picker-option { grid-template-columns:1fr; }
    .kat-picker-option span { text-align:left; }
    .kat-picker-field { grid-template-columns:1fr; }
    .kat-picker-field span { text-align:left; white-space:normal; overflow-wrap:anywhere; }
    .kat-detail-grid,
    .kat-price-grid { grid-template-columns:1fr; }
    .kat-detail-panel.has-item {
      position:fixed;
      inset:0;
      z-index:12020;
      display:block;
      padding:14px 14px calc(94px + env(safe-area-inset-bottom));
      border:0;
      border-radius:0;
      overflow-y:auto;
      overscroll-behavior:contain;
      background:#f8fafc;
    }
    .kat-detail-panel.has-item > * { margin-bottom:10px; }
    .kat-detail-panel.empty { display:none; }
    .kat-detail-close { display:inline-flex; }
    .kat-detail-panel.has-item .kat-detail-actions {
      position:fixed;
      left:0;
      right:0;
      bottom:calc(58px + env(safe-area-inset-bottom));
      z-index:2;
      display:grid;
      grid-template-columns:1fr 1.35fr;
      padding:9px 12px;
      border-top:1px solid #dbe3ee;
      background:rgba(255,255,255,.97);
      box-shadow:0 -4px 18px rgba(15,23,42,.12);
    }
    .kat-detail-panel.has-item .kat-detail-actions .btn { width:100%; }
    .kat-quick-add-grid { grid-template-columns:1fr; }
    .kat-quick-add-grid .wide-mobile { grid-column:1 / -1; }
    .kat-admin-top-main,
    .kat-admin-actions { align-items:stretch; }
    .kat-admin-actions,
    .kat-admin-actions .btn,
    .kat-admin-actions select { width:100%; }
    .kat-tabs { flex-wrap:wrap; overflow-x:visible; }
    .kat-tab { flex:1 1 calc(50% - 4px); justify-content:space-between; min-width:0; gap:6px; padding:8px 9px; font-size:12px; }
    .kat-tab span:nth-child(2) { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .kat-version-form,
    .kat-controlbar,
    .kat-quick-add-grid,
    .kat-rule-add,
    .kat-rule { grid-template-columns:1fr; }
    .kat-item { grid-template-columns:34px minmax(0,1fr); }
    .kat-item label:nth-of-type(n+2),
    .kat-item .kat-active-toggle,
    .kat-item .kat-icon-btn { grid-column:1 / -1; }
    .kat-list-head { align-items:flex-start; flex-direction:column; }
  }

  .tr-workspace-card {
    padding:0;
    overflow:visible;
    border-radius:14px;
    background:#f8fafc;
  }
  #rapportApp.mobile-report-tagesrapport.tagesrapport-context-collapsed .report-base-card,
  #rapportApp.mobile-report-tagesrapport.tagesrapport-context-collapsed .report-type-card {
    display:none !important;
  }
  #rapportApp.mobile-report-tagesrapport .toolbar .toolbar-action-button {
    display:none !important;
  }
  #rapportApp.mobile-report-tagesrapport .report-extra-notes-wrap {
    display:none !important;
  }
  .report-context-actions {
    display:none;
    justify-content:flex-end;
    margin-top:10px;
  }
  #rapportApp.mobile-report-tagesrapport.tagesrapport-context-open .report-context-actions {
    display:flex;
  }
  .tr-workspace-head {
    position:sticky;
    top:10px;
    z-index:25;
    display:grid;
    gap:10px;
    padding:14px;
    border-bottom:1px solid #e2e8f0;
    border-radius:14px 14px 0 0;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.08);
  }
  .tr-head-top {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
  }
  .tr-title-lockup h2 {
    margin:0;
    color:#0f172a;
    font-size:22px;
    line-height:1.12;
  }
  .tr-title-lockup > #tagesrapportNumberHint {
    display:block;
    margin-top:4px;
    color:#64748b;
    font-size:13px;
    font-weight:800;
    line-height:1.35;
  }
  .tr-beta-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:21px;
    margin-left:6px;
    padding:2px 7px;
    border:1px solid #facc15;
    border-radius:999px;
    background:#fef3c7;
    color:#713f12;
    font-size:10px;
    font-weight:950;
    line-height:1;
    text-transform:uppercase;
    vertical-align:middle;
    white-space:nowrap;
  }
  .tr-beta-notice {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    padding:8px 10px;
    border:1px solid #fde68a;
    border-radius:8px;
    background:#fffbeb;
    color:#713f12;
  }
  .tr-beta-notice p {
    min-width:0;
    margin:0;
    font-size:12px;
    font-weight:800;
    line-height:1.3;
  }
  .tr-beta-notice .btn {
    min-height:32px;
    padding:5px 9px;
    border-color:#facc15;
    background:#fff;
    color:#713f12;
    font-size:11px;
  }
  .desktop-nav-beta-badge {
    margin-left:auto;
    padding:2px 5px;
    border:1px solid rgba(250,204,21,.62);
    border-radius:999px;
    background:rgba(254,243,199,.16);
    color:#fde68a;
    font-size:8px;
    font-weight:950;
    line-height:1;
    text-transform:uppercase;
  }
  .tr-status-pill {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:30px;
    padding:5px 10px;
    border:1px solid #cbd5e1;
    border-radius:999px;
    background:#f8fafc;
    color:#334155;
    font-size:12px;
    font-weight:950;
    white-space:nowrap;
  }
  .tr-status-pill::before {
    content:"";
    width:8px;
    height:8px;
    border-radius:999px;
    background:#94a3b8;
  }
  .tr-status-pill.draft { border-color:#cbd5e1; background:#f8fafc; color:#334155; }
  .tr-status-pill.submitted { border-color:#fde68a; background:#fffbeb; color:#92400e; }
  .tr-status-pill.approved { border-color:#86efac; background:#f0fdf4; color:#166534; }
  .tr-status-pill.submitted::before { background:#f59e0b; }
  .tr-status-pill.approved::before { background:#22c55e; }
  .tr-head-actions,
  .tr-workspace-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
  }
  .tr-workspace-actions .btn,
  .tr-head-actions .btn {
    min-height:38px;
    padding:8px 12px;
    font-size:13px;
  }
  .tr-more-menu {
    position:relative;
  }
  .tr-more-menu > summary {
    width:38px;
    min-width:38px;
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px;
    cursor:pointer;
    list-style:none;
    font-size:20px;
    line-height:1;
  }
  .tr-more-menu > summary::-webkit-details-marker { display:none; }
  .tr-more-menu-panel {
    position:absolute;
    right:0;
    top:calc(100% + 6px);
    z-index:40;
    width:210px;
    display:grid;
    gap:5px;
    padding:7px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#fff;
    box-shadow:0 14px 30px rgba(15,23,42,.16);
  }
  .tr-more-menu-panel .btn {
    width:100%;
    justify-content:flex-start;
  }
  .tr-meta-strip {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
  }
  .tr-meta-tile {
    min-width:0;
    padding:8px 10px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc;
  }
  .tr-meta-tile strong {
    display:block;
    color:#0f172a;
    font-size:13px;
    line-height:1.25;
    overflow-wrap:anywhere;
  }
  .tr-meta-tile span {
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
  }
  .tr-tabs {
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:2px;
  }
  .tr-tab {
    flex:1 0 auto;
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    padding:8px 10px;
    background:#fff;
    color:#334155;
    font-size:13px;
    font-weight:950;
    cursor:pointer;
  }
  .tr-tab span {
    min-width:24px;
    min-height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 7px;
    border-radius:999px;
    background:#e2e8f0;
    color:#334155;
    font-size:11px;
    font-weight:950;
  }
  .tr-tab.active {
    border-color:var(--pmb-red);
    background:var(--pmb-red);
    color:#fff;
  }
  .tr-tab.active span {
    background:#fff;
    color:var(--pmb-red);
  }
  .tr-workspace-body {
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:14px;
    padding:14px;
    align-items:start;
  }
  .tr-main-stack,
  .tr-side-rail {
    display:grid;
    gap:12px;
    min-width:0;
  }
  .tr-side-rail {
    position:sticky;
    top:148px;
  }
  .tr-panel {
    display:grid;
    gap:12px;
    min-width:0;
  }
  .tr-card-panel {
    display:grid;
    gap:10px;
    min-width:0;
    padding:12px;
    border:1px solid #dbe3ee;
    border-radius:12px;
    background:#fff;
    box-shadow:0 1px 3px rgba(15,23,42,.06);
  }
  .tr-card-panel h3 {
    margin:0;
    color:#0f172a;
    font-size:16px;
    line-height:1.25;
  }
  .tr-meta-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:9px;
  }
  .tr-position-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
  }
  .tr-position-toolbar h3 {
    margin:0;
    color:#0f172a;
    font-size:18px;
  }
  .tr-position-toolbar span {
    color:#64748b;
    font-size:12px;
    font-weight:900;
  }
  #tagesrapportPositions {
    display:grid;
    gap:12px;
  }
  .tr-position {
    display:grid;
    gap:10px;
    min-width:0;
    border:1px solid #dbe3ee;
    border-left:4px solid var(--pmb-red);
    border-radius:12px;
    padding:12px;
    background:#fff;
    box-shadow:0 2px 10px rgba(15,23,42,.06);
  }
  .tr-position-head {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
  }
  .tr-position-toggle {
    width:100%;
    min-width:0;
    min-height:42px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    padding:3px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#0f172a;
    text-align:left;
    cursor:pointer;
  }
  .tr-position-toggle:hover,
  .tr-position-toggle:focus-visible {
    background:#f8fafc;
    outline:none;
  }
  .tr-position-title {
    min-width:0;
    overflow:hidden;
    color:#0f172a;
    font-size:14px;
    font-weight:950;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .tr-position-chevron,
  .tr-section-chevron {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#64748b;
    font-size:18px;
    font-weight:950;
    transition:transform .16s ease;
  }
  .tr-position:not(.is-collapsed) .tr-position-chevron,
  .tr-form-section.is-open .tr-section-chevron {
    transform:rotate(180deg);
  }
  .tr-position-editor {
    display:grid;
    gap:10px;
    min-width:0;
  }
  .tr-position.is-collapsed {
    gap:6px;
    padding:9px 11px;
    box-shadow:0 1px 4px rgba(15,23,42,.05);
  }
  .tr-position.is-collapsed .tr-position-editor {
    display:none;
  }
  .tr-position-art {
    min-width:0;
  }
  .tr-position-art .tr-art,
  .tr-form-section .tr-ausmass,
  #tagesrapportRemarks {
    min-height:88px;
    max-height:240px;
    overflow-y:hidden;
    resize:vertical;
    line-height:1.45;
  }
  .tr-pos-no {
    align-self:center;
    min-height:34px;
    display:inline-flex;
    align-items:center;
    padding:5px 9px;
    border-radius:9px;
    background:#0f172a;
    color:#fff;
    font-size:12px;
    font-weight:950;
    white-space:nowrap;
  }
  .tr-pos-remove {
    width:38px;
    min-width:38px;
    min-height:38px;
    padding:7px;
    border-radius:9px;
    font-size:16px;
    line-height:1;
  }
  .tr-position-summary {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    min-height:24px;
  }
  .tr-position-summary:empty {
    display:none;
  }
  .tr-summary-chip,
  .tr-section-chip {
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:3px 8px;
    border-radius:999px;
    background:#f1f5f9;
    color:#334155;
    font-size:11px;
    font-weight:950;
  }
  .tr-form-section {
    display:grid;
    gap:8px;
    min-width:0;
    padding:10px;
    border:1px solid #edf0f1;
    border-radius:10px;
    background:#fbfcfd;
  }
  .tr-sections-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    min-width:0;
  }
  .tr-form-section.is-open {
    grid-column:1 / -1;
  }
  .tr-form-section.tr-section-unavailable {
    display:none;
  }
  .tr-form-section:not(.is-open) .tr-section-body {
    display:none;
  }
  .tr-section-head {
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    min-width:0;
    min-height:32px;
    padding:0;
    border:0;
    background:transparent;
    text-align:left;
    cursor:pointer;
  }
  .tr-section-head strong {
    color:#0f172a;
    font-size:13px;
    font-weight:950;
  }
  .tr-section-head span {
    color:#64748b;
    font-size:12px;
    font-weight:900;
  }
  .tr-section-label {
    min-width:0;
    display:flex;
    align-items:center;
    gap:7px;
  }
  .tr-section-count {
    min-width:22px;
    min-height:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:1px 6px;
    border-radius:999px;
    background:#e2e8f0;
    color:#334155 !important;
    font-size:11px !important;
    font-weight:950 !important;
  }
  .tr-section-count[hidden] { display:none; }
  .tr-section-body {
    display:grid;
    gap:8px;
    min-width:0;
  }
  .tr-row-list-wrap,
  .tr-emps,
  .tr-machs,
  .tr-devices,
  .tr-operating-materials,
  .tr-consumables {
    display:grid;
    gap:7px;
    min-width:0;
  }
  .tr-emp,
  .tr-mach,
  .tr-mat {
    display:grid;
    grid-template-columns:minmax(150px,1.2fr) minmax(130px,1fr) minmax(120px,.8fr) minmax(72px,.35fr) 38px;
    gap:7px;
    align-items:end;
    min-width:0;
    padding:8px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#fff;
  }
  .tr-mach {
    grid-template-columns:minmax(140px,.8fr) minmax(130px,.75fr) minmax(170px,1.15fr) minmax(72px,.35fr) 38px;
  }
  .tr-mat {
    grid-template-columns:104px minmax(140px,.8fr) minmax(130px,.75fr) minmax(170px,1.15fr) minmax(72px,.35fr) minmax(66px,.35fr) 38px;
  }
  .tr-emp input,
  .tr-emp select,
  .tr-mach input,
  .tr-mach select,
  .tr-mat input,
  .tr-mat select {
    min-height:38px;
    padding:7px 8px;
    font-size:13px;
  }
  .tr-kat-type {
    align-self:stretch;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:6px 8px;
    border:1px solid #dbe3ee;
    border-radius:8px;
    background:#f8fafc;
    color:#334155;
    font-size:11px;
    font-weight:950;
    text-align:center;
    line-height:1.15;
  }
  .tr-row-remove {
    min-width:38px;
    min-height:38px;
    padding:6px;
    border-radius:8px;
    font-size:16px;
    line-height:1;
  }
  .tr-mach-anbauteile,
  .tr-mat-untereintraege {
    grid-column:1 / -1;
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    min-width:0;
  }
  .tr-attach,
  .tr-mat-child {
    display:inline-grid;
    grid-auto-flow:column;
    grid-auto-columns:auto;
    align-items:center;
    gap:5px;
    min-height:32px;
    padding:4px 7px;
    border:1px solid #dbe3ee;
    border-radius:999px;
    background:#fff;
    color:#334155;
    font-size:12px;
    font-weight:850;
  }
  .tr-attach input[type="checkbox"],
  .tr-mat-child input[type="checkbox"] {
    width:16px;
    min-height:16px;
    padding:0;
    margin:0;
    accent-color:var(--pmb-red);
  }
  .tr-attach input[type="number"],
  .tr-mat-child input {
    min-height:28px;
    padding:4px 6px;
    font-size:12px;
  }
  .tr-attach-hours { width:64px; }
  .tr-mat-child-qty { width:76px; }
  .tr-mat-child-unit { width:58px; }
  .tr-suggestions {
    display:none;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:8px;
    min-width:0;
  }
  .tr-suggestion-card {
    min-height:44px;
    border:1px solid #dbeafe;
    border-radius:10px;
    padding:8px 9px;
    background:#eff6ff;
    color:#1e3a8a;
    text-align:left;
    font:inherit;
    cursor:pointer;
  }
  .tr-suggestion-card strong {
    display:block;
    font-size:13px;
    line-height:1.25;
  }
  .tr-suggestion-card span {
    display:block;
    margin-top:2px;
    color:#1d4ed8;
    font-size:11px;
    font-weight:850;
    line-height:1.25;
  }
  .tr-suggestion-card.is-hint {
    cursor:default;
    border-color:#e2e8f0;
    background:#f8fafc;
    color:#334155;
  }
  .tr-side-list {
    display:grid;
    gap:7px;
  }
  .tr-report-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    padding:8px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#fff;
  }
  .tr-report-row strong {
    display:block;
    color:#0f172a;
    font-size:13px;
  }
  .tr-report-row span {
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
  }
  .tr-review-list {
    display:grid;
    gap:8px;
  }
  .tr-review-item {
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    gap:8px;
    align-items:start;
    padding:9px;
    border:1px solid #dbe3ee;
    border-radius:10px;
    background:#fff;
  }
  .tr-review-item strong {
    display:block;
    color:#0f172a;
    font-size:13px;
    line-height:1.25;
  }
  .tr-review-item span {
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:12px;
    font-weight:800;
    line-height:1.35;
  }
  .tr-review-icon {
    min-width:26px;
    min-height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#dcfce7;
    color:#166534;
    font-size:13px;
    font-weight:950;
  }
  .tr-review-item.error .tr-review-icon { background:#fee2e2; color:#991b1b; }
  .tr-review-item.warn .tr-review-icon { background:#fffbeb; color:#92400e; }
  .tr-review-item.info .tr-review-icon { background:#eff6ff; color:#1d4ed8; }
  .tr-attachment-grid {
    display:grid;
    gap:10px;
  }
  .tr-attachment-drop {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
    padding:12px;
    border:1px dashed #94a3b8;
    border-radius:12px;
    background:#f8fafc;
  }
  .tr-attachment-drop strong {
    display:block;
    color:#0f172a;
    font-size:14px;
  }
  .tr-attachment-drop span {
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:12px;
    font-weight:850;
  }
  .tr-attachment-list {
    display:grid;
    gap:10px;
  }
  .tr-attachment-card {
    display:grid;
    grid-template-columns:96px minmax(0,1fr);
    gap:10px;
    align-items:start;
    padding:10px;
    border:1px solid #dbe3ee;
    border-radius:12px;
    background:#fff;
  }
  .tr-attachment-card textarea,
  .tr-attachment-card input {
    min-height:38px;
    font-size:13px;
  }
  .tr-thumb {
    width:96px;
    height:96px;
    border:1px solid #dbe3ee;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#edf0f1;
    color:#334155;
    font-size:12px;
    font-weight:950;
    text-decoration:none;
  }
  .tr-thumb-wrap {
    position:relative;
    width:96px;
    min-width:96px;
  }
  .tr-thumb-wrap .photo-save-button {
    left:6px;
    bottom:6px;
  }
  .tr-thumb img {
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .tr-empty-state {
    padding:14px;
    border:1px dashed #cbd5e1;
    border-radius:12px;
    background:#fff;
    color:#64748b;
    font-size:13px;
    font-weight:850;
    text-align:center;
  }

  @media (max-width: 980px) {
    .tr-workspace-body { grid-template-columns:1fr; }
    .tr-side-rail { position:static; }
    .tr-meta-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tr-emp { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tr-mach { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tr-mat { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tr-row-remove { justify-self:end; }
    .tr-mach-anbauteile,
    .tr-mat-untereintraege,
    .tr-kat-type { grid-column:1 / -1; }
    .tr-sections-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }

  @media (max-width: 1099px) and (orientation: portrait) {
    .tr-workspace-head {
      position:static;
      top:auto;
      z-index:auto;
      padding:12px;
      box-shadow:none;
    }
    .tr-workspace-body {
      grid-template-columns:1fr;
    }
    .tr-side-rail {
      position:static;
    }
    .tr-meta-strip {
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:7px;
    }
    .tr-meta-tile {
      padding:7px 8px;
    }
    .tr-workspace-actions {
      position:static;
      bottom:auto;
      z-index:auto;
      padding:0;
      border:0;
      background:transparent;
      box-shadow:none;
    }
  }

  @media (max-width: 720px) {
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .toolbar > div:first-child {
      display:none;
    }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .toolbar .userbar {
      grid-template-columns:minmax(0,1fr) auto auto;
    }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .toolbar .current-user { grid-column:1; }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .toolbar .offline-status { grid-column:2; }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .toolbar .rapport-test-mode-toggle {
      grid-column:3;
      width:auto;
      min-height:34px;
      padding:5px 8px;
    }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .toolbar .rapport-reset-toolbar-button {
      display:none !important;
    }
    .tr-workspace-head {
      position:static;
      top:auto;
      margin:-14px -14px 0;
      padding:10px 12px 12px;
      border-radius:0 0 14px 14px;
      box-shadow:none;
    }
    .tr-title-lockup h2 {
      font-size:19px;
    }
    .tr-title-lockup {
      width:100%;
      min-width:0;
    }
    .tr-title-lockup > #tagesrapportNumberHint {
      display:none;
    }
    .tr-beta-badge {
      min-height:19px;
      margin-left:4px;
      padding:2px 6px;
      font-size:9px;
    }
    .tr-beta-notice {
      grid-template-columns:auto minmax(0,1fr) auto;
      gap:7px;
      padding:7px 8px;
    }
    .tr-beta-notice p {
      font-size:11px;
    }
    .tr-beta-notice .btn {
      grid-column:auto;
      justify-self:end;
      padding:5px 7px;
    }
    .tr-head-top {
      align-items:center;
      gap:8px;
    }
    .tr-head-actions {
      width:100%;
      align-items:center;
      justify-content:flex-start;
      gap:6px;
    }
    .tr-head-actions .btn {
      width:auto;
      min-height:34px;
      padding:6px 9px;
      font-size:12px;
    }
    .tr-status-pill {
      min-height:28px;
      padding:4px 8px;
      font-size:11px;
    }
    .tr-workspace-actions,
    .tr-workspace-actions .btn {
      width:100%;
    }
    .tr-meta-strip,
    .tr-meta-grid,
    .tr-emp,
    .tr-mach,
    .tr-mat {
      grid-template-columns:1fr;
    }
    .tr-position-head {
      grid-template-columns:minmax(0,1fr) 38px;
    }
    .tr-position-toggle {
      grid-template-columns:auto minmax(0,1fr) auto;
    }
    .tr-sections-grid {
      grid-template-columns:1fr;
    }
    .report-context-actions .btn {
      width:100%;
    }
    .tr-meta-strip {
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .tr-meta-tile strong {
      font-size:12px;
    }
    .tr-meta-tile span {
      font-size:10px;
    }
    .tr-tabs {
      flex-wrap:nowrap;
      overflow-x:auto;
      margin-right:-12px;
      padding-right:12px;
      scrollbar-width:none;
    }
    .tr-tabs::-webkit-scrollbar { display:none; }
    .tr-tab {
      flex:0 0 auto;
      min-width:108px;
      min-height:36px;
      padding:7px 8px;
      font-size:12px;
    }
    .tr-workspace-body { padding:12px; }
    /* Mobile: the side rail repeats information already available in the tabs. */
    .tr-side-rail { display:none; }
    .tr-main-stack { min-width:0; padding-bottom:92px; }
    .tr-workspace-actions {
      position:sticky;
      bottom:calc(58px + env(safe-area-inset-bottom));
      z-index:20;
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:7px;
      padding:9px;
      margin:10px -3px 0;
      border:1px solid #dbe3ee;
      border-radius:12px;
      background:rgba(255,255,255,.96);
      box-shadow:0 4px 18px rgba(15,23,42,.12);
      backdrop-filter:blur(8px);
    }
    #tagesrapportStatus,
    #tagesrapportLockNote,
    #tagesrapportApproveBtn,
    #tagesrapportSubmitBtn {
      grid-column:1 / -1;
    }
    .tr-attachment-card { grid-template-columns:1fr; }
    .tr-thumb { width:100%; height:150px; }
  }
  .desktop-dashboard-commandbar { display:none; }

  @media (min-width:900px) {
    body.desktop-admin-mode #desktopDashboardApp > .toolbar {
      display:none !important;
    }
    body.desktop-admin-mode #desktopDashboardApp .home-shell {
      gap:12px;
    }
    body.desktop-admin-mode #desktopDashboardApp #homeAdminContent {
      display:grid;
      gap:14px;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-commandbar {
      min-height:52px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:0 2px 12px;
      border-bottom:1px solid #dbe3ee;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-commandbar > div:first-child {
      min-width:0;
      display:grid;
      gap:2px;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-commandbar strong {
      color:#0f172a;
      font-size:18px;
      line-height:1.2;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-commandbar span {
      color:#64748b;
      font-size:12px;
      font-weight:750;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-commandbar-actions {
      display:flex;
      align-items:center;
      gap:7px;
      flex:0 0 auto;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-commandbar .btn {
      min-height:34px;
      padding:6px 10px;
      border-radius:7px;
      font-size:12px;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-summary {
      grid-template-columns:minmax(300px,.78fr) minmax(0,2.22fr);
      gap:12px;
      margin:0;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel {
      gap:0;
      grid-template-rows:42px minmax(0,1fr);
      padding:0;
      border-color:#dbe3ee;
      border-radius:8px;
      box-shadow:none;
      overflow:hidden;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel-head {
      min-height:42px;
      align-items:center;
      padding:8px 11px;
      background:#f8fafc;
      border-bottom:1px solid #e2e8f0;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel-head span {
      color:#334155;
      font-size:12px;
      text-transform:none;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel-head strong {
      font-size:13px;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-grid {
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:0;
      background:#fff;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel[aria-label="Heute"] .desktop-kpi-grid {
      grid-template-columns:repeat(3,minmax(0,1fr));
      grid-auto-rows:72px;
      align-content:start;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi {
      min-height:72px;
      grid-template-rows:28px 26px;
      align-content:center;
      padding:9px 10px;
      border:0;
      border-left:1px solid #edf1f5;
      border-radius:0;
      background:#fff;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel[aria-label="Heute"] .desktop-kpi:nth-child(3n+1),
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-panel[aria-label="Prüfen"] .desktop-kpi:nth-child(4n+1) {
      border-left:0;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi:nth-child(n+5) {
      border-top:1px solid #edf1f5;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-label {
      min-height:28px;
      color:#475569;
      font-size:11.5px;
      font-weight:850;
      text-transform:none;
      line-height:1.15;
      overflow-wrap:normal;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-value {
      min-height:26px;
      align-items:center;
      margin:0;
      font-size:24px;
      line-height:1;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi.is-attention,
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi.is-danger {
      background:#fff;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi.is-attention .desktop-kpi-value {
      color:#9a3412;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi.is-danger .desktop-kpi-value {
      color:#be123c;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-grid {
      grid-template-columns:1fr;
      gap:12px;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-side {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:12px;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-grid > .card,
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-side > .card {
      margin:0;
      border-radius:8px;
      box-shadow:none;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-grid > .card {
      min-width:0;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-week-strip {
      min-width:0;
    }
  }

  @media (min-width:900px) and (max-width:1180px) {
    body.desktop-admin-mode #desktopDashboardApp .desktop-kpi-summary {
      grid-template-columns:1fr;
    }
    body.desktop-admin-mode #desktopDashboardApp .desktop-dashboard-side {
      grid-template-columns:1fr;
    }
  }

  /* PC-Arbeitsbereiche: gemeinsame, ruhige Verwaltungsoberflaeche. */
  .planning-desktop-week-nav,
  .planning-desktop-new-button,
  .site-view-toggle,
  .employee-desktop-filter { display:none; }

  @media (min-width:1100px) {
    body.desktop-admin-mode .btn {
      min-height:38px;
      padding:8px 12px;
      border-radius:7px;
      font-size:13px;
    }
    body.desktop-admin-mode .btn.secondary {
      border:1px solid #d7dcde;
      background:#fff;
      color:#1f2937;
      box-shadow:0 1px 2px rgba(15,23,42,.04);
    }
    body.desktop-admin-mode .btn.secondary:hover { border-color:#94a3b8; background:#f8fafc; }
    body.desktop-admin-mode .card { border-color:#dbe3ee; border-radius:8px; box-shadow:none; }
    body.desktop-admin-mode #sitesApp > .toolbar,
    body.desktop-admin-mode #planningApp > .toolbar,
    body.desktop-admin-mode #timeApp > .toolbar,
    body.desktop-admin-mode #adminApp > .toolbar { display:none !important; }
    body.desktop-admin-mode #adminLandingSection { display:none !important; }

    body.desktop-admin-mode .desktop-row-menu { position:relative; display:block; }
    body.desktop-admin-mode .desktop-row-menu > summary {
      width:36px;
      height:36px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      list-style:none;
      border:1px solid #d7dcde;
      border-radius:7px;
      background:#fff;
      color:#334155;
      font-size:18px;
      line-height:1;
      font-weight:950;
      cursor:pointer;
    }
    body.desktop-admin-mode .desktop-row-menu > summary::-webkit-details-marker { display:none; }
    body.desktop-admin-mode .desktop-row-menu > div {
      position:absolute;
      top:calc(100% + 5px);
      right:0;
      z-index:35;
      min-width:165px;
      display:grid;
      gap:3px;
      padding:6px;
      border:1px solid #dbe3ee;
      border-radius:8px;
      background:#fff;
      box-shadow:0 16px 40px rgba(15,23,42,.18);
    }
    body.desktop-admin-mode .desktop-row-menu > div > button,
    body.desktop-admin-mode .desktop-row-menu > div > .btn {
      width:100%;
      min-height:34px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      padding:7px 9px;
      border:0;
      border-radius:6px;
      background:#fff;
      color:#1f2937;
      font:inherit;
      font-size:12px;
      font-weight:850;
      text-align:left;
      cursor:pointer;
      box-shadow:none;
    }
    body.desktop-admin-mode .desktop-row-menu > div > button:hover,
    body.desktop-admin-mode .desktop-row-menu > div > .btn:hover { background:#f1f5f9; }
    body.desktop-admin-mode .desktop-row-menu > div > .danger { color:#991b1b; }

    /* Baustellen */
    body.desktop-admin-mode #sitesApp { padding-bottom:28px; }
    body.desktop-admin-mode #sitesApp .site-form-details {
      margin:0 0 14px;
      padding:12px 14px;
      border-radius:8px;
      background:#fff;
    }
    body.desktop-admin-mode #sitesApp .site-form-details > summary {
      min-height:34px;
      margin:-12px -14px;
      padding:10px 14px;
      border-radius:8px;
      background:#fff;
      font-size:14px;
    }
    body.desktop-admin-mode #sitesApp .site-form-details > summary small {
      margin-left:auto;
      color:#64748b;
      font-size:11px;
      font-weight:850;
    }
    body.desktop-admin-mode #sitesApp .site-form-details[open] {
      position:fixed;
      top:88px;
      right:0;
      bottom:0;
      z-index:75;
      width:min(720px,calc(100vw - 240px));
      margin:0;
      padding:16px;
      overflow:auto;
      border-radius:0;
      box-shadow:-20px 0 55px rgba(15,23,42,.24);
    }
    body.desktop-admin-mode #sitesApp .site-form-details[open] > summary {
      position:sticky;
      top:-16px;
      z-index:3;
      margin:-16px -16px 0;
      padding:14px 16px;
      border-bottom:1px solid #dbe3ee;
      border-radius:0;
    }
    body.desktop-admin-mode #sitesApp .site-form-details[open] .site-form-details-body { padding-top:18px; }
    body.desktop-admin-mode #sitesApp .site-list-toolbar {
      position:sticky;
      top:88px;
      z-index:18;
      display:grid;
      grid-template-columns:auto minmax(0,1fr) auto auto;
      gap:12px;
      align-items:end;
      margin:0 0 10px;
      padding:10px 0;
      background:#f4f5f7;
    }
    body.desktop-admin-mode #sitesApp .site-list-toolbar h2 { align-self:center; font-size:18px; white-space:nowrap; }
    body.desktop-admin-mode #sitesApp .site-management-filters {
      display:grid;
      grid-template-columns:minmax(150px,.65fr) minmax(130px,.55fr) minmax(250px,1.4fr);
      gap:8px;
      min-width:0;
    }
    body.desktop-admin-mode #sitesApp .site-management-filters > div { min-width:0; }
    body.desktop-admin-mode #sitesApp .site-management-filters label { font-size:10px; }
    body.desktop-admin-mode #sitesApp .site-management-filters input,
    body.desktop-admin-mode #sitesApp .site-management-filters select { min-height:38px; padding:7px 9px; font-size:12px; }
    body.desktop-admin-mode #sitesApp .site-search { width:100%; }
    body.desktop-admin-mode #sitesApp .site-view-toggle {
      display:inline-grid;
      grid-template-columns:repeat(2,auto);
      gap:3px;
      padding:3px;
      border:1px solid #dbe3ee;
      border-radius:8px;
      background:#e9edf1;
    }
    body.desktop-admin-mode #sitesApp .site-view-toggle button {
      min-height:30px;
      padding:5px 9px;
      border:0;
      border-radius:6px;
      background:transparent;
      color:#64748b;
      font:inherit;
      font-size:11px;
      font-weight:900;
      cursor:pointer;
    }
    body.desktop-admin-mode #sitesApp .site-view-toggle button.active { background:#fff; color:#0f172a; box-shadow:0 1px 3px rgba(15,23,42,.1); }
    body.desktop-admin-mode #sitesApp .site-list-toolbar > .form-actions { justify-content:flex-end; white-space:nowrap; }
    body.desktop-admin-mode #sitesApp .site-folder { border-radius:8px; }
    body.desktop-admin-mode #sitesApp .site-folder > summary { padding:10px 12px; font-size:13px; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-folder-body { padding:0; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-subfolder { margin:0; border:0; border-radius:0; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-subfolder > summary { border-top:1px solid #e2e8f0; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-list { display:block; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card {
      display:grid;
      grid-template-columns:112px minmax(180px,.82fr) minmax(360px,1.6fr) auto;
      gap:12px;
      align-items:center;
      min-height:92px;
      padding:10px 12px;
      border:0;
      border-bottom:1px solid #e2e8f0;
      border-radius:0;
      background:#fff;
      box-shadow:none;
    }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card:last-child { border-bottom:0; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card:hover { background:#f8fafc; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-badges { margin:0; align-content:center; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card h3 { margin:0; font-size:14px; line-height:1.2; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card-meta {
      min-height:0;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:3px 12px;
      font-size:11.5px;
      line-height:1.2;
    }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-meta-order,
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-meta-work,
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-meta-polier { display:none; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-meta-address a { color:#334155; font-weight:850; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-meta-contact a { color:#334155; font-weight:800; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card-actions { margin:0; flex-wrap:nowrap; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-report-list { grid-column:1 / -1; width:100%; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card.reports-open { background:#fff; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-cards .site-card-actions { flex-wrap:nowrap; }

    /* Planung */
    body.desktop-admin-mode #planningApp .planning-range-card {
      position:sticky;
      top:88px;
      z-index:20;
      margin-bottom:10px;
      padding:12px 14px;
      background:#fff;
    }
    body.desktop-admin-mode #planningApp .planning-range-card > .subheader { margin-bottom:8px; }
    body.desktop-admin-mode #planningApp .planning-range-card > .subheader h2 { font-size:18px; }
    body.desktop-admin-mode #planningApp .planning-range-card .today-controls {
      display:grid;
      grid-template-columns:minmax(250px,1.1fr) minmax(230px,1fr) auto auto auto auto;
      gap:8px;
      align-items:end;
    }
    body.desktop-admin-mode #planningApp .planning-desktop-week-nav { display:grid; gap:5px; }
    body.desktop-admin-mode #planningApp .planning-desktop-week-nav > div { display:grid; grid-template-columns:34px auto 34px; gap:4px; }
    body.desktop-admin-mode #planningApp .planning-desktop-week-nav .btn { min-width:34px; padding:6px 8px; }
    body.desktop-admin-mode #planningApp .planning-desktop-new-button { display:inline-flex; }
    body.desktop-admin-mode #planningApp .planning-week-card { margin:0; padding:0; overflow:hidden; }
    body.desktop-admin-mode #planningApp .planning-week-grid {
      max-height:calc(100dvh - 276px);
      min-height:520px;
      overflow:auto;
      padding:0;
      overscroll-behavior:contain;
    }
    body.desktop-admin-mode #planningApp .planning-calendar {
      min-width:980px;
      border:0;
      border-radius:0;
      box-shadow:none;
    }
    body.desktop-admin-mode #planningApp .planning-calendar-corner { position:sticky; left:0; z-index:6; }
    body.desktop-admin-mode #planningApp .planning-time-column { position:sticky; left:0; z-index:4; }
    body.desktop-admin-mode #planningApp .planning-time-row { height:var(--planning-hour-height,52px); }
    body.desktop-admin-mode #planningApp .planning-day-column {
      min-height:0;
      background:repeating-linear-gradient(to bottom,#fff 0,#fff calc(var(--planning-hour-height,52px) - 1px),#e2e8f0 var(--planning-hour-height,52px));
    }
    body.desktop-admin-mode #planningApp .planning-day-column.drag-target {
      background:repeating-linear-gradient(to bottom,#fff7ed 0,#fff7ed calc(var(--planning-hour-height,52px) - 1px),#fed7aa var(--planning-hour-height,52px));
    }
    body.desktop-admin-mode #planningApp #planningFormCard.planning-form-collapsed { display:none !important; }
    body.desktop-admin-mode #planningApp #planningFormCard:not(.planning-form-collapsed) {
      position:fixed;
      top:88px;
      right:0;
      bottom:0;
      z-index:78;
      width:min(700px,calc(100vw - 240px));
      margin:0;
      padding:16px;
      overflow:auto;
      border-radius:0;
      background:#fff;
      box-shadow:-20px 0 55px rgba(15,23,42,.24);
    }
    body.desktop-admin-mode #planningApp #planningFormCard:not(.planning-form-collapsed) .planning-form-header {
      position:sticky;
      top:-16px;
      z-index:4;
      margin:-16px -16px 14px;
      padding:14px 16px;
      border-bottom:1px solid #dbe3ee;
      background:#fff;
    }

    /* Mitarbeiterplanung */
    body.desktop-admin-mode #employeePlanningApp .resource-planning-commandbar {
      position:sticky;
      top:88px;
      z-index:18;
      margin-bottom:10px;
      padding:12px 14px;
      background:#fff;
    }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-band > summary { list-style:none; cursor:pointer; }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-band > summary::-webkit-details-marker { display:none; }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-band-head {
      grid-template-columns:minmax(150px,220px) minmax(0,1fr) 24px;
    }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-band-head::after {
      content:"";
      width:8px;
      height:8px;
      justify-self:center;
      border-right:2px solid #475569;
      border-bottom:2px solid #475569;
      transform:rotate(45deg);
      transition:transform .15s ease;
    }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-band:not([open]) .employee-planning-band-head::after { transform:rotate(-45deg); }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-band-counts { justify-content:flex-end; }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-card-grid { grid-template-columns:repeat(2,minmax(340px,1fr)); }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-compact-rows { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-compact-row { grid-template-columns:74px minmax(0,1fr); }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-site-card { box-shadow:none; }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-rail { position:sticky; top:184px; align-self:start; }

    /* Eigene Stunden */
    body.desktop-admin-mode #timeApp[style*="display: block"] { display:grid !important; grid-template-columns:minmax(0,.9fr) minmax(520px,1.35fr); gap:12px; align-items:start; }
    body.desktop-admin-mode #timeApp[style*="display:none"],
    body.desktop-admin-mode #timeApp[style*="display: none"] { display:none !important; }
    body.desktop-admin-mode #timeApp .time-entry-card,
    body.desktop-admin-mode #timeApp .time-month-card { margin:0; }
    body.desktop-admin-mode #timeApp .time-entry-card { position:sticky; top:88px; }
    body.desktop-admin-mode #timeApp .time-entry-card .site-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
    body.desktop-admin-mode #timeApp .time-entry-card .wide-field { grid-column:1 / -1; }
    body.desktop-admin-mode #timeApp .time-month-card .today-controls {
      display:grid;
      grid-template-columns:minmax(180px,1fr) auto auto auto;
      gap:7px;
      align-items:end;
    }
    body.desktop-admin-mode #timeApp .time-month-lock-panel { border-radius:8px; }
    body.desktop-admin-mode #timeApp .time-kpi { border-radius:8px; padding:10px; }
    body.desktop-admin-mode #timeApp .time-kpi-value { font-size:20px; }

    /* Mitarbeiterverwaltung */
    body.desktop-admin-mode #adminEmployeesSection > .subheader { margin-bottom:10px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-desktop-filter { display:block; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-head-actions { display:flex; align-items:center; gap:7px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-controls {
      display:grid;
      grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
      gap:8px;
      align-items:end;
      margin-bottom:10px;
    }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-controls > div { min-width:0; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-controls label { font-size:10px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-controls input,
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-controls select { min-height:38px; padding:7px 9px; font-size:12px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-layout { display:block; }
    body.desktop-admin-mode #adminEmployeesSection .employee-card-grid.employee-table-mode { display:block; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-form {
      position:fixed;
      top:88px;
      right:0;
      bottom:0;
      z-index:80;
      width:min(640px,calc(100vw - 240px));
      overflow:auto;
      padding:16px;
      border-radius:0;
      background:#fff;
      box-shadow:-20px 0 55px rgba(15,23,42,.24);
      transform:translateX(110%);
      visibility:hidden;
      transition:transform .18s ease,visibility .18s ease;
    }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-form.is-open { transform:translateX(0); visibility:visible; }
    body.desktop-admin-mode #adminEmployeesSection .employee-admin-form > .subheader {
      position:sticky;
      top:-16px;
      z-index:4;
      margin:-16px -16px 14px;
      padding:14px 16px;
      border-bottom:1px solid #dbe3ee;
      background:#fff;
    }
    body.desktop-admin-mode #adminEmployeesSection .employee-form-head-actions { display:flex; align-items:center; gap:8px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table-wrap { max-height:calc(100dvh - 282px); }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table { min-width:1080px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table th { top:0; }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-badges { display:flex; flex-wrap:wrap; gap:4px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-timecard-panel {
      position:fixed;
      top:88px;
      right:0;
      bottom:0;
      z-index:79;
      width:min(640px,calc(100vw - 240px));
      margin:0 !important;
      padding:16px;
      overflow:auto;
      border-radius:0;
      background:#fff;
      box-shadow:-20px 0 55px rgba(15,23,42,.24);
    }
    body.desktop-admin-mode #adminEmployeesSection .employee-timecard-panel:not(.is-open) { display:none !important; }
    body.desktop-admin-mode #adminEmployeesSection .employee-timecard-panel > .subheader {
      position:sticky;
      top:-16px;
      z-index:4;
      margin:-16px -16px 14px;
      padding:14px 16px;
      border-bottom:1px solid #dbe3ee;
      background:#fff;
    }

    /* Admin-Stundenkarten */
    body.desktop-admin-mode #adminTimeSection { margin:0; }
    body.desktop-admin-mode #adminTimeSection > .today-controls {
      position:sticky;
      top:88px;
      z-index:18;
      display:grid;
      grid-template-columns:170px minmax(220px,1fr) 160px auto auto auto;
      gap:8px;
      align-items:end;
      margin:0 -2px 10px;
      padding:8px 2px 10px;
      background:#fff;
      border-bottom:1px solid #e2e8f0;
    }
    body.desktop-admin-mode #adminTimeSection .admin-time-summary-grid { margin:8px 0; }
    body.desktop-admin-mode #adminTimeSection #adminTimeUserCards { max-height:calc(100dvh - 330px); }
    body.desktop-admin-mode #adminTimeSection .admin-time-table { min-width:1040px; }
    body.desktop-admin-mode #adminTimeSection .admin-time-table th { top:0; }
    body.desktop-admin-mode .admin-time-selected-panel {
      position:fixed;
      top:88px;
      right:0;
      bottom:0;
      z-index:82;
      width:min(620px,calc(100vw - 240px));
      padding:16px;
      overflow:auto;
      border-left:1px solid #dbe3ee;
      background:#fff;
      box-shadow:-20px 0 55px rgba(15,23,42,.24);
      transform:translateX(110%);
      visibility:hidden;
      transition:transform .18s ease,visibility .18s ease;
    }
    body.desktop-admin-mode .admin-time-selected-panel.is-open { transform:translateX(0); visibility:visible; }
    body.desktop-admin-mode .admin-time-selected-head {
      position:sticky;
      top:-16px;
      z-index:4;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin:-16px -16px 14px;
      padding:14px 16px;
      border-bottom:1px solid #dbe3ee;
      background:#fff;
    }
    body.desktop-admin-mode .admin-time-selected-head strong { display:block; font-size:18px; }
    body.desktop-admin-mode .admin-time-selected-head span { display:block; margin-top:2px; color:#64748b; font-size:12px; font-weight:800; }
    body.desktop-admin-mode .admin-time-selected-head > div:last-child { display:flex; gap:6px; }
    body.desktop-admin-mode #adminTimeEditSection {
      position:fixed;
      top:88px;
      right:0;
      bottom:0;
      z-index:86;
      width:min(640px,calc(100vw - 240px));
      margin:0;
      padding:16px;
      overflow:auto;
      border-radius:0;
      background:#fff;
      box-shadow:-20px 0 55px rgba(15,23,42,.26);
    }
    body.desktop-admin-mode #adminTimeEditSection:not(.is-open) { display:none !important; }
    body.desktop-admin-mode #adminTimeEditSection > .subheader {
      position:sticky;
      top:-16px;
      z-index:4;
      margin:-16px -16px 14px;
      padding:14px 16px;
      border-bottom:1px solid #dbe3ee;
      background:#fff;
    }

    /* Maschinen */
    body.desktop-admin-mode #machinesApp > .toolbar {
      position:sticky;
      top:88px;
      z-index:18;
      display:block;
      margin:0 0 10px;
      padding:10px;
      border-radius:8px;
      background:#fff;
    }
    body.desktop-admin-mode #machinesApp > .toolbar > div:first-child,
    body.desktop-admin-mode #machinesApp > .toolbar > .userbar { display:none; }
    body.desktop-admin-mode #machinesApp > .toolbar .resource-planning-top-search {
      width:100%;
      display:grid;
      grid-template-columns:minmax(260px,1fr) 220px;
      gap:8px;
    }
    body.desktop-admin-mode #machinesApp .machine-overview-card { padding:12px 14px; }
    body.desktop-admin-mode #machinesApp .machine-overview-card > .subheader { align-items:center; margin-bottom:7px; }
    body.desktop-admin-mode #machinesApp .machine-filter-pills { justify-content:flex-end; }
    body.desktop-admin-mode #machinesApp .machine-kpis { grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); }
    body.desktop-admin-mode #machinesApp #resourceMachineFormCard {
      position:sticky;
      top:154px;
      max-height:calc(100dvh - 168px);
      overflow:auto;
    }
    body.desktop-admin-mode #machinesApp #resourceMachineFormCard.machine-form-idle { display:none; }
    body.desktop-admin-mode #machinesApp .machine-workspace:has(#resourceMachineFormCard.machine-form-idle) { grid-template-columns:1fr; }
    body.desktop-admin-mode #machinesApp .machine-category-manager { border-radius:8px; }

    /* Material / Katalog */
    body.desktop-admin-mode #adminKatalogSection {
      margin:0;
      padding:0;
      border:0;
      background:transparent;
      box-shadow:none;
    }
    body.desktop-admin-mode #adminKatalogSection > .subheader { display:none; }
    body.desktop-admin-mode #adminKatalogSection .kat-admin-shell { gap:10px; }
    body.desktop-admin-mode #adminKatalogSection .kat-modern-head { padding:2px 0 10px; }
    body.desktop-admin-mode #adminKatalogSection .kat-modern-title h3 { font-size:20px; }
    body.desktop-admin-mode #adminKatalogSection .kat-detail-panel {
      top:100px;
      max-height:calc(100dvh - 116px);
      overflow:auto;
    }
    body.desktop-admin-mode #adminKatalogSection .kat-modern-list { max-height:calc(100dvh - 286px); overflow:auto; padding-right:3px; }

    /* Rapporte */
    body.desktop-admin-mode #rapportApp > .toolbar {
      position:sticky;
      top:88px;
      z-index:22;
      min-height:54px;
      margin:0 0 10px;
      padding:8px 10px;
      border-radius:8px;
    }
    body.desktop-admin-mode #rapportApp > .toolbar > div:first-child,
    body.desktop-admin-mode #rapportApp > .toolbar .current-user,
    body.desktop-admin-mode #rapportApp > .toolbar .offline-status,
    body.desktop-admin-mode #rapportApp > .toolbar .toolbar-logout-button { display:none !important; }
    body.desktop-admin-mode #rapportApp > .toolbar .userbar { width:100%; justify-content:flex-end; flex-wrap:nowrap; }
    body.desktop-admin-mode #rapportApp > .toolbar .rapport-test-mode-toggle { margin-right:auto; }
    body.desktop-admin-mode #rapportApp .report-desktop-top-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr); gap:10px; }
    body.desktop-admin-mode #rapportApp .report-desktop-top-grid > .card { margin:0 0 10px; }
    body.desktop-admin-mode #rapportApp .report-type-card .report-type-grid {
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:5px;
      padding:3px;
      border:1px solid #dbe3ee;
      border-radius:8px;
      background:#eef2f6;
    }
    body.desktop-admin-mode #rapportApp .report-type-card .report-type-option {
      min-height:38px;
      padding:7px 9px;
      border:0;
      border-radius:6px;
      background:transparent;
      font-size:12px;
    }
    body.desktop-admin-mode #rapportApp .report-type-card .report-type-option.active { background:#fff; box-shadow:0 1px 3px rgba(15,23,42,.12); }
    body.desktop-admin-mode #rapportApp .report-type-card .report-type-status { margin-top:6px; font-size:11px; }
    body.desktop-admin-mode #rapportApp > .card,
    body.desktop-admin-mode #rapportApp .report-desktop-top-grid > .card { border-radius:8px; box-shadow:none; }
  }

  @media (min-width:1100px) and (max-width:1240px) {
    body.desktop-admin-mode #sitesApp .site-list-toolbar { grid-template-columns:1fr auto; }
    body.desktop-admin-mode #sitesApp .site-list-toolbar h2 { grid-column:1; }
    body.desktop-admin-mode #sitesApp .site-management-filters { grid-column:1 / -1; grid-row:2; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-card { grid-template-columns:100px minmax(160px,.8fr) minmax(280px,1.5fr) auto; }
    body.desktop-admin-mode #sitesApp.site-desktop-view-list .site-meta-contact { display:none; }
    body.desktop-admin-mode #planningApp .planning-range-card .today-controls { grid-template-columns:repeat(3,minmax(0,1fr)); }
    body.desktop-admin-mode #planningApp .planning-range-card .today-controls > .btn { width:100%; }
    body.desktop-admin-mode #employeePlanningApp .employee-planning-card-grid { grid-template-columns:1fr; }
    body.desktop-admin-mode #timeApp[style*="display: block"] { grid-template-columns:1fr !important; }
    body.desktop-admin-mode #timeApp .time-entry-card { position:static; }
    body.desktop-admin-mode #adminTimeSection > .today-controls { grid-template-columns:repeat(3,minmax(0,1fr)); }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table { min-width:760px; }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table th:nth-child(4),
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table td:nth-child(4),
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table th:nth-child(6),
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table td:nth-child(6) { display:none; }
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table th,
    body.desktop-admin-mode #adminEmployeesSection .employee-directory-table td {
      padding:7px 6px;
      font-size:12px;
    }
    body.desktop-admin-mode #adminTimeSection .admin-time-table { min-width:880px; }
    body.desktop-admin-mode #adminTimeSection .admin-time-table th:nth-child(7),
    body.desktop-admin-mode #adminTimeSection .admin-time-table td:nth-child(7),
    body.desktop-admin-mode #adminTimeSection .admin-time-table th:nth-child(8),
    body.desktop-admin-mode #adminTimeSection .admin-time-table td:nth-child(8) { display:none; }
  }

  /* Mobile-Modernisierung 2026-07-12: nur Handy und Tablet. */
  body.modal-open { overflow:hidden; }

  @media (max-width:1099px) {
    body.mobile-app-shell {
      --mobile-command-bottom:calc(84px + env(safe-area-inset-bottom, 0px));
      overscroll-behavior-y:none;
    }
    body.mobile-app-shell summary,
    body.mobile-app-shell button,
    body.mobile-app-shell [role="button"] {
      touch-action:manipulation;
    }
    body.mobile-app-shell summary {
      -webkit-user-select:none;
      user-select:none;
    }
    body.mobile-app-shell .btn.secondary {
      border:1px solid #cbd5e1;
      background:#fff;
      color:#111827;
      box-shadow:none;
    }
    body.mobile-app-shell .toolbar .current-user,
    body.mobile-app-shell .toolbar .toolbar-logout-button {
      display:none !important;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar .toolbar-logout-button {
      display:inline-flex !important;
    }
    body.mobile-app-shell #rapportApp > .toolbar .userbar {
      width:auto;
      display:flex;
      flex-wrap:wrap;
      justify-content:flex-end;
      gap:7px;
    }
    body.mobile-app-shell #rapportApp > .toolbar .rapport-test-mode-toggle {
      grid-column:auto;
      width:auto;
      min-height:38px;
      padding:6px 10px;
    }
    body.mobile-app-shell.site-management-open .mobile-app-nav,
    body.mobile-app-shell.site-pdf-markup-open .mobile-app-nav,
    body.mobile-app-shell.planning-detail-open .mobile-app-nav,
    body.mobile-app-shell.attachment-viewer-open .mobile-app-nav,
    body.mobile-app-shell.modal-open .mobile-app-nav {
      display:none !important;
    }
    body.mobile-app-shell #rapportApp:not(.mobile-report-tagesrapport) {
      padding-bottom:calc(174px + env(safe-area-inset-bottom, 0px));
    }
    body.mobile-app-shell #rapportApp > .toolbar .toolbar-action-button,
    body.mobile-app-shell #rapportApp > .toolbar .rapport-reset-toolbar-button {
      display:none !important;
    }
    body.mobile-app-shell #rapportApp:not(.mobile-report-tagesrapport) .rapport-mobile-commandbar {
      position:fixed;
      top:auto;
      left:50%;
      right:auto;
      bottom:var(--mobile-command-bottom);
      z-index:88;
      width:min(720px,calc(100vw - 24px));
      display:grid;
      grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr) 46px;
      align-items:center;
      gap:7px;
      margin:0;
      padding:8px;
      border:1px solid #d1d5db;
      border-radius:15px;
      background:rgba(255,255,255,.98);
      box-shadow:0 16px 38px rgba(15,23,42,.24);
      transform:translateX(-50%);
      backdrop-filter:blur(14px);
    }
    body.mobile-app-shell #rapportApp.mobile-report-tagesrapport .rapport-mobile-commandbar {
      display:none !important;
    }
    body.mobile-app-shell .rapport-mobile-commandbar > .btn {
      width:100%;
      min-width:0;
      min-height:44px;
      padding:8px 10px;
      border-radius:10px;
      font-size:13px;
    }
    body.mobile-app-shell .rapport-mobile-more-menu {
      position:relative;
      min-width:0;
    }
    body.mobile-app-shell .rapport-mobile-more-menu > summary {
      width:46px;
      height:44px;
      display:flex;
      align-items:center;
      justify-content:center;
      list-style:none;
      border:1px solid #cbd5e1;
      border-radius:10px;
      background:#fff;
      color:#111827;
      font-size:22px;
      font-weight:900;
      line-height:1;
      cursor:pointer;
    }
    body.mobile-app-shell .rapport-mobile-more-menu > summary::-webkit-details-marker { display:none; }
    body.mobile-app-shell .rapport-mobile-more-menu > div {
      position:absolute;
      right:0;
      bottom:calc(100% + 8px);
      width:min(260px,calc(100vw - 32px));
      display:grid;
      gap:4px;
      padding:7px;
      border:1px solid #dbe3ee;
      border-radius:12px;
      background:#fff;
      box-shadow:0 18px 42px rgba(15,23,42,.24);
    }
    body.mobile-app-shell .rapport-mobile-more-menu > div button {
      min-height:42px;
      border:0;
      border-radius:8px;
      padding:8px 10px;
      background:#f8fafc;
      color:#0f172a;
      text-align:left;
      font:inherit;
      font-size:13px;
      font-weight:850;
    }
    body.mobile-app-shell.mobile-keyboard-open .mobile-app-nav,
    body.mobile-app-shell.mobile-keyboard-open .rapport-mobile-commandbar {
      display:none !important;
    }
    body.mobile-app-shell.mobile-keyboard-open .app {
      padding-bottom:18px;
    }
    body.mobile-app-shell .admin-time-mobile-select-all {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:8px;
      padding:9px 10px;
      border:1px solid #dbe3ee;
      border-radius:10px;
      background:#f8fafc;
      color:#475569;
      font-size:12px;
      font-weight:850;
    }
    body.mobile-app-shell .admin-time-mobile-select-all label {
      display:flex;
      align-items:center;
      gap:8px;
      color:#0f172a;
    }
    body.mobile-app-shell .admin-time-mobile-list {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:9px;
    }
    body.mobile-app-shell .admin-time-mobile-card {
      min-width:0;
      display:grid;
      gap:9px;
      padding:11px;
      border:1px solid #dbe3ee;
      border-radius:11px;
      background:#fff;
      box-shadow:0 4px 14px rgba(15,23,42,.07);
    }
    body.mobile-app-shell .admin-time-mobile-card.active {
      border-color:#b91c1c;
      box-shadow:0 0 0 2px rgba(185,28,28,.10);
    }
    body.mobile-app-shell .admin-time-mobile-card-head {
      display:grid;
      grid-template-columns:22px minmax(0,1fr) auto;
      align-items:start;
      gap:8px;
      min-width:0;
    }
    body.mobile-app-shell .admin-time-mobile-card-head > div { min-width:0; }
    body.mobile-app-shell .admin-time-mobile-card-head strong,
    body.mobile-app-shell .admin-time-mobile-card-head span {
      display:block;
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    body.mobile-app-shell .admin-time-mobile-card-head strong { color:#0f172a; font-size:14px; }
    body.mobile-app-shell .admin-time-mobile-card-head > div > span { margin-top:2px; color:#64748b; font-size:11px; font-weight:800; }
    body.mobile-app-shell .admin-time-mobile-check { padding-top:2px; }
    body.mobile-app-shell .admin-time-mobile-kpis {
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:5px;
    }
    body.mobile-app-shell .admin-time-mobile-kpis > span {
      min-width:0;
      min-height:50px;
      display:grid;
      align-content:center;
      gap:3px;
      padding:6px;
      border:1px solid #e2e8f0;
      border-radius:8px;
      background:#f8fafc;
      text-align:center;
    }
    body.mobile-app-shell .admin-time-mobile-kpis small { color:#64748b; font-size:9px; font-weight:900; text-transform:uppercase; }
    body.mobile-app-shell .admin-time-mobile-kpis strong { color:#0f172a; font-size:13px; white-space:nowrap; }
    body.mobile-app-shell .admin-time-mobile-kpis .admin-time-balance { justify-self:center; }
    body.mobile-app-shell .admin-time-mobile-meta {
      display:flex;
      flex-wrap:wrap;
      gap:4px 8px;
      color:#64748b;
      font-size:10.5px;
      font-weight:800;
    }
    body.mobile-app-shell .admin-time-mobile-actions {
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(0,.7fr) 46px;
      gap:6px;
      align-items:end;
    }
    body.mobile-app-shell .admin-time-mobile-actions > .btn {
      width:100%;
      min-width:0;
      min-height:40px;
      padding:7px 8px;
      font-size:11.5px;
    }
  }

  @media (max-width:720px) {
    body.mobile-app-shell .app {
      padding:0 10px calc(92px + env(safe-area-inset-bottom, 0px));
    }
    body.mobile-app-shell .toolbar,
    body.mobile-app-shell #desktopDashboardApp .toolbar {
      min-height:0;
      margin:0 -10px 10px;
      padding:10px 12px 12px;
      gap:7px;
      border-radius:0 0 12px 12px;
      box-shadow:0 7px 18px rgba(15,23,42,.16);
    }
    body.mobile-app-shell .toolbar h1,
    body.mobile-app-shell #desktopDashboardApp .toolbar h1 {
      font-size:21px;
      line-height:1.08;
    }
    body.mobile-app-shell .toolbar > div:first-child:not(.home-title-lockup) > div,
    body.mobile-app-shell #desktopDashboardApp .home-toolbar-subline {
      display:none;
    }
    body.mobile-app-shell .toolbar .current-user {
      display:none;
    }
    body.mobile-app-shell .toolbar .toolbar-logout-button {
      display:none !important;
    }
    body.mobile-app-shell #desktopDashboardApp .toolbar .toolbar-logout-button {
      display:inline-flex !important;
    }
    body.mobile-app-shell .toolbar .userbar {
      gap:6px;
      max-width:100%;
      overflow-x:auto;
      overflow-y:hidden;
      scrollbar-width:none;
    }
    body.mobile-app-shell .toolbar .userbar::-webkit-scrollbar { display:none; }
    body.mobile-app-shell .toolbar .offline-status {
      min-height:26px;
      padding:3px 7px;
      font-size:10.5px;
    }
    body.mobile-app-shell .toolbar .toolbar-action-button,
    body.mobile-app-shell .toolbar .rapport-test-mode-toggle {
      flex:0 0 auto;
      width:auto;
      min-height:36px;
      padding:7px 9px;
      font-size:11.5px;
    }
    body.mobile-app-shell .card,
    body.mobile-app-shell .site-card,
    body.mobile-app-shell .stat-tile,
    body.mobile-app-shell .desktop-list-item,
    body.mobile-app-shell .today-plan-card,
    body.mobile-app-shell .planning-item-card,
    body.mobile-app-shell .planning-mobile-card {
      border-radius:10px;
      box-shadow:0 3px 12px rgba(15,23,42,.07);
    }
    body.mobile-app-shell .card {
      margin-bottom:10px;
      padding:12px;
    }
    body.mobile-app-shell .card h2,
    body.mobile-app-shell .site-list-toolbar h2,
    body.mobile-app-shell .stats-section-heading h2 {
      font-size:17px;
      line-height:1.15;
    }
    body.mobile-app-shell .btn {
      min-height:42px;
      border-radius:9px;
      line-height:1.15;
      overflow-wrap:anywhere;
    }
    body.mobile-app-shell input,
    body.mobile-app-shell select,
    body.mobile-app-shell textarea {
      min-height:44px;
      border-radius:9px;
      font-size:16px;
    }
    body.mobile-app-shell textarea { min-height:92px; }
    body.mobile-app-shell input[type="checkbox"] { min-height:20px; }

    body.mobile-app-shell #desktopDashboardApp .toolbar {
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
    }
    body.mobile-app-shell .home-shell { gap:9px; }
    body.mobile-app-shell .home-mobile-status {
      grid-template-columns:minmax(0,1fr) auto !important;
      align-items:center !important;
      gap:6px;
      padding:8px 9px;
      border-radius:10px;
      box-shadow:0 3px 12px rgba(15,23,42,.06);
    }
    body.mobile-app-shell .home-mobile-status-main { grid-column:1 !important; }
    body.mobile-app-shell .home-mobile-status .offline-status {
      grid-column:2 !important;
      justify-self:end !important;
    }
    body.mobile-app-shell .home-mobile-status-actions {
      grid-column:1 / -1 !important;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto 42px !important;
      gap:5px;
    }
    body.mobile-app-shell .home-mobile-status-actions .btn {
      min-height:34px;
      padding:6px 7px;
      border-radius:8px;
      font-size:11px;
      white-space:nowrap;
    }
    body.mobile-app-shell #homeMobileRefreshButton {
      width:42px;
      min-width:42px;
      font-size:21px;
      line-height:1;
    }
    body.mobile-app-shell .home-daily-summary-teaser {
      grid-template-columns:minmax(0,1fr) 70px;
      min-height:78px;
      border-radius:10px;
      box-shadow:0 3px 12px rgba(15,23,42,.07);
    }
    body.mobile-app-shell .home-daily-summary-copy { padding:10px 12px; }
    body.mobile-app-shell .home-daily-summary-visual { min-height:78px; }
    body.mobile-app-shell .home-mobile-overview-card,
    body.mobile-app-shell .home-mobile-task-card {
      border-radius:10px;
      box-shadow:0 3px 12px rgba(15,23,42,.07);
    }
    body.mobile-app-shell .home-mobile-overview-head,
    body.mobile-app-shell .home-mobile-task-head {
      padding:10px 11px;
    }
    body.mobile-app-shell .home-mobile-overview-item,
    body.mobile-app-shell .home-mobile-task-row {
      padding:9px 11px;
    }

    body.mobile-app-shell #rapportApp > .toolbar {
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
    }
    body.mobile-app-shell #rapportApp > .toolbar .userbar {
      width:auto;
      justify-content:flex-end;
    }
    body.mobile-app-shell #rapportApp > .toolbar .offline-status {
      display:inline-flex;
    }
    body.mobile-app-shell #rapportApp .report-base-card,
    body.mobile-app-shell #rapportApp .report-type-card {
      padding:11px;
    }
    body.mobile-app-shell #rapportApp .report-type-grid {
      gap:6px;
    }
    body.mobile-app-shell #rapportApp .report-type-option {
      min-height:43px;
      padding:7px 8px;
      border-radius:8px;
      font-size:12px;
    }
    body.mobile-app-shell #rapportApp .offline-card { margin-bottom:6px; }

    body.mobile-app-shell #todayApp .today-controls {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:8px;
      align-items:end;
    }
    body.mobile-app-shell #todayApp .today-controls > div:first-child,
    body.mobile-app-shell #todayApp .push-setting,
    body.mobile-app-shell #todayApp .offline-summary,
    body.mobile-app-shell #todayApp .offline-sync-button {
      grid-column:1 / -1;
      min-width:0;
      width:100%;
    }
    body.mobile-app-shell #todayApp .today-controls > .btn:not(.offline-sync-button) {
      width:100%;
      min-width:0;
    }
    body.mobile-app-shell #todayApp .offline-summary[hidden],
    body.mobile-app-shell #todayApp .offline-sync-button[hidden] {
      display:none !important;
    }

    body.mobile-app-shell #sitesApp .site-list-toolbar {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:8px;
      align-items:center;
      margin-bottom:8px;
    }
    body.mobile-app-shell #sitesApp .site-mobile-filter-toggle {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:auto;
      min-height:38px;
      padding:7px 10px;
      font-size:12px;
    }
    body.mobile-app-shell #sitesApp .mobile-filter-count {
      min-width:20px;
      height:20px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      margin-left:5px;
      border-radius:999px;
      background:#b91c1c;
      color:#fff;
      font-size:10px;
    }
    body.mobile-app-shell #sitesApp .site-management-filters {
      grid-column:1 / -1;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:7px;
    }
    body.mobile-app-shell #sitesApp .site-management-filters > div:last-child {
      grid-column:1 / -1;
    }
    body.mobile-app-shell #sitesApp.mobile-filters-collapsed .site-management-filters {
      display:none;
    }
    body.mobile-app-shell #sitesApp .site-list-toolbar > .form-actions {
      grid-column:1 / -1;
      min-height:0;
      margin:0 !important;
    }
    body.mobile-app-shell #sitesApp .site-card {
      gap:8px;
      padding:10px;
    }
    body.mobile-app-shell #sitesApp .site-card-actions.mobile-site-actions {
      gap:6px;
    }
    body.mobile-app-shell #sitesApp .site-card-actions.mobile-site-actions .btn {
      min-height:38px;
      padding:7px 8px;
      font-size:11.5px;
    }
    body.mobile-app-shell .site-management-close-button {
      width:44px;
      min-width:44px;
      height:44px;
      min-height:44px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0;
      border:2px solid #cbd5e1;
      border-radius:999px;
      background:#fff;
      color:#111827;
      font-size:25px;
      font-weight:950;
      line-height:1;
    }

    body.mobile-app-shell .planning-mobile-shell { gap:9px; }
    body.mobile-app-shell .planning-mobile-week-title {
      padding:8px 9px;
      border-radius:10px;
      box-shadow:none;
    }
    body.mobile-app-shell .planning-mobile-day-strip { gap:4px; }
    body.mobile-app-shell .planning-mobile-day-button {
      min-height:60px;
      padding:7px 2px 6px;
      border-radius:9px;
      box-shadow:none;
    }
    body.mobile-app-shell .planning-mobile-card {
      gap:7px;
      padding:10px;
    }
    body.mobile-app-shell .planning-mobile-actions { gap:5px; }
    body.mobile-app-shell .planning-mobile-actions .btn {
      min-height:38px;
      padding:7px 5px;
      font-size:11.5px;
    }

    body.mobile-app-shell #timeEntriesList .stats-table tr,
    body.mobile-app-shell #statsReports .stats-table tr {
      margin-bottom:8px;
      padding:9px 10px;
      border-radius:10px;
      box-shadow:0 3px 10px rgba(15,23,42,.06);
    }
    body.mobile-app-shell #timeEntriesList .stats-table td,
    body.mobile-app-shell #statsReports .stats-table td {
      grid-template-columns:82px minmax(0,1fr);
      min-height:27px;
      padding:4px 0;
      font-size:12.5px;
    }
    body.mobile-app-shell .time-kpi-grid {
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:7px;
    }
    body.mobile-app-shell .time-kpi {
      padding:9px;
      border-radius:9px;
    }
    body.mobile-app-shell .time-kpi-value { font-size:19px; }

    body.mobile-app-shell .admin-time-mobile-list {
      grid-template-columns:1fr;
    }
    body.mobile-app-shell .employee-card-grid {
      grid-template-columns:1fr;
      gap:8px;
    }
    body.mobile-app-shell .employee-card {
      gap:7px;
      padding:10px;
      border-radius:10px;
      box-shadow:0 3px 10px rgba(15,23,42,.06);
    }
    body.mobile-app-shell .employee-card-name { font-size:15px; }
    body.mobile-app-shell .employee-card-meta { font-size:11px; line-height:1.18; }
    body.mobile-app-shell .employee-card-kpis { gap:5px; }
    body.mobile-app-shell .employee-card-kpi {
      min-height:47px;
      padding:6px;
      border-radius:8px;
    }
    body.mobile-app-shell .employee-card-kpi strong { font-size:13px; }
    body.mobile-app-shell .employee-card-actions {
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:5px;
    }
    body.mobile-app-shell .employee-card-actions .btn {
      width:100%;
      min-width:0;
      min-height:38px;
      padding:6px 5px;
      font-size:10.5px;
    }

    body.mobile-app-shell #machinesApp .machine-filter-pills {
      scrollbar-width:none;
    }
    body.mobile-app-shell #machinesApp .machine-filter-pills::-webkit-scrollbar { display:none; }
    body.mobile-app-shell #machinesApp .machine-category-toolbar {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:6px;
      align-items:center;
    }
    body.mobile-app-shell #machinesApp .machine-category-toolbar .form-status {
      grid-column:1 / -1;
    }
    body.mobile-app-shell #machinesApp .machine-category-toolbar .btn {
      width:100%;
      min-width:0;
      min-height:38px;
      padding:7px 8px;
      font-size:11.5px;
    }
    body.mobile-app-shell #machinesApp:not(.mobile-category-create-open) .machine-category-create {
      display:none;
    }
    body.mobile-app-shell #machinesApp .machine-category-create {
      margin-bottom:8px;
    }

    body.mobile-app-shell #adminKatalogSection > .subheader,
    body.mobile-app-shell #adminKatalogSection .kat-modern-title {
      display:none;
    }
    body.mobile-app-shell #adminKatalogSection .kat-modern-head {
      display:block;
      padding:0 0 9px;
      border:0;
    }
    body.mobile-app-shell #adminKatalogSection .kat-modern-head > .btn {
      width:100%;
    }
    body.mobile-app-shell #adminKatalogSection .kat-admin-shell,
    body.mobile-app-shell #adminKatalogSection .kat-modern-shell {
      gap:9px;
    }
    body.mobile-app-shell #adminKatalogSection .kat-primary-nav {
      gap:5px;
      padding:4px;
      border-radius:10px;
    }
    body.mobile-app-shell #adminKatalogSection .kat-primary-button {
      min-height:42px;
      padding:7px 6px;
      font-size:11.5px;
    }

    .mobile-app-nav {
      left:8px;
      right:8px;
      bottom:calc(7px + env(safe-area-inset-bottom, 0px));
      gap:3px;
      padding:6px;
      border-radius:17px;
    }
    .mobile-app-nav button {
      min-height:50px;
      border-radius:11px;
      padding:5px 2px;
      font-size:9.5px;
    }
    .mobile-nav-icon,
    .mobile-nav-icon .app-icon {
      width:20px;
      height:20px;
    }
  }

  @media (min-width:721px) and (max-width:1099px) {
    body.mobile-app-shell .card,
    body.mobile-app-shell .site-card,
    body.mobile-app-shell .planning-mobile-card {
      box-shadow:0 5px 16px rgba(15,23,42,.07);
    }
  }

  .site-mobile-filter-toggle,
  .site-mobile-filter-toggle[hidden] { display:none !important; }
  .machine-mobile-category-toggle,
  .machine-mobile-category-toggle[hidden] { display:none !important; }
  @media (max-width:720px) {
    body.mobile-app-shell #sitesApp .site-mobile-filter-toggle:not([hidden]) { display:inline-flex !important; }
    body.mobile-app-shell #machinesApp .machine-mobile-category-toggle:not([hidden]) { display:inline-flex !important; }
  }

  /* Planmarkierungen V2: eigenstaendiger Arbeitsbereich fuer Desktop, Tablet und Handy. */
  .site-pdf-markup-overlay {
    inset:0;
    padding:0;
    align-items:stretch;
    justify-content:stretch;
    background:rgba(15,23,42,.78);
  }
  .site-pdf-markup-dialog {
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    border:0;
    border-radius:0;
    background:#eef1f4;
    box-shadow:none;
    color:#17202a;
  }
  .site-pdf-markup-head {
    min-height:62px;
    display:grid;
    grid-template-columns:42px minmax(180px,1fr) auto auto;
    align-items:center;
    gap:10px;
    padding:8px 14px;
    background:#fff;
    border-bottom:1px solid #d9dfe6;
  }
  .site-pdf-markup-icon-button {
    width:40px;
    height:40px;
    min-width:40px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    border-radius:7px;
    background:transparent;
    color:#273444;
    cursor:pointer;
  }
  .site-pdf-markup-icon-button:hover { background:#f1f3f5; border-color:#d9dfe6; }
  .site-pdf-markup-icon-button:focus-visible { outline:3px solid rgba(227,6,19,.22); outline-offset:1px; }
  .site-pdf-markup-icon-button svg { width:22px; height:22px; stroke-width:2; }
  .site-pdf-markup-back { border-color:#d9dfe6; background:#f8f9fa; }
  .site-pdf-markup-title-block { min-width:0; }
  .site-pdf-markup-title-row { display:flex; align-items:center; gap:9px; min-width:0; }
  .site-pdf-markup-head .site-pdf-markup-title-row h2 { margin:0; min-width:0; font-size:18px; line-height:1.2; letter-spacing:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .site-pdf-markup-version-label {
    flex:none;
    padding:3px 7px;
    border:1px solid #cbd3dc;
    border-radius:999px;
    background:#f8f9fa;
    color:#4b5968;
    font-size:10px;
    font-weight:800;
  }
  .site-pdf-markup-meta { margin-top:2px; max-width:70ch; color:#687584; font-size:12px; font-weight:650; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .site-pdf-markup-head-state { display:flex; align-items:center; }
  .site-pdf-markup-save-state {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:30px;
    padding:5px 9px;
    border:1px solid #d9dfe6;
    border-radius:999px;
    background:#f8f9fa;
    color:#52606e;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
  }
  .site-pdf-markup-save-state > span { width:8px; height:8px; border-radius:50%; background:#94a3b8; }
  .site-pdf-markup-save-state.is-saved > span { background:#16803c; }
  .site-pdf-markup-save-state.is-pending > span { background:#d97706; }
  .site-pdf-markup-save-state.is-saving > span,
  .site-pdf-markup-save-state.is-loading > span { background:#2563eb; animation:sitePdfMarkupPulse 1s ease-in-out infinite; }
  .site-pdf-markup-save-state.is-offline > span,
  .site-pdf-markup-save-state.is-error > span { background:#c1121f; }
  @keyframes sitePdfMarkupPulse { 50% { opacity:.35; transform:scale(.78); } }
  .site-pdf-markup-head-actions { display:flex; align-items:center; gap:2px; }
  .site-pdf-markup-mobile-actions-button { display:none; }

  .site-pdf-markup-pagebar {
    min-height:54px;
    display:grid;
    grid-template-columns:auto auto minmax(0,1fr);
    align-items:center;
    gap:14px;
    padding:7px 14px;
    background:#fff;
    border-bottom:1px solid #d9dfe6;
  }
  .site-pdf-markup-page-controls,
  .site-pdf-markup-zoom-controls,
  .site-pdf-markup-document-actions { display:flex; align-items:center; gap:5px; }
  .site-pdf-markup-document-actions { justify-content:flex-end; min-width:0; }
  .site-pdf-markup-page-label { min-width:92px; text-align:center; color:#354150; font-size:12px; font-weight:850; white-space:nowrap; }
  .site-pdf-markup-zoom-label {
    min-width:62px;
    height:36px;
    padding:0 8px;
    border:1px solid #d9dfe6;
    border-radius:6px;
    background:#fff;
    color:#273444;
    font-size:12px;
    font-weight:850;
    cursor:pointer;
  }
  .site-pdf-markup-fit-button {
    min-height:36px;
    padding:0 10px;
    border:1px solid #d9dfe6;
    border-radius:6px;
    background:#f8f9fa;
    color:#354150;
    font-weight:750;
    cursor:pointer;
  }
  .site-pdf-markup-pagebar .site-pdf-markup-icon-button { width:36px; height:36px; min-width:36px; }
  .site-pdf-markup-pagebar .site-pdf-markup-icon-button svg { width:19px; height:19px; }
  .site-pdf-markup-document-actions .btn,
  .site-pdf-markup-download-menu > summary { min-height:38px; padding:8px 12px; font-size:12px; }
  .site-pdf-markup-download-menu { position:relative; }
  .site-pdf-markup-download-menu > summary { list-style:none; display:inline-flex; align-items:center; cursor:pointer; }
  .site-pdf-markup-download-menu > summary::-webkit-details-marker { display:none; }
  .site-pdf-markup-download-menu > div {
    position:absolute;
    z-index:15;
    top:calc(100% + 6px);
    right:0;
    min-width:190px;
    padding:6px;
    border:1px solid #cfd6de;
    border-radius:7px;
    background:#fff;
    box-shadow:0 14px 34px rgba(15,23,42,.18);
  }
  .site-pdf-markup-download-menu > div button { width:100%; min-height:38px; padding:7px 10px; border:0; border-radius:5px; background:#fff; color:#273444; text-align:left; font-weight:750; cursor:pointer; }
  .site-pdf-markup-download-menu > div button:hover { background:#f1f3f5; }

  .site-pdf-markup-workspace {
    flex:1 1 auto;
    min-height:0;
    display:grid;
    grid-template-columns:144px minmax(0,1fr) 286px;
    overflow:hidden;
  }
  .site-pdf-markup-toolrail {
    min-height:0;
    overflow-y:auto;
    padding:9px 8px 16px;
    background:#fff;
    border-right:1px solid #d9dfe6;
    scrollbar-width:thin;
  }
  .site-pdf-markup-tool-group { display:grid; gap:4px; padding:8px 0 10px; border-bottom:1px solid #e8ebef; }
  .site-pdf-markup-tool-group:last-child { border-bottom:0; }
  .site-pdf-markup-tool-group > span { padding:0 5px 3px; color:#7a8794; font-size:9px; line-height:1.2; font-weight:850; text-transform:uppercase; }
  .site-pdf-markup-rail-tool {
    width:100%;
    min-height:44px;
    display:grid;
    grid-template-columns:26px minmax(0,1fr);
    align-items:center;
    gap:5px;
    padding:6px 7px;
    border:1px solid transparent;
    border-radius:6px;
    background:transparent;
    color:#354150;
    text-align:left;
    cursor:pointer;
  }
  .site-pdf-markup-rail-tool:hover { background:#f1f3f5; }
  .site-pdf-markup-rail-tool.active { border-color:#e30613; background:#fff1f2; color:#b40612; }
  .site-pdf-markup-rail-tool svg { width:22px; height:22px; justify-self:center; stroke-width:1.9; }
  .site-pdf-markup-rail-tool b { min-width:0; font-size:10.5px; line-height:1.15; letter-spacing:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  .site-pdf-markup-stage { position:relative; min-width:0; min-height:0; display:flex; overflow:hidden; background:#dfe3e8; }
  .site-pdf-markup-body { flex:1 1 auto; min-width:0; min-height:0; overflow:auto; padding:18px; display:flex; justify-content:flex-start; background:#dfe3e8; overscroll-behavior:contain; scrollbar-gutter:stable; }
  .site-pdf-markup-canvas-wrap { min-width:0; min-height:0; margin:auto; border:1px solid #c4cbd3; box-shadow:0 7px 24px rgba(15,23,42,.16); }
  .site-pdf-markup-status {
    position:absolute;
    z-index:4;
    left:50%;
    bottom:12px;
    max-width:min(720px,calc(100% - 32px));
    transform:translateX(-50%);
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:6px;
    background:rgba(30,41,59,.9);
    color:#fff;
    font-size:11px;
    font-weight:700;
    line-height:1.3;
    text-align:center;
    pointer-events:none;
  }
  .site-pdf-markup-status:empty { display:none; }
  .site-pdf-markup-calibration-dialog {
    position:absolute;
    z-index:32;
    inset:0;
    display:grid;
    place-items:center;
    padding:18px;
    background:rgba(15,23,42,.46);
  }
  .site-pdf-markup-calibration-dialog[hidden] { display:none !important; }
  .site-pdf-markup-calibration-sheet {
    width:min(390px,100%);
    padding:18px;
    border:1px solid #cbd3dc;
    border-radius:8px;
    background:#fff;
    box-shadow:0 20px 54px rgba(15,23,42,.28);
  }
  .site-pdf-markup-calibration-sheet h3 { margin:0 0 6px; font-size:18px; letter-spacing:0; }
  .site-pdf-markup-calibration-sheet p { margin:0 0 16px; color:#52606e; font-size:13px; line-height:1.4; }
  .site-pdf-markup-calibration-sheet label { display:block; margin-bottom:6px; color:#354150; font-size:12px; font-weight:800; }
  .site-pdf-markup-calibration-sheet input { width:100%; min-height:48px; font-size:17px; }
  .site-pdf-markup-calibration-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
  .site-pdf-markup-calibration-actions .btn { min-height:42px; }
  .site-pdf-markup-draw-canvas { touch-action:none; }
  .site-pdf-markup-draw-canvas.has-selection { cursor:move; }

  .site-pdf-markup-inspector {
    min-height:0;
    overflow-y:auto;
    padding:10px;
    background:#f8f9fa;
    border-left:1px solid #d9dfe6;
    scrollbar-width:thin;
  }
  .site-pdf-markup-inspector section { padding:12px; margin-bottom:9px; border:1px solid #d9dfe6; border-radius:7px; background:#fff; }
  .site-pdf-markup-panel-title { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:11px; }
  .site-pdf-markup-panel-title strong { font-size:13px; }
  .site-pdf-markup-panel-title span { color:#7a8794; font-size:10px; font-weight:750; text-align:right; }
  .site-pdf-markup-panel-title button { border:0; background:transparent; color:#52606e; font-size:20px; line-height:1; cursor:pointer; }
  .site-pdf-markup-inspector label { display:block; margin:0 0 5px; color:#52606e; font-size:10px; font-weight:800; }
  .site-pdf-color-swatches { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; margin-bottom:12px; }
  .site-pdf-color-swatch { width:100%; aspect-ratio:1; min-width:0; min-height:28px; padding:0; border:2px solid #fff; border-radius:5px; outline:1px solid #cbd3dc; cursor:pointer; }
  .site-pdf-color-swatch.active { outline:3px solid #273444; outline-offset:1px; }
  .site-pdf-markup-property-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
  .site-pdf-markup-property-grid input { width:100%; min-height:38px; }
  .site-pdf-markup-property-grid input[type="color"] { padding:3px; }
  .site-pdf-markup-selection-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
  .site-pdf-markup-selection-actions .btn,
  .site-pdf-markup-clear-page { width:100%; min-height:38px; padding:7px 8px; font-size:11px; }
  .site-pdf-markup-history-panel[hidden],
  .site-pdf-markup-selected-panel[hidden] { display:none !important; }
  .site-pdf-markup-version-item { display:grid; gap:3px; width:100%; margin-top:6px; padding:9px; border:1px solid #dde2e8; border-radius:6px; background:#f8f9fa; color:#273444; text-align:left; cursor:pointer; }
  .site-pdf-markup-version-item:hover { border-color:#aeb8c3; background:#fff; }
  .site-pdf-markup-version-item strong { font-size:11px; }
  .site-pdf-markup-version-item span { color:#687584; font-size:9.5px; line-height:1.25; }
  .site-pdf-markup-mobile-sheet,
  .site-pdf-markup-mobile-dock,
  .site-pdf-markup-mobile-selection { display:none; }

  @media (max-width:1100px) and (min-width:801px) {
    .site-pdf-markup-workspace { grid-template-columns:108px minmax(0,1fr) 226px; }
    .site-pdf-markup-toolrail { padding-inline:6px; }
    .site-pdf-markup-rail-tool { grid-template-columns:22px minmax(0,1fr); padding-inline:5px; }
    .site-pdf-markup-rail-tool svg { width:19px; height:19px; }
    .site-pdf-markup-rail-tool b { font-size:9.5px; }
    .site-pdf-markup-document-actions .btn { padding-inline:8px; }
    .site-pdf-markup-document-actions #sitePdfMarkupDraftBtn { display:none; }
  }

  @media (max-width:800px) {
    .site-pdf-markup-dialog { overflow:hidden; }
    .site-pdf-markup-head {
      min-height:56px;
      grid-template-columns:40px minmax(0,1fr) auto auto;
      gap:6px;
      padding:7px 8px;
    }
    .site-pdf-markup-icon-button { width:38px; height:38px; min-width:38px; }
    .site-pdf-markup-title-row { gap:5px; }
    .site-pdf-markup-head .site-pdf-markup-title-row h2 { font-size:14px; }
    .site-pdf-markup-version-label { padding:2px 5px; font-size:8.5px; }
    .site-pdf-markup-meta { max-width:100%; font-size:9.5px; }
    .site-pdf-markup-save-state { min-height:27px; max-width:82px; padding:4px 7px; font-size:9px; overflow:hidden; text-overflow:ellipsis; }
    .site-pdf-markup-head-actions .site-pdf-markup-icon-button:nth-child(-n+2) { display:none; }
    .site-pdf-markup-head-actions { gap:0; }
    .site-pdf-markup-mobile-actions-button { display:inline-flex; }
    .site-pdf-markup-pagebar {
      min-height:44px;
      grid-template-columns:1fr auto;
      gap:4px;
      padding:4px 7px;
    }
    .site-pdf-markup-page-controls { justify-self:start; }
    .site-pdf-markup-zoom-controls { justify-self:end; }
    .site-pdf-markup-pagebar .site-pdf-markup-icon-button { width:34px; height:34px; min-width:34px; }
    .site-pdf-markup-page-label { min-width:72px; font-size:10.5px; }
    .site-pdf-markup-zoom-label { min-width:50px; height:32px; padding-inline:5px; font-size:10.5px; }
    .site-pdf-markup-fit-button,
    .site-pdf-markup-document-actions { display:none; }
    .site-pdf-markup-workspace { grid-template-columns:minmax(0,1fr); }
    .site-pdf-markup-toolrail,
    .site-pdf-markup-inspector { display:none; }
    .site-pdf-markup-stage { padding-bottom:calc(62px + env(safe-area-inset-bottom, 0px)); }
    .site-pdf-markup-body { min-height:0; padding:7px; scrollbar-gutter:auto; }
    .site-pdf-markup-status { bottom:calc(72px + env(safe-area-inset-bottom, 0px)); max-width:calc(100% - 18px); padding:5px 8px; font-size:9.5px; }
    .site-pdf-markup-status.selection-active { display:none; }
    .site-pdf-markup-calibration-dialog { align-items:end; padding:8px 8px calc(70px + env(safe-area-inset-bottom, 0px)); }
    .site-pdf-markup-calibration-sheet { width:100%; padding:16px; border-radius:10px; }
    .site-pdf-markup-calibration-actions { display:grid; grid-template-columns:1fr 1.35fr; }
    .site-pdf-markup-mobile-selection:not([hidden]) {
      position:absolute;
      z-index:12;
      left:50%;
      bottom:calc(72px + env(safe-area-inset-bottom, 0px));
      max-width:calc(100% - 18px);
      display:flex;
      align-items:center;
      gap:5px;
      padding:5px;
      border:1px solid #cbd3dc;
      border-radius:8px;
      background:#fff;
      box-shadow:0 8px 24px rgba(15,23,42,.2);
      transform:translateX(-50%);
    }
    .site-pdf-markup-mobile-selection strong { max-width:105px; padding:0 5px; font-size:9.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .site-pdf-markup-mobile-selection button { min-height:32px; padding:5px 8px; border:1px solid #d9dfe6; border-radius:5px; background:#f8f9fa; color:#354150; font-size:9.5px; font-weight:800; }
    .site-pdf-markup-mobile-selection button:last-child { border-color:#f1b6bb; color:#b40612; }
    .site-pdf-markup-mobile-dock {
      position:absolute;
      z-index:20;
      left:0;
      right:0;
      bottom:0;
      height:calc(62px + env(safe-area-inset-bottom, 0px));
      padding:4px 4px env(safe-area-inset-bottom, 0px);
      display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:2px;
      border-top:1px solid #cfd6de;
      background:rgba(255,255,255,.98);
      box-shadow:0 -7px 20px rgba(15,23,42,.1);
    }
    .site-pdf-markup-mobile-dock button {
      min-width:0;
      min-height:54px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:3px;
      padding:3px 1px;
      border:0;
      border-radius:7px;
      background:transparent;
      color:#52606e;
      cursor:pointer;
    }
    .site-pdf-markup-mobile-dock button.active { background:#fff1f2; color:#b40612; }
    .site-pdf-markup-mobile-dock svg { width:21px; height:21px; stroke-width:1.9; }
    .site-pdf-markup-mobile-dock span { max-width:100%; font-size:9px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .site-pdf-markup-mobile-sheet {
      position:absolute;
      z-index:19;
      left:6px;
      right:6px;
      bottom:calc(66px + env(safe-area-inset-bottom, 0px));
      display:block;
      padding:8px;
      border:1px solid #cfd6de;
      border-radius:10px;
      background:#fff;
      box-shadow:0 16px 44px rgba(15,23,42,.25);
      transform:translateY(calc(100% + 80px));
      opacity:0;
      pointer-events:none;
      transition:transform .18s ease,opacity .18s ease;
    }
    .site-pdf-markup-mobile-sheet.open { transform:translateY(0); opacity:1; pointer-events:auto; }
    .site-pdf-markup-mobile-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:35px; padding:0 2px 6px; border-bottom:1px solid #e6e9ed; }
    .site-pdf-markup-mobile-sheet-head strong { font-size:12px; }
    .site-pdf-markup-mobile-sheet-head .site-pdf-markup-icon-button { width:32px; height:32px; min-width:32px; font-size:21px; }
    .site-pdf-markup-mobile-tools { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; padding-top:8px; }
    .site-pdf-markup-mobile-tool {
      min-height:52px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:4px;
      padding:6px 3px;
      border:1px solid #d9dfe6;
      border-radius:7px;
      background:#f8f9fa;
      color:#354150;
      font-size:10px;
      font-weight:800;
      cursor:pointer;
    }
    .site-pdf-markup-mobile-tool.active { border-color:#e30613; background:#fff1f2; color:#b40612; }
    .site-pdf-markup-mobile-tool svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
    .site-pdf-markup-mobile-properties { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:9px 2px 1px; border-top:1px solid #e6e9ed; margin-top:8px; }
    .site-pdf-markup-mobile-properties > span { color:#687584; font-size:9px; font-weight:850; text-transform:uppercase; }
    .site-pdf-markup-mobile-properties .site-pdf-color-swatch { width:28px; min-width:28px; min-height:28px; aspect-ratio:1; }
    .site-pdf-markup-mobile-properties label { flex:1 1 118px; display:grid; grid-template-columns:auto minmax(70px,1fr); align-items:center; gap:5px; margin:0; color:#687584; font-size:9px; font-weight:800; }
    .site-pdf-markup-mobile-properties input[type="range"] { width:100%; min-width:0; }
    .site-pdf-markup-mobile-tools.site-pdf-markup-mobile-actions { grid-template-columns:1fr; }
    .site-pdf-markup-mobile-action { min-height:44px; display:flex; align-items:center; justify-content:flex-start; padding:9px 12px; border:1px solid #d9dfe6; border-radius:7px; background:#f8f9fa; color:#273444; font-weight:800; cursor:pointer; }
    .site-pdf-markup-mobile-action.primary { border-color:#e30613; background:#e30613; color:#fff; }
  }

/* Localdev: Maschinenplanung Leitstand */
#resourcePlanningApp .resource-planning-modebar {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin:0 0 10px;
}
#resourcePlanningApp .resource-planning-mode-switch {
  display:inline-grid;
  grid-template-columns:1fr 1fr;
  min-width:290px;
  padding:3px;
  border:1px solid #d9e0e8;
  border-radius:8px;
  background:#eef2f6;
}
#resourcePlanningApp .resource-planning-mode-switch button {
  min-height:38px;
  padding:8px 18px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#526071;
  font-weight:850;
  cursor:pointer;
}
#resourcePlanningApp .resource-planning-mode-switch button.active {
  background:#fff;
  color:#101820;
  box-shadow:0 1px 4px rgba(15,23,42,.12);
}
#resourcePlanningApp .machine-planning-commandbar {
  display:grid;
  gap:8px;
  padding:12px 14px;
}
#resourcePlanningApp .machine-planning-controls {
  display:grid;
  grid-template-columns:auto minmax(210px,240px) minmax(145px,180px) minmax(145px,180px) minmax(220px,1fr) auto;
  align-items:end;
  gap:10px;
}
#resourcePlanningApp .machine-planning-controls > div { min-width:0; }
#resourcePlanningApp .machine-planning-controls label {
  display:block;
  margin:0 0 5px;
  color:#627083;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
#resourcePlanningApp .machine-planning-controls select,
#resourcePlanningApp .machine-planning-controls input {
  width:100%;
  min-height:40px;
  margin:0;
}
#resourcePlanningApp .machine-planning-commandbar .resource-planning-date-field input {
  color:transparent;
  caret-color:transparent;
  background:transparent;
}
#resourcePlanningApp .machine-planning-commandbar .resource-planning-date-field span { display:flex; }
#resourcePlanningApp .machine-planning-create { min-height:40px; white-space:nowrap; }
#resourcePlanningApp .machine-planning-filter-toggle { display:none; min-height:40px; }
#resourcePlanningApp .machine-planning-filter-toggle span {
  min-width:20px;
  height:20px;
  display:inline-grid;
  place-items:center;
  margin-left:5px;
  border-radius:999px;
  background:#d71920;
  color:#fff;
  font-size:10px;
}
#resourcePlanningApp .machine-planning-load-status { min-height:16px; font-size:11px; }
#resourcePlanningApp .machine-planning-dashboard {
  display:grid;
  gap:10px;
}
#resourcePlanningApp .machine-planning-kpis {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
#resourcePlanningApp .machine-planning-kpi {
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 13px;
  border:1px solid #dce3eb;
  border-radius:8px;
  background:#fff;
  color:#394657;
  cursor:pointer;
  text-align:left;
}
#resourcePlanningApp .machine-planning-kpi:hover,
#resourcePlanningApp .machine-planning-kpi.active { border-color:#d71920; box-shadow:inset 0 0 0 1px #d71920; }
#resourcePlanningApp .machine-planning-kpi span { font-size:11px; font-weight:800; }
#resourcePlanningApp .machine-planning-kpi strong { color:#111827; font-size:25px; }
#resourcePlanningApp .machine-planning-kpi.free { border-left:4px solid #22a06b; }
#resourcePlanningApp .machine-planning-kpi.planned { border-left:4px solid #2f6fd6; }
#resourcePlanningApp .machine-planning-kpi.service { border-left:4px solid #d97706; }
#resourcePlanningApp .machine-planning-kpi.conflict { border-left:4px solid #d71920; }
#resourcePlanningApp .machine-planning-alerts {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
#resourcePlanningApp .machine-planning-alerts button {
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border:1px solid #e3c7c9;
  border-radius:7px;
  background:#fff6f6;
  color:#8f1e23;
  cursor:pointer;
}
#resourcePlanningApp .machine-planning-alerts button.service { border-color:#efd4a6; background:#fff9ed; color:#8a5706; }
#resourcePlanningApp .machine-planning-alerts strong { font-size:12px; }
#resourcePlanningApp .machine-planning-alerts span { font-size:10px; }
#resourcePlanningApp .machine-planning-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  align-items:start;
}
#resourcePlanningApp .machine-planning-layout.has-detail { grid-template-columns:minmax(0,1fr) 330px; }
#resourcePlanningApp .machine-planning-board,
#resourcePlanningApp .machine-planning-detail {
  min-width:0;
  border:1px solid #dce3eb;
  border-radius:8px;
  background:#fff;
}
#resourcePlanningApp .machine-planning-board { overflow:hidden; }
#resourcePlanningApp .machine-planning-board-head {
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 14px;
  border-bottom:1px solid #e4e9ef;
}
#resourcePlanningApp .machine-planning-board-head h2 { margin:0; color:#17202b; font-size:18px; }
#resourcePlanningApp .machine-planning-board-head span { color:#758192; font-size:10px; }
#resourcePlanningApp .machine-planning-refresh {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid #d9e0e8;
  border-radius:7px;
  background:#fff;
  color:#344154;
  font-size:20px;
  font-weight:800;
  cursor:pointer;
}
#resourcePlanningApp .machine-planning-axis {
  display:grid;
  grid-template-columns:300px minmax(0,1fr) 44px;
  min-height:40px;
  border-bottom:1px solid #dfe5ec;
  background:#f7f9fb;
}
#resourcePlanningApp .machine-planning-axis-label {
  display:flex;
  align-items:center;
  padding:0 14px;
  border-right:1px solid #dfe5ec;
  color:#657286;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
#resourcePlanningApp .machine-planning-axis-days {
  display:grid;
  grid-template-columns:repeat(var(--machine-slot-count),minmax(0,1fr));
  min-width:0;
}
#resourcePlanningApp .machine-planning-axis-days span {
  min-width:0;
  display:grid;
  place-items:center;
  border-right:1px solid #e5e9ef;
  color:#596779;
  font-size:9px;
  font-weight:800;
  overflow:hidden;
}
#resourcePlanningApp .machine-planning-axis-days span.weekend { background:#eceff3; color:#a33a3e; }
#resourcePlanningApp .machine-planning-axis-days span.today { background:#fff0f1; color:#b51016; box-shadow:inset 0 -3px 0 #d71920; }
#resourcePlanningApp .machine-planning-category { border-bottom:1px solid #dfe5ec; }
#resourcePlanningApp .machine-planning-category:last-child { border-bottom:0; }
#resourcePlanningApp .machine-planning-category-head {
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 14px;
  border:0;
  background:#f5f7fa;
  color:#1e2937;
  cursor:pointer;
  text-align:left;
}
#resourcePlanningApp .machine-planning-category.open .machine-planning-category-head { background:#eef2f6; }
#resourcePlanningApp .machine-planning-category-head > span:first-child { display:flex; align-items:baseline; gap:8px; min-width:0; }
#resourcePlanningApp .machine-planning-category-head strong { font-size:14px; }
#resourcePlanningApp .machine-planning-category-head small { color:#788596; font-size:10px; }
#resourcePlanningApp .machine-planning-category-counts { display:flex; align-items:center; gap:6px; }
#resourcePlanningApp .machine-planning-category-counts b {
  padding:4px 7px;
  border-radius:999px;
  background:#fff;
  color:#536174;
  font-size:9px;
}
#resourcePlanningApp .machine-planning-category-counts i {
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border:1px solid #d7dee7;
  border-radius:50%;
  background:#fff;
  color:#273445;
  font-size:17px;
  font-style:normal;
}
#resourcePlanningApp .machine-planning-row {
  min-height:62px;
  display:grid;
  grid-template-columns:300px minmax(0,1fr) 44px;
  align-items:stretch;
  border-top:1px solid #edf0f4;
  background:#fff;
}
#resourcePlanningApp .machine-planning-row.selected { background:#fff8f8; }
#resourcePlanningApp .machine-planning-summary {
  min-width:0;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  gap:2px 9px;
  padding:7px 10px 7px 12px;
  border:0;
  border-right:1px solid #e2e7ed;
  background:transparent;
  color:#273445;
  cursor:pointer;
  text-align:left;
}
#resourcePlanningApp .machine-planning-thumb {
  grid-row:1 / 3;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #dce2e9;
  border-radius:7px;
  background:#f1f4f7;
  color:#6b7787;
}
#resourcePlanningApp .machine-planning-thumb img { width:100%; height:100%; object-fit:cover; }
#resourcePlanningApp .machine-planning-thumb svg { width:28px; height:28px; fill:currentColor; stroke:none; }
#resourcePlanningApp .machine-planning-name { min-width:0; display:block; }
#resourcePlanningApp .machine-planning-name strong,
#resourcePlanningApp .machine-planning-name small { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#resourcePlanningApp .machine-planning-name strong { color:#17202b; font-size:12px; }
#resourcePlanningApp .machine-planning-name small { margin-top:2px; color:#758192; font-size:9px; }
#resourcePlanningApp .machine-planning-state,
#resourcePlanningApp .machine-planning-service {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:3px 7px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
}
#resourcePlanningApp .machine-planning-state.free { background:#e7f7ef; color:#137a50; }
#resourcePlanningApp .machine-planning-state.planned { background:#e9f0fc; color:#245aa8; }
#resourcePlanningApp .machine-planning-state.conflict { background:#fdebed; color:#b21820; }
#resourcePlanningApp .machine-planning-service { grid-column:2 / 4; justify-self:start; background:#eef1f4; color:#667386; }
#resourcePlanningApp .machine-planning-service.warn { background:#fff3dc; color:#9a6100; }
#resourcePlanningApp .machine-planning-service.bad { background:#fdebed; color:#b21820; }
#resourcePlanningApp .machine-planning-service.ok { background:#e7f7ef; color:#137a50; }
#resourcePlanningApp .machine-planning-timeline {
  position:relative;
  min-width:0;
  min-height:61px;
  background-color:#fff;
  background-image:linear-gradient(to right,#e9edf2 1px,transparent 1px);
  background-size:calc(100% / var(--machine-slot-count)) 100%;
}
#resourcePlanningApp .machine-planning-assignment {
  position:absolute;
  top:14px;
  min-width:16px;
  height:32px;
  padding:0 8px;
  overflow:hidden;
  border:1px solid #9db9e4;
  border-radius:5px;
  background:#dbe8fa;
  color:#234f8e;
  cursor:pointer;
  text-align:left;
}
#resourcePlanningApp .machine-planning-assignment span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; font-weight:850; }
#resourcePlanningApp .machine-planning-assignment.resizable { padding-right:17px; padding-left:17px; }
#resourcePlanningApp .machine-planning-assignment .machine-planning-resize-handle {
  position:absolute;
  top:3px;
  bottom:3px;
  z-index:2;
  width:12px;
  display:block;
  overflow:visible;
  border-radius:3px;
  background:rgba(15,23,42,.2);
  opacity:.58;
  cursor:ew-resize;
  touch-action:none;
}
#resourcePlanningApp .machine-planning-assignment .machine-planning-resize-handle:hover { opacity:.9; background:rgba(15,23,42,.32); }
#resourcePlanningApp .machine-planning-assignment .machine-planning-resize-handle.start { left:3px; }
#resourcePlanningApp .machine-planning-assignment .machine-planning-resize-handle.end { right:3px; }
#resourcePlanningApp .machine-planning-assignment.resizing {
  z-index:8;
  border-color:#25354a;
  box-shadow:0 5px 14px rgba(15,23,42,.2);
  cursor:ew-resize;
}
#resourcePlanningApp .machine-planning-assignment.saving { opacity:.58; cursor:wait; }
body.machine-planning-resize-active { cursor:ew-resize; user-select:none; }
#resourcePlanningApp .machine-planning-assignment.site-manager-mt { border-color:#83c99f; background:#dcf5e5; color:#16633a; }
#resourcePlanningApp .machine-planning-assignment.site-manager-mb { border-color:#9ab7e7; background:#e0eafd; color:#244f92; }
#resourcePlanningApp .machine-planning-assignment.site-manager-pg { border-color:#e5b46f; background:#fcebd3; color:#8a5108; }
#resourcePlanningApp .machine-planning-assignment.conflict { border:2px solid #d71920; background:#fdebed; color:#9f151b; }
#resourcePlanningApp .machine-planning-row-add {
  width:30px;
  height:30px;
  align-self:center;
  justify-self:center;
  display:grid;
  place-items:center;
  border:1px solid #d6dde6;
  border-radius:50%;
  background:#fff;
  color:#263446;
  font-size:19px;
  font-weight:700;
  cursor:pointer;
}
#resourcePlanningApp .machine-planning-row-add:hover { border-color:#d71920; color:#b4151b; }
#resourcePlanningApp .machine-planning-mobile-assignment { display:none; }
#resourcePlanningApp .machine-planning-empty {
  display:grid;
  justify-items:center;
  gap:4px;
  padding:38px 18px;
  color:#778496;
  text-align:center;
}
#resourcePlanningApp .machine-planning-empty strong { color:#263446; }
#resourcePlanningApp .machine-planning-detail {
  position:sticky;
  top:92px;
  overflow:hidden;
}
#resourcePlanningApp .machine-planning-detail-head {
  display:grid;
  grid-template-columns:62px minmax(0,1fr) 32px;
  align-items:center;
  gap:10px;
  padding:12px;
  border-bottom:1px solid #e3e8ee;
}
#resourcePlanningApp .machine-planning-detail-photo {
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #dce2e9;
  border-radius:8px;
  background:#f1f4f7;
  color:#667386;
}
#resourcePlanningApp .machine-planning-detail-photo img { width:100%; height:100%; object-fit:cover; }
#resourcePlanningApp .machine-planning-detail-photo svg { width:40px; height:40px; fill:currentColor; stroke:none; }
#resourcePlanningApp .machine-planning-detail-head span { color:#748092; font-size:9px; font-weight:850; text-transform:uppercase; }
#resourcePlanningApp .machine-planning-detail-head h3 { margin:3px 0 0; color:#15202c; font-size:16px; overflow-wrap:anywhere; }
#resourcePlanningApp .machine-planning-detail-head > button {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid #d7dee7;
  border-radius:50%;
  background:#fff;
  color:#364356;
  font-size:20px;
  cursor:pointer;
}
#resourcePlanningApp .machine-planning-detail-status { display:flex; flex-wrap:wrap; gap:6px; padding:10px 12px 0; }
#resourcePlanningApp .machine-planning-detail-status .machine-planning-service { grid-column:auto; }
#resourcePlanningApp .machine-planning-detail-kv { margin:0; padding:10px 12px; }
#resourcePlanningApp .machine-planning-detail-kv div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:8px; padding:7px 0; border-bottom:1px solid #edf0f3; }
#resourcePlanningApp .machine-planning-detail-kv dt { color:#758192; font-size:10px; }
#resourcePlanningApp .machine-planning-detail-kv dd { margin:0; color:#243143; font-size:10px; font-weight:800; overflow-wrap:anywhere; }
#resourcePlanningApp .machine-planning-detail-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:0 12px 12px; }
#resourcePlanningApp .machine-planning-detail-actions .btn { min-height:38px; padding:7px 8px; font-size:10px; }
#resourcePlanningApp .machine-planning-detail-section { border-top:1px solid #e3e8ee; padding:11px 12px 13px; }
#resourcePlanningApp .machine-planning-detail-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:7px; }
#resourcePlanningApp .machine-planning-detail-section-head strong { font-size:12px; }
#resourcePlanningApp .machine-planning-detail-section-head span { color:#768294; font-size:10px; }
#resourcePlanningApp .machine-planning-detail-assignment {
  width:100%;
  display:grid;
  gap:3px;
  padding:8px 0;
  border:0;
  border-bottom:1px solid #edf0f3;
  background:transparent;
  color:#263446;
  cursor:pointer;
  text-align:left;
}
#resourcePlanningApp .machine-planning-detail-assignment strong { font-size:10px; }
#resourcePlanningApp .machine-planning-detail-assignment span,
#resourcePlanningApp .machine-planning-detail-empty { color:#758192; font-size:9px; }

@media (max-width:1450px) and (min-width:721px) {
  #resourcePlanningApp .machine-planning-controls { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #resourcePlanningApp .machine-planning-create { min-height:40px; }
  #resourcePlanningApp .machine-planning-axis,
  #resourcePlanningApp .machine-planning-row { grid-template-columns:250px minmax(0,1fr) 42px; }
  #resourcePlanningApp .machine-planning-layout.has-detail { grid-template-columns:minmax(0,1fr) 300px; }
}

@media (max-width:720px) {
  #resourcePlanningApp.machine-planning-mode .resource-planning-site-view { display:none !important; }
  #resourcePlanningApp .resource-planning-modebar { margin:0 0 8px; padding:0 2px; }
  #resourcePlanningApp .resource-planning-mode-switch { width:100%; min-width:0; }
  #resourcePlanningApp .resource-planning-mode-switch button { min-height:40px; padding:7px 8px; }
  #resourcePlanningApp .machine-planning-commandbar { padding:10px; }
  #resourcePlanningApp .machine-planning-controls { grid-template-columns:1fr 1fr; gap:8px; }
  #resourcePlanningApp .machine-planning-controls > div:nth-child(1),
  #resourcePlanningApp .machine-planning-controls > div:nth-child(2) { grid-column:1 / -1; }
  #resourcePlanningApp .machine-planning-filter-toggle { display:block; grid-column:1; }
  #resourcePlanningApp .machine-planning-create { grid-column:2; }
  #resourcePlanningApp .machine-planning-filter-field { display:none; }
  #resourcePlanningApp.machine-planning-filters-open .machine-planning-filter-field { display:block; }
  #resourcePlanningApp.machine-planning-filters-open .machine-planning-search-field { grid-column:1 / -1; }
  #resourcePlanningApp .machine-planning-controls label { font-size:9px; }
  #resourcePlanningApp .machine-planning-kpis {
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding:1px 1px 3px;
    scrollbar-width:none;
  }
  #resourcePlanningApp .machine-planning-kpis::-webkit-scrollbar { display:none; }
  #resourcePlanningApp .machine-planning-kpi { min-width:104px; min-height:55px; padding:8px 10px; }
  #resourcePlanningApp .machine-planning-kpi span { font-size:9px; }
  #resourcePlanningApp .machine-planning-kpi strong { font-size:20px; }
  #resourcePlanningApp .machine-planning-alerts { display:grid; grid-template-columns:1fr; }
  #resourcePlanningApp .machine-planning-alerts button { width:100%; justify-content:space-between; }
  #resourcePlanningApp .machine-planning-layout,
  #resourcePlanningApp .machine-planning-layout.has-detail { display:block; }
  #resourcePlanningApp .machine-planning-board { border-radius:8px; }
  #resourcePlanningApp .machine-planning-board-head { min-height:52px; padding:9px 11px; }
  #resourcePlanningApp .machine-planning-board-head h2 { font-size:17px; }
  #resourcePlanningApp .machine-planning-axis { display:none; }
  #resourcePlanningApp .machine-planning-category-head { min-height:50px; padding:8px 10px; }
  #resourcePlanningApp .machine-planning-category-head > span:first-child { display:grid; gap:2px; }
  #resourcePlanningApp .machine-planning-category-counts b { padding:3px 6px; font-size:8px; }
  #resourcePlanningApp .machine-planning-row {
    min-height:0;
    grid-template-columns:minmax(0,1fr) 42px;
    padding:0;
  }
  #resourcePlanningApp .machine-planning-summary {
    grid-column:1;
    min-height:68px;
    grid-template-columns:46px minmax(0,1fr) auto;
    padding:8px 7px 8px 10px;
    border-right:0;
  }
  #resourcePlanningApp .machine-planning-thumb { width:46px; height:46px; }
  #resourcePlanningApp .machine-planning-name strong { font-size:12px; }
  #resourcePlanningApp .machine-planning-state,
  #resourcePlanningApp .machine-planning-service { font-size:8px; }
  #resourcePlanningApp .machine-planning-timeline { display:none; }
  #resourcePlanningApp .machine-planning-mobile-assignment {
    grid-column:1 / -1;
    display:grid;
    gap:2px;
    width:auto;
    min-height:42px;
    margin:0 9px 9px;
    padding:7px 9px;
    border:1px solid #e0e5eb;
    border-radius:6px;
    background:#f7f9fb;
    color:#304055;
    text-align:left;
  }
  #resourcePlanningApp button.machine-planning-mobile-assignment { cursor:pointer; }
  #resourcePlanningApp .machine-planning-mobile-assignment.free { color:#16794f; background:#eef9f3; border-color:#cceadb; font-size:9px; font-weight:800; }
  #resourcePlanningApp .machine-planning-mobile-assignment.free { display:none; }
  #resourcePlanningApp .machine-planning-mobile-assignment strong { font-size:10px; overflow-wrap:anywhere; }
  #resourcePlanningApp .machine-planning-mobile-assignment span { color:#748092; font-size:9px; }
  #resourcePlanningApp .machine-planning-row-add { grid-column:2; grid-row:1; }
  #resourcePlanningApp .machine-planning-detail {
    position:fixed;
    inset:0;
    z-index:11040;
    display:block;
    overflow-y:auto;
    border:0;
    border-radius:0;
    background:#f7f8fa;
    padding-bottom:24px;
  }
  #resourcePlanningApp .machine-planning-detail[hidden] { display:none !important; }
  #resourcePlanningApp .machine-planning-detail-head,
  #resourcePlanningApp .machine-planning-detail-status,
  #resourcePlanningApp .machine-planning-detail-kv,
  #resourcePlanningApp .machine-planning-detail-actions,
  #resourcePlanningApp .machine-planning-detail-section { background:#fff; }
  #resourcePlanningApp .machine-planning-detail-head { position:sticky; top:0; z-index:1; }
  #resourcePlanningApp .machine-planning-detail-actions { grid-template-columns:1fr; }
  body.machine-planning-detail-open { overflow:hidden; }
  body.machine-planning-detail-open #mobileAppNav { display:none !important; }
}
