/* ============================================================================
   Build360 — Design System V2 « Modèle 1 : Minimal & Épuré »
   Chargé APRÈS styles.css : re-skin global (tokens + composants) sans refactor.
   Fond clair · cartes très arrondies · ombres légères · onglets larges tactiles ·
   typographie lisible · responsive PC / tablette / mobile.
   ============================================================================ */

:root{
  --bg:#f6f7fb;
  --surface:#ffffff;
  --line:#e9ebf1; --line-2:#f3f5f9;
  --ink:#0f1728; --ink-2:#344054; --muted:#667085; --muted-2:#98a2b3;
  --primary:#4f46e5; --primary-d:#4338ca; --primary-l:#eef2ff;
  --radius:18px; --radius-sm:12px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 10px 30px rgba(16,24,40,.06);
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow-lg:0 18px 50px rgba(16,24,40,.14);
}

body{ background:var(--bg); color:var(--ink); }

/* ---- Espace de contenu : plus d'air, exploite la largeur ---- */
.content{ padding:28px 30px; max-width:1600px; }

/* ---- Cartes : arrondies, ombres douces, hover premium ---- */
.card{
  border-radius:var(--radius);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.card:hover{ box-shadow:0 12px 34px rgba(16,24,40,.10); }
.card__head{ padding:16px 18px; }
.card__title{ font-weight:700; letter-spacing:-.01em; font-size:14.5px; }
.card__body{ }

/* ---- Tuiles KPI ---- */
.kpi{ border-radius:var(--radius); padding:18px; }
.kpi__val{ font-weight:700; letter-spacing:-.02em; }
.kpi__ico{ border-radius:14px; }

/* ---- Boutons : arrondis, premium, tactiles ---- */
.btn{ border-radius:12px; font-weight:600; transition:filter .15s, box-shadow .15s, transform .05s; }
.btn:active{ transform:translateY(1px); }
.btn--primary{ box-shadow:0 8px 18px rgba(79,70,229,.25); }
.btn--primary:hover{ filter:brightness(1.05); }
.btn--sm{ border-radius:10px; }
.icon-btn{ border-radius:12px; }
.select,.topbar__search input,.input,.cx-input,.ob-input{ border-radius:12px; }

/* ---- Barre supérieure : verre dépoli ---- */
.topbar{ background:rgba(246,247,251,.82); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.page-title{ font-size:21px; font-weight:700; letter-spacing:-.02em; }
.page-sub{ color:var(--muted); }

/* ---- Sidebar : pilule active premium ---- */
.sidebar{ background:#0e1220; }
.nav__item{ border-radius:12px; padding:10px 12px; font-size:13.5px; }
.nav__item.active{ background:var(--primary); box-shadow:0 8px 20px rgba(79,70,229,.40); }
.nav__group{ letter-spacing:.9px; }
.brand__logo{ border-radius:13px; }

/* ---- Tableaux : conteneur arrondi, en-tête doux, lignes au survol ---- */
.table-wrap{ border-radius:14px; overflow:hidden; border:1px solid var(--line-2); }
.tbl thead th{ background:var(--line-2); color:var(--muted); font-weight:600; }
.tbl td,.tbl th{ padding:12px 14px; }
.tbl tbody tr{ transition:background .12s; }
.tbl tbody tr:hover{ background:var(--line-2); }

/* ---- Badges / tags : pilules ---- */
.tag{ border-radius:999px; font-weight:600; }
.badge{ border-radius:999px; }

/* ============================================================================
   ONGLETS LARGES & TACTILES (sous-navigation des espaces : financier, qse,
   commissioning, superadmin…). Remplace l'aspect « petits boutons » par de
   vrais onglets soulignés, faciles à toucher (≥44px).
   ============================================================================ */
.subtabs{
  display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  padding:4px 2px 0; margin-bottom:4px; border-bottom:1px solid var(--line);
  scrollbar-width:none;
}
.subtabs::-webkit-scrollbar{ display:none; }
.subtabs button{
  border:0; background:transparent; cursor:pointer;
  padding:11px 16px; min-height:46px; white-space:nowrap;
  font-weight:600; font-size:14px; color:var(--muted);
  border-radius:10px 10px 0 0; border-bottom:2px solid transparent;
  transition:color .15s, border-color .15s, background .15s;
}
.subtabs button:hover{ color:var(--ink); background:var(--line-2); }
.subtabs button.active{ color:var(--primary); border-bottom-color:var(--primary); }

/* ---- Sous-onglets alternatifs (viewtoggle) ---- */
.viewtoggle{ display:flex; gap:6px; flex-wrap:wrap; }
.viewtoggle button{ border-radius:10px; min-height:40px; padding:8px 14px; font-weight:600; }

/* ============================================================================
   RESPONSIVE — PC / Tablette / Mobile
   ============================================================================ */
/* Tablette */
@media (max-width:1024px){
  .content{ padding:22px 18px; }
  .kpi-grid{ grid-template-columns:repeat(2,1fr) !important; }
}
/* Tablette tactile : cibles généreuses */
@media (max-width:900px){
  .btn{ min-height:44px; padding:11px 16px; }
  .btn--sm{ min-height:38px; }
  .subtabs button{ font-size:14px; padding:11px 14px; }
  .icon-btn{ width:42px; height:42px; }
  .tbl td,.tbl th{ padding:13px 14px; }
}
/* Mobile */
@media (max-width:600px){
  .content{ padding:16px 12px; }
  .kpi-grid{ grid-template-columns:1fr !important; }
  .grid.cols-2,.grid.cols-3{ grid-template-columns:1fr !important; }
  .page-title{ font-size:19px; }
  .select{ min-width:0; }
  /* tableaux : défilement horizontal maîtrisé */
  .table-wrap{ overflow-x:auto; }
}

/* ============================================================================
   BARRE DE NAVIGATION MOBILE + BOUTON « + » FLOTTANT (FAB)
   Vraie navigation mobile (pas un simple redimensionnement) — ≤768px.
   ============================================================================ */
.mbar{ display:none; }
.mfab{ display:none; }
@media (max-width:768px){
  .mbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:rgba(255,255,255,.96); backdrop-filter:blur(12px);
    border-top:1px solid var(--line);
    padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));
    justify-content:space-around; align-items:stretch;
  }
  .mbar__i{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
    flex:1; min-height:54px; padding:6px 0; border:0; background:none; cursor:pointer;
    font:600 10.5px/1 'Inter',system-ui,sans-serif; color:var(--muted); text-decoration:none; border-radius:12px;
  }
  .mbar__ic{ font-size:21px; line-height:1; }
  .mbar__i:active{ background:var(--line-2); color:var(--ink); }

  .mfab{
    display:grid; place-items:center; position:fixed; right:18px; bottom:76px; z-index:61;
    width:58px; height:58px; border-radius:19px; border:0; cursor:pointer;
    background:var(--primary); color:#fff; font-size:30px; line-height:1;
    box-shadow:0 12px 28px rgba(79,70,229,.45);
  }
  .mfab:active{ transform:scale(.96); }

  /* La barre ne doit pas masquer le contenu ni le pied de page */
  .content{ padding-bottom:84px; }
  .appfoot{ margin-bottom:60px; }
  /* Sur mobile, on s'appuie sur le hub + la barre : le toggle reste pour le menu complet */
}

/* ============================================================================
   MENU LATÉRAL COMPACT (Modèle 1) — plus court, dense, icône + titre.
   Réduit la largeur, la hauteur des items et l'espacement → moins de défilement.
   ============================================================================ */
:root{ --sb-w:236px; }
.sidebar__brand{ padding:14px 14px; }
.brand__sub{ display:none; }                 /* sous-titre retiré → en-tête plus compact */
.nav{ padding:8px 8px 16px; }
.nav__group{ margin:11px 8px 4px; font-size:10px; letter-spacing:1px; }
.nav__item{ padding:8px 10px; font-size:13px; margin:1px 0; gap:10px; border-radius:11px; }
.nav__ico{ font-size:15px; width:18px; }
.nav__badge{ font-size:10px; padding:0 6px; }
/* Le rail reste lisible sur petits écrans (sidebar repliable existante conservée) */

/* ============================================================================
   Refonte graphique 2026 — ambiance chantier, bâtiment et réseaux CVC.
   Couche purement visuelle : aucun sélecteur métier ni aucune route modifiée.
   ============================================================================ */
:root{
  --bg:#eef2f3;
  --surface:#ffffff;
  --surface-2:#f8fafb;
  --line:#d8e1e5;
  --line-2:#edf2f4;
  --ink:#061a2f;
  --ink-2:#263c4f;
  --muted:#637482;
  --muted-2:#93a2ad;
  --primary:#ff6a00;
  --primary-d:#c95205;
  --primary-l:#fff1e6;
  --cvc:#1297a8;
  --cvc-l:#e5f8fb;
  --steel:#526575;
  --concrete:#eef2f3;
  --safety:#1f9f72;
  --sidebar:#061a2f;
  --sidebar-2:#0b2846;
  --sidebar-ink:#c7d7df;
  --sidebar-active:#ff6a00;
  --ok:#1f9f72;
  --ok-l:#e7f7ef;
  --warn:#d98616;
  --warn-l:#fff4db;
  --danger:#c92f21;
  --danger-l:#fde9e6;
  --info:#1297a8;
  --info-l:#e5f8fb;
  --purple:#5c6f7e;
  --purple-l:#eef2f5;
  --radius:8px;
  --radius-sm:6px;
  --shadow:0 1px 2px rgba(6,26,47,.06),0 12px 28px rgba(6,26,47,.08);
  --shadow-sm:0 1px 2px rgba(6,26,47,.08);
  --shadow-lg:0 18px 48px rgba(6,26,47,.20);
  --sb-w:252px;
}

