:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #212529;
  background: #f8f9fa;
  --brand-orange: #f07800;
  --brand-orange-hover: #d66300;
  --brand-orange-active: #b85200;
  --brand-orange-light: #fff3e0;
  --brand-black: #121212;
  --gray-50: #f8f9fa;
  --gray-100: #e9ecef;
  --gray-200: #dee2e6;
  --gray-300: #ced4da;
  --gray-500: #6c757d;
  --gray-700: #343a40;
  --gray-900: #212529;
  --success: #2e7d32;
  --success-bg: #e8f5e9;
  --warning: #e65100;
  --warning-bg: #fff3e0;
  --danger: #c62828;
  --danger-bg: #ffebee;
  --info: #1565c0;
  --info-bg: #e3f2fd;
  --radius: .5rem;
  --shadow: 0 4px 18px rgb(18 18 18 / 8%);
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--gray-50); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a { color: var(--brand-orange-active); }
a:hover { color: var(--brand-orange-hover); }
:focus-visible { outline: 3px solid rgb(240 120 0 / 35%); outline-offset: 2px; }

.container { max-width: 60rem; margin: 10vh auto; padding: 2rem; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius); box-shadow: var(--shadow); }

.login-page { display:grid; min-height:100vh; padding:1.25rem; place-items:center; background:linear-gradient(120deg,rgb(10 10 10 / 76%),rgb(10 10 10 / 54%)),url('/static/img/fondo_login.jpg') center / cover fixed,#101010; }
.login-shell { display:grid; align-content:center; gap:1.05rem; width:min(21rem,100%); min-height:27rem; padding:1.5rem; overflow:hidden; background:linear-gradient(145deg,#191919,#121212 70%); border:1px solid #262626; border-radius:1rem; box-shadow:0 24px 70px rgb(0 0 0 / 48%); }
.login-logo { display:block; width:100%; height:11rem; margin:0 auto .25rem; object-fit:contain; }
.change-password-shell { width:min(28rem,100%); min-height:0; gap:1.25rem; padding:2rem; }
.change-password-shell .login-logo { height:12rem; }
.change-password-shell h1 { margin:0; color:#fff; font-size:1.65rem; line-height:1.25; letter-spacing:-.02em; }
.change-password-intro { margin:0; color:#e1e1e1; font-size:.95rem; line-height:1.55; }
.login-error { margin:0; padding:.7rem .8rem; color:#ffc3b7; background:#351d1a; border:1px solid #71372c; border-left:3px solid #ed6043; border-radius:.5rem; font-size:.88rem; line-height:1.4; }
.login-form { display:grid; gap:.7rem; }
.login-input-wrap { position:relative; }
.login-field-icon { position:absolute; top:50%; left:1rem; width:1.25rem; height:1.25rem; fill:none; stroke:#92979a; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transform:translateY(-50%); pointer-events:none; }
.login-form input { width:100%; min-height:3.2rem; padding:.7rem .9rem .7rem 3.1rem; color:#f5f5f5; background:linear-gradient(110deg,#202020,#1a1a1a); border:1px solid #3b3b3b; border-radius:.55rem; box-shadow:inset 0 1px 2px rgb(0 0 0 / 25%); }
.login-form input:focus { padding:.7rem .9rem .7rem 3.1rem; border-color:#f07800; outline:none; box-shadow:0 0 0 3px rgb(240 120 0 / 18%); }
.login-form input:-webkit-autofill { -webkit-text-fill-color:#f5f5f5; box-shadow:0 0 0 1000px #1d1d1d inset; }
.login-submit { display:grid; width:100%; min-height:3.2rem; margin-top:.4rem; padding:.65rem; place-items:center; color:#fff; background:linear-gradient(100deg,#f07800,#ff7900); border:0; border-radius:.55rem; }
.login-submit:hover { background:linear-gradient(100deg,#ff8614,#f07800); }
.login-submit svg { width:1.65rem; height:1.65rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .18s ease; }
.login-submit:hover svg { transform:translateX(3px); }
.login-remember { display:flex; width:max-content; align-items:center; gap:.6rem; margin:.15rem 0 .1rem; color:#d7d7d7; font-size:.88rem; font-weight:400; cursor:pointer; }
.login-remember input { width:1.05rem; min-height:0; height:1.05rem; margin:0; padding:0; accent-color:var(--brand-orange); }
.login-remember input:focus { padding:0; border:0; box-shadow:none; }
@media (max-width:480px) { .login-shell { min-height:25rem; } .login-logo { height:10rem; } .change-password-shell { min-height:0; gap:1rem; padding:1.35rem; } .change-password-shell .login-logo { height:9rem; } .change-password-shell h1 { font-size:1.4rem; } }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 2.5rem; padding: .625rem 1rem; border: 1px solid transparent; border-radius: var(--radius); font-weight: 600; transition: background-color .15s ease, border-color .15s ease, transform .15s ease; }
.btn, .btn:hover { text-decoration: none; }
.btn-primary, .btn-primary:hover { color: #fff; }
.btn:active { transform: translateY(1px); }
.btn-primary { color: #fff; background: var(--brand-orange); }
.btn-primary:hover { background: var(--brand-orange-hover); }
.btn-primary:active { background: var(--brand-orange-active); }
.btn-secondary { color: var(--gray-900); background: #fff; border-color: var(--gray-300); }
.btn-secondary:hover { background: var(--gray-50); }
.btn-danger { color: #fff; background: var(--danger); }
.btn-danger:hover { background: #a92121; }

label { display: block; margin-bottom: .375rem; color: var(--gray-700); font-size: .9rem; font-weight: 600; }
input, textarea, select { width: 100%; padding: .625rem .75rem; color: var(--gray-900); background: #fff; border: 1px solid var(--gray-300); border-radius: var(--radius); }
input:focus, textarea:focus, select:focus { border: 2px solid var(--brand-orange); padding: calc(.625rem - 1px) calc(.75rem - 1px); outline: none; box-shadow: 0 0 0 3px rgb(240 120 0 / 15%); }
input:disabled, textarea:disabled, select:disabled { color: var(--gray-500); background: var(--gray-100); }
input[type="checkbox"], input[type="radio"] { width: auto; accent-color: var(--brand-orange); }

.table { width: 100%; border-collapse: collapse; background: #fff; }
.table th { padding: .75rem; color: var(--gray-700); background: var(--gray-100); font-size: .8rem; font-weight: 700; text-align: left; text-transform: uppercase; }
.table td { padding: .75rem; border-bottom: 1px solid var(--gray-200); }
.table tbody tr:hover { background: var(--brand-orange-light); }
.status-success { color: var(--success); background: var(--success-bg); }
.status-warning { color: var(--warning); background: var(--warning-bg); }
.status-danger { color: var(--danger); background: var(--danger-bg); }
.status-info { color: var(--info); background: var(--info-bg); }
.status-success, .status-warning, .status-danger, .status-info { display: inline-flex; padding: .25rem .5rem; border-radius: 999px; font-size: .8rem; font-weight: 600; }

@media (max-width: 640px) {
  .container { margin: 1rem; padding: 1.25rem; }
}

.admin-shell { display: flex; min-height: 100vh; }
.admin-sidebar { display: flex; flex-direction: column; width: 16rem; padding: 1.5rem 1rem; color: #fff; background: var(--brand-black); }
.brand { display: flex; flex-direction: column; gap: .25rem; padding: .75rem; border-bottom: 1px solid #ffffff20; letter-spacing: .08em; }
.brand strong { display:block; width:100%; height:6.5rem; overflow:hidden; font-size:0; background:url('/static/img/chimen-aike-logo.png') center / contain no-repeat; }
.brand small { color: var(--gray-300); letter-spacing: 0; }
.admin-sidebar nav { display: grid; gap: 1.15rem; margin-top: 1.5rem; }
.nav-group { display:grid; gap:.25rem; }
.nav-group-title { padding:.35rem .75rem; color:#a9a9a9; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.nav-item { display: flex; min-height: 2.75rem; align-items: center; gap: .8rem; padding: .65rem .75rem; color: var(--gray-300); border-radius: var(--radius); text-decoration: none; }
.nav-icon { display: block; width: 1.25rem; height: 1.25rem; flex: none; fill: currentColor; }
.nav-item span { min-width: 0; }
.admin-sidebar nav .nav-subgroup { display:grid; grid-template-columns:minmax(0,1fr); gap:.2rem; margin:.15rem 0 .3rem 1.35rem; padding-left:.65rem; border-left:1px solid #ffffff26; }
.admin-sidebar nav a.nav-subitem { display:block; width:100%; padding:.5rem .65rem; color:var(--gray-300); border-radius:.4rem; text-decoration:none; font-size:.86rem; line-height:1.35; }
.admin-sidebar nav a.nav-subitem:hover, .admin-sidebar nav a.nav-subitem.active { color:#fff; background:#ffffff12; }
.admin-sidebar nav a.nav-subitem.active { box-shadow:inset 2px 0 var(--brand-orange); }
.nav-item:hover, .nav-item.active { color: #fff; background: var(--brand-orange); }
.logout-form { margin-top: auto; }
.sidebar-account { margin-top:auto; padding-top:1.5rem; }
.sidebar-account .nav-item { border-top:1px solid #ffffff20; }
.admin-sidebar .sidebar-account + .logout-form { margin-top:.5rem; }
.admin-sidebar .sidebar-account + .logout-form .logout-button { width:100%; justify-content:flex-start; padding-left:.75rem; }
.person-avatar { display:inline-flex; align-items:center; justify-content:center; width:1.7rem; height:1.7rem; flex:none; border-radius:50%; color:#fff; }
.person-avatar svg { width:70%; height:70%; fill:currentColor; }
.avatar-orange { background:#b85200; }
.avatar-blue { background:#1565c0; }
.avatar-green { background:#2e7d32; }
.avatar-purple { background:#7040a0; }
.avatar-red { background:#c62828; }
.avatar-slate { background:#526171; }
.person-avatar-large { width:5rem; height:5rem; }
.personal-profile-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0; align-items:stretch; border:1px solid var(--gray-200); border-radius:.85rem; background:#fff; box-shadow:0 8px 28px rgb(18 18 18 / 5%); overflow:hidden; }
.personal-profile-identity { display:flex; gap:1rem; align-items:center; }
.personal-profile-identity h2 { overflow-wrap:anywhere; }
.avatar-color-field { border:0; padding:0; margin:0; min-width:0; }
.avatar-color-field legend { font-weight:600; margin-bottom:.75rem; }
.avatar-color-options { display:flex; flex-wrap:wrap; gap:.6rem; }
.avatar-color-option { display:grid; place-items:center; position:relative; width:2.75rem; height:2.75rem; margin:0; border:2px solid transparent; border-radius:50%; cursor:pointer; }
.avatar-swatch { display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; color:#fff; }
.avatar-swatch svg { width:1.15rem; height:1.15rem; fill:currentColor; visibility:hidden; }
.avatar-color-option:has(input:checked) { border-color:var(--gray-700); }
.avatar-color-option input:checked + .avatar-swatch svg { visibility:visible; }
.avatar-color-option:focus-within { outline:2px solid var(--brand-orange); outline-offset:2px; }
.profile-success { padding:1rem; border-radius:var(--radius); color:var(--success); background:var(--success-bg); }
@media(max-width:1000px) { .personal-profile-grid { grid-template-columns:1fr; } }
.admin-main { flex: 1; max-width: 80rem; padding: 2rem clamp(1rem, 4vw, 4rem); }
.page-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.page-header h1, .content-card h2 { margin: .25rem 0; color: var(--gray-900); }
.eyebrow { margin: 0; color: var(--gray-500); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.stat-card, .content-card { padding: 1.25rem; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius); box-shadow: var(--shadow); }
.stat-card { display: grid; gap: .35rem; }
.stat-card strong { color: var(--brand-orange); font-size: 2rem; }
.stat-card small, .action-card small { color: var(--gray-500); }
.content-card { display: grid; gap: 1.5rem; }
.action-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.action-card { display: grid; gap: .35rem; padding: 1rem; color: var(--gray-900); border: 1px solid var(--gray-200); border-radius: var(--radius); text-decoration: none; }
.table-wrap { overflow-x: auto; }
.table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.table-toolbar h2 { margin: 0; }
.btn-small { min-height: 2rem; padding: .375rem .625rem; font-size: .85rem; }
.action-card:hover { background: var(--brand-orange-light); border-color: var(--brand-orange); }
.action-card span { font-size: 1.5rem; }
.material-icon { display: inline-block; width: 1.25rem; height: 1.25rem; flex: none; fill: currentColor; vertical-align: middle; }
.action-card .material-icon { width: 1.75rem; height: 1.75rem; color: var(--brand-orange); }
.inline-form, .row-actions, .row-actions form { display: flex; align-items: end; gap: .5rem; flex-wrap: wrap; }
.row-actions { min-width: 22rem; }
.row-actions form { margin: 0; }
.reason-input { width: 9rem; padding: .375rem .5rem; }
.temporary-password { display: inline-block; padding: 1rem; background: var(--gray-100); font: 700 1.25rem ui-monospace, monospace; overflow-wrap: anywhere; }
.permission-list { display: grid; gap: .5rem; }
.check-row { display: flex; align-items: center; gap: .5rem; }
.row-actions select { width: 10rem; padding: .25rem; }
.row-actions .dni-input { width: 7rem; padding: .375rem .5rem; }
.row-actions input[type="date"] { width: 9rem; padding: .375rem .5rem; }
.pagination { display: flex; gap: 1rem; align-items: center; }
.audit-card { gap: 1.25rem; }
.audit-filter { display: flex; align-items: end; gap: .75rem; flex-wrap: wrap; }
.audit-filter select { min-width: 16rem; }
.audit-table td { padding: .9rem .75rem; vertical-align: top; }
.audit-table strong { color: var(--gray-900); font-weight: 600; }
.users-main { max-width: 96rem; width: 100%; }
.users-header { align-items: end; }
.page-subtitle { margin: .45rem 0 0; color: var(--gray-500); }
.users-layout { min-width: 0; }
.users-list-card { padding: 1.5rem; }
.section-heading h2 { margin: .2rem 0; font-size: 1.25rem; }
.section-heading .eyebrow { display:none; }
.page-header .eyebrow, .content-card > div:first-child > .eyebrow { display:none; }
.section-heading p:not(.eyebrow) { margin: .35rem 0 0; color: var(--gray-500); font-size: .9rem; }
.users-search label { margin-bottom: .5rem; }
.search-row { display: flex; gap: .5rem; }
.search-row input { min-width: 0; }
.users-table th { padding: .85rem .75rem; }
.users-table td { padding: 1rem .75rem; vertical-align: middle; }
.users-table td:last-child { white-space: nowrap; text-align: right; }
.users-table strong { display: block; color: var(--gray-900); }
.cell-subtext { display: block; margin-top: .25rem; color: var(--gray-500); font-size: .82rem; }
.cell-note { display: block; margin-top: .4rem; color: var(--warning); font-size: .78rem; font-weight: 600; }
.empty-state { padding: 2rem !important; color: var(--gray-500); text-align: center; }
.stacked-form { display: grid; gap: 1rem; }
.stacked-form .btn { justify-self: start; }
.field-note { margin-left: .25rem; color: var(--gray-500); font-size: .75rem; font-weight: 400; }
.form-help, .muted { margin: 0; color: var(--gray-500); font-size: .9rem; line-height: 1.5; }
.new-user-dialog { width: min(34rem, calc(100% - 2rem)); max-height: 90vh; margin: auto; padding: 1.5rem; overflow: auto; background: #fff; border: 1px solid var(--gray-200); border-top: 3px solid var(--brand-orange); border-radius: var(--radius); box-shadow: var(--shadow); }
.new-user-dialog::backdrop { background: rgb(18 18 18 / 55%); }
.dialog-header { display: flex; justify-content: space-between; align-items: start; gap: 1rem; margin-bottom: 1.5rem; }
.dialog-close { display: grid; width: 2.25rem; min-width: 2.25rem; height: 2.25rem; min-height: 2.25rem; padding: .4rem; place-items: center; flex: none; }
.dialog-close .material-icon { width: 1.2rem; height: 1.2rem; }
.dialog-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.password-dialog h2 { margin: 0 0 1rem; }
.password-dialog p { line-height: 1.5; }
.password-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 1.5rem 0; }
.password-row .temporary-password { max-width: 100%; overflow-wrap: anywhere; }
.access-list { display: grid; gap: 1rem; }
.access-item { padding: 1rem; border: 1px solid var(--gray-200); border-radius: var(--radius); }
.access-summary { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.access-summary h3 { margin: 0 0 .35rem; color: var(--gray-900); }
.access-summary .muted { margin-bottom: .5rem; }
.access-count { margin: 0; color: var(--gray-500); font-size: .85rem; }
.access-details { margin-top: 1rem; }
.access-details summary { width: fit-content; color: var(--gray-900); font-weight: 600; cursor: pointer; }
.access-details summary:hover { color: var(--brand-orange-hover); }
.access-detail-content { display: grid; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--gray-200); }
.access-detail-content .stacked-form { max-width: 42rem; }
.create-access { margin-top: 0; }
.fleet-table td { vertical-align: middle; }
.fleet-table td:last-child { white-space: nowrap; }
.fleet-page-header { gap: 1.5rem; }
.fleet-actions { justify-content: flex-end; max-width: 60rem; }
.fleet-actions .btn { min-height: 2.35rem; padding: .5rem .8rem; font-size: .88rem; }
.fleet-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; margin: 0 0 1.25rem; }
.fleet-stat-card { display: flex; min-width: 0; min-height: 5rem; align-items: center; gap: .8rem; padding: .85rem 1rem; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius); box-shadow: var(--shadow); }
.fleet-stat-icon { display: grid; width: 2.8rem; height: 2.8rem; flex: none; place-items: center; color: var(--brand-orange); background: var(--brand-orange-light); border-radius: 50%; }
.fleet-stat-icon svg { width: 1.5rem; height: 1.5rem; fill: currentColor; }
.fleet-stat-card > div { display: grid; min-width: 0; gap: .12rem; }
.fleet-stat-card strong { color: var(--gray-900); font-size: 1.55rem; line-height: 1.15; }
.fleet-stat-card > div > span { color: var(--gray-500); font-size: .82rem; }
.fleet-stat-available .fleet-stat-icon { color: var(--success); background: var(--success-bg); }
.fleet-stat-out .fleet-stat-icon { color: var(--danger); background: var(--danger-bg); }
.fleet-stat-maintenance .fleet-stat-icon { color: var(--info); background: var(--info-bg); }
.fleet-table-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.fleet-search { position: relative; display: block; width: min(22rem, 45%); margin: 0; }
.fleet-search svg { position: absolute; top: 50%; left: .8rem; width: 1.2rem; height: 1.2rem; fill: var(--gray-500); transform: translateY(-50%); pointer-events: none; }
.fleet-search input { min-height: 2.75rem; padding-left: 2.45rem; }
.fleet-owner { display: flex; align-items: center; gap: .45rem; }
.fleet-owner svg { width: 1.3rem; height: 1.3rem; flex: none; fill: var(--gray-700); }
.fleet-table thead th { white-space: nowrap; }
.fleet-table tbody tr[hidden] { display: none; }
.fleet-row-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.fleet-history { margin-top: 1.25rem; }
.header-actions, .question-actions, .template-version-nav { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.template-version-nav { margin-bottom: 1.25rem; }
.builder-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); gap: 1.25rem; align-items: start; margin-top: 1.25rem; }
.question-list { display: grid; gap: .75rem; }
.question-card { padding: 1rem; border: 1px solid var(--gray-200); border-radius: var(--radius); }
.question-card-header { display: flex; justify-content: space-between; gap: 1rem; }
.question-number { display: inline-grid; width: 1.75rem; height: 1.75rem; margin-right: .5rem; place-items: center; color: #fff; background: var(--brand-orange); border-radius: 50%; font-weight: 700; }
.question-actions form { margin: 0; }
.question-required { align-self: end; min-height: 2.75rem; margin: 0; }
.danger-zone { margin-top: .5rem; color: var(--danger); }
.preview-question { padding-bottom: 1rem; border-bottom: 1px solid var(--gray-200); }
.preview-question:last-child { padding-bottom: 0; border-bottom: 0; }
.preview-options { display: grid; gap: .4rem; margin-top: .5rem; }
.required-mark { color: var(--danger); font-size: .72rem; font-weight: 600; }
.publish-card { display: flex; justify-content: space-between; align-items: center; margin-top: 1.25rem; }
.schedule-dialog { width: min(42rem, calc(100% - 2rem)); }
.vehicle-search-box { position: relative; }
.selected-vehicles { display: flex; flex-wrap: wrap; gap: .5rem; }
.vehicle-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .6rem; color: var(--gray-900); background: var(--brand-orange-light); border: 1px solid var(--brand-orange); border-radius: var(--radius); font-size: .85rem; }
.vehicle-chip button { padding: 0; color: var(--danger); background: transparent; border: 0; font-size: .78rem; font-weight: 600; }
.user-search-box { position: relative; }
.user-search-results { position: absolute; z-index: 2; top: 100%; right: 0; left: 0; max-height: 16rem; overflow-y: auto; background: #fff; border: 1px solid var(--gray-300); border-radius: var(--radius); box-shadow: var(--shadow); }
.user-search-results:empty { display: none; }
.user-search-option { display: block; width: 100%; padding: .75rem; color: var(--gray-900); background: #fff; border: 0; border-bottom: 1px solid var(--gray-200); text-align: left; }
.user-search-option:hover, .user-search-option:focus { background: var(--brand-orange-light); }
.profile-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 1fr); gap: 1.25rem; align-items: start; }
.profile-side { display: grid; gap: 1.25rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.role-choice-list { display: grid; gap: .5rem; }
.section-divider { width: 100%; margin: .25rem 0; border: 0; border-top: 1px solid var(--gray-200); }
.profile-alert { margin: 0 0 1.25rem; padding: .8rem 1rem; color: var(--warning); background: var(--warning-bg); border-radius: var(--radius); }
.back-link { display: inline-block; margin-bottom: 1rem; font-size: .88rem; font-weight: 600; text-decoration: none; }
.review-main { width: 100%; max-width: 72rem; }
.review-layout { display: grid; gap: 1.25rem; }
.review-summary { margin-bottom: 1.25rem; }
.review-questions { display: grid; gap: 1rem; }
.review-question { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--gray-200); border-radius: var(--radius); }
.review-question legend, .review-question h3 { margin: 0 0 .75rem; color: var(--gray-900); font-size: 1rem; font-weight: 700; }
.review-question .form-help { margin: 0 0 .75rem; }
.review-question > p:last-child { margin-bottom: 0; }
.review-actions, .decision-grid { display: flex; flex-wrap: wrap; gap: .75rem; align-items: start; padding-top: 1rem; border-top: 1px solid var(--gray-200); }
.decision-grid { display: grid; grid-template-columns: auto minmax(18rem, 1fr); }
.reject-form { padding-left: 1rem; border-left: 1px solid var(--gray-200); }
.attachment-list { display: grid; gap: .5rem; margin-top: .75rem; }
.attachment-list > div { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; padding: .6rem .75rem; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: var(--radius); }
.attachment-list span { color: var(--gray-500); font-size: .8rem; }
.link-danger { margin-left: auto; padding: 0; color: var(--danger); background: transparent; border: 0; font-weight: 600; }
.notice-success, .notice-danger { margin: 0 0 1.25rem; padding: 1rem; border-radius: var(--radius); }
.notice-success { color: var(--success); background: var(--success-bg); }
.notice-danger { color: var(--danger); background: var(--danger-bg); }
.notice-danger p { margin: .5rem 0; }
.detail-list { display: grid; gap: .75rem; margin: 0; }
.detail-list div { display: grid; grid-template-columns: minmax(10rem, .5fr) 1fr; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--gray-200); }
.detail-list dt { color: var(--gray-500); font-size: .85rem; font-weight: 600; }
.detail-list dd { margin: 0; }
.vehicle-profile { max-width: 100rem; }
.vehicle-profile-header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: 1.1rem 1.25rem; color: #fff; background: var(--brand-black); border: 1px solid var(--gray-700); border-radius: var(--radius); box-shadow: var(--shadow); }
.vehicle-profile-header h1 { margin: .25rem 0; font-size: clamp(1.35rem, 2.4vw, 1.8rem); }
.vehicle-profile-header .page-subtitle { color: var(--gray-300); }
.vehicle-profile-header .eyebrow { color: var(--gray-300); }
.vehicle-status-row { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.vehicle-tabs { display: flex; gap: .25rem; margin-bottom: 1rem; padding: .35rem; overflow-x: auto; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius); }
.vehicle-tabs a, .vehicle-tabs span { flex: none; padding: .5rem .7rem; border-radius: var(--radius); font-size: .84rem; font-weight: 600; text-decoration: none; }
.vehicle-tabs a { color: var(--gray-900); }
.vehicle-tabs a:hover { color: var(--brand-orange-active); background: var(--brand-orange-light); }
.vehicle-tabs span { color: var(--gray-500); background: var(--gray-50); }
.vehicle-tabs small { display: block; margin-top: .15rem; font-size: .62rem; font-weight: 500; }
.vehicle-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.vehicle-summary-grid .stat-card { min-height: 7.25rem; padding: 1rem; box-shadow: none; }
.vehicle-summary-grid .stat-card { align-content: start; }
.vehicle-summary-grid .stat-card strong { color: var(--gray-900); font-size: 1rem; line-height: 1.35; }
.vehicle-summary-grid .summary-number { font-size: 1.5rem !important; }
.vehicle-summary-grid .status-warning, .vehicle-summary-grid .status-success { justify-self: start; margin-top: .25rem; }
.vehicle-profile-layout { grid-template-columns: minmax(0, 1.65fr) minmax(19rem, .75fr); }
.document-summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; padding: 1rem 1.25rem; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius); }
.document-summary p { margin: .45rem 0 0; color: var(--gray-500); font-size: .88rem; }
.document-summary > strong { color: var(--gray-900); font-size: 1.1rem; }
.document-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.document-card { align-content: start; gap: 1rem; box-shadow: none; }
.document-card-header { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.document-card-header h2 { margin: .2rem 0; font-size: 1.15rem; }
.document-metadata { gap: .5rem; }
.document-metadata div { grid-template-columns: 9rem 1fr; padding-bottom: .5rem; }
.document-files { display: flex; flex-wrap: wrap; gap: .5rem; }
.file-chip { display: inline-flex; flex-direction: column; gap: .15rem; max-width: 18rem; padding: .55rem .7rem; color: var(--gray-900); background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: var(--radius); text-decoration: none; }
.file-chip:hover { color: var(--brand-orange-active); background: var(--brand-orange-light); border-color: var(--brand-orange); }
.file-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-chip small { color: var(--gray-500); }
.version-history { display: grid; gap: .6rem; }
.version-history article { display: grid; gap: .35rem; padding: .75rem; background: var(--gray-50); border-left: 3px solid var(--gray-300); }
.version-history article > span { color: var(--gray-500); font-size: .82rem; }
.document-dialog { width: min(46rem, calc(100% - 2rem)); }
.alert-list { display: grid; gap: .75rem; }
.alert-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1rem; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius); }
.alert-item.alert-unread { border-left: 4px solid var(--gray-700); }
.alert-level { align-self: start; }
.alert-body { display: grid; gap: .3rem; }
.alert-body p { margin: 0; color: var(--gray-900); }
.alert-body > span:not([class]) { color: var(--gray-500); font-size: .82rem; }
.alert-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: end; }
.alert-actions form { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1100px) { .profile-layout { grid-template-columns: 1fr; } }
@media (max-width: 1000px) { .builder-layout { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .fleet-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fleet-page-header { align-items: flex-start; flex-direction: column; } .fleet-actions { justify-content: flex-start; max-width: none; } }
@media (max-width: 640px) { .users-header { align-items: start; flex-direction: column; } .users-list-card, .new-user-dialog { padding: 1rem; } .form-grid { grid-template-columns: 1fr; } .fleet-stats { grid-template-columns: 1fr 1fr; gap: .55rem; } .fleet-stat-card { gap: .55rem; padding: .7rem; } .fleet-stat-icon { width: 2.3rem; height: 2.3rem; } .fleet-stat-card strong { font-size: 1.3rem; } .fleet-stat-card > div > span { font-size: .74rem; } .fleet-table-heading { align-items: stretch; flex-direction: column; } .fleet-search { width: 100%; } }
@media (max-width: 640px) { .decision-grid { grid-template-columns: 1fr; } .reject-form { padding: 1rem 0 0; border-top: 1px solid var(--gray-200); border-left: 0; } .detail-list div { grid-template-columns: 1fr; gap: .25rem; } }
@media (max-width: 1100px) { .vehicle-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vehicle-profile-layout { grid-template-columns: 1fr; } }
@media (max-width: 1000px) { .document-list { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .alert-item { grid-template-columns: 1fr; } .alert-actions { justify-content: start; } }
@media (max-width: 640px) { .vehicle-summary-grid { grid-template-columns: 1fr; } .vehicle-profile-header { padding: 1rem; } }
@media (max-width: 760px) { .admin-shell { display: block; } .admin-sidebar { width: auto; } .logout-form { margin-top: 1rem; } .stats-grid, .action-grid { grid-template-columns: 1fr; } }

.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; }
.photo-card { overflow:hidden; border:1px solid var(--gray-200); border-radius:var(--radius); background:#fff; }
.photo-card > a { display:block; aspect-ratio:4/3; background:#e9edf1; }
.photo-card img { display:block; width:100%; height:100%; object-fit:cover; }
.photo-card-body { padding:16px; }
.photo-card-body h3 { margin:10px 0 8px; }
.photo-card-body p { margin:8px 0; }
.incident-list { display:grid; gap:18px; margin-top:18px; }
.incident-card { border-left:4px solid var(--brand-orange); }
.incident-photo-grid { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); margin:18px 0; }
.incident-photo { display:block; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius); background:var(--gray-100); }
.incident-photo img { width:100%; height:100%; object-fit:cover; }
.incident-actions { display:grid; gap:10px; }
.inbox-main { max-width: 88rem; padding-top: clamp(1.5rem, 4vh, 3rem); }
.inbox-header { margin-bottom: 1.25rem; }
.inbox-header h1 { margin: .3rem 0; font-size: clamp(1.65rem, 2.2vw, 2rem); }
.inbox-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.inbox-summary article { display:flex; align-items:center; gap:.8rem; min-height:4.5rem; padding:.85rem 1rem; background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius); }
.inbox-summary article > div { display:flex; align-items:baseline; gap:.5rem; }
.inbox-summary strong { color:var(--gray-900); font-size:1.35rem; }
.inbox-summary article > div > span { color:var(--gray-500); font-size:.86rem; }
.inbox-summary-icon { display:grid; width:2.25rem; height:2.25rem; flex:none; place-items:center; color:var(--gray-700); background:var(--gray-100); border-radius:50%; }
.inbox-summary-icon svg { width:1.25rem; height:1.25rem; fill:currentColor; }
.personal-profile-main { max-width:none; min-width:0; }
.personal-profile-main .page-header { margin-bottom:1.5rem; }
.personal-profile-grid > .content-card { border:0; border-radius:0; box-shadow:none; padding:2rem; gap:1.75rem; align-content:start; min-width:0; }
.personal-profile-grid > .personal-password-card { border-left:1px solid var(--gray-200); }
.personal-profile-identity { padding-bottom:1.6rem; border-bottom:1px solid var(--gray-200); }
.personal-profile-identity .person-avatar-large { width:4.5rem; height:4.5rem; box-shadow:0 0 0 5px var(--gray-50); }
.personal-profile-identity h2 { font-size:1.25rem; line-height:1.4; margin:0 0 .25rem; }
.personal-profile-grid .stacked-form { gap:1.5rem; }
.personal-profile-grid label, .avatar-color-field legend { font-size:.85rem; font-weight:600; }
.personal-profile-grid input:not([type=radio]) { min-height:2.85rem; }
.personal-profile-grid .form-help { margin-top:.45rem; font-size:.8rem; }
.personal-security-heading { display:flex; align-items:center; gap:.75rem; min-height:3rem; }
.personal-security-heading h2 { font-size:1.15rem; }
.personal-security-icon { display:grid; place-items:center; width:2.65rem; height:2.65rem; flex:none; border-radius:.75rem; background:var(--gray-50); color:var(--gray-700); }
.personal-form-footer { display:flex; justify-content:flex-end; border-top:1px solid var(--gray-200); padding-top:1.25rem; margin-top:.25rem; }
.personal-form-footer .btn { font-size:.875rem; }
@media(max-width:1000px) { .personal-profile-grid > .personal-password-card { border-left:0; border-top:1px solid var(--gray-200); } }
@media(max-width:540px) { .personal-profile-grid > .content-card { padding:1.25rem; } .personal-profile-identity { gap:.75rem; } .personal-profile-identity h2 { font-size:1.1rem; } .avatar-color-options { gap:.25rem; } }
.logout-button { gap:.65rem; }
.compact-profile-card.profile-settings-card { display:grid; grid-template-columns:minmax(12rem,.8fr) minmax(20rem,1.3fr) minmax(17rem,1fr); align-items:start; gap:clamp(1.25rem,2vw,2rem); width:100%; max-width:none; margin:0; padding:clamp(1.25rem,2vw,2rem); }
.profile-settings-card .compact-profile-identity { padding:1rem 0; }
.profile-settings-card > .stacked-form { min-width:0; padding-left:clamp(1.25rem,2vw,2rem); border-left:1px solid var(--gray-200); }
.profile-settings-card .profile-security-section { min-width:0; margin:0; padding:0 0 0 clamp(1.25rem,2vw,2rem); border-top:0; border-left:1px solid var(--gray-200); }
.profile-settings-card .profile-sessions-row { flex-direction:column; align-items:start; }
.profile-settings-card .compact-profile-save { width:auto; justify-self:end; }
@media(max-width:1350px) {
  .compact-profile-card.profile-settings-card { grid-template-columns:minmax(12rem,.7fr) minmax(0,1.3fr); }
  .profile-settings-card .profile-security-section { grid-column:2; border-top:1px solid var(--gray-200); padding-top:1.25rem; }
}
@media(max-width:950px) {
  .compact-profile-card.profile-settings-card { grid-template-columns:minmax(0,1fr); }
  .profile-settings-card > .stacked-form { border-left:0; padding-left:0; }
  .profile-settings-card .profile-security-section { grid-column:auto; border-left:0; padding-left:0; }
}
.profile-data-section h3, .profile-security-section h3 { margin:0 0 1rem; font-size:1rem; }
.profile-readonly-data { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:0 0 .75rem; padding:1rem; background:var(--gray-50); border-radius:var(--radius); }
.profile-readonly-data > div:first-child { grid-column:1/-1; }
.profile-readonly-data dt { font-size:.8rem; color:var(--gray-500); margin-bottom:.25rem; }
.profile-readonly-data dd { margin:0; font-size:.95rem; overflow-wrap:anywhere; }
.profile-security-section { margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--gray-200); }
.profile-security-section .compact-password-row { border:0; margin:0; padding:0 0 1rem; }
.profile-sessions-row { display:flex; align-items:center; gap:1rem; border-top:1px solid var(--gray-200); padding-top:1rem; }
.profile-sessions-row strong { font-size:.9rem; }
.profile-sessions-row .form-help { font-size:.8rem; margin-top:.3rem; }
.profile-sessions-row button { flex:none; }
@media(max-width:540px) { .profile-sessions-row { align-items:start; flex-direction:column; } }
.compact-profile-card { max-width:30rem; margin:0 auto; padding:2rem; background:#fff; border:1px solid var(--gray-200); border-radius:1rem; box-shadow:0 10px 30px rgb(18 18 18 / 5%); }
.compact-profile-identity { display:grid; justify-items:center; gap:1rem; text-align:center; padding:.5rem 0 1.75rem; }
.compact-profile-identity h2 { margin:0 0 .4rem; font-size:1.3rem; overflow-wrap:anywhere; }
.profile-avatar-button { position:relative; display:block; padding:0; border:0; border-radius:50%; background:transparent; }
.profile-avatar-button .person-avatar-large { width:6rem; height:6rem; box-shadow:0 0 0 6px var(--gray-50); }
.profile-avatar-edit { position:absolute; bottom:0; right:0; display:grid; place-items:center; width:1.8rem; height:1.8rem; color:var(--gray-700); background:#fff; border:1px solid var(--gray-200); border-radius:50%; }
.profile-avatar-edit svg { width:1rem; height:1rem; }
.compact-profile-card .avatar-color-field { text-align:center; padding:.75rem 0; }
.compact-profile-card .avatar-color-options { justify-content:center; gap:.3rem; }
.compact-profile-card .stacked-form { gap:1rem; }
.compact-profile-card .compact-profile-save { width:100%; }
.compact-password-row { display:flex; align-items:center; gap:.65rem; margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--gray-200); font-size:.9rem; }
.compact-password-row > button { margin-left:auto; }
.profile-password-dialog .personal-security-heading { margin-bottom:1.5rem; }
.profile-password-dialog .form-help { margin-top:.4rem; }
.profile-password-dialog .dialog-actions { justify-content:flex-end; margin-top:.5rem; }
.profile-password-dialog::backdrop { background:rgb(18 18 18 / 42%); backdrop-filter:blur(3px); }
@media(max-width:540px) { .compact-profile-card { padding:1.25rem; } }
.logout-button .material-icon { width:1.15rem; height:1.15rem; }
.inbox-panel { gap:1rem; }
.inbox-panel > .section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.inbox-list { display:grid; }
.inbox-item { display:grid; grid-template-columns:7.5rem minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1rem .25rem; border-top:1px solid var(--gray-200); }
.inbox-item:first-child { border-top:0; }
.inbox-item.priority-0 { border-left:3px solid var(--danger); padding-left:.85rem; }
.inbox-item.priority-1 { border-left:3px solid var(--warning); padding-left:.85rem; }
.inbox-item.priority-2 { border-left:3px solid var(--info); padding-left:.85rem; }
.inbox-kind { width:fit-content; padding:.25rem .5rem; border-radius:999px; font-size:.75rem; font-weight:600; }
.kind-review { color:var(--info); background:var(--info-bg); }
.kind-document { color:var(--warning); background:var(--warning-bg); }
.kind-maintenance { color:var(--gray-700); background:var(--gray-100); }
.inbox-item-content h3 { margin:0; color:var(--gray-900); font-size:.98rem; }
.inbox-item-content p { margin:.25rem 0 0; }
.inbox-vehicle { font-size:.86rem; font-weight:600; }
.inbox-vehicle span,.inbox-detail { color:var(--gray-500); font-weight:400; }
.inbox-detail { font-size:.82rem; }
.inbox-action { justify-self:end; white-space:nowrap; }
@media (max-width:760px) { .inbox-item { grid-template-columns:1fr auto; gap:.55rem .75rem; } .inbox-kind { grid-column:1/-1; } .inbox-item-content { min-width:0; } }
@media (max-width:540px) { .inbox-summary { grid-template-columns:1fr; gap:.5rem; } .inbox-summary article { min-height:3.75rem; } .inbox-item { grid-template-columns:1fr; } .inbox-action { justify-self:start; } .inbox-panel > .section-heading { align-items:start; flex-direction:column; } }
.error-page { min-height:100vh; background:var(--gray-50); }
.error-backdrop { display:grid; min-height:100vh; padding:1rem; place-items:center; background:rgb(18 18 18 / 48%); }
.error-dialog { width:min(36rem,100%); padding:2rem; background:#fff; border:1px solid var(--gray-200); border-top:4px solid var(--brand-orange); border-radius:var(--radius); box-shadow:0 18px 55px rgb(18 18 18 / 24%); }
.action-error-layout { display:grid; grid-template-columns:minmax(0,1fr) 8rem; align-items:center; gap:1.5rem; }
.error-dialog h1 { margin:.35rem 0 .75rem; color:var(--gray-900); font-size:1.45rem; }
.error-dialog > p:not(.eyebrow) { margin:0 0 1.5rem; color:var(--gray-700); line-height:1.55; }
.action-error-content { display:flex; flex-direction:column; align-items:center; text-align:center; }
.action-error-icon { display:grid; width:5.5rem; height:5.5rem; margin:0 auto; place-items:center; color:var(--warning); background:var(--warning-bg); border-radius:50%; animation:error-icon-enter .48s cubic-bezier(.2,.8,.25,1.2) both; }
.action-error-icon svg { width:3.1rem; height:3.1rem; fill:currentColor; }
.action-error-icon[data-kind="permission"], .action-error-icon[data-kind="error"] { color:var(--danger); background:var(--danger-bg); }
.action-error-icon[data-kind="connection"] { color:var(--info); background:var(--info-bg); }
@keyframes error-icon-enter { 0% { opacity:.5; transform:scale(.8) rotate(-7deg); } 70% { opacity:1; transform:scale(1.06) rotate(2deg); } 100% { transform:scale(1) rotate(0); } }
.action-error-dialog { width:min(36rem,calc(100% - 2rem)); }
.action-error-dialog::backdrop { background:rgb(18 18 18 / 42%); backdrop-filter:blur(3px); }
.action-error-dialog h2 { margin:.35rem 0 .5rem; color:var(--gray-900); }
.action-error-copy > p:not(.eyebrow) { margin:0 0 1rem; color:var(--gray-700); line-height:1.5; }
@media (max-width:480px) { .error-dialog { padding:1.35rem; } .action-error-layout { grid-template-columns:minmax(0,1fr) 4.5rem; gap:.75rem; } .action-error-icon { width:4.5rem; height:4.5rem; } .action-error-icon svg { width:2.7rem; height:2.7rem; } }

