:root{--purple:#440099;--purple-dark:#2f006c;--purple-soft:#f2ebfb;--bg:#f4f5f7;--surface:#fff;--text:#20242a;--muted:#717780;--line:#e2e5e9;--green:#18864b;--green-soft:#e8f6ee;--orange:#b46100;--orange-soft:#fff2df;--red:#c42a2a;--red-soft:#fdeaea;--shadow:0 8px 24px rgba(28,32,38,.07);--radius:16px}
*{box-sizing:border-box}body{margin:0;font-family:Outfit,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:#fff;border-right:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:0 7px 20px}.brand-mark{width:44px;height:44px;border-radius:12px;background:var(--purple);color:#fff;display:grid;place-items:center;font-weight:700}.brand strong,.brand span{display:block}.brand span{font-size:.82rem;color:var(--muted);margin-top:2px}.vehicle-switcher{border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:18px}.vehicle-switcher label{font-size:.75rem;color:var(--muted);display:block;margin-bottom:6px}.vehicle-switcher select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px;margin-bottom:8px}.main-nav{display:grid;gap:6px}.nav-item{border:0;background:transparent;padding:12px 13px;text-align:left;border-radius:10px;color:#4d535b;font-weight:500}.nav-item:hover{background:#f7f7f8}.nav-item.active{background:var(--purple-soft);color:var(--purple);box-shadow:inset 4px 0 var(--purple)}.sidebar-footer{margin-top:auto;padding:18px 7px 0;border-top:1px solid var(--line)}.sidebar-footer strong,.sidebar-footer small{display:block}.sidebar-footer small{color:var(--muted);margin-top:4px}.main-content{margin-left:270px;padding:0 32px 44px;min-height:100vh}.topbar{min-height:104px;display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid var(--line);margin-bottom:26px}.eyebrow{margin:0 0 5px;color:var(--purple);font-size:.73rem;font-weight:700;letter-spacing:.12em}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;margin-bottom:0}.top-actions,.actions,.form-actions,.tabs{display:flex;gap:10px;flex-wrap:wrap}.button{border:1px solid transparent;border-radius:10px;padding:10px 15px;font-weight:600}.button.primary{background:var(--purple);color:#fff}.button.primary:hover{background:var(--purple-dark)}.button.secondary{background:#fff;border-color:var(--line);color:var(--text)}.button.danger{background:var(--red-soft);color:var(--red)}.button.small{padding:7px 10px;font-size:.82rem}.view{display:none}.view.active{display:block}.garage-grid,.vehicle-grid,.document-grid,.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card,.panel,.vehicle-card,.document-card,.catalog-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel,.catalog-card{padding:20px}.vehicle-card{overflow:hidden}.vehicle-photo{background:#eceef1;display:grid;place-items:center;overflow:hidden;position:relative}.vehicle-photo img{width:100%;height:auto;max-height:460px;object-fit:contain;display:block;margin:auto}.vehicle-placeholder{font-size:3rem;font-weight:700;color:#aaa}.vehicle-card-body{padding:18px}.vehicle-card h2{margin-bottom:4px}.vehicle-card p{color:var(--muted)}.active-ribbon{position:absolute;top:12px;left:12px;background:var(--purple);color:#fff;padding:6px 9px;border-radius:999px;font-size:.75rem;font-weight:700}.add-card{min-height:325px;display:grid;place-items:center;border:2px dashed #cfd3d8;background:transparent;box-shadow:none}.add-card button{font-size:1rem}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.stat-label{color:var(--muted);font-size:.82rem}.stat-value{font-size:1.45rem;font-weight:700;margin-top:7px}.stat-note{font-size:.8rem;color:var(--muted);margin-top:4px}.content-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:20px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-header h2{margin:0;font-size:1.15rem}.panel-header p{margin:4px 0 0;color:var(--muted);font-size:.86rem}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filters{display:flex;gap:9px;flex-wrap:wrap}.filters input,.filters select,.form-grid input,.form-grid select,.form-grid textarea{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 11px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}td{font-size:.9rem}.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:700}.badge.green{background:var(--green-soft);color:var(--green)}.badge.orange{background:var(--orange-soft);color:var(--orange)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.purple{background:var(--purple-soft);color:var(--purple)}.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:95px 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.timeline-date,.muted,small{color:var(--muted)}.timeline-item strong{display:block}.timeline-item p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.maintenance-section{margin-bottom:22px}.maintenance-card{border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:10px;display:grid;grid-template-columns:1fr auto;gap:12px}.maintenance-card p{margin:5px 0 0;color:var(--muted);font-size:.84rem}.document-card{padding:17px}.document-icon{width:42px;height:42px;border-radius:11px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-weight:700;margin-bottom:12px}.document-card h3{font-size:1rem;overflow-wrap:anywhere}.document-card p{font-size:.83rem;color:var(--muted)}.catalog-card h3{margin-bottom:10px}.catalog-list{display:flex;flex-wrap:wrap;gap:7px}.catalog-item{border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:.79rem;background:#fafafa}.tabs{margin-bottom:16px}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px}.tab.active{background:var(--purple);color:#fff;border-color:var(--purple)}.modal-backdrop{position:fixed;inset:0;background:rgba(25,28,33,.58);display:grid;place-items:center;padding:18px;z-index:100}.modal-backdrop[hidden]{display:none}.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.modal.large{width:min(900px,100%)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px}.icon-button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.35rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;font-size:.88rem}.form-grid .full{grid-column:1/-1}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}.form-actions{justify-content:flex-end;margin-top:4px}.vehicle-form-actions{align-items:center}.action-spacer{flex:1}.attachment-list{display:grid;gap:7px}.attachment-row{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);padding:9px;border-radius:9px}.text-button{border:0;background:transparent;color:var(--purple);font-weight:600;padding:4px}.empty-state{text-align:center;padding:34px 18px;color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;background:#24272c;color:#fff;padding:11px 15px;border-radius:10px;opacity:0;transform:translateY(80px);transition:.2s;z-index:200}.toast.visible{opacity:1;transform:translateY(0)}.mobile-menu,.mobile-nav{display:none}
@media(max-width:1100px){.garage-grid,.vehicle-grid,.document-grid,.catalog-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}}
@media(max-width:760px){body{padding-bottom:64px}.sidebar{transform:translateX(-100%);transition:.22s}.sidebar.open{transform:translateX(0);box-shadow:12px 0 35px rgba(0,0,0,.18)}.main-content{margin-left:0;padding:0 15px 28px}.topbar{min-height:90px}.mobile-menu{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:9px}.top-actions{display:none}.garage-grid,.vehicle-grid,.document-grid,.catalog-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.mobile-nav{position:fixed;inset:auto 0 0;height:62px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:40}.mobile-nav button{border:0;background:transparent;color:var(--muted);font-size:.72rem}.mobile-nav button.active{color:var(--purple);font-weight:700}.timeline-item{grid-template-columns:75px 1fr}.timeline-item>div:last-child{grid-column:2}.vehicle-photo{min-height:0}}

/* V3 — formulaire simplifié et catalogue compact */
.field-help{display:block;margin-top:2px;color:var(--muted);font-size:.78rem}
.operation-picker-label input{font-size:1rem;padding:12px 13px}
.advanced-options{border:1px solid var(--line);border-radius:11px;padding:11px 13px;background:#fafafa}
.advanced-options summary{cursor:pointer;font-weight:600;color:var(--purple)}
.advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}
.catalog-filters{margin-bottom:14px}
.catalog-filters input{min-width:280px}
.vehicle-photo{background:#f3f4f6}
.vehicle-photo img{background:#f3f4f6}
@media(max-width:760px){.advanced-grid{grid-template-columns:1fr}.catalog-filters input{min-width:0;width:100%}}

/* V4 — photos au ratio réel */
.vehicle-card{align-self:start}
.vehicle-photo{min-height:0;height:auto;overflow:visible;padding:0}
.vehicle-photo img{width:100%;height:auto;max-height:none;object-fit:contain;padding:0;display:block}
.active-ribbon{z-index:2}

/* V4 — import des factures de pièces */
.invoice-section{margin-bottom:18px}
.invoice-list{display:grid;gap:14px}
.invoice-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}
.invoice-card-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.invoice-card-header p{margin:4px 0 0;color:var(--muted);font-size:.84rem}
.invoice-total{font-size:1.25rem;font-weight:700;white-space:nowrap}
.invoice-items{border-top:1px solid var(--line);margin-bottom:10px}
.invoice-item-row{display:grid;grid-template-columns:1fr 150px 110px;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}
.invoice-item-row small{display:block;margin-top:3px}
.invoice-import-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.invoice-lines-header{display:flex!important;justify-content:space-between;align-items:center;gap:12px}
.invoice-lines-header p{margin:4px 0 0}
.invoice-line-editor{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#fafafa}
.invoice-line-grid{display:grid;grid-template-columns:2fr 1fr 1fr 90px 120px 120px;gap:10px;align-items:end}
.invoice-line-grid label{display:grid;gap:5px;font-size:.8rem}
.invoice-line-grid .operation-link{grid-column:1/6}
.danger-text{color:var(--red)}
@media(max-width:1050px){
  .invoice-line-grid{grid-template-columns:1fr 1fr 1fr}
  .invoice-line-grid .operation-link{grid-column:1/3}
}
@media(max-width:760px){
  .invoice-item-row{grid-template-columns:1fr;gap:4px}
  .invoice-line-grid{grid-template-columns:1fr}
  .invoice-line-grid .operation-link{grid-column:auto}
  .invoice-card-header{display:block}
  .invoice-total{margin-top:8px}
}


/* V5 — cohérence générale et responsive */
:root{
  --content-max: 1580px;
  --card-radius: 14px;
}

.main-content{
  padding-left: clamp(18px, 2.2vw, 34px);
  padding-right: clamp(18px, 2.2vw, 34px);
}

.topbar,
.view.active{
  width: min(100%, var(--content-max));
  margin-left: auto;
  margin-right: auto;
}

.topbar{
  min-height: 96px;
  margin-bottom: 22px;
}

h1{font-size:clamp(1.65rem,2vw,2rem)}
h2{line-height:1.2}
.toolbar h2{margin-bottom:5px}
.toolbar p{margin-bottom:0}

.panel,
.vehicle-card,
.document-card,
.invoice-card,
.stat-card{
  border-radius:var(--card-radius);
}

.panel{padding:clamp(16px,1.6vw,21px)}
.button{min-height:40px}
.button.small{min-height:34px}

/* Vignettes véhicules */
.vehicle-grid{
  grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),420px));
  justify-content:start;
  align-items:start;
  gap:18px;
}

.vehicle-card{
  width:100%;
  min-width:0;
}

.vehicle-photo{
  width:100%;
  background:#eef0f3;
}

.vehicle-photo img{
  width:100%;
  height:auto;
  display:block;
}

.vehicle-card-body{
  padding:17px 18px 18px;
}

.vehicle-card h2{
  font-size:clamp(1.12rem,1.35vw,1.38rem);
  margin-bottom:3px;
}

.vehicle-card-body > p{
  min-height:1.35em;
  margin-bottom:16px;
}

.vehicle-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:0 0 16px;
}

.vehicle-summary-item{
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafafa;
}

.vehicle-summary-item small,
.vehicle-summary-item strong{
  display:block;
}

