/* OnlyDrive Operations OS — the single Admin shell and workspace contract. */

html:has(body.od-admin-app) {
  width: 100%;
  height: 100%;
  overflow: hidden;
  scrollbar-gutter: auto;
}

body.od-admin-app {
  --bg0: var(--od-bg-primary);
  --bg1: var(--od-bg-secondary);
  --card: var(--od-surface-1);
  --card2: var(--od-surface-2);
  --border: var(--od-border-subtle);
  --text: var(--od-text-primary);
  --muted: var(--od-text-secondary);
  --muted2: var(--od-text-muted);
  --c1: var(--od-accent-strong);
  --c2: var(--od-accent);
  --c3: var(--od-success);
  --c4: var(--od-warning);
  --c5: var(--od-danger);
  --danger: var(--od-danger);
  --success: var(--od-success);
  --radius: var(--od-radius-lg);
  --radius2: var(--od-radius-xl);
  --shadow: var(--od-shadow-md);
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
  background:
    linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.012) 1px, transparent 1px),
    radial-gradient(circle at 72% -18%, rgba(43, 174, 188, .07), transparent 36%),
    var(--od-bg-primary);
  background-size: 44px 44px, 44px 44px, auto, auto;
}

body.od-main-admin > .ops-atmosphere { display: none; }

body.od-admin-app .admin-shell {
  display: grid;
  grid-template-columns: var(--od-sidebar-width) minmax(0, 1fr);
  width: 100vw;
  max-width: none;
  height: 100dvh;
  min-height: 0;
  margin: 0;
  padding: 0;
  gap: 0;
  overflow: hidden;
  transition: grid-template-columns var(--od-duration-medium) var(--od-ease);
}

