:root{
  --bg:#070A12;
  --card:rgba(255,255,255,.06);
  --text:#EAF0FF;
  --muted:rgba(234,240,255,.68);
  --line:rgba(255,255,255,.12);
  --a:#7C5CFF;
  --b:#00D4FF;
  --c:#33FF8A;
  --danger:#FF4D6D;
  --radius:18px;
  --shadow2: 0 10px 25px rgba(0,0,0,.45);
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  --topbar-h: 72px;
  --bottombar-h: 72px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);}

.bg{position:fixed;inset:0;pointer-events:none;opacity:.95;
  background:
    radial-gradient(1200px 700px at 18% 16%, rgba(124,92,255,.28), transparent 60%),
    radial-gradient(1000px 700px at 82% 18%, rgba(0,212,255,.18), transparent 60%),
    radial-gradient(1100px 800px at 40% 90%, rgba(51,255,138,.10), transparent 55%),
    radial-gradient(900px 650px at 88% 88%, rgba(255,77,109,.12), transparent 55%);
}

.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  height:calc(var(--topbar-h) + env(safe-area-inset-top));
  padding:calc(12px + env(safe-area-inset-top)) 18px 12px;
  border-bottom:1px solid var(--line);
  background:rgba(7,10,18,.78);backdrop-filter: blur(14px);
}
.burger{display:none;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);
  color:var(--text);border-radius:14px;padding:10px 12px;cursor:pointer}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--a),var(--b));box-shadow:0 10px 30px rgba(124,92,255,.25);
  font-weight:800;color:#0b1022;
}
.brand-title{font-weight:800;letter-spacing:.2px}
.brand-sub{font-size:12px;color:var(--muted)}
.topbar-right{display:flex;gap:10px;align-items:center}
.userchip{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);
  border-radius:999px;background:rgba(255,255,255,.04)
}
.dot{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 16px rgba(51,255,138,.55)}

.wrap{display:grid;grid-template-columns: 260px 1fr;gap:16px;max-width:1250px;margin:0 auto;
  padding:18px;
  padding-top: calc(var(--topbar-h) + env(safe-area-inset-top) + 14px);
}

/* Overlay para o drawer do mobile */
.overlay{display:none;}
.sidebar{position:sticky;top:calc(var(--topbar-h) + env(safe-area-inset-top) + 14px);
  height:calc(100vh - (var(--topbar-h) + env(safe-area-inset-top) + 28px));
  border-radius:var(--radius);
  border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow2);padding:12px;display:flex;flex-direction:column;gap:6px}

/* Bottom bar (estilo app) */
.bottombar{display:none;}
.bb-item{border:0;background:transparent;color:var(--muted);text-decoration:none;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-width:60px;padding:8px 10px;border-radius:16px;transition:.15s ease}
.bb-item span{font-size:18px;line-height:18px}
.bb-item em{font-size:11px;font-style:normal;letter-spacing:.2px}
.bb-item:hover{background:rgba(255,255,255,.06);color:var(--text)}
.bb-item.is-active{background:linear-gradient(135deg, rgba(124,92,255,.22), rgba(0,212,255,.10));
  border:1px solid rgba(124,92,255,.35);color:var(--text)}
.bb-btn{font-family:inherit}

/* Desktop-only util */
.desktop-only{display:inline-flex}
.nav{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--text);
  padding:10px 12px;border-radius:14px;border:1px solid transparent;transition:.15s ease}
.nav:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.10)}
.nav.active{background:linear-gradient(135deg, rgba(124,92,255,.22), rgba(0,212,255,.10));
  border-color:rgba(124,92,255,.35);box-shadow:0 10px 35px rgba(124,92,255,.14)}
.nav-ico{width:22px;text-align:center}
.sidebar-footer{margin-top:auto;padding:10px;border-top:1px dashed rgba(255,255,255,.12)}

.content{min-height:70vh}
.content-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px}
.content-head h1{margin:0;font-size:22px}
.muted{color:var(--muted);font-size:13px}

.card{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow2)}
.card .card-h{padding:14px 14px 10px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card .card-b{padding:14px}

.grid{display:grid;gap:14px}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}

.stat{padding:14px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
  box-shadow:0 18px 40px rgba(0,0,0,.35)}
