/* Compléments au thème MudBlazor (FcrTheme.cs). Polices servies par l'application : aucun appel externe. */
@font-face { font-family: "Manrope"; src: url("fonts/manrope-latin-wght-normal.woff2") format("woff2"); font-weight: 200 800; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url("fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2"); font-weight: 100 800; font-display: swap; }

html, body {
    background: #F3F6FB;
}

html { scroll-behavior: smooth; }
body { min-width: 320px; }

/* Application shell: surfaces, spacing and controls remain legible on desktop and touch screens.
   Palette « premium » : navy profond, bleu franc, neutres froids et doux (voir aussi FcrTheme.cs). */
:root {
    --fcr-navy: #0E2B4A;
    --fcr-navy-2: #1B4A79;
    --fcr-blue: #1668A8;
    --fcr-blue-strong: #0F557F;
    --fcr-accent: #37A0E6;
    --fcr-ink: #15242F;
    --fcr-muted: #5A6B7B;
    --fcr-line: #E4EAF1;
    --fcr-surface: #FFFFFF;
    --fcr-navy-950: #071A2C;
    --fcr-amber: #F5B544;
    --fcr-amber-ink: #8A5A00;
    --fcr-amber-soft: #FEF6E4;
    --fcr-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
    --fcr-shadow: 0 1px 2px rgba(14, 43, 74, .05), 0 10px 26px -18px rgba(14, 43, 74, .28);
}

