/* ==========================================================================
   Minhas Finanças — tema escuro moderno (cartões com gradiente, tipografia
   Manrope/Inter, acento âmbar).
   ========================================================================== */

:root{
  --bg:#0B0B0D;
  --surface:rgba(24,24,28,.7);
  --surface-2:rgba(33,33,38,.7);
  --surface-glass:rgba(24,25,31,.58);
  --surface-glass-strong:rgba(20,21,26,.78);
  --line:rgba(255,255,255,.07);
  --line-strong:rgba(255,255,255,.13);
  --text:#F4F3F1;
  --text-muted:#9B9A9F;
  --text-faint:#6B6A70;

  --accent:#E2E8F0;
  --accent-2:#E2E8F0;
  --accent-tint:rgba(255,255,255,.15);
  --accent-grad:linear-gradient(135deg,rgba(255,255,255,0.25),rgba(255,255,255,0.05));

  --green:#80CBC4;
  --green-tint:rgba(128,203,196,.14);
  --red:#FFAB91;
  --red-tint:rgba(255,171,145,.14);
  --gold:#FFC24B;
  --gold-tint:rgba(255,194,75,.14);

  --radius:18px;
  --radius-sm:12px;
  --shadow:0 2px 4px rgba(0,0,0,.2), 0 12px 32px rgba(0,0,0,.35);

  --font-display:'Manrope', 'Inter', -apple-system, sans-serif;
  --font-body:'Inter', -apple-system, 'Segoe UI', Roboto, sans-serif;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:var(--font-body);
  background: linear-gradient(rgba(11, 11, 13, 0.4), rgba(11, 11, 13, 0.4)), url('plano_de_fundo.jpg') center/cover fixed;
  background-color:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--accent-tint); color:var(--accent)}
button, input, select{font-family:inherit}

/* Luzes ambiente ao fundo — dão profundidade ao vidro fosco dos cards */
.ambient-glow{
  position:fixed;
  border-radius:50%;
  filter:blur(120px);
  pointer-events:none;
  z-index:0;
  opacity:.35;
}
.glow-1{
  width:520px; height:520px; top:-140px; left:12%;
  background:radial-gradient(circle, rgba(255,255,255,.15) 0%, rgba(255,255,255,.05) 70%, transparent 100%);
}
.glow-2{
  width:560px; height:560px; bottom:-140px; right:-60px;
  background:radial-gradient(circle, rgba(52,211,153,.35) 0%, rgba(15,23,42,.08) 65%, transparent 100%);
}
.glow-3{
  width:460px; height:460px; bottom:8%; left:2%;
  background:radial-gradient(circle, rgba(255,122,51,.4) 0%, transparent 70%);
}

.app{display:flex; min-height:100vh; position:relative; z-index:1}

/* ---------------------------------------------------------------------- */
/* Sidebar — dock flutuante de vidro fosco                                 */
/* ---------------------------------------------------------------------- */
.sidebar{
  width:110px;
  flex:none;
  background:rgba(65, 70, 90, 0.5);
  backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(255,255,255,0.15);
  border-radius:26px;
  padding:20px 0 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  position:sticky;
  top:16px;
  height:calc(100vh - 32px);
  margin:16px 0 16px 16px;
  box-shadow:0 15px 35px rgba(0,0,0,.5);
  /* Em telas baixas (notebook, ex.: 1366x768) logo + 9 abas + rodapé não
     cabem na altura fixa acima — sem isto o excesso ficava "grudado" fora
     da tela, sem jeito de rolar até ele (position:sticky não dá scroll
     próprio; overflow:visible por padrão só deixa o conteúdo vazar). */
  overflow-y:auto;
  overflow-x:hidden;
  /* Rolagem funciona (mouse/trackpad/touch), mas sem barra visível — um
     traço de scrollbar cortando o painel de vidro fosco ficava feio. */
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.sidebar::-webkit-scrollbar{
  display:none;
}
/* Titulo Zuze (Logo) */
.brand{
  width:90px; height:90px;
  object-fit:contain;
  border-radius:12px;
  background:transparent;
  margin-bottom:22px;
  flex:none;
}
.brand-name{display:none}

.sidebar nav{display:flex; flex-direction:column; gap:6px; width:100%; align-items:center}
.nav-btn{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  width:84px;
  background:none;
  border:none;
  padding:10px 4px 8px;
  border-radius:14px;
  color:var(--text-faint);
  font-size:10px;
  font-weight:600;
  cursor:pointer;
  line-height:1.15;
}
.nav-btn svg{width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round}
.nav-idx{display:none}
.nav-btn:hover{background:var(--surface); color:var(--text-muted)}
.nav-btn.active{background:var(--accent-tint); color:var(--accent)}

.sidebar-foot{
  margin-top:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  width:100%;
  padding-top:14px;
}

.btn-primary{
  background:var(--accent-grad);
  color:#fff;
  border:none;
  padding:10px 14px;
  border-radius:12px;
  cursor:pointer;
  font-family:var(--font-body);
  font-size:13.5px;
  font-weight:700;
}
.btn-primary:hover{filter:brightness(1.08)}
.btn-primary:disabled{opacity:.6; cursor:default}
.btn-conectar{width:60px; height:44px; padding:0; display:flex; align-items:center; justify-content:center; border-radius:14px; font-size:20px; font-weight:400}

.btn-secondary{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--line-strong);
  padding:9px 13px;
  border-radius:12px;
  cursor:pointer;
  font-family:var(--font-body);
  font-size:13.5px;
  font-weight:600;
}
.btn-secondary:hover{border-color:var(--accent); color:var(--accent)}