.vehicle-summary-item small{
  margin-bottom:4px;
  font-size:.76rem;
}

.vehicle-summary-item strong{
  font-size:1rem;
  white-space:nowrap;
}

.add-card{
  min-height:260px;
}

/* Vignettes documents compactes et régulières */
.document-grid{
  grid-template-columns:repeat(auto-fill,minmax(min(100%,255px),320px));
  justify-content:start;
  align-items:stretch;
  gap:14px;
}

.document-card{
  min-height:205px;
  padding:15px 16px;
  display:flex;
  flex-direction:column;
}

.document-card .document-icon{
  width:38px;
  height:38px;
  margin-bottom:10px;
}

.document-card h3{
  margin:0 0 8px;
  font-size:.94rem;
  line-height:1.3;
}

.document-card p{
  margin-bottom:12px;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.document-card .actions{
  margin-top:auto;
}

/* Tableaux */
.table-wrap{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}

.table-wrap table{
  min-width:720px;
}

th,td{
  padding:12px 11px;
}

tbody tr:hover{
  background:#faf9fc;
}

/* Facture de pièces */
.invoice-section{
  padding:16px;
}

.invoice-card{
  padding:0;
  overflow:hidden;
  box-shadow:none;
}

.invoice-card-header{
  padding:15px 16px;
  margin:0;
  background:#fafafa;
  border-bottom:1px solid var(--line);
}

.invoice-card-header strong{
  font-size:1rem;
}

.invoice-total{
  font-size:1.2rem;
}

.invoice-table-wrap{
  overflow-x:auto;
}

.invoice-table{
  width:100%;
  border-collapse:collapse;
  min-width:720px;
}

.invoice-table th,
.invoice-table td{
  padding:11px 14px;
  border-bottom:1px solid var(--line);
}

.invoice-table th{
  background:#fff;
}

.invoice-table .numeric{
  text-align:right;
  white-space:nowrap;
}

.invoice-table small{
  display:block;
  margin-top:3px;
}

.invoice-table tfoot td{
  background:#fafafa;
  border-bottom:0;
  font-size:.95rem;
}

.invoice-actions{
  padding:10px 12px;
  border-top:1px solid var(--line);
}

/* Onglets et barres d'actions */
.tabs{
  gap:8px;
  overflow-x:auto;
  flex-wrap:nowrap;
  padding-bottom:2px;
}

.tab{
  flex:0 0 auto;
}

.filters input,
.filters select{
  min-height:40px;
}

/* Modales */
.modal{
  border-radius:16px;
}

.modal.large{
  width:min(960px,100%);
}

@media(max-width:1100px){
  .vehicle-grid{
    grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));
  }
}

@media(max-width:760px){
  body{
    font-size:15px;
  }

  .main-content{
    padding:0 12px 24px;
  }

  .topbar{
    min-height:76px;
    margin-bottom:16px;
    gap:10px;
  }

  .topbar h1{
    font-size:1.45rem;
  }

  .eyebrow{
    font-size:.66rem;
  }

  .toolbar{
    align-items:flex-start;
    margin-bottom:13px;
  }

  .toolbar .actions{
    width:100%;
  }

  .toolbar .actions .button{
    flex:1 1 auto;
  }

  .vehicle-grid,
  .document-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .vehicle-card-body{
    padding:15px;
  }

  .vehicle-summary{
    gap:8px;
  }

  .vehicle-summary-item{
    padding:9px 10px;
  }

  .document-card{
    min-height:0;
    padding:14px;
  }

  .stats-grid{
    grid-template-columns:1fr 1fr;
    gap:9px;
  }

  .stat-card{
    padding:13px;
  }

  .stat-value{
    font-size:1.18rem;
  }

  .panel{
    padding:14px;
  }

  .panel-header{
    align-items:flex-start;
  }

  .modal-backdrop{
    padding:0;
    align-items:end;
  }

  .modal,
  .modal.large{
    width:100%;
    max-height:94vh;
    border-radius:18px 18px 0 0;
    padding:17px 14px calc(18px + env(safe-area-inset-bottom));
  }

  .form-actions{
    position:sticky;
    bottom:0;
    background:#fff;
    padding-top:10px;
    padding-bottom:env(safe-area-inset-bottom);
    z-index:2;
  }

  .form-actions .button{
    flex:1 1 0;
  }

  .invoice-section{
    padding:12px;
  }

  .invoice-card-header{
    padding:13px;
  }

  .invoice-table{
    min-width:0;
  }

  .invoice-table thead{
    display:none;
  }

  .invoice-table,
  .invoice-table tbody,
  .invoice-table tr,
  .invoice-table td{
    display:block;
    width:100%;
  }

  .invoice-table tbody tr{
    padding:10px 12px;
    border-bottom:1px solid var(--line);
  }

  .invoice-table tbody td{
    display:grid;
    grid-template-columns:110px minmax(0,1fr);
    gap:10px;
    border:0;
    padding:4px 0;
    text-align:left!important;
    white-space:normal!important;
  }

  .invoice-table tbody td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:.76rem;
    font-weight:600;
  }

  .invoice-table tfoot,
  .invoice-table tfoot tr{
    display:block;
  }

  .invoice-table tfoot td{
    display:none;
  }

  .invoice-table tfoot td:last-child{
    display:flex;
    justify-content:space-between;
    padding:12px;
    text-align:right;
  }

  .invoice-table tfoot td:last-child::before{
    content:"Total facture";
    color:var(--text);
    font-weight:600;
  }

  .invoice-actions{
    gap:4px 10px;
  }

  .mobile-nav{
    padding-bottom:env(safe-area-inset-bottom);
    height:calc(62px + env(safe-area-inset-bottom));
  }
}

@media(max-width:390px){
  .stats-grid,
  .vehicle-summary{
    grid-template-columns:1fr;
  }

  .button{
    padding-left:12px;
    padding-right:12px;
  }
}


/* V6 — correction complète de la fenêtre d'import de facture */
.invoice-modal{
  width:min(1180px, calc(100vw - 40px)) !important;
  max-width:1180px;
  overflow-x:hidden;
}

.invoice-modal .form-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
}

.invoice-modal input,
.invoice-modal select,
.invoice-modal textarea{
  width:100%;
  min-width:0;
}

.invoice-modal #invoiceLines{
  width:100%;
  min-width:0;
  overflow:hidden;
}

.invoice-line-editor{
  width:100%;
  min-width:0;
  overflow:hidden;
}

.invoice-line-grid{
  display:grid;
  grid-template-columns:
    minmax(180px,2.2fr)
    minmax(120px,1.15fr)
    minmax(145px,1.25fr)
    minmax(72px,.55fr)
    minmax(110px,.8fr)
    minmax(110px,.8fr);
  gap:10px;
  align-items:end;
  width:100%;
  min-width:0;
}

.invoice-line-grid > *{
  min-width:0;
}

.invoice-line-grid input,
.invoice-line-grid select{
  min-width:0;
  width:100%;
}

.invoice-line-grid .operation-link{
  grid-column:1 / 6;
}

.invoice-line-grid .invoice-line-remove{
  grid-column:6;
  align-self:end;
  justify-self:end;
  min-height:40px;
  white-space:nowrap;
  padding:8px 4px;
}

.invoice-modal .invoice-import-actions{
  margin-bottom:16px;
}

.invoice-modal .invoice-lines-header{
  align-items:flex-end;
}

.invoice-modal .modal-header{
  margin-bottom:16px;
}

@media(max-width:1100px){
  .invoice-modal{
    width:min(960px, calc(100vw - 28px)) !important;
  }

  .invoice-line-grid{
    grid-template-columns:
      minmax(180px,2fr)
      minmax(120px,1fr)
      minmax(140px,1.1fr)
      minmax(80px,.6fr);
  }

  .invoice-line-grid .line-unit{
    grid-column:1;
  }

  .invoice-line-grid .line-total{
    grid-column:2;
  }

  .invoice-line-grid .operation-link{
    grid-column:1 / 4;
  }

  .invoice-line-grid .invoice-line-remove{
    grid-column:4;
  }
}

@media(max-width:760px){
  .invoice-modal{
    width:100% !important;
    max-width:none;
    height:100dvh;
    max-height:100dvh;
    border-radius:0 !important;
    padding:14px 12px calc(16px + env(safe-area-inset-bottom));
    overflow-y:auto;
    overflow-x:hidden;
  }

  .invoice-modal .form-grid{
    grid-template-columns:1fr;
    gap:12px;
  }

  .invoice-modal .full{
    grid-column:auto;
  }

  .invoice-import-actions{
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
  }

  .invoice-import-actions .button{
    width:100%;
  }

  .invoice-lines-header{
    display:grid !important;
    grid-template-columns:1fr;
    align-items:start;
  }

  .invoice-lines-header .button{
    width:100%;
  }

  .invoice-line-editor{
    padding:12px;
    border-radius:12px;
  }

  .invoice-line-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .invoice-line-grid .line-designation,
  .invoice-line-grid .operation-link{
    grid-column:1 / -1;
  }

  .invoice-line-grid .line-brand,
  .invoice-line-grid .line-reference,
  .invoice-line-grid .line-quantity,
  .invoice-line-grid .line-unit,
  .invoice-line-grid .line-total{
    grid-column:auto;
  }

  .invoice-line-grid .invoice-line-remove{
    grid-column:1 / -1;
    justify-self:end;
    width:auto;
  }

  .invoice-modal .form-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .invoice-modal .form-actions .button{
    width:100%;
  }
}

@media(max-width:460px){
  .invoice-line-grid{
    grid-template-columns:1fr;
  }

  .invoice-line-grid .line-designation,
  .invoice-line-grid .line-brand,
  .invoice-line-grid .line-reference,
  .invoice-line-grid .line-quantity,
  .invoice-line-grid .line-unit,
  .invoice-line-grid .line-total,
  .invoice-line-grid .operation-link,
  .invoice-line-grid .invoice-line-remove{
    grid-column:1;
  }

  .invoice-modal .form-actions{
    grid-template-columns:1fr;
  }

  .invoice-modal .modal-header h2{
    font-size:1.35rem;
  }
}

