/* ══════════════════════════════════════════════════════════════
   COMET CARBON v4 — DESIGN SYSTEM
   Aesthetic : Refined Dark Organic — data-dense & trustworthy
   Fonts: Syne (display) · DM Sans (body) · JetBrains Mono (data)
   ══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ── TOKENS ────────────────────────────────────────────────── */
:root {
  --bg:       #070c0e;
  --bg-2:     #0c1316;
  --bg-3:     #111b1f;
  --bg-4:     #162028;
  --bg-5:     #1c2832;
  --bg-6:     #223040;

  --em:       #10b981;   /* emerald — primary */
  --sky:      #0ea5e9;   /* sky — secondary */
  --violet:   #8b5cf6;   /* violet — accent */
  --amber:    #f59e0b;   /* amber — warning */
  --rose:     #f43f5e;   /* rose — danger */
  --ai:       #a78bfa;   /* AI purple */

  --em-dim:   rgba(16,185,129,.1);
  --sk-dim:   rgba(14,165,233,.1);
  --vi-dim:   rgba(139,92,246,.1);
  --am-dim:   rgba(245,158,11,.1);
  --ro-dim:   rgba(244,63,94,.1);
  --ai-dim:   rgba(167,139,250,.12);

  --txt:      #dde8e4;
  --txt-2:    #8aa09a;
  --txt-3:    #4a6560;
  --txt-4:    #2a3d3a;

  --border:   rgba(255,255,255,.055);
  --border-2: rgba(255,255,255,.10);
  --border-3: rgba(255,255,255,.16);

  --r-xs:  4px;
  --r-sm:  8px;
  --r-md:  14px;
  --r-lg:  20px;
  --r-xl:  28px;

  --shadow:    0 8px 32px rgba(0,0,0,.55);
  --shadow-sm: 0 2px 12px rgba(0,0,0,.4);
  --shadow-lg: 0 24px 64px rgba(0,0,0,.7);

  --sbw: 256px;
  --tbh: 58px;

  --fh: 'Syne', sans-serif;
  --fb: 'DM Sans', sans-serif;
  --fm: 'JetBrains Mono', monospace;

  --ease: cubic-bezier(.16,1,.3,1);
}

/* ── RESET ─────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px;scroll-behavior:smooth}
body{
  font-family:var(--fb);background:var(--bg);color:var(--txt);
  height:100dvh;overflow:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
input,select,textarea,button{font-family:inherit}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bg-5);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--bg-6)}

/* ── SPLASH ─────────────────────────────────────────────────── */
#splash{
  position:fixed;inset:0;z-index:9999;
  background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .6s var(--ease),visibility .6s;
}
#splash.out{opacity:0;visibility:hidden;pointer-events:none}
.sp-inner{text-align:center}
.sp-logo{
  width:80px;height:80px;margin:0 auto 1.5rem;
  animation:sp-pulse 2s ease-in-out infinite;
}
@keyframes sp-pulse{0%,100%{transform:scale(1) rotate(0deg)}50%{transform:scale(1.05) rotate(2deg)}}
.sp-title{font-family:var(--fh);font-size:2rem;font-weight:800;letter-spacing:-.04em;margin-bottom:.4rem}
.sp-sub{color:var(--txt-3);font-size:.85rem;margin-bottom:2rem}
.sp-bar{width:200px;height:2px;background:var(--bg-5);border-radius:99px;margin:0 auto 1rem;overflow:hidden}
.sp-prog{height:100%;width:0%;background:linear-gradient(90deg,var(--em),var(--sky));border-radius:99px;transition:width .35s var(--ease)}
.sp-status{font-size:.75rem;color:var(--txt-4);font-family:var(--fm)}

