:root{--bg:#eef2f8;--bg2:#1e293b;--bg3:#e4eaf4;--card:#dce5f2;--border:#c5d0e2;--accent:#2563eb;--purple:#7c3aed;--gold:#b45309;--green:#047857;--red:#b91c1c;--pink:#db2777;--text:#020508;--text2:#0a1520;--text3:#1a2a3a}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,sans-serif;display:flex;height:100vh;overflow:hidden}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 70% 40% at 15% 0%,rgba(59,130,246,.04),transparent 60%),radial-gradient(ellipse 50% 30% at 85% 100%,rgba(124,58,237,.03),transparent 60%);pointer-events:none;z-index:0}

/* LOGIN */
.login-screen{position:fixed;inset:0;background:#05050a;z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column}
.login-screen::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 30%,rgba(0,212,255,.06),transparent 70%),radial-gradient(ellipse 40% 30% at 50% 80%,rgba(124,58,237,.05),transparent 70%);pointer-events:none}
.login-box{background:rgba(13,13,26,.9);border:1px solid rgba(0,212,255,.15);border-radius:20px;padding:48px 44px;width:100%;max-width:380px;text-align:center;backdrop-filter:blur(20px);position:relative;z-index:1}
.login-logo{margin-bottom:10px}
.login-logo svg{filter:drop-shadow(0 0 18px rgba(0,212,255,.4))}
.login-brand{font-size:22px;font-weight:900;letter-spacing:1px;background:linear-gradient(90deg,#fff,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px}
.login-sub{font-size:14px;color:var(--text3);letter-spacing:3px;text-transform:uppercase;margin-bottom:32px}
.login-inp{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:14px 16px;color:#fff;font-size:16px;letter-spacing:3px;text-align:center;width:100%;outline:none;transition:border-color .2s;margin-bottom:10px}
.login-inp:focus{border-color:var(--accent)}
.login-inp::placeholder{letter-spacing:1px;font-size:14px}
.login-err{color:var(--red);font-size:14px;min-height:18px;margin-bottom:8px}
.login-btn{width:100%;padding:14px;background:linear-gradient(135deg,var(--purple),var(--accent));border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:800;letter-spacing:1px;cursor:pointer;transition:all .2s;text-transform:uppercase}
.login-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,212,255,.3)}
.login-version{font-size:12px;color:var(--text3);margin-top:24px;letter-spacing:1px}

/* SIDEBAR */
.sidebar{width:220px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:10;overflow-y:auto}
.sidebar-logo{padding:20px 16px 16px;border-bottom:1px solid var(--border)}
.sidebar-logo h2{font-size:16px;font-weight:900;letter-spacing:2px;background:linear-gradient(90deg,#fff,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.sidebar-logo p{font-size:12px;color:var(--text3);letter-spacing:2px;text-transform:uppercase;margin-top:2px}
.sidebar-section{padding:12px 8px 4px;font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:2px;font-weight:700}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:8px;margin:1px 8px;cursor:pointer;font-size:14px;color:var(--text2);transition:all .15s;position:relative}
.nav-item:hover{background:rgba(255,255,255,.06);color:#e2e8f0}
.nav-item.active{background:rgba(59,130,246,.15);color:#60a5fa;font-weight:600}
.nav-item.active::before{content:'';position:absolute;left:0;top:20%;bottom:20%;width:3px;background:#3b82f6;border-radius:0 2px 2px 0}
.nav-icon{font-size:15px;width:20px;text-align:center}
.sidebar-ptax{margin:auto 8px 8px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px}
.sidebar-ptax .label{color:var(--text3);font-size:12px;text-transform:uppercase;letter-spacing:1px}
.sidebar-ptax .val{color:var(--gold);font-weight:800;font-size:16px;margin:2px 0}
.sidebar-ptax .sub{color:var(--text3);font-size:12px}

/* MAIN */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{background:var(--card);border-bottom:1px solid var(--border);padding:10px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0;z-index:5}
.topbar-title{font-size:15px;font-weight:700;flex:1}
.dot-live{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.topbar-time{font-size:14px;color:var(--text3)}
.content{flex:1;overflow-y:auto;padding:20px;z-index:1;position:relative}

/* TICKER */
.ticker-bar{background:rgba(30,41,59,.95);border-bottom:1px solid var(--border);height:32px;overflow:hidden;display:flex;align-items:center;flex-shrink:0}
.ticker-inner{display:flex;white-space:nowrap;animation:scroll 80s linear infinite}
.ticker-inner:hover{animation-play-state:paused}
@keyframes scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.t-item{display:inline-flex;align-items:center;gap:5px;padding:0 18px;font-size:14px;font-weight:600;border-right:1px solid var(--border)}
.t-sym{color:var(--accent)}
.pos{color:var(--green)}.neg{color:var(--red)}.neu{color:var(--text2)}

/* PANELS */
.panel{display:none;animation:fadeIn .25s ease}.panel.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* KPI ROW */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;position:relative;overflow:hidden;transition:border-color .2s;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.kpi:hover{border-color:var(--accent)}
.kpi::after{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.kpi.c1::after{background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.kpi.c2::after{background:linear-gradient(90deg,transparent,var(--purple),transparent)}
.kpi.c3::after{background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.kpi.c4::after{background:linear-gradient(90deg,transparent,var(--green),transparent)}
.kpi.c5::after{background:linear-gradient(90deg,transparent,var(--red),transparent)}
.kpi-label{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:6px}
.kpi-val{font-size:20px;font-weight:800;line-height:1}
.kpi-sub{font-size:13px;color:var(--text2);margin-top:4px}
.kpi-ico{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:24px;opacity:.12}

/* CARDS */
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.card-title{font-size:13px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}

/* TABLE */
.tbl-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:14px}
thead tr{background:rgba(0,0,0,.04)}
th{padding:9px 10px;text-align:left;font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;cursor:pointer;user-select:none}
th:hover{color:var(--text2)}
tbody tr{border-top:1px solid rgba(0,0,0,.06);transition:background .1s}
tbody tr:hover{background:rgba(0,0,0,.03)}
td{padding:9px 10px;white-space:nowrap}
td.r{text-align:right}
.badge{display:inline-block;padding:2px 7px;border-radius:99px;font-size:12px;font-weight:700;letter-spacing:.5px}
.b-btc{background:rgba(247,147,26,.15);color:#f7931a}
.b-alt{background:rgba(124,58,237,.15);color:#7c3aed}
.b-stb{background:rgba(16,185,129,.15);color:#10b981}
.b-stk{background:rgba(0,212,255,.15);color:#00d4ff}
.b-etf{background:rgba(245,158,11,.15);color:#f59e0b}
.b-rei{background:rgba(236,72,153,.15);color:#ec4899}
.b-fii{background:rgba(168,85,247,.15);color:#a855f7}

/* TOOLBAR */
.tb{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.tb-space{flex:1}
.inp{background:var(--bg3);border:1px solid var(--border);border-radius:7px;padding:6px 10px;color:var(--text);font-size:14px;outline:none}
.inp:focus{border-color:var(--accent)}
.sel{background:var(--bg3);border:1px solid var(--border);border-radius:7px;padding:6px 8px;color:var(--text);font-size:14px;outline:none;cursor:pointer}
.sel option{background:var(--bg2)}
.btn{border:none;cursor:pointer;border-radius:7px;font-size:14px;font-weight:700;padding:7px 14px;transition:all .15s;letter-spacing:.3px}
.btn-p{background:linear-gradient(135deg,var(--purple),var(--accent));color:#fff}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,212,255,.25)}
.btn-g{background:var(--bg3);color:var(--text2);border:1px solid var(--border)}
.btn-g:hover{border-color:var(--accent);color:var(--accent)}
.btn-r{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.15)}
.btn-r:hover{background:rgba(239,68,68,.2)}
.btn-sm{padding:4px 8px;font-size:13px}

/* MODAL */
.overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px);z-index:100;align-items:center;justify-content:center}
.overlay.open{display:flex}
.modal{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.15)}
.modal h3{font-size:16px;font-weight:800;margin-bottom:18px;background:linear-gradient(90deg,var(--text),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.modal-x{position:absolute;top:14px;right:14px;background:none;border:none;color:var(--text2);font-size:18px;cursor:pointer;padding:4px 6px;border-radius:5px}
.modal-x:hover{background:var(--bg3)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fg{display:flex;flex-direction:column;gap:5px}.fg.full{grid-column:1/-1}
label{font-size:12px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:1px}
input,select,textarea{background:var(--bg3);border:1px solid var(--border);border-radius:7px;padding:8px 10px;color:var(--text);font-size:14px;outline:none;width:100%;transition:border-color .15s}
input:focus,select:focus{border-color:var(--accent)}
select option{background:var(--bg2)}
.modal-foot{margin-top:18px;display:flex;gap:8px;justify-content:flex-end}

/* TAX TABLE */
.tax-section{margin-bottom:20px}
.tax-section h4{font-size:14px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.tax-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr;gap:6px;padding:8px 10px;border-radius:8px;font-size:14px;align-items:center}
.tax-row.header{background:rgba(0,0,0,.04);font-size:12px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.tax-row:not(.header):nth-child(even){background:rgba(0,0,0,.02)}
.darf-chip{display:inline-block;padding:2px 6px;border-radius:4px;background:rgba(245,158,11,.1);color:var(--gold);font-size:12px;font-weight:700}
.must-pay{color:var(--red);font-weight:700}
.paid{color:var(--green);font-weight:700}
.zero{color:var(--text3)}

/* IMPORT/API */
.api-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.api-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}
.api-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.api-logo{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#fff}
.api-name{font-size:14px;font-weight:700}
.api-status{font-size:13px;margin-top:1px}
.connected{color:var(--green)}.disconnected{color:var(--text3)}
.api-fields{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}

/* IMPORT */
.import-zone{border:2px dashed var(--border);border-radius:12px;padding:32px;text-align:center;cursor:pointer;transition:border-color .2s}
.import-zone:hover,.import-zone.drag{border-color:var(--accent)}
.import-zone p{color:var(--text3);font-size:14px;margin-top:8px}

/* PROGRESS BAR */
.prog-wrap{margin-top:6px}
.prog-bar{height:3px;background:rgba(0,0,0,.1);border-radius:2px;overflow:hidden}
.prog-fill{height:100%;background:linear-gradient(90deg,var(--purple),var(--accent));border-radius:2px;transition:width .5s}

/* CHARTS */
.chart-wrap{position:relative;height:200px}
.chart-wrap.tall{height:260px}

/* PARAM GRID */
.param-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}
.param-row:last-child{border-bottom:none}
.param-label{font-size:14px;font-weight:600}
.param-desc{font-size:14px;color:var(--text3);margin-top:2px}
.param-val{min-width:140px}
.toggle{position:relative;display:inline-block;width:40px;height:22px}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--bg3);border-radius:22px;transition:.3s}
.toggle-slider:before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:var(--text3);border-radius:50%;transition:.3s}
input:checked+.toggle-slider{background:var(--accent)}
input:checked+.toggle-slider:before{transform:translateX(18px);background:#fff}

/* TOAST */
.toast{position:fixed;bottom:20px;right:20px;background:var(--bg2);border:1px solid var(--border);border-radius:9px;padding:10px 18px;font-size:14px;z-index:999;transform:translateY(60px);opacity:0;transition:all .3s;display:flex;align-items:center;gap:8px}
.toast.show{transform:translateY(0);opacity:1}

/* SCROLLBAR */
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:2px}

/* SIDEBAR DARK OVERRIDES — mantém texto claro no fundo escuro */
.sidebar{color:#e2e8f0}
.sidebar .sidebar-section{color:#64748b}
.sidebar .nav-item{color:#94a3b8}
.sidebar .nav-item:hover{background:rgba(255,255,255,.06);color:#e2e8f0}
.sidebar .nav-item.active{background:rgba(59,130,246,.15);color:#60a5fa}
.sidebar .nav-item.active::before{background:#3b82f6}
.sidebar-logo h2{background:linear-gradient(90deg,#f1f5f9,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.sidebar-logo p{color:#64748b}
.sidebar-ptax .label,.sidebar-ptax .sub{color:#64748b}
.sidebar-ptax .val{color:#fbbf24}
.sidebar-ptax{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.tbl-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}
.sel option,.inp option{background:#ffffff;color:var(--text)}
select option{background:#ffffff;color:var(--text)}
.toast{background:#ffffff;border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,.1)}

/* HAMBURGER */
.hamburger{display:none;background:none;border:1px solid var(--border);border-radius:8px;padding:7px 10px;cursor:pointer;color:var(--text);font-size:16px;line-height:1;flex-shrink:0}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9;backdrop-filter:blur(2px)}

/* MOBILE */
@media(max-width:768px){
  .hamburger{display:flex;align-items:center;justify-content:center}
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .25s ease;z-index:20}
  .sidebar.mob-open{transform:translateX(0)}
  .sidebar-backdrop.mob-open{display:block}
  body{overflow:hidden}
  .content{padding:12px}
  .cards{grid-template-columns:1fr 1fr!important}
  .topbar{padding:8px 12px;gap:8px;flex-wrap:wrap}
  .topbar-title{font-size:14px}
  .ticker-bar{display:none}
  .grid-2,.grid-3{grid-template-columns:1fr!important}
  table{font-size:14px}
  .modal{max-width:98vw!important;margin:4px}
  .form-row{flex-direction:column!important}
  .btn-sm{font-size:14px;padding:5px 8px}
}
@media(max-width:480px){
  .cards{grid-template-columns:1fr!important}
  .topbar .btn-sm:not(.hamburger){display:none}
  #currency-toggle,#btn-atualizar{display:inline-flex!important}
}

/* RESPONSIVIDADE */
.content>*,.panel>*{max-width:100%}
.card,.kpi,.panel{min-width:0}
img,canvas,svg{max-width:100%}
p,.sub,.hint,.card-title,label,td,th{overflow-wrap:anywhere}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.tbl-wrap table th:first-child,.tbl-wrap table td:first-child{position:sticky;left:0;background:var(--card);z-index:1}
@media(max-width:480px){
  .kpi-row{grid-template-columns:1fr 1fr;gap:8px}
  .kpi{padding:10px 12px}
  .kpi-val{font-size:18px}
  .card{padding:12px}
}

@media(max-width:480px){
  .tax-row{grid-template-columns:1fr 1fr;gap:8px 10px}
  .tax-row.header{display:none}
  .tax-row>span:first-child{grid-column:1/-1;font-weight:600}
  .tax-row>span[data-l]::before{content:attr(data-l);display:block;font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
}

.social-head .card-title{flex:1 1 100%!important;min-width:0}
@media(max-width:768px){
  .social-top{grid-template-columns:1fr!important}
}
@media(min-width:769px) and (max-width:1024px){
  .social-top{grid-template-columns:1fr 1fr!important}
  .social-top>.card:first-child{grid-column:1/-1}
}