body{
  background:
    linear-gradient(rgba(6,26,47,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(6,26,47,.035) 1px,transparent 1px),
    linear-gradient(180deg,#f7f9fa 0%,var(--bg) 100%);
  background-size:34px 34px,34px 34px,auto;
  color:var(--ink);
}
html,body{
  max-width:100%;
  overflow-x:hidden;
}
#app,.main,.content,.ld{
  min-width:0;
}

.ui-svg{
  width:1.12em;
  height:1.12em;
  display:block;
  flex:none;
}

/* Shell */
.sidebar{
  background:
    linear-gradient(180deg,rgba(255,106,0,.08) 0%,transparent 24%),
    linear-gradient(180deg,var(--sidebar) 0%,#08223d 55%,#06182d 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:8px 0 28px rgba(6,26,47,.14);
}
.sidebar__brand{
  padding:16px 14px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.035);
}
.brand__logo{
  width:46px;
  height:46px;
  border-radius:8px;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}
.brand__logo--img{
  object-fit:contain;
  background:#fff;
}
.brand__title{font-size:16px;font-weight:800;letter-spacing:0}
.brand__sub{display:block;color:#8fb3c2;font-size:10.5px;letter-spacing:.02em}
.nav{padding:10px 9px 18px}
.nav__group{
  color:#7f98a7;
  font-size:10px;
  letter-spacing:.08em;
  margin:14px 10px 5px;
}
.nav__item{
  min-height:38px;
  border:1px solid transparent;
  border-radius:8px;
  color:var(--sidebar-ink);
}
.nav__item:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.08);
}
.nav__item.active{
  background:linear-gradient(135deg,var(--primary),#f28b1d);
  color:#fff;
  box-shadow:0 10px 24px rgba(255,106,0,.28);
}
.nav__ico{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  color:#8fd6df;
}
.nav__item.active .nav__ico{color:#fff}
.nav-svg{width:18px;height:18px}
.nav__badge{
  background:rgba(18,151,168,.20);
  border:1px solid rgba(143,214,223,.24);
  color:#dff8fb;
}
.nav__item.active .nav__badge{
  background:rgba(6,26,47,.22);
  border-color:rgba(255,255,255,.28);
}
.env-pill{
  border:1px solid rgba(255,106,0,.22);
  background:rgba(255,106,0,.08);
  color:#ffbd82;
  border-radius:8px;
}

.main{background:transparent}
.topbar{
  min-height:66px;
  background:rgba(248,250,251,.88);
  border-bottom:1px solid rgba(82,101,117,.22);
  box-shadow:0 3px 18px rgba(6,26,47,.06);
}
.topbar__actions{
  min-width:0;
}
.topbar__label{
  color:#526575;
  letter-spacing:.08em;
}
.topbar__search input,.select,.fsearch,.fsel,.auth-inp,.ob-input,.cx-input{
  border-color:#cfdae0;
  background:#fff;
  border-radius:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.topbar__search input:focus,.select:focus,.fsearch:focus,.fsel:focus,.auth-inp:focus,.ob-input:focus,.cx-input:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(255,106,0,.16);
}
.icon-btn{
  border-color:#cfd9df;
  background:#fff;
  color:#244158;
  border-radius:8px;
}
.icon-btn:hover{
  color:var(--primary-d);
  border-color:rgba(255,106,0,.45);
  background:var(--primary-l);
}
.badge{
  background:var(--primary);
  border:2px solid #fff;
  color:#fff;
}
.user__avatar,.avatar{
  background:linear-gradient(135deg,#0a355c,var(--cvc));
  border-radius:8px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}

/* Contenu */
.content{
  padding:30px;
  max-width:1640px;
}
.page-head{
  align-items:center;
  padding:0 0 16px 14px;
  border-left:4px solid var(--primary);
  border-bottom:1px solid rgba(82,101,117,.14);
}
.page-title{
  color:var(--ink);
  font-weight:800;
  letter-spacing:0;
}
.page-sub{color:#657888}
.breadcrumb{color:#718492}
.page-actions{align-items:center}

.card{
  position:relative;
  overflow:hidden;
  border-radius:8px;
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  background:linear-gradient(180deg,#fff 0%,#fcfdfd 100%);
}
.card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,var(--primary),var(--cvc),rgba(82,101,117,.18));
  opacity:.70;
}
.card:hover{
  transform:translateY(-1px);
  border-color:#c9d5dc;
  box-shadow:var(--shadow);
}
.card__head{
  background:linear-gradient(180deg,#fff 0%,#f7fafb 100%);
  border-bottom:1px solid var(--line);
  padding:15px 18px;
}
.card__title{
  color:#0b2742;
  font-weight:800;
}
.card__body{padding:18px}

.btn{
  border-radius:8px;
  border-color:#cfd9df;
  background:#fff;
  color:#18324a;
  box-shadow:0 1px 0 rgba(255,255,255,.9);
}
.btn:hover{
  background:#f7fafb;
  border-color:#b9c7cf;
}
.btn--primary,.auth-cta,.ld-btn.solid{
  border-color:var(--primary);
  background:linear-gradient(135deg,var(--primary),#f08b20);
  color:#fff;
  box-shadow:0 10px 22px rgba(255,106,0,.25);
}
.btn--primary:hover,.auth-cta:hover,.ld-btn.solid:hover{
  filter:none;
  background:linear-gradient(135deg,#ff7b1f,var(--primary-d));
}
.btn--sm{border-radius:7px}

.kpi{
  gap:12px;
  border-left:3px solid rgba(255,106,0,.45);
}
.kpi__ico{
  border-radius:8px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.kpi__ico .ui-svg{
  width:21px;
  height:21px;
}
.kpi__label{
  color:#627585;
  letter-spacing:.06em;
}
.kpi__val{
  color:#071f38;
  letter-spacing:0;
}
.bg-indigo{background:var(--primary-l);color:var(--primary-d)}
.bg-blue{background:var(--cvc-l);color:#0e7b89}
.bg-purple{background:#edf2f5;color:#506678}
.bg-green{background:var(--ok-l);color:#167b58}
.bg-amber{background:var(--warn-l);color:#aa6400}
.bg-red{background:var(--danger-l);color:#a9271e}
.progress{background:#dfe7eb}
.progress__bar{
  background:linear-gradient(90deg,var(--primary),var(--cvc));
}

.table-wrap{
  border-color:#dce5e9;
  border-radius:8px;
}
.tbl thead th{
  background:#edf3f5;
  color:#526575;
  letter-spacing:.06em;
}
.tbl tbody tr:hover{
  background:#f3f7f8;
}
.tag{
  border-radius:999px;
  border:1px solid rgba(6,26,47,.07);
}
.t-ok{background:var(--ok-l);color:#146b4d}
.t-warn{background:var(--warn-l);color:#9b5c00}
.t-danger{background:var(--danger-l);color:#9d251b}
.t-info{background:var(--info-l);color:#0d7582}
.t-muted{background:#eef2f4;color:#536878}
.t-purple{background:#edf2f5;color:#526575}

/* Outils complexes */
.subtabs{
  border-bottom-color:#cfd9df;
  gap:3px;
}
.subtabs button{
  border-radius:8px 8px 0 0;
  color:#607483;
}
.subtabs button:hover{
  background:#edf3f5;
}
.subtabs button.active{
  color:var(--primary-d);
  border-bottom-color:var(--primary);
  background:#fff7ef;
}
.viewtoggle{
  border:0;
  background:#e6edf0;
  border-radius:8px;
  padding:3px;
}
.viewtoggle button{
  border-radius:6px;
}
.viewtoggle button.active{
  background:#0b2a49;
  color:#fff;
}
.kanban{gap:12px}
.kcol{
  background:#e9eff2;
  border-color:#d1dde3;
  border-radius:8px;
}
.kcol__h{
  color:#17324a;
  border-bottom:1px solid rgba(82,101,117,.12);
}
.kcard{
  border-radius:8px;
  border-color:#d7e1e6;
}
.drawer{
  background:var(--bg);
}
.drawer__head{
  background:#fff;
}
.drawer__eyebrow,.link{
  color:var(--primary-d);
}
.drawer__tabs{
  border-top:1px solid var(--line-2);
}
.dtab.active{
  color:var(--primary-d);
  border-bottom-color:var(--primary);
}
.step.current .step__dot{
  background:var(--primary);
  box-shadow:0 0 0 4px var(--primary-l);
}
.step.done .step__dot{background:var(--cvc)}
.thumb,.photo-card,.plan-item,.org-box,.ld-plan,.ob-plan,.ob-opt,.ob-conn{
  border-radius:8px;
}
.thumb__img{
  background:
    linear-gradient(135deg,rgba(255,106,0,.10) 25%,transparent 25%,transparent 50%,rgba(255,106,0,.10) 50%,rgba(255,106,0,.10) 75%,transparent 75%),
    #eef3f5;
  background-size:24px 24px;
}
.gantt{
  border-radius:8px;
}
.ghead .glabel-wrap,.grow.ghead{
  background:#edf3f5;
}
.gbar{
  border-radius:5px;
}

/* Landing */
.ld{
  background:#061a2f;
  color:#e9f2f5;
}
.ld-bg{
  background:
    linear-gradient(90deg,rgba(6,26,47,.92) 0%,rgba(6,26,47,.68) 44%,rgba(6,26,47,.38) 100%),
    url("../assets/hero-chantier-cvc.png") center/cover no-repeat;
}
.ld-bg::after{
  background:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:none;
}
.ld-nav{
  padding:16px 5vw 10px;
}
.ld-logo-full{
  height:78px;
  width:auto;
  display:block;
  background:#fff;
  border-radius:8px;
  padding:5px 8px;
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.ld-navlinks a{
  color:#dce9ee;
}
.ld-btn{
  border-radius:8px;
}
.ld-btn.ghost{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.22);
}
.ld-hero{
  min-height:calc(100vh - 112px);
  align-items:center;
  padding-top:34px;
  padding-bottom:86px;
}
.ld-badge{
  background:rgba(255,106,0,.16);
  color:#ffc18f;
  border-color:rgba(255,106,0,.38);
}
.ld-hero h1{
  letter-spacing:0;
}
.ld-hero h1 span{
  background:linear-gradient(90deg,#ffb17a,#55d7e3);
  -webkit-background-clip:text;
  background-clip:text;
}
.ld-lead{
  color:#d4e3e9;
}
.ld-trust{
  color:#aac0cb;
}
.ld-card{
  border-radius:8px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(6,26,47,.72);
  box-shadow:0 28px 58px rgba(0,0,0,.36);
  transform:none;
}
.ld-kpi,.ld-feat,.ld-plan{
  border-radius:8px;
}
.ld-kpi{
  background:rgba(255,255,255,.075);
}
.ld-track i{
  background:linear-gradient(90deg,var(--primary),var(--cvc));
}
.ld-sky{display:none}
.ld-features,.ld-pricing,.ld-final{
  position:relative;
}
.ld-feat{
  background:rgba(6,26,47,.70);
  border-color:rgba(202,218,225,.16);
}
.ld-feat:hover{
  border-color:rgba(255,106,0,.42);
  background:rgba(8,36,62,.78);
}
.ld-feat__i{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--cvc));
  margin-bottom:14px;
}
.ld-svg{width:24px;height:24px}
.ld-plan{
  background:rgba(6,26,47,.76);
}
.ld-plan.pop{
  border-color:rgba(255,106,0,.72);
  background:linear-gradient(180deg,rgba(255,106,0,.18),rgba(6,26,47,.78));
  box-shadow:0 18px 48px rgba(255,106,0,.18);
}
.ld-plan__tag{
  background:linear-gradient(90deg,var(--primary),#f39b25);
}
.ld-plan__price span,.ld-plan__desc{
  color:#9edce4;
}
.ld-plan__feats li span{
  color:#ffad76;
}
.ld-opt{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
}
.ld-opt-t{
  color:#ffb17a;
}

/* Auth */
.auth-card{
  border-radius:8px;
  border:1px solid rgba(255,255,255,.18);
}
.auth-aside{
  background:
    linear-gradient(180deg,rgba(255,106,0,.15),transparent 32%),
    linear-gradient(145deg,#061a2f 0%,#0a3152 58%,#062033 100%);
}
.auth-aside::before,.auth-aside::after{display:none}
.auth-brand-icon{
  width:50px;
  height:50px;
  object-fit:contain;
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.26);
}
.auth-feat .fi{
  color:#fff;
  background:rgba(255,106,0,.18);
  border:1px solid rgba(255,106,0,.25);
  border-radius:8px;
}
.auth-feat .fi .ui-svg{
  width:17px;
  height:17px;
}
.auth-toggle{
  border-radius:8px;
  background:#edf2f4;
}
.auth-toggle button{
  border-radius:6px;
}
.auth-toggle button.on{
  color:var(--primary-d);
}
.auth-x{
  border-radius:8px;
}
.auth-msg{
  border-radius:8px;
}

/* Onboarding */
.ob{
  background:
    linear-gradient(rgba(6,26,47,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(6,26,47,.035) 1px,transparent 1px),
    var(--bg);
  background-size:34px 34px;
}
.ob__rail{
  background:
    linear-gradient(180deg,rgba(255,106,0,.10),transparent 36%),
    linear-gradient(180deg,#061a2f,#08223d);
}
.ob__brand-logo{
  width:42px;
  height:42px;
  object-fit:contain;
  background:#fff;
  border-radius:8px;
}
.ob__step{
  border-radius:8px;
}
.ob__step.active{
  background:rgba(255,255,255,.08);
}
.ob__step.active span{
  background:var(--primary);
}
.ob__step.done span{
  background:var(--cvc);
}
.ob-plan.sel,.ob-opt.sel,.ob-conn.sel{
  border-color:var(--primary);
  background:var(--primary-l);
}

/* Footer et mobile */
.appfoot{
  background:#f9fbfc;
  border-top-color:#d5e0e5;
}
.appfoot__links a:hover{
  color:var(--primary-d);
}
.mbar{
  background:rgba(255,255,255,.96);
}
.mbar__ic{
  display:grid;
  place-items:center;
  color:#0b3d61;
}
.mbar__ic .ui-svg{
  width:22px;
  height:22px;
}
.mbar__i:active,.mbar__i:hover{
  background:var(--primary-l);
  color:var(--primary-d);
}
.mfab{
  border-radius:18px;
  background:linear-gradient(135deg,var(--primary),#f39b25);
  box-shadow:0 14px 30px rgba(255,106,0,.34);
}
.mfab .ui-svg{
  width:28px;
  height:28px;
}

@media (max-width:1024px){
  :root{--sb-w:236px}
  .content{padding:22px 18px}
  .ld-logo-full{height:66px}
}
@media (max-width:1280px){
  .topbar{
    flex-wrap:wrap;
  }
  .topbar__search{
    order:3;
    flex:1 1 100%;
  }
  .topbar__actions{
    margin-left:auto;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
}
@media (max-width:900px){
  .topbar{
    padding:10px 14px;
    gap:10px;
  }
  .ld-hero{
    min-height:auto;
    padding-top:28px;
  }
}
@media (max-width:768px){
  .topbar{
    flex-wrap:nowrap;
    overflow-x:auto;
  }
  .topbar__actions .topbar__project{
    display:none;
  }
  .topbar__project{
    min-width:0;
  }
  .topbar__project .select{
    max-width:46vw;
  }
  .ld-nav{
    align-items:flex-start;
    gap:14px;
  }
  .ld-logo-full{height:58px}
  .ld-hero{
    padding-bottom:64px;
  }
}
@media (max-width:600px){
  .content{padding:16px 12px 92px}
  .page-head{
    padding-left:10px;
    align-items:flex-start;
  }
  .card__head,.card__body{padding:14px}
  .ld-nav{
    padding:12px 16px;
  }
  .ld-logo-full{height:50px}
  .ld-hero{
    padding:22px 18px 52px;
  }
  .ld-hero h1{
    font-size:32px;
  }
  .ld-card{
    display:none;
  }
  .auth-panel{padding:28px 22px}
}

/* ============================================================================
   Variante demandée — interface claire, professionnelle, proche d'un SaaS B2B.
   Fond blanc dominant, bleu de confiance, orange Build360 en accent chantier.
   ============================================================================ */
:root{
  --bg:#f3f6f8;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --line:#d8dee4;
  --line-2:#edf1f5;
  --ink:#1f2328;
  --ink-2:#3f4b57;
  --muted:#6b7785;
  --muted-2:#9aa6b2;
  --primary:#0a66c2;
  --primary-d:#004182;
  --primary-l:#e8f3ff;
  --accent:#ff6a00;
  --accent-l:#fff2e8;
  --cvc:#2f9fae;
  --cvc-l:#e8f8fb;
  --sidebar:#ffffff;
  --sidebar-2:#f3f6f8;
  --sidebar-ink:#334155;
  --sidebar-active:#0a66c2;
  --ok:#1f8f62;
  --ok-l:#e7f6ee;
  --warn:#b96f12;
  --warn-l:#fff4df;
  --danger:#c03221;
  --danger-l:#fdebea;
  --info:#0a66c2;
  --info-l:#e8f3ff;
  --purple:#58667a;
  --purple-l:#eef2f6;
  --shadow:0 1px 2px rgba(31,35,40,.06),0 8px 20px rgba(31,35,40,.06);
  --shadow-sm:0 1px 2px rgba(31,35,40,.07);
  --shadow-lg:0 18px 48px rgba(31,35,40,.16);
}

body{
  background:#f3f6f8;
  color:var(--ink);
}

/* Navigation interne claire */
.sidebar{
  background:#fff;
  color:var(--sidebar-ink);
  border-right:1px solid #d8dee4;
  box-shadow:2px 0 10px rgba(31,35,40,.04);
}
.sidebar__brand{
  background:#fff;
  border-bottom:1px solid #edf1f5;
}
.brand__logo{
  background:#fff;
  box-shadow:0 2px 8px rgba(31,35,40,.12);
}
.brand__title{
  color:#0a66c2;
}
.brand__sub{
  color:#6b7785;
}
.nav__group{
  color:#758292;
}
.nav__item{
  color:#334155;
  background:transparent;
}
.nav__item:hover{
  color:#0a66c2;
  background:#f3f6f8;
  border-color:#e5ebf0;
}
.nav__item.active{
  position:relative;
  background:#e8f3ff;
  color:#004182;
  border-color:#cfe5ff;
  box-shadow:none;
}
.nav__item.active::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:4px;
  border-radius:0 4px 4px 0;
  background:var(--accent);
}
.nav__ico,.nav__item.active .nav__ico{
  color:#0a66c2;
}
.nav__badge{
  background:#edf6ff;
  border-color:#cfe5ff;
  color:#0a66c2;
}
.nav__item.active .nav__badge{
  background:#fff;
  border-color:#cfe5ff;
  color:#004182;
}
.env-pill{
  background:#fff7f0;
  border-color:#ffd8bd;
  color:#9a4b00;
}

.topbar{
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #d8dee4;
  box-shadow:0 2px 10px rgba(31,35,40,.05);
}
.topbar__label{
  color:#687789;
}
.icon-btn{
  background:#fff;
  border-color:#d8dee4;
  color:#3f4b57;
}
.icon-btn:hover{
  background:#e8f3ff;
  border-color:#a8d4ff;
  color:#0a66c2;
}
.topbar__search input,.select,.fsearch,.fsel,.auth-inp,.ob-input,.cx-input{
  border-color:#ccd6dd;
  background:#fff;
  box-shadow:none;
}
.topbar__search input:focus,.select:focus,.fsearch:focus,.fsel:focus,.auth-inp:focus,.ob-input:focus,.cx-input:focus{
  border-color:#0a66c2;
  box-shadow:0 0 0 3px rgba(10,102,194,.14);
}

.content{
  background:transparent;
}
.page-head{
  border-left-color:#0a66c2;
  border-bottom-color:#dfe6eb;
}
.page-title{
  color:#1f2328;
}
.page-sub,.breadcrumb{
  color:#6b7785;
}
.card{
  background:#fff;
  border-color:#d8dee4;
  box-shadow:var(--shadow-sm);
}
.card::before{
  background:linear-gradient(90deg,#0a66c2 0%,#0a66c2 72%,var(--accent) 72%,var(--accent) 100%);
  opacity:.9;
}
.card:hover{
  border-color:#c7d1d9;
  box-shadow:var(--shadow);
}
.card__head{
  background:#fff;
  border-bottom-color:#edf1f5;
}
.card__title{
  color:#1f2328;
}
.btn{
  background:#fff;
  border-color:#ccd6dd;
  color:#1f2328;
  box-shadow:none;
}
.btn:hover{
  background:#f3f6f8;
  border-color:#b8c5ce;
}
.btn--primary,.auth-cta,.ld-btn.solid,.mfab{
  border-color:#0a66c2;
  background:#0a66c2;
  color:#fff;
  box-shadow:0 8px 18px rgba(10,102,194,.22);
}
.btn--primary:hover,.auth-cta:hover,.ld-btn.solid:hover{
  background:#004182;
}
.badge{
  background:var(--accent);
}
.user__avatar,.avatar{
  background:#0a66c2;
}
.kpi{
  border-left-color:#cfe5ff;
}
.kpi__val{
  color:#1f2328;
}
.kpi__label{
  color:#687789;
}
.bg-indigo,.bg-blue{
  background:#e8f3ff;
  color:#0a66c2;
}
.bg-purple{
  background:#eef2f6;
  color:#58667a;
}
.bg-amber{
  background:var(--accent-l);
  color:#b85200;
}
.progress__bar,.ld-track i{
  background:linear-gradient(90deg,#0a66c2,#2f9fae);
}
.tbl thead th,.grow.ghead,.ghead .glabel-wrap{
  background:#f3f6f8;
}
.subtabs button.active{
  color:#0a66c2;
  border-bottom-color:#0a66c2;
  background:#e8f3ff;
}
.viewtoggle button.active{
  background:#0a66c2;
}
.drawer__eyebrow,.link{
  color:#0a66c2;
}

/* Landing très claire */
.ld{
  background:#f3f6f8;
  color:#1f2328;
}
.ld-bg{
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 46%,rgba(255,255,255,.78) 100%),
    url("../assets/hero-chantier-cvc.png") center right/cover no-repeat;
}
.ld-bg::after{
  background:
    linear-gradient(rgba(10,102,194,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,102,194,.045) 1px,transparent 1px);
  background-size:56px 56px;
}
.ld-nav{
  background:rgba(255,255,255,.90);
  border-bottom:1px solid rgba(216,222,228,.72);
  box-shadow:0 2px 12px rgba(31,35,40,.04);
}
.ld-logo-full{
  background:#fff;
  box-shadow:0 2px 10px rgba(31,35,40,.10);
}
.ld-navlinks a{
  color:#334155;
}
.ld-navlinks a:hover{
  color:#0a66c2;
}
.ld-btn.ghost{
  background:#fff;
  color:#0a66c2;
  border:1px solid #a8d4ff;
}
.ld-btn.ghost:hover{
  background:#e8f3ff;
}
.ld-badge{
  background:#fff7f0;
  color:#9a4b00;
  border-color:#ffd8bd;
}
.ld-hero h1{
  color:#1f2328;
}
.ld-hero h1 span{
  background:linear-gradient(90deg,#0a66c2,#2f9fae);
  -webkit-background-clip:text;
  background-clip:text;
}
.ld-lead{
  color:#3f4b57;
}
.ld-trust{
  color:#637082;
}
.ld-card{
  background:rgba(255,255,255,.92);
  border-color:#d8dee4;
  box-shadow:0 16px 44px rgba(31,35,40,.12);
}
.ld-card__t,.ld-bar,.ld-h2sub,.ld-price-note{
  color:#5c6978;
}
.ld-kpi{
  background:#f3f6f8;
  border:1px solid #edf1f5;
}
.ld-kpi__l{
  color:#6b7785;
}
.ld-kpi__v,.ld-bar b,.ld-h2,.ld-final h2,.ld-feat h4,.ld-plan__nom,.ld-plan__price b,.ld-plan__devis{
  color:#1f2328;
}
.ld-features,.ld-pricing,.ld-final{
  background:transparent;
}
.ld-feat,.ld-plan{
  background:#fff;
  border-color:#d8dee4;
  box-shadow:var(--shadow-sm);
}
.ld-feat:hover,.ld-plan:hover{
  background:#fff;
  border-color:#a8d4ff;
  box-shadow:var(--shadow);
}
.ld-feat p,.ld-plan__feats li{
  color:#3f4b57;
}
.ld-feat__i{
  background:#e8f3ff;
  color:#0a66c2;
}
.ld-plan.pop{
  background:#fff;
  border-color:#0a66c2;
  box-shadow:0 16px 34px rgba(10,102,194,.14);
}
.ld-plan__tag{
  background:#0a66c2;
}
.ld-plan__price span,.ld-plan__desc{
  color:#5c6978;
}
.ld-plan__feats li span{
  color:#0a66c2;
}
.ld-opt{
  background:#fff;
  border-color:#d8dee4;
  color:#334155;
}
.ld-opt-t{
  color:#0a66c2;
}
.ld-foot{
  background:#fff;
  border-top:1px solid #d8dee4;
  color:#6b7785;
}

/* Auth et onboarding clairs */
.auth-ov{
  background:rgba(31,35,40,.42);
}
.auth-card{
  border-color:#d8dee4;
  box-shadow:0 22px 70px rgba(31,35,40,.22);
}
.auth-aside{
  background:linear-gradient(180deg,#ffffff 0%,#eef7ff 100%);
  color:#1f2328;
  border-right:1px solid #d8dee4;
}
.auth-aside h2,.auth-feat b{
  color:#1f2328;
}
.auth-aside p{
  color:#3f4b57;
}
.auth-feat .fi{
  background:#e8f3ff;
  border-color:#cfe5ff;
  color:#0a66c2;
}
.auth-brand-icon{
  box-shadow:0 2px 10px rgba(31,35,40,.12);
}
.auth-toggle{
  background:#f3f6f8;
}
.auth-toggle button.on{
  color:#0a66c2;
}
.ob__rail{
  background:#fff;
  color:#334155;
  border-right:1px solid #d8dee4;
}
.ob__brand{
  color:#0a66c2;
}
.ob__step{
  color:#637082;
}
.ob__step span{
  background:#e8f3ff;
  color:#0a66c2;
}
.ob__step.active{
  background:#e8f3ff;
  color:#004182;
}
.ob__step.active span{
  background:#0a66c2;
}
.ob__rail-foot{
  color:#758292;
}

.appfoot,.mbar{
  background:#fff;
}
.mbar__ic,.mbar__i:hover,.mbar__i:active{
  color:#0a66c2;
}
.mbar__i:hover,.mbar__i:active{
  background:#e8f3ff;
}

@media (max-width:900px){
  .ld-bg{
    background:#f3f6f8;
  }
  .ld-nav{
    background:#fff;
  }
}

/* ============================================================================
   Direction validée 2026-06-30 : Matterport immobilier pro + énergie Strava.
   Blanc dominant, graphite technique, orange pour les actions fortes.
   ============================================================================ */
:root{
  --bg:#f5f6f4;
  --surface:#ffffff;
  --surface-2:#f8faf7;
  --line:#dce3ea;
  --line-2:#eef2f5;
  --ink:#171a1f;
  --ink-2:#3c4652;
  --muted:#65717e;
  --muted-2:#8a96a3;
  --primary:#fc4c02;
  --primary-d:#d63f00;
  --primary-l:#fff0e8;
  --blue:#0f2742;
  --blue-l:#edf5fb;
  --charcoal:#171a1f;
  --sand:#f8f5ef;
  --radius:8px;
  --radius-sm:6px;
  --shadow:0 1px 2px rgba(23,26,31,.06),0 12px 28px rgba(15,39,66,.08);
  --shadow-sm:0 1px 2px rgba(23,26,31,.06);
  --shadow-lg:0 18px 44px rgba(15,39,66,.18);
  --sb-w:272px;
}

body{
  background:linear-gradient(180deg,#fff 0,#fff 86px,var(--bg) 360px);
  color:var(--ink);
}

.sidebar{
  background:#fff;
  color:var(--ink);
  border-right:1px solid var(--line);
  box-shadow:none;
}
.sidebar__brand{
  background:#fff;
  border-bottom:1px solid var(--line-2);
}
.brand__title{ color:var(--blue); }
.brand__sub{ display:block;color:var(--muted); }
.nav__group{
  color:#7b8794;
  font-size:10px;
  letter-spacing:.08em;
}
.nav__item{
  color:#263446;
  border:1px solid transparent;
}
.nav__item:hover{
  background:var(--primary-l);
  color:var(--primary-d);
}
.nav__item.active{
  background:#fff7f2;
  color:var(--primary-d);
  border-color:#ffd2bd;
  box-shadow:none;
  position:relative;
}
.nav__item.active::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:4px;
  border-radius:0 4px 4px 0;
  background:var(--primary);
}
.nav__ico{ color:currentColor; }
.nav__badge{
  background:var(--primary);
  color:#fff;
}
.sidebar__footer{
  background:#fff;
  border-top:1px solid var(--line-2);
}
.workspace-switch{
  padding:14px 14px 8px;
  border-bottom:1px solid var(--line-2);
}
.workspace-seg{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3px;
  padding:3px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:8px;
}
.workspace-seg button{
  min-height:36px;
  border:0;
  background:transparent;
  border-radius:6px;
  color:var(--muted);
  font-weight:800;
  font-size:12px;
  cursor:pointer;
}
.workspace-seg button.active{
  background:#fff;
  color:var(--primary-d);
  box-shadow:0 1px 2px rgba(23,26,31,.10);
}

.topbar{
  background:rgba(255,255,255,.95);
  border-bottom:1px solid var(--line);
}
.topbar .btn,.topbar .select{
  white-space:nowrap;
}
#authBtn{
  min-width:112px;
}
.content{
  padding:26px 28px 42px;
  max-width:1680px;
}
.page-head{
  border-left:4px solid var(--primary);
  padding-left:14px;
}
.page-title{
  font-size:27px;
  font-weight:800;
  letter-spacing:0;
  color:var(--ink);
}
.page-sub{ color:var(--muted); }

.card,.kpi,.table-wrap,.v2card,.ld-plan,.ld-feat,.auth-card{
  border-radius:8px;
}
.card{
  background:#fff;
  border-color:var(--line);
  box-shadow:var(--shadow);
}
.card:hover{
  box-shadow:var(--shadow);
}
.card__head{
  border-bottom:1px solid var(--line-2);
}

.btn,.icon-btn,.select,.topbar__search input,.input,.cx-input,.ob-input{
  border-radius:8px;
}
.btn--primary,.auth-cta,.ld-btn.solid,.mfab{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
  box-shadow:0 10px 22px rgba(252,76,2,.22);
}
.btn--primary:hover,.auth-cta:hover,.ld-btn.solid:hover{
  background:var(--primary-d);
}
.ld-btn.demo{
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:#fff;
}
.ld-btn.demo:hover{
  background:#0b1017;
}
.ld-btn.ghost{
  color:var(--blue);
  border-color:#cbd8e5;
}
.ld-btn.ghost:hover{
  background:var(--blue-l);
  color:var(--blue);
}
.subtabs button.active{
  color:var(--primary-d);
  border-bottom-color:var(--primary);
  background:var(--primary-l);
}
.viewtoggle button.active{
  background:var(--primary);
  color:#fff;
}
.progress__bar,.ld-track i{
  background:linear-gradient(90deg,var(--primary),var(--blue));
}
.user__avatar,.avatar{
  background:var(--blue);
}
.badge{
  background:var(--primary);
}
.bg-indigo,.bg-blue{
  background:var(--blue-l);
  color:var(--blue);
}
.bg-amber{
  background:var(--primary-l);
  color:var(--primary-d);
}

.ld{
  background:var(--bg);
}
.ld-bg{
  background:
    linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 48%,rgba(255,255,255,.80) 100%),
    url("../assets/hero-chantier-cvc.png") center right/cover no-repeat;
}
.ld-nav{
  background:rgba(255,255,255,.94);
}
.ld-badge{
  background:var(--primary-l);
  color:var(--primary-d);
  border-color:#ffc4ad;
}
.ld-hero h1 span{
  background:linear-gradient(90deg,var(--primary),#1b83a6);
  -webkit-background-clip:text;
  background-clip:text;
}
.ld-plan.pop{
  border-color:var(--primary);
  box-shadow:0 16px 34px rgba(252,76,2,.14);
}
.ld-plan__tag{
  background:var(--primary);
}
.ld-feat__i{
  background:var(--primary-l);
  color:var(--primary);
}

.b360-spatial{
  display:grid;
  grid-template-columns:minmax(0,1fr) 430px;
  gap:24px;
  width:100%;
  min-width:0;
  margin:0 0 16px;
  background:var(--charcoal);
  color:#fff;
  border:1px solid #252b33;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(15,39,66,.18);
}
.b360-spatial__copy{
  padding:25px 26px;
  display:flex;
  flex-direction:column;
  gap:18px;
  min-width:0;
}
.b360-spatial__eyebrow{
  color:#ffb08d;
  font-size:12px;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.b360-spatial h2{
  max-width:760px;
  margin:4px 0 8px;
  font-size:30px;
  line-height:1.08;
  letter-spacing:0;
}
.b360-spatial p{
  margin:0;
  max-width:760px;
  color:#d9e1ea;
  overflow-wrap:anywhere;
}
.b360-spatial__actions{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
}
.b360-spatial__actions .btn{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);
  color:#fff;
}
.b360-spatial__actions .btn--primary{
  background:var(--primary);
  border-color:var(--primary);
}
.b360-spatial__stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.b360-spatial__stats div{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.13);
  border-radius:8px;
  padding:11px 12px;
}
.b360-spatial__stats span{
  display:block;
  color:#aebcca;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.b360-spatial__stats b{
  display:block;
  margin-top:4px;
  font-size:20px;
}
.b360-spatial__scan{
  position:relative;
  min-height:315px;
  padding:20px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,0) 42%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 34px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 34px);
  border-left:1px solid rgba(255,255,255,.09);
}
.b360-spatial__scan .level{
  position:absolute;
  left:48px;
  right:28px;
  height:54px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:6px;
  background:rgba(255,255,255,.06);
}
.b360-spatial__scan .l1{ top:36px; }
.b360-spatial__scan .l2{ top:112px; }
.b360-spatial__scan .l3{ top:188px; }
.b360-spatial__scan .level::before{
  content:"";
  position:absolute;
  left:18px;
  top:14px;
  width:54%;
  height:14px;
  background:rgba(255,255,255,.14);
  border-radius:4px;
}
.b360-spatial__scan .level::after{
  content:"";
  position:absolute;
  right:18px;
  top:13px;
  width:38px;
  height:26px;
  background:var(--primary);
  border-radius:4px;
}
.b360-spatial__scan .scan-route{
  position:absolute;
  left:72px;
  top:63px;
  bottom:58px;
  width:3px;
  background:var(--primary);
  border-radius:999px;
  box-shadow:0 0 0 6px rgba(252,76,2,.12);
}
.b360-spatial__scan .pin{
  position:absolute;
  left:66px;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#fff;
  border:4px solid var(--primary);
  box-shadow:0 4px 12px rgba(252,76,2,.34);
}
.b360-spatial__scan .p1{ top:57px; }
.b360-spatial__scan .p2{ top:132px; }
.b360-spatial__scan .p3{ top:208px; }
.scan-note{
  position:absolute;
  right:18px;
  width:168px;
  background:#fff;
  color:var(--ink);
  border-radius:8px;
  padding:12px;
  border-left:4px solid var(--primary);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.scan-note.top{ top:24px; }
.scan-note.bottom{ bottom:20px; }
.scan-note span{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.scan-note b{
  display:block;
  margin-top:4px;
  font-size:17px;
}

.dt-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:22px;
  align-items:stretch;
  margin:0 0 18px;
  padding:24px;
  color:#fff;
  background:linear-gradient(135deg,var(--charcoal),#25313d);
  border-radius:8px;
  border:1px solid #28323d;
  box-shadow:0 18px 40px rgba(15,39,66,.16);
}
.dt-eyebrow{
  display:inline-block;
  margin-bottom:10px;
  color:#ffb08d;
  font-size:12px;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.dt-hero h2{
  margin:0;
  max-width:760px;
  font-size:30px;
  line-height:1.08;
  letter-spacing:0;
}
.dt-hero p{
  max-width:760px;
  margin:12px 0 0;
  color:#d9e1ea;
}
.dt-proof{
  display:grid;
  align-content:center;
  justify-items:start;
  gap:4px;
  padding:18px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(255,255,255,.07);
}
.dt-proof b{
  font-size:34px;
  line-height:1;
}
.dt-proof span{
  font-weight:800;
}
.dt-proof small{
  color:#afbdca;
}
.dt-meter{
  padding:12px 0;
  border-bottom:1px solid var(--line-2);
}
.dt-meter:last-child{
  border-bottom:0;
}
.dt-meter__head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.dt-meter__bar{
  height:8px;
  overflow:hidden;
  background:var(--line-2);
  border-radius:999px;
}
.dt-meter__bar i{
  display:block;
  height:100%;
  background:linear-gradient(90deg,var(--primary),var(--blue));
  border-radius:999px;
}
.dt-section{
  margin-top:22px;
}
.dt-section__head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:12px;
  margin:0 0 10px;
}
.dt-section__head h3{
  margin:0;
  font-size:18px;
}
.dt-section__head span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.dt-zone-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:14px;
}
.dt-zone{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:190px;
  padding:16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow-sm);
}
.dt-zone__top{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--blue);
}
.dt-zone__top .ui-svg{
  width:22px;
  height:22px;
}
.dt-zone__path{
  min-height:36px;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.45;
}
.dt-zone__nums{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:auto;
}
.dt-zone__nums span{
  padding:8px;
  border-radius:8px;
  background:var(--bg);
  color:var(--muted);
  font-size:11px;
}
.dt-zone__nums b{
  display:block;
  color:var(--ink);
  font-size:18px;
}
.dt-row{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--line-2);
  cursor:pointer;
}
.dt-row:last-child{
  border-bottom:0;
}
.dt-row:hover b{
  color:var(--primary-d);
}
.dt-row__ico{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:var(--blue);
  background:var(--blue-l);
}
.dt-row__body{
  min-width:0;
}
.dt-row__body b,
.dt-row__body span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dt-row__body span{
  color:var(--muted);
  font-size:12px;
}

@media (max-width:1180px){
  .b360-spatial{
    grid-template-columns:1fr;
  }
  .b360-spatial__scan{
    border-left:0;
    border-top:1px solid rgba(255,255,255,.09);
  }
}
@media (max-width:820px){
  .dt-hero{
    grid-template-columns:1fr;
  }
  .content{
    padding:20px 14px 92px;
  }
  .page-title{
    font-size:23px;
  }
  .b360-spatial__stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .b360-spatial{
    width:100%;
    max-width:100%;
  }
  .b360-spatial *{
    min-width:0;
  }
  .b360-spatial__copy{
    padding:22px 26px 24px;
  }
  .b360-spatial__actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .b360-spatial__actions .btn{
    width:100%;
    justify-content:center;
  }
  .b360-spatial h2{
    font-size:24px;
  }
  .b360-spatial__scan{
    display:none;
  }
}

@media (max-width:520px){
  html,
  body,
  #app,
  .app-shell,
  .main{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .content{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    overflow-x:hidden;
  }
  .topbar{
    gap:10px;
    overflow-x:hidden;
  }
  .topbar__label{
    display:none;
  }
  .topbar__project .select{
    min-width:150px;
    max-width:calc(100vw - 224px);
  }
  .topbar__actions{
    gap:8px;
    margin-left:auto;
    flex:0 0 auto;
  }
  .topbar__actions .icon-btn,
  .topbar__actions .user{
    display:none;
  }
  .content > *{
    max-width:100%;
    box-sizing:border-box;
  }
  .b360-spatial{
    display:block;
    width:100%;
    max-width:100%;
    margin-left:0;
    margin-right:0;
    box-sizing:border-box;
  }
  .b360-spatial__copy{
    padding:22px 16px 24px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  .b360-spatial__copy > *{
    max-width:100%;
  }
  .b360-spatial h2,
  .b360-spatial p{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .b360-spatial h2{
    font-size:22px;
    line-height:1.12;
  }
  .b360-spatial p{
    font-size:13px;
    line-height:1.45;
  }
  .b360-spatial__stats{
    grid-template-columns:1fr;
  }
  .dt-hero{
    padding:20px 16px;
  }
  .dt-hero h2{
    font-size:22px;
    line-height:1.12;
  }
  .dt-hero p{
    font-size:13px;
  }
  .dt-zone-grid{
    grid-template-columns:1fr;
  }
  .dt-row{
    grid-template-columns:30px minmax(0,1fr);
  }
  .dt-row .tag{
    grid-column:2;
    justify-self:start;
  }
}

/* Landing v3 - blanc dominant, Matterport x Strava */
.ld{
  background:#ffffff;
  color:#111827;
  letter-spacing:0;
}
.ld-bg{
  position:fixed;
  inset:0;
  background:
    linear-gradient(90deg,#ffffff 0%,rgba(255,255,255,.98) 42%,rgba(255,255,255,.82) 64%,rgba(255,255,255,.44) 100%),
    url('../assets/hero-chantier-cvc.png') center right / cover no-repeat;
  opacity:1;
  filter:none;
}
.ld-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(15,39,66,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(15,39,66,.05) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,.04) 64%,transparent);
  pointer-events:none;
}
.ld-nav{
  position:sticky;
  top:0;
  z-index:40;
  isolation:isolate;
  max-width:1320px;
  margin:0 auto;
  padding:16px 5vw 12px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(15,39,66,.08);
  box-shadow:0 14px 34px rgba(15,39,66,.08);
  backdrop-filter:blur(16px);
}
.ld-logo-full{
  height:72px;
  width:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.ld-navlinks,
.ld-navlinks a{
  color:#1f2937;
}
.ld-navlinks a:hover{
  color:#fc4c02;
}
.ld-btn{
  border-radius:8px;
  letter-spacing:0;
  box-shadow:none;
}
.ld-btn.primary{
  background:#fc4c02;
  color:#fff;
  border-color:#fc4c02;
  box-shadow:0 16px 32px rgba(252,76,2,.24);
}
.ld-btn.primary:hover{
  background:#e24400;
  border-color:#e24400;
  transform:translateY(-1px);
}
.ld-btn.ghost{
  color:#0f2742;
  background:#ffffff;
  border-color:rgba(15,39,66,.18);
}
.ld-btn.demo{
  color:#ffffff;
  background:#0f2742;
  border-color:#0f2742;
}
.ld-main{
  position:relative;
  z-index:1;
}
.ld-hero{
  display:block;
  max-width:1320px;
  min-height:620px;
  margin:0 auto;
  padding:76px 5vw 130px;
}
.ld-hero__txt{
  max-width:760px;
  padding:0;
}
.ld-badge{
  display:inline-flex;
  color:#0f2742;
  background:#ffffff;
  border:1px solid rgba(252,76,2,.26);
  box-shadow:0 10px 24px rgba(15,39,66,.08);
}
.ld-badge::before{
  background:#fc4c02;
  box-shadow:0 0 0 6px rgba(252,76,2,.10);
}
.ld-hero h1{
  margin:24px 0 8px;
  color:#0f2742;
  font-size:78px;
  line-height:.95;
  letter-spacing:0;
  text-shadow:none;
}
.ld-hero h1 span{
  color:#fc4c02;
}
.ld-hero__claim{
  max-width:720px;
  margin:0;
  color:#111827;
  font-size:44px;
  line-height:1.04;
  font-weight:900;
  letter-spacing:0;
}
.ld-lead{
  max-width:690px;
  color:#4b5563;
  font-size:21px;
  line-height:1.55;
}
.ld-trust{
  color:#6b7280;
}
.ld-hero__card,
.ld-sky{
  display:none;
}
.ld-proofbar{
  position:relative;
  z-index:2;
  max-width:1180px;
  margin:-86px auto 72px;
  padding:22px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(15,39,66,.12);
  border-radius:8px;
  box-shadow:0 24px 70px rgba(15,39,66,.16);
}
.ld-proofbar__head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
  color:#6b7280;
  font-weight:800;
}
.ld-proofbar__head strong{
  color:#0f2742;
}
.ld-proofgrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:20px;
}
.ld-proofgrid div{
  min-height:94px;
  padding:16px;
  background:#f7f9fc;
  border:1px solid rgba(15,39,66,.08);
  border-radius:8px;
}
.ld-proofgrid span{
  display:block;
  color:#6b7280;
  font-size:13px;
  font-weight:800;
}
.ld-proofgrid strong{
  display:block;
  margin-top:10px;
  color:#0f2742;
  font-size:28px;
}
.ld-proofrows{
  display:grid;
  gap:12px;
}
.ld-proofrows div{
  display:grid;
  grid-template-columns:170px 1fr 56px;
  align-items:center;
  gap:14px;
  color:#344054;
  font-weight:800;
}
.ld-proofrows i{
  position:relative;
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#e5e7eb;
}
.ld-proofrows i::after{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:var(--w);
  border-radius:inherit;
  background:#fc4c02;
}
.ld-proofrows b{
  text-align:right;
  color:#0f2742;
}
.ld-section{
  max-width:1180px;
  margin:0 auto 78px;
  padding:0 5vw;
}
.ld-section h2,
.ld-final h2{
  color:#0f2742;
  letter-spacing:0;
}
.ld-kicker{
  color:#fc4c02;
}
.ld-grid{
  gap:16px;
}
.ld-feature,
.ld .ld-plan{
  border-radius:8px;
  background:#ffffff;
  border:1px solid rgba(15,39,66,.12);
  box-shadow:0 18px 48px rgba(15,39,66,.08);
}
.ld-feature i{
  color:#fc4c02;
  background:rgba(252,76,2,.10);
}
.ld-feature h3,
.ld .ld-plan__nom,
.ld .ld-plan__price{
  color:#0f2742;
}
.ld-feature p,
.ld .ld-plan__sub,
.ld .ld-plan li{
  color:#4b5563;
}
.ld .ld-plan.pop{
  border-color:#fc4c02;
  box-shadow:0 22px 58px rgba(252,76,2,.16);
}
.ld .ld-plan.pop::before{
  background:#fc4c02;
  color:#fff;
}
.ld-final{
  max-width:1180px;
  margin:0 auto 80px;
  padding:48px 5vw;
  color:#fff;
  background:linear-gradient(135deg,#0f2742 0%,#173a5d 62%,#fc4c02 100%);
  border-radius:8px;
  box-shadow:0 22px 58px rgba(15,39,66,.20);
}
.ld-final h2{
  color:#ffffff;
}
.ld-footer{
  color:#6b7280;
  background:#ffffff;
  border-top:1px solid rgba(15,39,66,.08);
}
#c360-conn{
  z-index:140!important;
}

@media (max-width: 980px){
  .ld-nav{
    gap:12px;
  }
  .ld-logo-full{
    height:58px;
  }
  .ld-navlinks{
    gap:8px;
  }
  .ld-navlinks a{
    display:none;
  }
  .ld-hero{
    min-height:auto;
    padding:54px 5vw 112px;
  }
  .ld-hero h1{
    font-size:58px;
  }
  .ld-hero__claim{
    font-size:34px;
  }
  .ld-lead{
    font-size:18px;
  }
  .ld-proofbar{
    margin:-70px 5vw 56px;
  }
  .ld-proofgrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 640px){
  .ld-bg{
    background:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.96) 58%,rgba(255,255,255,.74) 100%),url('../assets/hero-chantier-cvc.png') center top / cover no-repeat;
  }
  .ld-nav{
    padding:12px 18px;
  }
  .ld-logo-full{
    height:48px;
  }
  .ld-navlinks .ld-btn.demo{
    display:none;
  }
  .ld-navlinks .ld-btn.ghost{
    display:none;
  }
  .ld-btn.primary{
    padding:12px 14px;
  }
  .ld-hero{
    padding:40px 20px 96px;
  }
  .ld-hero h1{
    font-size:44px;
  }
  .ld-hero__claim{
    font-size:29px;
  }
  .ld-cta{
    align-items:stretch;
  }
  .ld-proofgrid{
    grid-template-columns:1fr;
  }
  .ld-proofrows div{
    grid-template-columns:1fr;
    gap:7px;
  }
  .ld-proofrows b{
    text-align:left;
  }
}

/* Landing v4 - lisibilite blocs, typographie et relief */
.ld .ld-section{
  max-width:1240px;
  margin:0 auto 88px;
}
.ld .ld-kicker{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 13px;
  margin:0 0 18px;
  color:#fc4c02;
  background:rgba(252,76,2,.09);
  border:1px solid rgba(252,76,2,.18);
  border-radius:8px;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}
.ld .ld-section h2{
  max-width:920px;
  margin:0 0 30px;
  color:#0f2742;
  font-size:38px;
  line-height:1.16;
  font-weight:900;
}
.ld .ld-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.ld .ld-feat{
  min-height:260px;
  padding:32px 30px;
  color:#0f2742;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid rgba(15,39,66,.14);
  border-radius:8px;
  box-shadow:0 24px 58px rgba(15,39,66,.14),0 2px 8px rgba(15,39,66,.08);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.ld .ld-feat:hover{
  transform:translateY(-4px);
  border-color:rgba(252,76,2,.44);
  box-shadow:0 30px 72px rgba(15,39,66,.18),0 12px 26px rgba(252,76,2,.10);
}
.ld .ld-feat__i{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  margin:0 0 24px;
  color:#fc4c02;
  background:#fff1eb;
  border:1px solid rgba(252,76,2,.16);
  border-radius:8px;
  box-shadow:0 12px 24px rgba(252,76,2,.12);
  font-size:0;
}
.ld .ld-feat__i .ui-svg,
.ld .ld-feat__i .ld-svg{
  display:block;
  width:31px;
  height:31px;
}
.ld .ld-feat h4{
  margin:0 0 12px;
  color:#111827;
  font-size:22px;
  line-height:1.18;
  font-weight:900;
}
.ld .ld-feat p{
  margin:0;
  color:#526071;
  font-size:17px;
  line-height:1.55;
  font-weight:500;
}
.ld .ld-pricing{
  padding-top:10px;
}
.ld .ld-pricing .ld-kicker,
.ld .ld-pricing h2{
  display:flex;
  width:max-content;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.ld .ld-options{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:16px;
  max-width:none;
  margin:48px auto 0;
}
.ld .ld-plan{
  min-height:500px;
  padding:38px 26px 30px;
  gap:16px;
  color:#0f2742;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  border:1px solid rgba(15,39,66,.16);
  border-radius:8px;
  box-shadow:0 26px 68px rgba(15,39,66,.16),0 2px 8px rgba(15,39,66,.08);
}
.ld .ld-plan:hover{
  transform:translateY(-5px);
  border-color:rgba(252,76,2,.36);
  box-shadow:0 34px 84px rgba(15,39,66,.20),0 14px 30px rgba(252,76,2,.10);
}
.ld .ld-plan.pop{
  background:linear-gradient(180deg,#fff8f4 0%,#ffffff 64%);
  border:2px solid #fc4c02;
  box-shadow:0 36px 92px rgba(15,39,66,.22),0 18px 38px rgba(252,76,2,.18);
}
.ld .ld-plan__tag{
  top:-22px;
  padding:10px 24px;
  color:#ffffff;
  background:#fc4c02;
  border-radius:999px;
  box-shadow:0 16px 34px rgba(252,76,2,.28);
  font-size:13px;
  font-weight:900;
  letter-spacing:0;
}
.ld .ld-plan__nom{
  color:#0f2742;
  font-size:27px;
  line-height:1.1;
  font-weight:900;
  text-align:center;
}
.ld .ld-plan__price{
  min-height:74px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:8px;
  color:#0f2742;
}
.ld .ld-plan__price b{
  color:#0f2742;
  font-size:54px;
  line-height:.95;
  font-weight:900;
}
.ld .ld-plan.pop .ld-plan__price b{
  color:#fc4c02;
}
.ld .ld-plan__price span{
  color:#667085;
  font-size:18px;
  font-weight:800;
}
.ld .ld-plan__devis{
  color:#0f2742;
  font-size:28px;
  font-weight:900;
}
.ld .ld-plan__desc{
  min-height:0;
  margin:-4px 0 6px;
  color:#667085;
  font-size:16px;
  line-height:1.4;
  font-weight:800;
  text-align:center;
}
.ld .ld-plan__feats{
  gap:13px;
  margin:16px 0 0;
}
.ld .ld-plan__feats li{
  color:#3f4b5c;
  font-size:16px;
  line-height:1.35;
  font-weight:650;
}
.ld .ld-plan__feats li span{
  color:#fc4c02;
  font-weight:900;
}
.ld .ld-plan__feats li b{
  color:#0f2742;
}
.ld .ld-plan .ld-btn{
  min-height:58px;
  margin-top:auto;
  justify-content:center;
  border-radius:8px;
  font-size:17px;
  font-weight:900;
}
.ld .ld-plan .ld-btn.solid,
.ld .ld-plan.pop .ld-btn{
  color:#ffffff;
  background:#fc4c02;
  border-color:#fc4c02;
  box-shadow:0 18px 34px rgba(252,76,2,.24);
}
.ld .ld-plan .ld-btn.ghost{
  color:#0f2742;
  background:#ffffff;
  border-color:rgba(15,39,66,.20);
}

@media (max-width: 1180px){
  .ld .ld-options{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 980px){
  .ld .ld-grid,
  .ld .ld-options{
    grid-template-columns:1fr;
  }
  .ld .ld-section h2{
    font-size:31px;
  }
  .ld .ld-plan.pop{
    transform:none;
  }
}
@media (max-width: 640px){
  .ld .ld-section{
    margin-bottom:58px;
    padding-left:20px;
    padding-right:20px;
  }
  .ld .ld-section h2{
    font-size:27px;
  }
  .ld .ld-feat,
  .ld .ld-plan{
    min-height:auto;
    padding:26px 22px;
  }
}

/* ============================================================================
   Increment 3 - Action First terrain cards
   ============================================================================ */
.af-shell{display:grid;gap:12px;margin:0 0 18px;min-width:0}
.af-trail{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:800;min-width:0}
.af-trail__seg{display:inline-flex;align-items:center;min-height:30px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.af-trail__seg.strong{color:var(--ink);border-color:#cbd5e1}
.af-trail__sep{color:#94a3b8}
.af-project{display:grid;gap:9px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px 14px;box-shadow:var(--shadow-sm);min-width:0}
.af-project__main{display:flex;align-items:center;justify-content:space-between;gap:12px}
.af-project__main span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}
.af-project__main strong{font-size:24px;color:var(--ink)}
.af-project__bar{height:9px;border-radius:999px;background:#e5edf3;overflow:hidden}
.af-project__bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0a66c2,#fc4c02)}
.af-project__stats{display:flex;gap:8px;flex-wrap:wrap}
.af-project__stats span{border:1px solid var(--line);border-radius:999px;background:#f8fafc;padding:6px 9px;font-size:12px;font-weight:800;color:var(--ink-2)}
.af-actions{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;box-shadow:var(--shadow-sm);min-width:0}
.af-actions__label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}
.af-actions__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}
.af-action{display:flex;align-items:center;gap:9px;min-height:50px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--ink);text-decoration:none;padding:10px 11px;font-weight:900;font-size:13px;line-height:1.2}
.af-action:hover,.af-action.active{border-color:var(--primary);background:#fff7ed;color:var(--primary)}
.af-action__icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#fff;color:var(--primary);flex:none}
.af-action__icon .ui-svg{width:18px;height:18px}
.af-entity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:12px;min-width:0}
.af-entity-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;box-shadow:var(--shadow-sm);min-width:0}
.af-entity-card__head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:flex-start;min-width:0}
.af-entity-card__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#e8f3ff;color:#0a66c2;flex:none}
.af-entity-card__icon .ui-svg{width:21px;height:21px}
.af-entity-card h3{margin:0;color:var(--ink);font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.af-entity-card p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.af-entity-card__status{display:flex;align-items:flex-end;gap:5px;flex-direction:column}
.af-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.af-meta span{display:grid;gap:2px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:8px 9px;color:var(--muted);font-size:11px;font-weight:800;min-width:0}
.af-meta b{color:var(--ink);font-size:12.5px;overflow-wrap:anywhere}
.af-card-progress{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}
.af-card-progress span{font-weight:900;color:var(--ink)}
.af-card-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px}
.af-card-btn{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:900;padding:9px 10px;cursor:pointer}
.af-card-btn:hover{border-color:var(--primary);color:var(--primary);background:#fff7ed}
.af-card-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.af-card-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fff7f7}
.af-empty{border:1px dashed var(--line);border-radius:8px;background:#fff;padding:24px;text-align:center;color:var(--muted);font-weight:800}
.af-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:12px;margin:0 0 16px;min-width:0}
.af-plan-card{display:grid;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden;min-width:0}
.af-plan-card.active{outline:2px solid var(--primary);border-color:var(--primary)}
.af-plan-preview{position:relative;min-height:168px;background:linear-gradient(135deg,hsl(var(--h),36%,88%),hsl(var(--h),32%,72%));overflow:hidden}
.af-plan-preview span{position:absolute;left:14px;top:14px;width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.86);color:#0a66c2}
.af-plan-preview i{position:absolute;background:rgba(15,23,42,.20)}
.af-plan-preview i:nth-child(2){left:18%;top:24%;width:64%;height:3px}
.af-plan-preview i:nth-child(3){left:50%;top:18%;width:3px;height:66%}
.af-plan-preview i:nth-child(4){left:18%;top:62%;width:64%;height:3px}
.af-plan-card__body{display:grid;gap:10px;padding:13px}
.af-plan-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.af-plan-card h3{margin:0;color:var(--ink);font-size:15px;line-height:1.25}
.af-plan-card p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.35}
.af-plan-stats{display:flex;gap:7px;flex-wrap:wrap}
.af-plan-stats span{border:1px solid var(--line);border-radius:999px;background:#f8fafc;padding:5px 8px;font-size:11.5px;font-weight:900;color:var(--ink-2)}
.mfab[data-label]::after{content:attr(data-label);position:absolute;right:68px;top:50%;transform:translateY(-50%);max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;font-weight:900;padding:9px 10px;box-shadow:var(--shadow-sm);pointer-events:none}
@media (max-width:768px){
  .af-shell{gap:10px;margin-bottom:14px}
  .af-actions__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .af-action{min-height:54px;padding:10px;font-size:12.5px}
  .af-entity-grid,.af-plan-grid{grid-template-columns:1fr}
  .af-entity-card{padding:13px}
  .af-entity-card__head{grid-template-columns:auto minmax(0,1fr)}
  .af-entity-card__status{grid-column:1/-1;align-items:flex-start;flex-direction:row;flex-wrap:wrap}
  .af-card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .af-actions__grid,.af-meta,.af-card-actions{grid-template-columns:1fr}
  .af-project__stats span{flex:1 1 44%}
  .mfab[data-label]::after{display:none}
}

/* ============================================================================
   Increment 4 - Spatial chantier navigation
   ============================================================================ */
.sp-shell{display:grid;gap:14px;min-width:0}
.sp-breadcrumb{position:sticky;top:64px;z-index:12;display:flex;align-items:stretch;gap:7px;flex-wrap:wrap;margin:-6px 0 2px;padding:9px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);min-width:0}
.sp-bc__item{display:grid;gap:1px;min-width:0;max-width:190px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:7px 9px}
.sp-bc__item small{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.sp-bc__item b{color:var(--ink);font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-bc__item.strong{border-color:#d8e5ef;background:#fff}
.sp-bc__sep{display:grid;place-items:center;color:#94a3b8;font-weight:900}
.sp-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.sp-main,.sp-route-content{min-width:0}
.sp-layout>.sp-explorer{position:sticky;top:126px;max-height:calc(100vh - 144px);overflow:auto}
.sp-explorer{min-width:0}
.sp-mobile-summary{display:none}
.sp-explorer__details{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}
.sp-explorer__details summary{display:flex;align-items:center;gap:9px;min-height:48px;padding:11px 13px;font-weight:900;color:var(--ink);cursor:pointer;border-bottom:1px solid var(--line-2);list-style:none}
.sp-explorer__details summary::-webkit-details-marker{display:none}
.sp-explorer__details summary .ui-svg{width:18px;height:18px;color:var(--primary)}
.sp-tree{padding:10px 10px 12px;min-width:0}
.sp-tree ul{list-style:none;margin:0;padding:0 0 0 13px;border-left:1px solid #e5edf3}
.sp-tree>ul{padding-left:0;border-left:0}
.sp-tree li{display:grid;gap:5px;margin:0 0 5px;min-width:0}
.sp-tree__node{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:38px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-2);text-align:left;padding:8px 9px;font-weight:850}
.sp-tree__node .ui-svg{width:16px;height:16px;color:#64748b}
.sp-tree__node b{font-size:12.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-tree__node:hover,.sp-tree__node.active{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.sp-tree__node:hover .ui-svg,.sp-tree__node.active .ui-svg{color:#fc4c02}
.sp-tree__node--org,.sp-tree__node--root{background:#f8fafc;border-color:#eef2f7;color:var(--ink)}
.sp-tree__node.project{border-color:#bfdbfe;background:#eff6ff;color:#0a66c2}
.sp-tree__lots{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 4px 28px}
.sp-tree__lots button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:4px 7px;font-size:10.5px;font-weight:900;color:var(--ink-2)}
.sp-tree__lots button:hover{border-color:#fc4c02;color:#fc4c02;background:#fff7ed}
.sp-explorer__mini{display:grid;gap:5px;margin:0 10px 12px;padding:11px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc}
.sp-explorer__mini span,.sp-explorer__mini small{color:var(--muted);font-size:11px;font-weight:800}
.sp-explorer__mini b{color:var(--ink);font-size:13px}
.sp-explorer__mini div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sp-explorer__mini strong{color:#fc4c02;font-size:21px;line-height:1}
.sp-mobile-nav{display:none}
.sp-dash-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:12px;align-items:stretch;margin:0 0 14px;min-width:0}
.sp-zone-card,.sp-lot-card,.sp-asset-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);padding:14px;min-width:0}
.sp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.sp-card-head span{display:block;color:#fc4c02;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.sp-card-head h2{margin:2px 0 3px;color:var(--ink);font-size:17px;line-height:1.18;overflow-wrap:anywhere}
.sp-card-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.sp-card-head strong{display:grid;place-items:center;min-width:54px;height:42px;border-radius:8px;background:#fff7ed;color:#fc4c02;font-size:21px}
.sp-card-head strong .ui-svg{width:21px;height:21px}
.sp-kpis,.sp-lot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0}
.sp-kpis div,.sp-lot-grid div{display:grid;gap:2px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:8px;min-width:0}
.sp-kpis small,.sp-lot-grid small{color:var(--muted);font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.sp-kpis b,.sp-lot-grid b{color:var(--ink);font-size:13px;overflow-wrap:anywhere}
.sp-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.sp-action{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:8px;font-size:12px;font-weight:900;text-align:center}
.sp-action:hover{border-color:#fc4c02;background:#fff7ed;color:#fc4c02}
.sp-action .ui-svg{width:16px;height:16px}
.sp-history{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line-2);padding-top:9px}
.sp-history b{color:var(--ink);font-size:12px}
.sp-history span{color:var(--muted);font-size:12px;font-weight:800}
.sp-context-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.sp-context-tabs a,.sp-context-tabs button{display:grid;gap:2px;min-height:54px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;color:var(--ink);padding:8px;text-align:left}
.sp-context-tabs a:hover{border-color:#fc4c02;background:#fff7ed}
.sp-context-tabs b{font-size:18px;line-height:1;color:#0f172a}
.sp-context-tabs span{font-size:11px;color:var(--muted);font-weight:850}
.sp-asset-future{display:flex;gap:6px;flex-wrap:wrap}
.sp-asset-future span{border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#0a66c2;padding:5px 8px;font-size:11px;font-weight:900}
@media (max-width:1180px){
  .sp-layout{grid-template-columns:1fr}
  .sp-layout>.sp-explorer{position:static;max-height:none}
  .sp-dash-grid{grid-template-columns:1fr 1fr}
  .sp-asset-card{grid-column:1/-1}
}
@media (max-width:768px){
  .sp-breadcrumb{top:56px;gap:5px;padding:7px}
  .sp-bc__item{max-width:calc(50% - 16px);padding:6px 7px}
  .sp-bc__item small{font-size:9.5px}
  .sp-bc__item b{font-size:11px}
  .sp-dash-grid{grid-template-columns:1fr}
  .sp-kpis,.sp-lot-grid,.sp-context-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .sp-layout>.sp-explorer{display:none}
  .sp-mobile-summary{display:block}
  .sp-mobile-summary .sp-explorer__details{display:none}
  .sp-mobile-summary .sp-mobile-nav{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 12px;box-shadow:var(--shadow-sm)}
  .sp-mobile-summary .sp-mobile-nav .ui-svg{width:18px;height:18px;color:#fc4c02}
  .sp-mobile-summary .sp-mobile-nav div{display:grid;min-width:0}
  .sp-mobile-summary .sp-mobile-nav b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sp-mobile-summary .sp-mobile-nav small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sp-breadcrumb{position:relative;top:auto}
}
@media (max-width:420px){
  .sp-breadcrumb{display:grid;grid-template-columns:1fr 1fr}
  .sp-bc__sep{display:none}
  .sp-bc__item{max-width:none}
  .sp-kpis,.sp-lot-grid,.sp-context-tabs,.sp-actions{grid-template-columns:1fr}
  .sp-zone-card,.sp-lot-card,.sp-asset-card{padding:13px}
}

/* ============================================================================
   Increment 5 - Collaborative site activity engine
   ============================================================================ */
.act-center{display:grid;gap:14px;min-width:0}
.act-kpis{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px;min-width:0}
.act-kpi{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:2px 8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;box-shadow:var(--shadow-sm);min-width:0}
.act-kpi span{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.act-kpi .ui-svg{width:17px;height:17px}
.act-kpi small{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.act-kpi b{color:var(--ink);font-size:19px;line-height:1}
.act-grid{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.35fr) minmax(260px,.9fr);gap:12px;align-items:start;min-width:0}
.act-grid>div{display:grid;gap:12px;min-width:0}
.act-panel{border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;box-shadow:var(--shadow-sm);min-width:0}
.act-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;min-width:0}
.act-panel__head h2{margin:0;color:var(--ink);font-size:15px;line-height:1.2;overflow-wrap:anywhere}
.act-panel__head span,.act-panel__head a{color:var(--muted);font-size:11px;font-weight:900;text-decoration:none;white-space:nowrap}
.act-actions__grid{display:grid;grid-template-columns:1fr;gap:8px}
.act-action{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-height:48px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;color:var(--ink);text-decoration:none;padding:9px 10px}
.act-action:hover{border-color:#fc4c02;background:#fff7ed;color:#fc4c02}
.act-action span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#fff;color:#fc4c02}
.act-action .ui-svg{width:17px;height:17px}
.act-action b{font-size:12.5px;line-height:1.25;overflow-wrap:anywhere}
.act-feed__list,.act-notifs__list,.act-wait__list{display:grid;gap:8px;min-width:0}
.act-row{width:100%;display:grid;grid-template-columns:52px minmax(0,1fr);gap:6px 10px;align-items:start;min-height:62px;border:1px solid var(--line-2);border-radius:8px;background:#fff;text-align:left;color:var(--ink);padding:9px;cursor:pointer;min-width:0}
.act-row:hover{border-color:#bfdbfe;background:#f8fbff}
.act-time{grid-column:1;color:#0a66c2;font-size:12px;font-weight:900;white-space:nowrap}
.act-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.act-ico .ui-svg{width:17px;height:17px}
.act-body{grid-column:2;grid-row:1 / span 2;display:grid;gap:2px;min-width:0}
.act-body b{font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.act-body span,.act-body small{font-size:12px;color:var(--muted);line-height:1.25;overflow-wrap:break-word}
.act-body strong{font-size:13px;color:var(--ink);line-height:1.25;overflow-wrap:anywhere}
.act-row em{grid-column:2;justify-self:start;align-self:start;border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);font-size:10.5px;font-style:normal;font-weight:900;padding:4px 7px;white-space:nowrap}
.act-notif{display:grid;gap:4px;border:1px solid var(--line-2);border-left:4px solid #0a66c2;border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;padding:10px;min-width:0}
.act-notif.warn{border-left-color:#d97706}.act-notif.danger{border-left-color:#dc2626}.act-notif.ok{border-left-color:#16a34a}
.act-notif b{font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.act-notif span{font-size:12px;color:var(--muted);line-height:1.3;overflow-wrap:anywhere}
.act-notif small{display:flex;gap:5px;flex-wrap:wrap}
.act-notif em{border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);font-size:10.5px;font-style:normal;font-weight:900;padding:3px 6px}
.act-wait__list a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;align-items:center;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;padding:9px}
.act-wait__list a:hover{border-color:#fed7aa;background:#fff7ed}
.act-wait__list span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#fff7ed;color:#fc4c02}
.act-wait__list .ui-svg{width:16px;height:16px}
.act-wait__list b{font-size:12.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-wait__list small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-filterbar{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:8px;align-items:center;margin:0 0 12px;min-width:0}
.act-filterbar .fsel,.act-filterbar .btn{min-height:40px}
.act-timeline{display:grid;gap:14px;min-width:0}
.act-day{display:grid;gap:8px;min-width:0}
.act-day>h2{margin:4px 0 0;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.act-day .act-panel{padding:0;border:0;box-shadow:none;background:transparent}
.act-day .act-panel__head{display:none}
.act-command{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:12px;margin:0 0 14px;min-width:0}
.act-command .act-panel{height:100%}
.act-feed.compact .act-row{min-height:54px;grid-template-columns:48px minmax(0,1fr)}
.act-feed.compact .act-row em{display:none}
.act-notifs.compact .act-notif{padding:9px}
.act-thread{display:grid;gap:12px;min-width:0}
.act-cmt-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:8px}
.act-cmt-box input{min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px;min-width:0}
.act-cmt-box .btn{display:inline-flex;align-items:center;gap:6px;min-height:40px}
.act-cmt-box .ui-svg{width:15px;height:15px}
.act-cmt-list{display:grid;gap:9px}
.act-cmt{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:10px}
.act-cmt__body{display:grid;gap:5px;min-width:0}
.act-cmt__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.act-cmt__top b{font-size:13px;color:var(--ink)}
.act-cmt__top span{font-size:11px;color:var(--muted);font-weight:800}
.act-cmt p{margin:0;color:var(--ink);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.act-cmt__meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.act-cmt__meta span,.act-cmt__meta button{border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);font-size:10.5px;font-weight:900;padding:4px 7px}
.act-cmt__meta button{cursor:pointer}
.act-cmt__replies{display:grid;gap:5px;border-left:2px solid #e5edf3;padding-left:9px;color:var(--muted);font-size:12px}
.mention{display:inline-block;border-radius:999px;background:#eff6ff;color:#0a66c2;font-weight:900;padding:0 5px}
@media (max-width:1240px){
  .act-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
  .act-grid{grid-template-columns:1fr 1fr}
  .act-grid>div:last-child{grid-column:1/-1}
  .act-filterbar{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:820px){
  .act-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .act-grid,.act-command{grid-template-columns:1fr}
  .act-grid>div:last-child{grid-column:auto}
  .act-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
  .act-kpis,.act-filterbar{grid-template-columns:1fr}
  .act-row{grid-template-columns:44px minmax(0,1fr)}
  .act-row em{display:none}
  .act-cmt-box{grid-template-columns:1fr}
  .act-cmt-box .btn{justify-content:center}
}

/* ============================================================================
   UX cockpit terrain 2.0 - simplification front office
   ============================================================================ */
.topbar__profile-control,.topbar__auth-control{display:none!important}
.topbar__user-menu{border:0;background:transparent;padding:0;cursor:pointer}
.topbar__user-menu .user__info{display:none}
.topbar__actions{gap:12px}
.nav-primary,.nav-more{display:grid;gap:6px;min-width:0}
.nav-more{display:none;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2)}
.nav-more.open{display:grid}
.nav__item--plus{width:100%;font:inherit;text-align:left;cursor:pointer}
.nav__item--plus .nav__badge{margin-left:auto}
.workspace-switch:empty{display:none}
.ux-cockpit{display:grid;gap:16px;min-width:0}
.ux-cockpit__hero{display:flex;align-items:center;justify-content:space-between;gap:18px;border:0;background:#fff;border-radius:8px;padding:18px 20px;box-shadow:var(--shadow-sm);min-width:0}
.ux-cockpit__hero span{display:block;color:#0a66c2;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.ux-cockpit__hero h2{margin:0;color:var(--ink);font-size:24px;line-height:1.15;overflow-wrap:anywhere}
.ux-cockpit__pulse{display:grid;place-items:center;gap:1px;min-width:86px;min-height:70px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.ux-cockpit__pulse b{font-size:26px;line-height:1}
.ux-cockpit__pulse small{font-size:11px;font-weight:900;text-transform:uppercase}
.ux-cockpit__grid{display:grid;grid-template-columns:1fr 1fr .9fr;gap:14px;align-items:start;min-width:0}
.ux-panel{display:grid;gap:12px;min-width:0;border:0;background:#fff;border-radius:8px;padding:14px;box-shadow:var(--shadow-sm)}
.ux-panel header{display:flex;align-items:center;gap:10px;min-width:0}
.ux-panel header>span{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:#eef6ff;color:#0a66c2;flex:none}
.ux-panel header .ux-cockpit__svg,.ux-action__icon .ux-cockpit__svg,.ux-event__icon .ux-cockpit__svg,.ux-alert .ux-cockpit__svg{width:18px;height:18px}
.ux-panel header div{min-width:0}
.ux-panel h2{margin:0;color:var(--ink);font-size:16px;line-height:1.2}
.ux-panel p{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.35}
.ux-panel header a{margin-left:auto;color:#0a66c2;font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap}
.ux-panel__body{display:grid;gap:9px;min-width:0}
.ux-action{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;border:1px solid #e8eef4;border-radius:8px;background:#fff;padding:11px}
.ux-action--urgent{border-color:#fecaca;background:#fff7f7}
.ux-action--normal{border-color:#fde7bf;background:#fffbeb}
.ux-action--info{border-color:#dbeafe;background:#f8fbff}
.ux-action__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#fff;color:#0a66c2;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}
.ux-action--urgent .ux-action__icon{color:#b91c1c}
.ux-action--normal .ux-action__icon{color:#b45309}
.ux-action__body{min-width:0}
.ux-action__body span{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.ux-action__body h3{display:flex;align-items:baseline;gap:6px;margin:1px 0 2px;color:var(--ink);font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.ux-action__body h3 strong{font-size:18px;color:#0f172a}
.ux-action__body p{font-size:12px}
.ux-action__btn{min-height:38px;white-space:nowrap}
.ux-event{display:grid;grid-template-columns:42px auto minmax(0,1fr);gap:9px;align-items:center;min-width:0;border:1px solid #edf2f7;border-radius:8px;background:#fff;padding:10px;color:var(--ink);text-decoration:none}
.ux-event:hover{border-color:#bfdbfe;background:#f8fbff}
.ux-event__time{font-size:12px;font-weight:900;color:#0a66c2;white-space:nowrap}
.ux-event__icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.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:8px}
.ux-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;border:1px solid #e8eef4;border-radius:8px;background:#fff;color:var(--ink);padding:10px;text-decoration:none}
.ux-alert span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.ux-alert b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ux-alert strong{font-size:13px;color:#0f172a}
.ux-alert--urgent{border-color:#fecaca;background:#fff7f7}
.ux-alert--urgent span{background:#fee2e2;color:#b91c1c}
.ux-alert--normal{border-color:#fde7bf;background:#fffbeb}
.ux-alert--normal span{background:#fef3c7;color:#b45309}
.ux-empty{border:1px dashed var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);padding:18px;text-align:center;font-weight:800}
.sp-explorer__details summary{min-height:40px;padding:9px 11px}
.sp-tree{padding:8px}
.sp-tree ul{padding-left:10px}
.sp-tree li{gap:3px;margin-bottom:3px}
.sp-tree__node{min-height:31px;padding:6px 8px;border-radius:7px}
.sp-tree__node b{font-size:12px}
.sp-tree__lots{margin-left:22px}
@media (max-width:1180px){
  .ux-cockpit__grid{grid-template-columns:1fr 1fr}
  .ux-cockpit__grid .ux-panel:last-child{grid-column:1/-1}
}
@media (max-width:820px){
  .ux-cockpit__grid{grid-template-columns:1fr}
  .ux-cockpit__grid .ux-panel:last-child{grid-column:auto}
  .ux-cockpit__hero{padding:16px;align-items:flex-start}
}
@media (max-width:640px){
  .sp-shell--commandement .sp-breadcrumb{display:none}
  .topbar{overflow-x:hidden}
  .topbar__search{display:none}
  .topbar__project .select{max-width:58vw}
  .ux-cockpit__hero{display:grid}
  .ux-cockpit__hero h2{font-size:20px}
  .ux-cockpit__pulse{place-items:start;min-width:0;min-height:auto;padding:10px}
  .ux-action{grid-template-columns:auto minmax(0,1fr);padding:12px;min-height:76px}
  .ux-action__btn{grid-column:1/-1;justify-content:center;width:100%}
  .ux-event{grid-template-columns:40px minmax(0,1fr)}
  .ux-event__icon{display:none}
  .ux-alert{min-height:52px}
}
@media (max-width:390px){
  .ux-cockpit{gap:12px}
  .ux-panel{padding:12px}
  .ux-action__body h3{font-size:13.5px}
}

/* Layout hardening for activity-first screens */
.drawer:not(.open){display:none}
.topbar,.topbar__actions,.user,.user__info{min-width:0}
.user__name,.user__role{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1500px){
  .topbar{flex-wrap:wrap}
  .topbar__search{order:3;flex:1 1 100%}
  .topbar__actions{margin-left:auto;max-width:100%;flex-wrap:wrap;justify-content:flex-end}
  .topbar__actions .topbar__project{min-width:0}
  .topbar__actions .select{min-width:160px;max-width:220px}
}
@media (max-width:768px){
  .topbar{flex-wrap:wrap;overflow-x:hidden}
  .topbar__search{display:none}
  .user__name,.user__role{max-width:96px}
}

/* ============================================================================
   Increment 6 - Operations chantier
   ============================================================================ */
.ops-shell{display:grid;gap:14px;min-width:0}
.ops-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:9px;min-width:0}
.ops-kpi{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:2px 8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;box-shadow:var(--shadow-sm);min-width:0}
.ops-kpi>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.ops-kpi .ui-svg{width:18px;height:18px}
.ops-kpi small{font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-kpi b{font-size:18px;line-height:1.1;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-live{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:12px;align-items:start;min-width:0}
.ops-live__main,.ops-live__side,.ops-section{display:grid;gap:10px;min-width:0}
.ops-live h2,.ops-section__head h2{margin:0;color:var(--ink);font-size:16px;line-height:1.2}
.ops-section__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ops-section__head a{font-size:12px;font-weight:900;color:#0a66c2;text-decoration:none}
.ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:12px;min-width:0}
.ops-grid.workers,.ops-grid.pointage{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.ops-grid.resources{grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr))}
.ops-card{display:grid;gap:11px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;box-shadow:var(--shadow-sm);min-width:0}
.ops-card__top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;min-width:0}
.ops-card__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#fff7ed;color:#fc4c02}
.ops-card__icon .ui-svg{width:20px;height:20px}
.ops-card h3{margin:0;color:var(--ink);font-size:15px;line-height:1.22;overflow-wrap:anywhere}
.ops-card p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.32;overflow-wrap:anywhere}
.ops-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0}
.ops-meta span{display:grid;gap:2px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:8px;min-width:0}
.ops-meta small{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-meta b{font-size:12.5px;line-height:1.22;color:var(--ink);overflow-wrap:anywhere}
.ops-badges,.ops-arch{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.ops-badges span,.ops-arch span{border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--ink-2);font-size:11px;font-weight:900;padding:5px 8px}
.ops-alert{display:flex;gap:7px;align-items:flex-start;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:#b91c1c;font-size:12px;font-weight:850;padding:9px;overflow-wrap:anywhere}
.ops-alert .ui-svg{width:16px;height:16px;flex:none}
.ops-worker__head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.ops-status{align-self:start;border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);font-size:11px;font-weight:900;padding:5px 8px;white-space:nowrap}
.ops-status.ok{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}
.ops-status.warn{border-color:#fed7aa;background:#fff7ed;color:#c2410c}
.ops-status.danger{border-color:#fecaca;background:#fff7f7;color:#b91c1c}
.ops-status.muted{border-color:#e2e8f0;background:#f8fafc;color:#64748b}
.ops-gauge{--p:0;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:conic-gradient(#fc4c02 calc(var(--p)*1%),#e5edf3 0);position:relative;flex:none}
.ops-gauge::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}
.ops-gauge span,.ops-gauge small{position:relative;z-index:1}
.ops-gauge span{font-size:13px;font-weight:950;color:var(--ink);line-height:1}
.ops-gauge small{display:none}
.ops-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:7px}
.ops-btn{min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;font-weight:900;padding:8px 9px;cursor:pointer}
.ops-btn:hover{border-color:#fc4c02;background:#fff7ed;color:#fc4c02}
.ops-btn.primary{background:#fc4c02;border-color:#fc4c02;color:#fff}
.ops-history{border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;color:var(--muted);font-size:12px;font-weight:800;padding:9px;overflow-wrap:anywhere}
.ops-readonly{border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;color:var(--muted);font-size:12px;font-weight:900;padding:10px;text-align:center}
.ops-mini-feed .act-panel{padding:0;border:0;box-shadow:none}
.ops-mini-feed .act-panel__head{display:none}
@media (max-width:1100px){
  .ops-live{grid-template-columns:1fr}
}
@media (max-width:768px){
  .ops-grid,.ops-grid.workers,.ops-grid.pointage,.ops-grid.resources{grid-template-columns:1fr}
  .ops-card{padding:12px}
  .ops-card__top,.ops-worker__head{grid-template-columns:auto minmax(0,1fr)}
  .ops-card__top>.ops-status,.ops-card__top>.ops-gauge,.ops-worker__head>.ops-status{grid-column:1/-1;justify-self:start}
  .ops-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .ops-kpis,.ops-meta,.ops-actions{grid-template-columns:1fr}
  .ops-badges span,.ops-arch span{width:100%}
}

/* ============================================================================
   Increment 7 - GED chantier
   ============================================================================ */
.ged-shell{display:grid;gap:14px;min-width:0}
.ged-clouds{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:9px;min-width:0}
.ged-cloud{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;box-shadow:var(--shadow-sm);min-width:0}
.ged-cloud>span{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.ged-cloud .ui-svg{width:18px;height:18px}
.ged-cloud b{display:block;color:var(--ink);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-cloud small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-cloud em{border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--muted);font-size:10.5px;font-style:normal;font-weight:900;padding:4px 7px;white-space:nowrap}
.ged-cloud.connected em{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}
.ged-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.ged-explorer{position:sticky;top:126px;display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;box-shadow:var(--shadow-sm);min-width:0}
.ged-tree-root{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:9px}
.ged-tree-root>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#fff7ed;color:#fc4c02}
.ged-tree-root small,.ged-tree-project small{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.ged-tree-root b,.ged-tree-project b{display:block;color:var(--ink);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-tree-project{border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:9px}
.ged-path{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ged-path span,.ged-lots span{border:1px solid var(--line-2);border-radius:999px;background:#f8fafc;color:var(--muted);font-size:10.5px;font-weight:900;padding:5px 7px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-lots{display:flex;gap:6px;flex-wrap:wrap}
.ged-branches{display:grid;gap:7px}
.ged-branches button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;min-height:40px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);padding:8px;text-align:left;cursor:pointer}
.ged-branches button.active,.ged-branches button:hover{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.ged-branches .ui-svg{width:16px;height:16px;color:#fc4c02}
.ged-branches b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-branches em{font-style:normal;color:var(--muted);font-size:11px;font-weight:900}
.ged-main{display:grid;gap:12px;min-width:0}
.ged-search{display:grid;gap:9px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;box-shadow:var(--shadow-sm);min-width:0}
.ged-search__bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:8px 10px}
.ged-search__bar .ui-svg{width:18px;height:18px;color:#0a66c2}
.ged-search__bar input{border:0;background:transparent;min-height:34px;outline:0;color:var(--ink);font-weight:750;min-width:0}
.ged-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:8px;min-width:0}
.ged-results button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);padding:9px;text-align:left;cursor:pointer;min-width:0}
.ged-results button:hover{border-color:#bfdbfe;background:#f8fbff}
.ged-results span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.ged-results b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-results small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-main-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:12px;align-items:start;min-width:0}
.ged-side{display:grid;gap:12px;min-width:0}
.ged-preview,.ged-panel{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;box-shadow:var(--shadow-sm);min-width:0}
.ged-preview__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.ged-preview__head span{display:block;color:#fc4c02;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.ged-preview__head h2{margin:2px 0 4px;color:var(--ink);font-size:18px;line-height:1.18;overflow-wrap:anywhere}
.ged-preview__head p{margin:0;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.ged-preview__head strong{display:grid;place-items:center;min-width:46px;height:38px;border-radius:8px;background:#eff6ff;color:#0a66c2;font-size:18px}
.ged-preview-canvas{position:relative;min-height:240px;border:1px solid var(--line-2);border-radius:8px;background:linear-gradient(135deg,#f8fafc,#e8f3ff);overflow:hidden}
.ged-sheet{position:absolute;left:22px;top:20px;right:76px;bottom:20px;display:grid;align-content:start;gap:9px;border:1px solid #dbeafe;border-left:5px solid var(--ged-color);border-radius:8px;background:#fff;padding:16px;box-shadow:var(--shadow-sm)}
.ged-sheet span{justify-self:start;border-radius:999px;background:var(--ged-color);color:#fff;font-size:11px;font-weight:900;padding:5px 8px}
.ged-sheet b{color:var(--ink);font-size:16px;line-height:1.25;overflow-wrap:anywhere}
.ged-sheet i{height:10px;border-radius:999px;background:#e5edf3}
.ged-sheet i:nth-child(4){width:70%}.ged-sheet i:nth-child(5){width:48%}
.ged-qr{position:absolute;right:16px;bottom:16px;display:grid;place-items:center;width:76px;height:76px;border:1px solid var(--line);border-radius:8px;background:repeating-linear-gradient(45deg,#111827 0 4px,#fff 4px 8px)}
.ged-qr b,.ged-qr small{background:#fff;border-radius:4px;padding:2px 4px}
.ged-qr b{font-size:11px;color:#111827}.ged-qr small{font-size:9px;color:#64748b;font-weight:900}
.ged-doc-meta,.ged-compression{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-width:0}
.ged-doc-meta span,.ged-compression div{display:grid;gap:2px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:8px;min-width:0}
.ged-doc-meta small,.ged-compression small{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ged-doc-meta b,.ged-compression b{font-size:12.5px;color:var(--ink);overflow-wrap:anywhere}
.ged-tags,.ged-diffusion,.ged-capabilities{display:flex;gap:6px;flex-wrap:wrap}
.ged-tags span,.ged-diffusion span,.ged-capabilities span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;background:#f8fafc;color:var(--ink-2);font-size:11px;font-weight:900;padding:5px 8px}
.ged-tags .ui-svg{width:13px;height:13px}
.ged-preview-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.ged-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ged-panel__head h2{margin:0;color:var(--ink);font-size:15px;line-height:1.2}
.ged-panel__head span{color:var(--muted);font-size:11px;font-weight:900}
.ged-versions,.ged-history,.ged-notifs{display:grid;gap:8px}
.ged-version,.ged-history-row,.ged-notifs div{border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:9px;min-width:0}
.ged-version.active{border-color:#bbf7d0;background:#f0fdf4}
.ged-version div{display:flex;align-items:center;gap:7px;justify-content:space-between;min-width:0}
.ged-version b{color:var(--ink);font-size:13px}.ged-version span,.ged-version small{color:var(--muted);font-size:11px;font-weight:800}
.ged-version p,.ged-history-row p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.ged-mini-btn{min-height:30px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#0a66c2;font-size:11px;font-weight:900;padding:5px 8px;cursor:pointer}
.ged-history-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}
.ged-history-row>span{width:9px;height:9px;border-radius:50%;background:#fc4c02;margin-top:5px}
.ged-history-row b{display:block;color:var(--ink);font-size:12.5px}
.ged-history-row small{display:block;color:var(--muted);font-size:11px;font-weight:800}
.ged-notifs div{border-left:4px solid #0a66c2}
.ged-notifs div.ok{border-left-color:#16a34a}.ged-notifs div.warn{border-left-color:#d97706}
.ged-notifs b{display:block;color:var(--ink);font-size:12.5px}.ged-notifs span{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
@media (max-width:1180px){
  .ged-layout{grid-template-columns:1fr}
  .ged-explorer{position:static}
  .ged-main-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .ged-doc-meta,.ged-compression{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ged-preview-canvas{min-height:210px}
  .ged-sheet{right:18px;bottom:88px}
  .ged-results{grid-template-columns:1fr}
}
@media (max-width:420px){
  .ged-cloud,.ged-tree-root,.ged-results button{grid-template-columns:auto minmax(0,1fr)}
  .ged-cloud em{grid-column:1/-1;justify-self:start}
  .ged-doc-meta,.ged-compression,.ged-path,.ged-preview-actions{grid-template-columns:1fr}
  .ged-preview,.ged-panel,.ged-explorer,.ged-search{padding:12px}
}

/* ============================================================================
   Increment 8 - Build360 Intelligence
   ============================================================================ */
.intel-shell{display:grid;gap:14px;min-width:0}
.intel-hero{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:14px;align-items:stretch;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);padding:16px;min-width:0}
.intel-hero__copy{display:grid;gap:9px;align-content:center;min-width:0}
.intel-hero__copy>span{color:#fc4c02;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.intel-hero h1{margin:0;color:var(--ink);font-size:30px;line-height:1.08}
.intel-hero p{margin:0;max-width:820px;color:var(--muted);font-size:14px;line-height:1.42;overflow-wrap:anywhere}
.intel-hero__actions{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.intel-btn{display:inline-flex;align-items:center;gap:7px;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--ink);text-decoration:none;font-size:12px;font-weight:900;padding:8px 10px}
.intel-btn:hover{border-color:#fc4c02;background:#fff7ed;color:#fc4c02}
.intel-btn .ui-svg{width:16px;height:16px}
.intel-score{display:grid;align-content:center;gap:6px;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;padding:14px;min-width:0}
.intel-score small{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;color:#9a3412}
.intel-score b{font-size:46px;line-height:1;color:#111827}
.intel-score span{font-size:12px;font-weight:900;color:#9a3412}
.intel-score i{display:block;height:8px;border-radius:999px;background:linear-gradient(90deg,#0a66c2,#fc4c02)}
.intel-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr));gap:9px;min-width:0}
.intel-widget{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:2px 8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;box-shadow:var(--shadow-sm);min-width:0}
.intel-widget>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.intel-widget .ui-svg{width:18px;height:18px}
.intel-widget small{font-size:10.5px;font-weight:950;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-widget b{font-size:18px;line-height:1.1;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(310px,.92fr);gap:14px;align-items:start;min-width:0}
.intel-grid>div{display:grid;gap:14px;min-width:0}
.intel-panel{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;box-shadow:var(--shadow-sm);min-width:0}
.intel-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.intel-panel__head h2{margin:0;color:var(--ink);font-size:16px;line-height:1.2}
.intel-panel__head span{color:var(--muted);font-size:11px;font-weight:900}
.intel-findings,.intel-actions,.intel-results,.intel-arch__grid{display:grid;gap:8px;min-width:0}
.intel-finding{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:start;border:1px solid var(--line-2);border-left:4px solid #d97706;border-radius:8px;background:#fff;padding:10px;min-width:0}
.intel-finding.danger{border-left-color:#dc2626;background:#fff7f7}
.intel-finding.ok{border-left-color:#16a34a;background:#f0fdf4}
.intel-finding>span,.intel-action>span,.intel-result>span,.intel-arch article>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#f8fafc;color:#0a66c2;flex:none}
.intel-finding .ui-svg,.intel-action .ui-svg,.intel-result .ui-svg,.intel-arch .ui-svg{width:17px;height:17px}
.intel-finding b{display:block;color:var(--ink);font-size:13px;line-height:1.2;overflow-wrap:anywhere}
.intel-finding p{margin:3px 0;color:var(--muted);font-size:12px;line-height:1.32;overflow-wrap:anywhere}
.intel-finding small{font-size:11px;font-weight:850;color:var(--muted)}
.intel-finding a{align-self:center;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#0a66c2;text-decoration:none;font-size:11px;font-weight:900;padding:7px 9px}
.intel-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.intel-action{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;min-height:50px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;color:var(--ink);text-decoration:none;padding:9px}
.intel-action:hover,.intel-result:hover{border-color:#fc4c02;background:#fff7ed;color:#fc4c02}
.intel-action b{font-size:12.5px;line-height:1.2;overflow-wrap:anywhere}
.intel-search__bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:8px}
.intel-search__bar>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.intel-search__bar input{min-height:38px;border:0;background:transparent;outline:0;font-weight:800;color:var(--ink);min-width:0}
.intel-chips{display:flex;gap:6px;flex-wrap:wrap}
.intel-chips button{min-height:34px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-2);font-size:11px;font-weight:900;padding:6px 9px;cursor:pointer}
.intel-chips button:hover{border-color:#fc4c02;color:#fc4c02;background:#fff7ed}
.intel-results{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.intel-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;padding:9px;min-width:0}
.intel-result b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-result small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-writer__tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.intel-writer__tools select{min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:800;padding:8px;min-width:0}
.intel-document{border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:11px;min-width:0}
.intel-document h3{margin:0 0 8px;color:var(--ink);font-size:14px}
.intel-document pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-2);font-family:inherit;font-size:12.5px;line-height:1.38}
.intel-arch__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.intel-arch article{display:grid;gap:6px;border:1px solid var(--line-2);border-radius:8px;background:#f8fafc;padding:10px;min-width:0}
.intel-arch b{color:var(--ink);font-size:13px}
.intel-arch small{color:var(--muted);font-size:11.5px;line-height:1.28;overflow-wrap:anywhere}
.intel-readonly{border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#0a66c2;font-size:12px;font-weight:900;padding:10px}
@media (max-width:1180px){
  .intel-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .intel-hero{grid-template-columns:1fr;padding:13px}
  .intel-hero h1{font-size:25px}
  .intel-score b{font-size:38px}
  .intel-search__bar,.intel-writer__tools{grid-template-columns:1fr}
  .intel-search__bar>span{display:none}
  .intel-search__bar .btn,.intel-writer__tools .btn{justify-content:center;width:100%}
  .intel-finding{grid-template-columns:auto minmax(0,1fr)}
  .intel-finding a{grid-column:1/-1;justify-self:start}
}
@media (max-width:420px){
  .intel-widgets,.intel-actions,.intel-results,.intel-arch__grid{grid-template-columns:1fr}
  .intel-panel,.intel-hero{padding:12px}
  .intel-hero__actions{display:grid;grid-template-columns:1fr}
  .intel-btn{justify-content:center}
}

/* ============================================================================
   UX 3.0 - Zero training / field first
   ============================================================================ */
.today-zero{display:grid;gap:14px;max-width:1040px;margin:0 auto;min-width:0}
.today-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;padding:8px 2px 4px;min-width:0}
.today-kicker{margin:0 0 6px;color:#fc4c02;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.today-hero h1{margin:0;color:var(--ink);font-size:clamp(28px,4vw,46px);line-height:1.02;font-weight:950}
.today-hero p{margin:8px 0 0;max-width:700px;color:var(--muted);font-size:15px;line-height:1.42}
.today-context{display:grid;gap:3px;min-width:180px;border-left:3px solid #fc4c02;padding:8px 0 8px 12px}
.today-context span{color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.today-context b{color:var(--ink);font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.today-list{display:grid;gap:10px;min-width:0}
.today-action{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:76px;border:1px solid #edf2f7;border-left:4px solid #94a3b8;border-radius:8px;background:#fff;padding:12px 13px;box-shadow:0 1px 2px rgba(15,23,42,.05);min-width:0}
.today-action--danger{border-left-color:#dc2626}
.today-action--warn{border-left-color:#d97706}
.today-action--normal{border-left-color:#0f766e}
.today-action__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#f8fafc;color:#0f766e}
.today-action--danger .today-action__icon{background:#fef2f2;color:#dc2626}
.today-action--warn .today-action__icon{background:#fff7ed;color:#d97706}
.today-action__icon::before{content:attr(data-symbol);font-size:15px;font-weight:950;line-height:1}
.today-action__copy{display:grid;gap:3px;min-width:0}
.today-action__copy strong{color:var(--ink);font-size:17px;line-height:1.2;overflow-wrap:anywhere}
.today-action__btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:8px;background:#fc4c02;color:#fff;text-decoration:none;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;padding:0 16px;box-shadow:0 9px 20px rgba(252,76,2,.20)}
.today-action__btn:hover{background:#d94102}
.today-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:2px;min-width:0}
.today-shortcut{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;min-height:48px;border:1px solid #edf2f7;border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;padding:9px 10px;min-width:0}
.today-shortcut span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eff6ff;color:#0a66c2}
.today-shortcut .ui-svg{width:16px;height:16px}
.today-shortcut b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.af-shell--field .af-actions{margin-top:0}
.af-shell--field .af-actions__label{display:none}

.plan-zero{display:grid;gap:11px;min-width:0}
.plan-zero__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,340px);gap:12px;align-items:end;min-width:0}
.plan-zero__head span{color:#fc4c02;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.plan-zero__head h2{margin:2px 0;color:var(--ink);font-size:24px;line-height:1.12}
.plan-zero__head p{margin:0;color:var(--muted);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.plan-zero__select{min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:850;padding:9px;min-width:0}
.plan-zero__chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;min-width:0}
.plan-zero__chips span{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;border:1px solid #edf2f7;border-radius:8px;background:#fff;padding:8px 9px;min-width:0}
.plan-zero__chips .ui-svg{width:16px;height:16px;color:#0a66c2}
.plan-zero__chips b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plan-zero__chips em{font-style:normal;color:var(--muted);font-size:12px;font-weight:950}
.plan-zero__canvas{display:grid;gap:9px;border:1px solid #edf2f7;border-radius:8px;background:#fff;padding:10px;min-width:0}
.plan-zero__canvas .pl-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.plan-zero__canvas canvas{width:100%;height:auto;touch-action:manipulation}
.plan-zero__points{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:8px;min-width:0}
.plan-live-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;min-height:50px;border:1px solid #edf2f7;border-radius:8px;background:#fff;color:var(--ink);text-align:left;padding:9px;cursor:pointer}
.plan-live-row b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plan-live-row small{grid-column:2;color:var(--muted);font-size:11px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plan-photo-popup{max-width:min(520px,calc(100vw - 24px));min-width:min(360px,calc(100vw - 24px))}
.plan-photo-popup__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:9px 0;min-width:0}
.plan-photo-popup__grid span{display:grid;gap:2px;border:1px solid #edf2f7;border-radius:8px;background:#f8fafc;padding:7px;min-width:0}
.plan-photo-popup__grid b{color:var(--muted);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.03em}
.plan-photo-popup__grid em{color:var(--ink);font-size:12px;font-style:normal;font-weight:850;overflow-wrap:anywhere}
@media (max-width:820px){
  .today-zero{max-width:none}
  .today-hero,.plan-zero__head{grid-template-columns:1fr}
  .today-context{min-width:0}
  .today-shortcuts,.plan-zero__chips{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
  .today-action{grid-template-columns:38px minmax(0,1fr);align-items:start;min-height:0}
  .today-action__icon{width:38px;height:38px}
  .today-action__btn{grid-column:1/-1;width:100%;margin-top:2px}
  .today-shortcuts,.plan-zero__chips,.plan-photo-popup__grid{grid-template-columns:1fr}
  .plan-zero__canvas{padding:8px}
}
