/* Specialtools V2.1 — Design System premium
   Couche de finition commune à tous les modules. */

@font-face{font-family:"Renault Group";src:local("RenaultGroupAH-Light"),url("fonts/RenaultGroupAH-Light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Renault Group";src:local("RenaultGroupAH-Book"),url("fonts/RenaultGroupAH-Book.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Renault Group";src:local("RenaultGroupAH-Regular"),url("fonts/RenaultGroupAH-Regular.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Renault Group";src:local("RenaultGroupAH-Semibold"),url("fonts/RenaultGroupAH-Semibold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Renault Group";src:local("RenaultGroupAH-Bold"),url("fonts/RenaultGroupAH-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Renault Group";src:local("RenaultGroupAH-Extrabold"),url("fonts/RenaultGroupAH-Extrabold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}

:root{
  --st-bg:#f2f4f5;
  --st-surface:#ffffff;
  --st-surface-2:#f8f9fa;
  --st-ink:#17212b;
  --st-muted:#66727e;
  --st-muted-2:#8b949d;
  --st-line:#dce2e6;
  --st-line-soft:#e9edf0;
  --st-nav:#101820;
  --st-nav-2:#18242e;
  --st-accent:#f4c430;
  --st-accent-hover:#ffd64d;
  --st-danger:#b43d3d;
  --st-radius-control:9px;
  --st-radius-card:14px;
  --st-radius-modal:18px;
  --st-shadow-soft:0 7px 24px rgba(18,31,43,.055);
  --st-shadow-raised:0 14px 38px rgba(18,31,43,.10);
  --st-focus:0 0 0 3px rgba(244,196,48,.22);

  /* V2.1.2 — échelle typographique commune */
  --st-font-page-title:28px;
  --st-font-section-title:19px;
  --st-font-card-title:16px;
  --st-font-body:15px;
  --st-font-secondary:14px;
  --st-font-meta:13px;
  --st-font-control:15px;
  --st-font-kpi:28px;
}

html{background:var(--st-bg)}
body,button,input,select,textarea{font-family:"Renault Group","Segoe UI",Arial,sans-serif}
body{background:var(--st-bg);color:var(--st-ink);font-size:14px;line-height:1.45;letter-spacing:-.004em;font-weight:400}
button,input,select,textarea{font-size:14px}

/* Shell */
.app-shell{grid-template-columns:238px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,var(--st-nav) 0%,var(--st-nav-2) 100%);padding:20px 14px 16px;border-right:1px solid rgba(255,255,255,.035)}
.brand{gap:11px;padding:2px 8px 24px}
.brand-mark{width:38px;height:38px;border-radius:9px;background:var(--st-accent);font-size:12px;letter-spacing:.02em}
.brand strong{font-size:18px;line-height:1.1;font-weight:700;letter-spacing:-.01em}
.brand span{font-size:12px;color:#93a0aa;margin-top:4px}
.sidebar nav{gap:5px}
.nav{min-height:44px;display:flex;align-items:center;gap:11px;padding:0 12px;border-radius:9px;color:#aab4bd;font-size:14px;font-weight:500;line-height:1}
.nav:hover{background:rgba(255,255,255,.055);color:#fff}
.nav.active{background:rgba(255,255,255,.085);color:#fff;box-shadow:inset 3px 0 var(--st-accent)}
.nav-svg{width:18px;height:18px;margin:0;flex:0 0 18px}
.nav-svg svg{width:18px;height:18px;fill:none!important;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.nav-v2-badge{min-width:25px;height:18px;margin-left:auto;background:rgba(244,196,48,.14);color:#f7d64f;font-size:9px;font-weight:700}
.sidebar-connectivity{padding:10px 11px;border-radius:9px;background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.075)}
.sidebar-connectivity strong{font-size:11px;font-weight:600}.sidebar-connectivity span{font-size:10px}.version{padding:9px 11px 2px;font-size:11px;color:#85929d}
.version strong{font-size:12px;font-weight:600}

main{background:var(--st-bg)}
header{height:72px;padding:10px 28px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--st-line);box-shadow:none;backdrop-filter:blur(10px)}
.header-title h1{font-size:25px;line-height:1.05;font-weight:700;letter-spacing:-.025em;color:var(--st-ink)}
.header-title p{font-size:12.5px;line-height:1.25;margin-top:5px;color:var(--st-muted)}
.header-actions{gap:7px;flex-wrap:nowrap}
.view{padding:22px 28px 36px}

/* Controls */
.btn,.icon-btn,.access-header-btn,.access-primary,.access-secondary,.access-danger{min-height:40px;border-radius:var(--st-radius-control);font-size:13px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}
.btn{padding:9px 13px}
.btn.primary,.primary{background:var(--st-accent);border-color:#ddb124;color:#171717;box-shadow:none}
.btn.primary:hover,.primary:hover{background:var(--st-accent-hover);border-color:#d9ad1d;transform:none}
.btn.secondary,.secondary{background:#fff;border-color:var(--st-line);color:#26313b}
.btn.secondary:hover,.secondary:hover{background:#f7f8f9;border-color:#cbd3d9}
.btn.danger,.danger,.danger-outline{color:var(--st-danger);border-color:#e6caca;background:#fff}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:var(--st-focus)!important}
input,select,textarea{color:var(--st-ink)}
select,.toolbar select,.v2-toolbar select,.control-filter-panel select,.bulk-actions select,.form-grid input,.form-grid select,.form-grid textarea,.access-form input,.access-form select{min-height:42px;border:1px solid var(--st-line);border-radius:var(--st-radius-control);background:#fff;padding:9px 11px}
.search,.control-search{min-height:42px;border:1px solid var(--st-line);border-radius:var(--st-radius-control);background:#fff;color:#697784}
.search input,.control-search input{font-size:14px}
.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:700;color:#9c7a00}
.badge,.v2-status,.v2-condition,.access-role,.update-tag{font-size:11.5px;font-weight:600;padding:5px 8px;border-radius:999px}

/* Header actions */
.view-mode-switch{height:42px;gap:3px;padding:3px;border:1px solid var(--st-line);border-radius:10px;background:#f4f6f7}
.view-mode-btn{height:34px;padding:0 12px;border-radius:7px;font-size:12.5px;font-weight:600;color:#4a5661}
.view-mode-btn.active{background:#fff;color:#1c2832;box-shadow:0 1px 4px rgba(18,31,43,.08);border:0}
.language-switch{height:42px;min-width:72px;padding:0 8px;border:1px solid var(--st-line);border-radius:10px;background:#fff;box-shadow:none}
.language-icon{width:19px;height:19px}.language-icon svg{width:18px;height:18px;color:#445664;stroke-width:1.6}
.language-switch select{min-height:34px;border:0;padding:0;background:transparent;font-size:12.5px;font-weight:600}
.access-account{padding:0}
.access-user-chip{height:42px;padding:5px 9px;border:1px solid var(--st-line);border-radius:10px;background:#fff;gap:8px}
.access-user-avatar{width:30px;height:30px;border-radius:8px;background:var(--st-nav);color:var(--st-accent);font-size:11px;font-weight:700}
.access-user-text strong{font-size:12.5px;font-weight:600;max-width:115px}.access-user-text span{font-size:10.5px;margin-top:1px}
#addBtn{height:42px;white-space:nowrap}

/* Home: same shell, cockpit haut de gamme */
#homeView{padding:0;background:var(--st-bg)}
.home2-dashboard{padding:16px 24px 12px;gap:10px;color:var(--st-ink)}
.home2-topbar{grid-template-columns:minmax(250px,.58fr) minmax(620px,1.42fr);gap:18px}
.home2-welcome h2{font-size:22px;line-height:1.15;font-weight:700;letter-spacing:-.02em}.home2-welcome p{font-size:12.5px;margin-top:5px}
.home2-actions{grid-template-columns:minmax(330px,1fr) 104px 152px 112px;gap:7px}
.home2-search{height:44px;border-radius:10px;border-color:var(--st-line);box-shadow:none}
.home2-search-submit{height:34px;border-radius:7px;font-size:12px;font-weight:600}
.home2-quick-button{height:44px;border-radius:10px;border-color:var(--st-line);box-shadow:none;font-size:12.5px}.home2-quick-button:hover{transform:none;box-shadow:0 5px 14px rgba(18,31,43,.06)}.home2-quick-button b{font-size:12px;font-weight:600}
.home2-kpis{gap:8px}
.home2-kpis .home-kpi{height:80px;border-radius:12px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft);grid-template-columns:38px minmax(0,1fr) 12px;padding:10px 12px}
.home2-kpis .home-kpi:hover{transform:none;border-color:#c9d2d8;box-shadow:0 9px 22px rgba(18,31,43,.08)}
.home2-kpis .home-kpi-icon{width:34px;height:34px;border-radius:9px;font-size:15px}
.home2-kpis .home-kpi-copy small{font-size:11.5px;font-weight:600;color:#586570}.home2-kpis .home-kpi-copy strong{font-size:24px;font-weight:700;margin-top:3px}.home2-kpis .home-kpi-copy em{font-size:10.5px;margin-top:4px}
.home2-main-grid{gap:9px}
.home2-panel{border-radius:13px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft);padding:13px;grid-template-rows:54px minmax(0,1fr)}
.home2-panel-head{grid-template-columns:36px minmax(0,1fr) 54px;gap:8px;padding-bottom:9px}.home2-panel-icon{width:34px;height:34px;border-radius:9px;font-size:15px}.home2-panel-head h3{font-size:15.5px;font-weight:650}.home2-panel-head p{font-size:11px;margin-top:3px}.home2-panel-head>button{min-width:54px;min-height:34px;font-size:11.5px;font-weight:600}
.home2-metric-list{gap:5px;padding-top:8px}.home2-metric-list>button{min-height:47px;border-radius:9px;background:#fafbfb;border-color:#e7ebee;padding:5px 8px;grid-template-columns:32px minmax(0,1fr) auto 12px;gap:7px}.home2-metric-list>button:hover{transform:none;box-shadow:none;background:#fff;border-color:#cfd7dc}.home2-row-icon{width:30px;height:30px;border-radius:8px;font-size:11px}.home2-metric-list b{font-size:12.5px;font-weight:600}.home2-metric-list small{font-size:10.5px;margin-top:2px}.home2-metric-list>button>strong{font-size:19px;font-weight:700}.home2-metric-list>button>i{font-size:17px}
.home2-priority-list{gap:6px;padding-top:8px}.home2-priority-list .home-priority-card{min-height:53px;border-radius:9px;padding:6px 8px;grid-template-columns:32px minmax(0,1fr) 14px;gap:7px}.home2-priority-list .priority-icon{width:30px;height:30px;border-radius:8px;font-size:14px}.home2-priority-list strong{font-size:18px;font-weight:700}.home2-priority-list b{font-size:12.5px;font-weight:600}.home2-priority-list small{font-size:10.5px;margin-top:3px}
.home2-future-strip{border-radius:12px;border-color:var(--st-line);box-shadow:none;padding:8px 10px;gap:6px}.home2-future-intro{grid-template-columns:36px minmax(0,1fr);gap:8px}.home2-future-intro>span{width:34px;height:34px;border-radius:9px;font-size:12px}.home2-future-intro h3{font-size:13.5px;font-weight:650}.home2-future-intro p{font-size:10.5px}.home2-future-strip>button{min-height:58px;border-radius:9px;background:#f8f9fa;padding:6px 7px;grid-template-columns:26px minmax(0,1fr);column-gap:7px}.home2-future-strip>button>span{width:26px;height:26px;border-radius:7px;font-size:13px}.home2-future-strip>button>b{font-size:11.5px;font-weight:600}.home2-future-strip>button>small{font-size:10px}
.home2-footer{font-size:11px}

@media(min-width:1100px){
  main:has(#homeView.view.active)>header{display:flex!important}
  body:has(#homeView.view.active){overflow:hidden}
  main:has(#homeView.view.active){height:100vh;overflow:hidden}
  #homeView.view.active{height:calc(100vh - 72px);min-height:0;overflow:hidden}
  .home2-dashboard{height:100%;grid-template-rows:58px 80px minmax(0,1fr) 70px 14px}
}

/* Tools */
#toolsView .toolbar{gap:8px;padding:12px;border-radius:12px;border-color:var(--st-line);box-shadow:none;background:#fff}
#toolsView .toolbar select,#toolsView .toolbar .search,#toolsView .toolbar .btn,#toolsView .toolbar .icon-btn{height:42px;min-height:42px;border-radius:9px}
.results-line{margin:16px 2px 12px}.results-line strong{font-size:14px}.results-line span{font-size:12px}
.cards{gap:14px;grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
.tool-card{border-radius:13px;border-color:var(--st-line);box-shadow:0 4px 14px rgba(18,31,43,.035);border-top-width:3px}
.tool-card:hover{transform:translateY(-2px);box-shadow:var(--st-shadow-raised)}
.tool-image{height:162px;padding:15px}.tool-body{padding:14px}.tool-card h4{font-size:15px;font-weight:600;line-height:1.3;margin:7px 0 11px}.tool-code{font-size:12.5px}.meta{font-size:11.5px}.tool-code-badge{border-radius:8px;font-size:11.5px;font-weight:650;padding:5px 8px;box-shadow:none}
.table-wrap,.control-table-wrap,.v2-inventory-table-wrap{border-radius:12px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft)}
.data-table th,.data-table td,.control-table th,.control-table td,.v2-inventory-table th,.v2-inventory-table td{font-size:12.5px;padding:11px 12px}.data-table th,.control-table th,.v2-inventory-table th{font-size:11.5px;font-weight:600;color:#56626d;background:#f7f8f9;text-transform:none;letter-spacing:0}

/* Inventory: global title is authoritative */
.v2-page-head{justify-content:flex-end;margin-bottom:14px;align-items:center}.v2-page-head>div:first-child{display:none}.v2-page-actions{gap:8px}.v2-user-context{padding:7px 9px;border-radius:10px;border-color:var(--st-line);box-shadow:none}.v2-user-context label{font-size:10.5px;font-weight:600}.v2-user-context select{min-width:220px;min-height:34px;padding:5px 8px}.v2-user-context small{font-size:10px;margin-top:2px}.v2-kpis{gap:8px;margin-bottom:12px}.v2-kpi{min-height:80px;border-radius:12px;padding:12px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft);border-top:1px solid var(--st-line)!important;position:relative}.v2-kpi::before{content:"";position:absolute;left:12px;top:11px;width:7px;height:7px;border-radius:50%;background:#81909c}.v2-kpi.green::before{background:#2f9e63}.v2-kpi.orange::before{background:#e58a2f}.v2-kpi.red::before{background:#d94b4b}.v2-kpi.yellow::before{background:#d4a62a}.v2-kpi.blue::before{background:#3676c8}.v2-kpi strong{font-size:25px;font-weight:700;margin:8px 0 5px}.v2-kpi span{font-size:11.5px;font-weight:600}.v2-kpi:hover{transform:none;box-shadow:0 8px 20px rgba(18,31,43,.08)}
.v2-toolbar{grid-template-columns:minmax(260px,1.5fr) repeat(5,minmax(130px,.75fr)) auto;gap:8px;padding:11px;border-radius:12px;border-color:var(--st-line);box-shadow:none}.v2-results-line{font-size:12px;margin:9px 2px}.v2-results-line strong{font-size:13.5px}.v2-inventory-table td{font-size:12.5px}.v2-tool-link strong{font-size:13.5px;font-weight:600}.v2-tool-link span{font-size:11.5px}

/* Control: remove duplicated page title and prioritize workflow */
.control-page-title{display:none}
.control-workflow-banner{margin-top:0}
.control-stats{gap:8px;margin:12px 0}.control-stat{min-height:100px;border-radius:12px;padding:13px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft)}.control-stat strong{font-size:25px;font-weight:700}.control-stat span{font-size:11.5px;font-weight:600}.control-stat small{font-size:10.5px;padding-top:5px}
.control-filter-panel{border-radius:12px!important;border-color:var(--st-line)!important;box-shadow:none!important;padding:12px!important}.filter-labelled>span{font-size:10.5px!important;font-weight:600!important;color:#68747e!important}.control-filter-grid,.control-filter-secondary{gap:8px!important}.control-bulk-bar{border-radius:12px!important;border-color:var(--st-line)!important;box-shadow:none!important;padding:10px 12px!important}.selection-count{font-size:12px}.bulk-actions{gap:7px}

/* Analytics: global header title, local actions only */
.analytics-header{justify-content:flex-end;align-items:center;margin-bottom:14px}.analytics-header>div:first-child{display:none}.analytics-actions{gap:8px}.analytics-kpis{gap:8px;margin-bottom:14px}.analytics-kpi{border-radius:12px;padding:14px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft)}.analytics-kpi strong{font-size:25px;font-weight:700}.analytics-kpi span{font-size:11.5px;font-weight:600}.analytics-grid{gap:12px}.analytics-card{border-radius:13px;padding:18px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft);min-height:330px}.analytics-card h3{font-size:17px;font-weight:650}.analytics-rank,.analytics-event{padding:11px 2px}.analytics-rank small,.analytics-event small{font-size:11px}.analytics-event time{font-size:10.5px}.analytics-note{font-size:11.5px}

/* Settings: one coherent administration page */
.settings-page-head{display:none}
#settingsView{max-width:1280px}
.settings-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.settings-admin-card{border-radius:13px;padding:16px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft);grid-template-columns:38px minmax(0,1fr);gap:12px}.settings-admin-icon{width:38px;height:38px;border-radius:9px;background:#f4f0da;color:#7f6600}.settings-admin-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.settings-admin-content h3{font-size:15.5px;font-weight:650;margin:2px 0 4px}.settings-admin-content p{font-size:11.5px;line-height:1.4}.settings-admin-actions{gap:7px;padding-top:4px}.settings-card{max-width:none;border-radius:13px;padding:20px;border-color:var(--st-line);box-shadow:var(--st-shadow-soft)}.settings-card h2{font-size:18px;font-weight:650;margin:5px 0 7px}.settings-card>p{font-size:12.5px;line-height:1.5}.backup-settings{max-width:none}.backup-overview{gap:9px!important;margin:15px 0!important}.backup-metric{border-radius:10px!important;padding:12px!important;background:#f8f9fa!important;border-color:var(--st-line-soft)!important}.backup-metric span{font-size:10.5px!important}.backup-metric strong{font-size:13px!important;font-weight:600!important}.backup-actions{gap:8px!important}.backup-note{font-size:11px!important}.settings-maintenance-card{margin-top:14px}.setting-row{margin-top:16px;padding-top:15px}.setting-row strong{font-size:13.5px;font-weight:600}.setting-row span{font-size:11.5px}

/* Detail page and modals */
.modal{background:rgba(8,14,20,.58);backdrop-filter:blur(3px)}
.modal-panel,.access-panel{border-radius:var(--st-radius-modal);box-shadow:0 28px 72px rgba(7,15,23,.28)}
.modal-window-header{height:58px;border-radius:18px 18px 0 0;background:#fafbfb;border-color:var(--st-line);padding-left:17px}.window-title-icon{width:32px;height:32px;border-radius:8px}.modal-window-header strong{font-size:15px;font-weight:650}.modal-window-header span{font-size:11.5px}.modal-close{width:38px;height:38px;border-radius:10px;box-shadow:none;font-size:22px}
.detail-panel{width:min(1120px,96vw);border-top-width:4px}.detail-hero{grid-template-columns:40% 60%;min-height:350px}.detail-image{background:#f6f7f8}.detail-content{padding:34px 38px}.detail-content h2{font-size:27px;font-weight:700;line-height:1.15}.detail-desc{font-size:14px;line-height:1.55}.detail-actions{gap:8px}.info-grid.compact{padding:18px 28px 26px;gap:10px}.info-box{border-radius:10px;padding:12px}.info-box span{font-size:10.5px;letter-spacing:.06em}.info-box strong{font-size:13px;font-weight:600}
.access-panel-head h2{font-size:22px;font-weight:700}.access-panel-head p{font-size:12.5px}.access-table{font-size:12.5px}.access-table th{font-size:11px;font-weight:600;text-transform:none;letter-spacing:0}.access-form label{font-size:12px;font-weight:600}
.update-summary>div{border-radius:10px;background:#f8f9fa}.update-summary span{font-size:10.5px;font-weight:600}.update-summary strong{font-size:18px;font-weight:700}.update-upload-card{border-radius:12px}.update-section-head h3{font-size:14.5px;font-weight:650}

/* Responsive */
@media(max-width:1280px){
  .app-shell{grid-template-columns:220px minmax(0,1fr)}
  header{padding-left:22px;padding-right:22px}.view{padding-left:22px;padding-right:22px}
  .home2-dashboard{padding-left:18px;padding-right:18px}.home2-actions{grid-template-columns:minmax(280px,1fr) 94px 138px 100px}.home2-quick-button{padding:0 8px}
  .v2-toolbar{grid-template-columns:minmax(240px,1.3fr) repeat(3,minmax(130px,.7fr));}.v2-toolbar select:nth-of-type(n+4){grid-row:2}.v2-toolbar #v2ResetFilters{grid-row:2}
}
@media(max-width:1100px){.settings-admin-grid{grid-template-columns:1fr 1fr}.header-title h1{font-size:23px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.view-mode-switch{order:3}}
@media(max-width:980px){.app-shell{grid-template-columns:82px 1fr}.sidebar{padding:18px 10px}.brand-mark{width:38px;height:38px}.nav{justify-content:center}.home2-topbar{grid-template-columns:1fr}.home2-actions{grid-template-columns:1fr 1fr}.home2-search{grid-column:1/-1}.home2-main-grid{grid-template-columns:1fr}.home2-future-strip{grid-template-columns:1fr 1fr 1fr}.v2-page-actions{flex-wrap:wrap}.v2-toolbar{grid-template-columns:1fr 1fr}.v2-toolbar .search{grid-column:1/-1}}
@media(max-width:700px){header{height:auto;min-height:64px;padding:10px 14px}.header-title{display:none}.view{padding:16px 14px 28px}.settings-admin-grid{grid-template-columns:1fr}.analytics-header{justify-content:stretch}.analytics-actions{width:100%}.analytics-actions .btn{flex:1}.home2-dashboard{padding:14px}.home2-actions{grid-template-columns:1fr}.home2-search{grid-column:auto}.home2-main-grid{grid-template-columns:1fr}.home2-future-strip{grid-template-columns:1fr 1fr}.v2-toolbar{grid-template-columns:1fr}.v2-toolbar .search{grid-column:auto}.settings-admin-card{grid-template-columns:36px 1fr}.detail-hero{grid-template-columns:1fr}.detail-content{padding:24px}.info-grid.compact{grid-template-columns:1fr}.access-panel{padding:16px}}

/* =========================================================
   Specialtools V2.1.1 — Readability & header hierarchy
   Calibration inspired by mainstream premium SaaS interfaces:
   larger reading sizes, stronger top command bar, safer card statuses.
   ========================================================= */

/* Global reading scale */
body{font-size:16px;line-height:1.5}
button,input,select,textarea{font-size:15px}
.app-shell{grid-template-columns:248px minmax(0,1fr)}
.sidebar{padding:21px 15px 17px}
.brand strong{font-size:19px}.brand span{font-size:13px}
.nav{min-height:46px;padding:0 13px;font-size:15px;gap:12px}
.sidebar-connectivity strong{font-size:12px}.sidebar-connectivity span{font-size:11.5px}.version{font-size:12px}.version strong{font-size:13px}

/* Premium command bar: visually connected to the left navigation */
header{height:78px;padding:11px 30px;background:linear-gradient(105deg,var(--st-nav) 0%,#172632 100%);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 6px 20px rgba(10,20,29,.16);backdrop-filter:none}
.header-title h1{font-size:28px;line-height:1.05;color:#fff;font-weight:700}
.header-title p{font-size:14px;line-height:1.3;margin-top:5px;color:#aeb9c2}
.header-actions{gap:9px}
.view{padding:24px 30px 40px}

/* Header controls: clear affordance on the dark command bar */
.view-mode-switch{height:46px;padding:4px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.07)}
.view-mode-btn{height:36px;padding:0 14px;font-size:14px;color:#d9e1e7}
.view-mode-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.view-mode-btn.active{background:var(--st-accent);color:#151515;box-shadow:0 2px 8px rgba(0,0,0,.16)}
.language-switch{height:46px;min-width:80px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.07)}
.language-icon svg{color:#d8e1e7}
.language-switch select{font-size:14px;color:#fff}
.language-switch select option{color:var(--st-ink);background:#fff}
.access-user-chip{height:46px;padding:6px 10px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.07)}
.access-user-avatar{width:32px;height:32px;background:var(--st-accent);color:#151515;font-size:12px}
.access-user-text strong{font-size:14px;color:#fff}.access-user-text span{font-size:12px;color:#aeb9c2}
#addBtn{height:46px;font-size:14px;padding-inline:16px}

/* Controls and form rhythm */
.btn,.icon-btn,.access-header-btn,.access-primary,.access-secondary,.access-danger{min-height:44px;font-size:14.5px}
.btn{padding:10px 15px}
select,.toolbar select,.v2-toolbar select,.control-filter-panel select,.bulk-actions select,.form-grid input,.form-grid select,.form-grid textarea,.access-form input,.access-form select{min-height:44px;padding:10px 12px;font-size:15px}
.search,.control-search{min-height:44px}
.search input,.control-search input{font-size:15px}
.eyebrow{font-size:12.5px}
.badge,.v2-status,.v2-condition,.access-role,.update-tag,.commercialization-badge{font-size:13px;padding:6px 10px;line-height:1.2}

/* Home: readable without becoming oversized */
.home2-welcome h2{font-size:25px}.home2-welcome p{font-size:14px}
.home2-search input{font-size:15px}
.home2-kpi-label{font-size:13px}.home2-kpi-value{font-size:26px}.home2-kpi-foot{font-size:12.5px}
.home2-panel h3{font-size:18px}.home2-panel p{font-size:13px}
.home2-priority-list b{font-size:14px}.home2-priority-list small{font-size:12px}

/* Tool catalogue: larger cards and vertical status hierarchy */
.cards{gap:16px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.tool-card{grid-template-rows:190px auto;min-height:520px;border-radius:14px}
.tool-image{height:190px;padding:17px}
.tool-body{padding:0 16px 15px}
.tool-reference{font-size:14px;min-height:23px}
.tool-card h4{font-size:17px;font-weight:600;line-height:1.35;margin:8px 0 12px;min-height:46px}
.tool-code{font-size:14px}.meta{font-size:13px}.tool-code-badge{font-size:13.5px;padding:6px 9px}
.card-status-zone{display:flex!important;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:88px;padding:11px 0}
.card-status-zone .commercialization-line{width:100%;display:flex;justify-content:flex-start}
.card-status-zone .meta.status-only{width:100%;display:flex;justify-content:flex-start!important;align-items:center;min-height:0}
.card-status-zone .commercialization-badge,.card-status-zone .badge{max-width:100%;white-space:nowrap}
.card-physical-zone{min-height:55px;padding:9px 0}
.physical-card-line{min-height:34px;padding:7px 9px;font-size:12.5px;gap:7px}
.physical-card-line strong{font-size:12.5px}.physical-card-icon{width:19px;height:19px;font-size:11px}
.physical-status-chip{font-size:13px;padding:6px 10px}
.tool-card .resource-icons{min-height:48px;padding-top:11px}
.resource-icon{height:31px;min-width:40px;font-size:11.5px}

/* Results, filters and tables */
.results-line,.v2-results-line{font-size:13.5px}.v2-results-line strong{font-size:15px}
.v2-toolbar{gap:9px;padding:13px}.v2-inventory-table td,.data-table th,.data-table td{font-size:14px}
.v2-tool-link strong{font-size:15px}.v2-tool-link span{font-size:13px}
.control-stat span{font-size:13.5px}.control-stat small{font-size:12px}
.filter-labelled>span{font-size:12.5px!important}.selection-count{font-size:13.5px}
.control-filter-panel{padding:14px!important}.control-bulk-bar{padding:11px 13px!important}
.control-table-simplified .family-pill,.step-badge{font-size:13px}
.reference-management-cell select{font-size:13px}.reference-management-cell small{font-size:12px}

/* Analytics and settings */
.analytics-kpi span{font-size:13.5px}.analytics-card h3{font-size:18px}.analytics-rank small,.analytics-event small{font-size:13px}.analytics-event time{font-size:12px}.analytics-note{font-size:13px}
.settings-admin-content h3{font-size:17px}.settings-admin-content p{font-size:13.5px}.settings-card h2{font-size:20px}.settings-card>p{font-size:14px}.backup-metric span{font-size:12px!important}.backup-metric strong{font-size:14.5px!important}.backup-note{font-size:12.5px!important}.setting-row strong{font-size:15px}.setting-row span{font-size:13px}

/* Modal/detail readability */
.modal-window-header strong{font-size:16.5px}.modal-window-header span{font-size:13px}
.detail-content h2{font-size:30px}.detail-desc{font-size:15px}.info-box span{font-size:12px}.info-box strong{font-size:15px}

@media(max-width:1366px){
  .app-shell{grid-template-columns:238px minmax(0,1fr)}
  header{padding-left:24px;padding-right:24px}.header-title h1{font-size:26px}
  .view{padding-left:24px;padding-right:24px}
  .cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
}
@media(max-width:980px){
  .app-shell{grid-template-columns:82px 1fr}
  header{background:linear-gradient(105deg,var(--st-nav) 0%,#172632 100%)}
}
@media(max-width:700px){
  header{min-height:64px;height:auto;padding:10px 14px}
  .header-actions{gap:7px}
  .view-mode-switch{height:44px}
  .language-switch,.access-user-chip,#addBtn{height:44px}
  .view{padding:18px 14px 28px}
  .cards{grid-template-columns:1fr}
  .tool-card{min-height:0}
}


/* =========================================================
   Specialtools V2.1.2 — Normalisation typographique
   Gestion des outils devient l'étalon de lisibilité.
   Aucun texte fonctionnel important sous 13 px sur desktop.
   ========================================================= */

/* Socle commun */
body{font-size:16px;line-height:1.52}
button,input,select,textarea{font-size:var(--st-font-control)}
.header-title h1{font-size:var(--st-font-page-title)}
.header-title p{font-size:var(--st-font-secondary)}

/* --- Accueil : priorité à la lisibilité, plus de compression forcée --- */
#homeView .home2-welcome h2{font-size:28px;line-height:1.12;font-weight:700}
#homeView .home2-welcome p{font-size:15px;line-height:1.4;margin-top:6px}
#homeView .home2-search input{font-size:15px}
#homeView .home2-search-submit{font-size:14px;font-weight:650}
#homeView .home2-quick-button{font-size:14px}
#homeView .home2-quick-button b{font-size:14px;font-weight:600}

#homeView .home2-kpis .home-kpi{height:96px;padding:13px 15px;grid-template-columns:44px minmax(0,1fr) 14px}
#homeView .home2-kpis .home-kpi-icon{width:40px;height:40px;font-size:17px}
#homeView .home2-kpis .home-kpi-copy small{font-size:14px;line-height:1.25;font-weight:600}
#homeView .home2-kpis .home-kpi-copy strong{font-size:28px;line-height:1;margin-top:4px}
#homeView .home2-kpis .home-kpi-copy em{font-size:13.5px;line-height:1.25;margin-top:6px}

#homeView .home2-panel{padding:16px;grid-template-rows:68px minmax(0,1fr)}
#homeView .home2-panel-head{grid-template-columns:42px minmax(0,1fr) 62px;gap:10px;padding-bottom:12px}
#homeView .home2-panel-icon{width:40px;height:40px;font-size:17px}
#homeView .home2-panel-head h3{font-size:19px;line-height:1.2;font-weight:650}
#homeView .home2-panel-head p{font-size:14px;line-height:1.3;margin-top:4px}
#homeView .home2-panel-head>button{font-size:13.5px;min-height:38px;font-weight:600}

#homeView .home2-metric-list{gap:8px;padding-top:12px;grid-template-rows:repeat(5,minmax(60px,1fr))}
#homeView .home2-metric-list>button{min-height:60px;padding:9px 11px;grid-template-columns:38px minmax(0,1fr) auto 14px;gap:10px}
#homeView .home2-row-icon{width:36px;height:36px;font-size:13px}
#homeView .home2-metric-list b{font-size:15px;line-height:1.25;font-weight:600}
#homeView .home2-metric-list small{font-size:13.5px;line-height:1.3;margin-top:3px}
#homeView .home2-metric-list>button>strong{font-size:23px}
#homeView .home2-reliability-row>span:nth-child(2) small strong{font-size:13.5px}
#homeView .home2-reliability-ring b{font-size:12.5px}

#homeView .home2-priority-list{gap:9px;padding-top:12px;grid-template-rows:repeat(4,minmax(68px,1fr))}
#homeView .home2-priority-list .home-priority-card{min-height:68px;padding:9px 11px;grid-template-columns:40px minmax(0,1fr) 18px;gap:10px}
#homeView .home2-priority-list .priority-icon{width:38px;height:38px;font-size:16px}
#homeView .home2-priority-list strong{font-size:23px}
#homeView .home2-priority-list b{font-size:15px;line-height:1.25;font-weight:600}
#homeView .home2-priority-list small{font-size:13.5px;line-height:1.3;margin-top:4px}

#homeView .home2-future-strip{padding:12px 14px;gap:9px}
#homeView .home2-future-intro h3{font-size:16px;font-weight:650}
#homeView .home2-future-intro p{font-size:13px;line-height:1.3}
#homeView .home2-future-strip>button{min-height:72px;padding:9px}
#homeView .home2-future-strip>button>b{font-size:14px;line-height:1.25;font-weight:600}
#homeView .home2-future-strip>button>small{font-size:13px;line-height:1.2;margin-top:3px}
#homeView .home2-footer{font-size:13px;min-height:20px;height:auto}

@media (min-width:1100px){
  /* La lisibilité prime désormais sur l'ancien objectif strict « zéro scroll ». */
  body:has(#homeView.view.active){overflow:auto!important}
  main:has(#homeView.view.active){height:auto!important;min-height:100vh;overflow:visible!important}
  #homeView.view.active{height:auto!important;min-height:calc(100vh - 78px)!important;overflow:visible!important}
  #homeView .home2-dashboard{height:auto!important;grid-template-rows:auto auto auto auto auto!important;gap:14px;padding:20px 24px 28px}
  #homeView .home2-main-grid{grid-auto-rows:minmax(470px,auto);gap:12px}
}

/* --- Contrôle & publication : même échelle que Gestion des outils --- */
#controlView .workflow-banner-card{padding:24px 28px!important}
#controlView .workflow-title strong{font-size:20px;line-height:1.2}
#controlView .workflow-title span{font-size:14px;line-height:1.35;margin-top:6px}
#controlView .workflow-steps-inline .step em{font-size:14px;font-weight:650}
#controlView .workflow-steps-inline .step small{font-size:12.5px;line-height:1.25}
#controlView .workflow-steps-inline .step b{font-size:14px}

#controlView .control-stats{gap:14px!important;margin:16px 0!important}
#controlView .control-stat{min-height:122px!important;padding:20px!important;gap:16px}
#controlView .control-stat-icon{width:54px;height:54px;font-size:24px}
#controlView .control-stat .control-stat-copy small{font-size:14px!important;line-height:1.25;color:#65727e}
#controlView .control-stat .control-stat-copy strong{font-size:30px!important;line-height:1.05}
#controlView .control-stat .control-stat-copy em{font-size:13px!important;line-height:1.3;margin-top:7px}

#controlView .control-filter-panel{padding:16px!important}
#controlView .filter-labelled{gap:7px}
#controlView .filter-labelled>span{font-size:13.5px!important;line-height:1.2;font-weight:600!important;color:#5e6b76!important}
#controlView .filter-labelled select{font-size:15px;min-height:46px;height:46px}
#controlView .control-filter-secondary{gap:12px;margin-top:15px;padding-top:15px}
#controlView .control-search{height:46px;min-height:46px}
#controlView .control-search input{font-size:15px}
#controlView .active-filter-count{font-size:13px}

#controlView .control-bulk-bar{padding:13px 15px!important;gap:14px}
#controlView .selection-count{font-size:14px;font-weight:600}
#controlView .bulk-actions select{font-size:14px;min-height:44px;height:44px}
#controlView .bulk-actions .btn,#controlView .bulk-selection .btn{font-size:14px;min-height:44px}

#controlView .control-table-simplified th{font-size:13px!important;line-height:1.25;padding:14px 13px!important;font-weight:600!important}
#controlView .control-table-simplified td{font-size:14.5px!important;line-height:1.35;padding:13px!important}
#controlView .control-tool{gap:12px}
#controlView .control-tool strong{font-size:15px;line-height:1.3;font-weight:650}
#controlView .control-tool span{font-size:13.5px;line-height:1.35;margin-top:3px}
#controlView .control-table-simplified .family-pill,#controlView .control-table-simplified .step-badge{font-size:13px;padding:6px 10px}
#controlView .reference-summary-cell strong{font-size:13.5px;line-height:1.3}
#controlView .reference-summary-cell>span{font-size:12.5px;line-height:1.3}
#controlView .reference-inline-toggle{font-size:12px;line-height:1.3}
#controlView .row-issue-count{font-size:12px}
#controlView .date-cell strong{font-size:13px;line-height:1.25}
#controlView .date-cell span{font-size:12px;line-height:1.25}
#controlView .row-actions .btn{font-size:13.5px;min-height:38px}
#controlView .row-more{font-size:20px}

/* --- Autres modules : plancher typographique cohérent --- */
#inventoryView .v2-kpi span{font-size:14px}
#inventoryView .v2-kpi strong{font-size:28px}
#inventoryView .v2-results-line{font-size:14px}
#inventoryView .v2-inventory-table th{font-size:13px}
#inventoryView .v2-inventory-table td{font-size:14px}
#inventoryView .v2-tool-link strong{font-size:15px}
#inventoryView .v2-tool-link span{font-size:13px}

#analyticsView .analytics-kpi span{font-size:14px}
#analyticsView .analytics-kpi strong{font-size:28px}
#settingsView .settings-admin-content p{font-size:14px}
#settingsView .settings-admin-content h3{font-size:17px}
#settingsView .settings-card>p{font-size:14px}

@media(max-width:1366px){
  #homeView .home2-kpis .home-kpi-copy small{font-size:13.5px}
  #homeView .home2-metric-list b,#homeView .home2-priority-list b{font-size:14.5px}
  #homeView .home2-metric-list small,#homeView .home2-priority-list small{font-size:13px}
  #controlView .control-table-simplified td{font-size:14px!important}
}
\n\n/* ============================================================\n   V2.1.3 — structure globale, navigation, compte et filtres\n   ============================================================ */\n.brand-home{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit;display:flex;align-items:center}.brand-home:hover .brand-mark{transform:translateY(-1px);box-shadow:0 6px 16px rgba(244,196,48,.22)}.brand-mark{transition:transform .16s ease,box-shadow .16s ease}\n.sidebar-connectivity.offline i{background:#ef6464;box-shadow:0 0 0 5px rgba(239,100,100,.12)}.sidebar-connectivity.offline strong{color:#ffd7d7}\n.version{border-top:1px solid rgba(255,255,255,.06);margin-top:8px;padding-top:13px}.version strong{color:#fff;font-size:14px}\nheader{box-shadow:0 1px 0 rgba(255,255,255,.04),0 8px 22px rgba(6,14,22,.12)}\n.header-actions{margin-left:auto}.access-account{position:relative;order:99}.access-account-trigger{border:1px solid rgba(255,255,255,.14);color:#fff;cursor:pointer}.access-account-trigger:hover,.access-account-trigger[aria-expanded="true"]{background:rgba(255,255,255,.12);border-color:rgba(244,196,48,.55)}.account-chevron{font-size:15px;color:#c4ced7;margin-left:2px;transition:transform .15s}.access-account-trigger[aria-expanded="true"] .account-chevron{transform:rotate(180deg)}\n.access-account-menu{position:absolute;top:calc(100% + 9px);right:0;width:260px;padding:8px;background:#fff;border:1px solid #dce2e7;border-radius:13px;box-shadow:0 18px 44px rgba(10,20,30,.22);z-index:160;color:var(--st-ink)}.access-account-menu.hidden{display:none}.access-account-menu-head{display:flex;align-items:center;gap:10px;padding:10px 10px 12px;border-bottom:1px solid #edf0f2;margin-bottom:5px}.access-account-menu-head .access-user-avatar{width:38px;height:38px}.access-account-menu-head div{display:grid;gap:2px}.access-account-menu-head strong{font-size:15px}.access-account-menu-head span:last-child{font-size:12.5px;color:var(--st-muted)}.access-account-menu>button{width:100%;border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:8px;font:inherit;font-size:14px;color:#25313c;cursor:pointer}.access-account-menu>button:hover{background:#f3f6f8}.access-account-menu>button.danger{color:#a83a3a}.access-account-menu>button.danger:hover{background:#fff1f1}.access-account-menu-separator{height:1px;background:#edf0f2;margin:5px 4px}\n.access-profile-card{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid #e5eaee;border-radius:12px;background:#f8fafb;margin:4px 0 15px}.access-profile-avatar{width:48px;height:48px;border-radius:12px;background:var(--st-accent);color:#111;display:grid;place-items:center;font-weight:800}.access-profile-card>div:last-child{display:grid;gap:3px}.access-profile-card strong{font-size:17px}.access-profile-card span{font-size:13px;color:var(--st-muted)}.access-profile-details{margin:0 0 16px;display:grid;gap:0;border:1px solid #e5eaee;border-radius:12px;overflow:hidden}.access-profile-details>div{display:flex;justify-content:space-between;gap:20px;padding:12px 14px;border-bottom:1px solid #edf0f2}.access-profile-details>div:last-child{border-bottom:0}.access-profile-details dt{color:var(--st-muted);font-size:13px}.access-profile-details dd{margin:0;font-size:13.5px;font-weight:650;text-align:right}\n#toolsView .toolbar{display:grid!important;grid-template-columns:minmax(300px,1.45fr) repeat(4,minmax(185px,1fr));gap:10px!important;align-items:center;padding:13px!important}.toolbar>.search,.toolbar>.filter-field{min-width:0!important;width:100%}.toolbar .search{height:44px}.toolbar .filter-field>select,.toolbar .filter-field>input,.toolbar select{width:100%;min-width:0;text-overflow:ellipsis}.filter-field>select{padding-right:62px!important}.filter-field>select+.filter-clear-btn{right:31px}.filter-field>input+.filter-clear-btn,.filter-field>.search+.filter-clear-btn{right:9px}.filter-clear-btn{width:24px;height:24px;background:#edf1f4;border:1px solid #dce3e8;color:#53616d}.filter-clear-btn:hover{background:#e3e9ed;color:#111}.toolbar .filter-field.has-value select,.toolbar .filter-field.has-value input{background:#fff6c9!important;border-color:#c79c00!important;box-shadow:0 0 0 3px rgba(255,204,0,.14)}\n.tools-results-line{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:11px 2px 13px!important}.results-meta,.results-actions{display:flex;align-items:center;gap:10px}.results-actions{margin-left:auto}.results-actions #viewToggle{width:44px;height:44px}.results-actions #addBtn{height:44px;white-space:nowrap}.results-line strong{font-size:15px!important}.results-line span{font-size:13.5px!important}\n@media(max-width:1650px){#toolsView .toolbar{grid-template-columns:minmax(280px,1.35fr) repeat(3,minmax(180px,1fr))}}\n@media(max-width:1250px){#toolsView .toolbar{grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(175px,1fr))}.tools-results-line{align-items:flex-start}.results-actions{flex-wrap:wrap;justify-content:flex-end}}\n@media(max-width:820px){#toolsView .toolbar{grid-template-columns:1fr 1fr}.toolbar>.search{grid-column:1/-1}.tools-results-line{flex-direction:column}.results-actions{width:100%;margin-left:0;justify-content:flex-start}}\n@media(max-width:560px){#toolsView .toolbar{grid-template-columns:1fr}.toolbar>.search{grid-column:auto}.results-actions{display:grid;grid-template-columns:1fr auto}.results-actions #addBtn{grid-column:1/-1}.access-account-menu{position:fixed;right:12px;top:64px;width:min(300px,calc(100vw - 24px))}}\n
.client-view .version strong::after{content:none!important}

/* ============================================================
   V2.1.4 — accueil premium & finitions globales
   ============================================================ */
html{scrollbar-gutter:stable}

/* Marque cliquable : conserve strictement l'identité de la sidebar. */
.sidebar .brand-home{
  width:100%!important;
  margin:0!important;
  padding:2px 8px 24px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#fff!important;
  appearance:none;
}
.sidebar .brand-home:hover,.sidebar .brand-home:focus,.sidebar .brand-home:active{background:transparent!important;box-shadow:none!important}
.sidebar .brand-home .brand-mark{background:var(--st-accent)!important;color:#111!important;box-shadow:none}
.sidebar .brand-home strong{color:#fff!important}.sidebar .brand-home span{color:#93a0aa!important}
.sidebar .brand-home:focus-visible{outline:0!important}.sidebar .brand-home:focus-visible .brand-mark{box-shadow:var(--st-focus)!important}

/* Compte : menu flottant indépendant du flux, sans décalage du header. */
header{overflow:visible;z-index:220}
.header-actions{min-width:0}
.access-account{position:relative!important;flex:0 0 auto}
.access-account-trigger{min-width:188px;max-width:220px;justify-content:flex-start}
.access-user-text{min-width:0;flex:1}.access-user-text strong,.access-user-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-chevron{flex:0 0 auto;margin-left:auto}
.access-account-menu{
  position:fixed!important;
  right:auto!important;
  width:286px!important;
  max-width:calc(100vw - 24px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  z-index:1000!important;
  background:#fff!important;
  border:1px solid #dce2e7!important;
  box-shadow:0 20px 52px rgba(7,18,28,.28)!important;
}
.access-account-menu::-webkit-scrollbar{width:8px}.access-account-menu::-webkit-scrollbar-thumb{background:#cfd6dc;border-radius:999px;border:2px solid #fff}

/* Sidebar : informations réellement utiles. */
.sidebar-connectivity{margin-top:auto}.sidebar-connectivity strong{font-size:12.5px}.sidebar-connectivity span{font-size:12px}.version{margin-top:8px}.version span{font-size:12px}.version strong{font-size:14px}

/* Accueil V2.1.4 — synthèse sans doublon. */
#homeView{padding:0!important;background:var(--st-bg)}
.home214-dashboard{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;padding:22px 24px 26px;min-height:calc(100vh - 72px);color:var(--st-ink)}
.home214-hero{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);gap:24px;align-items:center}
.home214-kicker{display:block;margin-bottom:5px;font-size:12px;font-weight:750;letter-spacing:.11em;color:#9a7600}
.home214-welcome h2{margin:0;font-size:30px;line-height:1.08;font-weight:700;letter-spacing:-.025em}.home214-welcome p{margin:6px 0 0;font-size:15px;color:var(--st-muted)}
.home214-search{height:52px;display:grid;grid-template-columns:26px minmax(0,1fr) 36px 116px;align-items:center;gap:6px;padding:4px 5px 4px 14px;background:#fff;border:1px solid var(--st-line);border-radius:12px;box-shadow:var(--st-shadow-soft);color:#71808b}
.home214-search input{min-width:0;border:0;outline:0;background:transparent;font-size:15px;color:var(--st-ink)}
.home214-search-clear{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:#70808d;font-size:20px;cursor:pointer}.home214-search-clear:hover{background:#f0f3f5;color:#1f2a34}
.home214-search-submit{height:42px;border:1px solid #ddb124;border-radius:9px;background:var(--st-accent);font-size:14px;font-weight:700;color:#171717;cursor:pointer}.home214-search-submit:hover{background:var(--st-accent-hover)}

#homeView .home214-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
#homeView .home214-kpis .home-kpi{height:104px!important;padding:15px 16px!important;border-radius:13px!important;grid-template-columns:46px minmax(0,1fr) 16px!important;background:#fff;border:1px solid var(--st-line);box-shadow:var(--st-shadow-soft)}
#homeView .home214-kpis .home-kpi-icon{width:42px!important;height:42px!important;border-radius:10px!important;font-size:18px!important}
#homeView .home214-kpis .home-kpi-copy small{font-size:14px!important}.home214-kpis .home-kpi-copy strong{font-size:30px!important}.home214-kpis .home-kpi-copy em{font-size:13.5px!important}

.home214-main-grid{display:grid;grid-template-columns:1.08fr 1.08fr .94fr;gap:14px;min-height:0}
.home214-panel{min-width:0;background:#fff;border:1px solid var(--st-line);border-radius:14px;box-shadow:var(--st-shadow-soft);padding:18px;display:grid;grid-template-rows:auto minmax(0,1fr)}
.home214-panel-head{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--st-line-soft)}
.home214-panel-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:18px;font-weight:750}.home214-panel-icon.red{background:#fdebee;color:#c63e4b}.home214-panel-icon.blue{background:#e9f3ff;color:#2871c8}.home214-panel-icon.yellow{background:#fff3c7;color:#8e6900}
.home214-panel-head h3{margin:0;font-size:19px;line-height:1.2}.home214-panel-head p{margin:4px 0 0;font-size:13.5px;line-height:1.3;color:var(--st-muted)}

#homeView .home214-priority-list{display:grid;grid-template-rows:repeat(4,minmax(74px,1fr));gap:9px;padding-top:14px}
#homeView .home214-priority-list .home-priority-card{min-height:74px!important;padding:10px 12px!important;border-radius:10px!important;grid-template-columns:40px minmax(0,1fr) 18px!important;gap:10px!important}
#homeView .home214-priority-list .priority-icon{width:38px!important;height:38px!important}.home214-priority-list strong{font-size:24px!important}.home214-priority-list b{font-size:15px!important}.home214-priority-list small{font-size:13px!important}

.home214-activity-list{display:grid;align-content:start;padding-top:14px}
.home214-activity-row{min-width:0;min-height:67px;display:grid;grid-template-columns:10px minmax(0,1fr) auto 18px;gap:11px;align-items:center;padding:10px 8px;border:0;border-bottom:1px solid var(--st-line-soft);background:transparent;text-align:left;cursor:pointer;color:var(--st-ink)}.home214-activity-row:last-child{border-bottom:0}.home214-activity-row:hover{background:#f8fafb;border-radius:9px}
.home214-activity-mark{width:8px;height:34px;border-radius:999px;background:#8c98a3}.home214-activity-mark.published{background:#2f9e63}.home214-activity-mark.ready{background:#8b61c1}.home214-activity-mark.imported{background:#d7a91d}.home214-activity-mark.draft{background:#4b80bd}
.home214-activity-copy{min-width:0}.home214-activity-copy b,.home214-activity-copy small,.home214-activity-meta strong,.home214-activity-meta small{display:block}.home214-activity-copy b{font-size:15px}.home214-activity-copy small{margin-top:3px;font-size:13px;color:var(--st-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home214-activity-meta{text-align:right;min-width:124px}.home214-activity-meta strong{font-size:12.5px;font-weight:650}.home214-activity-meta small{margin-top:4px;font-size:12px;color:var(--st-muted)}.home214-activity-row>i{font-style:normal;font-size:18px;color:#7c8b97}
.home214-empty{padding:30px 10px;text-align:center;color:var(--st-muted);font-size:14px}

.home214-shortcut-grid{display:grid;gap:10px;align-content:start;padding-top:14px}
.home214-shortcut-grid>button{min-width:0;min-height:70px;display:grid;grid-template-columns:40px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--st-line-soft);border-radius:10px;background:#fafbfc;text-align:left;color:var(--st-ink);cursor:pointer}.home214-shortcut-grid>button:hover{background:#fff;border-color:#ccd5db;box-shadow:0 6px 16px rgba(18,31,43,.06)}
.home214-shortcut-grid>button>span{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:#eef3f6;color:#273744;font-size:17px}.home214-shortcut-grid b,.home214-shortcut-grid small{display:block}.home214-shortcut-grid b{font-size:15px}.home214-shortcut-grid small{margin-top:4px;font-size:13px;color:var(--st-muted);line-height:1.25}.home214-shortcut-grid i{font-style:normal;font-size:18px;color:#7b8994}
.home214-footer{display:flex;align-items:center;justify-content:center;gap:8px;min-height:24px;font-size:12.5px;color:#74818c}.home214-footer>span:first-child{font-size:9px;color:#36a86a}

/* Lecture vidéo : feedback immédiat dès le clic. */
.video-stage{position:relative;width:100%;aspect-ratio:16/9;min-height:320px;border-radius:14px;overflow:hidden;background:#05080c}
.video-stage video{width:100%!important;height:100%!important;max-height:none!important;object-fit:contain;border-radius:0!important;background:#000;transition:opacity .16s ease}
.video-stage video.video-pending{opacity:0;pointer-events:none}
.video-loading{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:radial-gradient(circle at 50% 42%,#1d2b37 0,#101923 46%,#0a1118 100%);color:#fff;text-align:center;padding:30px}
.video-loading.hidden{display:none!important}.video-loading strong{font-size:18px;font-weight:650}.video-loading small{font-size:13.5px;color:#aeb9c2}
.video-loading-spinner{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:var(--st-accent);animation:st-video-spin .75s linear infinite}@keyframes st-video-spin{to{transform:rotate(360deg)}}

@media(max-width:1500px){
  .home214-dashboard{padding-left:20px;padding-right:20px}.home214-hero{grid-template-columns:minmax(250px,.65fr) minmax(480px,1.35fr)}
  .home214-main-grid{grid-template-columns:1fr 1fr}.home214-shortcuts{grid-column:1/-1}.home214-shortcut-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.home214-shortcut-grid>button{grid-template-columns:36px minmax(0,1fr);min-height:78px}.home214-shortcut-grid>button>i{display:none}.home214-shortcut-grid>button>span{width:34px;height:34px}
}
@media(max-width:1100px){
  .home214-hero{grid-template-columns:1fr}.home214-kpis{grid-template-columns:repeat(3,1fr)!important}.home214-main-grid{grid-template-columns:1fr}.home214-shortcuts{grid-column:auto}.home214-shortcut-grid{grid-template-columns:1fr 1fr}.home214-dashboard{height:auto;min-height:0}
}
@media(max-width:700px){
  .home214-dashboard{padding:16px 14px 24px}.home214-welcome h2{font-size:25px}.home214-search{grid-template-columns:24px minmax(0,1fr) 34px 44px}.home214-search-submit{font-size:0}.home214-search-submit::before{content:'⌕';font-size:18px}.home214-kpis{grid-template-columns:1fr 1fr!important}.home214-shortcut-grid{grid-template-columns:1fr}.home214-activity-row{grid-template-columns:8px minmax(0,1fr) 16px}.home214-activity-meta{grid-column:2/3;text-align:left;min-width:0}.home214-activity-row>i{grid-column:3;grid-row:1/3}.access-account-trigger{min-width:0;max-width:170px}.video-stage{min-height:220px}
}

/* V2.1.5 — opérations cœur : inventaire physique et mouvements */
.detail-tab-operations{font-weight:850;color:#101d2a;position:relative}.detail-tab-operations.active{background:#fff7d5;border-color:#e0af00;color:#111}.detail-tab-operations.active:before{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:3px;border-radius:3px;background:#f7c829}
.detail-inventory-panel{padding:20px}.detail-operations-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px;padding:18px 20px;border:1px solid #dce4eb;border-radius:14px;background:linear-gradient(135deg,#fbfcfd,#f5f8fa)}.detail-operations-intro h3{margin:4px 0 6px;font-size:20px}.detail-operations-intro p{margin:0;color:#647281;font-size:14px;max-width:820px}.detail-operations-intro .eyebrow{font-size:12px;letter-spacing:.08em;color:#a47900}
.v2-tool-instance-primary{margin-top:0;border-top:0;padding-top:0}.v2-tool-instance-head-primary{padding:14px 0 12px;border-bottom:1px solid #e2e8ee}.v2-tool-instance-head-primary strong{font-size:18px}.v2-tool-instance-head-primary span{font-size:13px}.v2-instance-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.v2-tool-instance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px;margin-top:14px}.v2-instance-card{border:1px solid #dce4eb;border-radius:14px;background:#fff;padding:14px;box-shadow:0 4px 14px rgba(22,36,50,.045)}.v2-instance-card-main{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.v2-instance-id strong{display:block;font-size:16px;color:#172431}.v2-instance-id small{display:block;margin-top:4px;color:#7b8793;font-size:12.5px}.v2-instance-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.v2-instance-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px;padding:10px 0;border-top:1px solid #eef1f4;border-bottom:1px solid #eef1f4;color:#5f6d79;font-size:13px}.v2-instance-meta span{display:inline-flex;align-items:center}.v2-instance-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.v2-instance-actions .btn{min-height:36px}.v2-tool-instance-empty-strong{padding:22px;border:1px dashed #cfd9e2;border-radius:14px;background:#fafcfd;display:flex;flex-direction:column;gap:5px}.v2-tool-instance-empty-strong strong{color:#293846;font-size:15px}.v2-tool-instance-empty-strong span{font-size:13px;color:#74808c}
.public-physical-operations{margin-top:18px;border:1px solid #dce4eb;border-radius:16px;background:#f8fafc;padding:18px}.public-physical-loading{min-height:86px;display:flex;align-items:center;justify-content:center;gap:10px;color:#687684}.public-physical-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.public-physical-head h3{margin:3px 0 5px;font-size:19px}.public-physical-head p{margin:0;color:#667482;font-size:13.5px}.public-readonly-note{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;background:#edf1f4;color:#5b6874;font-size:12px;font-weight:800}.public-physical-list{display:grid;gap:10px}.v2-instance-card.compact{padding:12px;background:#fff}.v2-instance-card.compact .v2-instance-actions{margin-top:10px}.v2-instance-card.compact .v2-instance-meta{margin-top:10px;padding:8px 0}.public-physical-operations .v2-status,.public-physical-operations .v2-condition{font-size:12.5px}.public-physical-operations .v2-instance-actions .btn{font-size:13px}
#v2MovementSiteRow[hidden],#v2MovementLocationRow[hidden],#v2MovementRecipientRow[hidden],#v2MovementRecipientNameRow[hidden],#v2MovementDueRow[hidden]{display:none!important}
@media(max-width:900px){.v2-tool-instance-grid{grid-template-columns:1fr}.v2-tool-instance-head-primary,.public-physical-head{align-items:stretch;flex-direction:column}.v2-instance-head-actions{justify-content:flex-start}.v2-instance-card-main{flex-direction:column}.v2-instance-chips{justify-content:flex-start}}
.qr-card.qr-loading{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.qr-card.qr-loading>img{display:none}.qr-inline-loader{display:flex;flex-direction:column;align-items:center;gap:10px;color:#546270}.loading-spinner{width:34px;height:34px;border-radius:50%;border:3px solid #dce3e9;border-top-color:#f4c62f;animation:st-core-spin .75s linear infinite}@keyframes st-core-spin{to{transform:rotate(360deg)}}.qr-card:not(.qr-loading) .qr-inline-loader{display:none}.qr-card #detailQrImage{display:block;max-width:260px;width:100%;height:auto}.qr-card #detailQrImage[hidden]{display:none}.qr-actions .hidden{display:none!important}


/* V2.2.0 — parcours par rôle : Public / Utilisateur / Contributeur / Administrateur */
.public-login-btn{white-space:nowrap}
body[data-access-role="public"] .authenticated-role-only,
body[data-access-role="public"] .content-role-only,
body[data-access-role="public"] .admin-role-only,
body[data-access-role="user"] .content-role-only,
body[data-access-role="user"] .admin-role-only,
body[data-access-role="contributor"] .admin-role-only{display:none!important}

body[data-access-role="public"] #viewModeSwitch,
body[data-access-role="user"] #viewModeSwitch{display:none!important}

/* Le front public reste documentaire : pas d'informations de gestion physique/back-office. */
body[data-access-role="public"] #availabilityFilter,
body[data-access-role="public"] #locationFilter,
body[data-access-role="public"] #statusFilter,
body[data-access-role="public"] #commercialFilter,
body[data-access-role="public"] #qualityFilter,
body[data-access-role="public"] .applicability-search{display:none!important}

/* L'utilisateur connecté garde les filtres utiles au parc, sans les contrôles éditoriaux. */
body[data-access-role="user"] #statusFilter,
body[data-access-role="user"] #commercialFilter,
body[data-access-role="user"] #qualityFilter,
body[data-access-role="user"] .applicability-search{display:none!important}

/* Accueil volontairement simple en consultation et pour l'utilisateur quotidien. */
body[data-access-role="public"] #stats,
body[data-access-role="public"] .home214-main-grid,
body[data-access-role="public"] .home214-footer,
body[data-access-role="user"] #stats,
body[data-access-role="user"] .home214-main-grid,
body[data-access-role="user"] .home214-footer{display:none!important}
body[data-access-role="public"] .home214-dashboard,
body[data-access-role="user"] .home214-dashboard{height:auto;min-height:0}
body[data-access-role="public"] .home214-hero,
body[data-access-role="user"] .home214-hero{margin-top:clamp(22px,7vh,84px)}

.public-reference-block{margin:16px 0 12px;padding:14px 16px;border:1px solid #d9e1e8;border-radius:12px;background:#f8fafb;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.public-reference-block>span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#6a7783}
.public-reference-block .reference-value,.public-reference-block strong{font-size:18px;color:#162432}
.public-login-cta{margin-top:18px;padding:16px 18px;border:1px solid #dce4eb;border-radius:14px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:16px}
.public-login-cta>div{display:flex;flex-direction:column;gap:3px}.public-login-cta span{color:#687684;font-size:13.5px}

.mytools-view{padding:24px}.mytools-header{margin-bottom:18px}.mytools-header h2{margin:3px 0 6px;font-size:28px}.mytools-header p{margin:0;color:#687684}
.mytools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.mytool-card{border:1px solid #dce4eb;border-radius:16px;background:#fff;padding:18px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;box-shadow:0 5px 18px rgba(20,37,52,.05)}
.mytool-card h3{margin:5px 0 7px;font-size:18px}.mytool-card p{margin:0;color:#697785;font-size:13px}.mytool-actions{display:flex;gap:8px;flex-wrap:wrap}

@media(max-width:700px){
  .public-login-cta{align-items:stretch;flex-direction:column}.public-login-cta .btn{width:100%}
  .mytools-view{padding:16px}.mytools-grid{grid-template-columns:1fr}
  body[data-access-role="public"] .toolbar,body[data-access-role="user"] .toolbar{grid-template-columns:1fr!important}
}

/* V2.3.0 — comptes en attente de validation */
.access-status.pending{background:#fff3c4!important;color:#765b00!important;border-color:#ead27a!important}
