:root {
  --ink:#1c2333;
  --paper:#f7f6f2;
  --surface:#fff;
  --amber:#f2a413;
  --amber-dark:#bd7906;
  --green:#1f7a4d;
  --green-bg:#e6f2ea;
  --red:#b93427;
  --red-bg:#fbe9e7;
  --line:#e3e1da;
  --muted:#6b7280;
  --nav:#202735;
  --primary-text:#1c2333;
  --nav-text:#ffffff;
  --nav-muted:#cbd0d8;
  --primary-soft:rgba(242,164,19,.13);
  --primary-soft-strong:rgba(242,164,19,.23);
  --focus-ring:rgba(242,164,19,.45);
  --focus-ring-soft:rgba(242,164,19,.15);
  --radius:12px;
  --shadow:0 10px 30px rgba(28,35,51,.06);
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
.strong{font-weight:700}.small{font-size:.8rem}.muted{color:var(--muted)}.right{text-align:right}.text-ok{color:var(--green)!important}.text-alert{color:var(--red)!important}
.topbar{background:var(--nav);color:var(--nav-text);position:sticky;top:0;z-index:10;box-shadow:0 1px 0 rgba(255,255,255,.08)}
.topbar-inner{max-width:1180px;margin:auto;min-height:64px;padding:0 20px;display:flex;align-items:center;gap:28px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;white-space:nowrap;letter-spacing:-.01em}
.brand-mark{width:31px;height:31px;display:inline-grid;place-items:center;border-radius:9px;background:var(--amber);color:var(--primary-text);font-weight:900}
.main-nav{display:flex;align-self:stretch;gap:4px;overflow-x:auto}
.main-nav a{display:flex;align-items:center;padding:0 11px;color:var(--nav-muted);font-size:.9rem;border-bottom:3px solid transparent;white-space:nowrap}
.main-nav a:hover,.main-nav a.active{color:var(--nav-text);border-bottom-color:var(--amber)}
.user-menu{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:.84rem;color:var(--nav-muted);white-space:nowrap}
.user-menu form{margin:0}.link-button{border:0;background:none;color:var(--nav-text);padding:4px;text-decoration:underline;text-underline-offset:3px}
.page-shell{max-width:1180px;margin:0 auto;padding:32px 20px 60px}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.page-heading h1{font-size:1.75rem;margin:0 0 4px;letter-spacing:-.025em}.page-heading p{margin:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.alert{border-radius:10px;padding:12px 14px;margin-bottom:18px;font-weight:600;font-size:.9rem}.alert-success{background:var(--green-bg);color:var(--green);border:1px solid #c7e2d2}.alert-error{background:var(--red-bg);color:var(--red);border:1px solid #f1c6c1}.alert-info{background:#edf3fb;color:#315d8d;border:1px solid #d3e2f5}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:9px 15px;border:1px solid transparent;font-weight:700;font-size:.9rem;min-height:40px}.btn-primary{background:var(--amber);border-color:var(--amber);color:var(--primary-text)}.btn-primary:hover{background:var(--amber-dark);border-color:var(--amber-dark)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{background:#f8f8f6}.btn-small{padding:6px 10px;min-height:33px;font-size:.8rem}.btn-block{width:100%}.danger{color:var(--red)}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{padding:20px}.stat span{display:block;color:var(--muted);font-size:.84rem;margin-bottom:7px}.stat strong{font-family:"SFMono-Regular",Consolas,monospace;font-size:1.75rem;letter-spacing:-.04em}
.section-card{padding:20px;margin-bottom:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2{font-size:1.05rem;margin:0}.section-heading a{font-size:.84rem;color:var(--amber-dark);font-weight:700}
.table-card{overflow:hidden}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.87rem}th{padding:11px 14px;text-align:left;color:var(--muted);background:#faf9f6;font-size:.75rem;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:middle}.row-muted{opacity:.58}.empty{text-align:center;color:var(--muted);padding:32px}.actions{white-space:nowrap}.actions form{display:inline-block;margin-left:4px}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:.74rem;font-weight:700;white-space:nowrap}.pill-ok{background:var(--green-bg);color:var(--green)}.pill-alert,.pill-expired{background:var(--red-bg);color:var(--red)}.pill-warning{background:var(--primary-soft);color:var(--amber-dark)}.pill-neutral,.pill-unknown{background:#efefec;color:var(--muted)}
.vehicle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.vehicle-mini{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid var(--line);border-radius:10px}
.itv-badge{width:58px;height:58px;border-radius:50%;border:2px solid;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 0 auto;font-family:"SFMono-Regular",Consolas,monospace;line-height:1}.itv-badge span{font-size:.62rem;font-weight:800;margin-bottom:3px}.itv-badge strong{font-size:.8rem}.itv-ok{border-color:var(--green);background:var(--green-bg);color:var(--green)}.itv-warning{border-color:var(--amber-dark);background:var(--primary-soft);color:var(--amber-dark)}.itv-expired{border-color:var(--red);background:var(--red-bg);color:var(--red)}.itv-unknown{border-color:#8b9098;background:#efefec;color:#6b7280}
.form-card{padding:24px}.narrow{max-width:620px}.field{display:block;margin-bottom:15px}.field>span{display:block;font-size:.82rem;font-weight:700;margin-bottom:5px}.field small{display:block;color:var(--muted);font-size:.75rem;margin-top:4px}.field input,.field select,.filters input,.filters select{width:100%;min-height:42px;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink)}.field input:focus,.field select:focus,.filters input:focus,.filters select:focus{border-color:var(--amber-dark);outline:3px solid var(--focus-ring-soft)}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}
.filter-card{padding:14px;margin-bottom:14px}.filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.filters label{display:grid;gap:4px;min-width:130px}.filters label span{font-size:.75rem;color:var(--muted);font-weight:700}.filters input,.filters select{min-height:40px}
.info-strip{background:var(--primary-soft);border:1px solid var(--primary-soft-strong);border-radius:9px;padding:10px 13px;margin-bottom:16px;font-size:.85rem}.employee-stack{display:grid;gap:18px;max-width:720px}.vehicle-block{display:grid;gap:10px}.vehicle-header{display:flex;align-items:center;gap:14px;padding:18px}.plate{font-weight:800;font-size:1.2rem}.report-form,.report-done{padding:24px}.report-form h2,.report-done h2{font-size:1.15rem;margin:10px 0 20px}.odometer input{text-align:center;font-family:"SFMono-Regular",Consolas,monospace;font-size:2rem;font-weight:800;min-height:70px}.odometer small{text-align:center;font-size:.9rem}.report-done{text-align:center}.report-km{font-size:2rem;font-weight:800;margin:10px 0}.check-row{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-size:.9rem;line-height:1.4}.check-row input{margin-top:3px;flex:0 0 auto}.empty-card{padding:34px;text-align:center}.empty-card h1,.empty-card h2{margin-top:0}
.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#f7f6f2,#eceae3)}.auth-shell{width:min(430px,calc(100% - 32px))}.brand-auth{justify-content:center;font-size:1.1rem;margin-bottom:18px}.auth-card{padding:28px}.auth-card h1{margin:0 0 5px;font-size:1.7rem}.auth-card p{margin:0 0 22px}.auth-card form{margin-top:15px}
@media (max-width:860px){.topbar-inner{flex-wrap:wrap;gap:8px 16px;padding-top:10px;padding-bottom:0}.brand{height:42px}.main-nav{order:3;width:100%;height:44px}.user-menu{font-size:.78rem}.page-shell{padding-top:24px}.stats-grid{grid-template-columns:1fr}.page-heading{align-items:center}.vehicle-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.topbar-inner{padding-left:14px;padding-right:14px}.brand>span:last-child{display:none}.user-menu{margin-left:auto}.page-shell{padding:20px 12px 50px}.page-heading{flex-direction:column;align-items:stretch}.page-heading>.btn{align-self:flex-start}.page-heading h1{font-size:1.5rem}.form-grid-2{grid-template-columns:1fr}.vehicle-grid{grid-template-columns:1fr}.form-card{padding:18px}.report-form,.report-done{padding:20px}.stats-grid{gap:10px}.actions{min-width:160px}.filters{display:grid;grid-template-columns:1fr 1fr}.filters .btn{width:100%}}
.environment-chip{display:inline-flex;align-items:center;max-width:180px;overflow:hidden;text-overflow:ellipsis;padding:4px 8px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--primary-soft-strong);color:var(--nav-text);font-size:.75rem;font-weight:700}.environment-switcher{gap:6px;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.environment-switcher:hover,.environment-switcher:focus-visible{background:var(--primary-soft-strong);border-color:var(--primary);color:var(--nav-text)}.environment-switcher:active{transform:translateY(1px)}.environment-switch-icon{font-size:.9rem;line-height:1;opacity:.8}.form-separator{border:0;border-top:1px solid var(--line);margin:24px 0}.form-subtitle{font-size:1rem;margin:0 0 16px}

/* Actas de entrega/devolución y evidencias */
button,input,select,textarea{font:inherit}
.field textarea{width:100%;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:10px 11px;color:var(--ink);resize:vertical;min-height:100px}
.field textarea:focus{border-color:var(--amber-dark);outline:3px solid var(--focus-ring-soft)}
.heading-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.vehicle-profile-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;padding:0;overflow:hidden}
.summary-item{padding:18px 20px;display:grid;gap:4px;border-right:1px solid var(--line)}
.summary-item:last-child{border-right:0}.summary-item>span{font-size:.75rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.summary-item>strong{font-size:1rem}.summary-item>small{color:var(--muted)}
.handover-current{display:flex;align-items:center;justify-content:space-between;gap:18px}.handover-current p{margin:8px 0 0}
.handover-history-heading{margin-top:28px}.handover-history{display:grid;gap:18px}
.handover-record{overflow:hidden}.handover-record-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#faf9f6;border-bottom:1px solid var(--line)}.handover-record-title{font-weight:800}.handover-record-status{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.evidence-phase{padding:20px}.evidence-phase+.evidence-phase{border-top:1px solid var(--line)}.evidence-phase .section-heading{margin-bottom:10px}.evidence-phase .section-heading h3{margin:0;font-size:1rem}
.evidence-notes{background:#faf9f6;border:1px solid var(--line);border-radius:9px;padding:11px 13px;margin:10px 0 14px}.evidence-notes p{margin:5px 0 0;white-space:normal}
.evidence-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.5fr);gap:18px;align-items:start}.evidence-label{font-size:.78rem;font-weight:800;color:var(--muted);margin-bottom:7px}
.signature-preview{display:block;max-width:390px;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.signature-preview img{display:block;width:100%;height:auto;max-height:160px;object-fit:contain}
.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:8px}.photo-thumb{display:block;aspect-ratio:4/3;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f1f0ec}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s ease}.photo-thumb:hover img{transform:scale(1.03)}
.handover-form-card{padding:22px;margin-bottom:20px}.handover-form-card>p{margin-top:-4px}.signature-field{margin:18px 0}.signature-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:.82rem;font-weight:700}.signature-field canvas{display:block;width:100%;height:auto;aspect-ratio:3/1;border:2px dashed #b9b6ad;border-radius:10px;background:#fff;touch-action:none;cursor:crosshair}.signature-field small{display:block;color:var(--muted);font-size:.75rem;margin-top:5px}
.vehicle-header-copy{min-width:0}.vehicle-header-actions{margin-left:auto;display:flex;align-items:flex-end;gap:7px;flex-direction:column}

@media (max-width:760px){.vehicle-profile-summary{grid-template-columns:1fr}.summary-item{border-right:0;border-bottom:1px solid var(--line)}.summary-item:last-child{border-bottom:0}.evidence-grid{grid-template-columns:1fr}.handover-current{align-items:flex-start;flex-direction:column}.heading-actions{justify-content:flex-start}.vehicle-header{align-items:flex-start}.vehicle-header-actions{margin-left:0;align-items:flex-start}.signature-field canvas{aspect-ratio:2.4/1}}
@media (max-width:480px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.handover-record-head{align-items:flex-start;flex-direction:column}.vehicle-header{flex-wrap:wrap}.vehicle-header-actions{width:100%;padding-left:72px}.vehicle-header-actions .btn{width:100%}}

/* v5: mantenimiento, incidencias, checklist y actas imprimibles */
.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;align-items:start}
.incident-gallery{margin-top:16px}.incident-list{display:grid;gap:16px;max-width:900px}.vehicle-action-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.vehicle-maintenance-notice{padding:12px 16px;display:grid;gap:6px;border-left:4px solid var(--amber)}.vehicle-maintenance-notice>strong{font-size:.82rem}.vehicle-maintenance-notice>div{display:flex;justify-content:space-between;gap:12px;font-size:.85rem}.vehicle-maintenance-notice small{color:var(--muted)}
.checklist-form-block{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.checklist-form-block .section-heading{margin-bottom:10px}.checklist-form-block h3{margin:0;font-size:1rem}.checklist-items{display:grid;gap:9px}.checklist-item{padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;grid-template-columns:minmax(180px,1fr) minmax(280px,auto);gap:9px 16px;align-items:center}.checklist-label{font-weight:700}.checklist-controls{display:flex;gap:12px;flex-wrap:wrap;font-size:.82rem}.checklist-controls label{display:flex;align-items:center;gap:5px}.checklist-note{grid-column:1/-1;width:100%;border:1px solid #d9d7d0;border-radius:7px;padding:8px 10px}
.checklist-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;margin:12px 0 16px}.checklist-result{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#faf9f6;font-size:.82rem}.checklist-result strong{font-size:.78rem}.checklist-result small{grid-column:1/-1;color:var(--muted)}
.compact-input{min-height:34px;border:1px solid #d9d7d0;border-radius:7px;background:#fff;padding:6px 8px;max-width:140px}.compact-input.wide{max-width:none;width:100%;min-width:220px}.section-footer{margin-top:12px;font-size:.85rem}
.print-body{background:#e8e8e8}.print-toolbar{position:sticky;top:0;z-index:20;display:flex;gap:8px;justify-content:center;padding:10px;background:#fff;border-bottom:1px solid #ddd}.print-shell{width:min(210mm,calc(100% - 24px));min-height:297mm;margin:18px auto;background:#fff;padding:15mm;box-shadow:0 5px 25px rgba(0,0,0,.12)}.print-header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:16px}.print-header h1{margin:0;font-size:1.6rem}.print-header p{margin:3px 0 0;color:var(--muted)}.print-act-number{font-weight:800}.print-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}.print-meta>div{display:grid;gap:2px;padding:9px;border:1px solid var(--line);border-radius:7px}.print-meta span{font-size:.7rem;text-transform:uppercase;color:var(--muted);font-weight:700}.print-meta small{color:var(--muted)}.print-section{margin-top:22px;break-inside:avoid}.print-section h2{font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:5px}.print-table{width:100%;border-collapse:collapse;font-size:.78rem}.print-table th,.print-table td{border:1px solid #ddd;padding:6px;text-align:left}.print-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.print-photos img{width:100%;height:42mm;object-fit:cover;border:1px solid #ddd;border-radius:4px}.print-signature{margin-top:14px;display:grid;gap:5px;max-width:90mm}.print-signature span{font-size:.75rem;font-weight:700}.print-signature img{width:100%;max-height:38mm;object-fit:contain;border:1px solid #ddd}.print-footer{margin-top:24px;padding-top:8px;border-top:1px solid #ddd;font-size:.7rem;color:var(--muted)}
@media (max-width:760px){.detail-grid{grid-template-columns:1fr}.checklist-item{grid-template-columns:1fr}.checklist-note{grid-column:1}.vehicle-action-row{justify-content:flex-start}.print-meta{grid-template-columns:1fr}.print-shell{padding:18px}.print-photos{grid-template-columns:repeat(2,1fr)}}
@media print{.print-body{background:#fff}.print-toolbar{display:none!important}.print-shell{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}.print-photos img{height:38mm}.print-section{page-break-inside:auto}.print-header{break-inside:avoid}.photo-gallery a{break-inside:avoid}}

/* v5.1: documentación privada de vehículos */
.document-upload-form{margin:14px 0 20px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.document-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.document-form-grid .span-2{grid-column:1/-1}.document-upload-form input[type=file]{padding:9px;background:#fff;border:1px solid #d9d7d0;border-radius:8px}.document-table{margin-top:12px}.inline-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap}.inline-actions form{margin:0}.document-vehicle-stack{display:grid;gap:18px}.document-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px}.document-card{border:1px solid var(--line);border-radius:10px;padding:14px;background:#faf9f6;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.document-card-head{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.document-card h3{margin:0;font-size:1rem}.document-type{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.document-meta{width:100%;margin:2px 0 4px;display:grid;gap:5px}.document-meta>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:5px}.document-meta dt{font-size:.75rem;color:var(--muted)}.document-meta dd{margin:0;font-size:.78rem;text-align:right;overflow-wrap:anywhere}.document-view-note{margin-top:18px}
@media (max-width:760px){.document-form-grid{grid-template-columns:1fr}.document-form-grid .span-2{grid-column:1}.document-table table{min-width:780px}.document-card-head{flex-direction:column}}

/* v5.2: navegación superior agrupada */
.main-nav{overflow:visible;align-items:stretch}
.nav-direct,.nav-group>summary{display:flex;align-items:center;padding:0 11px;color:var(--nav-muted);font-size:.9rem;border-bottom:3px solid transparent;white-space:nowrap;min-height:64px}
.nav-direct:hover,.nav-direct.active,.nav-group>summary:hover,.nav-group.active>summary{color:var(--nav-text);border-bottom-color:var(--amber)}
.nav-group{position:relative;align-self:stretch}
.nav-group>summary{list-style:none;cursor:pointer;user-select:none;gap:6px}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-caret{font-size:.72rem;opacity:.8;transition:transform .15s ease}
.nav-group[open] .nav-caret{transform:rotate(180deg)}
.nav-dropdown{position:absolute;top:calc(100% - 1px);left:0;z-index:40;min-width:220px;padding:7px;background:#fff;color:var(--ink);border:1px solid #d8d6cf;border-radius:0 0 10px 10px;box-shadow:0 14px 35px rgba(20,25,35,.2)}
.nav-dropdown a{display:block;padding:9px 11px;border:0;border-radius:7px;color:var(--ink);font-size:.86rem;white-space:nowrap}
.nav-dropdown a:hover{background:#f5f3ed;color:var(--ink)}
.nav-dropdown a.active{background:var(--primary-soft);color:var(--amber-dark);font-weight:800;border:0}
@media (max-width:860px){
  .main-nav{height:46px;overflow:visible;gap:2px}
  .nav-direct,.nav-group>summary{min-height:46px;padding:0 10px}
  .nav-dropdown{top:100%;border-radius:0 0 10px 10px}
}
@media (max-width:600px){
  .main-nav{justify-content:flex-start}
  .nav-direct,.nav-group>summary{font-size:.84rem;padding:0 9px}
  .nav-dropdown{min-width:205px;max-width:calc(100vw - 24px)}
  .nav-dropdown a{white-space:normal}
}


/* v5.4: identidad visual por entorno */
.brand-logo{display:block;width:auto;height:36px;max-width:118px;object-fit:contain;background:transparent;border-radius:4px}
.brand-name{max-width:190px;overflow:hidden;text-overflow:ellipsis}
.environment-identity{display:flex;align-items:center;gap:10px}.environment-logo-thumb{width:54px;height:38px;object-fit:contain;border:1px solid var(--line);border-radius:7px;background:#fff;padding:3px}.environment-logo-placeholder{width:42px;height:38px;display:grid;place-items:center;border-radius:7px;background:var(--primary-soft);font-weight:900;color:var(--ink)}
.environment-palette{display:flex;align-items:center;gap:4px;margin-top:5px}.environment-palette input[type=color]{width:22px;height:22px;padding:0;border:1px solid var(--line);border-radius:5px;background:none;pointer-events:none}.environment-palette input[type=color]::-webkit-color-swatch-wrapper{padding:1px}.environment-palette input[type=color]::-webkit-color-swatch{border:0;border-radius:3px}
.branding-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.78fr);gap:22px;align-items:start}.branding-fields{min-width:0}.branding-preview-card{position:sticky;top:86px;padding:16px}.branding-preview-card h2{font-size:1rem;margin:0 0 10px}.branding-preview-card canvas{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.branding-preview-card p{font-size:.76rem;margin:8px 0 0;color:var(--muted)}
.logo-upload-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.logo-current{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#faf9f6;margin-bottom:10px}.logo-current img{width:90px;height:48px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;padding:3px}.color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.color-field{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center}.color-field input[type=color]{width:44px;height:42px;padding:2px;border:1px solid #d9d7d0;border-radius:8px;background:#fff}.color-field-copy{display:grid;gap:2px}.color-field-copy strong{font-size:.8rem}.color-field-copy small{font-size:.7rem;color:var(--muted)}
@media (max-width:860px){.branding-editor{grid-template-columns:1fr}.branding-preview-card{position:static}.brand-logo{height:32px;max-width:96px}.brand-name{max-width:150px}}
@media (max-width:600px){.brand-name{display:none}.color-grid{grid-template-columns:1fr}.logo-upload-row{grid-template-columns:1fr}.branding-preview-card{padding:12px}}
.print-branding{display:flex;align-items:center;gap:14px}.print-logo{width:auto;height:48px;max-width:130px;object-fit:contain}

/* v5.5: registros manuales de administración y formulario de documentación */
.manual-entry-card{max-width:900px;margin-inline:auto}.form-section-block{padding:18px 0}.form-section-block+.form-section-block{border-top:1px solid var(--line)}.form-section-title,.document-step-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.form-section-title>span,.step-number{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--primary-soft);color:var(--amber-dark);font-weight:900;font-size:.8rem}.form-section-title>div,.document-step-heading>div{display:grid;gap:2px}.form-section-title strong,.document-step-heading strong{font-size:.94rem}.form-section-title small,.document-step-heading small{font-size:.75rem;color:var(--muted)}.compact-pair{gap:10px}.input-suffix{display:flex;align-items:stretch}.input-suffix input{border-radius:8px 0 0 8px!important}.input-suffix>span{display:flex;align-items:center;padding:0 11px;border:1px solid #d9d7d0;border-left:0;border-radius:0 8px 8px 0;background:#f5f4f0;color:var(--muted);font-size:.8rem;font-weight:800}.manual-entry-note{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border:1px solid var(--primary-soft-strong);border-radius:9px;background:var(--primary-soft);font-size:.8rem}.manual-entry-note strong{white-space:nowrap}.manual-entry-note span{color:var(--muted)}.manual-origin-line{margin:-3px 0 8px}.file-drop-field{margin-bottom:0}.file-drop-zone{position:relative;display:grid;gap:3px;padding:17px;border:1.5px dashed #c8c5bc;border-radius:10px;background:#faf9f6}.file-drop-zone input[type=file]{margin-top:7px}.file-drop-zone small{color:var(--muted)}

.document-upload-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.65fr);gap:18px;padding:0;background:transparent;border:0}.document-form-main{display:grid;gap:12px}.document-form-step{padding:16px;border:1px solid var(--line);border-radius:11px;background:#faf9f6}.document-upload-workspace .document-form-grid{display:grid}.document-upload-workspace .document-form-grid label,.document-date-grid .field{display:block;margin:0}.document-upload-workspace .document-form-grid label>span{display:block;font-size:.8rem;font-weight:700;margin-bottom:5px}.document-upload-workspace .document-form-grid input,.document-upload-workspace .document-form-grid select,.document-date-grid input{width:100%;min-height:42px;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink)}.document-upload-workspace .document-form-grid input:focus,.document-upload-workspace .document-form-grid select:focus,.document-date-grid input:focus{border-color:var(--amber-dark);outline:3px solid var(--focus-ring-soft)}.document-file-panel{padding:16px;border:1px solid var(--line);border-radius:11px;background:var(--surface);align-self:start;box-shadow:var(--shadow)}.document-file-drop{display:grid;place-items:center;text-align:center;gap:4px;padding:22px 14px;margin-bottom:14px;border:2px dashed #c8c5bc;border-radius:10px;background:#faf9f6;cursor:pointer}.document-file-drop:hover{border-color:var(--amber-dark);background:var(--primary-soft)}.document-file-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--primary-soft);color:var(--amber-dark);font-size:1.3rem;font-weight:900}.document-file-drop>small{color:var(--muted);font-size:.72rem}.document-file-drop input[type=file]{width:100%;margin-top:10px;padding:7px;background:#fff;border:1px solid #d9d7d0;border-radius:8px;font-size:.75rem}.document-upload-help{margin:10px 0 0;text-align:center}.document-empty-state{display:grid;place-items:center;gap:4px;padding:24px;border:1px dashed var(--line);border-radius:10px;background:#faf9f6;text-align:center}.document-section-heading{align-items:flex-start}
@media (max-width:860px){.document-upload-workspace{grid-template-columns:1fr}.document-file-panel{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.document-file-panel .document-step-heading{grid-column:1/-1}.document-file-panel .document-file-drop{margin:0}.document-file-panel .btn{min-width:190px}.document-upload-help{grid-column:1/-1;text-align:left}}
@media (max-width:600px){.manual-entry-note{display:grid}.manual-entry-note strong{white-space:normal}.compact-pair{grid-template-columns:1fr 1fr}.document-form-step,.document-file-panel{padding:13px}.document-file-panel{display:block}.document-file-panel .document-file-drop{margin-bottom:12px}.document-file-panel .btn{width:100%}.document-date-grid{grid-template-columns:1fr}.heading-actions .btn{flex:1 1 auto}}

/* v5.7.6: galería compacta de fotografías + visor carrusel */
.vehicle-gallery-upload{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.2fr) auto;gap:12px;align-items:end;padding:14px;margin:12px 0 18px;border:1px solid var(--line);border-radius:11px;background:#faf9f6}.vehicle-gallery-upload .field{margin:0}.vehicle-photo-drop{display:grid;gap:3px;align-content:center;min-height:86px;padding:12px 14px;border:1.5px dashed #c8c5bc;border-radius:10px;background:#fff;cursor:pointer}.vehicle-photo-drop .document-file-icon{width:28px;height:28px;font-size:1rem}.vehicle-photo-drop input[type=file]{margin-top:5px;width:100%;font-size:.74rem}.vehicle-detail-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}
.vehicle-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(142px,176px));gap:12px;justify-content:start;align-items:start}.vehicle-gallery-card{display:grid;grid-template-rows:auto 1fr;width:100%;max-width:176px;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--surface);box-shadow:var(--shadow)}.vehicle-gallery-image{position:relative;display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:#efeee9;cursor:zoom-in}.vehicle-gallery-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .15s ease}.vehicle-gallery-image:hover img{transform:scale(1.025)}.vehicle-gallery-image:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px;z-index:1}.vehicle-gallery-zoom{position:absolute;right:7px;bottom:7px;padding:4px 7px;border-radius:999px;background:rgba(20,24,32,.76);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.01em;opacity:0;transform:translateY(3px);transition:opacity .15s ease,transform .15s ease}.vehicle-gallery-image:hover .vehicle-gallery-zoom,.vehicle-gallery-image:focus-visible .vehicle-gallery-zoom{opacity:1;transform:none}.vehicle-gallery-meta{display:grid;gap:6px;padding:8px}.vehicle-gallery-copy{display:grid;gap:3px}.vehicle-gallery-meta p{margin:0;font-size:.78rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.vehicle-gallery-meta small{font-size:.68rem;line-height:1.35}.vehicle-gallery-actions-row{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.vehicle-gallery-meta form{margin:0}.vehicle-gallery-meta .btn-small{padding:5px 8px;font-size:.7rem}
.vehicle-gallery-lightbox[hidden]{display:none!important}.vehicle-gallery-lightbox{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:24px}.vehicle-gallery-lightbox-backdrop{position:absolute;inset:0;background:rgba(10,13,19,.86);backdrop-filter:blur(3px)}.vehicle-gallery-lightbox-dialog{position:relative;z-index:1;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;width:min(1120px,calc(100vw - 48px));max-height:calc(100vh - 48px);padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:#11151d;box-shadow:0 24px 80px rgba(0,0,0,.45)}.vehicle-gallery-stage{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;min-width:0;min-height:0;margin:0}.vehicle-gallery-stage img{display:block;max-width:100%;max-height:calc(100vh - 170px);width:auto;height:auto;margin:auto;object-fit:contain;border-radius:6px;background:#0b0e14}.vehicle-gallery-stage-meta{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:10px 4px 0;color:#fff}.vehicle-gallery-stage-meta>div:first-child{min-width:0}.vehicle-gallery-stage-meta strong{display:block;font-size:.9rem;color:#fff;overflow-wrap:anywhere}.vehicle-gallery-stage-meta small{display:block;margin-top:3px;color:#aeb6c5;font-size:.74rem}.vehicle-gallery-stage-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.vehicle-gallery-stage-actions .btn{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff}.vehicle-gallery-stage-actions .btn:hover{background:rgba(255,255,255,.14)}.vehicle-gallery-close{position:absolute;top:8px;right:8px;z-index:3;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(10,13,19,.72);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}.vehicle-gallery-nav{display:grid;place-items:center;width:40px;height:54px;margin:auto;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:2rem;cursor:pointer}.vehicle-gallery-nav:hover,.vehicle-gallery-close:hover{background:rgba(255,255,255,.16)}.vehicle-gallery-nav:disabled{opacity:.28;cursor:default}body.gallery-lightbox-open{overflow:hidden}
@media (max-width:900px){.vehicle-gallery-upload{grid-template-columns:1fr 1fr}.vehicle-gallery-upload .btn{grid-column:1/-1}.vehicle-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.vehicle-gallery-card{max-width:none}}
@media (max-width:760px){.vehicle-gallery-lightbox{padding:0}.vehicle-gallery-lightbox-dialog{width:100vw;max-height:100dvh;min-height:100dvh;border:0;border-radius:0;grid-template-columns:42px minmax(0,1fr) 42px;padding:10px 4px}.vehicle-gallery-stage img{max-height:calc(100dvh - 150px)}.vehicle-gallery-stage-meta{padding:8px 4px 0;flex-direction:column;gap:7px}.vehicle-gallery-stage-actions{justify-content:flex-start}}
@media (max-width:560px){.vehicle-gallery-upload{grid-template-columns:1fr}.vehicle-gallery-upload .btn{grid-column:auto;width:100%}.vehicle-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vehicle-gallery-meta{padding:7px}.vehicle-gallery-lightbox-dialog{grid-template-columns:36px minmax(0,1fr) 36px}.vehicle-gallery-nav{width:30px;height:46px;font-size:1.65rem}.vehicle-gallery-stage-actions .btn{display:none}}

/* v5.8: diagnóstico SMTP gestionado por la propia aplicación */
.smtp-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.smtp-config-grid .summary-item{padding:14px;border:1px solid var(--line);border-radius:10px;background:#faf9f6;min-width:0}.smtp-config-grid .summary-item strong{overflow-wrap:anywhere}.smtp-test-form{align-items:end;max-width:760px}.smtp-test-action{display:flex;align-items:end;height:100%;padding-bottom:1px}.smtp-env-example{margin:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#171a21;color:#f5f5f5;overflow:auto;font-size:.78rem;line-height:1.55;white-space:pre}
@media(max-width:980px){.smtp-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.smtp-config-grid{grid-template-columns:1fr}.smtp-test-form{grid-template-columns:1fr}.smtp-test-action .btn{width:100%}}

/* v5.8.1: acceso público neutro, sin pistas funcionales ni branding */
.auth-shell-neutral{width:min(410px,calc(100% - 32px))}.auth-card-neutral{padding:30px}.auth-card-neutral h1{text-align:center;margin-bottom:7px}.auth-card-neutral>p{text-align:center;margin-bottom:24px}.auth-card-neutral .btn{margin-top:4px}

/* v5.8.3: próximo mantenimiento visible para administración y conductor */
.vehicle-profile-summary-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.vehicle-status-badges{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.maintenance-badge{min-width:108px;min-height:58px;border:2px solid;border-radius:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:7px 10px;line-height:1.05;text-align:center}
.maintenance-badge span{font-size:.58rem;font-weight:900;letter-spacing:.04em;margin-bottom:5px}.maintenance-badge strong{font-size:.76rem;white-space:nowrap}
.maintenance-ok{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.maintenance-warning{border-color:var(--amber-dark);background:var(--primary-soft);color:var(--amber-dark)}
.maintenance-alert{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.maintenance-unknown{border-color:#8b9098;background:#efefec;color:#6b7280}
.maintenance-dashboard-line{margin-top:4px}.maintenance-followup-block{background:var(--primary-soft);padding-inline:16px;border-radius:11px}.maintenance-followup-toggle{margin-top:0}
@media (max-width:1050px){.vehicle-profile-summary-5{grid-template-columns:repeat(3,minmax(0,1fr))}.vehicle-profile-summary-5 .summary-item{border-bottom:1px solid var(--line)}}
@media (max-width:760px){.vehicle-profile-summary-5{grid-template-columns:1fr}.vehicle-status-badges{width:100%}.maintenance-badge{flex:1}.itv-badge{flex:0 0 58px}.vehicle-header{flex-wrap:wrap}.vehicle-header-copy{flex:1 1 260px}}
@media (max-width:480px){.vehicle-status-badges{align-items:stretch}.maintenance-badge{min-width:0}.vehicle-header-actions{padding-left:0}.maintenance-followup-block{padding-inline:12px}}

/* v5.8.7: finanzas y valoración de vehículos */
.finance-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:22px}.finance-metric{padding:16px;display:grid;gap:5px}.finance-metric>span{font-size:.75rem;color:var(--muted);font-weight:700}.finance-metric>strong{font-family:"SFMono-Regular",Consolas,monospace;font-size:1.25rem;letter-spacing:-.03em}.finance-metric>small{font-size:.72rem;color:var(--muted)}
.finance-valuation-form textarea,.finance-valuation-form input,.market-sample-form input,.market-sample-form select,.field textarea{width:100%;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink)}.field textarea{resize:vertical;min-height:90px;font:inherit}.finance-valuation-form textarea:focus,.field textarea:focus{border-color:var(--amber-dark);outline:3px solid var(--focus-ring-soft)}
.finance-cost-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 16px}.finance-cost-summary>span{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#faf9f6;color:var(--muted);font-size:.75rem}.finance-cost-summary strong{color:var(--ink);font-size:.92rem}
.market-review-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:14px;margin-bottom:16px}.market-search-panel,.market-estimate-panel{padding:14px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.market-search-panel>strong,.market-estimate-panel>span{display:block;font-size:.78rem;font-weight:800;margin-bottom:6px}.market-search-query{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:"SFMono-Regular",Consolas,monospace;font-size:.82rem;overflow-wrap:anywhere}.market-links{justify-content:flex-start;margin-top:10px}.market-estimate-panel{display:grid;align-content:center;gap:5px}.market-estimate-panel>strong{font-family:"SFMono-Regular",Consolas,monospace;font-size:1.5rem}.market-estimate-panel>small{color:var(--muted);font-size:.74rem}.market-sample-form{padding:15px;margin:0 0 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.market-samples-table{margin-top:12px}.finance-table td{vertical-align:top}
@media (max-width:980px){.finance-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-cost-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.finance-metrics{grid-template-columns:1fr 1fr}.market-review-grid{grid-template-columns:1fr}.finance-table{min-width:980px}}
@media (max-width:480px){.finance-metrics,.finance-cost-summary{grid-template-columns:1fr}.market-links{display:grid}.market-links .btn{width:100%}}

/* v5.8.8: valoración automática de mercado */
.market-heading{align-items:flex-start}.market-heading form{margin:0}.market-auto-grid{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(320px,1.3fr);gap:14px;margin:12px 0}.market-auto-summary,.market-auto-context{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.market-auto-summary>span,.market-auto-context>span{font-size:.76rem;font-weight:800;color:var(--muted)}.market-auto-summary>strong{font-family:"SFMono-Regular",Consolas,monospace;font-size:1.55rem}.market-auto-context>strong{font-size:.92rem}.market-auto-summary small,.market-auto-context small{font-size:.74rem;color:var(--muted)}.market-scan-status{padding:14px;margin:0 0 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.market-scan-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.market-scan-title small{margin-left:auto;color:var(--muted)}.market-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.market-provider-item{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#faf9f6}.market-provider-item>strong{font-size:.8rem}.market-provider-item>small{grid-column:1/-1;color:var(--muted);font-size:.7rem;overflow-wrap:anywhere}.market-scan-empty{display:grid;gap:3px;padding:16px;margin-bottom:16px;border:1px dashed var(--line);border-radius:10px;background:#faf9f6}.market-manual-fallback{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.market-manual-fallback>summary{cursor:pointer;font-weight:800;font-size:.82rem}.market-manual-fallback .market-sample-form{margin-top:12px}.market-samples-table .pill{margin-top:4px}
@media (max-width:860px){.market-auto-grid{grid-template-columns:1fr}.market-provider-grid{grid-template-columns:1fr 1fr}.market-scan-title small{width:100%;margin-left:0}}
@media (max-width:560px){.market-heading{display:grid}.market-heading form,.market-heading .btn{width:100%}.market-provider-grid{grid-template-columns:1fr}}

/* v5.8.9: finanzas ampliadas, depreciación y exportación Excel */
.finance-table-wide{min-width:1320px}.finance-metrics-v589{grid-template-columns:repeat(6,minmax(0,1fr))}.finance-master-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.finance-master-grid>div{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#faf9f6;min-width:0}.finance-master-grid span{font-size:.72rem;color:var(--muted);font-weight:700}.finance-master-grid strong{font-size:.84rem;overflow-wrap:anywhere}.finance-form-section{padding:18px 0}.finance-form-section+.finance-form-section{border-top:1px solid var(--line)}.finance-form-section .field input,.finance-form-section .field select,.depreciation-adjustment-form .field input{width:100%;min-height:42px;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink)}.finance-calculated-strip{display:grid;grid-template-columns:auto auto 1fr;gap:8px 14px;align-items:center;margin-top:12px;padding:11px 13px;border:1px solid var(--primary-soft-strong);border-radius:9px;background:var(--primary-soft)}.finance-calculated-strip>span{font-size:.76rem;font-weight:800}.finance-calculated-strip>strong{font-family:"SFMono-Regular",Consolas,monospace}.finance-calculated-strip>small{color:var(--muted);font-size:.72rem}.depreciation-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}.depreciation-live-grid>div{display:grid;gap:3px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#faf9f6}.depreciation-live-grid span{font-size:.7rem;color:var(--muted);font-weight:800}.depreciation-live-grid strong{font-size:.87rem}.depreciation-live-grid small{font-size:.7rem;color:var(--muted)}.depreciation-adjustment-form{display:grid;grid-template-columns:170px 170px minmax(260px,1fr) auto;gap:10px;align-items:end;margin:12px 0 16px}.depreciation-adjustment-form .field{margin:0}.finance-cost-summary-v589{grid-template-columns:repeat(6,minmax(0,1fr))}.depreciation-policy-list{display:grid;gap:16px}.depreciation-policy-form{align-items:end}.depreciation-rules{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.depreciation-rules h3{font-size:.9rem;margin:0 0 10px}.depreciation-rule-row{display:grid;grid-template-columns:minmax(180px,1.3fr) 120px 120px 140px auto;gap:8px;align-items:end;padding:8px 0}.depreciation-rule-row+.depreciation-rule-row{border-top:1px dashed var(--line)}.depreciation-rule-row .field{margin:0}.depreciation-rule-row input{width:100%;min-height:38px;border:1px solid #d9d7d0;border-radius:8px;padding:7px 9px}.tiny{font-size:.68rem}.vehicle-master-data{scroll-margin-top:84px}
@media(max-width:1120px){.finance-metrics-v589{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-cost-summary-v589{grid-template-columns:repeat(3,minmax(0,1fr))}.depreciation-adjustment-form{grid-template-columns:1fr 1fr}.depreciation-adjustment-form .span-2{grid-column:1/-1}.depreciation-adjustment-form .btn{grid-column:1/-1;justify-self:start}.depreciation-rule-row{grid-template-columns:1fr 1fr 1fr}.depreciation-rule-row .field:first-of-type{grid-column:1/-1}}
@media(max-width:760px){.finance-master-grid,.depreciation-live-grid{grid-template-columns:1fr 1fr}.finance-metrics-v589,.finance-cost-summary-v589{grid-template-columns:1fr 1fr}.finance-calculated-strip{grid-template-columns:1fr}.depreciation-rule-row{grid-template-columns:1fr 1fr}.depreciation-rule-row .field:first-of-type{grid-column:1/-1}.depreciation-rule-row .btn{grid-column:1/-1}}
@media(max-width:520px){.finance-master-grid,.depreciation-live-grid,.finance-metrics-v589,.finance-cost-summary-v589,.depreciation-adjustment-form{grid-template-columns:1fr}.depreciation-adjustment-form .span-2{grid-column:auto}.depreciation-rule-row{grid-template-columns:1fr}.depreciation-rule-row .field:first-of-type{grid-column:auto}}
.finance-import-card{max-width:820px}.finance-import-form{max-width:720px}.finance-import-metrics{grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px}.finance-import-table{min-width:960px}.finance-import-confirm{margin-top:16px}
@media(max-width:620px){.finance-import-metrics{grid-template-columns:1fr}}

/* v5.8.11: responsabilidad operativa */
.vehicle-responsibility{display:grid;gap:12px}.vehicle-responsibility-note{margin:2px 0 0}.vehicle-responsibility [hidden]{display:none!important}

/* v5.8.11.2: correccion overflow tabla de finanzas */
.finance-table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.finance-table-wide th:last-child,.finance-table-wide td:last-child{position:sticky;right:0;z-index:2;background:var(--surface);box-shadow:-10px 0 14px -14px rgba(28,35,51,.45)}
.finance-table-wide th:last-child{z-index:3;background:#faf9f6}
.finance-table-wide tr.row-muted td:last-child{background:var(--surface)}
@media(max-width:760px){.finance-table-wide{min-width:1180px}}
/* v5.8.11.3 - Tabla de vehiculos ancha y responsive */
.vehicle-table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.vehicle-table-wide{min-width:1260px}
.vehicle-table-wide th:last-child,.vehicle-table-wide td:last-child{position:sticky;right:0;z-index:2;background:var(--surface);box-shadow:-10px 0 14px -14px rgba(28,35,51,.45)}
.vehicle-table-wide th:last-child{z-index:3;background:#faf9f6}
.vehicle-table-wide tr.row-muted td:last-child{background:var(--surface)}
@media(max-width:760px){.vehicle-table-wide{min-width:1180px}}

/* v5.8.12 - Comparables de mercado y evidencias */
.market-evidence-actions{grid-column:1/-1;justify-content:flex-start;margin-top:4px}.market-samples-table table{min-width:1180px}.market-samples-table td{vertical-align:top}.market-samples-table th:nth-child(4),.market-samples-table td:nth-child(4){min-width:240px}


/* v5.8.12.1 - Entornos completos en escritorio y columnas de vehiculos */
.environment-table-wrap{width:100%;max-width:100%;overflow:visible}
.environment-table{table-layout:fixed;font-size:.82rem}
.environment-table th,.environment-table td{padding-left:8px;padding-right:8px}
.environment-table th{white-space:normal;line-height:1.2}
.environment-table th:nth-child(1){width:27%}
.environment-table th:nth-child(2){width:10%}
.environment-table th:nth-child(3){width:8%}
.environment-table th:nth-child(4){width:9%}
.environment-table th:nth-child(5){width:8%}
.environment-table th:nth-child(6){width:8%}
.environment-table th:nth-child(7){width:8%}
.environment-table th:nth-child(8){width:22%}
.environment-table .environment-identity>div{min-width:0}
.environment-table .environment-identity .small{overflow-wrap:anywhere}
.environment-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap;white-space:normal}
.environment-actions form{display:inline-flex!important;margin:0!important}
.environment-actions .btn-small{padding-left:7px;padding-right:7px;font-size:.75rem}
.vehicle-table-wide{min-width:1450px}
.vehicle-table-wide .vehicle-vin{min-width:185px;white-space:nowrap}
@media(max-width:980px){
  .environment-table-wrap{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .environment-table{table-layout:auto;min-width:960px}
}

/* v5.8.12.3 - Tabla de vehiculos ajustada a PC y estado vendido */
.vehicle-table-wrap{overflow:visible;scrollbar-gutter:auto}
.vehicle-table-wide{width:100%;min-width:0;table-layout:fixed;font-size:.79rem}
.vehicle-table-wide th,.vehicle-table-wide td{padding-left:7px;padding-right:7px;overflow-wrap:anywhere}
.vehicle-table-wide th{white-space:normal;line-height:1.15}
.vehicle-table-wide th:nth-child(1){width:7%}
.vehicle-table-wide th:nth-child(2){width:13%}
.vehicle-table-wide th:nth-child(3){width:13%}
.vehicle-table-wide th:nth-child(4){width:14%}
.vehicle-table-wide th:nth-child(5){width:11%}
.vehicle-table-wide th:nth-child(6){width:10%}
.vehicle-table-wide th:nth-child(7){width:7%}
.vehicle-table-wide th:nth-child(8){width:7%}
.vehicle-table-wide th:nth-child(9){width:6%}
.vehicle-table-wide th:nth-child(10){width:12%}
.vehicle-table-wide .vehicle-vin{min-width:0;white-space:nowrap;font-size:.72rem;letter-spacing:-.025em}
.vehicle-table-wide .actions{white-space:normal}
.vehicle-table-wide .actions form{margin:2px 0 2px 3px}
.vehicle-table-wide .actions .btn-small{padding-left:6px;padding-right:6px;font-size:.72rem}
.vehicle-table-wide th:last-child,.vehicle-table-wide td:last-child{position:static;right:auto;box-shadow:none}
.vehicle-row-sold td{background:#f2f8f4}
.vehicle-table-wide tr.vehicle-row-sold td:last-child{background:#f2f8f4}
.sold-check-form{display:inline-flex;align-items:center;margin:0}
.sold-check-label{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap}
.sold-check-label input{width:17px;height:17px;margin:0;accent-color:var(--green);cursor:pointer}
.sold-check-label.is-sold{color:var(--green)}
.vehicle-profile-summary-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.vehicle-sold-summary .sold-check-form{margin:2px 0}
.vehicle-sold-summary .sold-check-label strong{font-size:1rem}
@media(max-width:1050px){.vehicle-profile-summary-6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){
  .vehicle-table-wrap{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
  .vehicle-table-wide{min-width:1260px;table-layout:auto}
  .vehicle-table-wide th:nth-child(n){width:auto}
  .vehicle-table-wide .vehicle-vin{min-width:165px}
  .vehicle-table-wide th:last-child,.vehicle-table-wide td:last-child{position:sticky;right:0;z-index:2;background:var(--surface);box-shadow:-10px 0 14px -14px rgba(28,35,51,.45)}
  .vehicle-table-wide th:last-child{z-index:3;background:#faf9f6}
  .vehicle-table-wide tr.vehicle-row-sold td:last-child{background:#f2f8f4}
}
@media(max-width:760px){.vehicle-profile-summary-6{grid-template-columns:1fr}}

/* v5.8.12.5 - Control de venta visible y exclusivo de la ficha */
.vehicle-sale-status-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;border-left:4px solid var(--muted)}
.vehicle-sale-status-card.is-sold{border-left-color:var(--green);background:#f2f8f4}
.vehicle-sale-status-copy h2{margin:0 0 3px;font-size:1.05rem}
.vehicle-sale-status-copy p{margin:0}
.vehicle-sale-status-form{display:flex;align-items:center;gap:14px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.vehicle-sale-status-form .sold-check-label{font-size:.9rem}
.vehicle-sale-status-form .sold-check-label input,.vehicle-sale-status-unavailable .sold-check-label input{width:22px;height:22px}
.vehicle-sale-status-unavailable{display:grid;gap:5px;justify-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}
.vehicle-sale-status-unavailable small{color:var(--muted)}
@media(max-width:700px){.vehicle-sale-status-card{align-items:flex-start;flex-direction:column}.vehicle-sale-status-form,.vehicle-sale-status-unavailable{width:100%}.vehicle-sale-status-form{justify-content:space-between}}

/* v5.8.12.6 - Navegación por periodos de reporte */
.report-period-selector{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:end;gap:14px;padding:14px 16px;margin-bottom:18px}
.report-period-selector form{display:flex;align-items:end;justify-content:center;gap:8px;margin:0}
.report-period-selector label{display:grid;gap:4px}
.report-period-selector label span{font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.report-period-selector input[type=month]{min-height:34px;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:5px 9px;color:var(--ink)}
.report-period-next{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.report-period-current{font-size:.78rem;font-weight:700;color:var(--amber-dark);text-decoration:underline;text-underline-offset:3px}
.btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
@media(max-width:760px){.report-period-selector{grid-template-columns:1fr}.report-period-selector form{justify-content:flex-start;flex-wrap:wrap}.report-period-next{justify-content:flex-start}}

/* v5.8.12.7 - Inventario global y traspaso de vehículos entre empresas */
.vehicle-transfer-filter{margin-bottom:14px}
.vehicle-transfer-filter-form{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(220px,1fr) auto;gap:12px;align-items:end}
.vehicle-transfer-filter-form .field,.vehicle-transfer-target{margin:0}
.vehicle-transfer-filter-form input,.vehicle-transfer-filter-form select,.vehicle-transfer-target select{width:100%;min-height:40px;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:8px 10px;color:var(--ink)}
.vehicle-transfer-filter-actions{display:flex;gap:8px;align-items:center}
.vehicle-transfer-panel{margin-bottom:14px;padding:14px 16px}
.vehicle-transfer-panel form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(260px,1fr) auto;gap:14px;align-items:end;margin:0}
.vehicle-transfer-select-all{display:flex;align-items:center;gap:8px;align-self:center;font-size:.82rem;font-weight:700;cursor:pointer}
.vehicle-transfer-select-all input,.vehicle-transfer-check input{width:18px;height:18px;margin:0;accent-color:var(--primary);cursor:pointer}
.vehicle-transfer-check input:disabled{cursor:not-allowed;opacity:.4}
.vehicle-transfer-table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.vehicle-transfer-table{min-width:1180px;font-size:.8rem}
.vehicle-transfer-table th,.vehicle-transfer-table td{padding-left:8px;padding-right:8px}
.vehicle-transfer-table .vehicle-transfer-check{width:46px;text-align:center}
.vehicle-transfer-table .vehicle-vin{white-space:nowrap;font-size:.73rem}
.vehicle-transfer-result-note{margin:10px 14px 4px}
@media(max-width:820px){.vehicle-transfer-filter-form,.vehicle-transfer-panel form{grid-template-columns:1fr}.vehicle-transfer-filter-actions{flex-wrap:wrap}.vehicle-transfer-panel .btn{justify-self:start}}

/* v5.8.12.11 - Plantillas editables y Web Push */
.reminder-template-form{display:grid;gap:18px}.reminder-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.template-editor-card{margin:0}.template-editor-card .field input,.template-editor-card .field textarea,.reminder-test-card .field input,.reminder-test-card .field select{width:100%;border:1px solid #d9d7d0;border-radius:8px;background:#fff;padding:9px 11px;color:var(--ink)}.template-editor-card .field input,.reminder-test-card .field input,.reminder-test-card .field select{min-height:42px}.template-editor-card textarea{resize:vertical;font:inherit;line-height:1.5}.template-variable-list{display:flex;gap:8px;flex-wrap:wrap}.template-variable-list code{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#faf9f6;color:var(--amber-dark);font-weight:800}.push-device-setup{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px 14px;align-items:center;padding:13px;margin-top:16px;border:1px solid var(--line);border-radius:9px;background:#faf9f6}.push-device-setup p{margin:3px 0 0}.push-device-setup>[data-push-message]{grid-column:1/-1;margin:0}.push-controls{display:flex;gap:8px;flex-wrap:wrap}.push-message-error{color:#a92e2e!important;font-weight:700}.reminder-sample-grid{margin-bottom:16px}.reminder-test-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.reminder-test-channel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.reminder-test-channel .field{margin:0}.sticky-template-actions{position:sticky;bottom:12px;z-index:15;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(20,25,35,.16);backdrop-filter:blur(8px)}.push-preferences-card{margin-top:18px}.push-preferences-card .section-heading{align-items:flex-start}
@media(max-width:900px){.reminder-template-grid,.reminder-test-channels{grid-template-columns:1fr}.push-device-setup{grid-template-columns:1fr auto}.push-device-setup>[data-push-status]{grid-column:2;grid-row:1}.reminder-test-channel{grid-template-columns:1fr}.reminder-test-channel .btn{justify-self:start}}
@media(max-width:560px){.push-device-setup{grid-template-columns:1fr}.push-device-setup>[data-push-status]{grid-column:auto;grid-row:auto;justify-self:start}.sticky-template-actions{position:static}.push-controls .btn{flex:1}}
