*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg-deep:#010e0d;
  --bg-base:#013431;
  --bg-mid:#021a18;
  --bg-card:rgba(255,255,255,0.04);
  --bg-card-hover:rgba(255,255,255,0.07);
  --sidebar:#010c0b;
  --border:rgba(63,253,179,0.11);
  --border-act:rgba(63,253,179,0.32);
  --accent:#3FFDB3;
  --accent-glow:rgba(63,253,179,0.18);
  --green-mid:#2AB86E;
  --teal:#185561;
  --steel:#91ADC2;
  --t1:#FFFFFF;
  --t2:rgba(255,255,255,0.58);
  --t3:rgba(255,255,255,0.32);
  --danger:#FF4D6A;
  --warning:#F5A623;
  --r:12px;
  --rs:8px;
  --sw:72px;
  --hh:64px;
  --ease:.2s ease;
  --fd:'Syne',sans-serif;
  --fb:'DM Sans',sans-serif;
  --fm:'DM Mono',monospace;
}
html,body{height:100%;background:var(--bg-deep);color:var(--t1);font-family:var(--fb);font-size:14px;line-height:1.5;overflow:hidden}

/* LAYOUT */
.app{display:flex;height:100vh;overflow:hidden}

/* SIDEBAR */
.sidebar{
  width:var(--sw);background:var(--sidebar);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;
  padding:16px 0;gap:4px;flex-shrink:0;z-index:100;
}
.logo{
  width:40px;height:40px;background:var(--accent);border-radius:10px;
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.logo span{font-family:var(--fd);font-weight:800;font-size:14px;color:var(--bg-deep);letter-spacing:-0.5px}
.nav{
  width:44px;height:44px;border-radius:var(--rs);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--t3);transition:var(--ease);
  border:1px solid transparent;position:relative;
}
.nav:hover{background:var(--bg-card);color:var(--t2);border-color:var(--border)}
.nav.on{background:var(--accent-glow);color:var(--accent);border-color:var(--border-act)}
.nav svg{width:18px;height:18px;stroke-width:2}
.nav-sp{flex:1}
.nav-tip{
  position:absolute;left:56px;top:50%;transform:translateY(-50%);
  background:#011210;border:1px solid var(--border-act);border-radius:var(--rs);
  padding:4px 10px;font-size:11px;color:var(--t1);white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .15s;z-index:200;
}
.nav:hover .nav-tip{opacity:1}

/* MAIN */
.main{
  flex:1;display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg-mid);
  background-image:radial-gradient(ellipse 90% 50% at 50% -15%, rgba(63,253,179,0.055) 0%,transparent 65%);
}

/* HEADER */
.header{
  height:var(--hh);display:flex;align-items:center;
  padding:0 28px;border-bottom:1px solid var(--border);gap:14px;flex-shrink:0;
}
.header-title{font-family:var(--fd);font-weight:700;font-size:17px;letter-spacing:-0.3px}
.header-brand{font-size:11px;color:var(--accent);font-weight:500;letter-spacing:.6px;text-transform:uppercase}
.hsp{flex:1}
.mselector{
  display:flex;align-items:center;gap:8px;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--rs);
  padding:6px 12px;cursor:pointer;transition:var(--ease);
}
.mselector:hover{border-color:var(--border-act)}
.mselector select{
  background:transparent;border:none;color:var(--t1);
  font-family:var(--fb);font-size:13px;outline:none;cursor:pointer;
}
.mselector select option{background:#010c0b}
.uchip{
  display:flex;align-items:center;gap:8px;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:100px;padding:4px 12px 4px 4px;
}
.avatar{
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--green-mid));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-weight:700;font-size:11px;color:var(--bg-deep);
}
.uname{font-size:12px;font-weight:500;color:var(--t2)}

/* CONTENT */
.content{
  flex:1;overflow-y:auto;padding:28px;
  scrollbar-width:thin;scrollbar-color:rgba(63,253,179,0.2) transparent;
}
.content::-webkit-scrollbar{width:4px}
.content::-webkit-scrollbar-track{background:transparent}
.content::-webkit-scrollbar-thumb{background:rgba(63,253,179,0.2);border-radius:2px}

