*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#17213b;font-family:Inter,system-ui,sans-serif}.wrap{width:min(960px,calc(100% - 32px));margin:auto;padding:60px 0}.card{background:#fff;border:1px solid #e3e8f1;border-radius:24px;padding:clamp(24px,5vw,50px);box-shadow:0 24px 60px rgba(20,33,61,.1)}.kicker{font-size:.78rem;font-weight:900;letter-spacing:.14em;color:#2f6fed}h1{font-size:clamp(2rem,5vw,3.4rem);margin:.35rem 0}.intro{color:#617087}.row{display:grid;grid-template-columns:1fr 170px auto;gap:12px;margin-top:12px}label{display:block;margin-top:28px;font-weight:800}input,select,button{border-radius:13px;padding:15px 16px;font-size:1rem}input,select{border:2px solid #dbe2ed;background:white}button{border:0;background:#2f6fed;color:#fff;font-weight:800;cursor:pointer}.status{min-height:24px;color:#6b768a}.status.error{color:#b42318}.hidden{display:none}.result{background:#f8faff;border:1px solid #e0e7f4;border-radius:18px;padding:22px}.head{display:flex;justify-content:space-between;gap:20px;align-items:center}.head small{color:#758198;text-transform:uppercase}h2{margin:4px 0}#badge{border:3px solid #15233c;border-left:14px solid #2767d8;border-radius:7px;padding:8px 14px;background:#fff}dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}dl div{background:#fff;border:1px solid #e4e9f2;border-radius:12px;padding:13px}dt{font-size:.78rem;color:#778398;margin-bottom:5px}dd{margin:0;font-weight:750;word-break:break-word}@media(max-width:700px){.row{grid-template-columns:1fr}.head{align-items:flex-start;flex-direction:column}dl{grid-template-columns:1fr}}
.title-area{display:flex;align-items:center;gap:14px}
.brand-logo{width:52px;height:52px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid #e2e7ef;padding:6px}
.vehicle-photo{display:block;width:min(100%,560px);max-height:300px;object-fit:contain;margin:20px auto;border-radius:16px;background:#fff;border:1px solid #e4e9f2}
.tyres{margin-top:20px;padding:18px;background:#fff;border:1px solid #e4e9f2;border-radius:14px}
.tyres h3{margin:0 0 12px}
.tyres ul{margin:0;padding-left:22px;display:grid;gap:8px}

.vin-action{margin-top:20px;padding:18px;background:#eef4ff;border:1px solid #cfdcf7;border-radius:14px}.secondary-button{padding:14px 18px;background:#14213d}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.action-help{margin:9px 0 0;color:#62708a;font-size:.9rem}.vin-page .card{max-width:1100px;margin:auto}.back-link{display:inline-block;margin-bottom:18px;color:#2f6fed;font-weight:750;text-decoration:none}.summary-grid,.parts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.info-box,.part-card{background:#fff;border:1px solid #e4e9f2;border-radius:12px;padding:14px}.info-box span,.part-card small{display:block;color:#778398;font-size:.78rem;margin-bottom:5px}.info-box strong{word-break:break-word}.part-card h3{margin:0 0 10px}.versions{overflow-x:auto;margin-top:16px}.versions table{width:100%;border-collapse:collapse;background:#fff}.versions th,.versions td{border:1px solid #e4e9f2;padding:9px;text-align:left;font-size:.88rem}.versions th{background:#f4f7fc}.bool-yes{font-weight:800}.raw-block{margin-top:20px}.raw-block summary{cursor:pointer;font-weight:800}.raw-block pre{white-space:pre-wrap;word-break:break-word;background:#101827;color:#e7edf7;padding:15px;border-radius:12px;overflow:auto}@media(max-width:800px){.summary-grid,.parts-grid{grid-template-columns:1fr}}

/* VIN Analyzer — dark dashboard */
.vin-dark{background:#171719;color:#f4f4f5;min-height:100vh}.vin-shell{width:min(1390px,calc(100% - 40px));margin:auto;padding:30px 0 70px}.vin-topbar{display:flex;align-items:flex-start;gap:28px;margin-bottom:24px}.vin-back{color:#d8d8dc;text-decoration:none;border:1px solid #39393e;border-radius:10px;padding:10px 14px}.vin-back:hover{background:#242427}.vin-eyebrow{margin:0 0 5px;color:#C98322;font-weight:850;letter-spacing:.13em;font-size:.75rem}.vin-dark h1{margin:0;font-size:clamp(2rem,4vw,3.2rem)}.vin-status{min-height:24px;color:#aaaab0}.vin-status.error{color:#fb7185}.vin-hero{display:grid;grid-template-columns:1fr 2fr .6fr;gap:14px;margin-bottom:26px}.vin-hero>div,.vin-info-card,.capability-card{background:#1b1b1e;border:1px solid #050506;border-radius:9px;box-shadow:0 5px 12px rgba(0,0,0,.28)}.vin-hero>div{padding:19px}.vin-muted,.vin-info-card span{display:block;color:#a7a7ad;font-size:.82rem;margin-bottom:7px}.vin-hero strong{font-size:1.05rem;word-break:break-word}.vin-accordion{border-top:1px solid #37373b;padding:0 18px}.vin-accordion:last-child{border-bottom:1px solid #37373b}.vin-accordion>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:23px 0;font-size:1.05rem}.vin-accordion>summary::-webkit-details-marker{display:none}.accordion-symbol{font-size:1.65rem;font-weight:300;color:#efeff1}.vin-accordion-body{padding:0 0 24px}.vin-info-grid,.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.vin-info-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.capability-grid.three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.capability-grid.four-cols{grid-template-columns:repeat(4,minmax(0,1fr))}.vin-info-card{padding:20px;min-height:105px}.vin-info-card strong{white-space:pre-line;word-break:break-word;line-height:1.45}.capability-card{min-height:133px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.capability-card strong{font-size:1.45rem;text-transform:none}.capability-card span{margin-top:17px;font-size:1.12rem}.capability-card.is-supported span{color:#f5f5f5}.capability-card.is-supported::before{content:'';width:9px;height:9px;border-radius:50%;background:#C98322;margin-bottom:10px;box-shadow:0 0 18px rgba(74,222,128,.45)}.capability-card.is-unsupported::before{content:'';width:9px;height:9px;border-radius:50%;background:#6b6b72;margin-bottom:10px}.capability-card.is-unsupported{opacity:.82}.version-block{margin-top:24px}.version-heading{display:flex;align-items:center;justify-content:space-between;padding:0 18px 18px;font-size:1.08rem}.version-dot{width:20px;height:20px;border-radius:50%;background:#C98322;box-shadow:0 0 20px rgba(74,222,128,.35)}.part-analysis>.vin-accordion{margin-bottom:18px}.vin-raw{margin-top:30px;border:1px solid #39393e;border-radius:10px;padding:16px}.vin-raw summary{cursor:pointer;font-weight:800}.vin-raw pre{margin-top:15px;background:#101012;color:#dddde2;border-radius:8px;padding:16px;overflow:auto;white-space:pre-wrap;word-break:break-word}.hidden{display:none!important}@media(max-width:1000px){.capability-grid.four-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.vin-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.vin-shell{width:min(100% - 22px,1390px);padding-top:18px}.vin-topbar{flex-direction:column;gap:16px}.vin-hero,.vin-info-grid,.vin-info-grid.two-cols,.capability-grid,.capability-grid.three-cols,.capability-grid.four-cols{grid-template-columns:1fr}.vin-accordion{padding:0 4px}.capability-card{min-height:112px}}

/* Page d'accueil — même identité visuelle que VIN Analyzer */
.home-page{background:#171719;color:#f4f4f5;min-height:100vh}
.home-topbar{margin-bottom:24px}
.home-intro{max-width:760px;margin:12px 0 0;color:#aaaab0;line-height:1.55}
.home-search-panel,.home-result{background:#1b1b1e;border:1px solid #050506;border-radius:9px;box-shadow:0 5px 12px rgba(0,0,0,.28)}
.home-search-panel{padding:24px;margin-bottom:24px}
.home-page label{margin:0 0 10px;color:#d8d8dc;font-weight:800}
.home-search-row{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:12px}
.home-page input,.home-page select{width:100%;border:1px solid #39393e;background:#101012;color:#f4f4f5;border-radius:9px;padding:15px 16px;font-size:1rem;outline:none}
.home-page input:focus,.home-page select:focus{border-color:#C98322;box-shadow:0 0 0 3px rgba(74,222,128,.12)}
.home-page select option{background:#171719;color:#f4f4f5}
.home-page button{border:1px solid #C98322;background:#C98322;color:#101012;border-radius:9px;padding:14px 18px;font-weight:850;cursor:pointer}
.home-page button:hover:not(:disabled){filter:brightness(1.05)}
.home-page button:disabled{opacity:.45;cursor:not-allowed}
.home-status{margin:13px 0 0;min-height:20px;color:#aaaab0}
.home-status.error{color:#fb7185}
.home-result{padding:24px}
.home-result-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:22px;border-bottom:1px solid #37373b}
.home-result h2{margin:4px 0 0;font-size:clamp(1.35rem,3vw,2rem)}
.home-page .brand-logo{width:58px;height:58px;object-fit:contain;border:1px solid #39393e;background:#101012;border-radius:9px;padding:7px}
.plate-badge{display:none}
.home-vehicle-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.7fr);gap:18px;margin:22px 0}
.home-photo-panel,.home-vin-panel{background:#1b1b1e;border:1px solid #050506;border-radius:9px;box-shadow:0 5px 12px rgba(0,0,0,.28);padding:20px}
.home-photo-panel{min-height:180px;display:flex;align-items:center;justify-content:center}
.home-page .vehicle-photo{display:block;width:100%;max-height:320px;object-fit:contain;margin:0;border:0;border-radius:8px;background:#101012}
.home-vin-panel{display:flex;flex-direction:column;justify-content:center}
.home-vin-panel h3{margin:3px 0 8px;font-size:1.45rem}
.home-page .action-help{margin:0 0 18px;color:#aaaab0;line-height:1.5}
.home-page .secondary-button{width:100%;background:#101012;color:#f4f4f5;border-color:#C98322}
.home-page .secondary-button:hover:not(:disabled){background:#242427}
.home-accordion{margin-top:8px;padding-left:0;padding-right:0}
.home-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:0}
.home-details-grid div{background:#1b1b1e;border:1px solid #050506;border-radius:9px;box-shadow:0 5px 12px rgba(0,0,0,.28);padding:20px;min-height:105px}
.home-details-grid dt{font-size:.82rem;color:#a7a7ad;margin-bottom:7px}
.home-details-grid dd{margin:0;color:#f4f4f5;font-weight:750;word-break:break-word;line-height:1.45}
.home-tyres{margin-top:22px;padding:20px;background:#1b1b1e;border:1px solid #050506;border-radius:9px;box-shadow:0 5px 12px rgba(0,0,0,.28)}
.home-tyres h3{margin:0 0 14px}
.home-tyres ul{margin:0;padding-left:22px;display:grid;gap:9px;color:#d8d8dc}
@media(max-width:900px){.home-search-row{grid-template-columns:1fr 170px}.home-search-row button{grid-column:1/-1}.home-vehicle-layout{grid-template-columns:1fr}.home-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.home-search-panel,.home-result{padding:17px}.home-search-row,.home-details-grid{grid-template-columns:1fr}.home-result-head{align-items:flex-start;flex-direction:column}.plate-badge{white-space:normal}.home-photo-panel{min-height:120px}}


/* Navigation, impression et plaque */
.plate-badge,
#badge.plate-badge {
  color: #000;
  background: #fff;
}
.home-head-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.print-button {
  border: 1px solid #C98322;
  background: #101012;
  color: #f4f4f5;
  border-radius: 9px;
  padding: 10px 14px;
  font-weight: 800;
  cursor: pointer;
}
.print-button:hover { background: #242427; }
.vin-back {
  font: inherit;
  cursor: pointer;
  background: transparent;
}
.vin-heading { flex: 1; }
.vin-print-button { margin-left: auto; }

@media(max-width:700px) {
  .home-head-actions { justify-content: flex-start; }
  .vin-print-button { margin-left: 0; }
}

@media print {
  @page { margin: 12mm; }
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body.vin-dark,
  body.home-page {
    background: #fff !important;
    color: #000 !important;
  }
  .vin-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .home-search-panel,
  .vin-back,
  .print-button,
  #analyze-vin,
  #vin-action-help,
  #vin-status,
  .vin-raw,
  .accordion-symbol {
    display: none !important;
  }
  .home-result,
  .home-photo-panel,
  .home-vin-panel,
  .home-details-grid div,
  .home-tyres,
  .vin-hero > div,
  .vin-info-card,
  .capability-card {
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
    border: 1px solid #aaa !important;
    break-inside: avoid;
  }
  .home-result { padding: 0 !important; border: 0 !important; }
  .home-vin-panel { display: none !important; }
  .home-vehicle-layout { grid-template-columns: 1fr !important; }
  .home-result-head,
  .vin-topbar {
    border-bottom: 1px solid #999 !important;
    margin-bottom: 14px !important;
    padding-bottom: 12px !important;
  }
  .home-details-grid,
  .vin-info-grid,
  .vin-info-grid.two-cols,
  .capability-grid,
  .capability-grid.three-cols,
  .capability-grid.four-cols {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .vin-muted,
  .vin-info-card span,
  .home-details-grid dt,
  .home-intro {
    color: #444 !important;
  }
  .home-details-grid dd,
  .vin-dark h1,
  .vin-hero strong,
  .vin-info-card strong,
  .capability-card strong,
  .capability-card span {
    color: #000 !important;
  }
  .plate-badge,
  #badge.plate-badge {
    color: #000 !important;
    background: #fff !important;
    border-color: #000 !important;
  }
  details.vin-accordion { display: block !important; }
  details.vin-accordion > summary { display: block !important; padding: 12px 0 !important; }
  details.vin-accordion > .vin-accordion-body { display: block !important; }
  .capability-card.is-supported::before { background: #138a40 !important; }
  .capability-card.is-unsupported::before { background: #777 !important; }
  .version-block,
  .vin-accordion,
  .part-analysis { break-inside: avoid-page; }
  a[href]::after { content: none !important; }
}

/* Authentification LDAP */
.auth-page { min-height: 100vh; }
.auth-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 15% 10%, rgba(37,99,235,.22), transparent 35%),
    radial-gradient(circle at 85% 90%, rgba(79,70,229,.18), transparent 35%),
    #09090b;
}
.auth-card {
  width: min(440px, 100%);
  padding: 38px;
  border: 1px solid #27272a;
  border-radius: 24px;
  background: rgba(24,24,27,.88);
  box-shadow: 0 24px 70px rgba(0,0,0,.45);
  backdrop-filter: blur(18px);
  text-align: center;
}
.auth-icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 18px;
  background: rgba(37,99,235,.18);
  color: #60a5fa;
  font-size: 28px;
}
.auth-card h1 { margin: 6px 0 8px; }
.auth-subtitle { color: #a1a1aa; margin: 0 0 28px; }
.auth-form { display: grid; gap: 10px; text-align: left; }
.auth-form label { margin-top: 8px; color: #d4d4d8; font-weight: 700; font-size: 14px; }
.auth-form input {
  width: 100%; box-sizing: border-box; padding: 13px 14px; border-radius: 11px;
  border: 1px solid #3f3f46; background: #09090b; color: #fff; font: inherit;
}
.auth-form input:focus { outline: 2px solid rgba(59,130,246,.45); border-color: #3b82f6; }
.auth-form button { margin-top: 14px; width: 100%; }
.auth-error { margin: 10px 0 0; padding: 12px; border: 1px solid rgba(248,113,113,.35); border-radius: 10px; background: rgba(127,29,29,.25); color: #fca5a5; }
.auth-user-box { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.auth-user-box > div { display: grid; text-align: right; }
.auth-user-box strong { color: #fafafa; font-size: 14px; }
.auth-user-box span { color: #a1a1aa; font-size: 12px; }
.logout-button { padding: 9px 12px; border: 1px solid #3f3f46; border-radius: 9px; background: #18181b; color: #e4e4e7; cursor: pointer; font-weight: 700; }
.logout-button:hover { background: #27272a; }
.vin-header-actions { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.auth-user-box.compact { margin-left: 0; }
@media(max-width:800px) {
  .auth-user-box { width: 100%; justify-content: space-between; margin-left: 0; }
  .auth-user-box > div { text-align: left; }
  .vin-header-actions { width: 100%; margin-left: 0; flex-wrap: wrap; }
}
@media print { .auth-user-box, .logout-button { display: none !important; } }


/* Identité visuelle ÁRMA */
.app-heading-block{display:flex;flex-direction:column;align-items:flex-start}
.app-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.app-brand-compact{margin-bottom:12px}
.app-logo{width:64px;height:64px;object-fit:contain;border-radius:0;border:0;box-shadow:none;background:transparent}
.app-brand-compact .app-logo{width:48px;height:48px}
.app-brand>div{display:flex;flex-direction:column;line-height:1}
.app-name{font-size:1.55rem;font-weight:950;letter-spacing:.13em;color:#fff}
.app-tagline{margin-top:7px;font-size:.68rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#38bdf8}
.auth-brand-logo{display:block;width:132px;height:132px;object-fit:contain;border-radius:0;margin:0 auto 20px;border:0;box-shadow:none;background:transparent}
@media(max-width:700px){.app-logo{width:54px;height:54px}.app-name{font-size:1.3rem}}
@media print{.app-logo{width:44px!important;height:44px!important;box-shadow:none!important}.app-name{color:#000!important}.app-tagline{color:#333!important}}


/* Avertissement visible lorsque le bypass d’authentification est actif */
.development-mode-banner {
  position: sticky; top: 0; z-index: 9999; width: 100%; box-sizing: border-box;
  padding: 8px 16px; text-align: center; font-size: 13px; font-weight: 900;
  letter-spacing: .04em; color: #111827; background: #fbbf24;
  border-bottom: 1px solid #d97706; box-shadow: 0 4px 14px rgba(0,0,0,.25);
}

/* Search History */
.search-history-panel { background: #1b1b1e; border: 1px solid #050506; border-radius: 9px; box-shadow: 0 5px 12px rgba(0,0,0,.28); padding: 24px; margin-bottom: 24px; }
.search-history-panel .vin-eyebrow { margin: 0 0 16px; }
#history-list { display: grid; grid-template-columns: 1fr; gap: 10px; }
.history-row { display: grid; grid-template-columns: 140px minmax(0,1fr) minmax(0,auto) auto; gap: 12px; align-items: center; padding: 14px 16px; background: #101012; border: 1px solid #27272a; border-radius: 8px; }
.history-cell { font-size: 0.88rem; color: #a1a1aa; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.history-plate { font-weight: 800; color: #f4f4f5; font-size: 1rem; letter-spacing: .04em; }
.history-make { color: #d8d8dc; }
.history-vin { font-family: monospace; font-size: 0.8rem; color: #71717a; }
.retry-button { padding: 7px 16px; background: #C98322; color: #101012; border: 0; border-radius: 8px; cursor: pointer; font-weight: 800; font-size: 0.82rem; white-space: nowrap; }
.retry-button:hover { background: #b8751e; }
@media(max-width:900px){.history-row{grid-template-columns:1fr auto;gap:8px}.history-plate{grid-column:1}.history-make{grid-column:1}.history-vin{grid-column:1/-1}.retry-button{grid-column:1/-1;width:100%}}
.development-auth-disabled .logout-button[hidden] { display: none !important; }
@media print { .development-mode-banner { display: none !important; } }