/* ── AUTH SCREEN ────────────────────────────────────────────── */
#auth-screen{
  position:fixed;inset:0;z-index:500;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg);
}
#auth-screen.hidden{display:none}
.auth-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 50% at 20% 20%, rgba(16,185,129,.06) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 80%, rgba(14,165,233,.05) 0%, transparent 60%);
}
.auth-wrap{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;
  width:900px;max-width:96vw;min-height:560px;
  background:var(--bg-2);border:1px solid var(--border-2);
  border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;
}
@media(max-width:680px){.auth-wrap{grid-template-columns:1fr}}
.auth-hero{
  background:linear-gradient(150deg,rgba(16,185,129,.15),rgba(14,165,233,.08));
  padding:3rem;display:flex;flex-direction:column;justify-content:space-between;
  border-right:1px solid var(--border);
}
@media(max-width:680px){.auth-hero{display:none}}
.auth-hero-logo{display:flex;align-items:center;gap:.75rem;margin-bottom:auto}
.auth-hero-brand{font-family:var(--fh);font-size:1.15rem;font-weight:800;letter-spacing:-.02em}
.auth-hero-pitch{margin-top:auto}
.auth-hero-pitch h2{font-family:var(--fh);font-size:1.6rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;margin-bottom:.8rem}
.auth-hero-pitch p{color:var(--txt-2);font-size:.88rem;line-height:1.6}
.auth-hero-feats{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem}
.auth-feat{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:var(--txt-2)}
.auth-feat-ico{width:22px;height:22px;border-radius:50%;background:var(--em-dim);display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}

.auth-panel{padding:2.5rem;display:flex;flex-direction:column;justify-content:center}
.auth-tabs{display:flex;gap:.5rem;margin-bottom:2rem;background:var(--bg-3);border-radius:var(--r-sm);padding:.3rem}
.auth-tab{
  flex:1;padding:.55rem;text-align:center;border-radius:6px;
  font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;color:var(--txt-3);border:none;background:none;
}
.auth-tab.active{background:var(--bg-5);color:var(--txt);box-shadow:var(--shadow-sm)}
.auth-form{display:flex;flex-direction:column;gap:1rem}
.auth-form-title{font-family:var(--fh);font-size:1.2rem;font-weight:700;margin-bottom:.2rem}
.auth-form-sub{font-size:.8rem;color:var(--txt-3);margin-bottom:.5rem}
.f-group{display:flex;flex-direction:column;gap:.35rem}
.f-label{font-size:.72rem;font-weight:600;color:var(--txt-2);text-transform:uppercase;letter-spacing:.06em}
.f-input,.f-select{
  background:var(--bg-4);border:1px solid var(--border-2);
  border-radius:var(--r-sm);padding:.65rem .9rem;
  color:var(--txt);font-size:.9rem;width:100%;transition:border-color .2s,box-shadow .2s;
}
.f-input:focus,.f-select:focus{border-color:var(--em);outline:none;box-shadow:0 0 0 3px var(--em-dim)}
.f-input::placeholder{color:var(--txt-4)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.f-hint{font-size:.73rem;color:var(--txt-3);margin-top:.2rem;line-height:1.5}
.f-err{font-size:.78rem;color:var(--rose);background:var(--ro-dim);border-radius:var(--r-xs);padding:.4rem .7rem;display:none}
.f-err.show{display:block}
.btn-auth{
  background:var(--em);border:none;border-radius:var(--r-sm);
  padding:.75rem;color:#fff;font-family:var(--fh);font-size:.95rem;font-weight:700;
  cursor:pointer;transition:opacity .2s,transform .15s;width:100%;margin-top:.5rem;
}
.btn-auth:hover{opacity:.88}
.btn-auth:active{transform:scale(.98)}
.btn-auth:disabled{opacity:.5;cursor:not-allowed}
.auth-demo{
  text-align:center;font-size:.78rem;color:var(--txt-3);margin-top:1rem;
  padding-top:1rem;border-top:1px solid var(--border);
}
.auth-demo a{color:var(--sky);cursor:pointer;text-decoration:none}
.auth-demo a:hover{text-decoration:underline}
.auth-sector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.auth-sc{
  padding:.55rem .3rem;background:var(--bg-4);border:1px solid var(--border);
  border-radius:var(--r-sm);text-align:center;cursor:pointer;
  font-size:.72rem;color:var(--txt-3);transition:all .18s;
}
.auth-sc:hover{border-color:var(--border-2);color:var(--txt)}
.auth-sc.active{border-color:var(--em);background:var(--em-dim);color:var(--em)}
.auth-sc span:first-child{display:block;font-size:1.3rem;margin-bottom:.2rem}

/* ── APP LAYOUT ─────────────────────────────────────────────── */
#app{display:flex;height:100dvh;overflow:hidden}
#app.hidden{display:none}

/* ── SIDEBAR ────────────────────────────────────────────────── */
.sidebar{
  width:var(--sbw);flex-shrink:0;
  background:var(--bg-2);border-right:1px solid var(--border);
  display:flex;flex-direction:column;z-index:100;
  transition:transform .3s var(--ease);
}
.sb-top{flex:1;overflow-y:auto;padding:1.1rem .9rem}
.sb-foot{padding:.9rem;border-top:1px solid var(--border)}
.brand{
  display:flex;align-items:center;gap:10px;
  margin-bottom:1.8rem;cursor:pointer;
}
.brand-ico{
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 0 0 1px rgba(16,185,129,.25),0 4px 12px rgba(16,185,129,.1);
}
.brand-name{display:block;font-family:var(--fh);font-size:.95rem;font-weight:800;letter-spacing:-.02em}
.brand-tag{display:block;font-size:.68rem;color:var(--txt-3)}
.nav-sec{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--txt-4);margin:1.3rem 0 .4rem .3rem}
nav{display:flex;flex-direction:column;gap:1px}
.ni{
  display:flex;align-items:center;gap:9px;
  padding:8px 10px;border-radius:var(--r-sm);
  color:var(--txt-2);cursor:pointer;font-size:.86rem;
  transition:all .16s;text-decoration:none;white-space:nowrap;
}
.ni:hover{background:rgba(255,255,255,.035);color:var(--txt)}
.ni.active{
  background:var(--em-dim);color:var(--em);font-weight:600;
  box-shadow:inset 3px 0 0 var(--em);
}
.ni.ai-item.active{background:var(--ai-dim);color:var(--ai);box-shadow:inset 3px 0 0 var(--ai)}
.ni.ai-item:hover{background:var(--ai-dim)}
.ni i{flex-shrink:0}
.ni span{flex:1}
.ni-cnt{
  font-style:normal;font-family:var(--fm);font-size:.68rem;
  background:var(--bg-5);border-radius:99px;padding:.1em .45em;color:var(--txt-3);
}
.ni-new{
  font-style:normal;font-size:.58rem;font-weight:700;
  background:var(--ai);color:#fff;border-radius:99px;padding:.15em .5em;
}
.ni-badge{
  font-style:normal;font-size:.6rem;font-weight:700;
  padding:.15em .5em;border-radius:99px;
}
.ni-badge.ai{background:var(--ai-dim);color:var(--ai)}