/* VIEWS */
.view{display:none}
.view.on{display:block;animation:fi .25s ease}
@keyframes fi{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* TYPOGRAPHY */
.sec-title{font-family:var(--fd);font-weight:700;font-size:22px;letter-spacing:-.5px;margin-bottom:5px}
.sec-sub{font-size:13px;color:var(--t3);margin-bottom:24px}

/* KPI GRID */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.kpi-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);
  padding:20px;transition:var(--ease);position:relative;overflow:hidden;
}
.kpi-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(63,253,179,0.025) 0%,transparent 60%);pointer-events:none;
}
.kpi-card:hover{border-color:var(--border-act);background:var(--bg-card-hover)}
.kpi-card.hl{border-color:rgba(63,253,179,.28);background:rgba(63,253,179,.04)}
.kpi-label{font-size:11px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
.kpi-val{font-family:var(--fm);font-size:22px;font-weight:500;color:var(--t1);margin-bottom:12px;letter-spacing:-.5px}
.kpi-card.hl .kpi-val{color:var(--accent)}
.kpi-comps{display:flex;flex-direction:column;gap:5px}
.kpi-comp{display:flex;justify-content:space-between;align-items:center}
.kpi-comp-l{font-size:11px;color:var(--t3)}
.kpi-comp-v{font-family:var(--fm);font-size:11px;color:var(--t2)}
.up{color:var(--danger)!important;font-size:10px}
.dn{color:var(--accent)!important;font-size:10px}

/* CHART CARD */
.chart-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r);padding:24px;margin-bottom:24px;
}
.chart-title{
  font-family:var(--fd);font-size:14px;font-weight:600;
  margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;
}
.chart-legend{display:flex;gap:16px}
.leg-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}
.leg-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.chart-wrap{position:relative;height:280px}

/* TABLE */
.tcard{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:24px}
.thead2{
  padding:16px 20px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
}
.thead2-title{font-family:var(--fd);font-size:14px;font-weight:600}
.ttoggle{
  display:flex;align-items:center;gap:6px;font-size:12px;color:var(--accent);
  cursor:pointer;padding:4px 10px;border-radius:var(--rs);
  border:1px solid rgba(63,253,179,.2);transition:var(--ease);
}
.ttoggle:hover{background:var(--accent-glow)}
.dtable{width:100%;border-collapse:collapse}
.dtable th{
  text-align:right;padding:10px 16px;
  font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.6px;
  border-bottom:1px solid var(--border);background:rgba(0,0,0,.12);
}
.dtable th:first-child{text-align:left}
.dtable td{
  text-align:right;padding:10px 16px;
  font-family:var(--fm);font-size:12px;color:var(--t2);
  border-bottom:1px solid rgba(255,255,255,.03);
}
.dtable td:first-child{text-align:left;font-family:var(--fb);font-size:13px;color:var(--t1);font-weight:500}
.dtable tr:hover td{background:rgba(63,253,179,.02)}
.dtable tr:last-child td{border-bottom:none}
.ci{color:var(--accent)!important}
.cg{color:#FF9F6B!important}
.ct{font-weight:600!important;color:var(--t1)!important}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:10px;font-weight:500}
.b-ok{background:rgba(63,253,179,.12);color:var(--accent)}
.b-warn{background:rgba(245,166,35,.15);color:var(--warning)}
.b-bad{background:rgba(255,77,106,.15);color:var(--danger)}
.b-neu{background:rgba(145,173,194,.15);color:var(--steel)}

/* FILTERS */
.fbar{display:flex;gap:12px;margin-bottom:20px;align-items:center}
.fsel{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--rs);
  color:var(--t1);font-family:var(--fb);font-size:13px;padding:7px 12px;outline:none;cursor:pointer;transition:var(--ease);
}
.fsel:hover,.fsel:focus{border-color:var(--border-act)}
.fsel option{background:#010c0b}

/* PROGRESS */
.psec{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);padding:24px;margin-bottom:24px}
.psec-title{font-family:var(--fd);font-size:14px;font-weight:600;margin-bottom:18px}
.srow{display:flex;justify-content:space-around;margin-bottom:16px}
.sitem{text-align:center}
.slabel{font-size:11px;color:var(--t3);margin-bottom:4px}
.sval{font-family:var(--fm);font-size:19px;font-weight:500;color:var(--accent)}
.sval.dim{color:var(--t2)}
.spct{font-size:11px;color:var(--t2)}
.ptrack{background:rgba(255,255,255,.08);height:10px;border-radius:100px;overflow:hidden;margin:4px 0 8px}
.pfill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--accent),var(--green-mid));transition:width 1.2s ease;position:relative}
.pfill::after{
  content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:14px;height:14px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 8px rgba(63,253,179,.8);
}
.pmeta{display:flex;justify-content:space-between;font-size:11px;color:var(--t3)}
.pmeta span.hl{color:var(--accent);font-weight:600}

