/* Layout: deep evergreen navigation rail with the agency mark; airy work surface; records open in a right-hand sheet. */
:root{
  --bg:#f4f4f8; --surface:#ffffff; --surface-2:#eeeef5; --line:#e2e2ec;
  --fg:#14132e; --muted:#62627a; --accent:#24227a; --accent-fg:#ffffff; --accent-soft:#e6e6f6;
  --gold:#a8792c; --gold-soft:#f6eddc; --danger:#bf3b2c; --danger-soft:#fbe8e5;
  --st-gray:#6b7780; --st-blue:#2b62c4; --st-green:#13804f; --st-amber:#b36b0b; --st-red:#bf3b2c;
  --nav-bg:#100f48; --nav-fg:#b4b3d6; --nav-strong:#ffffff; --nav-active:#1d1c5e; --nav-line:#2a2970; --nav-gold:#e0bd6f;
  --shadow:0 1px 2px rgba(17,26,29,.05),0 2px 8px rgba(17,26,29,.05);
  --shadow-lg:0 10px 30px rgba(17,26,29,.10),0 2px 6px rgba(17,26,29,.06);
  --d-ink:#18211d; --d-muted:#5b6660; --d-line:#d8ddd6; --d-paper:#ffffff; --d-tint:#efeff6; --d-accent:#100f48; --d-brass:#a8792c;
  --f-display:"Instrument Serif", Georgia, "Times New Roman", serif;
  --f-body:"Albert Sans", "Segoe UI", Roboto, Arial, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  --r:14px; --r-sm:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0c0c1c; --surface:#14142a; --surface-2:#1b1b36; --line:#2a2a4a;
  --fg:#ebebf5; --muted:#9e9eb8; --accent:#9c9af2; --accent-fg:#0c0c1c; --accent-soft:#25245a;
  --gold:#ddb46a; --gold-soft:#2e2615; --danger:#f08a7b; --danger-soft:#3a2220;
  --st-gray:#a4b0b6; --st-blue:#86acf0; --st-green:#6fd3a0; --st-amber:#e9b462; --st-red:#f08a7b;
  --nav-bg:#0a0a30; --nav-fg:#a3a2cc; --nav-strong:#ffffff; --nav-active:#171650; --nav-line:#22216a; --nav-gold:#e0bd6f;
  --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 12px 32px rgba(0,0,0,.45);
  color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0c0c1c; --surface:#14142a; --surface-2:#1b1b36; --line:#2a2a4a;
  --fg:#ebebf5; --muted:#9e9eb8; --accent:#9c9af2; --accent-fg:#0c0c1c; --accent-soft:#25245a;
  --gold:#ddb46a; --gold-soft:#2e2615; --danger:#f08a7b; --danger-soft:#3a2220;
  --st-gray:#a4b0b6; --st-blue:#86acf0; --st-green:#6fd3a0; --st-amber:#e9b462; --st-red:#f08a7b;
  --nav-bg:#0a0a30; --nav-fg:#a3a2cc; --nav-strong:#ffffff; --nav-active:#171650; --nav-line:#22216a; --nav-gold:#e0bd6f;
  --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 12px 32px rgba(0,0,0,.45);
  color-scheme:dark }
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{text-wrap:balance;margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Shell */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}
.side{position:sticky;top:0;height:100vh;padding:22px 14px 18px;display:flex;flex-direction:column;gap:26px;background:var(--nav-bg);color:var(--nav-fg)}
@media (min-width:821px){.side{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.side>*{flex-shrink:0}}
.brand{display:flex;align-items:center;gap:12px;padding:2px 8px}
.brand .mk{width:42px;height:42px;border-radius:11px;background:var(--nav-gold);color:var(--nav-bg);display:grid;place-items:center;font-family:var(--f-display);font-size:28px;line-height:1;flex:none}
.brand .lg{background:#ffffff;border-radius:12px;padding:10px 14px;display:flex;align-items:center;justify-content:center;width:100%;height:64px}
.brand .lg img{max-height:44px;max-width:100%;object-fit:contain}
.brand .tx{display:flex;flex-direction:column;line-height:1.15}
.brand b{font-size:17px;font-weight:700;letter-spacing:.08em;color:var(--nav-strong)}
.brand span{font-size:11px;letter-spacing:.06em;color:var(--nav-fg)}
.nav{display:flex;flex-direction:column;gap:3px}
.nav .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--nav-fg);opacity:.7;padding:0 12px 6px}
.nav button{display:flex;gap:12px;align-items:center;border:0;background:none;padding:10px 12px;border-radius:10px;text-align:left;cursor:pointer;font-weight:500;color:var(--nav-fg);position:relative}
.nav button svg{width:19px;height:19px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav button .t{flex:1}
.nav button:hover{background:var(--nav-active);color:var(--nav-strong)}
.nav button[aria-current="true"]{background:var(--nav-active);color:var(--nav-strong)}
.nav button[aria-current="true"]::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--nav-gold)}
.nav button[aria-current="true"] svg{color:var(--nav-gold)}
.nav .n{font-size:11.5px;font-variant-numeric:tabular-nums;background:var(--nav-line);color:var(--nav-strong);padding:0 8px;border-radius:999px;line-height:20px}
.nav .n:empty{display:none}
.side .foot{margin-top:auto;padding:14px;border-radius:12px;background:var(--nav-active);display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.role{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--nav-gold)}
.side .foot .who{color:var(--nav-strong);font-weight:600;font-size:13.5px}
.side .foot button{border:0;background:none;padding:0;color:var(--nav-fg);cursor:pointer;font-size:12.5px;text-align:left;text-decoration:underline;text-underline-offset:3px}
.side .foot button:hover{color:var(--nav-strong)}
main{min-width:0;padding-block:30px 56px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:821px){main{padding-left:max(36px,env(safe-area-inset-left,0px));padding-right:max(36px,env(safe-area-inset-right,0px))}}
.wrap{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:22px}