.yr-box{margin-bottom:.8rem}
.yr-label{font-size:.65rem;color:var(--txt-3);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:.35rem}
.yr-row{display:flex;gap:.35rem}
.yr-sel{
  flex:1;background:var(--bg-4);border:1px solid var(--border-2);
  border-radius:var(--r-sm);color:var(--txt);padding:.42rem .6rem;
  font-size:.82rem;cursor:pointer;font-family:var(--fm);
}
.ico-btn{
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  background:var(--bg-4);border:1px solid var(--border-2);border-radius:var(--r-sm);
  color:var(--txt-2);cursor:pointer;flex-shrink:0;transition:all .18s;
}
.ico-btn:hover{color:var(--em);border-color:var(--em)}
.user-tile{
  display:flex;align-items:center;gap:9px;padding:.65rem .6rem;
  background:var(--bg-3);border-radius:var(--r-sm);cursor:pointer;transition:background .18s;
}
.user-tile:hover{background:var(--bg-4)}
.user-av{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--em),var(--sky));
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.78rem;
}
.user-nm{display:block;font-size:.8rem;font-weight:600;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-rl{display:block;font-size:.68rem;color:var(--txt-3)}

/* ── CONTENT WRAP ────────────────────────────────────────────── */
.cw{flex:1;display:flex;flex-direction:column;overflow:hidden}

/* ── TOPBAR ─────────────────────────────────────────────────── */
.topbar{
  height:var(--tbh);flex-shrink:0;
  background:var(--bg-2);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:.9rem;padding:0 1.4rem;z-index:50;
}
.hmbg{display:none;background:none;border:none;color:var(--txt-2);cursor:pointer;padding:.3rem}
.tb-ttl h1{font-family:var(--fh);font-size:1rem;font-weight:700;line-height:1.2}
.tb-ttl .tb-sub{font-size:.72rem;color:var(--txt-3)}
.tb-acts{margin-left:auto;display:flex;align-items:center;gap:.4rem;flex-wrap:nowrap}
.q-pill{
  display:flex;align-items:center;gap:.35rem;background:var(--bg-4);
  border-radius:99px;padding:.28rem .75rem;font-size:.75rem;color:var(--txt-2);white-space:nowrap;
}
.q-dot{width:7px;height:7px;border-radius:50%;background:var(--em);box-shadow:0 0 6px var(--em)}
.act-btn{
  display:flex;align-items:center;gap:.35rem;
  background:var(--bg-4);border:1px solid var(--border-2);border-radius:var(--r-sm);
  padding:.42rem .85rem;color:var(--txt-2);cursor:pointer;font-size:.82rem;transition:all .16s;
  white-space:nowrap;
}
.act-btn:hover{color:var(--txt);border-color:var(--em)}
.act-btn-p{
  display:flex;align-items:center;gap:.35rem;
  background:var(--em);border:none;border-radius:var(--r-sm);
  padding:.45rem .95rem;color:#fff;cursor:pointer;font-size:.82rem;font-weight:600;
  transition:opacity .2s;white-space:nowrap;
}
.act-btn-p:hover{opacity:.85}
.act-btn-ai{
  display:flex;align-items:center;gap:.35rem;
  background:linear-gradient(135deg,var(--violet),var(--ai));border:none;border-radius:var(--r-sm);
  padding:.45rem .95rem;color:#fff;cursor:pointer;font-size:.82rem;font-weight:600;
  transition:opacity .2s,box-shadow .2s;white-space:nowrap;
}
.act-btn-ai:hover{opacity:.88;box-shadow:0 4px 16px rgba(139,92,246,.3)}
.exp-wrap{position:relative}
.exp-dd{
  position:absolute;top:calc(100% + 6px);right:0;
  background:var(--bg-3);border:1px solid var(--border-2);border-radius:var(--r-sm);
  padding:.35rem;min-width:210px;box-shadow:var(--shadow);display:none;z-index:200;
}
.exp-dd.open{display:block}
.exp-dd button{
  display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;
  padding:.55rem .75rem;background:none;border:none;color:var(--txt-2);
  font-size:.83rem;cursor:pointer;border-radius:var(--r-xs);transition:all .14s;
}
.exp-dd button:hover{background:rgba(255,255,255,.05);color:var(--txt)}
.exp-dd hr{border:none;border-top:1px solid var(--border);margin:.25rem 0}
.bl{display:none}
@media(min-width:1100px){.bl{display:inline}}

/* ── MAIN ────────────────────────────────────────────────────── */
.main{flex:1;overflow-y:auto;padding:1.4rem}
.sec{display:none}
.sec.active{display:block}

/* ── CARDS ───────────────────────────────────────────────────── */
.card{
  background:var(--bg-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:1.1rem 1.3rem;margin-bottom:1.1rem;
}
.card.ai-card{border-color:rgba(167,139,250,.2);background:linear-gradient(135deg,var(--bg-2),rgba(167,139,250,.03))}
.ch{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.ct{font-family:var(--fh);font-size:.92rem;font-weight:700}
.cm{font-size:.72rem;color:var(--txt-3);font-family:var(--fm)}

/* ── GRID LAYOUTS ────────────────────────────────────────────── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-bottom:1.1rem}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.1rem;margin-bottom:1.1rem}
.g4{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.9rem;margin-bottom:1.1rem}
@media(max-width:900px){.g2,.g3{grid-template-columns:1fr}}
@media(max-width:600px){.g4{grid-template-columns:1fr 1fr}}

/* ── KPI CARDS ───────────────────────────────────────────────── */
.kpi{
  background:var(--bg-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:1rem 1.1rem;
  border-top:3px solid var(--kc, var(--em));transition:transform .2s;
}
.kpi:hover{transform:translateY(-2px)}
.kpi-l{font-size:.7rem;color:var(--txt-2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.45rem}
.kpi-v{font-family:var(--fm);font-size:1.45rem;font-weight:600;color:var(--kc,var(--em));line-height:1}
.kpi-u{font-size:.72rem;color:var(--txt-3);font-family:var(--fb);margin-top:.1rem}
.kpi-t{font-size:.72rem;color:var(--txt-3);margin-top:.4rem;display:flex;align-items:center;gap:.25rem}
.kpi-t.good{color:var(--em)}.kpi-t.bad{color:var(--rose)}

/* ── CHARTS ──────────────────────────────────────────────────── */
.chw{position:relative;height:260px}
.chw.sm{height:200px}.chw.lg{height:320px}

/* ── TABLES ──────────────────────────────────────────────────── */
.tw{overflow-x:auto;border-radius:var(--r-sm);border:1px solid var(--border)}
.tw.mh{max-height:480px;overflow-y:auto}
.dt{width:100%;border-collapse:collapse;font-size:.83rem}
.dt th{
  background:var(--bg-3);padding:.65rem .85rem;text-align:left;
  font-size:.7rem;font-weight:600;color:var(--txt-2);
  text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;
}
.dt td{padding:.55rem .85rem;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}
.dt tr:last-child td{border-bottom:none}
.dt tr:hover td{background:rgba(255,255,255,.018)}
.num{font-family:var(--fm);font-size:.8rem}
.est-tag{background:var(--am-dim);color:var(--amber);font-size:.67rem;padding:.15em .5em;border-radius:99px}

/* ── INLINE EDIT ─────────────────────────────────────────────── */
.ie{background:transparent;border:none;color:var(--txt);font-size:.83rem;width:100%;min-width:80px;padding:2px 4px;border-radius:4px}
.ie:hover,.ie:focus{background:var(--bg-4);outline:1px solid var(--border-2)}
.ie.n{font-family:var(--fm);font-size:.8rem;width:80px;text-align:right}
.ie-sel{background:transparent;border:none;color:var(--txt-2);font-size:.8rem;cursor:pointer}
.ie-sel:focus{outline:none}

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn-p{display:inline-flex;align-items:center;gap:.32rem;background:var(--em);border:none;border-radius:var(--r-sm);padding:.48rem .9rem;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .2s}
.btn-p:hover{opacity:.85}
.btn-sm{display:inline-flex;align-items:center;gap:.28rem;background:var(--bg-4);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:.36rem .68rem;color:var(--txt-2);font-size:.76rem;cursor:pointer;transition:all .16s}
.btn-sm:hover{color:var(--txt);border-color:var(--em)}
.btn-ai{display:inline-flex;align-items:center;gap:.32rem;background:linear-gradient(135deg,var(--violet),var(--ai));border:none;border-radius:var(--r-sm);padding:.48rem .9rem;color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .2s,box-shadow .2s}
.btn-ai:hover{opacity:.88;box-shadow:0 4px 12px rgba(139,92,246,.3)}
.btn-del{background:none;border:none;color:var(--txt-3);cursor:pointer;padding:.22rem;border-radius:4px;transition:color .14s}
.btn-del:hover{color:var(--rose)}
.btn-edit{background:none;border:none;color:var(--txt-3);cursor:pointer;padding:.22rem;border-radius:4px;transition:color .14s}
.btn-edit:hover{color:var(--sky)}
.pill{padding:.28em .7em;border-radius:99px;font-size:.73rem;background:var(--bg-4);border:1px solid var(--border);color:var(--txt-2);cursor:pointer;transition:all .14s}
.pill:hover{border-color:var(--border-2);color:var(--txt)}
.pill.active{background:var(--em-dim);border-color:var(--em);color:var(--em)}
.pill-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.9rem}

/* ── MODAL ───────────────────────────────────────────────────── */
.mov{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.72);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center}
.mov.open{display:flex}
.mbox{
  background:var(--bg-3);border:1px solid var(--border-2);
  border-radius:var(--r-lg);padding:1.8rem;
  width:540px;max-width:95vw;max-height:90vh;overflow-y:auto;
  box-shadow:var(--shadow-lg);
  animation:mbox-in .3s var(--ease);
}
.mbox.wide{width:720px}
@keyframes mbox-in{from{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}
.mhd{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.4rem}
.mttl{font-family:var(--fh);font-size:1.05rem;font-weight:700}
.mcls{background:none;border:none;color:var(--txt-2);cursor:pointer;padding:.2rem;border-radius:4px;transition:color .14s}
.mcls:hover{color:var(--txt)}
.mbd{display:flex;flex-direction:column;gap:.9rem}
.m-acts{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}
.btn-ok{background:var(--em);border:none;border-radius:var(--r-sm);padding:.6rem 1.3rem;color:#fff;font-weight:600;cursor:pointer;font-size:.88rem;transition:opacity .2s}
.btn-ok:hover{opacity:.85}
.btn-cl{background:var(--bg-4);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:.6rem 1.1rem;color:var(--txt-2);cursor:pointer;font-size:.88rem;transition:all .18s}
.btn-cl:hover{color:var(--txt)}

/* ── TOAST ───────────────────────────────────────────────────── */
.tw-wrap{position:fixed;bottom:1.4rem;right:1.4rem;z-index:999;display:flex;flex-direction:column;gap:.45rem}
.toast{
  background:var(--bg-3);border:1px solid var(--border-2);border-radius:var(--r-sm);
  padding:.8rem 1.1rem;box-shadow:var(--shadow);
  display:flex;align-items:center;gap:.7rem;
  transform:translateX(110%);transition:transform .38s var(--ease);
  min-width:260px;max-width:340px;
}
.toast.in{transform:translateX(0)}
.toast.s{border-left:3px solid var(--em)}.toast.i{border-left:3px solid var(--sky)}
.toast.e{border-left:3px solid var(--rose)}.toast.w{border-left:3px solid var(--amber)}
.toast span{flex:1;font-size:.84rem}

/* ── AI MODULE ───────────────────────────────────────────────── */
.ai-hero{
  background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(167,139,250,.06));
  border:1px solid rgba(139,92,246,.2);border-radius:var(--r-lg);
  padding:1.8rem;margin-bottom:1.1rem;
  display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;
}
.ai-hero-ico{
  width:56px;height:56px;border-radius:var(--r-md);flex-shrink:0;
  background:linear-gradient(135deg,var(--violet),var(--ai));
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;
}
.ai-hero h2{font-family:var(--fh);font-size:1.15rem;font-weight:700;margin-bottom:.3rem}
.ai-hero p{color:var(--txt-2);font-size:.85rem;line-height:1.5}
.ai-actions-row{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}

.ai-module-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-bottom:1.1rem}
@media(max-width:900px){.ai-module-grid{grid-template-columns:1fr}}
.ai-module{
  background:var(--bg-2);border:1px solid rgba(139,92,246,.15);
  border-radius:var(--r-md);padding:1.2rem;
  transition:border-color .2s,transform .2s;
}
.ai-module:hover{border-color:rgba(139,92,246,.35);transform:translateY(-2px)}
.ai-mod-hd{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:.8rem}
.ai-mod-ico{
  width:38px;height:38px;border-radius:var(--r-sm);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;
}
.ai-mod-title{font-family:var(--fh);font-size:.9rem;font-weight:700;margin-bottom:.2rem}
.ai-mod-desc{font-size:.78rem;color:var(--txt-2);line-height:1.5}
.ai-result{
  background:var(--bg-3);border-radius:var(--r-sm);
  padding:.9rem 1rem;margin-top:.8rem;font-size:.83rem;
  border-left:3px solid var(--ai);line-height:1.6;
}
.ai-loading{
  display:flex;align-items:center;gap:.7rem;
  color:var(--txt-2);font-size:.83rem;padding:.6rem 0;
}
.ai-spinner{
  width:18px;height:18px;border:2px solid var(--ai-dim);
  border-top-color:var(--ai);border-radius:50%;
  animation:spin .8s linear infinite;flex-shrink:0;
}
@keyframes spin{to{transform:rotate(360deg)}}

.anomaly-item{
  background:var(--bg-3);border-radius:var(--r-sm);padding:.8rem 1rem;
  margin-bottom:.5rem;border-left:3px solid var(--amber);
  display:flex;align-items:flex-start;gap:.8rem;
}
.anomaly-item.high{border-left-color:var(--rose)}
.anomaly-item.low{border-left-color:var(--em)}
.anomaly-sev{
  font-size:.65rem;font-weight:700;text-transform:uppercase;
  padding:.2em .55em;border-radius:99px;flex-shrink:0;margin-top:.1rem;
}
.anomaly-sev.high{background:var(--ro-dim);color:var(--rose)}
.anomaly-sev.medium{background:var(--am-dim);color:var(--amber)}
.anomaly-sev.low{background:var(--em-dim);color:var(--em)}
.anomaly-msg{font-size:.83rem;flex:1}
.anomaly-sug{font-size:.77rem;color:var(--txt-2);margin-top:.3rem}

.rec-card{
  background:var(--bg-3);border-radius:var(--r-sm);padding:.9rem 1.1rem;
  margin-bottom:.6rem;display:flex;gap:1rem;align-items:flex-start;
}
.rec-scope-tag{
  font-size:.68rem;font-weight:700;font-family:var(--fm);
  padding:.25em .65em;border-radius:99px;
  background:var(--em-dim);color:var(--em);flex-shrink:0;white-space:nowrap;
}
.rec-title{font-size:.88rem;font-weight:600;margin-bottom:.3rem}
.rec-detail{font-size:.78rem;color:var(--txt-2);line-height:1.5}
.rec-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}
.rec-meta-tag{
  font-size:.68rem;padding:.2em .55em;border-radius:99px;
  background:var(--bg-4);border:1px solid var(--border);color:var(--txt-3);
}
.rec-pot{font-family:var(--fm);font-size:.82rem;color:var(--em);font-weight:600;flex-shrink:0;white-space:nowrap}

.csrd-section{margin-bottom:1.2rem}
.csrd-sec-hd{
  display:flex;align-items:center;justify-content:space-between;
  padding:.7rem 1rem;background:var(--bg-3);border-radius:var(--r-sm);
  cursor:pointer;font-size:.88rem;font-weight:600;margin-bottom:.1rem;
}
.csrd-compliance{
  font-size:.68rem;font-weight:700;padding:.2em .55em;border-radius:99px;
}
.csrd-compliance.conforme{background:var(--em-dim);color:var(--em)}
.csrd-compliance.partiel{background:var(--am-dim);color:var(--amber)}
.csrd-compliance.à_compléter{background:var(--ro-dim);color:var(--rose)}
.csrd-content{
  background:var(--bg-4);border-radius:0 0 var(--r-sm) var(--r-sm);
  padding:1rem;font-size:.83rem;line-height:1.7;color:var(--txt-2);
}

/* Chat IA */
.ai-chat-wrap{display:flex;flex-direction:column;gap:.7rem;max-height:380px;overflow-y:auto;padding:.5rem 0}
.chat-msg{display:flex;gap:.7rem;align-items:flex-start}
.chat-msg.user{flex-direction:row-reverse}
.chat-av{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;
}
.chat-av.ai{background:linear-gradient(135deg,var(--violet),var(--ai))}
.chat-av.user{background:linear-gradient(135deg,var(--em),var(--sky))}
.chat-bubble{
  background:var(--bg-4);border-radius:var(--r-sm);
  padding:.65rem .85rem;font-size:.84rem;line-height:1.6;max-width:80%;
}
.chat-msg.user .chat-bubble{background:var(--em-dim);color:var(--em)}
.chat-input-row{display:flex;gap:.5rem;margin-top:.5rem;border-top:1px solid var(--border);padding-top:.8rem}
.chat-inp{
  flex:1;background:var(--bg-4);border:1px solid var(--border-2);
  border-radius:var(--r-sm);padding:.6rem .85rem;color:var(--txt);font-size:.85rem;
}
.chat-inp:focus{border-color:var(--ai);outline:none}

/* Estimate Preview */
.est-preview{
  background:var(--bg-3);border-radius:var(--r-sm);padding:.8rem 1rem;
  margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.est-confidence{
  font-size:.68rem;font-weight:700;padding:.2em .55em;border-radius:99px;flex-shrink:0;
}
.est-confidence.high{background:var(--em-dim);color:var(--em)}
.est-confidence.medium{background:var(--am-dim);color:var(--amber)}
.est-confidence.low{background:var(--ro-dim);color:var(--rose)}

/* ── SCOPE HEADERS ───────────────────────────────────────────── */
.scope-hd{
  background:var(--bg-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:1.1rem 1.3rem;margin-bottom:.9rem;
}
.scope-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.7rem;margin-top:.8rem}
.sk{background:var(--bg-3);border-radius:var(--r-sm);padding:.7rem .9rem}
.sk-l{font-size:.68rem;color:var(--txt-3);text-transform:uppercase;margin-bottom:.3rem}
.sk-v{font-family:var(--fm);font-size:1.05rem;font-weight:600}

/* ── ACTIONS ─────────────────────────────────────────────────── */
.ac-list{display:flex;flex-direction:column;gap:.6rem;margin-top:.9rem}
.ac-card{
  background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-sm);
  padding:.9rem 1.1rem;display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;
}
.ac-card.done{opacity:.55}
.ac-scope-tag{font-size:.67rem;font-weight:700;padding:.22em .6em;border-radius:99px;background:var(--em-dim);color:var(--em);flex-shrink:0;font-family:var(--fm)}
.ac-title{flex:1;font-size:.88rem;font-weight:500}
.ac-meta{font-size:.75rem;color:var(--txt-3)}
.ac-pot{font-family:var(--fm);font-size:.8rem;color:var(--em)}
.sdot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.sdot.planned{background:var(--txt-3)}.sdot.in_progress{background:var(--amber)}.sdot.completed{background:var(--em)}

/* ── VALIDATION ──────────────────────────────────────────────── */
.ck-list{display:flex;flex-direction:column;gap:.45rem}
.ck-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .9rem;background:var(--bg-3);border-radius:var(--r-sm);font-size:.86rem}
.ck-ico{width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.72rem}
.ck-ico.ok{background:var(--em-dim);color:var(--em)}.ck-ico.nok{background:var(--ro-dim);color:var(--rose)}
.prog-ring-row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.1rem}

