/* Polices hébergées (SIL OFL) : Manrope (identité Disjonio) et Inter ; le choix se règle dans Administration → Site. */
@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-latin-wght-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-wght-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--font:Manrope,Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html[data-font=inter]{--font:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html[data-font=system]{--font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
/* Disjonio — styles communs (site public + application). */
:root{--ink:#1A4032;--ink-2:#2c5748;--muted:#66746b;--line:#dde3dc;--paper:#F3F4EF;--card:#fbfcf8;--soft:#e9ede5;--green:#226a51;--lime:#8ABF92;--amber:#b0823a;--danger:#a33e32;--radius:12px;--shadow:0 1px 2px #183c320d,0 8px 24px #183c320f;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5}
a{color:var(--green)}
img,svg{max-width:100%}
h1,h2,h3{line-height:1.15;letter-spacing:-.02em;margin:0 0 .5em;font-weight:600}
h1 em,h2 em{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-style:italic;color:#4f7a5f}
p{margin:0 0 1em}
.muted{color:var(--muted)}
.small{font-size:13px}
.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:700;color:#6e8277;text-transform:uppercase;margin-bottom:8px}
button,input,select,textarea{font:inherit;color:inherit}
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:10px 16px;text-decoration:none;font-weight:500;min-height:42px;line-height:1.2}
.btn:hover,button:hover{background:#eef2eb}
.btn.primary,button.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.primary:hover,button.primary:hover{background:var(--ink-2)}
.btn.ghost,button.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover,button.ghost:hover{background:var(--soft)}
.btn.danger,button.danger{color:var(--danger);border-color:#e6c9c4}
.btn.danger:hover,button.danger:hover{background:#fbefed}
.btn.lg{padding:14px 22px;font-size:16px;border-radius:11px}
.btn.sm,button.sm{padding:6px 11px;min-height:34px;font-size:13px}
button:disabled{opacity:.55;cursor:default}
:focus-visible{outline:3px solid #c9944b;outline-offset:2px}
.brand{display:inline-flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:.09em;font-size:13px}
.brand small{display:block;font-size:9px;letter-spacing:.17em;margin-top:3px;color:var(--muted);font-weight:700}
.brand-icon{width:38px;height:38px;flex:none;object-fit:contain}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--ink);white-space:nowrap}
.badge.tag{background:var(--ink);color:var(--lime);letter-spacing:.04em}
.badge.ok{background:#dcefe0;color:#245c3a}
.badge.warn{background:#f6ead3;color:#7d5a1f}
.badge.free{background:#e7eae5;color:#5b6660}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.progress{height:7px;background:#e3e8e0;border-radius:99px;overflow:hidden}
.progress>i{display:block;height:100%;background:linear-gradient(90deg,#3f8a63,#7cbf8e);border-radius:99px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.notice{border:1px solid #ead9b8;background:#fbf5e8;border-radius:10px;padding:12px 14px;font-size:13px;color:#6a5426}
.notice.info{border-color:#cfe0d4;background:#eef5ef;color:#2f5a42}

/* ---------- Site public ---------- */
.site-header{position:sticky;top:0;z-index:10;background:#fbfcf8ee;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:var(--safe-top)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:70px;gap:16px}
.site-nav{display:flex;align-items:center;gap:6px}
.site-nav a:not(.btn){color:var(--ink);text-decoration:none;padding:8px 12px;border-radius:8px;font-weight:500}
.site-nav a:not(.btn):hover,.site-nav a[aria-current=page]{background:var(--soft)}
.nav-toggle{display:none}
.hero{padding:72px 0 56px}
.hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(38px,5.4vw,64px);font-weight:500;letter-spacing:-.035em}
.hero p.lead{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:560px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 18px}
.trust{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px;color:var(--muted)}
.trust span:before{content:'✓ ';color:var(--green);font-weight:700}
.hero-visual{position:relative}
.mock{background:linear-gradient(110deg,#cbcdc6,#e2e4dd 35%,#c7cac3 80%);border:2px solid #9b9f98;border-radius:12px;padding:22px;box-shadow:inset 0 0 0 5px #cbd0c7,0 30px 60px #263e2430;max-width:420px;margin:auto}
.mock-head{display:flex;justify-content:space-between;align-items:center;color:#344638;font-weight:800;letter-spacing:.06em;border-bottom:1px solid #a7ada1;padding-bottom:10px;margin-bottom:12px;font-size:14px}
.mock-head span{font-size:9px;letter-spacing:.12em;font-weight:600}
.mock-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;background:#7e8579;border:5px solid #8a9184;border-radius:4px}
.mock-grid div{height:30px;border:1px solid #1b241e;border-radius:2px;background:linear-gradient(#3c433c,#282e28);color:#dde4d6;font-size:10px;display:flex;align-items:center;gap:6px;padding:0 6px;position:relative;overflow:hidden;white-space:nowrap}
.mock-grid div b{background:#111a15;border-radius:2px;padding:2px 5px;font-size:10px}
.mock-grid div:before{content:'';position:absolute;left:0;top:3px;bottom:3px;width:3px;background:#8dc699}
.mock-grid div.u:before{background:#d3a65d}
.mock-grid div.f{background:repeating-linear-gradient(0deg,#81877c,#81877c 3px,#797e74 4px);color:#eef1e9}
.mock-grid div.f:before{background:#b9c1b3}
.float-card{position:absolute;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:12px 14px;font-size:13px}
.float-card.a{right:-6px;top:28px}
.float-card.b{left:-10px;bottom:24px}
.float-card strong{display:block}
section.block{padding:64px 0}
section.block.alt{background:#eef1ea;border-block:1px solid var(--line)}
.section-head{max-width:720px;margin-bottom:34px}
.section-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:500}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.feature{padding:24px}
.feature .ico{width:44px;height:44px;border-radius:11px;background:var(--soft);display:grid;place-items:center;font-size:22px;margin-bottom:14px}
.feature h3{font-size:18px}
.feature p{color:var(--muted);margin:0}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;padding:22px;position:relative}
.steps li:before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--lime);font-weight:700;margin-bottom:12px}
.steps h3{font-size:16px}
.steps p{color:var(--muted);font-size:14px;margin:0}
.audience{padding:26px}
.audience ul{padding-left:18px;color:var(--muted);margin:10px 0 0}
.audience li{margin:4px 0}
.cta-band{background:var(--ink);color:#fff;border-radius:18px;padding:40px;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cta-band h2{color:#fff;font-weight:500;margin:0}
.cta-band p{color:#c8d6cf;margin:6px 0 0}
.cta-band .btn{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.site-footer{border-top:1px solid var(--line);padding:32px 0 calc(32px + var(--safe-bottom));margin-top:40px;font-size:13px;color:var(--muted)}
.site-footer .container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.site-footer a{color:var(--muted)}
.doc{max-width:860px}
.doc h2{font-size:26px;font-weight:600;margin-top:48px;scroll-margin-top:90px}
.doc h3{font-size:18px;margin-top:26px}
.doc p,.doc li{color:#3e5149}
.doc ul,.doc ol{padding-left:22px}
.doc li{margin:6px 0}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 10px}
.toc a{background:#fff;border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-size:13px;text-decoration:none;color:var(--ink)}
.hierarchy{display:grid;gap:10px;margin:22px 0}
.hierarchy div{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:10px}
.hierarchy div:nth-child(2){margin-left:28px}
.hierarchy div:nth-child(3){margin-left:56px}
.hierarchy div:nth-child(4){margin-left:84px}
.hierarchy b{min-width:110px}
.hierarchy span{color:var(--muted);font-size:14px}
.formats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.formats div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;font-size:14px}
.formats strong{display:block;margin-bottom:4px}
details.faq{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:10px 0}
details.faq summary{cursor:pointer;font-weight:600}
details.faq p{margin:10px 0 0}

/* ---------- Application ---------- */
body.app{min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:#fbfcf8f2;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:var(--safe-top)}
.topbar .container{display:flex;align-items:center;gap:14px;height:64px}
.topbar .brand small{display:none}
.crumbs{display:flex;align-items:center;gap:6px;min-width:0;flex:1;font-size:14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.crumbs::-webkit-scrollbar{display:none}
.crumbs a,.crumbs span{white-space:nowrap;flex:none;text-decoration:none;color:var(--muted);padding:6px 8px;border-radius:7px}
.crumbs a:hover{background:var(--soft);color:var(--ink)}
.crumbs span:last-child{color:var(--ink);font-weight:600}
.crumbs i{color:#a9b3ab;font-style:normal}
.user-menu{position:relative}
.user-menu>button{border-radius:99px;padding:6px 12px 6px 6px;gap:8px}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--lime);display:grid;place-items:center;font-weight:700;font-size:13px}
.menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #183c3226;min-width:230px;padding:6px;display:none}
.menu.open{display:block}
.menu a,.menu button{display:flex;width:100%;justify-content:flex-start;border:0;background:none;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font:inherit;font-weight:500;line-height:1.4;align-items:center;gap:8px;text-align:left;min-height:0;box-shadow:none;cursor:pointer}
.menu a:hover,.menu button:hover{background:var(--soft)}
.menu hr{border:0;border-top:1px solid var(--line);margin:6px}
.menu .who{padding:10px 12px;font-size:13px;color:var(--muted)}
.menu .who b{display:block;color:var(--ink)}
main#view{flex:1;padding:28px 0 calc(60px + var(--safe-bottom))}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;flex-wrap:wrap}
.page-head h1{font-size:clamp(26px,3.2vw,36px);font-weight:600;margin:0}
.page-head .sub{color:var(--muted);margin-top:6px}
.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.loading{padding:60px 0;text-align:center;color:var(--muted)}
.empty-state{text-align:center;padding:48px 24px}
.empty-state .ico{font-size:40px;margin-bottom:8px}
.empty-state h2{font-size:24px}
.empty-state p{color:var(--muted);max-width:520px;margin:0 auto 20px}
.onboard{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;margin:24px auto;max-width:860px}
.onboard div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.onboard b{display:block;margin-bottom:4px}
.onboard span{color:var(--muted);font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.site-card,.panel-card{display:flex;flex-direction:column;gap:12px;padding:20px;text-decoration:none;color:var(--ink);transition:transform .12s,box-shadow .12s}
.site-card:hover,.panel-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px #183c3212,0 16px 34px #183c321c}
.site-card h2,.panel-card h2{font-size:19px;margin:0}
.site-card .addr,.panel-card .loc{color:var(--muted);font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.add-card{border:2px dashed #c9d3c6;background:transparent;box-shadow:none;align-items:center;justify-content:center;min-height:160px;color:var(--muted);font-weight:600;cursor:pointer;border-radius:var(--radius)}
.add-card:hover{background:#eef2eb;color:var(--ink)}
.panel-card .row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.tree{list-style:none;padding:0;margin:0}
.tree ul{list-style:none;padding-left:22px;margin:0;border-left:2px solid var(--line);margin-left:9px}
.tree li{padding:5px 0}
.tree a{text-decoration:none;color:var(--ink);font-weight:500}
.tree .root{color:var(--muted);font-size:14px}
.split{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
.side-card{padding:18px}
.side-card h3{font-size:15px;margin-bottom:10px}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:14px}
dl.facts dt{color:var(--muted)}
dl.facts dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.panel-hero{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.panel-hero .badge.tag{font-size:15px;padding:6px 12px;border-radius:8px}
.progress-line{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted);margin-top:10px;max-width:520px}
.progress-line .progress{flex:1}
.tabs{display:flex;gap:4px;background:var(--soft);border-radius:11px;padding:4px;margin-bottom:20px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{border:0;background:none;white-space:nowrap;min-height:38px;padding:8px 14px}
.tabs button[aria-selected=true]{background:#fff;box-shadow:0 1px 3px #183c3218;font-weight:600}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.panel-area{background:var(--soft);border:1px solid #dce3d7;border-radius:14px;padding:22px}
.panel-caption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;color:#788475;margin-bottom:14px;font-weight:700}
.cabinet{position:relative;max-width:500px;margin:auto;border:2px solid #9b9f98;border-radius:8px;padding:26px 22px;background:linear-gradient(110deg,#cbcdc6,#e2e4dd 35%,#c7cac3 80%,#c1c5bd);box-shadow:inset 0 0 0 5px #cbd0c7,inset 0 0 0 7px #b2b7ad,0 16px 25px #263e2420}
.manufacturer{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #a7ada1;padding-bottom:12px;color:#344638;gap:10px}
.manufacturer b{font-size:20px;letter-spacing:.04em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manufacturer span{font-size:9px;letter-spacing:.12em;text-align:right}
.main-breaker{display:flex;align-items:center;gap:14px;justify-content:center;margin:16px 0;color:#53614f;font-size:9px;letter-spacing:.1em}
.main-switch{display:flex;align-items:center;gap:10px;background:linear-gradient(100deg,#252c29,#3e443d,#1f2522);border:3px solid #171f1b;border-radius:4px;color:#e0e5d9;padding:9px 13px;box-shadow:3px 4px 0 #82897f}
.main-switch b{font-size:20px;border-right:4px solid #0e1510;padding-right:10px;letter-spacing:0}
.rail-labels{display:flex;justify-content:space-around;font-size:9px;letter-spacing:.14em;margin:10px 0 6px;color:#5c6858;font-weight:700}
.breakers{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;background:#7e8579;border:6px solid #8a9184;border-radius:4px;grid-auto-rows:16px}
.breaker{padding:0;display:flex;align-items:center;min-height:0;height:100%;border:1px solid #1b241e;border-radius:2px;background:linear-gradient(#3c433c,#282e28);color:#dde4d6;position:relative;box-shadow:inset 0 1px 0 #69705f;text-align:left;gap:0;font-weight:400;overflow:hidden}
.breaker:hover{background:#435847}
.breaker .num{color:#bfcbb5;font-size:10px;min-width:28px;text-align:center;flex:none}
.breaker .lever{flex:none;width:30px;height:calc(100% - 8px);min-height:12px;max-height:56px;background:linear-gradient(90deg,#111a15,#3e4639 46%,#141d16);border:1px solid #141e17;border-radius:2px;font-size:10px;display:grid;place-items:center;font-weight:700}
.breaker .short{font-size:11px;flex:1;padding:0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.breaker.even{flex-direction:row-reverse;text-align:right}
.breaker .dot{width:4px;position:absolute;left:0;top:3px;bottom:3px;background:#d3a65d}
.breaker.even .dot{left:auto;right:0}
.breaker.identified .dot{background:#8dc699}
.breaker.free{background:repeating-linear-gradient(0deg,#81877c,#81877c 3px,#797e74 4px);border-color:#626e5b;color:#eef1e9}
.breaker.free .dot{background:#b9c1b3}
.breaker.linked .lever{border-top:3px solid #8b9485;border-bottom:3px solid #8b9485}
.breaker.dimmed{opacity:.32}
.breaker.match{outline:2px solid var(--lime);outline-offset:-2px}
.panel-foot{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.1em;margin-top:14px;color:#5c6756}
.panel-tip{text-align:center;font-size:13px;color:var(--muted);margin:14px 0 0}
.toolbar-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.search{flex:1;min-width:200px;display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:0 12px;gap:8px}
.search input{border:0;background:none;width:100%;padding:11px 0;outline-offset:0}
.toolbar-row select{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px;min-height:42px}
.circuit-list{display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}
.circuit-card{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;background:var(--card);width:100%;min-width:0;max-width:100%;border-radius:10px;justify-content:flex-start;font-weight:400}
.circuit-card .pos{min-width:46px;height:38px;border:1px solid #d8e1d3;border-radius:8px;display:grid;place-items:center;color:#4f6b52;font-size:13px;font-weight:700;background:#eef2e8;flex:none;padding:0 4px}
.circuit-card .txt{flex:1;min-width:0}
.circuit-card .txt strong{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.circuit-card .txt small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.circuit-card .meta{text-align:right;white-space:nowrap;font-size:14px;font-weight:600}
.circuit-card .meta small{display:block;font-weight:500;font-size:11px;margin-top:3px}
.circuit-card.unknown .txt strong{color:var(--muted);font-weight:500}
.circuit-card .ex{display:block;font-size:12px;color:#7d5a1f;margin-top:3px;white-space:normal}
.list-wide .circuit-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.st-identified{color:#2f7048}.st-unknown{color:var(--amber)}.st-free{color:#7c857f}
.legend{display:flex;gap:16px;margin:14px 0;font-size:12px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.doc-card{padding:20px;display:flex;flex-direction:column;gap:10px}
.doc-card h3{font-size:17px;margin:0}
.doc-card p{color:var(--muted);font-size:14px;margin:0;flex:1}
.doc-card .ico{font-size:26px}
.doc-card .opts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.doc-card select{border:1px solid var(--line);border-radius:8px;padding:7px;background:#fff}
.form-card{padding:24px;max-width:860px}
.form-section{border:0;padding:0;margin:0 0 22px}
.form-section legend{font-weight:700;font-size:15px;margin-bottom:12px;padding:0}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fields .full{grid-column:1/-1}
label.f,div.f{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
label.f .hint,div.f .hint{font-weight:400;color:var(--muted);font-size:12px}
label.f input,label.f select,label.f textarea{width:100%;padding:11px 12px;border:1px solid #d4ddcf;border-radius:8px;background:#fff;font-weight:400;font-size:15px}
label.f textarea{resize:vertical;min-height:80px}
label.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
label.check input{margin-top:3px;width:18px;height:18px;flex:none}
.radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.radio-cards label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;cursor:pointer;font-size:14px}
.radio-cards label:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.radio-cards b{display:block}
.radio-cards span{color:var(--muted);font-size:13px}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}
.error{color:var(--danger);font-size:14px;margin:8px 0 0;min-height:1em}
dialog{width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px);border:1px solid #d3ddcd;border-radius:16px;padding:0;color:var(--ink);box-shadow:0 30px 100px #152d2840;background:#fcfdf9}
dialog::backdrop{background:#152b2870;backdrop-filter:blur(3px)}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 0}
.dlg-head h2{font-size:21px;margin:4px 0 0}
.dlg-head button{border:0;background:none;font-size:18px;min-height:0;padding:6px 8px}
.dlg-body{padding:16px 22px;overflow:auto}
.dlg-foot{display:flex;justify-content:space-between;gap:10px;padding:14px 22px 20px;border-top:1px solid var(--line);flex-wrap:wrap}
.dlg-foot .right{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-bottom));transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 20px;border-radius:10px;box-shadow:0 8px 30px #0003;z-index:100;max-width:min(560px,92vw);font-size:14px;display:none}
.toast.show{display:block;animation:pop .18s ease-out}
@keyframes pop{from{transform:translate(-50%,8px);opacity:0}}
.save-state{display:block;font-size:12px;color:var(--muted);min-height:0;margin-bottom:4px}
.auth-wrap{min-height:calc(100vh - 140px);display:grid;place-items:center;padding:24px 0}
.auth-card{width:min(460px,100%);padding:30px}
.auth-card h1{font-size:28px}
.auth-card .alt{margin-top:18px;font-size:14px;color:var(--muted);text-align:center}
.stack{display:grid;gap:14px}
.kbd-hint{font-size:12px;color:var(--muted)}
@media (max-width:980px){
 .hero .container{grid-template-columns:1fr;gap:40px}
 .grid-3,.steps{grid-template-columns:1fr 1fr}
 .workspace,.split{grid-template-columns:1fr}
 .formats{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
 body{font-size:15px}
 .nav-toggle{display:inline-flex}
 .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fbfcf8;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 20px 18px}
 .site-nav.open{display:flex}
 .site-nav .btn{margin-top:6px}
 .hero{padding:40px 0}
 .grid-3,.grid-2,.steps,.onboard,.radio-cards,.formats{grid-template-columns:1fr}
 .fields{grid-template-columns:1fr}
 section.block{padding:44px 0}
 .float-card{display:none}
 .cta-band{padding:28px}
 .hierarchy div:nth-child(n){margin-left:0}
 .topbar .brand span:not(.brand-icon){display:none}
 .user-menu .uname{display:none}
 .user-menu>button{padding:4px}
 .list-wide .circuit-list{grid-template-columns:minmax(0,1fr)}
 .panel-area{padding:12px}
 .cabinet{padding:20px 12px}
 .breaker .short{font-size:10px;padding:0 4px}
 .breaker .num{min-width:22px;font-size:9px}
 .breaker .lever{width:24px}
 .page-actions{width:100%}
 .dlg-foot .right{width:100%}
 .dlg-foot .right button{flex:1}
}
.mt{margin-top:22px}.center-y{align-items:center}.h2-lg{font-size:clamp(28px,3.4vw,40px);font-weight:500}
[hidden]{display:none!important}
.site-nav a{white-space:nowrap}
.breakers{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:980px){.workspace,.split{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){
 .crumbs a:first-child:not(:last-child),.crumbs a:first-child+i{display:none}
 .page-actions button,.page-actions .btn{flex:1 1 auto}
 .site-header .container{position:relative}
 .tabs button{padding:8px 11px}
}
@media (max-width:1100px) and (min-width:721px){.site-nav a:not(.btn){padding:8px 8px}}
.save-state:empty{display:none}
/* ---------- Tarifs et abonnements ---------- */
.billing-toggle{display:inline-flex;background:var(--soft);border-radius:99px;padding:4px;gap:4px;margin-bottom:24px}
.billing-toggle button{border:0;border-radius:99px;background:none;min-height:36px;padding:6px 16px}
.billing-toggle button[aria-pressed=true]{background:#fff;box-shadow:0 1px 3px #183c3220;font-weight:600}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:stretch}
.plan{padding:22px;display:flex;flex-direction:column;gap:10px;position:relative}
.plan.highlight{border:2px solid var(--ink)}
.plan .ribbon{position:absolute;top:-11px;left:20px;background:var(--ink);color:var(--lime);font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;letter-spacing:.05em}
.plan h3{margin:0;font-size:18px}
.plan .aud{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.plan .price{font-size:32px;font-weight:600;letter-spacing:-.02em}
.plan .price small{font-size:14px;color:var(--muted);font-weight:400}
.plan .save{font-size:12px;color:#2f7048;font-weight:600;min-height:18px}
.plan ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:6px;font-size:14px;flex:1}
.plan li:before{content:'✓ ';color:var(--green);font-weight:700}
.plan p{color:var(--muted);font-size:14px;margin:0}
.plan.current{background:#eef5ef}
.usage{padding:22px;display:grid;gap:14px}
.usage .big{font-size:28px;font-weight:600}
.usage-chip{display:inline-flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);text-decoration:none;background:#fff;border:1px solid var(--line);padding:6px 12px;border-radius:99px}
.usage-chip b{color:var(--ink)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.stat{padding:16px}
.stat b{display:block;font-size:26px;font-weight:600}
.stat span{font-size:13px;color:var(--muted)}
table.data{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.data th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f0f3ee;padding:10px 12px;font-weight:700}
table.data td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
table.data tr.click{cursor:pointer}
table.data tr.click:hover td{background:#f5f8f3}
.table-wrap{overflow-x:auto}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.admin-grid .card{padding:18px}
.admin-grid h3{font-size:16px;margin-bottom:12px}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.inline-form label.f{flex:1;min-width:120px}
.mode{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:#f6ead3;color:#7d5a1f}
.mode.live{background:#dcefe0;color:#245c3a}
.tabs a[aria-selected=true]{background:#fff;box-shadow:0 1px 3px #183c3218;font-weight:600}.tabs a{white-space:nowrap}
.plan ul{align-content:start}
/* ---------- Planification ---------- */
.plan-box{border:1px solid #cfe0d4;background:#f3f8f3;border-radius:12px;padding:12px 14px}
.plan-box>summary{cursor:pointer;font-weight:700}
.plan-box .fields{margin-top:12px}
.loads-list{display:grid;gap:6px;margin:6px 0}
.load-row{display:grid;grid-template-columns:minmax(120px,2fr) 110px 82px 74px minmax(110px,1.4fr) auto auto;gap:6px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px}
.load-row input,.load-row select{width:100%;padding:6px 7px;border:1px solid #d4ddcf;border-radius:6px;background:#fff;font-size:13px;min-width:0}
.load-w,.load-q{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.load-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:8px}
.load-kpis span{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:11px;color:var(--muted);display:flex;flex-direction:column}
.load-kpis b{font-size:16px;color:var(--ink)}
.progress.high>i{background:linear-gradient(90deg,#c99a3b,#e0b45a)}
.progress.over>i{background:linear-gradient(90deg,#a33e32,#d0584a)}
.issue{margin:6px 0;font-size:13px;padding:6px 10px;border-radius:8px}
.issue.error{background:#fbefed;color:#8a2f25}
.issue.warn{background:#fbf5e8;color:#6a5426}
.issue.info{background:#eef5ef;color:#2f5a42}
.gauge{display:flex;align-items:center;gap:14px}
.gauge .big{font-size:34px;font-weight:700}
.gauge.ok .big{color:#2f7048}.gauge.medium .big{color:#8a6a1f}.gauge.high .big{color:#b0702a}.gauge.over .big{color:var(--danger)}
.legs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.leg{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}
.leg b{display:block;font-size:20px}
.breaker .leg-tag{position:absolute;top:1px;font-size:7px;opacity:.7}
.breaker .load-bar{position:absolute;bottom:1px;left:4px;right:4px;height:2px;background:#ffffff22}
.breaker .load-bar i{display:block;height:100%;background:#8dc699}
.breaker .load-bar i.high{background:#e0b45a}.breaker .load-bar i.over{background:#e05a4a}
.ev-guide td,.ev-guide th{font-size:13px}
@media (max-width:720px){.load-row{grid-template-columns:1fr 1fr}.load-row>input:first-child{grid-column:1/-1}.load-kpis{grid-template-columns:repeat(2,1fr)}}
.add-load{width:100%;padding:10px 12px;border:1px dashed #9fb8a6;border-radius:8px;background:#fff;font-weight:600;color:var(--green);margin-top:4px}
.stack>*,.side-card,.workspace>*{min-width:0}
/* ---------- Bibliothèque et dessin réaliste ---------- */
.panel-art-wrap{position:relative;background:linear-gradient(180deg,#e7ebe5,#dfe4dc);border:1px solid #d3dbd0;border-radius:14px;padding:14px}
.panel-art{display:block;width:100%;height:auto;max-width:620px;margin:auto;user-select:none}
.panel-art .pa-item{cursor:pointer;outline:none}
.panel-art .pa-item:hover>rect:first-child,.panel-art .pa-item:focus>rect:first-child{stroke:#e3f7a9;stroke-width:2}
.panel-art .pa-target{fill:#7cc58a;fill-opacity:.28;stroke:#2f7048;stroke-width:2;stroke-dasharray:5 3;cursor:copy;animation:pa-pulse 1.4s ease-in-out infinite}
.panel-art .pa-target:hover{fill-opacity:.55}
@keyframes pa-pulse{50%{fill-opacity:.12}}
.panel-art-wrap.thumb{padding:0;border:0;background:none}
.panel-art-wrap.thumb .panel-art-brand{display:none}
.panel-art-brand{position:absolute;top:10px;left:12px;z-index:1}
.brand-badge{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent,#6b7a72);border-radius:7px;padding:3px 8px;font-weight:800;letter-spacing:.04em;color:var(--accent,#33403a);white-space:nowrap}
.brand-badge img{height:18px;width:auto;display:block}
.brand-badge.xs{font-size:10px;padding:1px 6px;border-left-width:3px}.brand-badge.xs img{height:12px}
.brand-badge.sm{font-size:12px}.brand-badge.md{font-size:14px}
.place-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eef8ef;border:1px solid #9fd0aa;color:#245c3a;border-radius:10px;padding:10px 12px;font-size:14px;flex-wrap:wrap}
.palette .palette-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0}
.palette select{border:1px solid var(--line);border-radius:8px;padding:7px;background:#fff;min-width:0;font-size:13px}
.palette .search{margin-top:6px}
.palette-list{display:grid;gap:6px;max-height:440px;overflow:auto;padding-right:2px}
.palette-item{display:flex;align-items:center;gap:10px;justify-content:flex-start;text-align:left;padding:7px 9px;background:#fff;border-radius:9px;min-height:0;font-weight:400}
.palette-item.on{border-color:#2f7048;box-shadow:0 0 0 2px #9fd0aa}
.palette-item.blocked{opacity:.55}
.pi-text{display:flex;flex-direction:column;min-width:0}
.pi-text b{font-size:13px}
.pi-text span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.pi-warn{font-size:11px!important}.pi-warn.error{color:#8a2f25!important}.pi-warn.warn{color:#7d5a1f!important}
.mini-breaker{position:relative;flex:none;width:46px;height:20px;border-radius:3px;background:var(--body);box-shadow:inset 0 1px 0 #ffffff22,0 1px 2px #0005;display:grid;place-items:center}
.mini-breaker.tall{height:34px}
.mini-breaker i{font-style:normal;font-size:10px;font-weight:800;color:var(--ink);background:var(--handle);border-radius:2px;padding:1px 4px}
.mini-breaker.split::after{content:'';position:absolute;left:3px;right:3px;top:50%;border-top:1px solid #ffffff40}
.mini-breaker em{position:absolute;right:2px;top:2px;width:7px;height:7px;border-radius:2px;background:#f4f4f2;border:1.5px solid}
.mini-breaker em.p-af{border-color:#2f7de1}.mini-breaker em.p-gf{border-color:#e8a317}.mini-breaker em.p-df{border-color:#8b5cf6}.mini-breaker em.p-ep{border-color:#8f9aa3}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.brand-chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{min-height:34px;padding:5px 10px;border-radius:99px;font-size:13px;gap:6px}
.chip.on{border-color:var(--ink);background:#eef2eb;font-weight:600}
dialog.picker{width:min(1100px,calc(100vw - 24px))}
.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:12px}
.model-card{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;text-align:left;border-radius:12px;overflow:hidden;background:#fff;min-height:0;font-weight:400}
.model-card.current{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}
.model-card:hover{box-shadow:0 8px 24px #183c3220}
.model-thumb{background:linear-gradient(180deg,#e9ede7,#dde2da);padding:8px;max-height:220px;overflow:hidden}
.model-thumb .panel-art{max-width:150px}
.model-info{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}
.model-info .row{display:flex;justify-content:space-between;gap:6px;align-items:center}
.model-info b{font-size:14px}
.specs{display:flex;flex-wrap:wrap;gap:4px}
.specs span{font-size:11px;background:var(--soft);border-radius:99px;padding:2px 7px}
.model-pick{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}
.model-summary{display:flex;align-items:center;gap:10px;min-width:0}
@media (max-width:720px){.palette .palette-filters{grid-template-columns:1fr 1fr}.model-grid{grid-template-columns:1fr 1fr}.model-thumb .panel-art{max-width:110px}}
.brand-badge img.parent{height:12px;opacity:.85;padding-left:6px;border-left:1px solid var(--line)}.brand-badge.xs img.parent{height:9px}
/* ---------- Attribution des modèles et sous-panneaux ---------- */
.assign{margin-top:12px}
.assign-unit{display:flex;align-items:center;gap:12px;padding:14px}
.assign-unit .pi-text{flex:1}
.group{padding:0;overflow:hidden}
.group-head{display:flex;align-items:center;gap:12px;width:100%;justify-content:flex-start;text-align:left;border:0;border-radius:0;background:#fff;padding:12px 14px;font-weight:400}
.group-head .pi-text{flex:1}
.group.open .group-head{background:#eef5ef}
.group-body{padding:12px 14px;border-top:1px solid var(--line)}
.group-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin:10px 0;max-height:220px;overflow:auto}
.feed-box{background:#f4f8fc;border:1px solid #cddcee;border-radius:10px;padding:10px 12px}
.feed-box .inline-form select{flex:1;min-width:180px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}
.feed-linked{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.feeds-tag{display:inline-block;margin-top:3px;font-size:12px;font-weight:600;color:#245c8a}
.feeds-tag.todo{color:#8a6a1f}
.fed-circuit{display:block}
.model-card.info{opacity:.9;cursor:default}.model-thumb.noart{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;color:var(--muted)}
/* ---------- Guide du calcul de charge ---------- */
.g-step{border-top:1px solid var(--line);padding-top:6px}
.g-step h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.g-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g-list{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.g-list.inc{border-left:4px solid #3f9a62}.g-list.exc{border-left:4px solid #c9944b}
.g-list ul{margin:6px 0 0;padding-left:18px}.g-list li{font-size:14px}
.g-tip{background:#eef5ef;border-radius:8px;padding:8px 12px;font-size:14px}
.g-rule{padding:14px;margin:8px 0}.g-rule .badge{margin-left:8px}.g-rule p{margin:6px 0 0}
.calc-step{border-top:1px solid var(--line);padding:8px 0}
.calc-step summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}
.calc-step summary::-webkit-details-marker{display:none}
.calc-step summary b{flex:1}
.calc-step .why{font-size:13px;color:#3e5149;margin:6px 0}
.calc-step ul{margin:4px 0 0;padding-left:18px;font-size:13px}
@media (max-width:720px){.g-cols{grid-template-columns:1fr}}
.doc .cta-band p{color:#c8d6cf}
.service-check{margin:0}.service-check.warn{color:#7d5a1f;background:#fbf5e8;padding:6px 8px;border-radius:6px}
/* Actions groupées */
.bulk-toggle{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.bulk-bar{padding:10px 12px;margin-bottom:10px;position:sticky;top:6px;z-index:5;border:2px solid #2f6b4f}
.bulk-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.bulk-pick,.bulk-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.bulk-actions select,.bulk-room input{max-width:150px}
.bulk-room{display:inline-flex;gap:4px}
.small-btn{padding:4px 8px;font-size:12px}
.circuit-card.selected,.breaker.selected{outline:3px solid #2f8f5f;outline-offset:-1px}
.breaker.selected{box-shadow:0 0 0 2px #fff inset}
.breaker.vacant{background:repeating-linear-gradient(45deg,#c9cdc6,#c9cdc6 4px,#bfc4bc 4px,#bfc4bc 8px);color:#4c544a;border-color:#a5ab9f}
.breaker.vacant .lever{visibility:hidden}
.circuit-card.vacant strong{color:#6b7268;font-style:italic}
/* Aperçu de l'en-tête des PDF personnalisés */
.brand-preview{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;margin:10px 0 14px;min-height:76px;background:#183c32}
.brand-preview .bp-logo{background:#fff;padding:6px;border-radius:3px;display:flex;align-items:center}
.brand-preview .bp-logo img{max-height:44px;max-width:130px;display:block}
.brand-preview .bp-bar{width:4px;align-self:stretch;border-radius:2px}
.bp-over{font-size:10px;font-weight:800;letter-spacing:.06em}.bp-title{font-size:18px;font-weight:800}.bp-sub{font-size:12px}
/* Assistant d'ajout par photo (IA) */
.ai-tips{margin:0 0 8px 18px;padding:0;display:grid;gap:4px}
.ai-files{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.ai-file{display:flex;align-items:center;gap:6px;border:1px solid #d6ddd3;border-radius:8px;padding:4px 6px;background:#fff;max-width:240px}
.ai-file img{width:48px;height:48px;object-fit:cover;border-radius:4px}
.ai-file .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}
.ai-doc{font-size:28px;width:48px;text-align:center}
.ai-hints{margin:8px 0}.ai-hints summary{cursor:pointer;font-weight:600}
.ai-wait{display:grid;place-items:center;gap:8px;padding:40px 10px;text-align:center}
.ai-wait-msg{font-weight:600}
.spinner{width:42px;height:42px;border-radius:50%;border:4px solid #d9e3d6;border-top-color:#2f6b4f;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
.ai-step-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.ai-step-head h3{margin:0}
.ai-step{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#2f6b4f}
.ai-conf{font-size:12px;padding:2px 8px;border-radius:99px;background:#eef1ec}
.ai-conf.ok,.ai-log .ok{color:#235c3c}.ai-conf.mid,.ai-log .mid{color:#7d5a1f}.ai-conf.low,.ai-log .low{color:#8a2f25}
.ai-conf.ok{background:#e1f1e5}.ai-conf.mid{background:#f6ead3}.ai-conf.low{background:#f6dcd8}
.ai-build{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:720px){.ai-build{grid-template-columns:1fr}}
.ai-art svg{width:100%;height:auto;max-height:62vh}
.ai-log{max-height:62vh;overflow:auto;margin:0;padding-left:20px;font-size:13px;display:grid;gap:2px}
.ai-flag{font-weight:700}
.ai-table-wrap{max-height:62vh;overflow:auto}
.ai-table{width:100%;border-collapse:collapse;font-size:13px}
.ai-table th,.ai-table td{padding:4px;border-bottom:1px solid #e3e8e1;text-align:left}
.ai-table select{min-width:70px}.ai-table input{width:100%}
.ai-table tr.mid td:first-child{border-left:3px solid #d0a04a}.ai-table tr.low td:first-child{border-left:3px solid #c0503f}
.ai-upsell{text-align:center;padding:20px}
.page-actions.center{justify-content:center}
label.f input[type=color]{width:96px;height:44px;padding:3px;cursor:pointer}
/* Console : modèles d'IA */
.ai-models{display:grid;gap:6px;margin:10px 0}
.ai-model{display:grid;grid-template-columns:24px 22px minmax(0,1fr) auto auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid #dfe5dc;border-radius:8px;background:#fff}
.ai-model.off{opacity:.6;background:#f6f8f5}
.ai-model-name{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.ai-model-name code{font-size:12px;color:#5b6b60}
.ai-model-name .small{flex-basis:100%}
.ai-rank{font-weight:800;color:#2f6b4f;text-align:center}
.ai-move{display:inline-flex;gap:2px}
.ai-test{font-size:12px;grid-column:3/-1}.ai-test:empty{display:none}.ai-test.ok{color:#235c3c}.ai-test.ko{color:#8a2f25}
@media (max-width:760px){.ai-model{grid-template-columns:24px 22px minmax(0,1fr);}.ai-model>*:nth-child(n+4){grid-column:3}}
.ai-models+.inline-form input{flex:1;min-width:220px;padding:9px 10px;border:1px solid #d4ddcf;border-radius:8px}
/* Assistant IA en grand */
dialog.xl{width:min(1600px,calc(100vw - 24px));height:calc(100dvh - 24px)}
dialog.xl .ai-build{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
dialog.xl .ai-art svg,dialog.xl .ai-log,dialog.xl .ai-table-wrap{max-height:calc(100dvh - 360px)}
dialog.xl .ai-art{display:flex;justify-content:center}
dialog.xl .ai-art svg{width:100%;height:calc(100dvh - 360px);min-height:420px;max-height:none}
@media (max-width:720px){dialog.xl .ai-art svg{height:auto;max-height:70vh}}
.ai-table tr.changed td{background:#eef7e9}
.ai-table .ai-new{font-size:10px;font-weight:800;color:#235c3c;background:#d9efd9;border-radius:99px;padding:1px 6px;margin-left:4px}
.ai-extra{border:1px dashed #b9c8b5;border-radius:10px;padding:12px;margin:10px 0;background:#f7faf5}
/* Mode guidé */
.gd-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:820px){.gd-wrap{grid-template-columns:1fr}.gd-art{order:-1}}
.gd-question{min-width:0}
.gd-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:6px}.gd-head h3{margin:0;font-size:22px}
.gd-progress{margin:6px 0 10px}
.gd-ask{font-weight:700;font-size:16px;margin:10px 0 8px}
.gd-formats{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-bottom:10px}
.gd-format{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:10px 12px;border:1px solid #d4ddcf;border-radius:10px;background:#fff;min-height:74px}
.gd-format.on{border-color:#2f6b4f;box-shadow:0 0 0 2px #2f6b4f inset;background:#f1f8f2}
.gd-format b{font-size:14px}
.gd-ico{width:34px;height:20px;border-radius:3px;background:#2b302c;position:relative;flex:none}
.gd-ico-double{height:30px;box-shadow:inset 0 -2px 0 #6b736a}
.gd-ico-triple{height:38px}
.gd-ico-tandem{background:linear-gradient(#2b302c 45%,transparent 45% 55%,#2b302c 55%)}
.gd-ico-empty{background:repeating-linear-gradient(45deg,#c9cdc6,#c9cdc6 4px,#bfc4bc 4px,#bfc4bc 8px)}
.gd-ico-unknown{background:#e9ece6;border:1px dashed #9aa597}.gd-ico-unknown::after{content:'?';position:absolute;inset:0;display:grid;place-items:center;font-weight:800;color:#6b736a;font-size:13px}
.gd-detail{display:grid;gap:12px}
.gd-half{border:1px solid #e1e7de;border-radius:10px;padding:10px 12px;background:#fbfcfa;display:grid;gap:12px}.gd-half h4{margin:0}
.gd-q{display:grid;gap:5px}.gd-q input{padding:10px 12px;border:1px solid #d4ddcf;border-radius:8px;font-size:15px}
.gd-usage{display:flex;align-items:center;gap:6px}
.gd-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gd-chip{padding:7px 12px;border:1px solid #cfd8ca;border-radius:99px;background:#fff;font-weight:600;min-height:0}
.gd-chip.on{background:#2f6b4f;border-color:#2f6b4f;color:#fff}
.gd-chips input,.gd-chips select{width:110px;padding:7px 10px;border:1px solid #cfd8ca;border-radius:99px}
.gd-brands{display:flex;flex-wrap:wrap;gap:8px}.gd-brand{display:inline-flex;align-items:center;gap:6px}
.gd-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.gd-check{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid #e1e7de;border-radius:8px;background:#fff}
.gd-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.gd-pick-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:8px 10px;border:1px solid #d4ddcf;border-radius:8px;background:#fff;min-height:0}
.gd-pick-item.likely{border-color:#2f6b4f;background:#f1f8f2}.gd-pick-item.none{border-style:dashed}
.gd-art{position:sticky;top:0}.gd-art svg{width:100%;height:auto;max-height:calc(100dvh - 220px)}
.gd-art-empty{border:2px dashed #d4ddcf;border-radius:12px;min-height:320px;display:grid;place-items:center;text-align:center;padding:20px}.gd-big{font-size:64px;color:#c9d3c5}
.gd-art-tip{text-align:center;margin:6px 0 0}
.gd-summary{margin:6px 0 12px 18px}
.gd-nav{flex-wrap:wrap}
/* Mode guidé : modèles */
.gd-group{padding:10px 12px;display:grid;gap:8px}
.gd-group.done{border-color:#9fcbaa;background:#f6fbf6}
.gd-group-head{display:flex;align-items:center;gap:10px}.gd-group-head .pi-text{flex:1;min-width:0;display:grid}
.gd-auto{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
/* Suggestions (console) */
.fb-item{padding:12px 14px;display:grid;gap:6px}
.fb-item.fb-nouveau{border-left:4px solid #2f6b4f}.fb-item.fb-fait{opacity:.75}.fb-item.fb-refuse{opacity:.6}
.fb-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.fb-msg{white-space:pre-wrap;margin:2px 0}
.fb-actions{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:8px;align-items:start}
.fb-actions textarea,.fb-actions select{padding:8px 10px;border:1px solid #d4ddcf;border-radius:8px;font:inherit}
@media (max-width:700px){.fb-actions{grid-template-columns:1fr}}
.card.stat.link{text-decoration:none;color:inherit}
/* Filet de sécurité mobile : un élément trop large ne doit jamais élargir la page (Chrome dézoomerait tout l’écran). */
html,body{overflow-x:clip}
/* Vue réaliste du panneau */
.view-switch{display:inline-flex;background:#e3e8e0;border-radius:8px;padding:2px;gap:2px}
.view-switch button{padding:4px 10px;font-size:12px;min-height:0;border:0;background:transparent;border-radius:6px;font-weight:700;color:#4f6b52}
.view-switch button.on{background:#fff;color:#183c32;box-shadow:0 1px 2px #0002}
.panel-area.real .panel-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.real-wrap{background:linear-gradient(180deg,#f3f5f2,#e6ebe4);border-radius:12px;padding:6px}
.panel-real{display:block;width:100%;height:auto;max-height:none;user-select:none}
.panel-real .rp-slot{cursor:pointer;outline:none}
.panel-real .rp-sel{opacity:0}
.panel-real .rp-slot:hover .rp-sel,.panel-real .rp-slot:focus .rp-sel{opacity:.55}
.panel-real .rp-slot.sel .rp-sel{opacity:1}
.panel-real .rp-slot.dim{opacity:.35}
.panel-real .rp-label{cursor:pointer}
.panel-area.real .panel-caption .check{letter-spacing:0;text-transform:none;font-size:13px;color:var(--ink);display:inline-flex;gap:6px;align-items:center}
/* Vue réaliste : pleine largeur quand les désignations sont affichées */
.workspace>.panel-area.real.wide{grid-column:1/-1}
.panel-real.with-labels .rp-label{font-family:inherit}
.panel-real .rp-target{fill:#7cc58a;fill-opacity:.3;stroke:#2f7048;stroke-width:2;stroke-dasharray:5 3;cursor:copy;animation:pa-pulse 1.4s ease-in-out infinite}
.plan-art .panel-caption{margin-bottom:6px}
.workspace>.span-all{grid-column:1/-1}
/* Équipe */
.team-row{padding:8px 0;border-bottom:1px solid #e3e8e1;gap:10px}.team-row:last-child{border-bottom:0}
.team-result{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.invite-link{word-break:break-all;background:#fff;padding:6px 8px;border-radius:6px;font-size:12px}
.container.narrow{max-width:640px}
.badge.shared{background:#e5eefb;color:#1f4f8f;margin:4px 0}

.update-dot{display:none;width:8px;height:8px;border-radius:50%;background:#c9944b;margin-left:8px}
[data-update] .menu .update-dot{display:inline-block}
[data-update] .user-menu>button{position:relative}
[data-update] .user-menu>button::after{content:"";position:absolute;top:2px;right:2px;width:10px;height:10px;border-radius:50%;background:#c9944b;border:2px solid #fff}

/* Grands écrans : l'application occupe presque toute la largeur et les panneaux sont illustrés plus grand. */
body.app .container{max-width:min(1760px,96vw)}
@media (min-width:1300px){
 .workspace .panel-art{max-width:900px}
 .workspace .cabinet{max-width:720px}
 .form-card{max-width:1100px}
}

/* Bureau : le panneau reste visible en entier pendant que la liste de droite défile. */
@media (min-width:981px){
 .workspace .plan-art .panel-real{max-height:calc(100vh - 300px);margin:0 auto}
 .workspace>.sticky-col{position:sticky;top:76px;max-height:calc(100vh - 88px);overflow:auto}
 .workspace>.sticky-col.span-all{position:static;max-height:none;overflow:visible}
 .workspace .panel-area.real .panel-real{max-height:calc(100vh - 240px);margin:0 auto}
 .workspace>.span-all .panel-area.real .panel-real{max-height:none}
}
.zoom-bar{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}
.view-switch button:disabled{opacity:.4}

/* Comparaison de panneaux */
.cmp-pick{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:end;margin-bottom:16px}
.cmp-pick select{width:100%}
.cmp-card,.cmp-pick{padding:16px}
.cmp-card{margin-bottom:16px}
.cmp-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.cmp-scroll{overflow-x:auto}
.cmp-table{width:100%;border-collapse:collapse;font-size:13px}
.cmp-table th,.cmp-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.cmp-table thead th{font-size:12px;color:var(--muted);font-weight:600}
.cmp-table tbody th{font-weight:500;color:var(--muted);white-space:nowrap}
.cmp-table tr.cmp-diff td,.cmp-table tr.cmp-diff th,.cmp-table tr.cmp-diff,.cmp-table tr.cmp-onlyA,.cmp-table tr.cmp-onlyB{background:#fbf5e8}
.cmp-table tr.cmp-diff td{font-weight:600}
.cmp-cell small{display:block;color:var(--muted)}
@media (max-width:720px){.cmp-pick{grid-template-columns:1fr}}

/* Suggestions de modèles */
.suggest{margin:12px 0;padding:12px;border:1px solid #cfe0d4;background:#eef5ef;border-radius:10px}
.suggest summary{font-weight:600;cursor:pointer}
.suggest .fields{margin:12px 0 8px}
.suggest .small.ok{color:#245c3a;font-weight:600}
.sug-item{display:flex;flex-direction:column;gap:6px;min-width:0}
.sug-cmp{justify-content:center}
.sug-compare{margin-top:14px}
.sug-compare h4{margin:0 0 8px}
.suggest .cmp-table{background:#fff;border-radius:8px}
.ai-table td.ai-label{min-width:230px}
.ai-grp{margin-top:4px;font-size:12px}
.ai-grp summary{cursor:pointer;color:var(--green);list-style:none}
.ai-grp summary::-webkit-details-marker{display:none}
.ai-grp summary.linked{font-weight:600;color:#245c3a}
.ai-grp-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}

/* Code QR du panneau */
.qr-box{display:grid;place-items:center;padding:8px}
.qr-box .qr-svg{width:min(280px,70vw);height:auto;border:1px solid var(--line);border-radius:8px}
.qr-url{width:100%;margin:8px 0;font-size:12px}
#qrPrint{display:none}
@media print{body>*:not(#qrPrint){display:none!important}#qrPrint{display:block!important;text-align:center;padding:24mm 12mm}#qrPrint svg{width:90mm;height:90mm}}

/* Affichage en liste (sites et panneaux) */
.cards-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}
.cards.list{grid-template-columns:1fr;gap:8px}
.cards.list .site-card{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:12px 18px}
.cards.list .site-card>:first-child{flex:1 1 260px;min-width:0}
.cards.list .site-card h2{font-size:17px}
.cards.list .site-card .chips{flex:1 1 220px}
.cards.list .site-card>.small{flex:0 0 auto;white-space:nowrap}
.cards.list .panel-card{display:grid;grid-template-columns:150px minmax(0,1fr) 140px minmax(0,220px);align-items:center;gap:8px 18px;padding:12px 18px}
.cards.list .panel-card h2{font-size:17px}
.cards.list .add-card{min-height:0;padding:12px}
@media (max-width:720px){.cards.list .panel-card{grid-template-columns:1fr}.cards.list .site-card{flex-direction:column;align-items:stretch}}

/* Étapes du projet */
.stage-bar{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;list-style:none;margin:0 0 10px;padding:0}
.stepper button{width:100%;display:flex;align-items:center;gap:10px;justify-content:flex-start;text-align:left;padding:8px 12px;border-radius:10px}
.stepper .n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--soft);font-weight:700;flex:none}
.stepper b{display:block;font-size:14px}.stepper small{display:block;color:var(--muted);font-size:11px}
.stepper li.on button{background:var(--ink);color:#fff;border-color:var(--ink)}
.stepper li.on .n{background:var(--lime);color:var(--ink)}.stepper li.on small{color:#cfe0d4}
.stage-hint{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.stage-actions{display:flex;flex-wrap:wrap;gap:8px}
.app-table td,.app-table th{vertical-align:middle}.app-table select{max-width:360px;width:100%}
.container-narrow{max-width:960px}
@media (max-width:720px){.stepper{grid-template-columns:1fr}}
.stage-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}
.stage-choice{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:16px;border-radius:12px;height:100%}
.stage-choice .ico{font-size:26px}.stage-choice b{font-size:16px}

/* Assistant de conception */
.design-appliances{display:grid;gap:8px;margin:12px 0}
.design-row{display:grid;grid-template-columns:1fr 80px 110px;gap:12px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.design-row .qty{width:80px;text-align:center}
.design-calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.design-calc>div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.design-calc b{display:block;font-size:22px}
.design-opts{display:grid;gap:8px;margin:8px 0 12px}
.design-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.design-opt.on{border-color:var(--green);background:#eef5ef}
.design-summary{margin:0 0 10px;padding-left:18px;line-height:1.7}
@media (max-width:720px){.design-row{grid-template-columns:1fr 70px}.design-row .small{display:none}}

/* Électroménagers : actions, avertissements discrets et tableau empilé sur mobile */
.app-actions{white-space:nowrap;text-align:right}
.app-warn{font-size:12px;color:#7d5a1f;margin-top:2px}
.app-warn .short,.app-notice .short{display:none}
@media (max-width:720px){
 .app-warn{font-size:10.5px}
 .app-warn .long,.app-notice .long{display:none}
 .app-warn .short,.app-notice .short{display:inline}
 .app-notice{font-size:11px;padding:6px 10px}
 .app-table,.app-table tbody{display:block}
 .app-table thead{display:none}
 .app-table tr{display:grid;grid-template-columns:1fr auto auto;gap:4px 8px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--line)}
 .app-table td{border:0;padding:0}
 .app-table td:nth-child(1){grid-column:1;grid-row:1}
 .app-table td:nth-child(2){grid-column:2;grid-row:1;font-size:13px}
 .app-table td:nth-child(4){grid-column:3;grid-row:1}
 .app-table td:nth-child(3){grid-column:1/-1;grid-row:2}
 .app-table select{font-size:12px;padding:6px 8px;max-width:none}
}
.app-model{color:#245c3a;font-weight:500}
@media (max-width:720px){.app-model{font-size:10.5px}}
.trip-table{margin:10px 0}.trip-table summary{cursor:pointer;font-weight:600;font-size:13px}.trip-table .cmp-table{margin:8px 0}
.lang-switch{font-weight:700;letter-spacing:.04em;padding:6px 10px;min-height:0;border:1px solid var(--line)}
/* Connexions externes (SSO) */
.sso{display:grid;gap:12px;margin-bottom:6px}
.sso-btns{display:grid;gap:8px}
.sso-btn{display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;min-height:44px;background:#fff;color:#1f1f1f;border:1px solid #dadce0;font-weight:500}
.sso-logo{flex:none}
.sso-or{display:flex;align-items:center;gap:10px;color:var(--muted,#6b7a72);font-size:13px}
.sso-or::before,.sso-or::after{content:'';flex:1;height:1px;background:currentColor;opacity:.25}
.sso-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0}
.sso-row b{min-width:90px}.sso-row .small{flex:1}
.todo{background:#fff3cd;color:#7a5a00;padding:0 4px;border-radius:3px}
/* Avancement du projet (indicateur) et boutons-liens */
button.link{background:none;border:0;padding:0;min-height:0;color:var(--green,#226a51);text-decoration:underline;font:inherit;cursor:pointer}
.stage-bar.compact{padding:10px 14px}
.stage-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.stage-label{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.stage-pills{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.stage-pills li{padding:4px 10px;border-radius:999px;background:var(--soft);font-size:13px;color:var(--muted)}
.stage-pills li.done{color:var(--ink)}.stage-pills li.done::before{content:'✓ '}
.stage-pills li.on{background:var(--ink);color:#fff;font-weight:600}
.stage-bar.compact .stage-hint{margin-top:6px}
.stage-opts{display:grid;gap:8px}
.stage-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.stage-opt small{display:block}
/* Formulaires progressifs : détails techniques repliés */
details.form-adv{border:1px dashed var(--line);border-radius:12px;padding:6px 12px;margin:10px 0}
details.form-adv>summary{cursor:pointer;padding:8px 0;font-weight:600;color:var(--ink)}
details.form-adv[open]>summary{margin-bottom:8px}
/* Navigation de travail (pros) et reprise du travail */
/* En-tête pleine largeur : logo à gauche, navigation de travail, chemin au centre, nom et langue à droite */
.topbar .container,body.app .topbar .container{width:auto;max-width:none;margin:0;padding:0 22px;gap:18px}
.topbar .brand{font-size:19px;gap:13px}
.topbar .brand-icon{width:48px;height:48px}
.worknav{display:flex;gap:4px;align-items:center;flex:none}
.worknav a{text-decoration:none;color:var(--muted);padding:8px 14px;border-radius:99px;font-weight:600;white-space:nowrap;min-height:38px;display:inline-flex;align-items:center}
.worknav a:hover{background:var(--soft);color:var(--ink)}
.worknav a.on{background:var(--ink);color:#fff}
.topbar .crumbs{justify-content:flex-start}
.topbar .crumbs>:first-child{margin-left:auto}.topbar .crumbs>:last-child{margin-right:auto}
@media (max-width:900px){.topbar .container{flex-wrap:wrap;height:auto;padding:8px 14px;gap:6px 10px}.topbar .brand{font-size:16px}.topbar .brand-icon{width:40px;height:40px}.worknav{order:10;flex-basis:100%;overflow-x:auto;scrollbar-width:none}.topbar .crumbs{justify-content:flex-start;min-width:0;flex:1}}
.resume{margin:0 0 22px}
.resume-title{font-size:15px;margin:0 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.resume-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.resume-card{display:grid;gap:4px;text-decoration:none;color:inherit;padding:14px 16px}
.resume-cta{color:var(--green,#226a51);font-weight:600;font-size:14px}
/* Recherche globale, nomenclature éditable, menu « Plus d'actions », éditeur latéral */
.global-search{display:flex;max-width:640px;margin:0 0 16px}
.global-search input{width:100%}
.result-list{display:grid;gap:8px;margin-bottom:20px}
.result{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;padding:10px 14px}
.result small{display:block}
.etable{display:grid;gap:4px}
.erow{display:grid;grid-template-columns:64px minmax(180px,2fr) minmax(110px,1fr) 130px 60px 76px;gap:8px;align-items:center;padding:4px 6px;border-radius:8px}
.erow.ehead{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase}
.erow input,.erow select{min-height:38px;width:100%}
.erow .pos{font-weight:700}
.erow.vacant{opacity:.6}
.more-menu .menu{right:0;left:auto}
/* (éditeur latéral : voir la section « Disposition d'édition » plus bas) */
@media (max-width:720px){.erow{grid-template-columns:48px 1fr 110px}.erow .amps,.erow.ehead span:nth-child(5),.erow.ehead span:nth-child(6){display:none}.erow>:nth-child(3){grid-column:2}.erow>:nth-child(4){grid-column:3;grid-row:1}.erow>button{grid-column:3}}
/* ---- Mobile : navigation courte, mode terrain, zones tactiles, état de sauvegarde ---- */
.save-state{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:40;margin:0;padding:6px 12px;border-radius:99px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 14px #0b241b22;font-size:13px}
.save-state.ok{color:var(--green,#226a51)}.save-state.fail{color:#a33;border-color:#e1b4b4}.save-state.busy{color:var(--muted)}
.tabs.tabs-3{display:grid;grid-template-columns:1fr 1fr 1fr;overflow:visible}
.tabs.tabs-3 button{min-height:48px;padding:8px 6px;white-space:normal;line-height:1.15}
.more-list{display:grid;gap:8px}
.more-list button{min-height:52px;text-align:left;font-size:16px;justify-content:flex-start}
.more-list button.on{background:var(--ink);color:#fff}
@media (max-width:720px){
 /* Zones tactiles : 44 à 48 px pour les commandes importantes */
 button,.btn,select,input:not([type=checkbox]):not([type=radio]):not([type=color]),.chip{min-height:44px}
 .btn.sm,button.sm,.tabs button,.billing-toggle button{min-height:44px}
 /* En-tête compact : étapes du projet sur une ligne, texte d'aide masqué */
 .stage-bar.compact{padding:8px 10px;margin-bottom:10px}
 .stage-bar.compact .stage-hint>.muted{display:none}
 .stage-pills li{padding:3px 8px;font-size:12px}
 .stage-label{display:none}
 /* Mode terrain : fiche circuit plein écran, désignation bien visible, gros bouton Enregistrer et suivant */
 dialog.circuit-dlg{inset:0;width:100vw!important;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
 dialog.circuit-dlg[open]{display:flex;flex-direction:column}
 dialog.circuit-dlg>form{display:flex;flex-direction:column;min-height:0;flex:1}
 dialog.circuit-dlg .dlg-body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch}
 dialog.circuit-dlg input[name=label]{font-size:20px;min-height:56px}
 dialog.circuit-dlg .dlg-foot{position:sticky;bottom:0;background:var(--card,#fff);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr;justify-content:stretch;gap:8px}
 dialog.circuit-dlg .dlg-foot .right{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:0}
 dialog.circuit-dlg .dlg-foot .right button{width:100%;justify-content:center}
 dialog.circuit-dlg .next-btn{grid-column:1/-1;order:-1;min-height:56px;font-size:17px;font-weight:700;background:var(--ink);color:#fff;border-color:var(--ink)}
 dialog.circuit-dlg .dlg-foot>button{width:100%}
 .save-state{left:50%;transform:translateX(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px))}
 body:has(dialog.circuit-dlg[open]) .save-state{display:none}
}
/* Mode hors ligne */
.offline-bar{position:sticky;top:0;z-index:60;background:#fff3cd;color:#6b4e00;border-bottom:1px solid #e6cf85;padding:8px 14px;font-size:14px;text-align:center}
/* Mode hors ligne */
.offline-bar{position:sticky;top:0;z-index:60;background:#fff3cd;color:#6b4e00;border-bottom:1px solid #e6cf85;padding:8px 14px;font-size:14px;text-align:center}
/* Corbeille et historique */
.trash-list{display:grid;gap:10px}
.trash-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;flex-wrap:wrap}
.history-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;min-height:260px}
.history-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;align-content:start;max-height:60vh;overflow:auto}
.history-list button{width:100%;display:grid;text-align:left;gap:2px;padding:8px 10px}
.history-list button.on{background:var(--ink);color:#fff}.history-list button.on small{color:#cfe0d4}
.diff-list{margin:8px 0;padding-left:18px;display:grid;gap:8px}
.diff-list ul{margin:4px 0;padding-left:18px}
@media (max-width:720px){.history-grid{grid-template-columns:1fr}.history-list{max-height:200px}}
.todo-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.todo-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:10px;border-left:4px solid #d0a04a}
.todo-list li.error{border-left-color:#a33}.todo-list li.warn{border-left-color:#d0a04a}
.todo-more{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;font-size:13px}
.demo-bar{position:sticky;top:0;z-index:60;background:#e4f7a8;color:#183c32;border-bottom:1px solid #c5dd7f;padding:8px 14px;font-size:14px;text-align:center}
.demo-bar a{color:inherit;font-weight:700}

/* ---- Disposition d'édition : panneau (≈ 60 %) + fiche (≈ 40 %), hauteur mesurée plutôt que décalages fixes ---- */
:root{--chrome-h:64px}
.topbar{top:var(--bars-h,0px)}
.offline-bar,.demo-bar{min-height:36px;box-sizing:border-box}
.stage-chip{display:inline-flex;align-items:center;min-height:0;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--soft);font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;vertical-align:middle}
span.stage-chip{cursor:default}
.panel-hero{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
dialog.side{position:fixed;inset:var(--chrome-h) 0 0 auto;margin:0;width:var(--side-w,clamp(360px,40vw,560px));height:calc(100dvh - var(--chrome-h));max-height:none;border-radius:14px 0 0 0;box-shadow:-10px 0 30px #0b241b30;z-index:15;overflow:hidden}
dialog.side[open]{display:flex;flex-direction:column}
dialog.side>form{display:flex;flex-direction:column;min-height:0;flex:1}
dialog.side .dlg-body{flex:1;overflow:auto;min-height:0}
dialog.side .dlg-foot{border-top:1px solid var(--line);background:var(--card,#fff);padding:10px 14px}
dialog.side .dlg-head{padding:12px 14px}
dialog.side .side-list{margin-right:6px;min-height:34px}
dialog.side .dlg-head{display:flex;align-items:center;gap:6px}
dialog.side .dlg-head>div:first-child{flex:1;min-width:0}
.side-grip{position:absolute;left:-5px;top:0;bottom:0;width:10px;cursor:col-resize;z-index:3;touch-action:none}
.side-grip::after{content:'';position:absolute;left:4px;top:calc(50% - 22px);height:44px;width:3px;border-radius:2px;background:#9aa89f;opacity:.6}
.side-grip:hover::after{opacity:1;background:var(--green,#226a51)}
body.has-side #view{padding-right:var(--side-w,clamp(360px,40vw,560px))}
body.has-side #view .container{max-width:none}
/* Pendant l'édition : en-tête compact, liste masquée (la fiche la remplace), le panneau occupe la hauteur disponible */
body.has-side .tabs,body.has-side .progress-line,body.has-side .page-head .sub,body.has-side .head-extra,body.has-side .page-actions>*:not(.more-menu){display:none}
body.has-side .page-head{margin-bottom:8px;align-items:center}
body.has-side .panel-hero h1{font-size:22px;margin:0}
body.has-side .workspace{grid-template-columns:minmax(0,1fr)}
body.has-side .workspace>section[aria-label="Liste des circuits"]{display:none}
body.has-side .workspace>.sticky-col{position:sticky;top:calc(var(--chrome-h) + 6px);max-height:calc(100dvh - var(--chrome-h) - 70px);overflow:auto}
body.has-side .workspace .panel-area.real .panel-real{max-height:calc(100dvh - var(--chrome-h) - 190px)}
body.has-side .cabinet{--row:clamp(8px,calc((100dvh - var(--chrome-h) - 390px) / var(--pos,24) - 2px),16px);max-width:none;padding:14px 14px}
body.has-side .cabinet .main-breaker{margin:8px 0}
body.has-side .cabinet .manufacturer{padding-bottom:6px}
body.has-side .cabinet .rail-labels{margin:6px 0 4px}
body.has-side .cabinet .panel-foot{margin-top:6px}
body.has-side .cabinet .manufacturer,body.has-side .cabinet .main-breaker{transform:none}
body.has-side .panel-area{padding:10px}
/* Circuit en cours d'édition : contour bleu, distinct des couleurs de statut */
.breaker.active{outline:3px solid #2f6fdd;outline-offset:1px;z-index:3;position:relative;box-shadow:0 0 0 5px #2f6fdd33}
.rp-slot.act,.pa-item.act{filter:drop-shadow(0 0 3px #2f6fdd) drop-shadow(0 0 3px #2f6fdd)}
.rp-slot.act rect,.pa-item.act rect{stroke:#2f6fdd;stroke-width:2.5}
/* Mobile : repère du circuit actif et de ses voisins au-dessus de la fiche */
.mini-strip{display:flex;gap:6px;align-items:stretch;overflow-x:auto;padding:0 0 10px;margin:0 0 8px;border-bottom:1px solid var(--line)}
.mini-cell{flex:0 0 auto;min-width:64px;max-width:96px;display:grid;gap:1px;text-align:left;padding:6px 8px;border:1px solid var(--line);border-left:4px solid #adb5a8;border-radius:8px;background:#fff}
.mini-cell small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.mini-cell.identified{border-left-color:#3f9a62}.mini-cell.unknown{border-left-color:#d0a04a}
.mini-cell.on{outline:3px solid #2f6fdd;outline-offset:0;background:#eef4ff}
.mini-panel{flex:0 0 auto;align-self:center;white-space:nowrap}
.panel-overlay .panel-real{max-height:62dvh;margin:0 auto}
dialog.side .dlg-foot{display:flex;flex-wrap:nowrap;align-items:center;gap:8px}
dialog.side .dlg-foot .right{display:flex;flex-wrap:nowrap;gap:6px;margin-left:auto}
dialog.side .dlg-foot button{padding:8px 12px;white-space:nowrap;min-height:40px}
.mini-panel{position:sticky;left:0;z-index:1;background:#fff}
@media (max-width:1100px){dialog.side .dlg-foot,dialog.side .dlg-foot .right{flex-wrap:wrap}dialog.side .dlg-foot .right{margin-left:0;width:100%}dialog.side .dlg-foot .right button{flex:1}}
/* Champs de charges adaptés à la largeur réelle de la fiche latérale */
dialog.side .load-row{grid-template-columns:1fr 1fr}
dialog.side .load-row>input:first-child{grid-column:1/-1}
dialog.side .load-kpis{grid-template-columns:repeat(2,1fr)}
/* Icônes SVG (remplacent les émojis en début de bouton/lien/titre) */
.ic{flex:none;vertical-align:-3px;margin-right:6px}
.has-ic{display:inline-flex;align-items:center}
.menu .has-ic{display:flex}
.tabs button.has-ic{display:inline-flex}
summary.has-ic{display:list-item}
summary.has-ic .ic{display:inline-block}
/* Fiche de circuit : sous-titres de sections, états harmonisés, aides discrètes */
.form-sub{margin:10px 0 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:4px}
.form-sub:first-child{margin-top:0}
.dirty-flag{font-size:12px;font-weight:600;color:#a36b00;background:#fff3cd;border:1px solid #e6cf85;border-radius:99px;padding:2px 10px;margin-left:6px;white-space:nowrap}
dialog.side .dlg-head .dirty-flag{display:inline-block;margin:4px 0 0}
/* Aides : visibles seulement quand le champ est actif (réduit la répétition dans la fiche latérale) */
dialog.side .f .hint{display:none;margin-top:3px}
dialog.side .f:focus-within .hint{display:block}
/* États : sélection (bleu), modification non enregistrée (ambre), succès (vert), erreur (rouge), lecture seule (gris) */
.notice.readonly,.badge.shared{background:#eef1ee;color:#4a574f}
.save-state.fail{background:#fdecec}
/* Logo complet (tracés, vraie police Manrope) ; le symbole seul remplace le logo sur petit écran */
.brand-logo{height:44px;width:auto;display:block}
.brand-sym{display:none;width:40px;height:40px}
.topbar .brand-logo{height:50px}
@media (max-width:720px){.brand-logo{display:none}.brand-sym{display:block}}
.brand{flex:none}.brand-logo,.brand-sym{flex:none;max-width:none}
/* Invitations reçues (remise au client) */
.invites{display:grid;gap:10px;margin:0 0 18px}
.invite-card{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border-left:4px solid #2f6fdd;background:#f3f7ff}
.avatar.has-badge{position:relative}
.avatar.has-badge::after{content:'';position:absolute;top:-2px;right:-2px;width:11px;height:11px;border-radius:50%;background:#d6473a;border:2px solid #fff}
/* Progression des analyses par IA */
.ai-progress{display:grid;gap:10px;width:min(560px,100%);margin:0 auto;text-align:left}
.ai-head{display:flex;justify-content:space-between;align-items:baseline}
.ai-pct{font-size:22px}
.ai-bar{height:10px;border-radius:99px;background:#dfe7dc;overflow:hidden}
.ai-bar>i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#1A4032,#8ABF92);transition:width .35s ease}
.ai-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ai-steps li{display:flex;gap:10px;align-items:center;color:var(--muted)}
.ai-steps .dot{width:14px;height:14px;border-radius:50%;border:2px solid #b7c3b6;flex:none}
.ai-steps li.on{color:var(--ink);font-weight:600}
.ai-steps li.on .dot{border-color:#2f6b4f;border-top-color:transparent;animation:spin 1s linear infinite}
.ai-steps li.done{color:var(--ink)}.ai-steps li.done .dot{background:#2f6b4f;border-color:#2f6b4f}
.ai-detail{min-height:1.3em;margin:0}
.ai-feed{max-height:170px;overflow:auto;display:grid;gap:2px;font-size:13px}
.ai-line{padding:2px 8px;border-left:3px solid #8ABF92;background:#f3f7f1;border-radius:4px;animation:aiIn .25s ease}
@keyframes aiIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.ai-prog-box:empty{display:none}.ai-prog-box{margin:10px 0}
/* Mobile : corrections UX (carte de charge, onglets, circuit relié, fil d'Ariane) */
.gauge .big{white-space:nowrap;flex:none;font-size:clamp(26px,9vw,34px)}
.gauge{flex-wrap:wrap}
.app-lbl{display:none}
.tabs.tabs-3 button{white-space:nowrap;min-width:0;padding:8px 4px;display:inline-flex;align-items:center;justify-content:center;gap:4px}
.tabs.tabs-3 button .ic{margin-right:0}
@media (max-width:720px){
 .app-lbl{display:block;font-size:12px;color:var(--muted);margin:6px 0 2px}
 .app-table select{text-overflow:ellipsis;font-size:15px}
 .cmp-head h2{font-size:22px;line-height:1.2}
 /* Fil d'Ariane : retour « ‹ » vers le parent et nom de la page courante en entier */
 .topbar .crumbs a{display:none}
 .topbar .crumbs i{display:none}
 .topbar .crumbs a:last-of-type{display:inline-flex;align-items:center;min-height:44px;min-width:32px;font-size:0;padding:0 6px;flex:none}
 .topbar .crumbs a:last-of-type::before{content:'‹';font-size:30px;line-height:1;color:var(--ink)}
 .topbar .crumbs span{flex:1 0 auto;min-width:0;font-size:15px;white-space:nowrap}
 .topbar .crumbs a:last-of-type{position:sticky;left:0;z-index:1;background:var(--card,#fbfcf8)}
}
/* Mobile : le profil, ses options et la langue passent dans un menu hamburger à gauche (plus de place pour le fil d'Ariane) */
.burger{display:none}
.menu .menu-lang{display:none}
@media (max-width:720px){
 .topbar .user-menu{order:-2}
 .topbar .brand{order:-1}
 .topbar .user-menu>button{padding:0;border:0;background:none;min-width:44px;min-height:44px;justify-content:center}
 .topbar .user-menu .avatar,.topbar .user-menu .uname{display:none}
 .topbar .user-menu .burger{display:inline-flex;position:relative;color:var(--ink)}
 .burger.has-badge::after{content:'';position:absolute;top:-1px;right:-1px;width:11px;height:11px;border-radius:50%;background:#d6473a;border:2px solid #fff}
 .topbar .user-menu .menu{left:0;right:auto;min-width:min(300px,88vw)}
 .menu .menu-lang{display:flex}
 .topbar .user-menu ~ .lang-switch{display:none}
}
/* Mobile connecté : le logo passe dans le menu (la barre garde hamburger + fil d'Ariane) */
.menu .menu-brand{display:none}
@media (max-width:720px){
 #topbar.has-menu .brand{display:flex;order:1;margin-left:auto;align-items:center}
 #topbar.has-menu .brand-sym{display:block;width:36px;height:36px}
 .menu .menu-brand{display:flex;align-items:center;padding:12px 14px 6px;border-bottom:1px solid var(--line);margin-bottom:4px}
 .menu .menu-brand img{height:34px;width:auto}
}
/* Tableaux larges : la première colonne (position du circuit, nom…) reste visible quand on défile horizontalement */
.table-wrap{-webkit-overflow-scrolling:touch}
.table-wrap table.data th:first-child,.table-wrap table.data td:first-child{position:sticky;left:0;z-index:2;background:#fff;box-shadow:2px 0 4px -2px #0b241b33}
.table-wrap table.data th:first-child{background:#f0f3ee;z-index:3}
.table-wrap table.data tr.click:hover td:first-child{background:#f5f8f3}
/* « overflow:hidden » sur le tableau l'empêchait de défiler avec sa première colonne figée : le conteneur défile à sa place */
.table-wrap{border-radius:12px}
.table-wrap table.data{overflow:visible;border-radius:0}
/* En-tête à trois zones (bureau) : le fil d'Ariane est centré sur la page, indépendamment de la largeur des côtés */
.tb-left,.tb-right{display:flex;align-items:center;gap:18px;min-width:0}
.tb-right{justify-content:flex-end;gap:14px}
@media (min-width:901px){
 .topbar .container,body.app .topbar .container{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}
 .topbar .crumbs{flex:none;max-width:min(50vw,760px)}
}
@media (max-width:900px){.tb-left,.tb-right{display:contents}}

/* Sélection multiple (sites / panneaux) */
.batch-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.6rem 0;padding:.6rem .8rem;border:1px solid var(--line,#d6dbe3);border-radius:10px;background:var(--panel,#f6f8fb)}
.cards.selecting .card{cursor:pointer;outline:2px dashed transparent}
.cards.selecting .card.selected{outline:2px solid #c0392b;background:rgba(192,57,43,.07)}
.cards.selecting .add-card{display:none}

.usage-chip{flex-wrap:wrap;border-radius:18px}
.usage-bar{flex:1 0 100%;height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.usage-bar i{display:block;height:100%;background:var(--brand,#1b4332);border-radius:99px}
.usage-bar.warn i{background:#d98e04}.usage-bar.full i{background:#c0392b}

/* « Plus d'actions » : le menu s'ouvre à gauche du bouton sur mobile pour ne pas sortir de l'écran */
@media (max-width:720px){
 .more-menu{position:relative}
 .more-menu .menu{left:0;right:auto;min-width:min(280px,calc(100vw - 32px));max-width:calc(100vw - 32px);z-index:60}
}

/* Hors ligne : actions qui exigent une connexion */
body.is-offline .needs-net{opacity:.45;pointer-events:none}
.save-state.pending{color:#8a5a00;border-color:#e6cf85;background:#fff8e1}
.conflict-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}
.conflict-title{font-weight:600;margin-bottom:6px}
.conflict-opt{display:flex;gap:8px;align-items:flex-start;padding:6px 4px;cursor:pointer}

/* Optimisation de la disposition */
.opt-opt{display:flex;gap:8px;align-items:flex-start;margin:8px 0}.opt-opt small{display:block}
.opt-table{width:100%;margin:8px 0}.opt-table .good{color:#226a51;font-weight:600}.opt-table .bad{color:inherit}
.opt-reco{font-weight:600}.opt-explain{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft,#f6f8fb)}
.opt-moves{max-height:180px;overflow:auto}

/* Glisser-déposer des disjoncteurs (vue réaliste) */
.panel-real.movable .rp-slot:not(.dim){cursor:grab;touch-action:none}
.panel-real .rp-slot.dragging{cursor:grabbing;opacity:.85;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45));pointer-events:none}
.panel-real .rp-drop{fill:rgba(42,216,246,.22);stroke:#2ad8f6;stroke-width:1.5;stroke-dasharray:4 2;pointer-events:none}
.panel-area.moving .real-wrap{outline:2px dashed #2ad8f6;outline-offset:3px;border-radius:6px}

/* Écran de chargement animé */
.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:60vh;padding:0}
.splash.compact{min-height:30vh}
.splash-logo{width:120px;height:120px;animation:splash-zoom 1.8s ease-in-out infinite;will-change:transform,opacity}
.splash.compact .splash-logo{width:56px;height:56px}
.splash-text{font-size:15px;letter-spacing:.04em;color:var(--muted)}
@keyframes splash-zoom{0%,100%{transform:scale(.88);opacity:.75}50%{transform:scale(1.1);opacity:1}}
@media (prefers-reduced-motion:reduce){.splash-logo{animation:none}}

/* Plein écran (application installée / native) : l'en-tête respecte l'encoche et la zone de caméra */
header.topbar{padding-top:env(safe-area-inset-top,0px)}

/* Mobile : espace sous la navigation Sites · Comparer · Équipe (les pastilles ne touchent plus le filet de l'en-tête) */
@media (max-width:900px){
 body.app .topbar .container,.topbar .container{padding-bottom:12px;height:auto;min-height:0}
 #worknav.worknav{margin-bottom:2px}
}

/* Fil d'Ariane : défile horizontalement quand il dépasse ; un fondu à droite signale qu'il y a une suite */
.crumbs.scrolls{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.crumbs.scrolls.at-end{-webkit-mask-image:none;mask-image:none}

/* Estimation des coûts */
.est-total{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft,#f6f8fb);margin-bottom:10px}
.est-total b{font-size:26px;color:var(--ink)}
.est-table td,.est-table th{vertical-align:top}.est-wait{text-align:center;padding:30px 0}

/* Écrans moyens (901–1399 px) : pas assez de place pour centrer le fil d'Ariane sans chevaucher la navigation → disposition souple */
@media (min-width:901px) and (max-width:1399px){
 .topbar .container,body.app .topbar .container{display:flex;gap:14px}
 .tb-left{flex:none}.tb-right{flex:none}
 .topbar .crumbs{flex:1;min-width:0;max-width:none}
}