.stat .k{font-size:12px;color:var(--muted)}
.stat .v{font-size:20px;font-weight:850;margin-top:4px}
.stat .t{font-size:12px;color:var(--muted);margin-top:6px}

/* ✅ CORRIGIDO: evita quebrar badges feios */
.badge{
  display:inline-flex;
  gap:6px;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  font-size:12px;
  color:var(--muted);
  white-space: nowrap;
  max-width: 100%;
}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;
  padding:10px 12px;border-radius:14px;font-weight:700;color:#0b1022;text-decoration:none;
  background:linear-gradient(135deg,var(--a),var(--b));box-shadow:0 14px 40px rgba(124,92,255,.18)}
.btn:hover{filter:brightness(1.05)}
.btn.ghost{background:rgba(255,255,255,.06);color:var(--text);border:1px solid rgba(255,255,255,.14);box-shadow:none}
.btn.danger{background:linear-gradient(135deg,var(--danger),#FF7A00)}
.btn.small{padding:8px 10px;border-radius:12px;font-size:13px}

/* ===== Botão ícone (Editar etc) ===== */
.icon-btn{
  width:42px;
  height:42px;
  padding:0;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
}

.alert{padding:12px 14px;border-radius:14px;margin:10px 0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06)}
.alert.ok{border-color:rgba(51,255,138,.28)}
.alert.err{border-color:rgba(255,77,109,.28)}

.table-wrap{overflow:auto;border-radius:16px}
.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:16px;min-width:780px}
.table th,.table td{padding:10px 10px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;font-size:13px;vertical-align:top}
.table th{font-size:12px;color:rgba(234,240,255,.75);background:rgba(255,255,255,.05)}
.table tr:last-child td{border-bottom:none}
.table td.right{text-align:right}

.form{display:grid;gap:10px}
.field{display:grid;gap:6px}
label{font-size:12px;color:var(--muted)}
input,select,textarea{width:100%;padding:10px 12px;border-radius:14px;
  border:1px solid rgba(255,255,255,.14);background:rgba(10,14,28,.55);color:var(--text);
  outline:none}
textarea{min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(0,212,255,.45);box-shadow:0 0 0 4px rgba(0,212,255,.08)}

.progress{height:10px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid rgba(255,255,255,.10)}
.progress > div{height:100%;background:linear-gradient(90deg,var(--c),var(--b));width:0%}

.kpi-neg{color:#FF8FA3}
.kpi-pos{color:#9CFFCF}

.login-wrap{max-width:430px;margin:7vh auto;padding:18px}

@media (max-width: 980px){
  .burger{display:inline-flex}
  /* estilo app: conteúdo com espaço para topbar + bottom bar */
  .wrap{
    grid-template-columns: 1fr;
    padding:14px;
    padding-top: calc(var(--topbar-h) + env(safe-area-inset-top) + 10px);
    padding-bottom: calc(var(--bottombar-h) + 14px);
  }

  /* some o logout do topo no mobile (fica no menu) */
  .desktop-only{display:none !important}

  /* overlay */
  .overlay{display:block;position:fixed;inset:0;z-index:40;
    background:rgba(0,0,0,.55);backdrop-filter: blur(2px);
    opacity:0;pointer-events:none;transition:.18s ease;
  }

  /* drawer lateral */
  .sidebar{
    position:fixed;
    z-index:45;
    top: calc(var(--topbar-h) + env(safe-area-inset-top) + 10px);
    bottom: calc(var(--bottombar-h) + 10px);
    left: 10px;
    width: 86vw;
    max-width: 340px;
    height: auto;
    overflow:auto;
    transform: translateX(-110%);
    opacity:1;
    pointer-events:auto;
    transition:.18s ease;
  }
  body.nav-open .sidebar{transform: translateX(0)}
  body.nav-open .overlay{opacity:1;pointer-events:auto}

  /* bottom bar visível */
  .bottombar{
    display:flex;
    position:fixed;
    left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));
    height:var(--bottombar-h);
    gap:6px;
    padding:8px 8px calc(8px + env(safe-area-inset-bottom));
    border-radius:22px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(7,10,18,.78);
    backdrop-filter: blur(14px);
    z-index:60;
    justify-content:space-between;
  }
  .bottombar .bb-item{flex:1}

  /* foco no conteúdo */
  body.nav-open .content{filter: blur(2px); opacity:.92}
  .table{min-width:720px}

  /* ✅ Grids quebram melhor no tablet/celular */
  .grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .grid.cols-3{grid-template-columns:repeat(2,1fr)}
  .grid.cols-2{grid-template-columns:1fr}

  /* ✅ Cabeçalho do conteúdo não estoura */
  .content-head{flex-wrap:wrap;align-items:flex-start}
}