body.od-admin-app .admin-main {
  grid-column: 2;
  display: grid;
  grid-template-rows: var(--od-topbar-height) minmax(0, 1fr);
  width: 100%;
  height: 100dvh;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

body.od-admin-app .admin-workspace {
  position: relative;
  grid-row: 2;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

body.od-admin-app .admin-workspace > .section {
  width: 100%;
  max-width: none;
  height: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: clamp(1.25rem, 2vw, 2rem);
  overflow: hidden auto;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: var(--od-border-strong) transparent;
}

body.od-admin-app .admin-workspace > .section:not(.active) { display: none; }
body.od-admin-app .admin-workspace > .section.active { display: block; }
body.od-admin-app .admin-workspace > #section-map.active { padding: 0; overflow: hidden; scrollbar-gutter: auto; }

body.od-admin-app #section-gestione > #section-pricing {
  display: none;
  width: 100%;
  height: auto;
  margin-top: var(--od-space-6);
  padding: 0;
  overflow: visible;
}
body.od-admin-app #section-gestione > #section-pricing.active { display: block; }

/* Sidebar */
body.od-admin-app .admin-sections-navigation {
  position: relative;
  z-index: var(--od-z-sticky);
  grid-column: 1;
  display: flex;
  width: 100%;
  height: 100dvh;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  padding: var(--od-space-4) var(--od-space-3);
  overflow: hidden;
  border: 0;
  border-right: 1px solid var(--od-border-subtle);
  border-radius: 0;
  background: rgba(6, 11, 15, .97);
  box-shadow: none;
  backdrop-filter: none;
}

.od-sidebar-brand {
  display: flex;
  min-height: 3.15rem;
  align-items: center;
  gap: var(--od-space-3);
  padding: 0 var(--od-space-2);
  color: var(--od-text-primary);
  text-decoration: none;
}

.od-sidebar-mark {
  display: grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  place-items: center;
  border: 1px solid var(--od-accent-border);
  border-radius: var(--od-radius-md);
  background: linear-gradient(145deg, var(--od-surface-3), var(--od-bg-secondary));
  color: var(--od-accent);
  font-size: var(--od-text-xs);
  font-weight: 760;
  letter-spacing: -.04em;
}

.od-sidebar-wordmark {
  min-width: 0;
  overflow: hidden;
  font-size: var(--od-text-sm);
  font-weight: 760;
  letter-spacing: .025em;
  white-space: nowrap;
}
.od-sidebar-wordmark small { display: block; margin-top: .1rem; color: var(--od-text-muted); font-size: .625rem; font-weight: 520; letter-spacing: 0; }
.od-sidebar-wordmark b { color: var(--od-accent); }

.od-sidebar-scroll {
  min-height: 0;
  flex: 1;
  margin-top: var(--od-space-4);
  padding-right: .15rem;
  overflow: hidden auto;
  scrollbar-width: thin;
  scrollbar-color: var(--od-border-strong) transparent;
}

body.od-admin-app .admin-sections-tabs {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  width: 100%;
  min-height: 0;
  gap: 0;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.od-nav-group { display: grid; gap: .15rem; margin-bottom: var(--od-space-4); }
.od-nav-label {
  margin: 0 0 var(--od-space-2);
  padding: 0 var(--od-space-3);
  color: #526673;
  font-size: .625rem;
  font-weight: 670;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.od-admin-app :is(.admin-sections-tabs .tab, .od-sidebar-link) {
  position: relative;
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 2.45rem;
  align-items: center;
  justify-content: flex-start;
  gap: var(--od-space-3);
  padding: 0 var(--od-space-3);
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: var(--od-radius-md);
  background: transparent;
  box-shadow: none;
  color: #81939e;
  font-size: var(--od-text-sm);
  font-weight: 560;
  letter-spacing: 0;
  line-height: 1;
  text-align: left;
  text-decoration: none;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  transform: none;
}

body.od-admin-app :is(.admin-sections-tabs .tab, .od-sidebar-link)::before { display: none; }
body.od-admin-app :is(.admin-sections-tabs .tab, .od-sidebar-link):hover {
  border-color: transparent;
  background: rgba(255,255,255,.032);
  color: var(--od-text-primary);
  transform: none;
}

body.od-admin-app :is(.admin-sections-tabs .tab.active, .od-sidebar-link.active) {
  border-color: rgba(98,217,232,.08);
  background: linear-gradient(90deg, rgba(98,217,232,.10), rgba(98,217,232,.035));
  color: var(--od-text-primary);
}

body.od-admin-app :is(.admin-sections-tabs .tab.active, .od-sidebar-link.active)::after {
  position: absolute;
  top: .55rem;
  bottom: .55rem;
  left: 0;
  width: 2px;
  height: auto;
  border-radius: var(--od-radius-pill);
  background: var(--od-accent);
  box-shadow: 0 0 14px rgba(98,217,232,.38);
  content: "";
}

body.od-admin-app .tab.active .od-nav-icon { color: var(--od-accent); }
.od-nav-icon { width: 1.05rem; height: 1.05rem; flex: 0 0 1.05rem; stroke-width: 1.65; }
.od-nav-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.od-sidebar-footer {
  display: grid;
  gap: var(--od-space-2);
  padding-top: var(--od-space-3);
  border-top: 1px solid var(--od-border-subtle);
}
.od-admin-profile { display: flex; min-width: 0; align-items: center; gap: var(--od-space-3); padding: var(--od-space-2); border-radius: var(--od-radius-md); }
.od-admin-avatar { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; border-radius: 50%; background: var(--od-accent-soft); color: var(--od-accent); font-size: var(--od-text-xs); font-weight: 720; }
.od-admin-profile-text { min-width: 0; overflow: hidden; color: var(--od-text-primary); font-size: var(--od-text-xs); text-overflow: ellipsis; white-space: nowrap; }
.od-admin-profile-text small { display: block; color: var(--od-text-muted); font-size: .625rem; }
.od-sidebar-footer .od-sidebar-logout { justify-content: flex-start; border-color: transparent; background: transparent; }

/* Topbar */
body.od-admin-app .admin-header {
  position: relative;
  z-index: calc(var(--od-z-sticky) - 1);
  grid-row: 1;
  display: flex;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: var(--od-topbar-height);
  align-items: center;
  justify-content: space-between;
  gap: var(--od-space-4);
  margin: 0;
  padding: 0 clamp(var(--od-space-4), 2vw, var(--od-space-8));
  inset: auto;
  border: 0;
  border-bottom: 1px solid var(--od-border-subtle);
  border-radius: 0;
  background: rgba(5, 9, 13, .9);
  box-shadow: none;
  backdrop-filter: blur(16px);
}

.od-page-context { min-width: 0; }
.od-page-context__eyebrow { color: var(--od-text-muted); font-size: .625rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.od-page-context__title { margin: .15rem 0 0; overflow: hidden; color: var(--od-text-primary); font-size: var(--od-text-lg); font-weight: 650; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.od-page-context__status { display: inline-flex; align-items: center; gap: var(--od-space-2); color: var(--od-text-muted); font-size: var(--od-text-xs); }
.od-page-context__status::before { width: .4rem; height: .4rem; border-radius: 50%; background: var(--od-success); box-shadow: 0 0 0 3px var(--od-success-soft); content: ""; }

body.od-main-admin .admin-header .logoRow { min-width: 0; }
body.od-main-admin .admin-header .headerRight { display: flex; align-items: center; gap: var(--od-space-2); }
body.od-main-admin .admin-header :is(.logo, .logoTextMain, .logoTextSub, .badgeRole, .btnLogout) { display: none; }
body.od-admin-app .od-nav-toggle { display: none; }
body.od-admin-app .od-sidebar-collapse { display: inline-flex; }

body.od-admin-app #notice {
  position: absolute;
  z-index: var(--od-z-toast);
  top: calc(var(--od-topbar-height) + var(--od-space-3));
  right: var(--od-space-5);
  width: min(30rem, calc(100% - var(--od-space-10)));
  margin: 0;
  box-shadow: var(--od-shadow-md);
}
body.od-admin-app #notice:empty,
body.od-admin-app #notice.ok { display: none; }

/* Page headers and shared Admin content */
.od-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--od-space-6);
  margin: 0 0 var(--od-space-6);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.od-page-header__copy { max-width: 48rem; }
.od-page-header__group { margin-bottom: var(--od-space-2); color: var(--od-accent); font-size: .625rem; font-weight: 680; letter-spacing: .09em; text-transform: uppercase; }
.od-page-header h1 { margin: 0; font-size: clamp(1.75rem, 2.2vw, 2.125rem); font-weight: 570; line-height: 1.05; }
.od-page-header p { margin: var(--od-space-2) 0 0; color: var(--od-text-secondary); font-size: var(--od-text-sm); }
.od-page-header__meta { display: flex; gap: var(--od-space-2); flex-wrap: wrap; justify-content: flex-end; color: var(--od-text-muted); font-size: var(--od-text-xs); }

body.od-admin-app :is(.card, .panel) { margin-top: var(--od-space-4); padding: 0; overflow: clip; }
body.od-admin-app :is(.card-head, .panel-head) { margin: 0; padding: var(--od-space-5); border-bottom: 1px solid var(--od-border-subtle); }
body.od-admin-app .card-body { padding: var(--od-space-5); }
body.od-admin-app :is(.filters, .toolbar, .od-comm-filters) { padding: var(--od-space-3); border: 1px solid var(--od-border-subtle); border-radius: var(--od-radius-md); background: rgba(255,255,255,.018); }
body.od-admin-app :is(.form, .form-grid) { gap: var(--od-space-4); }
body.od-admin-app :is(.field, .form label) { gap: var(--od-space-2); }

/* Dashboard and dense operational surfaces use the entire workspace. */
body.od-main-admin #section-dashboard .dashStage { gap: var(--od-space-5); min-height: max(34rem, calc(100dvh - var(--od-topbar-height) - 10rem)); }
body.od-main-admin #section-dashboard :is(.dashGlass, .dashControl, .dashMapPanel) { border: 1px solid var(--od-border-subtle); border-radius: var(--od-radius-lg); background: var(--od-surface-1); box-shadow: none; }
body.od-main-admin #section-dashboard .dashControl__eyebrow,
body.od-main-admin #section-dashboard :is(.label, .mini) { letter-spacing: 0; text-transform: none; }
body.od-main-admin #section-dashboard .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }

body.od-main-admin :is(#section-orders, #section-customers, #section-drivers, #section-invoices, #section-payouts) .table-wrap { margin-top: var(--od-space-4); }
body.od-main-admin #section-orders > .od-page-header { display: none; }
body.od-main-admin #section-orders :is(.ordersOpsHeader, .ordersCommandHeader, .ordersWorkspaceHeader) { border-color: var(--od-border-subtle); background: var(--od-surface-1); box-shadow: none; }
body.od-main-admin :is(.orderRoute, .route-cell, .routeCompact) { color: var(--od-text-secondary); }
body.od-main-admin :is(#section-invoices, #section-payouts, #section-inout) td,
body.od-main-admin :is(#section-invoices, #section-payouts, #section-inout) .value { font-variant-numeric: tabular-nums; }
body.od-main-admin :is(#section-invoices, #section-payouts) [class*="amount" i] { color: var(--od-text-primary); font-weight: 650; }

body.od-main-admin .od-comm-shell { gap: var(--od-space-4); }
body.od-main-admin .od-comm-panel { border-color: var(--od-border-subtle); border-radius: var(--od-radius-lg); background: var(--od-bg-secondary); }
body.od-main-admin .od-comm-kicker { color: var(--od-accent); letter-spacing: .06em; }
body.od-main-admin .od-comm-preview { border-color: var(--od-border-subtle); border-radius: var(--od-radius-md); background: var(--od-surface-1); }

/* Requests: page header + filters/KPIs + queue/detail. No framing card around the module. */
body.od-main-admin #section-requests #requestsBox { min-width: 0; }
body.od-main-admin #section-requests .od-ops-shell { width: 100%; padding: 0; border: 0; background: transparent; box-shadow: none; }
body.od-main-admin #section-requests .od-main-grid { min-height: min(42rem, calc(100dvh - 25rem)); }
body.od-main-admin #section-requests .od-panel { border: 0; border-top: 1px solid var(--od-border-subtle); border-radius: 0; background: transparent; box-shadow: none; }

/* Recruiting is a native module of the primary workspace. */
body.od-main-admin .od-recruiting-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); }
body.od-main-admin .split-panels { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--od-space-4); }
body.od-main-admin .od-recruiting-section .panel { padding: var(--od-space-5); overflow: visible; }
body.od-main-admin .od-recruiting-section .panel > .panel-head { margin: calc(var(--od-space-5) * -1) calc(var(--od-space-5) * -1) var(--od-space-5); }
body.od-main-admin .od-recruiting-section :is(.question, .document, .detail) { border: 1px solid var(--od-border-subtle); border-radius: var(--od-radius-md); background: var(--od-bg-secondary); }
body.od-main-admin .od-recruiting-section .detail { padding: var(--od-space-3); }
body.od-main-admin .od-recruiting-section .detail span { color: var(--od-text-muted); font-size: var(--od-text-2xs); text-transform: none; }
body.od-main-admin .od-recruiting-section .detail strong { margin-top: var(--od-space-1); color: var(--od-text-primary); font-size: var(--od-text-sm); }

body.od-main-admin .od-recruiting-drawer { z-index: var(--od-z-drawer); width: min(55rem, 100%); padding: var(--od-space-6); border-left: 1px solid var(--od-border-default); background: var(--od-bg-secondary); }
body.od-main-admin .od-recruiting-drawer .drawer-head { top: calc(var(--od-space-6) * -1); margin: calc(var(--od-space-6) * -1) calc(var(--od-space-6) * -1) var(--od-space-4); padding: var(--od-space-5) var(--od-space-6); }
body.od-main-admin .od-recruiting-drawer .panel { margin-top: var(--od-space-3); padding: var(--od-space-5); }

.od-funnel { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }
.od-funnel__step { position: relative; min-width: 0; padding: var(--od-space-4); border: 1px solid var(--od-border-subtle); background: var(--od-bg-secondary); }
.od-funnel__step:first-child { border-radius: var(--od-radius-md) 0 0 var(--od-radius-md); }
.od-funnel__step:last-child { border-radius: 0 var(--od-radius-md) var(--od-radius-md) 0; }
.od-funnel__step + .od-funnel__step { border-left: 0; }
.od-funnel__step span { display: block; color: var(--od-text-muted); font-size: var(--od-text-2xs); }
.od-funnel__step strong { display: block; margin-top: var(--od-space-2); color: var(--od-text-primary); font-size: var(--od-text-xl); font-variant-numeric: tabular-nums; }
.od-funnel__step::after { position: absolute; z-index: 1; top: 50%; right: -.25rem; width: .45rem; height: .45rem; border-top: 1px solid var(--od-accent); border-right: 1px solid var(--od-accent); background: var(--od-bg-secondary); content: ""; transform: translateY(-50%) rotate(45deg); }
.od-funnel__step:last-child::after { display: none; }

.od-candidate-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--od-space-4); margin-bottom: var(--od-space-4); padding: var(--od-space-5); border: 1px solid var(--od-border-subtle); border-radius: var(--od-radius-lg); background: linear-gradient(135deg, var(--od-surface-2), var(--od-surface-1)); }
.od-candidate-hero h3 { margin: 0; font-size: var(--od-text-2xl); font-weight: 580; }
.od-candidate-hero p { margin: var(--od-space-1) 0 0; color: var(--od-text-muted); font-family: var(--od-font-mono); font-size: var(--od-text-xs); }

/* Collapsed desktop rail */
body.od-admin-collapsed .admin-shell { grid-template-columns: var(--od-sidebar-collapsed) minmax(0, 1fr); }
body.od-admin-collapsed :is(.od-sidebar-wordmark, .od-nav-text, .od-nav-label, .od-admin-profile-text) { display: none; }
body.od-admin-collapsed .admin-sections-navigation { padding-inline: var(--od-space-3); }
body.od-admin-collapsed .admin-sections-tabs .tab { justify-content: center; padding-inline: 0; overflow: visible; }
body.od-admin-collapsed .od-nav-group { margin-bottom: var(--od-space-3); }
body.od-admin-collapsed .admin-sections-tabs .tab:hover::before {
  position: absolute;
  z-index: var(--od-z-tooltip);
  left: calc(100% + .75rem);
  display: block;
  width: max-content;
  max-width: 14rem;
  padding: .45rem .6rem;
  border: 1px solid var(--od-border-default);
  border-radius: var(--od-radius-sm);
  background: var(--od-surface-3);
  box-shadow: var(--od-shadow-sm);
  color: var(--od-text-primary);
  content: attr(data-tooltip);
  font-size: var(--od-text-xs);
  pointer-events: none;
}

.od-mobile-scrim { display: none; }

body.od-admin-app :is(.card, .panel, .kpi) { backdrop-filter: none; }

@supports not (height: 100dvh) {
  body.od-admin-app,
  body.od-admin-app .admin-shell,
  body.od-admin-app .admin-main,
  body.od-admin-app .admin-sections-navigation { height: 100vh; }
}