/* ── BENCHMARK ───────────────────────────────────────────────── */
.bm-hero{
  background:linear-gradient(135deg,var(--em-dim),var(--sk-dim));
  border:1px solid rgba(16,185,129,.2);border-radius:var(--r-lg);
  padding:1.8rem;margin-bottom:1.1rem;text-align:center;
}
.bm-score{font-family:var(--fm);font-size:3rem;font-weight:700;color:var(--em);line-height:1}
.bm-refs{display:flex;flex-direction:column;gap:.6rem}
.bm-ref{
  background:var(--bg-3);border-radius:var(--r-sm);padding:.75rem 1rem;
  display:flex;align-items:center;justify-content:space-between;
}
.bm-targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem}
.bm-target{background:var(--bg-3);border-radius:var(--r-sm);padding:.9rem 1.1rem;border-left:3px solid var(--em)}

/* ── SYNTHESIS ───────────────────────────────────────────────── */
.synth-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:1.1rem}
@media(max-width:700px){.synth-grid{grid-template-columns:1fr}}
.synth-stat{background:var(--bg-3);border-radius:var(--r-sm);padding:.9rem;text-align:center}
.synth-v{font-family:var(--fm);font-size:1.5rem;font-weight:700;color:var(--em)}
.synth-l{font-size:.76rem;color:var(--txt-2);margin-top:.25rem}