/* GOALS */
.goals-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}
.gcard{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);padding:16px;transition:var(--ease)}
.gcard:hover{border-color:var(--border-act)}
.gname{font-size:12px;color:var(--t2);font-weight:500;margin-bottom:8px}
.gpct{font-family:var(--fd);font-size:20px;font-weight:700;color:var(--t1);margin-bottom:8px}
.gpct.a{color:var(--accent)}
.gtrack{background:rgba(255,255,255,.08);height:4px;border-radius:100px;overflow:hidden;margin-bottom:8px}
.gfill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--accent),var(--green-mid))}
.gamts{font-family:var(--fm);font-size:10px;color:var(--t3)}

/* TDC GAUGE */
.tdc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:0}
.tdcc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);padding:20px;text-align:center;transition:var(--ease)}
.tdcc:hover{border-color:var(--border-act)}
.tdc-ring{
  width:80px;height:80px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  position:relative;margin:0 auto 12px;
}
.tdc-ring::before{
  content:'';position:absolute;width:58px;height:58px;
  border-radius:50%;background:#010c0b;
}
.tdc-ring span{position:relative;z-index:1;font-family:var(--fm);font-size:13px;font-weight:500}
.tdc-nm{font-size:11px;color:var(--t3);margin-bottom:4px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}
.tdc-used{font-family:var(--fm);font-size:13px;color:var(--t1);margin-bottom:2px}
.tdc-lim{font-family:var(--fm);font-size:10px;color:var(--t3)}

/* DEBT BARS */
.dsec{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);padding:24px;margin-bottom:24px}
.dsec-title{font-family:var(--fd);font-size:14px;font-weight:600;margin-bottom:20px}
.ditem{margin-bottom:18px}
.ditem:last-child{margin-bottom:0}
.dihead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.dinm{font-size:13px;color:var(--t2);font-weight:500}
.dinm.bold{font-weight:700;color:var(--t1);font-size:14px}
.dipct{font-family:var(--fm);font-size:13px;color:var(--accent)}
.dipct.big{font-size:16px}
.disub{font-family:var(--fm);font-size:11px;color:var(--t3);margin-bottom:7px}

/* COMPLIANCE KPI */
.ckpi{
  background:var(--bg-card);border:1px solid rgba(63,253,179,.22);
  border-radius:var(--r);padding:20px 24px;margin-bottom:24px;
  display:flex;align-items:center;gap:20px;
}
.ckpi-label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.8px;font-weight:500;margin-bottom:4px}
.ckpi-val{font-family:var(--fm);font-size:32px;font-weight:500;color:var(--accent);letter-spacing:-1px}
.ckpi-sub{font-size:12px;color:var(--t3)}
.divider{width:1px;height:48px;background:var(--border);margin:0 4px}