/* Headings */
.head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between}
.head h1{font-family:var(--f-display);font-weight:400;font-size:40px;line-height:1.05;letter-spacing:-.01em}
.head p{margin:6px 0 0;color:var(--muted);font-size:14px}

/* Buttons & controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:var(--surface);padding:9px 15px;border-radius:999px;cursor:pointer;font-weight:600;font-size:13.5px;white-space:nowrap;box-shadow:var(--shadow)}
.btn:hover{border-color:var(--muted)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.btn.pri:hover{filter:brightness(1.08)}
.btn.ghost{background:none;border-color:transparent;box-shadow:none;color:var(--accent)}
.btn.ghost:hover{background:var(--accent-soft)}
.btn.danger{color:var(--danger);box-shadow:none}
.btn.danger.armed{background:var(--danger);border-color:var(--danger);color:var(--surface)}
.btn:disabled{opacity:.55;cursor:default}
.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.search{flex:1 1 260px;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:10px 16px 10px 40px;box-shadow:var(--shadow);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238896a0' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:15px 50%}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer;color:var(--muted);font-weight:500}
.chip:hover{color:var(--fg)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface);padding:3px;box-shadow:var(--shadow)}
.seg button{border:0;background:none;padding:6px 14px;font-size:13px;cursor:pointer;color:var(--muted);border-radius:999px;font-weight:500}
.seg button[aria-pressed="true"]{background:var(--accent-soft);color:var(--fg);font-weight:600}

/* Status */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-Estimation,.st-Retiré{color:var(--st-gray)}
.st-Mandat-signé{color:var(--st-blue)}
.st-En-vente{color:var(--st-green)}
.st-Sous-offre,.st-Réservé{color:var(--st-amber)}
.st-Vendu{color:var(--st-red)}
.ex{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:700}

/* Hero */
.hero{background:var(--nav-bg);color:var(--nav-fg);border-radius:20px;padding:30px 32px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:end;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;border:1px solid var(--nav-line);box-shadow:0 0 0 40px var(--nav-active) inset;opacity:.7;pointer-events:none}
.hero .k{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--nav-gold);font-weight:700}
.hero h1{font-family:var(--f-display);font-weight:400;font-size:46px;line-height:1.02;color:var(--nav-strong);margin:8px 0 6px}
.hero p{margin:0;font-size:14px}
.hero .figs{display:flex;gap:28px;flex-wrap:wrap;position:relative;z-index:1;justify-content:flex-end}
.hero .fig{display:flex;flex-direction:column;gap:2px}
.hero .fig b{font-family:var(--f-display);font-weight:400;font-size:34px;color:var(--nav-strong);font-variant-numeric:tabular-nums;line-height:1.1}
.hero .fig span{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}
.hero .acts{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;position:relative;z-index:1}
.hero .btn{box-shadow:none}
.hero .btn.alt{background:transparent;color:var(--nav-strong);border-color:var(--nav-line)}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow)}
.kpi span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
.kpi b{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kpi small{font-size:12.5px;color:var(--muted)}
.kpi.warn b{color:var(--danger)}
.kpi.ca{background:var(--gold-soft);border-color:transparent}
.kpi.ca b{color:var(--fg)}
.kpi.ca span{color:var(--gold)}
.dash{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0;display:flex;flex-direction:column;box-shadow:var(--shadow);overflow:hidden}
.panel>h3{font-size:15px;font-weight:700;padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}
.panel>h3 button{border:0;background:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:600}
.sbars{display:flex;flex-direction:column;gap:12px;padding:18px}
.sbar{display:grid;grid-template-columns:104px 1fr 28px;gap:12px;align-items:center;font-size:13px}
.sbar .tr{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}
.sbar .tr i{display:block;height:100%;background:currentColor;border-radius:99px;min-width:2px}
.sbar .v{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.panel .none{padding:18px;color:var(--muted);font-size:13.5px}

/* Property cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;cursor:pointer;text-align:left;padding:0;box-shadow:var(--shadow)}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.thumb{aspect-ratio:3/2;max-width:100%;background:var(--surface-2);background-size:cover;background-position:center;position:relative;display:grid;place-items:center;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.thumb .pill{position:absolute;top:12px;left:12px;background:var(--surface);box-shadow:var(--shadow)}
.card .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.card .ttl{font-weight:700;font-size:16px;line-height:1.3}
.card .loc{color:var(--muted);font-size:13px}
.card .row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.price{font-variant-numeric:tabular-nums;font-weight:700}
.card .price{font-family:var(--f-display);font-weight:400;font-size:22px}
.facts{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums;margin:4px 0 8px}

/* Lists */
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--r);padding:44px 24px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:10px;align-items:center}
.empty h3{color:var(--fg);font-family:var(--f-display);font-weight:400;font-size:26px}
.empty p{max-width:46ch;margin:0}
.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;box-shadow:var(--shadow);overflow:hidden}
.panel .list{box-shadow:none}
.li{display:flex;gap:14px;align-items:center;padding:13px 18px;border-top:1px solid var(--line);cursor:pointer;text-align:left;background:none;border-left:0;border-right:0;border-bottom:0;width:100%}
.li:first-child{border-top:0}
.li:hover{background:var(--surface-2)}
.li .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.li .nm{font-weight:600}
.li .sub{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.tag{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap;font-weight:500}
.av{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:13.5px;flex:none}
.group h3{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:4px 0 10px;font-weight:700}
.group{display:flex;flex-direction:column}
.task{display:flex;gap:14px;align-items:flex-start;padding:13px 18px;border-top:1px solid var(--line)}
.task:first-child{border-top:0}
.task input[type=checkbox]{width:20px;height:20px;margin-top:1px;accent-color:var(--accent);flex:none}
.task .main{flex:1;min-width:0}
.task .nm{font-weight:500}
.task.done .nm{text-decoration:line-through;color:var(--muted)}
.task .due{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.task .due.late{color:var(--danger);font-weight:600}
.quick{display:grid;grid-template-columns:2fr 1fr 1.3fr auto;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;box-shadow:var(--shadow)}
.quick input,.quick select{border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;background:var(--bg);min-width:0}
.banner{background:var(--gold-soft);border-radius:var(--r);padding:14px 16px;font-size:14px}

/* Pipeline */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:14px;overflow-x:auto;padding-bottom:10px}
.col{background:var(--surface-2);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:140px}
.col h3{font-size:14px;display:flex;justify-content:space-between;align-items:center;padding:2px 4px 2px}
.col h3 .n{color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;font-size:13px}
.col .sum{font-size:12px;color:var(--muted);padding:0 4px 4px;font-variant-numeric:tabular-nums}
.mini{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow)}
.mini:hover{box-shadow:var(--shadow-lg)}
.mini .t{font-weight:600;font-size:14px;line-height:1.3}
.mini .s{font-size:12.5px;color:var(--muted)}
.mini select{margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--bg);font-size:12.5px}

