:root{
  --dp-bg:#f4f7fb;
  --dp-panel:#ffffff;
  --dp-text:#0f172a;
  --dp-muted:#64748b;
  --dp-line:#e2e8f0;
  --dp-primary:#0ea5b7;
  --dp-primary-dark:#087985;
  --dp-accent:#f97316;
  --dp-sidebar:#0f172a;
  --dp-sidebar-text:#dbeafe;
  --dp-radius:18px;
  --dp-card-shadow:0 16px 38px rgba(15,23,42,.08);
  --dp-font-scale:1;
  --dp-density:1;
}
[data-theme="dark"]{
  --dp-bg:#0b1220;
  --dp-panel:#121a2b;
  --dp-text:#e5edf8;
  --dp-muted:#94a3b8;
  --dp-line:#243146;
  --dp-card-shadow:0 18px 50px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
body{
  min-height:100vh;
  margin:0;
  background:var(--dp-bg);
  color:var(--dp-text);
  font-size:calc(15px * var(--dp-font-scale));
}
a{text-decoration:none}
.dp-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:270px 1fr;
  transition:grid-template-columns .2s ease;
}
.dp-shell.sidebar-compact{grid-template-columns:82px 1fr}
.dp-sidebar{
  background:var(--dp-sidebar);
  color:var(--dp-sidebar-text);
  position:sticky;
  top:0;
  height:100vh;
  padding:18px;
  z-index:30;
}
.sidebar-compact .dp-sidebar{padding:14px 10px}
.dp-logo{
  display:flex;
  gap:12px;
  align-items:center;
  min-height:48px;
  margin-bottom:18px;
}
.dp-logo-badge{
  width:46px;
  height:46px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--dp-primary),#38bdf8);
  display:grid;
  place-items:center;
  font-size:24px;
  color:#fff;
  flex:0 0 auto;
}
.dp-logo strong{display:block;color:#fff;font-size:18px;white-space:nowrap}
.dp-logo small{color:#b6c2d1;display:block;white-space:nowrap}
.sidebar-compact .dp-logo-text,
.sidebar-compact .dp-nav-section,
.sidebar-compact .dp-nav-label{display:none}
.dp-nav-section{
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#8aa0bd;
  margin:16px 10px 7px;
}
.dp-nav a{
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:13px;
  color:var(--dp-sidebar-text);
  font-weight:750;
  margin-bottom:3px;
}
.dp-nav a.active,
.dp-nav a:hover{background:rgba(255,255,255,.13);color:#fff}
.dp-sidebar-toggle{
  position:absolute;
  top:18px;
  right:-14px;
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid var(--dp-line);
  background:var(--dp-panel);
  color:var(--dp-text);
  box-shadow:var(--dp-card-shadow);
}
.dp-main{min-width:0}
.dp-topbar{
  position:sticky;
  top:0;
  height:72px;
  z-index:20;
  background:rgba(255,255,255,.9);
  border-bottom:1px solid var(--dp-line);
  backdrop-filter: blur(12px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
}
[data-theme="dark"] .dp-topbar{background:rgba(18,26,43,.88)}
.dp-content{padding:24px}
.dp-card{
  background:var(--dp-panel);
  border:1px solid var(--dp-line);
  border-radius:var(--dp-radius);
  box-shadow:var(--dp-card-shadow);
}
.dp-card-pad{padding:22px}
.dp-muted{color:var(--dp-muted)}
.btn-primary{
  --bs-btn-bg:var(--dp-primary);
  --bs-btn-border-color:var(--dp-primary);
  --bs-btn-hover-bg:var(--dp-primary-dark);
  --bs-btn-hover-border-color:var(--dp-primary-dark);
}
.btn-outline-primary{
  --bs-btn-color:var(--dp-primary);
  --bs-btn-border-color:var(--dp-primary);
  --bs-btn-hover-bg:var(--dp-primary);
  --bs-btn-hover-border-color:var(--dp-primary);
}
.form-control,.form-select{
  border-radius:13px;
  border-color:var(--dp-line);
  background:var(--dp-panel);
  color:var(--dp-text);
  min-height:calc(42px * var(--dp-density));
}
.form-control:focus,.form-select:focus{
  border-color:var(--dp-primary);
  box-shadow:0 0 0 .2rem color-mix(in srgb, var(--dp-primary), transparent 82%);
}
.form-label{font-weight:800;color:var(--dp-text)}
.dp-kpi{
  display:flex;
  gap:14px;
  align-items:center;
}
.dp-kpi-icon{
  width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;
  background:color-mix(in srgb, var(--dp-primary), transparent 84%);
  color:var(--dp-primary);
  font-size:22px;
}
.dp-week-toolbar{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.dp-planner-grid{
  display:grid;
  grid-template-columns:74px repeat(5,minmax(250px,1fr));
  overflow:auto;
}
.dp-day-head,.dp-time-head{
  position:sticky;
  top:0;
  z-index:3;
  background:var(--dp-panel);
  border-bottom:1px solid var(--dp-line);
  padding:12px;
  font-weight:900;
}
.dp-day-drivers{
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
  margin-top:3px;
  font-size:11px;
  font-weight:700;
  color:var(--dp-muted);
}
.dp-day-drivers-missing{color:#dc2626}
[data-theme="dark"] .dp-day-drivers-missing{color:#f87171}
.dp-trip-no-driver{color:#dc2626;font-weight:800}
[data-theme="dark"] .dp-trip-no-driver{color:#f87171}
.dp-time-cell{
  min-height:70px;
  border-bottom:1px solid var(--dp-line);
  padding:10px 8px;
  color:var(--dp-muted);
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 25%);
  font-weight:800;
}
.dp-slot{
  min-height:70px;
  border-left:1px solid var(--dp-line);
  border-bottom:1px solid var(--dp-line);
  padding:7px;
  background:var(--dp-panel);
}
.dp-free{
  display:block;
  border:1px dashed #cbd5e1;
  color:var(--dp-muted);
  border-radius:13px;
  padding:7px 9px;
  min-height:34px;
}
.dp-free:hover{
  border-color:var(--dp-primary);
  background:color-mix(in srgb, var(--dp-primary), transparent 92%);
}
.dp-blocked{
  display:block;
  color:#991b1b;
  background:#fee2e2;
  border:1px dashed #fecaca;
  border-radius:13px;
  padding:6px 9px;
  font-size:13px;
  font-weight:800;
}
.dp-trip{
  position:relative;
  display:block;
  color:var(--dp-text);
  border:1px solid #bbf7d0;
  border-left:7px solid #16a34a;
  background:#eafaf0;
  border-radius:16px;
  padding:12px;
  min-height:172px;
  margin-bottom:7px;
}
[data-theme="dark"] .dp-trip{background:#12321f;border-color:#245b39}
.dp-trip.combo{background:#fff7ed;border-color:#fed7aa;border-left-color:var(--dp-accent)}
[data-theme="dark"] .dp-trip.combo{background:#3b2814;border-color:#6b451d}
.dp-trip.series{background:#eff6ff;border-color:#bfdbfe;border-left-color:#2563eb}
[data-theme="dark"] .dp-trip.series{background:#14243e;border-color:#24436f}
.dp-trip.cancelled{background:#fee2e2;border-color:#fecaca;border-left-color:#dc2626}
[data-theme="dark"] .dp-trip.cancelled{background:#3c1717;border-color:#6f2626}
.dp-trip h6{font-size:16px;font-weight:900;margin:0 0 5px}
.dp-trip p{margin:3px 0;line-height:1.25}
.dp-capacity{
  position:absolute;
  top:10px;
  right:10px;
  background:#111827;
  color:#fff;
  border-radius:999px;
  padding:4px 9px;
  font-size:12px;
  font-weight:900;
}
.dp-route-preview{
  border:1px solid var(--dp-line);
  border-radius:var(--dp-radius);
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 30%);
  padding:16px;
}
.dp-combo-row{
  display:grid;
  grid-template-columns:1fr 1.4fr .8fr auto;
  gap:10px;
  margin-bottom:10px;
}
.dp-mobile-card{
  border:1px solid var(--dp-line);
  border-radius:18px;
  padding:16px;
  margin-bottom:12px;
  background:var(--dp-panel);
}
.dp-horizontal .dp-shell{
  display:block;
}
.dp-horizontal .dp-sidebar{
  display:none;
}
.dp-horizontal .dp-topbar{
  position:sticky;
}
.dp-horizontal-nav{
  display:none;
  background:var(--dp-sidebar);
  color:#fff;
  padding:8px 20px;
  gap:6px;
  overflow:auto;
  white-space:nowrap;
}
.dp-horizontal .dp-horizontal-nav{
  display:flex;
}
.dp-horizontal-nav a{
  color:#dbeafe;
  padding:9px 12px;
  border-radius:12px;
  font-weight:800;
}
.dp-horizontal-nav a.active,
.dp-horizontal-nav a:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
}
.dp-theme-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.dp-template-thumb{
  border:2px solid var(--dp-line);
  border-radius:18px;
  padding:14px;
  cursor:pointer;
  background:var(--dp-panel);
}
.dp-template-thumb.active{
  border-color:var(--dp-primary);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--dp-primary), transparent 84%);
}
.dp-preview-block{
  height:76px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--dp-primary),var(--dp-accent));
  margin-bottom:10px;
}
.dp-toast{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:9999;
}
@media(max-width:1100px){
  .dp-shell{grid-template-columns:82px 1fr}
  .dp-logo-text,.dp-nav-section,.dp-nav-label{display:none}
  .dp-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
  .dp-shell{display:block}
  .dp-sidebar{position:relative;height:auto}
  .dp-nav{display:flex;overflow:auto;gap:8px}
  .dp-nav-section{display:none}
  .dp-nav a{white-space:nowrap}
  .dp-topbar{position:relative;height:auto;gap:12px;padding:14px;align-items:flex-start}
  .dp-content{padding:14px}
  .dp-planner-grid{grid-template-columns:60px repeat(5,260px)}
  .dp-combo-row{grid-template-columns:1fr}
  .dp-theme-grid{grid-template-columns:1fr}
}


/* RC2 theme completeness */
[data-theme="dark"] .table,
[data-theme="dark"] .table > :not(caption) > * > *{
  color:var(--dp-text);
  background-color:transparent;
  border-color:var(--dp-line);
}
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .offcanvas,
[data-theme="dark"] .list-group-item{
  background:var(--dp-panel);
  color:var(--dp-text);
  border-color:var(--dp-line);
}
[data-theme="dark"] .dropdown-item{color:var(--dp-text)}
[data-theme="dark"] .dropdown-item:hover{background:#1d2a42;color:#fff}
[data-theme="dark"] .btn-light{
  background:#1b263a;
  border-color:#2c3a55;
  color:var(--dp-text);
}
[data-theme="dark"] .btn-outline-secondary,
[data-theme="dark"] .btn-outline-dark{
  color:var(--dp-text);
  border-color:#475569;
}
[data-theme="dark"] .form-text,
[data-theme="dark"] .text-muted{color:var(--dp-muted)!important}
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .accordion-button{
  background:var(--dp-panel);
  color:var(--dp-text);
  border-color:var(--dp-line);
}
[data-theme="dark"] .accordion-button:not(.collapsed){
  background:#162235;
  color:var(--dp-text);
}
.btn-primary,
.btn-outline-primary:hover{
  background-color:var(--dp-primary)!important;
  border-color:var(--dp-primary)!important;
}
.btn-outline-primary{
  color:var(--dp-primary)!important;
  border-color:var(--dp-primary)!important;
}
.btn-primary:hover{
  background-color:var(--dp-primary-dark)!important;
  border-color:var(--dp-primary-dark)!important;
}
.badge.text-bg-primary{
  background-color:var(--dp-primary)!important;
}
.dp-logo-img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:14px;
}
.dp-logo-upload-preview{
  width:92px;
  height:92px;
  border-radius:22px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb, var(--dp-primary), transparent 82%);
  border:1px solid var(--dp-line);
  overflow:hidden;
}
.dp-logo-upload-preview img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.dp-login-logo{
  width:72px;
  height:72px;
  border-radius:24px;
  background:linear-gradient(135deg,var(--dp-primary),#38bdf8);
  display:grid;
  place-items:center;
  color:#fff;
  font-size:34px;
  margin:0 auto 16px;
  overflow:hidden;
}
.dp-login-logo img{width:100%;height:100%;object-fit:contain}
.dp-role-card{
  transition:transform .15s ease, box-shadow .15s ease;
}
.dp-role-card:hover{
  transform:translateY(-2px);
  box-shadow:0 22px 60px rgba(15,23,42,.14);
}
.dp-trip{cursor:pointer}
.dp-trip:hover{filter:brightness(.98)}
[data-theme="dark"] .dp-trip:hover{filter:brightness(1.08)}
.dp-modal-route{
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 35%);
  border:1px solid var(--dp-line);
  border-radius:16px;
  padding:14px;
}
body.dp-mobile-dashboard .dp-sidebar,
body.dp-mobile-dashboard .dp-topbar,
body.dp-mobile-dashboard .dp-horizontal-nav{
  display:none!important;
}
body.dp-mobile-dashboard .dp-shell{
  display:block;
  min-height:100vh;
}
body.dp-mobile-dashboard .dp-content{
  padding:12px;
}
body.dp-mobile-dashboard .dp-mobile-header{
  position:sticky;
  top:0;
  z-index:30;
  background:var(--dp-panel);
  border:1px solid var(--dp-line);
  border-radius:18px;
  box-shadow:var(--dp-card-shadow);
  padding:12px;
  margin-bottom:12px;
}
@media print{
  .dp-sidebar,.dp-topbar,.dp-horizontal-nav,.btn,.dp-mobile-header{display:none!important}
  .dp-shell{display:block!important}
  .dp-content{padding:0!important}
  .dp-card,.dp-mobile-card{box-shadow:none!important;border:1px solid #ddd!important}
}


/* RC3 modal editing and admin */
.dp-modal-form-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:12px;
}
.dp-modal-form-grid .col-3{grid-column:span 3}
.dp-modal-form-grid .col-4{grid-column:span 4}
.dp-modal-form-grid .col-6{grid-column:span 6}
.dp-modal-form-grid .col-12{grid-column:span 12}
.dp-choice-card{
  border:1px solid var(--dp-line);
  border-radius:18px;
  background:var(--dp-panel);
  padding:18px;
  width:100%;
  text-align:left;
  transition:.15s ease;
}
.dp-choice-card:hover{
  border-color:var(--dp-primary);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--dp-primary), transparent 84%);
  transform:translateY(-1px);
}
.dp-user-row{
  cursor:pointer;
}
.dp-user-row:hover td{
  background:color-mix(in srgb, var(--dp-primary), transparent 94%);
}
.dp-admin-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.dp-setting-preview-title{
  font-weight:900;
}
@media(max-width:780px){
  .dp-modal-form-grid{grid-template-columns:1fr}
  .dp-modal-form-grid .col-3,
  .dp-modal-form-grid .col-4,
  .dp-modal-form-grid .col-6,
  .dp-modal-form-grid .col-12{grid-column:span 1}
}


/* RC4 modal alignment fixes */
.dp-modal-form-grid{
  align-items:end;
}
.dp-modal-form-grid > [class^="col-"],
.dp-modal-form-grid > [class*=" col-"]{
  width:auto!important;
  max-width:none!important;
  flex:none!important;
}
.dp-modal-form-grid .form-label{
  margin-bottom:6px;
  min-height:22px;
}
.dp-modal-form-grid .form-control,
.dp-modal-form-grid .form-select{
  width:100%;
}
.dp-modal-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  width:100%;
}
.dp-modal-footer-left,
.dp-modal-footer-right{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.modal-footer{
  gap:10px;
}
.modal-header .btn-close{
  margin-left:auto;
}
.dp-modal-form-grid .form-check{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
}
.dp-modal-form-grid .form-check-input{
  margin-top:0;
}
@media(max-width:780px){
  .dp-modal-footer{
    align-items:stretch;
    flex-direction:column-reverse;
  }
  .dp-modal-footer-left,
  .dp-modal-footer-right{
    width:100%;
  }
  .dp-modal-footer .btn{
    flex:1 1 auto;
  }
}


/* RC5 customer/user/license/notifications */
.dp-click-row{
  cursor:pointer;
}
.dp-click-row:hover td{
  background:color-mix(in srgb, var(--dp-primary), transparent 94%);
}
.dp-danger-zone{
  border:1px solid #fecaca;
  background:#fff1f2;
  border-radius:18px;
  padding:16px;
}
[data-theme="dark"] .dp-danger-zone{
  background:#3b1217;
  border-color:#7f1d1d;
}
.dp-license-status{
  border-radius:18px;
  padding:16px;
  border:1px solid var(--dp-line);
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 24%);
}
.dp-license-dot{
  width:12px;
  height:12px;
  border-radius:999px;
  display:inline-block;
  margin-right:6px;
  background:#22c55e;
}
.dp-license-dot.warning{background:#f59e0b}
.dp-license-dot.danger{background:#ef4444}
.dp-notification-item{
  border:1px solid var(--dp-line);
  border-left:6px solid var(--dp-primary);
  border-radius:18px;
  padding:16px;
  background:var(--dp-panel);
  margin-bottom:12px;
}
.dp-notification-item.warning{border-left-color:#f59e0b}
.dp-notification-item.danger{border-left-color:#ef4444}
.dp-notification-item.success{border-left-color:#22c55e}
.dp-user-role-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dp-user-role-grid .form-check{
  border:1px solid var(--dp-line);
  border-radius:14px;
  padding:12px 12px 12px 38px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 18%);
}
@media(max-width:780px){
  .dp-user-role-grid{grid-template-columns:1fr}
}


/* RC6 email generator / admin-only / status */
.dp-admin-only{
  position:relative;
}
.dp-admin-only::before{
  content:"Administrator";
  position:absolute;
  top:14px;
  right:16px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  background:color-mix(in srgb, var(--dp-primary), transparent 82%);
  color:var(--dp-primary);
  border:1px solid color-mix(in srgb, var(--dp-primary), transparent 60%);
  border-radius:999px;
  padding:4px 9px;
}
.dp-email-preview-frame{
  background:#f8fafc;
  border:1px solid var(--dp-line);
  border-radius:18px;
  overflow:hidden;
}
[data-theme="dark"] .dp-email-preview-frame{
  background:#0f172a;
}
.dp-code-output{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:13px;
  min-height:180px;
}
.dp-status-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.dp-status-card{
  background:var(--dp-panel);
  border:1px solid var(--dp-line);
  border-radius:18px;
  padding:16px;
}
.dp-component-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:11px 0;
  border-bottom:1px solid var(--dp-line);
}
.dp-component-row:last-child{border-bottom:0}
.dp-env-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--dp-line);
  border-radius:999px;
  padding:6px 10px;
  font-weight:800;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 24%);
}
@media(max-width:1000px){
  .dp-status-grid{grid-template-columns:1fr}
}


/* RC7 installation wizard / system settings / login modal */
.dp-coordinator-available{
  position:relative;
}
.dp-coordinator-available::before{
  content:"Administrator + coordinator";
  position:absolute;
  top:14px;
  right:16px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  background:color-mix(in srgb, var(--dp-accent), transparent 84%);
  color:var(--dp-accent);
  border:1px solid color-mix(in srgb, var(--dp-accent), transparent 58%);
  border-radius:999px;
  padding:4px 9px;
}
.dp-system-section{
  border:1px solid var(--dp-line);
  border-radius:20px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 22%);
  padding:18px;
  margin-top:18px;
}
.dp-wizard-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 14px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--dp-primary), white 82%), color-mix(in srgb, var(--dp-accent), white 86%));
}
[data-theme="dark"] .dp-wizard-wrap{
  background:linear-gradient(135deg,#0b1220,#1b2438);
}
.dp-wizard-card{
  width:min(1120px,96vw);
  background:var(--dp-panel);
  color:var(--dp-text);
  border:1px solid var(--dp-line);
  border-radius:28px;
  box-shadow:0 30px 100px rgba(15,23,42,.22);
  overflow:hidden;
}
.dp-wizard-head{
  padding:28px 32px;
  background:linear-gradient(135deg,var(--dp-primary),var(--dp-accent));
  color:#fff;
}
.dp-wizard-body{
  padding:28px 32px;
}
.dp-wizard-steps{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin-bottom:22px;
}
.dp-wizard-step{
  border:1px solid var(--dp-line);
  border-radius:999px;
  padding:8px 10px;
  text-align:center;
  font-weight:800;
  font-size:13px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 28%);
}
.dp-wizard-step.active{
  background:var(--dp-primary);
  border-color:var(--dp-primary);
  color:#fff;
}
.dp-login-modal-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:20px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--dp-primary), white 82%), color-mix(in srgb, var(--dp-accent), white 88%));
}
[data-theme="dark"] .dp-login-modal-shell{
  background:linear-gradient(135deg,#0b1220,#19233a);
}
.dp-login-modal-card{
  width:min(440px,94vw);
  background:var(--dp-panel);
  color:var(--dp-text);
  border:1px solid var(--dp-line);
  border-radius:28px;
  box-shadow:0 30px 100px rgba(15,23,42,.24);
  padding:28px;
}
.dp-login-modal-card .dp-login-logo{
  margin-top:-4px;
}
.dp-destination-row{
  cursor:pointer;
}
.dp-destination-row:hover td{
  background:color-mix(in srgb, var(--dp-primary), transparent 94%);
}
@media(max-width:900px){
  .dp-wizard-steps{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .dp-wizard-body,.dp-wizard-head{padding:22px 18px}
  .dp-wizard-steps{grid-template-columns:1fr}
}


/* RC8 admin-only visibility */
body[data-user-role="coordinator"] .dp-admin-only{
  display:none!important;
}
.dp-role-preview-bar{
  border:1px solid var(--dp-line);
  border-radius:18px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 18%);
  padding:14px;
  margin-bottom:16px;
}
.dp-admin-hidden-note{
  display:none;
  border:1px dashed var(--dp-line);
  border-radius:18px;
  padding:16px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 26%);
}
body[data-user-role="coordinator"] .dp-admin-hidden-note{
  display:block;
}
.dp-db-test-result{
  font-weight:800;
}