/* V7 */
.nav-section{display:grid;gap:6px;margin-bottom:18px}
.nav-section-title{padding:0 12px 4px;color:var(--muted);font-size:.69rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.vehicle-nav-section[hidden]{display:none}
.selectable-card{cursor:pointer;position:relative;border:2px solid transparent;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
.selectable-card:hover{transform:translateY(-3px);border-color:#d9c3f4;box-shadow:0 14px 30px rgba(68,0,153,.13)}
.selectable-card:focus-visible{outline:3px solid rgba(68,0,153,.25);outline-offset:3px}
.active-vehicle-card{border-color:var(--purple);background:#fbf8ff;box-shadow:0 14px 34px rgba(68,0,153,.18)}
.active-vehicle-card:hover{border-color:var(--purple)}
.active-ribbon{position:absolute;top:12px;left:12px;z-index:3;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:var(--purple);color:#fff;font-size:.76rem;font-weight:700;box-shadow:0 6px 18px rgba(68,0,153,.25)}
.active-ribbon span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#fff;color:var(--purple)}
.document-count-button{min-width:30px;min-height:30px;border:1px solid #d9c3f4;border-radius:999px;background:var(--purple-soft);color:var(--purple);font-weight:700}
.document-count-button:hover{background:var(--purple);color:#fff}
.history-table .actions-cell{white-space:nowrap}
@media(max-width:760px){.selectable-card:hover{transform:none}.selectable-card:active{background:#f6effd}.history-table{min-width:1050px}}

/* V8 — finition premium */
.nav-section-title{position:relative;padding:0 12px 9px;color:#8b9098;font-size:.65rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;cursor:default;user-select:none}
.nav-section-title::after{content:"";display:block;height:1px;margin-top:8px;background:linear-gradient(90deg,var(--line),transparent)}
.main-nav .nav-item{min-height:42px}
.premium-vehicle-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),390px));gap:20px}
.selectable-card{overflow:hidden}
.vehicle-hover-overlay{position:absolute;inset:auto 0 0 0;padding:15px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.76));color:#fff;font-weight:600;opacity:0;transform:translateY(10px);transition:.18s ease;pointer-events:none}
.selectable-card:hover .vehicle-hover-overlay{opacity:1;transform:translateY(0)}
.vehicle-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.vehicle-title-row p{margin:3px 0 0;color:var(--muted)}
.active-dot{width:12px;height:12px;border-radius:50%;background:var(--purple);box-shadow:0 0 0 5px var(--purple-soft);margin-top:5px;flex:0 0 auto}
.card-open-hint{margin-left:auto;align-self:center;color:var(--muted);font-size:.77rem}
.premium-add-card{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed #cfc5da;background:linear-gradient(180deg,#fff,#faf8fd);color:var(--purple)}
.premium-add-card:hover{border-color:var(--purple);background:var(--purple-soft)}
.add-card-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--purple);color:#fff;font-size:1.6rem}
.premium-add-card small{color:var(--muted)}
.empty-premium{min-height:420px;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;border:1px dashed #d5d8dd;border-radius:18px;background:#fff}
.empty-premium p{color:var(--muted)} .empty-icon{font-size:3rem}
.premium-table tbody tr{transition:background .15s ease}
.premium-table td strong,.premium-table td small{display:block}
.premium-table td small{margin-top:3px}
.source-chip{display:inline-flex;margin-top:6px;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:.7rem;font-weight:600}
.icon-action{width:32px;height:32px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--purple);font-weight:700}
.icon-action:hover{background:var(--purple-soft);border-color:#d9c3f4}
.danger-icon{color:var(--red)} .danger-icon:hover{background:var(--red-soft);border-color:#f2c7c7}
.document-count-button{display:inline-flex;align-items:center;gap:5px;padding:0 10px}
.premium-empty-state{padding:56px 20px}
@media(max-width:760px){
  .vehicle-hover-overlay,.card-open-hint{display:none}
  .premium-vehicle-grid{grid-template-columns:1fr}
  .actions-cell{display:flex;gap:6px}
  .history-table{min-width:980px}
}


/* V9 — distinction date d’achat / date de pose */
.v9-stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.pending-installations-panel{margin-bottom:20px;border-left:4px solid var(--orange)}
.pending-installation-list{display:grid;gap:10px}
.pending-installation-card{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:#fffaf3}
.pending-installation-main{display:flex;align-items:flex-start;gap:12px;min-width:0}
.pending-installation-main p{margin:3px 0;color:var(--text);font-size:.88rem}
.pending-installation-main small{display:block}
.pending-installation-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.invoice-install-choice{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fafafa}
.invoice-install-details{display:grid!important;grid-template-columns:1fr 1fr;gap:14px;border-left:3px solid var(--purple);padding-left:14px}
.invoice-item-action{min-width:175px}
.invoice-item-action .button{margin-right:4px}
.installation-summary{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fafafa}
.installation-summary p{margin:5px 0}
.installation-summary small{display:block}
@media(max-width:760px){
  .pending-installation-card{display:grid}
  .pending-installation-actions{justify-content:flex-start}
  .invoice-install-details{grid-template-columns:1fr}
  .invoice-item-action{min-width:0}
}
[hidden]{display:none!important}
@media(min-width:1101px){.v9-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px) and (min-width:761px){.v9-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.v9-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.v9-stats-grid{grid-template-columns:1fr}}

:root[data-theme="dark"]{--bg:#111318;--text:#f1f3f5;--muted:#a8afb8;--line:#343942;--shadow:0 10px 30px rgba(0,0,0,.25);--purple-soft:#2b2140;--green-soft:#16372a;--orange-soft:#432d13;--red-soft:#442024}
:root[data-theme="dark"] body,:root[data-theme="dark"] .main-content{background:var(--bg);color:var(--text)}
:root[data-theme="dark"] .sidebar,:root[data-theme="dark"] .card,:root[data-theme="dark"] .panel,:root[data-theme="dark"] .vehicle-card,:root[data-theme="dark"] .document-card,:root[data-theme="dark"] .catalog-card,:root[data-theme="dark"] .stat-card,:root[data-theme="dark"] .modal,:root[data-theme="dark"] .button.secondary,:root[data-theme="dark"] .tab,:root[data-theme="dark"] .icon-button{background:#1b1e24;color:var(--text)}
:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea,:root[data-theme="dark"] .filters input,:root[data-theme="dark"] .filters select,:root[data-theme="dark"] .catalog-item{background:#14171c;color:var(--text);border-color:var(--line)}
:root[data-theme="dark"] .nav-item{color:#c8cdd4}:root[data-theme="dark"] .nav-item:hover{background:#242831}
.interactive-card{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.interactive-card:hover,.interactive-card:focus{transform:translateY(-2px);border-color:var(--purple);box-shadow:0 12px 30px rgba(68,0,153,.18);outline:none}
.fluid-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.fluid-card{border:1px solid var(--line);border-radius:14px;padding:16px}.fluid-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.fluid-card p{margin:9px 0;font-size:.88rem}.form-section-title{margin:8px 0 0;padding-top:14px;border-top:1px solid var(--line)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.theme-selector{display:flex;gap:10px}.maintenance-section tr[data-alert-priority="0"]{background:var(--red-soft)}
@media(max-width:800px){.fluid-grid,.settings-grid{grid-template-columns:1fr}}

/* V11 — corrections ergonomie et lisibilité */
.sidebar{width:300px}
.main-content{margin-left:300px}
.active-vehicle-panel{padding:14px}
.active-vehicle-name{
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:10px;
  padding:10px 11px;
  font-weight:600;
  line-height:1.25;
  margin-bottom:8px;
  word-break:break-word;
}
.vehicle-switcher select{
  width:100%;
  font-size:.9rem;
}
.vehicle-switcher .button{width:auto}
.vehicle-summary-item strong,
.stat-value,
.document-card h3,
.invoice-total,
.pending-installation-actions strong,
.table-wrap td,
.table-wrap th,
.panel h2,
.panel h3,
.vehicle-card h2,
.brand strong{color:var(--text)}
.document-icon{font-size:1rem}

@media(max-width:760px){
  .sidebar{width:280px}
  .main-content{margin-left:0}
}

/* V11 — mode sombre renforcé */
:root[data-theme="dark"]{
  --bg:#0d1015;
  --surface:#171b22;
  --surface-2:#1e2430;
  --surface-3:#232a36;
  --text:#f4f7fb;
  --muted:#b3bdca;
  --line:#303949;
  --shadow:0 14px 34px rgba(0,0,0,.32);
  --purple-soft:#33204b;
  --green:#6cd98e;
  --green-soft:#173926;
  --orange:#ffbe64;
  --orange-soft:#4a3010;
  --red:#ff8d8d;
  --red-soft:#4a2025;
}
:root[data-theme="dark"] body,
:root[data-theme="dark"] .main-content,
:root[data-theme="dark"] .app-shell{background:var(--bg);color:var(--text)}
:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .vehicle-card,
:root[data-theme="dark"] .document-card,
:root[data-theme="dark"] .catalog-card,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .modal,
:root[data-theme="dark"] .button.secondary,
:root[data-theme="dark"] .tab,
:root[data-theme="dark"] .icon-button,
:root[data-theme="dark"] .vehicle-summary-item,
:root[data-theme="dark"] .invoice-card,
:root[data-theme="dark"] .fluid-card,
:root[data-theme="dark"] .pending-installation-card,
:root[data-theme="dark"] .maintenance-card,
:root[data-theme="dark"] .attachment-row,
:root[data-theme="dark"] .table-wrap,
:root[data-theme="dark"] .installation-summary,
:root[data-theme="dark"] .mobile-nav,
:root[data-theme="dark"] .active-vehicle-name{background:var(--surface);color:var(--text);border-color:var(--line)}
:root[data-theme="dark"] .invoice-card-header,
:root[data-theme="dark"] .advanced-options,
:root[data-theme="dark"] .invoice-line-editor,
:root[data-theme="dark"] .vehicle-photo,
:root[data-theme="dark"] .catalog-item,
:root[data-theme="dark"] .add-card,
:root[data-theme="dark"] .vehicle-switcher,
:root[data-theme="dark"] .document-icon,
:root[data-theme="dark"] .mobile-menu{background:var(--surface-2);color:var(--text);border-color:var(--line)}
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] .filters input,
:root[data-theme="dark"] .filters select{background:var(--surface-3);color:var(--text);border-color:var(--line)}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{color:#8f98a5}
:root[data-theme="dark"] .nav-item{color:#d1d7df}
:root[data-theme="dark"] .nav-item:hover{background:#232937}
:root[data-theme="dark"] .nav-item.active{background:#2a2140;color:#f3ebff}
:root[data-theme="dark"] .button.secondary,
:root[data-theme="dark"] .tab{color:var(--text)}
:root[data-theme="dark"] .text-button{color:#ceb5ff}
:root[data-theme="dark"] .document-icon{background:#5b2ca0;color:#fff}
:root[data-theme="dark"] .vehicle-placeholder{color:#9aa4b0}
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .sidebar-footer,
:root[data-theme="dark"] th,
:root[data-theme="dark"] td,
:root[data-theme="dark"] .timeline-item,
:root[data-theme="dark"] .invoice-items,
:root[data-theme="dark"] .invoice-item-row{border-color:var(--line)}
:root[data-theme="dark"] .invoice-card-header p,
:root[data-theme="dark"] .vehicle-card p,
:root[data-theme="dark"] .panel-header p,
:root[data-theme="dark"] .timeline-item p,
:root[data-theme="dark"] .timeline-date,
:root[data-theme="dark"] .muted,
:root[data-theme="dark"] small,
:root[data-theme="dark"] .stat-label,
:root[data-theme="dark"] .stat-note,
:root[data-theme="dark"] .document-card p,
:root[data-theme="dark"] .vehicle-switcher label,
:root[data-theme="dark"] th{color:var(--muted)}
:root[data-theme="dark"] .vehicle-summary-item small,
:root[data-theme="dark"] .vehicle-summary-item strong,
:root[data-theme="dark"] .stat-value,
:root[data-theme="dark"] .invoice-total,
:root[data-theme="dark"] .document-card h3,
:root[data-theme="dark"] .pending-installation-actions strong,
:root[data-theme="dark"] .brand strong,
:root[data-theme="dark"] .brand span,
:root[data-theme="dark"] .panel h2,
:root[data-theme="dark"] .panel h3,
:root[data-theme="dark"] .vehicle-card h2,
:root[data-theme="dark"] .table-wrap td,
:root[data-theme="dark"] .table-wrap th{color:var(--text)}
:root[data-theme="dark"] .badge.purple{background:#33204b;color:#eadcff}
:root[data-theme="dark"] .badge.orange{background:var(--orange-soft);color:var(--orange)}
:root[data-theme="dark"] .badge.green{background:var(--green-soft);color:var(--green)}
:root[data-theme="dark"] .badge.red{background:var(--red-soft);color:var(--red)}
:root[data-theme="dark"] tbody tr:hover{background:#1f2530}
:root[data-theme="dark"] .mobile-nav button{color:var(--muted)}
:root[data-theme="dark"] .mobile-nav button.active{color:#d6bcff}
:root[data-theme="dark"] .add-card{border-color:#737a87}

/* V13 — catalogue intégré aux paramètres */
.settings-catalog-section{margin-top:20px}
.settings-catalog-section .panel-header{align-items:flex-start}
.settings-catalog-section .catalog-filters{display:grid;grid-template-columns:minmax(260px,1fr) minmax(190px,260px) minmax(150px,200px);gap:10px}
.catalog-management-table td:first-child small{display:block;margin-top:4px}
.catalog-disabled-row{opacity:.65}
.catalog-disabled-row td:first-child strong{text-decoration:line-through;text-decoration-thickness:1px}
@media(max-width:900px){.settings-catalog-section .catalog-filters{grid-template-columns:1fr 1fr}.settings-catalog-section .catalog-filters input{grid-column:1/-1}}
@media(max-width:620px){.settings-catalog-section .catalog-filters{grid-template-columns:1fr}.settings-catalog-section .catalog-filters input{grid-column:auto}.catalog-management-table{min-width:780px}}

/* V14 - cartes véhicules homogènes */
.premium-vehicle-grid{align-items:stretch}
.premium-vehicle-grid .vehicle-card{height:100%;display:flex;flex-direction:column;align-self:stretch}
.premium-vehicle-grid .vehicle-photo{height:290px;min-height:290px}
.premium-vehicle-grid .vehicle-photo img{width:100%;height:100%;max-height:none;object-fit:cover}
.premium-vehicle-grid .vehicle-card-body{display:flex;flex-direction:column;flex:1}
.premium-vehicle-grid .vehicle-title-row h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.premium-vehicle-grid .vehicle-title-row p{min-height:1.35em}
.premium-vehicle-grid .vehicle-card-body>.actions{margin-top:auto;align-items:center}
.premium-vehicle-grid .premium-add-card{min-height:100%;height:100%}
@media(max-width:760px){.premium-vehicle-grid .vehicle-photo{height:240px;min-height:240px}}

/* V15 - programme d’entretien */
.maintenance-rule-row{cursor:pointer}.maintenance-rule-row:hover{background:var(--purple-soft)}
.maintenance-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}
@media(max-width:900px){.maintenance-actions{white-space:normal;flex-wrap:wrap}}

/* V18 - alignement des colonnes Statut et Actions du programme d'entretien */
#maintenanceAlerts table{table-layout:fixed}
#maintenanceAlerts th:nth-child(1),#maintenanceAlerts td:nth-child(1){width:25%}
#maintenanceAlerts th:nth-child(2),#maintenanceAlerts td:nth-child(2){width:17%}
#maintenanceAlerts th:nth-child(3),#maintenanceAlerts td:nth-child(3){width:14%}
#maintenanceAlerts th:nth-child(4),#maintenanceAlerts td:nth-child(4){width:15%}
#maintenanceAlerts th:nth-child(5),#maintenanceAlerts td:nth-child(5){width:10%;text-align:left}
#maintenanceAlerts th:nth-child(6),#maintenanceAlerts td:nth-child(6){width:19%;text-align:left}
#maintenanceAlerts td.maintenance-actions{display:table-cell;white-space:nowrap;vertical-align:middle}
#maintenanceAlerts td.maintenance-actions .button{margin-right:8px}
#maintenanceAlerts td.maintenance-actions .text-button{vertical-align:middle}
@media(max-width:1100px){
  #maintenanceAlerts table{min-width:1120px}
}

.timeline-panel{margin-bottom:18px}.vehicle-timeline{display:grid;gap:16px}.timeline-year{display:grid;grid-template-columns:80px 1fr;gap:16px;align-items:start}.timeline-year>strong{font-size:1.1rem;color:var(--purple-light,#b68cff);padding-top:8px}.timeline-year>div{display:grid;gap:8px;border-left:2px solid rgba(124,58,237,.35);padding-left:16px}.timeline-event{display:grid;grid-template-columns:100px 1fr auto;gap:12px;align-items:center;text-align:left;background:var(--panel,#181d26);border:1px solid var(--border,#303746);border-radius:10px;padding:10px 12px;color:inherit;cursor:pointer}.timeline-event:hover{border-color:#7c3aed;transform:translateX(2px)}.timeline-event span{color:var(--muted,#9aa3b2);font-size:.86rem}.timeline-event em{font-style:normal;font-size:.72rem;background:#5b21b6;padding:3px 7px;border-radius:999px}.document-card[hidden]{display:none!important}#documentGlobalSearch{margin-top:10px;min-width:320px}


/* V20 — documents et navigation */
.document-tabs .tab{display:inline-flex;align-items:center;gap:7px}
.document-tabs .tab-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;font-size:.7rem;font-weight:800;background:rgba(128,128,128,.15)}
.document-tabs .tab-has-documents:not(.active){border-color:rgba(124,58,237,.65);background:rgba(124,58,237,.12);color:var(--purple-light,#b68cff)}
.document-tabs .tab-empty:not(.active){opacity:.62}
.nav-item[data-view="documents"]{position:relative;padding-right:42px}
.nav-item[data-view="documents"]::after{content:attr(data-document-count);position:absolute;right:12px;top:50%;transform:translateY(-50%);min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;font-size:.68rem;font-weight:800;background:rgba(128,128,128,.18);color:var(--muted)}
.nav-item[data-view="documents"].has-documents::after{background:var(--purple);color:#fff}
.nav-item[data-view="documents"].no-documents::after{content:"0"}

/* V21 — restauration et suivis personnalisés */
.archived-vehicles-panel{margin-top:24px}
.archived-vehicle-list{display:grid;gap:10px}
.archived-vehicle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.archived-vehicle-row p{margin:4px 0 0;color:var(--muted)}
.compact-select{min-width:130px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text)}
@media (max-width:700px){.archived-vehicle-row{align-items:flex-start;flex-direction:column}.archived-vehicle-row .button{width:100%}}


/* V22 — refonte UX/UI responsive */
:root{--sidebar-width:270px}
body.modal-open{overflow:hidden}
.sidebar-overlay{display:none;position:fixed;inset:0;border:0;background:rgba(20,22,27,.45);z-index:25}
.mobile-quick-action{display:none;width:42px;height:42px;border-radius:12px;border:0;background:var(--purple);color:#fff;font-size:1.45rem;line-height:1}
.vehicle-registration{font-size:.82rem;color:var(--muted);margin:-4px 0 14px;font-weight:600}
.timeline-button{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.timeline-button:hover{background:var(--purple-soft)}
.timeline-button span:nth-child(2){min-width:0}.timeline-button small{display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v22-dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.dashboard-content-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}
.dashboard-admin{grid-column:2}.dashboard-empty-panel{display:flex;justify-content:space-between;align-items:center;gap:16px}
.interactive-card{cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}.interactive-card:hover,.interactive-card:focus-visible{transform:translateY(-2px);border-color:rgba(68,0,153,.45);box-shadow:0 14px 30px rgba(68,0,153,.12);outline:none}
.history-panel{padding:0;overflow:hidden}.history-toolbar,.history-filters{padding:18px 20px}.history-toolbar{margin:0;border-bottom:1px solid var(--line)}.history-filters{display:grid;grid-template-columns:minmax(230px,1.5fr) repeat(4,minmax(145px,.7fr)) auto;background:var(--surface-soft,#fafafa);border-bottom:1px solid var(--line)}
.history-filters input,.history-filters select{min-width:0;width:100%}.history-desktop-table{border-radius:0;border:0;box-shadow:none}.history-year-row td{background:var(--purple-soft);color:var(--purple);font-weight:800;padding:8px 12px}.history-table td:last-child{min-width:310px}.operation-actions{display:flex;gap:6px;flex-wrap:wrap}.operation-mobile-list{display:none}.operation-mobile-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--surface,#fff)}.operation-mobile-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.operation-mobile-head h3{margin:3px 0 0;font-size:1rem}.operation-date{font-size:.78rem;color:var(--muted)}.operation-mobile-card>p{color:var(--muted);margin:10px 0}.operation-mobile-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.82rem}.mobile-operation-actions{margin-top:12px}.mobile-operation-actions .button{flex:1 1 calc(50% - 6px)}
.linked-documents-list{display:grid;gap:9px}.linked-document-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface,#fff);color:inherit}.linked-document-row:hover{border-color:var(--purple)}.linked-document-row small{display:block;margin-top:4px}.small-icon{width:38px;height:38px;margin:0}
.maintenance-filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface,#fff);color:var(--text);border-radius:999px;padding:8px 12px}.filter-chip span{min-width:20px;height:20px;display:grid;place-items:center;border-radius:999px;background:rgba(128,128,128,.15);font-size:.72rem}.filter-chip.active{background:var(--purple);color:#fff;border-color:var(--purple)}.maintenance-mobile-list{display:none}.maintenance-mobile-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--surface,#fff)}.maintenance-mobile-head{display:flex;justify-content:space-between;gap:12px}.maintenance-mobile-head h3{margin:0 0 4px;font-size:1rem}.maintenance-mobile-card dl{margin:14px 0;display:grid;gap:9px}.maintenance-mobile-card dl div{display:flex;justify-content:space-between;gap:12px}.maintenance-mobile-card dt{color:var(--muted);font-size:.8rem}.maintenance-mobile-card dd{margin:0;text-align:right;font-weight:600;font-size:.86rem}.maintenance-rule-row{cursor:default}.maintenance-rule-row:hover{background:transparent}
.fluid-card{padding:0!important;overflow:hidden}.fluid-card summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;cursor:pointer}.fluid-card summary span:first-child{display:grid;gap:4px}.fluid-card summary::marker{color:var(--purple)}.fluid-details{padding:0 16px 16px;border-top:1px solid var(--line)}.fluid-details p:first-child{margin-top:14px}
.document-search-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}.document-search-row input{flex:1;min-width:0;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;padding:11px}.document-search-row select{display:none}.document-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:7px;scrollbar-width:thin}.document-tabs .tab{flex:0 0 auto}.documents-list-panel{padding:0;overflow:hidden}.document-desktop-list{display:grid}.document-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}.document-list-row:last-child{border-bottom:0}.document-list-row .document-icon{margin:0}.document-list-main{min-width:0}.document-list-main h3{margin:0 0 3px;font-size:1rem}.document-list-main p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.83rem}.document-list-main small{display:block;margin-top:5px}.document-list-actions{display:flex;gap:7px}.document-mobile-list{display:none}.document-mobile-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--surface,#fff)}.document-mobile-head{display:grid;grid-template-columns:auto 1fr;gap:12px}.document-mobile-head .document-icon{margin:0}.document-mobile-head h3{font-size:1rem;margin:0 0 4px}.document-mobile-card>p{overflow-wrap:anywhere;color:var(--muted);font-size:.83rem;margin:12px 0 5px}.document-mobile-card .actions{margin-top:12px}.document-detail-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:20px}.document-preview-panel{min-width:0}.document-preview{height:62vh;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface-soft,#f5f5f6)}.document-preview iframe,.document-preview img{width:100%;height:100%;border:0;object-fit:contain}.document-preview-panel>.actions{margin-top:10px}.document-dependencies{border:1px solid var(--line);border-radius:12px;padding:13px}.document-dependencies h3{font-size:.92rem}.document-dependencies ul{margin:0;padding-left:20px;display:grid;gap:6px;font-size:.84rem}
.settings-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-card{display:flex;justify-content:space-between;align-items:center;gap:18px}.catalog-groups{display:grid;gap:10px}.catalog-group{border:1px solid var(--line);border-radius:13px;overflow:hidden}.catalog-group summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;background:var(--surface-soft,#fafafa)}.catalog-group summary span:first-child{display:grid;gap:3px}.catalog-group summary>span:last-child{min-width:30px;height:30px;border-radius:999px;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-weight:800}.catalog-group-list{display:grid}.catalog-compact-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 15px;border-top:1px solid var(--line)}.catalog-compact-row>div:first-child{min-width:0}.catalog-compact-row small{display:block;margin-top:4px}.catalog-row-meta{display:flex;gap:6px;flex-wrap:wrap}
.modal{display:flex;flex-direction:column;overflow:hidden;padding:0}.modal-header{flex:0 0 auto;margin:0;padding:18px 22px;border-bottom:1px solid var(--line)}.modal>form,.modal>.document-detail-layout,.modal>.linked-documents-list,.modal>.invoice-import-actions{overflow:auto}.modal>form{padding:18px 22px 0}.modal>.linked-documents-list{padding:18px 22px 22px}.invoice-modal>.invoice-import-actions{padding:14px 22px 0;overflow:visible}.invoice-modal>form{padding-top:14px}.form-actions{position:sticky;bottom:0;z-index:4;background:var(--surface,#fff);border-top:1px solid var(--line);padding:14px 0 18px;margin-top:12px}.document-detail-layout{padding:18px 22px 0}.compact-modal{width:min(620px,100%)}
.mobile-sheet[hidden]{display:none}.mobile-sheet{position:fixed;inset:0;z-index:120}.mobile-sheet-backdrop{position:absolute;inset:0;border:0;background:rgba(20,22,27,.55)}.mobile-sheet-panel{position:absolute;left:0;right:0;bottom:0;background:var(--surface,#fff);border-radius:20px 20px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px rgba(0,0,0,.22)}.mobile-sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.mobile-sheet-header h2{margin:0}.mobile-sheet-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.mobile-sheet-actions button{border:1px solid var(--line);background:var(--surface-soft,#fafafa);color:var(--text);border-radius:12px;padding:14px;text-align:left;font-weight:650}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(124,58,237,.35);outline-offset:2px}

@media(max-width:1100px){
  .sidebar{width:230px;padding-left:12px;padding-right:12px}.main-content{margin-left:230px;padding-left:22px;padding-right:22px}.brand span,.nav-section-title,.sidebar-footer small{display:none}.active-vehicle-name{font-size:.82rem}.history-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.history-filters input{grid-column:1/-1}.dashboard-content-grid{grid-template-columns:1fr}.dashboard-admin{grid-column:auto}.document-detail-layout{grid-template-columns:1fr}.document-preview{height:45vh}.catalog-compact-row{grid-template-columns:minmax(0,1fr) auto}.catalog-compact-row>.actions{grid-column:1/-1;justify-content:flex-end}
}
@media(max-width:899px){
  body{padding-bottom:68px}.sidebar{width:min(86vw,320px);transform:translateX(-105%);transition:transform .22s}.sidebar.open{transform:translateX(0);box-shadow:12px 0 35px rgba(0,0,0,.18)}.sidebar-overlay:not([hidden]){display:block}.main-content{margin-left:0;padding:0 18px 30px}.mobile-menu{display:inline-grid}.mobile-nav{display:grid}.mobile-quick-action:not([hidden]){display:inline-grid;place-items:center}.top-actions{display:none}.topbar{min-height:86px}.v22-dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.history-desktop-table,.maintenance-desktop-table{display:none}.operation-mobile-list,.maintenance-mobile-list{display:grid;gap:12px}.history-panel{background:transparent;border:0;box-shadow:none}.history-toolbar,.history-filters{background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:14px}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filters input{grid-column:1/-1}.desktop-primary-action{display:none}.documents-toolbar{align-items:flex-start}.document-tabs{display:none}.document-search-row select{display:block;max-width:44%}.document-desktop-list{display:none}.document-mobile-list{display:grid;gap:12px;padding:14px}.documents-list-panel{background:transparent;border:0;box-shadow:none}.settings-section-grid{grid-template-columns:1fr}.catalog-compact-row{grid-template-columns:1fr}.catalog-row-meta,.catalog-compact-row>.actions{grid-column:auto;justify-content:flex-start}.settings-catalog-section .catalog-filters{grid-template-columns:1fr 1fr}.settings-catalog-section .catalog-filters input{grid-column:1/-1}
}
@media(max-width:620px){
  .main-content{padding:0 12px 24px}.topbar{min-height:76px;margin-bottom:16px}.topbar h1{font-size:1.25rem}.mobile-menu,.mobile-quick-action{width:38px;height:38px}.v22-dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card{padding:13px}.stat-value{font-size:1.15rem}.stat-note{font-size:.72rem}.premium-vehicle-grid .vehicle-photo{height:180px;min-height:180px}.garage-toolbar{align-items:flex-start}.garage-toolbar .button{width:100%}.content-grid{gap:12px}.panel{padding:15px}.dashboard-empty-panel{align-items:flex-start;flex-direction:column}.history-filters{grid-template-columns:1fr}.history-filters input{grid-column:auto}.operation-mobile-meta{grid-template-columns:1fr 1fr}.operation-mobile-meta span:last-child{grid-column:1/-1}.maintenance-filter-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.filter-chip{flex:0 0 auto}.panel-header{align-items:flex-start;flex-direction:column}.panel-header>.actions{width:100%}.panel-header>.actions .button{flex:1}.documents-toolbar{flex-direction:column}.documents-toolbar>.actions{width:100%}.documents-toolbar>.actions .button{flex:1}.document-search-row{display:grid;grid-template-columns:1fr}.document-search-row select{max-width:none;width:100%}.document-mobile-card .actions .button{flex:1 1 100%}.settings-card{align-items:flex-start;flex-direction:column}.settings-card .actions,.settings-card .theme-selector{width:100%}.settings-card .actions .button,.settings-card .theme-selector .button{flex:1}.settings-catalog-section .catalog-filters{grid-template-columns:1fr}.settings-catalog-section .catalog-filters input{grid-column:auto}.document-preview{height:38vh}.modal-backdrop{padding:0;align-items:end}.modal,.modal.large{width:100%;max-height:96vh;border-radius:18px 18px 0 0}.modal-header{padding:15px 16px}.modal>form,.document-detail-layout{padding-left:16px;padding-right:16px}.document-detail-layout{display:block}.document-preview-panel{margin-bottom:16px}.form-actions{margin-left:-16px;margin-right:-16px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));flex-wrap:wrap}.form-actions .button{flex:1 1 auto}.form-actions .danger{order:3;flex-basis:100%}.vehicle-form-actions .danger{order:3}.mobile-sheet-actions{grid-template-columns:1fr 1fr}.toast{left:12px;right:12px;bottom:78px;text-align:center}.fluid-grid{grid-template-columns:1fr}
}
@media(max-width:390px){.v22-dashboard-stats{grid-template-columns:1fr 1fr}.mobile-sheet-actions{grid-template-columns:1fr}.mobile-operation-actions .button{flex-basis:100%}}

:root[data-theme="dark"] .history-filters,:root[data-theme="dark"] .catalog-group summary,:root[data-theme="dark"] .mobile-sheet-panel,:root[data-theme="dark"] .mobile-sheet-actions button,:root[data-theme="dark"] .operation-mobile-card,:root[data-theme="dark"] .maintenance-mobile-card,:root[data-theme="dark"] .document-mobile-card,:root[data-theme="dark"] .document-list-row,:root[data-theme="dark"] .linked-document-row,:root[data-theme="dark"] .filter-chip{background:var(--surface);color:var(--text);border-color:var(--line)}
/* V22 correction : une notification ne doit jamais bloquer les actions */
.toast{pointer-events:none}

/* V22 compléments : sélecteur unique, sections véhicule et dissociation documentaire */
.active-vehicle-name{display:none!important}
.vehicle-switcher select{margin-bottom:10px;font-weight:650}
.vehicle-form-section{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--surface,#fff)}
.vehicle-form-section>summary{padding:13px 15px;font-weight:750;cursor:pointer;background:var(--surface-soft,#fafafa)}
.vehicle-form-section>.form-section-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:15px}
.vehicle-form-section>.form-section-grid .full{grid-column:1/-1}
.dependency-list{display:grid;gap:7px}.dependency-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.84rem}.dependency-row:last-child{border-bottom:0}
@media(max-width:620px){.vehicle-form-section>.form-section-grid{grid-template-columns:1fr}.vehicle-form-section>.form-section-grid .full{grid-column:auto}.vehicle-form-section>summary{position:sticky;top:0}.dependency-row{align-items:flex-start}.dependency-row .text-button{flex:0 0 auto}}
:root[data-theme="dark"] .vehicle-form-section,:root[data-theme="dark"] .vehicle-form-section>summary{background:var(--surface);border-color:var(--line);color:var(--text)}

/* V23 — corrections ergonomiques, contexte véhicule et tableau de bord */
.vehicle-context{display:grid;grid-template-columns:92px minmax(0,1fr) auto auto;gap:16px;align-items:center;margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface,#fff);box-shadow:var(--shadow)}
.vehicle-context-photo{width:92px;height:64px;border-radius:12px;overflow:hidden;background:var(--purple-soft);display:grid;place-items:center;color:var(--purple);font-size:1.5rem;font-weight:800}
.vehicle-context-photo img{width:100%;height:100%;object-fit:cover}
.vehicle-context-main{min-width:0}.vehicle-context-main .eyebrow{margin:0 0 3px}.vehicle-context-main h2{margin:0;font-size:1.12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-context-main>p:last-child{margin:4px 0 0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-context-data{display:flex;gap:10px}.vehicle-context-data>div{min-width:105px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft,#fafafa)}.vehicle-context-data small{display:block;font-size:.72rem}.vehicle-context-data strong{display:block;margin-top:3px}
.vehicle-context-actions{display:flex;gap:7px}
.vehicle-context-hero{grid-template-columns:210px minmax(0,1fr) auto auto;padding:0;overflow:hidden}.vehicle-context-hero .vehicle-context-photo{width:210px;height:150px;border-radius:0}.vehicle-context-hero .vehicle-context-main h2{font-size:1.55rem}.vehicle-context-hero .vehicle-context-main>p:last-child{white-space:normal}

.premium-vehicle-grid{grid-template-columns:repeat(auto-fill,minmax(240px,300px));gap:16px}.premium-vehicle-grid .vehicle-photo{height:175px;min-height:175px}.premium-vehicle-grid .vehicle-card-body{padding:14px}.premium-vehicle-grid .vehicle-card h2{font-size:1.05rem;min-height:auto}.premium-vehicle-grid .vehicle-title-row p{min-height:0;font-size:.82rem}.premium-vehicle-grid .vehicle-summary{gap:8px}.premium-vehicle-grid .vehicle-summary-item{padding:9px}.premium-vehicle-grid .vehicle-card-body>.actions{margin-top:12px}.card-open-hint{display:none}

.dashboard-command-center{margin-bottom:18px}.dashboard-primary-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.dashboard-key-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}.dashboard-master-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);gap:18px}.dashboard-vehicle-identity{grid-row:span 2}.dashboard-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-identity-grid>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft,#fafafa)}.dashboard-identity-grid small{display:block}.dashboard-identity-grid strong{display:block;margin-top:4px;overflow-wrap:anywhere}.dashboard-alert-list{display:grid}.dashboard-alert-row{display:flex;justify-content:space-between;gap:12px;align-items:center;width:100%;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left}.dashboard-alert-row:last-child{border-bottom:0}.dashboard-alert-row strong,.dashboard-alert-row small{display:block}.dashboard-alert-row small{margin-top:4px}.dashboard-shortcuts{grid-column:1/-1}.dashboard-shortcut-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dashboard-shortcut-grid button{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft,#fafafa);color:inherit;text-align:left}.dashboard-shortcut-grid button:hover{border-color:var(--purple)}.dashboard-shortcut-grid strong,.dashboard-shortcut-grid span{display:block}.dashboard-shortcut-grid span{margin-top:4px;color:var(--muted);font-size:.82rem}.compact-empty{padding:16px}

.history-table{table-layout:fixed}.history-table th:nth-child(1){width:92px}.history-table th:nth-child(2){width:auto}.history-table th:nth-child(3){width:140px}.history-table th:nth-child(4){width:90px}.history-table th:nth-child(5){width:104px}.history-table th:nth-child(6){width:86px}.history-table th:nth-child(7){width:88px}.history-table th:nth-child(8){width:250px}.history-table td{vertical-align:middle}.history-table td:nth-child(2){vertical-align:top}.history-table .operation-actions{flex-wrap:nowrap}.history-table .operation-actions .button{white-space:nowrap}.document-count-button{min-width:48px;height:30px;display:inline-grid;place-items:center;border:1px solid var(--purple);border-radius:999px;background:var(--purple-soft);color:var(--purple);font-weight:700}

.compact-document-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;overflow:visible}.compact-document-tabs .tab{min-width:0;width:100%;display:flex;justify-content:center;gap:6px;white-space:nowrap}.document-search-row select{display:none}

:root[data-theme="dark"] .vehicle-context,:root[data-theme="dark"] .vehicle-context-data>div,:root[data-theme="dark"] .dashboard-identity-grid>div,:root[data-theme="dark"] .dashboard-shortcut-grid button{background:var(--surface);border-color:var(--line)}

@media(max-width:1180px){.vehicle-context{grid-template-columns:80px minmax(0,1fr) auto}.vehicle-context-actions{grid-column:2/-1}.vehicle-context-hero{grid-template-columns:180px minmax(0,1fr) auto}.vehicle-context-hero .vehicle-context-photo{width:180px}.dashboard-master-grid{grid-template-columns:1fr}.dashboard-vehicle-identity{grid-row:auto}.dashboard-shortcuts{grid-column:auto}.dashboard-key-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-document-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.history-table th:nth-child(8){width:230px}}
@media(max-width:760px){.vehicle-context,.vehicle-context-hero{grid-template-columns:76px minmax(0,1fr);padding:12px}.vehicle-context-photo,.vehicle-context-hero .vehicle-context-photo{width:76px;height:64px;border-radius:11px}.vehicle-context-main h2,.vehicle-context-hero .vehicle-context-main h2{font-size:1rem}.vehicle-context-data{grid-column:1/-1}.vehicle-context-data>div{flex:1;min-width:0}.vehicle-context-actions{grid-column:1/-1}.vehicle-context-actions .button{flex:1}.dashboard-primary-actions{display:grid;grid-template-columns:1fr 1fr}.dashboard-primary-actions .button:first-child{grid-column:1/-1}.dashboard-key-stats{grid-template-columns:1fr 1fr}.dashboard-identity-grid{grid-template-columns:1fr}.dashboard-shortcut-grid{grid-template-columns:1fr 1fr}.compact-document-tabs{display:none}.document-search-row select{display:block}.premium-vehicle-grid{grid-template-columns:1fr}.premium-vehicle-grid .vehicle-photo{height:170px;min-height:170px}}
@media(max-width:430px){.dashboard-primary-actions,.dashboard-shortcut-grid{grid-template-columns:1fr}.dashboard-primary-actions .button:first-child{grid-column:auto}.dashboard-key-stats{grid-template-columns:1fr 1fr}}

/* V24 — navigation, densité, responsive et accessibilité */
:focus-visible{outline:3px solid color-mix(in srgb,var(--purple) 65%,white);outline-offset:2px}
button:disabled{cursor:not-allowed;opacity:.55}
.button,.nav-item,.mobile-nav button,.filter-chip,.tab{min-height:42px}
.field-invalid{border-color:var(--red)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 18%,transparent)}
.form-error-summary{padding:11px 13px;border:1px solid var(--red);border-radius:10px;background:var(--red-soft);color:var(--red);font-weight:650}
.numeric-cell{text-align:right;white-space:nowrap}

/* Navigation et contexte véhicule */
.vehicle-context{grid-template-columns:76px minmax(0,1fr) auto auto;padding:12px 14px}
.vehicle-context-photo{width:76px;height:58px}
.vehicle-context-hero{grid-template-columns:120px minmax(0,1fr) auto auto}
.vehicle-context-hero .vehicle-context-photo{width:120px;height:92px;border-radius:12px;margin-left:12px}
.vehicle-context-hero .vehicle-context-main h2{font-size:1.3rem}
.vehicle-context-actions .button{white-space:nowrap}

/* Mon garage */
.vehicle-card-select{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}
.vehicle-card-select:hover .vehicle-hover-overlay,.vehicle-card-select:focus-visible .vehicle-hover-overlay{opacity:1}
.vehicle-card-actions{display:flex;justify-content:flex-end;padding:0 14px 14px}
.vehicle-card-actions .button{min-width:92px}
.archived-vehicles-panel{padding:0;overflow:hidden;margin-top:20px}
.archived-vehicles-panel>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;background:var(--surface-soft,#fafafa)}
.archived-vehicles-panel>summary span:first-child{display:grid;gap:3px}
.summary-count{min-width:30px;height:30px;display:grid;place-items:center;border-radius:999px;background:var(--purple-soft);color:var(--purple);font-weight:800}
.archived-vehicle-list{padding:0 20px 12px}

/* Tableau de bord */
.dashboard-primary-actions{margin-bottom:14px}
.dashboard-master-grid{grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);align-items:start}
.dashboard-maintenance-summary{grid-column:1/-1}
.dashboard-vehicle-identity{grid-row:auto}
.dashboard-financial,.dashboard-admin{align-self:start}
.financial-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.financial-summary-grid>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft,#fafafa)}
.financial-summary-grid small,.financial-summary-grid strong{display:block}
.financial-summary-grid strong{margin-top:5px;font-size:1.05rem}
.financial-breakdown{margin-top:16px;border-top:1px solid var(--line);padding-top:13px}
.financial-breakdown h3{font-size:.9rem;margin-bottom:8px}
.financial-breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.financial-breakdown>div:last-child{border-bottom:0}

/* Historique */
.history-filter-zone{padding:16px 20px;background:var(--surface-soft,#fafafa);border-bottom:1px solid var(--line)}
.history-search-line{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:10px;margin-bottom:10px}
.history-search-line input{width:100%;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;padding:11px}
.active-filter-count{font-size:.78rem;color:var(--muted);white-space:nowrap}
.history-filters{padding:0;background:transparent;border:0;display:grid;grid-template-columns:repeat(4,minmax(135px,1fr)) auto;gap:9px}
.history-table{min-width:930px;table-layout:fixed}
.history-table th:nth-child(1){width:94px}.history-table th:nth-child(2){width:auto}.history-table th:nth-child(3){width:116px}.history-table th:nth-child(4){width:94px}.history-table th:nth-child(5){width:92px}.history-table th:nth-child(6){width:135px}.history-table th:nth-child(7){width:150px}
.history-table td:last-child{min-width:0}
.history-table td:nth-child(2) small,.maintenance-table-v24 td small{display:block;margin-top:4px}
.operation-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;font-size:.77rem;color:var(--muted)}
.document-count-button{min-width:0;width:auto;height:auto;min-height:34px;padding:6px 9px;white-space:nowrap}
.operation-row-primary{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.row-actions-menu{position:relative}
.row-actions-menu>summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:7px 9px;font-size:.8rem;font-weight:650;background:var(--surface,#fff);white-space:nowrap}
.row-actions-menu>summary::-webkit-details-marker{display:none}
.row-actions-menu>div{position:absolute;right:0;top:calc(100% + 5px);z-index:20;min-width:150px;padding:7px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);box-shadow:var(--shadow);display:grid}
.row-actions-menu>div button{text-align:left;padding:9px}
.operation-mobile-card{padding:0;overflow:visible}
.operation-mobile-card>summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px;cursor:pointer}
.operation-mobile-card>summary::-webkit-details-marker{display:none}
.operation-mobile-card>summary h3{margin:3px 0 4px;font-size:.96rem}
.operation-mobile-card>summary small{display:block}
.operation-mobile-details{padding:0 14px 14px;border-top:1px solid var(--line)}
.operation-mobile-details>p{color:var(--muted);margin:12px 0}
.mobile-year-heading{margin:12px 3px 0;color:var(--purple);font-size:.85rem}
.mobile-operation-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.mobile-operation-actions .row-actions-menu{margin-left:auto}

/* Programme d'entretien */
.maintenance-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:16px}
.maintenance-tabs button{display:flex;justify-content:center;align-items:center;gap:8px;min-height:46px;border:1px solid var(--line);border-radius:11px;background:var(--surface,#fff);color:var(--text);font-weight:700}
.maintenance-tabs button span{min-width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:var(--purple-soft);color:var(--purple);font-size:.72rem}
.maintenance-tabs button.active{background:var(--purple);color:#fff;border-color:var(--purple)}
.maintenance-tabs button.active span{background:rgba(255,255,255,.2);color:#fff}
.maintenance-table-v24{min-width:790px;table-layout:fixed}
.maintenance-table-v24 th:nth-child(1){width:29%}.maintenance-table-v24 th:nth-child(2){width:20%}.maintenance-table-v24 th:nth-child(3){width:22%}.maintenance-table-v24 th:nth-child(4){width:12%}.maintenance-table-v24 th:nth-child(5){width:17%}
.maintenance-mobile-card{padding:0;overflow:visible}
.maintenance-mobile-card>summary{list-style:none;display:flex;justify-content:space-between;gap:12px;padding:14px;cursor:pointer}
.maintenance-mobile-card>summary::-webkit-details-marker{display:none}
.maintenance-mobile-card>summary h3{margin:0 0 4px;font-size:.96rem}
.maintenance-mobile-details{padding:0 14px 14px;border-top:1px solid var(--line)}

/* Documents */
.document-unified-list{display:grid}
.document-list-row{display:block;padding:0}
.document-row-open{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:15px 18px;border:0;background:transparent;color:inherit;text-align:left}
.document-row-open:hover{background:var(--surface-soft,#fafafa)}
.document-row-open .document-icon{margin:0}
.document-list-main{display:block;min-width:0}
.document-list-main>strong{display:block;font-size:1rem}
.document-filename{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.82rem}
.document-list-main small{display:block;margin-top:5px}
.document-consult-label{padding:7px 10px;border:1px solid var(--line);border-radius:9px;font-weight:650;font-size:.82rem;white-space:nowrap}
.document-preview-disclosure>summary{cursor:pointer;font-weight:750;margin-bottom:9px}
.document-preview-meta{margin:0 0 9px;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.document-preview-loading,.document-preview-error{height:100%;display:grid;place-content:center;text-align:center;padding:20px;color:var(--muted)}
.document-preview-error strong{color:var(--text);font-size:1rem}.document-preview-error p{margin:8px 0 12px}

/* Paramètres */
.sticky-catalog-filters{position:sticky;top:0;z-index:8;padding:12px 0;background:var(--surface,#fff)}
.settings-catalog-section{margin-top:18px}
.catalog-group:not([open]) .catalog-group-list{display:none}
.catalog-compact-row>.actions .text-button{padding:7px 9px}

/* Modales */
.modal{scroll-padding-bottom:88px}
.modal .form-actions{position:sticky;bottom:-22px;z-index:8;padding:14px 0 0;background:linear-gradient(to bottom,transparent 0,var(--surface,#fff) 20%)}
.document-detail-modal .form-actions{bottom:0}

@media(max-width:1100px){
  .sidebar{width:min(86vw,320px);transform:translateX(-105%);transition:transform .22s;padding-left:18px;padding-right:18px}
  .sidebar.open{transform:translateX(0);box-shadow:12px 0 35px rgba(0,0,0,.18)}
  .sidebar-overlay:not([hidden]){display:block}
  .main-content{margin-left:0;padding-left:22px;padding-right:22px}
  .mobile-menu{display:inline-grid;place-items:center}
  .brand span,.nav-section-title,.sidebar-footer small{display:block}
  .dashboard-master-grid{grid-template-columns:1fr}
  .dashboard-maintenance-summary{grid-column:auto}
  .compact-document-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:920px){
  .history-desktop-table,.maintenance-desktop-table{display:none}
  .operation-mobile-list,.maintenance-mobile-list{display:grid;gap:10px}
  .history-panel{background:transparent;border:0;box-shadow:none;overflow:visible}
  .history-toolbar,.history-filter-zone{background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:14px}
  .history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .history-search-line{grid-template-columns:1fr}
  .active-filter-count{white-space:normal}
  .maintenance-tabs{grid-template-columns:1fr}
  .financial-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){
  .vehicle-context,.vehicle-context-hero{grid-template-columns:64px minmax(0,1fr);padding:10px}
  .vehicle-context-photo,.vehicle-context-hero .vehicle-context-photo{width:64px;height:54px;margin:0}
  .vehicle-context-data{grid-column:1/-1}.vehicle-context-actions{grid-column:1/-1}
  .vehicle-context-actions .button{width:100%}
  .premium-vehicle-grid .vehicle-photo{height:132px;min-height:132px}
  .vehicle-card-actions{padding-top:0}
  .dashboard-primary-actions{grid-template-columns:1fr}
  .dashboard-primary-actions .button:first-child{grid-column:auto}
  .dashboard-key-stats{grid-template-columns:1fr 1fr}
  .dashboard-identity-grid{grid-template-columns:1fr}
  .history-filters{grid-template-columns:1fr}
  .document-row-open{grid-template-columns:auto minmax(0,1fr);padding:14px}
  .document-consult-label{grid-column:2;justify-self:start}
  .documents-list-panel{background:transparent;border:0;box-shadow:none;padding:0}
  .document-unified-list{gap:10px}
  .document-list-row{border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);overflow:hidden}
  .document-preview-disclosure:not([open]) .document-preview-meta,.document-preview-disclosure:not([open]) .document-preview{display:none}
  .modal .form-actions{bottom:-1px;margin-left:-16px;margin-right:-16px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:var(--surface,#fff);border-top:1px solid var(--line)}
  .sticky-catalog-filters{top:-1px}
}

@media(max-width:430px){
  .dashboard-key-stats,.financial-summary-grid{grid-template-columns:1fr 1fr}
  .vehicle-context-data{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .vehicle-context-data>div{min-width:0}
  .mobile-nav button{font-size:.68rem;padding:4px 2px}
}

:root[data-theme="dark"] .vehicle-card-select,:root[data-theme="dark"] .document-row-open,:root[data-theme="dark"] .row-actions-menu>summary,:root[data-theme="dark"] .row-actions-menu>div,:root[data-theme="dark"] .maintenance-tabs button,:root[data-theme="dark"] .financial-summary-grid>div,:root[data-theme="dark"] .sticky-catalog-filters{background:var(--surface);color:var(--text);border-color:var(--line)}
@media(max-width:1350px) and (min-width:1101px){.compact-document-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* V24.1 — cartes véhicules : contenu toujours lisible */
.premium-vehicle-grid{grid-template-columns:repeat(auto-fill,minmax(290px,330px));gap:18px}
.premium-vehicle-grid .vehicle-card{min-height:430px}
.premium-vehicle-grid .vehicle-card-select{display:flex;flex-direction:column;flex:1;min-height:0}
.premium-vehicle-grid .vehicle-photo{height:205px;min-height:205px}
.premium-vehicle-grid .vehicle-photo img{width:100%;height:100%;max-height:none;object-fit:cover}
.premium-vehicle-grid .vehicle-card-body{padding:16px;gap:8px;min-height:165px}
.premium-vehicle-grid .vehicle-title-row{min-height:48px}
.premium-vehicle-grid .vehicle-title-row h2{line-height:1.2;margin-bottom:4px;overflow-wrap:anywhere}
.premium-vehicle-grid .vehicle-title-row p{margin:0;line-height:1.25;min-height:1.25em;white-space:normal;overflow:visible}
.premium-vehicle-grid .vehicle-registration{display:block;min-height:1.35em;line-height:1.35;font-weight:650;overflow-wrap:anywhere}
.premium-vehicle-grid .vehicle-summary{margin-top:4px}
.premium-vehicle-grid .vehicle-card-actions{margin-top:auto;padding:0 16px 16px}
@media(max-width:760px){.premium-vehicle-grid{grid-template-columns:1fr}.premium-vehicle-grid .vehicle-card{min-height:0}.premium-vehicle-grid .vehicle-photo{height:190px;min-height:190px}}
@media(max-width:420px){.premium-vehicle-grid .vehicle-photo{height:165px;min-height:165px}}


/* V24.3 — standard unique des cartes véhicules */
.premium-vehicle-grid.vehicle-grid-v243{
  grid-template-columns:repeat(auto-fill,minmax(272px,300px));
  gap:18px;
  align-items:stretch;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-card.vehicle-card-standard{
  min-height:470px;
  height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-photo{
  height:190px;
  min-height:190px;
  background:#eef1f5;
  overflow:hidden;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  max-height:none;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-card-standard-body{
  display:flex;
  flex-direction:column;
  flex:1;
  gap:14px;
  padding:16px;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-identity-panel{
  min-height:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  gap:8px;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-identity-panel h2{
  margin:0;
  font-size:1.08rem;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-wrap:balance;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-version{
  margin:0;
  font-size:.9rem;
  line-height:1.3;
  color:var(--muted);
  min-height:2.34em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-registration-chip{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(68,0,153,.06);
  font-weight:700;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-summary{
  margin:0;
  gap:10px;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-summary-item{
  min-height:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--surface);
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-summary-item small{
  margin:0 0 6px;
  font-size:.77rem;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-summary-item strong{
  font-size:1.08rem;
  line-height:1.2;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-card-actions-standard{
  margin-top:auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-settings-button{
  width:44px;
  height:44px;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--purple);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.25rem;
  font-weight:700;
  box-shadow:var(--shadow);
}
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-settings-button:hover,
.premium-vehicle-grid.vehicle-grid-v243 .vehicle-settings-button:focus-visible{
  border-color:var(--purple);
  background:var(--purple-soft);
  outline:none;
}
@media(max-width:760px){
  .premium-vehicle-grid.vehicle-grid-v243{grid-template-columns:1fr}
  .premium-vehicle-grid.vehicle-grid-v243 .vehicle-card.vehicle-card-standard{min-height:0}
  .premium-vehicle-grid.vehicle-grid-v243 .vehicle-photo{height:200px;min-height:200px}
}
:root[data-theme="dark"] .premium-vehicle-grid.vehicle-grid-v243 .vehicle-registration-chip{
  background:rgba(255,255,255,.04);
}
:root[data-theme="dark"] .premium-vehicle-grid.vehicle-grid-v243 .vehicle-settings-button,
:root[data-theme="dark"] .premium-vehicle-grid.vehicle-grid-v243 .vehicle-summary-item{
  background:var(--surface);
}


/* V24.4 — accueil premium et cartes véhicules harmonisées */
.garage-premium-hero{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(260px,.85fr);
  gap:18px;
  margin-bottom:18px;
  padding:20px;
}
.garage-premium-main{
  display:grid;
  gap:16px;
  align-content:start;
}
.garage-premium-main h2{margin:0 0 6px;font-size:1.45rem}
.garage-premium-actions{display:flex;gap:10px;flex-wrap:wrap}
.garage-selected-spotlight{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(68,0,153,.08),rgba(68,0,153,.02));
}
.garage-selected-visual{
  width:110px;height:86px;border-radius:14px;overflow:hidden;background:var(--purple-soft);display:grid;place-items:center;color:var(--purple);font-size:2rem;font-weight:800;
}
.garage-selected-visual img{width:100%;height:100%;object-fit:cover}
.garage-selected-copy{display:grid;gap:4px;min-width:0}
.garage-selected-copy small{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.garage-selected-copy strong{font-size:1.05rem;line-height:1.25}
.garage-selected-copy span{color:var(--muted);line-height:1.35}
.garage-overview-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:20px;
}
.garage-overview-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px 18px;
  box-shadow:var(--shadow);
  display:grid;
  gap:5px;
}
.garage-overview-card small{font-size:.76rem}
.garage-overview-card strong{font-size:1.4rem;line-height:1.1}
.garage-overview-card span{color:var(--muted);font-size:.83rem;line-height:1.3}
.premium-garage-toolbar{margin-top:2px}
.vehicle-grid-v244{
  grid-template-columns:repeat(auto-fill,minmax(272px,300px));
  gap:18px;
  align-items:stretch;
}
.vehicle-grid-v244 .vehicle-card-premium{
  min-height:470px;
  height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.vehicle-grid-v244 .vehicle-card-select-premium{
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}
.vehicle-grid-v244 .vehicle-photo-premium{
  height:190px;
  min-height:190px;
  overflow:hidden;
  background:#eef1f5;
}
.vehicle-grid-v244 .vehicle-photo-premium img{
  width:100%;height:100%;object-fit:cover;max-height:none;
}
.vehicle-grid-v244 .vehicle-card-body-premium{
  display:flex;
  flex-direction:column;
  gap:14px;
  flex:1;
  padding:16px;
}
.vehicle-grid-v244 .vehicle-identity-stack{
  display:grid;
  gap:8px;
  min-height:108px;
  align-content:start;
  text-align:center;
}
.vehicle-grid-v244 .vehicle-identity-stack h3{
  margin:0;
  font-size:1.1rem;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-wrap:balance;
}
.vehicle-grid-v244 .vehicle-card-subtitle{
  margin:0;
  color:var(--muted);
  line-height:1.3;
  min-height:2.34em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.vehicle-grid-v244 .vehicle-registration-pill{
  width:100%;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(68,0,153,.06);
  font-weight:700;
  line-height:1.25;
}
.vehicle-grid-v244 .vehicle-summary-premium{
  margin:0;
  gap:10px;
}
.vehicle-grid-v244 .vehicle-summary-centered{
  min-height:74px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.vehicle-grid-v244 .vehicle-summary-centered small{margin:0 0 6px;font-size:.77rem}
.vehicle-grid-v244 .vehicle-summary-centered strong{font-size:1.08rem;line-height:1.2}
.vehicle-grid-v244 .vehicle-card-actions-premium{
  margin-top:auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding:0 16px 16px;
}
.vehicle-grid-v244 .vehicle-settings-button{
  width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--purple);display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;box-shadow:var(--shadow);
}
.vehicle-grid-v244 .vehicle-settings-button:hover,
.vehicle-grid-v244 .vehicle-settings-button:focus-visible{
  border-color:var(--purple);
  background:var(--purple-soft);
  outline:none;
}
:root[data-theme="dark"] .garage-selected-spotlight,
:root[data-theme="dark"] .garage-overview-card,
:root[data-theme="dark"] .vehicle-grid-v244 .vehicle-registration-pill,
:root[data-theme="dark"] .vehicle-grid-v244 .vehicle-settings-button{
  background:var(--surface);
}
@media(max-width:1100px){
  .garage-premium-hero{grid-template-columns:1fr}
  .garage-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .garage-premium-actions{display:grid;grid-template-columns:1fr 1fr}
  .garage-overview-grid{grid-template-columns:1fr 1fr}
  .vehicle-grid-v244{grid-template-columns:1fr}
  .vehicle-grid-v244 .vehicle-card-premium{min-height:0}
  .vehicle-grid-v244 .vehicle-photo-premium{height:205px;min-height:205px}
}
@media(max-width:520px){
  .garage-premium-actions{grid-template-columns:1fr}
  .garage-overview-grid{grid-template-columns:1fr}
  .garage-selected-spotlight{grid-template-columns:1fr}
  .garage-selected-visual{width:100%;height:150px}
}


/* V24.5 — programme par véhicule et contrôle technique séparé */
.maintenance-source-note{margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft,#fafafa);color:var(--muted);font-size:.86rem}
.technical-inspection-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.technical-inspection-summary>div{display:grid;gap:5px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft,#fafafa)}
.technical-inspection-summary small{font-size:.76rem}.technical-inspection-summary strong{font-size:1.15rem}.technical-inspection-summary .badge{justify-self:start}
@media(max-width:760px){.technical-inspection-summary{grid-template-columns:1fr}.maintenance-table-v24 .operation-row-primary{align-items:flex-start}}
:root[data-theme="dark"] .maintenance-source-note,:root[data-theme="dark"] .technical-inspection-summary>div{background:var(--surface);border-color:var(--line)}

/* V24.6 — tableau de bord minimaliste et orienté actions */
.dashboard-vehicle-header-v246{
  margin-bottom:18px;
  padding:20px;
}
.dashboard-vehicle-topline{
  display:grid;
  grid-template-columns:180px minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.dashboard-vehicle-photo-v246{
  width:180px;
  height:125px;
  border-radius:15px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:var(--purple-soft);
  color:var(--purple);
  font-size:2.3rem;
  font-weight:800;
}
.dashboard-vehicle-photo-v246 img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.dashboard-vehicle-title-v246{min-width:0}
.dashboard-vehicle-title-v246 .eyebrow{margin-bottom:5px}
.dashboard-vehicle-title-v246 h2{
  margin:0 0 14px;
  font-size:1.55rem;
  line-height:1.2;
}
.dashboard-vehicle-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.dashboard-vehicle-facts>div{
  min-width:0;
  min-height:66px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-soft,#fafafa);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.dashboard-vehicle-facts small,
.dashboard-profile-item small,
.dashboard-technical-grid small{
  display:block;
  font-size:.72rem;
  color:var(--muted);
}
.dashboard-vehicle-facts strong{
  display:block;
  margin-top:5px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.dashboard-header-actions{
  display:grid;
  grid-template-columns:auto minmax(150px,1fr);
  gap:8px;
  align-items:center;
}
.dashboard-header-actions .button{white-space:nowrap}
.dashboard-icon-button{
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface,#fff);
  color:var(--purple);
  font-size:1.2rem;
  display:grid;
  place-items:center;
}
.dashboard-icon-button:hover,
.dashboard-icon-button:focus-visible{
  border-color:var(--purple);
  background:var(--purple-soft);
  outline:none;
}
.dashboard-profile-groups{
  display:grid;
  grid-template-columns:1.25fr .85fr .9fr;
  gap:14px;
  padding-top:18px;
}
.dashboard-profile-group{
  min-width:0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface-soft,#fafafa);
}
.dashboard-profile-group h3{
  margin:0 0 11px;
  font-size:.9rem;
}
.dashboard-profile-items{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px 14px;
}
.dashboard-profile-item{min-width:0}
.dashboard-profile-item strong{
  display:block;
  margin-top:3px;
  font-size:.88rem;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.dashboard-inline-link,
.dashboard-module-link{
  border:0;
  background:transparent;
  color:var(--purple);
  font-weight:650;
  padding:0;
}
.dashboard-inline-link{
  margin-top:12px;
  font-size:.84rem;
}
.dashboard-minimal-grid{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);
  gap:18px;
  align-items:start;
}
.dashboard-replacements-module,
.dashboard-compact-module,
.dashboard-pending-module{
  padding:18px;
}
.dashboard-module-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}
.dashboard-module-heading h2{
  margin:0;
  font-size:1.08rem;
}
.dashboard-priority-list,
.dashboard-recent-list,
.dashboard-pending-list{
  display:grid;
}
.dashboard-priority-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  min-height:49px;
  padding:10px 0 10px 12px;
  border-bottom:1px solid var(--line);
  position:relative;
}
.dashboard-priority-row::before{
  content:"";
  position:absolute;
  left:0;
  width:3px;
  height:24px;
  border-radius:999px;
  background:var(--orange);
}
.dashboard-priority-row.is-overdue::before{background:var(--red)}
.dashboard-priority-row:last-child{border-bottom:0}
.dashboard-priority-row strong{
  font-size:.94rem;
  line-height:1.3;
}
.dashboard-clear-state{
  min-height:84px;
  display:grid;
  place-items:center;
  text-align:center;
  color:var(--muted);
}
.dashboard-clear-state strong{
  font-size:.9rem;
  font-weight:600;
}
.dashboard-side-stack{
  display:grid;
  gap:18px;
}
.dashboard-technical-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:14px;
}
.dashboard-technical-grid>div{
  min-width:0;
  padding:11px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface-soft,#fafafa);
}
.dashboard-technical-grid strong{
  display:block;
  margin-top:5px;
  font-size:.9rem;
  line-height:1.25;
}
.dashboard-recent-row{
  display:grid;
  grid-template-columns:102px minmax(0,1fr);
  gap:11px;
  align-items:center;
  min-height:45px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.dashboard-recent-row:last-child{border-bottom:0}
.dashboard-recent-row time{
  display:inline-flex;
  justify-content:center;
  padding:6px 8px;
  border-radius:9px;
  background:var(--purple-soft);
  color:var(--purple);
  font-size:.78rem;
  font-weight:650;
  white-space:nowrap;
}
.dashboard-recent-row strong{
  font-size:.9rem;
  line-height:1.3;
}
.dashboard-compact-module>.dashboard-module-link,
.dashboard-replacements-module .dashboard-module-link,
.dashboard-pending-module>.dashboard-module-link{
  margin-top:12px;
  font-size:.86rem;
}
.dashboard-replacements-module .dashboard-module-heading .dashboard-module-link{
  margin-top:0;
  white-space:nowrap;
}
.dashboard-pending-module{margin-top:18px}
.dashboard-count-badge{
  min-width:28px;
  height:28px;
  padding:0 8px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  background:var(--orange-soft);
  color:var(--orange);
  font-size:.8rem;
  font-weight:700;
}
.dashboard-pending-list>div{
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.dashboard-pending-list>div:last-child{border-bottom:0}
.dashboard-pending-list strong{font-size:.9rem}
:root[data-theme="dark"] .dashboard-vehicle-facts>div,
:root[data-theme="dark"] .dashboard-profile-group,
:root[data-theme="dark"] .dashboard-technical-grid>div,
:root[data-theme="dark"] .dashboard-icon-button{
  background:var(--surface);
  border-color:var(--line);
}
@media(max-width:1250px){
  .dashboard-vehicle-topline{grid-template-columns:150px minmax(0,1fr)}
  .dashboard-vehicle-photo-v246{width:150px;height:110px}
  .dashboard-header-actions{grid-column:1/-1;display:flex;justify-content:flex-end;flex-wrap:wrap}
  .dashboard-profile-groups{grid-template-columns:1fr 1fr}
  .dashboard-profile-group:first-child{grid-column:1/-1}
}
@media(max-width:980px){
  .dashboard-minimal-grid{grid-template-columns:1fr}
  .dashboard-profile-groups{grid-template-columns:1fr}
  .dashboard-profile-group:first-child{grid-column:auto}
}
@media(max-width:760px){
  .dashboard-vehicle-header-v246{padding:15px}
  .dashboard-vehicle-topline{grid-template-columns:82px minmax(0,1fr);gap:12px}
  .dashboard-vehicle-photo-v246{width:82px;height:72px;border-radius:12px}
  .dashboard-vehicle-title-v246 h2{font-size:1.2rem;margin-bottom:10px}
  .dashboard-vehicle-facts{grid-column:1/-1;grid-template-columns:1fr 1fr}
  .dashboard-vehicle-facts>div:first-child{grid-column:1/-1}
  .dashboard-header-actions{display:grid;grid-template-columns:auto 1fr}
  .dashboard-header-actions .button{width:100%}
  .dashboard-profile-items{grid-template-columns:1fr 1fr}
  .dashboard-module-heading{align-items:flex-start}
}
@media(max-width:480px){
  .dashboard-vehicle-topline{grid-template-columns:1fr}
  .dashboard-vehicle-photo-v246{width:100%;height:170px}
  .dashboard-vehicle-facts{grid-template-columns:1fr}
  .dashboard-vehicle-facts>div:first-child{grid-column:auto}
  .dashboard-header-actions{grid-template-columns:1fr 1fr}
  .dashboard-header-actions .dashboard-icon-button{width:100%}
  .dashboard-profile-items{grid-template-columns:1fr}
  .dashboard-module-heading{display:grid}
  .dashboard-replacements-module .dashboard-module-heading .dashboard-module-link{justify-self:start}
  .dashboard-technical-grid{grid-template-columns:1fr}
  .dashboard-recent-row{grid-template-columns:1fr;gap:6px}
  .dashboard-recent-row time{justify-self:start}
}