/* Data table */
.tblw{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto;box-shadow:var(--shadow)}
table.dt{width:100%;border-collapse:collapse;font-size:13.5px;min-width:820px}
.dt th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;padding:13px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
.dt td{padding:11px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.dt tr:last-child td{border-bottom:0}
.dt tbody tr{cursor:pointer}
.dt tbody tr:hover td{background:var(--surface-2)}
.dt .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.dt .ref{font-family:var(--f-mono);font-size:12px;color:var(--muted);white-space:nowrap}
.dt .tt{display:flex;gap:12px;align-items:center;min-width:0}
.dt .tt i{width:56px;height:40px;border-radius:8px;background:var(--surface-2);background-size:cover;background-position:center;flex:none}
.dt .tt b{font-weight:600;display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Matching */
.match{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:var(--bg);border-radius:var(--r-sm)}
.match .who{display:flex;flex-direction:column;min-width:0}
.match small{color:var(--muted);font-size:12px}
.match .btn{padding:6px 12px;font-size:12.5px;box-shadow:none}

/* Sheet */
.scrim{position:fixed;inset:0;background:rgba(7,12,14,.5);z-index:30;backdrop-filter:blur(2px)}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(780px,100%);background:var(--bg);z-index:31;display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(0,0,0,.2)}
.sheet .bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-block:calc(14px + env(safe-area-inset-top,0px)) 14px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));border-bottom:1px solid var(--line);background:var(--surface)}
.sheet .bar h2{font-family:var(--f-display);font-weight:400;font-size:26px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}
.sheet .bar .btn.ghost{color:var(--muted)}
.sheet .scroll{flex:1;overflow-y:auto;padding-block:20px calc(32px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:16px}
fieldset{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:6px 18px 18px;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;box-shadow:var(--shadow)}
legend{float:left;width:100%;grid-column:1/-1;font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--gold);padding:14px 0 10px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.f{display:flex;flex-direction:column;gap:6px;min-width:0}
.f.full{grid-column:1/-1}
.f label{font-size:12.5px;font-weight:600;color:var(--muted)}
.f input:not([type=checkbox]),.f select,.f textarea{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;background:var(--bg);width:100%;min-width:0}
.f input:not([type=checkbox]):focus,.f select:focus,.f textarea:focus{border-color:var(--accent);background:var(--surface);outline:3px solid var(--accent-soft);outline-offset:0}
.f textarea{min-height:100px;resize:vertical;line-height:1.55}
.f .hint{font-size:11.5px;color:var(--muted)}
.f.check{flex-direction:row;align-items:center;gap:10px;align-self:end;padding-bottom:10px}
.f.check input{width:18px;height:18px;accent-color:var(--accent)}
.unit{position:relative}
.unit input{padding-right:46px!important}
.unit span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none;font-weight:600}
.calc{grid-column:1/-1;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.honbox{grid-column:1/-1;background:var(--gold-soft);border-radius:var(--r-sm);padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.honbox span{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:700}
.honbox b{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1.15;font-variant-numeric:tabular-nums}
.honbox small{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;grid-column:1/-1}
.photos:empty{display:none}
.ph{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);background-size:cover;background-position:center}
.ph .cv{position:absolute;left:6px;top:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;background:var(--nav-gold);color:var(--nav-bg);padding:3px 7px;border-radius:999px}
.ph .acts{position:absolute;right:5px;bottom:5px;display:flex;gap:4px}
.ph .acts button{border:0;background:var(--surface);color:var(--fg);border-radius:999px;font-size:11px;padding:3px 9px;cursor:pointer;font-weight:600;box-shadow:var(--shadow)}
.ph.up{display:grid;place-items:center;color:var(--muted);font-size:12px}
.upload{grid-column:1/-1;border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:18px;text-align:center;color:var(--muted);font-size:13.5px;cursor:pointer;background:var(--bg)}
.upload.drag{border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}
.upload:hover{border-color:var(--accent);color:var(--fg);background:var(--accent-soft)}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;grid-column:1/-1}
.checks label{display:flex;gap:9px;align-items:center;font-size:14px;color:var(--fg)}
.checks input{accent-color:var(--accent);width:17px;height:17px}
.linked{grid-column:1/-1;display:flex;flex-direction:column;gap:7px;font-size:14px}
.linked .lk{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--bg);border-radius:var(--r-sm)}
.logoprev{grid-column:1/-1;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.logoprev .box{width:200px;height:90px;border-radius:var(--r-sm);background:#ffffff;border:1px solid var(--line);display:grid;place-items:center;padding:12px}
.logoprev .box img{max-width:100%;max-height:100%;object-fit:contain}
.logoprev .box em{font-style:normal;color:#6b7780;font-size:12px}

/* Dossier overlay */
.dov{position:fixed;inset:0;z-index:50;background:var(--surface-2);display:flex;flex-direction:column}
.dov .bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-block:calc(14px + env(safe-area-inset-top,0px)) 14px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--surface);border-bottom:1px solid var(--line)}
.dov .bar h2{font-family:var(--f-display);font-weight:400;font-size:24px}
.dov .bar p{margin:0;font-size:12.5px;color:var(--muted)}
.dov .pages{flex:1;overflow:auto;padding-block:24px calc(40px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;align-items:center;gap:22px}
.pbox{flex:none;box-shadow:var(--shadow-lg);overflow:hidden;background:var(--d-paper);border-radius:3px}
.pbox>.pg{transform-origin:top left}
#stage{position:fixed;left:-12000px;top:0;width:794px}
.cov-logo img{max-height:104px;max-width:200px;display:block}
.contact .lg img{max-height:96px;max-width:180px;display:block}

/* The dossier is a paper document: always light */
.pg{width:794px;height:1122px;background:var(--d-paper);color:var(--d-ink);font-family:var(--f-body);font-size:12.5px;line-height:1.5;position:relative;overflow:hidden;display:flex;flex-direction:column}
.pg h1,.pg h2,.pg h3{font-family:var(--f-display);color:var(--d-ink)}
.pg .pad{padding:44px 56px 0;flex:1;display:flex;flex-direction:column;gap:22px;min-height:0}
.pg .ftr{display:flex;justify-content:space-between;padding:14px 56px 22px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--d-muted);border-top:1px solid var(--d-line);margin:0 56px;padding-left:0;padding-right:0}
.pg .kick{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--d-brass);font-weight:600}
.pg .sec h2{font-size:20px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--d-ink)}
.cov-img{height:620px;background:var(--d-tint);background-size:cover;background-position:center;position:relative}
.cov-img .noimg{position:absolute;inset:0;display:grid;place-items:center;color:var(--d-muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase;background:repeating-linear-gradient(135deg,var(--d-tint) 0 14px,var(--d-paper) 14px 28px)}
.cov-logo{position:absolute;top:28px;left:40px;background:var(--d-paper);padding:10px 16px;display:flex;align-items:baseline;gap:8px}
.cov-logo b{font-family:var(--f-display);font-size:22px;letter-spacing:.04em;color:var(--d-ink)}
.cov-logo span{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--d-muted)}
.cov-body{padding:34px 56px 0;display:flex;flex-direction:column;gap:12px;flex:1}
.cov-body h1{font-size:34px;line-height:1.12;max-width:620px}
.cov-price{font-family:var(--f-display);font-size:26px;font-weight:600;color:var(--d-accent);font-variant-numeric:tabular-nums}
.keys{display:flex;gap:0;margin-top:auto;margin-bottom:26px;border-top:1px solid var(--d-line);border-bottom:1px solid var(--d-line)}
.keys div{flex:1;padding:12px 14px;border-left:1px solid var(--d-line);display:flex;flex-direction:column;gap:2px}
.keys div:first-child{border-left:0;padding-left:0}
.keys b{font-family:var(--f-display);font-size:19px;font-variant-numeric:tabular-nums}
.keys span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--d-muted)}
.desc{white-space:pre-line;font-size:13px;line-height:1.65;column-gap:32px}
.desc.two{columns:2}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.bul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.bul li{padding-left:18px;position:relative}
.bul li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--d-brass)}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl td{padding:6px 0;border-bottom:1px solid var(--d-line);vertical-align:top}
.tbl td:first-child{color:var(--d-muted);width:48%}
.tbl td:last-child{text-align:right;font-weight:600}
.pricebox{background:var(--d-tint);padding:18px 22px;display:flex;flex-direction:column;gap:8px}
.pricebox .big{font-family:var(--f-display);font-size:28px;font-weight:600;color:var(--d-accent);font-variant-numeric:tabular-nums}
.contact{margin-top:auto;margin-bottom:26px;display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;border:1px solid var(--d-ink);padding:20px 24px}
.contact .lg{font-family:var(--f-display);font-size:30px;font-weight:700;letter-spacing:.04em}
.contact .info{display:flex;flex-direction:column;gap:2px;font-size:12.5px}
.contact .info b{font-size:14px}
.disc{font-size:9.5px;color:var(--d-muted);line-height:1.5;margin-bottom:14px}
.gal{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:440px;gap:12px;flex:1;margin-bottom:26px}
.gal div{background-size:cover;background-position:center;background-color:var(--d-tint)}
.gal.one{grid-template-columns:1fr;grid-auto-rows:600px}

/* Toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(28px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--fg);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:14px;font-weight:500;max-width:calc(100% - 32px);box-shadow:var(--shadow-lg)}

@media (max-width:1050px){.dash{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr}.hero .figs{justify-content:flex-start}}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;padding:6px max(6px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px));z-index:20;gap:0}
  .brand,.side .foot,.nav .lbl{display:none}
  .nav{flex-direction:row;flex:1;justify-content:space-around}
  .nav button{flex-direction:column;gap:3px;font-size:11px;padding:7px 2px;flex:1;align-items:center}
  .nav button .t{flex:none}
  .nav button[aria-current="true"]::before{left:30%;right:30%;top:-6px;bottom:auto;width:auto;height:3px;border-radius:0 0 3px 3px}
  .nav .n{display:none}
  .toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  main{padding-block:18px 110px}
  .head h1{font-size:32px}
  .hero{padding:24px 20px;border-radius:16px}
  .hero h1{font-size:36px}
  fieldset{grid-template-columns:1fr}
  .quick{grid-template-columns:1fr 1fr}
  .quick input:first-child{grid-column:1/-1}
}
@media (max-width:480px){.kpis{grid-template-columns:1fr 1fr}.kpi{padding:14px}.kpi b{font-size:24px}}
/* Module documents & UI */
a.btn{color:var(--fg);text-decoration:none}
a.btn.pri{color:var(--accent-fg)}
.dh{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:16px;border-bottom:2px solid var(--d-ink)}
.dhr{display:flex;flex-direction:column;align-items:flex-end;font-size:10.5px;color:var(--d-muted);line-height:1.5;text-align:right}
.dhr b{color:var(--d-ink);font-size:13px}
.dtitle h1{font-size:28px;margin:4px 0 0;line-height:1.15}
.clause h3{font-size:13px;margin:0 0 3px;font-family:var(--f-body);font-weight:700}
.clause p{margin:0;font-size:11.5px;line-height:1.55}
.sig{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:auto;margin-bottom:26px}
.sig div{border-top:1px solid var(--d-ink);padding-top:6px;font-size:11px;color:var(--d-muted);min-height:84px}
.pg .ctbl td{width:auto;text-align:left;font-weight:400;padding:7px 10px 7px 0;color:var(--d-ink)}
.pg .ctbl tr:first-child td{font-weight:700;color:var(--d-muted);text-transform:uppercase;font-size:9.5px;letter-spacing:.08em}
.pg .inv .tot td{font-weight:700;font-size:15px;border-top:2px solid var(--d-ink);border-bottom:0}
.cin{border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:var(--bg);min-width:0;width:100%;font-size:13.5px}
.cin.num{text-align:right}
.dt.lots td{padding:6px}
.pbar{display:flex;height:8px;border-radius:99px;overflow:hidden;background:var(--surface-2);margin:10px 0 4px}
.pbar i{display:block;height:100%}
.bc{display:flex;align-items:flex-end;gap:6px;height:210px;padding:18px 18px 12px}
.bcc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;min-width:0}
.bcb{width:100%;max-width:34px;background:var(--accent);border-radius:5px 5px 0 0}
.bcl{font-size:11px;color:var(--muted)}
.bcv{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.nav .navmore{display:none}
.tpick{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:46;width:min(660px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;background:var(--surface);border-radius:20px;padding:22px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px}
.tph{display:flex;justify-content:space-between;align-items:center}
.tph h2{font-family:var(--f-display);font-weight:400;font-size:30px;margin:0}
.tpick .seg{align-self:flex-start}
.tpg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tpc{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px;border:1px solid var(--line);border-radius:14px;background:var(--bg);font-weight:600;font-size:13.5px;cursor:pointer;text-align:center;color:var(--fg)}
.tpc span{font-size:32px;line-height:1}
.tpc:hover,.tpc:focus-visible{border-color:var(--accent);background:var(--accent-soft)}
@media (max-width:560px){.tpg{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mp{display:inline-block;min-width:44px;padding:1px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;text-align:center;margin-right:4px}
.match small i{color:var(--danger);font-style:normal}
.sform{padding:24px;display:flex;flex-direction:column;gap:16px}
.sstep{display:flex;align-items:center;gap:12px;margin-top:6px}
.sstep h2{font-family:var(--f-display);font-weight:400;font-size:26px;margin:0}
.sn{width:30px;height:30px;border-radius:50%;background:var(--nav-bg);color:var(--nav-gold);display:grid;place-items:center;font-weight:700}
.sgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sform .row{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--fg)}
@media (max-width:640px){.sgrid{grid-template-columns:1fr}}
.sig.sig3{grid-template-columns:1fr 1fr 1fr;gap:24px}
.pg .mtbl td{padding:4px 0;font-size:11.5px}
.pg .clause{margin-top:-6px}
.pg .clause p{margin:0 0 4px}
.dempanel{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold-soft),var(--shadow)}
.demrow{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-right:16px}
.demrow:first-child{border-top:0}
.demrow .li{border-top:0;flex:1;min-width:0}
.demrow .btn{flex:none}
@media (max-width:560px){.demrow{flex-wrap:wrap;padding:0 16px 12px}.demrow .li{padding-left:0;padding-right:0}}
.hero{grid-template-columns:auto minmax(0,1.3fr) minmax(0,1fr);align-items:center;background:radial-gradient(120% 140% at 0% 0%,var(--nav-active) 0%,var(--nav-bg) 55%)}
.hero .hlogo{width:150px;height:auto;display:block;position:relative;z-index:1}
.hero .hmain{position:relative;z-index:1;min-width:0}
.hero .htag{margin:12px 0 0;color:var(--nav-gold);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;display:flex;flex-wrap:wrap;align-items:center;row-gap:4px}
.hero .htag i{font-style:normal;font-size:8px;margin:0 9px;color:var(--nav-strong);opacity:.85}
.hero .btn.pri{background:var(--nav-gold);border-color:var(--nav-gold);color:var(--nav-bg)}
.hero .figs{align-self:end}
@media (max-width:1050px){.hero{grid-template-columns:auto minmax(0,1fr)}.hero .figs{grid-column:1/-1}}
@media (max-width:560px){.hero{grid-template-columns:1fr;text-align:left}.hero .hlogo{width:104px}}
.eqgrp{grid-column:1/-1;display:flex;flex-direction:column;gap:6px}
.eqchips{display:flex;flex-wrap:wrap;gap:6px}
.eqc{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 8px;font-size:13px;cursor:pointer;background:var(--bg);user-select:none}
.eqc input{position:absolute;opacity:0;pointer-events:none}
.eqc span{font-size:15px;line-height:1}
.eqc:has(input:checked){background:var(--accent-soft);border-color:var(--accent);font-weight:600}
.eqc:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.eqmini{display:flex;gap:4px;font-size:15px;flex-wrap:wrap}
.pg .eqg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px;font-size:11.5px}
.pg .eqg span{display:flex;gap:8px;align-items:center;padding:6px 10px;background:var(--d-tint);border-radius:6px;color:var(--d-ink)}
.pg .eqg i{font-style:normal;font-size:15px;line-height:1}
.lbl2{font-size:12.5px;font-weight:600;color:var(--muted)}
#mandFs{border-color:var(--accent)}
.morep{position:fixed;left:0;right:0;bottom:0;z-index:46;background:var(--nav-bg);padding:16px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-radius:18px 18px 0 0}
.morep button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:var(--nav-active);color:var(--nav-strong);border-radius:12px;padding:14px 6px;font-size:12.5px;font-weight:600;cursor:pointer;text-align:center}
.morep svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#mlTo{border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;background:var(--bg);min-width:0}
@media (max-width:820px){.nav button.xtra{display:none}.nav .navmore{display:flex}.bc{gap:3px;padding:14px 10px 10px}.bcv{display:none}}

