/* ============================================================================
   Build360 — Thème « Blueprint clair »
   Couche visuelle globale. Aucun comportement, aucune route et aucune donnée.
   Référence : 09_QA/2026-07-18_DESIGN_BLUEPRINT/reference/
   ============================================================================ */

:root{
  --bp-paper:#fafcfe;
  --bp-paper-strong:#ffffff;
  --bp-paper-soft:#f4f8fc;
  --bp-grid:#d6e3f2;
  --bp-line:#c0d4ea;
  --bp-ink:#153a6b;
  --bp-blue:#1d5fbf;
  --bp-blue-hover:#174f9e;
  --bp-blue-soft:#e4eefa;
  --bp-orange:#ff6a00;
  --bp-orange-hover:#e85d00;
  --bp-orange-soft:#fff0e3;
  --bp-orange-ink:#061a2f;
  --bp-muted:#5c7290;
  --bp-success:#059669;
  --bp-success-soft:#ddf3ea;
  --bp-warning:#d97706;
  --bp-warning-soft:#fff4db;
  --bp-danger:#dc2626;
  --bp-danger-soft:#fee8e8;
  --bp-font:'Archivo',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --bp-data:'Fira Code','SFMono-Regular',Consolas,monospace;

  --bg:var(--bp-paper);
  --surface:var(--bp-paper-strong);
  --surface-2:var(--bp-paper-soft);
  --line:var(--bp-line);
  --line-2:var(--bp-grid);
  --ink:var(--bp-ink);
  --ink-2:#294f7e;
  --muted:var(--bp-muted);
  --muted-2:#8295ac;
  --primary:var(--bp-blue);
  --primary-d:var(--bp-blue-hover);
  --primary-l:var(--bp-blue-soft);
  --accent:var(--bp-orange);
  --accent-l:var(--bp-orange-soft);
  --sidebar:var(--bp-paper-soft);
  --sidebar-2:#eaf2fa;
  --sidebar-ink:var(--bp-ink);
  --sidebar-active:var(--bp-blue);
  --ok:var(--bp-success);
  --ok-l:var(--bp-success-soft);
  --warn:var(--bp-warning);
  --warn-l:var(--bp-warning-soft);
  --danger:var(--bp-danger);
  --danger-l:var(--bp-danger-soft);
  --info:var(--bp-blue);
  --info-l:var(--bp-blue-soft);
  --purple:#496a91;
  --purple-l:#eaf1f8;
  --radius:8px;
  --radius-sm:5px;
  --shadow-sm:0 1px 2px rgba(21,58,107,.06);
  --shadow:4px 4px 0 var(--bp-grid);
  --shadow-lg:8px 8px 0 var(--bp-grid);
  --sb-w:252px;
}

