:root{--p:#0B1F3A;--p2:#102A4C;--p3:#16345F;--cyan:#2BB3FF;--turq:#3ED6C3;--bg:#F5F7FA;--card:#fff;--text:#1E293B;--muted:#64748B;--line:#DCE3EC;--shadow:0 24px 70px rgba(11,31,58,.16);--r:22px}html[data-theme=dark]{--bg:#0D1523;--card:#111C2D;--text:#F1F5F9;--muted:#94A3B8;--line:#22314A}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--p),#071425);padding:8vw;display:flex;flex-direction:column;justify-content:center;color:#fff}.orb{position:absolute;width:620px;height:620px;border-radius:999px;background:radial-gradient(circle,rgba(43,179,255,.25),transparent 65%);right:-190px;top:-120px}.brand-mini{letter-spacing:.18em;color:var(--turq);font-weight:800;font-size:.8rem}.login-hero h1{font-size:clamp(2.3rem,5vw,5.2rem);line-height:1.03;margin:28px 0 20px;letter-spacing:-.06em}.login-hero h1 span{color:var(--turq)}.login-hero p{font-size:1.18rem;max-width:620px;color:rgba(255,255,255,.76);line-height:1.8}.hero-points{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}.hero-points span{padding:10px 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);backdrop-filter:blur(12px)}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(440px,100%);background:var(--card);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.logo-mark{width:62px;height:62px;border-radius:18px;background:linear-gradient(135deg,var(--p),var(--cyan));color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 18px 35px rgba(43,179,255,.25)}.logo-mark.small{width:44px;height:44px;border-radius:14px}.login-card h2{font-size:2rem;margin:24px 0 4px}.login-card p,.login-card small{color:var(--muted)}label{display:grid;gap:8px;font-weight:700;margin:18px 0 0}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:16px;padding:14px 16px;outline:none}input:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(43,179,255,.12)}.btn{border:0;border-radius:16px;padding:13px 18px;font-weight:800;cursor:pointer;transition:.25s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{transform:translateY(-1px)}.primary{background:var(--p);color:#fff;width:100%;margin:22px 0 12px}.ai{background:linear-gradient(135deg,var(--cyan),var(--turq));color:#062035;box-shadow:0 16px 35px rgba(43,179,255,.22)}.secondary{background:var(--card);border:1px solid var(--line);color:var(--text)}.alert{padding:12px 14px;background:#fee2e2;color:#991b1b;border-radius:14px}.layout{min-height:100vh;display:grid;grid-template-columns:288px 1fr}.sidebar{background:linear-gradient(180deg,var(--p),#081426);color:#fff;padding:24px;display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100vh}.side-brand{display:flex;gap:12px;align-items:center}.side-brand span{display:block;color:rgba(255,255,255,.62);font-size:.82rem}nav{display:grid;gap:8px}nav button,.logout{border:0;background:transparent;color:rgba(255,255,255,.72);padding:13px 14px;border-radius:14px;text-align:left;cursor:pointer;font-weight:700}nav button:hover,nav button.active{background:rgba(255,255,255,.1);color:#fff}.logout{margin-top:auto;background:rgba(255,255,255,.08)}.main{min-width:0}.topbar{height:86px;background:rgba(245,247,250,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}html[data-theme=dark] .topbar{background:rgba(13,21,35,.82)}.topbar h1{margin:0;font-size:1.5rem}.topbar p{margin:2px 0 0;color:var(--muted)}.top-actions{display:flex;gap:12px;align-items:center}.icon-btn,.avatar{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--text)}.avatar{background:var(--p);color:#fff;font-weight:900}.view{padding:28px;animation:fade .28s ease}@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.grid{display:grid;gap:18px}.cards4{grid-template-columns:repeat(4,minmax(0,1fr))}.cards3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:0 14px 45px rgba(11,31,58,.08);transition:.25s}html[data-theme=dark] .card{background:rgba(17,28,45,.88)}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.stat-label{color:var(--muted);font-weight:700;font-size:.86rem}.stat-value{font-size:2.1rem;font-weight:900;margin-top:10px}.badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(43,179,255,.12);color:#05649b;font-weight:800;font-size:.78rem}.scenario{cursor:pointer;position:relative;overflow:hidden}.scenario:after{content:"";position:absolute;inset:auto -40px -60px auto;width:180px;height:180px;background:radial-gradient(circle,rgba(62,214,195,.22),transparent 70%)}.scenario h3{font-size:1.15rem}.muted{color:var(--muted)}.sim-grid{display:grid;grid-template-columns:300px 1fr 280px;gap:18px}.chat{height:calc(100vh - 170px);display:flex;flex-direction:column}.messages{flex:1;overflow:auto;display:grid;gap:14px;padding-right:4px}.msg{padding:14px 16px;border-radius:18px;max-width:85%;line-height:1.6}.msg.ai{background:#EAF7FF;color:#0f2b46;justify-self:start}.msg.user{background:var(--card);border:1px solid var(--line);justify-self:end}.composer{display:flex;gap:10px;margin-top:14px}.composer textarea{min-height:58px;resize:none}.meter{margin:14px 0}.meter-top{display:flex;justify-content:space-between;font-size:.82rem;font-weight:800}.bar{height:9px;border-radius:999px;background:#e7edf5;overflow:hidden;margin-top:7px}.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--turq));border-radius:999px}.table{width:100%;border-collapse:separate;border-spacing:0 10px}.table td,.table th{text-align:left;padding:14px;background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.table td:first-child,.table th:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}.table td:last-child,.table th:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}.debrief{white-space:pre-wrap;line-height:1.75}.mobile-only{display:none}@media(max-width:1100px){.cards4{grid-template-columns:repeat(2,1fr)}.sim-grid{grid-template-columns:1fr}.chat{height:620px}.sidebar{position:fixed;z-index:50;transform:translateX(-105%);transition:.25s}.sidebar.open{transform:none}.layout{grid-template-columns:1fr}.mobile-only,#mobileMenu{display:grid}}@media(min-width:1101px){#mobileMenu{display:none}}@media(max-width:720px){.login-shell{grid-template-columns:1fr}.login-hero{min-height:42vh;padding:34px}.login-panel{padding:18px}.login-card{padding:24px}.cards4,.cards3{grid-template-columns:1fr}.topbar{height:auto;padding:16px;align-items:flex-start;gap:12px}.top-actions .ai{display:none}.view{padding:16px}.hero-points{display:none}.login-hero h1{font-size:2.25rem}.sidebar{width:min(88vw,320px)}}


/* ======================================================
   AJOUTS RESPONSIVE + FILTRES SCÉNARIOS
   À ajouter en bas de app.css
   ====================================================== */

.filters-bar{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}

.filters-bar input,
.filters-bar select{
  min-width:220px;
  flex:1;
}

.filters-bar .btn{
  width:auto;
  min-width:140px;
}

.scenario-filter-card{
  margin-bottom:22px;
}

.filter-count{
  margin:14px 0 0;
  font-weight:700;
}

.scenario-tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0 16px;
}