/* Facture + QR-facture (papier, toujours clair) */
.ivb{padding:60px 68px 0;color:var(--d-ink)}
.ivh{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:24px;margin-bottom:28px;border-bottom:1.5px solid var(--d-ink)}
.ivag{display:flex;gap:16px;align-items:flex-start}
.ivag img{width:78px;height:auto;display:block}
.ivag>div{display:flex;flex-direction:column;font-size:11px;color:var(--d-muted);line-height:1.6}
.ivag b{font-family:var(--f-display);font-size:24px;color:var(--d-ink);font-weight:400;line-height:1.1;margin-bottom:2px}
.ivtag{font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;margin-bottom:6px}
.ivvat{font-size:10.5px;margin-top:3px}
.ivdoc{text-align:right;font-size:11.5px;color:var(--d-muted);line-height:1.85}
.ivdoc b{color:var(--d-ink)}
.ivdt{font-family:var(--f-display);font-size:36px;color:var(--d-ink);line-height:1;margin-bottom:10px}
.ivc{margin:0 0 30px auto;width:max-content;max-width:290px;padding-right:14px;border-right:2px solid var(--d-ink);text-align:right;display:flex;flex-direction:column;font-size:12px;color:var(--d-muted);line-height:1.6}
.ivc b{font-size:14px;color:var(--d-ink)}
.ivl{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:4px}
.ivt{width:100%;border-collapse:collapse;margin-bottom:20px}
.ivt th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--d-muted);font-weight:600;padding:0 4px 9px;border-bottom:1.5px solid var(--d-ink)}
.ivt td{font-size:12.5px;padding:9px 4px;border-bottom:1px solid var(--d-line);vertical-align:top}
.ivt tr:last-child td{border-bottom:1.5px solid var(--d-ink)}
.ivt .n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ivtot{display:flex;justify-content:flex-end;margin-bottom:20px}
.ivtot table{border-collapse:collapse;min-width:280px}
.ivtot td{font-size:12px;padding:5px 4px;color:var(--d-muted)}
.ivtot .n{text-align:right;color:var(--d-ink);font-variant-numeric:tabular-nums}
.ivtot .g td{font-size:17px;color:var(--d-ink);font-weight:600;border-top:1.5px solid var(--d-ink);padding-top:9px}
.ivn{font-size:11px;color:var(--d-muted);line-height:1.65;max-width:440px}
.qb{position:absolute;left:0;bottom:0;width:794px;height:397px;display:flex;border-top:1px dashed #999;font-family:Arial,Helvetica,'Liberation Sans',sans-serif;color:#000;background:#fff}
.qbr{width:234px;height:397px;padding:19px;display:flex;flex-direction:column;border-right:1px dashed #999}
.qbp{width:560px;height:397px;padding:19px;display:flex;flex-direction:column}
.qt{font-size:11pt;font-weight:700;margin-bottom:11px}
.qh{font-size:6pt;font-weight:700;margin-bottom:1px}
.qv{font-size:8pt;margin-bottom:9px;line-height:1.3;overflow-wrap:anywhere}
.qbp .qh{font-size:8pt}
.qbp .qv{font-size:10pt}
.qri{flex:1;min-height:0}
.qam{display:flex;gap:30px}
.qacc{text-align:right;font-size:6pt;font-weight:700;margin-top:6px}
.qpm{display:flex;gap:19px;flex:1;min-height:0}
.qcc{width:174px;flex:none;display:flex;flex-direction:column}
.qcc img{width:174px;height:174px;display:block;margin-bottom:12px}
.qmiss{width:174px;height:174px;border:1px solid #b33;color:#b33;font-size:10px;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;margin-bottom:12px}
.qic{flex:1;min-width:0}
.qbox{border:1px solid #000;margin-bottom:9px}

/* Demande de location (papier) */
.pg.dl{font-family:"DejaVu Sans",Verdana,var(--f-body);color:#1a1a2e;font-size:10.5px;line-height:1.35}
.dlpad{padding:46px 60px 0;flex:1;display:flex;flex-direction:column}
.dlhead{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:2px solid #100f48;margin-bottom:12px}
.dlbrand{display:flex;align-items:center;gap:12px}
.dlbrand img{height:72px;width:auto;display:block}
.dlbrand b{display:block;font-size:26px;color:#100f48;letter-spacing:.02em}
.dlbrand span{font-size:10.5px;color:#555}
.dlco{display:flex;flex-direction:column;align-items:flex-end;font-size:10px;color:#444;line-height:1.5}
.dlco b{color:#222;font-size:10.5px}
.pg.dl .dltitle{font-family:"DejaVu Sans",Verdana,sans-serif;font-size:19px;color:#100f48;margin:0 0 4px;font-weight:700}
.dlintro,.dlnote{margin:0 0 8px;font-size:10px;color:#444}
.dlh{background:#100f48;color:#fff;font-weight:700;font-size:13px;padding:5px 9px;margin:8px 0 0}
.dls{font-weight:700;color:#100f48;font-size:11.5px;margin:8px 0 4px;padding-bottom:3px;border-bottom:1px solid #d6d6e4}
.dlt{width:100%;border-collapse:collapse;margin-bottom:2px}
.dlt th,.dlt td{border:1px solid #d6d6e4;padding:3px 8px;text-align:left;vertical-align:middle;font-weight:400;height:21px}
.dlt th{width:38%;background:#eef0f8;color:#222}
.dlt td{background:#fff}
.dlv{font-weight:700;color:#100f48}
.dlc{display:inline-flex;align-items:center;gap:4px;margin-right:9px;white-space:nowrap}
.dlc i{display:inline-block;width:8px;height:8px;border:1px solid #333}
.dll{display:inline-block;border-bottom:1px solid #333;height:9px;vertical-align:baseline}
.dldocs{line-height:1.7;margin:2px 0 8px}
.dldocs .dlc{white-space:normal}
.dltxt p{margin:5px 0;text-align:justify;font-size:10px}
.dlsig th{width:auto;font-weight:700}
.dlsig tr:not(:first-child) th,.dlsig tr:not(:first-child) td{height:42px}
.dlsig tr:first-child th{background:#eef0f8}
.dlret{text-align:center;font-style:italic;color:#444;font-size:10px;margin-top:8px}
.dlfoot{display:flex;justify-content:space-between;padding:0 60px 26px;font-size:9.5px;color:#888}

/* Espace client */
.portal{position:fixed;inset:0;z-index:47;background:var(--bg);overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
.pprev{position:sticky;top:0;z-index:2;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--gold-soft);color:var(--fg);font-size:13.5px;padding-block:calc(10px + env(safe-area-inset-top,0px)) 10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));border-bottom:1px solid var(--line)}
.ptop{background:radial-gradient(120% 140% at 0% 0%,var(--nav-active) 0%,var(--nav-bg) 60%);color:var(--nav-fg);padding-block:34px 70px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.ptopin{max-width:980px;margin:0 auto;display:flex;gap:26px;align-items:center}
.ptopin img{width:118px;height:auto;flex:none}
.ptopin .k,.pagent .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--nav-gold);font-weight:700}
.ptopin h1{font-family:var(--f-display);font-weight:400;font-size:44px;color:var(--nav-strong);margin:6px 0 4px;line-height:1.05}
.ptopin p{margin:0}
.pwrap{max-width:980px;margin:-44px auto 0;display:flex;flex-direction:column;gap:20px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-bottom:40px;position:relative}
.pagent{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:18px 20px;display:grid;grid-template-columns:auto auto auto 1fr;gap:4px 22px;align-items:center}
.pagent .k{grid-column:1/-1;color:var(--gold)}
.pagent b{font-size:16px}
.pagent span{color:var(--muted)}
.pagent p{margin:0;color:var(--muted);font-size:13px;text-align:right}
.pc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.pchead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.pcimg{min-height:260px;background:var(--surface-2);background-size:cover;background-position:center;display:grid;place-items:center;color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.pcinfo{padding:22px 24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.pcinfo .pill{align-self:flex-start}
.pcinfo h2{font-family:var(--f-display);font-weight:400;font-size:30px;line-height:1.1;margin:0}
.pcinfo p{margin:0;color:var(--muted)}
.pcprices{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:4px}
.pcprices div{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.pcprices span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.pcprices b{font-size:20px;font-variant-numeric:tabular-nums}
.pcprices .reco{background:var(--gold-soft);border-color:transparent}
.pcprices .reco span{color:var(--gold)}
.pcinfo blockquote{margin:2px 0 0;padding:10px 14px;border-left:3px solid var(--gold);background:var(--bg);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:14px;line-height:1.55;white-space:pre-line}
.pcinfo cite{display:block;margin-top:6px;font-style:normal;font-size:12.5px;color:var(--muted)}
.pcstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.pcstats div{padding:16px 20px;border-left:1px solid var(--line);display:flex;flex-direction:column}
.pcstats div:first-child{border-left:0}
.pcstats b{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1.1}
.pcstats span{font-size:12.5px;color:var(--muted)}
.pcpub{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 16px}
.pcpub a,.pcpub span{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);text-decoration:none}
.pctl{border-top:1px solid var(--line);padding:18px 20px}
.pctl h3{font-size:15px;margin:0 0 10px}
.pctl ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pctl li{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.pctl li:first-child{border-top:0}
.pctl i{font-style:normal;font-size:18px;text-align:center}
.pctl li div{display:flex;flex-direction:column;min-width:0}
.pctl li span{color:var(--muted);font-size:13px}
.pctl time{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.pfoot{color:var(--muted);font-size:12.5px;text-align:center;margin:0}
@media (max-width:760px){.ptopin{flex-direction:column;align-items:flex-start;gap:12px}.ptopin img{width:90px}.ptopin h1{font-size:34px}.pchead{grid-template-columns:1fr}.pcimg{min-height:200px}.pcstats{grid-template-columns:1fr 1fr}.pcstats div:nth-child(3){border-left:0}.pcstats div:nth-child(n+3){border-top:1px solid var(--line)}.pagent{grid-template-columns:1fr}.pagent p{text-align:left}}

/* Messagerie */
.chat{display:grid;grid-template-columns:300px minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;min-height:560px}
.clist{border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto;max-height:640px}
.cl{display:flex;gap:10px;align-items:center;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;width:100%}
.cl:hover{background:var(--surface-2)}
.cl.on{background:var(--accent-soft)}
.cl .main{flex:1;min-width:0;display:flex;flex-direction:column}
.cl .nm{font-weight:600}
.cl .sub{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cthread{display:flex;flex-direction:column;min-width:0}
.cth{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.cth div{display:flex;flex-direction:column;min-width:0}
.cth span{color:var(--muted);font-size:12.5px}
.cmsgs{flex:1;overflow-y:auto;max-height:470px;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}
.pchat .cmsgs{max-height:380px;border-radius:var(--r-sm)}
.msg{max-width:78%;display:flex;flex-direction:column;gap:3px;align-self:flex-start}
.msg.mine{align-self:flex-end;align-items:flex-end}
.msg .mb{background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:10px 13px;white-space:pre-line;line-height:1.5;overflow-wrap:anywhere}
.msg.mine .mb{background:var(--nav-bg);color:#fff;border-color:var(--nav-bg);border-radius:14px 14px 4px 14px}
.msg span{font-size:11.5px;color:var(--muted)}
.ccomp{display:flex;gap:10px;padding:12px 14px;border-top:1px solid var(--line);align-items:flex-end}
.ccomp textarea{flex:1;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;background:var(--bg);resize:vertical;min-width:0;font:inherit;color:inherit}
.cnote{margin:0;padding:0 14px 12px;color:var(--muted);font-size:12px}
@media (max-width:820px){.chat{grid-template-columns:1fr}.clist{max-height:220px;border-right:0;border-bottom:1px solid var(--line)}.msg{max-width:90%}}

/* Modules */
.lnk{border:0;background:none;padding:0;color:var(--accent);font-weight:600;cursor:pointer;font:inherit}
.acform{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr .8fr 1.4fr;gap:8px}
.acform textarea,.acform #ofX{grid-column:1/-1}
.acform input,.acform select,.acform textarea{border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;background:var(--bg);min-width:0;width:100%}
.acform .btn{grid-column:1/-1;justify-self:start}
.tl,.offl,.docl{grid-column:1/-1;display:flex;flex-direction:column}
.docl{gap:7px}
fieldset .task{padding:12px 0}
.offer{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.offer:first-child{border-top:0}
.offer .who{flex:1;display:flex;flex-direction:column;min-width:0}
.offer b{font-size:18px;font-variant-numeric:tabular-nums}
.offer small{color:var(--muted);font-size:12.5px}
.offer select{border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:var(--bg);font-size:13px}
.diff{grid-column:1/-1;display:flex;flex-direction:column}
.drow{display:grid;grid-template-columns:190px 150px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.drow:first-child{border-top:0}
.drow input[type=date],.drow input[type=url]{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;background:var(--bg);min-width:0;width:100%}
.dchk{display:flex;gap:9px;align-items:center;font-weight:600}
.dchk input{width:17px;height:17px;accent-color:var(--accent)}
.drow a,.docl a{color:var(--accent);font-weight:600;font-size:13.5px;overflow-wrap:anywhere}
.docl .lk{align-items:center}
.cpb{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--shadow)}
.cph{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cph .hint{flex:1;color:var(--muted);font-size:12px}
.cpb textarea{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;background:var(--bg);width:100%;resize:vertical;line-height:1.55}
.tag.new{background:var(--gold-soft);color:var(--gold);font-weight:700}
.tag.warn{background:var(--danger-soft);color:var(--danger);font-weight:700}
.kpi.hot b{color:var(--gold)}
.quick.q5{grid-template-columns:1fr 1fr .8fr 1.3fr 1.3fr auto}
.plan{flex:1;margin-bottom:26px;background-size:contain;background-repeat:no-repeat;background-position:center}
.brand .lgd{width:100%;display:flex;justify-content:center;padding:2px 0 4px}
.brand .lgd img{width:104px;height:auto;display:block}
@media (max-width:820px){.drow{grid-template-columns:1fr 1fr}.drow input[type=url]{grid-column:1/-1}.acform{grid-template-columns:1fr 1fr}.quick.q5{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:no-preference){.card,.mini,.btn,.nav button{transition:box-shadow .2s,transform .2s,background .15s,border-color .15s,filter .15s}}