.status-box{font-size:9.5px; color:var(--text-faint); text-align:center; line-height:1.5}
.status-box .ok{color:var(--green)}
.status-box .fail{color:var(--red)}

.import-box{display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap}
.input-file-visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---------------------------------------------------------------------- */
/* Conteúdo                                                                 */
/* ---------------------------------------------------------------------- */
.content{flex:1; min-width:0; padding:32px 40px 60px; max-width:1600px; margin:0 auto;}

/* ---------------------------------------------------------------------- */
/* Cabeçalho — busca global, notificações, perfil                          */
/* ---------------------------------------------------------------------- */
.header-bar{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px}
.search-wrapper{position:relative; flex:1; max-width:420px}
.search-wrapper input{
  width:100%;
  background:var(--surface-glass);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--line);
  border-radius:14px;
  padding:11px 14px 11px 40px;
  font-size:13px;
  color:var(--text);
  outline:none;
}
.search-wrapper input:focus{border-color:var(--accent)}
.search-wrapper input::placeholder{color:var(--text-faint)}
.search-icon{position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--text-faint); pointer-events:none}

.header-actions{display:flex; align-items:center; gap:12px; flex:none}
.icon-pill-btn{
  position:relative;
  width:40px; height:40px;
  border-radius:12px;
  background:var(--surface-glass);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color:var(--text-muted);
  cursor:pointer;
}
.icon-pill-btn:hover{color:var(--text); border-color:var(--line-strong)}
.notif-dot{position:absolute; top:8px; right:9px; width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent)}

.title-panel{
  display:flex; align-items:center; justify-content:center; gap:16px;
  width: 480px;
  background:rgba(65, 70, 90, 0.5);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(255,255,255,0.15);
  padding:8px 24px;
  border-radius:24px;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
}
.profile-avatar{
  width:32px; height:32px; border-radius:50%;
  background:var(--accent-grad); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:13px; flex:none;
}
.profile-info{display:flex; flex-direction:column; line-height:1.25}
.profile-name{font-size:12.5px; font-weight:700; color:var(--text)}
.profile-sub{font-size:10.5px; color:var(--text-faint)}

.page-head{margin-bottom:24px; display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px}
.eyebrow{display:none}
h1{
  font-family:var(--font-display);
  font-weight:800;
  font-size:26px;
  letter-spacing:-.02em;
  margin:0;
}
h3{
  margin:0 0 14px;
  font-family:var(--font-body);
  font-size:13px;
  color:var(--text-muted);
  font-weight:700;
}
.muted-inline{color:var(--text-faint); font-weight:500; font-size:12.5px}

.tab{display:none}
.tab.active{display:block; animation:fade-in .18s ease-out}
@keyframes fade-in{from{opacity:0; transform:translateY(3px)} to{opacity:1; transform:none}}

/* ---------------------------------------------------------------------- */
/* Chips de conta (filtro)                                                  */
/* ---------------------------------------------------------------------- */
.chips-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px}
.chip{
  display:flex; align-items:center; gap:8px;
  background:var(--surface);
  border:1px solid var(--line);
  padding:8px 14px 8px 8px;
  border-radius:999px;
  cursor:pointer;
  font-size:12.5px;
  color:var(--text-muted);
  font-weight:600;
}
.chip .dot{width:8px; height:8px; border-radius:50%; background:var(--text-faint); flex:none}
.chip .val{font-family:var(--font-display); color:var(--text); font-weight:700; font-variant-numeric:tabular-nums}
.chip:hover{border-color:var(--line-strong)}
.chip.active{background:var(--accent-tint); border-color:var(--accent); color:var(--accent)}
.chip.active .val{color:var(--accent)}
.chip.active .dot{background:var(--accent)}

