/* ===== Build360 — Design System ===== */
:root{
  --primary:#4f46e5; --primary-d:#4338ca; --primary-l:#eef2ff;
  --ink:#0f172a; --ink-2:#334155; --muted:#64748b; --muted-2:#94a3b8;
  --line:#e2e8f0; --line-2:#f1f5f9; --bg:#f6f7fb; --surface:#ffffff;
  --sidebar:#0f172a; --sidebar-2:#1e293b; --sidebar-ink:#cbd5e1; --sidebar-active:#4f46e5;
  --ok:#16a34a; --ok-l:#dcfce7; --warn:#d97706; --warn-l:#fef3c7;
  --danger:#dc2626; --danger-l:#fee2e2; --info:#0284c7; --info-l:#e0f2fe;
  --purple:#7c3aed; --purple-l:#ede9fe;
  --radius:14px; --radius-sm:10px; --shadow:0 1px 2px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.06);
  --shadow-sm:0 1px 2px rgba(15,23,42,.08); --sb-w:264px;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;height:auto;max-width:100%;overflow-x:hidden}
body{font-family:'Inter',system-ui,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}
#app{display:flex;min-height:100vh;max-width:100%;overflow-x:hidden}
button{font-family:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}

/* ===== Sidebar ===== */
.sidebar{width:var(--sb-w);background:var(--sidebar);color:var(--sidebar-ink);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:40;transition:transform .25s ease}
.sidebar__brand{display:flex;align-items:center;gap:12px;padding:18px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.brand__logo{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#6366f1,#4338ca);display:grid;place-items:center;color:#fff;font-weight:800;letter-spacing:.5px;font-size:14px;flex:none}
.brand__name{display:flex;flex-direction:column;line-height:1.15}
.brand__title{color:#fff;font-weight:700;font-size:15px}
.brand__sub{color:var(--muted-2);font-size:11px}
.sidebar__close{display:none;margin-left:auto;color:#fff}
.nav{flex:1;overflow-y:auto;padding:10px 10px 20px}
.nav__group{margin:14px 8px 6px;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:#64748b;font-weight:600}
.nav__item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--sidebar-ink);font-weight:500;font-size:13.5px;margin:2px 0;transition:background .15s,color .15s}
.nav__item:hover{background:var(--sidebar-2);color:#fff}
.nav__item.active{background:var(--sidebar-active);color:#fff;box-shadow:0 6px 16px rgba(79,70,229,.35)}
.nav__ico{width:20px;text-align:center;font-size:15px;flex:none}
.nav__badge{margin-left:auto;background:rgba(255,255,255,.12);color:#fff;border-radius:999px;font-size:10.5px;padding:1px 7px}
.nav__item.active .nav__badge{background:rgba(255,255,255,.25)}
.sidebar__footer{padding:12px 14px;border-top:1px solid rgba(255,255,255,.06)}
.env-pill{font-size:11px;color:var(--muted-2);background:var(--sidebar-2);border-radius:8px;padding:7px 10px;text-align:center}
.sidebar__footer #localDemoExit{width:100%;justify-content:center;margin-top:8px}
.backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:35}

/* ===== Main / Topbar ===== */
.main{flex:1;margin-left:var(--sb-w);display:flex;flex-direction:column;min-width:0;max-width:100%}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:12px 22px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.icon-btn{position:relative;border:1px solid var(--line);background:var(--surface);width:38px;height:38px;border-radius:10px;font-size:15px;color:var(--ink-2);display:grid;place-items:center}
.icon-btn:hover{background:var(--line-2)}
#sidebarToggle{display:none}
.topbar__project{display:flex;align-items:center;gap:8px}
.topbar__label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.select{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 12px;font-size:13.5px;font-weight:600;color:var(--ink);min-width:230px}
.topbar__search{flex:1;min-width:0}
.topbar__search input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 14px;font-size:13.5px}
.topbar__actions{display:flex;align-items:center;gap:10px}
.badge{position:absolute;top:-5px;right:-5px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;border-radius:999px;padding:1px 5px}
.user{display:flex;align-items:center;gap:10px;padding-left:6px}
.user__avatar{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#0ea5e9,#4f46e5);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.user__info{display:flex;flex-direction:column;line-height:1.2}
.user__name{font-weight:600;font-size:13px}
.user__role{font-size:11px;color:var(--muted)}

/* ===== Content ===== */
.content{padding:24px;max-width:1500px;width:100%;margin:0 auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.page-head__identity{display:flex;align-items:flex-start;gap:12px;min-width:0}
.page-back{align-self:flex-start;flex:none;padding:7px 10px;color:var(--ink-2);white-space:nowrap}
.page-back:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-l)}
.page-back__icon{width:16px;height:16px}
.page-title{font-size:22px;font-weight:800;letter-spacing:-.3px}
.page-sub{color:var(--muted);font-size:13.5px;margin-top:3px}
.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:6px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:9px 14px;font-size:13.5px;font-weight:600}
.btn:hover{background:var(--line-2)}
.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn--primary:hover{background:var(--primary-d)}

/* cards / grid */
.grid{display:grid;gap:16px}
.kpi-grid{grid-template-columns:repeat(4,1fr)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.card__head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line-2)}
.card__title{font-weight:700;font-size:14.5px}
.card__body{padding:18px}
.kpi{padding:18px;display:flex;flex-direction:column;gap:10px}
.kpi__top{display:flex;align-items:center;justify-content:space-between}
.kpi__ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:18px}
.kpi__label{color:var(--muted);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.kpi__val{font-size:28px;font-weight:800;letter-spacing:-.5px}
.kpi__trend{font-size:12px;font-weight:600}
.up{color:var(--ok)} .down{color:var(--danger)}
.bg-indigo{background:var(--primary-l);color:var(--primary)} .bg-green{background:var(--ok-l);color:var(--ok)}
.bg-amber{background:var(--warn-l);color:var(--warn)} .bg-red{background:var(--danger-l);color:var(--danger)}
.bg-blue{background:var(--info-l);color:var(--info)} .bg-purple{background:var(--purple-l);color:var(--purple)}

/* progress */
.progress{height:8px;background:var(--line-2);border-radius:999px;overflow:hidden}
.progress__bar{height:100%;background:linear-gradient(90deg,#6366f1,#4f46e5);border-radius:999px}
.bar-row{display:flex;align-items:center;gap:12px;margin:12px 0}
.bar-row__label{width:150px;font-size:13px;font-weight:500;flex:none}
.bar-row .progress{flex:1}
.bar-row__val{width:42px;text-align:right;font-weight:700;font-size:12.5px}

/* table */
.table-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;padding:11px 14px;color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line)}
.tbl td{padding:13px 14px;border-bottom:1px solid var(--line-2)}
.tbl tbody tr:hover{background:var(--line-2);cursor:pointer}
.tbl tbody tr:last-child td{border-bottom:none}

/* badges/status */
.tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}
.tag::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.t-ok{background:var(--ok-l);color:#15803d} .t-warn{background:var(--warn-l);color:#b45309}
.t-danger{background:var(--danger-l);color:#b91c1c} .t-info{background:var(--info-l);color:#0369a1}
.t-muted{background:#f1f5f9;color:#475569} .t-purple{background:var(--purple-l);color:#6d28d9}

/* alerts list */
.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-2)}
.list-row:last-child{border-bottom:none}
.dot{width:9px;height:9px;border-radius:50%;flex:none}
.mini{font-size:12px;color:var(--muted)}

/* hierarchy tree */
.tree{font-size:13.5px}
.tree__node{padding:7px 10px;border-radius:9px;display:flex;align-items:center;gap:9px}
.tree__node:hover{background:var(--line-2)}
.tree ul{list-style:none;margin:0;padding-left:20px;border-left:1px dashed var(--line)}
.tree>ul{padding-left:4px;border:none}
.chip{font-size:11px;color:var(--muted);background:var(--line-2);padding:1px 8px;border-radius:999px;margin-left:auto}

/* empty / placeholder */
.placeholder{display:grid;place-items:center;text-align:center;padding:60px 20px}
.placeholder__ico{font-size:46px;margin-bottom:12px}
.placeholder h3{margin:0 0 6px;font-size:18px}
.placeholder p{margin:0;color:var(--muted);max-width:460px}
.soon{margin-top:14px}

.cols-2{grid-template-columns:2fr 1fr}
.cols-3{grid-template-columns:repeat(3,1fr)}
.mt{margin-top:16px}

/* responsive */
@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.cols-2,.cols-3{grid-template-columns:1fr}}
@media (max-width:860px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .sidebar.open ~ .backdrop, .backdrop.show{display:block}
  .sidebar__close{display:grid}
  .main{margin-left:0}
  #sidebarToggle{display:grid}
  .topbar__search{display:none}
  .user__info{display:none}
  .select{min-width:150px}
}
@media (max-width:520px){.kpi-grid{grid-template-columns:1fr}.content{padding:16px}.page-head__identity{gap:9px}.page-back{width:38px;height:38px;padding:0;justify-content:center}.page-back span{display:none}}

/* ===== v0.2 — Composants interactifs ===== */
.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn--sm{padding:6px 11px;font-size:12.5px}
.avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#0ea5e9,#4f46e5);color:#fff;font-size:10.5px;font-weight:700;vertical-align:middle}
.avatar--xs{width:22px;height:22px;font-size:9.5px;border-radius:6px}

/* view toggle */
.viewtoggle{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.viewtoggle button{border:none;background:var(--surface);padding:7px 12px;font-size:13px;font-weight:600;color:var(--muted)}
.viewtoggle button.active{background:var(--primary);color:#fff}

/* filter bar */
.filterbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.fsearch{flex:1;min-width:200px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 13px;font-size:13.5px}
.fsel{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 11px;font-size:13px;font-weight:500;color:var(--ink-2)}

/* kanban */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(248px,1fr);gap:14px;overflow-x:auto;padding-bottom:8px}
.kcol{background:#eef1f6;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-height:120px}
.kcol__h{display:flex;align-items:center;gap:8px;padding:12px 14px;font-weight:600}
.kcount{margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:11px;padding:1px 8px;color:var(--muted)}
.kcol__b{padding:0 10px 12px;display:flex;flex-direction:column;gap:10px}
.kempty{color:var(--muted-2);font-size:12px;text-align:center;padding:10px}
.kcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .1s,box-shadow .1s}
.kcard:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.kcard__t{font-weight:600;font-size:13.5px;margin-bottom:8px;line-height:1.35}
.kcard__m{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:7px}
.kcard__f{margin-bottom:8px}
.kcard__b{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line-2);padding-top:8px}

/* drawer */
.drawer-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:60}
.drawer-backdrop.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:560px;max-width:94vw;background:var(--bg);box-shadow:-12px 0 40px rgba(15,23,42,.18);transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);z-index:61;display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer__head{background:var(--surface);border-bottom:1px solid var(--line);padding:18px 20px 0}
.drawer__eyebrow{font-size:11.5px;color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.drawer__titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:6px 0 10px}
.drawer__title{font-size:18px;font-weight:800;margin:0;line-height:1.3}
.drawer__meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.wf-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
.avanc{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-left:auto}
.avanc input[type=range]{width:110px}
.avanc b{color:var(--ink)}
.drawer__tabs{display:flex;align-items:stretch;gap:6px}
.dtab{border:none;background:transparent;padding:11px 13px;font-size:13px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer}
.dtab.active{color:var(--primary);border-bottom-color:var(--primary)}
.dtab--menu{display:flex;align-items:center;gap:7px;list-style:none}
.dtab--menu::-webkit-details-marker{display:none}
.drawer__more-menu{position:relative}
.drawer__more-menu__body{position:absolute;right:0;bottom:calc(100% + 6px);z-index:5;display:grid;min-width:190px;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow)}
.drawer__more-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:7px;background:transparent;padding:9px 10px;color:var(--ink-2);font-size:12px;font-weight:800;text-align:left;cursor:pointer}
.drawer__more-item:hover,.drawer__more-item.active{background:#fff7ed;color:#9a3412}
.drawer__more-item span{color:var(--primary);font-size:14px}
.drawer__body{flex:1;overflow-y:auto;padding:18px 20px}

/* Devis M1 : creation rapide locale, mobile d'abord */
.b360-quote-wizard{display:flex;flex-direction:column;gap:14px}
.b360-wizard-intro{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--primary-l);border:1px solid rgba(255,106,0,.22);border-radius:8px;color:var(--ink-2);font-size:13px;line-height:1.45}
.b360-wizard-intro b{color:var(--ink);font-size:14px}
.b360-wizard-steps{margin:0;padding:2px 0 6px}
.b360-wizard-section{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px}
.b360-wizard-section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.b360-wizard-section__head>div{display:flex;flex-direction:column;gap:3px}
.b360-wizard-section__head b{font-size:14px;color:var(--ink)}
.b360-wizard-section__head span:not(.tag):not(.mini){font-size:12px;color:var(--muted)}
.b360-wizard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.b360-wizard-grid__wide{grid-column:1/-1}
.b360-wizard-context{display:flex;flex-direction:column;gap:3px;padding:10px 12px;margin-bottom:12px;background:var(--bg);border-radius:8px;color:var(--muted);font-size:12px}
.b360-wizard-context b{color:var(--ink);font-size:13px}
.b360-wizard-context small{font-size:11px}
.b360-template-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 0;color:var(--muted);font-size:12px}
.b360-template-meta b{color:var(--ink)}
.b360-template-list{display:flex;flex-direction:column;gap:6px;max-height:290px;overflow:auto;padding-right:2px}
.b360-template-line{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:7px 8px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);cursor:pointer}
.b360-template-line:hover{border-color:var(--primary)}
.b360-template-line input{width:18px;height:18px;accent-color:var(--primary)}
.b360-template-line span{display:flex;flex-direction:column;gap:2px;min-width:0}
.b360-template-line b{font-size:12px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b360-template-line small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b360-wizard-empty{padding:14px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:12px;text-align:center}
.b360-wizard-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;background:var(--bg);border-radius:8px;font-size:12px;color:var(--muted)}
.b360-wizard-summary span{display:flex;flex-direction:column;gap:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.b360-wizard-summary b{font-size:11px;color:var(--muted-2);text-transform:uppercase}
.b360-wizard-actions{justify-content:space-between;margin-top:0}

/* M2 : grille de devis type Excel et base de prix locale */
.b360-quote-sheet,.b360-price-base{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(15,23,42,.06);overflow:hidden}
.b360-quote-sheet__toolbar,.b360-price-base__head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:#f8fafc}
.b360-quote-sheet__toolbar>div:first-child,.b360-price-base__head>div:first-child{display:grid;gap:3px;min-width:0}.b360-quote-sheet__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.b360-quote-sheet__summary{display:flex;gap:22px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:#fff}.b360-quote-sheet__summary span{display:grid;gap:2px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.04em}.b360-quote-sheet__summary b{color:var(--ink);font-size:14px;letter-spacing:0}.b360-quote-sheet__scroll,.b360-price-base__table{overflow:auto}.b360-quote-table,.b360-price-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;font-size:12px}.b360-quote-table th,.b360-price-table th{position:sticky;top:0;z-index:1;background:#0f172a;color:#fff;padding:9px 8px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.b360-quote-table td,.b360-price-table td{border-bottom:1px solid #e5e7eb;border-right:1px solid #eef2f7;padding:6px 7px;vertical-align:middle;background:#fff}.b360-quote-table tbody tr:hover td,.b360-price-table tbody tr:hover td{background:#f8fafc}.b360-quote-table tr.b360-line-hidden td{background:#f8fafc;color:#94a3b8}.b360-col-no{width:44px}.b360-col-code{width:120px}.b360-col-designation{width:310px}.b360-col-unit{width:72px}.b360-col-qty{width:80px}.b360-col-money{width:118px}.b360-col-total{width:120px}.b360-col-margin{width:86px}.b360-col-action{width:106px}.b360-cell-number{color:var(--muted);font-weight:900;text-align:center}.b360-cell-input{width:100%;min-height:32px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ink);padding:5px 6px;font:inherit;font-weight:700}.b360-cell-input:hover{border-color:#cbd5e1;background:#fff}.b360-cell-input:focus{outline:2px solid rgba(10,102,194,.22);border-color:var(--b360-blue);background:#fff}.b360-cell-input--code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#0a66c2}.b360-cell-input--number,.b360-cell-input--money{text-align:right}.b360-cell-total{white-space:nowrap;text-align:right}.b360-cell-margin{white-space:nowrap;font-weight:900;color:#047857}.b360-sheet-empty{padding:26px;text-align:center;color:var(--muted);font-weight:800}.b360-quote-sheet__hint{padding:9px 16px;color:var(--muted);font-size:11px;background:#f8fafc}.b360-price-base__head{background:#fff}.b360-price-base__tools{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:13px 16px;background:#f8fafc;border-bottom:1px solid var(--line)}.b360-price-base__tools label{display:grid;gap:5px;width:min(430px,100%);font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:900}.b360-price-base__tools input{min-height:38px}.b360-price-base__tools>span{color:var(--muted);font-size:12px;font-weight:800}.b360-price-table{min-width:980px}.b360-price-table th{background:#334155}.b360-price-table td{padding:9px 8px}.b360-price-base__footer{padding:11px 16px;color:var(--muted);font-size:11px;background:#f8fafc;border-top:1px solid var(--line)}
@media(max-width:760px){.b360-quote-sheet__toolbar,.b360-price-base__head{align-items:flex-start;flex-direction:column}.b360-quote-sheet__actions{justify-content:flex-start}.b360-quote-sheet__summary{gap:12px}.b360-quote-sheet__summary span{min-width:120px}}
.b360-price-base__actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.b360-price-base__actions .btn{white-space:nowrap}.b360-price-base__actions input[type=file]{display:none}@media(max-width:760px){.b360-price-base__actions{width:100%;margin-left:0}.b360-price-base__actions .btn{flex:1;justify-content:center}}
.b360-price-import-preview{margin:12px 16px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;overflow:hidden}.b360-price-import-preview__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #bfdbfe}.b360-price-import-preview__head>div{display:grid;gap:3px}.b360-price-import-preview__stats{display:flex;gap:18px;flex-wrap:wrap;padding:10px 14px;color:#1e3a8a;font-size:12px}.b360-price-import-preview__stats span{display:grid;gap:2px}.b360-price-import-preview__stats b{font-size:16px}.b360-price-import-preview__table{overflow:auto}.b360-price-import-preview__table .b360-price-table{min-width:760px}.b360-price-import-preview__actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid #bfdbfe}@media(max-width:760px){.b360-price-import-preview{margin:10px}.b360-price-import-preview__head{align-items:flex-start;flex-direction:column}.b360-price-import-preview__actions{justify-content:stretch}.b360-price-import-preview__actions .btn{flex:1;justify-content:center}}
.b360-margin-alert{display:flex;align-items:flex-start;gap:8px;margin:12px 16px 0;padding:10px 12px;border:1px solid #fcd34d;border-radius:7px;background:#fffbeb;color:#92400e;font-size:12px}.b360-margin-alert--danger{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.b360-cell-margin--ok{color:#047857}.b360-cell-margin--warn{color:#b45309;background:#fffbeb;font-weight:900}.b360-cell-margin--danger{color:#b91c1c;background:#fef2f2;font-weight:900}.b360-cell-margin--neutral{color:var(--muted)}
.b360-client-preview{display:grid;gap:12px}.b360-client-preview__actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.b360-client-paper{max-width:980px;margin:0 auto;background:#fff;border:1px solid #dbe3ec;box-shadow:0 16px 40px rgba(15,23,42,.1);padding:34px;color:#0f172a}.b360-client-header{display:flex;justify-content:space-between;gap:24px;padding-bottom:22px;border-bottom:2px solid #0f172a}.b360-client-brand{font-size:20px;font-weight:900}.b360-client-title{text-align:right}.b360-client-title h1{margin:0;font-size:28px;letter-spacing:.08em}.b360-client-title span{display:block;font-weight:900;color:#0a66c2}.b360-client-title small{display:block;margin-top:4px;color:#64748b}.b360-client-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px 0;border-bottom:1px solid #dbe3ec}.b360-client-meta div{display:grid;gap:4px}.b360-client-meta span,.b360-client-conditions span,.b360-client-totals span{color:#64748b;font-size:11px;text-transform:uppercase;font-weight:900}.b360-client-meta b{font-size:13px}.b360-client-table{width:100%;margin-top:24px;border-collapse:collapse;font-size:12px}.b360-client-table th{padding:10px 8px;text-align:left;background:#0f172a;color:#fff;font-size:10px;text-transform:uppercase}.b360-client-table td{padding:10px 8px;border-bottom:1px solid #e2e8f0}.b360-client-num{text-align:right;white-space:nowrap}.b360-client-bottom{display:grid;grid-template-columns:1fr 280px;gap:30px;margin-top:26px}.b360-client-conditions{display:grid;align-content:start;gap:7px;font-size:12px}.b360-client-conditions b{font-size:13px}.b360-client-totals{display:grid;gap:8px}.b360-client-totals>div{display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #e2e8f0}.b360-client-grand-total{padding:11px 0 0!important;border-bottom:0!important;border-top:2px solid #0f172a}.b360-client-grand-total b{font-size:18px}.b360-client-footer{margin-top:34px;padding-top:12px;border-top:1px solid #dbe3ec;color:#64748b;font-size:11px}@media(max-width:760px){.b360-client-paper{padding:18px}.b360-client-header{align-items:flex-start;flex-direction:column}.b360-client-title{text-align:left}.b360-client-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.b360-client-table{min-width:720px}.b360-client-bottom{grid-template-columns:1fr}.b360-client-preview{overflow:auto}}
@media print{@page{size:A4;margin:14mm}body.b360-printing-client{-webkit-print-color-adjust:exact;print-color-adjust:exact}body.b360-printing-client *{visibility:hidden!important}body.b360-printing-client .b360-client-preview,body.b360-printing-client .b360-client-preview *{visibility:visible!important}body.b360-printing-client .b360-client-preview{position:absolute;left:0;top:0;width:100%;margin:0!important}body.b360-printing-client .b360-client-preview__actions{display:none!important}body.b360-printing-client .b360-client-paper{max-width:none;margin:0;border:0;box-shadow:none;padding:20px}body.b360-printing-client .b360-client-header{break-after:avoid;page-break-after:avoid}body.b360-printing-client .b360-client-table{break-inside:auto;page-break-inside:auto}body.b360-printing-client .b360-client-table tr{break-inside:avoid;page-break-inside:avoid}body.b360-printing-client .b360-client-bottom,body.b360-printing-client .b360-client-footer{break-inside:avoid;page-break-inside:avoid}}
.b360-professional-table{min-width:980px}.b360-analysis-margin{font-weight:900;white-space:nowrap}.b360-analysis-margin--ok{color:#047857}.b360-analysis-margin--warn{color:#b45309}.b360-analysis-margin--danger{color:#b91c1c}.b360-analysis-margin--neutral{color:var(--muted)}

/* stepper */
.stepper{display:flex;align-items:center;gap:4px;margin:4px 0 2px;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:6px}
.step__dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:#e2e8f0;color:#64748b;flex:none}
.step__lbl{font-size:11.5px;color:var(--muted);font-weight:600}
.step__line{flex:1;min-width:8px;height:2px;background:#e2e8f0}
.step.done .step__dot{background:var(--ok);color:#fff}.step.done .step__lbl{color:var(--ink-2)}
.step.current .step__dot{background:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-l)}.step.current .step__lbl{color:var(--primary)}

/* fields */
.fields{display:flex;flex-direction:column}
.field{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-2)}
.field__l{color:var(--muted);font-size:12.5px;font-weight:600}
.field__v{font-size:13.5px;font-weight:500}

/* photos */
.tab-tools{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.thumb{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.thumb__img{height:96px;display:grid;place-items:center;font-size:30px;background:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 10px,#e9eef5 10px,#e9eef5 20px);border-bottom:3px solid var(--c)}
.thumb__cap{padding:8px 10px;font-size:12px;color:var(--ink-2)}

/* comments */
.cmt-box{display:flex;gap:8px;margin-bottom:16px}
.cmt-box input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 13px;font-size:13.5px}
.cmt-list{display:flex;flex-direction:column;gap:14px}
.cmt{display:flex;gap:11px}
.cmt__b{flex:1}
.cmt__h{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.cmt__h .mini{margin-left:auto}

/* timeline */
.timeline{position:relative;padding-left:8px}
.tl{display:flex;gap:12px;padding:0 0 16px;position:relative}
.tl__dot{width:11px;height:11px;border-radius:50%;background:var(--primary);margin-top:3px;flex:none;box-shadow:0 0 0 3px var(--primary-l)}
.tl:not(:last-child)::before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:2px;background:var(--line)}
.empty-sm{color:var(--muted);font-size:13px;text-align:center;padding:24px}

/* toasts */
.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:80}
.toast{display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:11px;font-size:13.5px;font-weight:500;box-shadow:0 10px 30px rgba(15,23,42,.3);transform:translateX(120%);opacity:0;transition:all .25s;max-width:360px}
.toast.show{transform:translateX(0);opacity:1}
.toast--ok{background:#15803d}.toast--warn{background:#b45309}.toast--danger{background:#b91c1c}

/* notif panel */
.notif-panel{position:fixed;top:64px;right:18px;width:360px;max-width:92vw;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);z-index:70;opacity:0;transform:translateY(-8px);pointer-events:none;transition:all .18s}
.notif-panel.show{opacity:1;transform:translateY(0);pointer-events:auto}
.notif__h{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.notif__l{max-height:60vh;overflow-y:auto}
.notif__i{display:flex;gap:11px;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.notif__i.unread{background:var(--primary-l)}
.notif__i .dot{margin-top:5px}

@media (max-width:560px){
  .field{grid-template-columns:1fr;gap:2px}.drawer{width:100%}
  .b360-wizard-grid{grid-template-columns:1fr}.b360-wizard-grid__wide{grid-column:auto}
  .b360-wizard-summary{grid-template-columns:1fr 1fr}.b360-wizard-summary span:last-child{grid-column:1/-1}
  .b360-wizard-actions{position:sticky;bottom:-18px;padding:12px 0 2px;background:var(--bg)}
}

/* ===== v0.3 — Graphiques, jauges, matrice rôles ===== */
.chart{width:100%;height:auto;display:block}
.chart .cx{font-size:9px;fill:var(--muted-2)}
.chart .cx2{font-size:9.5px;fill:var(--muted)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:middle}
.gauges{display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-start}
.gauge{text-align:center;width:130px}
.gauge .gval{font-size:20px;font-weight:800;fill:var(--ink)}
.gauge__l{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.3}
/* matrice permissions */
.matrix th{text-align:center}.matrix td.cperm{text-align:center;font-size:16px}
.matrix td:first-child,.matrix th:first-child{text-align:left}
.col-me{background:var(--primary-l)}
.perm{font-weight:700}.perm.full{color:var(--ok)}.perm.edit{color:var(--info)}.perm.view{color:var(--warn)}.perm.none{color:var(--muted-2)}

/* ===== v0.4 — QSE (sous-onglets, barre embarquée) ===== */
.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;margin-top:4px}
.subtabs button{border:none;background:transparent;padding:11px 14px;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.subtabs button:hover{color:var(--ink)}
.subtabs button.active{color:var(--primary);border-bottom-color:var(--primary)}
.board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}

/* ===== v0.5 — liens inter-modules ===== */
.link{color:var(--primary);font-weight:600;cursor:pointer;text-decoration:underline}

/* ===== v0.11 — IA ===== */
.ia-card{padding:18px;cursor:pointer;transition:transform .1s,box-shadow .1s}
.ia-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.ia-card__ico{font-size:30px;margin-bottom:8px}
.ia-out p{margin:8px 0}.ia-out ul{margin:6px 0;padding-left:18px;line-height:1.7}
.ia-msg,.ia-grid{line-height:1.6}
.ia-msg{background:var(--primary-l);border:1px solid #c7d2fe;border-radius:12px;padding:12px 14px;font-size:13.5px}
@media (max-width:1100px){.ia-grid{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.ia-grid{grid-template-columns:1fr}}

/* ===== v0.12 — Photos & annotation ===== */
.photo-card{overflow:hidden;cursor:pointer;padding:0;transition:transform .1s,box-shadow .1s}
.photo-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.photo-thumb{position:relative;height:150px;display:grid;place-items:center}
.photo-ico{font-size:34px;opacity:.5}
.photo-annbadge{position:absolute;top:8px;right:8px;background:rgba(15,23,42,.75);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}
.photo-meta{padding:12px 14px}
.photo-leg{font-weight:600;font-size:13.5px;line-height:1.35}
.photo-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.obs-card-text{margin:7px 0 0;color:var(--ink-2);font-size:12.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.photo-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:7px;margin-top:10px}
.photo-actions .btn,.photo-actions .btn.btn--sm{min-height:44px;padding:8px 10px}
.photo-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
.photo-form .auth-fld{display:grid;gap:5px;min-width:0}
.photo-form .cx-input{width:100%;min-width:0}
.photo-form--field .photo-form__auto{display:none}
.photo-form__wide,.photo-form__actions{grid-column:1/-1}
.photo-form__actions{display:flex;justify-content:flex-end}
.photo-form__advanced{border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:0 12px}
.photo-form__advanced summary{cursor:pointer;padding:12px 2px;color:var(--ink-2);font-weight:800;list-style:none}
.photo-form__advanced summary::-webkit-details-marker{display:none}
.photo-form__advanced summary::after{content:'+';float:right;color:var(--muted);font-size:18px;line-height:1}
.photo-form__advanced[open] summary{border-bottom:1px solid var(--line);margin-bottom:12px}
.photo-form__advanced[open] summary::after{content:'-'}
.photo-form__advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:12px}
.photo-form__advanced-grid .photo-form__wide{grid-column:1/-1}
.photo-geo,.photo-auto,.obs-ai{border:1px solid var(--line-2);border-radius:10px;background:#f8fafc;padding:10px}
.checkline{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink-2)}
.obs-ai__chips,.obs-detail-strip,.plan-photo-popup__tags{display:flex;gap:6px;flex-wrap:wrap}
.obs-chip,.plan-photo-popup__tags span{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}
.photo-detail-strip{display:flex;gap:8px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--line-2);background:#f8fafc}
.photo-detail-strip span{border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 8px;font-size:11.5px;font-weight:800;color:var(--ink-2)}
.obs-detail-strip{padding:10px 18px;border-bottom:1px solid var(--line-2);background:#fff}
.obs-detail-text{padding:10px 18px;border-bottom:1px solid var(--line-2);color:var(--ink-2);font-size:13px;line-height:1.45}
.pe__head-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.photo-qse-menu{position:relative}.photo-qse-menu>summary{list-style:none;cursor:pointer}.photo-qse-menu>summary::-webkit-details-marker{display:none}.photo-qse-menu__body{position:absolute;right:0;top:calc(100% + 6px);z-index:4;display:grid;gap:5px;min-width:190px;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow)}.photo-qse-menu__body .btn{justify-content:flex-start;width:100%;white-space:nowrap}
.photo-overlay{position:fixed;inset:0;background:rgba(15,23,42,.7);z-index:90;display:grid;place-items:center;padding:18px}
.pe{background:var(--surface);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.4);width:min(960px,96vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.pe__head{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.pe__toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line-2);background:var(--bg)}
.pe-tool{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 11px;font-size:13px;font-weight:600;color:var(--ink-2)}
.pe-tool.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pe-colors{display:inline-flex;gap:5px;margin:0 4px}
.pe-color{width:24px;height:24px;border-radius:7px;border:2px solid var(--line);cursor:pointer}
.pe-color.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--primary-l)}
.pe__canvas{padding:14px 18px;overflow:auto;display:grid;place-items:center}
.pe__canvas canvas{max-width:100%;border-radius:10px;box-shadow:var(--shadow-sm);cursor:crosshair}

/* ===== v0.13 — Plans ===== */
.plans-layout{display:grid;grid-template-columns:280px 1fr;gap:16px}
.plans-side .card__body{max-height:70vh;overflow-y:auto}
.plan-item{padding:10px 12px;border-radius:10px;cursor:pointer;border:1px solid transparent;margin-bottom:4px}
.plan-item:hover{background:var(--line-2)}
.plan-item.active{background:var(--primary-l);border-color:#c7d2fe}
.plan-item__t{font-weight:600;font-size:13.5px}
.pl-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pl-tool{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 10px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.pl-tool.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pl-obs-filter{min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:6px 9px;font-size:12.5px;font-weight:700;color:var(--ink-2)}
.plan-canvas-wrap{display:grid;place-items:center;overflow:hidden}
.plan-photo-popup{position:fixed;z-index:120;width:min(380px,calc(100vw - 24px));display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.22);padding:10px}
.plan-photo-popup__close{position:absolute;right:8px;top:7px;border:0;background:transparent;color:var(--muted);font-size:18px;font-weight:900;cursor:pointer}
.plan-photo-popup__thumb{height:86px;border-radius:9px;background:#e2e8f0 center/cover no-repeat;display:grid;place-items:center;font-size:24px;color:#64748b}
.plan-photo-popup__body{min-width:0;display:grid;gap:5px;padding-right:14px}
.plan-photo-popup__body strong{font-size:13.5px;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}
.plan-photo-popup__body p{margin:0;color:var(--ink-2);font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.plan-photo-popup__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:3px}
.plan-photo-popup__actions .btn,.plan-photo-popup__actions .btn.btn--sm{min-height:42px;padding:7px 9px}
@media (max-width:900px){.plans-layout{grid-template-columns:1fr}}
@media (max-width:640px){
  .photo-form{grid-template-columns:1fr}
  .photo-form__advanced-grid{grid-template-columns:1fr}
  .photo-actions{grid-template-columns:1fr}
  .pe{width:100%;height:100%;max-height:100%;border-radius:0}
  .pe__head{gap:10px;flex-direction:column}
  .pe__head-actions{justify-content:flex-start}
  .photo-qse-menu__body{position:static;margin-top:6px;min-width:0}
  .pe__toolbar{gap:7px;padding:10px}
  .pe-tool,.pl-tool{min-height:40px}
  .plans-side{display:none}
  .plan-photo-popup{left:12px!important;right:12px!important;top:auto!important;bottom:12px;width:auto;grid-template-columns:82px minmax(0,1fr);max-height:75vh;overflow:auto}
  .plan-photo-popup__actions{grid-template-columns:1fr}
}

/* ===== v1.1 — Planning / Gantt ===== */
.gantt{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.gantt__scroll{overflow-x:auto;max-height:62vh;overflow-y:auto}
.grow{display:flex;border-bottom:1px solid var(--line-2);min-height:42px}
.grow.ghead{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.glabel-wrap{flex:none;position:sticky;left:0;z-index:4;background:var(--surface);border-right:1px solid var(--line);padding:6px 12px;display:flex;align-items:center}
.ghead .glabel-wrap{background:var(--bg)}
.glabel{min-width:0}
.gname{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.gcrit{color:var(--danger)}
.gtrack{position:relative;flex:none}
.ghead-track{display:flex;align-items:center}
.gmonth{flex:none;font-size:10.5px;color:var(--muted);border-left:1px solid var(--line-2);padding:6px 4px;white-space:nowrap}
.gbar{position:absolute;top:9px;height:22px;background:#cbd5e1;border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm)}
.gbar--crit{outline:2px solid var(--danger);outline-offset:0}
.gbar__fill{height:100%;border-radius:6px}
.gbar__fill.r-ok{background:#16a34a}.gbar__fill.r-mid{background:#d97706}.gbar__fill.r-high{background:#dc2626}
.gblock{position:absolute;right:2px;top:2px;font-size:11px}
.gbase{position:absolute;top:6px;height:28px;width:2px;background:#64748b;opacity:.6}
.gmile{position:absolute;top:8px;color:var(--purple);font-size:18px;line-height:22px}
.gmile.late{color:var(--danger)}
.gmile-lbl{position:absolute;top:12px;font-size:10.5px;color:var(--muted);white-space:nowrap}
.gtoday{position:absolute;top:0;bottom:0;width:2px;background:var(--ok);opacity:.7;z-index:2}
.gtoday--head{z-index:6}
.gtoday-lbl{position:absolute;top:2px;font-size:9.5px;color:var(--ok);font-weight:700}

/* ===== v1.4 — Connecteurs documentaires ===== */
.cx-grid{align-items:start}
.cx-card{padding:0;overflow:hidden}
.cx-card__h{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.cx-ico{font-size:26px}
.cx-card__b{padding:14px 16px}
.cx-input{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px}
.cx-security-note{display:flex;gap:10px;align-items:center;border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:12px;padding:12px 14px;font-size:13px;font-weight:800;margin:14px 0}
.cx-security-note .ui-svg{width:18px;height:18px;flex:0 0 auto}
.cx-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.cx-provider-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);padding:15px;display:grid;gap:12px;min-width:0}
.cx-provider-card__top{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start}
.cx-provider-card__top>span,.cx-form-head>span{width:42px;height:42px;border-radius:12px;background:var(--primary-l);color:var(--primary);display:grid;place-items:center}
.cx-provider-card__top h3{margin:0;color:var(--ink);font-size:16px}.cx-provider-card__top p{margin:3px 0 0;color:var(--muted);font-size:12px}
.cx-provider-card__meta{display:flex;gap:7px;flex-wrap:wrap}.cx-provider-card__meta span{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:11.5px;font-weight:800;color:var(--ink-2)}
.cx-provider-card__actions{display:flex;gap:8px;flex-wrap:wrap}
.cx-form-head{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:12px}.cx-form-head b{display:block;color:var(--ink)}.cx-form-head small{color:var(--muted)}
.cx-storage-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(150px,.7fr) minmax(180px,1fr);gap:10px;align-items:center;border-top:1px solid var(--line-2);padding:10px 0}
.cx-storage-row:first-child{border-top:0}.cx-storage-row b{display:block;color:var(--ink)}.cx-storage-row small{display:block;color:var(--muted);font-size:12px}
.cx-routing-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}
.cx-offline-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cx-offline-item{display:flex;gap:10px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;font-weight:800;color:var(--ink)}
.profile-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
@media (max-width:1000px){.cx-grid{grid-template-columns:1fr}}

/* ===== v1.5 — Administration SaaS ===== */
.switch{position:relative;display:inline-block;width:40px;height:22px}
.switch input{display:none}
.switch span{position:absolute;cursor:pointer;inset:0;background:#cbd5e1;border-radius:999px;transition:.2s}
.switch span:before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked+span{background:var(--primary)}
.switch input:checked+span:before{transform:translateX(18px)}
.plan-grid{grid-template-columns:repeat(4,1fr)}
.plan-card{padding:0}.plan-card--active{outline:2px solid var(--primary)}
.plan-price{font-size:22px;font-weight:800;margin:8px 0}.plan-price span{font-size:12px;color:var(--muted);font-weight:500}
.plan-feats{list-style:none;margin:8px 0 14px;padding:0;font-size:12.5px;line-height:1.9;color:var(--ink-2)}
/* organigramme (CSS org chart) */
.orgtree{padding:14px;text-align:center;min-width:max-content}
.orgtree ul{padding-top:20px;position:relative;display:flex;justify-content:center;gap:8px;margin:0;list-style:none}
.orgtree li{list-style:none;position:relative;padding:20px 8px 0;text-align:center}
.orgtree li::before,.orgtree li::after{content:"";position:absolute;top:0;right:50%;border-top:2px solid var(--line);width:50%;height:20px}
.orgtree li::after{right:auto;left:50%;border-left:2px solid var(--line)}
.orgtree li:only-child::after,.orgtree li:only-child::before{display:none}
.orgtree li:first-child::before,.orgtree li:last-child::after{border:0 none}
.orgtree li:last-child::before{border-right:2px solid var(--line);border-radius:0 6px 0 0}
.orgtree li:first-child::after{border-radius:6px 0 0 0}
.orgtree ul ul::before{content:"";position:absolute;top:0;left:50%;border-left:2px solid var(--line);width:0;height:20px}
.org-box{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;box-shadow:var(--shadow-sm);text-align:left}
.org-nom{font-weight:600;font-size:12.5px;white-space:nowrap}
.org-role{font-size:11px;color:var(--muted);white-space:nowrap}
@media (max-width:1100px){.plan-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== v1.6 — Onboarding ===== */
.ob{position:fixed;inset:0;z-index:100;display:flex;background:var(--bg)}
.ob__rail{width:280px;flex:none;background:var(--sidebar);color:#cbd5e1;padding:22px 20px;display:flex;flex-direction:column}
.ob__brand{display:flex;align-items:center;gap:10px;color:#fff;margin-bottom:24px}
.ob__steps{display:flex;flex-direction:column;gap:4px;flex:1}
.ob__step{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;font-size:13px;color:#94a3b8}
.ob__step span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#1e293b;font-size:11px;font-weight:700;flex:none}
.ob__step.active{background:#1e293b;color:#fff}.ob__step.active span{background:var(--primary);color:#fff}
.ob__step.done{color:#cbd5e1}.ob__step.done span{background:var(--ok);color:#fff}
.ob__rail-foot{color:#64748b;margin-top:14px}
.ob__main{flex:1;display:flex;flex-direction:column;min-width:0}
.ob__content{flex:1;overflow-y:auto;padding:40px 48px;max-width:900px;width:100%;margin:0 auto}
.ob__content h2{font-size:24px;font-weight:800;margin:0 0 6px}
.ob-sub{color:var(--muted);margin:0 0 20px}
.ob__nav{display:flex;justify-content:space-between;padding:16px 48px;border-top:1px solid var(--line);background:var(--surface)}
.ob-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ob-field{display:flex;flex-direction:column;gap:5px}
.ob-field label{font-size:12px;font-weight:600;color:var(--ink-2)}
.ob-input{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:14px;font-family:inherit;width:100%}
.ob-check{display:flex;align-items:center;gap:8px;margin:16px 0 6px;font-size:13.5px}
.ob-role{display:flex;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}
.ob-role__ico{font-size:42px}
.ob-list{margin:8px 0 12px;padding-left:18px;line-height:1.8}
.ob-plans{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ob-plan{border:2px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;background:var(--surface);transition:.12s}
.ob-plan:hover{border-color:#c7d2fe}.ob-plan.sel{border-color:var(--primary);box-shadow:0 8px 22px rgba(79,70,229,.18)}
.ob-plan__n{font-weight:700}.ob-plan__p{font-size:20px;font-weight:800;margin:6px 0}.ob-plan__p span{font-size:11px;color:var(--muted);font-weight:500}
.ob-plan__f{list-style:none;margin:10px 0 0;padding:0;font-size:12px;line-height:1.8;color:var(--ink-2)}
.ob-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ob-opt{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer}
.ob-opt.sel{border-color:var(--primary);background:var(--primary-l)}.ob-opt b{margin-left:auto}
.ob-pay-cycle{display:flex;gap:8px;margin-bottom:14px}
.ob-card-cc{background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;border-radius:14px;padding:18px;margin-bottom:10px}
.ob-cc-num{font-size:18px;letter-spacing:2px;margin:14px 0 10px}
.ob-cc-row{display:flex;justify-content:space-between;font-size:12px;color:#cbd5e1}
.ob-summary{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}
.ob-sum-row{display:flex;justify-content:space-between;padding:7px 0;font-size:13.5px;border-bottom:1px solid var(--line-2)}
.ob-ttc{font-size:16px;font-weight:800;border-bottom:none;padding-top:10px}
.ob-invite{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px}
.ob-conns{display:flex;flex-direction:column;gap:10px}
.ob-conn{display:flex;align-items:center;gap:12px;border:2px solid var(--line);border-radius:12px;padding:14px;cursor:pointer}
.ob-conn.sel{border-color:var(--primary);background:var(--primary-l)}.ob-conn__i{font-size:24px}
.ob-logo{display:flex;align-items:center;gap:10px;font-size:28px}
.ob-success{text-align:center;padding:30px}
.ob-success__ico{font-size:60px}
.ob-recap{list-style:none;display:inline-block;text-align:left;margin:18px auto;padding:0;line-height:2.2;font-size:14.5px}
@media (max-width:820px){.ob__rail{display:none}.ob-grid2,.ob-opts{grid-template-columns:1fr}.ob-plans{grid-template-columns:1fr 1fr}.ob__content{padding:24px}}

/* ===== v1.7 — Éditeur / Légal / Facturation ===== */
.appfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 24px;border-top:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--muted)}
.appfoot__links{display:flex;gap:14px;flex-wrap:wrap}
.appfoot__links a{cursor:pointer;color:var(--muted)}.appfoot__links a:hover{color:var(--primary);text-decoration:underline}
.legal-doc{line-height:1.7;max-width:820px}
.legal-doc h3{margin:0 0 10px}.legal-doc p{margin:10px 0}
.wl-swatch{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);vertical-align:middle;display:inline-block}

/* ===== v1.8 — Backoffice Super Admin ===== */
.sa-gate{display:grid;place-items:center;padding:30px 0}
.sa-gate__card{max-width:440px;width:100%}

/* logo image (Build360) */
.brand__logo--img{padding:0;background:none;object-fit:contain}

/* ===== Écran d'authentification (chaleureux) ===== */
.auth-ov{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);opacity:0;transition:opacity .22s}
.auth-ov.show{opacity:1}
.auth-card{position:relative;display:grid;grid-template-columns:1.05fr 1fr;width:min(940px,96vw);max-height:94vh;overflow:hidden;background:var(--surface);border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.35);transform:translateY(14px) scale(.99);transition:transform .25s cubic-bezier(.4,0,.2,1)}
.auth-ov.show .auth-card{transform:none}
.auth-aside{position:relative;padding:38px 34px;color:#fff;background:linear-gradient(150deg,#4f46e5 0%,#4338ca 45%,#0f172a 100%);display:flex;flex-direction:column;gap:18px;overflow:hidden}
.auth-aside::after{content:"";position:absolute;right:-70px;bottom:-70px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.07)}
.auth-aside::before{content:"";position:absolute;left:-50px;top:-50px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.06)}
.auth-aside>*{position:relative;z-index:1}
.auth-aside__logo{display:flex;align-items:center;gap:12px}
.auth-aside__logo .lg{width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-weight:800;font-size:20px}
.auth-aside h2{font-size:25px;font-weight:800;margin:6px 0 2px;line-height:1.25}
.auth-aside p{color:#dbe1ff;font-size:13.5px;line-height:1.55;margin:0}
.auth-feat{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:13px}
.auth-feat li{display:flex;gap:11px;align-items:flex-start;font-size:13px}
.auth-feat .fi{flex:none;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:15px}
.auth-feat b{color:#fff;font-weight:700}
.auth-panel{padding:36px 36px;overflow-y:auto}
.auth-toggle{display:inline-flex;background:var(--line-2);border-radius:12px;padding:4px;gap:4px;margin-bottom:22px}
.auth-toggle button{border:none;background:transparent;color:var(--muted);font-weight:700;font-size:13.5px;padding:8px 20px;border-radius:9px;cursor:pointer;transition:.15s}
.auth-toggle button.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}
.auth-h{font-size:22px;font-weight:800;margin:0 0 4px;color:var(--ink)}
.auth-sub{color:var(--muted);font-size:13.5px;margin:0 0 20px;line-height:1.5}
.auth-fld{margin-bottom:15px}
.auth-fld label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.auth-inp{width:100%;border:1.5px solid var(--line);border-radius:11px;padding:12px 14px;font-size:14.5px;font-family:inherit;transition:.15s;background:#fff;color:var(--ink)}
.auth-inp:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-l)}
.auth-cta{width:100%;border:none;border-radius:11px;padding:13px;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#6366f1,#4338ca);cursor:pointer;transition:.15s;box-shadow:0 10px 22px rgba(79,70,229,.28);margin-top:4px}
.auth-cta:hover{filter:brightness(1.07)}
.auth-cta:disabled{opacity:.6;cursor:default;box-shadow:none}
.auth-alt{margin-top:18px;font-size:13px;color:var(--muted);text-align:center}
.auth-alt a{color:var(--primary);font-weight:700;cursor:pointer}
.auth-link{background:none;border:none;color:var(--primary);font-size:12.5px;font-weight:600;cursor:pointer;padding:4px 0 0}
.auth-msg{border-radius:10px;padding:11px 13px;font-size:13px;font-weight:500;margin-bottom:16px;line-height:1.45}
.auth-msg.danger{background:var(--danger-l);color:#991b1b}
.auth-msg.warn{background:var(--warn-l);color:#92400e}
.auth-msg.ok{background:var(--ok-l);color:#166534}
.auth-x{position:absolute;top:14px;right:14px;border:none;background:var(--line-2);color:var(--ink-2);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:13px;display:grid;place-items:center}
.auth-x:hover{background:var(--line)}
@media(max-width:760px){.auth-card{grid-template-columns:1fr}.auth-aside{display:none}.auth-panel{padding:30px 24px}}

/* ===== Profil + Jumeau numerique intelligent ===== */
.profile-summary{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.profile-avatar{width:58px;height:58px;border-radius:14px;background:linear-gradient(135deg,var(--primary),#ff7b1f);color:#fff;display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 12px 24px rgba(252,76,2,.20)}
.profile-summary h2{margin:0 0 4px;font-size:22px;color:var(--ink)}
.profile-summary p{margin:0;color:var(--muted)}
.profile-summary__chips{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.profile-summary__chips span,.profile-form__note{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700;color:var(--ink-2)}
.profile-toolbar,.profile-section__head,.dt-section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.profile-toolbar{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-sm)}
.profile-toolbar b{display:block;font-size:18px}.profile-toolbar span,.profile-section__head span,.dt-section__head span{color:var(--muted);font-size:12.5px;font-weight:700}
.profile-section,.dt-section{margin-top:18px}
.profile-section__head h3,.dt-section__head h3{margin:0;color:var(--ink);font-size:19px}
.profile-catalog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.profile-catalog__item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:15px;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);transition:.15s;display:grid;gap:7px;color:var(--ink)}
.profile-catalog__item:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--primary)}
.profile-catalog__item.is-used{background:var(--primary-l);border-color:#ffd2bd}
.profile-catalog__item span{width:36px;height:36px;border-radius:10px;background:#fff0e8;color:var(--primary);display:grid;place-items:center}
.profile-catalog__item b{font-size:13.5px}.profile-catalog__item small{color:var(--muted)}
.conn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}
.conn-card,.dt-cat,.dt-rec{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm)}
.conn-card{padding:16px;display:grid;gap:12px}
.conn-card__top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.conn-card__icon{width:42px;height:42px;border-radius:12px;background:var(--primary-l);color:var(--primary);display:grid;place-items:center}
.conn-card__top b{display:block;color:var(--ink);font-size:15px}
.conn-card__meta{display:flex;gap:8px;flex-wrap:wrap}.conn-card__meta span{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:11.5px;font-weight:700;color:var(--ink-2)}
.conn-card__result{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--line-2);border-radius:12px;padding:11px 12px;display:grid;gap:3px}.conn-card__result span,.conn-card__result small{color:var(--muted)}
.conn-card__actions{display:flex;gap:8px;flex-wrap:wrap}
.conn-status{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;white-space:nowrap}
.conn-status i{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.conn-status--ok{background:var(--ok-l);color:var(--ok)}.conn-status--warn{background:var(--warn-l);color:var(--warn)}.conn-status--danger{background:var(--danger-l);color:var(--danger)}.conn-status--muted{background:var(--bg);color:var(--muted)}
.profile-form .drawer__actions{margin-top:16px}.profile-form__note{display:inline-block;margin-top:12px;border-radius:10px}
.dt-score-hero{display:grid;grid-template-columns:260px 260px 1fr;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);margin:14px 0 18px}
.dt-gauge{display:flex;align-items:center;gap:15px}.dt-gauge__ring{width:132px;height:132px;border-radius:50%;background:conic-gradient(var(--primary) 0deg,var(--primary) var(--score),#e5e7eb var(--score),#e5e7eb 360deg);display:grid;place-items:center;box-shadow:inset 0 0 0 10px #fff,0 12px 28px rgba(15,23,42,.08)}
.dt-gauge__ring span{width:92px;height:92px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:24px;font-weight:900;color:var(--ink)}
.dt-gauge b,.dt-score-copy h2{color:var(--ink)}.dt-gauge small{display:block;color:var(--muted);font-weight:700;margin-top:4px}
.dt-score-copy h2{font-size:24px;margin:6px 0 8px}.dt-score-copy p{margin:0;color:var(--ink-2);line-height:1.55;max-width:660px}
.dt-radar{display:grid;place-items:center}.dt-radar__svg{width:230px;height:230px}.dt-radar__svg circle,.dt-radar__svg line{fill:none;stroke:#dbe3ea;stroke-width:1}.dt-radar__svg polygon{fill:rgba(252,76,2,.18);stroke:var(--primary);stroke-width:3}.dt-radar__svg text{font-size:10px;font-weight:800;fill:var(--muted);text-anchor:middle}
.dt-cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.dt-cat{padding:14px;display:grid;gap:10px}.dt-cat__top{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center}.dt-cat__top span{width:34px;height:34px;border-radius:10px;background:#fff0e8;color:var(--primary);display:grid;place-items:center}.dt-cat strong{font-size:18px;color:var(--ink)}.dt-cat p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.dt-rec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.dt-rec{padding:14px;display:flex;gap:11px;align-items:flex-start;border-left:4px solid var(--primary)}.dt-rec>span{color:var(--primary);background:var(--primary-l);width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none}.dt-rec b{color:var(--ink)}.dt-rec p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.dt-rec--ok{border-left-color:var(--ok);color:var(--ok)}
.bmi-scope{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 18px}.bmi-scope button{border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:999px;padding:8px 13px;font-weight:800;font-size:12.5px;box-shadow:var(--shadow-sm)}.bmi-scope button.active{background:#fc4c02;border-color:#fc4c02;color:#fff;box-shadow:0 12px 28px rgba(252,76,2,.24)}
.bmi-hero{display:grid;grid-template-columns:190px 280px 1fr;gap:22px;align-items:center;margin:14px 0 18px;padding:22px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff 0%,#f8fafc 62%,#fff5ef 100%);box-shadow:0 18px 45px rgba(15,23,42,.09)}
.bmi-gauge{width:164px;height:164px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#fc4c02 0deg,#fc4c02 var(--score),#e5e7eb var(--score),#e5e7eb 360deg);box-shadow:inset 0 0 0 13px #fff,0 18px 42px rgba(252,76,2,.16);color:var(--ink);justify-self:center}.bmi-gauge span{font-size:38px;font-weight:900;line-height:1}.bmi-gauge small{font-size:14px;font-weight:900;color:#fc4c02;margin-top:-36px}
.bmi-hero__copy h2{margin:7px 0 8px;color:var(--ink);font-size:26px;line-height:1.15}.bmi-hero__copy p{margin:0;max-width:720px;color:var(--ink-2);font-size:14.5px;line-height:1.65}
svg.bmi-radar{width:250px;height:250px;filter:drop-shadow(0 12px 18px rgba(15,23,42,.08))}svg.bmi-radar circle,svg.bmi-radar line{fill:none;stroke:#d8e1eb;stroke-width:1}svg.bmi-radar polygon{fill:rgba(252,76,2,.18);stroke:#fc4c02;stroke-width:3}svg.bmi-radar text{font-size:10px;font-weight:900;fill:var(--ink-2);text-anchor:middle}svg.bmi-radar circle:last-child{fill:#fc4c02;stroke:#fff;stroke-width:2}
.bmi-cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px}.bmi-cat{padding:16px;background:#fff;border:1px solid #dce4ee;border-radius:14px;box-shadow:0 10px 28px rgba(15,23,42,.08);display:grid;gap:11px}.bmi-cat__top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.bmi-cat__top span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff0e8;color:#fc4c02}.bmi-cat__top b{font-size:14.5px;color:var(--ink)}.bmi-cat__top strong{font-size:22px;color:var(--ink);font-weight:900}.bmi-cat__weak{font-size:12.5px;font-weight:800;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 10px}.bmi-measures{display:flex;flex-wrap:wrap;gap:7px}.bmi-measures span{background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:5px 8px;color:var(--muted);font-size:11.5px;font-weight:700}.bmi-measures b{color:var(--ink)}
.bmi-trend{height:210px;display:flex;align-items:end;gap:10px;padding:8px 4px 0}.bmi-trend__item{flex:1;min-width:42px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bmi-trend__item i{width:100%;max-width:44px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#fc4c02,#4f46e5);box-shadow:0 10px 18px rgba(79,70,229,.18)}.bmi-trend__item b{font-size:12px;color:var(--ink)}.bmi-trend__item span{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}
.bmi-goal{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line-2)}.bmi-goal:first-child{padding-top:0}.bmi-goal:last-child{border-bottom:0;padding-bottom:0}.bmi-goal>div b{display:block;color:var(--ink)}.bmi-goal>div span{display:block;margin-top:2px;color:var(--muted);font-size:12px}.bmi-goal strong{font-weight:900;color:#fc4c02}.bmi-goal .dt-meter__bar{grid-column:1/-1}.bmi-goal .btn{grid-column:1/-1;width:max-content}
.bmi-recs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.bmi-rec{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;background:#fff;border:1px solid #dce4ee;border-left:5px solid #fc4c02;border-radius:14px;padding:15px;box-shadow:0 12px 30px rgba(15,23,42,.08)}.bmi-rec>span{width:36px;height:36px;border-radius:12px;background:#fff0e8;color:#fc4c02;display:grid;place-items:center}.bmi-rec b{display:block;color:var(--ink);line-height:1.35}.bmi-rec small{display:block;margin-top:5px;color:var(--muted);font-weight:700}
.bmi-sites{display:grid;gap:10px}.bmi-site{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.bmi-site b{color:var(--ink)}.bmi-site span{color:var(--muted);font-size:12px}.bmi-site strong{width:44px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef2ff;color:var(--primary);font-weight:900}
.bmi-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 16px}.bmi-tabs button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:12px;padding:10px 13px;font-weight:900;font-size:13px;box-shadow:var(--shadow-sm)}.bmi-tabs button.active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 14px 28px rgba(15,23,42,.18)}.bmi-tabs .ui-svg{width:16px;height:16px}.bmi-hero--intelligence{background:linear-gradient(135deg,#fff 0%,#f8fafc 55%,#fff3eb 100%)}.bmi-level{display:inline-flex;align-items:center;gap:10px;margin-top:14px;border-radius:999px;padding:9px 12px;font-size:12.5px;font-weight:900;border:1px solid var(--line);background:#fff}.bmi-level b{color:var(--ink)}.bmi-level span{color:var(--muted)}.bmi-level--ok{border-color:#86efac;background:#f0fdf4}.bmi-level--good{border-color:#bfdbfe;background:#eff6ff}.bmi-level--warn{border-color:#fde68a;background:#fffbeb}.bmi-level--low,.bmi-level--danger{border-color:#fecaca;background:#fff1f2}.bmi-cat__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.bmi-cat__meta small{font-size:11px;color:var(--muted);font-weight:800}.bmi-trend-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11.5px;font-weight:900;border:1px solid var(--line)}.bmi-trend-pill--ok{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.bmi-trend-pill--danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}.bmi-trend-pill--warn{background:#fffbeb;color:#b45309;border-color:#fed7aa}.bmi-trend-pill--muted{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.bmi-findings{display:grid;gap:10px}.bmi-finding{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);border-left:5px solid #94a3b8}.bmi-finding b{display:block;color:var(--ink)}.bmi-finding span,.bmi-finding small{display:block;color:var(--muted);font-size:12px;line-height:1.45;margin-top:2px}.bmi-finding strong{width:38px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff7ed;color:#fc4c02;font-weight:900}.bmi-finding--danger{border-left-color:#ef4444}.bmi-finding--warn{border-left-color:#f59e0b}.bmi-finding--muted{border-left-color:#94a3b8}.bmi-recs--rich{grid-template-columns:repeat(2,minmax(0,1fr))}.bmi-rec--rich p{margin:7px 0 0;color:var(--ink-2);line-height:1.45}.bmi-rec__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.bmi-stars{font-size:14px;color:#fc4c02;white-space:nowrap;letter-spacing:0}.bmi-rec__meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.bmi-rec__meta small{margin:0;background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:5px 8px}.bmi-rec__benefit{margin-top:10px;border-radius:10px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;padding:9px 10px;font-size:12.5px;font-weight:800}.bmi-report-card{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);padding:16px}.bmi-report-card h3{margin:4px 0 6px;color:var(--ink)}.bmi-report-card p{margin:0;color:var(--ink-2);line-height:1.5}.bmi-report-card strong{display:block;font-size:30px;color:#fc4c02;line-height:1}.bmi-report-card small{display:block;margin-top:5px;color:var(--muted);font-weight:800;text-align:right}.bmi-summary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bmi-summary-list div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;box-shadow:var(--shadow-sm)}.bmi-summary-list b{display:block;font-size:24px;color:var(--ink)}.bmi-summary-list span{display:block;margin-top:4px;color:var(--muted);font-size:12.5px;font-weight:800}
.conn-status--ok i{background:var(--ok)}.conn-status--warn i{background:var(--warn)}.conn-status--danger i{background:var(--danger)}.conn-status--muted i{background:var(--muted)}
.b360-fin-tabs{display:flex;gap:8px;overflow-x:auto;margin:4px 0 16px;padding-bottom:2px}.b360-fin-tabs button{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:12px;padding:10px 13px;font-weight:900;font-size:13px;white-space:nowrap;box-shadow:var(--shadow-sm);cursor:pointer}.b360-fin-tabs button.active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 14px 28px rgba(15,23,42,.18)}.b360-fin-tabs .ui-svg{width:16px;height:16px}.b360-est-selector{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow-sm)}.b360-est-selector label{font-size:12px;font-weight:900;color:var(--muted);text-transform:uppercase}.b360-est-selector select{min-width:min(420px,100%)}.b360-est-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.b360-est-card{cursor:pointer;transition:.15s}.b360-est-card.active{outline:2px solid #fc4c02;box-shadow:0 16px 34px rgba(252,76,2,.14)}.b360-est-card__top{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.b360-est-card__top b,.b360-est-card h3{color:var(--ink)}.b360-est-card__top small,.b360-est-card p,.b360-card-foot{color:var(--muted);font-size:12.5px}.b360-est-card h3{margin:14px 0 6px;font-size:16px;line-height:1.25}.b360-est-card p{margin:0 0 12px}.b360-est-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#fff0e8;color:#fc4c02}.b360-money-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line-2);font-size:13px}.b360-money-row span{color:var(--muted);font-weight:800}.b360-money-row strong{color:var(--ink)}.b360-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.b360-import-drop{display:grid;place-items:start;gap:12px;border:1px dashed #f7b58f;background:linear-gradient(135deg,#fff 0%,#fff7ed 100%);border-radius:14px;padding:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.b360-import-drop h3{margin:0;color:var(--ink)}.b360-import-drop p{margin:0;color:var(--ink-2);line-height:1.5}.b360-import-ico{width:38px;height:38px;color:#fc4c02}.b360-import-rules{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.b360-import-rules b{width:100%;color:var(--ink)}.b360-import-rules span{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 9px;color:var(--muted);font-size:12px;font-weight:800}.b360-issues{display:grid;gap:8px;margin-top:14px}.b360-issue{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#fff;font-weight:800;color:var(--ink-2);box-shadow:var(--shadow-sm)}.b360-issue .ui-svg{width:17px;height:17px;flex:none}.b360-issue--danger{border-color:#fecaca;background:#fff1f2;color:#be123c}.b360-issue--warn{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.b360-issue--ok{border-color:#bbf7d0;background:#f0fdf4;color:#047857}.b360-progress{height:8px;min-width:120px;background:#e5e7eb;border-radius:999px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:8px}.b360-progress i{display:block;height:100%;background:linear-gradient(90deg,#fc4c02,#0a66c2);border-radius:999px}.b360-row-strong td{background:#f8fafc;font-weight:900;color:var(--ink)}.b360-tree{display:grid;gap:6px}.b360-tree-node,.b360-tree-line{display:grid;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);padding:11px 12px;margin-left:calc(var(--lvl) * 18px)}.b360-tree-node{grid-template-columns:1fr auto;border-left:5px solid #fc4c02}.b360-tree-node b{color:var(--ink)}.b360-tree-node span{font-weight:900;color:#fc4c02}.b360-tree-line{grid-template-columns:90px 1fr 100px 120px;border-left:5px solid #dbeafe}.b360-tree-line b{color:var(--ink)}.b360-tree-line span,.b360-tree-line em{font-style:normal;color:var(--muted);font-size:12px}.b360-tree-line strong{text-align:right;color:var(--ink)}.b360-fin-bars{display:grid;gap:15px}.b360-bar-row>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px}.b360-bar-row b{color:var(--ink)}.b360-bar-row span{color:var(--muted);font-weight:800}.b360-export-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.b360-export{border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;padding:16px;box-shadow:var(--shadow-sm);display:grid;gap:8px;color:var(--ink);cursor:pointer}.b360-export:hover{border-color:#fc4c02;box-shadow:var(--shadow)}.b360-export .ui-svg{width:24px;height:24px;color:#fc4c02}.b360-export b{font-size:14px}.b360-export span{color:var(--muted);font-size:12.5px;line-height:1.4}.b360-empty{display:grid;gap:5px;padding:26px;text-align:center}.b360-empty b{color:var(--ink);font-size:16px}.b360-empty span{color:var(--muted)}
@media(max-width:1120px){.dt-score-hero,.bmi-hero{grid-template-columns:1fr 1fr}.dt-score-copy,.bmi-hero__copy{grid-column:1/-1}.profile-catalog{grid-template-columns:repeat(2,1fr)}.dt-cat-grid,.bmi-cat-grid{grid-template-columns:repeat(2,1fr)}.bmi-recs{grid-template-columns:1fr}}
@media(max-width:1120px){.b360-est-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.b360-export-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.b360-tree-line{grid-template-columns:70px 1fr 80px 100px}}
@media(max-width:760px){.profile-summary{align-items:flex-start;flex-direction:column}.profile-summary__chips{margin-left:0}.conn-grid,.cx-provider-grid,.cx-offline-grid,.profile-settings-grid,.dt-rec-list,.dt-cat-grid,.bmi-cat-grid,.bmi-recs,.profile-catalog,.dt-score-hero,.bmi-hero,.bmi-summary-list,.b360-est-grid,.b360-export-grid{grid-template-columns:1fr}.cx-provider-card__top{grid-template-columns:42px minmax(0,1fr)}.cx-provider-card__top .tag{grid-column:1/-1;width:max-content}.cx-storage-row{grid-template-columns:1fr}.conn-card__top{grid-template-columns:auto 1fr}.conn-status{grid-column:1/-1;width:max-content}.bmi-gauge{width:142px;height:142px}.bmi-hero{padding:16px}svg.bmi-radar{width:220px;height:220px}.bmi-site,.bmi-report-card,.bmi-finding{grid-template-columns:1fr}.bmi-report-card small{text-align:left}.bmi-tabs button{flex:1;justify-content:center}.b360-tree-node,.b360-tree-line{margin-left:0}.b360-tree-line{grid-template-columns:1fr}.b360-tree-line strong{text-align:left}.b360-fin-tabs button{flex:1;justify-content:center}.b360-est-selector select{width:100%}}

/* ===== UX Cockpit Terrain 2.0 / Zero training ===== */
:root{--b360-accent:#fc4c02;--b360-blue:#0a66c2;--b360-soft:#f8fafc;--b360-yellow:#f59e0b}
.nav-primary,.nav-more{display:grid;gap:4px}.nav-more{display:none;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.nav-more.open{display:grid}.nav-svg,.ui-svg{width:18px;height:18px}.nav__item--plus{width:100%;border:0;text-align:left;background:transparent}.nav__item--plus.active{background:var(--sidebar-2);color:#fff}
.topbar{min-height:64px}.topbar__actions{position:relative}.topbar__user-menu{border:0;background:transparent;border-radius:12px;padding:4px 6px}.topbar__user-menu:hover{background:#f1f5f9}.user-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:45;width:min(310px,calc(100vw - 24px));display:none;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 60px rgba(15,23,42,.2);padding:12px}.user-menu.open{display:grid;gap:10px}.user-menu__link{display:flex;align-items:center;min-height:40px;border-radius:10px;padding:0 10px;font-weight:800;color:var(--ink)}.user-menu__link:hover{background:#f8fafc}.user-menu .topbar__project{display:grid;gap:5px}.user-menu .select{width:100%;min-width:0}.user-menu .btn{justify-content:center;width:100%}
.today-zero{display:grid;gap:18px}.today-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;background:#fff;border-radius:18px;padding:22px 24px;box-shadow:0 16px 36px rgba(15,23,42,.07)}.today-kicker{margin:0 0 4px;color:var(--b360-accent);font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.today-hero h1{margin:0;font-size:clamp(26px,4vw,42px);line-height:1.05;color:var(--ink);letter-spacing:0}.today-hero p{margin:8px 0 0;color:var(--muted);font-weight:700}.today-context{display:grid;gap:3px;min-width:190px;background:#f8fafc;border-radius:14px;padding:12px 14px}.today-context span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.today-context b{color:var(--ink);font-size:14px}.today-list{display:grid;gap:12px;max-width:980px}.today-action{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;background:#fff;border:1px solid transparent;border-left:5px solid var(--b360-blue);border-radius:16px;padding:14px 16px;box-shadow:0 10px 28px rgba(15,23,42,.07);min-height:78px}.today-action--danger{border-left-color:#dc2626}.today-action--warn{border-left-color:var(--b360-yellow)}.today-action--normal{border-left-color:var(--b360-blue)}.today-action__icon{width:44px;height:44px;border-radius:14px;background:#eef6ff;color:var(--b360-blue);display:grid;place-items:center;font-weight:900}.today-action--danger .today-action__icon{background:#fff1f2;color:#dc2626}.today-action--warn .today-action__icon{background:#fffbeb;color:#b45309}.today-action__icon:before{content:attr(data-symbol)}.today-action__copy strong{display:block;font-size:17px;line-height:1.22;color:var(--ink)}.today-action__btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:12px;background:#0f172a;color:#fff;font-weight:900;padding:0 16px}
.ux-cockpit{display:grid;gap:18px}.ux-cockpit__hero{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#fff;border-radius:20px;padding:22px 24px;box-shadow:0 16px 40px rgba(15,23,42,.08)}.ux-cockpit__hero span{color:var(--b360-accent);font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:.08em}.ux-cockpit__hero h2{margin:5px 0 0;font-size:clamp(24px,3.4vw,38px);line-height:1.08;letter-spacing:0}.ux-cockpit__pulse{width:92px;height:92px;border-radius:24px;display:grid;place-items:center;background:#0f172a;color:#fff}.ux-cockpit__pulse b{font-size:28px;line-height:1}.ux-cockpit__pulse small{font-size:11px;text-transform:uppercase;font-weight:900;opacity:.75}.ux-cockpit__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr) minmax(0,.9fr);gap:16px;align-items:start}.ux-panel{background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 34px rgba(15,23,42,.07)}.ux-panel header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.ux-panel header>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff0e8;color:var(--b360-accent)}.ux-panel h2{margin:0;font-size:17px;color:var(--ink)}.ux-panel p{margin:2px 0 0;color:var(--muted);font-size:12px;font-weight:800}.ux-panel header a{margin-left:auto;color:var(--b360-blue);font-weight:900;font-size:12px}.ux-panel__body{display:grid;gap:10px}.ux-action{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;background:#f8fafc;border-left:4px solid var(--b360-blue);border-radius:14px;padding:11px}.ux-action--urgent{border-left-color:#dc2626;background:#fff7f7}.ux-action--info{border-left-color:#94a3b8}.ux-action__icon{width:36px;height:36px;border-radius:11px;background:#fff;display:grid;place-items:center;color:var(--b360-blue)}.ux-action__body{min-width:0}.ux-action__body span{display:block;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:900;letter-spacing:.06em}.ux-action__body h3{display:flex;flex-wrap:wrap;gap:3px;margin:2px 0 0;color:var(--ink);font-size:14px;line-height:1.25}.ux-action__body h3 strong{margin-right:2px;white-space:nowrap}.ux-action__body p{margin:3px 0 0;font-size:12px;color:var(--muted);line-height:1.35}.ux-action__btn{grid-column:1/-1;justify-content:center;width:100%;white-space:nowrap}.ux-event{display:grid;grid-template-columns:44px 34px minmax(0,1fr);align-items:center;gap:9px;padding:10px;border-radius:13px;background:#f8fafc}.ux-event__time{font-size:12px;font-weight:900;color:var(--muted)}.ux-event__icon{width:32px;height:32px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--b360-accent)}.ux-event__body{display:grid;gap:1px;min-width:0}.ux-event__body b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ux-event__body small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ux-alerts{gap:9px}.ux-alert{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;border-radius:13px;background:#f8fafc;padding:11px}.ux-alert span{width:32px;height:32px;border-radius:10px;background:#fff;display:grid;place-items:center}.ux-alert b{font-size:13px}.ux-alert strong{font-weight:900;color:var(--ink)}.ux-alert--urgent{background:#fff1f2;color:#be123c}.ux-alert--normal{background:#fffbeb;color:#92400e}.ux-alert--info{background:#f8fafc;color:#475569}.ux-empty{padding:18px;text-align:center;color:var(--muted);font-weight:800}
.af-empty--action{display:grid;gap:10px;justify-items:center;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:16px;padding:30px 18px;color:var(--muted);font-weight:800}.af-empty--action b{color:var(--ink);font-size:16px}.af-empty--action span{max-width:440px}.af-empty__actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:4px}
.af-shell{display:grid;gap:12px;margin-bottom:16px}.af-shell--field .af-project{display:none}.af-trail,.sp-breadcrumb{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;background:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 8px 22px rgba(15,23,42,.06)}.af-trail::-webkit-scrollbar,.sp-breadcrumb::-webkit-scrollbar{display:none}.af-trail__seg,.sp-bc__item{white-space:nowrap;color:var(--muted);font-size:12px;font-weight:800}.af-trail__seg.strong,.sp-bc__item.strong b{color:var(--ink)}.af-trail__sep,.sp-bc__sep{color:#cbd5e1}.sp-bc__item{display:grid;gap:1px;min-width:max-content}.sp-bc__item small{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#94a3b8}.sp-bc__item b{font-size:12px;color:#334155}.af-project{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;gap:12px;align-items:center;background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 8px 22px rgba(15,23,42,.06)}.af-project__main span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:900}.af-project__main strong{font-size:22px}.af-project__bar{height:9px;border-radius:999px;background:#e5e7eb;overflow:hidden}.af-project__bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--b360-accent),var(--b360-blue))}.af-project__stats{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.af-project__stats span{font-size:11.5px;font-weight:800;color:#475569;background:#f1f5f9;border-radius:999px;padding:5px 8px}.af-actions{background:#fff;border-radius:16px;padding:14px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.af-actions__label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900;margin-bottom:10px}.af-actions__grid{display:flex;gap:9px;overflow-x:auto;padding-bottom:2px}.af-action{display:inline-flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap;border-radius:12px;background:#f8fafc;color:var(--ink);font-weight:900;padding:0 12px}.af-action.active,.af-action:hover{background:#0f172a;color:#fff}.af-action__icon{display:grid;place-items:center;width:24px;height:24px}
.b360-apple-simple .nav__badge{display:none}.b360-apple-field .page-head{margin-bottom:10px}.b360-apple-field .today-zero{gap:12px}.b360-apple-field .today-hero,.b360-apple-field .today-action,.b360-apple-field .af-actions,.b360-apple-field .af-trail--field,.b360-apple-field .photo-card{box-shadow:none}.b360-apple-field .today-hero{border-radius:22px;padding:22px;background:#fff}.b360-apple-field .today-context{background:transparent;padding:0;min-width:0}.b360-apple-field .today-context span{letter-spacing:0;text-transform:none}.b360-apple-field .today-action{border:0;border-left:0;border-radius:20px;min-height:82px}.b360-apple-field .today-action__icon{border-radius:18px}.b360-apple-field .today-action__btn{border-radius:16px;min-height:46px}.b360-apple-field .af-trail--field{background:transparent;padding:0;border-radius:0;gap:6px}.b360-apple-field .af-actions{background:transparent;padding:0}.b360-apple-field .af-actions__label{text-transform:none;letter-spacing:0;color:var(--ink);font-size:15px}.b360-apple-field .af-actions__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;overflow:visible}.b360-apple-field .af-action{min-height:52px;background:#fff;border-radius:18px;white-space:normal;box-shadow:none;justify-content:flex-start}.b360-apple-field .filterbar{display:none}.b360-apple-field .photo-card{border-color:transparent;border-radius:20px}.b360-apple-field .photo-actions .btn{border-radius:14px}
.sp-shell{display:grid;gap:14px}.sp-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}.sp-explorer{min-width:0}.sp-explorer__details{background:#fff;border-radius:16px;box-shadow:0 10px 26px rgba(15,23,42,.07);overflow:hidden}.sp-explorer__details summary{list-style:none;display:flex;align-items:center;gap:9px;padding:13px 14px;font-weight:900;color:var(--ink);cursor:pointer}.sp-tree{padding:2px 10px 12px;max-height:420px;overflow:auto}.sp-tree ul{list-style:none;margin:0;padding-left:12px}.sp-tree li{margin:2px 0}.sp-tree__node{width:100%;min-height:34px;display:flex;align-items:center;gap:8px;border:0;background:transparent;border-radius:10px;padding:6px 8px;text-align:left;color:#334155;font-weight:800}.sp-tree__node:hover,.sp-tree__node.active{background:#fff0e8;color:#c2410c}.sp-tree__node span{width:18px;height:18px;display:grid;place-items:center}.sp-tree__node b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-tree__node--org,.sp-tree__node--root{color:#0f172a}.sp-tree__lots{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 5px 28px}.sp-tree__lots button{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:900}.sp-explorer__mini{margin:0 12px 12px;border-radius:12px;background:#f8fafc;padding:10px}.sp-explorer__mini span{font-size:10px;text-transform:uppercase;font-weight:900;color:var(--muted)}.sp-explorer__mini b{display:block;color:var(--ink);margin:2px 0}.sp-explorer__mini div{display:flex;justify-content:space-between;gap:8px}.sp-explorer__mini strong{font-size:20px}.sp-explorer__mini small{color:var(--muted);font-size:11px}.sp-mobile-summary{display:none}.sp-route-content{min-width:0}.sp-dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}.sp-zone-card,.sp-lot-card,.sp-asset-card{background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.07)}.sp-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.sp-card-head span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--b360-accent);font-weight:900}.sp-card-head h2{margin:3px 0 2px;color:var(--ink);font-size:18px}.sp-card-head p{margin:0;color:var(--muted);font-size:12px}.sp-card-head strong{font-size:26px;color:var(--ink)}.sp-kpis,.sp-lot-grid,.sp-asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.sp-kpis div,.sp-lot-grid div,.sp-asset-grid div{background:#f8fafc;border-radius:12px;padding:9px}.sp-kpis small,.sp-lot-grid small,.sp-asset-grid small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:900}.sp-kpis b,.sp-lot-grid b,.sp-asset-grid b{display:block;margin-top:2px;color:var(--ink)}.sp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.sp-action{display:inline-flex;align-items:center;gap:7px;min-height:38px;border-radius:11px;background:#0f172a;color:#fff;border:0;padding:0 11px;font-size:12px;font-weight:900}
.adm-nav{display:flex;align-items:center;gap:10px;margin-top:4px;padding:8px 0;border-bottom:1px solid var(--line)}
.adm-nav__label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--muted)}
.adm-nav__select{width:min(320px,100%);min-height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:800;padding:0 12px}
.adm-nav__hint{font-size:12px;color:var(--muted);font-weight:700}
.adm-kpi-grid{margin-top:2px}
.adm-kpi-grid .kpi{padding:12px;gap:6px}
.adm-kpi-grid .kpi__ico{width:32px;height:32px;font-size:14px}
.adm-kpi-grid .kpi__val{font-size:24px}
.adm-overview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:12px}
.adm-fold{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.adm-fold summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:13px 15px;color:var(--ink)}
.adm-fold summary::-webkit-details-marker{display:none}
.adm-fold summary>span{display:grid;gap:2px}
.adm-fold summary b{font-size:13px}
.adm-fold summary small{color:var(--muted);font-size:11px;font-weight:700}
.adm-fold summary>b:last-child{font-size:18px;color:var(--primary);font-weight:500}
.adm-fold[open] summary>b:last-child{transform:rotate(45deg)}
.adm-fold__body{border-top:1px solid var(--line);padding:13px 15px}
.adm-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.adm-facts .field{margin:0;padding:8px 9px;background:#f8fafc;border-radius:9px}
.sp-zone-card{padding:13px;border-radius:16px}
.sp-zone-summary{display:grid;grid-template-columns:1.25fr repeat(3,minmax(0,1fr));gap:7px;margin-top:11px}
.sp-zone-summary>div,.sp-zone-more__grid>div{background:#f8fafc;border-radius:10px;padding:8px}
.sp-zone-summary small,.sp-zone-more__grid small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:900}
.sp-zone-summary b,.sp-zone-more__grid b{display:block;margin-top:2px;color:var(--ink);font-size:14px}
.sp-zone-summary__main{background:#fff0e8!important}
.sp-zone-summary__main b{color:#c2410c;font-size:18px}
.sp-zone-more{margin-top:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sp-zone-more summary,.sp-zone-actions summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;padding:8px 1px;color:var(--ink);font-size:12px;font-weight:900}
.sp-zone-more summary::-webkit-details-marker,.sp-zone-actions summary::-webkit-details-marker{display:none}
.sp-zone-more summary:after,.sp-zone-actions summary:after{content:'+';color:var(--primary);font-size:18px;font-weight:500}
.sp-zone-more[open] summary:after,.sp-zone-actions[open] summary:after{content:'-'}
.sp-zone-more summary small{color:var(--muted);font-size:10px;font-weight:700;margin-left:auto}
.sp-zone-more__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:0 0 9px}
.sp-zone-links{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px}
.sp-zone-links>.sp-action{min-height:34px;padding:0 9px;font-size:11px}
.sp-zone-actions{flex:1 1 145px;min-width:145px}
.sp-zone-actions .sp-actions{margin:0 0 6px;gap:6px}
.sp-zone-actions .sp-action{min-height:34px;padding:0 9px;font-size:11px}
.quick-create-overlay{position:fixed;inset:0;z-index:120;background:rgba(15,23,42,.42);display:flex;align-items:flex-end;justify-content:center;padding:12px}
.quick-create-sheet{width:min(520px,100%);background:#fff;border-radius:18px;padding:16px;box-shadow:0 -10px 40px rgba(15,23,42,.24)}
.quick-create-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.quick-create-head span{font-size:10px;letter-spacing:.1em;color:var(--b360-accent);font-weight:900}.quick-create-head h2{margin:3px 0 0;font-size:20px;color:var(--ink)}
.quick-create-context{display:flex;align-items:center;gap:10px;margin:14px 0;padding:10px 12px;border-radius:12px;background:#f8fafc}.quick-create-context>span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#fff0e8;color:var(--b360-accent)}.quick-create-context div{display:grid;gap:1px;min-width:0}.quick-create-context small{font-size:10px;color:var(--muted);font-weight:800}.quick-create-context b,.quick-create-context em{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-create-context b{font-size:13px;color:var(--ink)}.quick-create-context em{font-size:11px;color:var(--muted);font-style:normal}
.quick-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quick-create-item{display:flex;align-items:center;gap:10px;min-height:70px;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.quick-create-item:hover{border-color:var(--primary);background:#fff8f4}.quick-create-item__icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#f1f5f9;color:var(--primary);flex:0 0 auto}.quick-create-item b,.quick-create-item small{display:block}.quick-create-item b{font-size:13px}.quick-create-item small{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.25}.quick-create-empty{grid-column:1/-1;padding:18px;text-align:center;color:var(--muted);font-size:13px}
.mbar{display:none}.mfab{display:none}
@media(max-width:480px){.quick-create-overlay{padding:0}.quick-create-sheet{border-radius:18px 18px 0 0;padding:14px}.quick-create-grid{grid-template-columns:1fr 1fr}.quick-create-item{min-height:74px}.quick-create-item__icon{width:34px;height:34px}}
@media(max-width:640px){.adm-nav{align-items:stretch;flex-wrap:wrap}.adm-nav__select{flex:1 1 220px}.adm-nav__hint{flex-basis:100%}.adm-overview-grid{grid-template-columns:1fr}.adm-facts{grid-template-columns:1fr}.sp-zone-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-zone-more__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-zone-summary__main{grid-column:1/-1}}
@media(max-width:1180px){.ux-cockpit__grid,.sp-dash-grid{grid-template-columns:1fr 1fr}.sp-dash-grid>:first-child{grid-column:1/-1}.sp-layout{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:900px){.topbar{gap:10px;padding:10px 14px}.topbar__project .topbar__label{display:none}.topbar__search{display:block}.topbar__search input{min-width:0}.topbar__actions{margin-left:auto}.ux-cockpit__grid,.sp-layout,.sp-dash-grid{grid-template-columns:1fr}.sp-layout>.sp-explorer{display:none}.sp-mobile-summary{display:block}.sp-mobile-summary .sp-explorer__details{box-shadow:0 8px 22px rgba(15,23,42,.06)}.sp-mobile-summary .sp-tree{max-height:250px}.af-project{grid-template-columns:1fr}.af-project__stats{justify-content:flex-start}}
@media(max-width:760px){.content{padding:14px 14px 92px}.topbar__profile-control,.topbar__auth-control{display:grid}.topbar__search{display:none}.today-hero,.ux-cockpit__hero{align-items:flex-start;flex-direction:column;padding:18px}.today-context{width:100%}.today-action{grid-template-columns:42px minmax(0,1fr);padding:13px}.today-action__btn{grid-column:1/-1;width:100%}.ux-cockpit__pulse{width:78px;height:78px}.ux-action{grid-template-columns:34px minmax(0,1fr);padding:10px}.ux-event{grid-template-columns:38px minmax(0,1fr)}.ux-event__icon{display:none}.ux-alert{grid-template-columns:30px minmax(0,1fr) auto}.sp-breadcrumb{padding:9px}.sp-bc__item small{display:none}.mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -12px 30px rgba(15,23,42,.12);padding:7px 8px calc(7px + env(safe-area-inset-bottom))}.mbar__i{display:grid;place-items:center;gap:2px;min-height:52px;border-radius:13px;color:#475569;font-size:10.5px;font-weight:900}.mbar__i:hover,.mbar__i.active{background:#f8fafc;color:#0f172a}.mbar__ic{display:grid;place-items:center}.mfab{position:fixed;right:18px;bottom:82px;z-index:55;width:58px;height:58px;border:0;border-radius:20px;background:var(--b360-accent);color:#fff;box-shadow:0 20px 44px rgba(252,76,2,.32);place-items:center}.mfab[style*="display: none"]{display:none!important}.mfab:not([style*="display: none"]){display:grid}.mfab .ui-svg{width:24px;height:24px}.page-head{margin-bottom:14px}.page-title{font-size:19px}.page-sub{font-size:12px}.user-menu{right:-2px}}
@media(max-width:480px){.topbar{min-height:58px}.topbar>.topbar__project{max-width:calc(100vw - 150px)}.topbar>.topbar__project .select{min-width:0;width:100%;max-width:190px}.today-hero h1,.ux-cockpit__hero h2{font-size:25px}.today-action__copy strong{font-size:15px}.ux-panel{padding:13px}.sp-kpis,.sp-lot-grid,.sp-asset-grid{grid-template-columns:1fr}.af-actions__grid{display:grid;grid-template-columns:1fr;overflow:visible}.af-action{width:100%;white-space:normal;justify-content:flex-start}.sp-tree{max-height:220px}.user__avatar{width:36px;height:36px}}
@media(max-width:480px){.b360-apple-field .today-context{display:none}.b360-apple-field .today-hero{padding:18px 22px}.b360-apple-field .today-hero p{margin-top:5px}.b360-apple-field .today-action{min-height:72px;padding:11px 12px}.b360-apple-field .today-action__btn{min-height:42px}}

/* ===== Page d'accueil (landing) — thème building ===== */
.ld{position:fixed;inset:0;z-index:150;overflow-y:auto;background:#0b1020;color:#e2e8f0;opacity:0;transition:opacity .3s;font-family:Inter,system-ui,sans-serif}
.ld.show{opacity:1}
.ld-bg{position:fixed;inset:0;z-index:0;background:
  radial-gradient(1100px 600px at 80% -10%,rgba(99,102,241,.35),transparent 60%),
  radial-gradient(900px 500px at 0% 10%,rgba(67,56,202,.30),transparent 55%),
  linear-gradient(180deg,#0b1020 0%,#0f172a 100%)}
.ld-bg::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.06) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(180deg,#000,transparent 70%)}
.ld>*{position:relative;z-index:1}
.ld-nav{display:flex;align-items:center;justify-content:space-between;padding:20px 5vw;max-width:1280px;margin:0 auto}
.ld-brand{display:flex;align-items:center;gap:12px}
.ld-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#818cf8,#4338ca);display:grid;place-items:center;font-weight:800;font-size:18px;color:#fff}
.ld-bt{font-weight:800;font-size:16px;color:#fff}.ld-bs{font-size:11px;color:#94a3b8}
.ld-navlinks{display:flex;align-items:center;gap:18px}
.ld-navlinks a{color:#cbd5e1;font-size:14px;font-weight:600;cursor:pointer}.ld-navlinks a:hover{color:#fff}
.ld-btn{border:none;border-radius:11px;font-weight:700;font-size:14px;padding:10px 18px;cursor:pointer;transition:.15s}
.ld-btn.solid{background:linear-gradient(135deg,#6366f1,#4338ca);color:#fff;box-shadow:0 10px 24px rgba(79,70,229,.35)}
.ld-btn.solid:hover{filter:brightness(1.08)}
.ld-btn.ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.16)}
.ld-btn.ghost:hover{background:rgba(255,255,255,.14)}
.ld-btn.lg{padding:14px 26px;font-size:15.5px}
.ld-hero{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;max-width:1280px;margin:0 auto;padding:50px 5vw 120px}
.ld-badge{display:inline-block;background:rgba(129,140,248,.16);color:#c7d2fe;border:1px solid rgba(129,140,248,.3);font-size:12.5px;font-weight:700;padding:6px 14px;border-radius:999px;margin-bottom:18px}
.ld-hero h1{font-size:clamp(32px,4.4vw,54px);line-height:1.08;font-weight:800;color:#fff;margin:0 0 18px;letter-spacing:-.5px}
.ld-hero h1 span{background:linear-gradient(120deg,#a5b4fc,#818cf8);-webkit-background-clip:text;background-clip:text;color:transparent}
.ld-lead{font-size:16.5px;line-height:1.6;color:#cbd5e1;max-width:560px;margin:0 0 26px}
.ld-cta{display:flex;gap:12px;flex-wrap:wrap}.ld-cta.center{justify-content:center}
.ld-trust{margin-top:18px;font-size:13px;color:#94a3b8}
.ld-demo{margin-top:14px;display:inline-block;background:none;border:none;color:#a5b4fc;font-weight:700;font-size:14px;cursor:pointer;padding:0}
.ld-demo:hover{color:#c7d2fe}
.ld-hero__card{perspective:1200px}
.ld-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:18px;box-shadow:0 30px 70px rgba(0,0,0,.45);backdrop-filter:blur(8px);transform:rotateY(-7deg) rotateX(3deg)}
.ld-card__head{display:flex;align-items:center;gap:7px;margin-bottom:14px}
.ld-dot{width:10px;height:10px;border-radius:50%}.ld-dot.r{background:#f87171}.ld-dot.y{background:#fbbf24}.ld-dot.g{background:#34d399}
.ld-card__t{margin-left:8px;font-size:13px;color:#cbd5e1;font-weight:600}
.ld-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.ld-kpi{background:rgba(255,255,255,.05);border-radius:11px;padding:10px}
.ld-kpi__l{font-size:10.5px;color:#94a3b8}.ld-kpi__v{font-size:18px;font-weight:800;color:#fff;margin-top:3px}
.ld-bars{display:flex;flex-direction:column;gap:9px}
.ld-bar{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;gap:10px;font-size:12px;color:#cbd5e1}
.ld-track{height:8px;background:rgba(255,255,255,.1);border-radius:99px;overflow:hidden}
.ld-track i{display:block;height:100%;background:linear-gradient(90deg,#818cf8,#6366f1);border-radius:99px}
.ld-bar b{color:#fff;font-size:11.5px;text-align:right}
.ld-sky{position:absolute;left:0;right:0;bottom:0;width:100%;height:200px;z-index:0}
.ld-features{max-width:1180px;margin:0 auto;padding:30px 5vw 60px;text-align:center}
.ld-h2{font-size:clamp(26px,3vw,36px);font-weight:800;color:#fff;margin:0 0 6px}
.ld-h2sub{color:#94a3b8;font-size:16px;margin:0 0 36px}
.ld-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;text-align:left}
.ld-feat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;transition:.18s}
.ld-feat:hover{transform:translateY(-4px);border-color:rgba(129,140,248,.4);background:rgba(255,255,255,.07)}
.ld-feat__i{font-size:30px;margin-bottom:12px}
.ld-feat h4{color:#fff;font-size:17px;font-weight:700;margin:0 0 8px}
.ld-feat p{color:#cbd5e1;font-size:13.5px;line-height:1.55;margin:0}
.ld-final{text-align:center;padding:40px 5vw 70px;max-width:900px;margin:0 auto}
.ld-final h2{font-size:clamp(24px,3vw,34px);font-weight:800;color:#fff;margin:0 0 26px}
.ld-foot{text-align:center;padding:26px 5vw 40px;color:#64748b;font-size:13px;border-top:1px solid rgba(255,255,255,.07)}
@media(max-width:900px){.ld-hero{grid-template-columns:1fr;padding-bottom:80px}.ld-hero__card{display:none}.ld-grid{grid-template-columns:1fr}.ld-navlinks a:not(.ld-btn){display:none}}

/* ===== Signaler — FAB accessible sur tablette et desktop (Opération Confiance : sécurité pour tous, tous écrans) ===== */
@media(min-width:761px){
  .mfab{position:fixed;right:24px;bottom:24px;z-index:55;width:56px;height:56px;border:0;border-radius:18px;background:var(--b360-accent);color:#fff;box-shadow:0 18px 40px rgba(252,76,2,.30);place-items:center;cursor:pointer}
  .mfab[style*="display: none"]{display:none!important}
  .mfab:not([style*="display: none"]){display:grid}
  .mfab .ui-svg{width:24px;height:24px}
}

.b360-quote-scope{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 14px;border:1px solid #bfdbfe;border-left:4px solid #2563eb;border-radius:12px;background:#eff6ff;color:#1e3a8a}.b360-quote-scope .ui-svg{width:18px;height:18px;flex:none;margin-top:1px}.b360-quote-scope b,.b360-quote-scope small{display:block}.b360-quote-scope small{margin-top:2px;color:#1e40af;line-height:1.4}
.b360-qa-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:11px 13px;border:1px dashed #93c5fd;border-radius:12px;background:#f8fbff}.b360-qa-strip div:first-child{display:grid;gap:2px}.b360-qa-strip b{color:#1e3a8a}.b360-qa-strip small{color:#475569}.b360-qa-strip__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.b360-qa-strip__actions .btn{display:inline-flex;align-items:center;gap:5px}.b360-qa-strip__actions .ui-svg{width:14px;height:14px}
.dt-qa-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:11px 13px;border:1px dashed #86efac;border-radius:12px;background:#f7fff9}.dt-qa-strip div:first-child{display:grid;gap:2px}.dt-qa-strip b{color:#166534}.dt-qa-strip small{color:#475569}.dt-qa-strip__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.dt-qa-strip__actions .btn{display:inline-flex;align-items:center;gap:5px}.dt-qa-strip__actions .ui-svg{width:14px;height:14px}
.b360-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-2);color:var(--muted);font-size:12px}.b360-card-actions .btn{white-space:nowrap}.b360-card-actions .ui-svg{width:15px;height:15px}
.b360-share-list{display:grid;gap:8px}.b360-share-row{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.b360-share-row input{width:18px;height:18px;flex:none}.b360-share-row b,.b360-share-row small{display:block}.b360-share-row small{margin-top:2px;color:var(--muted)}
.b360-card-actions{flex-wrap:wrap}.b360-card-actions__tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.b360-card-actions__tools .btn{display:inline-flex;align-items:center;gap:5px}.b360-card-actions__tools .ui-svg{width:14px;height:14px}
.b360-lifecycle-panel{display:grid;gap:14px}.b360-lifecycle-panel__intro{display:grid;gap:3px}.b360-lifecycle-panel__intro b{font-size:17px;color:var(--ink)}.b360-lifecycle-panel__intro span{color:var(--muted);font-size:12px}.b360-lifecycle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.b360-lifecycle-grid__wide{grid-column:1/-1}.b360-lifecycle-panel__meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}.b360-lifecycle-panel__meta span{border:1px solid var(--line);border-radius:999px;background:#f8fafc;padding:6px 9px}.b360-lifecycle-panel__meta b{color:var(--ink)}.b360-lifecycle-panel__history{display:grid;gap:8px}.b360-lifecycle-panel__history>b{color:var(--ink)}.b360-lifecycle-history{display:grid;gap:6px;max-height:180px;overflow:auto}.b360-lifecycle-history__row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:2px 8px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.b360-lifecycle-history__row span,.b360-lifecycle-history__row small{color:var(--muted);font-size:11px}.b360-lifecycle-history__row b{color:var(--ink);font-size:12px}.b360-lifecycle-history__row small{grid-column:2}
@media(max-width:760px){.b360-lifecycle-grid{grid-template-columns:1fr}.b360-lifecycle-grid__wide{grid-column:auto}.b360-card-actions__tools{justify-content:flex-start;width:100%}.b360-card-actions__tools .btn{flex:1 1 120px}}
@media(max-width:760px){.b360-qa-strip{align-items:flex-start;flex-direction:column}.b360-qa-strip__actions{justify-content:flex-start;width:100%}.b360-qa-strip__actions .btn{flex:1 1 150px}}
@media(max-width:760px){.dt-qa-strip{align-items:flex-start;flex-direction:column}.dt-qa-strip__actions{justify-content:flex-start;width:100%}.dt-qa-strip__actions .btn{flex:1 1 150px}}

/* ===== Jumeau compact : synthese et panneaux repliables ===== */
.dt-overview{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:18px;margin:14px 0 12px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}
.dt-overview__score{display:flex;align-items:center;gap:12px}.dt-overview__score .dt-gauge__ring{width:112px;height:112px}.dt-overview__score .dt-gauge__ring span{width:78px;height:78px;font-size:22px}.dt-overview__score b{color:var(--ink)}.dt-overview__score small{display:block;margin-top:4px;color:var(--muted);font-weight:700}
.dt-overview__copy h2{margin:4px 0 6px;font-size:20px;color:var(--ink)}.dt-overview__copy p{margin:0;color:var(--muted);line-height:1.45}.dt-overview__facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.dt-overview__facts span{border:1px solid var(--line);border-radius:999px;padding:5px 8px;color:var(--ink-2);font-size:11px;font-weight:800;background:var(--bg)}
.dt-action-menu{position:relative}.dt-action-menu>summary{list-style:none;cursor:pointer}.dt-action-menu>summary::-webkit-details-marker{display:none}.dt-action-menu__body{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:grid;gap:6px;min-width:220px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.dt-action-menu__body .btn{justify-content:flex-start;white-space:nowrap}
.dt-accordion{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);overflow:visible}.dt-accordion>summary{display:flex;align-items:center;gap:12px;padding:13px 15px;cursor:pointer;list-style:none}.dt-accordion>summary::-webkit-details-marker{display:none}.dt-accordion>summary>span{display:grid;gap:2px;flex:1}.dt-accordion>summary b{color:var(--ink);font-size:15px}.dt-accordion>summary small{color:var(--muted);font-size:12px}.dt-accordion>summary strong{color:var(--primary);font-size:13px}.dt-accordion>summary i{display:grid;place-items:center;color:var(--muted);font-style:normal;transition:transform .15s}.dt-accordion[open]>summary{border-bottom:1px solid var(--line-2)}.dt-accordion[open]>summary i{transform:rotate(180deg)}.dt-accordion__body{padding:14px}
.dt-subsection{margin-top:16px}.dt-subsection:first-child{margin-top:0}.dt-subsection__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:9px}.dt-subsection__head h3{margin:0;font-size:16px;color:var(--ink)}.dt-subsection__head span{color:var(--muted);font-size:12px;font-weight:700}
.dt-quality-grid{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:center}.dt-quality-radar{display:grid;place-items:center;gap:4px;padding:8px;border:1px solid var(--line-2);border-radius:12px;background:var(--bg)}.dt-quality-radar span{color:var(--muted);font-size:11px;font-weight:800}.dt-quality-meters{display:grid;gap:12px}
.dt-list-surface{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.dt-list-surface__head{padding:10px 12px;border-bottom:1px solid var(--line-2);color:var(--ink);font-weight:800;font-size:13px}.dt-list-surface__body{padding:0 12px}.dt-list-surface__body>b{display:block;padding:12px 0 2px;color:var(--ink)}.dt-list-surface .dt-row + .dt-row{border-top:1px solid var(--line-2)}
@media(max-width:1120px){.dt-quality-grid{grid-template-columns:220px 1fr}.dt-overview{grid-template-columns:190px 1fr}}
@media(max-width:760px){.dt-overview,.dt-quality-grid{grid-template-columns:1fr}.dt-overview{padding:14px}.dt-overview__score{align-items:flex-start}.dt-quality-radar .dt-radar__svg{width:190px;height:190px}.dt-action-menu[open] .dt-action-menu__body{position:static;margin-top:6px;min-width:0}.dt-action-menu__body .btn{width:100%}}
.sp-asset-facts{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.sp-asset-fact{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 8px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;color:var(--ink-2);font-size:11px;font-weight:800;text-decoration:none}.sp-asset-fact:hover{border-color:#fdba74;background:#fff7ed;color:#9a3412}.sp-asset-fact b{color:var(--ink);font-size:15px}.sp-asset-fact span{white-space:nowrap}.sp-asset-note{margin-top:11px;padding-top:10px;border-top:1px solid var(--line-2);color:var(--muted);font-size:11px;font-weight:700}
.dt-zone-section{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.dt-zone-section>summary{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;color:var(--ink);font-weight:900}.dt-zone-section>summary::-webkit-details-marker{display:none}.dt-zone-section>summary>span{flex:1}.dt-zone-section__chevron{font-style:normal;color:var(--muted);font-size:18px;line-height:1;transition:transform .15s}.dt-zone-section[open]>summary{border-bottom:1px solid var(--line-2)}.dt-zone-section[open] .dt-zone-section__chevron{transform:rotate(180deg)}.dt-zone-section__body{padding:8px 12px 12px}.dt-zone-subsection{padding:5px 0 9px}.dt-zone-subsection+b{margin-top:4px}.dt-zone-subsection+.dt-zone-subsection{border-top:1px solid var(--line-2);padding-top:10px}.dt-zone-subsection>b{display:block;margin-bottom:5px;color:var(--ink);font-size:12px}.dt-zone-subsection .list-row{border-radius:8px}.dt-zone-subsection .mini{line-height:1.4}
@media(max-width:760px){
  .sidebar{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
}

/* Devis M34 : trois espaces principaux, vues detaillees secondaires */
.b360-fin-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 16px}
.b360-fin-primary{display:flex;gap:6px;flex:1;min-width:0}
.b360-fin-primary button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;flex:1;border:1px solid var(--line);background:#fff;color:var(--ink-2);border-radius:11px;padding:9px 12px;font-weight:900;font-size:13px;white-space:nowrap;box-shadow:var(--shadow-sm);cursor:pointer}
.b360-fin-primary button.active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 14px 28px rgba(15,23,42,.18)}
.b360-fin-primary .ui-svg{width:16px;height:16px}
.b360-fin-expert{display:flex;align-items:center;gap:7px;min-height:42px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;white-space:nowrap}
.b360-fin-expert select{min-height:40px;min-width:210px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:800;text-transform:none;padding:0 10px}
.b360-wizard-steps .step:not(:first-of-type) .step__dot{background:#e2e8f0;color:#64748b;box-shadow:none}
.b360-wizard-steps .step:not(:first-of-type) .step__lbl{color:var(--muted)}
@media(max-width:760px){
  .b360-fin-primary{width:100%}
  .b360-fin-primary button{min-height:44px}
  .b360-fin-expert{width:100%}
  .b360-fin-expert select{flex:1;min-width:0;min-height:42px}
}