.scenario-tag{
  padding:6px 10px;
  border-radius:999px;
  background:rgba(43,179,255,.12);
  color:#05649b;
  font-size:.74rem;
  font-weight:800;
}

.main{
  width:100%;
  overflow-x:hidden;
}

.card{
  min-width:0;
}

.topbar{
  flex-wrap:wrap;
}

.top-actions{
  flex-wrap:wrap;
}

.wide-card{
  grid-column:span 2;
}

@media(max-width:1200px){
  .cards3{
    grid-template-columns:repeat(2,1fr)!important;
  }

  .sim-grid{
    grid-template-columns:1fr!important;
  }

  .chat{
    height:auto!important;
    min-height:580px;
  }
}

@media(max-width:768px){
  .layout{
    grid-template-columns:1fr!important;
  }

  .view{
    padding:14px!important;
  }

  .cards3,
  .cards4{
    grid-template-columns:1fr!important;
  }

  .wide-card{
    grid-column:span 1!important;
  }

  .filters-bar{
    flex-direction:column;
    align-items:stretch;
  }

  .filters-bar input,
  .filters-bar select,
  .filters-bar .btn{
    width:100%;
    min-width:unset;
  }

  .topbar{
    height:auto!important;
    padding:14px!important;
    gap:14px;
  }

  .topbar h1{
    font-size:1.2rem!important;
  }

  .sidebar{
    width:88vw!important;
    max-width:320px;
  }

  .card{
    padding:18px!important;
    border-radius:18px!important;
  }

  .btn{
    width:100%;
  }

  .scenario h3{
    font-size:1rem!important;
  }

  .chat{
    min-height:unset!important;
    height:auto!important;
  }

  .messages{
    max-height:55vh;
  }

  .composer{
    flex-direction:column;
  }

  .composer textarea{
    width:100%;
  }

  .table{
    display:block;
    overflow-x:auto;
  }
}

@media(max-width:480px){
  .topbar{
    align-items:flex-start!important;
  }

  .top-actions{
    width:100%;
    justify-content:space-between;
  }

  .badge{
    font-size:.68rem!important;
  }

  .scenario-tag{
    font-size:.68rem!important;
  }
}