/* MOBILE menor */
@media (max-width: 560px){
  :root{ --topbar-h: 66px; --bottombar-h: 68px; }
  .topbar{padding:10px 12px}
  .brand-sub{display:none}
  .brand-title{font-size:16px}

  /* Topbar mais “app-like” no celular */
  .topbar-right{gap:8px}
  .userchip{max-width:52vw;padding:7px 9px;font-size:13px}
  .userchip span:last-child{display:inline-block;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* menu mais compacto */
  .logo{width:34px;height:34px;border-radius:14px}

  /* ✅ 4 colunas vira 1 no celular pequeno */
  .grid.cols-4{grid-template-columns:1fr}
  .grid.cols-3{grid-template-columns:1fr}
}

/* MOBILE: espaçamentos e cards mais “tight” */
@media (max-width: 560px){
  .wrap{
    padding-left:10px;
    padding-right:10px;
    padding-top: calc(var(--topbar-h) + env(safe-area-inset-top) + 10px);
    padding-bottom: calc(var(--bottombar-h) + 14px);
    gap:12px;
  }
  .content-head{margin-bottom:10px}
  .content-head h1{font-size:20px}
  .muted{font-size:12px}

  .card .card-h{padding:12px 12px 8px}
  .card .card-b{padding:12px}
  .grid{gap:12px}

  .stat{padding:12px}
  .stat .v{font-size:18px}
  .stat .t{margin-top:4px}

  /* Tabelas: mantém scroll e evita “sensação de quebrado” */
  .table-wrap{border-radius:14px}
  .table{min-width:680px}
}

/* Evita overflow horizontal em blocos com estilos inline */
.card, .stat, .content, .content-head{min-width:0}

/* Form inline do filtro do dashboard: encaixa melhor no celular */
@media (max-width: 560px){
  .card .card-h form{width:100%}
  .card .card-h form .field{min-width:0 !important;flex:1 1 140px}
  .card .card-h form input,
  .card .card-h form select{min-width:0}
}

/* ===== Ajuste fino: Contas/Cartões ===== */
.accounts-layout{
  grid-template-columns: 320px 1fr;
  align-items: start;
}

.accounts-form-grid{
  grid-template-columns: 1fr;
}

@media (min-width: 1100px){
  .accounts-form-grid{
    grid-template-columns: 1fr 1fr;
  }
}

/* ===== Ajuste tabela Contas/Cartões (mais encaixada) ===== */
.accounts-layout .table{
  min-width: 0 !important;
  width: 100%;
}

.accounts-layout .table th,
.accounts-layout .table td{
  padding: 12px 12px;
  white-space: nowrap;
}

.accounts-layout .table td:first-child{
  white-space: normal;
  max-width: 260px;
}

.accounts-layout .table th:nth-child(4),
.accounts-layout .table td:nth-child(4){
  width: 180px;
}

.accounts-layout .table th:last-child,
.accounts-layout .table td:last-child{
  width: 110px;
}

@media (max-width: 980px){
  .accounts-layout .table-wrap{
    overflow-x: auto;
  }
}
/* ===== Meu Perfil (1 card premium) ===== */
.profile-page{display:grid;gap:14px;}
.profile-card{overflow:hidden}

/* Cabeçalho de seção */
.sec-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.sec-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* Divisor mais bonito */
.sec-divider{
  height:1px;
  background:linear-gradient(90deg, rgba(124,92,255,.25), rgba(0,212,255,.18), rgba(255,255,255,.08));
  margin:18px 0;
}

/* Grid do perfil */
.profile-grid{
  display:grid;
  gap:12px;
  grid-template-columns: 1fr 1fr; /* 2 colunas */
}
.profile-grid-2{
  display:grid;
  gap:12px;
  grid-template-columns: 1fr 1fr;
}

/* Botão não ocupar 100% no desktop */
.profile-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:6px;
}
.profile-btn{
  min-width: 220px;
}