/* ---------------------------------------------------------------------- */
/* Cartões / KPIs                                                          */
/* ---------------------------------------------------------------------- */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-bottom:24px}
.card{
  background:var(--surface-glass);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px 22px;
  box-shadow:var(--shadow);
}
.card .label{
  font-size:12.5px;
  color:var(--text-muted);
  font-weight:600;
  margin-bottom:10px;
}
.card .value{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
}
.card .value.pos{color:var(--green)}
.card .value.neg{color:var(--red)}
.card .delta{display:inline-flex; align-items:center; gap:3px; font-size:11.5px; font-weight:700; margin-left:8px; padding:2px 7px; border-radius:999px}
.card .delta.up{color:var(--red); background:var(--red-tint)}
.card .delta.down{color:var(--green); background:var(--green-tint)}

.charts-row{display:grid; grid-template-columns:1.1fr 1fr; gap:16px; margin-bottom:24px}
.chart-card canvas{max-height:270px}

/* ---------------------------------------------------------------------- */
/* Cartões de crédito — widget visual                                      */
/* ---------------------------------------------------------------------- */
.cartoes-row{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; margin-bottom:24px}
.cartao-visual{
  position:relative;
  border-radius:20px;
  padding:20px 22px;
  color:#fff;
  cursor:pointer;
  min-height:150px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .15s ease;
}
.cartao-visual::after{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(circle at 85% -10%, rgba(255,255,255,.35), transparent 55%);
  pointer-events:none;
}
.cartao-topo{display:flex; justify-content:space-between; align-items:flex-start; font-size:11.5px; opacity:.9}
.cartao-nome{font-weight:700; font-size:13.5px}
.cartao-bandeira{font-family:var(--font-display); font-weight:800; letter-spacing:.03em; font-size:11px; opacity:.85}
.cartao-numero{font-family:var(--font-display); letter-spacing:.12em; font-size:14px; opacity:.92; margin:10px 0}
.cartao-base{display:flex; justify-content:space-between; align-items:flex-end}
.cartao-valor{font-family:var(--font-display); font-size:19px; font-weight:800}
.cartao-venc{font-size:11px; opacity:.85; text-align:right}

/* Pilha de cartões (widget da Visão Geral) */
.stack-wrap{position:relative; height:248px; margin-bottom:6px}
.stack-wrap .cartao-visual{position:absolute; left:0; width:100%; margin:0}
.stack-wrap .cartao-visual.back-2{top:0; transform:scale(.92); transform-origin:top center; opacity:.65; filter:saturate(.65); z-index:1}
.stack-wrap .cartao-visual.back-1{top:24px; transform:scale(.96); transform-origin:top center; opacity:.85; z-index:2}
.stack-wrap .cartao-visual.front{top:48px; z-index:3}
.stack-wrap .cartao-visual.back-1:hover, .stack-wrap .cartao-visual.back-2:hover{opacity:1}
.stack-mais{display:flex; justify-content:flex-end; margin:0 0 24px}
.stack-mais a{font-size:12.5px; color:var(--accent); font-weight:700; text-decoration:none; cursor:pointer}
.stack-mais a:hover{text-decoration:underline}

/* ---------------------------------------------------------------------- */
/* Filtros / formulários                                                   */
/* ---------------------------------------------------------------------- */
.filtros{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px}
.filtros input, .filtros select{
  padding:9px 12px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  font-size:13px;
  background:var(--surface);
  color:var(--text);
}
.filtros input:focus, .filtros select:focus,
.form-inline input:focus, .form-inline select:focus{
  outline:2px solid var(--accent-tint);
  outline-offset:1px;
  border-color:var(--accent);
}

.form-inline{
  display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin-bottom:16px;
  background:var(--surface-glass); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--line); padding:16px; border-radius:var(--radius);
}
.form-inline input[type=text], .form-inline input[type=number], .form-inline input[type=date], .form-inline select{
  padding:9px 12px; border:1px solid var(--line-strong); border-radius:12px; font-size:13px; background:var(--surface-2); color:var(--text);
}
.form-inline .checkbox{font-size:13px; color:var(--text-muted); display:flex; align-items:center; gap:5px}

