:root { --fond: #eef2f7; --carte: #fff; --texte: #15213d; --doux: #647189; --bord: #dfe5ee; --marque: #1d3557; --marque-2: #2b4f82; --marque-clair: #e6edf8; --vert: #15803d; --vert-clair: #dcfce7; --orange: #c2410c; --orange-clair: #ffedd5; --rouge: #b91c1c; --rouge-clair: #fee2e2; --gris-clair: #f1f4f8; --achat: #0f766e; --vente: #b45309; --ombre: 0 1px 2px rgba(21,33,61,.05), 0 6px 20px -10px rgba(21,33,61,.18); --rayon: 18px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font: 16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Inter, sans-serif; background: var(--fond); color: var(--texte); -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
main { max-width: 1120px; margin: 0 auto; padding: max(12px, env(safe-area-inset-top)) 14px calc(90px + env(safe-area-inset-bottom)); }
main.etroit { max-width: 400px; padding-top: 10vh; text-align: center; } main.etroit .carte { text-align: left; margin-top: 16px; }
.logo-connexion { width: 72px; height: 72px; margin: 0 auto 10px; border-radius: 22px; background: linear-gradient(135deg, var(--marque), var(--marque-2)); display: grid; place-items: center; font-size: 2rem; box-shadow: var(--ombre); }
h1 { font-size: 1.3rem; margin: 0; letter-spacing: -.01em; } h1 a { color: inherit; text-decoration: none; display: flex; align-items: center; gap: 10px; } h1 small { font-weight: 500; color: var(--doux); font-size: .78rem; display: block; }
h1 .logo { width: 38px; height: 38px; border-radius: 12px; background: linear-gradient(135deg, var(--marque), var(--marque-2)); display: grid; place-items: center; font-size: 1.15rem; flex: none; }
h2 { font-size: 1.1rem; margin: 0; letter-spacing: -.01em; } h3 { margin: 20px 0 6px; color: var(--marque); text-transform: uppercase; letter-spacing: .04em; font-size: .78rem; } h3:first-of-type { margin-top: 8px; }
h2 small, h3 small { font-weight: 400; color: var(--doux); font-size: .78rem; text-transform: none; letter-spacing: 0; }
a { color: var(--marque); }
input, select, textarea, button { font: inherit; font-size: 16px; }
input, select, textarea { width: 100%; padding: 11px 13px; border: 1.5px solid var(--bord); border-radius: 12px; background: #fff; -webkit-appearance: none; appearance: none; color: var(--texte); transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--marque-2); box-shadow: 0 0 0 3px rgba(43,79,130,.15); }
input.ocr-rempli, select.ocr-rempli { border-color: #86c5a6; background: #f0fbf5; }
select { background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23647189' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center; padding-right: 32px; }
label { display: block; font-size: .83rem; color: var(--doux); margin: 10px 0 0; font-weight: 500; } label input, label select, label textarea { margin-top: 5px; font-weight: 400; }
label.case { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0 0; color: var(--texte); font-size: .9rem; font-weight: 400; } label.case input { width: 22px; height: 22px; -webkit-appearance: auto; appearance: auto; margin: 0; flex: none; accent-color: var(--marque); } label.case.haut { align-items: center; margin-top: 28px; }
button, .bouton { cursor: pointer; border: 1.5px solid var(--bord); background: #fff; border-radius: 12px; padding: 10px 15px; color: var(--texte); text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; text-align: center; min-height: 42px; font-weight: 500; transition: transform .08s, background .15s; }
button:active, .bouton:active { transform: scale(.98); }
button.principal, .bouton.principal { background: linear-gradient(135deg, var(--marque), var(--marque-2)); color: #fff; border-color: transparent; font-weight: 600; box-shadow: 0 4px 12px -6px rgba(29,53,87,.6); }
button.large { width: 100%; margin-top: 14px; min-height: 48px; }
button.danger { color: var(--rouge); border-color: #f3c4c4; }
button:disabled { opacity: .5; cursor: wait; }
.petit { font-size: .85rem; color: var(--doux); padding: 7px 11px; min-height: 36px; }
.carte { background: var(--carte); border-radius: var(--rayon); padding: 18px; box-shadow: var(--ombre); }
.ko { color: var(--rouge); } .vert { color: var(--vert); } .orange { color: var(--orange); } .rouge { color: var(--rouge); }
.barre { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.barre nav { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.deux-gros { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.gros { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 20px; border: 0; border-radius: 20px; color: #fff; text-align: left; box-shadow: 0 10px 24px -12px rgba(0,0,0,.35); position: relative; overflow: hidden; min-height: 120px; }
.gros::after { content: ''; position: absolute; right: -30px; top: -30px; width: 120px; height: 120px; border-radius: 50%; background: rgba(255,255,255,.12); }
.gros .ico { font-size: 2rem; } .gros b { font-size: 1.45rem; } .gros small { opacity: .92; font-size: .82rem; line-height: 1.3; font-weight: 400; }
.gros.achat { background: linear-gradient(135deg, #0f766e, #14b8a6); } .gros.vente { background: linear-gradient(135deg, #b45309, #f59e0b); }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.kpi { background: #fff; border-radius: 16px; padding: 12px 14px; box-shadow: var(--ombre); border-left: 4px solid var(--bord); } .kpi span { display: block; font-size: .74rem; color: var(--doux); text-transform: uppercase; letter-spacing: .04em; font-weight: 600; } .kpi b { font-size: 1.35rem; display: block; margin-top: 2px; letter-spacing: -.02em; } .kpi small { color: var(--doux); font-size: .78rem; }
.kpi.accent-vert { border-left-color: var(--vert); } .kpi.accent-vert b { color: var(--vert); } .kpi.accent-rouge { border-left-color: var(--rouge); } .kpi.accent-rouge b { color: var(--rouge); } .kpi.accent-orange { border-left-color: var(--orange); } .kpi.accent-orange b { color: var(--orange); }
.filtres { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; } .filtres input[type=search] { flex: 1; min-width: 200px; border-radius: 99px; }
.choix { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; } .choix .choisi { background: var(--marque); color: #fff; border-color: var(--marque); }
.choix.segment { background: #e3e9f2; padding: 4px; border-radius: 99px; gap: 2px; margin-top: 0; } .choix.segment button { border: 0; background: transparent; border-radius: 99px; min-height: 36px; padding: 6px 14px; font-size: .9rem; } .choix.segment .choisi { background: #fff; color: var(--texte); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.titre { display: block; font-size: .83rem; color: var(--doux); margin-top: 12px; font-weight: 500; }
.liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.veh { background: #fff; border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); cursor: pointer; display: flex; flex-direction: column; border: 0; text-align: left; padding: 0; align-items: stretch; min-height: 0; }
.veh:hover { box-shadow: 0 10px 28px -12px rgba(21,33,61,.3); }
.veh .vignette { aspect-ratio: 16/8; background: linear-gradient(135deg, #e6edf8, #f1f4f8) center/cover no-repeat; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; color: #b8c2d3; position: relative; }
.veh .vignette .statut { position: absolute; top: 10px; left: 10px; } .veh .vignette .p-signe { left: auto; right: 10px; background: #fff; color: var(--marque); }
.veh .corps { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 6px; }
.veh h3 { margin: 0; color: var(--texte); font-size: 1.05rem; text-transform: none; letter-spacing: 0; } .immat { font-family: ui-monospace, Menlo, monospace; background: var(--texte); color: #fff; padding: 2px 8px; border-radius: 6px; font-size: .8rem; font-weight: 700; letter-spacing: .04em; }
.ligne { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .sous { margin: 0; font-size: .85rem; color: var(--doux); }
.chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 6px; background: var(--gris-clair); border-radius: 12px; padding: 8px 10px; } .chiffres span { display: block; font-size: .68rem; color: var(--doux); text-transform: uppercase; letter-spacing: .03em; } .chiffres b { font-size: .95rem; } .chiffres .pos b { color: var(--vert); } .chiffres .neg b { color: var(--rouge); }
.pastille { font-size: .74rem; padding: 3px 9px; border-radius: 99px; background: var(--gris-clair); color: var(--doux); font-weight: 600; white-space: nowrap; }
.p-stock { background: var(--vert-clair); color: var(--vert); } .p-vendu { background: var(--marque-clair); color: var(--marque); } .p-brouillon { background: var(--orange-clair); color: var(--orange); } .p-alerte { background: var(--rouge-clair); color: var(--rouge); }
.prix { font-weight: 700; } .marge { font-weight: 700; } .marge.neg { color: var(--rouge); } .marge.pos { color: var(--vert); }
.vide-liste { grid-column: 1/-1; text-align: center; color: var(--doux); padding: 40px 10px; }
.formulaire .deux { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .trois { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.adresse { display: grid; grid-template-columns: 80px 80px 1fr; gap: 10px; }
.deux { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.formulaire .vente-seul { display: none; } .formulaire.vente .vente-seul { display: block; }
.ocr-bloc { background: var(--marque-clair); border-radius: 14px; padding: 10px 12px 12px; margin-bottom: 6px; } .ocr-bloc .deux { gap: 8px; } .ocr-ligne { display: flex; gap: 10px; align-items: center; margin-top: 8px; flex-wrap: wrap; } .ocr-ligne .aide { flex: 1; min-width: 180px; font-size: .84rem; } .ocr-ligne .aide.ok { color: var(--vert); } .ocr-ligne .aide.avert { background: none; color: var(--orange); padding: 0; }
.photo-bloc { border: 2px dashed #c5cfdd; border-radius: 14px; padding: 12px; text-align: center; cursor: pointer; color: var(--texte); font-weight: 600; background: #fff; display: flex; flex-direction: column; gap: 6px; align-items: center; margin-top: 10px; font-size: .9rem; }
.photo-bloc input { display: none; } .photo-bloc .apercu { font-size: .8rem; color: var(--doux); font-weight: 400; } .photo-bloc .apercu img { max-height: 90px; border-radius: 8px; display: block; margin: 4px auto 0; }
.photo-bloc.ok { border-color: var(--vert); background: var(--vert-clair); } .photo-bloc small { font-weight: 400; color: var(--doux); } .photo-bloc.petit-bloc { padding: 8px; }
.entete-form { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fermer { width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: 99px; flex: none; }
.actions { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; flex-wrap: wrap; } .actions .principal { margin-left: auto; padding: 12px 22px; }
.barre-prog { height: 8px; background: var(--gris-clair); border-radius: 99px; overflow: hidden; margin-top: 14px; } .barre-prog span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--marque), #14b8a6); transition: width .2s; }
.aide { color: var(--doux); font-size: .88rem; } .centre { text-align: center; }
dialog { border: 0; padding: 0; border-radius: 20px; width: min(600px, calc(100vw - 20px)); max-height: calc(100dvh - 20px); background: transparent; }
dialog:has(.large-dlg) { width: min(900px, calc(100vw - 20px)); }
dialog::backdrop { background: rgba(10,20,40,.55); backdrop-filter: blur(2px); } dialog .carte { max-height: calc(100dvh - 20px); overflow-y: auto; }
.copie { display: flex; gap: 6px; margin-top: 6px; } .copie input { font-size: .85rem; }
.toast { position: fixed; left: 50%; bottom: calc(76px + env(safe-area-inset-bottom)); transform: translateX(-50%); background: var(--texte); color: #fff; padding: 11px 18px; border-radius: 99px; z-index: 60; box-shadow: 0 6px 20px rgba(0,0,0,.25); max-width: calc(100vw - 30px); text-align: center; font-size: .92rem; }
.toast.ko { background: var(--rouge); }
/* ---- navigation basse (mobile) ---- */
.nav-bas { display: none; position: fixed; left: 0; right: 0; bottom: 0; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-top: 1px solid var(--bord); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); z-index: 40; grid-template-columns: repeat(6, 1fr); }
.nav-bas a { display: flex; flex-direction: column; align-items: center; gap: 1px; text-decoration: none; color: var(--doux); font-size: .64rem; white-space: nowrap; font-weight: 600; padding: 4px 0; border-radius: 10px; } .nav-bas a span { font-size: 1.3rem; } .nav-bas a.actif { color: var(--marque); }
/* ---- fiche ---- */
.fiche-tete { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; background: #fff; border-radius: var(--rayon); padding: 14px; box-shadow: var(--ombre); }
.fiche-tete .grande { width: 130px; height: 86px; border-radius: 14px; background: linear-gradient(135deg, #e6edf8, #f1f4f8) center/cover; flex: none; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.fiche-titres { flex: 1; min-width: 200px; } .fiche-tete h2 { font-size: 1.3rem; } .fiche-tete .sous { font-size: .9rem; margin-top: 2px; }
.raccourcis { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 12px; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .raccourcis::-webkit-scrollbar { display: none; } .raccourcis button, .raccourcis .bouton { white-space: nowrap; flex: none; }
.sections { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 12px; align-items: start; }
.section-large { grid-column: 1 / -1; }
.infos { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 10px 0 0; font-size: .92rem; } .infos dt { color: var(--doux); } .infos dd { margin: 0; word-break: break-word; }
.docs { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.doc { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 0 10px; padding: 9px 12px; border-radius: 12px; background: var(--marque-clair); text-decoration: none; color: var(--texte); } .doc span { font-size: 1.3rem; grid-row: 1 / 3; } .doc b { font-size: .92rem; } .doc small { color: var(--doux); font-size: .78rem; }
.signatures { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--bord); display: flex; flex-direction: column; gap: 8px; } .sig-etats { display: flex; gap: 8px; flex-wrap: wrap; } .sig-etat { font-size: .82rem; padding: 4px 10px; border-radius: 99px; background: var(--gris-clair); color: var(--doux); font-weight: 600; } .sig-etat.ok { background: var(--vert-clair); color: var(--vert); }
.sig-cadre { position: relative; border: 2px dashed #c5cfdd; border-radius: 14px; background: #fff; margin-top: 10px; overflow: hidden; } .sig-cadre canvas { display: block; width: 100%; height: 220px; touch-action: none; cursor: crosshair; } .sig-ligne { position: absolute; left: 24px; right: 24px; bottom: 52px; border-bottom: 1.5px solid #cbd5e1; pointer-events: none; }
.sig-options { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 10px; } .sig-options .case { margin: 0; flex: 1 1 100%; }
.renta { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-top: 10px; } .renta > div { background: var(--gris-clair); border-radius: 12px; padding: 10px 12px; } .renta span { display: block; font-size: .72rem; color: var(--doux); text-transform: uppercase; letter-spacing: .03em; font-weight: 600; } .renta b { font-size: 1.05rem; } .renta .total { background: var(--marque-clair); } .renta .total.pos b { color: var(--vert); } .renta .total.neg b { color: var(--rouge); } .renta .aide-cell { grid-column: 1 / -1; background: #fff; border: 1px dashed var(--bord); } .renta .aide-cell b { font-size: .9rem; color: var(--marque); }
.frais { list-style: none; padding: 0; margin: 10px 0 0; } .frais li { display: grid; grid-template-columns: 78px 1fr auto 32px; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--bord); font-size: .9rem; } .frais .date { color: var(--doux); font-size: .8rem; } .frais .lib small { display: block; color: var(--doux); font-size: .76rem; } .frais .montant { font-weight: 700; white-space: nowrap; } .frais .suppr { border: 0; background: none; padding: 0; min-height: 0; font-size: 1rem; } .frais li.aide { display: block; border: 0; }
.taches { list-style: none; padding: 0; margin: 8px 0 0; } .taches li { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-top: 1px solid var(--bord); font-size: .9rem; } .taches input { width: 22px; height: 22px; -webkit-appearance: auto; appearance: auto; margin: 1px 0 0; flex: none; accent-color: var(--vert); }
.taches .fait { text-decoration: line-through; color: var(--doux); } .taches small { display: block; color: var(--doux); }
.galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; margin-top: 10px; }
.galerie a, .galerie button { display: block; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: var(--gris-clair); border: 0; padding: 0; cursor: pointer; min-height: 0; } .galerie img { width: 100%; height: 100%; object-fit: cover; display: block; }
.liste-fichiers { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.fichier { display: grid; grid-template-columns: 28px 1fr auto; gap: 8px; align-items: center; padding: 9px 11px; border: 1px solid var(--bord); border-radius: 12px; background: #fff; color: var(--texte); text-decoration: none; cursor: pointer; text-align: left; font: inherit; min-height: 0; font-weight: 400; }
.fichier b { font-weight: 600; font-size: .88rem; word-break: break-all; } .fichier small { color: var(--doux); white-space: nowrap; }
.ajout-l { cursor: pointer; margin: 0; font-size: .9rem; }
.apercu-img img { max-width: 100%; max-height: 70vh; display: block; margin: 10px auto; border-radius: 12px; }
.resultat-liens { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; } .resultat-liens .bouton { padding: 12px; font-weight: 600; }
.avert { background: var(--orange-clair); color: var(--orange); padding: 8px 12px; border-radius: 10px; font-size: .88rem; margin-top: 8px; }
/* ---- documents du véhicule (un seul espace classé) ---- */
.docs-tout .depot-zone { margin-top: 12px; }
.filtres-docs { margin: 14px 0 4px; gap: 6px; } .filtres-docs button { font-size: .82rem; padding: 6px 11px; min-height: 34px; border-radius: 99px; } .filtres-docs em { font-style: normal; background: rgba(0,0,0,.08); border-radius: 99px; padding: 0 7px; margin-left: 4px; font-size: .74rem; } .filtres-docs .choisi em { background: rgba(255,255,255,.25); }
.groupe { margin-top: 14px; } .groupe h3 { margin: 0 0 6px; }
.docs-tout .fichier { grid-template-columns: 44px 1fr auto; padding: 8px 10px; cursor: pointer; } .docs-tout .fichier .mini { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; } .docs-tout .fichier .ico { font-size: 1.5rem; text-align: center; } .docs-tout .fichier b { display: block; font-size: .92rem; word-break: break-word; } .docs-tout .fichier small { display: block; white-space: normal; font-size: .76rem; }
.docs-tout .fichier .bouton { padding: 6px 9px; min-height: 34px; }
.docs-tout .galerie button { position: relative; } .docs-tout .galerie button span { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(transparent, rgba(0,0,0,.6)); color: #fff; font-size: .7rem; padding: 14px 6px 5px; text-align: left; }
.id-tete { display: flex; gap: 12px; align-items: center; margin-top: 8px; } .id-apercu { width: 84px; height: 84px; border-radius: 12px; background: var(--gris-clair); display: grid; place-items: center; overflow: hidden; flex: none; } .id-apercu img { width: 100%; height: 100%; object-fit: cover; } .gros-ico { font-size: 2.4rem; }
.nom-final { background: var(--marque-clair); border-radius: 12px; padding: 10px 12px; font-size: .9rem; margin: 12px 0 0; word-break: break-word; } .nom-final b { color: var(--marque); }
#apercuCorps iframe { width: 100%; height: min(70vh, 900px); border: 0; border-radius: 12px; background: #525659; margin-top: 10px; }
#apercuCorps img { max-width: 100%; max-height: 70vh; display: block; margin: 10px auto; border-radius: 12px; }
dialog:has(#apercuCorps iframe) { width: min(1000px, calc(100vw - 20px)); }
.actions-doc { display: flex; gap: 4px; } .actions-doc .petit { padding: 6px 9px; min-height: 34px; } .actions-doc .danger { border-color: #f3c4c4; }
.photo-case { position: relative; } .photo-case > button:first-child { width: 100%; } .suppr-photo { position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; min-height: 30px; padding: 0; border-radius: 99px; background: rgba(255,255,255,.92); border: 0; font-size: .9rem; box-shadow: 0 1px 4px rgba(0,0,0,.25); }
/* ---- dépôt typé ---- */
.depot-carte { margin-bottom: 12px; } .depot-carte .entete-form small { font-size: .8rem; }
.types-doc { gap: 6px; margin-top: 10px; } .types-doc button { font-size: .82rem; padding: 7px 11px; min-height: 34px; border-radius: 99px; }
.depot-zone { display: grid; grid-template-columns: 48px 1fr; gap: 2px 12px; align-items: center; margin-top: 12px; padding: 16px; border: 2px dashed #b9c6d8; border-radius: 16px; background: #fafcff; cursor: pointer; }
.depot-zone .ico { grid-row: 1 / 3; font-size: 2rem; text-align: center; } .depot-zone b { font-size: 1rem; color: var(--texte); } .depot-zone small { color: var(--doux); font-size: .8rem; }
.depot-zone:hover { border-color: var(--marque-2); }
/* ---- démarches + dépôt ---- */
.demarches { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 12px; }
.demarche { display: grid; grid-template-columns: 38px 1fr 24px; grid-template-rows: auto auto; gap: 0 10px; align-items: center; text-align: left; padding: 12px 12px; border-radius: 16px; background: #fff; border: 1.5px solid var(--bord); box-shadow: var(--ombre); min-height: 0; font-weight: 400; }
.demarche .ico { grid-row: 1 / 3; font-size: 1.6rem; width: 38px; height: 38px; display: grid; place-items: center; background: var(--marque-clair); border-radius: 12px; }
.demarche b { font-size: .92rem; line-height: 1.2; } .demarche small { color: var(--doux); font-size: .76rem; grid-column: 2; } .demarche .etat { grid-row: 1 / 3; grid-column: 3; color: var(--marque); font-weight: 700; }
.demarche.ok { border-color: #bfe3cc; background: #f3fcf6; } .demarche.ok .ico { background: var(--vert-clair); }
.taches .faire { margin-left: auto; flex: none; padding: 4px 10px; min-height: 30px; font-size: .78rem; border-color: var(--marque); color: var(--marque); }
.depot-aide { display: none; margin: 10px 0 0; text-align: center; border: 1.5px dashed var(--bord); border-radius: 12px; padding: 8px; font-size: .8rem; }
@media (hover: hover) and (pointer: fine) { .depot-aide { display: block; } }
.drop-cible { outline: 3px dashed var(--marque-2) !important; outline-offset: 2px; background: var(--marque-clair) !important; }
.drop-cible .depot-aide { border-color: var(--marque-2); color: var(--marque); }
/* ---- mes documents ---- */
.entreprise { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.ent-slot { border: 1.5px solid var(--bord); border-radius: 14px; padding: 10px 12px; } .ent-slot.ok { border-color: #bfe3cc; background: #f6fcf8; } .ent-slot .photo-bloc { margin-top: 8px; padding: 8px; font-size: .85rem; }
.ent-doc { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; } .ent-doc > span { font-size: 1.5rem; } .ent-doc b { font-size: .92rem; display: block; } .ent-doc small { color: var(--doux); font-size: .78rem; word-break: break-word; } .ent-doc.vide { opacity: .85; }
.ent-actions { display: flex; gap: 4px; } .ent-actions .petit { padding: 6px 9px; min-height: 34px; }
.ent-date { margin-top: 6px; font-size: .78rem; } .ent-date input { padding: 7px 10px; }
.entreprise + h3, .entreprise h3 { margin-top: 12px; }
/* ---- ANTS ---- */
.ants h3 { margin: 14px 0 4px; } .ants-ligne { display: grid; grid-template-columns: 1fr auto 20px; gap: 10px; align-items: center; width: 100%; text-align: left; padding: 9px 12px; border-radius: 12px; margin-top: 4px; min-height: 0; font-weight: 400; } .ants-ligne span { color: var(--doux); font-size: .84rem; } .ants-ligne b { font-size: .95rem; text-align: right; word-break: break-word; } .ants-ligne.vide { opacity: .55; } .ants-ligne:active { background: var(--marque-clair); }
/* ---- bilan ---- */
.bilan-kpis { margin-top: 12px; } .tableau { width: 100%; border-collapse: collapse; font-size: .88rem; margin-top: 6px; } .tableau th { text-align: left; color: var(--doux); font-weight: 600; font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; padding: 6px 8px; border-bottom: 1px solid var(--bord); } .tableau td { padding: 8px; border-bottom: 1px solid var(--bord); vertical-align: top; } .tableau tr[data-id] { cursor: pointer; } .tableau tr[data-id]:hover td { background: var(--gris-clair); } .tableau small { color: var(--doux); }
/* ---- page partage ---- */
main.partage { max-width: 900px; } .entete-partage { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; } .sur { margin: 0; font-size: .8rem; color: var(--doux); text-transform: uppercase; letter-spacing: .05em; }
main.partage section { margin-bottom: 12px; }
@media (max-width: 700px) {
  .nav-bas { display: grid; } .barre nav { display: none; } .barre { margin-bottom: 12px; }
  .liste { grid-template-columns: 1fr; } .formulaire .deux, .deux { grid-template-columns: 1fr; } .ocr-bloc .deux { grid-template-columns: 1fr 1fr; } .trois { grid-template-columns: 1fr 1fr; } .adresse { grid-template-columns: 70px 70px 1fr; }
  .deux-gros { grid-template-columns: 1fr 1fr; gap: 10px; } .gros { padding: 14px; min-height: 0; gap: 2px; } .gros .ico { font-size: 1.6rem; } .gros b { font-size: 1.15rem; } .gros small { display: none; }
  .kpis { grid-template-columns: 1fr 1fr; } .kpi b { font-size: 1.15rem; }
  .fiche-tete .grande { width: 92px; height: 66px; } .fiche-tete h2 { font-size: 1.1rem; }
  label.case.haut { margin-top: 10px; } .tableau { font-size: .82rem; } .tableau th, .tableau td { padding: 6px 5px; }
  .carte { padding: 14px; border-radius: 16px; }
}
