/* ==========================================================================
   PRO-IA QUANT — styles specifiques au dashboard applicatif
   ========================================================================== */
.app-body{background:radial-gradient(900px 500px at 70% -10%, #141b2a 0%, var(--bg) 60%) fixed, var(--bg)}
/* Canvas pleine largeur (gamma structure, profil) : sans width CSS un canvas
   vaut 300 px et grandit frame par frame — largeur deterministe obligatoire. */
canvas[data-h]{width:100%}
/* Barre applicative : elle peut passer sur 2 lignes (tablette/mobile) — hauteur
   auto obligatoire, sinon les boutons recouvrent le contenu de la page. */
.nav .app-nav{gap:14px;flex-wrap:wrap;height:auto;min-height:62px;
              padding-top:9px;padding-bottom:9px;row-gap:10px}
.app-nav .logo{font-size:15px}
.btn.sm,.btn-ghost.sm{padding:8px 14px;font-size:13px}

/* segment NQ / ES */
.seg{display:flex;gap:4px;background:var(--s1);border:1px solid var(--bord);
     border-radius:10px;padding:3px}
.seg-btn{padding:6px 16px;border-radius:8px;font-size:13px;font-weight:700;color:var(--dim);transition:.2s}
.seg-btn.on{background:rgba(232,179,57,.14);color:var(--gold2);box-shadow:inset 0 0 0 1px rgba(232,179,57,.5)}
.seg-btn:hover:not(.on){color:var(--txt)}

.app-status{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--faint)}
.pill{border:1px solid var(--bord);border-radius:20px;padding:3px 11px;font-size:10.5px;
      letter-spacing:.12em;font-weight:700;color:var(--dim)}
.pill.demo{border-color:rgba(232,179,57,.6);color:var(--gold2)}
.pill.live{border-color:rgba(38,194,129,.6);color:var(--up)}
.pill.stale{border-color:rgba(246,70,93,.6);color:var(--dn)}

.app-main{padding:22px 24px 60px}
.banner{border-radius:var(--r-md);padding:11px 16px;font-size:13px;margin-bottom:16px;
        border:1px solid var(--bord);background:var(--s1);color:var(--dim)}
.banner.warn{border-color:rgba(232,179,57,.5);color:var(--gold2);background:rgba(232,179,57,.06)}
.banner.err{border-color:rgba(246,70,93,.5);color:var(--dn);background:rgba(246,70,93,.06)}
.banner a{color:inherit;text-decoration:underline}

/* grille du dashboard */
.dash{display:grid;grid-template-columns:300px minmax(0,1fr) 330px;gap:14px;align-items:start}
.dash .col{display:flex;flex-direction:column;gap:14px;min-width:0}
.dash .grow{min-width:0}

/* regime */
.regime{text-align:center}
.regime-word{font-size:23px;font-weight:800;letter-spacing:.08em;margin:6px 0 4px}
.regime-word.neg{color:var(--dn);text-shadow:0 0 18px rgba(246,70,93,.35)}
.regime-word.pos{color:var(--up);text-shadow:0 0 18px rgba(38,194,129,.3)}
.regime-zg{font-size:12.5px;color:var(--cyan)}
.regime-note{font-size:11.5px;color:var(--faint);margin-top:6px;line-height:1.45}

/* greeks */
.nets{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.net{background:var(--s2);border:1px solid var(--bord);border-radius:9px;padding:8px 10px;min-width:0}
.net .k{font-size:9px;letter-spacing:.14em;color:var(--faint)}
.net .v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;
        white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.net .v.up{color:var(--up)} .net .v.dn{color:var(--dn)} .net .v.neutral{color:var(--gold2)}
.net canvas{margin-top:3px}

/* qscore */
.qwrap{display:flex;align-items:center;gap:14px}
.qring{width:84px;height:84px;flex:none}
.qbits{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:11.5px;
       color:var(--dim);margin:0}
.qbits div{display:flex;justify-content:space-between;gap:6px;min-width:0}
.qbits dt{color:var(--faint)} .qbits dd{color:var(--txt);font-weight:700;margin:0}

/* niveaux */
.levels{display:flex;flex-direction:column}
.lvl{display:flex;justify-content:space-between;align-items:center;gap:10px;
     padding:6px 2px;font-size:12.5px;border-bottom:1px solid rgba(42,49,66,.4)}
.lvl:last-child{border-bottom:none}
.lvl .n{color:var(--dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lvl b{font-variant-numeric:tabular-nums;white-space:nowrap}
.lvl .d{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums}
.lvl-r{display:flex;align-items:center;gap:6px;white-space:nowrap}
/* chip « probabilité de toucher » (variante A) */
.pchip{border:1px solid;border-radius:20px;padding:1px 7px;font-size:10.5px;font-weight:700;
       font-variant-numeric:tabular-nums;opacity:.9}

/* simulateur de prix (re-pricing local du gamma) */
.sim{margin-top:10px;border-top:1px solid rgba(42,49,66,.6);padding-top:10px}
.sim[hidden]{display:none}
.sim-lbl{display:flex;justify-content:space-between;align-items:baseline;
         font-size:10px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase}
.sim-val{color:var(--gold2);font-size:13px;font-weight:700;letter-spacing:0;
         font-variant-numeric:tabular-nums;text-transform:none}
.sim input[type=range]{width:100%;margin:8px 0 4px;accent-color:var(--gold);background:transparent}
.sim-out{font-size:11.5px;color:var(--dim);min-height:16px}
.sim-out b{font-variant-numeric:tabular-nums}
.sim-out .up{color:var(--up)} .sim-out .dn{color:var(--dn)}

.plan{font-size:12.5px;color:var(--dim);line-height:1.6}
.plan b{color:var(--txt)}
.plan .hl{color:var(--gold2)}

.disclaimer{margin-top:22px;text-align:center;color:var(--faint);font-size:10.5px;line-height:1.5}

/* modale */
.modal{position:fixed;inset:0;z-index:100;background:rgba(6,9,14,.78);backdrop-filter:blur(6px);
       display:grid;place-items:center;padding:20px}
/* [hidden] doit gagner : une regle d'auteur avec display ecrase le style UA */
.modal[hidden],.banner[hidden]{display:none}
.modal-card{background:var(--s1);border:1px solid var(--gold);border-radius:var(--r-lg);
            padding:28px;max-width:420px;width:100%;box-shadow:var(--shadow),var(--glow)}
.modal-card h2{font-size:19px;color:var(--gold2);margin-bottom:8px}
.modal-sub{font-size:13px;color:var(--dim);margin-bottom:18px}
.modal-sub code{background:var(--s2);padding:1px 6px;border-radius:5px;color:var(--gold2);font-size:12px}
.modal-card input{width:100%;background:var(--bg);border:1px solid var(--bord);border-radius:10px;
                  padding:12px 14px;color:var(--txt);font:15px var(--font);letter-spacing:.06em}
.modal-card input:focus{outline:none;border-color:var(--gold)}
.modal-err{margin-top:10px;font-size:12.5px;color:var(--dn)}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
.modal-foot{margin-top:14px;font-size:12px;color:var(--faint);text-align:center}
.modal-foot a{color:var(--gold2)}

@media (max-width:1180px){
  .dash{grid-template-columns:1fr 1fr}
  .dash .grow{grid-column:1 / -1;order:-1}
}
@media (max-width:760px){
  .app-main{padding:16px 16px 48px}
  .dash{grid-template-columns:1fr}
  .app-status{order:5;width:100%;margin-left:0;justify-content:flex-start}
  .hide-sm{display:none}
  .qbits{grid-template-columns:1fr}
}
