/* Portal do Investidor — VaideVan */

/* ---- ROOT ---- */
#portalRoot{display:flex;justify-content:center;min-height:calc(100vh - 72px);background:var(--k);padding-top:80px;flex-direction:column;align-items:center}

/* ---- SPINNER ---- */
.portal-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;width:100%}
.spinner{width:42px;height:42px;border:3px solid rgba(245,230,66,.15);border-top-color:#F5E642;border-radius:50%;animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- LAYOUT ---- */
.portal-wrap{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 72px);width:100%;padding:24px}

/* ---- LOGIN BOX ---- */
.login-box{background:#111;border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:40px 36px;width:100%;max-width:400px}
.login-logo{margin-bottom:20px}
.login-logo .logo-img{width:56px;height:56px;object-fit:contain}
.login-box h1{font-size:1.5rem;font-weight:800;margin-bottom:6px;letter-spacing:-.5px}
.login-box .sub{color:rgba(255,255,255,.48);font-size:.9rem;margin-bottom:24px}

/* ---- DASHBOARD HEADER ---- */
.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.dash-header h2{font-size:1.5rem;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}
.dash-header p{font-size:.82rem;color:rgba(255,255,255,.38)}

/* ---- KPI GRID ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:20px}
.kpi-card{background:#111;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:20px 22px}
.kpi-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:rgba(255,255,255,.4);margin-bottom:10px}
.kpi-val{font-size:1.55rem;font-weight:800;letter-spacing:-.5px;line-height:1.1;margin-bottom:6px}
.kpi-sub{font-size:.75rem;color:rgba(255,255,255,.34)}
.kv-green{color:#4ade80}
.kv-red{color:#f87171}
.kv-yellow{color:#F5E642}
.kv-white{color:#fff}

/* ---- PANEL ---- */
.panel{background:#111;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:22px;margin-bottom:18px}
.panel h3{font-size:1rem;font-weight:700;margin-bottom:18px;display:flex;align-items:center;gap:8px}
.panel h3 span{font-size:.75rem;font-weight:400;color:rgba(255,255,255,.35);margin-left:auto}

/* ---- CHART ---- */
.chart-legend{display:flex;gap:16px;margin-bottom:12px}
.chart-legend span{font-size:.72rem;font-weight:700;display:flex;align-items:center;gap:5px}
.chart-legend span::before{content:'';width:10px;height:10px;border-radius:2px;display:inline-block}
.leg-inc::before{background:#4ade80}
.leg-exp::before{background:#f87171}
.chart-wrap{overflow-x:auto}
.chart-bars{display:flex;align-items:flex-end;gap:6px;height:130px;padding-bottom:4px;min-width:420px}
.chart-bar-g{display:flex;align-items:flex-end;gap:2px;flex:1;cursor:default}
.bar-inc{background:#4ade80;border-radius:3px 3px 0 0;min-height:3px;transition:opacity .2s}
.bar-exp{background:#f87171;border-radius:3px 3px 0 0;min-height:3px;transition:opacity .2s}
.chart-bar-g:hover .bar-inc,.chart-bar-g:hover .bar-exp{opacity:.75}
.chart-labels{display:flex;gap:6px;min-width:420px}
.chart-lbl{flex:1;text-align:center;font-size:.65rem;color:rgba(255,255,255,.35);padding-top:4px}

/* ---- OPERACOES ---- */
.op-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.op-item:last-child{border:none;padding-bottom:0}
.op-name{font-size:.9rem;font-weight:700;margin-bottom:3px}
.op-loc{font-size:.75rem;color:rgba(255,255,255,.38)}

/* ---- VEICULOS ---- */
.veh-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.veh-item:last-child{border:none;padding-bottom:0}
.veh-plate{font-size:.78rem;font-weight:700;background:rgba(245,230,66,.1);color:#F5E642;border:1px solid rgba(245,230,66,.2);border-radius:5px;padding:4px 8px;min-width:72px;text-align:center;letter-spacing:1px;flex-shrink:0}
.veh-info{flex:1}
.veh-model{font-size:.88rem;font-weight:600;margin-bottom:2px}
.veh-year{font-size:.73rem;color:rgba(255,255,255,.38)}

/* ---- BADGES ---- */
.badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:100px;flex-shrink:0}
.badge-ok{background:rgba(74,222,128,.12);color:#4ade80;border:1px solid rgba(74,222,128,.22)}
.badge-pause{background:rgba(251,191,36,.12);color:#fbbf24;border:1px solid rgba(251,191,36,.22)}
.badge-off{background:rgba(248,113,113,.12);color:#f87171;border:1px solid rgba(248,113,113,.22)}

/* ---- TABELA FINANCEIRA ---- */
.data-table{width:100%;border-collapse:collapse;font-size:.84rem}
.data-table th{text-align:left;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:rgba(255,255,255,.38);padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.data-table td{padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.05);color:rgba(255,255,255,.8)}
.data-table tr:last-child td{border:none}
.data-table tr:hover td{background:rgba(255,255,255,.02)}
.td-date{color:rgba(255,255,255,.44);font-size:.78rem;white-space:nowrap}
.td-income{color:#4ade80;font-weight:700}
.td-expense{color:#f87171;font-weight:700}

/* ---- PAGINACAO ---- */
.pagination{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding-top:16px;margin-top:8px;border-top:1px solid rgba(255,255,255,.07)}
.pag-btn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);font-size:.78rem;padding:5px 11px;border-radius:5px;cursor:pointer;transition:all .2s}
.pag-btn:hover,.pag-btn.active{background:#F5E642;border-color:#F5E642;color:#0A0A0A;font-weight:700}

/* ---- FORM ELEMENTS (complementa critical.css) ---- */
.form-g{margin-bottom:16px}
.form-g label{display:block;font-size:.73rem;font-weight:700;color:rgba(255,255,255,.5);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.form-g input{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:12px 14px;color:#fff;font-size:.95rem;outline:none;transition:border-color .25s}
.form-g input:focus{border-color:#F5E642}
.btn-full{width:100%;justify-content:center;margin-top:4px}
.form-fb{display:none;padding:11px 14px;border-radius:7px;margin-bottom:14px;font-size:.85rem}
.form-fb.ok{display:block;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);color:#4ade80}
.form-fb.err{display:block;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);color:#f87171}

/* ---- BOTOES (complementa critical.css) ---- */
.btn-y{display:inline-flex;align-items:center;gap:8px;background:#F5E642;color:#0A0A0A;font-weight:800;font-size:.92rem;padding:13px 24px;border-radius:7px;border:none;cursor:pointer;transition:background .25s,transform .25s}
.btn-y:hover{background:#e0cf2a;transform:translateY(-1px)}
.btn-y:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn-out{display:inline-flex;align-items:center;gap:8px;background:transparent;color:rgba(255,255,255,.7);font-size:.85rem;font-weight:600;padding:9px 16px;border-radius:7px;border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:all .25s}
.btn-out:hover{border-color:#F5E642;color:#F5E642}

/* ---- RESPONSIVO ---- */
@media(max-width:768px){
  .login-box{padding:28px 20px}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .dash-header{flex-direction:column;align-items:flex-start}
}
@media(max-width:480px){
  .kpi-grid{grid-template-columns:1fr}
  .login-box{padding:24px 16px}
  .panel{padding:16px}
}