body { color: var(--fcr-ink); }
.fcr-shell .mud-appbar { min-height: 64px; border-bottom: 1px solid var(--fcr-line); }
.fcr-shell .mud-appbar .mud-toolbar { min-height: 64px; }
.fcr-shell .mud-main-content { padding-top: 64px; }
.fcr-app-container { min-height: calc(100vh - 64px); }
.fcr-app-container > .mud-paper, .fcr-app-container .mud-paper { border-color: var(--fcr-line); box-shadow: 0 2px 10px rgba(24, 43, 61, .04); }
.mud-input-control { min-width: 0; }
.mud-input-label { font-weight: 500; }
.mud-input-outlined-border { border-color: #B9C7D3; }
.mud-input-outlined:hover .mud-input-outlined-border { border-color: var(--fcr-blue); }
.mud-input-outlined.mud-input-outlined-focused .mud-input-outlined-border { border-width: 2px; border-color: var(--fcr-blue); }
.mud-button-root { min-height: 44px; text-transform: none; font-weight: 600; }
.mud-icon-button { min-width: 44px; min-height: 44px; }
.mud-nav-link:focus-visible,
.mud-button-root:focus-visible,
.mud-icon-button:focus-visible,
.mud-input-control:focus-within {
    outline: 3px solid rgba(55, 160, 230, .55);
    outline-offset: 2px;
}
.mud-table-container { border-radius: 8px; }
.mud-table thead th { background: #F3F7FA; color: #526273; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.mud-alert { border-radius: 8px; }

/* Mud popovers must sit above drawers, dialogs and dense tables. */
.mud-popover-provider, .mud-popover { z-index: 1600 !important; }

/* Champ de date natif (DateField.razor), au gabarit des champs Outlined/Dense. */
.fcr-date { position: relative; display: block; width: 100%; min-width: 150px; margin-top: 8px; border-radius: 8px; }
.fcr-date-label { position: absolute; top: -8px; left: 9px; padding: 0 5px; background: var(--fcr-surface); color: var(--fcr-muted); font-size: .75rem; font-weight: 500; line-height: 16px; pointer-events: none; }
.fcr-date-input { box-sizing: border-box; display: block; width: 100%; height: 40px; padding: 0 8px 0 13px; border: 1px solid #B9C7D3; border-radius: 8px; background: var(--fcr-surface); color: var(--fcr-ink); font: inherit; font-size: 1rem; font-variant-numeric: tabular-nums; -webkit-appearance: none; appearance: none; }
.fcr-date-input:hover { border-color: var(--fcr-blue); }
.fcr-date-input:focus { outline: none; border-color: var(--fcr-blue); box-shadow: inset 0 0 0 1px var(--fcr-blue); }
.fcr-date:focus-within { outline: 3px solid rgba(55, 160, 230, .55); outline-offset: 2px; }
.fcr-date:focus-within .fcr-date-label { color: var(--fcr-blue); }
.fcr-date-input::-webkit-date-and-time-value { text-align: left; }
.fcr-date-input::-webkit-calendar-picker-indicator { padding: 4px; border-radius: 6px; cursor: pointer; }
.fcr-date-input::-webkit-calendar-picker-indicator:hover { background: #EAF3FA; }

@media (max-width: 700px) {
    .fcr-app-container { padding: 20px 12px !important; }
    .mud-dialog { margin: 10px; width: calc(100% - 20px) !important; }
    /* Le tableau défile dans sa carte : la largeur minimale porte sur la table, pas sur le conteneur qui défile. */
    .mud-table-container { overflow-x: auto; }
    .mud-table-root { min-width: 680px; }
    .fcr-responsive-table .mud-table-root { min-width: 0; }
    .fcr-shell .mud-appbar { padding-inline: 4px; }
    .fcr-dec-hero { padding: 36px 16px; border-radius: 12px; }
    .fcr-dec-identity { padding: 18px; }
    .fcr-dec-row { align-items: flex-start; flex-direction: column; gap: 4px; }
    .fcr-dec-row-label { width: auto; font-size: .8rem; }
    .fcr-dec-row-value { width: 100%; }

    /* Les MudTable portant cette classe passent en cartes lisibles sur mobile.
       Les cellules gardent leur DataLabel comme libellé accessible. */
    .fcr-responsive-table .mud-table-head { display: none; }
    .fcr-responsive-table .mud-table-body .mud-table-row {
        display: block;
        margin: 0 0 12px;
        padding: 10px 12px;
        border: 1px solid var(--fcr-line);
        border-radius: 10px;
        background: #fff;
    }
    .fcr-responsive-table .mud-table-body .mud-table-cell {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 16px;
        min-height: 36px;
        padding: 8px 0;
        border-bottom: 1px solid #EEF2F6;
        text-align: right;
    }
    .fcr-responsive-table .mud-table-body .mud-table-cell:last-child { border-bottom: 0; }
    .fcr-responsive-table .mud-table-body .mud-table-cell::before {
        content: attr(data-label);
        flex: 0 1 45%;
        color: var(--fcr-muted);
        font-size: .78rem;
        font-weight: 700;
        text-align: left;
    }
}

.fcr-amount {
    font-variant-numeric: tabular-nums;
}

.fcr-amount-main {
    font-size: 2.1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--fcr-navy);
    line-height: 1.2;
    letter-spacing: -0.01em;
}

/* Évaluation : bandeau de badges et panneau de la cote, au même langage visuel que le décodeur. */
.fcr-eval-badges { margin-left: 0; }

/* Peu de faits connus ici : les tuiles gardent une largeur raisonnable au lieu de s'étirer.
   Sélecteur doublé : la règle de .fcr-dec-facts vient plus bas dans ce fichier. */
.fcr-dec-facts.fcr-eval-facts { grid-template-columns: repeat(auto-fit, minmax(140px, 200px)); }

.fcr-eval-cote {
    padding: 18px 22px;
    border: 1px solid var(--fcr-line);
    border-left: 4px solid var(--fcr-blue);
    border-radius: 12px;
    background: linear-gradient(180deg, #FBFDFF 0%, #F3F8FD 100%);
    box-shadow: 0 2px 12px rgba(14, 43, 74, 0.05);
}

.fcr-mono,
.fcr-vin input {
    font-family: var(--fcr-mono);
    letter-spacing: 0.04em;
}

.fcr-clip {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fcr-json {
    margin: 0;
    padding: 12px;
    max-height: 45vh;
    overflow: auto;
    border: 1px solid #DCE5EC;
    border-radius: 8px;
    background: #F7FAFC;
    font-family: var(--fcr-mono);
    font-size: .8125rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Blazor place le focus sur le titre à chaque navigation (lecteurs d'écran) ; il n'est pas interactif : pas de cadre. */
h1:focus { outline: none; }

.fcr-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.fcr-row-selected {
    background: #E8F0F8;
}

.fcr-mail-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.fcr-mail-layout { align-items:stretch; }
.fcr-mail-sidebar, .fcr-mail-list, .fcr-mail-detail { min-height:620px; border-radius:14px; background:var(--fcr-surface); }
.fcr-mail-folders .mud-nav-link { min-height:44px; border-radius:8px; }
.fcr-mail-folders .mud-nav-link.active { background:#E8F2FB; color:var(--fcr-blue); font-weight:700; }
.fcr-mail-account { display:flex; align-items:center; gap:10px; min-height:48px; color:var(--fcr-ink); font-size:.88rem; }
.fcr-mail-account span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.fcr-mail-list { overflow:hidden; }
.fcr-mail-list-head, .fcr-mail-detail-actions { display:flex; align-items:center; min-height:58px; padding:8px 14px; border-bottom:1px solid var(--fcr-line); }
.fcr-mail-row { display:flex; width:100%; gap:12px; align-items:flex-start; padding:14px; text-align:left; border:0; border-bottom:1px solid #EEF2F6; background:#fff; cursor:pointer; transition:background .18s ease; }
.fcr-mail-row:hover, .fcr-mail-row.is-selected { background:#EAF3FA; }
.fcr-mail-row.is-selected { box-shadow:inset 3px 0 0 var(--fcr-blue); }
.fcr-mail-avatar { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:50%; background:#DCECF8; color:var(--fcr-blue-strong); font-weight:700; }
.fcr-mail-row-content { display:flex; min-width:0; flex:1; flex-direction:column; gap:3px; }
.fcr-mail-row-content strong, .fcr-mail-row-content span, .fcr-mail-row-content small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fcr-mail-row-content span { color:var(--fcr-ink); font-size:.9rem; }
.fcr-mail-row-content small, .fcr-muted { color:var(--fcr-muted); font-size:.78rem; }
.fcr-mail-row-meta { display:flex; flex-direction:column; align-items:flex-end; color:var(--fcr-muted); font-size:.74rem; white-space:nowrap; }
.fcr-mail-sender { display:flex; align-items:center; gap:12px; margin-top:18px; }
.fcr-mail-body { white-space:pre-line; line-height:1.7; }
.fcr-mail-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--fcr-muted); text-align:center; }
.fcr-mail-detail .mud-input-control { width:100%; }
.fcr-settings-card { border-radius:14px; }
.fcr-settings-protocol { display:flex; align-items:center; gap:10px; min-height:42px; color:var(--fcr-muted); }
.fcr-settings-protocol span { flex:1; }
.fcr-settings-protocol strong { color:var(--fcr-ink); font-family:var(--fcr-mono); font-size:.85rem; }
.fcr-inbox-page { max-width: 1500px; margin: 0 auto; }
.fcr-inbox-header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.fcr-kicker { color:var(--fcr-blue); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:5px; }
.fcr-mail-toolbar { display:flex; align-items:center; gap:16px; min-height:66px; padding:9px 12px; border:1px solid var(--fcr-line); border-radius:14px 14px 0 0; background:#fff; }
.fcr-mail-toolbar-leading { display:flex; align-items:center; gap:7px; min-width:205px; }
.fcr-mail-search { flex:1; max-width:680px; }
.fcr-mail-toolbar-actions { display:flex; margin-left:auto; }
.fcr-mail-workspace { display:grid; grid-template-columns:225px minmax(330px, .9fr) minmax(360px, 1.35fr); min-height:590px; border:1px solid var(--fcr-line); border-top:0; border-radius:0 0 14px 14px; overflow:hidden; background:#fff; box-shadow:0 8px 24px rgba(24,43,61,.05); }
.fcr-mail-rail { display:flex; flex-direction:column; gap:20px; padding:20px 14px; border-right:1px solid var(--fcr-line); background:#FBFCFE; }
.fcr-mail-folders { display:flex; flex-direction:column; gap:3px; }
.fcr-mail-folders button { display:flex; align-items:center; gap:13px; width:100%; min-height:44px; padding:0 12px; border:0; border-radius:9px; color:#536476; background:transparent; font:inherit; text-align:left; cursor:pointer; }
.fcr-mail-folders button:hover, .fcr-mail-folders button.is-active { color:var(--fcr-blue); background:#E8F2FB; font-weight:700; }
.fcr-mail-folders button .mud-icon-root { font-size:21px; }
.fcr-mail-rail-section { border-top:1px solid var(--fcr-line); padding-top:18px; }
.fcr-mail-rail-label { color:var(--fcr-muted); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; margin:0 10px 8px; }
.fcr-mail-account { display:flex; align-items:center; gap:9px; min-height:44px; padding:4px 8px; border-radius:8px; color:var(--fcr-ink); text-decoration:none; font-size:.82rem; }
.fcr-mail-account:hover { background:#E8F2FB; }
.fcr-mail-account span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fcr-mail-rail-footer { display:flex; align-items:center; gap:7px; margin-top:auto; padding:8px; color:var(--fcr-muted); font-size:.75rem; }
.fcr-mail-list-pane, .fcr-mail-reading-pane { min-width:0; background:#fff; }
.fcr-mail-list-pane { border-right:1px solid var(--fcr-line); }
.fcr-pane-header { display:flex; align-items:center; min-height:66px; padding:8px 16px; border-bottom:1px solid var(--fcr-line); }
.fcr-mail-row { display:flex; width:100%; align-items:flex-start; gap:12px; min-height:72px; padding:14px 16px; border:0; border-bottom:1px solid #EEF2F6; color:var(--fcr-ink); background:#fff; text-align:left; cursor:pointer; }
.fcr-mail-row:hover, .fcr-mail-row.is-selected { background:#F2F7FB; }
.fcr-mail-row.is-selected { box-shadow:inset 3px 0 0 var(--fcr-blue); }
.fcr-mail-row-content { display:flex; min-width:0; flex:1; flex-direction:column; gap:3px; }
.fcr-mail-row-content strong, .fcr-mail-row-content span, .fcr-mail-row-content small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fcr-mail-row-content span { font-size:.86rem; }
.fcr-mail-row-content small { color:var(--fcr-muted); font-size:.77rem; }
.fcr-mail-row-date { color:var(--fcr-muted); font-size:.75rem; white-space:nowrap; }
.fcr-mail-empty, .fcr-mail-reading-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:430px; padding:32px; color:var(--fcr-muted); text-align:center; }
.fcr-mail-empty-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; color:var(--fcr-blue); background:#E8F2FB; }
.fcr-mail-reading-empty { height:100%; min-height:590px; }
.fcr-mail-body { max-width:520px; white-space:pre-line; line-height:1.7; text-align:left; }
.fcr-compose-window { position:fixed; right:28px; bottom:20px; z-index:1200; width:min(560px, calc(100vw - 32px)); overflow:hidden; border:1px solid #C9D5E0; border-radius:12px; background:#fff; box-shadow:0 18px 48px rgba(14,43,74,.24); }
.fcr-compose-title { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:4px 10px 4px 16px; color:#fff; background:var(--fcr-navy); }
.fcr-compose-fields { display:flex; flex-direction:column; gap:3px; padding:10px 16px; }
.fcr-compose-fields .mud-input-control { width:100%; }
.fcr-compose-actions { display:flex; align-items:center; gap:8px; padding:9px 16px; border-top:1px solid var(--fcr-line); }
@media (max-width: 1050px) { .fcr-mail-workspace { grid-template-columns:200px minmax(320px, 1fr); } .fcr-mail-reading-pane { display:none; } }
@media (max-width: 700px) { .fcr-inbox-header { align-items:flex-start; flex-direction:column; } .fcr-mail-toolbar { flex-wrap:wrap; gap:4px; border-radius:12px 12px 0 0; } .fcr-mail-toolbar-leading { min-width:0; flex:1; } .fcr-mail-search { order:3; flex-basis:100%; max-width:none; } .fcr-mail-workspace { display:block; min-height:0; border-radius:0 0 12px 12px; } .fcr-mail-rail { border-right:0; border-bottom:1px solid var(--fcr-line); } .fcr-mail-folders { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; } .fcr-mail-folders button { justify-content:center; padding:0 5px; } .fcr-mail-folders button span { display:none; } .fcr-mail-rail-section, .fcr-mail-rail-footer { display:none; } .fcr-mail-row { min-height:64px; padding:12px; } .fcr-compose-window { right:10px; bottom:10px; width:calc(100vw - 20px); } }
@media (max-width: 700px) { .fcr-mail-head { align-items:flex-start; flex-direction:column; } .fcr-mail-sidebar, .fcr-mail-list, .fcr-mail-detail { min-height:0; } .fcr-mail-detail { margin-bottom:16px; } .fcr-mail-row { padding:12px; } .fcr-mail-row-content small { display:none; } }

/* Page de connexion (rendu statique, sans composants interactifs). */
.fcr-login {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background:
        radial-gradient(120% 120% at 80% -10%, rgba(55, 160, 230, 0.35) 0%, rgba(55, 160, 230, 0) 55%),
        linear-gradient(140deg, var(--fcr-navy) 0%, var(--fcr-navy-2) 100%);
}

.fcr-login-card {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 14px;
    padding: 36px 32px;
    box-shadow: 0 24px 60px rgba(8, 24, 42, 0.45);
}

.fcr-login-head { display: flex; align-items: center; gap: 12px; }

.fcr-login-mark {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--fcr-blue) 0%, var(--fcr-accent) 100%);
    color: #fff;
    font-weight: 800;
    font-size: 1.25rem;
    box-shadow: 0 6px 16px rgba(22, 104, 168, 0.35);
}

.fcr-login-card h1 {
    margin: 0;
    font-size: 1.4rem;
    color: var(--fcr-navy);
    letter-spacing: -0.01em;
}

.fcr-login-subtitle {
    margin: 4px 0 24px;
    color: var(--fcr-muted);
    font-size: 0.875rem;
}

.fcr-login-subtitle a { color: var(--fcr-blue); }

.fcr-login-card label {
    display: block;
    margin: 16px 0 6px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--fcr-ink);
}

.fcr-login-card input {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 13px;
    border: 1px solid #C2CCD6;
    border-radius: 8px;
    font-size: 0.95rem;
}

.fcr-login-card input:focus {
    outline: none;
    border-color: var(--fcr-blue);
    box-shadow: 0 0 0 3px rgba(55, 160, 230, 0.25);
}

.fcr-login-card button {
    width: 100%;
    margin-top: 24px;
    padding: 12px;
    background: var(--fcr-blue);
    color: #fff;
    border: 0;
    border-radius: 8px;
    font-size: 0.98rem;
    font-weight: 700;
    cursor: pointer;
}

.fcr-login-card button:hover { background: var(--fcr-blue-strong); }

.fcr-login-card button:focus-visible {
    outline: 2px solid var(--fcr-accent);
    outline-offset: 2px;
}

/* Action secondaire du formulaire (déconnexion) : apparence de lien. */
.fcr-login-card button.fcr-link-button {
    margin-top: 8px;
    padding: 4px 0;
    background: none;
    color: var(--fcr-blue);
    text-decoration: underline;
    font-weight: 400;
}

.fcr-login-card button.fcr-link-button:hover { background: none; color: var(--fcr-blue-strong); }

.fcr-login-button {
    display: block;
    text-align: center;
    padding: 12px;
    background: var(--fcr-blue);
    color: #fff;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
}

/* Documentation de l'API : largeur de lecture, exemples en bloc de code. */
.fcr-doc {
    max-width: 920px;
}

.fcr-doc h2 {
    margin-top: 8px;
}

.fcr-code {
    margin: 4px 0 8px;
    padding: 12px 14px;
    border-radius: 6px;
    background: #1B2430;
    color: #E6EDF3;
    font-family: var(--fcr-mono);
    font-size: 0.85rem;
    white-space: pre-wrap;
    overflow-x: auto;
}

/* Simulations (par critères et d'expert) : en-tête, parcours en étapes numérotées (véhicule, estimation, cote),
   cote mise en évidence dans une colonne qui reste visible pendant les ajustements. */
.fcr-sim { max-width: 1120px; margin: 0 auto; }
.fcr-sim-head { margin-bottom: 20px; }
.fcr-sim-sub { margin: 6px 0 0; max-width: 720px; color: var(--fcr-muted); font-size: .98rem; line-height: 1.5; }
.fcr-sim-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); gap: 20px; align-items: start; }
.fcr-sim-column { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.fcr-sim-sticky { position: sticky; top: 80px; }
.fcr-sim-card { border: 1px solid var(--fcr-line); border-radius: 12px; background: var(--fcr-surface); box-shadow: 0 2px 12px rgba(14, 43, 74, .05); overflow: hidden; }
.fcr-sim-card-head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--fcr-line); background: linear-gradient(180deg, #F5F9FD 0%, #EFF5FB 100%); }
.fcr-sim-card-head h2 { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--fcr-navy); line-height: 1.3; }
.fcr-sim-step { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--fcr-navy); color: #fff; font-size: .85rem; font-weight: 700; }
.fcr-sim-card-hint { margin-left: auto; color: var(--fcr-muted); font-size: .82rem; text-align: right; }
.fcr-sim-card-body { padding: 18px; }
.fcr-sim-card-body .fcr-dec-facts { margin-top: 14px; }
.fcr-sim-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 28px 16px; border: 1px dashed #C6D3DF; border-radius: 10px; color: var(--fcr-muted); text-align: center; font-size: .92rem; line-height: 1.45; }
.fcr-sim-empty .mud-icon-root { color: #9DB3C7; font-size: 2.2rem; }
.fcr-sim-amount { padding: 20px; border-radius: 10px; background: linear-gradient(180deg, #EAF6EE 0%, #E1F1E6 100%); border: 1px solid #B7DCC4; text-align: center; }
.fcr-sim-amount-label { font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #2E5E3E; }
.fcr-sim-amount-value { margin-top: 4px; font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 700; color: #1B4D2C; font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.15; overflow-wrap: anywhere; }
.fcr-sim-amount-note { margin-top: 6px; font-size: .82rem; color: #2E5E3E; }
.fcr-sim-ref { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px 16px; margin-top: 14px; }
.fcr-sim-ref-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--fcr-muted); font-weight: 700; }
.fcr-sim-ref-value { margin-top: 2px; font-weight: 600; color: var(--fcr-ink); overflow-wrap: anywhere; }
.fcr-sim-steps { margin-top: 14px; }
.fcr-sim-steps .mud-table-cell { padding: 6px 10px; }

@media (max-width: 960px) {
    .fcr-sim-grid { grid-template-columns: 1fr; }
    .fcr-sim-sticky { position: static; }
}

/* Période d'abonnement annulée : conservée dans l'historique, sans effet. */
.fcr-cancelled td {
    color: #8A96A3;
    text-decoration: line-through;
}

.fcr-login-error {
    padding: 10px 12px;
    border-radius: 6px;
    background: #FDECEA;
    color: #8E1C1C;
    font-size: 0.875rem;
}

.fcr-login-card .validation-message {
    color: #C62828;
    font-size: 0.8rem;
    margin-top: 4px;
}

#blazor-error-ui {
    background: #FFF4E5;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 2000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

/* Décodeur VIN « rapport » (VinDecoder.razor) : recherche mise en avant, puis identité, faits saillants et blocs groupés. */
.fcr-dec-hero {
    background:
        radial-gradient(120% 140% at 85% -10%, rgba(55, 160, 230, 0.35) 0%, rgba(55, 160, 230, 0) 55%),
        linear-gradient(135deg, var(--fcr-navy) 0%, var(--fcr-navy-2) 100%);
    border-radius: 16px;
    padding: 52px 28px;
    color: #fff;
    text-align: center;
    box-shadow: 0 18px 40px rgba(14, 43, 74, 0.22);
}

.fcr-dec-title { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 700; margin: 0 0 10px; letter-spacing: -0.01em; }
.fcr-dec-sub { max-width: 620px; margin: 0 auto 24px; opacity: 0.85; font-size: 1.02rem; line-height: 1.5; }

.fcr-dec-search {
    display: flex;
    gap: 8px;
    max-width: 640px;
    margin: 0 auto;
    background: #fff;
    padding: 8px;
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(9, 24, 38, 0.28);
}

.fcr-dec-search input {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-size: 1.1rem;
    font-family: var(--fcr-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 10px 14px;
    color: var(--fcr-ink);
}

.fcr-dec-search button {
    flex: none;
    border: none;
    cursor: pointer;
    background: var(--fcr-blue);
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    padding: 0 26px;
    border-radius: 8px;
}

.fcr-dec-search button:hover:not(:disabled) { background: var(--fcr-blue-strong); }
.fcr-dec-search button:disabled { opacity: 0.5; cursor: not-allowed; }
.fcr-dec-search input:disabled { color: var(--fcr-muted); }

.fcr-dec-examples { margin: 16px 0 0; font-size: 0.85rem; opacity: 0.85; }
.fcr-dec-examples button { background: none; border: none; color: #9FD0F5; font-family: var(--fcr-mono); font-size: 0.85rem; cursor: pointer; padding: 0; }
.fcr-dec-examples button:hover:not(:disabled) { text-decoration: underline; }
.fcr-dec-examples button:disabled { opacity: 0.5; cursor: not-allowed; }
.fcr-dec-note { margin: 16px 0 0; font-size: 0.9rem; color: #FFD9A6; }

.fcr-dec-report { margin-top: 28px; }

.fcr-dec-identity {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 24px;
    padding: 22px 26px;
    border: 1px solid var(--fcr-line);
    border-left: 4px solid var(--fcr-blue);
    border-radius: 12px;
    background: var(--fcr-surface);
    box-shadow: 0 4px 16px rgba(14, 43, 74, 0.06);
}

.fcr-dec-identity-main { display: flex; flex-direction: column; gap: 4px; }
.fcr-dec-vehicle { font-size: 1.4rem; font-weight: 700; color: var(--fcr-navy); line-height: 1.1; }
.fcr-dec-vin { font-family: var(--fcr-mono); letter-spacing: 0.1em; color: var(--fcr-muted); font-size: 0.95rem; }
.fcr-dec-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }

.fcr-dec-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: 0.8rem; font-weight: 600; border: 1px solid var(--fcr-line); }
.fcr-dec-badge-ok { background: #E8F3EC; color: #1B4D2C; border-color: #BFE0CA; }
.fcr-dec-badge-warn { background: #FFF4E0; color: #8A5200; border-color: #F0D9AE; }
.fcr-dec-badge-info { background: #EAF3FA; color: #174E79; border-color: #CBE1F2; }

.fcr-dec-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin-top: 16px; }
.fcr-dec-fact {
    border: 1px solid var(--fcr-line);
    border-top: 3px solid var(--fcr-accent);
    border-radius: 12px;
    padding: 16px 18px;
    background: linear-gradient(180deg, #FBFDFF 0%, #F3F8FD 100%);
    box-shadow: 0 2px 10px rgba(14, 43, 74, 0.04);
}
.fcr-dec-fact-label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fcr-muted); font-weight: 700; }
.fcr-dec-fact-value { font-size: 1.25rem; font-weight: 700; color: var(--fcr-navy); margin-top: 4px; }

.fcr-dec-sections { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; margin-top: 16px; align-items: start; }
.fcr-dec-card { border: 1px solid var(--fcr-line); border-radius: 12px; background: var(--fcr-surface); overflow: hidden; box-shadow: 0 2px 12px rgba(14, 43, 74, 0.05); }
.fcr-dec-card-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--fcr-line); font-weight: 700; color: var(--fcr-navy); background: linear-gradient(180deg, #F5F9FD 0%, #EFF5FB 100%); }
.fcr-dec-card-head .mud-icon-root { color: var(--fcr-blue); }
.fcr-dec-rows { display: flex; flex-direction: column; }
/* La pastille de provenance ne doit jamais écraser la valeur : sans base ni min-width, un élément flex
   avec « overflow-wrap: anywhere » se réduit à zéro et la valeur se casse lettre par lettre. */
.fcr-dec-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 11px 18px; }
.fcr-dec-row + .fcr-dec-row { border-top: 1px solid #EEF2F6; }
.fcr-dec-row-label { color: var(--fcr-muted); flex: 0 0 38%; min-width: 96px; }
.fcr-dec-row-value { font-weight: 600; color: var(--fcr-ink); flex: 1 1 140px; min-width: 0; overflow-wrap: break-word; }
.fcr-dec-row-prov { flex: 0 0 auto; margin-left: auto; }

@media (max-width: 640px) {
    .fcr-dec-badges { margin-left: 0; }
    .fcr-dec-search { flex-direction: column; }
    .fcr-dec-search button { padding: 12px; }
}

/* Tuiles du tableau de bord de la plateforme. */
.fcr-dashboard-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--fcr-line);
}
.fcr-dashboard-head h1 { margin: 4px 0 0; color: var(--fcr-navy-950); font-size: clamp(1.65rem, 2.4vw, 2.2rem); letter-spacing: -.045em; }
.fcr-dashboard-lede { margin: 4px 0 0; color: var(--fcr-muted); font-size: .96rem; }
.fcr-eyebrow { display: flex; align-items: center; gap: 8px; color: var(--fcr-blue); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fcr-live-dot { width: 7px; height: 7px; border-radius: 50%; background: #2FA975; box-shadow: 0 0 0 4px rgba(47,169,117,.12); }
.fcr-dashboard-meta { display: flex; align-items: center; gap: 16px; color: var(--fcr-muted); font-size: .78rem; white-space: nowrap; }
.fcr-dashboard-meta .mud-button-root { min-height: 40px; border-color: #C7D5E2; color: var(--fcr-navy); background: #fff; }
.fcr-updated { color: #8796A6; }
.fcr-live-state { display: inline-flex; align-items: center; gap: 7px; color: #247B58; font-weight: 800; }
.fcr-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.fcr-live-pulse { color:#247B58; font-size:.72rem; font-weight:800; white-space:nowrap; }
.fcr-provider-grid { display:grid; gap:1px; overflow:hidden; border:1px solid var(--fcr-line); border-radius:10px; }
.fcr-provider-row { display:grid; grid-template-columns:12px minmax(150px,1fr) repeat(3, auto); align-items:center; gap:14px; min-height:52px; padding:0 14px; background:#fff; }
.fcr-provider-row + .fcr-provider-row { border-top:1px solid #EEF2F6; }
.fcr-provider-status { width:8px; height:8px; border-radius:50%; background:#D58B25; box-shadow:0 0 0 4px rgba(213,139,37,.13); }
.fcr-provider-status.is-ok { background:#2FA975; box-shadow:0 0 0 4px rgba(47,169,117,.13); }
.fcr-provider-metric { color:var(--fcr-muted); font-size:.78rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.fcr-provider-failures { color:#B26A00; }
.fcr-inline-empty { padding:16px; color:var(--fcr-muted); background:#F7F9FB; border-radius:10px; }
.fcr-kpi-grid .mud-grid-item { min-width: 0; }
.fcr-tile {
    height: 100%;
    font-variant-numeric: tabular-nums;
    border-radius: 12px;
    background: rgba(255,255,255,.86);
    box-shadow: var(--fcr-shadow);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.fcr-kpi { display: flex; min-height: 132px; flex-direction: column; justify-content: space-between; gap: 9px; }
.fcr-kpi:hover { transform: translateY(-2px); border-color: #AFC5D8; box-shadow: 0 14px 30px -20px rgba(14,43,74,.38); }
.fcr-kpi-label { color: var(--fcr-muted); font-size: .73rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.fcr-kpi-value { color: var(--fcr-navy-950); font-size: 2rem; line-height: 1; letter-spacing: -.06em; }
.fcr-kpi-detail { min-height: 30px; color: #8291A0; font-size: .73rem; line-height: 1.35; }
.fcr-dashboard-card { border-radius: 14px; box-shadow: var(--fcr-shadow); }
.fcr-dashboard-card h2 { color: var(--fcr-navy-950); letter-spacing: -.02em; }
.fcr-dashboard-card .mud-table-root { background: transparent; }
.fcr-dashboard-card .mud-table-head th { background: #F7F9FB; }

.fcr-tile-attention {
    border-color: #B26A00 !important;
    background: #FFF8EC;
}

@media (max-width: 760px) {
    .fcr-dashboard-head { align-items: flex-start; flex-direction: column; gap: 16px; }
    .fcr-dashboard-meta { flex-wrap: wrap; white-space: normal; }
    .fcr-updated { display: none; }
    .fcr-kpi { min-height: 118px; }
    .fcr-section-head { flex-direction:column; }
    .fcr-provider-row { grid-template-columns:12px minmax(0,1fr) auto; gap:10px; padding:10px 12px; }
    .fcr-provider-row .fcr-provider-metric:nth-of-type(2) { grid-column:2; }
    .fcr-provider-row .fcr-provider-metric:nth-of-type(3) { grid-column:3; grid-row:2; }
    .fcr-provider-failures { grid-column:2; grid-row:2; }
}

/* Console de l'API : liste des points d'accès, méthode en pastille, réponse brute en bloc de code. */
.fcr-console-endpoint {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.875rem;
}

.fcr-console-endpoint:hover {
    background: #F1F4F8;
}

.fcr-console-endpoint.selected {
    background: #E3ECF7;
    font-weight: 600;
}

.fcr-console-endpoint.disabled {
    color: #8A94A3;
}

.fcr-method {
    flex: none;
    min-width: 44px;
    padding: 1px 6px;
    border-radius: 4px;
    font-family: var(--fcr-mono);
    font-size: 0.75rem;
    font-weight: 700;
    text-align: center;
    color: #FFFFFF;
    background: #5B6B7F;
}

.fcr-method-get { background: #2E7D4F; }
.fcr-method-post { background: #1F5FA8; }

.fcr-mono,
.fcr-mono textarea {
    font-family: var(--fcr-mono);
    font-size: 0.85rem;
}

.fcr-console-body {
    max-height: 480px;
    overflow: auto;
}

.fcr-console-history {
    cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ===== Espace connecté : même langage que le site public, plus sobre (outil de travail) ===== */
body { font-family: "Manrope", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; -webkit-font-smoothing: antialiased; }

/* Plan du véhicule (CarBlueprint.razor), commun au site public et au décodeur. */
.fcrpub-car { display: block; width: 100%; height: auto; overflow: visible; }
.fcrpub-car path, .fcrpub-car circle { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.fcrpub-car-line { stroke: #8CC8F7; stroke-width: 2.4; }
.fcrpub-car-thin { stroke: rgba(140, 200, 247, 0.55); stroke-width: 1.4; }
.fcrpub-car-dim path { stroke: rgba(140, 200, 247, 0.3); stroke-width: 1; }
.fcrpub-car .fcrpub-car-point { fill: #F5B544; stroke: none; }
.fcrpub-car-point-line { stroke: #F5B544; stroke-width: 1.2; }

/* Illustrations (Components/Public), communes au site public et à l'espace connecté. */
.fcrpub-illus { display: block; width: 100%; height: auto; }
.fcrpub-illus path, .fcrpub-illus circle { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.i-grid path { stroke: var(--fcr-line); stroke-width: 1; }
.i-paper { fill: #fff; stroke: #B9CBDC; stroke-width: 1.5; }
.fcrpub-illus .i-rule { stroke: #C8D6E3; stroke-width: 4; }
.i-chip { fill: #5BB0F0; }
.fcrpub-illus .i-flow { stroke: var(--fcr-blue); stroke-width: 2; }
.i-file { fill: var(--fcr-navy); }
.i-file-tab { fill: #5BB0F0; }
.fcrpub-illus .i-file-rule { stroke: rgba(255, 255, 255, 0.3); stroke-width: 5; }
.i-value { fill: rgba(245, 181, 68, 0.16); stroke: var(--fcr-amber); stroke-width: 1.5; }
.fcrpub-illus .i-check { stroke: var(--fcr-amber); stroke-width: 3.5; }
.fcrpub-illus .i-value-rule { stroke: var(--fcr-amber); stroke-width: 6; }

.d-plate { fill: rgba(255, 255, 255, 0.05); stroke: rgba(140, 200, 247, 0.6); stroke-width: 2; }
.d-rivet { fill: rgba(140, 200, 247, 0.6) !important; stroke: none; }
.fcrpub-illus .d-bars { stroke: #8CC8F7; stroke-width: 3; stroke-linecap: butt; }
.fcrpub-illus .d-rule { stroke: rgba(140, 200, 247, 0.4); stroke-width: 5; }
.fcrpub-illus .d-lens { fill: rgba(7, 26, 44, 0.78); stroke: #fff; stroke-width: 5; }
.fcrpub-illus .d-handle { stroke: #fff; stroke-width: 11; }
.fcrpub-illus .d-check { stroke: #5FD39A; stroke-width: 7; }
.fcrpub-illus .g-track { stroke: rgba(255, 255, 255, 0.14); stroke-width: 20; }
.fcrpub-illus .g-arc { stroke: var(--fcr-amber); stroke-width: 20; stroke-dasharray: 0.75 1; stroke-linecap: butt; }
.fcrpub-illus .g-ticks { stroke: rgba(255, 255, 255, 0.5); stroke-width: 2; }
.fcrpub-illus .g-needle { stroke: #fff; stroke-width: 5; }
.fcrpub-illus .g-hub { fill: #fff; stroke: none; }
.g-doc { fill: rgba(255, 255, 255, 0.06); stroke: rgba(140, 200, 247, 0.5); stroke-width: 1.5; }
.fcrpub-illus .g-doc-rule { stroke: rgba(140, 200, 247, 0.5); stroke-width: 4; }
.fcrpub-illus .g-doc-amber { stroke: var(--fcr-amber); stroke-width: 4; }

/* Barre latérale */
.fcr-drawer { background: var(--fcr-navy-950); border-right: 1px solid rgba(255,255,255,.08); }
.fcr-drawer-brand { display: flex; align-items: center; gap: 11px; min-height: 76px; padding: 0 18px; color: #fff; text-decoration: none; }
.fcr-drawer-brand > span:last-child { display: flex; flex-direction: column; line-height: 1.15; }
.fcr-drawer-brand strong { font-size: 1.02rem; font-weight: 800; letter-spacing: -.02em; }
.fcr-drawer-brand small { margin-top: 4px; color: #91A8BE; font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fcr-brand-mark { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(140,200,247,.24); border-radius: 11px; background: rgba(91,176,240,.12); }
.fcr-drawer-brand img { display: block; border-radius: 8px; }
.fcr-drawer .mud-nav-link { position: relative; min-height: 42px; margin: 2px 0; border-radius: 9px; font-weight: 600; transition: background-color .15s, color .15s; }
.fcr-drawer .mud-navmenu .mud-nav-link:hover:not(.mud-nav-link-disabled) { background: rgba(255, 255, 255, .08); color: #fff; }
.fcr-drawer .mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled) { background: rgba(91, 176, 240, .2); color: #fff; }
.fcr-drawer .mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled) .mud-nav-link-icon { color: #8CC8F7; }
.fcr-drawer .mud-nav-link.active::before { content: ""; position: absolute; left: -8px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: #5BB0F0; }
.fcr-drawer .mud-nav-link:focus-visible { outline-color: #8CC8F7; }
.fcr-drawer .mud-navmenu { padding-bottom: 20px; }
.fcr-drawer .mud-collapse-wrapper-inner .mud-nav-link { min-height: 38px; font-size: .84rem; }
.fcr-drawer .mud-nav-group > .mud-nav-link { margin-top: 14px; color: #8FA8BF; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.fcr-drawer .mud-nav-group > .mud-nav-link .mud-nav-link-icon { color: #8FA8BF; }

/* Barre du haut */
.fcr-user { align-items: center; gap: 10px; margin: 0 10px; }
.fcr-user-avatar { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--fcr-navy); color: #fff; font-size: .85rem; font-weight: 800; }
.fcr-user-name { display: flex; flex-direction: column; line-height: 1.2; }
.fcr-user-name strong { font-size: .84rem; font-weight: 700; }
.fcr-user-name small { color: var(--fcr-muted); font-size: .74rem; }
.fcr-appbar-context { align-items: center; gap: 10px; margin-left: 10px; }
.fcr-appbar-kicker { color: var(--fcr-navy); font-size: .78rem; font-weight: 800; letter-spacing: .04em; }
.fcr-appbar-divider { width: 1px; height: 18px; background: var(--fcr-line); }
.fcr-appbar-section { color: var(--fcr-muted); font-size: .78rem; }

/* Titres, surfaces et données */
.fcr-shell .fcr-app-container { padding-top: 28px !important; }
.fcr-app-container h1:not(.fcr-dec-title) { color: var(--fcr-navy); }
.fcr-app-container .mud-paper .mud-typography-subtitle1 { font-weight: 700; }
.fcr-app-container .mud-paper-outlined { border-radius: 14px; box-shadow: var(--fcr-shadow); }
.mud-button-root { border-radius: 10px; font-weight: 700; letter-spacing: 0; }
.mud-button-root, .mud-icon-button, .mud-nav-link, .mud-chip, .mud-tab { transition: transform .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease; }
.mud-button-root:not(:disabled):active, .mud-icon-button:not(:disabled):active { transform: translateY(1px) scale(.985); }
.mud-button-filled:not(:disabled):hover { box-shadow: 0 8px 18px -12px rgba(22,104,168,.9) !important; transform: translateY(-1px); }
.mud-button-outlined:not(:disabled):hover { background: #F2F7FB; border-color: var(--fcr-blue); transform: translateY(-1px); }
.mud-button-filled { box-shadow: none !important; }
.mud-chip { font-weight: 600; }
.mud-tabs-tabbar { border-radius: 14px 14px 0 0; }
.mud-tab { min-height: 52px; text-transform: none; font-weight: 700; letter-spacing: 0; }
.mud-tab.mud-tab-active { color: var(--fcr-blue); }
.mud-table .mud-table-head .mud-table-cell { color: #52626F; font-weight: 700; }
.mud-table-hover .mud-table-body .mud-table-row:hover { background: #F4F8FC !important; }
.mud-table-cell { font-variant-numeric: tabular-nums; }
.mud-dialog { border-radius: 16px; }
.mud-input-control, .mud-select, .mud-picker { min-width: 0; }
.mud-table-container { scrollbar-color: #B8C7D5 transparent; scrollbar-width: thin; }
.mud-table-cell { overflow-wrap: anywhere; }
.fcr-mono { overflow-wrap: anywhere; }
.fcr-app-container .mud-paper, .fcr-app-container .mud-table-container, .fcr-app-container .mud-tabs { min-width: 0; }

.fcr-tile { min-height: 100%; border-radius: 14px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.fcr-tile .mud-typography-h5 { color: var(--fcr-navy); font-size: 1.85rem; line-height: 1.25; font-variant-numeric: tabular-nums; }
.fcr-tile .mud-typography-caption { color: var(--fcr-muted); }
.fcr-tile .mud-typography-caption:first-child { color: var(--fcr-ink); font-size: .8rem; font-weight: 700; }
a .fcr-tile:hover { border-color: var(--fcr-accent); transform: translateY(-2px); }

/* Moments forts : plan du véhicule et valeur, comme sur le site public */
.fcr-dec-hero { position: relative; overflow: hidden; background-color: var(--fcr-navy-950); background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px), radial-gradient(80% 110% at 85% 0%, rgba(91, 176, 240, .25), rgba(91, 176, 240, 0) 62%), linear-gradient(160deg, var(--fcr-navy-950), var(--fcr-navy) 70%, #15395F); background-size: 48px 48px, 48px 48px, auto, auto; }
.fcr-dec-hero > * { position: relative; }
.fcr-dec-hero > .fcr-dec-hero-car { position: absolute; right: -40px; bottom: -14px; width: min(40%, 480px); opacity: .24; pointer-events: none; }
.fcr-dec-title { font-weight: 800; letter-spacing: -.025em; }
.fcr-dec-fact-value, .fcr-amount-main { letter-spacing: -.02em; }
.fcr-eval-cote { border: 1px solid rgba(201, 138, 22, .42); border-left: 4px solid var(--fcr-amber); background: var(--fcr-amber-soft); box-shadow: var(--fcr-shadow); }
.fcr-amount-main { color: var(--fcr-amber-ink); font-weight: 800; }

/* États vides illustrés */
.fcr-empty { display: flex; align-items: center; gap: 24px; padding: 8px 0; text-align: left; }
.fcr-empty-art { flex: 0 0 min(46%, 300px); }
.fcr-empty-dark .fcr-empty-art, .fcr-head-art .fcr-empty-art, .fcr-page-art.fcr-empty-art { padding: 16px 22px; border-radius: 14px; background: linear-gradient(160deg, var(--fcr-navy-950), #15395F); }
.fcr-empty-text p { margin: 0; color: var(--fcr-muted); line-height: 1.55; }
.fcr-empty-text .fcr-empty-title { margin-bottom: 4px; color: var(--fcr-navy); font-size: 1.1rem; font-weight: 800; letter-spacing: -.01em; }
.fcr-head-art { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fcr-head-art .fcr-empty-art { flex: 0 0 190px; padding: 10px 16px; }
.fcr-page-art.fcr-empty-art { max-width: 460px; margin-top: 28px; }

/* Décodage en cours : un faisceau balaie le véhicule, comme sur le site public. */
.fcr-dec-hero.is-busy > .fcr-dec-hero-car { opacity: .6; }
.fcr-dec-hero.is-busy::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: min(40%, 480px); pointer-events: none; background: linear-gradient(90deg, #5BB0F0, #5BB0F0) 0 0 / 3px 100% no-repeat; filter: drop-shadow(0 0 10px rgba(91, 176, 240, .8)); }
@media (prefers-reduced-motion: no-preference) {
    .fcr-dec-hero.is-busy::after { animation: fcr-sweep 1.3s ease-in-out infinite alternate; }
}
@keyframes fcr-sweep { from { background-position: 0 0; } to { background-position: 100% 0; } }

/* La cote apparaît : un reflet la traverse une fois. */
.fcr-eval-cote { position: relative; overflow: hidden; }
.fcr-shine::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .75), transparent); animation: fcr-shine 1s .35s ease-out 1 both; }
@keyframes fcr-shine { to { left: 120%; } }
@media (prefers-reduced-motion: reduce) { .fcr-shine::after { display: none; } }

/* Mot de passe et erreur : même décor que la connexion */
.fcr-login { background-color: var(--fcr-navy-950); background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px), radial-gradient(70% 70% at 80% 10%, rgba(91, 176, 240, .24), rgba(91, 176, 240, 0) 65%), linear-gradient(165deg, var(--fcr-navy-950), var(--fcr-navy) 70%, #15395F); background-size: 48px 48px, 48px 48px, auto, auto; }
.fcr-login-card { border: 0; border-radius: 18px; box-shadow: 0 34px 70px -34px rgba(0, 0, 0, .7); }
.fcr-login, .fcr-login-card { font-family: "Manrope", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
.fcr-login-card h1 { font-family: inherit; font-weight: 800; letter-spacing: -.02em; }
.fcr-login-card input { border-radius: 10px; font-family: inherit; }
.fcr-login-card button { border-radius: 10px; font-family: inherit; font-weight: 700; }

/* Entrée de page : sans remplissage final, pour ne pas laisser de transformation qui gênerait les menus flottants. */
@keyframes fcr-enter { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: no-preference) {
    .fcr-app-container > * { animation: fcr-enter .28s ease-out; }
}

@media (max-width: 1100px) { .fcr-dec-hero > .fcr-dec-hero-car, .fcr-dec-hero.is-busy::after { display: none; } }

@media (max-width: 700px) {
    .fcr-shell .fcr-app-container { padding-top: 20px !important; }
    .fcr-shell .mud-main-content { padding-top: 56px; }
    .fcr-shell .mud-appbar, .fcr-shell .mud-appbar .mud-toolbar { min-height: 56px; }
    .fcr-user { margin-right: 0; }
    .fcr-user-avatar { width: 32px; height: 32px; }
    .fcr-tile .mud-typography-h5 { font-size: 1.5rem; }
    .fcr-empty { flex-direction: column; align-items: stretch; }
    .fcr-empty-art { flex-basis: auto; }
    .fcr-head-art .fcr-empty-art { display: none; }
    .fcr-app-container h1:not(.fcr-dec-title) { font-size: 1.55rem; line-height: 1.15; }
    .mud-button-root { min-height: 44px; }
    .mud-dialog { max-height: calc(100dvh - 20px); }
}

@media (prefers-reduced-motion: reduce) {
    .mud-button-root, .mud-icon-button, .mud-nav-link, .mud-chip, .mud-tab, .fcr-tile { transition: none !important; }
}