/* ── PROGRESS BAR ────────────────────────────────────────────── */
.pbar-row{display:flex;align-items:center;gap:.6rem}
.pbar{flex:1;height:5px;background:var(--bg-5);border-radius:99px;overflow:hidden}
.pbar-fill{height:100%;border-radius:99px;transition:width .6s var(--ease)}

/* ── ADEME PICKER ────────────────────────────────────────────── */
.ap-list{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-sm)}
.ap-item{padding:.6rem .9rem;cursor:pointer;font-size:.83rem;border-bottom:1px solid var(--border);transition:background .14s;display:flex;align-items:center;justify-content:space-between}
.ap-item:last-child{border-bottom:none}
.ap-item:hover{background:rgba(255,255,255,.04)}
.ap-val{font-family:var(--fm);font-size:.76rem;color:var(--em)}
.ap-cat{font-size:.68rem;color:var(--txt-3)}
.ap-srch{width:100%;background:var(--bg-4);border:none;border-bottom:1px solid var(--border);padding:.65rem .9rem;color:var(--txt);font-size:.86rem}
.ap-srch:focus{outline:none}

/* ── PRODUCTS ────────────────────────────────────────────────── */
.mk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem;margin-bottom:1rem}
.mk{background:var(--bg-3);border-radius:var(--r-sm);padding:.75rem .9rem}
.mk-l{font-size:.68rem;color:var(--txt-3);text-transform:uppercase;margin-bottom:.25rem}
.mk-v{font-family:var(--fm);font-size:1.05rem;font-weight:600}

/* ── ONBOARDING (quick setup) ────────────────────────────────── */
.onb-wrap{
  position:fixed;inset:0;z-index:400;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.7);backdrop-filter:blur(6px);
}
.onb-wrap.hidden{display:none}
.onb-box{
  background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--r-xl);
  padding:2.2rem;width:540px;max-width:96vw;max-height:92vh;overflow-y:auto;
  box-shadow:var(--shadow-lg);animation:mbox-in .35s var(--ease);
}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media(max-width:768px){
  .sidebar{position:fixed;top:0;left:0;bottom:0;transform:translateX(-100%);z-index:200}
  .sidebar.open{transform:translateX(0)}
  .hmbg{display:flex}
  .topbar{padding:0 .9rem}
  .main{padding:.9rem}
  .g4{grid-template-columns:1fr 1fr}
  .auth-hero{display:none}
  .auth-wrap{grid-template-columns:1fr}
}
@media(max-width:480px){
  .g4{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr}
  .auth-sector-grid{grid-template-columns:repeat(4,1fr)}
}
.hidden{display:none!important}
select option{background:var(--bg-3);color:var(--txt)}
.em-st{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem;color:var(--txt-3);text-align:center;gap:.7rem}
.em-st p{font-size:.88rem}
