/* Zeitkommando V120 – konsolidierte UI-Grundlage
   Gemeinsame Marken-, Portal-, Auth- und Dokumenttokens.
   Portal-Premiumregeln liegen in portal-page-polish-v119.css, Plattformregeln
   ausschliesslich in platform-modern-v117.css. Reine Darstellung – keine Fachlogik. */

:root{
  /* V120.3 – verbindliche Zeitkommando-Markenpalette */
  --zk-cyan:#00B2FF;
  --zk-blue:#0060FF;
  --zk-night:#0A1A4A;
  --zk-light:#E8EEF6;
  --zk-blue-strong:#004ED6;
  --zk-blue-deep:var(--zk-night);
  --zk-blue-soft:#F0F7FF;
  --zk-blue-line:#CFE6FF;
  --zk-ink:#10213a;
  --zk-muted:#65758f;
  --zk-muted-2:#8492a8;
  --zk-line:#dfe7f1;
  --zk-surface:#ffffff;
  --zk-surface-soft:#f7faff;
  --zk-bg:#f4f7fb;
  --zk-green:#078454;
  --zk-green-soft:#e9fbf2;
  --zk-green-line:#c9f1dd;
  --zk-red:#b42318;
  --zk-red-soft:#fff0ef;
  --zk-amber:#9b5a00;
  --zk-amber-soft:#fff7e8;
  --zk-radius:20px;
  --zk-radius-sm:12px;
  --zk-shadow:0 18px 50px rgba(10,26,74,.075);
  --zk-shadow-soft:0 8px 24px rgba(10,26,74,.055);

  /* Kompatibilitäts-Aliase für ältere Portalregeln; zentral statt Einzelwerte. */
  --blue:var(--zk-blue);
  --blue2:var(--zk-light);
  --ink:var(--zk-ink);
  --muted:var(--zk-muted);
  --line:var(--zk-line);
  --bg:var(--zk-bg);
}