/* RC9 CSV import module */
.dp-import-dropzone{
  border:2px dashed var(--dp-line);
  border-radius:20px;
  padding:22px;
  text-align:center;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 22%);
}
.dp-import-dropzone:hover{
  border-color:var(--dp-primary);
  background:color-mix(in srgb, var(--dp-primary), transparent 94%);
}
.dp-import-columns{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.dp-import-columns .badge{
  font-size:13px;
}
.dp-import-preview{
  max-height:320px;
  overflow:auto;
  border:1px solid var(--dp-line);
  border-radius:16px;
}
.dp-import-preview table{
  margin:0;
}
.dp-import-result{
  border-radius:16px;
  padding:12px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 24%);
  border:1px solid var(--dp-line);
}


/* V10c groter gemaakte installatie-wizard stappen */
.dp-wizard-steps{
  gap:14px;
  margin-bottom:30px;
}
.dp-wizard-step{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px 18px;
  font-size:15px;
  border-radius:18px;
  line-height:1.25;
}
.dp-wizard-step::first-letter{
  font-size:18px;
}
@media(max-width:900px){
  .dp-wizard-step{
    min-height:52px;
    font-size:15px;
  }
}


/* V10f generic initial branding and live notifications */
.dp-logo-badge .bi-app-indicator,
.dp-login-logo .bi-app-indicator{
  font-size:1.35rem;
}
#driverRealtimeNotifications{
  border-left:4px solid var(--dp-primary);
}