/* MODAL */
.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);
  z-index:1000;display:none;align-items:center;justify-content:center;
}
.overlay.open{display:flex;animation:fi .2s ease}
.modal{
  background:#011310;border:1px solid var(--border-act);border-radius:16px;
  width:520px;max-width:95vw;max-height:88vh;overflow-y:auto;
  box-shadow:0 32px 80px rgba(0,0,0,.65),0 0 0 1px rgba(63,253,179,.04);
}
.modal-hd{padding:24px 28px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-family:var(--fd);font-size:18px;font-weight:700}
.mclose{
  width:32px;height:32px;border-radius:var(--rs);border:1px solid var(--border);
  background:var(--bg-card);color:var(--t2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:var(--ease);font-size:16px;
}
.mclose:hover{border-color:var(--border-act);color:var(--t1)}
.msteps{display:flex;padding:14px 28px;gap:8px;border-bottom:1px solid var(--border)}
.sind{flex:1;height:3px;border-radius:100px;background:rgba(255,255,255,.1);transition:background .3s}
.sind.done{background:var(--accent)}
.sind.act{background:rgba(63,253,179,.5)}
.modal-body{padding:28px}
.wstep{display:none}
.wstep.on{display:block;animation:fi .2s ease}
.step-title{font-family:var(--fd);font-size:15px;font-weight:600;margin-bottom:5px}
.step-sub{font-size:12px;color:var(--t3);margin-bottom:20px}
.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.type-opt{
  padding:12px 14px;border-radius:var(--r);border:2px solid var(--border);
  background:var(--bg-card);cursor:pointer;text-align:center;transition:var(--ease);
  display:flex;align-items:center;gap:12px;text-align:left;
}
.type-opt:hover{border-color:var(--border-act);background:var(--accent-glow)}
.type-opt.sel{border-color:var(--accent);background:rgba(63,253,179,.07)}
.type-icon{font-size:22px;flex-shrink:0}
.type-nm{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px}
.type-desc{font-size:11px;color:var(--t3);line-height:1.3}
.fgroup{margin-bottom:16px}
.flabel{font-size:11px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;display:block}
.finput,.fselect{
  width:100%;background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:var(--rs);color:var(--t1);font-family:var(--fb);font-size:14px;
  padding:10px 14px;outline:none;transition:var(--ease);
}
.finput:focus,.fselect:focus{border-color:var(--border-act);background:rgba(63,253,179,.03)}
.fselect option{background:#010c0b}
.finput.amt{font-family:var(--fm);font-size:18px}
.echips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.echip{
  padding:8px;border-radius:var(--rs);border:1px solid var(--border);background:var(--bg-card);
  cursor:pointer;text-align:center;font-size:11px;color:var(--t2);transition:var(--ease);
}
.echip:hover{border-color:var(--border-act);color:var(--t1)}
.echip.sel{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}
.modal-ft{padding:20px 28px 28px;display:flex;gap:10px;justify-content:flex-end}
.btn{padding:10px 20px;border-radius:var(--rs);font-family:var(--fb);font-size:14px;font-weight:500;cursor:pointer;transition:var(--ease);border:1px solid transparent}
.btn-sec{background:var(--bg-card);border-color:var(--border);color:var(--t2)}
.btn-sec:hover{border-color:var(--border-act);color:var(--t1)}
.btn-pri{background:var(--accent);color:var(--bg-deep);font-weight:600}
.btn-pri:hover{background:#52ffbe;box-shadow:0 0 20px rgba(63,253,179,.35)}
.confirm-box{margin-top:20px;padding:16px;background:rgba(63,253,179,.05);border-radius:var(--r);border:1px solid rgba(63,253,179,.15)}
.confirm-label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px}
.confirm-lines{font-family:var(--fm);font-size:12px;color:var(--t2);line-height:1.9}

/* FAB */
.fab{
  position:fixed;bottom:28px;right:28px;
  background:var(--accent);color:var(--bg-deep);border:none;border-radius:100px;
  padding:12px 20px;font-family:var(--fb);font-size:13px;font-weight:700;
  cursor:pointer;display:flex;align-items:center;gap:8px;
  box-shadow:0 4px 24px rgba(63,253,179,.32);transition:var(--ease);z-index:500;
}
.fab:hover{background:#52ffbe;transform:translateY(-2px);box-shadow:0 8px 32px rgba(63,253,179,.45)}
.fab svg{width:16px;height:16px;stroke-width:2.5}

/* TABLE WRAP */
.twrap{overflow-x:auto}

/* MONTH CHIPS */
.month-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.chip{
  padding:4px 11px;border-radius:100px;font-size:11px;font-weight:600;
  cursor:pointer;border:1px solid var(--border);color:var(--t3);
  background:var(--bg-card);transition:var(--ease);user-select:none;
}
.chip:hover{border-color:var(--border-act);color:var(--t2)}
.chip.on{background:var(--accent-glow);color:var(--accent);border-color:var(--border-act)}
.chip.all{background:rgba(255,255,255,0.06);color:var(--t2);font-size:11px}
.chip.all.on{background:var(--accent);color:var(--bg-deep);border-color:var(--accent)}

/* SEARCH */
.swrap{position:relative;flex:1;max-width:240px}
.swrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--t3);pointer-events:none}
.eeff-search{
  width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--rs);
  color:var(--t1);font-family:var(--fb);font-size:13px;padding:7px 12px 7px 32px;outline:none;transition:var(--ease);
}
.eeff-search:focus{border-color:var(--border-act)}
.eeff-search::placeholder{color:var(--t3)}

/* EEFF cell hover */
.eeff-table td.dc{cursor:pointer}
.eeff-table td.dc:hover{background:rgba(63,253,179,0.06)!important;outline:1px solid rgba(63,253,179,0.25)}

/* COLLAPSIBLE */
.eeff-section-hd{cursor:pointer}
.eeff-section-hd:hover td{filter:brightness(1.2)}
.sec-arrow{margin-right:6px;display:inline-block;transition:transform .2s;font-style:normal}

