/* ESCIM — socle de mise en page (V15.1 hotfix) */
*{box-sizing:border-box}
body{margin:0}
.sidebar,.side{
  width:240px;
  height:100vh;
  position:fixed;
  left:0;
  top:0;
  color:#fff;
  padding:30px 20px;
  z-index:50;
}
.logo{font-size:28px;font-weight:700;margin-bottom:40px;color:#fff}
.menu,.menu-item{
  display:block;
  padding:12px 14px;
  margin-bottom:8px;
  border-radius:8px;
  color:#fff!important;
  text-decoration:none!important;
}
.content{margin-left:240px;min-height:100vh}
.wrap,.container{width:100%}
h1{margin-top:0;color:#082b55}
h2,h3{color:#082b55}
.sub{margin:8px 0 28px}
.card{padding:24px;margin-bottom:24px}
.kpi{padding:20px}
.num{font-size:28px;font-weight:700;color:#082b55}
.label{font-size:13px;color:#718096;margin-top:5px}
.btn,.button{
  display:inline-block;
  padding:11px 16px;
  color:#fff!important;
  text-decoration:none!important;
  font-weight:700;
  cursor:pointer;
}
.pill{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}
.alert{background:#fff8e8;border-radius:10px;padding:15px;margin-top:12px}
@media(max-width:900px){
  .sidebar,.side{display:none}
  .content{margin-left:0!important}
}
:root{
  --escim-navy:#082b55;
  --escim-navy-2:#0f3b6f;
  --escim-blue:#2f80ed;
  --escim-blue-soft:#eaf3ff;
  --escim-bg:#f5f7fb;
  --escim-card:#ffffff;
  --escim-text:#17324f;
  --escim-muted:#6f7f91;
  --escim-border:#e3e9f0;
  --escim-success:#23855b;
  --escim-warning:#c77a11;
  --escim-danger:#c44747;
  --escim-shadow:0 10px 30px rgba(8,43,85,.08);
  --escim-radius:16px;
}

html{scroll-behavior:smooth}
body{
  background:linear-gradient(180deg,#f8faff 0%,var(--escim-bg) 220px)!important;
  color:var(--escim-text)!important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Arial,sans-serif!important;
  -webkit-font-smoothing:antialiased;
}

.sidebar,.side{
  background:linear-gradient(180deg,var(--escim-navy) 0%,#071f3d 100%)!important;
  box-shadow:12px 0 35px rgba(8,43,85,.12);
}
.logo{
  letter-spacing:.06em;
  position:relative;
  padding-bottom:18px;
}
.logo::after{
  content:"MISSIONS";
  display:block;
  position:absolute;
  left:1px;
  bottom:0;
  font-size:10px;
  letter-spacing:.23em;
  font-weight:600;
  color:#9fc7fb;
}
.menu,.menu-item{
  transition:background .18s ease,transform .18s ease,color .18s ease;
  border:1px solid transparent;
}
.menu:hover,.menu-item:hover{
  background:rgba(255,255,255,.09)!important;
  transform:translateX(2px);
}
.menu.active,.menu-item.active{
  background:linear-gradient(135deg,#3487f2,#246fd1)!important;
  box-shadow:0 8px 18px rgba(47,128,237,.25);
}

.content{padding:38px 44px!important}
.container,.wrap{max-width:1240px!important;margin:0 auto}
h1,h2,h3,.mission-title,.title{letter-spacing:-.015em}
h1{font-weight:750!important}
.sub,.subtitle,.muted,.mission-subtitle{color:var(--escim-muted)!important}

.card,.hero,.header-card,.kpi{
  border:1px solid rgba(227,233,240,.86)!important;
  box-shadow:var(--escim-shadow)!important;
  border-radius:var(--escim-radius)!important;
}
.card,.hero,.header-card{background:rgba(255,255,255,.97)!important}
.kpi{background:linear-gradient(180deg,#fff,#fbfcff)!important}
.kpi-number,.num{font-variant-numeric:tabular-nums}

.btn,.button{
  background:linear-gradient(135deg,#3487f2,#256fce)!important;
  border:none!important;
  border-radius:10px!important;
  box-shadow:0 7px 16px rgba(47,128,237,.18);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.btn:hover,.button:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(47,128,237,.24);filter:saturate(1.05)}
.btn.secondary{background:#fff!important;color:var(--escim-blue)!important;border:1px solid #9bc3f8!important;box-shadow:none!important}
.doc,.tab,.back{transition:all .16s ease}
.doc:hover,.tab:hover{border-color:#9bc3f8!important;background:#f7fbff!important;color:#1769c2!important}
.back:hover{color:#155eaa!important}

.tabs{
  gap:8px!important;
  overflow-x:auto;
  flex-wrap:nowrap!important;
  padding:2px 2px 10px;
  scrollbar-width:thin;
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(245,247,251,.9);
  backdrop-filter:blur(12px);
}
.tab{white-space:nowrap!important;border-radius:10px!important;background:#fff!important}
.tab.active{background:var(--escim-navy)!important;border-color:var(--escim-navy)!important;color:#fff!important;box-shadow:0 7px 18px rgba(8,43,85,.18)}

input,select,textarea{
  border:1px solid #cfd9e4!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--escim-text)!important;
  transition:border-color .15s ease,box-shadow .15s ease;
}
input:focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:#6faaf6!important;
  box-shadow:0 0 0 4px rgba(47,128,237,.11)!important;
}
label{color:#334e68!important}

table{border-collapse:separate!important;border-spacing:0!important;border:1px solid var(--escim-border);border-radius:12px;overflow:hidden;background:#fff}
th{background:#f7f9fc!important;color:#456079!important;font-size:12px!important;text-transform:uppercase;letter-spacing:.035em}
th,td{padding:13px 14px!important;border-bottom:1px solid #edf1f5!important}
tr:last-child td{border-bottom:none!important}
tbody tr:hover{background:#fbfdff}

.status,.pill{border:1px solid #cfe1f8;background:#eef6ff!important;color:#1769c2!important}
.alert{border:1px solid #f0dfb6!important}
.check,.action{background:#fff}
.check.ok{background:#f7fcf9}
.check.ko{background:#fffaf3}
.progress,.progress-wrap{background:#e7edf4!important}
.bar,.progress-bar{background:linear-gradient(90deg,#2f80ed,#64a5f8)!important}

.info{border:1px solid #e8edf3;background:#fbfcfe!important}
.mission{transition:background .15s ease;border-radius:10px;padding-left:10px!important;padding-right:10px!important}
.mission:hover{background:#fafcff}

::selection{background:#cfe4ff;color:#082b55}
:focus-visible{outline:3px solid rgba(47,128,237,.35);outline-offset:2px}

@media(max-width:1100px){
  .content{padding:28px!important}
}
@media(max-width:900px){
  .content{padding:22px 16px!important}
  .tabs{top:0;margin-left:-4px;margin-right:-4px}
  .kpis{gap:12px!important}
}

/* V15 — cockpit de pilotage */
.dashboard-wrap{max-width:1380px!important}.dashboard-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin-bottom:24px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:#2f80ed;margin-bottom:7px}.dashboard-actions,.actions{display:flex;gap:9px;flex-wrap:wrap}.dashboard-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;margin-bottom:22px}.dashboard-kpis .kpi{padding:20px}.kpi-accent{background:linear-gradient(145deg,#082b55,#154a82)!important;color:white!important}.kpi-accent .num,.kpi-accent .label{color:white!important}.kpi-danger{border-color:#f0c6c6!important;background:#fff8f8!important}.kpi-danger .num{color:#b83e3e!important}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,.75fr);gap:22px;align-items:start}.section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.section-head h2{margin-top:0}.mission-list{display:flex;flex-direction:column;gap:12px}.mission-row{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(170px,.7fr) minmax(220px,.9fr) auto;gap:18px;align-items:center;padding:18px;border:1px solid #e7edf4;border-radius:14px;background:#fff;transition:transform .15s ease,box-shadow .15s ease}.mission-row:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(8,43,85,.07)}.mission-title-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.score-line{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}.progress{height:8px;border-radius:999px;overflow:hidden}.bar{height:100%;border-radius:999px}.mini-alert,.mini-ok{font-size:12px;font-weight:700;margin-top:7px}.mini-alert{color:#b45a18}.mini-ok{color:#23855b}.mission-next strong{font-size:13px}.mission-buttons{display:flex;gap:8px;flex-wrap:wrap}.priority{display:flex;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;padding:13px 0;border-top:1px solid #edf1f5}.priority:first-of-type{border-top:none}.priority-detail{font-size:12px;color:#526b82;margin-top:4px}.priority-urgent strong,.priority-late strong{color:#b83e3e}.priority-upcoming strong{color:#a4640b}.alert.compact{padding:11px 12px;margin-top:9px;font-size:13px}.alert.danger{background:#fff2f2!important;border-color:#f1caca!important}.empty-state{padding:28px;text-align:center;background:#f8fafc;border-radius:12px;color:#61758a}.generated-meta{font-size:11px;color:#7a8c9e;margin:-1px 0 10px}
@media(max-width:1250px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.mission-row{grid-template-columns:1.2fr .7fr 1fr}}
@media(max-width:900px){.dashboard-head{flex-direction:column}.dashboard-kpis{grid-template-columns:1fr 1fr}.mission-row{grid-template-columns:1fr}.mission-buttons{justify-content:flex-start}}

/* ==========================================================
   ESCIM Missions — finition production
   ========================================================== */
.sidebar,.side{overflow:auto;padding-bottom:76px!important}
.sidebar::after,.side::after{
  content:"ESCIM Missions · Production";
  position:fixed;
  left:20px;
  bottom:18px;
  width:198px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#8fb7e6;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.content{overflow-x:hidden}
.dashboard-head h1{margin-bottom:6px}
.dashboard-actions{justify-content:flex-end}
.dashboard-side .card{margin-bottom:18px}
.priority{border-radius:9px;padding:12px 8px!important;margin:0 -8px}
.priority:hover{background:#f7fbff}
.priority > span{font-size:20px;color:#6b86a2;align-self:center}
.mission-buttons .btn{min-width:76px;text-align:center}
.mini-alert{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:#fff5e9;border:1px solid #f4d4aa;border-radius:999px}
.mini-ok{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:#effaf4;border:1px solid #c9ead8;border-radius:999px}
.card h2:first-child{margin-top:0}
button,.btn,.button,input,select,textarea{font:inherit}
button:disabled,.btn.disabled,.button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}
input[type="number"]{font-variant-numeric:tabular-nums}
.actions{align-items:center}

/* Les tableaux restent utilisables sur petits écrans sans casser la page. */
.card:has(table){overflow-x:auto}
table{min-width:720px}

/* Amélioration de la lecture des formulaires */
.field label,label{line-height:1.25}
.field input,.field select,.field textarea{width:100%}
textarea{resize:vertical}

/* Cockpit : densité mieux équilibrée sur écran d'ordinateur portable */
@media(max-width:1450px){
  .dashboard-wrap{max-width:1220px!important}
  .dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr)}
  .mission-row{grid-template-columns:minmax(220px,1.25fr) minmax(150px,.65fr) minmax(190px,.85fr) auto}
}

/* Mobile/tablette : vraie barre de navigation au lieu de masquer tout accès. */
@media(max-width:900px){
  .sidebar,.side{
    display:flex!important;
    position:sticky!important;
    top:0!important;
    width:100%!important;
    height:auto!important;
    min-height:62px;
    padding:10px 12px!important;
    align-items:center;
    gap:6px;
    overflow-x:auto;
    box-shadow:0 8px 22px rgba(8,43,85,.14)!important;
  }
  .sidebar::after,.side::after{display:none}
  .logo{font-size:19px!important;margin:0 10px 0 2px!important;padding:0!important;white-space:nowrap}
  .logo::after{display:none!important}
  .menu,.menu-item{display:inline-flex!important;margin:0!important;padding:9px 11px!important;white-space:nowrap;font-size:13px}
  .content{margin-left:0!important;padding:20px 14px!important}
  .container,.wrap{max-width:100%!important}
  .dashboard-actions{width:100%;justify-content:flex-start}
  .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .card{padding:18px!important}
  .tabs{top:62px!important}
  table{min-width:680px}
}
@media(max-width:520px){
  .dashboard-kpis{grid-template-columns:1fr!important}
  .dashboard-actions .btn{flex:1;text-align:center}
  .content{padding:16px 10px!important}
}

/* V17 — page Missions harmonisée */
.mission-row-simple{grid-template-columns:minmax(0,1fr) auto!important;align-items:center}
.mission-row-simple .mission-buttons{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.mission-row-simple .mission-buttons form{margin:0}
.btn.danger{background:#fff4f3;color:#b42318;border:1px solid #f0b8b2}
.btn.danger:hover{background:#fee9e7}
#nouvelle{scroll-margin-top:18px}
@media(max-width:900px){.mission-row-simple{grid-template-columns:1fr!important}.mission-row-simple .mission-buttons{justify-content:flex-start}}
