:root { color-scheme:light; --grf-yellow:#eeb50c; --grf-yellow-hover:#d9a500; --grf-yellow-soft:#fff7db; --grf-carbon:#262424; --grf-carbon-soft:#323030; --grf-gray:#504f4e; --grf-gray-light:#6f6e6c; --grf-white:#fff; --background:#f6f7f9; --surface:#fff; --surface-secondary:#f9fafb; --border:#e3e6ea; --text-primary:#202124; --text-secondary:#667085; --success:#249b62; --success-soft:#eaf7f0; --warning:#d99b28; --warning-soft:#fff5df; --danger:#d64d4d; --danger-soft:#fdeded; --info:#3978c6; --info-soft:#ebf3fc; --accent:var(--grf-yellow); --ink:var(--text-primary); --muted:var(--text-secondary); --line:var(--border); --canvas:var(--background); --sidebar:var(--grf-carbon); --positive:var(--success); --content-max:1600px; --topbar-height:60px; --sidebar-width:240px; --sidebar-compact:68px; }
* { box-sizing:border-box; }
html { min-width:320px; background:var(--background); }
body { margin:0; color:var(--ink); background:var(--canvas); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:14px; line-height:1.45; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; }
.skip-link { position:fixed; z-index:200; top:8px; left:8px; padding:8px 12px; color:var(--grf-carbon); background:var(--grf-yellow); border-radius:6px; transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:var(--sidebar-width) minmax(0,1fr); transition:grid-template-columns .2s ease; }
.app-shell.sidebar-collapsed { grid-template-columns:var(--sidebar-compact) minmax(0,1fr); }
.auth-shell { display:block; }
.app-workspace { min-width:0; }
.sidebar { position:sticky; z-index:50; top:0; display:flex; overflow:hidden; height:100vh; flex-direction:column; padding:14px 12px; color:#f3f4f6; background:var(--sidebar); }
.sidebar-header { display:flex; min-height:48px; align-items:center; justify-content:space-between; gap:8px; }
.brand { display:flex; min-width:0; align-items:center; gap:10px; color:#fff; text-decoration:none; }
.brand-copy { display:block; overflow:hidden; min-width:0; white-space:nowrap; }
.brand-copy strong,.brand-copy small { display:block; }
.brand-copy strong { font-size:15px; letter-spacing:-.01em; }
.brand-copy small { color:#b7b8bb; font-size:11px; font-weight:500; }
.brand-mark { display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; color:var(--grf-carbon); background:var(--grf-yellow); border-radius:8px; font-weight:800; }
.icon-button { display:inline-grid; width:36px; height:36px; flex:0 0 36px; place-items:center; padding:0; color:inherit; background:transparent; border:0; border-radius:7px; cursor:pointer; }
.icon-button:hover { background:rgba(255,255,255,.09); }
.icon-button svg,.nav-icon,.global-search svg,.quick-create svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sidebar-nav { display:grid; overflow-y:auto; gap:18px; margin-top:18px; padding-right:2px; scrollbar-width:thin; }
.nav-section { display:grid; gap:3px; }
.nav-section-title { margin:0 10px 5px; color:#85878b; font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; white-space:nowrap; }
.nav-link { position:relative; display:flex; min-height:38px; align-items:center; gap:11px; padding:8px 10px; color:#c9cacc; border-radius:7px; text-decoration:none; white-space:nowrap; }
.nav-link:hover { color:#fff; background:rgba(255,255,255,.07); }
.nav-link.active { color:#fff; background:var(--grf-carbon-soft); }
.nav-link.active::after { position:absolute; top:8px; right:0; bottom:8px; width:3px; background:var(--grf-yellow); border-radius:3px 0 0 3px; content:""; }
.nav-icon { flex:0 0 19px; }
.nav-label { overflow:hidden; text-overflow:ellipsis; }
.sidebar-user { display:flex; align-items:center; gap:10px; margin-top:auto; padding:14px 8px 2px; border-top:1px solid rgba(255,255,255,.1); }
.sidebar-user-copy { display:block; overflow:hidden; min-width:0; white-space:nowrap; }
.sidebar-user-copy strong,.sidebar-user-copy small { display:block; overflow:hidden; text-overflow:ellipsis; }
.sidebar-user-copy small { color:#aeb0b3; }
.user-avatar { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; color:var(--grf-carbon); background:var(--grf-yellow-soft); border:1px solid #ebd98f; border-radius:50%; font-weight:750; }
.app-shell.sidebar-collapsed .sidebar { padding-inline:10px; }
.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .nav-section-title,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .sidebar-user-copy { display:none; }
.app-shell.sidebar-collapsed .sidebar-header { justify-content:center; }
.app-shell.sidebar-collapsed .sidebar-collapse { position:absolute; top:61px; }
.app-shell.sidebar-collapsed .sidebar-nav { margin-top:58px; }
.app-shell.sidebar-collapsed .nav-link,.app-shell.sidebar-collapsed .sidebar-user { justify-content:center; padding-inline:8px; }
.app-shell.sidebar-collapsed .nav-link.active::after { top:7px; bottom:7px; }
.app-shell.sidebar-collapsed .sidebar-collapse svg { transform:rotate(180deg); }
.sidebar-backdrop { display:none; }
.topbar { position:sticky; z-index:40; top:0; display:grid; min-height:var(--topbar-height); grid-template-columns:minmax(140px,.7fr) minmax(260px,1.7fr) auto; align-items:center; gap:14px; padding:8px 24px; background:rgba(255,255,255,.97); border-bottom:1px solid var(--border); box-shadow:0 1px 2px rgba(16,24,40,.03); backdrop-filter:blur(10px); }
.topbar-start,.topbar-actions { display:flex; min-width:0; align-items:center; gap:10px; }
.topbar-actions { justify-content:flex-end; }
.mobile-menu-button { display:none; color:var(--text-primary); }
.breadcrumb { display:flex; min-width:0; align-items:center; gap:7px; color:var(--text-secondary); font-size:13px; white-space:nowrap; }
.breadcrumb a { text-decoration:none; }
.breadcrumb strong { overflow:hidden; color:var(--text-primary); font-weight:600; text-overflow:ellipsis; }
.global-search { position:relative; width:100%; }
.global-search svg { position:absolute; top:50%; left:12px; color:var(--text-secondary); transform:translateY(-50%); pointer-events:none; }
.global-search input { height:38px; min-height:38px; padding:7px 58px 7px 39px; background:var(--surface-secondary); border-color:var(--border); border-radius:7px; }
.global-search kbd { position:absolute; top:50%; right:10px; padding:2px 6px; color:#8a8f98; background:#fff; border:1px solid var(--border); border-radius:4px; font:11px/1.4 inherit; transform:translateY(-50%); pointer-events:none; }
.topbar details { position:relative; margin:0; }
.topbar summary { color:inherit; list-style:none; cursor:pointer; }
.topbar summary::-webkit-details-marker { display:none; }
.quick-create summary { gap:6px; }
.quick-create summary svg { width:16px; height:16px; }
.topbar-menu { position:absolute; z-index:80; top:calc(100% + 9px); right:0; display:grid; width:220px; overflow:hidden; padding:6px; background:var(--surface); border:1px solid var(--border); border-radius:8px; box-shadow:0 12px 30px rgba(16,24,40,.14); }
.topbar-menu a,.topbar-menu button { display:block; width:100%; padding:9px 10px; color:var(--text-primary); background:transparent; border:0; border-radius:6px; text-align:left; text-decoration:none; font:inherit; cursor:pointer; }
.topbar-menu a:hover,.topbar-menu button:hover { background:var(--surface-secondary); }
.company-pill { max-width:210px; overflow:hidden; padding:7px 10px; color:var(--text-secondary); background:var(--surface-secondary); border:1px solid var(--border); border-radius:7px; text-overflow:ellipsis; white-space:nowrap; }
.user-menu summary { display:grid; place-items:center; }
.user-menu-panel { width:240px; }
.user-menu-identity { display:grid; gap:2px; padding:9px 10px; border-bottom:1px solid var(--border); }
.user-menu-identity span { color:var(--text-secondary); font-size:12px; }
.logout-button { color:var(--danger)!important; }
.button-row { display:flex; align-items:center; justify-content:flex-end; gap:9px; flex-wrap:wrap; }
.button-row form { margin:0; }
.main-content { min-width:0; padding:24px 28px 36px; }
.page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin:0 auto 16px; max-width:var(--content-max); }
h1,h2,p { margin-top:0; }
h1,h2 { color:var(--text-primary); font-weight:600; }
h1 { margin-bottom:6px; font-size:24px; line-height:1.3; letter-spacing:-.025em; }
h2 { font-size:16px; line-height:1.35; }
.page-header p,.empty-state p { color:var(--muted); }
.panel { max-width:var(--content-max); margin:0 auto 16px; padding:18px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.table-panel { padding:0; overflow:hidden; }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th,td { height:42px; padding:9px 12px; text-align:left; border-bottom:1px solid var(--line); font-size:13px; }
th { position:relative; color:var(--muted); font-weight:600; background:var(--surface-secondary); }
tbody tr:last-child td { border-bottom:0; }
tbody tr:hover { background:#fbfcfd; }
.number { text-align:right; font-variant-numeric:tabular-nums; }
.status { display:inline-block; padding:5px 8px; background:#fff5cf; border-radius:999px; white-space:nowrap; }
.purchase-status-paid { color:#17623a; background:var(--success-soft); font-weight:700; }
.purchase-status-pending { color:#922b2b; background:var(--danger-soft); font-weight:700; }
.empty-state { padding:40px 20px; text-align:center; }
.primary-button,.secondary-button { display:inline-flex; min-height:38px; align-items:center; justify-content:center; padding:7px 13px; border-radius:7px; text-decoration:none; font:inherit; font-weight:600; cursor:pointer; }
.primary-button { color:#181818; background:var(--accent); border:1px solid var(--accent); }
.primary-button:hover { background:var(--grf-yellow-hover); border-color:var(--grf-yellow-hover); }
.primary-button:disabled { opacity:.5; cursor:not-allowed; }
.secondary-button { color:var(--ink); background:var(--surface); border:1px solid var(--line); }
.secondary-button:hover { background:var(--surface-secondary); border-color:#cfd3d8; }
.secondary-button:disabled { opacity:.5; cursor:not-allowed; }
.service-form { max-width:var(--content-max); margin:0 auto; }
.form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.form-grid .span-2 { grid-column:span 2; }
.fine-document-row { align-items:end; padding:14px 0; border-top:1px solid var(--border); }
.fine-document-row:first-child { padding-top:0; border-top:0; }
.fine-document-row + .fine-document-row { margin-top:2px; }
label { display:block; margin-bottom:6px; color:var(--muted); }
.field-label { display:block; margin-bottom:6px; color:var(--muted); }
input,select,textarea { width:100%; min-height:38px; padding:7px 9px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); font:inherit; }
input:focus,select:focus,textarea:focus { border-color:#b78700; outline:3px solid rgba(238,181,12,.16); }
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid rgba(57,120,198,.28); outline-offset:2px; }
input[readonly] { background:#f5f7f9; }
select:disabled { color:var(--ink); background:#f5f7f9; opacity:1; }
.readonly-summary { min-height:42px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#f5f7f9; }
.location-input-wrap { position:relative; }
.location-suggestions { position:absolute; z-index:20; top:calc(100% + 4px); right:0; left:0; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:var(--surface); box-shadow:0 10px 28px rgba(25,31,38,.15); }
.location-suggestion { display:block; width:100%; min-height:42px; padding:9px 11px; color:var(--ink); border:0; border-bottom:1px solid var(--line); background:var(--surface); text-align:left; font:inherit; cursor:pointer; }
.location-suggestion:hover,.location-suggestion:focus { background:#f7f8fa; }
.errorlist,.error-message { color:#b52b2b; }
.message-stack { max-width:var(--content-max); margin:0 auto 16px; }
.message { padding:11px 13px; border-radius:9px; background:#e9f7ef; color:#17673f; }
.message.warning { background:#fff5cf; color:#6b5100; }
.message.error { background:#fdeaea; color:#9b2525; }
.alert-panel { max-width:var(--content-max); margin:0 auto 16px; padding:16px 18px; background:var(--warning-soft); border:1px solid #eadb9e; border-radius:8px; }
.alert-panel h2 { margin-bottom:10px; }
.alert-panel p { margin:6px 0; }
.alert-panel a { text-decoration:none; }
.alert-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:8px 0; border-top:1px solid #eadb9e; }
.alert-row:first-of-type { border-top:0; }
.alert-actions { display:flex; gap:7px; flex:0 0 auto; }
.compact { min-height:34px; padding:6px 10px; font-size:.92rem; }
.alert-actions form { margin:0; }
.form-actions { display:flex; justify-content:flex-end; gap:10px; max-width:var(--content-max); margin:0 auto 30px; }
.detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; max-width:var(--content-max); margin:0 auto; }
.detail-grid .panel { width:100%; margin:0; }
dl { display:grid; grid-template-columns:1fr 1.4fr; gap:10px 12px; }
dt { color:var(--muted); }
dd { margin:0; }
.positive { color:var(--positive); font-weight:700; }
.action-panel { max-width:760px; margin-top:18px; }
.full-button { width:100%; }
.danger-button { min-height:38px; padding:7px 13px; color:var(--danger); background:#fff; border:1px solid #e5bcbc; border-radius:7px; font:inherit; font-weight:600; cursor:pointer; }
.danger-button:disabled { opacity:.5; cursor:not-allowed; }

/* Contabilidad · fase 2 */
.accounting-workflow-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0 22px; }
.accounting-workflow-strip a { display:flex; align-items:center; justify-content:space-between; min-height:72px; padding:16px 20px; color:var(--ink); text-decoration:none; background:linear-gradient(135deg,#fff,#f8fafc); border:1px solid var(--line); border-radius:14px; box-shadow:0 8px 25px rgba(15,23,42,.04); }
.accounting-workflow-strip a:hover { border-color:#b9c4d1; transform:translateY(-1px); }
.accounting-workflow-strip span { color:var(--muted); font-size:.86rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.accounting-workflow-strip strong { font-size:1.8rem; }
.accounting-primary-card { background:linear-gradient(145deg,#172033,#253653); color:#fff; border-color:#172033; }
.accounting-primary-card p { color:#dce5f1; }
.accounting-activation-box { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr); gap:24px; align-items:start; padding:20px; margin-top:18px; background:#f8fafc; border:1px solid var(--line); border-radius:12px; }
.accounting-activation-box p { margin:4px 0 0; color:var(--muted); }
.accounting-activation-box form p { margin:0 0 10px; }
.accounting-activation-box input[type="text"] { width:100%; }
.accounting-filter-panel { margin-bottom:16px; }
.accounting-entry-filters { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)) auto; gap:12px; align-items:end; }
.accounting-entry-filters p { display:grid; gap:5px; margin:0; }
.accounting-entry-filters label { font-size:.82rem; font-weight:700; color:var(--muted); }
.accounting-entry-filters .form-actions { margin:0; flex-wrap:nowrap; }
.table-secondary { display:block; margin-top:3px; color:var(--muted); font-size:.78rem; font-weight:400; }
.status-draft { color:#475569; background:#e8edf3; }
.status-ready { color:#8a5800; background:#fff0bd; }
.status-posted { color:#166534; background:#dcfce7; }
.compact-safety { margin-bottom:16px; }
.accounting-entry-form { display:grid; gap:16px; }
.accounting-entry-header-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 18px; }
.accounting-entry-header-grid p { display:grid; align-content:start; gap:5px; margin:0; }
.accounting-entry-header-grid label { font-weight:700; font-size:.84rem; color:var(--muted); }
.accounting-entry-header-grid small { color:var(--muted); }
.accounting-entry-lines-panel { overflow:visible; }
.accounting-entry-lines-table select { min-width:210px; }
.accounting-entry-lines-table input[type="text"] { min-width:210px; }
.accounting-entry-lines-table input[type="number"] { min-width:110px; text-align:right; }
.accounting-entry-lines-table tfoot th { border-top:2px solid #cbd5e1; }
.entry-line-delete { min-width:75px; text-align:center; }
.entry-line-delete label { font-size:.78rem; color:var(--muted); }
.icon-button { width:32px; height:32px; padding:0; border:1px solid var(--line); border-radius:8px; color:var(--danger); background:#fff; font-size:1.25rem; cursor:pointer; }
.balance-ok { color:#166534; font-weight:800; }
.balance-pending { color:#9a6700; font-weight:800; }
.accounting-sticky-actions { position:sticky; bottom:12px; z-index:4; justify-content:flex-end; padding:12px; background:rgba(248,250,252,.94); border:1px solid var(--line); border-radius:12px; backdrop-filter:blur(8px); }
.accounting-entry-detail-header .header-actions { display:flex; gap:9px; flex-wrap:wrap; align-items:center; }
.accounting-entry-detail-header .header-actions form { margin:0; }
.integrity-banner { margin-bottom:16px; padding:16px 18px; border:1px solid; border-radius:12px; }
.integrity-banner p { margin:4px 0 8px; }
.integrity-banner code { overflow-wrap:anywhere; font-size:.75rem; }
.integrity-ok { color:#14532d; background:#f0fdf4; border-color:#86efac; }
.integrity-error { color:#7f1d1d; background:#fef2f2; border-color:#fca5a5; }
.accounting-entry-meta-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.accounting-entry-meta-grid article { display:grid; gap:4px; }
.accounting-entry-meta-grid span,.accounting-entry-meta-grid small { color:var(--muted); }
.accounting-entry-meta-grid strong { font-size:1.05rem; }
.accounting-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
.action-panel h2 { margin-top:0; }
.action-panel textarea { width:100%; }
.action-panel dl { display:grid; grid-template-columns:auto 1fr; gap:7px 14px; }
.action-panel dt { color:var(--muted); }
.action-panel dd { margin:0; font-weight:700; }
.accounting-reversal-panel,.accounting-audit-panel { margin-top:16px; }
.accounting-reversal-form { display:grid; grid-template-columns:repeat(2,minmax(160px,1fr)); gap:12px 18px; align-items:end; }
.accounting-reversal-form p { display:grid; gap:5px; margin:0; }
.accounting-reversal-form p:nth-child(3) { grid-column:1 / -1; }
.accounting-reversal-form textarea { width:100%; }
.accounting-event-list { list-style:none; margin:0; padding:0; }
.accounting-event-list li { position:relative; display:grid; grid-template-columns:18px 1fr; gap:10px; padding:0 0 18px; }
.accounting-event-list li:not(:last-child)::before { content:""; position:absolute; left:5px; top:11px; bottom:0; width:2px; background:#dbe3ec; }
.event-marker { position:relative; z-index:1; width:12px; height:12px; margin-top:4px; border:3px solid #fff; border-radius:50%; background:#526a8b; box-shadow:0 0 0 1px #9aa9bb; }
.accounting-event-list p { margin:3px 0; color:var(--muted); font-size:.84rem; }
.accounting-event-list code { font-size:.73rem; }
@media (max-width:900px) {
  .accounting-entry-filters,.accounting-entry-header-grid,.accounting-entry-meta-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .accounting-entry-filters .form-actions { grid-column:1 / -1; }
  .accounting-activation-box { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .accounting-workflow-strip,.accounting-entry-header-grid,.accounting-entry-meta-grid,.accounting-action-grid,.accounting-reversal-form { grid-template-columns:1fr; }
  .accounting-entry-filters { grid-template-columns:1fr; }
  .accounting-reversal-form p:nth-child(3) { grid-column:auto; }
}
details { margin-top:12px; }
summary { color:#b52b2b; cursor:pointer; }
.history-list { display:grid; gap:12px; padding-left:22px; }
.history-list span { display:block; color:var(--muted); }
.history-list p { margin:4px 0 0; }
.muted { color:var(--muted); }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; max-width:var(--content-max); margin:0 auto; }
.catalog-card { display:block; padding:18px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.04); text-decoration:none; }
.catalog-card:hover { border-color:#c3c8cf; box-shadow:0 3px 10px rgba(16,24,40,.07); transform:translateY(-1px); }
.catalog-card h2 { margin-bottom:8px; }
.catalog-card span { color:var(--muted); }
.transport-tools { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; max-width:var(--content-max); margin:0 auto 16px; }
.transport-tools a { display:flex; min-height:82px; flex-direction:column; justify-content:center; padding:14px 16px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.04); text-decoration:none; }
.transport-tools a:hover { border-color:#b6bdc5; }
.transport-tools span { margin-top:4px; color:var(--muted); font-size:.9rem; }
.transport-list-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 18px; }
.transport-list-controls p { margin:0; color:var(--muted); }
.transport-list-controls p strong { color:var(--ink); }
.transport-filters { flex-shrink:0; }
.pagination { display:flex; align-items:center; justify-content:center; gap:14px; padding:14px 18px; border-top:1px solid var(--line); }
.pagination span { color:var(--muted); }
.transport-search-panel { padding:14px 18px; }
.transport-search-form { display:grid; grid-template-columns:repeat(3,minmax(160px,1fr)) auto; align-items:end; gap:12px; }
.transport-search-form label { display:block; margin-bottom:5px; color:var(--muted); font-size:.9rem; }
.transport-search-form input,.transport-search-form select { width:100%; }
.transport-search-actions { display:flex; gap:8px; }
.solred-search-form { display:grid; grid-template-columns:repeat(4,minmax(140px,1fr)) auto; align-items:end; gap:12px; }
.solred-search-form label { display:block; margin-bottom:5px; color:var(--muted); font-size:.9rem; }
.solred-search-form input,.solred-search-form select { width:100%; }
.solred-summary { margin-bottom:16px; }
.solred-summary .panel { margin-bottom:0; }
.solred-summary h2 { color:var(--muted); font-size:1rem; }
.solred-summary .metric-value { margin:0; font-size:1.8rem; font-weight:700; }
.solred-summary .metric-caption { margin:3px 0 10px; color:var(--muted); font-size:.88rem; }
.summary-table-scroll { overflow-x:auto; }
.solred-summary-table { margin-top:12px; font-size:.9rem; }
.solred-summary-table th,.solred-summary-table td { padding:8px 7px; }
.solred-summary-table th:first-child,.solred-summary-table td:first-child { padding-left:0; }
.solred-summary-table th:last-child,.solred-summary-table td:last-child { padding-right:0; }
.solred-summary-table thead th { background:transparent; }
.horizontal-table-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 15px 8px; background:#f8f9fa; }
.horizontal-table-controls span { color:var(--muted); font-size:.9rem; }
.table-scroll-top { height:18px; overflow-x:scroll; overflow-y:hidden; background:#f8f9fa; border-bottom:1px solid var(--line); scrollbar-color:#89929d #e2e6ea; }
.table-scroll-top>div { height:1px; }
.solred-operations-table { min-width:1900px; font-size:.9rem; }
.solred-operations-table th,.solred-operations-table td { white-space:nowrap; }
.solred-operations-table td:last-child { min-width:180px; white-space:normal; }
.solred-import-actions { justify-content:flex-start; margin-top:8px; }
.bulk-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 15px; border-bottom:1px solid var(--line); background:#f8f9fa; }
.bulk-toolbar label { display:flex; align-items:center; gap:7px; }
.bulk-toolbar input,.selection-cell input { width:auto; min-height:auto; }
.selection-cell { width:82px; text-align:center; }
.narrow-panel { max-width:680px; }
.inline-actions { margin-top:12px; }
.login-main { grid-column:1/-1; display:grid; min-height:100vh; place-items:center; padding:20px; }
.login-card { width:min(100%,390px); padding:26px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 10px 30px rgba(16,24,40,.08); }
.login-logo { display:flex; align-items:center; gap:12px; margin-bottom:26px; }
.login-logo h1,.login-logo p { margin:0; }
.login-logo p { color:var(--muted); }
.stack-form { display:grid; min-width:0; gap:10px; }
.stack-form>* { min-width:0; }
.stack-form>.panel,.stack-form>.form-actions { width:100%; }
.stack-form .primary-button { margin-top:8px; }
.document-links { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.document-links li { display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid var(--line); }
.document-links li:last-child { border-bottom:0; }
.document-links span { color:var(--muted); }
.choice-list ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.choice-list label { display:flex; align-items:center; gap:8px; padding:9px; border:1px solid var(--line); border-radius:8px; color:var(--ink); }
.copy-address-toggle { display:flex; align-items:center; gap:8px; margin:12px 0 5px; font-weight:600; }
.copy-address-toggle input { width:auto; min-height:auto; }
.invoice-address-fields { margin-top:16px; }
.invoice-address-fields input[readonly] { background:#f3f5f7; color:var(--muted); }
.choice-list input { width:auto; min-height:auto; }
.signature-box { width:100%; max-width:620px; height:220px; border:2px dashed #aeb6bf; border-radius:10px; background:#fff; touch-action:none; }
.signature-actions { display:flex; gap:10px; margin-top:10px; }
.document-status { display:inline-block; padding:5px 9px; border-radius:999px; background:#eef1f5; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.section-heading p { color:var(--muted); }
.invoice-documents-panel { margin-top:18px; }
.invoice-document-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.invoice-document-slot { display:grid; align-content:start; gap:8px; min-width:0; padding:15px; border:1px solid var(--line); border-radius:10px; background:#f8f9fa; }
.invoice-document-slot.complete { border-color:#b9dfcb; background:#f3fbf7; }
.document-check { display:flex; align-items:center; gap:8px; color:var(--ink); }
.document-check input { width:auto; min-height:auto; margin:0; accent-color:var(--positive); }
.invoice-document-slot small { display:block; color:var(--muted); }
.document-file-input input { min-height:auto; padding:8px; background:#fff; }
.issue-date-field { display:grid; gap:6px; max-width:260px; }
.invoice-documents-panel .stack-form > .primary-button { justify-self:start; }
.hash-value { overflow-wrap:anywhere; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.82rem; }
.field-error { color:#b52b2b; }
.compact-list { display:grid; gap:7px; margin:0; padding-left:18px; }
.receipt-panel { margin-top:8vh; }
.invoice-collection-actions { display:grid; grid-template-columns:1fr minmax(260px,1.45fr) 1fr; align-items:end; gap:12px; }
.invoice-collection-actions form { margin:0; }
.collection-advance-form { display:grid; grid-template-columns:minmax(130px,1fr) auto; align-items:end; gap:8px; }
.collection-advance-form label { grid-column:1/-1; margin:0; }
.collection-button { width:100%; min-height:44px; padding:9px 14px; border-radius:9px; font:inherit; font-weight:750; cursor:pointer; }
.collection-button:disabled { opacity:.45; cursor:not-allowed; }
.collection-button.active { outline:3px solid rgba(32,36,42,.18); outline-offset:2px; }
.collection-pending { color:#8f1d1d; background:#fdeaea; border:1px solid #d88f8f; }
.collection-advanced { color:#6b5100; background:#fff0ad; border:1px solid #d5ad20; }
.collection-collected { color:#17673f; background:#dff4e8; border:1px solid #72b991; }
.collection-badge { display:inline-flex; min-height:34px; align-items:center; padding:6px 10px; border-radius:999px; white-space:nowrap; font-weight:700; }
.collection-pending.collection-badge { color:#8f1d1d; background:#fdeaea; }
.collection-advanced.collection-badge { color:#6b5100; background:#fff0ad; }
.collection-collected.collection-badge { color:#17673f; background:#dff4e8; }
.collection-update-note { margin:14px 0 0; color:var(--muted); font-size:.9rem; }
.sales-invoice-panel { margin-top:18px; }
.sales-invoice-filters { display:grid; grid-template-columns:minmax(190px,.7fr) minmax(240px,1.4fr) auto; align-items:end; gap:12px; margin:16px 0; }
.sales-invoice-filters label { display:grid; gap:6px; margin:0; }
.sales-filter-actions { display:flex; gap:8px; }
.sales-invoice-table { min-width:850px; }
.sales-invoice-table small { color:var(--muted); }
.due-indicator { display:inline-flex; align-items:center; min-height:30px; padding:4px 8px; border-radius:999px; font-weight:700; }
.due-pending { color:#365875; background:#e8f1f8; }
.due-today { color:#6b5100; background:#fff0ad; }
.due-overdue { color:#8f1d1d; background:#fdeaea; }
.due-collected { color:#17673f; background:#dff4e8; }
.due-neutral { color:var(--muted); background:#eef1f5; }
.payroll-form { max-width:var(--content-max); margin:0 auto; }
.employee-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:18px; }
.employee-summary div { padding:10px 11px; border:1px solid var(--line); border-radius:9px; background:#f8f9fa; }
.employee-summary span,.employee-summary strong { display:block; }
.employee-summary span { margin-bottom:3px; color:var(--muted); font-size:.84rem; }
.payroll-previous-note { margin:12px 0 0; }
.calculated-payroll-panel input:disabled,.payroll-form input[data-payroll-calculated="true"]:disabled { color:#3f454b; background:#edf0f2; border-color:#d8dde1; opacity:1; cursor:not-allowed; }
.payroll-configuration-form small { display:block; margin-top:5px; }
.payroll-configuration-table { min-width:1480px; }
.payroll-configuration-table .compact-rates { min-width:280px; color:var(--muted); font-size:.86rem; line-height:1.45; }
.payroll-paired-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.payroll-pair { display:grid; grid-template-columns:1fr 1.2fr; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; }
.payroll-pair.single-amount { grid-template-columns:1fr; }
.payroll-live-summary { max-width:560px; margin-right:0; }
.payroll-live-summary div { display:flex; justify-content:space-between; gap:18px; padding:8px 0; border-bottom:1px solid var(--line); }
.payroll-live-summary .grand-total { margin-top:5px; padding:13px 10px; border:0; border-radius:8px; background:#fff5cf; }
.table-actions { display:flex; align-items:center; gap:7px; }
.table-actions form { margin:0; }
.payroll-table { min-width:1120px; }
.payroll-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.payroll-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.notice-panel { max-width:var(--content-max); margin:0 auto 16px; padding:14px 18px; background:var(--warning-soft); border:1px solid #eadb9e; border-radius:8px; }
.totals-panel div { display:flex; justify-content:space-between; gap:20px; padding:9px 0; border-bottom:1px solid var(--line); }
.totals-panel .grand-total { margin-top:4px; padding:13px 10px; background:#fff5cf; border:0; border-radius:8px; font-size:1.12rem; }
.import-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; max-width:var(--content-max); margin:0 auto 16px; }
.import-summary article { padding:16px 17px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.import-summary strong,.import-summary span { display:block; }
.import-summary strong { font-size:1.7rem; }
.import-summary span { color:var(--muted); }
.import-summary .summary-ok { border-left:5px solid var(--positive); }
.import-summary .summary-error { border-left:5px solid #b52b2b; }
.success-notice { background:#e9f7ef; border-color:#b9dfcb; }
.warning-notice { background:#fff5cf; border-color:#eadb9e; }
.import-preview table { min-width:1120px; }
.import-preview th:last-child,.import-preview td:last-child { min-width:290px; }
.import-status { display:inline-block; padding:4px 8px; border-radius:999px; background:#eef1f5; white-space:nowrap; font-size:.9rem; }
.import-status-error { color:#9b2525; background:#fdeaea; }
.import-status-warning { color:#6b5100; background:#fff5cf; }
.import-status-ready,.import-status-imported { color:#17673f; background:#e9f7ef; }
.issue-list { display:grid; gap:4px; margin:0; padding-left:18px; font-size:.9rem; }
.issue-error { color:#9b2525; }
.issue-warning { color:#6b5100; }
.similarity-review { margin-bottom:9px; padding:10px; background:#fff9e5; border:1px solid #eadb9e; border-radius:9px; font-size:.9rem; }
.similarity-review p { margin:4px 0 8px; }
.similarity-resolved { background:#edf8f1; border-color:#b9dfcb; }
.decision-actions { display:flex; gap:7px; }
.decision-actions form { margin:0; }
.decision-result { display:block; color:#17673f; font-weight:600; }
.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.loading-order-form { max-width:820px; }
.import-actions form { margin:0; }
.traffic-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; max-width:var(--content-max); margin:0 auto 16px; }
.traffic-summary article { display:flex; min-height:90px; flex-direction:column; justify-content:space-between; padding:15px 16px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.traffic-summary span { color:var(--muted); }
.traffic-summary strong { font-size:1.8rem; }
.traffic-summary .summary-attention { border-left:5px solid var(--accent); }
.traffic-summary .summary-ok { border-left:5px solid var(--positive); }
.progress-panel>div:first-child,.panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.progress-panel h2,.panel-heading h2 { margin-bottom:5px; }
.progress-panel>div:first-child strong { font-size:1.25rem; }
.progress-track { height:12px; margin:12px 0; overflow:hidden; background:#e4e8ec; border-radius:999px; }
.progress-track span { display:block; height:100%; min-width:2px; background:var(--positive); border-radius:inherit; }
.panel-heading { padding:18px 20px; border-bottom:1px solid var(--line); }
.panel-heading p { margin:0; color:var(--muted); }
.count-badge { display:grid; min-width:38px; min-height:38px; place-items:center; padding:5px 9px; color:#17673f; background:#e9f7ef; border-radius:999px; font-weight:700; }
.warning-badge { color:#6b5100; background:#fff5cf; }
.traffic-table { min-width:1080px; }
.demo-label,.weight-note { display:block; width:max-content; margin-top:4px; color:#6b5100; font-size:.78rem; }
.demo-label { padding:3px 6px; background:#fff5cf; border-radius:999px; }
.weight-note { color:var(--positive); }
.pending-note { color:#8a6400; }
.demo-notice { color:#7f1d1d; background:#fdeaea; border-color:#e8b7b7; }
.demo-notice p { margin:5px 0 0; }
.demo-status { color:#8f1d1d; background:#fdeaea; }
.card-count { display:inline-block; margin-top:10px; padding:4px 8px; color:#6b5100; background:#fff5cf; border-radius:999px; font-size:.86rem; }
.vacation-form { max-width:900px; margin:0 auto; }
.vacation-fields { margin-top:18px; }
.compact-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
.digital-confirmation label { display:flex; align-items:flex-start; gap:10px; color:var(--ink); font-weight:600; }
.digital-confirmation input { width:auto; min-height:auto; margin-top:4px; }
.vacation-table { min-width:1040px; }
.vacation-status { display:inline-flex; min-height:34px; align-items:center; padding:5px 10px; border-radius:999px; background:#fff5cf; white-space:nowrap; font-weight:650; }
.vacation-status-approved { color:#17673f; background:#e9f7ef; }
.vacation-status-rejected { color:#9b2525; background:#fdeaea; }
.new-label { display:block; width:max-content; margin-top:5px; padding:3px 7px; color:#17673f; background:#e9f7ef; border-radius:999px; font-size:.78rem; }
.unread-row { background:#f7fcf9; }
.vacation-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.vacation-decision-panel { border-left:5px solid var(--accent); }
.vacation-decision-panel .choice-list ul { max-width:520px; margin-bottom:16px; }
.decision-notes { max-width:680px; margin-bottom:14px; }
.decision-summary { border-left:5px solid var(--positive); }
.vacation-history { grid-column:span 2; }
.vacation-history ol { display:grid; gap:14px; margin:0; padding:0; list-style:none; }
.vacation-history li { padding-left:14px; border-left:3px solid var(--line); }
.vacation-history li strong,.vacation-history li span { display:block; }
.vacation-history li span { margin-top:3px; color:var(--muted); font-size:.9rem; }
.vacation-history li p { margin:6px 0 0; }
.vacation-archive .document-links li { align-items:center; }
.vacation-archive .document-links strong,.vacation-archive .document-links small { display:block; }
.hash-value { max-width:720px; margin-top:4px; overflow-wrap:anywhere; color:var(--muted); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.76rem; }
.disciplinary-table { min-width:1080px; }
.disciplinary-status { display:inline-flex; min-height:34px; align-items:center; padding:5px 10px; border-radius:999px; color:#6b5100; background:#fff5cf; white-space:nowrap; font-weight:650; }
.disciplinary-status-signed { color:#17673f; background:#e9f7ef; }
.disciplinary-status-closed_unsigned,.disciplinary-status-overdue_unread { color:#9b2525; background:#fdeaea; }
.disciplinary-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.disciplinary-history { max-width:var(--content-max); margin-left:auto; margin-right:auto; }
.disciplinary-history ol { display:grid; gap:14px; margin:0; padding:0; list-style:none; }
.disciplinary-history li { padding-left:14px; border-left:3px solid var(--line); }
.disciplinary-history li strong,.disciplinary-history li span { display:block; }
.disciplinary-history li span { margin-top:3px; color:var(--muted); font-size:.9rem; }
.disciplinary-history li p { margin:6px 0; }
.ppe-form { max-width:980px; margin:0 auto; }
.ppe-checklist { display:grid; gap:8px; }
.ppe-check-row { display:grid; grid-template-columns:minmax(0,1fr) 150px; align-items:center; gap:14px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:#fafbfc; }
.ppe-check-label { display:flex; align-items:flex-start; gap:10px; margin:0; color:var(--ink); font-weight:600; }
.ppe-check-label input { width:auto; min-height:auto; margin-top:4px; }
.ppe-quantity { display:flex; align-items:center; gap:8px; }
.ppe-quantity span { color:var(--muted); font-size:.86rem; }
.ppe-quantity input { min-height:36px; }
.ppe-table { min-width:1180px; }
.table-subline { display:block; margin-top:3px; color:var(--muted); font-weight:400; }
.ppe-status { display:inline-flex; min-height:34px; align-items:center; padding:5px 10px; border-radius:999px; color:#6b5100; background:#fff5cf; white-space:nowrap; font-weight:650; }
.ppe-status-received { color:#17673f; background:#e9f7ef; }
.ppe-status-rejected { color:#9b2525; background:#fdeaea; }
.ppe-status-read { color:#245b8a; background:#eaf3fb; }
.ppe-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ppe-response-panel { border-left:5px solid var(--accent); }
.ppe-confirmation { display:flex; align-items:flex-start; gap:9px; color:var(--ink); font-weight:600; }
.ppe-confirmation input { width:auto; min-height:auto; margin-top:4px; }
.ppe-history { padding:0; overflow:hidden; }
.ppe-history ol { display:grid; gap:14px; margin:0; padding:18px 20px; list-style:none; }
.ppe-history li { padding-left:14px; border-left:3px solid var(--line); }
.ppe-history li strong,.ppe-history li span { display:block; }
.ppe-history li span { margin-top:3px; color:var(--muted); font-size:.9rem; }
.ppe-history li p { margin:6px 0; }
.chain-status { display:inline-flex; align-items:center; padding:5px 9px; border-radius:999px; white-space:nowrap; font-size:.86rem; font-weight:700; }
.chain-valid { color:#17673f; background:#e9f7ef; }
.chain-invalid { color:#9b2525; background:#fdeaea; }
.search-panel { padding:16px; }
.search-page-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.search-page-form input { min-height:40px; }
.search-summary { max-width:var(--content-max); margin:0 auto 12px; color:var(--text-secondary); }
.search-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-width:var(--content-max); margin:0 auto; }
.search-group { min-width:0; padding:0; overflow:hidden; }
.search-group-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 16px; background:var(--surface-secondary); border-bottom:1px solid var(--border); }
.search-group-header h2 { margin:0; }
.search-group-header span { color:var(--text-secondary); font-size:12px; }
.search-result-list { display:grid; margin:0; padding:0; list-style:none; }
.search-result-link { display:grid; gap:2px; padding:11px 16px; border-bottom:1px solid var(--border); text-decoration:none; }
.search-result-list li:last-child .search-result-link { border-bottom:0; }
.search-result-link:hover { background:#fbfcfd; }
.search-result-link strong { color:var(--text-primary); }
.search-result-link span { overflow:hidden; color:var(--text-secondary); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.eyebrow { margin:0 0 4px; color:var(--text-secondary); font-size:10px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.dashboard-header { align-items:end; }
.dashboard-period { display:grid; min-width:330px; gap:6px; }
.dashboard-period label { margin:0; color:var(--text-secondary); font-size:12px; font-weight:600; }
.dashboard-period>div { display:grid; grid-template-columns:minmax(170px,1fr) auto; gap:8px; }
.dashboard-period input { min-height:38px; }
.dashboard-freshness { display:flex; max-width:var(--content-max); align-items:center; gap:7px; margin:0 auto 12px; color:var(--text-secondary); font-size:12px; }
.status-dot { width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:var(--text-secondary); }
.status-dot-success { background:var(--success); box-shadow:0 0 0 3px var(--success-soft); }
.executive-kpis { display:grid; max-width:var(--content-max); grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:0 auto 16px; }
.kpi-card { display:flex; min-width:0; min-height:142px; flex-direction:column; padding:14px 15px 12px; background:var(--surface); border:1px solid var(--border); border-radius:8px; box-shadow:0 1px 3px rgba(16,24,40,.04); }
.kpi-card>span { color:var(--text-secondary); font-size:12px; font-weight:600; }
.kpi-card>strong { margin:8px 0 1px; color:var(--text-primary); font-size:26px; font-weight:650; letter-spacing:-.035em; line-height:1.1; overflow-wrap:anywhere; }
.kpi-card>small { color:var(--text-secondary); font-size:11px; }
.kpi-card>a { width:max-content; max-width:100%; margin-top:auto; color:#7a5900; font-size:12px; font-weight:650; text-decoration:none; }
.kpi-card>a:hover { text-decoration:underline; }
.kpi-card-attention { border-top:3px solid var(--warning); padding-top:12px; }
.kpi-grid { display:grid; max-width:var(--content-max); grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:0 auto 16px; }
.compact-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.filter-grid { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)) auto; align-items:end; gap:12px; }
.filter-grid label { margin:0; }
.filter-actions,.inline-form { display:flex; align-items:center; gap:8px; }
.inline-form input { width:auto; min-width:150px; }
.form-errors { margin-bottom:12px; color:var(--danger); }
.table-panel input,.table-panel select { min-width:130px; }
.report-header { align-items:flex-end; }
.report-tabs { display:flex; max-width:var(--content-max); margin:0 auto 14px; gap:4px; padding:6px; overflow-x:auto; background:var(--surface); border:1px solid var(--border); border-radius:8px; box-shadow:0 1px 3px rgba(16,24,40,.04); }
.report-tabs a { min-height:36px; padding:8px 12px; color:var(--text-secondary); border-radius:6px; font-size:12px; font-weight:650; text-decoration:none; white-space:nowrap; }
.report-tabs a:hover { color:var(--text-primary); background:var(--surface-secondary); }
.report-tabs a.active { color:var(--text-primary); background:var(--grf-yellow-soft); box-shadow:inset 0 0 0 1px #ebd98f; }
.report-filter-panel h2 { margin-bottom:12px; }
.report-filter-grid { display:grid; grid-template-columns:repeat(3,minmax(170px,1fr)) auto; align-items:end; gap:12px; }
.report-filter-grid label { margin:0; }
.report-kpis,.quality-summary { display:grid; max-width:var(--content-max); grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 auto 16px; }
.report-kpi { min-height:124px; }
.report-kpi-positive { border-top:3px solid var(--success); padding-top:12px; }
.report-kpi-warning { border-top:3px solid var(--warning); padding-top:12px; }
.report-kpi-danger { border-top:3px solid var(--danger); padding-top:12px; }
.report-chart-grid { display:grid; max-width:var(--content-max); grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0 auto 16px; }
.report-chart-grid>.panel { min-width:0; margin:0; }
.report-chart-row { grid-template-columns:minmax(95px,150px) minmax(80px,1fr) minmax(74px,auto); }
.report-chart-row strong { text-align:right; white-space:nowrap; }
.report-table-panel .dashboard-panel-heading { border-bottom:1px solid var(--border); }
.report-methodology li { margin-bottom:7px; }
.quality-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.quality-panel { padding:0; overflow:hidden; }
.quality-panel .dashboard-panel-heading time { color:var(--text-secondary); font-size:12px; }
.quality-check-list { display:grid; margin:0; padding:0; list-style:none; }
.quality-check { display:grid; grid-template-columns:38px minmax(0,1fr) minmax(150px,auto); align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--border); }
.quality-check:last-child { border-bottom:0; }
.quality-symbol { display:grid; width:30px; height:30px; place-items:center; color:#17673f; background:var(--success-soft); border:1px solid #b8e2cc; border-radius:50%; font-weight:800; }
.quality-fail .quality-symbol { color:#8c2424; background:var(--danger-soft); border-color:#efbcbc; }
.quality-check>div:nth-child(2) { display:grid; gap:3px; }
.quality-check>div:nth-child(2)>span,.quality-check small { color:var(--text-secondary); }
.quality-result { display:grid; justify-items:end; gap:2px; text-align:right; }
.quality-result span { color:var(--text-secondary); font-size:11px; text-transform:capitalize; }
.quality-result a { margin-top:4px; color:#725400; font-size:12px; font-weight:650; }
.quality-critical { box-shadow:inset 3px 0 0 var(--danger); }
.quality-high { box-shadow:inset 3px 0 0 var(--warning); }
.quality-medium { box-shadow:inset 3px 0 0 var(--info); }
.freshness-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0; }
.freshness-grid>div { padding:12px; background:var(--surface-secondary); border:1px solid var(--border); border-radius:7px; }
.freshness-grid dt { color:var(--text-secondary); font-size:11px; font-weight:650; }
.freshness-grid dd { margin:5px 0 0; font-weight:650; }
.dashboard-grid { display:grid; max-width:var(--content-max); grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0 auto 16px; }
.dashboard-grid-primary { grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr); }
.dashboard-panel { min-width:0; margin-bottom:0; padding:0; overflow:hidden; }
.dashboard-panel-heading { display:flex; min-height:67px; align-items:flex-start; justify-content:space-between; gap:16px; padding:14px 16px; border-bottom:1px solid var(--border); }
.dashboard-panel-heading h2 { margin:0; font-size:16px; }
.text-link { color:#725400; font-size:12px; font-weight:650; text-decoration:none; white-space:nowrap; }
.text-link:hover { text-decoration:underline; }
.operations-pulse { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; background:var(--border); border-bottom:1px solid var(--border); }
.pulse-item { position:relative; display:flex; min-height:82px; flex-direction:column; justify-content:space-between; padding:12px 13px; background:var(--surface); }
.pulse-item::before { position:absolute; top:12px; bottom:12px; left:0; width:3px; border-radius:0 3px 3px 0; background:#c7ccd3; content:""; }
.pulse-item span { color:var(--text-secondary); font-size:11px; }
.pulse-item strong { font-size:22px; font-weight:650; }
.pulse-info::before { background:var(--info); }
.pulse-success::before { background:var(--success); }
.pulse-warning::before { background:var(--warning); }
.pulse-danger::before { background:var(--danger); }
.chart-block { padding:15px 16px 16px; }
.chart-block-contained { padding:0; }
.chart-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.chart-heading h3 { margin:0; font-size:13px; }
.chart-heading>span { color:var(--text-secondary); font-size:11px; }
.horizontal-chart { display:grid; gap:9px; }
.chart-row { display:grid; grid-template-columns:105px minmax(70px,1fr) 34px; align-items:center; gap:10px; min-width:0; }
.chart-row>span { overflow:hidden; color:var(--text-secondary); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.chart-row>strong { font-size:12px; text-align:right; white-space:nowrap; }
.chart-track { height:7px; overflow:hidden; background:#edf0f3; border-radius:999px; }
.chart-track i { display:block; height:100%; min-width:2px; background:var(--grf-yellow); border-radius:inherit; }
.chart-row.chart-danger .chart-track i { background:var(--danger); }
.chart-row.chart-warning .chart-track i { background:var(--warning); }
.chart-row.chart-success .chart-track i { background:var(--success); }
.dashboard-alert-list { display:grid; margin:0; padding:0; list-style:none; }
.dashboard-alert-list li { display:grid; grid-template-columns:auto minmax(0,1fr); gap:7px 10px; padding:12px 15px; border-bottom:1px solid var(--border); }
.dashboard-alert-list li:last-child { border-bottom:0; }
.dashboard-alert-list a { display:grid; min-width:0; gap:2px; text-decoration:none; }
.dashboard-alert-list a:hover strong { text-decoration:underline; }
.dashboard-alert-list a span { overflow:hidden; color:var(--text-secondary); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-alert-list time { grid-column:2; color:var(--text-secondary); font-size:10px; }
.severity { display:inline-flex; width:max-content; min-height:22px; align-items:center; padding:2px 7px; border-radius:999px; font-size:10px; font-weight:700; white-space:nowrap; }
.severity-medium { color:#664c00; background:var(--warning-soft); }
.severity-high { color:#8e2424; background:var(--danger-soft); }
.dashboard-empty { display:grid; min-height:120px; place-content:center; gap:3px; padding:22px; color:var(--text-secondary); text-align:center; }
.dashboard-empty strong { color:var(--text-primary); }
.compact-empty { min-height:92px; }
.metric-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; padding:4px 16px; }
.metric-list>div { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 4px; border-bottom:1px solid var(--border); }
.metric-list>div:nth-last-child(-n+2) { border-bottom:0; }
.metric-list dt { color:var(--text-secondary); font-size:12px; }
.metric-list dd { margin:0; font-size:17px; font-weight:650; }
.coverage-block { padding:12px 16px 15px; background:var(--surface-secondary); border-top:1px solid var(--border); }
.coverage-block>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.coverage-block .progress-track { height:8px; margin:9px 0 6px; }
.coverage-block small,.data-note { color:var(--text-secondary); font-size:11px; }
.data-note { margin:0; padding:12px 16px 15px; background:var(--surface-secondary); border-top:1px solid var(--border); }
.finance-panel { max-width:var(--content-max); margin:0 auto 16px; }
.finance-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--border); border-bottom:1px solid var(--border); }
.finance-summary article { display:grid; min-height:105px; align-content:start; gap:2px; padding:14px 16px; background:var(--surface); }
.finance-summary span,.finance-summary small { color:var(--text-secondary); font-size:11px; }
.finance-summary strong { margin:4px 0; font-size:20px; font-weight:650; overflow-wrap:anywhere; }
.finance-summary .finance-danger strong { color:#a52e2e; }
.finance-charts { margin:0; padding:16px; border-bottom:1px solid var(--border); }
.money-chart .chart-row { grid-template-columns:100px minmax(70px,1fr) 120px; }
.trend-chart-block { border-bottom:1px solid var(--border); }
.trend-chart { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.trend-row { display:grid; min-width:0; gap:5px; }
.trend-row>strong { font-size:11px; text-transform:uppercase; }
.trend-label { overflow:hidden; color:var(--text-secondary); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.trend-row .chart-track { height:6px; }
.trend-row .services-bar { background:var(--grf-yellow); }
.trend-row .billing-bar { background:var(--info); }
.profit-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--border); border-bottom:1px solid var(--border); }
.profit-strip>div { display:grid; gap:3px; padding:13px 16px; background:var(--surface-secondary); }
.profit-strip span { color:var(--text-secondary); font-size:11px; }
.profit-strip strong { font-size:16px; }
.profit-coverage-note { margin:0; padding:10px 16px; color:var(--text-secondary); background:var(--warning-soft); border-bottom:1px solid #eadb9e; font-size:11px; }
.profit-coverage-note strong { color:#624a00; }
.dashboard-subsection { padding-top:15px; }
.dashboard-subsection>.chart-heading { padding:0 16px; }
.dashboard-table { min-width:940px; }
.status-chip { display:inline-flex; min-height:27px; align-items:center; padding:3px 8px; color:#5e4a00; background:var(--grf-yellow-soft); border-radius:999px; font-size:11px; font-weight:650; white-space:nowrap; }
.dashboard-methodology { max-width:var(--content-max); margin:0 auto; color:var(--text-secondary); background:transparent; border:1px dashed #cfd4da; border-radius:8px; font-size:12px; }
.dashboard-methodology summary { padding:11px 14px; color:var(--text-primary); font-weight:650; cursor:pointer; }
.dashboard-methodology>div { padding:0 14px 12px; }
.dashboard-methodology p { margin:5px 0; }
.back-link { display:inline-flex; margin-bottom:7px; color:var(--text-secondary); font-size:12px; font-weight:650; text-decoration:none; }
.back-link:hover { color:var(--text-primary); text-decoration:underline; }
.fleet-kpis { margin-bottom:14px; }
.fleet-record-grid{display:grid;max-width:var(--content-max);grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 auto 16px}.fleet-record-file{position:relative;display:grid;min-width:0;min-height:230px;align-content:start;gap:7px;padding:19px 18px 17px;overflow:hidden;color:var(--text-primary);background:linear-gradient(145deg,#fff 0%,#f8f9fb 100%);border:1px solid var(--border);border-top:4px solid #2d333b;border-radius:10px;text-decoration:none;box-shadow:0 3px 10px rgba(15,23,42,.045)}.fleet-record-file:hover{border-color:#c8a120;border-top-color:var(--grf-yellow);box-shadow:0 12px 28px rgba(15,23,42,.11);transform:translateY(-2px)}.fleet-record-file .eyebrow{margin:0;color:#806000}.fleet-record-file h2{max-width:calc(100% - 42px);margin:2px 0 0;font-size:1.12rem}.fleet-record-file p{margin:0 0 8px;color:var(--text-secondary);font-size:.82rem;line-height:1.45}.fleet-record-number{position:absolute;top:15px;right:16px;color:#a2a8b0;font-size:.72rem;font-weight:800;letter-spacing:.08em}.fleet-record-metric{display:flex;align-items:baseline;gap:5px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:.72rem}.fleet-record-metric strong{color:var(--text-primary);font-size:1.18rem}.fleet-record-action{margin-top:5px;color:#755800;font-size:.75rem;font-weight:750}.fleet-record-maintenance{border-top-color:#d6a700}.fleet-record-expiry{border-top-color:#8e9aa6}.fleet-home-file-section{scroll-margin-top:110px}
.fleet-alert-grid { align-items:start; }
.fleet-alert-grid .dashboard-panel { width:100%; margin-inline:0; }
.fleet-alert-list { display:grid; }
.fleet-alert-row { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:16px; padding:10px 15px; color:var(--text-primary); border-bottom:1px solid var(--border); text-decoration:none; }
.fleet-alert-row:last-child { border-bottom:0; }
.fleet-alert-row:hover { background:var(--surface-secondary); }
.fleet-alert-row>span:first-child { display:grid; min-width:0; gap:2px; }
.fleet-alert-row strong,.fleet-alert-row small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fleet-alert-row small,.fleet-alert-row>span:last-child { color:var(--text-secondary); font-size:11px; }
.fleet-alert-row.is-critical { border-left:3px solid var(--danger); }
.fleet-alert-row.is-warning { border-left:3px solid var(--warning); }
@media (max-width:1100px){.fleet-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-record-file{min-height:205px}}
@media (max-width:620px){.fleet-record-grid{grid-template-columns:1fr}.fleet-record-file{min-height:0}.fleet-alert-row{align-items:flex-start;flex-direction:column;gap:5px}}
.fleet-asset-header { align-items:flex-end; }
.fleet-action-row { max-width:680px; justify-content:flex-end; }
.asset-status { display:inline-flex; width:max-content; min-height:25px; align-items:center; padding:2px 8px; color:var(--text-secondary); background:#edf0f3; border-radius:999px; font-size:10px; font-weight:750; letter-spacing:.035em; text-transform:uppercase; white-space:nowrap; }
.asset-status-available,.asset-status-valid { color:#17623a; background:var(--success-soft); }
.asset-status-assigned,.asset-status-on_route { color:#745600; background:var(--grf-yellow-soft); }
.asset-status-maintenance,.asset-status-upcoming { color:#6f5100; background:var(--warning-soft); }
.asset-status-workshop,.asset-status-out_of_service,.asset-status-expired { color:#922b2b; background:var(--danger-soft); }
.fleet-tabs { position:sticky; z-index:10; top:var(--topbar-height); display:flex; max-width:var(--content-max); gap:4px; margin:0 auto 14px; padding:6px; overflow-x:auto; background:rgba(244,246,248,.96); border:1px solid var(--border); border-radius:9px; backdrop-filter:blur(10px); }
.fleet-tabs a { flex:0 0 auto; padding:7px 10px; color:var(--text-secondary); border-radius:6px; font-size:11px; font-weight:650; text-decoration:none; }
.fleet-tabs a:hover { color:var(--text-primary); background:var(--surface); }
.fleet-tabs a[aria-current="page"] { color:var(--text-primary); background:var(--surface); box-shadow:0 1px 3px rgba(19,25,35,.12); }
.asset-status-open { color:#745600; background:var(--grf-yellow-soft); }
.asset-status-in_progress { color:#922b2b; background:var(--danger-soft); }
.asset-status-completed { color:#17623a; background:var(--success-soft); }
.fleet-master-grid { display:grid; max-width:var(--content-max); grid-template-columns:minmax(0,1.5fr) minmax(300px,.75fr); gap:14px; margin:0 auto 16px; }
.fleet-master-grid>.panel { width:100%; margin:0; }
.asset-data-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; padding:4px 16px 14px; }
.asset-data-grid>div { min-width:0; padding:11px 8px; border-bottom:1px solid var(--border); }
.asset-data-grid dt { margin-bottom:3px; color:var(--text-secondary); font-size:10px; font-weight:650; text-transform:uppercase; }
.asset-data-grid dd { margin:0; overflow-wrap:anywhere; font-size:13px; font-weight:650; }
.compact-asset-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.asset-notes { margin:0 16px 16px; padding:12px; background:var(--surface-secondary); border-radius:7px; }
.asset-notes strong { font-size:11px; }
.asset-notes p { margin:5px 0 0; color:var(--text-secondary); font-size:12px; }
.fleet-finish-form { padding:0 16px 16px; }
.fleet-section { max-width:var(--content-max); margin:0 auto 16px; scroll-margin-top:140px; }
.fleet-section table { min-width:760px; }
.consumption-month-cell { min-width:150px; vertical-align:top; background:#f8fafc; border-right:1px solid var(--border); }
.fleet-mileage-filter-panel,.fleet-mileage-table-panel{max-width:var(--content-max);margin:0 auto 14px}.fleet-mileage-filters{grid-template-columns:repeat(2,minmax(170px,230px)) auto}.fleet-mileage-filters .filter-actions{grid-column:auto}.section-note{margin:-3px 0 12px;color:var(--text-secondary);font-size:.8rem}.table-subtext{display:block;margin-top:3px;color:var(--text-secondary);font-size:.68rem}.error-message{margin:10px 0 0;color:var(--danger);font-weight:700}
.fleet-row-due { background:#fff9e3; }
.maintenance-part{padding-top:8px}.maintenance-part+.maintenance-part{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.maintenance-part-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}.maintenance-part-heading h3{margin:2px 0 0}.maintenance-table-scroll table{min-width:1500px}.maintenance-table-scroll td{vertical-align:top}.maintenance-actual-part table{min-width:960px}
.fleet-master-form { max-width:var(--content-max); margin:0 auto; }
.fleet-master-form>.panel { width:100%; }
.fleet-form-panel { max-width:760px; }
.kpi-warning { border-top:3px solid var(--warning); }
.kpi-danger { border-top:3px solid var(--danger); }
.planning-header { align-items:flex-end; }
.planning-toolbar-panel { max-width:var(--content-max); margin:0 auto 14px; padding:14px 16px 0; }
.planning-toolbar { display:grid; grid-template-columns:180px minmax(210px,1fr) minmax(190px,.75fr) auto; align-items:end; gap:10px; }
.planning-toolbar>div { display:grid; gap:5px; }
.planning-toolbar label { color:var(--text-secondary); font-size:11px; font-weight:650; }
.planning-toolbar input,.planning-toolbar select { min-height:38px; }
.planning-filter-actions { display:flex!important; grid-template-columns:repeat(2,auto); flex-direction:row; gap:7px!important; }
.planning-week-nav { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:13px; padding:10px 0; border-top:1px solid var(--border); font-size:11px; }
.planning-week-nav a { color:#715400; font-weight:650; text-decoration:none; }
.planning-week-nav a:hover { text-decoration:underline; }
.planning-week-nav strong { color:var(--text-primary); }
.planning-kpis { display:grid; max-width:var(--content-max); grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 auto 14px; }
.planning-kpis article { display:grid; min-height:108px; align-content:start; padding:13px 15px; background:var(--surface); border:1px solid var(--border); border-radius:8px; box-shadow:0 1px 3px rgba(16,24,40,.04); }
.planning-kpis article.kpi-warning,.planning-kpis article.kpi-danger { padding-top:11px; }
.planning-kpis span,.planning-kpis small { color:var(--text-secondary); font-size:11px; }
.planning-kpis strong { margin:5px 0 2px; font-size:25px; font-weight:650; }
.planning-global-alerts { max-width:var(--content-max); margin:0 auto 14px; }
.planning-map-panel,.planning-scheduled-alerts { max-width:var(--content-max); margin:0 auto 14px; padding:0; overflow:hidden; }
.planning-map-heading { align-items:center; }
.planning-map-metrics { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.planning-map-metrics>span { display:grid; min-width:126px; gap:1px; padding:8px 10px; background:var(--surface-secondary); border:1px solid var(--border); border-radius:7px; }
.planning-map-metrics strong { font-size:14px; }
.planning-map-metrics small { color:var(--text-secondary); font-size:9px; }
.planning-map-layout { display:grid; grid-template-columns:minmax(0,2.3fr) minmax(250px,.7fr); min-height:500px; }
.planning-territory-map { min-height:500px; background:linear-gradient(145deg,#f7f9fb,#edf1f4); border-right:1px solid var(--border); z-index:0; }
.planning-territory-map.map-load-error { display:grid; place-items:center; padding:24px; color:var(--danger); text-align:center; }
.planning-map-sidebar { display:grid; align-content:start; gap:18px; padding:18px; background:var(--surface); }
.planning-map-sidebar h3 { margin:0 0 9px; font-size:12px; }
.planning-map-legend { display:grid; gap:7px; }
.planning-map-legend p { display:flex; align-items:center; gap:9px; margin:0; color:var(--text-secondary); font-size:10px; }
.legend-gradient { width:52px; height:10px; background:linear-gradient(90deg,#fff4c7,#f6c842,#6e5000); border:1px solid #d6b455; border-radius:999px; }
.trailer-legend { display:block; width:72px; height:18px; overflow:hidden; flex:0 0 72px; font-style:normal; }
.trailer-legend img { display:block; width:72px; max-width:none; height:auto; transform:translateY(-8px); filter:drop-shadow(0 2px 2px rgba(38,36,36,.2)); }
.planning-map-ranking ol { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.planning-map-ranking li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:7px; border-bottom:1px solid var(--border); font-size:10px; }
.planning-map-ranking li span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.planning-map-ranking li strong { font-size:10px; white-space:nowrap; }
.planning-map-ranking>p,.planning-map-caveat { margin:0; color:var(--text-secondary); font-size:9px; line-height:1.45; }
.planning-map-attribution { margin:0; padding:7px 12px; color:var(--text-secondary); background:var(--surface-secondary); border-top:1px solid var(--border); font-size:8px; text-align:right; }
.planning-trailer-marker { background:transparent; border:0; }
.planning-trailer-marker>span { display:block; width:96px; height:24px; overflow:hidden; }
.planning-trailer-marker img { display:block; width:96px; max-width:none; height:auto; transform:translateY(-11px); filter:drop-shadow(0 4px 3px rgba(38,36,36,.3)); }
.planning-map-popup { display:grid; min-width:200px; gap:4px; }
.planning-map-popup strong { font-size:12px; }
.planning-map-popup span,.planning-map-popup small { color:#5c626a; font-size:10px; }
.planning-map-popup a { margin-top:4px; color:#725500; font-size:10px; font-weight:700; }
.scheduled-alert-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; padding:12px; background:var(--surface-secondary); }
.scheduled-alert { display:flex; min-width:0; align-items:flex-start; justify-content:space-between; gap:12px; padding:11px 12px; background:var(--surface); border:1px solid var(--border); border-left:4px solid var(--info); border-radius:7px; }
.scheduled-alert-warning { border-left-color:var(--warning); }
.scheduled-alert-critical { border-left-color:var(--danger); }
.scheduled-alert>div { display:grid; min-width:0; gap:3px; }
.scheduled-alert span { color:var(--text-secondary); font-size:8px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.scheduled-alert strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.scheduled-alert small { color:var(--text-secondary); font-size:9px; line-height:1.35; }
.scheduled-alert time { flex:0 0 auto; padding:4px 6px; color:#5b4500; background:var(--grf-yellow-soft); border-radius:999px; font-size:8px; font-weight:750; white-space:nowrap; }
.centered-form-panel { max-width:820px; }
.planning-alert-form .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.planning-alert-form .full-span { grid-column:1/-1; }
.planning-workspace { display:grid; max-width:var(--content-max); grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr); gap:14px; margin:0 auto 14px; }
.planning-zone { width:100%; min-width:0; margin:0; padding:0; overflow:hidden; }
.planning-zone-heading { display:flex; min-height:76px; align-items:flex-start; justify-content:space-between; gap:16px; padding:14px 16px; border-bottom:1px solid var(--border); }
.planning-zone-heading .eyebrow { margin-bottom:2px; }
.planning-zone-heading h2 { margin:0; font-size:16px; }
.planning-zone-heading p:not(.eyebrow) { margin:3px 0 0; color:var(--text-secondary); font-size:11px; }
.unassigned-list { display:grid; max-height:540px; overflow:auto; }
.unassigned-list article { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:11px; padding:11px 14px; border-bottom:1px solid var(--border); }
.unassigned-list article:last-child { border-bottom:0; }
.unassigned-list article>div:first-child { display:grid; min-width:0; gap:2px; }
.unassigned-list a:not(.secondary-button) { color:var(--text-primary); text-decoration:none; }
.unassigned-list a:not(.secondary-button):hover { text-decoration:underline; }
.unassigned-list span,.unassigned-list small { overflow:hidden; color:var(--text-secondary); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.missing-resource-list { display:flex; max-width:145px; flex-wrap:wrap; justify-content:flex-end; gap:4px; }
.missing-resource-list span { padding:3px 6px; color:#8d2929; background:var(--danger-soft); border-radius:999px; font-size:9px; font-weight:650; }
.resource-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--border); border-bottom:1px solid var(--border); }
.resource-summary-grid article { display:grid; gap:9px; padding:13px; background:var(--surface); }
.resource-summary-grid article>div { display:flex; align-items:baseline; gap:6px; }
.resource-summary-grid article>div span,.resource-summary-grid article>div small { color:var(--text-secondary); font-size:10px; }
.resource-summary-grid article>div strong { font-size:23px; font-weight:650; }
.resource-summary-grid dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:0; }
.resource-summary-grid dl div { display:grid; align-content:start; gap:3px; padding-top:6px; border-top:1px solid var(--border); }
.resource-summary-grid dt { color:var(--text-secondary); font-size:9px; }
.resource-summary-grid dd { margin:0; font-size:13px; font-weight:650; }
.planning-method-note { margin:0; padding:9px 14px; color:var(--text-secondary); background:var(--surface-secondary); border-bottom:1px solid var(--border); font-size:10px; }
.resource-warning-block h3 { margin:0; padding:11px 14px 7px; font-size:12px; }
.resource-warning-block ul { display:grid; max-height:260px; margin:0; padding:0; overflow:auto; list-style:none; }
.resource-warning-block li { display:grid; grid-template-columns:auto minmax(0,1fr); gap:9px; padding:9px 14px; border-top:1px solid var(--border); }
.resource-warning-block li>span { align-self:start; padding:3px 6px; border-radius:999px; font-size:9px; font-weight:750; text-transform:uppercase; }
.resource-warning-block li>div { display:grid; min-width:0; gap:2px; }
.resource-warning-block li strong { font-size:11px; }
.resource-warning-block li small { color:var(--text-secondary); font-size:10px; overflow-wrap:anywhere; }
.resource-warning-confirmed>span { color:#8f2626; background:var(--danger-soft); }
.resource-warning-review>span { color:#705300; background:var(--warning-soft); }
.assignment-details { border-top:1px solid var(--border); }
.assignment-details summary { padding:11px 14px; color:var(--text-primary); font-size:11px; font-weight:650; cursor:pointer; }
.assignment-details ul { display:grid; margin:0; padding:0 14px 10px; list-style:none; }
.assignment-details li { display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-top:1px solid var(--border); font-size:10px; }
.assignment-details li span { color:var(--text-secondary); text-align:right; }
.planning-board-panel { max-width:var(--content-max); margin:0 auto 14px; padding:0; overflow:hidden; }
.planning-legend { display:flex; align-items:center; gap:6px; color:var(--text-secondary); font-size:10px; }
.planning-legend i { width:9px; height:9px; background:var(--grf-yellow-soft); border:2px solid var(--grf-yellow); border-radius:3px; }
.planning-board-scroll { overflow-x:auto; }
.planning-board { display:grid; min-width:1720px; grid-template-columns:repeat(7,minmax(230px,1fr)); gap:1px; background:var(--border); }
.planning-day { min-width:0; background:var(--surface-secondary); }
.planning-day.is-selected { background:#fffaf0; box-shadow:inset 0 0 0 2px var(--grf-yellow); }
.planning-day-header { display:grid; min-height:77px; align-content:start; padding:11px 12px; color:var(--text-primary); background:var(--surface); border-bottom:1px solid var(--border); text-decoration:none; }
.planning-day-header:hover { background:#fffdf7; }
.planning-day-header span { color:var(--text-secondary); font-size:9px; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.planning-day-header strong { margin:2px 0; font-size:15px; }
.planning-day-header small { color:var(--text-secondary); font-size:9px; }
.planning-day.is-today .planning-day-header strong::after { margin-left:6px; padding:2px 5px; color:#694e00; background:var(--grf-yellow-soft); border-radius:999px; content:"Hoy"; font-size:8px; vertical-align:2px; }
.planning-day-services { display:grid; align-content:start; gap:8px; min-height:230px; padding:8px; }
.planning-service-card { position:relative; display:grid; min-width:0; gap:7px; padding:10px; background:var(--surface); border:1px solid var(--border); border-left:3px solid #adb4bd; border-radius:7px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.planning-service-card.status-assigned,.planning-service-card.status-acknowledged { border-left-color:var(--grf-yellow); }
.planning-service-card.status-loaded,.planning-service-card.status-document_sent { border-left-color:var(--info); }
.planning-service-card.status-completed,.planning-service-card.status-approved,.planning-service-card.status-invoiced { border-left-color:var(--success); }
.planning-service-card.status-rejected,.planning-service-card.status-cancelled { border-left-color:var(--danger); }
.planning-service-card.has-confirmed-warning { box-shadow:inset 0 0 0 1px #e5a4a4; }
.planning-service-card.has-review-warning { box-shadow:inset 0 0 0 1px #e3d08b; }
.planning-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:6px; }
.planning-card-top>a { overflow:hidden; color:var(--text-primary); font-size:10px; font-weight:750; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.planning-card-top>a:hover { text-decoration:underline; }
.planning-card-top .status-chip { min-height:20px; padding:2px 5px; font-size:8px; }
.planning-time { margin:0; color:#725500; font-size:10px; font-weight:700; }
.planning-client { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.planning-route { display:-webkit-box; margin:0; overflow:hidden; color:var(--text-secondary); font-size:10px; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.planning-resources { display:grid; gap:3px; margin:0; padding-top:6px; border-top:1px solid var(--border); }
.planning-resources div { display:grid; grid-template-columns:50px minmax(0,1fr); gap:5px; }
.planning-resources dt { color:var(--text-secondary); font-size:8px; }
.planning-resources dd { margin:0; overflow:hidden; font-size:9px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.planning-card-warnings { display:grid; gap:3px; }
.planning-card-warnings span,.planning-card-missing { padding:5px 6px; border-radius:5px; font-size:8px; font-weight:650; line-height:1.3; }
.planning-card-warnings span { color:#7d2929; background:var(--danger-soft); }
.has-review-warning .planning-card-warnings span { color:#6a4e00; background:var(--warning-soft); }
.planning-card-missing { color:#862828; background:var(--danger-soft); }
.planning-day-empty { display:grid; min-height:90px; place-items:center; color:#9399a1; border:1px dashed #d5d9de; border-radius:7px; font-size:10px; }
.planning-review-panel { max-width:var(--content-max); margin:0 auto; padding:0; overflow:hidden; }
.planning-review-panel>summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; cursor:pointer; }
.planning-review-panel>summary>span:first-child { display:grid; gap:3px; }
.planning-review-panel>summary small { color:var(--text-secondary); font-weight:400; }
.compact-traffic-summary { max-width:none; margin:0; padding:0 14px 14px; }
.compact-traffic-summary article { min-height:75px; padding:11px 12px; }
.compact-traffic-summary strong { font-size:20px; }
.import-review-progress { padding:12px 16px; border-top:1px solid var(--border); }
.import-review-progress>div:first-child { display:flex; justify-content:space-between; gap:12px; font-size:11px; }
.import-review-progress .progress-track { height:8px; margin:8px 0 0; }
.planning-review-note { margin:0; padding:8px 16px; color:var(--text-secondary); border-top:1px solid var(--border); font-size:10px; }
.demo-client-review { padding:13px 16px; border-top:1px solid var(--border); }
.demo-client-review h3 { margin:0 0 8px; font-size:12px; }
.demo-client-review ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 18px; margin:0; padding:0; list-style:none; }
.demo-client-review li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 0; border-top:1px solid var(--border); font-size:10px; }
.demo-client-review li>span { display:grid; }
.demo-client-review li small { color:var(--text-secondary); }
.demo-client-review a { color:#715400; font-weight:650; text-decoration:none; white-space:nowrap; }
.employee-metric-grid { max-width:var(--content-max); margin:0 auto 14px; }
.employee-filter-form { grid-template-columns:minmax(240px,1.5fr) minmax(150px,.7fr) minmax(190px,.8fr) auto; }
.employee-profile-header { display:flex; max-width:var(--content-max); margin:0 auto 14px; align-items:flex-start; justify-content:space-between; gap:24px; padding:22px 24px; color:#fff; background:linear-gradient(120deg,#222 0%,#353535 72%,#5b4a18 100%); border-radius:10px; box-shadow:var(--shadow-sm); }
.employee-profile-header h1 { margin:4px 0; color:#fff; font-size:clamp(24px,3vw,34px); }
.employee-profile-header p { margin:0; color:#d6d6d6; }
.employee-profile-header .back-link { color:#f1d164; }
.employee-profile-header .eyebrow { color:#f3d45f; }
.employee-profile-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.employee-profile-actions .secondary-button { color:#fff; border-color:#777; background:rgba(255,255,255,.08); }
.employee-status { padding:7px 10px; border-radius:999px; font-size:10px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.employee-status-active { color:#b8f0c5; background:rgba(43,130,69,.25); }
.employee-status-inactive { color:#ffc2c2; background:rgba(157,46,46,.28); }
.employee-quick-grid { display:grid; max-width:var(--content-max); margin:0 auto 14px; grid-template-columns:repeat(5,minmax(0,1fr)); overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:9px; box-shadow:var(--shadow-xs); }
.employee-quick-grid>div { display:grid; min-height:82px; align-content:center; gap:4px; padding:13px 16px; border-right:1px solid var(--border); }
.employee-quick-grid>div:last-child { border-right:0; }
.employee-quick-grid span { color:var(--text-secondary); font-size:9px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.employee-quick-grid strong { font-size:13px; }
.record-tabs { position:sticky; z-index:8; top:calc(var(--topbar-height) - 1px); display:flex; max-width:var(--content-max); margin:0 auto 14px; gap:3px; padding:6px; overflow-x:auto; background:rgba(255,255,255,.96); border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow-xs); backdrop-filter:blur(8px); }
.record-tabs a { padding:7px 10px; color:var(--text-secondary); border-radius:5px; font-size:10px; font-weight:650; text-decoration:none; white-space:nowrap; }
.record-tabs a:hover { color:var(--text-primary); background:var(--surface-secondary); }
.employee-detail-grid,.employee-history-grid { display:grid; max-width:var(--content-max); margin:0 auto 14px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.employee-detail-grid .panel,.employee-history-grid .panel { margin:0; }
.employee-driver-panel { max-width:var(--content-max); margin:0 auto 14px; }
.driver-qualification-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; }
.driver-qualification-grid>div { display:grid; min-height:88px; align-content:start; gap:4px; padding:12px; background:var(--surface-secondary); border:1px solid var(--border); border-radius:7px; }
.driver-qualification-grid dt { color:var(--text-secondary); font-size:9px; font-weight:700; text-transform:uppercase; }
.driver-qualification-grid dd { margin:0; font-size:13px; font-weight:650; }
.driver-qualification-grid small { color:var(--text-secondary); font-size:9px; }
.record-list { display:grid; margin:0; padding:0; list-style:none; }
.record-list li { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 0; border-top:1px solid var(--border); font-size:10px; }
.record-list li:first-child { border-top:0; }
.record-list a { color:var(--text-primary); font-weight:650; text-decoration:none; }
.record-list span { color:var(--text-secondary); text-align:right; }
.employee-services-panel { grid-column:1/-1; }
.compact-empty { padding:12px; text-align:left; }
.employee-master-form { max-width:var(--content-max); margin:0 auto; }
.webfleet-schedule-panel { max-width:var(--content-max); margin:0 auto 14px; overflow:hidden; }
.webfleet-schedule-heading { align-items:flex-start; gap:20px; }
.webfleet-schedule-heading p { max-width:760px; margin:4px 0 0; color:var(--text-secondary); font-size:11px; }
.webfleet-sync-date { padding:5px 8px; color:var(--text-secondary); background:var(--surface-secondary); border:1px solid var(--border); border-radius:999px; font-size:9px; white-space:nowrap; }
.webfleet-schedule-notice { margin:10px 0; padding:10px 13px; border:1px solid; border-radius:7px; font-size:11px; }
.webfleet-schedule-notice.warning { color:#725500; background:#fff8dc; border-color:#e7cf78; }
.webfleet-schedule-notice.danger { color:#8a2525; background:#fff0f0; border-color:#e9b3b3; }
.webfleet-schedule-block { margin-top:12px; padding:13px; background:var(--surface-secondary); border:1px solid var(--border); border-radius:8px; scroll-margin-top:calc(var(--topbar-height) + 64px); }
.webfleet-register-table { min-width:1050px; font-size:9px; }
.webfleet-register-table th,.webfleet-register-table td { padding:8px 9px; white-space:nowrap; }
.webfleet-biweekly-table { min-width:920px; }
@media (max-width:1200px) { .topbar{grid-template-columns:auto minmax(240px,1fr) auto}.breadcrumb a:first-child,.company-pill,.global-search kbd{display:none}.global-search input{padding-right:10px} }
@media (max-width:1200px) { .executive-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:1200px) { .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-actions{grid-column:1/-1} }
@media (max-width:1200px) { .planning-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.planning-filter-actions{grid-column:1/-1;justify-content:flex-end}.planning-workspace{grid-template-columns:1fr}.unassigned-list{max-height:360px}.scheduled-alert-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:1024px) { .app-shell,.app-shell.sidebar-collapsed{display:block}.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(86vw,280px);height:100vh;transform:translateX(-102%);transition:transform .2s ease;box-shadow:14px 0 34px rgba(0,0,0,.2)}.app-shell.sidebar-open .sidebar{transform:translateX(0)}.app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .nav-section-title,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .sidebar-user-copy{display:block}.app-shell.sidebar-collapsed .sidebar-header{justify-content:space-between}.app-shell.sidebar-collapsed .sidebar-nav{margin-top:18px}.app-shell.sidebar-collapsed .nav-link,.app-shell.sidebar-collapsed .sidebar-user{justify-content:flex-start;padding-inline:10px}.sidebar-backdrop{position:fixed;z-index:45;inset:0;display:block;background:rgba(16,18,20,.48);border:0;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.app-shell.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible}.mobile-menu-button{display:inline-grid}.topbar{grid-template-columns:minmax(120px,auto) minmax(220px,1fr) auto;padding-inline:16px}.main-content{padding:20px 16px 32px} }
@media (max-width:800px) { .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.page-header{align-items:center}.catalog-grid,.transport-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.transport-list-controls{align-items:stretch;flex-direction:column}.transport-filters{justify-content:flex-start}.transport-search-form,.solred-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}.transport-search-actions{grid-column:span 2}.employee-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-paired-grid,.payroll-summary-grid{grid-template-columns:1fr}.payroll-live-summary{max-width:var(--content-max);margin-left:0}.search-results{grid-template-columns:1fr} }
@media (max-width:800px) { .invoice-document-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column} }
@media (max-width:800px) { .invoice-collection-actions{grid-template-columns:1fr}.collection-advance-form{grid-template-columns:minmax(0,1fr) auto} }
@media (max-width:800px) { .sales-invoice-filters{grid-template-columns:1fr 1fr}.sales-filter-actions{grid-column:1/-1} }
@media (max-width:800px) { .kpi-grid,.compact-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-form{flex-wrap:wrap} }
@media (max-width:800px) { .compact-summary,.vacation-detail-grid{grid-template-columns:1fr}.vacation-history{grid-column:auto} }
@media (max-width:800px) { .dashboard-header{align-items:stretch;flex-direction:column}.dashboard-period{min-width:0}.dashboard-grid,.dashboard-grid-primary{grid-template-columns:1fr}.operations-pulse{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-pulse .pulse-item:nth-last-child(-n+2){min-height:70px}.finance-charts{grid-template-columns:1fr}.trend-chart{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}.profit-strip{grid-template-columns:1fr}.metric-list>div:nth-last-child(-n+2){border-bottom:1px solid var(--border)}.metric-list>div:last-child{border-bottom:0} }
@media (max-width:800px) { .fleet-asset-header{align-items:stretch}.fleet-action-row{max-width:none;justify-content:flex-start}.fleet-master-grid{grid-template-columns:1fr}.asset-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-tabs{top:calc(var(--topbar-height) - 1px)} }
@media (max-width:800px) { .horizontal-table-controls{align-items:stretch;flex-direction:column}.horizontal-table-controls .button-row{justify-content:flex-start} }
@media (max-width:800px) { .planning-header{align-items:stretch}.planning-toolbar{grid-template-columns:1fr}.planning-filter-actions{grid-column:auto;justify-content:flex-start}.planning-week-nav{justify-content:space-between;gap:8px;overflow-x:auto}.planning-week-nav strong{display:none}.planning-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-summary-grid{grid-template-columns:1fr}.unassigned-list article{grid-template-columns:minmax(0,1fr) auto}.unassigned-list article>.secondary-button{grid-column:1/-1;width:max-content}.missing-resource-list{max-width:130px}.demo-client-review ul{grid-template-columns:1fr}.planning-map-layout{grid-template-columns:1fr}.planning-territory-map{min-height:430px;border-right:0;border-bottom:1px solid var(--border)}.planning-map-metrics{justify-content:flex-start}.planning-map-metrics>span{min-width:105px;flex:1}.scheduled-alert-grid{grid-template-columns:1fr} }
@media (max-width:800px) { .disciplinary-detail-grid{grid-template-columns:1fr} }
@media (max-width:800px) { .employee-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-profile-header{align-items:stretch;flex-direction:column}.employee-profile-actions{justify-content:flex-start}.employee-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-quick-grid>div{border-bottom:1px solid var(--border)}.employee-detail-grid,.employee-history-grid{grid-template-columns:1fr}.driver-qualification-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-services-panel{grid-column:auto} }
@media (max-width:800px) { .ppe-detail-grid{grid-template-columns:1fr}.ppe-check-row{grid-template-columns:minmax(0,1fr) 130px} }
@media (max-width:800px) { .import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-summary article:last-child{grid-column:span 2} }
@media (max-width:480px) { .form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.page-header{display:block}.page-header>.button-row{margin-top:10px;justify-content:stretch}.page-header>.button-row a{flex:1}.page-header>.primary-button{margin-top:10px;width:100%}.form-actions{flex-direction:column-reverse}.form-actions a,.form-actions button{width:100%}.alert-row{align-items:stretch;flex-direction:column}.alert-actions{flex-wrap:wrap}.catalog-grid,.transport-tools{grid-template-columns:1fr}.choice-list ul{grid-template-columns:1fr}.document-links li{flex-direction:column}.signature-box{height:180px}.import-summary{grid-template-columns:1fr 1fr}.import-summary article{padding:13px}.import-summary strong{font-size:1.35rem}.import-actions form,.import-actions button{width:100%}.transport-search-form,.solred-search-form{grid-template-columns:1fr}.transport-search-actions{grid-column:auto}.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar button{width:100%}.solred-import-actions{display:grid}.solred-import-actions a,.solred-import-actions button{width:100%} }
@media (max-width:480px) { .ppe-check-row{grid-template-columns:1fr}.ppe-quantity{max-width:170px}.ppe-history .panel-heading{display:block}.ppe-history .chain-status{margin-top:8px} }
@media (max-width:480px) { .sales-invoice-filters{grid-template-columns:1fr}.sales-filter-actions{grid-column:auto;display:grid}.sales-filter-actions a,.sales-filter-actions button{width:100%} }
@media (max-width:480px) { .kpi-grid,.compact-kpi-grid,.filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto;display:grid}.filter-actions>*{width:100%}.inline-form{display:grid;width:100%}.inline-form input,.inline-form button{width:100%} }
@media (max-width:480px) { .executive-kpis{grid-template-columns:1fr 1fr}.kpi-card{min-height:132px;padding:12px}.kpi-card>strong{font-size:21px}.dashboard-period>div{grid-template-columns:1fr}.operations-pulse{grid-template-columns:1fr 1fr}.operations-pulse .pulse-item:last-child{grid-column:1/-1}.metric-list{grid-template-columns:1fr}.metric-list>div{border-bottom:1px solid var(--border)!important}.metric-list>div:last-child{border-bottom:0!important}.finance-summary{grid-template-columns:1fr 1fr}.finance-summary article{min-height:98px;padding:12px}.finance-summary strong{font-size:17px}.money-chart .chart-row,.chart-row{grid-template-columns:82px minmax(45px,1fr) auto;gap:7px}.trend-chart{grid-template-columns:1fr 1fr}.dashboard-panel-heading{align-items:flex-start}.dashboard-panel-heading .text-link{white-space:normal;text-align:right} }
@media (max-width:480px) { .fleet-action-row{display:grid}.fleet-action-row a{width:100%}.asset-data-grid,.compact-asset-grid{grid-template-columns:1fr}.fleet-alert-row{align-items:flex-start;flex-direction:column;gap:5px}.fleet-tabs{margin-inline:-4px}.fleet-kpis .kpi-card>strong{font-size:18px} }
@media (max-width:480px) { .employee-filter-form,.driver-qualification-grid{grid-template-columns:1fr}.employee-profile-header{padding:18px}.employee-profile-actions{display:grid}.employee-profile-actions>*{width:100%}.employee-quick-grid{grid-template-columns:1fr}.employee-quick-grid>div{border-right:0}.record-tabs{margin-inline:-4px} }
@media (max-width:680px) { .topbar{grid-template-columns:36px minmax(0,1fr) auto;gap:8px;padding-inline:10px}.breadcrumb{display:none}.quick-create summary{width:36px;padding:0}.quick-create summary span{display:none}.user-menu .user-avatar{width:32px;height:32px;flex-basis:32px}.main-content{padding:18px 12px 28px} }
@media (min-width:801px) { .executive-kpis.fleet-kpis{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:1200px) { .report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.quality-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.freshness-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:800px) { .report-header{align-items:stretch;flex-direction:column}.report-header .button-row{justify-content:flex-start}.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter-grid .filter-actions{grid-column:1/-1}.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.report-chart-grid{grid-template-columns:1fr}.quality-check{grid-template-columns:34px minmax(0,1fr)}.quality-result{grid-column:2;justify-items:start;text-align:left} }
@media (max-width:680px) { .report-table-panel .table-scroll{overflow:visible}.report-table,.report-table tbody,.report-table tr,.report-table td{display:block;width:100%}.report-table thead{display:none}.report-table tbody{padding:10px}.report-table tr{margin-bottom:10px;padding:5px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.report-table tr:last-child{margin-bottom:0}.report-table td{display:grid;min-height:0;grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--border);text-align:right}.report-table td:last-child{border-bottom:0}.report-table td::before{color:var(--text-secondary);font-size:11px;font-weight:650;text-align:left;content:attr(data-label)} }
@media (max-width:480px) { .report-filter-grid,.report-kpis,.quality-summary,.freshness-grid{grid-template-columns:1fr}.report-filter-grid .filter-actions{grid-column:auto;display:grid}.report-filter-grid .filter-actions>*{width:100%}.report-header .button-row{display:grid}.report-header .button-row>*{width:100%}.quality-check{align-items:start}.report-chart-row{grid-template-columns:82px minmax(45px,1fr) auto} }
.operations-report-errors { max-width:var(--content-max); margin:0 auto 12px; padding:10px 14px; color:#8f2626; background:var(--danger-soft); border:1px solid #efbcbc; border-radius:8px; }
.operations-report-errors p { margin:3px 0; }
.operations-report-filter { position:sticky; z-index:12; top:calc(var(--topbar-height) + 8px); max-width:var(--content-max); margin:0 auto 12px; padding:0; box-shadow:0 5px 20px rgba(16,24,40,.08); }
.operations-report-filter form { padding:12px 14px 10px; }
.operations-filter-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; margin-bottom:10px; }
.operations-filter-heading h2 { margin:0; font-size:15px; }
.operations-filter-heading>span { color:var(--text-secondary); font-size:11px; }
.operations-filter-grid { display:grid; grid-template-columns:150px 150px minmax(220px,1.35fr) minmax(190px,.85fr) auto; align-items:end; gap:9px; }
.operations-filter-grid>label,.vehicle-multiselect { margin:0; }
.vehicle-multiselect-label { display:block; margin-bottom:5px; color:var(--text-secondary); font-size:12px; font-weight:600; }
.vehicle-multiselect details { position:relative; }
.vehicle-multiselect summary { display:flex; min-height:42px; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; background:#fff; border:1px solid #cfd4da; border-radius:8px; color:var(--text-primary); cursor:pointer; font-size:13px; }
.vehicle-multiselect details[open] summary { border-color:#b78700; outline:3px solid rgba(238,181,12,.13); }
.vehicle-picker-panel { position:absolute; z-index:20; top:calc(100% + 6px); right:0; left:0; min-width:280px; padding:9px; background:#fff; border:1px solid var(--border); border-radius:9px; box-shadow:0 14px 32px rgba(16,24,40,.16); }
.vehicle-picker-panel input[type=search] { min-height:38px; }
.vehicle-picker-actions { display:flex; justify-content:space-between; gap:8px; padding:7px 2px; }
.vehicle-picker-actions button,.timeline-metric-picker button,.operations-comparison-table th button { padding:0; color:#715400; background:transparent; border:0; font:inherit; font-size:10px; font-weight:700; cursor:pointer; }
.vehicle-option-list { display:grid; max-height:230px; overflow:auto; border-top:1px solid var(--border); }
.vehicle-option-list label { display:grid; min-height:38px; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; margin:0; padding:7px 4px; border-bottom:1px solid var(--border); cursor:pointer; }
.vehicle-option-list label:hover { background:var(--surface-secondary); }
.vehicle-option-list input { width:16px; min-height:16px; }
.vehicle-option-list small { color:var(--text-secondary); font-size:9px; }
.operations-switch { display:grid; min-height:42px; grid-template-columns:auto minmax(0,1fr); align-content:center; gap:0 8px; padding:6px 9px; background:var(--surface-secondary); border:1px solid var(--border); border-radius:8px; cursor:pointer; }
.operations-switch input { width:17px; min-height:17px; grid-row:1/3; }
.operations-switch span { font-size:12px; font-weight:650; }
.operations-switch small { color:var(--text-secondary); font-size:9px; }
.operations-filter-actions { display:flex; align-items:center; gap:7px; }
.vehicle-filter-chips { display:flex; min-height:25px; flex-wrap:wrap; align-items:center; gap:5px; margin-top:8px; }
.filter-chip { display:inline-flex; min-height:24px; align-items:center; gap:4px; padding:3px 7px; color:#604a00; background:var(--grf-yellow-soft); border:1px solid #ebd98f; border-radius:999px; font:inherit; font-size:9px; font-weight:700; cursor:pointer; }
.filter-chip-all { color:var(--text-secondary); background:var(--surface-secondary); border-color:var(--border); cursor:default; }
.operations-kpi-grid { display:grid; max-width:var(--content-max); grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:0 auto 14px; }
.operations-kpi { min-height:132px; }
.operations-kpi-primary { border-top:3px solid var(--grf-yellow); padding-top:12px; }
.operations-kpi-warning { border-top:3px solid var(--warning); padding-top:12px; }
.operations-kpi-positive { border-top:3px solid var(--success); padding-top:12px; }
.operations-kpi em { display:block; margin-top:auto; padding-top:8px; color:var(--text-secondary); font-size:9px; font-style:normal; }
.operations-kpi p { margin:5px 0 0; color:#715400; font-size:9px; font-weight:650; }
.operations-analysis-grid { display:grid; max-width:var(--content-max); grid-template-columns:minmax(0,2.2fr) minmax(280px,.72fr); gap:14px; margin:0 auto 14px; }
.operations-analysis-grid>.panel,.operations-routes-grid>.panel { width:100%; margin:0; }
.operations-timeline-panel .dashboard-panel-heading { align-items:center; }
.operations-timeline-panel .dashboard-panel-heading small { color:var(--text-secondary); font-size:10px; }
.timeline-metric-picker { display:flex; max-width:540px; flex-wrap:wrap; justify-content:flex-end; gap:4px; }
.timeline-metric-picker button { min-height:29px; padding:5px 8px; color:var(--text-secondary); border:1px solid transparent; border-radius:6px; }
.timeline-metric-picker button:hover { color:var(--text-primary); background:var(--surface-secondary); }
.timeline-metric-picker button.active { color:var(--text-primary); background:var(--grf-yellow-soft); border-color:#ebd98f; }
.timeline-chart-wrap { padding:8px 14px 12px; }
.timeline-chart { min-height:280px; overflow:hidden; }
.timeline-chart svg { display:block; width:100%; height:auto; min-height:280px; }
.timeline-grid-line { stroke:#e6e9ed; stroke-width:1; }
.timeline-axis-label { fill:#727985; font-size:10px; }
.timeline-series-line { fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.timeline-point { stroke:#fff; stroke-width:1.5; }
.timeline-legend { display:flex; flex-wrap:wrap; gap:6px; padding:7px 4px 0; border-top:1px solid var(--border); }
.timeline-legend button { display:inline-flex; min-height:27px; align-items:center; gap:6px; padding:4px 7px; color:var(--text-primary); background:#fff; border:1px solid var(--border); border-radius:6px; font:inherit; font-size:9px; font-weight:650; cursor:pointer; }
.timeline-legend button.is-hidden { color:var(--text-secondary); opacity:.55; text-decoration:line-through; }
.timeline-legend i,.vehicle-color { display:inline-block; width:9px; height:9px; flex:0 0 9px; background:var(--vehicle-color); border-radius:50%; }
.timeline-legend i { width:8px; height:8px; }
.operations-coverage-list { display:grid; margin:0; padding:4px 16px 12px; }
.operations-coverage-list>div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.operations-coverage-list>div:last-child { border-bottom:0; }
.operations-coverage-list dt { color:var(--text-secondary); font-size:10px; }
.operations-coverage-list dd { margin:0; font-size:12px; font-weight:700; }
.operations-empty-km-panel { margin-bottom:14px; }
.operations-empty-km-panel .dashboard-empty { min-height:auto; padding-top:8px; text-align:left; }
.operations-comparison-panel,.operations-detail-panel { max-width:var(--content-max); margin:0 auto 14px; padding:0; overflow:hidden; }
.operations-comparison-table { min-width:1260px; }
.operations-comparison-table th button { display:inline-flex; align-items:center; justify-content:flex-end; width:100%; color:inherit; font-size:10px; white-space:nowrap; }
.operations-comparison-table th:first-child button { justify-content:flex-start; }
.operations-comparison-table tbody th { white-space:nowrap; }
.operations-comparison-table .vehicle-color { margin-right:7px; vertical-align:1px; }
.operations-routes-grid { display:grid; max-width:var(--content-max); grid-template-columns:minmax(0,1.8fr) minmax(280px,.62fr); gap:14px; margin:0 auto 14px; }
.operations-route-scroll { max-height:480px; }
.operations-route-scroll table { min-width:1080px; }
.operations-map-panel .map-empty { min-height:330px; padding:28px; }
.map-empty small { max-width:310px; margin:5px auto 0; }
.operations-detail-scroll { max-height:680px; }
.operations-detail-table { min-width:1900px; }
.operations-detail-table thead { position:sticky; z-index:2; top:0; }
.operations-sort-link { display:inline-flex; gap:5px; align-items:center; justify-content:flex-start; width:100%; color:inherit; text-decoration:none; white-space:nowrap; }
.operations-detail-table th.number .operations-sort-link { justify-content:flex-end; }
.operations-sort-link:hover { color:#8a6500; text-decoration:underline; }
.data-source-label { display:block; margin-top:2px; color:var(--text-secondary); font-size:8px; }
.quality-tags { display:flex; max-width:170px; flex-wrap:wrap; gap:3px; }
.quality-tags small { padding:3px 5px; color:#685100; background:var(--warning-soft); border-radius:999px; font-size:8px; white-space:nowrap; }
.quality-tags small:only-child { color:#17623a; background:var(--success-soft); }
.negative-value { color:#9b2525; font-weight:700; }
.operations-methodology { margin-bottom:16px; }
.operations-methodology li { margin-bottom:6px; }
@media (max-width:1200px) { .operations-filter-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}.operations-switch{grid-column:1/2}.operations-filter-actions{grid-column:2/4;justify-content:flex-end}.operations-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-analysis-grid,.operations-routes-grid{grid-template-columns:1fr}.operations-map-panel .map-empty{min-height:180px} }
@media (max-width:800px) { .operations-report-filter{position:static}.operations-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-multiselect,.operations-switch,.operations-filter-actions{grid-column:1/-1}.operations-filter-actions{justify-content:flex-start}.operations-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-timeline-panel .dashboard-panel-heading{align-items:flex-start;flex-direction:column}.timeline-metric-picker{justify-content:flex-start}.timeline-chart{overflow-x:auto}.timeline-chart svg{min-width:720px}.operations-comparison-panel,.operations-detail-panel{margin-inline:0} }
@media (max-width:480px) { .operations-filter-grid,.operations-kpi-grid{grid-template-columns:1fr}.vehicle-multiselect,.operations-switch,.operations-filter-actions{grid-column:auto}.operations-filter-actions{display:grid}.operations-filter-actions>*{width:100%}.vehicle-picker-panel{right:0;left:auto;width:min(88vw,330px)}.operations-kpi{min-height:125px}.timeline-metric-picker button{flex:1}.operations-filter-heading>span{display:none} }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important} }

/* Webfleet: telemática operativa de solo lectura. */
.webfleet-header form{margin:0}.webfleet-notice{max-width:var(--content-max);margin:0 auto 14px;padding:16px;border-left:4px solid var(--warning)}.webfleet-notice p{margin:5px 0 0;color:var(--text-secondary)}
.webfleet-status-panel{display:grid;max-width:var(--content-max);grid-template-columns:1fr 1.25fr 1.25fr auto;align-items:center;gap:18px;margin:0 auto 14px;padding:15px 18px}.webfleet-status-panel>div:first-child{display:flex;align-items:center;gap:10px}.webfleet-status-panel small,.webfleet-status-panel strong{display:block}.webfleet-status-panel small{margin-bottom:3px;color:var(--text-secondary);font-size:10px}.status-dot{width:11px;height:11px;flex:0 0 11px;border-radius:50%;background:#9097a2}.status-connected{background:var(--success)}.status-attention,.status-ready{background:var(--warning)}.status-error{background:var(--danger)}
.webfleet-kpis{max-width:var(--content-max);grid-template-columns:repeat(7,minmax(0,1fr));margin:0 auto 14px}.webfleet-kpis .kpi-card{min-height:104px}.webfleet-kpis .kpi-card strong{font-size:21px}.webfleet-filter-panel,.webfleet-table-panel{max-width:var(--content-max);margin:0 auto 14px}.webfleet-filter-panel{padding:14px}.webfleet-filter-grid{grid-template-columns:repeat(5,minmax(130px,1fr)) auto}.webfleet-filter-grid .filter-actions{grid-column:auto}.webfleet-table{min-width:1180px}.status-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:var(--surface-secondary);font-size:9px;font-weight:700;white-space:nowrap}.status-moving{color:#17623a;background:var(--success-soft)}.status-no_signal{color:#8f2626;background:var(--danger-soft)}.status-stopped{color:#715400;background:var(--grf-yellow-soft)}.data-disclaimer{max-width:var(--content-max);margin:8px auto 18px;color:var(--text-secondary);font-size:10px}.webfleet-detail-grid{display:grid;max-width:var(--content-max);grid-template-columns:1fr 1fr;gap:14px;margin:0 auto 14px}.webfleet-detail-grid>.panel{width:100%;margin:0}.webfleet-link-form{padding:14px;border-top:1px solid var(--border)}
@media (max-width:1200px){.webfleet-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.webfleet-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.webfleet-filter-grid .filter-actions{grid-column:1/-1}.webfleet-status-panel{grid-template-columns:1fr 1fr}.webfleet-status-panel form{justify-self:start}}
@media (max-width:800px){.webfleet-detail-grid{grid-template-columns:1fr}.webfleet-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.webfleet-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.webfleet-status-panel,.webfleet-kpis,.webfleet-filter-grid{grid-template-columns:1fr}.webfleet-filter-grid .filter-actions{grid-column:auto}.webfleet-status-panel form,.webfleet-status-panel button{width:100%}}

/* Neumáticos: inventario, posiciones y desgaste. */
.tyre-module-nav{display:flex;gap:.55rem;overflow-x:auto;padding:.5rem;margin:0 auto 1.25rem;max-width:var(--content-max);border:1px solid var(--border);border-radius:14px;background:#fff;scrollbar-width:thin}
.tyre-module-nav a{flex:0 0 auto;padding:.62rem .8rem;border-radius:9px;color:var(--text-secondary);font-size:.88rem;font-weight:700;text-decoration:none}
.tyre-module-nav a:hover,.tyre-module-nav a[aria-current="page"]{color:var(--text);background:var(--surface-secondary)}
.route-module-nav{display:flex;gap:.55rem;overflow-x:auto;padding:.5rem;margin:0 auto 1.25rem;max-width:var(--content-max);border:1px solid var(--border);border-radius:12px;background:#fff;scrollbar-width:thin}
.route-module-nav a{flex:0 0 auto;padding:.62rem .85rem;border-radius:8px;color:var(--text-secondary);font-size:.88rem;font-weight:700;text-decoration:none}
.route-module-nav a:hover,.route-module-nav a[aria-current="page"]{color:var(--text);background:var(--surface-secondary)}
.page-header .back-link + .eyebrow{display:block}
.tyre-kpis{max-width:var(--content-max);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 auto 14px}
.tyre-dashboard-grid{max-width:var(--content-max);align-items:start;margin:0 auto 14px}.tyre-fleet-panel{max-width:var(--content-max);margin:0 auto 14px}
.tyre-asset-grid,.tyre-layout-grid{max-width:var(--content-max);margin:0 auto 1.25rem}.catalog-card small{display:block;margin-top:.4rem;color:var(--text-secondary)}.tyre-asset-grid .catalog-card{display:grid;gap:.25rem}.tyre-asset-grid .catalog-card span{color:var(--text-secondary)}
.timeline-list{display:grid;gap:.65rem;margin:.8rem 0 0;padding:0;list-style:none}.timeline-list li{display:grid;gap:.2rem;padding:.7rem .8rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-secondary)}.timeline-list li strong,.timeline-list li span,.timeline-list li small{display:block}.timeline-list li span,.timeline-list li small{color:var(--text-secondary)}
.document-list{display:grid;gap:.6rem;margin:.8rem 0 0;padding:0;list-style:none}.document-list li{display:grid;gap:.2rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:9px}.document-list small{color:var(--text-secondary);overflow-wrap:anywhere}
.alert-stack{display:grid;gap:.75rem}.tyre-alert{padding:.9rem 1rem;border:1px solid var(--border);border-left-width:5px;border-radius:10px;background:#fff}.tyre-alert p{margin:.3rem 0}.tyre-alert-info{border-left-color:#4c87c7}.tyre-alert-warning{border-left-color:#e5a600}.tyre-alert-critical{border-left-color:#c83c3c}
.tyre-status-mounted{color:#14663a;background:#e7f7ee}.tyre-status-available,.tyre-status-reusable{color:#244f8d;background:#eaf1ff}.tyre-status-repair,.tyre-status-retread,.tyre-status-inspection{color:#7a5200;background:#fff1cc}.tyre-status-retired,.tyre-status-discarded,.tyre-status-missing{color:#8a2525;background:#fde7e7}
.tyre-position-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0}.tyre-position-chips span{padding:.35rem .55rem;border-radius:999px;background:var(--surface-secondary);font-size:.78rem;font-weight:700}
.vehicle-direction{display:flex;flex-direction:column;align-items:center;gap:.2rem;margin:.6rem auto 1rem;color:var(--text-secondary)}.vehicle-direction strong{font-size:1.6rem;color:var(--text)}
.tyre-vehicle-plan{display:grid;gap:1rem;max-width:1050px;margin:0 auto 1.25rem}.tyre-axle{position:relative;padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--surface-secondary)}.tyre-axle>header{display:flex;justify-content:center;gap:.6rem;align-items:baseline;margin-bottom:.8rem}.tyre-axle>header span{font-weight:800}.tyre-axle-line{position:absolute;right:10%;left:10%;top:4.3rem;height:5px;border-radius:8px;background:#748196}
.tyre-position-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.2rem}.tyre-position-card{display:grid;gap:.4rem;min-height:145px;padding:.85rem;border:2px solid #bcc8d6;border-radius:12px;background:#fff}.tyre-position-card.occupied{border-color:#3d8b65;box-shadow:0 6px 18px rgba(30,96,64,.08)}.tyre-position-card.empty{border-style:dashed}.tyre-position-code{justify-self:start;padding:.22rem .45rem;border-radius:6px;color:#fff;background:#172235;font:700 .75rem/1.2 ui-monospace,monospace}
.data-disclaimer{padding:.75rem 1rem;border-radius:9px;color:var(--text-secondary);background:var(--surface-secondary);font-size:.84rem}.safety-banner{margin:0 auto 1rem;max-width:var(--content-max);padding:.9rem 1rem;border:1px solid #e8cc82;border-radius:10px;color:#5e470d;background:#fff8e5}.safety-banner p{margin:.3rem 0 0}
.tyre-layout-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr))}.tyre-layout-card{display:grid;gap:1rem}.tyre-schematic{position:relative;display:grid;gap:.75rem;width:100%;max-width:720px;min-height:390px;margin:1rem auto;padding:1rem .75rem .8rem;overflow:hidden;border:1px solid #ccd5df;border-radius:18px;background:linear-gradient(180deg,#f8fafc,#edf2f6)}
.tyre-schematic-front{position:relative;z-index:3;display:flex;justify-content:center;gap:.45rem;color:#526174;font-size:.8rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.tyre-schematic-front span{color:#172235;font-size:1.15rem;line-height:.8}
.tyre-vehicle-silhouette{position:absolute;z-index:0;top:3.5rem;bottom:3.4rem;left:50%;width:34%;transform:translateX(-50%)}.tyre-vehicle-silhouette svg{width:100%;height:100%;fill:#d7dfe7;stroke:#718096;stroke-width:3}.tyre-vehicle-silhouette .window{fill:#b9cad8;stroke:#718096}.tyre-vehicle-silhouette .detail{fill:none;stroke:#8c99a8;stroke-width:3}
.tyre-schematic-axles{position:relative;z-index:2;display:flex;flex:1;flex-direction:column;justify-content:space-evenly;gap:1.1rem;min-height:285px}.tyre-schematic-axle{display:grid;grid-template-columns:minmax(118px,1fr) minmax(110px,1.05fr) minmax(118px,1fr);align-items:center;gap:.55rem}.tyre-schematic-beam{position:relative;display:grid;place-items:center;min-height:46px;color:#26364a}.tyre-schematic-beam::before{position:absolute;right:-.8rem;left:-.8rem;z-index:-1;height:6px;border-radius:999px;background:#596a7f;content:""}.tyre-schematic-beam span{display:grid;width:34px;height:34px;place-items:center;border:3px solid #596a7f;border-radius:50%;background:#f8fafc;font-weight:850}.tyre-schematic-beam small{position:absolute;top:39px;padding:.1rem .35rem;border-radius:5px;color:#5b6878;background:rgba(248,250,252,.92);font-size:.67rem;white-space:nowrap}
.tyre-wheel-group{display:flex;align-items:center;gap:.28rem}.tyre-wheel-group-left{justify-content:flex-end}.tyre-wheel-group-right{justify-content:flex-start}.tyre-wheel{display:grid;width:66px;min-height:52px;place-content:center;padding:.26rem;border:2px solid #344154;border-radius:11px;color:#fff;background:repeating-linear-gradient(90deg,#202b39 0,#202b39 7px,#354354 7px,#354354 10px);box-shadow:0 5px 9px rgba(26,38,52,.2);text-align:center}.tyre-wheel strong{font:800 .61rem/1.15 ui-monospace,monospace}.tyre-wheel small{margin-top:.16rem;color:#d8f4e4;font-size:.58rem}.tyre-wheel.empty{border-color:#758398;color:#26364a;background:repeating-linear-gradient(90deg,#d9e0e7 0,#d9e0e7 7px,#c4ced8 7px,#c4ced8 10px);box-shadow:none}.tyre-wheel.occupied{border-color:#2f7c55;background:repeating-linear-gradient(90deg,#174f35 0,#174f35 7px,#27704d 7px,#27704d 10px)}
.tyre-schematic-empty{align-self:center;padding:1rem;border:1px dashed #9eabb9;border-radius:12px;color:#607083;background:rgba(255,255,255,.78);text-align:center}.tyre-schematic-legend{position:relative;z-index:3;display:flex;justify-content:center;gap:1.1rem;color:#5a6878;font-size:.72rem}.tyre-schematic-legend span{display:flex;align-items:center;gap:.35rem}.legend-wheel{display:inline-block;width:18px;height:10px;border:2px solid #758398;border-radius:4px;background:#d9e0e7}.legend-wheel.occupied{border-color:#2f7c55;background:#27704d}
@media (max-width:720px){.tyre-module-nav,.route-module-nav{margin-right:-.35rem;margin-left:-.35rem;border-radius:10px}.tyre-position-grid{grid-template-columns:1fr 1fr;gap:.55rem}.tyre-position-card{min-width:0;min-height:160px;padding:.65rem}.tyre-position-card strong,.tyre-position-card small{overflow-wrap:anywhere}.tyre-axle-line{right:5%;left:5%}}
@media (max-width:720px){.tyre-schematic{min-height:350px;padding-right:.45rem;padding-left:.45rem}.tyre-vehicle-silhouette{width:38%}.tyre-schematic-axle{grid-template-columns:minmax(82px,1fr) minmax(68px,.8fr) minmax(82px,1fr);gap:.2rem}.tyre-wheel-group{gap:.15rem}.tyre-wheel{width:50px;min-height:47px;padding:.2rem}.tyre-wheel strong{font-size:.55rem}.tyre-wheel small{font-size:.5rem}.tyre-schematic-beam small{font-size:.58rem}.tyre-schematic-legend{flex-wrap:wrap;gap:.5rem 1rem}}

/* Neumáticos: plano vectorial proporcionado de tractora y semirremolque. */
.tyre-schematic{display:block;width:100%;max-width:760px;min-height:0;margin:1rem auto;padding:.85rem .85rem .75rem;overflow:hidden;border:1px solid #cbd5e1;border-radius:20px;background:radial-gradient(circle at 50% 42%,#fff 0,#f6f8fb 48%,#e9eef3 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.tyre-vector-stage{display:block;width:100%;height:auto;aspect-ratio:720/500}.tyre-vector-stage *{vector-effect:non-scaling-stroke}.tyre-vector-canvas{fill:#f8fafc;stroke:#e3e9ef;stroke-width:1.5}.tyre-vector-orientation{fill:#46566a;font-size:13px;font-weight:850;letter-spacing:.055em;text-anchor:middle}.tyre-vector-orientation path{fill:none;stroke:#f2b705;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tyre-vector-orientation .orientation-badge{fill:rgba(248,250,252,.95);stroke:#e0e7ee;stroke-width:1}.tyre-vector-orientation .side-label{fill:#7a8796;font-size:11px;letter-spacing:.12em}.tyre-vector-road path{fill:none;stroke:#d7dfe7;stroke-width:2;stroke-dasharray:9 12;stroke-linecap:round}
.tyre-vector-body{filter:drop-shadow(0 12px 11px rgba(31,44,58,.16))}.tyre-vector-body .chassis,.tyre-vector-body .cab,.tyre-vector-body .trailer{fill:#dfe6ec;stroke:#26384b;stroke-width:3.5;stroke-linejoin:round}.tyre-vector-body .cab{fill:#edf1f5}.tyre-vector-body .trailer-bed{fill:#e8edf1;stroke:#758497;stroke-width:2}.tyre-vector-body .windscreen,.tyre-vector-body .side-window{fill:#94afc1;stroke:#4c6478;stroke-width:2.5}.tyre-vector-body .body-detail,.tyre-vector-body .fifth-wheel-detail,.tyre-vector-body .kingpin-line,.tyre-vector-body .rear-guard,.tyre-vector-body .mirror{fill:none;stroke:#7e8c9b;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.tyre-vector-body .grille{fill:#26384b}.tyre-vector-body .headlight,.tyre-vector-body .tail-light{fill:#f2b705;stroke:#7e6514;stroke-width:1.5}.tyre-vector-body .tail-light{fill:#c63e3e;stroke:#792929}.tyre-vector-body .fifth-wheel{fill:#b9c5cf;stroke:#354a5f;stroke-width:3}.tyre-vector-body .kingpin{fill:#f2b705;stroke:#6b5a20;stroke-width:3}
.tyre-vector-axle .axle-beam{fill:none;stroke:#45576a;stroke-width:9;stroke-linecap:round}.tyre-vector-axle .axle-hub{fill:#f8fafc;stroke:#45576a;stroke-width:4}.tyre-vector-axle .axle-number{fill:#26364a;font-size:14px;font-weight:900;text-anchor:middle}.tyre-vector-axle .axle-usage-bg{fill:rgba(255,255,255,.94);stroke:#d2dae3;stroke-width:1}.tyre-vector-axle .axle-usage{fill:#5d6b7c;font-size:10px;font-weight:750;text-anchor:middle}
.tyre-vector-wheel{filter:drop-shadow(0 4px 4px rgba(28,39,52,.18))}.tyre-vector-wheel rect{fill:#d2dae3;stroke:#657487;stroke-width:2.5}.tyre-vector-wheel .wheel-tread{fill:none;stroke:#a1adba;stroke-width:1.3}.tyre-vector-wheel .position-code,.tyre-vector-wheel .mounted-code{fill:#26364a;font:800 7px ui-monospace,SFMono-Regular,Consolas,monospace;text-anchor:middle;dominant-baseline:middle}.tyre-vector-wheel .mounted-code{fill:#d9f5e6;font-size:6px}.tyre-vector-wheel.occupied rect{fill:#246648;stroke:#174c35}.tyre-vector-wheel.occupied .wheel-tread{stroke:#79aa91}.tyre-vector-wheel.occupied .position-code{fill:#fff}.tyre-vector-empty rect{fill:rgba(255,255,255,.86);stroke:#9eabb9;stroke-width:2;stroke-dasharray:7 6}.tyre-vector-empty text{fill:#607083;font-size:14px;text-anchor:middle}.tyre-schematic-legend{margin-top:.2rem;padding-top:.65rem;border-top:1px solid #dbe2e9}
@media (max-width:720px){.tyre-schematic{min-height:0;padding:.55rem .4rem}.tyre-vector-stage{aspect-ratio:720/520}.tyre-vector-orientation{font-size:12px}.tyre-vector-orientation .side-label{font-size:10px}.tyre-schematic-legend{font-size:.66rem}}

/* Neumáticos: referencias cenitales aportadas por la empresa con capa de posición. */
.tyre-reference-schematic{max-width:620px;padding:.75rem;border-color:#d8dee5;background:#f7f8fa;box-shadow:0 14px 34px rgba(25,35,46,.08)}
.tyre-reference-stage{display:block;width:100%;height:auto;aspect-ratio:auto!important;border-radius:16px;background:#fff}.tyre-reference-stage *{vector-effect:non-scaling-stroke}.tyre-reference-canvas{fill:#fff;stroke:#e1e5e9;stroke-width:1.5}.tyre-reference-image{filter:none}
.tyre-reference-orientation{font-size:12px;font-weight:850;letter-spacing:.055em;text-anchor:middle}.tyre-reference-orientation rect{fill:rgba(255,255,255,.94);stroke:#d5dce3;stroke-width:1}.tyre-reference-orientation path{fill:none;stroke:#e9ad00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tyre-reference-orientation text{fill:#263544}.tyre-reference-orientation .side-label{fill:#626f7d;font-size:10px;letter-spacing:.12em}
.tyre-reference-axle-badge{filter:drop-shadow(0 2px 4px rgba(0,0,0,.22))}.tyre-reference-axle-badge rect{fill:#f2b705;stroke:#fff;stroke-width:2}.tyre-reference-axle-badge text{fill:#172235;font-size:13px;font-weight:900;text-anchor:middle}
.tyre-reference-marker{filter:drop-shadow(0 3px 5px rgba(0,0,0,.38))}.tyre-reference-marker circle{stroke:#fff;stroke-width:3}.tyre-reference-marker text{font:900 8px ui-monospace,SFMono-Regular,Consolas,monospace;text-anchor:middle}.tyre-reference-marker.empty circle{fill:#f2b705}.tyre-reference-marker.empty text{fill:#172235}.tyre-reference-marker.occupied circle{fill:#238356}.tyre-reference-marker.occupied text{fill:#fff}
.tyre-reference-key{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem 1.2rem;margin-top:.55rem;padding:.75rem .45rem .1rem;border-top:1px solid #dbe2e9;color:#596777;font-size:.75rem}.tyre-reference-key span{display:flex;align-items:center;gap:.38rem}.tyre-reference-key strong{color:#263544}.reference-marker-dot{display:inline-block;width:16px;height:16px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #aab4bf}.reference-marker-dot.empty{background:#f2b705}.reference-marker-dot.occupied{background:#238356}
@media (max-width:720px){.tyre-reference-schematic{padding:.35rem}.tyre-reference-orientation{font-size:11px}.tyre-reference-orientation .side-label{font-size:9px}.tyre-reference-key{gap:.45rem .8rem;font-size:.67rem}}

/* Contabilidad: fase de aplicabilidad, sin automatismos fiscales. */
.compliance-page-header .eyebrow,.compliance-result-card .eyebrow{color:#856300}
.compliance-mode-panel{display:grid;max-width:var(--content-max);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;margin:0 auto 14px;padding:14px 16px;border-left:4px solid var(--warning)}
.compliance-mode-panel>div{display:flex;align-items:center;gap:8px;white-space:nowrap}.compliance-mode-panel p{margin:0;color:var(--text-secondary)}
.compliance-summary-grid{display:grid;max-width:var(--content-max);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 auto 14px}
.compliance-summary-card{display:grid;min-height:112px;align-content:start;gap:6px;margin:0;padding:16px}.compliance-summary-card span,.compliance-summary-card small{color:var(--text-secondary)}.compliance-summary-card strong{font-size:1.08rem}
.compliance-filter-panel{display:flex;max-width:var(--content-max);align-items:end;justify-content:space-between;gap:14px;margin:0 auto 14px;padding:14px 16px}.compliance-filter-panel .inline-form{display:flex;align-items:end;gap:8px}.compliance-filter-panel label{margin:0}.compact-input{max-width:130px}
.compliance-result-grid{display:grid;max-width:var(--content-max);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 auto 14px}
.compliance-result-card{display:grid;min-height:228px;align-content:start;gap:10px;margin:0;padding:17px;border-top:3px solid var(--border)}.compliance-result-likely_applies{border-top-color:var(--danger)}.compliance-result-likely_not_applies,.compliance-result-not_applicable{border-top-color:var(--success)}.compliance-result-review_required,.compliance-result-missing_data{border-top-color:var(--warning)}
.compliance-result-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.compliance-result-heading h2{margin:2px 0 0;font-size:1.02rem}.compliance-result-card>p{margin:0;color:var(--text-secondary)}.compliance-result-card footer{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:10px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:.75rem}.compliance-result-card footer a{font-weight:750;white-space:nowrap}
.compliance-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--surface-secondary);font-size:.69rem;font-weight:800;white-space:nowrap}.compliance-status-likely_applies{color:#8a2525;background:var(--danger-soft)}.compliance-status-likely_not_applies,.compliance-status-not_applicable{color:#17623a;background:var(--success-soft)}.compliance-status-review_required,.compliance-status-missing_data{color:#715400;background:var(--warning-soft)}
.compliance-table-panel,.compliance-evidence-panel,.compliance-evidence-note{max-width:var(--content-max);margin:0 auto 14px}.compliance-evidence-panel{display:grid;grid-template-columns:minmax(0,2fr) 1fr 1fr;gap:18px;padding:16px}.compliance-evidence-panel span,.compliance-evidence-panel strong,.compliance-evidence-panel code{display:block}.compliance-evidence-panel span{margin-bottom:4px;color:var(--text-secondary);font-size:.75rem}.compliance-evidence-panel code{overflow-wrap:anywhere}
.compliance-profile-form,.compliance-metrics-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.compliance-profile-form p,.compliance-metrics-form p{margin:0}.compliance-profile-form p:has(textarea),.compliance-metrics-form p:has(textarea),.compliance-profile-form .form-actions,.compliance-metrics-form .form-actions{grid-column:1/-1}.compliance-profile-form input[type=checkbox]{width:auto;min-height:auto;margin-right:7px}.compliance-profile-form .helptext,.compliance-metrics-form .helptext{display:block;margin-top:4px;color:var(--text-secondary);font-size:.74rem}.compliance-profile-form .errorlist,.compliance-metrics-form .errorlist{margin:0 0 5px;padding-left:18px;color:var(--danger)}
@media (max-width:1000px){.compliance-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compliance-result-grid{grid-template-columns:1fr}}
@media (max-width:700px){.compliance-mode-panel,.compliance-evidence-panel{grid-template-columns:1fr}.compliance-filter-panel{align-items:stretch;flex-direction:column}.compliance-filter-panel .inline-form{display:grid;grid-template-columns:1fr auto}.compliance-profile-form,.compliance-metrics-form{grid-template-columns:1fr}.compliance-profile-form p:has(textarea),.compliance-metrics-form p:has(textarea),.compliance-profile-form .form-actions,.compliance-metrics-form .form-actions{grid-column:auto}}
@media (max-width:480px){.compliance-summary-grid{grid-template-columns:1fr}.compliance-result-heading{align-items:start;flex-direction:column}.compliance-result-card footer{align-items:start;flex-direction:column}.compliance-filter-panel .inline-form{grid-template-columns:1fr}.compact-input{max-width:none}}

/* Contabilidad: fase 1 del núcleo maestro, todavía sin asientos. */
.accounting-page-header .eyebrow,.accounting-panel-header .eyebrow{color:#856300}
.accounting-summary-grid{display:grid;max-width:var(--content-max);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 auto 14px}
.accounting-module-grid,.accounting-year-grid,.accounting-dimension-grid{max-width:var(--content-max);margin:0 auto 14px}
.accounting-module-grid .catalog-card{min-height:135px}.accounting-module-grid .catalog-card p{margin:.45rem 0 0;color:var(--text-secondary)}
.sif-preparation-banner{border-left-color:var(--warning)}
.sif-checklist-panel,.sif-config-panel,.sif-records-panel,.sif-legal-sources{max-width:var(--content-max);margin:0 auto 14px}
.sif-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sif-check-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-secondary)}
.sif-check-item.ready{border-color:#b9dfcb;background:var(--success-soft)}.sif-check-item.pending{border-color:#ead8a0;background:var(--warning-soft)}
.sif-check-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--surface);font-weight:900}.sif-check-item.ready .sif-check-icon{color:var(--success)}.sif-check-item.pending .sif-check-icon{color:#856300}
.sif-check-item p{margin:4px 0 0;color:var(--text-secondary);font-size:.78rem}
.sif-configuration-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.sif-form-field{display:grid;align-content:start;gap:5px}.sif-form-field small{color:var(--text-secondary);font-size:.74rem}.sif-form-field.checkbox-field{grid-template-columns:auto 1fr;align-items:center}.sif-form-field.checkbox-field small,.sif-form-field.checkbox-field .errorlist{grid-column:1/-1}.sif-configuration-form .form-actions{grid-column:1/-1}
.sif-records-panel table{min-width:860px}.sif-records-panel .hash-value{display:block;max-width:330px;overflow-wrap:anywhere}.sif-invoice-record{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
@media (max-width:760px){.sif-check-grid,.sif-configuration-form{grid-template-columns:1fr}.sif-configuration-form .form-actions{grid-column:auto}}
.accounting-form-panel,.accounting-table-panel{max-width:var(--content-max);margin:0 auto 14px}.accounting-form-panel{padding:18px}
.accounting-master-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.accounting-master-form p{margin:0}.accounting-master-form p:has(textarea),.accounting-master-form .form-actions,.accounting-master-form .errorlist{grid-column:1/-1}.accounting-master-form input[type=checkbox]{width:auto;min-height:auto;margin-right:7px}.accounting-master-form .helptext{display:block;margin-top:4px;color:var(--text-secondary);font-size:.74rem}.accounting-master-form .errorlist{margin:0;padding-left:18px;color:var(--danger)}
.accounting-year-grid,.accounting-dimension-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.accounting-year-card,.accounting-dimension-card{margin:0;padding:17px}.accounting-year-card>header,.accounting-dimension-card>header,.accounting-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.accounting-year-card h2,.accounting-dimension-card h2,.accounting-panel-header h2{margin:3px 0 0}.accounting-panel-header{padding:16px;border-bottom:1px solid var(--border)}.accounting-panel-header p{margin:5px 0 0;color:var(--text-secondary)}
.accounting-year-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.accounting-year-meta div{padding:9px;border-radius:7px;background:var(--surface-secondary)}.accounting-year-meta dt{color:var(--text-secondary);font-size:.7rem}.accounting-year-meta dd{margin:3px 0 0;font-weight:750}.accounting-year-card summary{cursor:pointer;font-weight:700}.accounting-period-list{display:grid;gap:0;margin:10px 0 0;padding:0;list-style:none}.accounting-period-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--border);font-size:.78rem}.accounting-period-list small{color:var(--text-secondary);text-align:right}.accounting-dimension-card .record-list{margin:12px 0}.accounting-dimension-card>.secondary-button{width:100%}
@media (max-width:900px){.accounting-summary-grid,.accounting-year-grid,.accounting-dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:650px){.accounting-master-form,.accounting-summary-grid,.accounting-year-grid,.accounting-dimension-grid{grid-template-columns:1fr}.accounting-master-form p:has(textarea),.accounting-master-form .form-actions,.accounting-master-form .errorlist{grid-column:auto}.accounting-year-meta{grid-template-columns:1fr}.accounting-period-list li{align-items:flex-start;flex-direction:column}.accounting-period-list small{text-align:left}}

/* Contabilidad · fase 3 */
.accounting-period-control-list li{align-items:flex-start;padding:10px 0}.period-identity{display:grid;gap:3px;min-width:175px}.period-actions{display:grid;gap:7px;flex:1}.period-actions form{display:flex;align-items:center;justify-content:flex-end;gap:7px}.period-actions input[type=text]{min-width:220px;min-height:34px}.period-confirm{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-secondary);white-space:nowrap}.period-confirm input{width:auto;min-height:auto}
.analytic-tag{display:inline-flex;margin:6px 5px 0 0;padding:3px 7px;border-radius:999px;color:#24466a;background:#e7f0fa;font-size:.7rem;font-weight:700}
.accounting-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.accounting-analytics-grid p{display:grid;gap:5px;margin:0;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-secondary)}.accounting-analytics-grid label{font-size:.8rem;font-weight:750}.accounting-analytics-form .form-actions{margin-top:16px}
.accounting-report-filters{display:grid;grid-template-columns:140px 150px 150px minmax(220px,1fr) auto;gap:10px;align-items:end}.accounting-report-filters.compact-report-filters{grid-template-columns:140px 170px 170px auto}.accounting-report-filters p{display:grid;gap:5px;margin:0}.accounting-report-filters label{color:var(--text-secondary);font-size:.78rem;font-weight:750}
.accounting-ledger-account{max-width:var(--content-max);margin:0 auto 14px;overflow:hidden}.ledger-account-summary{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:8px;margin:0}.ledger-account-summary div{padding:7px 9px;border-radius:7px;background:var(--surface-secondary)}.ledger-account-summary dt{color:var(--text-secondary);font-size:.68rem}.ledger-account-summary dd{margin:2px 0 0;font-weight:800;text-align:right}.muted-copy{padding:0 16px 16px;color:var(--text-secondary)}
.trial-balance-table thead tr:first-child th{text-align:center;border-bottom:1px solid var(--border)}.trial-balance-table td:not(:first-child),.trial-balance-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.trial-balance-table tfoot th{border-top:2px solid #aebdce}
.report-note{max-width:var(--content-max);margin:0 auto 14px;padding:12px 15px;color:var(--text-secondary);background:#f8fafc;border:1px solid var(--border);border-radius:9px;font-size:.8rem}
@media (max-width:980px){.accounting-report-filters,.accounting-report-filters.compact-report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-report-filters button{grid-column:1/-1}.ledger-account-summary{grid-template-columns:repeat(2,minmax(90px,1fr))}.accounting-panel-header:has(.ledger-account-summary){display:grid}}
@media (max-width:650px){.period-actions form{align-items:stretch;flex-direction:column}.period-actions input[type=text]{min-width:0;width:100%}.accounting-analytics-grid,.accounting-report-filters,.accounting-report-filters.compact-report-filters{grid-template-columns:1fr}.accounting-report-filters button{grid-column:auto}.ledger-account-summary{grid-template-columns:1fr 1fr}}

/* Contabilidad · fase 4: generación controlada de borradores */
.automation-source-grid{display:grid;max-width:var(--content-max);grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 auto 14px}.automation-source-card{display:grid;min-height:205px;align-content:start;gap:8px;margin:0;padding:16px}.automation-source-card>strong{font-size:1.12rem}.automation-source-card p{margin:0;color:var(--text-secondary);font-size:.82rem}.automation-source-card small{display:block;color:var(--text-secondary)}.automation-source-card .secondary-button{align-self:end;margin-top:auto;text-align:center}.automation-source-card.source-disabled{background:repeating-linear-gradient(-45deg,#fafbfc,#fafbfc 8px,#f5f7f9 8px,#f5f7f9 16px)}
.text-warning{color:#805800!important}.status-active{color:#166534;background:#dcfce7}.status-retired{color:#475569;background:#e8edf3}.compact-button{min-height:32px;padding:6px 10px;font-size:.75rem}.rule-line-summary{display:block;white-space:nowrap}.compact-activation-form{display:grid;min-width:220px;gap:6px;margin-top:7px}.compact-activation-form input[type=text]{min-height:34px}.compact-activation-form label{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.72rem}.compact-activation-form input[type=checkbox]{width:auto;min-height:auto}
.automation-history-list{display:grid;gap:0;margin:0;padding:0 16px 12px;list-style:none}.automation-history-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.automation-history-list li:last-child{border-bottom:0}.automation-history-list strong,.automation-history-list small{display:block}.automation-history-list small,.automation-history-list time{color:var(--text-secondary);font-size:.73rem}.empty-copy{padding:0 16px 16px;color:var(--text-secondary)}
.posting-rule-workspace{max-width:var(--content-max);margin:0 auto}.posting-rule-workspace .accounting-form-panel{max-width:none}.posting-rule-lines select,.posting-rule-lines input{min-width:150px}.posting-rule-lines input[type=checkbox]{min-width:0;width:auto;min-height:auto}.posting-rule-lines .errorlist{min-width:180px;margin:5px 0 0;padding-left:16px;color:var(--danger);font-size:.72rem}.sticky-form-actions{position:sticky;z-index:3;bottom:10px;justify-content:flex-end;padding:12px;background:rgba(255,255,255,.94);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px rgba(15,23,42,.12);backdrop-filter:blur(8px)}
.preview-confirmation-panel,.source-link-banner{display:flex;max-width:var(--content-max);align-items:center;justify-content:space-between;gap:20px;margin:0 auto 14px;padding:16px 18px;border-radius:11px}.preview-confirmation-panel{background:#fff8dc;border:1px solid #e6cc73}.preview-confirmation-panel p,.source-link-banner p{margin:4px 0 0;color:var(--text-secondary)}.source-link-banner{background:#edf6ff;border:1px solid #bfd7ec}.source-link-banner code{overflow-wrap:anywhere}.muted-row{color:var(--text-secondary);background:#f8fafc}.warning-banner{max-width:var(--content-max);margin:0 auto 14px;padding:14px 18px;color:#6f4e00;background:#fff6d8;border:1px solid #e4c75f;border-radius:10px}.warning-banner p{margin:4px 0 0}.status-badge.status-error{color:#8a2525;background:#fde7e7}
@media (max-width:1100px){.automation-source-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.automation-source-grid{grid-template-columns:1fr 1fr}.preview-confirmation-panel,.source-link-banner{align-items:flex-start;flex-direction:column}.posting-rule-lines select,.posting-rule-lines input{min-width:130px}}
@media (max-width:520px){.automation-source-grid{grid-template-columns:1fr}}

/* Flota · expediente único de neumáticos por vehículo */
.fleet-tyre-section{scroll-margin-top:calc(var(--topbar-height) + 62px)}
.fleet-tyre-section>.dashboard-panel-heading p{margin:5px 0 0;color:var(--text-secondary)}
.tyre-asset-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:15px 0}
.tyre-asset-summary article{display:grid;gap:4px;padding:12px 14px;border:1px solid #d5dee7;border-radius:11px;background:linear-gradient(145deg,#fff,#f4f7fa)}
.tyre-asset-summary span{color:var(--text-secondary);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.tyre-asset-summary strong{overflow-wrap:anywhere;color:#172235;font-size:1.15rem}
.fleet-tyre-audit-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px;margin-top:16px}
.fleet-tyre-audit-grid .subpanel{min-width:0;padding:15px;border:1px solid var(--border);border-radius:13px;background:var(--surface-secondary)}
.fleet-tyre-audit-grid h3{margin:2px 0 0;font-size:1rem}
.tyre-alert-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tyre-alert-heading span{color:var(--text-secondary);font-size:.69rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.tyre-asset-timeline{max-height:470px;overflow:auto;padding-right:5px}
@media (max-width:900px){.tyre-asset-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-tyre-audit-grid{grid-template-columns:1fr}}
@media (max-width:520px){.tyre-asset-summary{grid-template-columns:1fr 1fr}.fleet-tyre-section>.dashboard-panel-heading{align-items:flex-start;flex-direction:column}}
.timing-summary {
  display: grid;
  gap: .35rem;
  min-width: 7.5rem;
}

.timing-summary > span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .55rem;
}

.timing-delta {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.timing-delta-early {
  color: #16743a;
}

.timing-delta-delay {
  color: #b42318;
}

.timing-delta-on-time {
  color: #405065;
}

.inline-weight-editor {
  display: flex;
  min-width: 11rem;
  align-items: center;
  gap: .4rem;
}

.inline-weight-editor input {
  width: 6.2rem;
  min-height: 34px;
  padding: 6px 8px;
  font-variant-numeric: tabular-nums;
}

.inline-delivery-note-editor {
  display: grid;
  min-width: 18rem;
  grid-template-columns: minmax(12rem, 1fr) auto;
  align-items: center;
  gap: .4rem;
}

.inline-delivery-note-editor input[type="file"] {
  width: 100%;
  min-width: 0;
  min-height: 34px;
  padding: 5px 7px;
}


@media (max-width: 700px) {
  .inline-weight-editor {
    align-items: stretch;
    flex-direction: column;
  }

  .inline-weight-editor input {
    width: 100%;
  }

  .inline-delivery-note-editor {
    min-width: 14rem;
    grid-template-columns: 1fr;
  }
}

/* Ventas · ficha maestra y analítica de clientes */
.client-page-header .eyebrow,.client-performance-panel .eyebrow,.client-visual-grid .eyebrow,.client-card-panel .eyebrow{color:#856300}
.client-kpi-grid{display:grid;max-width:var(--content-max);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 auto 14px}
.client-kpi-grid article{display:grid;min-height:118px;align-content:start;gap:5px;margin:0;padding:16px}.client-kpi-grid span,.client-kpi-grid small{color:var(--text-secondary)}.client-kpi-grid span{font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.client-kpi-grid strong{font-size:1.35rem}
.client-performance-panel,.client-card-panel,.sales-receivables-panel{max-width:var(--content-max);margin:0 auto 14px}.client-performance-panel table{min-width:720px}
.client-visual-grid{display:grid;max-width:var(--content-max);grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:12px;margin:0 auto 14px}.client-visual-grid>.panel{min-width:0;margin:0;padding:16px}
.client-revenue-map{height:465px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#edf1f5}.client-revenue-map.map-load-error{display:grid;place-items:center;padding:20px;color:var(--text-secondary);text-align:center}
.client-pie-layout{display:grid;grid-template-columns:minmax(190px,1fr) minmax(180px,.85fr);align-items:center;gap:14px}.client-pie-layout canvas{width:100%;height:auto;max-width:380px;margin:auto}
.client-pie-legend{display:grid;gap:0;margin:0;padding:0;list-style:none}.client-pie-legend li{display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--border)}.client-pie-legend i{width:11px;height:11px;border-radius:50%}.client-pie-legend strong,.client-pie-legend small{display:block}.client-pie-legend small{margin-top:2px;color:var(--text-secondary)}
.client-directory-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.8fr);align-items:end;gap:18px;margin-bottom:14px}.client-directory-toolbar h2,.client-directory-toolbar p{margin-top:0}.client-directory-toolbar>div>p:last-child{margin-bottom:0}.client-directory-search label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:.75rem;font-weight:750}.client-directory-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.client-directory-search-row input{min-width:0;min-height:40px}.client-search-summary{margin:0 0 14px;padding:9px 12px;border-radius:8px;color:#624b05;background:var(--grf-yellow-soft)}
.client-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.client-template-card{position:relative;display:grid;min-width:0;align-content:start;gap:5px;padding:17px;border:1px solid var(--border);border-radius:12px;color:inherit;background:linear-gradient(145deg,#fff,#f7f9fb);text-decoration:none;box-shadow:0 2px 7px rgba(15,23,42,.04)}.client-template-card:hover{border-color:#c49b1b;box-shadow:0 8px 22px rgba(15,23,42,.09);transform:translateY(-1px)}.client-template-card h2,.client-template-card h3{max-width:calc(100% - 62px);margin:0;font-size:1.02rem}.client-template-card>p{margin:0;color:var(--text-secondary)}.client-template-card dl{display:grid;gap:7px;margin:12px 0 0}.client-template-card dl div{display:grid;gap:2px}.client-template-card dt{color:var(--text-secondary);font-size:.69rem;text-transform:uppercase}.client-template-card dd{overflow-wrap:anywhere;margin:0;font-size:.82rem;font-weight:650}.client-card-status{position:absolute;top:14px;right:14px;padding:4px 7px;border-radius:999px;color:#17623a;background:var(--success-soft);font-size:.65rem;font-weight:800}.client-card-status.inactive{color:#5d6570;background:#edf0f3}.client-list-templates{padding:16px}.client-list-templates .client-template-card .button-row{align-items:center;justify-content:space-between;margin-top:10px}.client-master-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr)}
.client-tab-section,.client-master-section{scroll-margin-top:140px}.client-master-section{min-width:0}.client-master-section .dashboard-panel-heading{padding-bottom:4px}.client-master-section .eyebrow{color:#856300}
.collection-payment-form{display:grid;grid-template-columns:minmax(150px,190px) auto;align-items:end;gap:5px}.collection-payment-form label{grid-column:1/-1;margin:0;color:var(--text-secondary);font-size:.7rem;font-weight:750}.collection-payment-form input{min-height:38px}.sales-receivables-panel table{min-width:820px}.sales-receivables-panel .report-note{max-width:none;margin:12px 0 0}
@media (max-width:1050px){.client-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-visual-grid,.client-directory-toolbar{grid-template-columns:1fr}.client-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-master-grid{grid-template-columns:1fr}}
@media (max-width:650px){.client-kpi-grid,.client-template-grid,.client-master-grid{grid-template-columns:1fr}.client-pie-layout{grid-template-columns:1fr}.client-revenue-map{height:390px}.client-directory-search-row{grid-template-columns:1fr 1fr}.client-directory-search-row input{grid-column:1/-1}.collection-payment-form{grid-template-columns:1fr}.collection-payment-form label{grid-column:auto}}

/* Transportes · filtros, trazabilidad e impresión */
.transport-search-form{grid-template-columns:repeat(4,minmax(150px,1fr)) auto}
.loading-order-filter-form{display:grid;grid-template-columns:minmax(155px,.7fr) minmax(180px,1fr) minmax(220px,1.25fr) auto;align-items:end;gap:12px}
.loading-order-filter-form label{display:block;margin-bottom:5px;color:var(--muted);font-size:.9rem}
.loading-order-filter-form input,.loading-order-filter-form select{width:100%}
.history-disclosure{padding:0;overflow:hidden}
.history-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;list-style:none}
.history-disclosure>summary::-webkit-details-marker{display:none}
.history-disclosure>summary::after{content:"+";display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:1.1rem}
.history-disclosure[open]>summary{border-bottom:1px solid var(--line)}
.history-disclosure[open]>summary::after{content:"−"}
.history-disclosure>summary span{margin-left:auto;color:var(--muted);font-size:.82rem}
.history-disclosure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.history-disclosure-grid>section{min-width:0;padding:18px 20px}
.history-disclosure-grid>section+section{border-left:1px solid var(--line)}
.history-disclosure-grid h2{margin-top:0}

@media (max-width:900px){.loading-order-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.loading-order-filter-form .transport-search-actions{grid-column:span 2}.history-disclosure-grid{grid-template-columns:1fr}.history-disclosure-grid>section+section{border-top:1px solid var(--line);border-left:0}}
@media (max-width:800px){.transport-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.transport-search-form,.loading-order-filter-form{grid-template-columns:1fr}.loading-order-filter-form .transport-search-actions{grid-column:auto}.history-disclosure>summary{align-items:flex-start;flex-wrap:wrap}.history-disclosure>summary span{width:calc(100% - 44px);margin-left:0}}

@media print{
  .sidebar,.sidebar-backdrop,.topbar,.transport-tools,.alert-panel,.transport-search-panel,.transport-list-controls,.bulk-toolbar,.pagination,.loading-order-filter-panel,.page-header .button-row{display:none!important}
  .app-shell,.app-workspace{display:block!important}
  .main-content{padding:0!important}
  .page-header,.panel,.table-panel{max-width:none!important;margin:0 0 12px!important;box-shadow:none!important}
  .table-scroll{overflow:visible!important}
  table,.loading-order-register-table{width:100%!important;min-width:0!important;font-size:9pt}
  th,td{padding:6px!important}
  .selection-cell{display:none!important}
  a{color:inherit!important;text-decoration:none!important}
}