/* DRILL PANEL */
.drill-panel{
  position:fixed;right:0;top:0;height:100vh;width:440px;max-width:95vw;
  background:#010e0d;border-left:1px solid var(--border-act);
  z-index:900;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
  box-shadow:-12px 0 48px rgba(0,0,0,0.6);
}
.drill-panel.open{transform:translateX(0)}
.drill-hd{
  padding:20px 24px 16px;border-bottom:1px solid var(--border);flex-shrink:0;
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
}
.drill-info{flex:1}
.drill-title{font-family:var(--fd);font-size:16px;font-weight:700;margin-bottom:3px}
.drill-sub{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
.drill-total-row{
  display:flex;align-items:center;gap:12px;
  margin-top:12px;padding-top:12px;border-top:1px solid var(--border);
}
.drill-kpi{text-align:center}
.drill-kpi-label{font-size:10px;color:var(--t3);margin-bottom:2px}
.drill-kpi-val{font-family:var(--fm);font-size:16px;font-weight:600}
.drill-close{
  width:32px;height:32px;border-radius:var(--rs);border:1px solid var(--border);
  background:var(--bg-card);color:var(--t2);cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:var(--ease);font-size:16px;
}
.drill-close:hover{border-color:var(--border-act);color:var(--t1)}
.drill-body{flex:1;overflow-y:auto;padding:0}
.drill-table-wrap{overflow-x:auto}
.drill-table{width:100%;border-collapse:collapse;min-width:360px}
.drill-table th{
  text-align:right;padding:8px 12px;font-size:10px;font-weight:600;
  color:var(--t3);text-transform:uppercase;letter-spacing:.5px;
  border-bottom:1px solid var(--border);background:rgba(0,0,0,.2);
  position:sticky;top:0;z-index:1;
}
.drill-table th:first-child{text-align:left}
.drill-table td{padding:9px 12px;font-size:12px;color:var(--t2);border-bottom:1px solid rgba(255,255,255,.03)}
.drill-table td:first-child{text-align:left;color:var(--t1)}
.drill-table td:not(:first-child){text-align:right;font-family:var(--fm)}
.drill-table tr:hover td{background:rgba(63,253,179,0.03)}
.drill-foot{
  padding:14px 24px;border-top:1px solid var(--border);flex-shrink:0;
  background:rgba(63,253,179,0.04);display:flex;justify-content:space-between;align-items:center;
}
.drill-foot-label{font-size:12px;color:var(--t2);font-weight:600}
.drill-foot-val{font-family:var(--fm);font-size:15px;font-weight:700;color:var(--accent)}
.drill-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:890;
  display:none;backdrop-filter:blur(2px);
}
.drill-overlay.open{display:block}

/* Universal accounting balance colors — used in EEFF table and drill-down */
.color-positive { color: #10B981 }
.color-alert    { color: #F59E0B }
.color-neutral  { color: inherit }

/* EEFF */
.eeff-wrap{overflow:auto;max-height:calc(100vh - 260px);max-width:100%}
.eeff-table{width:100%;border-collapse:collapse;min-width:1100px}
.eeff-table th{
  text-align:right;padding:8px 12px;font-size:10px;font-weight:600;
  color:var(--t3);text-transform:uppercase;letter-spacing:.5px;
  border-bottom:1px solid var(--border);background:var(--bg-mid);
  white-space:nowrap;position:sticky;top:0;z-index:3;
}
.eeff-table th:first-child{text-align:left;min-width:180px;position:sticky;left:0;top:0;z-index:4;background:var(--bg-mid)}
.eeff-table td{
  text-align:right;padding:7px 12px;font-family:var(--fm);font-size:11px;
  color:var(--t2);border-bottom:1px solid rgba(255,255,255,.025);white-space:nowrap;
}
.eeff-table td:first-child{
  text-align:left;font-family:var(--fb);font-size:12px;color:var(--t1);
  position:sticky;left:0;background:var(--bg-mid);z-index:1;padding-left:12px;
}
.eeff-table tr:hover td{background:rgba(63,253,179,.025)}
.eeff-table tr:hover td:first-child{background:#021f1d}
.eeff-section-hd td{
  background:rgba(0,0,0,.25)!important;color:var(--accent)!important;
  font-family:var(--fd)!important;font-size:11px!important;font-weight:700!important;
  letter-spacing:.8px;text-transform:uppercase;padding:10px 12px!important;
}
.eeff-section-hd td:first-child{background:#010c0b!important;color:var(--accent)!important}
.eeff-total td{
  background:rgba(63,253,179,.04)!important;
  font-weight:700!important;
  font-size:12px!important;
  border-top:2px solid rgba(63,253,179,.2)!important;
  border-bottom:2px solid rgba(63,253,179,.1)!important;
}
.eeff-total td:first-child{
  background:#011210!important;
  font-family:var(--fd)!important;
  font-weight:700!important;
}
.eeff-verify td{
  background:rgba(63,253,179,.08)!important;
  font-weight:700!important;
  border-top:3px solid rgba(63,253,179,.3)!important;
}
.eeff-filters{display:flex;gap:12px;margin-bottom:20px;align-items:center;flex-wrap:wrap}

/* CONFIG FORM */
.cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}
.cfg-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);padding:24px}
.cfg-card-title{
  font-family:var(--fd);font-size:15px;font-weight:700;
  color:var(--t1);margin-bottom:4px;display:flex;align-items:center;gap:8px;
}
.cfg-card-sub{font-size:12px;color:var(--t3);margin-bottom:20px}
.cfg-row{display:flex;gap:12px;margin-bottom:12px;align-items:flex-end}
.cfg-row .fgroup{flex:1;margin-bottom:0}
.cfg-row .fgroup.sm{flex:.5}
.goal-input-row{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;background:rgba(255,255,255,.03);
  border-radius:var(--rs);border:1px solid var(--border);margin-bottom:8px;
  transition:var(--ease);
}
.goal-input-row:hover{border-color:var(--border-act)}
.goal-emoji{font-size:18px;flex-shrink:0}
.goal-lbl{font-size:12px;color:var(--t2);flex:1;font-weight:500}
.goal-inp{
  width:140px;background:transparent;border:none;border-bottom:1px solid var(--border);
  color:var(--accent);font-family:var(--fm);font-size:13px;text-align:right;
  padding:2px 4px;outline:none;transition:var(--ease);
}
.goal-inp:focus{border-color:var(--accent)}
.tdc-input-row{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;background:rgba(255,255,255,.03);
  border-radius:var(--rs);border:1px solid var(--border);margin-bottom:8px;
}
.tdc-nm2{font-size:12px;color:var(--t2);flex:1;font-weight:500}
.save-bar{
  display:flex;justify-content:flex-end;gap:12px;
  padding:16px 0;border-top:1px solid var(--border);margin-top:8px;
}
.cfg-note{
  background:rgba(63,253,179,.05);border:1px solid rgba(63,253,179,.15);
  border-radius:var(--rs);padding:12px 16px;font-size:12px;color:var(--t2);
  margin-bottom:24px;line-height:1.6;
}

/* 2 COL */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}