@media screen {
  /* =========================================================
     Grundflaeche / Typografie – exakt dieselbe Richtung wie Vertrag
     ========================================================= */
  html{background:#f2f6fb;}
  body.app-body,
  body.platform-body,
  body.auth,
  body.privacy-public,
  body.privacy-doc-body{
    margin:0;
    min-height:100vh;
    color:var(--zk-ink) !important;
    background:
      radial-gradient(circle at 72% -15%,rgba(0,96,255,.08),transparent 36rem),
      linear-gradient(180deg,#f8fbff 0%,#f2f6fb 100%) !important;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  }
  body.app-body *,body.platform-body *,body.auth *,body.privacy-public *,body.privacy-doc-body *{box-sizing:border-box;}
  body.app-body h1,body.platform-body h1,body.auth h1,body.privacy-public h1,body.privacy-doc-body h1,
  body.app-body h2,body.platform-body h2,body.auth h2,body.privacy-public h2,body.privacy-doc-body h2{
    color:var(--zk-ink);
    letter-spacing:-.035em;
  }
  body.app-body p,body.platform-body p,body.auth p,body.privacy-public p,body.privacy-doc-body p{color:var(--zk-muted);}
  body.app-body a,body.platform-body a,body.auth a{transition:color .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease;}

  /* =========================================================
     V120 – konsolidierte Firmenportal-Grundlage
     Die Navigation bleibt die visuelle Referenz. Seiten, Formulare und
     Arbeitsflaechen verwenden dieselbe kompakte Business-SaaS-Sprache.
     ========================================================= */
  .app-body .app-layout{display:block;min-height:100vh;}
  .app-body .sidebar{
    position:sticky;top:0;z-index:45;width:100%;height:auto;min-height:0;
    display:grid;grid-template-columns:auto minmax(180px,1fr) auto;
    grid-template-areas:"brand tenant footer" "nav nav nav";align-items:center;gap:8px 20px;
    padding:10px max(20px,calc((100vw - 1360px)/2)) 0;border:0;border-bottom:1px solid #e1e7ef;
    background:rgba(255,255,255,.97);box-shadow:0 4px 16px rgba(15,35,62,.035);backdrop-filter:blur(16px);overflow:visible;
  }
  .app-body .sidebar-brand{grid-area:brand;display:flex;align-items:center;gap:9px;margin:0;padding:0;min-width:168px;}
  .app-body .sidebar-brand>span,.app-body .sidebar-company-logo{
    width:34px;height:34px;flex:0 0 34px;border-radius:9px;border:1px solid #dbe7f5;background:var(--zk-blue);color:#fff;
    display:grid;place-items:center;box-shadow:none;object-fit:contain;font-weight:850;
  }
  .app-body .sidebar-company-logo{padding:4px;background:#fff;}
  .app-body .sidebar-brand>div{display:grid;gap:0;}
  .app-body .sidebar-brand strong{font-size:.86rem;font-weight:820;color:#10213a;}
  .app-body .sidebar-brand small{font-size:.58rem;color:#8492a8;letter-spacing:.08em;text-transform:uppercase;}
  .app-body .tenant-chip{
    grid-area:tenant;justify-self:start;display:flex;align-items:center;gap:8px;max-width:380px;margin:0;padding:5px 9px;
    border:1px solid #dce6f2;border-radius:9px;background:#f7f9fc;box-shadow:none;
  }
  .app-body .tenant-logo{width:25px;height:25px;flex:0 0 25px;border-radius:7px;border:1px solid #dbe7f5;background:#fff;color:var(--zk-blue);display:grid;place-items:center;overflow:hidden;}
  .app-body .tenant-chip>div:last-child{display:grid;min-width:0;}
  .app-body .tenant-chip strong{font-size:.68rem;color:#29415e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .app-body .tenant-chip small{font-size:.58rem;color:#7b8a9e;white-space:nowrap;}
  .app-body .side-nav{
    grid-area:nav;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px;width:100%;margin:0;padding:6px 0 7px;
    border-top:1px solid #edf1f5;overflow:visible;scrollbar-width:none;
  }
  .app-body .side-nav::-webkit-scrollbar{display:none;}
  .app-body .side-nav>.portal-nav-link,.app-body .side-nav>.portal-nav-group>summary{
    min-height:32px;padding:5px 8px;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:8px;
    background:transparent;color:#4d6078;box-shadow:none;font-size:10px;font-weight:770;line-height:1.1;white-space:nowrap;cursor:pointer;list-style:none;text-decoration:none;
  }
  .app-body .side-nav>.portal-nav-link::after{display:none;}
  .app-body .side-nav>.portal-nav-group{position:relative;flex:0 0 auto;margin:0;padding:0;}
  .app-body .side-nav>.portal-nav-group>summary::-webkit-details-marker{display:none;}
  .app-body .side-nav>.portal-nav-link i,.app-body .side-nav>.portal-nav-group>summary i,.app-body .portal-nav-submenu a i{
    width:13px;min-width:13px;display:block;border:0;background:transparent;color:#74859a;font-size:10px;font-style:normal;line-height:1;text-align:center;
  }
  .app-body .side-nav>.portal-nav-link:hover,.app-body .side-nav>.portal-nav-link.active,
  .app-body .side-nav>.portal-nav-group>summary:hover,.app-body .side-nav>.portal-nav-group.active>summary,.app-body .side-nav>.portal-nav-group[open]>summary{
    background:#eef5ff;border-color:#d8e7fb;color:#0c5fc8;
  }
  .app-body .side-nav>.portal-nav-group>summary b{margin-left:1px;color:#93a0b1;font-size:8px;transition:transform .15s ease;}
  .app-body .side-nav>.portal-nav-group[open]>summary b{transform:rotate(180deg);}
  .app-body .portal-nav-submenu{
    position:absolute;z-index:95;top:calc(100% + 5px);left:50%;transform:translateX(-50%);width:max-content;min-width:190px;max-width:240px;
    padding:5px;border:1px solid #dce4ee;border-radius:10px;background:#fff;box-shadow:0 14px 32px rgba(18,42,75,.13);display:grid;gap:2px;
  }
  .app-body .portal-nav-submenu a{
    min-height:30px;padding:5px 8px;display:flex;align-items:center;justify-content:flex-start;gap:7px;border-radius:7px;background:transparent;color:#43566e;
    font-size:10px;font-weight:720;line-height:1.2;white-space:normal;text-decoration:none;
  }
  .app-body .portal-nav-submenu a:hover,.app-body .portal-nav-submenu a.active{background:#eef5ff;color:#0c5fc8;}
  .app-body .portal-nav-submenu .portal-nav-grandchild{padding-left:20px;font-size:9.5px;color:#61738a;}
  .app-body .sidebar-footer{grid-area:footer;display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:0;padding:0;}
  .app-body .mini-profile{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:8px;text-decoration:none;}
  .app-body .mini-profile:hover{background:#f6f8fb;}
  .app-body .mini-profile>span{width:30px;height:30px;border-radius:8px;background:#eef5ff;color:var(--zk-blue);border:1px solid #d9e7f8;display:grid;place-items:center;overflow:hidden;}
  .app-body .mini-profile strong{font-size:.67rem;color:#223a56;}
  .app-body .mini-profile small{font-size:.56rem;color:#7b899a;}
  .app-body .portal-quick-action{min-height:32px;padding:0 8px;border-radius:8px;}
  .app-body .logout-button{margin:0;padding:7px 9px;border:1px solid #e1e7ef;border-radius:8px;background:#fff;color:#64748b;font-size:.68rem;font-weight:720;cursor:pointer;}
  .app-body .logout-button:hover{background:#f7f9fc;border-color:#ced9e6;color:var(--zk-blue);}
  .app-body .sidebar-legal-link{display:none;}
  .app-body .workspace{margin-left:0;min-width:0;background:transparent;}
  .app-body .topbar{display:none;}
  .app-body .content,.app-body .standalone-app-content{width:min(1360px,calc(100% - 40px));max-width:1360px;margin:0 auto;padding:24px 0 72px;}

  /* Shared controls used by portal, auth and platform. */
  .app-body .button,.app-body .primary-button,.platform-body .button,.auth .button{
    appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 13px;border:1px solid var(--zk-blue);border-radius:9px;
    background:var(--zk-blue);color:#fff;text-decoration:none;font:inherit;font-size:.76rem;font-weight:780;cursor:pointer;box-shadow:none;
  }
  .app-body .button:hover,.platform-body .button:hover,.auth .button:hover{background:var(--zk-blue-strong);border-color:var(--zk-blue-strong);}
  .app-body .button.secondary,.platform-body .button.secondary,.auth .button.secondary{border-color:#d5dfe9;background:#fff;color:#34465c;}
  .app-body .button.secondary:hover,.platform-body .button.secondary:hover,.auth .button.secondary:hover{background:#f7f9fc;border-color:#c3cfdd;}
  .app-body .button.danger,.platform-body .button.danger,.auth .button.danger{border-color:#f0c5c1;background:#fff6f5;color:#a52d25;}
  .app-body .compact-button,.platform-body .compact-button{min-height:32px;padding:0 10px;border-radius:8px;font-size:.7rem;}
  .app-body input:not([type="checkbox"]):not([type="radio"]),.app-body select,.app-body textarea,
  .platform-body input:not([type="checkbox"]):not([type="radio"]),.platform-body select,.platform-body textarea,
  .auth input:not([type="checkbox"]):not([type="radio"]),.auth select,.auth textarea{
    width:100%;min-height:40px;padding:8px 10px;border:1px solid #d2dbe6;border-radius:9px;background:#fff;color:#172b43;outline:none;box-shadow:none;
  }
  .app-body textarea,.platform-body textarea,.auth textarea{min-height:96px;resize:vertical;}
  .app-body input:focus,.app-body select:focus,.app-body textarea:focus,.platform-body input:focus,.platform-body select:focus,.platform-body textarea:focus,.auth input:focus,.auth select:focus,.auth textarea:focus{
    border-color:#82aee8;box-shadow:0 0 0 3px rgba(0,96,255,.09);
  }
  .app-body label,.platform-body label,.auth label{color:#34465c;font-weight:700;}

  .app-body .mobile-appbar,.app-body .mobile-bottom-nav{display:none;}
  @media(max-width:900px){
    .app-body .mobile-appbar{position:fixed;inset:0 0 auto 0;z-index:100;height:52px;padding:0 10px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #dce5ef;background:rgba(255,255,255,.98);box-shadow:0 4px 14px rgba(20,45,78,.05);backdrop-filter:blur(12px);}
    .app-body .mobile-app-brand{min-width:0;display:inline-flex;align-items:center;gap:7px;color:#17345d;text-decoration:none;font-size:11px;font-weight:820;}
    .app-body .mobile-app-brand>span{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:#eef5ff;color:var(--zk-blue);font-size:12px;}
    .app-body .mobile-menu{position:static;width:34px;height:34px;padding:0;border:1px solid #d7e5f7;border-radius:8px;background:#eef5ff;color:var(--zk-blue);box-shadow:none;font-size:15px;}
    .app-body .sidebar{position:fixed;top:52px;left:0;bottom:0;width:min(330px,92vw);height:calc(100dvh - 52px);z-index:90;display:flex;flex-direction:column;gap:0;padding:14px;background:#fff;transform:translateX(-105%);transition:transform .2s ease;overflow-y:auto;box-shadow:14px 0 36px rgba(20,45,78,.14);}
    .app-body .sidebar.open{transform:translateX(0);}
    .app-body .sidebar-brand{min-width:0;padding:0 2px 12px;border-bottom:1px solid #edf1f5;}
    .app-body .tenant-chip{width:100%;max-width:none;margin:12px 0;}
    .app-body .side-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:0;border:0;overflow:visible;}
    .app-body .side-nav>.portal-nav-link,.app-body .side-nav>.portal-nav-group{width:100%;min-width:0;}
    .app-body .side-nav>.portal-nav-link,.app-body .side-nav>.portal-nav-group>summary{width:100%;min-height:36px;justify-content:space-between;text-align:left;white-space:normal;}
    .app-body .side-nav>.portal-nav-group[open]{grid-column:1/-1;}
    .app-body .portal-nav-submenu{position:static;transform:none;width:100%;min-width:0;max-width:none;margin-top:4px;box-shadow:none;}
    .app-body .sidebar-footer{display:grid;grid-template-columns:1fr;justify-items:stretch;gap:7px;margin-top:auto;padding-top:12px;border-top:1px solid #edf1f5;}
    .app-body .mini-profile,.app-body .portal-quick-action{width:100%;justify-content:flex-start;}
    .app-body .logout-button{width:100%;}
    .app-body .mobile-bottom-nav{position:fixed;inset:auto 0 0 0;z-index:80;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:5px 8px calc(5px + env(safe-area-inset-bottom));border-top:1px solid #dce5ef;background:rgba(255,255,255,.98);box-shadow:0 -5px 16px rgba(20,45,78,.06);backdrop-filter:blur(12px);}
    .app-body .mobile-bottom-nav>a,.app-body .mobile-bottom-nav>button{appearance:none;min-width:0;min-height:44px;margin:0;padding:4px 3px;display:grid;grid-template-rows:17px auto;place-items:center;gap:2px;border:1px solid transparent;border-radius:8px;background:transparent;color:#68798f;font:inherit;font-size:9px;font-weight:740;text-align:center;text-decoration:none;}
    .app-body .mobile-bottom-nav>a i,.app-body .mobile-bottom-nav>button i{font-style:normal;font-size:14px;line-height:17px;color:#74849a;}
    .app-body .mobile-bottom-nav>a.active,.app-body .mobile-bottom-nav>button.active{border-color:#d7e5f7;background:#eef5ff;color:#0c5fc8;}
    .app-body .content,.app-body .standalone-app-content{width:calc(100% - 24px);padding-top:66px;padding-bottom:calc(74px + env(safe-area-inset-bottom));}
  }
  @media(max-width:480px){.app-body .side-nav{grid-template-columns:1fr;}.app-body .side-nav>.portal-nav-link i,.app-body .side-nav>.portal-nav-group>summary i{display:none;}}
  /* =========================================================
     Login / 2FA / Update / Installer – gleiche offene Kartenoptik
     ========================================================= */
  body.auth{display:grid !important;place-items:center !important;padding:32px 16px !important;}
  body.auth .login,
  body.auth .card.login,
  body.auth .platform-login{
    width:min(520px,100%) !important;max-width:520px !important;
    margin:0 auto !important;padding:30px !important;
    border:1px solid #dfe7f1 !important;border-radius:24px !important;background:rgba(255,255,255,.98) !important;box-shadow:0 26px 80px rgba(20,48,82,.13) !important;
  }
  body.auth .brand{display:flex !important;align-items:center !important;gap:12px !important;margin-bottom:22px !important;}
  body.auth .brand>span{width:48px !important;height:48px !important;display:grid !important;place-items:center !important;border-radius:14px !important;background:linear-gradient(145deg,#1680ff,#0b64dc) !important;color:#fff !important;font-weight:850 !important;box-shadow:0 9px 22px rgba(0,96,255,.20) !important;}
  body.auth .brand strong{font-size:1.05rem !important;color:var(--zk-ink) !important;}
  body.auth .eyebrow{margin:0 0 13px !important;color:var(--zk-blue) !important;font-size:.75rem !important;font-weight:850 !important;letter-spacing:.12em !important;text-transform:uppercase !important;}
  body.auth h1{margin:0 0 12px !important;font-size:clamp(2rem,7vw,2.8rem) !important;line-height:1.05 !important;font-weight:830 !important;letter-spacing:-.045em !important;}
  body.auth form{display:grid !important;gap:14px !important;}
  body.auth form label{display:grid !important;gap:7px !important;}

  /* Datenschutz / Dokumentseiten */
  .privacy-public .privacy-shell,.privacy-doc-body .privacy-shell{width:min(1040px,calc(100% - 40px)) !important;margin:0 auto !important;padding:42px 0 72px !important;}
  .privacy-public .privacy-top,.privacy-doc-body .privacy-top{padding:0 0 24px !important;margin-bottom:24px !important;border-bottom:1px solid #dfe7f1 !important;}
  .privacy-public .privacy-card,.privacy-doc-body .privacy-card{padding:24px !important;border:1px solid #dfe7f1 !important;border-radius:20px !important;background:#fff !important;box-shadow:var(--zk-shadow) !important;}

  /* Plattform-Responsive wird ausschliesslich in platform-modern-v117.css gepflegt. */
}

@media screen {
  .app-body .portal-quick-action{
    position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;
    min-height:38px;padding:0 10px;border:1px solid #e1e8f1;border-radius:11px;background:#fff;color:#5f718b;
    text-decoration:none;font-size:.72rem;font-weight:760;box-shadow:none;
  }
  .app-body .portal-quick-action:hover,.app-body .portal-quick-action.active{border-color:#cfe0f5;background:#edf6ff;color:var(--zk-blue);}
  .app-body .portal-quick-action b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--zk-red);color:#fff;font-size:.6rem;}
  @media(max-width:900px){
    .app-body .portal-quick-action{width:100%;justify-content:flex-start;min-height:42px;padding:0 12px;}
  }
}

/* Arbeitszeitnachweis: Signaturfelder werden bewusst per Klick aktiviert. */
.signature-pad-locked canvas{pointer-events:none;opacity:.35}.signature-pad-open canvas{pointer-events:auto;opacity:1}.work-record-web-signatures [data-signature-open]{margin:8px 0}

/* V117.14 – kompakte Formularausnahmen + Berechtigungsverwaltung */
.app-body input[type="checkbox"],
.app-body input[type="radio"],
.platform-body input[type="checkbox"],
.platform-body input[type="radio"],
.auth input[type="checkbox"],
.auth input[type="radio"]{
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  margin:0 !important;
  flex:0 0 18px !important;
  box-shadow:none !important;
  accent-color:var(--zk-blue) !important;
}
.app-body input[type="radio"],
.platform-body input[type="radio"],
.auth input[type="radio"]{border-radius:50% !important;}

.permission-admin-panel .permission-role-content{padding:18px 20px !important;}
.permission-admin-panel .permission-role-content form{gap:18px !important;}
.permission-admin-panel .permission-scope-box{
  grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr) !important;
  gap:18px !important;
  align-items:stretch !important;
  padding:16px 18px !important;
  border-radius:14px !important;
}
.permission-admin-panel .permission-scope-box>div:first-child{
  align-content:start !important;
  gap:5px !important;
  padding:3px 0 !important;
}
.permission-admin-panel .permission-scope-box>div:first-child>strong{font-size:.86rem !important;}
.permission-admin-panel .permission-scope-box>div:first-child>small{font-size:.72rem !important;line-height:1.5 !important;}
.permission-admin-panel .permission-scope-options{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
}
.permission-admin-panel .permission-scope-options label{
  display:grid !important;
  grid-template-columns:20px minmax(0,1fr) !important;
  align-items:start !important;
  align-content:start !important;
  gap:10px !important;
  min-width:0 !important;
  min-height:78px !important;
  padding:14px !important;
  margin:0 !important;
}
.permission-admin-panel .permission-scope-options label>input{
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  margin:2px 0 0 !important;
}
.permission-admin-panel .permission-scope-options label>span{min-width:0 !important;gap:3px !important;}
.permission-admin-panel .permission-scope-options strong{font-size:.79rem !important;line-height:1.25 !important;}
.permission-admin-panel .permission-scope-options small{font-size:.69rem !important;line-height:1.42 !important;overflow-wrap:anywhere !important;}

.permission-admin-panel .permission-page-rights>h3{
  margin:0 0 8px !important;
  font-size:.9rem !important;
}
.permission-admin-panel .permission-page-rights>h4{
  margin:16px 0 8px !important;
  font-size:.68rem !important;
  letter-spacing:.08em !important;
  color:#64748b !important;
}
.permission-admin-panel .permission-page-rights .permission-check-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
}
.permission-admin-panel .permission-page-rights .permission-check{
  display:grid !important;
  grid-template-columns:20px minmax(0,1fr) !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;
  min-height:52px !important;
  margin:0 !important;
  padding:10px 12px !important;
  border:1px solid #dce6f2 !important;
  border-radius:12px !important;
  background:#f8fbff !important;
  cursor:pointer !important;
}
.permission-admin-panel .permission-page-rights .permission-check:hover{
  border-color:#b9d3f4 !important;
  background:#f2f7ff !important;
}
.permission-admin-panel .permission-page-rights .permission-check>input{
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  margin:0 !important;
}
.permission-admin-panel .permission-page-rights .permission-check>span{
  min-width:0 !important;
  font-size:.76rem !important;
  font-weight:720 !important;
  line-height:1.35 !important;
  overflow-wrap:anywhere !important;
}
.permission-admin-panel .permission-save-button{min-width:210px !important;}

@media(max-width:1180px){
  .permission-admin-panel .permission-page-rights .permission-check-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:820px){
  .permission-admin-panel .permission-scope-box{grid-template-columns:1fr !important;}
}
@media(max-width:640px){
  .permission-admin-panel .permission-role-content{padding:14px !important;}
  .permission-admin-panel .permission-scope-options,
  .permission-admin-panel .permission-page-rights .permission-check-grid{grid-template-columns:1fr !important;}
  .permission-admin-panel .permission-save-button{width:100% !important;min-width:0 !important;}
}


/* V120.1 compact-navigation release contract: keep the premium menu scale aligned with canonical release checks. */
@media screen {
  .app-body .side-nav>.portal-nav-link,
  .app-body .side-nav>.portal-nav-group>summary{min-height:34px!important;font-size:10px!important}
  .app-body .portal-nav-submenu a{min-height:30px!important;font-size:10px!important}
  .app-body .company-subnav a,
  .app-body .section-subnav a{min-height:32px!important;font-size:10px!important}
  .contract-page .subnav a{min-height:32px!important;font-size:10px!important}
}
.app-body .mobile-appbar,
.app-body .mobile-bottom-nav{display:none!important}
@media(max-width:900px){
  .app-body .mobile-bottom-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;min-height:46px!important}
  .app-body .mobile-bottom-nav>a,
  .app-body .mobile-bottom-nav>button{min-height:46px!important}
}

/* Print must never include mobile portal chrome. */
@media print{
  .app-body .mobile-appbar,
  .app-body .mobile-bottom-nav{display:none!important}
}


/* V120.3 – Vorfallsberichte als dynamischer Arbeitsbereich. */
@media screen {
  .app-body .incident-live-filters{
    display:grid;grid-template-columns:minmax(220px,2fr) repeat(5,minmax(130px,1fr));
    gap:8px;align-items:end;margin:12px 0 14px;padding:12px;
    border:1px solid var(--zk-line);border-radius:12px;background:var(--zk-surface-soft);
  }
  .app-body .incident-live-filters label{display:grid;gap:5px;font-size:.68rem;color:var(--zk-muted);}
  .app-body .incident-live-filters input,.app-body .incident-live-filters select{min-height:36px;}
  .app-body .incident-report-card[data-incident-card]{cursor:pointer;}
  .app-body .incident-report-card[data-incident-card]:focus-visible{
    outline:3px solid color-mix(in srgb,var(--zk-cyan) 48%,transparent);outline-offset:3px;
  }
  .app-body .incident-report-card[hidden]{display:none!important;}
  .app-body .incident-filter-empty{margin-top:10px;}
  @media(max-width:1100px){
    .app-body .incident-live-filters{grid-template-columns:repeat(3,minmax(0,1fr));}
    .app-body .incident-filter-search{grid-column:span 3;}
  }
  @media(max-width:640px){
    .app-body .incident-live-filters{grid-template-columns:1fr 1fr;padding:10px;}
    .app-body .incident-filter-search{grid-column:1/-1;}
  }
}


/* V120.3 – Objekt und Einsatzname bleiben in allen Kalenderansichten sofort erkennbar. */
@media screen {
  .app-body .calendar-event-title,
  .app-body .calendar-list-title,
  .app-body .weekly-shift-title{
    display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    color:var(--zk-muted);font-size:.68rem;line-height:1.3;font-weight:650;
  }
  .app-body .calendar-event-title{margin-top:2px;}
  .app-body .calendar-list-title{margin-top:1px;}
  .app-body .weekly-shift-title{margin-top:1px;}
  @media(max-width:520px){
    .app-body .calendar-event-title,.app-body .calendar-list-title,.app-body .weekly-shift-title{white-space:normal;}
  }
}


/* V120.3 – Stempeluhr: Marke und fachliche Statusfarben klar trennen. */
@media screen {
  .app-body .clock-only>strong[data-live-clock]{color:var(--zk-night);}
  .app-body .clock-only .clock-state{color:var(--zk-muted);}
  .app-body .clock-only .clock-state.is-running{color:var(--zk-green);}
  .app-body .clock-only .clock-state.is-paused{color:var(--zk-amber);}
  .app-body .clock-only .clock-state.is-stopped{color:var(--zk-muted);}
  .app-body .clock-only .clock-button:not(.secondary):not(.danger){
    background:var(--zk-blue);border-color:var(--zk-blue);color:#fff;
  }
  .app-body .clock-actions .clock-button.danger{
    background:var(--zk-red);border-color:var(--zk-red);color:#fff;
  }
  .app-body .clock-actions .pause-button{
    background:var(--zk-light);border-color:var(--zk-blue-line);color:var(--zk-blue);
  }
  .app-body .clock-shift-context{
    border-color:var(--zk-line);background:var(--zk-surface);
  }
}


/* V120.3 – relevante Vorfallsmerkmale direkt in der Liste sichtbar. */
@media screen {
  .app-body .incident-report-flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
  .app-body .incident-report-flags .status{font-size:.64rem;}
}


/* V120.3 – Wachbuch als filterbarer Arbeitsbereich. */
@media screen {
  .app-body .watchbook-live-filters{
    display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(140px,1fr));
    gap:8px;align-items:end;margin:12px 0 14px;padding:12px;
    border:1px solid var(--zk-line);border-radius:12px;background:var(--zk-surface-soft);
  }
  .app-body .watchbook-live-filters label{display:grid;gap:5px;font-size:.68rem;color:var(--zk-muted);}
  .app-body .watchbook-live-filters input,.app-body .watchbook-live-filters select{min-height:36px;}
  .app-body .watchbook-entry-card[hidden]{display:none!important;}
  @media(max-width:1000px){
    .app-body .watchbook-live-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
    .app-body .watchbook-filter-search{grid-column:1/-1;}
  }
  @media(max-width:560px){
    .app-body .watchbook-live-filters{grid-template-columns:1fr;padding:10px;}
  }
}


/* V120.3 – Postfach als klarer Dokumentarbeitsbereich. */
@media screen {
  .app-body .mailbox-live-filters{
    display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto;
    gap:8px;align-items:end;margin:12px 0 14px;padding:12px;
    border:1px solid var(--zk-line);border-radius:12px;background:var(--zk-surface-soft);
  }
  .app-body .mailbox-live-filters label{display:grid;gap:5px;font-size:.68rem;color:var(--zk-muted);}
  .app-body .mailbox-live-filters input,.app-body .mailbox-live-filters select{min-height:36px;}
  .app-body .personnel-document-card[data-mailbox-card][hidden]{display:none!important;}
  .app-body .mailbox-filter-empty{margin-top:10px;}
  @media(max-width:680px){
    .app-body .mailbox-live-filters{grid-template-columns:1fr;}
    .app-body .mailbox-live-filters>.status{justify-self:start;}
  }
}


/* V120.3 – globaler sichtbarer Tastaturfokus. */
@media screen {
  :where(a,button,input,select,textarea,summary,[role="button"],[tabindex]:not([tabindex="-1"])):focus-visible{
    outline:3px solid color-mix(in srgb,var(--zk-cyan,#00B2FF) 52%,transparent);
    outline-offset:2px;
  }
}


/* V121: Firmen-Erstsetup – ruhiger, kompakter Wizard statt generischem Portalraster */
.app-body .company-setup-shell{
  width:min(1040px,100%);
  margin:0 auto;
}
.app-body .company-setup-heading{
  align-items:flex-end;
  gap:24px;
  margin-bottom:12px;
}
.app-body .company-setup-heading h1{max-width:760px;}
.app-body .company-setup-shell .panel{
  margin-top:14px;
  padding:20px 22px;
}
.app-body .company-setup-progress{
  padding:12px !important;
  background:#fff;
}
.app-body .setup-progress-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px;
}
.app-body .company-setup-step{
  min-width:0;
  min-height:66px;
  display:grid;
  align-content:center;
  gap:4px;
  padding:10px 11px;
  border:1px solid #e0e7f0;
  border-radius:11px;
  background:#f8fafc;
}
.app-body .company-setup-step small{
  margin:0;
  color:#8795a8;
  font-size:.6rem;
  font-weight:760;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.app-body .company-setup-step strong{
  min-width:0;
  color:#52657c;
  font-size:.72rem;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.app-body .company-setup-step.is-active{
  border-color:#b8d4f7;
  background:#edf5ff;
  box-shadow:inset 3px 0 0 #0c67d8;
}
.app-body .company-setup-step.is-active small,
.app-body .company-setup-step.is-active strong{color:#0c5fc8;}
.app-body .company-setup-step.is-done{
  border-color:#cfe5db;
  background:#f1faf6;
}
.app-body .company-setup-step.is-done small,
.app-body .company-setup-step.is-done strong{color:#267257;}
.app-body .company-setup-shell .grid{
  gap:4px 18px;
}
.app-body .company-setup-shell .grid>label{
  min-width:0;
  margin:8px 0;
}
.app-body .company-setup-shell .grid>label small{
  margin-top:2px;
  font-weight:520;
  line-height:1.42;
}
.app-body .company-setup-shell .section-actions{
  justify-content:flex-end;
  margin-top:16px;
}
.app-body .company-setup-shell .company-logo-card{
  max-width:none;
  grid-template-columns:112px minmax(0,1fr);
  gap:20px;
}
.app-body .company-setup-shell .company-logo-preview{
  width:104px;
  height:104px;
  border-radius:14px;
}
.app-body .company-setup-shell .company-logo-preview img{padding:8px;}
.app-body .company-setup-shell h2{margin-top:0;}
@media(max-width:900px){
  .app-body .setup-progress-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .app-body .company-setup-shell .company-logo-card{grid-template-columns:90px minmax(0,1fr);}
  .app-body .company-setup-shell .company-logo-preview{width:82px;height:82px;}
}
@media(max-width:640px){
  .app-body .company-setup-heading{align-items:flex-start;flex-direction:column;gap:8px;}
  .app-body .setup-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .app-body .company-setup-shell .panel{padding:16px;}
  .app-body .company-setup-shell .grid{grid-template-columns:1fr;}
  .app-body .company-setup-shell .section-actions{display:grid;justify-content:stretch;}
  .app-body .company-setup-shell .section-actions .button{width:100%;}
  .app-body .company-setup-shell .company-logo-card{grid-template-columns:1fr;}
}