/* ---------------------------------------------------------------------- */
/* Tabelas                                                                  */
/* ---------------------------------------------------------------------- */
.table-wrap{ overflow-x: auto;
  background:var(--surface-glass);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:auto;
  box-shadow:var(--shadow);
}
table{width:100%; border-collapse:collapse; font-size:13.5px}
th, td{padding:12px 16px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap}
th{
  color:var(--text-faint);
  font-weight:700;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  background:var(--surface-2);
  position:sticky; top:0;
}
tbody tr{cursor:default}
tbody tr.clicavel{cursor:pointer}
tbody tr.clicavel:hover{background:var(--surface-2)}
tbody tr:last-child td{border-bottom:none}
td.num, th.num{text-align:right; font-variant-numeric:tabular-nums; font-family:var(--font-display); font-weight:700}
.amount-pos{color:var(--green)}
.amount-neg{color:var(--red)}
.col-desc{max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.col-conta{max-width:170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}

.badge{
  padding:4px 10px; border-radius:999px; font-size:10.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em;
}
.badge-pendente{background:var(--gold-tint); color:var(--gold)}
.badge-atrasado{background:var(--red-tint); color:var(--red)}
.badge-pago{background:var(--green-tint); color:var(--green)}

.row-actions button{
  border:none; background:none; cursor:pointer; font-family:var(--font-body);
  font-size:12.5px; color:var(--accent); font-weight:700; margin-right:10px;
}
.row-actions button.danger{color:var(--red)}

.hint{color:var(--text-muted); font-size:13px; margin:-10px 0 16px}
.empty-state{padding:34px; text-align:center; color:var(--text-faint); font-size:13.5px}

/* ---------------------------------------------------------------------- */
/* Modal de detalhes                                                        */
/* ---------------------------------------------------------------------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.6);
  display:flex; align-items:flex-start; justify-content:center;
  padding:6vh 20px; overflow-y:auto; z-index:100;
}
.modal-overlay[hidden]{display:none}
.modal{
  background:var(--surface-glass-strong);
  backdrop-filter:blur(28px);
  -webkit-backdrop-filter:blur(28px);
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
  width:100%; max-width:640px;
  padding:26px 28px;
  box-shadow:var(--shadow);
}
.modal-head{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:18px}
.modal-head h2{font-family:var(--font-display); font-size:19px; font-weight:800; margin:0}
.modal-head .sub{color:var(--text-muted); font-size:12.5px; margin-top:4px}
.modal-close{background:none; border:none; color:var(--text-faint); cursor:pointer; padding:4px}
.modal-close svg{width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8}
.modal-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:18px}
.modal-field .label{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-faint); font-weight:700; margin-bottom:4px}
.modal-field .val{font-family:var(--font-display); font-weight:700; font-size:15px}
.modal-section-title{font-size:12px; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin:18px 0 10px}
.linha-digitavel{
  font-family:var(--font-display); font-size:12.5px; letter-spacing:.03em;
  background:var(--surface-2); border:1px solid var(--line); border-radius:10px;
  padding:10px 12px; word-break:break-all; display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.linha-digitavel button{flex:none}
.acordeao-item{border-bottom:1px solid var(--line)}
.acordeao-item:last-child{border-bottom:none}
.acordeao-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 2px; cursor:pointer; font-size:13.5px;
}
.acordeao-head .val{font-family:var(--font-display); font-weight:700}
.acordeao-body{display:none; padding:0 2px 14px}
.acordeao-body.aberto{display:block}
.acordeao-tx{display:flex; justify-content:space-between; padding:6px 0; font-size:12.5px; color:var(--text-muted); border-top:1px dashed var(--line)}

@media (max-width:900px){
  .app{flex-direction:column}
  .sidebar{width:auto; height:auto; position:relative; top:0; flex-direction:row; margin:12px; padding:14px 12px; justify-content:space-between}
  .brand{margin-bottom:0}
  .sidebar nav{flex-direction:row; flex-wrap:wrap; width:auto}
  .nav-btn{width:56px}
  .sidebar-foot{flex-direction:row; width:auto; padding-top:0}
  .charts-row{grid-template-columns:1fr}
  .modal-grid{grid-template-columns:1fr}
  .header-bar{flex-wrap:wrap}
  .content{padding:20px}
}

/* ---------------------------------------------------------------------- */
/* Celular (~480px e abaixo, com folga até 600px): sidebar vira barra      */
/* inferior fixa, tabelas viram listas de cards, alvos de toque maiores.   */
/* ---------------------------------------------------------------------- */
@media (max-width:600px){
  /* Sidebar -> bottom tab bar fixa; navegação rola na horizontal em vez de
     quebrar em várias linhas e empurrar o conteúdo pra baixo da dobra. */
  .sidebar{
    position:fixed; left:0; right:0; bottom:0; top:auto; z-index:50;
    width:100%; margin:0; border-radius:0;
    border:none; border-top:1px solid rgba(255,255,255,0.15);
    padding:6px 8px; padding-bottom:calc(6px + env(safe-area-inset-bottom));
    justify-content:flex-start;
  }
  .brand{display:none}
  .sidebar nav{
    flex:1; flex-wrap:nowrap; flex-direction:row;
    overflow-x:auto; justify-content:flex-start;
    -webkit-overflow-scrolling:touch;
  }
  .nav-btn{width:60px; min-width:60px; flex:none; min-height:48px; justify-content:center}
  .sidebar-foot{
    position:fixed; right:14px; bottom:calc(64px + env(safe-area-inset-bottom));
    z-index:51; width:auto; margin:0; padding:0;
  }
  .status-box{display:none}
  .btn-conectar{width:52px; height:52px; box-shadow:var(--shadow)}
  .content{padding:14px 14px calc(84px + env(safe-area-inset-bottom))}

  /* Cabeçalho: empilha busca e ações, título deixa de ter largura fixa */
  .header-bar{flex-direction:column; align-items:stretch; gap:10px}
  .search-wrapper{max-width:none}
  .title-panel{width:auto; flex:1; min-width:0; padding:6px 14px}
  .title-panel img{height:32px !important}
  .header-actions{justify-content:space-between}

  /* Alvos de toque — botões principais abaixo de 44px viram difíceis de
     acertar com o dedo (Apple HIG / Material Design). */
  .btn-primary, .btn-secondary{padding:12px 16px; min-height:44px}
  .icon-pill-btn{width:44px; height:44px}

  /* Tabelas -> lista de cards empilhados (rolagem horizontal de tabela é
     ruim em financeiro; ver auditoria.md, seção 5.1). Cada <td> vira uma
     linha "rótulo: valor" usando o data-label definido em static/app.js. */
  .table-wrap{overflow-x:visible; background:none; border:none; box-shadow:none; backdrop-filter:none}
  .table-wrap table, .table-wrap tbody, .table-wrap tr, .table-wrap td{display:block; width:100%}
  .table-wrap thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0)}
  .table-wrap tr{
    background:var(--surface-glass); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    border:1px solid var(--line); border-radius:var(--radius-sm);
    padding:10px 14px; margin-bottom:10px; box-shadow:var(--shadow);
  }
  .table-wrap tr:last-child{margin-bottom:0}
  .table-wrap td{
    border-bottom:1px dashed var(--line);
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:9px 0; white-space:normal; text-align:right;
  }
  .table-wrap tr td:last-child{border-bottom:none}
  .table-wrap td::before{
    content:attr(data-label);
    font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
    color:var(--text-faint); text-align:left; flex:none;
  }
  .table-wrap td.col-desc, .table-wrap td.col-conta{max-width:none; overflow:visible; white-space:normal}
  .table-wrap td.row-actions{justify-content:flex-end}
  .table-wrap td.row-actions::before{content:none}
  .table-wrap .empty-state{display:block; padding:24px 4px; text-align:center}
}