/* TX LIST */
.tx-fbar{display:flex;gap:10px;margin-bottom:18px;align-items:center;flex-wrap:wrap}
.act-btn{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:var(--ease);white-space:nowrap;font-family:var(--fb)}
.act-edit{background:rgba(63,253,179,0.08);border-color:rgba(63,253,179,0.3);color:var(--accent)}
.act-edit:hover{background:rgba(63,253,179,0.2)}
.act-anular{background:rgba(255,77,106,0.08);border-color:rgba(255,77,106,0.3);color:var(--danger)}
.act-anular:hover{background:rgba(255,77,106,0.2)}
.tx-anulado td{opacity:0.35;text-decoration:line-through}
.b-anulado{background:rgba(255,77,106,.15);color:var(--danger)}
.b-editado{background:rgba(245,166,35,.15);color:var(--warning)}
.b-reverso{background:rgba(145,173,194,.15);color:var(--steel)}
.folio-chip{font-family:var(--fm);font-size:10px;color:var(--accent);background:rgba(63,253,179,0.06);padding:2px 8px;border-radius:4px;border:1px solid rgba(63,253,179,0.2);white-space:nowrap;letter-spacing:.3px}
input[type="date"].fsel{color-scheme:dark}
.tx-empty{text-align:center;color:var(--t3);padding:40px 16px;font-size:13px}