/* V10g planner fixes */
#plannerDynamicGrid > .p-3{
  grid-column:1 / -1;
}
.dp-trip p{
  margin-bottom:4px;
}


/* V10h planner card colors and Dutch status label */
.dp-trip.single,
.dp-trip.return{
  border-left:6px solid #22c55e;
  background:color-mix(in srgb, #22c55e, transparent 90%);
}
.dp-trip.series,
.dp-trip.series_return{
  border-left:6px solid #3b82f6;
  background:color-mix(in srgb, #3b82f6, transparent 90%);
}
.dp-trip.combo,
.dp-trip.combo_return{
  border-left:6px solid #f59e0b;
  background:color-mix(in srgb, #f59e0b, transparent 88%);
}
.dp-trip .status.confirmed,
.dp-status-confirmed{
  color:#15803d;
  font-weight:900;
}
.dp-trip .status.cancelled,
.dp-status-cancelled{
  color:#b91c1c;
  font-weight:900;
}
.dp-combo-existing-note{
  border:1px solid var(--dp-line);
  border-radius:14px;
  padding:10px 12px;
  background:color-mix(in srgb, var(--dp-panel), var(--dp-bg) 30%);
}


/* V10k occupied times and mobile live day view */
select option:disabled{
  color:#b91c1c;
}
.dp-mobile-card.mobile-cancelled{
  border-left:6px solid #dc2626;
  background:color-mix(in srgb, #dc2626, transparent 88%);
}
#mobileTodayBookings .dp-mobile-card{
  margin-bottom:12px;
}

/* V10l */
#plannerOptionsDebugBtn{margin-bottom:12px;}

/* V10m */
#customersTableBody .dp-click-row,#destinationsTableBody .dp-destination-row{cursor:pointer;}

/* V10o */
#seriesOccurrencesBox .table{margin-bottom:0;}


/* V10p */
.dp-blank-logo{
  background:#fff !important;
  border:2px dashed rgba(15,23,42,.22);
  color:transparent !important;
}
.dp-blank-logo::after{
  content:"";
  display:block;
  width:22px;
  height:22px;
  border-radius:6px;
  background:rgba(15,23,42,.06);
}
@media print{
  .dp-horizontal-nav,.dp-sidebar,.dp-topbar .d-flex,.btn{display:none!important}
  .dp-shell{display:block!important}
  .dp-main{margin:0!important}
}


/* V10r wizard placeholder logo */
.dp-wizard-logo-placeholder{
  width:56px;
  height:56px;
  border-radius:16px;
  background:#fff;
  border:2px dashed rgba(15,23,42,.35);
  display:grid;
  place-items:center;
  color:rgba(15,23,42,.45);
  font-weight:700;
  font-size:.8rem;
}


/* V10t MFA QR */
.dp-mfa-qr{
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid rgba(15,23,42,.12);
  border-radius:16px;
  padding:18px;
}
.dp-mfa-qr svg{
  width:220px;
  height:220px;
  max-width:100%;
}


/* V10y current user pill */
.dp-current-user-pill{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.45rem .75rem;
  border-radius:999px;
  background:rgba(14,165,183,.12);
  color:var(--dp-primary);
  font-weight:700;
  font-size:.875rem;
  white-space:nowrap;
}
.dp-topbar .dropdown-toggle .bi{
  margin-right:.35rem;
}


/* V10aa planner top widgets */
.dp-widget-card{
  min-height:112px;
}
.dp-widget-card .h4{
  line-height:1.15;
}
.dp-widget-ok .dp-kpi-icon{
  background:rgba(34,197,94,.12);
}
.dp-widget-warn .dp-kpi-icon{
  background:rgba(249,115,22,.14);
}
.dp-widget-danger .dp-kpi-icon{
  background:rgba(239,68,68,.12);
}


/* V10af planner dagdeelchauffeurs */
.dp-daypart-chip{
  border:1px solid rgba(15,23,42,.10);
  border-radius:14px;
  background:rgba(14,165,183,.06);
  padding:.75rem;
  min-height:96px;
  display:grid;
  gap:.25rem;
}
.dp-daypart-chip .badge{
  min-width:72px;
  margin-right:.35rem;
}


/* V10ah rapportage tabellen */
.dp-report-summary-card{
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  padding:1rem;
  background:#fff;
  height:100%;
}
.dp-report-table{
  margin-bottom:0;
}
.dp-report-table th{
  white-space:nowrap;
  background:rgba(14,165,183,.08);
}
.dp-report-table td{
  vertical-align:top;
}
.dp-report-table td:nth-child(4),
.dp-report-table td:nth-child(5){
  min-width:180px;
}


/* V10ah standaard chauffeur melding */
.default-driver-note{
  font-weight:600;
}


/* V10ai rapportage tabel fix */
.dp-report-table{
  table-layout: fixed;
  width: 100%;
  border: 1px solid rgba(15,23,42,.12);
}
.dp-report-table th,
.dp-report-table td{
  border: 1px solid rgba(15,23,42,.12);
  white-space: normal;
  word-break: break-word;
}
.dp-report-table th{
  font-weight: 700;
}


/* V10ak: oude instellingen preview definitief verbergen */
.dp-role-preview-bar,
.dp-admin-hidden-note{
  display:none !important;
}


/* V10al: settings preview fallback */
.dp-role-preview-bar,
.dp-admin-hidden-note{
  display:none !important;
}
