/* Shared LogPRO web interface. Feature rules and tenant data remain in their existing modules. */
html { scrollbar-gutter: stable; }
.logpro-ui {
  --ui-ink: #142b40;
  --ui-muted: #536579;
  --ui-line: #dce5ec;
  --ui-control: #8495a9;
  --ui-blue: #1263d4;
  --ui-teal: #08786e;
  --ui-canvas: #f5f7fa;
  --primary: var(--ui-blue);
  --primary-dark: #0d52b3;
  --blue: var(--ui-blue);
  --navy: var(--ui-navy);
  --ink: var(--ui-ink);
  --muted: var(--ui-muted);
  --ui-navy: #102b43;
  --ui-radius: 12px;
  --ui-ease: cubic-bezier(.16, 1, .3, 1);
  font-family: Inter, sans-serif;
  color: var(--ui-ink);
  background-color: var(--ui-canvas);
  -webkit-font-smoothing: antialiased;
  text-underline-offset: .2em;
  caret-color: var(--ui-blue);
  scrollbar-color: #8898aa #eef2f6;
  scrollbar-width: thin;
}
.logpro-ui ::selection { background: #cee3ff; color: #102b43; }
.logpro-ui :is(button, input, select, textarea) { font-family: inherit; }
.logpro-ui :is(button, a, summary, input, select, textarea):focus-visible {
  outline: 2px solid var(--ui-blue); outline-offset: 3px;
}
.logpro-ui :is(h1, h2, h3) { color: inherit; text-wrap: balance; }
.logpro-ui :is(h1, h2) { letter-spacing: -.025em; }
.logpro-ui :is(input, textarea)::placeholder { color: #607286; opacity: 1; }
.logpro-ui :is(button, .button-link, .nav-item, summary) {
  -webkit-tap-highlight-color: transparent;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}
.logpro-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]), select, textarea) {
  border-color: var(--ui-control); border-radius: 8px; color: var(--ui-ink);
  transition: border-color 140ms ease, background-color 140ms ease;
}
.logpro-ui :is(input, select, textarea):focus { border-color: var(--ui-blue); }
.logpro-ui :is(button, input, select, textarea):disabled { cursor: not-allowed; }
.logpro-ui :is(.primary, button.primary, button[type=submit].primary) {
  background: var(--ui-blue); border-color: var(--ui-blue); color: #fff;
}
.logpro-ui :is(.primary, button.primary):hover:not(:disabled) { background: #0d52b3; border-color: #0d52b3; }
.logpro-ui :is(.outline, button.outline) { border-color: #b3bfcd; color: #29465f; background: white; }
.logpro-ui :is(.outline, button.outline):hover:not(:disabled) { background: #edf4fc; border-color: #7d9bbe; }
.logpro-ui :is(.muted, .muted-copy) { color: var(--ui-muted); }
.logpro-ui :is(table, .summary, .pagination, .master-counts) { font-variant-numeric: tabular-nums; }

/* The shell anchors the product. Layout widths and mobile drawer remain familiar. */
.logpro-ui .app-shell > .content { min-width: 0; background: var(--ui-canvas); }
.logpro-ui .app-shell > .sidebar, .logpro-ui .master-sidebar { background: var(--ui-navy); isolation: isolate; }
.logpro-ui .sidebar .brand { margin-bottom: 36px; }
.logpro-ui .sidebar .nav-item { min-height: 46px; font-size: 14px; font-weight: 600; border-radius: 8px; color: #c8d8e6; }
.logpro-ui .sidebar .nav-item .mdi { font-size: 21px; }
.logpro-ui .sidebar .sidebar-submenu { margin-left: 23px; padding-left: 10px; border-color: #3b5269; }
.logpro-ui .sidebar .sidebar-submenu .nav-item { font-size: 13px; min-height: 42px; padding: 10px 12px; }
.logpro-ui .sidebar .nav-item:hover { background: #1b3c56; color: white; }
.logpro-ui .sidebar .nav-item.active,
.logpro-ui .master-sidebar nav a[aria-current=page] { background: #204966; color: #fff; box-shadow: none; }
.logpro-ui .sidebar .nav-item.active .mdi { color: #a8d4ff; }
.logpro-ui .sidebar :is(a, summary, button):focus-visible { outline-color: #acd8ff; }
.logpro-ui .sidebar .approval-nav-count { background: #355872; color: #fff; font-size: 11px; }
.logpro-ui .sidebar .account { border-color: #355069; }
.logpro-ui .sidebar .account-meta small { color: #b8ccdd; }
.logpro-ui .sidebar :is(nav, .account), .logpro-ui .master-sidebar nav { position: relative; z-index: 1; }
.interface-nav-marker { position: absolute; top: 0; left: 0; z-index: 0; pointer-events: none; background: #204966; border-radius: 8px; }
.logpro-ui .sidebar[data-interface-marker] nav a:is(.nav-item.active, [aria-current=page]) { background: transparent; }
.logpro-ui .topbar { min-height: 88px; padding: 20px 32px; border-bottom: 1px solid var(--ui-line); background: #fff; gap: 16px; }
.logpro-ui .topbar h1 { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.2; font-weight: 700; }
.logpro-ui .topbar :is(.outline, .notification-toggle) { min-height: 44px; border-radius: 8px; }
.logpro-ui .topbar .notification-toggle { color: #365570; }
.logpro-ui .page { scroll-margin-top: 24px; }
.logpro-ui .demo-notice { border-radius: 0; border-width: 0 0 1px; padding: 16px 32px; box-shadow: none; }

/* Journal: larger labels, aligned filters and quiet separators keep long lists readable. */
.logpro-ui #trips-view.journal-v2 { --j-ink: var(--ui-ink); --j-muted: var(--ui-muted); --j-blue: var(--ui-blue); --j-teal: var(--ui-teal); padding: 28px 32px 48px; }
.logpro-ui #trips-view.journal-v2 .journal-controls { border-color: var(--ui-line); border-radius: var(--ui-radius); padding: 22px; gap: 18px; }
.logpro-ui #trips-view.journal-v2 .journal-controls label { font-size: 12px; font-weight: 600; color: #40566b; }
.logpro-ui #trips-view.journal-v2 .journal-controls :is(input, select) { border-color: var(--ui-control); border-radius: 8px; }
.logpro-ui #trips-view.journal-v2 .segmented { padding: 3px; background: #eaf0f6; border-radius: 8px; }
.logpro-ui #trips-view.journal-v2 .segmented button { font-size: 13px; color: #496176; }
.logpro-ui #trips-view.journal-v2 .segmented button.active { background: #fff; color: #125bb8; box-shadow: 0 2px 4px #102b4312; }
.logpro-ui #trips-view.journal-v2 :is(.period-help, .summary article span, .batch-toolbar > span) { color: var(--ui-muted); font-size: 12px; }
.logpro-ui #trips-view.journal-v2 .summary { margin: 24px 0 16px; }
.logpro-ui #trips-view.journal-v2 .summary article { padding: 2px 22px; }
.logpro-ui #trips-view.journal-v2 .summary article:first-child { padding-left: 0; }
.logpro-ui #trips-view.journal-v2 .summary article small { font-size: 11px; letter-spacing: .025em; color: var(--ui-muted); }
.logpro-ui #trips-view.journal-v2 .summary article strong { font-size: 24px; margin-top: 7px; letter-spacing: -.025em; }
.logpro-ui #trips-view.journal-v2 .journal-results > header { padding: 18px 0; }
.logpro-ui #trips-view.journal-v2 .trip-actions button { font-size: 12px; min-height: 42px; }
.logpro-ui #trips-view.journal-v2 .trip-list { gap: 16px; }
.logpro-ui #trips-view.journal-v2 .journey-card { border-color: var(--ui-line); border-radius: 12px; box-shadow: none; }
.logpro-ui #trips-view.journal-v2 button.journey-driver:hover:not(:disabled) { background: #edf4fc; border-color: #a8bfd8; }
.logpro-ui :is(.approve-trip, .app-shell .approve-trip) { color: white; background: var(--ui-teal); border-color: var(--ui-teal); }
.logpro-ui :is(.approve-trip, .app-shell .approve-trip):hover:not(:disabled) { background: #056158; border-color: #056158; }

/* Forms, registry, reporting and personal settings inherit the same control language. */
.logpro-ui .app-shell .content :is(.settings-surface, .personal-settings) { color: var(--ui-ink); }
.logpro-ui .app-shell :is(.settings-surface, .personal-settings) :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { border-color: var(--ui-control); border-radius: 8px; }
.logpro-ui :is(.settings-surface, .personal-settings, #reports-view, #drivers-view) :is(.panel, .card) { border-color: var(--ui-line); box-shadow: none; border-radius: var(--ui-radius); }

.logpro-ui :is(.settings-hub-link, .settings-link) { transition: background-color 140ms ease, border-color 140ms ease; }
.logpro-ui :is(.settings-hub-link, .settings-link):hover { background: #f0f6fc; border-color: #a6bdd5; }
.logpro-ui table :is(th, td) { border-bottom-color: var(--ui-line); }
.logpro-ui table th { color: #435a70; }
.logpro-ui table tbody tr:hover { background-color: #f4f8fd; }

/* Dialogs keep native top-layer focus and existing action logic. */
.logpro-ui dialog { border: 0; border-radius: 14px; box-shadow: 0 24px 70px #071d3440; color: var(--ui-ink); max-height: calc(100dvh - 48px); overscroll-behavior: contain; }
.logpro-ui dialog::backdrop { background: #0b20395e; }
.logpro-ui dialog :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { border-color: var(--ui-control); }
.logpro-ui dialog :is(.dialog-actions, .form-actions, footer) { gap: 12px; }
.logpro-ui dialog :is(h2, h3) { letter-spacing: -.02em; }
.logpro-ui :is(dialog, .sidebar, .master-table-wrap, .trip-driver-results) { scrollbar-width: thin; scrollbar-color: #8a9caf transparent; }

/* Entry and standalone web screens use the same type and controls. */
.logpro-ui .login-brand { background: var(--ui-navy); }
.logpro-ui .login-brand .login-copy > small, .logpro-ui .login-card > small { display: none; }
.logpro-ui .login-copy h1 { letter-spacing: -.035em; }
.logpro-ui .login-side { background: #f5f7fa; }
.logpro-ui .login-card { border-radius: 14px; }
.logpro-ui .login-card :is(input, button.primary) { min-height: 48px; }
.logpro-ui .login-card label { color: #40566b; font-weight: 600; }
.logpro-ui .login-card input { font-weight: 400; }
.logpro-ui .master-table-wrap, .logpro-ui.master-app .card { border-radius: 12px; }
.logpro-ui .master-table th { font-size: 12px; }
.logpro-ui.master-app .admin-heading { padding-block: 32px 28px; }
.logpro-ui :is(.mobile-header, #tablet) { font-family: Inter, sans-serif; }

html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }

@media (max-width: 950px) {
  .logpro-ui .topbar { min-height: 76px; padding: 16px 20px; gap: 12px; }
  .logpro-ui .topbar h1 { font-size: 24px; }
  .logpro-ui .topbar > div { min-width: 0; }
  .logpro-ui .sidebar .brand { margin-bottom: 24px; }
  .logpro-ui .demo-notice { padding: 14px 20px; }
  .logpro-ui #trips-view.journal-v2 { padding: 24px 20px 40px; }
}
@media (max-width: 600px) {
  .logpro-ui .topbar { padding: 14px 16px; gap: 10px; }
  .logpro-ui .topbar h1 { font-size: 21px; }
  .logpro-ui .topbar #export-button { padding-inline: 12px; min-width: 0; font-size: 12px; }
  .logpro-ui #trips-view.journal-v2 { padding: 20px 16px 32px; }
  .logpro-ui #trips-view.journal-v2 .journal-controls { padding: 16px; gap: 16px; }
  .logpro-ui #trips-view.journal-v2 .journal-person-filter { grid-template-columns: minmax(100px, .8fr) minmax(0, 1.4fr); }
  .logpro-ui #trips-view.journal-v2 .journal-controls :is(input, select) { font-size: 16px; }
  .logpro-ui #trips-view.journal-v2 .summary article { padding-inline: 10px; }
  .logpro-ui #trips-view.journal-v2 .summary article strong { font-size: 19px; }
  .logpro-ui #trips-view.journal-v2 .summary article small { font-size: 10px; }
  .logpro-ui #trips-view.journal-v2 .trip-actions { gap: 8px; }
  .logpro-ui dialog { max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); border-radius: 12px; }
  .logpro-ui :is(dialog, .settings-surface, .login-card) :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .logpro-ui *, .logpro-ui *::before, .logpro-ui *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media print {
  .interface-nav-marker { display: none; }
  .logpro-ui { background: white; }
  .logpro-ui .app-shell > .content { background: white; }
}

/* Explicit seams where legacy screens use ID-scoped form styles. */
.logpro-ui :is(#create-driver-dialog, #edit-driver-dialog) :is(input, select, textarea),
.logpro-ui #drivers-view.management-page .driver-directory-toolbar :is(input, select),
.logpro-ui .app-shell .settings-surface :is(.settings-form, .tidy-form, .poi-form, .profile-grid, .user-driver-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { border-color: var(--ui-control); }
.logpro-ui :is(#create-driver-dialog, #edit-driver-dialog) .primary,
.logpro-ui :is(#settings-view, #beacons-view, #users-view) button.primary { background: var(--ui-blue); border-color: var(--ui-blue); }
.logpro-ui #drivers-view .dr-person small, .logpro-ui #drivers-view .dr-car { color: var(--ui-muted); font-size: 12px; }
.logpro-ui #drivers-view .dr-car.is-assigned { color: var(--ui-teal); }
.logpro-ui #trips-view.is-archive #workspace-title { display: none; }
.logpro-ui #trips-view .workspace-heading { margin-bottom: 18px; }
.logpro-ui .settings-grid .settings-tile:hover { background: #edf4fc; }
.logpro-ui .settings-grid .settings-tile h3 { color: var(--ui-ink); }
.logpro-ui .settings-grid .settings-tile:focus-visible { outline-color: var(--ui-blue); }
