/*
 * FIVE Performance OS 29.3.0 — Operator Interface
 * Data-first dealer workspace. No decorative dashboard gradients, no floating-card UI,
 * no forced-priority cascade. Orange is reserved for primary actions and live attention.
 */

:root {
  --fpp-bg: #080b0e;
  --fpp-sidebar: #090d11;
  --fpp-top: #0b1014;
  --fpp-panel: #0f151a;
  --fpp-panel-2: #121920;
  --fpp-panel-3: #161f27;
  --fpp-line: #27323c;
  --fpp-line-soft: #1c252d;
  --fpp-text: #f3f6f8;
  --fpp-text-soft: #c2cad1;
  --fpp-muted: #8795a2;
  --fpp-muted-2: #667481;
  --fpp-orange: #f46a24;
  --fpp-orange-2: #ff7a32;
  --fpp-orange-soft: rgba(244, 106, 36, .12);
  --fpp-green: #49c78b;
  --fpp-green-soft: rgba(73, 199, 139, .11);
  --fpp-red: #ef6a6a;
  --fpp-red-soft: rgba(239, 106, 106, .11);
  --fpp-amber: #e5b65b;
  --fpp-amber-soft: rgba(229, 182, 91, .12);
  --fpp-blue: #6ca8d9;
  --fpp-radius: 5px;
  --fpp-radius-sm: 3px;
  --fpp-side-w: 248px;
  --fpp-top-h: 68px;
  --fpp-control-h: 40px;
  --fpp-shadow: 0 14px 34px rgba(0,0,0,.18);
}