html{background:var(--bp-paper)}
body{
  font-family:var(--bp-font);
  color:var(--bp-ink);
  background-color:var(--bp-paper);
  background-image:
    linear-gradient(var(--bp-grid) .6px,transparent .6px),
    linear-gradient(90deg,var(--bp-grid) .6px,transparent .6px);
  background-size:36px 36px;
  font-size:14px;
}
button,input,select,textarea{font-family:var(--bp-font)}
code,kbd,pre,.num,.breadcrumb,.topbar__label,.nav__group,.kpi__label,
.tag,.badge,.chip,.drawer__eyebrow,.field__l,.ld-plan__annual{
  font-family:var(--bp-data);
}
.page-title,.page-sub,.ob-sub{font-family:var(--bp-font)}
::selection{color:#fff;background:var(--bp-blue)}
::-webkit-scrollbar-thumb{background:#a8c0da;border:2px solid var(--bp-paper);border-radius:4px}
:focus-visible{outline:2.5px solid var(--bp-orange)!important;outline-offset:2px}

/* Shell et navigation ------------------------------------------------------- */
#app{background:transparent}
.main{background:rgba(250,252,254,.72)}
.sidebar{
  color:var(--bp-ink);
  background:var(--bp-paper-soft);
  border-right:2px solid var(--bp-line);
  box-shadow:none;
}
.sidebar__brand{
  min-height:92px;
  padding:10px 12px;
  background:#fff;
  border-bottom:2px solid var(--bp-line);
}
.brand__logo,.brand__logo--img{
  width:68px!important;
  height:68px!important;
  flex:none;
  object-fit:contain;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.brand__title{color:var(--bp-ink);font-size:16px;font-weight:800}
.brand__sub{display:block;color:var(--bp-muted);font-size:10px;font-family:var(--bp-data)}
.sidebar__close{color:var(--bp-ink)}
.workspace-switch{
  padding:10px;
  background:#fff;
  border-bottom:1.5px solid var(--bp-grid);
}
.workspace-switch button,.workspace-switch .btn{
  border-radius:4px!important;
  box-shadow:none!important;
}
.nav{padding:9px 8px 18px}
.nav__group{
  margin:14px 10px 5px;
  color:var(--bp-muted);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
}
.nav__item{
  position:relative;
  min-height:44px;
  padding:9px 10px 9px 13px;
  color:var(--bp-muted);
  background:transparent;
  border:1px solid transparent;
  border-radius:4px;
  font-size:12.5px;
  font-weight:650;
}
.nav__item:hover{
  color:var(--bp-blue);
  background:#eaf2fa;
  border-color:var(--bp-grid);
}
.nav__item.active{
  color:var(--bp-blue);
  background:#fff;
  border-color:var(--bp-line);
  box-shadow:3px 3px 0 var(--bp-grid);
}
.nav__item.active::before{
  content:"";
  position:absolute;
  left:-1px;
  top:5px;
  bottom:5px;
  width:4px;
  border-radius:0 2px 2px 0;
  background:var(--bp-orange);
}
.nav__ico,.nav__item.active .nav__ico{color:var(--bp-blue)}
.nav__badge,.nav__item.active .nav__badge{
  color:var(--bp-blue);
  background:var(--bp-blue-soft);
  border:1px solid var(--bp-line);
  border-radius:4px;
  font-family:var(--bp-data);
}
.nav__state{border-radius:3px}
.nav__state.ms-beta,.nav__state.ms-pilote{color:#b34a00;background:var(--bp-orange-soft)}
.nav__sub,.nav__more-toggle{color:var(--bp-muted);font-family:var(--bp-data)}
.nav__sub:hover,.nav__more-toggle:hover{color:var(--bp-blue)}
.sidebar__footer{background:#fff;border-top:1.5px solid var(--bp-grid)}
.env-pill{
  color:var(--bp-muted);
  background:var(--bp-paper-soft);
  border:1px solid var(--bp-grid);
  border-radius:4px;
  font-family:var(--bp-data);
}
.backdrop{background:rgba(21,58,107,.34);backdrop-filter:blur(2px)}

/* Barre supérieure ---------------------------------------------------------- */
.topbar{
  min-height:66px;
  padding:10px 18px;
  background:rgba(250,252,254,.94);
  border-bottom:2px solid var(--bp-line);
  box-shadow:none;
  backdrop-filter:blur(12px);
}
.topbar__label{color:var(--bp-muted);font-size:10.5px;letter-spacing:.08em}
.topbar__search input,.select,.fsearch,.fsel,.input,.auth-inp,.ob-input,.cx-input,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea{
  color:var(--bp-ink);
  background:#fff;
  border:1.5px solid var(--bp-line);
  border-radius:5px;
  box-shadow:none;
}
.topbar__search input:focus,.select:focus,.fsearch:focus,.fsel:focus,.input:focus,
.auth-inp:focus,.ob-input:focus,.cx-input:focus,input:focus,textarea:focus{
  outline:none;
  border-color:var(--bp-blue);
  box-shadow:0 0 0 3px rgba(29,95,191,.14);
}
.icon-btn{
  color:var(--bp-ink);
  background:#fff;
  border:1.5px solid var(--bp-line);
  border-radius:5px;
  box-shadow:none;
}
.icon-btn:hover{color:var(--bp-blue);background:var(--bp-blue-soft);border-color:var(--bp-blue)}
.user__avatar,.avatar{
  color:#fff;
  background:var(--bp-blue);
  border:1px solid #fff;
  border-radius:4px;
  box-shadow:2px 2px 0 var(--bp-grid);
}
.user-menu{
  border:1.5px solid var(--bp-line);
  border-radius:6px;
  box-shadow:6px 6px 0 var(--bp-grid);
}
.user-menu__link{border-radius:4px}
.badge{color:var(--bp-orange-ink);background:var(--bp-orange);border:2px solid #fff;border-radius:4px}

/* En-têtes et contenu ------------------------------------------------------- */
.content{max-width:1640px;padding:28px 30px 54px;background:transparent}
.page-head{
  align-items:flex-end;
  padding:10px 0 16px;
  border:0;
  border-bottom:2px solid var(--bp-line);
}
.page-head__identity{position:relative;padding-top:20px}
.page-head__identity::before{
  content:"RÉF. B360 · VUE ACTIVE";
  position:absolute;
  top:0;
  left:0;
  color:var(--bp-blue);
  font:600 10px/1 var(--bp-data);
  letter-spacing:.11em;
}
.page-title{color:var(--bp-ink);font-size:24px;font-weight:800;letter-spacing:-.025em}
.page-sub{color:var(--bp-muted)}
.breadcrumb{color:var(--bp-blue);letter-spacing:.04em}
.page-back{border-radius:4px}

/* Boutons ------------------------------------------------------------------- */
.btn,.ops-btn,.gtb-btn,.pl-tool,.pe-tool,.sp-action{
  min-height:44px;
  color:var(--bp-ink);
  background:#fff;
  border:1.5px solid var(--bp-line);
  border-radius:5px;
  box-shadow:none;
  font-weight:700;
  transition:color .2s,background .2s,border-color .2s,box-shadow .2s,transform .12s;
}
.btn:hover,.ops-btn:hover,.gtb-btn:hover,.pl-tool:hover,.pe-tool:hover,.sp-action:hover{
  color:var(--bp-blue);
  background:var(--bp-blue-soft);
  border-color:var(--bp-blue);
  box-shadow:3px 3px 0 var(--bp-grid);
  transform:translate(-1px,-1px);
}
.btn:active,.ops-btn:active{transform:translate(0,0);box-shadow:none}
.btn--primary,.auth-cta,.mfab,.btn.primary{
  color:#fff;
  background:var(--bp-blue);
  border-color:var(--bp-blue);
  box-shadow:none;
}
.btn--primary:hover,.auth-cta:hover,.mfab:hover,.btn.primary:hover{
  color:#fff;
  background:var(--bp-blue-hover);
  border-color:var(--bp-blue-hover);
  box-shadow:4px 4px 0 var(--bp-grid);
}
.btn--danger{color:#fff;background:var(--bp-danger);border-color:var(--bp-danger)}
.btn--sm{min-height:38px;border-radius:4px}

/* Cartes, panneaux et KPI --------------------------------------------------- */
.card,
:where(.today-section,.work-action-card,.ops-card,.act-panel,.intel-panel,.ged-panel,
.ux-panel,.profile-section,.dt-list-surface,.b360-issue,.b360-wizard-intro,
.sp-card,.cx-card,.photo-workflow-form,.ifc-photo-context){
  color:var(--bp-ink);
  background:#fff;
  border:1.5px solid var(--bp-line);
  border-radius:6px;
  box-shadow:var(--shadow-sm);
}
.card::before{display:none}
.card:not(.kpi):hover,
:where(.today-section,.work-action-card,.ops-card,.act-panel,.intel-panel,.ged-panel,.ux-panel):hover{
  border-color:#9fbbd9;
  box-shadow:4px 4px 0 var(--bp-grid);
}
.card__head,.today-section__head,.ops-section__head,.act-panel__head,.intel-panel__head,
.ged-panel__head,.profile-section__head,.dt-subsection__head,.sp-card-head{
  background:var(--bp-paper-soft);
  border-bottom:1.5px solid var(--bp-grid);
}
.card__title{color:var(--bp-ink);font-weight:750}
.kpi{
  position:relative;
  overflow:hidden;
  min-height:116px;
  border:1.5px solid var(--bp-line);
  border-left:4px solid var(--bp-blue);
  border-radius:5px;
  box-shadow:3px 3px 0 var(--bp-grid);
}
.kpi:nth-child(4n+2){border-left-color:var(--bp-orange)}
.kpi:nth-child(4n+3){border-left-color:var(--bp-success)}
.kpi:nth-child(4n+4){border-left-color:var(--bp-warning)}
.kpi__label{color:var(--bp-muted);font-size:10.5px;letter-spacing:.06em}
.kpi__val{color:var(--bp-ink);font-family:var(--bp-data);font-weight:600}
.kpi__ico{border-radius:4px}
.bg-indigo,.bg-blue{color:var(--bp-blue);background:var(--bp-blue-soft)}
.bg-purple{color:#3f6188;background:#eaf1f8}
.bg-amber{color:#b34a00;background:var(--bp-orange-soft)}
.bg-green{color:#046c50;background:var(--bp-success-soft)}
.bg-red{color:var(--bp-danger);background:var(--bp-danger-soft)}

/* Tableaux et listes -------------------------------------------------------- */
.table-wrap,.tablewrap,.b360-list-table{
  overflow-x:auto;
  background:#fff;
  border:1.5px solid var(--bp-line);
  border-radius:5px;
}
.tbl thead th,.grow.ghead,.ghead .glabel-wrap,table thead th{
  color:var(--bp-muted);
  background:var(--bp-paper-soft);
  border-bottom:1.5px solid var(--bp-line);
  font-family:var(--bp-data);
  font-size:10.5px;
  letter-spacing:.06em;
}
.tbl td,.tbl th{border-color:var(--bp-grid)}
.tbl tbody tr:hover,.list-row:hover{background:#f2f7fc}
.list-row{border-color:var(--bp-grid)}
.progress,.dt-meter__bar{background:var(--bp-grid);border-radius:2px}
.progress__bar,.ld-track i,.gbar{background:linear-gradient(90deg,var(--bp-blue),#3e7bd4);border-radius:2px}

/* Statuts ------------------------------------------------------------------- */
.tag,.chip,.badge:not(.topbar .badge){
  border-radius:4px;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.02em;
}
.tag::before{border-radius:1px}
.t-info{color:var(--bp-blue);background:var(--bp-blue-soft)}
.t-ok{color:#046c50;background:var(--bp-success-soft)}
.t-warn{color:#b34a00;background:var(--bp-orange-soft)}
.t-danger,.t-bad{color:#a91f1f;background:var(--bp-danger-soft)}
.t-muted{color:var(--bp-muted);background:#edf3f8}
.t-purple{color:var(--bp-blue);background:var(--bp-blue-soft)}

/* Formulaires, onglets et panneaux ----------------------------------------- */
.subtabs{border-bottom:1.5px solid var(--bp-line)}
.subtabs button{min-height:44px;border-radius:4px 4px 0 0;font-family:var(--bp-data)}
.subtabs button:hover{color:var(--bp-blue);background:var(--bp-blue-soft)}
.subtabs button.active{color:var(--bp-blue);background:#fff;border-bottom-color:var(--bp-orange)}
.viewtoggle button{min-height:44px;border-radius:4px}
.viewtoggle button.active{color:#fff;background:var(--bp-blue)}
.field{border-color:var(--bp-grid)}
.field__l{color:var(--bp-muted);font-size:10.5px;letter-spacing:.04em}
.drawer{
  background:var(--bp-paper);
  border-left:2px solid var(--bp-line);
  box-shadow:-8px 0 0 rgba(214,227,242,.78);
}
.drawer__head{background:#fff;border-bottom:2px solid var(--bp-line)}
.drawer__eyebrow,.link{color:var(--bp-blue);font-family:var(--bp-data)}
.drawer__tabs{border-color:var(--bp-line)}
.drawer__tab.active{color:var(--bp-blue);border-color:var(--bp-orange)}
.drawer-backdrop{background:rgba(21,58,107,.32);backdrop-filter:blur(2px)}
.toast{border:1.5px solid #fff;border-radius:5px;box-shadow:5px 5px 0 rgba(21,58,107,.2)}
.banner{border-radius:5px;border-width:1.5px}
.empty-sm,.b360-empty,.b360-sheet-empty{border-radius:5px}

/* Modules riches ------------------------------------------------------------ */
.work-action-card{border-left-width:4px;border-left-color:var(--bp-blue);border-radius:5px}
.work-action-card--danger{border-left-color:var(--bp-danger)}
.work-action-card--warn{border-left-color:var(--bp-warning)}
.work-action-card--review{border-left-color:var(--bp-blue)}
.work-action-card--ok{border-left-color:var(--bp-success)}
.today-hero,.ops-shell,.sp-shell,.dt-shell{background:transparent!important}
.today-hero__eyebrow,.dt-eyebrow,.ops-meta,.sp-route-content{
  color:var(--bp-blue);
  font-family:var(--bp-data);
}
.filterbar,.board-toolbar,.pl-toolbar,.gtbar,.b360-wizard-context{
  background:rgba(255,255,255,.92);
  border:1.5px solid var(--bp-line);
  border-radius:5px;
}
.tree__node,.sp-tree__node{border-radius:4px}
.tree__node:hover,.sp-tree__node:hover{background:var(--bp-blue-soft)}
.ifc-viewer,.ifc-canvas,.plan-canvas,.pl-canvas{border:1.5px solid var(--bp-line);border-radius:5px}
.ifc-photo-context{box-shadow:3px 3px 0 var(--bp-grid)}
.pl-pin,.photo-pin,[class*="pin--active"]{color:var(--bp-orange)}

/* Formulaires et check-lists QSE ------------------------------------------- */
.qse-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.qse-form-grid .auth-fld,.qse-form-grid .qse-field{display:grid;gap:6px;margin:0;min-width:0}
.qse-form-grid .auth-fld>span,.qse-form-grid .qse-field>span,.qse-check label>span{color:var(--bp-muted);font:600 11px/1.3 var(--bp-data)}
.qse-touch{min-height:44px}
.qse-span-2{grid-column:1/-1}
.qse-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.qse-template{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:96px;padding:14px;background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-blue);border-radius:5px;box-shadow:4px 4px 0 var(--bp-grid)}
.qse-template>div{display:grid;gap:4px;min-width:0}
.qse-template span,.qse-template small{color:var(--bp-muted);font:600 10px/1.3 var(--bp-data);text-transform:uppercase}
.qse-template b{color:var(--bp-ink)}
.qse-template__actions{display:flex!important;align-items:flex-end;gap:6px}
.qse-template.is-archived{opacity:.58;border-left-color:var(--bp-muted)}
.qse-audit-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:18px;background:#fff;border:1.5px solid var(--bp-line);border-left:5px solid var(--bp-orange);border-radius:5px;box-shadow:5px 5px 0 var(--bp-grid)}
.qse-audit-head h2{margin:10px 0 4px;color:var(--bp-ink);font-size:19px}
.qse-audit-head p{margin:0;color:var(--bp-muted)}
.qse-audit-head>strong{color:var(--bp-blue);font:800 36px/1 var(--bp-data)}
.qse-check-list{display:grid;gap:12px}
.qse-check{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(290px,.9fr);gap:14px;padding:16px;background:#fff;border:1.5px solid var(--bp-line);border-left:5px solid var(--bp-muted);border-radius:5px}
.qse-check.is-answered{border-left-color:var(--bp-success)}
.qse-check.is-nc{border-left-color:var(--bp-danger);background:#fffafa}
.qse-check header{display:flex;align-items:flex-start;gap:10px}
.qse-check header>div{display:grid;gap:4px}
.qse-check header small{color:var(--bp-muted);font:500 10px/1.3 var(--bp-data);text-transform:uppercase}
.qse-check-index{display:grid;place-items:center;flex:0 0 36px;height:36px;color:#fff;background:var(--bp-blue);border-radius:4px;font:700 13px/1 var(--bp-data)}
.qse-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.qse-choice button{min-height:44px;padding:8px;border:1.5px solid var(--bp-line);border-radius:4px;color:var(--bp-blue);background:#fff;font-weight:700;cursor:pointer}
.qse-choice button:hover{background:var(--bp-blue-soft)}
.qse-choice button.active.c{color:#046c50;border-color:#059669;background:var(--bp-success-soft)}
.qse-choice button.active.nc{color:#a91f1f;border-color:var(--bp-danger);background:var(--bp-danger-soft)}
.qse-choice button.active.na{color:var(--bp-muted);background:#edf3f8}
.qse-check label{display:grid;grid-column:1/-1;gap:5px}
.qse-check textarea{width:100%;padding:10px;border:1.5px solid var(--bp-line);border-radius:4px;background:#fff;font:500 14px/1.45 var(--bp-ui);resize:vertical}
.qse-check-action{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.qse-correction{grid-column:1/-1;display:grid;gap:10px;padding:12px;border:1px solid #fecaca;border-left:4px solid var(--bp-danger);border-radius:4px;background:#fff}
.qse-correction__status{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.qse-correction__status strong{color:var(--bp-danger)}
.qse-correction__status span{color:var(--bp-muted);font:600 11px/1.4 var(--bp-data);text-align:right}
.qse-activity{display:grid;gap:0;padding:0!important}
.qse-activity>button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:58px;padding:10px 14px;border:0;border-bottom:1px solid var(--bp-grid);background:#fff;color:var(--bp-ink);text-align:left;cursor:pointer}
.qse-activity>button:hover{background:var(--bp-blue-soft)}
.qse-activity>button span{display:grid;gap:2px;min-width:0}
.qse-activity>button b,.qse-activity>button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qse-activity>button small,.qse-activity>button time{color:var(--bp-muted);font:600 10px/1.3 var(--bp-data)}
.qse-complete{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-top:16px;padding:14px;background:#fff;border:1.5px solid var(--bp-line);border-radius:5px}
.qse-complete span{color:var(--bp-muted);font:500 11px/1.4 var(--bp-data)}
.qse-reserve-source{padding:12px;border-left:4px solid var(--bp-danger);background:var(--bp-danger-soft);border-radius:4px}

/* Contexte global : offre, société, agence, chantier et raccourcis --------- */
.context-toggle{display:none}
.context-bar{position:sticky;top:64px;z-index:24;display:grid;grid-template-columns:minmax(150px,.75fr) minmax(150px,1fr) minmax(150px,.85fr) minmax(240px,1.6fr);gap:10px;padding:10px 22px;background:rgba(250,252,254,.96);border-bottom:1.5px solid var(--bp-line);backdrop-filter:blur(9px)}
.context-select{display:grid;gap:4px;min-width:0}
.context-select>span{color:var(--bp-muted);font:600 9px/1.2 var(--bp-data);letter-spacing:.08em;text-transform:uppercase}
.context-select .select{width:100%;min-width:0;min-height:44px;padding:8px 10px;background:#fff}
.context-select .select:disabled{color:var(--bp-ink);opacity:1;cursor:not-allowed;background:var(--bp-paper)}
.route-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:9px 11px;background:rgba(255,255,255,.9);border:1.5px solid var(--bp-line);border-radius:5px;box-shadow:3px 3px 0 var(--bp-grid);min-width:0}
.route-context__trail{display:flex;align-items:center;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:none;color:var(--bp-muted);font:600 10px/1.3 var(--bp-data);white-space:nowrap}
.route-context__trail::-webkit-scrollbar{display:none}
.route-context__trail i{color:var(--bp-line-strong);font-style:normal}
.route-context__trail span[aria-current="page"]{color:var(--bp-blue);font-weight:800}
.route-context__actions{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}
.route-context__actions::-webkit-scrollbar{display:none}
.route-context__actions a,.route-context__actions button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 9px;color:var(--bp-blue);background:#fff;border:1.5px solid var(--bp-line);border-radius:4px;font:700 10px/1.2 var(--bp-data);white-space:nowrap;cursor:pointer}
.route-context__actions a:hover,.route-context__actions button:hover{color:var(--bp-orange-ink);border-color:var(--bp-orange);background:var(--bp-orange-soft)}
.route-context__actions .nav-svg{width:15px;height:15px}

/* Tableau de bord Chantier / Projet fondé sur les données réellement chargées */
.today-overview__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.today-overview__metric{display:flex;align-items:center;gap:11px;min-height:92px;padding:12px;color:var(--bp-ink);background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-blue);border-radius:5px;box-shadow:3px 3px 0 var(--bp-grid)}
.today-overview__metric>span{display:grid;place-items:center;flex:0 0 36px;height:36px;color:var(--bp-blue);background:var(--bp-blue-soft);border-radius:4px}
.today-overview__metric>span .ui-svg{width:19px;height:19px}
.today-overview__metric>div{display:grid;gap:2px;min-width:0}
.today-overview__metric b{color:var(--bp-blue);font:800 22px/1 var(--bp-data)}
.today-overview__metric strong{font-size:12px;line-height:1.25}
.today-overview__metric small{color:var(--bp-muted);font:500 9.5px/1.3 var(--bp-data)}
.today-overview__metric:hover{border-left-color:var(--bp-orange);transform:translateY(-1px)}
.today-assets{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:14px;margin-top:12px;padding:13px;background:var(--bp-paper);border:1.5px dashed var(--bp-line-strong);border-radius:5px}
.today-assets>div:first-child{display:grid;align-content:center;gap:4px}.today-assets>div:first-child small{color:var(--bp-muted)}
.today-assets>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.today-assets a{display:flex;align-items:center;gap:8px;min-width:0;min-height:48px;padding:7px 9px;color:var(--bp-ink);background:#fff;border:1px solid var(--bp-line);border-radius:4px}
.today-assets a>span:last-child{display:grid;gap:2px;min-width:0}.today-assets a b,.today-assets a small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-assets a b{font-size:11px}.today-assets a small{color:var(--bp-muted);font-size:9.5px}
.today-project__signals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.today-project__signals a{display:grid;gap:5px;min-height:82px;padding:12px;color:var(--bp-ink);background:#fff;border:1.5px solid var(--bp-line);border-top:4px solid var(--bp-blue);border-radius:5px;text-align:center}
.today-project__signals b{color:var(--bp-blue);font:800 24px/1 var(--bp-data)}
.today-project__signals span{font-size:10.5px;font-weight:700;line-height:1.25}
.today-lots{display:grid;gap:9px;margin-top:12px;padding:13px;background:#fff;border:1.5px solid var(--bp-line);border-radius:5px}
.today-lots>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.today-lots span{display:grid;gap:2px;padding:9px;background:var(--bp-blue-soft);border-radius:4px}.today-lots small{color:var(--bp-muted)}

/* Croquis commun photo / plan */
.pe--plan{width:min(1180px,97vw)}
.pe-widths{display:inline-flex;align-items:center;gap:4px;padding:0 3px}
.pe-width{display:grid;place-items:center;width:36px;min-width:36px;height:36px;padding:7px;background:#fff;border:1.5px solid var(--bp-line);border-radius:4px;cursor:pointer}
.pe-width i{display:block;width:22px;min-height:2px;background:var(--bp-ink);border-radius:999px}
.pe-width.active{border-color:var(--bp-orange);box-shadow:0 0 0 2px var(--bp-orange-soft)}
.plan-mobile-actions{display:none}
#planCanvas,#planSketchCanvas,#peCanvas{touch-action:none}

/* Vague Archipad 3 — réunions, journal et bibliothèque de rapports. */
.report-engine-note{display:flex;flex-direction:column;gap:2px;margin:12px 0;padding:12px;border:1.5px solid var(--bp-line-strong,#c0d4ea);border-left:5px solid var(--bp-orange,#ff6a00);background:var(--bp-paper,#fafcfe)}
.report-engine-note span{color:var(--bp-muted,#5c7290);font-size:12px}
.journal-photo-picker{margin:12px 0 0;border:1.5px solid var(--bp-line-strong,#c0d4ea);border-radius:5px;padding:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px}
.journal-photo-picker legend{font-weight:800;color:var(--bp-ink,#153a6b);padding:0 6px}
.journal-photo-picker label{display:flex;align-items:flex-start;gap:8px;min-height:44px;border:1px solid var(--bp-grid,#d6e3f2);background:#fff;padding:8px;cursor:pointer}
.journal-photo-picker label span{display:flex;flex-direction:column}.journal-photo-picker small{color:var(--bp-muted,#5c7290)}
.journal-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.journal-report-grid .card{border-top:4px solid var(--bp-blue,#1d5fbf)}.journal-report-grid h3{margin:8px 0}.journal-report-grid p{min-height:54px;color:var(--bp-muted,#5c7290)}
.meeting-workflow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:14px}.meeting-workflow span{display:grid;place-items:center;min-height:44px;padding:7px;border:1.5px solid var(--bp-line-strong,#c0d4ea);background:#fff;color:var(--bp-muted,#5c7290);font-size:11px;font-weight:800;text-align:center}.meeting-workflow span.active{border-color:var(--bp-orange,#ff6a00);color:#b34a00}.meeting-workflow span.done{background:#ddf3ea;border-color:#8bd3ba;color:#046c50}
.meeting-points{display:grid;gap:8px}.meeting-point{border:1.5px solid var(--bp-line-strong,#c0d4ea);border-left:4px solid var(--bp-blue,#1d5fbf);padding:9px;background:#fff}.meeting-point header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.meeting-point header strong{flex:1;min-width:180px}.meeting-point p{margin:7px 0;color:var(--bp-muted,#5c7290)}
@media(max-width:900px){.journal-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-workflow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.journal-report-grid{grid-template-columns:1fr}.journal-report-grid p{min-height:0}.meeting-workflow{grid-template-columns:1fr 1fr}.meeting-point header strong{min-width:140px}}
.photo-filterbar{align-items:stretch}
.photo-view-switch{display:flex;flex:1 0 100%;gap:5px;flex-wrap:wrap;padding-top:3px;border-top:1px dashed var(--bp-line)}
.photo-view-switch .btn.active{color:#fff;background:var(--bp-blue);border-color:var(--bp-blue)}
.photo-list,.photo-groups{display:grid;gap:10px}
.photo-list-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0;padding:10px;background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-blue);border-radius:5px;cursor:pointer}
.photo-list-item:hover{border-left-color:var(--bp-orange);box-shadow:4px 4px 0 var(--bp-grid)}
.photo-list-item__thumb{display:grid;place-items:center;width:92px;height:68px;background-position:center!important;background-size:cover!important;border-radius:4px;color:#fff;font-size:24px}
.photo-list-item>div:nth-child(2){display:grid;gap:4px;min-width:0}.photo-list-item b,.photo-list-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-list-item small{color:var(--bp-muted)}
.photo-list-item__actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.photo-group{overflow:hidden;background:#fff;border:1.5px solid var(--bp-line-strong);border-radius:6px;box-shadow:5px 5px 0 var(--bp-grid)}
.photo-group__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;background:var(--bp-paper);border-bottom:1.5px solid var(--bp-line)}
.photo-group__head>div{display:grid;gap:2px}.photo-group__head span{color:var(--bp-orange-ink);font:800 9px/1 var(--bp-data);text-transform:uppercase;letter-spacing:.06em}.photo-group__head h2{margin:0;font-size:16px}.photo-group__head>b{display:grid;place-items:center;min-width:34px;height:34px;color:var(--bp-blue);background:var(--bp-blue-soft);border-radius:4px;font:800 16px/1 var(--bp-data)}
.photo-group>div:last-child{display:grid;gap:7px;padding:8px}.photo-group .photo-list-item{border-width:1px;box-shadow:none}
.reserve-company-view,.reserve-opr-view,.reserve-bulk{display:grid;gap:12px}
.reserve-company-view>section{overflow:hidden;border:1.5px solid var(--bp-line-strong);border-radius:5px;background:#fff}
.reserve-company-view header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--bp-paper);border-bottom:1px solid var(--bp-line)}
.reserve-company-view header>div{display:grid;gap:2px}.reserve-company-view header small{color:var(--bp-muted)}.reserve-company-view header>span{display:grid;place-items:center;min-width:34px;height:34px;color:var(--bp-blue);background:var(--bp-blue-soft);border-radius:4px;font:800 16px/1 var(--bp-data)}
.reserve-company-view section>div:last-child{display:grid;gap:6px;padding:7px}.reserve-company-view section button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:52px;padding:8px 10px;text-align:left;background:#fff;border:1px solid var(--bp-line);border-radius:4px;cursor:pointer}.reserve-company-view section button>span:first-child{display:grid;gap:2px;min-width:0}.reserve-company-view section button small{color:var(--bp-muted)}
.reserve-opr-stages{display:grid;gap:7px}.reserve-opr-stages section{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:58px;padding:8px 10px;background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-blue);border-radius:4px}.reserve-opr-stages section>span{display:grid;place-items:center;width:34px;height:34px;color:#fff;background:var(--bp-blue);border-radius:4px;font:800 14px/1 var(--bp-data)}.reserve-opr-stages section>div{display:grid;gap:2px}.reserve-opr-stages small{color:var(--bp-muted)}
.reserve-opr-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.reserve-opr-summary span{display:grid;place-items:center;gap:3px;padding:10px;background:var(--bp-paper);border:1px solid var(--bp-line);border-radius:4px;text-align:center}.reserve-opr-summary b{color:var(--bp-blue);font:800 21px/1 var(--bp-data)}
.reserve-bulk__list{display:grid;gap:6px;max-height:45vh;overflow:auto}.reserve-bulk__list label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:center;min-height:54px;padding:8px;background:#fff;border:1px solid var(--bp-line);border-radius:4px}.reserve-bulk__list input{width:20px;height:20px}.reserve-bulk__list span{display:grid;gap:2px;min-width:0}.reserve-bulk__list small{color:var(--bp-muted)}

/* Vague Archipad 5 — GED Projet, visas, diffusion et DOE connecté. */
.ged360-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(170px,.35fr) auto auto;gap:8px;align-items:center}
.ged360-folders{display:flex;gap:8px;margin:12px 0;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.ged360-folders button{display:grid;grid-template-columns:32px minmax(92px,1fr) auto;gap:8px;align-items:center;flex:0 0 auto;min-height:52px;padding:8px 10px;color:var(--bp-ink);background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-blue);border-radius:5px;cursor:pointer;text-align:left}
.ged360-folders button>span{display:grid;place-items:center;width:30px;height:30px;color:var(--bp-blue);background:var(--bp-blue-soft);border-radius:4px;font:800 13px/1 var(--bp-data)}
.ged360-folders button>b{font-size:11px}.ged360-folders button>small{display:grid;place-items:center;min-width:25px;height:25px;color:var(--bp-muted);background:var(--bp-paper);border-radius:4px;font:800 10px/1 var(--bp-data)}
.ged360-folders button:hover,.ged360-folders button.active{border-left-color:var(--bp-orange);background:var(--bp-orange-soft)}
.ged360-doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ged360-doc{overflow:hidden;background:#fff;border:1.5px solid var(--bp-line-strong);border-radius:6px;box-shadow:5px 5px 0 var(--bp-grid)}
.ged360-doc__open{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;min-height:118px;padding:13px;color:var(--bp-ink);background:#fff;border:0;cursor:pointer;text-align:left}
.ged360-doc__open:hover{background:var(--bp-paper)}
.ged360-doc__open>div{display:grid;gap:5px;min-width:0}.ged360-doc__open small{color:var(--bp-blue);font:800 9px/1.2 var(--bp-data);letter-spacing:.04em}.ged360-doc__open h3{margin:0;font-size:13px;line-height:1.3}.ged360-doc__open p{margin:0;color:var(--bp-muted);font-size:10.5px;line-height:1.4}
.ged360-doc__type{display:grid;place-items:center;width:46px;height:54px;padding:5px;color:#fff;background:var(--bp-blue);border-radius:3px;font:800 8px/1 var(--bp-data);overflow-wrap:anywhere;text-align:center}
.ged360-doc footer{display:flex;flex-wrap:wrap;gap:6px 11px;padding:9px 12px;color:var(--bp-muted);background:var(--bp-paper);border-top:1px solid var(--bp-line);font:600 9px/1.25 var(--bp-data)}
.ged360-doc footer b{color:var(--bp-blue)}
.ged360-compact{display:grid;gap:6px}.ged360-compact>button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:50px;width:100%;padding:8px 9px;color:var(--bp-ink);background:#fff;border:1px solid var(--bp-line);border-left:3px solid var(--bp-blue);border-radius:4px;cursor:pointer;text-align:left}.ged360-compact>button:hover{border-left-color:var(--bp-orange)}.ged360-compact>button>span:first-child{display:grid;gap:3px;min-width:0}.ged360-compact small{color:var(--bp-muted)}
.ged360-project-state{display:grid;gap:7px}.ged360-project-state>div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:3px 9px;align-items:center;min-height:61px;padding:9px;background:var(--bp-paper);border:1px solid var(--bp-line);border-radius:4px}.ged360-project-state>div>span{grid-row:1/3;display:grid;place-items:center;height:39px;color:var(--bp-blue);background:var(--bp-blue-soft);font:800 10px/1 var(--bp-data)}.ged360-project-state b{font-size:12px}.ged360-project-state small{color:var(--bp-muted)}
.ged360-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;background:var(--bp-paper);border:1.5px solid var(--bp-line);border-left:5px solid var(--bp-orange);border-radius:5px}.ged360-detail-head>div{display:grid;gap:4px;min-width:0}.ged360-detail-head span:first-child{color:var(--bp-blue);font:800 9px/1.2 var(--bp-data);letter-spacing:.04em}.ged360-detail-head h3{margin:0}.ged360-detail-head p{margin:0;color:var(--bp-muted)}
.ged360-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.ged360-meta>span{display:grid;gap:3px;padding:9px;background:#fff;border:1px solid var(--bp-line);border-radius:4px}.ged360-meta small{color:var(--bp-muted);font:700 8.5px/1.2 var(--bp-data);text-transform:uppercase}.ged360-meta b{overflow-wrap:anywhere;font-size:11px}
.ged360-detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.ged360-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ged360-detail-grid>section{padding:10px;background:#fff;border:1.5px solid var(--bp-line);border-radius:5px}.ged360-detail-grid h4{margin:0 0 8px;color:var(--bp-blue);font:800 11px/1.2 var(--bp-data)}
.ged360-visa-row,.ged360-version,.ged360-distribution{display:flex;align-items:center;gap:8px;min-height:48px;padding:7px 0;border-bottom:1px solid var(--bp-grid)}.ged360-visa-row:last-child,.ged360-version:last-child,.ged360-distribution:last-child{border-bottom:0}.ged360-visa-row>div,.ged360-version,.ged360-distribution{min-width:0}.ged360-visa-row>div{display:grid;flex:1;gap:2px}.ged360-visa-row p{grid-column:1/-1;margin:3px 0;color:var(--bp-muted)}.ged360-visa-row small,.ged360-version small,.ged360-distribution small{color:var(--bp-muted)}
.ged360-version,.ged360-distribution{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}.ged360-version small,.ged360-distribution small{grid-column:1/-1}
.ged360-event{display:grid;grid-template-columns:12px minmax(0,1fr);gap:7px;padding:5px 0}.ged360-event>span{width:9px;height:9px;margin-top:4px;background:var(--bp-orange);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--bp-line-strong)}.ged360-event>div{display:grid;gap:2px}.ged360-event small{color:var(--bp-muted)}
.ged360-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:44vh;overflow:auto}.ged360-people label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:center;min-height:52px;padding:8px;background:#fff;border:1px solid var(--bp-line);border-radius:4px;cursor:pointer}.ged360-people input{width:20px;height:20px}.ged360-people label>span{display:grid;gap:2px;min-width:0}.ged360-people small{color:var(--bp-muted)}
.ged360-list{display:grid;gap:8px}.ged360-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:74px;padding:10px 12px;background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-blue);border-radius:5px}.ged360-list article>div{display:grid;gap:3px;min-width:0}.ged360-list article span:first-child{color:var(--bp-blue);font:800 9px/1.2 var(--bp-data)}.ged360-list h3,.ged360-list p{margin:0}.ged360-list h3{font-size:13px}.ged360-list p{color:var(--bp-muted);font-size:10.5px}
.ged360-history{display:grid}.ged360-history>div{display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;min-height:48px}.ged360-history>div>span{position:relative;width:10px;height:10px;margin-top:5px;background:var(--bp-orange);border-radius:50%}.ged360-history>div>span:after{content:"";position:absolute;top:12px;bottom:-32px;left:4px;width:2px;background:var(--bp-grid)}.ged360-history>div:last-child>span:after{display:none}.ged360-history p{display:grid;gap:3px;margin:0}.ged360-history small{color:var(--bp-muted);font-family:var(--bp-data)}
.ged360-doe-empty{text-align:center}.ged360-doe-empty .card__body{display:grid;justify-items:center;gap:9px;padding:28px}.ged360-doe-empty .card__body>span{color:var(--bp-blue);font:800 22px/1 var(--bp-data)}.ged360-doe-empty h2,.ged360-doe-empty p{margin:0}.ged360-doe-empty p{max-width:580px;color:var(--bp-muted)}
.ged360-doe-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.5fr);gap:18px;align-items:center;margin-bottom:12px;padding:14px;background:#fff;border:1.5px solid var(--bp-line-strong);border-left:5px solid var(--bp-orange);border-radius:5px;box-shadow:5px 5px 0 var(--bp-grid)}.ged360-doe-head>div:first-child{display:grid;gap:3px}.ged360-doe-head span:first-child{color:var(--bp-blue);font:800 9px/1.2 var(--bp-data)}.ged360-doe-head h2,.ged360-doe-head p{margin:0}.ged360-doe-head p{color:var(--bp-muted)}.ged360-doe-head .progress{height:12px;overflow:hidden;background:var(--bp-grid);border-radius:2px}.ged360-doe-head .progress>span{display:block;height:100%;background:var(--bp-success)}
.ged360-doe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ged360-doe-grid>article{display:grid;align-content:start;gap:7px;padding:11px;background:#fff;border:1.5px solid var(--bp-line);border-left:4px solid var(--bp-danger);border-radius:5px}.ged360-doe-grid>article.is-ok{border-left-color:var(--bp-success)}.ged360-doe-grid header{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center}.ged360-doe-grid header>span{display:grid;place-items:center;width:34px;height:34px;color:#fff;background:var(--bp-blue);border-radius:4px;font:800 11px/1 var(--bp-data)}.ged360-doe-grid h3,.ged360-doe-grid p{margin:0}.ged360-doe-grid h3{font-size:12px}.ged360-doe-grid p{color:var(--bp-muted)}.ged360-doe-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:7px 9px;background:var(--bp-paper);border:1px solid var(--bp-grid);border-radius:4px}.ged360-doe-item span{color:var(--bp-muted);font-size:10px}

/* Neutralisation des violets historiques sans toucher au JS métier. */
svg [stroke="#4f46e5"],svg [stroke="#4338ca"],svg [stroke="#6366f1"],
svg [stroke="#7c3aed"]{stroke:var(--bp-blue)!important}
svg [fill="#4f46e5"],svg [fill="#4338ca"],svg [fill="#6366f1"],
svg [fill="#7c3aed"]{fill:var(--bp-blue)!important}
.work-action-card--review{border-left-color:var(--bp-blue)!important}
[style*="background:#4f46e5"],[style*="background: #4f46e5"],
[style*="background:#6366f1"],[style*="background: #6366f1"],
[style*="background:#7c3aed"],[style*="background: #7c3aed"]{
  background:var(--bp-blue)!important;
}
[style*="color:#7c3aed"],[style*="color: #7c3aed"],
[style*="color:#4338ca"],[style*="color: #4338ca"]{color:var(--bp-blue)!important}

/* Navigation mobile --------------------------------------------------------- */
.mbar{
  background:rgba(250,252,254,.97);
  border-top:2px solid var(--bp-line);
  box-shadow:0 -4px 0 rgba(214,227,242,.62);
}
.mbar__i{color:var(--bp-muted);border-radius:4px}
.mbar__i:hover,.mbar__i:active{color:var(--bp-blue);background:var(--bp-blue-soft)}
.mfab{
  color:var(--bp-orange-ink);
  background:var(--bp-orange);
  border:2px solid #fff;
  border-radius:6px;
  box-shadow:5px 5px 0 rgba(214,227,242,.9);
}
.appfoot{background:rgba(255,255,255,.88);border-top:1.5px solid var(--bp-grid)}

@media (max-width:1024px){
  .content{padding:22px 18px 88px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .qse-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .context-bar{grid-template-columns:repeat(2,minmax(0,1fr));padding:9px 18px}
  .today-overview__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .today-project__signals{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ged360-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .sidebar{box-shadow:8px 0 0 rgba(214,227,242,.8)}
  .topbar{padding:9px 12px}
  .btn,.ops-btn,.gtb-btn,.pl-tool,.pe-tool,.sp-action{min-height:44px}
  .context-toggle{display:grid}
  .context-bar{position:relative;top:auto;display:none;padding:10px 12px}
  .context-bar.is-open{display:grid}
  .route-context{align-items:stretch;flex-direction:column}
  .route-context__actions a,.route-context__actions button{min-height:44px}
  .today-assets{grid-template-columns:1fr}.today-assets>div:last-child{grid-template-columns:1fr 1fr}
  .pe-width{min-height:44px;width:44px;min-width:44px}
}
@media (max-width:600px){
  body{background-size:28px 28px}
  .content{padding:16px 12px 92px}
  .page-head{align-items:flex-start;padding-top:4px}
  .page-head__identity{padding-top:18px}
  .page-title{font-size:21px}
  .kpi-grid{grid-template-columns:1fr!important}
  .card:not(.kpi):hover{box-shadow:2px 2px 0 var(--bp-grid)}
  .field{grid-template-columns:1fr;gap:5px}
  .drawer{max-width:100vw}
  .qse-form-grid,.qse-template-grid,.qse-check{grid-template-columns:1fr}
  .qse-span-2{grid-column:auto}
  .qse-check label,.qse-check-action,.qse-correction{grid-column:auto}
  .qse-check-action{justify-content:stretch}.qse-check-action .btn{flex:1 1 150px;min-height:44px}
  .qse-correction__status{display:grid}.qse-correction__status span{text-align:left}
  .qse-choice{grid-template-columns:1fr}
  .qse-audit-head{align-items:flex-start;flex-direction:column}
  .qse-complete{align-items:stretch;flex-direction:column}
  .qse-complete .btn{width:100%}
  .context-bar{grid-template-columns:1fr}
  .context-select--project{grid-column:auto}
  .route-context{margin-bottom:11px;padding:8px}
  .route-context__trail{width:100%}
  .route-context__actions{width:100%}
  .route-context__actions a,.route-context__actions button{flex:0 0 auto}
  .today-overview__grid,.today-project__signals,.today-lots>div,.today-assets>div:last-child{grid-template-columns:1fr}
  .today-overview__metric{min-height:78px}
  .pe__toolbar .pe-widths{grid-column:1/-1;display:flex;flex-wrap:wrap}
  .plan-mobile-actions{position:fixed;right:10px;bottom:76px;left:10px;z-index:58;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:6px;background:rgba(255,255,255,.97);border:1.5px solid var(--bp-line-strong);border-radius:7px;box-shadow:6px 6px 0 rgba(214,227,242,.9)}
  .plan-mobile-actions button{display:grid;place-items:center;gap:2px;min-width:0;min-height:52px;padding:5px 3px;color:var(--bp-blue);background:var(--bp-paper);border:1px solid var(--bp-line);border-radius:4px;font-size:18px;font-weight:800}
  .plan-mobile-actions span{font:700 8.5px/1.1 var(--bp-data);white-space:nowrap}
  .photo-list-item{grid-template-columns:72px minmax(0,1fr);align-items:start}.photo-list-item__thumb{width:72px;height:64px}.photo-list-item__actions{grid-column:1/-1;justify-content:stretch}.photo-list-item__actions .btn{flex:1}.photo-view-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-view-switch .btn{justify-content:center;width:100%}
  .reserve-opr-summary{grid-template-columns:1fr}.reserve-opr-stages section{grid-template-columns:36px minmax(0,1fr)}.reserve-opr-stages section .btn{grid-column:1/-1;width:100%}
  .ged360-toolbar{grid-template-columns:1fr}.ged360-toolbar .btn,.ged360-toolbar select,.ged360-toolbar input{width:100%;min-height:44px}
  .ged360-doc-grid,.ged360-detail-grid,.ged360-meta,.ged360-doe-grid,.ged360-people{grid-template-columns:1fr}
  .ged360-doc__open{grid-template-columns:43px minmax(0,1fr);min-height:110px}.ged360-doc__type{width:41px;height:50px}.ged360-doc__open>.tag{grid-column:1/-1;justify-self:start}
  .ged360-detail-head{flex-direction:column}.ged360-doe-head{grid-template-columns:1fr;align-items:stretch}.ged360-detail-actions{display:grid;grid-template-columns:1fr 1fr}.ged360-detail-actions .btn{justify-content:center;min-height:44px;width:100%}
  .ged360-list article{grid-template-columns:minmax(0,1fr) auto}.ged360-list article .btn{grid-column:1/-1;width:100%;min-height:44px}
  .ged360-doe-grid header{grid-template-columns:34px minmax(0,1fr)}.ged360-doe-grid header>.tag{grid-column:1/-1;justify-self:start}.ged360-doe-grid .btn{width:100%;min-height:44px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

@media print{
  body{background:#fff;background-image:none}
  .sidebar,.topbar,.context-bar,.route-context,.mbar,.mfab,.plan-mobile-actions,.appfoot{display:none!important}
  .main{margin:0!important}
  .content{max-width:none;padding:0;background:#fff}
  .card,.kpi,.table-wrap{box-shadow:none!important}
}