/* PATRIMONIO KPI CARDS (dashboard) */
.pat-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px}
.pat-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);
  padding:24px 28px;position:relative;overflow:hidden;transition:var(--ease);
}
.pat-card::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(135deg,rgba(63,253,179,0.04) 0%,transparent 60%);
}
.pat-card:hover{border-color:var(--border-act)}
.pat-card.blue{border-color:rgba(145,173,194,.3);background:rgba(145,173,194,.04)}
.pat-card.blue::before{background:linear-gradient(135deg,rgba(145,173,194,.06) 0%,transparent 60%)}
.pat-card.green{border-color:rgba(63,253,179,.3);background:rgba(63,253,179,.05)}
.pat-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.8px;color:var(--t3);margin-bottom:10px}
.pat-val{font-family:var(--fm);font-size:32px;font-weight:500;letter-spacing:-1px;margin-bottom:8px}
.pat-card.blue .pat-val{color:#91ADC2}
.pat-card.green .pat-val{color:var(--accent)}
.pat-sub{font-size:12px;color:var(--t3)}
.pat-sub span{color:var(--t2);font-family:var(--fm)}
.pat-icon{position:absolute;right:20px;top:20px;opacity:.12;font-size:40px}

/* PLAN DE CUENTAS */
.plan-filters{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap}
.plan-tcard{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:24px}
.plan-sec-hdr{
  padding:10px 20px;background:rgba(255,255,255,.03);
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--t2);
  border-bottom:1px solid var(--border);
  border-left:3px solid transparent;display:flex;align-items:center;gap:10px;
}
.plan-sec-hdr[data-tipo="Activo"]     {border-left-color:#3FFDB3;color:#3FFDB3}
.plan-sec-hdr[data-tipo="Pasivo"]     {border-left-color:#FF4D6A;color:#FF4D6A}
.plan-sec-hdr[data-tipo="Gasto"]      {border-left-color:#FF9F6B;color:#FF9F6B}
.plan-sec-hdr[data-tipo="Ingreso"]    {border-left-color:#91ADC2;color:#91ADC2}
.plan-sec-hdr[data-tipo="Patrimonio"] {border-left-color:#9B8FE8;color:#9B8FE8}
.plan-ro-tipo{font-size:10px;color:var(--t3);font-family:var(--fm)}
.pat-auto-val{font-family:var(--fm);font-size:18px;font-weight:500;padding:4px 12px;
  border-radius:var(--rs);display:inline-block}
.pat-auto-val.pos{color:#3FFDB3;background:rgba(63,253,179,.08)}
.pat-auto-val.neg{color:#FF4D6A;background:rgba(255,77,106,.08)}
.plan-table{width:100%;border-collapse:collapse}
.plan-table th{
  padding:10px 16px;text-align:left;font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.8px;color:var(--t3);
  border-bottom:1px solid var(--border);background:rgba(0,0,0,.15);
}
.plan-table td{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px;vertical-align:middle}
.plan-table tr:last-child td{border-bottom:none}
.plan-table tr:hover td{background:rgba(255,255,255,.02)}
.plan-group-hdr td{
  background:rgba(255,159,107,.05);border-bottom:1px solid rgba(255,159,107,.1);
  padding:8px 16px;cursor:pointer;
}
.plan-group-hdr:hover td{background:rgba(255,159,107,.1)}
.plan-add-btn{
  background:rgba(63,253,179,.1);border:1px solid rgba(63,253,179,.25);color:var(--accent);
  border-radius:50%;width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;padding:0;transition:var(--ease);
}
.plan-add-btn:hover{background:rgba(63,253,179,.2);border-color:var(--accent)}
.eeff-group-hdr{cursor:pointer}
.eeff-group-hdr td{
  background:rgba(255,159,107,.05);padding:7px 14px;
  font-size:12px;border-bottom:1px solid rgba(255,159,107,.1);
}
.eeff-group-hdr:hover td{background:rgba(255,159,107,.09)}
.plan-cod{font-family:var(--fm);font-size:11px;color:var(--t3)}
.plan-nm{font-weight:500}
.plan-tipo{font-size:11px;color:var(--t3)}
.prop-wrap{display:flex;align-items:center;gap:8px}
.prop-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.prop-dot.caja{background:#91ADC2}
.prop-dot.liquido{background:#3FFDB3}
.prop-dot.largo{background:#9B8FE8}
.prop-dot.deuda{background:#FF4D6A}
.prop-sel{
  background:transparent;border:1px solid var(--border);border-radius:var(--rs);
  color:var(--t1);font-family:var(--fb);font-size:12px;padding:4px 8px;
  outline:none;cursor:pointer;transition:var(--ease);
}
.prop-sel:focus{border-color:var(--border-act)}
.prop-sel option{background:#010c0b}
.saldo-inp{
  background:transparent;border:1px solid var(--border);border-radius:var(--rs);
  color:var(--t1);font-family:var(--fm);font-size:12px;padding:4px 10px;
  width:130px;text-align:right;outline:none;transition:var(--ease);
}
.saldo-inp:focus{border-color:var(--accent);background:rgba(63,253,179,.04)}
.plan-restore-btn{
  background:transparent;border:1px solid var(--border);border-radius:var(--rs);
  color:var(--t2);font-family:var(--fb);font-size:12px;padding:7px 16px;
  cursor:pointer;transition:var(--ease);
}
.plan-restore-btn:hover{border-color:var(--border-act);color:var(--t1)}

/* WIZARD ONBOARDING */
.wiz-yn{flex:1;padding:20px 16px;border-radius:var(--r);border:2px solid var(--border);background:var(--bg-card);cursor:pointer;text-align:center;font-family:var(--fb);font-size:15px;font-weight:600;color:var(--t2);transition:var(--ease)}
.wiz-yn:hover{border-color:var(--border-act);background:var(--accent-glow);color:var(--t1)}
.wiz-yn-sel{border-color:var(--accent)!important;background:rgba(63,253,179,.08)!important;color:var(--t1)!important}
.wiz-check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.wiz-check-item{padding:10px 14px;border-radius:var(--rs);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:13px;color:var(--t2);transition:var(--ease);display:flex;align-items:center;gap:8px;user-select:none}
.wiz-check-item:hover{border-color:var(--border-act);color:var(--t1)}
.wiz-check-sel{border-color:var(--accent)!important;background:rgba(63,253,179,.07)!important;color:var(--t1)!important}
.wiz-check-sel::before{content:'✓ ';color:var(--accent);font-weight:700;flex-shrink:0}
/* TOGGLE SWITCH */
.toggle-sw{position:relative;width:36px;height:20px;flex-shrink:0;display:inline-block}
.toggle-sw input{opacity:0;width:0;height:0;position:absolute}
.toggle-track{position:absolute;inset:0;background:rgba(255,255,255,.12);border-radius:100px;cursor:pointer;transition:var(--ease);border:1px solid var(--border)}
.toggle-track::after{content:'';position:absolute;left:2px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.4);transition:var(--ease)}
.toggle-sw input:checked+.toggle-track{background:var(--accent);border-color:var(--accent)}
.toggle-sw input:checked+.toggle-track::after{left:18px;background:#013431}
/* FILAS INACTIVAS */
.plan-row-inactive td{opacity:.3}
.plan-row-inactive td:last-child{opacity:1!important}

/* CSV LOADER SCREEN */
.csv-loader{
  position:fixed;inset:0;background:rgba(1,14,13,0.96);backdrop-filter:blur(12px);
  z-index:2000;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:24px;text-align:center;padding:32px;
}
.csv-loader.hidden{display:none}
.csv-loader-icon{font-size:48px;margin-bottom:4px}
.csv-loader-title{font-family:var(--fd);font-size:22px;font-weight:700;color:var(--t1)}
.csv-loader-sub{font-size:14px;color:var(--t3);max-width:380px;line-height:1.6}
.csv-upload-btn{
  display:flex;align-items:center;gap:10px;
  background:var(--accent);color:var(--bg-deep);
  border:none;border-radius:var(--r);padding:14px 28px;
  font-family:var(--fd);font-size:15px;font-weight:700;
  cursor:pointer;transition:var(--ease);
  box-shadow:0 4px 24px rgba(63,253,179,0.35);
}
.csv-upload-btn:hover{background:#52ffbe;transform:translateY(-2px)}
.csv-upload-btn svg{width:20px;height:20px;stroke-width:2.5}
.csv-hint{font-size:11px;color:var(--t3);margin-top:-8px}

/* ── GASTO COMPARTIDO ── */
.gc-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;
  background:rgba(145,173,194,0.15);color:#91ADC2;border:1px solid rgba(145,173,194,0.25);
  border-radius:100px;padding:2px 8px;margin-left:6px;white-space:nowrap;vertical-align:middle}
.gc-inp{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:6px;
  color:var(--t1);font-size:12px;padding:3px 6px;outline:none;font-family:var(--fb)}
.gc-inp:focus{border-color:rgba(63,253,179,.4)}
/* ── ME DEBEN ── */
.medeben-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}
.medeben-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:20px}
.medeben-nm{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--t1);margin-bottom:4px}
.medeben-total{font-family:var(--fm);font-size:22px;font-weight:700;color:#91ADC2;margin-bottom:14px}
.medeben-item{display:flex;justify-content:space-between;align-items:flex-start;
  padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06);gap:8px;font-size:12px}
.medeben-item.cobrado{opacity:.35}
.medeben-item-desc{flex:1;color:var(--t2);line-height:1.4}
.medeben-item-monto{font-family:var(--fm);color:#91ADC2;white-space:nowrap;font-weight:600}
.medeben-cobrar-btn{padding:3px 10px;background:rgba(63,253,179,.08);
  border:1px solid rgba(63,253,179,.25);border-radius:6px;color:var(--accent);font-size:11px;
  font-weight:600;cursor:pointer;transition:var(--ease);font-family:var(--fb);white-space:nowrap}
.medeben-cobrar-btn:hover{background:rgba(63,253,179,.18)}
.medeben-empty{text-align:center;padding:32px;color:var(--t3);font-size:14px}
.tdc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:4px}
.tdc-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:18px}
.tdc-nm{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--t1);margin-bottom:4px}
.tdc-bar-track{height:8px;border-radius:100px;background:rgba(255,255,255,.08);overflow:hidden}
.tdc-bar-fill{height:100%;border-radius:100px;transition:width .4s ease}
.kpi-card.shared{border-color:rgba(145,173,194,.25)}
.kpi-card.shared .kpi-label{color:#91ADC2}
.kpi-card.shared .kpi-val{color:#91ADC2;font-size:18px}