/* Este projeto assume tema escuro fixo (identidade visual do produto),
   mas mantém contraste suficiente caso o usuário force modo claro do SO. */
/* LIGHT THEME */
[data-theme="light"] {
  --bg: #F4F3F1;
  --surface: #FFFFFF;
  --surface-2: #F8F9FA;
  --surface-glass: rgba(255, 255, 255, 0.85);
  --surface-glass-strong: rgba(255, 255, 255, 0.95);
  --line: rgba(0, 0, 0, 0.1);
  --line-strong: rgba(0, 0, 0, 0.15);
  --text: #0B0B0D;
  --text-muted: #6B6A70;
  --text-faint: #9B9A9F;
  --accent: #2c2c2c;
  --accent-2: #2c2c2c;
  --accent-tint: rgba(0, 0, 0, 0.05);
  --accent-grad: linear-gradient(135deg, rgba(0,0,0,0.08), rgba(0,0,0,0.02));
}

/* ANIMATIONS */
@keyframes celebrate {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); box-shadow: 0 0 15px rgba(128,203,196,0.3); }
  100% { transform: scale(1); }
}
.celebration-anim {
  animation: celebrate 2s ease-in-out infinite alternate;
  border-color: var(--green) !important;
}

/* IMPROVED HEADER LAYOUT */
.header-bar {
  border-bottom: 1px solid var(--line);
  padding-bottom: 16px;
  margin-bottom: 24px;
}