/* Mobile: tudo em 1 coluna e botão 100% */
@media (max-width: 980px){
  .profile-grid,
  .profile-grid-2{grid-template-columns:1fr;}
  .profile-actions{justify-content:stretch;}
  .profile-btn{width:100%;min-width:0;}
}
/* ===== Inputs Premium com ícones ===== */
.i-field{
  position:relative;
}

.i-field .i-ico{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  font-size:16px;
  opacity:.85;
  pointer-events:none;
}

.i-field input,
.i-field select{
  padding-left:42px;  /* espaço pro ícone */
  height:44px;
}

/* textarea não precisa ícone */
.i-field textarea{
  padding-left:12px;
}

/* inputs mais “macios” */
input,select,textarea{
  transition:.15s ease;
}
input:hover,select:hover,textarea:hover{
  border-color:rgba(255,255,255,.22);
}

/* ===== Botão mais “premium” no perfil ===== */
.profile-btn{
  height:44px;
  border-radius:16px;
}

/* ===== Ajuste: card do perfil mais “limpo” ===== */
.profile-card .card-b{
  padding:16px;
}
/* ===== Alertas Premium (flash_set) ===== */
.alert{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.alert:before{
  content:"ℹ️";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:10px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  margin-top:1px;
}
.alert.ok:before{content:"✅"}
.alert.err:before{content:"⚠️"}

/* ===== Inputs Premium com ícones ===== */
.i-field{position:relative;}
.i-field .i-ico{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  font-size:16px;
  opacity:.85;
  pointer-events:none;
}
.i-field input,
.i-field select{
  padding-left:42px;
  height:44px;
}

/* Hover suave */
input,select,textarea{transition:.15s ease;}
input:hover,select:hover,textarea:hover{border-color:rgba(255,255,255,.22);}

/* ===== Meu Perfil (1 card premium) ===== */
.profile-page{display:grid;gap:14px;}
.profile-card{overflow:hidden}
.sec-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.sec-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.sec-divider{
  height:1px;
  background:linear-gradient(90deg, rgba(124,92,255,.25), rgba(0,212,255,.18), rgba(255,255,255,.08));
  margin:18px 0;
}

/* Grid */
.profile-grid{
  display:grid;
  gap:12px;
  grid-template-columns: 1fr 1fr;
}
.profile-grid-2{
  display:grid;
  gap:12px;
  grid-template-columns: 1fr 1fr;
}

/* Ações e botões */
.profile-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:8px;
  gap:10px;
  flex-wrap:wrap;
}
.profile-btn{
  height:44px;
  border-radius:16px;
  padding:10px 14px;
  min-width: 180px;
}

/* Botão "senha" com destaque */
.btn.secure{
  background:linear-gradient(135deg, rgba(51,255,138,.95), rgba(0,212,255,.95));
  color:#061016;
}

/* Mobile */
@media (max-width: 980px){
  .profile-grid,
  .profile-grid-2{grid-template-columns:1fr;}
  .profile-actions{justify-content:stretch;}
  .profile-btn{width:100%;min-width:0;}
}



/* ============================
   LOGO FIXA (Topo/Login/Favicon)
   ============================ */
.logo-img{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  object-fit: contain; /* mantém proporção */
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  padding: 6px;
}

.logo-login{
  width: 90px;
  height: 90px;
  border-radius: 24px;
  object-fit: contain;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  padding: 10px;
}

@media (max-width: 640px){
  .logo-img{
    width: 38px;
    height: 38px;
    border-radius: 12px;
    padding: 5px;
  }
}
.table-group td{
  background:rgba(255,255,255,.04);
  font-size:13px;
  font-weight:800;
  padding:10px;
  border-top:1px solid rgba(255,255,255,.08);
}
<style>
/* ...seu css atual... */

.group-row td{
  background: rgba(255,255,255,.04);
  border-top: 1px solid rgba(255,255,255,.10);
  border-bottom: 1px solid rgba(255,255,255,.10);
  font-weight: 900;
  letter-spacing: .2px;
}
.group-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.10);
}
.group-dot{
  width:9px;height:9px;border-radius:99px;
  background: rgba(255,255,255,.35);
}
</style>
