/* ParkAtlas UI 59 – Partnerportal polish
   Reiner UI/UX-Layer. Keine Buchungs-/Preis-/Kapazitätslogik. */

body.pa-partner-app{
  --pa59-navy:#071d36;
  --pa59-navy-2:#0b3151;
  --pa59-teal:#08aaa8;
  --pa59-teal-dark:#078985;
  --pa59-bg:#f3f7f9;
  --pa59-card:#ffffff;
  --pa59-line:#dfe8ed;
  --pa59-line-2:#edf2f5;
  --pa59-text:#102a43;
  --pa59-muted:#6d8191;
  --pa59-soft:#f7fafb;
  --pa59-shadow:0 14px 40px rgba(7,29,54,.075);
  --pa59-shadow-soft:0 7px 24px rgba(7,29,54,.045);
  background:
    radial-gradient(circle at 85% 5%,rgba(8,170,168,.055),transparent 26rem),
    linear-gradient(180deg,#f5f9fb 0,#f2f6f8 100%);
  color:var(--pa59-text);
}

/* Header im eingeloggten Partnerbereich etwas ruhiger und app-artiger */
body.pa-partner-app .site-header{
  position:sticky;top:0;z-index:1200;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(211,224,231,.78);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  box-shadow:0 5px 24px rgba(7,29,54,.035);
}
body.pa-partner-app .site-header .nav{min-height:72px}
body.pa-partner-app .brand-logo{filter:drop-shadow(0 2px 4px rgba(7,29,54,.04))}
body.pa-partner-app main.section{padding-top:30px;padding-bottom:64px}
body.pa-partner-app .container.dashboard{max-width:1440px;gap:28px;align-items:start}
body.pa-partner-app .dashboard>div:last-child{min-width:0}

/* Sidebar */
body.pa-partner-app .partner-side{
  border-radius:28px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 22px 60px rgba(7,29,54,.18);
  overflow:hidden;
}
body.pa-partner-app .pa-nav-head{padding-top:19px;padding-bottom:17px}
body.pa-partner-app .pa-nav-company-mark{
  box-shadow:0 8px 22px rgba(0,180,174,.13),inset 0 0 0 1px rgba(255,255,255,.38)
}
body.pa-partner-app .pa-nav-group h2{letter-spacing:.18em;opacity:.76}
body.pa-partner-app .pa-nav-group a,
body.pa-partner-app .pa-nav-disabled{
  min-height:43px;border-radius:13px;
  transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
body.pa-partner-app .pa-nav-group a:hover{transform:translateX(2px);background:rgba(255,255,255,.075)}
body.pa-partner-app .pa-nav-group a.active{
  background:linear-gradient(135deg,#10b9b0 0%,#079eb3 100%);
  box-shadow:0 9px 22px rgba(4,155,165,.22),inset 0 1px 0 rgba(255,255,255,.18);
}
body.pa-partner-app .pa-nav-alert-count{box-shadow:0 3px 10px rgba(7,29,54,.2)}

/* Typografie und Seitentitel */
body.pa-partner-app h1{letter-spacing:-.045em;color:var(--pa59-navy)}
body.pa-partner-app h2{letter-spacing:-.027em;color:var(--pa59-navy)}
body.pa-partner-app h3{letter-spacing:-.018em}
body.pa-partner-app .eyebrow,
body.pa-partner-app [class*="kicker"]{
  letter-spacing:.13em;font-weight:900
}
body.pa-partner-app .muted{color:var(--pa59-muted)}

/* Karten – ein gemeinsamer visueller Standard */
body.pa-partner-app .card,
body.pa-partner-app .pa-v2-card,
body.pa-partner-app .pa-wf-card,
body.pa-partner-app .pa56-card,
body.pa-partner-app .pa56-live{
  border:1px solid var(--pa59-line);
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#fdfefe 100%);
  box-shadow:var(--pa59-shadow-soft);
}
body.pa-partner-app .card:hover:not(details),
body.pa-partner-app .pa-v2-card:hover{
  border-color:#d4e2e8;
}
body.pa-partner-app .pa-v2-card-head,
body.pa-partner-app .pa56-section-head,
body.pa-partner-app .pa29-section-head{
  gap:18px;align-items:flex-start
}

/* KPI / Kennzahlen */
body.pa-partner-app .pa-kpi,
body.pa-partner-app .pa-wf-kpi,
body.pa-partner-app .pa56-stat,
body.pa-partner-app [class*="kpi"]{
  border-color:var(--pa59-line)!important;
}
body.pa-partner-app .pa-kpi{
  position:relative;overflow:hidden;
  border-radius:20px;background:linear-gradient(155deg,#fff,#f9fcfd);
  box-shadow:0 8px 25px rgba(7,29,54,.045)
}
body.pa-partner-app .pa-kpi:after{
  content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-42px;bottom:-50px;
  background:rgba(8,170,168,.06);pointer-events:none
}
body.pa-partner-app .pa-kpi-icon{border-radius:14px}

/* Formulare */
body.pa-partner-app .field>label,
body.pa-partner-app label{color:#2d4a5e}
body.pa-partner-app .field>label{display:block;margin-bottom:7px;font-weight:850;font-size:13px}
body.pa-partner-app .input,
body.pa-partner-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.pa-partner-app select,
body.pa-partner-app textarea{
  border-color:#cedde5;
  border-radius:14px;
  background:#fff;
  color:var(--pa59-text);
  box-shadow:0 1px 0 rgba(7,29,54,.02);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
body.pa-partner-app .input:hover,
body.pa-partner-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):hover,
body.pa-partner-app select:hover,
body.pa-partner-app textarea:hover{border-color:#b8ced9}
body.pa-partner-app .input:focus,
body.pa-partner-app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
body.pa-partner-app select:focus,
body.pa-partner-app textarea:focus{
  outline:none;border-color:var(--pa59-teal);
  box-shadow:0 0 0 4px rgba(8,170,168,.105)
}
body.pa-partner-app input::placeholder,
body.pa-partner-app textarea::placeholder{color:#9aabb7}
body.pa-partner-app select{cursor:pointer}

/* Buttons */
body.pa-partner-app .btn{
  min-height:44px;border-radius:13px;padding:10px 17px;
  font-weight:900;letter-spacing:-.01em;
  background:linear-gradient(135deg,#0eb7af 0%,#079bb0 100%);
  border:1px solid rgba(5,143,153,.22);
  box-shadow:0 8px 18px rgba(5,157,165,.16),inset 0 1px 0 rgba(255,255,255,.17);
  transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,background .14s ease;
}
body.pa-partner-app .btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 11px 24px rgba(5,157,165,.22);filter:saturate(1.05)}
body.pa-partner-app .btn:active:not(:disabled){transform:translateY(0);box-shadow:0 5px 12px rgba(5,157,165,.16)}
body.pa-partner-app .btn.secondary{
  color:#24475e;background:#fff;border-color:#d5e2e8;box-shadow:0 3px 10px rgba(7,29,54,.04)
}
body.pa-partner-app .btn.secondary:hover:not(:disabled){background:#f7fbfc;border-color:#bdd6df;box-shadow:0 6px 16px rgba(7,29,54,.07)}
body.pa-partner-app .btn.small{min-height:36px;border-radius:11px;padding:7px 12px}
body.pa-partner-app .btn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}

/* Meldungen – kompakter, eindeutiger */
body.pa-partner-app .notice,
body.pa-partner-app .success,
body.pa-partner-app .error{
  border-radius:16px;padding:14px 16px;
  box-shadow:0 5px 14px rgba(7,29,54,.025)
}
body.pa-partner-app .notice{border-color:#ead39b;background:#fff8e8;color:#74551a}
body.pa-partner-app .success{border-color:#b9dfd2;background:#effbf6;color:#17694e}
body.pa-partner-app .error{border-color:#efc6c6;background:#fff3f3;color:#8a3030}

/* Tabellen */
body.pa-partner-app .table,
body.pa-partner-app .pa-wf-table,
body.pa-partner-app .pa-comm-table{
  width:100%;border-collapse:separate;border-spacing:0;font-size:13px
}
body.pa-partner-app .table th,
body.pa-partner-app .pa-wf-table th,
body.pa-partner-app .pa-comm-table th{
  background:#f3f7f9;color:#5b7181;font-size:11px;text-transform:uppercase;letter-spacing:.055em;font-weight:900;
  border-top:1px solid var(--pa59-line);border-bottom:1px solid var(--pa59-line);padding:11px 12px
}
body.pa-partner-app .table th:first-child,
body.pa-partner-app .pa-wf-table th:first-child,
body.pa-partner-app .pa-comm-table th:first-child{border-left:1px solid var(--pa59-line);border-radius:12px 0 0 12px}
body.pa-partner-app .table th:last-child,
body.pa-partner-app .pa-wf-table th:last-child,
body.pa-partner-app .pa-comm-table th:last-child{border-right:1px solid var(--pa59-line);border-radius:0 12px 12px 0}
body.pa-partner-app .table td,
body.pa-partner-app .pa-wf-table td,
body.pa-partner-app .pa-comm-table td{padding:13px 12px;border-bottom:1px solid var(--pa59-line-2);vertical-align:middle}
body.pa-partner-app .table tbody tr,
body.pa-partner-app .pa-wf-table tbody tr,
body.pa-partner-app .pa-comm-table tbody tr{transition:background .13s ease}
body.pa-partner-app .table tbody tr:hover,
body.pa-partner-app .pa-wf-table tbody tr:hover,
body.pa-partner-app .pa-comm-table tbody tr:hover{background:#f9fcfd}

/* Details / Aufklapper */
body.pa-partner-app details.card,
body.pa-partner-app details.pa29-create-card,
body.pa-partner-app details.pa29-edit-details,
body.pa-partner-app details.pa56-booking{
  overflow:hidden
}
body.pa-partner-app details>summary{cursor:pointer;transition:background .14s ease}
body.pa-partner-app details>summary:hover{background:rgba(8,170,168,.025)}
body.pa-partner-app details[open]>summary{border-bottom-color:var(--pa59-line)}

/* Cockpit */
body.pa-page-partner-cockpit .pa-cockpit-hero{
  border-radius:26px;padding:26px 28px;
  background:linear-gradient(135deg,#071d36 0%,#0a3d5b 66%,#087b82 130%);
  color:#fff;box-shadow:0 18px 42px rgba(7,29,54,.16);overflow:hidden;position:relative
}
body.pa-page-partner-cockpit .pa-cockpit-hero:after{
  content:"";position:absolute;right:-70px;top:-95px;width:260px;height:260px;border-radius:50%;
  border:45px solid rgba(255,255,255,.045);pointer-events:none
}
body.pa-page-partner-cockpit .pa-cockpit-hero h1,
body.pa-page-partner-cockpit .pa-cockpit-hero p{color:#fff}
body.pa-page-partner-cockpit .pa-system-strip{border-radius:18px;box-shadow:var(--pa59-shadow-soft)}
body.pa-page-partner-cockpit .pa-module-list>a{border-radius:16px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
body.pa-page-partner-cockpit .pa-module-list>a:hover{transform:translateY(-1px);border-color:#c9e0e5;box-shadow:0 8px 18px rgba(7,29,54,.055)}

/* Buchungen */
body.pa-page-partner-buchungen .partner-booking-card{border-left-width:4px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
body.pa-page-partner-buchungen .partner-booking-card:hover{transform:translateY(-1px);box-shadow:var(--pa59-shadow)}
body.pa-page-partner-buchungen .pa16-booking-summary{padding:18px 20px}
body.pa-page-partner-buchungen .pa16-summary-main{gap:14px}
body.pa-page-partner-buchungen .pa16-summary-total{font-size:18px}
body.pa-page-partner-buchungen .partner-booking-grid>div{background:#f8fbfc;border-color:#e2eaef;border-radius:15px}

/* Transferliste */
body.pa-page-partner-transferliste .pa42-day-toolbar,
body.pa-page-partner-transferliste .pa41-universal-search{border-radius:22px;box-shadow:var(--pa59-shadow-soft);border-color:var(--pa59-line)}
body.pa-page-partner-transferliste .pa42-view-tabs{padding:4px;background:#eaf1f4;border-radius:13px}
body.pa-page-partner-transferliste .pa42-view-tabs a{border-radius:10px;border:0!important;min-height:38px;display:inline-flex;align-items:center}
body.pa-page-partner-transferliste .pa42-view-tabs a.active{background:#fff;color:var(--pa59-navy);box-shadow:0 4px 12px rgba(7,29,54,.09)}
body.pa-page-partner-transferliste .transfer-item,
body.pa-page-partner-transferliste [class*="transfer-card"]{border-radius:18px}

/* Mitarbeiter */
body.pa-page-partner-mitarbeiter .pa29-hero{
  border:1px solid var(--pa59-line);border-radius:26px;padding:24px 26px;background:linear-gradient(145deg,#fff,#f7fbfc);box-shadow:var(--pa59-shadow-soft)
}
body.pa-page-partner-mitarbeiter .pa29-role-card,
body.pa-page-partner-mitarbeiter .pa29-staff-card{border-radius:20px;border-color:var(--pa59-line);box-shadow:0 7px 20px rgba(7,29,54,.04)}
body.pa-page-partner-mitarbeiter .pa29-staff-card:hover{border-color:#cfe2e6;box-shadow:0 12px 30px rgba(7,29,54,.065)}
body.pa-page-partner-mitarbeiter .pa29-switch-row{border-radius:14px}

/* Workforce: Schichtplan, Zeiterfassung, Bedarf */
body.pa-page-partner-schichtplan .pa-wf-hero,
body.pa-page-partner-zeiterfassung .pa-wf-hero,
body.pa-page-partner-bedarfsplanung .pa-wf-hero{
  border:1px solid var(--pa59-line);border-radius:26px;padding:23px 25px;background:linear-gradient(145deg,#fff,#f7fbfc);box-shadow:var(--pa59-shadow-soft)
}
body.pa-page-partner-schichtplan .pa-wf-day,
body.pa-page-partner-bedarfsplanung .pa-wf-fleet-row{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
body.pa-page-partner-schichtplan .pa-wf-day:hover,
body.pa-page-partner-bedarfsplanung .pa-wf-fleet-row:hover{border-color:#cce0e5;box-shadow:0 9px 24px rgba(7,29,54,.055);transform:translateY(-1px)}

/* Parkplatzplan */
body.pa-page-partner-parkplatzplan .pa56-head{
  border-radius:26px;padding:22px 24px;background:linear-gradient(145deg,#fff,#f7fbfc);border:1px solid var(--pa59-line);box-shadow:var(--pa59-shadow-soft)
}
body.pa-page-partner-parkplatzplan .pa56-setup{gap:16px}
body.pa-page-partner-parkplatzplan .pa56-card{padding:19px}
body.pa-page-partner-parkplatzplan .pa56-card .btn{width:100%}
body.pa-page-partner-parkplatzplan .pa56-zone-row{border-radius:16px;background:#f8fbfc;border-color:#e2eaef;padding:12px}
body.pa-page-partner-parkplatzplan .pa56-space,
body.pa-page-partner-parkplatzplan .pa56-key{border-radius:12px;transition:transform .12s ease,box-shadow .12s ease}
body.pa-page-partner-parkplatzplan .pa56-space:hover,
body.pa-page-partner-parkplatzplan .pa56-key:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(7,29,54,.08)}
body.pa-page-partner-parkplatzplan .pa56-booking{border:1px solid var(--pa59-line);border-radius:16px;background:#fbfdfe}

/* Checkboxen die echte Auswahl sind bleiben Checkboxen – nur moderner */
body.pa-partner-app input[type="checkbox"]:not(.pa-date-native){accent-color:var(--pa59-teal)}

/* Fokus immer sichtbar */
body.pa-partner-app a:focus-visible,
body.pa-partner-app button:focus-visible,
body.pa-partner-app summary:focus-visible{
  outline:3px solid rgba(8,170,168,.28);outline-offset:3px
}

/* Mobile Tabellen: JS setzt data-pa-label. */
@media(max-width:760px){
  body.pa-partner-app main.section{padding-top:18px;padding-bottom:44px}
  body.pa-partner-app .card,
  body.pa-partner-app .pa-v2-card,
  body.pa-partner-app .pa-wf-card,
  body.pa-partner-app .pa56-card,
  body.pa-partner-app .pa56-live{border-radius:20px}
  body.pa-partner-app h1{font-size:clamp(29px,8vw,38px)}
  body.pa-partner-app .btn{min-height:46px}
  body.pa-partner-app .pa-mobile-cards{border:0!important;min-width:0!important}
  body.pa-partner-app .pa-mobile-cards thead{display:none}
  body.pa-partner-app .pa-mobile-cards tbody,
  body.pa-partner-app .pa-mobile-cards tr,
  body.pa-partner-app .pa-mobile-cards td{display:block;width:100%}
  body.pa-partner-app .pa-mobile-cards tr{
    margin:0 0 12px;padding:11px 13px;border:1px solid var(--pa59-line);border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(7,29,54,.04)
  }
  body.pa-partner-app .pa-mobile-cards td{
    border-bottom:1px solid #edf2f5!important;padding:9px 0!important;display:grid;grid-template-columns:minmax(95px,38%) 1fr;gap:10px;align-items:start
  }
  body.pa-partner-app .pa-mobile-cards td:last-child{border-bottom:0!important}
  body.pa-partner-app .pa-mobile-cards td:before{
    content:attr(data-pa-label);color:#7c8e9b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.045em
  }
  body.pa-partner-app .pa29-hero,
  body.pa-partner-app .pa-wf-hero,
  body.pa-page-partner-parkplatzplan .pa56-head{padding:18px;border-radius:20px}
}

@media(min-width:1100px){
  body.pa-partner-app .partner-side{position:sticky;top:92px;max-height:calc(100vh - 112px);overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
}

@media(prefers-reduced-motion:reduce){
  body.pa-partner-app *,body.pa-partner-app *:before,body.pa-partner-app *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