html { background: var(--fpp-bg); color-scheme: dark; }
body.fpp-body {
  margin: 0;
  min-height: 100vh;
  background: var(--fpp-bg);
  color: var(--fpp-text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 13px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.fpp-body *, body.fpp-body *::before, body.fpp-body *::after { box-sizing: border-box; }
body.fpp-body a { color: inherit; text-decoration: none; }
body.fpp-body button, body.fpp-body input, body.fpp-body select, body.fpp-body textarea { font: inherit; }
body.fpp-body button, body.fpp-body a, body.fpp-body summary { -webkit-tap-highlight-color: transparent; }
body.fpp-body img { max-width: 100%; }
body.fpp-body :focus-visible { outline: 2px solid var(--fpp-orange); outline-offset: 2px; }

/* ---------- Shell ---------- */
.fpp-app { min-height: 100vh; }
.fpp-side {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 90;
  width: var(--fpp-side-w);
  display: flex;
  flex-direction: column;
  background: var(--fpp-sidebar);
  border-right: 1px solid var(--fpp-line-soft);
  transition: width .18s ease, transform .18s ease;
}
.fpp-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: 126px;
  padding: 22px 24px 19px;
  border-bottom: 1px solid var(--fpp-line-soft);
}
.fpp-brand img { width: 112px; height: auto; display: block; }
.fpp-brand small {
  margin-top: 9px;
  color: var(--fpp-muted-2);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .22em;
}
.fpp-side nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 15px 12px 18px; scrollbar-width: thin; }
.fpp-nav-label {
  padding: 19px 12px 7px;
  color: #64717c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .19em;
  line-height: 1;
}
.fpp-side nav > a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 42px;
  gap: 11px;
  margin: 2px 0;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: var(--fpp-radius-sm);
  color: #aab4bd;
  font-size: 12px;
  font-weight: 650;
  transition: background .14s ease, color .14s ease, border-color .14s ease;
}
.fpp-side nav > a:hover { color: var(--fpp-text); background: #11171d; }
.fpp-side nav > a.active {
  color: #fff;
  background: #141a20;
  border-color: #2f3942;
}
.fpp-side nav > a.active::before {
  content: "";
  position: absolute;
  left: -13px;
  width: 3px;
  height: 24px;
  background: var(--fpp-orange);
  border-radius: 0 2px 2px 0;
}
.fpp-side nav i { width: 18px; height: 18px; display: grid; place-items: center; flex: 0 0 18px; color: #7d8a96; }
.fpp-side nav a.active i { color: var(--fpp-orange); }
.fpp-side nav svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.fpp-side nav svg path:first-child:last-child { fill: currentColor; stroke: none; }
.fpp-side-foot { flex: 0 0 auto; padding: 14px 15px 18px; border-top: 1px solid var(--fpp-line-soft); }
.fpp-side-user { display: flex; align-items: center; gap: 10px; min-width: 0; }
.fpp-side-user > span, .fpp-avatar {
  width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px;
  border-radius: 50%; background: var(--fpp-orange); color: #fff; font-weight: 800;
}
.fpp-side-user div, .fpp-user div:last-child { min-width: 0; }
.fpp-side-user strong, .fpp-user strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #edf1f4; font-size: 12px; }
.fpp-side-user small, .fpp-user small { display: block; margin-top: 2px; color: var(--fpp-muted); font-size: 10px; }
.fpp-logout { display: inline-block; margin-top: 11px; color: #d36e6e; font-size: 11px; }
.fpp-main { min-height: 100vh; margin-left: var(--fpp-side-w); transition: margin-left .18s ease; }
.fpp-top {
  position: sticky;
  top: 0;
  z-index: 70;
  height: var(--fpp-top-h);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 23px;
  background: rgba(10, 15, 19, .97);
  border-bottom: 1px solid var(--fpp-line-soft);
  backdrop-filter: blur(12px);
}
.fpp-search {
  width: min(430px, 45vw);
  height: 38px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 12px;
  border: 1px solid var(--fpp-line);
  border-radius: var(--fpp-radius);
  background: #0d1318;
}
.fpp-search span { color: var(--fpp-muted); font-size: 17px; line-height: 1; }
.fpp-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--fpp-text); font-size: 12px; }
.fpp-search input::placeholder { color: #71808c; }
.fpp-top-actions { margin-left: auto; display: flex; align-items: center; gap: 7px; }
.fpp-layout-toggle, .fpp-context-help, .fpp-collapse, .fpp-menu, .fpp-side-collapse, .fpp-mobile-close {
  width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0e1419; color: var(--fpp-text-soft); cursor: pointer;
}
.fpp-layout-toggle:hover, .fpp-context-help:hover, .fpp-collapse:hover { border-color: #42505c; color: #fff; }
.fpp-user { display: flex; align-items: center; gap: 9px; min-width: 156px; padding-left: 6px; }
.fpp-owner-menu { position: relative; }
.fpp-owner-btn { height: 36px; display: flex; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0e1419; color: var(--fpp-text); cursor: pointer; }
.fpp-owner-btn b { color: var(--fpp-orange); }
.fpp-owner-dropdown { position: absolute; top: calc(100% + 8px); right: 0; z-index: 150; width: 240px; display: none; padding: 7px; background: #10161b; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); box-shadow: var(--fpp-shadow); }
.fpp-owner-menu.open .fpp-owner-dropdown, .fpp-owner-menu:focus-within .fpp-owner-dropdown { display: block; }
.fpp-owner-title { padding: 9px 10px 10px; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-owner-title strong, .fpp-owner-title small { display: block; }
.fpp-owner-title small { margin-top: 2px; color: var(--fpp-muted); font-size: 10px; }
.fpp-owner-dropdown a { display: flex; align-items: center; gap: 9px; min-height: 36px; padding: 0 9px; border-radius: 3px; color: var(--fpp-text-soft); font-size: 11px; }
.fpp-owner-dropdown a:hover { background: #182028; color: #fff; }
.fpp-owner-dropdown a i { width: 18px; font-style: normal; }
.fpp-owner-dropdown a b { margin-left: auto; color: var(--fpp-muted-2); }
.fpp-content { width: 100%; max-width: 1600px; margin: 0 auto; padding: 32px 34px 56px; }
.fpp-menu, .fpp-mobile-close, .fpp-mobile-quickbar, .fpp-menu-scrim { display: none; }
.fpp-collapse { display: none; }
.fpp-side-collapse { position: absolute; right: -15px; top: 145px; z-index: 2; width: 28px; height: 28px; border-radius: 50%; background: #10161b; }

body.sidebar-collapsed .fpp-side { width: 78px; }
body.sidebar-collapsed .fpp-main { margin-left: 78px; }
body.sidebar-collapsed .fpp-brand { padding-inline: 13px; align-items: center; }
body.sidebar-collapsed .fpp-brand img { width: 44px; object-fit: cover; object-position: left; }
body.sidebar-collapsed .fpp-brand small, body.sidebar-collapsed .fpp-nav-label, body.sidebar-collapsed .fpp-side nav a span, body.sidebar-collapsed .fpp-side-user div, body.sidebar-collapsed .fpp-logout { display: none; }
body.sidebar-collapsed .fpp-side nav { padding-inline: 10px; }
body.sidebar-collapsed .fpp-side nav > a { justify-content: center; padding: 0; }
body.sidebar-collapsed .fpp-side nav > a.active::before { left: -11px; }
body.sidebar-collapsed .fpp-side-user { justify-content: center; }

/* ---------- Typography / page header ---------- */
.fpp-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; min-height: 76px; margin: 0 0 24px; padding-bottom: 19px; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-page-head > div:first-child { min-width: 0; }
.fpp-page-head h1 { margin: 0; color: #f7f8f9; font-size: clamp(24px, 2vw, 31px); line-height: 1.08; letter-spacing: -.035em; font-weight: 760; }
.fpp-page-head p { max-width: 900px; margin: 7px 0 0; color: var(--fpp-muted); font-size: 12px; line-height: 1.55; }
.fpp-eyebrow { display: inline-block; margin-bottom: 6px; color: var(--fpp-orange); font-size: 10px; line-height: 1; font-weight: 850; letter-spacing: .16em; }
.fpp-release-badge, .fpp-hq-lock { display: inline-flex; align-items: center; min-height: 30px; padding: 0 10px; border: 1px solid #713818; border-radius: 999px; background: #160f0b; color: #f59a68; font-size: 10px; font-weight: 800; letter-spacing: .08em; white-space: nowrap; }
.fpp-card h2, .fpp-card-heading h2, .fpp-card-head h2 { margin: 0; color: #f3f5f7; font-size: 15px; line-height: 1.25; font-weight: 740; letter-spacing: -.015em; }
.fpp-card h3 { color: #eef2f5; }
.fpp-card-head p, .fpp-card-heading p { margin: 5px 0 0; color: var(--fpp-muted); font-size: 11px; }
.fpp-muted { color: var(--fpp-muted); }

/* ---------- Buttons ---------- */
.fpp-btn, .fpp-mini-btn, .fpp-filter button, .fpp-menu-action {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: var(--fpp-radius-sm);
  font-weight: 720;
  white-space: nowrap;
  cursor: pointer;
  transition: background .12s ease, border-color .12s ease, color .12s ease, transform .12s ease;
}
.fpp-btn { min-height: var(--fpp-control-h); padding: 0 15px; background: var(--fpp-orange); color: #fff; font-size: 11px; }
.fpp-btn:hover { background: var(--fpp-orange-2); }
.fpp-btn.secondary, .fpp-btn.fpp-btn-secondary { border-color: var(--fpp-line); background: #111820; color: #e4e9ed; }
.fpp-btn.secondary:hover, .fpp-btn.fpp-btn-secondary:hover { border-color: #44515c; background: #161f27; }
.fpp-btn.danger { border-color: #693737; background: #231315; color: #f09a9a; }
.fpp-btn.success { background: #247d57; }
.fpp-btn[disabled] { opacity: .45; cursor: not-allowed; }
.fpp-mini-btn { min-height: 31px; padding: 0 10px; border-color: #34404a; background: #141b21; color: #dbe1e6; font-size: 10px; }
.fpp-mini-btn:hover { border-color: #4b5965; background: #192229; color: #fff; }
.fpp-mini-btn.secondary { background: transparent; color: var(--fpp-text-soft); }
.fpp-mini-btn.danger { border-color: #5f3030; background: transparent; color: #d98787; }
.fpp-head-actions, .fpp-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.fpp-head-actions { justify-content: flex-end; }
.fpp-row-actions form { margin: 0; }

/* ---------- Cards as work surfaces ---------- */
.fpp-card {
  margin: 0 0 14px;
  padding: 17px 18px;
  border: 1px solid var(--fpp-line);
  border-radius: var(--fpp-radius);
  background: var(--fpp-panel);
  box-shadow: none;
}
.fpp-card-head, .fpp-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.fpp-card-head > a, .fpp-card-heading > a { color: #e89769; font-size: 10px; font-weight: 700; }
.fpp-count-badge { min-width: 25px; height: 25px; display: grid; place-items: center; border-radius: 999px; background: var(--fpp-orange-soft); color: #f39968; font-size: 10px; font-weight: 800; }
.fpp-empty { min-height: 86px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 18px; border: 1px dashed #2d3842; border-radius: 4px; color: var(--fpp-muted); text-align: center; }
.fpp-empty strong { color: #dce2e6; font-size: 12px; }
.fpp-empty span { font-size: 11px; }

/* ---------- Forms ---------- */
.fpp-body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), .fpp-body select, .fpp-body textarea {
  width: 100%;
  min-height: var(--fpp-control-h);
  border: 1px solid #34414c;
  border-radius: var(--fpp-radius-sm);
  background: #0b1116;
  color: #eef2f4;
  outline: 0;
  box-shadow: none;
}
.fpp-body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), .fpp-body select { padding: 0 11px; }
.fpp-body textarea { min-height: 100px; padding: 10px 11px; resize: vertical; }
.fpp-body input::placeholder, .fpp-body textarea::placeholder { color: #667581; }
.fpp-body input:focus, .fpp-body select:focus, .fpp-body textarea:focus { border-color: #6e7d89; background: #0d141a; }
.fpp-body label { color: var(--fpp-text-soft); font-size: 11px; font-weight: 620; }
.fpp-body label > span:first-child { display: block; margin-bottom: 6px; color: #aeb8c0; }
.fpp-form-grid, .fpp-hq-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 13px; }
.fpp-form-grid .wide, .fpp-form-grid .fpp-wide, .fpp-hq-grid .wide { grid-column: 1 / -1; }
.fpp-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 5px; }
.fpp-form-section { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--fpp-line-soft); }
.fpp-section-title { margin-bottom: 12px; }
.fpp-section-title h3 { margin: 0; font-size: 13px; }
.fpp-section-title p { margin: 4px 0 0; color: var(--fpp-muted); font-size: 10px; }
.fpp-check { display: flex; align-items: center; gap: 8px; }
.fpp-check input { width: 15px; height: 15px; accent-color: var(--fpp-orange); }
.fpp-filter { display: grid; grid-template-columns: minmax(240px,1fr) 190px 190px auto; gap: 8px; align-items: center; margin: 0 0 14px; }
.fpp-filter button { height: var(--fpp-control-h); padding: 0 14px; background: var(--fpp-orange); color: #fff; }
.fpp-filter-inline { margin: 0; grid-template-columns: minmax(260px, 380px) auto; }
.fpp-inline-form { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 9px; }

/* ---------- Tables / registers ---------- */
.fpp-register { padding: 0; overflow: hidden; }
.fpp-register > .fpp-card-head, .fpp-register > .fpp-card-heading { margin: 0; padding: 16px 17px 12px; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-table-wrap { width: 100%; overflow: auto; }
.fpp-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 850px; color: #dce2e7; font-size: 11px; }
.fpp-table th { position: sticky; top: 0; z-index: 2; height: 34px; padding: 0 11px; background: #0d1318; border-bottom: 1px solid #303b45; color: #8796a2; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.fpp-table td { padding: 11px; border-bottom: 1px solid #202a32; vertical-align: middle; }
.fpp-table tbody tr:last-child td { border-bottom: 0; }
.fpp-table tbody tr:hover td { background: #11181e; }
.fpp-table td small { display: block; margin-top: 3px; color: var(--fpp-muted); font-size: 10px; }
.fpp-table td strong { color: #edf1f4; font-weight: 700; }
.fpp-table td:nth-last-child(-n+3) { white-space: nowrap; }
.fpp-vehicle-name strong, .fpp-vehicle-name span, .fpp-vehicle-name small { display: block; }
.fpp-vehicle-name strong { color: #f0f3f5; font-size: 11px; }
.fpp-vehicle-name span { margin-top: 4px; color: #e8905d; font-size: 10px; font-weight: 750; text-transform: uppercase; }
.fpp-vehicle-name small { margin-top: 4px; color: var(--fpp-muted); }
.fpp-status, .fpp-stock-badge, .fpp-document-kind, .fpp-mini-state, .fpp-site-state, .fpp-next-step {
  display: inline-flex; align-items: center; min-height: 23px; padding: 0 8px; border: 1px solid #34404a; border-radius: 999px; background: #131a20; color: #b8c2c9; font-size: 10px; font-weight: 740; white-space: nowrap;
}
.fpp-status.available, .fpp-status.active, .fpp-status.paid, .fpp-mini-state.success, .fpp-site-state.linked { border-color: #255c45; background: var(--fpp-green-soft); color: #6fd5a1; }
.fpp-status.reserved, .fpp-status.partial, .fpp-status.draft { border-color: #66532b; background: var(--fpp-amber-soft); color: #e2bc6d; }
.fpp-status.sold, .fpp-status.issued { border-color: #36546d; background: rgba(75,132,178,.12); color: #8eb7d7; }
.fpp-status.cancelled, .fpp-status.failed, .fpp-status.archived { border-color: #5d3434; background: var(--fpp-red-soft); color: #e18a8a; }
.fpp-deal { display: inline-flex; min-height: 25px; align-items: center; padding: 0 8px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.fpp-deal.success { background: var(--fpp-green-soft); color: #70d5a2; }
.fpp-deal.warning { background: var(--fpp-amber-soft); color: #e3bd6e; }
.fpp-deal.danger { background: var(--fpp-red-soft); color: #e58b8b; }
.fpp-register-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.fpp-register-note { color: var(--fpp-muted); font-size: 10px; }

/* ---------- Tabs ---------- */
.fpp-vehicle-tabs, .fpp-hq-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; margin: 0 0 12px; padding: 3px; width: fit-content; max-width: 100%; border: 1px solid var(--fpp-line); border-radius: 4px; background: #0c1116; }
.fpp-vehicle-tabs a, .fpp-hq-tabs a { min-height: 31px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border-radius: 2px; color: #91a0ac; font-size: 10px; font-weight: 700; }
.fpp-vehicle-tabs a:hover, .fpp-hq-tabs a:hover { color: #e9edf0; }
.fpp-vehicle-tabs a.active, .fpp-hq-tabs a.active { background: #1a2026; color: #fff; box-shadow: inset 0 -2px 0 var(--fpp-orange); }
.fpp-vehicle-tabs b { min-width: 19px; height: 19px; display: grid; place-items: center; padding: 0 5px; border-radius: 999px; background: #242d35; color: #cbd3d9; font-size: 10px; }
.fpp-vehicle-tabs a.active b { background: var(--fpp-orange-soft); color: #ffa271; }

/* ---------- Alerts ---------- */
.fpp-alert { margin: 0 0 13px; padding: 11px 13px; border-left: 3px solid #53616d; border-radius: 2px; background: #11181e; color: #c7d0d7; font-size: 11px; }
.fpp-alert strong { color: #eef2f4; }
.fpp-alert.success { border-left-color: var(--fpp-green); background: #0e1a16; }
.fpp-alert.warning { border-left-color: var(--fpp-amber); background: #1a170e; }
.fpp-alert.danger { border-left-color: var(--fpp-red); background: #1c1112; }
.fpp-alert.info { border-left-color: var(--fpp-blue); background: #0e151b; }

/* ---------- Dashboard: operator workbench ---------- */
.fpp-command-strip {
  display: grid;
  grid-template-columns: minmax(230px, 1.3fr) repeat(5, minmax(115px,.72fr));
  margin-bottom: 14px;
  border: 1px solid var(--fpp-line);
  border-radius: var(--fpp-radius);
  background: #0d1318;
  overflow: hidden;
}
.fpp-command-strip > div, .fpp-command-strip > a { min-height: 66px; display: flex; flex-direction: column; justify-content: center; padding: 10px 14px; border-right: 1px solid var(--fpp-line-soft); }
.fpp-command-strip > *:last-child { border-right: 0; }
.fpp-command-strip span { color: var(--fpp-muted); font-size: 10px; font-weight: 750; letter-spacing: .04em; }
.fpp-command-strip strong { margin-top: 4px; color: #edf1f4; font-size: 16px; line-height: 1.15; font-weight: 760; font-variant-numeric: tabular-nums; }
.fpp-command-strip > a:hover { background: #121a20; }
.fpp-command-strip > a.attention { box-shadow: inset 0 2px 0 var(--fpp-orange); }
.fpp-command-strip > a.attention strong { color: #f28a50; }
.fpp-command-date { background: #10161b; }
.fpp-command-date span { color: var(--fpp-orange); letter-spacing: .14em; }
.fpp-command-date strong { font-size: 14px; }
.fpp-operator-grid { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(310px, .8fr); gap: 14px; align-items: start; }
.fpp-work-queue { padding: 0; overflow: hidden; }
.fpp-work-queue .fpp-card-head { margin: 0; padding: 16px 17px 13px; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-queue-list > a { display: grid; grid-template-columns: 7px 58px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 61px; padding: 10px 16px; border-bottom: 1px solid #202931; }
.fpp-queue-list > a:last-child { border-bottom: 0; }
.fpp-queue-list > a:hover { background: #121920; }
.fpp-queue-list > a > i { width: 7px; height: 7px; border-radius: 50%; background: #65727d; }
.fpp-queue-list > a.urgent > i { background: var(--fpp-orange); box-shadow: 0 0 0 4px var(--fpp-orange-soft); }
.fpp-queue-list > a.lead > i { background: var(--fpp-blue); }
.fpp-queue-list > a.vehicle > i { background: var(--fpp-amber); }
.fpp-queue-kind { color: #75838e; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fpp-queue-list div { min-width: 0; }
.fpp-queue-list strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #e9edf0; font-size: 11px; }
.fpp-queue-list small { display: block; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fpp-muted); font-size: 10px; }
.fpp-queue-list b { color: #a7b1b9; font-size: 10px; font-weight: 700; }
.fpp-operator-side { display: grid; gap: 14px; }
.fpp-agenda-panel, .fpp-start-panel { margin: 0; }
.fpp-agenda-rail { padding: 0 2px; }
.fpp-agenda-rail > div { display: grid; grid-template-columns: 40px 8px 1fr; gap: 9px; align-items: start; min-height: 52px; }
.fpp-agenda-rail time { padding-top: 2px; color: #dbe1e5; font-size: 10px; font-weight: 750; font-variant-numeric: tabular-nums; }
.fpp-agenda-rail i { position: relative; width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--fpp-orange); }
.fpp-agenda-rail i::after { content: ""; position: absolute; top: 10px; left: 3px; width: 1px; height: 36px; background: #2b353e; }
.fpp-agenda-rail > div:last-child i::after { display: none; }
.fpp-agenda-rail strong, .fpp-agenda-rail small { display: block; }
.fpp-agenda-rail strong { color: #e8ecef; font-size: 10px; }
.fpp-agenda-rail small { margin-top: 2px; color: var(--fpp-muted); font-size: 10px; }

/* Empty mini-agenda must remain a centered message, not inherit the event-row grid. */
.fpp-agenda-rail > .fpp-empty {
  width: 100%;
  min-height: 148px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 22px 18px;
  text-align: center;
}
.fpp-agenda-rail > .fpp-empty strong,
.fpp-agenda-rail > .fpp-empty span {
  width: auto;
  max-width: 230px;
  margin: 0;
  text-align: center;
  line-height: 1.45;
}
.fpp-agenda-rail > .fpp-empty strong { font-size: 11px; }
.fpp-agenda-rail > .fpp-empty span { font-size: 11px; color: var(--fpp-muted); }
.fpp-action-list a { min-height: 41px; display: flex; align-items: center; justify-content: space-between; padding: 0 2px; border-bottom: 1px solid var(--fpp-line-soft); color: #d9e0e5; font-size: 10px; font-weight: 650; }
.fpp-action-list a:last-child { border-bottom: 0; }
.fpp-action-list a:hover { color: #fff; }
.fpp-action-list b { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #394650; border-radius: 2px; color: var(--fpp-orange); }
.fpp-activity-ledger { margin-top: 14px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0c1217; overflow: hidden; }
.fpp-ledger-head { min-height: 45px; display: flex; align-items: baseline; gap: 10px; padding: 0 15px; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-ledger-head strong { color: #e8ecef; font-size: 11px; }
.fpp-ledger-head span { color: var(--fpp-muted); font-size: 10px; }
.fpp-ledger-rows > div { min-height: 35px; display: grid; grid-template-columns: 80px 140px 1fr; gap: 10px; align-items: center; padding: 0 15px; border-bottom: 1px solid #1d252c; font-size: 10px; }
.fpp-ledger-rows > div:last-child { border-bottom: 0; }
.fpp-ledger-rows time { color: #71808b; font-variant-numeric: tabular-nums; }
.fpp-ledger-rows strong { color: #bfc8cf; }
.fpp-ledger-rows span { color: var(--fpp-muted); }

/* ---------- Invoice / administration ---------- */
.fpp-ledger-strip { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin-bottom: 12px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0d1318; overflow: hidden; }
.fpp-ledger-strip > div { min-height: 70px; display: grid; align-content: center; padding: 10px 14px; border-right: 1px solid var(--fpp-line-soft); }
.fpp-ledger-strip > div:last-child { border-right: 0; }
.fpp-ledger-strip span { color: var(--fpp-muted); font-size: 10px; font-weight: 750; }
.fpp-ledger-strip strong { margin-top: 3px; color: #f0f3f5; font-size: 17px; font-weight: 760; font-variant-numeric: tabular-nums; }
.fpp-ledger-strip small { margin-top: 2px; color: #667581; font-size: 10px; }
.fpp-ledger-strip .attention { box-shadow: inset 0 2px 0 var(--fpp-orange); }
.fpp-ledger-strip .attention strong { color: #f0945e; }
.fpp-export-bar { display: grid; grid-template-columns: minmax(280px,1fr) auto; align-items: end; gap: 22px; margin-bottom: 12px; padding: 13px 14px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0d1318; }
.fpp-export-copy strong, .fpp-export-copy small { display: block; }
.fpp-export-copy strong { color: #e8ecef; font-size: 11px; }
.fpp-export-copy small { margin-top: 3px; color: var(--fpp-muted); font-size: 10px; }
.fpp-export-controls { display: grid; grid-template-columns: 160px 160px auto; gap: 8px; align-items: end; }
.fpp-export-controls label { display: grid; grid-template-rows: 15px 40px; gap: 4px; }
.fpp-export-controls label > span { margin: 0; align-self: end; color: #8997a2; font-size: 10px; }
.fpp-export-controls input, .fpp-export-controls .fpp-btn { height: 40px; min-height: 40px; }
.fpp-invoice-toolbar { margin-top: 0; }
.fpp-action-menu { position: relative; }
.fpp-action-menu > summary { list-style: none; }
.fpp-action-menu > summary::-webkit-details-marker { display: none; }
.fpp-action-menu-popover { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; width: 230px; padding: 7px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #11171d; box-shadow: var(--fpp-shadow); }
.fpp-action-menu-popover > span { display: block; padding: 6px 7px; color: #75838d; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.fpp-action-menu-popover form { margin: 0; }
.fpp-menu-action { width: 100%; min-height: 36px; justify-content: flex-start; padding: 0 8px; border: 0; background: transparent; color: #dbe1e5; font-size: 10px; }
.fpp-menu-action:hover { background: #192129; }
.fpp-invoice-editor { border-left: 3px solid var(--fpp-orange); }
.fpp-invoice-preview { background: #fff; color: #15181b; }
.fpp-invoice-preview * { color: inherit; }
.fpp-invoice-preview .fpp-muted { color: #65717b; }

/* ---------- Dossiers / deal workspace ---------- */
.fpp-dossier-table td:nth-child(4), .fpp-dossier-table td:nth-child(5) { font-variant-numeric: tabular-nums; }
.fpp-dossier-back { margin-bottom: 10px; }
.fpp-dossier-back a { color: #a5b0b9; font-size: 10px; }
.fpp-dossier-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; min-height: 88px; padding: 15px 17px; border-left: 3px solid var(--fpp-orange); }
.fpp-dossier-hero h2 { margin: 0; font-size: 20px; }
.fpp-dossier-hero p { margin: 5px 0 0; color: var(--fpp-muted); font-size: 10px; }
.fpp-dossier-hero > div:last-child { display: grid; justify-items: end; gap: 8px; }
.fpp-dossier-hero > div:last-child strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.fpp-dossier-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin-bottom: 14px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); overflow: hidden; background: #0c1217; }
.fpp-dossier-steps > * { border-right: 1px solid var(--fpp-line-soft); }
.fpp-dossier-steps > *:last-child { border-right: 0; }
.fpp-dossier-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; align-items: start; }
.fpp-dossier-list article { min-height: 51px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-dossier-list article:last-child { border-bottom: 0; }
.fpp-dossier-list article strong, .fpp-dossier-list article small { display: block; }
.fpp-dossier-list article small { margin-top: 3px; color: var(--fpp-muted); font-size: 10px; }
.fpp-rdw-delivery, .fpp-complete-sale, .fpp-danger-zone { margin-top: 14px; }
.fpp-danger-zone { border-color: #543333; background: #151012; }
.fpp-requirement-list { display: grid; gap: 6px; margin: 11px 0; }
.fpp-requirement-list > div { display: flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 8px; border: 1px solid var(--fpp-line-soft); border-radius: 3px; color: var(--fpp-muted); font-size: 10px; }
.fpp-requirement-list > div.done b { color: var(--fpp-green); }
.fpp-requirement-list > div.pending b { color: var(--fpp-amber); }
.fpp-finalize-form { display: flex; align-items: end; flex-wrap: wrap; gap: 9px; }
.fpp-checkline { display: flex; align-items: center; gap: 7px; max-width: 440px; min-height: 40px; }

/* ---------- Vehicle / consignment registers ---------- */
.fpp-site-sync-status { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding: 10px 12px; border: 1px solid var(--fpp-line); border-radius: 4px; background: #0c1217; }
.fpp-site-sync-status > div { display: flex; align-items: center; gap: 10px; }
.fpp-status-dot { width: 8px; height: 8px; border-radius: 50%; background: #5f6c77; }
.fpp-site-sync-status.is-linked .fpp-status-dot { background: var(--fpp-green); }
.fpp-site-sync-status strong, .fpp-site-sync-status small { display: block; }
.fpp-site-sync-status small { margin-top: 2px; color: var(--fpp-muted); font-size: 10px; }
.fpp-existing-photo, .fpp-photo-preview { border: 1px solid var(--fpp-line); border-radius: 3px; background: #0c1217; }
.fpp-inline-deal { display: flex; align-items: center; gap: 6px; }
.fpp-inline-deal input { min-width: 110px; }

/* ---------- HQ as back-office ---------- */
.fpp-system-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0 0 14px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); overflow: hidden; background: #0d1318; }
.fpp-system-strip > div { min-height: 60px; display: grid; align-content: center; padding: 9px 13px; border-right: 1px solid var(--fpp-line-soft); }
.fpp-system-strip > div:last-child { border-right: 0; }
.fpp-system-strip span { color: var(--fpp-muted); font-size: 10px; }
.fpp-system-strip strong { margin-top: 4px; color: #e8ecef; font-size: 12px; font-weight: 750; }
.fpp-hq-settings { padding: 0; }
.fpp-hq-settings > .fpp-card-head { margin: 0; padding: 17px 18px 13px; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-hq-form details { border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-hq-form details:last-of-type { border-bottom: 0; }
.fpp-hq-form summary { min-height: 44px; display: flex; align-items: center; padding: 0 18px; color: #dbe1e6; font-size: 11px; font-weight: 700; cursor: pointer; }
.fpp-hq-form details > .fpp-hq-grid, .fpp-hq-form details > .fpp-logo-manager { padding: 0 18px 18px; }
.fpp-hq-save { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 18px; border-top: 1px solid var(--fpp-line-soft); background: #0c1217; }
.fpp-hq-save span { color: var(--fpp-muted); font-size: 10px; }
.fpp-logo-manager { display: grid; grid-template-columns: 180px 1fr; gap: 16px; }
.fpp-logo-preview { min-height: 110px; display: grid; place-items: center; padding: 12px; border: 1px solid var(--fpp-line); background: #080c0f; }
.fpp-logo-preview img { max-height: 80px; object-fit: contain; }
.fpp-logo-controls { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; align-content: start; }
.fpp-hq-apple-list { display: grid; gap: 0; }
.fpp-hq-apple-row { display: grid; grid-template-columns: minmax(160px,.8fr) minmax(330px,1.5fr) auto; gap: 18px; align-items: center; min-height: 66px; padding: 9px 0; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-hq-apple-row:last-child { border-bottom: 0; }
.fpp-hq-apple-person strong, .fpp-hq-apple-person small { display: block; }
.fpp-hq-apple-person small { margin-top: 2px; color: var(--fpp-muted); font-size: 10px; }
.fpp-hq-apple-row dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 0; }
.fpp-hq-apple-row dl div { min-width: 0; }
.fpp-hq-apple-row dt { color: #6e7c87; font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }
.fpp-hq-apple-row dd { margin: 3px 0 0; color: #bcc5cc; font-size: 10px; }
.fpp-hq-apple-row dd.is-ok { color: var(--fpp-green); }
.fpp-hq-apple-actions { display: flex; gap: 6px; }
.fpp-hq-audit > div { display: grid; grid-template-columns: 8px 1fr; gap: 9px; padding: 8px 0; border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-hq-audit > div:last-child { border-bottom: 0; }
.fpp-hq-audit i { width: 6px; height: 6px; margin-top: 5px; border-radius: 50%; background: #4b5964; }
.fpp-hq-audit strong { color: #dfe5e9; }
.fpp-hq-audit span { color: var(--fpp-muted); font-size: 10px; }
.fpp-hq-audit small { display: block; margin-top: 2px; color: #65737e; font-size: 10px; }

/* ---------- Agenda ---------- */
.fpp-calendar-card { overflow: hidden; padding: 0; }
.fpp-calendar-head { padding: 14px 16px; border-bottom: 1px solid var(--fpp-line); }
.fpp-calendar-week { background: #0d1318; }
.fpp-calendar-day { min-height: 118px; border-color: var(--fpp-line-soft); background: #0f151a; }
.fpp-calendar-day:hover { background: #121920; }
.fpp-calendar-event { border-radius: 3px; border-left: 2px solid var(--fpp-orange); background: #172029; }
.fpp-appointment-dialog { background: #10161b; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); box-shadow: var(--fpp-shadow); }
.fpp-agenda-list { border-top: 1px solid var(--fpp-line-soft); }
.fpp-apple-calendar-card { border-left: 3px solid #8497a7; }

/* ---------- Document / communication workspaces ---------- */
.fpp-document-center, .fpp-document-builder, .fpp-communication-layout, .fpp-builder-controls { gap: 14px; }
.fpp-document-action-grid, .fpp-comm-action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.fpp-document-action, .fpp-comm-action { min-height: 74px; padding: 12px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0e1419; }
.fpp-document-action:hover, .fpp-comm-action:hover { border-color: #43505b; background: #121920; }
.fpp-doc-toolbar, .fpp-builder-actions { border-color: var(--fpp-line); background: #0d1318; }
.fpp-template-list, .fpp-template-workspace, .fpp-send-panel { border-color: var(--fpp-line); background: var(--fpp-panel); }
.fpp-email-window { border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); overflow: hidden; background: #f8f9fa; color: #171a1d; }
.fpp-email-window * { color: inherit; }
.fpp-preview, .fpp-print-document { background: #fff; color: #171a1d; }
.fpp-preview *, .fpp-print-document * { color: inherit; }

/* ---------- Employees ---------- */
.fpp-employee-list { display: grid; gap: 7px; }
.fpp-employee-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 11px 12px; border: 1px solid var(--fpp-line); border-radius: 4px; background: #0d1318; }
.fpp-employee-summary { display: flex; align-items: center; gap: 11px; }
.fpp-employee-avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #202a32; color: #e6ebee; font-weight: 800; }
.fpp-permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.fpp-permission-card { padding: 11px; border: 1px solid var(--fpp-line); border-radius: 4px; background: #0d1318; }

/* ---------- Leads embedded legacy module ---------- */
.fpp-legacy-leads .fvp-portal { max-width: none; margin: 0; color: var(--fpp-text); font-family: inherit; }
.fpp-legacy-leads .fvp-hero { display: none; }
.fpp-legacy-leads .fvp-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 0 0 12px; border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: #0d1318; overflow: hidden; }
.fpp-legacy-leads .fvp-stat { min-height: 62px; display: grid; align-content: center; padding: 9px 13px; border-right: 1px solid var(--fpp-line-soft); background: transparent; border-radius: 0; box-shadow: none; }
.fpp-legacy-leads .fvp-stat:last-child { border-right: 0; }
.fpp-legacy-leads .fvp-stat b { color: #edf1f4; font-size: 17px; }
.fpp-legacy-leads .fvp-stat span { color: var(--fpp-muted); font-size: 10px; }
.fpp-legacy-leads .fvp-toolbar { display: grid; grid-template-columns: 190px minmax(260px,1fr) auto auto; gap: 8px; margin-bottom: 12px; }
.fpp-legacy-leads .fvp-toolbar select, .fpp-legacy-leads .fvp-toolbar input { height: 40px; border: 1px solid #34414c; border-radius: 3px; background: #0b1116; color: #eef2f4; }
.fpp-legacy-leads .fvp-button { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid #3b4650; border-radius: 3px; background: #151d24; color: #e4e9ed; font-size: 10px; font-weight: 700; }
.fpp-legacy-leads .fvp-button:not(.dark):not(.soft) { border-color: transparent; background: var(--fpp-orange); color: #fff; }
.fpp-legacy-leads .fvp-button.soft, .fpp-legacy-leads .fvp-button.dark { background: #141b21; }
.fpp-legacy-leads .fvp-table-wrap { border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); overflow: auto; background: var(--fpp-panel); }
.fpp-legacy-leads .fvp-table { width: 100%; border-collapse: collapse; min-width: 900px; font-size: 10px; }
.fpp-legacy-leads .fvp-table th { height: 34px; padding: 0 10px; border-bottom: 1px solid var(--fpp-line); background: #0d1318; color: #8796a2; font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }
.fpp-legacy-leads .fvp-table td { padding: 10px; border-bottom: 1px solid var(--fpp-line-soft); color: #cbd3d9; }
.fpp-legacy-leads .fvp-table tr:last-child td { border-bottom: 0; }
.fpp-legacy-leads .fvp-card, .fpp-legacy-leads .fvp-detail > div { border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: var(--fpp-panel); color: var(--fpp-text); box-shadow: none; }
.fpp-legacy-leads .fvp-note, .fpp-legacy-leads .fvp-select { border: 1px solid #34414c; background: #0b1116; color: #eef2f4; }

/* ---------- Search / quick lists ---------- */
.fpp-search-groups { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.fpp-search-list > a, .fpp-recent-list > div, .fpp-activity > div { border-color: var(--fpp-line-soft); }

/* ---------- Misc app components ---------- */
.fpp-stats, .fpp-kpi-grid, .fpp-dashboard-grid, .fpp-hq-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.fpp-stats > article, .fpp-kpi-grid > article, .fpp-kpi { min-height: 70px; padding: 11px 13px; border: 1px solid var(--fpp-line); border-radius: 4px; background: #0d1318; box-shadow: none; }
.fpp-stats span, .fpp-stats small, .fpp-kpi-grid small, .fpp-kpi small, .fpp-kpi em { color: var(--fpp-muted); font-size: 10px; font-style: normal; }
.fpp-stats strong, .fpp-kpi-grid strong, .fpp-kpi strong { display: block; margin-top: 4px; color: #eef2f4; font-size: 18px; }
.fpp-sales-board { display: grid; gap: 10px; }
.fpp-sale-card { border: 1px solid var(--fpp-line); border-radius: var(--fpp-radius); background: var(--fpp-panel); box-shadow: none; }
.fpp-sale-card-head { border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-sale-grid { border-bottom: 1px solid var(--fpp-line-soft); }
.fpp-sale-flow { border-color: var(--fpp-line); background: #0c1217; }
.fpp-sale-actions a { border-color: var(--fpp-line); background: #141b21; }
.fpp-sale-actions a.primary { background: var(--fpp-orange); border-color: var(--fpp-orange); }
.fpp-calc-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; align-items: end; }
.fpp-calc-result { min-height: 40px; display: flex; align-items: center; padding: 0 10px; border: 1px solid var(--fpp-line); border-radius: 3px; background: #0b1116; color: #dce2e7; }
.fpp-storage-meter { background: #202a32; }
.fpp-storage-meter > span { background: var(--fpp-orange); }

/* ---------- Login ---------- */
.fpp-login { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #080b0e; }
.fpp-login-card { width: min(410px,100%); padding: 30px; border: 1px solid #2a353f; border-radius: 5px; background: #0e1419; box-shadow: 0 22px 60px rgba(0,0,0,.32); }
.fpp-login-logo { width: 130px; margin-bottom: 24px; }
.fpp-login-card h1 { margin: 0 0 7px; font-size: 24px; }
.fpp-login-card > p { color: var(--fpp-muted); }
.fpp-login-card form { display: grid; gap: 12px; margin-top: 18px; }
.fpp-login-card form label { display: grid; gap: 6px; }
.fpp-login-links { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--fpp-line-soft); color: var(--fpp-muted); font-size: 10px; }

/* ---------- Density mode ---------- */
body.fpp-density-compact { --fpp-control-h: 35px; font-size: 12px; }
body.fpp-density-compact .fpp-content { padding-top: 22px; }
body.fpp-density-compact .fpp-card { padding: 13px 14px; }
body.fpp-density-compact .fpp-table td { padding-block: 8px; }
body.fpp-density-compact .fpp-queue-list > a { min-height: 53px; }
body.fpp-density-compact .fpp-page-head { min-height: 65px; margin-bottom: 17px; padding-bottom: 14px; }
body.fpp-density-compact .fpp-page-head h1 { font-size: 25px; }

/* ---------- Responsive ---------- */
@media (max-width: 1260px) {
  .fpp-command-strip { grid-template-columns: repeat(3,1fr); }
  .fpp-command-strip > * { border-bottom: 1px solid var(--fpp-line-soft); }
  .fpp-command-strip > *:nth-child(3n) { border-right: 0; }
  .fpp-operator-grid { grid-template-columns: minmax(0,1.5fr) minmax(290px,.8fr); }
  .fpp-form-grid, .fpp-hq-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fpp-export-bar { grid-template-columns: 1fr; align-items: start; }
  .fpp-export-controls { width: fit-content; }
}
@media (max-width: 980px) {
  .fpp-side { width: 214px; }
  .fpp-main { margin-left: 214px; }
  .fpp-user > div:last-child { display: none; }
  .fpp-user { min-width: auto; }
  .fpp-search { width: min(440px, 55vw); }
  .fpp-operator-grid, .fpp-dossier-columns { grid-template-columns: 1fr; }
  .fpp-system-strip, .fpp-ledger-strip { grid-template-columns: repeat(2,1fr); }
  .fpp-system-strip > div:nth-child(2), .fpp-ledger-strip > div:nth-child(2) { border-right: 0; }
  .fpp-system-strip > div:nth-child(-n+2), .fpp-ledger-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--fpp-line-soft); }
  .fpp-register-toolbar { align-items: stretch; flex-direction: column; }
  .fpp-filter-inline { width: 100%; }
  .fpp-hq-apple-row { grid-template-columns: 1fr; gap: 8px; padding: 12px 0; }
  .fpp-hq-apple-actions { justify-content: flex-start; }
}
@media (max-width: 760px) {
  :root { --fpp-top-h: 56px; }
  body.fpp-body { font-size: 13px; }
  .fpp-side { width: min(86vw, 300px); transform: translateX(-102%); box-shadow: 20px 0 50px rgba(0,0,0,.4); }
  body.menu-open .fpp-side { transform: translateX(0); }
  .fpp-side[aria-hidden="false"] { transform: translateX(0); }
  .fpp-main, body.sidebar-collapsed .fpp-main { margin-left: 0; }
  .fpp-menu, .fpp-mobile-close { display: grid; }
  .fpp-collapse, .fpp-side-collapse, .fpp-layout-toggle { display: none; }
  .fpp-mobile-close { position: absolute; right: 10px; top: 10px; z-index: 4; }
  .fpp-menu-scrim { position: fixed; inset: 0; z-index: 80; border: 0; background: rgba(0,0,0,.55); }
  body.menu-open .fpp-menu-scrim { display: block; }
  .fpp-top { padding: 0 12px; gap: 8px; }
  .fpp-search { width: auto; flex: 1 1 auto; }
  .fpp-top-actions { margin-left: 0; }
  .fpp-owner-btn span { display: none; }
  .fpp-user { display: none; }
  .fpp-content { padding: 19px 12px 82px; }
  .fpp-page-head { align-items: flex-start; flex-direction: column; min-height: 0; gap: 12px; margin-bottom: 17px; }
  .fpp-page-head h1 { font-size: 25px; }
  .fpp-head-actions { justify-content: flex-start; width: 100%; }
  .fpp-command-strip { grid-template-columns: repeat(2,1fr); }
  .fpp-command-strip > * { min-height: 60px; border-right: 1px solid var(--fpp-line-soft); }
  .fpp-command-strip > *:nth-child(2n) { border-right: 0; }
  .fpp-command-strip > *:nth-child(3n) { border-right: 1px solid var(--fpp-line-soft); }
  .fpp-command-date { grid-column: 1 / -1; }
  .fpp-queue-list > a { grid-template-columns: 7px 45px minmax(0,1fr); }
  .fpp-queue-list > a > b { display: none; }
  .fpp-ledger-rows > div { grid-template-columns: 67px 1fr; padding-block: 7px; }
  .fpp-ledger-rows span { grid-column: 2; }
  .fpp-form-grid, .fpp-hq-grid, .fpp-search-groups, .fpp-document-action-grid, .fpp-comm-action-grid, .fpp-permission-grid, .fpp-calc-grid { grid-template-columns: 1fr; }
  .fpp-filter, .fpp-filter-inline { grid-template-columns: 1fr; }
  .fpp-register-toolbar .fpp-vehicle-tabs { width: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .fpp-system-strip, .fpp-ledger-strip { grid-template-columns: 1fr; }
  .fpp-system-strip > div, .fpp-ledger-strip > div { border-right: 0; border-bottom: 1px solid var(--fpp-line-soft); }
  .fpp-system-strip > div:last-child, .fpp-ledger-strip > div:last-child { border-bottom: 0; }
  .fpp-export-controls { width: 100%; grid-template-columns: 1fr 1fr; }
  .fpp-export-controls button { grid-column: 1 / -1; }
  .fpp-logo-manager { grid-template-columns: 1fr; }
  .fpp-logo-controls { grid-template-columns: 1fr; }
  .fpp-hq-apple-row dl { grid-template-columns: 1fr; }
  .fpp-dossier-hero { grid-template-columns: 1fr; gap: 12px; }
  .fpp-dossier-hero > div:last-child { justify-items: start; }
  .fpp-dossier-steps { grid-template-columns: 1fr; }
  .fpp-legacy-leads .fvp-stats { grid-template-columns: repeat(2,1fr); }
  .fpp-legacy-leads .fvp-toolbar { grid-template-columns: 1fr; }
  .fpp-mobile-quickbar { position: fixed; z-index: 65; left: 10px; right: 10px; bottom: 9px; display: grid; grid-template-columns: repeat(3,1fr); min-height: 56px; border: 1px solid var(--fpp-line); border-radius: 7px; background: rgba(13,19,24,.98); box-shadow: 0 12px 30px rgba(0,0,0,.35); }
  .fpp-mobile-quickbar a { display: grid; place-items: center; align-content: center; gap: 2px; color: #aab5bd; font-size: 10px; }
  .fpp-mobile-quickbar b { width: 20px; height: 20px; display: grid; place-items: center; color: var(--fpp-orange); }
  .fpp-mobile-quickbar svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
}

@media print {
  .fpp-side, .fpp-top, .fpp-mobile-quickbar, .fpp-page-head, .fpp-head-actions, .fpp-row-actions, .fpp-btn, .fpp-mini-btn { display: none; }
  .fpp-main { margin: 0; }
  .fpp-content { max-width: none; padding: 0; }
}

/* 29.3 readability floor for interactive portal UI; print-document typography is untouched. */
.fpp-calendar-event time,
.fpp-calendar-event strong,
.fpp-calendar-event small,
.fpp-calendar-event-button time,
.fpp-calendar-event-button strong,
.fpp-calendar-event-button small,
.fpp-access-pill,
.fpp-email-brand small { font-size: 10px; }

/* ---------- Progressive interaction components ---------- */
.fpp-builder-view-switch {
  display: none;
  grid-column: 1 / -1;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--fpp-line);
  border-radius: var(--fpp-radius);
  background: #0b1116;
}
.fpp-builder-view-switch button {
  flex: 1;
  min-height: 38px;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: var(--fpp-muted);
  font-size: 11px;
  font-weight: 720;
  cursor: pointer;
}
.fpp-builder-view-switch button.active { background: #1a2026; color: #fff; box-shadow: inset 0 -2px 0 var(--fpp-orange); }

.fpp-action-overflow { position: relative; }
.fpp-action-overflow > summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 31px;
  padding: 0 10px;
  border: 1px solid #34404a;
  border-radius: var(--fpp-radius-sm);
  background: #141b21;
  color: #dbe1e6;
  font-size: 10px;
  font-weight: 720;
  cursor: pointer;
  list-style: none;
}
.fpp-action-overflow > summary::-webkit-details-marker { display: none; }
.fpp-action-overflow[open] > summary { border-color: #765039; color: #fff; }
.fpp-action-overflow-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 40;
  display: grid;
  gap: 5px;
  width: 210px;
  padding: 7px;
  border: 1px solid var(--fpp-line);
  border-radius: var(--fpp-radius);
  background: #10161b;
  box-shadow: var(--fpp-shadow);
}
.fpp-table-wrap:has(.fpp-action-overflow[open]) { overflow: visible; }
.fpp-action-overflow-menu > *,
.fpp-action-overflow-menu .fpp-mini-btn,
.fpp-action-overflow-menu form button { width: 100%; justify-content: flex-start; }

.fpp-save-state {
  display: none;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid #66532b;
  border-radius: 999px;
  background: var(--fpp-amber-soft);
  color: #e5c47b;
  font-size: 10px;
  font-weight: 720;
  white-space: nowrap;
}
body.fpp-has-unsaved .fpp-save-state { display: inline-flex; }
.fpp-save-state::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--fpp-amber); }

@media (max-width: 1024px) {
  .fpp-document-builder { display: grid; grid-template-columns: 1fr; }
  .fpp-builder-view-switch { display: flex; }
  .fpp-document-builder.fpp-builder-show-controls > #fppPrintableDocument { display: none; }
  .fpp-document-builder.fpp-builder-show-preview > .fpp-builder-controls { display: none; }
  .fpp-builder-controls { position: static; max-height: none; overflow: visible; padding-right: 0; }
  #fppPrintableDocument { margin-inline: auto; }
}

@media (max-width: 760px) {
  .fpp-action-overflow-menu { position: fixed; left: 12px; right: 12px; bottom: calc(74px + env(safe-area-inset-bottom)); top: auto; width: auto; }
  .fpp-save-state { min-width: 30px; width: 30px; padding: 0; justify-content: center; font-size: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.fpp-body *, body.fpp-body *::before, body.fpp-body *::after { transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; scroll-behavior: auto; }
}
@media print {
  .fpp-builder-view-switch, .fpp-save-state, .fpp-action-overflow { display: none; }
}

/* ========================================================================== 
   FIVE Performance OS 29.3.1 — Responsive shell contract
   The legacy foundation stylesheet historically used CSS Grid for .fpp-app.
   In the operator shell the sidebar is fixed, so the main workspace must be
   a normal block with an explicit sidebar offset. Keeping both models active
   can collapse the workspace into the old 248px grid column on desktop.
   These rules make desktop, iPad and phone layouts mutually exclusive.
   ========================================================================== */

/* Every viewport starts from one predictable sizing model. */
html,
body.fpp-body,
.fpp-app,
.fpp-main,
.fpp-content {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.fpp-body { overflow-x: hidden; }
.fpp-app { display: block; position: relative; }
.fpp-main {
  width: auto;
  max-width: none;
  min-width: 0;
  margin-left: var(--fpp-side-w);
}
.fpp-content {
  width: 100%;
  max-width: 1600px;
  min-width: 0;
  margin-inline: auto;
}
.fpp-content > * { min-width: 0; }

/* Desktop / notebook: persistent navigation and full work surface. */
@media (min-width: 1101px) {
  .fpp-side {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--fpp-side-w);
    height: 100vh;
    transform: none;
  }
  .fpp-main { margin-left: var(--fpp-side-w); }
  .fpp-menu,
  .fpp-mobile-close,
  .fpp-menu-scrim,
  .fpp-mobile-quickbar { display: none; }
  body.sidebar-collapsed .fpp-main { margin-left: 78px; }
  body.sidebar-collapsed .fpp-side { width: 78px; }
  .fpp-top { padding-inline: 23px; }
  .fpp-content { max-width: 1600px; padding: 32px 34px 56px; }
}

/* iPad / compact notebook: use an off-canvas menu so content never gets squeezed. */
@media (min-width: 761px) and (max-width: 1100px) {
  :root { --fpp-top-h: 68px; }
  .fpp-side,
  body.sidebar-collapsed .fpp-side {
    position: fixed;
    inset: 0 auto 0 0;
    width: 248px;
    height: 100dvh;
    padding: 0;
    transform: translate3d(-105%,0,0);
    box-shadow: 22px 0 58px rgba(0,0,0,.46);
  }
  body.menu-open .fpp-side,
  body.fpp-body.menu-open .fpp-side,
  .fpp-side[aria-hidden="false"] { transform: translate3d(0,0,0); }
  .fpp-main,
  body.sidebar-collapsed .fpp-main { margin-left: 0; width: 100%; }
  .fpp-menu { display: grid; }
  .fpp-mobile-close { display: grid; }
  .fpp-collapse,
  .fpp-side-collapse,
  .fpp-layout-toggle { display: none; }
  .fpp-menu-scrim {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: block;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    border: 0;
    background: rgba(0,0,0,.58);
    transition: opacity .18s ease, visibility .18s ease;
  }
  body.menu-open .fpp-menu-scrim,
  body.fpp-body.menu-open .fpp-menu-scrim {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
  .fpp-top { padding: 0 20px; gap: 10px; }
  .fpp-search {
    display: flex;
    flex: 1 1 420px;
    width: auto;
    max-width: 560px;
    min-width: 220px;
  }
  .fpp-top-actions { margin-left: auto; }
  .fpp-user { display: none; }
  .fpp-content { max-width: none; padding: 28px 24px 50px; }
  .fpp-page-head { align-items: flex-end; flex-direction: row; }
  .fpp-page-head > div:first-child { max-width: min(760px, 68vw); }
  .fpp-page-head h1 { font-size: 28px; }
  .fpp-command-strip { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .fpp-command-date { grid-column: auto; }
  .fpp-operator-grid { grid-template-columns: 1fr; }
  .fpp-form-grid,
  .fpp-hq-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fpp-filter { grid-template-columns: minmax(220px,1fr) minmax(150px,.45fr) minmax(150px,.45fr) auto; }
  .fpp-table-wrap { overflow-x: auto; overscroll-behavior-inline: contain; }
  .fpp-mobile-quickbar { display: none; }
}

/* Phone / narrow tablet portrait: single-column touch layout. */
@media (max-width: 760px) {
  .fpp-app { display: block; }
  .fpp-main,
  body.sidebar-collapsed .fpp-main { width: 100%; max-width: 100%; margin-left: 0; }
  .fpp-content { width: 100%; max-width: 100%; padding: 16px 12px calc(88px + env(safe-area-inset-bottom)); overflow-x: clip; }
  .fpp-side,
  body.sidebar-collapsed .fpp-side {
    width: min(88vw, 280px);
    height: 100dvh;
    padding: 0;
    transform: translate3d(-105%,0,0);
  }
  body.menu-open .fpp-side,
  body.fpp-body.menu-open .fpp-side,
  .fpp-side[aria-hidden="false"] { transform: translate3d(0,0,0); }
  .fpp-brand { height: 126px; padding: 22px 20px 19px; }
  .fpp-brand img { width: 118px; }
  .fpp-side nav { padding: 12px 10px 16px; }
  .fpp-side nav > a { min-height: 46px; font-size: 13px; }
  .fpp-top { min-width: 0; padding: 0 10px; gap: 7px; }
  .fpp-menu { flex: 0 0 38px; width: 38px; height: 38px; }
  .fpp-search { display: flex; flex: 1 1 auto; min-width: 0; width: auto; height: 38px; padding-inline: 10px; }
  .fpp-search input { font-size: 16px; }
  .fpp-top-actions { flex: 0 0 auto; margin-left: 0; gap: 5px; }
  .fpp-context-help,
  .fpp-owner-btn { width: 38px; min-width: 38px; height: 38px; padding: 0; justify-content: center; }
  .fpp-page-head { width: 100%; align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 16px; padding-bottom: 15px; }
  .fpp-page-head > div:first-child { width: 100%; max-width: 100%; }
  .fpp-page-head h1 { max-width: 100%; font-size: clamp(23px, 7vw, 28px); overflow-wrap: anywhere; }
  .fpp-page-head p { max-width: 100%; font-size: 12px; }
  .fpp-head-actions { display: flex; flex-wrap: wrap; width: 100%; gap: 7px; }
  .fpp-head-actions > *,
  .fpp-page-head > .fpp-btn { flex: 1 1 150px; width: auto; min-width: 0; }
  .fpp-card { width: 100%; max-width: 100%; padding: 14px; }
  .fpp-card-head,
  .fpp-card-heading { gap: 10px; }
  .fpp-command-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fpp-command-date { grid-column: 1 / -1; }
  .fpp-command-strip > div,
  .fpp-command-strip > a { min-width: 0; padding-inline: 11px; }
  .fpp-command-strip strong { font-size: 15px; overflow-wrap: anywhere; }
  .fpp-operator-grid,
  .fpp-form-grid,
  .fpp-hq-grid,
  .fpp-search-groups,
  .fpp-document-action-grid,
  .fpp-comm-action-grid,
  .fpp-permission-grid,
  .fpp-calc-grid { grid-template-columns: 1fr; }
  .fpp-filter,
  .fpp-filter-inline { width: 100%; grid-template-columns: 1fr; }
  .fpp-filter > *,
  .fpp-filter-inline > * { width: 100%; min-width: 0; }
  .fpp-register-toolbar { width: 100%; align-items: stretch; flex-direction: column; }
  .fpp-register-toolbar .fpp-vehicle-tabs { width: 100%; max-width: 100%; overflow-x: auto; flex-wrap: nowrap; }
  .fpp-register { width: 100%; max-width: 100%; overflow: hidden; }
  .fpp-table-wrap { width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .fpp-table { min-width: 720px; }
  .fpp-export-controls { width: 100%; grid-template-columns: 1fr; }
  .fpp-export-controls button { grid-column: auto; width: 100%; }
  .fpp-ledger-strip,
  .fpp-system-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fpp-ledger-strip > div,
  .fpp-system-strip > div { min-width: 0; }
}

/* Very small phones: preserve actions, sacrifice the full search field first. */
@media (max-width: 480px) {
  .fpp-search { display: none; }
  .fpp-top-actions { margin-left: auto; }
  .fpp-command-strip,
  .fpp-ledger-strip,
  .fpp-system-strip { grid-template-columns: 1fr 1fr; }
  .fpp-command-date { grid-column: 1 / -1; }
  .fpp-head-actions > * { flex-basis: 100%; }
  .fpp-mobile-quickbar { left: 8px; right: 8px; }
}


/* ========================================================================== 
   FIVE Performance OS 29.3.3 — Register header alignment
   29.3.2 used a fixed header height with zero vertical padding. Table cells
   use baseline alignment by default, which pulled labels into the upper edge
   of the rounded register. Restore the proven 29.1 register proportions and
   explicitly centre header labels on desktop, iPad and mobile.
   ========================================================================== */
.fpp-table-wrap {
  border: 1px solid var(--fpp-line);
  border-radius: 11px;
  background: #0d1217;
}
.fpp-table thead { background: #0d1318; }
.fpp-table th {
  height: auto;
  min-height: 34px;
  padding: 10px 11px;
  vertical-align: middle;
  line-height: 1.2;
  background-clip: padding-box;
}
.fpp-table thead th:first-child { border-top-left-radius: 10px; }
.fpp-table thead th:last-child { border-top-right-radius: 10px; }

/* ========================================================================== 
   FIVE Performance OS 29.3.5 — navigation & action consistency
   Final portal layer: one control height on the daily operator pages, a calmer
   sidebar collapse control, and action columns that fit their real content.
   ========================================================================== */

/* Sidebar collapse control: attached to the rail, visually centred and less like
   a floating round badge. The legacy JS may still replace the text arrow; the
   visible chevron is drawn here so the button stays consistent in both states. */
.fpp-side-collapse {
  top: 145px;
  right: -17px;
  width: 34px;
  height: 42px;
  border: 1px solid #34414c;
  border-left-color: #242e37;
  border-radius: 0 9px 9px 0;
  background: #11181e;
  color: #cbd3da;
  box-shadow: 8px 0 20px rgba(0,0,0,.24);
  font-size: 0;
  line-height: 1;
  transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.fpp-side-collapse::before {
  content: "‹";
  display: block;
  margin-top: -1px;
  font: 600 22px/1 Arial, sans-serif;
}
body.sidebar-collapsed .fpp-side-collapse { right: -17px; }
body.sidebar-collapsed .fpp-side-collapse::before { content: "›"; }
.fpp-side-collapse:hover,
.fpp-side-collapse:focus-visible {
  border-color: #87502f;
  background: #182129;
  color: #fff;
  box-shadow: 8px 0 22px rgba(0,0,0,.30);
}
body.sidebar-collapsed .fpp-brand { padding-inline: 9px; }
body.sidebar-collapsed .fpp-brand img {
  width: 58px;
  max-width: 58px;
  object-fit: contain;
  object-position: center;
}

/* Mobile/tablet menu button uses the same restrained shell language. */
@media (max-width: 1100px) {
  .fpp-menu {
    border-radius: 8px;
    border-color: #34414c;
    background: #11181e;
    box-shadow: none;
  }
  .fpp-menu:hover,
  .fpp-menu:focus-visible { border-color: #87502f; background: #182129; }
  .fpp-menu-icon { width: 20px; height: 15px; }
  .fpp-menu-icon i { height: 1.5px; }
}

/* Daily operator pages use one exact action height. The extra route specificity
   intentionally beats older legacy selectors such as .fpp-content button[type]. */
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn,.fpp-mini-btn) {
  box-sizing: border-box;
  width: auto;
  min-width: 0;
  height: 40px;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 7px;
  font-size: 11.5px;
  font-weight: 760;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  box-shadow: none;
  transform: none;
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn,.fpp-mini-btn):hover {
  transform: none;
  box-shadow: none;
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content .fpp-mini-btn:not(.secondary):not(.danger) {
  border-color: var(--fpp-orange);
  background: var(--fpp-orange);
  color: #fff;
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content .fpp-mini-btn:not(.secondary):not(.danger):hover {
  border-color: var(--fpp-orange-2);
  background: var(--fpp-orange-2);
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn.secondary,.fpp-btn.fpp-btn-secondary,.fpp-mini-btn.secondary) {
  border-color: #34414c;
  background: #111820;
  color: #e7ecef;
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn.secondary,.fpp-btn.fpp-btn-secondary,.fpp-mini-btn.secondary):hover {
  border-color: #4a5965;
  background: #182129;
  color: #fff;
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn.danger,.fpp-mini-btn.danger) {
  border-color: #6d3733;
  background: #211617;
  color: #efaaa4;
}
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn.danger,.fpp-mini-btn.danger):hover {
  border-color: #9a4b43;
  background: #2d1b1a;
  color: #fff;
}

/* Header CTAs and filter controls now align to the same 40px baseline. */
body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-head-actions {
  gap: 8px;
  align-items: center;
}
body.fpp-body:is(.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content .fpp-filter button,
body.fpp-body.fpp-route-appointments .fpp-agenda-filter select,
body.fpp-body.fpp-route-appointments .fpp-agenda-filter .fpp-mini-btn {
  height: 40px;
  min-height: 40px;
  border-radius: 7px;
  font-size: 11.5px;
  line-height: 1;
}

/* FIVE HQ: equal paired actions rather than one wide orange button and one tiny
   reset button. Header/save actions keep natural width but identical height. */
body.fpp-body.fpp-route-hq .fpp-hq-apple-actions {
  display: grid;
  grid-template-columns: repeat(2, 124px);
  gap: 8px;
  justify-content: end;
  align-items: center;
}
body.fpp-body.fpp-route-hq .fpp-hq-apple-actions form {
  width: 124px;
  margin: 0;
}
body.fpp-body.fpp-route-hq .fpp-hq-apple-actions .fpp-mini-btn { width: 100%; }
body.fpp-body.fpp-route-hq .fpp-card-head > .fpp-btn,
body.fpp-body.fpp-route-hq .fpp-hq-save .fpp-btn { flex: 0 0 auto; }

/* Owned stock: three row actions stay on one clean line and share dimensions. */
body.fpp-body.fpp-route-vehicles .fpp-table th:last-child,
body.fpp-body.fpp-route-vehicles .fpp-table td:last-child { min-width: 292px; }
body.fpp-body.fpp-route-vehicles .fpp-row-actions {
  flex-wrap: nowrap;
  gap: 6px;
}
body.fpp-body.fpp-route-vehicles .fpp-row-actions form { display: inline-flex; }
body.fpp-body.fpp-route-vehicles .fpp-row-actions :is(.fpp-mini-btn,form) { flex: 0 0 auto; }

/* Invoice register: preserve the compact 29.3.4 column, but use the same 40px
   control contract as the rest of the operator pages. */
body.fpp-body.fpp-route-invoices .fpp-invoice-register .fpp-table th:last-child,
body.fpp-body.fpp-route-invoices .fpp-invoice-register .fpp-table td:last-child {
  min-width: 210px;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-row-actions {
  gap: 6px;
  flex-wrap: nowrap;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-row-actions .fpp-mini-btn {
  width: auto;
  height: 40px;
  min-height: 40px;
  padding: 0 13px;
  border-radius: 7px;
  font-size: 11.5px;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-row-actions > a.fpp-mini-btn { min-width: 72px; }
body.fpp-body.fpp-route-invoices .fpp-invoice-row-actions .fpp-mini-btn.danger { min-width: 96px; }

/* Dossier register: the open action has the same dimensions as the other pages. */
body.fpp-body.fpp-route-dossiers .fpp-dossier-table th:last-child,
body.fpp-body.fpp-route-dossiers .fpp-dossier-table td:last-child { min-width: 126px; }
body.fpp-body.fpp-route-dossiers .fpp-dossier-table td:last-child .fpp-mini-btn { width: 100%; }

/* Consignment: keep the two important actions visible on one row and turn "Meer"
   into a real third control instead of a tiny leftover beneath two full-width CTAs. */
body.fpp-body.fpp-route-consignments .fpp-table th:last-child,
body.fpp-body.fpp-route-consignments .fpp-table td:last-child { min-width: 316px; }
body.fpp-body.fpp-route-consignments .fpp-consignment-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
body.fpp-body.fpp-route-consignments .fpp-consignment-actions > :is(.fpp-mini-btn,.fpp-mini-state,form,.fpp-action-overflow) {
  width: auto;
  min-width: 0;
  flex: 0 0 auto;
}
body.fpp-body.fpp-route-consignments .fpp-consignment-actions > .action-sale { min-width: 108px; }
body.fpp-body.fpp-route-consignments .fpp-consignment-actions > .action-dossier { min-width: 102px; }
body.fpp-body.fpp-route-consignments .fpp-consignment-actions .fpp-mini-state {
  box-sizing: border-box;
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 7px;
  font-size: 11.5px;
  line-height: 1;
}
body.fpp-body.fpp-route-consignments .fpp-action-overflow > summary {
  box-sizing: border-box;
  min-width: 64px;
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 7px;
  font-size: 11.5px;
  font-weight: 760;
  background: #111820;
  border-color: #34414c;
}
body.fpp-body.fpp-route-consignments .fpp-action-overflow > summary::after {
  content: "···";
  margin-left: 5px;
  color: #7f8b95;
  letter-spacing: 1px;
}
body.fpp-body.fpp-route-consignments .fpp-action-overflow-menu {
  width: 224px;
  gap: 6px;
  padding: 8px;
  border-radius: 8px;
}
body.fpp-body.fpp-route-consignments .fpp-action-overflow-menu :is(.fpp-mini-btn,.fpp-mini-state),
body.fpp-body.fpp-route-consignments .fpp-action-overflow-menu form,
body.fpp-body.fpp-route-consignments .fpp-action-overflow-menu form button {
  width: 100%;
  min-width: 0;
  justify-content: flex-start;
}
body.fpp-body.fpp-route-consignments .fpp-action-overflow-menu .fpp-mini-btn:not(.danger) {
  border-color: #34414c;
  background: #111820;
  color: #e7ecef;
}

@media (max-width: 900px) {
  body.fpp-body.fpp-route-hq .fpp-hq-apple-actions {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0,1fr));
    justify-content: stretch;
  }
  body.fpp-body.fpp-route-hq .fpp-hq-apple-actions form { width: 100%; }
}

@media (max-width: 760px) {
  body.fpp-body:is(.fpp-route-hq,.fpp-route-appointments,.fpp-route-dossiers,.fpp-route-invoices,.fpp-route-vehicles,.fpp-route-consignments) .fpp-content :is(.fpp-btn,.fpp-mini-btn),
  body.fpp-body.fpp-route-consignments .fpp-action-overflow > summary {
    height: 42px;
    min-height: 42px;
  }
  body.fpp-body.fpp-route-vehicles .fpp-row-actions { flex-wrap: wrap; }
  body.fpp-body.fpp-route-consignments .fpp-consignment-actions { justify-content: flex-start; }
}

/* ========================================================================== 
   FIVE Performance OS 29.3.6 — iPad & mobile page-fit audit
   One responsive contract for every page heading and operator work surface.
   Header actions are now wrapped by .fpp-page-actions in all portal modules.
   ========================================================================== */

/* Stable page-heading contract on every route. */
.fpp-page-title {
  flex: 1 1 auto;
  min-width: 0;
}
.fpp-page-actions {
  flex: 0 0 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.fpp-page-actions > form {
  display: flex;
  margin: 0;
}
.fpp-page-actions > .fpp-head-actions {
  width: auto;
  min-width: 0;
}
.fpp-page-actions :is(.fpp-btn,.fpp-mini-btn),
.fpp-page-actions summary.fpp-btn {
  box-sizing: border-box;
}

/* Keep long labels and descriptions inside their own surface instead of
   widening the viewport on tablets. */
.fpp-page-title,
.fpp-card-head > div,
.fpp-card-heading > div,
.fpp-employee-summary,
.fpp-stage-list a > span,
.fpp-explain-list li,
.fpp-dossier-list article > div {
  min-width: 0;
}
.fpp-page-title h1,
.fpp-page-title p,
.fpp-card-head h2,
.fpp-card-heading h2,
.fpp-card-head p,
.fpp-card-heading p,
.fpp-stage-list span,
.fpp-explain-list span {
  overflow-wrap: anywhere;
}

/* Tablet landscape / compact notebook. */
@media (min-width: 901px) and (max-width: 1100px) {
  .fpp-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 18px;
  }
  .fpp-page-head > .fpp-page-title {
    width: auto;
    max-width: none;
  }
  .fpp-page-actions {
    max-width: 46vw;
  }
  .fpp-page-actions .fpp-head-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
  }
  .fpp-kpi-grid,
  .fpp-dashboard-grid,
  .fpp-hq-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .fpp-report-grid { grid-template-columns: 1fr; }
  .fpp-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
}

/* iPad portrait / narrow tablet. Headings stack before buttons become cramped. */
@media (min-width: 761px) and (max-width: 900px) {
  .fpp-content { padding: 24px 20px 46px; }
  .fpp-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 14px;
    min-height: 0;
    margin-bottom: 20px;
    padding-bottom: 17px;
  }
  .fpp-page-head > .fpp-page-title {
    width: 100%;
    max-width: none;
  }
  .fpp-page-head h1 { font-size: clamp(26px, 4vw, 30px); }
  .fpp-page-actions {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
  }
  .fpp-page-actions > .fpp-head-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .fpp-page-actions > .fpp-head-actions > *,
  .fpp-page-actions > .fpp-head-actions > form,
  .fpp-page-actions > .fpp-head-actions .fpp-btn,
  .fpp-page-actions > .fpp-head-actions summary.fpp-btn {
    width: 100%;
    min-width: 0;
  }
  .fpp-page-actions > form { max-width: 320px; }
  .fpp-page-actions > form .fpp-btn { width: 100%; }

  .fpp-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
  .fpp-filter > * { min-width: 0; width: 100%; }
  .fpp-filter button { width: 100%; }
  .fpp-agenda-filter form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
  }
  .fpp-agenda-filter form > label { min-width: 0; width: 100%; }

  .fpp-vehicle-tabs,
  .fpp-hq-tabs {
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  .fpp-vehicle-tabs a,
  .fpp-hq-tabs a { flex: 0 0 auto; }

  .fpp-document-action-grid,
  .fpp-comm-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fpp-kpi-grid,
  .fpp-dashboard-grid,
  .fpp-hq-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fpp-report-grid { grid-template-columns: 1fr; }

  .fpp-card-head,
  .fpp-card-heading { flex-wrap: wrap; }
  .fpp-card-head > .fpp-row-actions,
  .fpp-card-heading > .fpp-row-actions { max-width: 100%; }

  .fpp-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
}

/* Phone / narrow portrait tablet. Actions become deliberate full-width touch
   targets and cards lose any desktop-only horizontal assumptions. */
@media (max-width: 760px) {
  .fpp-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 13px;
    align-items: start;
    margin-bottom: 17px;
    padding-bottom: 15px;
  }
  .fpp-page-title { width: 100%; }
  .fpp-page-head h1 {
    width: 100%;
    font-size: clamp(24px, 7vw, 28px);
    line-height: 1.08;
  }
  .fpp-page-head p {
    width: 100%;
    max-width: none;
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.5;
  }
  .fpp-page-actions {
    width: 100%;
    max-width: none;
    justify-content: stretch;
  }
  .fpp-page-actions > .fpp-head-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    gap: 8px;
  }
  .fpp-page-actions > .fpp-head-actions > *,
  .fpp-page-actions > .fpp-head-actions > form,
  .fpp-page-actions > form,
  .fpp-page-actions > a.fpp-btn,
  .fpp-page-actions > button.fpp-btn,
  .fpp-page-actions .fpp-action-menu,
  .fpp-page-actions .fpp-action-menu > summary,
  .fpp-page-actions .fpp-head-actions .fpp-btn {
    width: 100%;
    max-width: none;
    min-width: 0;
  }
  .fpp-page-actions > form .fpp-btn,
  .fpp-page-actions .fpp-head-actions form .fpp-btn,
  .fpp-page-actions .fpp-head-actions form button {
    width: 100%;
  }
  .fpp-page-actions :is(.fpp-btn,summary.fpp-btn) {
    min-height: 44px;
    justify-content: center;
    text-align: center;
  }
  .fpp-page-actions > :is(.fpp-release-badge,.fpp-hq-lock) {
    width: fit-content;
    max-width: 100%;
  }
  .fpp-page-actions .fpp-action-menu-popover {
    left: 0;
    right: auto;
    width: 100%;
    max-width: calc(100vw - 24px);
  }

  .fpp-card-head,
  .fpp-card-heading {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
  }
  .fpp-card-head > .fpp-row-actions,
  .fpp-card-heading > .fpp-row-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .fpp-card-head > .fpp-row-actions .fpp-btn,
  .fpp-card-heading > .fpp-row-actions .fpp-btn {
    flex: 1 1 180px;
    min-width: 0;
  }

  .fpp-hq-save {
    align-items: stretch;
    flex-direction: column;
  }
  .fpp-hq-save .fpp-btn { width: 100%; }

  .fpp-vehicle-tabs,
  .fpp-hq-tabs {
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .fpp-vehicle-tabs::-webkit-scrollbar,
  .fpp-hq-tabs::-webkit-scrollbar { display: none; }
  .fpp-vehicle-tabs a,
  .fpp-hq-tabs a { flex: 0 0 auto; }

  .fpp-kpi-grid,
  .fpp-dashboard-grid,
  .fpp-hq-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fpp-report-grid { grid-template-columns: 1fr; }
  .fpp-stage-list a { gap: 12px; }
  .fpp-stage-list a > span { flex: 1 1 auto; }
  .fpp-stage-list a > strong { flex: 0 0 auto; }

  .fpp-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }
  .fpp-table { width: max-content; min-width: 720px; }

  /* Registers keep action buttons in one predictable row inside the horizontally
     scrollable table instead of creating tall mixed-size action stacks. */
  body.fpp-body.fpp-route-vehicles .fpp-row-actions,
  body.fpp-body.fpp-route-invoices .fpp-invoice-row-actions,
  body.fpp-body.fpp-route-consignments .fpp-consignment-actions {
    flex-wrap: nowrap;
  }
  body.fpp-body.fpp-route-vehicles .fpp-table th:last-child,
  body.fpp-body.fpp-route-vehicles .fpp-table td:last-child { min-width: 292px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-register .fpp-table th:last-child,
  body.fpp-body.fpp-route-invoices .fpp-invoice-register .fpp-table td:last-child { min-width: 210px; }
  body.fpp-body.fpp-route-consignments .fpp-table th:last-child,
  body.fpp-body.fpp-route-consignments .fpp-table td:last-child { min-width: 316px; }

  .fpp-form-actions { width: 100%; }
  .fpp-form-actions > :is(.fpp-btn,a.fpp-btn,button.fpp-btn) {
    flex: 1 1 180px;
    min-width: 0;
  }
  .fpp-export-controls,
  .fpp-export-controls button { width: 100%; }

  .fpp-document-action-grid,
  .fpp-comm-action-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .fpp-kpi-grid,
  .fpp-dashboard-grid,
  .fpp-hq-kpis { grid-template-columns: 1fr; }

  .fpp-employee-row { grid-template-columns: minmax(0, 1fr); }
  .fpp-employee-row > .fpp-row-actions,
  .fpp-employee-row > form { width: 100%; }
  .fpp-employee-row .fpp-btn,
  .fpp-employee-row .fpp-mini-btn { width: 100%; }

  .fpp-card-head > a.fpp-btn,
  .fpp-card-heading > a.fpp-btn,
  .fpp-card-head > form,
  .fpp-card-heading > form {
    width: 100%;
  }
  .fpp-card-head > form .fpp-btn,
  .fpp-card-heading > form .fpp-btn,
  .fpp-card-head > a.fpp-btn,
  .fpp-card-heading > a.fpp-btn { justify-content: center; }
}

/* 29.3.6 specificity guard: the 29.3.5 route-level button contract sets
   width:auto, so responsive page-header controls need an equally specific
   route-independent override. */
@media (min-width: 761px) and (max-width: 900px) {
  body.fpp-body .fpp-page-actions > .fpp-head-actions > *,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > form,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > a.fpp-btn,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > .fpp-action-menu,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > .fpp-action-menu > summary.fpp-btn {
    width: 100%;
    min-width: 0;
  }
  .fpp-filter > button:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-page-actions > a.fpp-btn,
  body.fpp-body .fpp-page-actions > button.fpp-btn,
  body.fpp-body .fpp-page-actions > form,
  body.fpp-body .fpp-page-actions > form > .fpp-btn,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > *,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > form,
  body.fpp-body .fpp-page-actions > .fpp-head-actions > a.fpp-btn,
  body.fpp-body .fpp-page-actions > .fpp-head-actions .fpp-action-menu,
  body.fpp-body .fpp-page-actions > .fpp-head-actions .fpp-action-menu > summary.fpp-btn {
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 760px) {
  body.fpp-body .fpp-content .fpp-page-actions > a.fpp-btn,
  body.fpp-body .fpp-content .fpp-page-actions > button.fpp-btn {
    width: 100%;
    min-width: 0;
  }
}

/* 29.3.6 final mobile register contract -------------------------------------
   The foundation stylesheet still contains an older <=760px table-to-card
   conversion.  Core deliberately restores real tables here: register pages
   remain compact, consistent and horizontally swipeable on phones instead of
   turning every row into a differently sized card. */
@media (max-width: 760px) {
  body.fpp-body .fpp-content .fpp-table-wrap,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
    border: 1px solid var(--fpp-line);
    background: transparent;
  }

  body.fpp-body .fpp-content .fpp-table,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table {
    display: table;
    width: max-content;
    min-width: 720px;
    border-collapse: collapse;
  }

  body.fpp-body .fpp-content .fpp-table thead,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table thead {
    display: table-header-group;
  }
  body.fpp-body .fpp-content .fpp-table tbody,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody {
    display: table-row-group;
    width: auto;
  }
  body.fpp-body .fpp-content .fpp-table tr,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tr {
    display: table-row;
    width: auto;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  body.fpp-body .fpp-content .fpp-table th,
  body.fpp-body .fpp-content .fpp-table td,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table th,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td {
    display: table-cell;
    width: auto;
    min-width: 0;
    text-align: left;
    position: static;
    overflow-wrap: normal;
  }
  body.fpp-body .fpp-content .fpp-table td,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td {
    border-left: 0;
    border-right: 0;
    background: transparent;
  }
  body.fpp-body .fpp-content .fpp-table td:last-child,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td:last-child {
    border-bottom: 1px solid var(--fpp-line);
  }
  body.fpp-body .fpp-content .fpp-table td::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td::before {
    content: none;
    display: none;
  }
  body.fpp-body .fpp-content .fpp-table td[data-label=""],
  body.fpp-body .fpp-content .fpp-table td[colspan],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td[data-label=""],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td[colspan] {
    display: table-cell;
    text-align: left;
  }
  body.fpp-body .fpp-content .fpp-table td strong,
  body.fpp-body .fpp-content .fpp-table td small,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td strong,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td small {
    max-width: none;
    overflow-wrap: normal;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.3.7 — true phone + iPad fit
   29.3.6 deliberately kept registers as horizontally swipeable desktop tables.
   Real-device feedback showed that this is too cramped on iPhone and iPad
   portrait. 29.3.7 therefore uses responsive record cards up to 1024px,
   moves the sidebar off-canvas on iPad portrait and removes tab/filter overflow.
   ========================================================================== */

/* iPad portrait gets the same roomy canvas as mobile, while keeping search. */
@media (min-width: 761px) and (max-width: 900px) {
  :root { --fpp-top-h: 62px; }
  body.fpp-body { overflow-x: hidden; }
  body.fpp-body .fpp-app { display: block; min-width: 0; }
  body.fpp-body .fpp-side {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 90;
    width: min(42vw, 320px);
    height: 100dvh;
    transform: translate3d(-102%,0,0);
    transition: transform .22s ease;
    box-shadow: 22px 0 55px rgba(0,0,0,.45);
  }
  body.fpp-body.menu-open .fpp-side,
  body.fpp-body .fpp-side[aria-hidden="false"] { transform: translate3d(0,0,0); }
  body.fpp-body .fpp-main,
  body.fpp-body.sidebar-collapsed .fpp-main { margin-left: 0; width: 100%; min-width: 0; }
  body.fpp-body .fpp-menu,
  body.fpp-body .fpp-mobile-close { display: grid; }
  body.fpp-body .fpp-collapse,
  body.fpp-body .fpp-side-collapse { display: none; }
  body.fpp-body .fpp-menu-scrim {
    position: fixed;
    inset: 0;
    z-index: 80;
    border: 0;
    background: rgba(0,0,0,.58);
  }
  body.fpp-body.menu-open .fpp-menu-scrim { display: block; }
  body.fpp-body .fpp-top { padding-inline: 14px; gap: 10px; }
  body.fpp-body .fpp-search { flex: 1 1 auto; width: auto; max-width: none; min-width: 0; }
  body.fpp-body .fpp-user { display: none; }
  body.fpp-body .fpp-content { width: 100%; max-width: none; padding: 24px 20px 48px; }
}

/* Tabs are navigation, not a hidden horizontal strip. Keep every choice visible. */
@media (max-width: 900px) {
  body.fpp-body .fpp-register-toolbar .fpp-vehicle-tabs,
  body.fpp-body .fpp-vehicle-tabs,
  body.fpp-body .fpp-hq-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    width: 100%;
    max-width: 100%;
    overflow: visible;
    flex-wrap: initial;
    gap: 4px;
    padding: 4px;
    scrollbar-width: none;
  }
  body.fpp-body .fpp-vehicle-tabs a,
  body.fpp-body .fpp-hq-tabs a {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    justify-content: space-between;
    padding-inline: 11px;
    white-space: normal;
    line-height: 1.2;
  }
  body.fpp-body .fpp-register-note { width: 100%; }
}

@media (max-width: 560px) {
  body.fpp-body.fpp-route-invoices .fpp-vehicle-tabs,
  body.fpp-body.fpp-route-vehicles .fpp-vehicle-tabs,
  body.fpp-body.fpp-route-dossiers .fpp-vehicle-tabs { grid-template-columns: repeat(2, minmax(0,1fr)); }
  body.fpp-body.fpp-route-consignments .fpp-vehicle-tabs { grid-template-columns: repeat(3, minmax(0,1fr)); }
  body.fpp-body.fpp-route-consignments .fpp-vehicle-tabs a { justify-content: center; gap: 7px; padding-inline: 6px; }
}

/* Record-card register contract for phone and iPad portrait/landscape up to 1024.
   All column labels are supplied by portal-core.js from the real table headers. */
@media (max-width: 1024px) {
  body.fpp-body .fpp-content .fpp-register,
  body.fpp-body .fpp-content .fpp-card:has(> .fpp-filter + .fpp-table-wrap) {
    overflow: visible;
  }
  body.fpp-body .fpp-content .fpp-table-wrap,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    -webkit-overflow-scrolling: auto;
    touch-action: auto;
  }
  body.fpp-body .fpp-content table.fpp-table,
  body.fpp-body .fpp-content .fpp-legacy-leads table.fvp-table {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: transparent;
  }
  body.fpp-body .fpp-content .fpp-table thead,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table thead { display: none; }
  body.fpp-body .fpp-content .fpp-table tbody,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody {
    display: grid;
    width: 100%;
    gap: 12px;
  }
  body.fpp-body .fpp-content .fpp-table tbody tr,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #303b45;
    border-radius: 12px;
    background: #10171d;
    box-shadow: 0 8px 22px rgba(0,0,0,.12);
  }
  body.fpp-body .fpp-content .fpp-table tbody tr:hover td,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody tr:hover td { background: transparent; }
  body.fpp-body .fpp-content .fpp-table tbody td,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td {
    display: block;
    position: static;
    width: 100%;
    min-width: 0 !important;
    max-width: 100%;
    padding: 12px 14px;
    border: 0;
    border-right: 1px solid #26313a;
    border-bottom: 1px solid #26313a;
    background: transparent;
    color: #e8edf1;
    text-align: left;
    white-space: normal !important;
    overflow: visible;
    overflow-wrap: anywhere !important;
  }
  body.fpp-body .fpp-content .fpp-table tbody td:nth-child(2n),
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td:nth-child(2n) { border-right: 0; }
  body.fpp-body .fpp-content .fpp-table tbody td::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td::before {
    content: attr(data-label);
    display: block;
    margin: 0 0 7px;
    color: #83919d;
    font-size: 10px;
    font-weight: 850;
    line-height: 1.25;
    letter-spacing: .10em;
    text-transform: uppercase;
  }
  body.fpp-body .fpp-content .fpp-table tbody td[data-label=""],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Gegevens"],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Acties"],
  body.fpp-body .fpp-content .fpp-table tbody td[colspan],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label=""],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label="Gegevens"],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label="Acties"],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[colspan] {
    grid-column: 1 / -1;
    border-right: 0;
  }
  body.fpp-body .fpp-content .fpp-table tbody td[data-label=""]::before,
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Gegevens"]::before,
  body.fpp-body .fpp-content .fpp-table tbody td[colspan]::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label=""]::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label="Gegevens"]::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[colspan]::before { display: none; }
  body.fpp-body .fpp-content .fpp-table tbody tr.fpp-responsive-empty-row,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody tr.fpp-responsive-empty-row { grid-template-columns: 1fr; }
  body.fpp-body .fpp-content .fpp-table td strong,
  body.fpp-body .fpp-content .fpp-table td small,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td strong,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table td small {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  body.fpp-body .fpp-content .fpp-table td small { margin-top: 4px; }

  /* Old desktop column widths must never force a responsive record wider. */
  body.fpp-body.fpp-route-vehicles .fpp-table th:last-child,
  body.fpp-body.fpp-route-vehicles .fpp-table td:last-child,
  body.fpp-body.fpp-route-invoices .fpp-invoice-register .fpp-table th:last-child,
  body.fpp-body.fpp-route-invoices .fpp-invoice-register .fpp-table td:last-child,
  body.fpp-body.fpp-route-dossiers .fpp-dossier-table th:last-child,
  body.fpp-body.fpp-route-dossiers .fpp-dossier-table td:last-child,
  body.fpp-body.fpp-route-consignments .fpp-table th:last-child,
  body.fpp-body.fpp-route-consignments .fpp-table td:last-child { min-width: 0 !important; }

  /* Register actions become a predictable touch grid instead of a squeezed row. */
  body.fpp-body .fpp-content .fpp-table .fpp-row-actions,
  body.fpp-body .fpp-content .fpp-table .fpp-invoice-row-actions,
  body.fpp-body .fpp-content .fpp-table .fpp-consignment-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr));
    align-items: stretch;
    justify-content: stretch;
    width: 100%;
    max-width: none;
    gap: 8px;
    white-space: normal;
  }
  body.fpp-body .fpp-content .fpp-table .fpp-row-actions > *,
  body.fpp-body .fpp-content .fpp-table .fpp-invoice-row-actions > *,
  body.fpp-body .fpp-content .fpp-table .fpp-consignment-actions > * {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none;
    margin: 0;
  }
  body.fpp-body .fpp-content .fpp-table .fpp-row-actions form,
  body.fpp-body .fpp-content .fpp-table .fpp-invoice-row-actions form,
  body.fpp-body .fpp-content .fpp-table .fpp-consignment-actions form { display: block; }
  body.fpp-body .fpp-content .fpp-table .fpp-row-actions :is(.fpp-mini-btn,button),
  body.fpp-body .fpp-content .fpp-table .fpp-invoice-row-actions :is(.fpp-mini-btn,button),
  body.fpp-body .fpp-content .fpp-table .fpp-consignment-actions :is(.fpp-mini-btn,.fpp-mini-state,button),
  body.fpp-body .fpp-content .fpp-table .fpp-action-overflow > summary {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none;
    min-height: 42px;
    height: 42px;
    padding-inline: 10px;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }
  body.fpp-body.fpp-route-vehicles .fpp-table .fpp-row-actions > form:last-child,
  body.fpp-body.fpp-route-consignments .fpp-table .fpp-consignment-actions > .fpp-action-overflow { grid-column: 1 / -1; }
}

/* Phones use one record column with label/value lines; no horizontal panning. */
@media (max-width: 640px) {
  body.fpp-body .fpp-content .fpp-table tbody tr,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody tr {
    display: block;
    border-radius: 13px;
  }
  body.fpp-body .fpp-content .fpp-table tbody td,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td {
    display: grid;
    grid-template-columns: minmax(104px, 34%) minmax(0,1fr);
    align-items: start;
    gap: 12px;
    padding: 12px 13px;
    border-right: 0;
    border-bottom: 1px solid #26313a;
  }
  body.fpp-body .fpp-content .fpp-table tbody td:last-child,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td:last-child { border-bottom: 0; }
  body.fpp-body .fpp-content .fpp-table tbody td::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td::before {
    margin: 2px 0 0;
    align-self: start;
  }
  body.fpp-body .fpp-content .fpp-table tbody td[data-label=""],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Gegevens"],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Acties"],
  body.fpp-body .fpp-content .fpp-table tbody td[colspan],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label=""],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label="Gegevens"],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label="Acties"],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[colspan] { display: block; }
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Acties"]::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td[data-label="Acties"]::before {
    display: block;
    margin: 0 0 9px;
  }
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Document"],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Voertuig"],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Klant / referentie"],
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Klant"],
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td:first-child {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Document"]::before,
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Voertuig"]::before,
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Klant / referentie"]::before,
  body.fpp-body .fpp-content .fpp-table tbody td[data-label="Klant"]::before,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td:first-child::before { margin: 0 0 1px; }
}

/* Form and toolbar density on real phones. Prevent iOS field zoom and let every
   date/filter/export control use the available width. */
@media (max-width: 760px) {
  body.fpp-body { overflow-x: hidden; }
  body.fpp-body .fpp-content {
    width: 100%;
    max-width: 100%;
    padding: 17px 12px calc(104px + env(safe-area-inset-bottom));
  }
  body.fpp-body .fpp-content :is(input,select,textarea) {
    min-width: 0;
    max-width: 100%;
    font-size: 16px !important;
  }
  body.fpp-body .fpp-content input[type="date"],
  body.fpp-body .fpp-content input[type="datetime-local"] { width: 100%; }
  body.fpp-body .fpp-export-bar { padding: 14px; gap: 15px; }
  body.fpp-body .fpp-export-controls { display: grid; grid-template-columns: 1fr; width: 100%; gap: 10px; }
  body.fpp-body .fpp-export-controls > * { width: 100%; min-width: 0; }
  body.fpp-body .fpp-export-controls button { grid-column: auto; width: 100%; }
  body.fpp-body .fpp-filter,
  body.fpp-body .fpp-filter-inline,
  body.fpp-body .fpp-vehicle-filter {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 9px;
  }
  body.fpp-body .fpp-filter > *,
  body.fpp-body .fpp-filter-inline > *,
  body.fpp-body .fpp-vehicle-filter > * { width: 100%; min-width: 0; }
  body.fpp-body .fpp-filter button,
  body.fpp-body .fpp-vehicle-filter button { min-height: 44px; }
  body.fpp-body .fpp-card { min-width: 0; max-width: 100%; padding: 14px; }
  body.fpp-body .fpp-card-heading,
  body.fpp-body .fpp-card-head { min-width: 0; }
  body.fpp-body .fpp-card-heading h2,
  body.fpp-body .fpp-card-head h2 { font-size: 18px; }

  /* Keep the quickbar compact and reserve real content space underneath it. */
  body.fpp-body .fpp-mobile-quickbar {
    left: 12px !important;
    right: 12px !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    min-height: 58px;
    padding: 4px;
    gap: 3px;
    border-radius: 16px;
    background: rgba(12,17,22,.96);
    box-shadow: 0 12px 32px rgba(0,0,0,.42);
  }
  body.fpp-body .fpp-mobile-quickbar a {
    min-height: 50px;
    padding: 4px 3px;
    gap: 3px;
    font-size: 10.5px;
    line-height: 1.05;
  }
  body.fpp-body .fpp-mobile-quickbar b {
    width: 26px;
    height: 26px;
    border-radius: 9px;
  }
  body.fpp-body .fpp-mobile-quickbar svg { width: 17px; height: 17px; }

  /* Financial summary remains a deliberate 2x2 dashboard instead of four tall rows. */
  body.fpp-body .fpp-ledger-strip,
  body.fpp-body .fpp-system-strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
  body.fpp-body .fpp-ledger-strip > div,
  body.fpp-body .fpp-system-strip > div { min-height: 82px; padding: 12px; }
  body.fpp-body .fpp-ledger-strip > div:nth-child(2n),
  body.fpp-body .fpp-system-strip > div:nth-child(2n) { border-right: 0; }
  body.fpp-body .fpp-ledger-strip > div:nth-child(-n+2),
  body.fpp-body .fpp-system-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--fpp-line-soft); }
  body.fpp-body .fpp-ledger-strip > div:nth-child(n+3),
  body.fpp-body .fpp-system-strip > div:nth-child(n+3) { border-bottom: 0; }
  body.fpp-body .fpp-ledger-strip strong { font-size: clamp(17px, 5.5vw, 22px); overflow-wrap: anywhere; }
}

@media (max-width: 390px) {
  body.fpp-body .fpp-content { padding-inline: 9px; }
  body.fpp-body .fpp-card { padding: 12px; }
  body.fpp-body .fpp-vehicle-tabs a,
  body.fpp-body .fpp-hq-tabs a { font-size: 9.5px; padding-inline: 7px; }
  body.fpp-body .fpp-content .fpp-table tbody td,
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td {
    grid-template-columns: minmax(92px, 32%) minmax(0,1fr);
    gap: 9px;
    padding: 11px 12px;
  }
}

/* 29.3.7 finishing pass: avoid a lonely half-width cell immediately before a
   full-width action area on tablet cards, and make the third vehicle action a
   deliberate full row on phones. */
@media (min-width: 641px) and (max-width: 1024px) {
  body.fpp-body .fpp-content .fpp-table tbody td:has(+ td[data-label="Acties"]),
  body.fpp-body .fpp-content .fpp-table tbody td:has(+ td[data-label="Gegevens"]),
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td:has(+ td[data-label="Acties"]),
  body.fpp-body .fpp-content .fpp-legacy-leads .fvp-table tbody td:has(+ td[data-label="Gegevens"]) {
    grid-column: 1 / -1;
    border-right: 0;
  }
}
@media (max-width: 640px) {
  body.fpp-body.fpp-route-vehicles .fpp-table .fpp-row-actions > :last-child { grid-column: 1 / -1; }
}

/* 29.3.7 mobile quickbar auto-hide state, controlled by portal-core.js. */
@media (max-width: 760px) {
  body.fpp-body .fpp-mobile-quickbar {
    transition: transform .20s ease, opacity .16s ease, box-shadow .16s ease;
    will-change: transform, opacity;
  }
  body.fpp-body .fpp-mobile-quickbar.fpp-quickbar-hidden {
    transform: translate3d(0, calc(100% + 24px), 0);
    opacity: 0;
    pointer-events: none;
    box-shadow: none;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.3.8 — touch-first form fit for iPhone + iPad
   Makes input areas roomier, keeps the quickbar out of the way while typing,
   and turns the invoice amount-mode checkbox into a proper touch toggle.
   ========================================================================== */
body.fpp-body .fpp-content .fpp-invoice-mode-field {
  display: grid;
  gap: 8px;
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) 56px minmax(0,1fr);
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 12px 14px;
  border: 1px solid #34414c;
  border-radius: 12px;
  background: #0f151b;
  color: #e8edf2;
  cursor: pointer;
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch > span {
  min-width: 0;
  font-size: 13px;
  font-weight: 760;
  line-height: 1.35;
  color: #d6dee6;
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch > span:last-child { text-align: right; }
body.fpp-body .fpp-content .fpp-invoice-mode-switch input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch i {
  position: relative;
  display: block;
  width: 56px;
  height: 32px;
  border-radius: 999px;
  background: #27313a;
  box-shadow: inset 0 0 0 1px #394651;
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch i::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.24);
  transition: transform .18s ease;
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch input:checked + i {
  background: rgba(242,97,34,.32);
  box-shadow: inset 0 0 0 1px rgba(242,97,34,.6);
}
body.fpp-body .fpp-content .fpp-invoice-mode-switch input:checked + i::before {
  transform: translateX(24px);
}
body.fpp-body .fpp-content .fpp-invoice-live-note {
  padding: 13px 14px;
  border: 1px solid #2f3944;
  border-radius: 12px;
  background: #10161c;
  line-height: 1.5;
}
body.fpp-body .fpp-content .fpp-invoice-calculated input[readonly] {
  background: #0d1318;
  color: #fff;
  font-weight: 800;
}

@media (max-width: 1024px) {
  body.fpp-body .fpp-content {
    padding-bottom: calc(126px + env(safe-area-inset-bottom));
  }
  body.fpp-body .fpp-content .fpp-form-grid,
  body.fpp-body .fpp-content .fpp-hq-grid,
  body.fpp-body .fpp-content .fpp-employee-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  body.fpp-body .fpp-content :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 16px !important;
    line-height: 1.35;
    scroll-margin: 110px 0 140px;
  }
  body.fpp-body .fpp-content textarea {
    min-height: 122px;
    padding-top: 13px;
    padding-bottom: 13px;
  }
  body.fpp-body .fpp-content :is(select,input[type="date"],input[type="datetime-local"]) {
    padding-right: 42px;
  }
  body.fpp-body .fpp-content :is(.fpp-btn,.fpp-mini-btn),
  body.fpp-body .fpp-content .fpp-action-overflow > summary {
    min-height: 48px;
    padding-inline: 15px;
    border-radius: 12px;
    font-size: 14px;
  }
  body.fpp-body .fpp-content .fpp-form-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
    align-items: stretch;
  }
  body.fpp-body .fpp-content .fpp-form-actions > * {
    width: 100%;
    min-width: 0;
  }
  body.fpp-body .fpp-content .fpp-form-actions :is(a,.fpp-btn,.fpp-mini-btn) {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  body.fpp-body .fpp-content :is(.fpp-check,.fpp-checkline,.fpp-os24-check) {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 54px;
    padding: 12px 14px;
    border: 1px solid var(--fpp-line);
    border-radius: 12px;
    background: #0d1318;
  }
  body.fpp-body .fpp-content :is(.fpp-check,.fpp-checkline,.fpp-os24-check) input {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 1px 0 0;
    accent-color: var(--fpp-orange);
  }
  body.fpp-body .fpp-content :is(.fpp-check,.fpp-checkline,.fpp-os24-check) span,
  body.fpp-body .fpp-content :is(.fpp-check,.fpp-checkline,.fpp-os24-check) strong,
  body.fpp-body .fpp-content :is(.fpp-check,.fpp-checkline,.fpp-os24-check) small {
    line-height: 1.45;
  }
  body.fpp-body .fpp-content .fpp-card-head > .fpp-row-actions,
  body.fpp-body .fpp-content .fpp-card-heading > .fpp-row-actions,
  body.fpp-body .fpp-content .fpp-head-actions,
  body.fpp-body .fpp-content .fpp-page-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
  }
  body.fpp-body .fpp-content .fpp-card-head > .fpp-row-actions > *,
  body.fpp-body .fpp-content .fpp-card-heading > .fpp-row-actions > *,
  body.fpp-body .fpp-content .fpp-head-actions > *,
  body.fpp-body .fpp-content .fpp-page-actions > * {
    width: 100%;
    min-width: 0;
  }
  body.fpp-body .fpp-content .fpp-head-actions :is(.fpp-btn,.fpp-mini-btn),
  body.fpp-body .fpp-content .fpp-page-actions :is(.fpp-btn,.fpp-mini-btn),
  body.fpp-body .fpp-content .fpp-card-head > .fpp-row-actions :is(.fpp-btn,.fpp-mini-btn),
  body.fpp-body .fpp-content .fpp-card-heading > .fpp-row-actions :is(.fpp-btn,.fpp-mini-btn) {
    justify-content: center;
  }
  body.fpp-body.fpp-route-hq .fpp-hq-apple-row {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px 0;
  }
  body.fpp-body.fpp-route-hq .fpp-hq-apple-row dl {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  body.fpp-body.fpp-route-hq .fpp-hq-apple-actions {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0,1fr));
    justify-content: stretch;
    gap: 10px;
  }
  body.fpp-body.fpp-route-hq .fpp-hq-apple-actions form,
  body.fpp-body.fpp-route-hq .fpp-hq-apple-actions .fpp-mini-btn {
    width: 100%;
  }
  body.fpp-body.fpp-route-hq .fpp-hq-apple-actions .fpp-mini-btn {
    min-height: 50px;
    font-size: 14px;
  }
  body.fpp-body .fpp-builder-controls {
    scroll-margin-top: 90px;
  }
  body.fpp-body .fpp-mobile-quickbar {
    left: 12px !important;
    right: 12px !important;
    bottom: calc(10px + env(safe-area-inset-bottom)) !important;
  }
  body.fpp-body.fpp-input-active .fpp-mobile-quickbar {
    transform: translate3d(0, calc(100% + 24px), 0);
    opacity: 0;
    pointer-events: none;
    box-shadow: none;
  }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-content {
    padding-bottom: calc(144px + env(safe-area-inset-bottom));
  }
  body.fpp-body .fpp-content .fpp-form-actions,
  body.fpp-body .fpp-content .fpp-card-head > .fpp-row-actions,
  body.fpp-body .fpp-content .fpp-card-heading > .fpp-row-actions,
  body.fpp-body .fpp-content .fpp-head-actions,
  body.fpp-body .fpp-content .fpp-page-actions {
    grid-template-columns: 1fr;
  }
  body.fpp-body .fpp-content :is(.fpp-btn,.fpp-mini-btn),
  body.fpp-body .fpp-content .fpp-action-overflow > summary {
    min-height: 50px;
  }
  body.fpp-body .fpp-content .fpp-invoice-mode-switch {
    grid-template-columns: 1fr 56px 1fr;
    gap: 10px;
    padding: 12px;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.3.9 — invoice automation + VAT control
   The vehicle price and fiscal profile are now visible in one touch-friendly
   workflow. Real radio buttons replace the ambiguous legacy VAT switch.
   ========================================================================== */
body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note {
  display: block;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #34404a;
  border-radius: 10px;
  background: #10171d;
  color: #b9c3cb;
  font-size: 12px;
  line-height: 1.5;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note[hidden] { display: none !important; }
body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note strong { color: #fff; }
body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note.is-ok {
  border-color: rgba(52,173,112,.42);
  background: rgba(26,104,67,.16);
  color: #bce8cf;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note.is-warning {
  border-color: rgba(242,153,61,.46);
  background: rgba(124,73,20,.16);
  color: #f3c891;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note.is-info {
  border-color: #394653;
  background: #111820;
  color: #b8c3cd;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-field { display: grid; gap: 7px; }
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 7px;
  padding: 4px;
  border: 1px solid #34414c;
  border-radius: 10px;
  background: #0c1217;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment label {
  position: relative;
  min-width: 0;
  margin: 0;
  cursor: pointer;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment span {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border-radius: 7px;
  color: #aeb8c0;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  transition: background .16s ease,color .16s ease,box-shadow .16s ease;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment input:checked + span {
  background: var(--fpp-orange);
  color: #fff;
  box-shadow: 0 8px 18px rgba(242,97,34,.18);
}
body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment input:focus-visible + span {
  outline: 2px solid #ff9a62;
  outline-offset: 2px;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-vat-only[hidden],
body.fpp-body.fpp-route-invoices .fpp-invoice-tax-field[hidden] { display: none !important; }
body.fpp-body.fpp-route-invoices .fpp-invoice-live-note {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 5px;
  color: #c6d0d9;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-live-note strong { flex: 0 0 auto; color: #fff; }
body.fpp-body .fpp-tax-profile-help {
  grid-column: 1 / -1;
  margin: -4px 0 2px;
  padding: 10px 12px;
  border-left: 3px solid var(--fpp-orange);
  border-radius: 0 8px 8px 0;
  background: #10161c;
  color: #9eabb5;
  font-size: 11px;
  line-height: 1.5;
}

@media (max-width: 1024px) {
  body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment span { min-height: 48px; font-size: 14px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-live-note { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px) {
  body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment { gap: 5px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-mode-segment span { min-height: 50px; padding-inline: 8px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-auto-note { padding: 13px; font-size: 13px; }
}

body.fpp-body.fpp-route-vehicles .fpp-tax-badge { display:block; margin-top:5px; color:#81cfa4; font-size:9.5px; font-weight:800; line-height:1.3; }
body.fpp-body.fpp-route-vehicles .fpp-tax-badge.is-warning { color:#e8ab68; }

/* ========================================================================== 
   FIVE Performance OS 29.3.10 — shell, search and invoice preview polish
   One predictable top bar from desktop to phone, a quieter sidebar handle and
   an invoice preview that reads like A4 without overflowing smaller screens.
   ========================================================================== */

/* Top search: compact enough for notebooks, roomy enough on desktop. */
body.fpp-body .fpp-top {
  min-width: 0;
}
body.fpp-body .fpp-search {
  flex: 1 1 430px;
  width: min(520px, 46vw);
  max-width: 520px;
  min-width: 220px;
  height: 42px;
  gap: 9px;
  padding: 0 9px 0 12px;
  border-color: #2d3943;
  border-radius: 9px;
  background: #0c1217;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.015);
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
body.fpp-body .fpp-search:focus-within {
  border-color: #8b4a28;
  background: #0e151b;
  box-shadow: 0 0 0 3px rgba(242,97,34,.10), inset 0 1px 0 rgba(255,255,255,.02);
}
body.fpp-body .fpp-search-icon {
  display: grid;
  place-items: center;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  color: #7d8b96;
}
body.fpp-body .fpp-search-icon svg,
body.fpp-body .fpp-search-clear svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.fpp-body .fpp-search input {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 40px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #e9eef2;
  font-size: 13px;
  line-height: 1;
  box-shadow: none;
}
body.fpp-body .fpp-search input::placeholder { color: #6f7d88; opacity: 1; }
body.fpp-body .fpp-search-clear {
  appearance: none;
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #78858f;
  cursor: pointer;
  transition: background .14s ease, color .14s ease, opacity .14s ease;
}
body.fpp-body .fpp-search-clear:hover,
body.fpp-body .fpp-search-clear:focus-visible { background: #172028; color: #fff; }
body.fpp-body .fpp-search input:placeholder-shown + .fpp-search-clear {
  opacity: 0;
  pointer-events: none;
}

/* Desktop sidebar handle: visually part of the rail, not a floating orange tab. */
body.fpp-body .fpp-side-collapse {
  top: 146px;
  right: -14px;
  z-index: 6;
  width: 28px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #313e48;
  border-left: 0;
  border-radius: 0 10px 10px 0;
  background: linear-gradient(180deg,#11181e,#0d1419);
  color: #8e9aa4;
  box-shadow: 8px 0 18px rgba(0,0,0,.24);
  font-size: 0;
  transition: width .15s ease, color .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
body.fpp-body .fpp-side-collapse::before { display: none !important; content: none !important; }
body.fpp-body .fpp-side-collapse-icon {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  transition: transform .18s ease;
}
body.fpp-body .fpp-side-collapse-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.fpp-body.sidebar-collapsed .fpp-side-collapse { right: -14px; }
body.fpp-body.sidebar-collapsed .fpp-side-collapse-icon { transform: rotate(180deg); }
body.fpp-body .fpp-side-collapse:hover,
body.fpp-body .fpp-side-collapse:focus-visible {
  width: 31px;
  border-color: #7c4a2d;
  border-left: 0;
  background: #162028;
  color: #ff9a63;
  box-shadow: 9px 0 22px rgba(0,0,0,.30);
  outline: 0;
}
body.fpp-body .fpp-side-collapse:focus-visible { box-shadow: 0 0 0 3px rgba(242,97,34,.14), 9px 0 22px rgba(0,0,0,.30); }

/* Invoice editor preview: faithful document look without a fixed A4 overflow. */
body.fpp-body.fpp-route-invoices .fpp-invoice-preview {
  width: min(100%, 860px);
  max-width: 860px;
  min-height: 0;
  margin: 4px auto 22px;
  padding: clamp(24px, 3.1vw, 44px);
  overflow: hidden;
  border: 1px solid #d8dde3;
  border-radius: 12px;
  background: #fff;
  color: #151a20;
  box-shadow: 0 18px 46px rgba(0,0,0,.24);
  scroll-margin-top: calc(var(--fpp-top-h, 68px) + 14px);
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview[hidden] { display: none !important; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview * { box-sizing: border-box; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview :is(h1,h2,h3,h4,strong,b) { color: #10161d; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview :is(p,span,small,td) { color: #4f5b66; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: start;
  gap: 24px;
  padding-bottom: 22px;
  border-bottom: 4px solid var(--fpp-orange);
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head .fpp-invoice-brand { min-width: 0; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head .fpp-invoice-brand img {
  width: 142px;
  max-width: 100%;
  height: auto;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head .fpp-invoice-brand h3 {
  margin: 4px 0 0;
  font-size: clamp(22px, 2.2vw, 29px);
  line-height: 1.08;
  overflow-wrap: anywhere;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head > strong {
  align-self: center;
  color: #111820;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.05;
  white-space: nowrap;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
  margin: 24px 0;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid > div {
  min-width: 0;
  padding: 15px 16px;
  border: 1px solid #e1e5e9;
  border-radius: 9px;
  background: #f7f8fa;
  overflow-wrap: anywhere;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid small {
  display: block;
  margin-bottom: 7px;
  color: #67737e;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid b,
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid span { display: block; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid b { margin-bottom: 5px; font-size: 14px; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid span { font-size: 12px; line-height: 1.45; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta {
  display: grid;
  grid-template-columns: minmax(0,1.9fr) repeat(3,minmax(105px,.72fr));
  gap: 10px;
  margin: 0 0 24px;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta > div {
  min-width: 0;
  padding: 13px 14px;
  border-radius: 8px;
  background: #f4f6f8;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta small {
  display: block;
  margin-bottom: 6px;
  color: #697580;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta strong {
  display: block;
  color: #111820;
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta span {
  display: block;
  margin-top: 4px;
  color: #697580;
  font-size: 10.5px;
  line-height: 1.35;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-payment-summary {
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: start;
  gap: 18px;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-payment-summary > div { min-width: 0; }
body.fpp-body.fpp-route-invoices .fpp-invoice-payment-summary small {
  display: block;
  margin-bottom: 5px;
  color: #aeb8c2;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-payment-summary strong {
  display: block;
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
body.fpp-body.fpp-route-invoices .fpp-monthly-consignment-fee .fpp-invoice-preview-meta .reference strong { font-size: 12.5px; }
body.fpp-body.fpp-route-invoices .fpp-invoice-preview table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 12px;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview th,
body.fpp-body.fpp-route-invoices .fpp-invoice-preview td {
  padding: 11px 12px;
  border-bottom: 1px solid #e0e5e9;
  vertical-align: top;
  overflow-wrap: anywhere;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview th {
  background: #111820;
  color: #fff;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview th:last-child,
body.fpp-body.fpp-route-invoices .fpp-invoice-preview td:last-child {
  width: 155px;
  text-align: right;
  white-space: nowrap;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-preview .total td {
  padding-top: 15px;
  border-top: 3px solid var(--fpp-orange);
  border-bottom: 0;
  color: #111820;
  font-size: 18px;
  font-weight: 850;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-bank {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
  padding: 15px 17px;
  border-radius: 9px;
  background: #111820;
}
body.fpp-body.fpp-route-invoices .fpp-invoice-bank strong,
body.fpp-body.fpp-route-invoices .fpp-invoice-bank span { color: #fff; }
body.fpp-body.fpp-route-invoices .fpp-invoice-bank span { font-family: ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing: .035em; }
body.fpp-body.fpp-route-invoices .fpp-invoice-footer {
  margin-top: 22px;
  padding-top: 12px;
  border-top: 1px solid #dfe4e8;
  color: #697580;
  font-size: 10.5px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

/* Consignment preview uses the same page width, with its cover adjusted to it. */
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-cover {
  margin: calc(clamp(24px, 3.1vw, 44px) * -1) calc(clamp(24px, 3.1vw, 44px) * -1) 0;
  padding: 28px clamp(24px, 3.1vw, 44px);
}
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-total { min-width: 190px; }
/* Dark document bands must keep their own light typography; generic preview rules are intentionally overridden here. */
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-cover .fpp-payment-kicker { color: #d9dde2; }
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-cover .fpp-payment-total small { color: #c9ced4; }
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-cover .fpp-payment-total strong { color: #fff; }
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-instructions-head h4 { color: #fff; }
body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-meta { grid-template-columns: 1.7fr repeat(3,minmax(100px,.75fr)); }

/* Action menu never leaves the visible canvas. */
body.fpp-body .fpp-action-menu-popover {
  width: min(250px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  border-radius: 10px;
}

@media (min-width: 1101px) and (max-width: 1260px) {
  body.fpp-body .fpp-search { max-width: 440px; }
  body.fpp-body .fpp-user { min-width: 42px; }
  body.fpp-body .fpp-user > div:last-child { display: none; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  body.fpp-body .fpp-top { padding-inline: 14px; }
  body.fpp-body .fpp-search {
    flex: 1 1 auto;
    width: auto;
    max-width: 560px;
    min-width: 180px;
  }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview { width: min(100%, 820px); }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-top { gap: 6px; padding-inline: 9px; }
  body.fpp-body .fpp-layout-toggle { display: none !important; }
  body.fpp-body .fpp-search {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    min-width: 0;
    height: 40px;
    padding-left: 10px;
    padding-right: 6px;
    border-radius: 9px;
  }
  body.fpp-body .fpp-search-icon { flex-basis: 18px; width: 18px; }
  body.fpp-body .fpp-search input { height: 38px; font-size: 16px; }
  body.fpp-body .fpp-search-clear { flex-basis: 28px; width: 28px; height: 28px; }
  body.fpp-body .fpp-owner-btn > span { display: none; }
  body.fpp-body .fpp-owner-btn { width: 38px; min-width: 38px; padding: 0; }
  body.fpp-body .fpp-owner-btn b { margin: 0; font-size: 16px; }

  body.fpp-body .fpp-action-menu[open] > .fpp-action-menu-popover {
    position: static;
    width: 100%;
    max-width: none;
    margin-top: 7px;
    box-shadow: none;
  }

  body.fpp-body.fpp-route-invoices .fpp-invoice-preview {
    width: 100%;
    max-width: 100%;
    margin: 2px 0 18px;
    padding: 16px;
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0,0,0,.22);
  }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head {
    grid-template-columns: 1fr;
    gap: 13px;
    padding-bottom: 16px;
  }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head .fpp-invoice-brand img { width: 118px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head .fpp-invoice-brand h3 { font-size: 22px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-head > strong {
    justify-self: start;
    font-size: 24px;
    white-space: normal;
  }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid {
    grid-template-columns: 1fr;
    gap: 9px;
    margin: 16px 0;
  }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-grid > div { padding: 12px 13px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta { grid-template-columns: 1fr; gap: 8px; margin-bottom: 16px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview-meta > div { padding: 11px 12px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview table { font-size: 11.5px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview th,
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview td { padding: 9px 8px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview th:last-child,
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview td:last-child { width: 108px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview .total td { font-size: 15px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-bank {
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 13px;
  }
  body.fpp-body.fpp-route-invoices .fpp-invoice-bank span { overflow-wrap: anywhere; }
  body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-cover {
    margin: -16px -16px 0;
    padding: 20px 16px;
    grid-template-columns: 1fr;
    display: grid;
    gap: 16px;
  }
  body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-total {
    min-width: 0;
    padding: 0;
    border-left: 0;
    text-align: left;
  }
  body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-consignment-parties,
  body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-meta,
  body.fpp-body.fpp-route-invoices .fpp-consignment-payment .fpp-payment-details {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {
  body.fpp-body .fpp-top { padding-inline: 7px; }
  body.fpp-body .fpp-menu,
  body.fpp-body .fpp-context-help,
  body.fpp-body .fpp-owner-btn { width: 36px; min-width: 36px; height: 36px; }
  body.fpp-body .fpp-search { height: 38px; }
  body.fpp-body .fpp-search input { height: 36px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview { padding: 13px; }
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview th:last-child,
  body.fpp-body.fpp-route-invoices .fpp-invoice-preview td:last-child { width: 96px; }
}
/* 29.3.10 guard: the rail collapse control is desktop-only; tablets/phones use the drawer menu. */
@media (max-width: 1100px) {
  body.fpp-body .fpp-side-collapse { display: none !important; }
}

/* ========================================================================== 
   FIVE Performance OS 29.3.11 — calm, consistent actions + dossier cards
   ========================================================================== */
:root{--fpp-action-height:40px;--fpp-action-radius:8px;--fpp-action-gap:8px;--fpp-action-font:11px}
body.fpp-body .fpp-content :is(.fpp-btn,.fpp-mini-btn){box-sizing:border-box;min-width:0;height:var(--fpp-action-height);min-height:var(--fpp-action-height);padding:0 14px;border-radius:var(--fpp-action-radius);font-size:var(--fpp-action-font);font-weight:760;line-height:1;letter-spacing:0;text-align:center;white-space:nowrap;box-shadow:none!important;transform:none!important}
body.fpp-body .fpp-content :is(.fpp-btn,.fpp-mini-btn):hover{box-shadow:none!important;transform:none!important}
body.fpp-body :is(.fpp-head-actions,.fpp-row-actions,.fpp-page-actions){gap:var(--fpp-action-gap)}

/* Factuursoort: separate, calm choices rather than touching orange blocks. */
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover{display:grid;grid-template-columns:1fr;gap:7px;width:264px;padding:10px;border-radius:10px;background:#10161c}
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover>span{padding:3px 4px 5px;color:#82909b}
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover form{width:100%;margin:0}
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover .fpp-menu-action,
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover button[type="submit"].fpp-menu-action{position:relative;width:100%;min-width:0;height:40px;min-height:40px;justify-content:flex-start;padding:0 12px 0 30px;border:1px solid #303c46!important;border-radius:8px;background:#141b21!important;color:#e6ebef!important;font-size:11px;font-weight:740;line-height:1;box-shadow:none!important;transform:none!important}
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover .fpp-menu-action:before{content:"";position:absolute;left:12px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--fpp-orange);transform:translateY(-50%);box-shadow:0 0 0 3px rgba(242,97,34,.10)}
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover .fpp-menu-action:hover,
body.fpp-body.fpp-route-invoices .fpp-action-menu-popover button[type="submit"].fpp-menu-action:hover{border-color:#775039!important;background:#192129!important;color:#fff!important;box-shadow:none!important;transform:none!important}

/* Verkoopdossier: equal cards, restrained copy, consistent actions. */
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns{gap:16px;align-items:stretch}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns>.fpp-card{display:flex;min-width:0;flex-direction:column;padding:16px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;min-height:68px;margin-bottom:12px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading>div:first-child{min-width:0}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading h2{font-size:15px;line-height:1.2}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading p{max-width:680px;margin-top:6px;color:#91a0ac;font-size:10.5px;line-height:1.5}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading>.fpp-row-actions{display:flex;width:auto;max-width:190px;justify-content:flex-end;align-items:flex-start;gap:8px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading>.fpp-row-actions .fpp-mini-btn{min-width:150px;padding-inline:13px;font-size:10.5px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list{display:grid;gap:8px;margin-top:auto}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:62px;padding:10px 11px;border:1px solid #28333c;border-radius:9px;background:#10161b}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article:last-child{border-bottom:1px solid #28333c}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>div:first-child{min-width:0}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article strong{color:#edf1f4;font-size:12.5px;line-height:1.3}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article small{margin-top:4px;color:#84929e;font-size:9.5px;line-height:1.35}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:7px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions .fpp-mini-btn{min-width:128px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions .fpp-mini-btn.danger{min-width:92px}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions .fpp-mini-btn.secondary{background:#141b21;border-color:#34404a;color:#e2e8ec}
body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions .fpp-mini-btn.secondary:hover{background:#192229;border-color:#4b5965;color:#fff}
body.fpp-body :is(.fpp-card-heading,.fpp-card-head)>.fpp-row-actions{align-items:center}

@media(max-width:1180px){body.fpp-body.fpp-route-dossiers .fpp-dossier-columns{grid-template-columns:1fr}body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading{min-height:0}}
@media(max-width:760px){
 :root{--fpp-action-height:48px;--fpp-action-radius:10px;--fpp-action-font:13px}
 body.fpp-body .fpp-content :is(.fpp-btn,.fpp-mini-btn){height:auto;min-height:var(--fpp-action-height);padding:10px 14px;line-height:1.2;white-space:normal}
 body.fpp-body.fpp-route-invoices .fpp-action-menu-popover{width:100%;gap:8px;padding:10px}
 body.fpp-body.fpp-route-invoices .fpp-action-menu-popover .fpp-menu-action,
 body.fpp-body.fpp-route-invoices .fpp-action-menu-popover button[type="submit"].fpp-menu-action{min-height:48px;height:auto;padding:10px 12px 10px 32px;font-size:13px;line-height:1.25;white-space:normal}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-columns>.fpp-card{padding:14px}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading{grid-template-columns:1fr;gap:11px}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading>.fpp-row-actions{width:100%;max-width:none}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-columns .fpp-card-heading>.fpp-row-actions .fpp-mini-btn{width:100%;min-width:0}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-list article{grid-template-columns:1fr;gap:11px;min-height:0;padding:12px}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions .fpp-mini-btn,
 body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions .fpp-mini-btn.danger{width:100%;min-width:0}
 body.fpp-body.fpp-route-dossiers .fpp-dossier-list article>.fpp-row-actions:has(>:only-child){grid-template-columns:1fr}
}

/* ========================================================================== 
   FIVE Performance OS 29.3.12 — professionele factuurregels
   Producten/diensten per regel, eigen BTW-keuze en touchvriendelijke invoer.
   ========================================================================== */
.fpp-invoice-editor.fpp-use-line-items .fpp-invoice-legacy-field{display:none!important}
.fpp-invoice-items{grid-column:1/-1;margin:8px 0 2px;padding:18px;border:1px solid var(--fpp-line);border-radius:14px;background:#0d1318}
.fpp-invoice-items-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}
.fpp-invoice-items-head h3{margin:4px 0 4px;color:#fff;font-size:18px}.fpp-invoice-items-head p{margin:0;color:#8795a1;font-size:12px;line-height:1.5}
.fpp-invoice-items-list{display:grid;gap:9px}
.fpp-invoice-item{display:grid;grid-template-columns:minmax(220px,2.2fr) minmax(72px,.45fr) minmax(120px,.75fr) minmax(115px,.72fr) minmax(90px,.55fr) minmax(105px,.7fr) auto;gap:8px;align-items:end;padding:11px;border:1px solid #27333d;border-radius:11px;background:#10171d}
.fpp-invoice-item>label{display:grid;gap:5px;min-width:0}.fpp-invoice-item>label>span,.fpp-invoice-item .item-total>span{color:#82919d;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.fpp-invoice-item input,.fpp-invoice-item select{width:100%;min-width:0;height:40px;min-height:40px;padding:0 10px;border:1px solid #34414c;border-radius:8px;background:#0b1116;color:#eef2f5;font-size:12px}
.fpp-invoice-item .item-total{display:grid;align-content:end;gap:7px;min-height:40px;padding-bottom:4px}.fpp-invoice-item .item-total strong{font-size:13px;white-space:nowrap;color:#fff}
.fpp-invoice-item .fpp-remove-invoice-item{height:40px!important;min-height:40px!important;padding-inline:10px!important}
.fpp-invoice-items-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid #27333d}
.fpp-invoice-items-summary>div:not(.fpp-items-vat-breakdown){padding:11px 12px;border:1px solid #28343e;border-radius:10px;background:#0b1116}.fpp-invoice-items-summary span,.fpp-invoice-items-summary strong{display:block}.fpp-invoice-items-summary span{color:#8795a1;font-size:10px}.fpp-invoice-items-summary strong{margin-top:5px;color:#fff;font-size:17px}.fpp-invoice-items-summary .total{border-color:rgba(242,97,34,.48);background:rgba(242,97,34,.08)}
.fpp-items-vat-breakdown{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.fpp-items-vat-breakdown span{display:inline-flex;gap:7px;align-items:center;padding:7px 9px;border:1px solid #2d3943;border-radius:999px;background:#111820}.fpp-items-vat-breakdown strong{margin:0;font-size:10px}
.fpp-invoice-general-note{margin-top:2px}.fpp-invoice-general-note textarea{min-height:82px}
.fpp-invoice-items-preview{table-layout:fixed}.fpp-invoice-items-preview th,.fpp-invoice-items-preview td{vertical-align:top;line-height:1.35}.fpp-invoice-items-preview th:nth-child(1),.fpp-invoice-items-preview td:nth-child(1){width:8%;text-align:left}.fpp-invoice-items-preview th:nth-child(2),.fpp-invoice-items-preview td:nth-child(2){width:48%;text-align:left;overflow-wrap:anywhere}.fpp-invoice-items-preview th:nth-child(3),.fpp-invoice-items-preview td:nth-child(3){width:16%;text-align:right;white-space:nowrap}.fpp-invoice-items-preview th:nth-child(4),.fpp-invoice-items-preview td:nth-child(4){width:10%;text-align:left;white-space:nowrap}.fpp-invoice-items-preview th:nth-child(5),.fpp-invoice-items-preview td:nth-child(5){width:18%;text-align:right;white-space:nowrap}.fpp-invoice-tax-summary td:first-child{text-align:right;color:#66717d}.fpp-invoice-tax-summary .fpp-tax-note td{text-align:left;color:#66717d;font-size:11px}.fpp-invoice-general-preview{margin-top:18px;padding:13px 15px;border:1px solid #e1e5e9;border-radius:9px;background:#f8fafb;color:#333}.fpp-invoice-general-preview strong{display:block;margin-bottom:5px}.fpp-invoice-general-preview p{margin:0;line-height:1.45;color:#5f6b76}

@media(max-width:1200px){
 .fpp-invoice-item{grid-template-columns:minmax(220px,2fr) 80px minmax(120px,1fr) minmax(115px,1fr);}
 .fpp-invoice-item .item-description{grid-column:1/-1}.fpp-invoice-item .item-total{min-width:110px}.fpp-invoice-item .fpp-remove-invoice-item{min-width:110px}
}
@media(max-width:760px){
 .fpp-invoice-items{padding:13px;border-radius:12px}.fpp-invoice-items-head{align-items:stretch;flex-direction:column;gap:12px}.fpp-invoice-items-head .fpp-btn{width:100%}
 .fpp-invoice-item{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.fpp-invoice-item .item-description{grid-column:1/-1}.fpp-invoice-item .item-qty,.fpp-invoice-item .item-price,.fpp-invoice-item .item-mode,.fpp-invoice-item .item-vat{grid-column:auto}.fpp-invoice-item .item-total{grid-column:1/2;padding:8px 0 4px}.fpp-invoice-item .fpp-remove-invoice-item{grid-column:2/3;width:100%;min-height:48px!important;height:48px!important}
 .fpp-invoice-item input,.fpp-invoice-item select{min-height:48px;height:48px;font-size:16px}.fpp-invoice-items-summary{grid-template-columns:1fr}.fpp-items-vat-breakdown{grid-column:1}
 .fpp-invoice-items-preview thead{display:none}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems tr{display:grid;grid-template-columns:56px minmax(0,1fr);padding:10px 0;border-bottom:1px solid #e1e5e9}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td{width:auto!important;padding:4px 8px!important;text-align:left!important;border:0!important}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td:nth-child(1)::before{content:'Aantal · ';color:#7c8790}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td:nth-child(2){font-weight:700}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td:nth-child(3)::before{content:'Prijs/stuk · ';color:#7c8790}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td:nth-child(4)::before{content:'BTW · ';color:#7c8790}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td:nth-child(5)::before{content:'Totaal · ';color:#7c8790}.fpp-invoice-items-preview tbody#fppInvoicePreviewItems td:nth-child(n+3){grid-column:2}
 .fpp-invoice-tax-summary td{font-size:12px}.fpp-invoice-tax-summary td:first-child{text-align:left}
}

/* 29.4.1 — VWE BPM Calculator: extern geladen, uitsluitend op de calculatorroute */
.fpp-bpm-card{padding:0;overflow:hidden}
.fpp-bpm-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #27333d;background:#0d141a}
.fpp-bpm-toolbar h2{margin:4px 0 6px;color:#f5f7f9;font-size:19px}
.fpp-bpm-toolbar p{max-width:760px;margin:0;color:#93a0ab;font-size:12px;line-height:1.55}
.fpp-bpm-source{flex:0 0 auto;padding:7px 10px;border:1px solid #34424d;border-radius:999px;background:#111a21;color:#c7d0d7;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.fpp-bpm-frame-wrap{min-height:660px;background:#fff}
.fpp-bpm-frame{display:block;width:100%;height:720px;border:0;background:#fff}
.fpp-bpm-fallback{display:flex;align-items:center;gap:10px;padding:13px 18px;border-top:1px solid #27333d;background:#0b1116;color:#8f9ba6;font-size:11px}
.fpp-bpm-fallback strong{color:#f5f7f9;white-space:nowrap}
.fpp-bpm-fallback span{flex:1;min-width:0}
.fpp-bpm-fallback .fpp-btn{flex:0 0 auto}
@media(max-width:760px){
 .fpp-bpm-toolbar{display:block;padding:15px}.fpp-bpm-source{display:inline-flex;margin-top:12px}
 .fpp-bpm-frame-wrap{min-height:700px}.fpp-bpm-frame{height:760px}
 .fpp-bpm-fallback{display:grid;grid-template-columns:1fr;padding:14px}.fpp-bpm-fallback strong{white-space:normal}.fpp-bpm-fallback .fpp-btn{width:100%;justify-content:center}
}



/* 29.4.2 — CarGarantie partnerkoppeling via vaste CGWEBline-ingang */
.fpp-cg-card{padding:0;overflow:hidden}
.fpp-cg-hero{display:flex;align-items:center;gap:20px;padding:26px 24px;border-bottom:1px solid #27333d;background:linear-gradient(135deg,#0d141a,#111a21)}
.fpp-cg-badge{display:grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border:1px solid #3a4752;border-radius:16px;background:#0b1116;color:#f5f7f9;font-size:22px;font-weight:900;letter-spacing:.06em}
.fpp-cg-hero h2{margin:5px 0 7px;color:#f5f7f9;font-size:22px}
.fpp-cg-hero p{max-width:820px;margin:0;color:#98a5af;font-size:12px;line-height:1.6}
.fpp-cg-actions{display:flex;gap:10px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid #27333d;background:#0d1318}
.fpp-cg-note{display:flex;align-items:flex-start;gap:14px;padding:16px 24px;background:#0b1116;color:#8f9ba6;font-size:11px;line-height:1.55}
.fpp-cg-note strong{flex:0 0 auto;color:#f5f7f9}.fpp-cg-note span{max-width:860px}
@media(max-width:760px){
 .fpp-cg-hero{align-items:flex-start;padding:18px 15px}.fpp-cg-badge{flex-basis:52px;width:52px;height:52px;border-radius:13px;font-size:18px}
 .fpp-cg-actions{display:grid;padding:14px}.fpp-cg-actions .fpp-btn{width:100%;justify-content:center}
 .fpp-cg-note{display:grid;gap:6px;padding:14px}
}


/* 29.4.3 — VERKOOPTOOLS + interne CarGarantie premiecheck */
.fpp-cg-check{padding:0;overflow:hidden}
.fpp-cg-check-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #27333d;background:#0d141a}
.fpp-cg-check-head h2{margin:4px 0 6px;color:#f5f7f9;font-size:20px}.fpp-cg-check-head p{max-width:760px;margin:0;color:#93a0ab;font-size:12px;line-height:1.55}
.fpp-cg-internal{flex:0 0 auto;padding:7px 10px;border:1px solid #34424d;border-radius:999px;background:#111a21;color:#c7d0d7;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.fpp-cg-check-grid{display:grid;grid-template-columns:1.25fr .8fr 1.3fr .9fr;gap:12px;padding:20px 22px;background:#0d1318}
.fpp-cg-check-grid>label{display:grid;gap:6px;min-width:0}.fpp-cg-check-grid>label>span{color:#8795a1;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.fpp-cg-check-grid select{width:100%;min-height:46px;padding:0 12px;border:1px solid #34414c;border-radius:9px;background:#0b1116;color:#eef2f5;font-size:12px}
.fpp-cg-result{display:grid;align-content:center;min-height:74px;padding:10px 14px;border:1px solid rgba(242,97,34,.48);border-radius:11px;background:rgba(242,97,34,.08)}
.fpp-cg-result>span{color:#8795a1;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.fpp-cg-result strong{margin:2px 0;color:#fff;font-size:24px;line-height:1.1}.fpp-cg-result small{color:#9aa6af;font-size:9.5px}
.fpp-cg-criteria{display:flex;align-items:flex-start;gap:12px;padding:14px 22px;border-top:1px solid #27333d;background:#0b1116;color:#929faa;font-size:11px;line-height:1.5}.fpp-cg-criteria strong{flex:0 0 auto;color:#fff}.fpp-cg-criteria span{max-width:900px}
.fpp-cg-warning{display:flex;align-items:flex-start;gap:12px;padding:14px 22px;border-top:1px solid #27333d;background:#10171d;color:#9da8b0;font-size:11px;line-height:1.55}.fpp-cg-warning strong{flex:0 0 auto;color:#f5f7f9}
.fpp-cg-products{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.fpp-cg-products .fpp-card{min-height:130px;padding:17px}.fpp-cg-products h3{margin:5px 0 6px;color:#f5f7f9;font-size:16px}.fpp-cg-products p{margin:0;color:#8f9ba6;font-size:11px;line-height:1.55}
body.fpp-body.fpp-route-cargarantie>.fpp-main .fpp-cg-note{margin-top:12px;border:1px solid #27333d;border-radius:12px}
@media(max-width:1100px){.fpp-cg-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fpp-cg-products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.fpp-cg-check-head{display:block;padding:15px}.fpp-cg-internal{display:inline-flex;margin-top:12px}.fpp-cg-check-grid{grid-template-columns:1fr;padding:14px}.fpp-cg-check-grid select{min-height:48px;font-size:16px}.fpp-cg-criteria,.fpp-cg-warning{display:grid;gap:6px;padding:14px}.fpp-cg-products{grid-template-columns:1fr}.fpp-cg-products .fpp-card{min-height:0}}

/* 29.4.4 — Garantiebeheer: afgesloten garanties, claims, tijdlijn en private documenten */
.fpp-wm-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
.fpp-wm-stats article{padding:15px 16px;border:1px solid #26323b;border-radius:14px;background:#0e151b;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.fpp-wm-stats article.accent{border-color:rgba(255,112,30,.48);background:linear-gradient(135deg,rgba(255,112,30,.1),#0e151b 62%)}
.fpp-wm-stats span,.fpp-wm-stats small{display:block;color:#8f9aa4;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.fpp-wm-stats strong{display:block;margin:4px 0 3px;color:#f4f7f9;font-size:25px;line-height:1}
.fpp-wm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;margin-bottom:14px}
.fpp-wm-toolbar form{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.fpp-wm-toolbar input{width:min(560px,100%);min-width:220px;height:40px;padding:0 12px;border:1px solid #33414b;border-radius:9px;background:#0b1116;color:#f4f7f9}
.fpp-wm-table-card{padding:0;overflow:hidden}
.fpp-wm-table-card .fpp-card-head{padding:16px 18px;border-bottom:1px solid #27333d}
.fpp-wm-table-wrap{overflow:auto}
.fpp-wm-table{width:100%;min-width:1050px;border-collapse:collapse}
.fpp-wm-table th{padding:10px 12px;border-bottom:1px solid #27333d;background:#0b1116;color:#84919b;font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.fpp-wm-table td{padding:13px 12px;border-bottom:1px solid #202a32;color:#dbe1e5;font-size:11px;vertical-align:middle}
.fpp-wm-table tbody tr:hover{background:rgba(255,255,255,.018)}
.fpp-wm-table td strong,.fpp-wm-table td b{color:#f6f8f9}
.fpp-wm-table td small{display:block;margin-top:4px;color:#788690;font-size:9px}
.fpp-btn.small{min-height:32px;padding:7px 10px;font-size:10px}
.fpp-wm-status{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:25px;padding:4px 8px;border:1px solid #34414b;border-radius:999px;background:#111a20;color:#c9d1d7;font-size:9px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.fpp-wm-status.success{border-color:rgba(70,176,115,.42);background:rgba(70,176,115,.1);color:#9be0b8}
.fpp-wm-status.warning{border-color:rgba(255,170,61,.42);background:rgba(255,170,61,.1);color:#ffd08b}
.fpp-wm-status.danger{border-color:rgba(225,87,89,.42);background:rgba(225,87,89,.1);color:#ffb0b1}
.fpp-wm-status.neutral{color:#9ca8b0}
.fpp-wm-dossier-head{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;margin-bottom:14px}
.fpp-wm-dossier-head>.fpp-card{padding:18px}
.fpp-wm-title-row,.fpp-wm-claim-head,.fpp-wm-section-head,.fpp-wm-event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.fpp-wm-title-row h2,.fpp-wm-claim-head h2{margin:5px 0 0;color:#f4f7f9;font-size:20px}
.fpp-wm-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}
.fpp-wm-meta span,.fpp-wm-claim-numbers span{padding:10px 11px;border:1px solid #27333d;border-radius:10px;background:#0b1116;min-width:0}
.fpp-wm-meta small,.fpp-wm-claim-numbers small{display:block;margin-bottom:3px;color:#7f8b94;font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.fpp-wm-meta strong,.fpp-wm-claim-numbers strong{display:block;overflow-wrap:anywhere;color:#eef2f4;font-size:11px}
.fpp-wm-note{display:flex;gap:10px;margin:0 0 14px;padding:11px 13px;border:1px solid #2f3b44;border-left:3px solid #ff701e;border-radius:10px;background:#0e151b;color:#aeb8bf;font-size:10px;line-height:1.5}
.fpp-wm-note strong{flex:0 0 auto;color:#f2f5f7}
.fpp-wm-docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.fpp-wm-docs.compact{grid-template-columns:1fr;margin-top:11px}
.fpp-wm-docs.claim-docs{margin-top:14px;padding-top:14px;border-top:1px solid #27333d}
.fpp-wm-doc{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid #2b3740;border-radius:10px;background:#0b1116;text-decoration:none;transition:border-color .16s ease,transform .16s ease}
.fpp-wm-doc:hover{border-color:#4a5a65;transform:translateY(-1px)}
.fpp-wm-doc>span:nth-child(2){min-width:0}
.fpp-wm-doc strong,.fpp-wm-doc small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fpp-wm-doc strong{color:#e9eef1;font-size:10px}.fpp-wm-doc small{margin-top:2px;color:#73818b;font-size:8px}.fpp-wm-doc>b{color:#aab4bb;font-size:9px;white-space:nowrap}
.fpp-wm-pdf{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:rgba(255,112,30,.12);color:#ff8c4b;font-size:9px;font-weight:900;letter-spacing:.04em}
.fpp-wm-section-head{margin:22px 2px 10px}.fpp-wm-section-head h2{margin:4px 0 0;color:#f4f7f9;font-size:18px}
.fpp-wm-claim{padding:18px;margin-bottom:14px;border-color:#34424c}
.fpp-wm-claim-head p{max-width:760px;margin:6px 0 0;color:#8e9aa3;font-size:10px;line-height:1.5}
.fpp-wm-claim-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}
.fpp-wm-claim-numbers strong{font-size:14px}
.fpp-wm-claim-edit{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:9px;align-items:end;margin-top:12px;padding:12px;border:1px solid #27333d;border-radius:10px;background:#0b1116}
.fpp-wm-claim-edit label,.fpp-wm-form label{display:grid;gap:5px}.fpp-wm-claim-edit label span,.fpp-wm-form label span{color:#87939c;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.fpp-wm-claim-edit input,.fpp-wm-claim-edit select,.fpp-wm-form input,.fpp-wm-form select,.fpp-wm-form textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid #33414b;border-radius:8px;background:#0e151b;color:#edf1f3;font:inherit;box-sizing:border-box}
.fpp-wm-timeline{position:relative;padding:2px 0 2px 18px}
.fpp-wm-timeline:before{content:"";position:absolute;left:6px;top:7px;bottom:7px;width:1px;background:#33414b}
.fpp-wm-timeline>article{position:relative;padding:0 0 18px 19px}.fpp-wm-timeline>article:last-child{padding-bottom:0}
.fpp-wm-dot{position:absolute;left:-16px;top:5px;width:9px;height:9px;border:2px solid #0f171d;border-radius:50%;background:#ff701e;box-shadow:0 0 0 1px #ff701e}
.fpp-wm-event{padding:13px 14px;border:1px solid #27333d;border-radius:11px;background:#0b1116}
.fpp-wm-event-head span{display:block;color:#7d8a93;font-size:8px;font-weight:800;letter-spacing:.05em}.fpp-wm-event h3{margin:3px 0 0;color:#eef2f4;font-size:13px}.fpp-wm-event p{margin:7px 0 0;color:#95a0a8;font-size:10px;line-height:1.55}
.fpp-wm-inclaim,.fpp-wm-outclaim{padding:5px 7px;border-radius:999px;font-size:8px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.fpp-wm-inclaim{background:rgba(70,176,115,.1);color:#9be0b8}.fpp-wm-outclaim{background:rgba(255,170,61,.1);color:#ffd08b}
.fpp-wm-event-amount{display:flex;align-items:center;gap:10px;margin-top:8px}.fpp-wm-event-amount strong{color:#f4f7f9;font-size:11px}.fpp-wm-event-amount span{color:#7e8b94;font-size:9px}
.fpp-wm-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.fpp-wm-two-col>.fpp-card{padding:17px}
.fpp-wm-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fpp-wm-form .wide{grid-column:1/-1}.fpp-wm-form button{justify-self:start}
@media(max-width:1100px){.fpp-wm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.fpp-wm-dossier-head,.fpp-wm-two-col{grid-template-columns:1fr}.fpp-wm-claim-edit{grid-template-columns:1fr 1fr}.fpp-wm-claim-edit button{grid-column:1/-1;justify-self:start}}
@media(max-width:700px){.fpp-wm-stats{grid-template-columns:1fr 1fr}.fpp-wm-toolbar,.fpp-wm-toolbar form{align-items:stretch;flex-direction:column}.fpp-wm-toolbar input{width:100%;min-width:0}.fpp-wm-meta,.fpp-wm-docs,.fpp-wm-claim-numbers,.fpp-wm-form,.fpp-wm-claim-edit{grid-template-columns:1fr}.fpp-wm-claim-edit button,.fpp-wm-form .wide{grid-column:auto}.fpp-wm-title-row,.fpp-wm-claim-head,.fpp-wm-event-head{align-items:flex-start;flex-direction:column}.fpp-wm-event-head .fpp-wm-inclaim,.fpp-wm-event-head .fpp-wm-outclaim{align-self:flex-start}.fpp-wm-doc{grid-template-columns:auto minmax(0,1fr)}.fpp-wm-doc>b{grid-column:2}}

/* 29.4.13 — Owner-only bookkeeping quick intake */
body.fpp-body.fpp-route-bookkeeping .fpp-content{max-width:1540px}
.fpp-bookkeeping-start{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:14px;margin-bottom:14px}
.fpp-bookkeeping-start>.fpp-card{margin:0}
.fpp-bookkeeping-camera{display:flex;align-items:center;gap:14px;min-height:92px;margin:14px 0;padding:16px;border:1px dashed #4a5862;border-radius:14px;background:#0b1116;cursor:pointer}
.fpp-bookkeeping-camera:hover{border-color:#f06c25;background:#0d151b}
.fpp-bookkeeping-camera input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.fpp-bookkeeping-camera>b{display:grid;place-items:center;width:52px;height:52px;border-radius:13px;background:rgba(240,108,37,.12);font-size:25px}
.fpp-bookkeeping-camera span{display:grid;gap:4px}.fpp-bookkeeping-camera strong{color:#f2f5f7;font-size:14px}.fpp-bookkeeping-camera small{color:#7f8c95;font-size:10px}
.fpp-bookkeeping-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fpp-bookkeeping-fields label,.fpp-bookkeeping-period label,.fpp-bookkeeping-toolbar label,.fpp-bookkeeping-edit label{display:grid;gap:5px}.fpp-bookkeeping-fields label>span,.fpp-bookkeeping-period label>span,.fpp-bookkeeping-toolbar label>span,.fpp-bookkeeping-edit label>span{color:#87939c;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.fpp-bookkeeping-fields input,.fpp-bookkeeping-fields select,.fpp-bookkeeping-fields textarea,.fpp-bookkeeping-period input,.fpp-bookkeeping-period select,.fpp-bookkeeping-toolbar input,.fpp-bookkeeping-toolbar select,.fpp-bookkeeping-edit input,.fpp-bookkeeping-edit select,.fpp-bookkeeping-edit textarea{width:100%;min-height:42px;padding:8px 10px;border:1px solid #33414b;border-radius:9px;background:#0e151b;color:#edf1f3;box-sizing:border-box;font:inherit}.fpp-bookkeeping-fields .wide,.fpp-bookkeeping-edit .wide{grid-column:1/-1}.fpp-bookkeeping-more{margin:10px 0 14px;border-top:1px solid #26323b;padding-top:9px}.fpp-bookkeeping-more>summary{cursor:pointer;color:#a9b4bc;font-size:10px;font-weight:800}.fpp-bookkeeping-more[open]>summary{margin-bottom:10px}
.fpp-bookkeeping-period{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 10px}.fpp-bookkeeping-filebox{width:100%;margin:0 0 12px;padding:14px;border:1px dashed #3c4953;border-radius:12px;background:#0b1116;color:#cbd3d8;box-sizing:border-box}
.fpp-bookkeeping-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px;border:1px solid #2a3640;border-radius:13px;overflow:hidden;background:#0d141a}.fpp-bookkeeping-kpis>div{min-height:80px;padding:14px 16px;border-right:1px solid #28343d}.fpp-bookkeeping-kpis>div:last-child{border-right:0}.fpp-bookkeeping-kpis span,.fpp-bookkeeping-kpis strong{display:block}.fpp-bookkeeping-kpis span{color:#788690;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.fpp-bookkeeping-kpis strong{margin-top:8px;color:#f1f4f6;font-size:19px}.fpp-bookkeeping-kpis .attention strong{color:#ffb170}
.fpp-bookkeeping-ledger{padding:0;overflow:hidden}.fpp-bookkeeping-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid #27333c}.fpp-bookkeeping-toolbar form{display:flex;align-items:end;gap:8px}.fpp-bookkeeping-toolbar input{width:104px}.fpp-bookkeeping-toolbar select{width:86px}.fpp-bookkeeping-export-help{margin:0;padding:10px 16px;border-bottom:1px solid #27333c;background:#0b1116;color:#7f8b94;font-size:10px;line-height:1.5}.fpp-bookkeeping-list{display:grid}.fpp-bookkeeping-item{border-bottom:1px solid #26323b;background:#0e151b}.fpp-bookkeeping-item:last-child{border-bottom:0}.fpp-bookkeeping-item.needs-review{box-shadow:inset 3px 0 0 #f06c25}.fpp-bookkeeping-item-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 15px}.fpp-bookkeeping-docicon{display:grid;place-items:center;width:38px;height:38px;border:1px solid #32404a;border-radius:10px;background:#111a21;color:#9aa7af;font-size:8px;font-weight:900}.fpp-bookkeeping-item-main>div:nth-child(2){min-width:0}.fpp-bookkeeping-item-main>div:nth-child(2)>strong,.fpp-bookkeeping-item-main>div:nth-child(2)>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fpp-bookkeeping-item-main>div:nth-child(2)>strong{color:#edf1f3;font-size:12px}.fpp-bookkeeping-item-main>div:nth-child(2)>small{margin-top:4px;color:#77858e;font-size:9px}.fpp-bookkeeping-amount{text-align:right}.fpp-bookkeeping-amount strong,.fpp-bookkeeping-amount small{display:block;white-space:nowrap}.fpp-bookkeeping-amount strong{color:#eef2f4;font-size:12px}.fpp-bookkeeping-amount small{margin-top:3px;color:#74818a;font-size:9px}.fpp-bookkeeping-item>details{border-top:1px solid transparent}.fpp-bookkeeping-item>details[open]{border-top-color:#26323b;background:#0b1116}.fpp-bookkeeping-item>details>summary{padding:9px 15px;cursor:pointer;color:#8f9ba4;font-size:9px;font-weight:800}.fpp-bookkeeping-edit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 15px 15px}.fpp-bookkeeping-edit-actions{grid-column:1/-1;display:flex;align-items:center;gap:8px}.fpp-bookkeeping-edit-actions form{margin:0}.fpp-btn.danger{border-color:#6a3131;color:#ffb3b3}.fpp-owner-direct{border-color:rgba(240,108,37,.45)!important;background:rgba(240,108,37,.06)!important}
@media(max-width:1080px){.fpp-bookkeeping-start{grid-template-columns:1fr}.fpp-bookkeeping-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.fpp-bookkeeping-kpis>div:nth-child(3){border-right:0}.fpp-bookkeeping-kpis>div:nth-child(n+4){border-top:1px solid #28343d}.fpp-bookkeeping-edit{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fpp-bookkeeping-delete{margin:0;padding:0 15px 15px}
.fpp-bookkeeping-package-actions{display:flex;align-items:center;gap:8px}.fpp-bookkeeping-package-actions form{margin:0}.fpp-bookkeeping-export-help{display:flex;align-items:center;justify-content:space-between;gap:14px}.fpp-bookkeeping-export-help p{margin:0}.fpp-bookkeeper-settings{display:flex;align-items:end;gap:8px;min-width:min(430px,100%)}.fpp-bookkeeper-settings label{display:grid;gap:5px;min-width:270px}.fpp-bookkeeper-settings label>span{color:#87939c;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.fpp-bookkeeper-settings input{width:100%;min-height:38px;padding:7px 9px;border:1px solid #33414b;border-radius:8px;background:#0e151b;color:#edf1f3;box-sizing:border-box}
@media(max-width:820px){.fpp-bookkeeping-export-help,.fpp-bookkeeping-package-actions,.fpp-bookkeeper-settings{align-items:stretch;flex-direction:column}.fpp-bookkeeper-settings label{min-width:0}.fpp-bookkeeping-package-actions .fpp-btn,.fpp-bookkeeper-settings .fpp-mini-btn{width:100%;justify-content:center}}

/* 29.4.14 — OneDrive bookkeeping bridge + mobile receipt capture */
.fpp-onedrive-card{margin:0 0 14px;padding:16px;border-color:#2d3c47;background:linear-gradient(135deg,#0d151b 0%,#0a1015 100%)}
.fpp-onedrive-card.connected{box-shadow:inset 3px 0 0 #4f9f78}.fpp-onedrive-card.disconnected{box-shadow:inset 3px 0 0 #d79a55}
.fpp-onedrive-main{display:flex;align-items:flex-start;gap:13px}.fpp-onedrive-main h2{margin:3px 0 6px;color:#f2f5f7;font-size:16px}.fpp-onedrive-main p{margin:0;color:#89969f;font-size:10px;line-height:1.6}.fpp-onedrive-main p strong{color:#dce3e7}.fpp-onedrive-main code{padding:2px 5px;border:1px solid #2d3b45;border-radius:5px;background:#080d11;color:#b6c3cb;font-size:9px;overflow-wrap:anywhere}.fpp-onedrive-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border:1px solid #31414b;border-radius:13px;background:#101a21;font-size:22px}.fpp-onedrive-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0 59px}.fpp-onedrive-settings{margin:13px 0 0 59px;border-top:1px solid #26343d;padding-top:10px}.fpp-onedrive-settings>summary{cursor:pointer;color:#a7b3ba;font-size:10px;font-weight:800}.fpp-onedrive-settings[open]>summary{margin-bottom:10px}.fpp-onedrive-setup-note{display:grid;gap:4px;margin-bottom:11px;padding:10px 12px;border:1px solid #2a3943;border-radius:9px;background:#091015;color:#7f8d96;font-size:9px;line-height:1.55}.fpp-onedrive-setup-note strong{color:#dfe6ea;font-size:10px}.fpp-onedrive-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fpp-onedrive-form label{display:grid;gap:5px}.fpp-onedrive-form label.wide{grid-column:1/-1}.fpp-onedrive-form label>span{color:#87939c;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.fpp-onedrive-form input{width:100%;min-height:42px;padding:8px 10px;border:1px solid #33414b;border-radius:9px;background:#0e151b;color:#edf1f3;box-sizing:border-box;font:inherit}.fpp-onedrive-form input[readonly]{color:#9ba8b0;background:#0a1015}.fpp-onedrive-form-actions{grid-column:1/-1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fpp-bookkeeping-destination{align-self:flex-start;max-width:44%;padding:6px 9px;border:1px solid #33414b;border-radius:999px;background:#0a1116;color:#91a0a9;font-size:8px;font-weight:800;line-height:1.3;text-align:right}.fpp-bookkeeping-capture-actions{display:grid;grid-template-columns:1.3fr .7fr;gap:10px;margin:14px 0}.fpp-bookkeeping-capture-actions .fpp-bookkeeping-camera{margin:0;min-height:86px}.fpp-bookkeeping-camera.primary-capture{border-color:rgba(240,108,37,.7);background:linear-gradient(135deg,rgba(240,108,37,.10),#0b1116)}.fpp-bookkeeping-camera.secondary-capture>b{background:rgba(125,145,158,.12)}.fpp-bookkeeping-quick-fields{margin-bottom:4px}.fpp-bookkeeping-mobile-submit{min-height:48px}
@media(max-width:900px){.fpp-onedrive-form{grid-template-columns:1fr 1fr}.fpp-bookkeeping-destination{max-width:52%}}
@media(max-width:640px){
 body.fpp-body.fpp-route-bookkeeping .fpp-content{padding-left:10px;padding-right:10px}
 .fpp-page-head{margin-bottom:10px}.fpp-page-title h1{font-size:20px}.fpp-page-title p{font-size:10px;line-height:1.5}
 .fpp-onedrive-card{padding:13px}.fpp-onedrive-main{gap:10px}.fpp-onedrive-icon{flex-basis:40px;height:40px;border-radius:11px;font-size:19px}.fpp-onedrive-main h2{font-size:14px}.fpp-onedrive-main p{font-size:9px}.fpp-onedrive-actions,.fpp-onedrive-settings{margin-left:0}.fpp-onedrive-actions{display:grid;grid-template-columns:1fr}.fpp-onedrive-actions .fpp-btn{width:100%;justify-content:center;min-height:46px}.fpp-onedrive-form{grid-template-columns:1fr}.fpp-onedrive-form label.wide,.fpp-onedrive-form-actions{grid-column:1}.fpp-onedrive-form-actions{align-items:stretch;flex-direction:column}.fpp-onedrive-form-actions .fpp-btn,.fpp-onedrive-form-actions .fpp-mini-btn{width:100%;justify-content:center;min-height:44px}
 .fpp-bookkeeping-start{gap:10px}.fpp-bookkeeping-start>.fpp-card{padding:13px}.fpp-bookkeeping-scan .fpp-card-head{display:grid;gap:8px}.fpp-bookkeeping-destination{max-width:none;width:fit-content;text-align:left}
 .fpp-bookkeeping-capture-actions{grid-template-columns:1fr 1fr;gap:8px}.fpp-bookkeeping-capture-actions .fpp-bookkeeping-camera{min-height:92px;padding:12px;gap:9px;align-items:flex-start;flex-direction:column}.fpp-bookkeeping-capture-actions .fpp-bookkeeping-camera>b{width:42px;height:42px;font-size:21px}.fpp-bookkeeping-capture-actions .fpp-bookkeeping-camera strong{font-size:12px}.fpp-bookkeeping-capture-actions .fpp-bookkeeping-camera small{font-size:8px;line-height:1.35}
 .fpp-bookkeeping-fields,.fpp-bookkeeping-edit{grid-template-columns:1fr}.fpp-bookkeeping-fields .wide,.fpp-bookkeeping-edit .wide,.fpp-bookkeeping-edit-actions{grid-column:1}.fpp-bookkeeping-fields input,.fpp-bookkeeping-fields select,.fpp-bookkeeping-fields textarea,.fpp-bookkeeping-edit input,.fpp-bookkeeping-edit select,.fpp-bookkeeping-edit textarea{min-height:48px;font-size:16px}.fpp-bookkeeping-mobile-submit{position:sticky;bottom:8px;z-index:8;width:100%;min-height:54px;margin-top:4px;justify-content:center;box-shadow:0 8px 28px rgba(0,0,0,.4)}
 .fpp-bookkeeping-kpis{grid-template-columns:1fr 1fr;border-radius:10px}.fpp-bookkeeping-kpis>div{min-height:68px;padding:11px;border-right:1px solid #28343d;border-top:1px solid #28343d}.fpp-bookkeeping-kpis>div:nth-child(-n+2){border-top:0}.fpp-bookkeeping-kpis>div:nth-child(even){border-right:0}.fpp-bookkeeping-kpis>div:last-child{grid-column:1/-1;border-right:0}.fpp-bookkeeping-kpis strong{font-size:16px}
 .fpp-bookkeeping-toolbar{align-items:stretch;flex-direction:column;padding:12px}.fpp-bookkeeping-toolbar>form{display:grid;grid-template-columns:1fr 1fr auto;width:100%}.fpp-bookkeeping-toolbar input,.fpp-bookkeeping-toolbar select{width:100%;min-height:44px}.fpp-bookkeeping-package-actions{width:100%}
 .fpp-bookkeeping-item-main{grid-template-columns:auto minmax(0,1fr) auto;gap:9px;padding:11px}.fpp-bookkeeping-item-main>.fpp-bookkeeping-amount{grid-column:2;text-align:left}.fpp-bookkeeping-item-main>a{grid-column:3;grid-row:1/3;align-self:center}.fpp-bookkeeping-item-main>div:nth-child(2)>strong{font-size:11px}.fpp-bookkeeping-item-main>div:nth-child(2)>small{white-space:normal;line-height:1.35}.fpp-bookkeeping-amount strong{font-size:12px}
 .fpp-bookkeeper-settings input{min-height:46px;font-size:16px}
}
@media(max-width:380px){.fpp-bookkeeping-capture-actions{grid-template-columns:1fr}.fpp-bookkeeping-capture-actions .fpp-bookkeeping-camera{min-height:76px;flex-direction:row;align-items:center}.fpp-bookkeeping-toolbar>form{grid-template-columns:1fr 1fr}.fpp-bookkeeping-toolbar>form .fpp-btn{grid-column:1/-1}}

/* 29.4.15 — simpele gratis boekhouding + automatische kwartaalkeuze */
.fpp-bookkeeping-simple-card{margin:0 0 14px;padding:16px;border-color:#2f443b;background:linear-gradient(135deg,#0d1714 0%,#0a1015 100%);box-shadow:inset 3px 0 0 #4f9f78}
.fpp-simple-storage-main{display:flex;align-items:flex-start;gap:13px}.fpp-simple-storage-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border:1px solid #365448;border-radius:13px;background:rgba(79,159,120,.12);color:#8bd0aa;font-size:20px;font-weight:900}.fpp-simple-storage-main h2{margin:3px 0 6px;color:#f2f5f7;font-size:16px}.fpp-simple-storage-main p{margin:0;color:#89969f;font-size:10px;line-height:1.6}.fpp-simple-storage-grid{display:grid;grid-template-columns:.45fr 1.55fr;gap:9px;margin:13px 0 0 59px}.fpp-simple-storage-grid>div{display:grid;gap:4px;padding:10px 12px;border:1px solid #2b3a34;border-radius:10px;background:#0a1210}.fpp-simple-storage-grid span{color:#74877e;font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.fpp-simple-storage-grid strong{color:#dce7e1;font-size:10px;overflow-wrap:anywhere}.fpp-simple-storage-note{margin:9px 0 0 59px;padding:10px 12px;border:1px solid #2a3943;border-radius:9px;background:#091015;color:#7f8d96;font-size:9px;line-height:1.55}.fpp-simple-storage-note b{color:#dfe6ea}
.fpp-quarter-auto{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;margin:9px 0 12px;padding:10px 12px;border:1px solid rgba(79,159,120,.35);border-radius:10px;background:rgba(79,159,120,.07)}.fpp-quarter-auto span{color:#7e958a;font-size:8px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.fpp-quarter-auto strong{padding:4px 7px;border-radius:999px;background:rgba(79,159,120,.14);color:#b8e3cb;font-size:10px;white-space:nowrap}.fpp-quarter-auto small{color:#74818a;font-size:9px;text-align:right}
@media(max-width:640px){.fpp-bookkeeping-simple-card{padding:13px}.fpp-simple-storage-main{gap:10px}.fpp-simple-storage-icon{flex-basis:40px;height:40px;border-radius:11px}.fpp-simple-storage-main h2{font-size:14px}.fpp-simple-storage-main p{font-size:9px}.fpp-simple-storage-grid{grid-template-columns:1fr;margin-left:0}.fpp-simple-storage-note{margin-left:0}.fpp-quarter-auto{grid-template-columns:1fr auto}.fpp-quarter-auto small{grid-column:1/-1;text-align:left;line-height:1.4}.fpp-bookkeeping-destination{background:rgba(79,159,120,.08);border-color:rgba(79,159,120,.35);color:#a8c7b7}}

/* 29.4.16 — mobiele scanselectie / bon uitsnijden */
.fpp-scan-editor[hidden],.fpp-scan-result[hidden]{display:none!important}
html.fpp-scan-editor-open,html.fpp-scan-editor-open body{overflow:hidden!important}
.fpp-scan-editor{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:16px;background:rgba(2,7,10,.88);backdrop-filter:blur(8px)}
.fpp-scan-editor-sheet{width:min(980px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:15px;border:1px solid #34424c;border-radius:16px;background:#0b1217;box-shadow:0 24px 70px rgba(0,0,0,.58)}
.fpp-scan-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.fpp-scan-editor-head h3{margin:3px 0 4px;color:#f4f6f7;font-size:18px}.fpp-scan-editor-head p{margin:0;color:#8c99a1;font-size:10px;line-height:1.5}.fpp-scan-close{display:grid;place-items:center;flex:0 0 38px;height:38px;border:1px solid #34424c;border-radius:10px;background:#111a20;color:#c9d0d5;font-size:25px;cursor:pointer}
.fpp-scan-stage{display:grid;place-items:center;margin:13px 0 8px;min-height:240px;overflow:auto;border:1px solid #26343d;border-radius:13px;background:repeating-conic-gradient(#0a1014 0 25%,#0c1419 0 50%) 50% / 18px 18px}.fpp-scan-stage canvas{display:block;max-width:100%;height:auto;touch-action:none;cursor:crosshair;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.fpp-scan-hint{display:flex;align-items:center;justify-content:center;gap:7px;color:#82909a;font-size:9px}.fpp-scan-hint span{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:rgba(240,108,37,.12);color:#f06c25;font-size:13px}.fpp-scan-editor-actions{display:grid;grid-template-columns:.7fr 1.3fr;gap:9px;margin-top:11px}.fpp-scan-editor-actions .fpp-btn{min-height:47px;justify-content:center}
.fpp-scan-result{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;margin:-2px 0 12px;padding:9px;border:1px solid rgba(79,159,120,.35);border-radius:11px;background:rgba(79,159,120,.07)}.fpp-scan-thumb{width:52px;height:52px;overflow:hidden;border:1px solid #34463e;border-radius:8px;background:#09100d}.fpp-scan-thumb img{width:100%;height:100%;object-fit:cover}.fpp-scan-result strong{display:block;color:#dce8e1;font-size:10px}.fpp-scan-result small{display:block;margin-top:2px;color:#7c8c84;font-size:8px;line-height:1.35}
@media(max-width:640px){.fpp-scan-editor{align-items:end;padding:0}.fpp-scan-editor-sheet{width:100%;max-height:96dvh;padding:12px;border-radius:18px 18px 0 0;border-left:0;border-right:0;border-bottom:0}.fpp-scan-editor-head h3{font-size:16px}.fpp-scan-editor-head p{font-size:9px}.fpp-scan-stage{min-height:210px;max-height:65dvh}.fpp-scan-hint{font-size:8px}.fpp-scan-result{grid-template-columns:46px minmax(0,1fr);padding:8px}.fpp-scan-thumb{width:46px;height:46px}.fpp-scan-result .fpp-mini-btn{grid-column:1/-1;width:100%;justify-content:center;min-height:38px}.fpp-scan-editor-actions{position:sticky;bottom:-12px;margin-left:-12px;margin-right:-12px;margin-bottom:-12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(11,18,23,.92),#0b1217 28%);z-index:2}}

/* ========================================================================== 
   FIVE Performance OS 29.4.19 — header polish & medewerkers layout
   Cleaner top-right controls, no loose helper buttons, and a structured
   employee role editor that aligns on desktop, tablet and phone.
   ========================================================================== */

body.fpp-body .fpp-top-actions {
  margin-left: auto;
  gap: 10px;
}
body.fpp-body .fpp-top-actions:empty {
  display: none;
}
body.fpp-body .fpp-layout-toggle,
body.fpp-body .fpp-context-help {
  display: none !important;
}

body.fpp-body .fpp-save-state {
  min-height: 40px;
  padding: 0 14px;
  border-color: #6e5830;
  background: linear-gradient(180deg, rgba(93,73,33,.42), rgba(45,36,18,.52));
  color: #f2d18a;
  font-size: 11px;
  font-weight: 760;
  letter-spacing: .01em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
body.fpp-body .fpp-save-state::before {
  width: 8px;
  height: 8px;
}

body.fpp-body .fpp-owner-menu {
  position: relative;
  flex: 0 0 auto;
}
body.fpp-body .fpp-owner-btn {
  min-height: 40px;
  padding: 0 16px;
  gap: 10px;
  border: 1px solid #374350;
  border-radius: 14px;
  background: linear-gradient(180deg, #131b22, #0d1318);
  color: #f4f6f7;
  font-size: 12px;
  font-weight: 760;
  letter-spacing: -.01em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
body.fpp-body .fpp-owner-btn:hover,
body.fpp-body .fpp-owner-menu.open .fpp-owner-btn,
body.fpp-body .fpp-owner-menu:focus-within .fpp-owner-btn {
  border-color: #4f5f6d;
  background: linear-gradient(180deg, #162028, #10171d);
  color: #fff;
  box-shadow: 0 10px 28px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05);
}
body.fpp-body .fpp-owner-btn:focus-visible {
  outline: none;
  border-color: #7a4d2f;
  box-shadow: 0 0 0 3px rgba(240,108,37,.12), inset 0 1px 0 rgba(255,255,255,.05);
}
body.fpp-body .fpp-owner-btn b {
  margin: 0;
  color: #f2a36f;
  font-size: 11px;
  transition: transform .16s ease;
}
body.fpp-body .fpp-owner-menu.open .fpp-owner-btn b,
body.fpp-body .fpp-owner-menu:focus-within .fpp-owner-btn b {
  transform: rotate(180deg);
}
body.fpp-body .fpp-owner-dropdown {
  top: calc(100% + 10px);
  width: 312px;
  padding: 10px;
  border-color: #2b3640;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(17,23,29,.99), rgba(12,17,22,.99));
  box-shadow: 0 24px 60px rgba(0,0,0,.44);
}
body.fpp-body .fpp-owner-title {
  padding: 10px 12px 12px;
  border-bottom-color: #24313a;
}
body.fpp-body .fpp-owner-title strong {
  font-size: 13px;
  color: #f6f8f9;
}
body.fpp-body .fpp-owner-title small {
  margin-top: 4px;
  color: #8d9aa4;
  font-size: 11px;
  line-height: 1.45;
}
body.fpp-body .fpp-owner-dropdown a {
  min-height: 42px;
  padding: 0 11px;
  border-radius: 12px;
  color: #d8e0e5;
  font-size: 12px;
  font-weight: 620;
}
body.fpp-body .fpp-owner-dropdown a:hover {
  background: #172028;
}
body.fpp-body .fpp-owner-dropdown a i {
  width: 20px;
  text-align: center;
}
body.fpp-body .fpp-owner-dropdown a b {
  color: #73818b;
}
body.fpp-body .fpp-owner-direct {
  border: 1px solid rgba(240,108,37,.32) !important;
  background: rgba(240,108,37,.07) !important;
}

body.fpp-body .fpp-user {
  min-width: 0;
  padding: 7px 12px 7px 8px;
  border: 1px solid #26313a;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(17,22,28,.96), rgba(11,15,19,.96));
}
body.fpp-body .fpp-user .fpp-avatar {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

body.fpp-body .fpp-employees-card {
  overflow: visible;
}
body.fpp-body .fpp-employee-list {
  gap: 14px;
}
body.fpp-body .fpp-employee-row {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 16px;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(155deg, #10161c, #0c1116);
}
body.fpp-body .fpp-employee-main {
  display: grid;
  grid-template-columns: minmax(240px, 1.1fr) minmax(380px, 1.55fr) auto;
  gap: 14px;
  align-items: end;
}
body.fpp-body .fpp-employee-summary {
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}
body.fpp-body .fpp-employee-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 14px;
  background: linear-gradient(180deg, #26323b, #1c262e);
  font-size: 15px;
}
body.fpp-body .fpp-employee-identity,
body.fpp-body .fpp-employee-meta,
body.fpp-body .fpp-employee-actions {
  min-width: 0;
}
body.fpp-body .fpp-employee-identity {
  display: grid;
  gap: 7px;
}
body.fpp-body .fpp-employee-identity small {
  color: #87959f;
  font-size: 11px;
  line-height: 1.45;
}
body.fpp-body .fpp-employee-meta {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) minmax(200px, 1fr) 132px;
  gap: 12px;
  align-items: end;
}
body.fpp-body .fpp-employee-field,
body.fpp-body .fpp-employee-status,
body.fpp-body .fpp-employee-name {
  display: grid;
  gap: 7px;
  min-width: 0;
}
body.fpp-body .fpp-employee-field > span,
body.fpp-body .fpp-employee-status > span {
  color: #98a6af;
  font-size: 10px;
  font-weight: 780;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.fpp-body .fpp-employee-field > small,
body.fpp-body .fpp-employee-status > small {
  color: #87959f;
  font-size: 10px;
  line-height: 1.45;
}
body.fpp-body .fpp-employee-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
}
body.fpp-body .fpp-access-toggle {
  appearance: none;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid #33404a;
  border-radius: 12px;
  background: #121920;
  color: #eff3f5;
  font-size: 12px;
  font-weight: 760;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
body.fpp-body .fpp-access-toggle:hover {
  border-color: #4b5b68;
  color: #fff;
}
body.fpp-body .fpp-access-toggle:focus-visible {
  outline: none;
  border-color: #7a4d2f;
  box-shadow: 0 0 0 3px rgba(240,108,37,.12);
}
body.fpp-body .fpp-employee-access.is-access-open .fpp-access-toggle {
  border-color: rgba(240,108,37,.45);
  background: rgba(240,108,37,.08);
  color: #fff;
}
body.fpp-body .fpp-permission-editor {
  display: grid;
  gap: 14px;
  padding-top: 2px;
}
body.fpp-body .fpp-default-access {
  padding: 14px 15px;
  border: 1px solid #28333d;
  border-radius: 16px;
  background: #0d1318;
}
body.fpp-body .fpp-permission-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
body.fpp-body .fpp-permission-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 14px;
  border-radius: 14px;
  background: #10171d;
}
body.fpp-body .fpp-permission-card strong {
  display: block;
  margin-bottom: 4px;
}
body.fpp-body .fpp-permission-card small {
  display: block;
  color: #87959f;
  line-height: 1.5;
}
body.fpp-body .fpp-permission-card input {
  margin-top: 2px;
}
body.fpp-body .fpp-access-warning {
  padding: 13px 14px;
  border: 1px solid #28333d;
  border-radius: 14px;
  background: #0c1216;
  color: #aab4bc;
  line-height: 1.55;
}
body.fpp-body .fpp-access-warning strong {
  color: #eef2f4;
}
body.fpp-body .fpp-employee-save {
  min-width: 200px;
}

@media (max-width: 1280px) {
  body.fpp-body .fpp-employee-main {
    grid-template-columns: minmax(220px, 1fr) minmax(0, 1.25fr);
    align-items: start;
  }
  body.fpp-body .fpp-employee-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 1024px) {
  body.fpp-body .fpp-employee-main {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.fpp-body .fpp-employee-actions {
    justify-content: stretch;
  }
  body.fpp-body .fpp-access-toggle {
    width: 100%;
    min-height: 48px;
  }
  body.fpp-body .fpp-permission-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-save-state {
    width: auto;
    min-width: 0;
    padding: 0 12px;
    font-size: 11px;
  }
  body.fpp-body .fpp-owner-dropdown {
    position: fixed;
    left: 12px;
    right: 12px;
    top: calc(var(--fpp-top-h, 58px) + 10px);
    width: auto;
    max-height: calc(100vh - var(--fpp-top-h, 58px) - 24px - env(safe-area-inset-bottom));
    overflow: auto;
  }
  body.fpp-body .fpp-user {
    display: none;
  }
  body.fpp-body .fpp-employee-row {
    padding: 15px;
    gap: 14px;
  }
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: 1fr;
  }
  body.fpp-body .fpp-permission-grid {
    grid-template-columns: 1fr;
  }
  body.fpp-body .fpp-employee-save {
    width: 100%;
    min-width: 0;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.4.20 — medewerkers alignment refinement
   Cleaner structure per employee card: identity first, controls second,
   with auto-fitting permission cards and tighter mobile behaviour.
   ========================================================================== */
body.fpp-body .fpp-employee-list {
  gap: 16px;
}
body.fpp-body .fpp-employee-row {
  gap: 18px;
  padding: 20px;
}
body.fpp-body .fpp-employee-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "summary summary"
    "meta actions";
  gap: 14px 16px;
  align-items: end;
}
body.fpp-body .fpp-employee-summary {
  grid-area: summary;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(44,56,66,.72);
}
body.fpp-body .fpp-employee-avatar {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 15px;
}
body.fpp-body .fpp-employee-identity {
  display: grid;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}
body.fpp-body .fpp-employee-name {
  max-width: 300px;
}
body.fpp-body .fpp-employee-name input {
  width: 100%;
}
body.fpp-body .fpp-employee-identity small {
  color: #8f9ca5;
  font-size: 11px;
}
body.fpp-body .fpp-employee-meta {
  grid-area: meta;
  display: grid;
  grid-template-columns: minmax(250px, 1.5fr) minmax(210px, 1fr) 140px;
  gap: 12px;
  align-items: end;
}
body.fpp-body .fpp-employee-actions {
  grid-area: actions;
  align-self: end;
}
body.fpp-body .fpp-access-toggle {
  min-width: 164px;
  min-height: 46px;
  padding-inline: 17px;
  border-radius: 14px;
}
body.fpp-body .fpp-permission-editor {
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(40,52,61,.82);
  border-radius: 18px;
  background: rgba(9,14,18,.72);
}
body.fpp-body .fpp-default-access {
  padding: 16px;
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(28,20,17,.88), rgba(23,18,15,.66));
  border-color: rgba(138,82,44,.48);
}
body.fpp-body .fpp-default-access .fpp-switch-row {
  align-items: flex-start;
}
body.fpp-body .fpp-permission-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
body.fpp-body .fpp-permission-card {
  min-height: 104px;
  padding: 15px;
}
body.fpp-body .fpp-permission-card strong {
  line-height: 1.25;
}
body.fpp-body .fpp-permission-card small {
  font-size: 11px;
}
body.fpp-body .fpp-access-warning {
  padding: 14px 15px;
  font-size: 11px;
}
body.fpp-body .fpp-permission-editor .fpp-form-actions {
  margin-top: 2px;
}
body.fpp-body .fpp-permission-editor .fpp-form-actions .fpp-btn {
  min-height: 46px;
}

@media (max-width: 1440px) {
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: minmax(220px, 1.35fr) minmax(190px, 1fr) 132px;
  }
}

@media (max-width: 1260px) {
  body.fpp-body .fpp-employee-main {
    grid-template-columns: 1fr;
    grid-template-areas:
      "summary"
      "meta"
      "actions";
    align-items: stretch;
  }
  body.fpp-body .fpp-employee-actions {
    justify-self: start;
  }
}

@media (max-width: 1024px) {
  body.fpp-body .fpp-employee-row {
    padding: 18px;
  }
  body.fpp-body .fpp-employee-main {
    gap: 12px;
  }
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.fpp-body .fpp-employee-status {
    grid-column: 1 / 2;
  }
  body.fpp-body .fpp-access-toggle {
    min-width: 0;
    width: 100%;
  }
  body.fpp-body .fpp-permission-editor {
    padding: 16px;
  }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-employee-row {
    padding: 15px;
    gap: 14px;
  }
  body.fpp-body .fpp-employee-summary {
    padding-bottom: 12px;
    gap: 12px;
  }
  body.fpp-body .fpp-employee-avatar {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }
  body.fpp-body .fpp-employee-name {
    max-width: none;
  }
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  body.fpp-body .fpp-employee-status {
    grid-column: auto;
  }
  body.fpp-body .fpp-permission-editor {
    padding: 14px;
    gap: 14px;
  }
  body.fpp-body .fpp-permission-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  body.fpp-body .fpp-permission-card {
    min-height: 0;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.4.21 — compact employee accordion + role chips
   ========================================================================== */
body.fpp-body .fpp-employee-list { gap: 14px; }
body.fpp-body .fpp-employee-row {
  padding: 18px;
  gap: 14px;
  border-radius: 16px;
}
body.fpp-body .fpp-employee-main {
  display: grid;
  grid-template-columns: minmax(250px,1.25fr) minmax(220px,1fr) minmax(205px,.95fr) 138px 154px;
  grid-template-areas: none;
  gap: 12px;
  align-items: end;
}
body.fpp-body .fpp-employee-summary {
  grid-area: auto;
  min-width: 0;
  padding: 0;
  border: 0;
  align-items: flex-end;
}
body.fpp-body .fpp-employee-meta {
  display: contents;
}
body.fpp-body .fpp-employee-actions {
  grid-area: auto;
  display: flex;
  align-items: flex-end;
  justify-content: stretch;
  min-width: 0;
}
body.fpp-body .fpp-employee-name { max-width: none; }
body.fpp-body .fpp-employee-subline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
body.fpp-body .fpp-employee-subline > small {
  margin-right: 2px;
  color: #83919b;
  font-size: 10px;
  white-space: nowrap;
}
body.fpp-body :is(.fpp-role-chip,.fpp-status-chip,.fpp-access-chip) {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid #33404a;
  border-radius: 999px;
  background: #10171d;
  color: #b9c4cb;
  font-size: 9px;
  font-weight: 780;
  line-height: 1;
  white-space: nowrap;
}
body.fpp-body .fpp-role-chip {
  border-color: #3b4852;
  color: #dce3e7;
}
body.fpp-body .fpp-status-chip.is-active {
  border-color: rgba(77,151,107,.46);
  background: rgba(34,96,59,.14);
  color: #8bd5a7;
}
body.fpp-body .fpp-status-chip.is-blocked {
  border-color: rgba(168,78,78,.48);
  background: rgba(110,42,42,.15);
  color: #e7a0a0;
}
body.fpp-body .fpp-access-chip.is-role {
  border-color: rgba(99,120,137,.5);
  color: #9fb0bc;
}
body.fpp-body .fpp-access-chip.is-custom {
  border-color: rgba(240,108,37,.42);
  background: rgba(240,108,37,.07);
  color: #efa171;
}
body.fpp-body .fpp-access-toggle {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 12px;
}
body.fpp-body .fpp-employee-access.is-access-open {
  border-color: #3b4852;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.02), 0 16px 34px rgba(0,0,0,.12);
}
body.fpp-body .fpp-permission-editor {
  gap: 12px;
  padding: 14px;
  border-radius: 15px;
}
body.fpp-body .fpp-default-access {
  padding: 12px 14px;
  border-radius: 13px;
}
body.fpp-body .fpp-default-access .fpp-switch-row {
  min-height: 36px;
}
body.fpp-body .fpp-default-access .fpp-switch-row strong {
  font-size: 11px;
}
body.fpp-body .fpp-default-access .fpp-switch-row small {
  font-size: 10px;
  line-height: 1.4;
}
body.fpp-body .fpp-employee-access.uses-role-defaults [data-custom-permissions] {
  display: none !important;
}
body.fpp-body .fpp-permission-grid {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 9px;
}
body.fpp-body .fpp-permission-card {
  min-height: 82px;
  padding: 11px 12px;
  gap: 8px;
  border-radius: 12px;
}
body.fpp-body .fpp-permission-card strong {
  margin-bottom: 3px;
  font-size: 10px;
}
body.fpp-body .fpp-permission-card small {
  font-size: 9.5px;
  line-height: 1.38;
}
body.fpp-body .fpp-access-warning {
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 9.5px;
  line-height: 1.45;
}
body.fpp-body .fpp-permission-editor .fpp-form-actions {
  display: flex;
  justify-content: flex-start;
  margin: 0;
}
body.fpp-body .fpp-employee-save {
  min-width: 170px;
  min-height: 42px !important;
}

@media (max-width: 1320px) {
  body.fpp-body .fpp-employee-main {
    grid-template-columns: minmax(240px,1.2fr) minmax(210px,1fr) minmax(190px,.95fr) 128px 142px;
    gap: 10px;
  }
  body.fpp-body .fpp-permission-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

@media (max-width: 1180px) {
  body.fpp-body .fpp-employee-main {
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-areas:
      "summary summary"
      "meta actions";
    align-items: end;
  }
  body.fpp-body .fpp-employee-summary {
    grid-area: summary;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(44,56,66,.68);
  }
  body.fpp-body .fpp-employee-meta {
    grid-area: meta;
    display: grid;
    grid-template-columns: minmax(220px,1.25fr) minmax(190px,1fr) 130px;
    gap: 10px;
    align-items: end;
  }
  body.fpp-body .fpp-employee-actions {
    grid-area: actions;
    width: 142px;
  }
}

@media (max-width: 1024px) {
  body.fpp-body .fpp-employee-main {
    grid-template-columns: 1fr;
    grid-template-areas:
      "summary"
      "meta"
      "actions";
  }
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  body.fpp-body .fpp-employee-status { grid-column: auto; }
  body.fpp-body .fpp-employee-actions { width: 100%; }
  body.fpp-body .fpp-permission-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-employee-row { padding: 13px; }
  body.fpp-body .fpp-employee-summary { align-items: flex-start; }
  body.fpp-body .fpp-employee-avatar {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    border-radius: 13px;
  }
  body.fpp-body .fpp-employee-subline {
    gap: 5px;
  }
  body.fpp-body .fpp-employee-subline > small {
    flex-basis: 100%;
  }
  body.fpp-body .fpp-employee-meta {
    grid-template-columns: 1fr;
  }
  body.fpp-body .fpp-permission-editor { padding: 11px; }
  body.fpp-body .fpp-permission-grid {
    grid-template-columns: 1fr;
  }
  body.fpp-body .fpp-permission-card {
    min-height: 0;
  }
  body.fpp-body .fpp-access-warning {
    font-size: 9px;
  }
  body.fpp-body .fpp-permission-editor .fpp-form-actions,
  body.fpp-body .fpp-employee-save {
    width: 100%;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.4.22 — exact employee row alignment
   Labels and controls share one baseline; metadata below the name can no
   longer pull the other columns down.
   ========================================================================== */
body.fpp-body .fpp-employee-main {
  align-items: start;
}
body.fpp-body .fpp-employee-summary {
  align-items: flex-start;
}
body.fpp-body .fpp-employee-avatar {
  margin-top: 19px;
}
body.fpp-body .fpp-employee-meta {
  align-items: start;
}
body.fpp-body .fpp-employee-field,
body.fpp-body .fpp-employee-status,
body.fpp-body .fpp-employee-actions {
  align-self: start;
}
body.fpp-body .fpp-employee-actions {
  display: grid;
  grid-template-rows: auto 46px;
  gap: 7px;
  align-items: start;
}
body.fpp-body .fpp-employee-action-label {
  display: block;
  color: #98a6af;
  font-size: 10px;
  font-weight: 780;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.fpp-body .fpp-employee-field > span,
body.fpp-body .fpp-employee-status > span,
body.fpp-body .fpp-employee-action-label {
  min-height: 12px;
}
body.fpp-body .fpp-employee-field > input,
body.fpp-body .fpp-employee-field > select,
body.fpp-body .fpp-employee-status > select,
body.fpp-body .fpp-access-toggle {
  height: 46px;
  min-height: 46px;
  margin: 0;
}
body.fpp-body .fpp-employee-subline {
  min-height: 22px;
  margin-top: 1px;
}

@media (max-width: 1180px) {
  body.fpp-body .fpp-employee-main,
  body.fpp-body .fpp-employee-meta {
    align-items: start;
  }
  body.fpp-body .fpp-employee-actions {
    width: 142px;
  }
}

@media (max-width: 1024px) {
  body.fpp-body .fpp-employee-avatar {
    margin-top: 19px;
  }
  body.fpp-body .fpp-employee-actions {
    width: 100%;
  }
}

@media (max-width: 760px) {
  body.fpp-body .fpp-employee-avatar {
    margin-top: 19px;
  }
  body.fpp-body .fpp-employee-actions {
    grid-template-rows: auto 50px;
  }
  body.fpp-body .fpp-employee-field > input,
  body.fpp-body .fpp-employee-field > select,
  body.fpp-body .fpp-employee-status > select,
  body.fpp-body .fpp-access-toggle {
    height: 50px;
    min-height: 50px;
  }
}

/* ========================================================================== 
   FIVE Performance OS 29.4.23 — voertuigfoto werkruimte
   Originals bekijken/downloaden, complete ZIP en responsive fotogalerij.
   ========================================================================== */
body.fpp-body .fpp-vehicle-photo-library {
  scroll-margin-top: calc(var(--fpp-top-h, 68px) + 18px);
  padding: 16px;
  border: 1px solid #2b3740;
  border-radius: 16px;
  background: #0d1318;
}
body.fpp-body .fpp-photo-library-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
body.fpp-body .fpp-photo-library-head > div:first-child { min-width: 0; }
body.fpp-body .fpp-photo-library-head > div:first-child > span {
  display: block;
  color: #eef2f4;
  font-size: 13px;
  font-weight: 800;
}
body.fpp-body .fpp-photo-library-head > div:first-child > small {
  display: block;
  margin-top: 4px;
  color: #87959f;
  font-size: 11px;
  line-height: 1.5;
}
body.fpp-body .fpp-photo-library-tools {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 0 0 auto;
}
body.fpp-body .fpp-photo-count {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #33404a;
  border-radius: 999px;
  background: #111820;
  color: #aeb9c1;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
body.fpp-body .fpp-download-all-photos {
  min-height: 36px;
  border-color: rgba(240,108,37,.42);
  background: rgba(240,108,37,.08);
  color: #fff;
}
body.fpp-body .fpp-existing-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 12px;
  margin-top: 0;
  border: 0;
  background: transparent;
}
body.fpp-body .fpp-existing-photo {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #2c3842;
  border-radius: 14px;
  background: #10171d;
}
body.fpp-body .fpp-photo-open {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: #0a0f13;
  cursor: zoom-in;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
body.fpp-body .fpp-photo-open img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 0;
  transition: transform .18s ease, filter .18s ease;
}
body.fpp-body .fpp-photo-open span {
  position: absolute;
  inset: auto 8px 8px auto;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  padding: 0 9px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 9px;
  background: rgba(8,13,17,.82);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  opacity: 0;
  transform: translateY(3px);
  transition: opacity .16s ease, transform .16s ease;
}
body.fpp-body .fpp-photo-open:hover img { transform: scale(1.025); filter: brightness(.78); }
body.fpp-body .fpp-photo-open:hover span,
body.fpp-body .fpp-photo-open:focus-visible span { opacity: 1; transform: translateY(0); }
body.fpp-body .fpp-photo-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  padding: 8px;
}
body.fpp-body .fpp-photo-download,
body.fpp-body .fpp-remove-photo {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border: 1px solid #33404a;
  border-radius: 10px;
  background: #141c23;
  color: #e6ecef;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
body.fpp-body .fpp-photo-download:hover { border-color: #4b5d69; color: #fff; }
body.fpp-body .fpp-remove-photo {
  border-color: #62373a;
  background: #201416;
  color: #eaa1a4;
}
body.fpp-body .fpp-no-existing-photos {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px dashed #34404a;
  border-radius: 12px;
  color: #87959f;
  text-align: center;
}
body.fpp-photo-viewer-open { overflow: hidden; }
body.fpp-body .fpp-photo-lightbox[hidden] { display: none !important; }
body.fpp-body .fpp-photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000000;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 64px;
  align-items: center;
  gap: 12px;
  padding: 34px;
  background: rgba(3,6,8,.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.fpp-body .fpp-photo-lightbox figure {
  min-width: 0;
  max-width: 1320px;
  max-height: calc(100vh - 68px);
  margin: 0 auto;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  border: 1px solid #2d3942;
  border-radius: 18px;
  overflow: hidden;
  background: #090e12;
  box-shadow: 0 30px 90px rgba(0,0,0,.58);
}
body.fpp-body .fpp-photo-lightbox figure img {
  display: block;
  width: 100%;
  max-height: calc(100vh - 150px);
  object-fit: contain;
  background: #05080a;
}
body.fpp-body .fpp-photo-lightbox figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-top: 1px solid #26313a;
  color: #dfe6ea;
  font-size: 11px;
}
body.fpp-body .fpp-photo-lightbox-close,
body.fpp-body .fpp-photo-lightbox-nav {
  appearance: none;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid #34414b;
  border-radius: 14px;
  background: rgba(15,22,28,.9);
  color: #fff;
  cursor: pointer;
}
body.fpp-body .fpp-photo-lightbox-close {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 28px;
}
body.fpp-body .fpp-photo-lightbox-nav { font-size: 32px; }
body.fpp-body .fpp-photo-lightbox-nav:hover,
body.fpp-body .fpp-photo-lightbox-close:hover { border-color: #5a6b78; background: #172129; }

@media (max-width: 1024px) {
  body.fpp-body .fpp-existing-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.fpp-body .fpp-photo-library-head { align-items: flex-start; }
  body.fpp-body .fpp-photo-lightbox { grid-template-columns: 48px minmax(0,1fr) 48px; padding: 24px 14px; }
  body.fpp-body .fpp-photo-lightbox-nav { width: 44px; height: 44px; }
}
@media (max-width: 760px) {
  body.fpp-body .fpp-vehicle-photo-library { padding: 13px; border-radius: 14px; }
  body.fpp-body .fpp-photo-library-head { display: grid; grid-template-columns: 1fr; gap: 11px; }
  body.fpp-body .fpp-photo-library-tools { width: 100%; display: grid; grid-template-columns: auto minmax(0,1fr); }
  body.fpp-body .fpp-download-all-photos { width: 100%; justify-content: center; }
  body.fpp-body .fpp-existing-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  body.fpp-body .fpp-photo-actions { grid-template-columns: 1fr; }
  body.fpp-body .fpp-photo-open span { opacity: 1; transform: none; }
  body.fpp-body .fpp-photo-lightbox { display: block; padding: 70px 10px 16px; overflow: auto; }
  body.fpp-body .fpp-photo-lightbox figure { max-height: none; }
  body.fpp-body .fpp-photo-lightbox figure img { max-height: 70vh; }
  body.fpp-body .fpp-photo-lightbox figcaption { align-items: stretch; flex-direction: column; }
  body.fpp-body .fpp-photo-lightbox figcaption .fpp-mini-btn { width: 100%; justify-content: center; }
  body.fpp-body .fpp-photo-lightbox-nav { position: fixed; top: 50%; z-index: 2; transform: translateY(-50%); }
  body.fpp-body .fpp-photo-lightbox-nav.prev { left: 10px; }
  body.fpp-body .fpp-photo-lightbox-nav.next { right: 10px; }
}
@media (max-width: 420px) {
  body.fpp-body .fpp-existing-photo-grid { grid-template-columns: 1fr; }
}
body.fpp-body .fpp-photo-actions.download-only { grid-template-columns: 1fr; }

/* 29.7.0 — fotovolgorde, vaste hoofdfoto en rustige foto-invoer */
body.fpp-body .fpp-photo-native-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body.fpp-body .fpp-mobile-photo-capture {
  position: relative;
  padding: 18px;
  border: 1px solid #2b3740;
  border-radius: 16px;
  background: linear-gradient(145deg,#0d1419,#0b1116);
  transition: border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
body.fpp-body .fpp-mobile-photo-capture.is-dropping {
  border-color: #f06c25;
  background: rgba(240,108,37,.08);
  box-shadow: inset 0 0 0 2px rgba(240,108,37,.16);
}
body.fpp-body .fpp-photo-upload-intro { display: grid; gap: 4px; margin-bottom: 13px; }
body.fpp-body .fpp-photo-upload-intro > span { color: #f1f4f6; font-size: 14px; font-weight: 850; }
body.fpp-body .fpp-photo-upload-intro > small { color: #87959f; font-size: 11px; line-height: 1.45; }
body.fpp-body .fpp-photo-source-buttons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
body.fpp-body .fpp-photo-source {
  appearance: none;
  min-width: 0;
  min-height: 74px;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  border: 1px solid #33414b;
  border-radius: 13px;
  background: #121a21;
  color: #eef2f4;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease,background .16s ease,transform .16s ease;
}
body.fpp-body .fpp-photo-source:hover { border-color: #536572; background: #172129; transform: translateY(-1px); }
body.fpp-body .fpp-photo-source.camera { border-color: rgba(240,108,37,.56); background: rgba(240,108,37,.09); }
body.fpp-body .fpp-photo-source > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: #1b252d; color: #f6f8f9; }
body.fpp-body .fpp-photo-source.camera > i { background: rgba(240,108,37,.16); color: #ff9a62; }
body.fpp-body .fpp-photo-source > i svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.fpp-body .fpp-photo-source > span { min-width: 0; display: grid; gap: 3px; }
body.fpp-body .fpp-photo-source strong { color: inherit; font-size: 12px; line-height: 1.25; }
body.fpp-body .fpp-photo-source small { color: #8d9aa4; font-size: 10px; line-height: 1.3; }
body.fpp-body .fpp-photo-drop-hint { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; color: #74828d; font-size: 10px; }
body.fpp-body .fpp-photo-drop-hint::before,
body.fpp-body .fpp-photo-drop-hint::after { content: ""; height: 1px; flex: 1; background: #28343d; }
body.fpp-body .fpp-photo-help { display: block; margin-top: 10px; color: #8997a1; font-size: 10px; line-height: 1.45; }
body.fpp-body .fpp-photo-upload-queue { grid-template-columns: repeat(auto-fill,minmax(150px,1fr)); gap: 10px; border: 0; background: transparent; }
body.fpp-body .fpp-photo-queued-item { position: relative; min-width: 0; overflow: hidden; border: 1px solid #303d47; border-radius: 13px; background: #0b1116; }
body.fpp-body .fpp-photo-queued-item.selected { border-color: rgba(240,108,37,.72); box-shadow: inset 0 0 0 1px rgba(240,108,37,.22); }
body.fpp-body .fpp-photo-queued-item .fpp-photo-choice { width: 100%; height: auto; aspect-ratio: auto; display: block; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: default; }
body.fpp-body .fpp-photo-queued-item img { width: 100%; aspect-ratio: 4/3; display: block; object-fit: cover; }
body.fpp-body .fpp-photo-queued-item .fpp-photo-choice span { min-width: 0; display: block; overflow: hidden; padding: 8px 34px 8px 9px; color: #9ba7af; font-size: 9px; font-weight: 750; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
body.fpp-body .fpp-photo-queue-chrome,
body.fpp-body .fpp-photo-order-chrome { position: absolute; z-index: 4; inset: 7px 7px auto; display: flex; align-items: center; gap: 5px; pointer-events: none; }
body.fpp-body .fpp-photo-position,
body.fpp-body .fpp-photo-main-badge { min-height: 27px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(7,11,14,.88); color: #fff; font-size: 9px; font-style: normal; font-weight: 850; line-height: 1; box-shadow: 0 4px 12px rgba(0,0,0,.22); }
body.fpp-body .fpp-photo-main-badge { border-color: rgba(240,108,37,.58); background: rgba(38,20,11,.92); color: #ffb187; }
body.fpp-body .fpp-photo-main-badge[hidden] { display: none !important; }
body.fpp-body .fpp-photo-drag-handle { margin-left: auto; width: 32px; height: 32px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: rgba(8,13,17,.92); color: #fff; font-size: 14px; letter-spacing: -1px; cursor: grab; pointer-events: auto; touch-action: none; }
body.fpp-body .fpp-photo-drag-handle:active { cursor: grabbing; }
body.fpp-body .fpp-photo-drag-handle svg { width: 18px; height: 18px; fill: currentColor; stroke: currentColor; transform: rotate(90deg); }
body.fpp-body .fpp-photo-queue-remove { position: absolute; z-index: 3; right: 7px; bottom: 5px; width: 27px; height: 27px; display: grid; place-items: center; padding: 0; border: 1px solid #62373a; border-radius: 8px; background: rgba(32,20,22,.94); color: #f1a3a7; font-size: 18px; line-height: 1; cursor: pointer; }
body.fpp-body :is(.fpp-existing-photo,.fpp-photo-queued-item).is-dragging { z-index: 8; opacity: .72; border-color: #f06c25; box-shadow: 0 16px 36px rgba(0,0,0,.42); }
body.fpp-body .fpp-existing-photo { position: relative; }
body.fpp-body .fpp-existing-photo.is-featured { border-color: rgba(240,108,37,.72); box-shadow: inset 0 0 0 1px rgba(240,108,37,.18); }
body.fpp-body .fpp-photo-order-status { display: block; min-height: 16px; margin-top: 6px; color: #82909a; font-size: 10px; font-style: normal; font-weight: 750; }
body.fpp-body .fpp-photo-order-status.is-saving { color: #e3bd6e; }
body.fpp-body .fpp-photo-order-status.is-saved { color: #79c59c; }
body.fpp-body .fpp-photo-order-status.is-error { color: #ee9b9f; }
body.fpp-body .action-owner-publish .action-publish-btn { box-shadow: 0 0 0 1px rgba(240,108,37,.18),0 8px 22px rgba(240,108,37,.12); }

@media (max-width:760px) {
  body.fpp-body .fpp-photo-upload-intro { margin-bottom: 9px; }
  body.fpp-body .fpp-photo-upload-intro > span { font-size: 12px; }
  body.fpp-body .fpp-photo-upload-intro > small { font-size: 9px; }
  body.fpp-body .fpp-photo-drop-hint { display: none; }
  body.fpp-body .fpp-photo-queue-chrome,
  body.fpp-body .fpp-photo-order-chrome { inset: 5px 5px auto; }
  body.fpp-body .fpp-photo-position,
  body.fpp-body .fpp-photo-main-badge { min-height: 23px; padding-inline: 7px; font-size: 7.5px; }
  body.fpp-body .fpp-photo-drag-handle { width: 28px; height: 28px; border-radius: 8px; }
  body.fpp-body .fpp-photo-actions { padding-top: 7px; }
}

/* 29.6.0 — pricing approval is a business warning, not a destructive/error state. */
.fpp-inline-deal .approval { color: #e3bd6e; }

/* 29.6.8 — garantieclaims: dekking en afrekening los van claimbedrag */
.fpp-invoice-item .item-coverage{display:none!important}
.fpp-invoice-editor.fpp-warranty-claim-mode .fpp-invoice-item .item-coverage{display:grid!important}
@media(min-width:1201px){
 .fpp-invoice-editor.fpp-warranty-claim-mode .fpp-invoice-item{grid-template-columns:minmax(220px,2.05fr) minmax(68px,.42fr) minmax(108px,.7fr) minmax(105px,.68fr) minmax(84px,.52fr) minmax(82px,.52fr) minmax(100px,.65fr) auto}
}
.fpp-warranty-settlement{grid-column:1/-1;margin:8px 0 4px;padding:18px;border:1px solid #2b3944;border-radius:14px;background:#0d1318}
.fpp-warranty-settlement-head h3{margin:4px 0 5px;color:#fff;font-size:18px}
.fpp-warranty-settlement-head p{margin:0;color:#8795a1;font-size:12px;line-height:1.55;max-width:900px}
.fpp-warranty-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:15px 0 12px}
.fpp-warranty-metrics>div{padding:11px 12px;border:1px solid #28343e;border-radius:10px;background:#0b1116;min-width:0}
.fpp-warranty-metrics span,.fpp-warranty-metrics strong,.fpp-warranty-metrics small{display:block}
.fpp-warranty-metrics span{color:#8795a1;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.fpp-warranty-metrics strong{margin-top:5px;color:#fff;font-size:16px;white-space:nowrap}
.fpp-warranty-metrics small{margin-top:4px;color:#75838e;font-size:9px;line-height:1.35}
.fpp-warranty-settlement-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}
.fpp-warranty-settlement-fields label{display:grid;gap:5px;min-width:0}
.fpp-warranty-settlement-fields label>span{color:#82919d;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.fpp-warranty-settlement-fields input,.fpp-warranty-settlement-fields select{width:100%;min-width:0;height:42px;padding:0 10px;border:1px solid #34414c;border-radius:8px;background:#0b1116;color:#eef2f5}
.fpp-warranty-settlement .fpp-alert{margin:0}
@media(max-width:1000px){.fpp-warranty-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.fpp-warranty-settlement-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.fpp-warranty-settlement{padding:13px}.fpp-warranty-metrics,.fpp-warranty-settlement-fields{grid-template-columns:1fr}.fpp-warranty-settlement-fields input,.fpp-warranty-settlement-fields select{min-height:48px;height:48px;font-size:16px}}

/* 29.8.0 — gesplitste consignatiebetalingen en controleerbaar betaalspoor */
.fpp-payment-ledger{display:grid;gap:14px;margin-top:18px}
.fpp-payment-ledger .fpp-card-heading{margin:0}
.fpp-payment-ledger .fpp-card-heading h3{margin:0 0 5px;color:#fff}
.fpp-payment-ledger .fpp-card-heading p{margin:0;max-width:880px;color:#8795a1;font-size:12px;line-height:1.55}
.fpp-payment-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.fpp-payment-kpis>div{min-width:0;padding:12px 13px;border:1px solid #2b3944;border-radius:11px;background:#0d1318}
.fpp-payment-kpis span,.fpp-payment-kpis strong{display:block}
.fpp-payment-kpis span{color:#8795a1;font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.fpp-payment-kpis strong{margin-top:5px;color:#fff;font-size:17px;white-space:nowrap}
.fpp-payment-kpis .attention{border-color:rgba(243,108,33,.5);background:rgba(243,108,33,.08)}
.fpp-payment-kpis .paid{border-color:rgba(46,170,109,.45);background:rgba(46,170,109,.08)}
.fpp-payment-history th,.fpp-payment-history td{vertical-align:top}
.fpp-payment-entry{padding:14px;border:1px solid #2b3944;border-radius:12px;background:#0d1318}
.fpp-payment-recipient-static{display:flex;align-items:center;min-height:42px;padding:0 12px;border:1px solid #34414c;border-radius:8px;color:#dbe2e8;font-size:12px;font-weight:800}
.fpp-payment-table .fpp-payment-settled td{color:#5d6874;font-size:12px}
@media(max-width:900px){.fpp-payment-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.fpp-payment-kpis{grid-template-columns:1fr}.fpp-payment-kpis strong{white-space:normal}.fpp-payment-entry{padding:10px}.fpp-payment-history th:nth-child(3),.fpp-payment-history td:nth-child(3){display:none}}

/* 29.9.0 — creditnota's en controleerbare uitgaande betalingen */
.fpp-outgoing-ledger{border-top:3px solid #f36c21}
.fpp-consignor-payout{margin-top:18px}
.fpp-consignor-payout .fpp-payment-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.fpp-credit-note .fpp-invoice-preview-head{box-shadow:inset 0 -3px 0 #f36c21}
.fpp-credit-note .fpp-invoice-items-preview tfoot .total td:last-child{color:#ff9a62}
.fpp-outgoing-ledger .fpp-table small{display:block;margin-top:4px;color:#7f8c96}
.fpp-outgoing-ledger .fpp-alert ul{margin:8px 0 0 18px;padding:0}
.fpp-outgoing-ledger .fpp-alert li+li{margin-top:4px}
@media(max-width:900px){.fpp-consignor-payout .fpp-payment-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.fpp-consignor-payout .fpp-payment-kpis{grid-template-columns:1fr}}

/* FIVE 30.1 — gefinancierde consignatieverkoop */
.fpp-finance-entry-card .fpp-card-heading{align-items:center}.fpp-finance-entry-card form{margin:0}.fpp-finance-head{align-items:flex-end}.fpp-finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.fpp-finance-kpis>div,.fpp-finance-payout>div,.fpp-finance-pay-summary>div,.fpp-finance-doc-status>div{background:var(--fpp-panel-soft,#121920);border:1px solid var(--fpp-line,rgba(255,255,255,.09));border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:5px}.fpp-finance-kpis span,.fpp-finance-payout span,.fpp-finance-pay-summary span,.fpp-finance-doc-status span{font-size:11px;color:var(--fpp-muted,#8f9ba6);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.fpp-finance-kpis strong,.fpp-finance-payout strong,.fpp-finance-pay-summary strong,.fpp-finance-doc-status strong{font-size:18px}.fpp-finance-form{display:block}.fpp-finance-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.fpp-finance-fields label,.fpp-finance-payment-form label,.fpp-finance-upload label{display:flex;flex-direction:column;gap:7px}.fpp-finance-fields label>span,.fpp-finance-payment-form label>span,.fpp-finance-upload label>span{font-weight:700;font-size:12px}.fpp-finance-fields .wide,.fpp-finance-payment-form .wide{grid-column:1/-1}.fpp-finance-fields input,.fpp-finance-fields select,.fpp-finance-fields textarea,.fpp-finance-payment-form input,.fpp-finance-payment-form select,.fpp-finance-upload input{width:100%;box-sizing:border-box}.fpp-secret-input{display:grid;grid-template-columns:1fr auto;gap:8px}.fpp-secret-input button{border:1px solid var(--fpp-line,rgba(255,255,255,.12));border-radius:10px;padding:0 14px;background:transparent;color:inherit;font-weight:700;cursor:pointer}.fpp-finance-confirm-list{display:grid;gap:10px;margin:16px 0}.fpp-finance-confirm-list label{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:12px;background:var(--fpp-panel-soft,#121920)}.fpp-finance-confirm-list input{margin-top:3px}.fpp-finance-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 14px}.fpp-finance-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.fpp-finance-doc-status,.fpp-finance-pay-summary,.fpp-finance-payout{display:grid;gap:10px;margin:12px 0}.fpp-finance-doc-status{grid-template-columns:repeat(4,minmax(0,1fr))}.fpp-finance-pay-summary,.fpp-finance-payout{grid-template-columns:repeat(3,minmax(0,1fr))}.fpp-finance-upload{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding-top:10px}.fpp-finance-payment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.fpp-finance-payment-form>button{justify-self:start}.fpp-inline-note{display:inline-block;margin-left:12px;color:var(--fpp-muted,#8f9ba6)}.fpp-finance-list{display:grid;gap:10px}.fpp-finance-list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--fpp-line,rgba(255,255,255,.09));border-radius:14px;text-decoration:none;color:inherit;background:var(--fpp-panel-soft,#121920)}.fpp-finance-list-row>div{display:flex;flex-direction:column;gap:5px}.fpp-finance-list-row>div:last-child{align-items:flex-end}.fpp-finance-list-row span{color:var(--fpp-muted,#8f9ba6);font-size:12px}.fpp-finance-list-row .fpp-status{color:inherit}.fpp-finance-convert .fpp-btn.success[disabled]{opacity:.45;cursor:not-allowed}.fpp-route-financing .fpp-content{padding-bottom:110px}

/* 30.1.2 financing landing: make the start action explicit and readable. */
.fpp-finance-start-row{cursor:default}.fpp-finance-start-row:hover{transform:none}.fpp-finance-start-row form{margin:0}.fpp-finance-start-row>div:last-child{gap:10px}.fpp-finance-kpis small{color:var(--fpp-muted,#8f9ba6);font-size:12px;line-height:1.45}

/* 30.1.5 — compacte maandkosten-consignatie editor */
.fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-item{
  grid-template-columns:minmax(260px,2.2fr) minmax(150px,.8fr) minmax(120px,.55fr);
  align-items:end;
}
.fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-item .item-total{
  padding:0 0 5px;
}
.fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-summary .fpp-items-vat-breakdown{
  display:none;
}
@media(max-width:760px){
  .fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-item{
    grid-template-columns:1fr;
  }
  .fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-item .item-description,
  .fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-item .item-price,
  .fpp-invoice-editor[data-invoice-kind="consignment_monthly_fee"] .fpp-monthly-fee-item .item-total{
    grid-column:1;
  }
}
