/* Análise de Gastos — Estilos */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#080e0b;--bg2:#0d1710;--bg3:#111d15;--bg4:#162419;
  --border:rgba(255,255,255,0.07);--border2:rgba(255,255,255,0.12);
  --text:#f0f0f0;--muted:#6b6b7a;--muted2:#9090a0;
  --accent:#1D9E75;--accent2:#5DCAA5;
  --danger:#f05252;--success:#34d399;--warn:#f59e0b;--info:#60a5fa;
  --radius:14px;--radius-sm:8px;--radius-xs:6px;
}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);font-size:14px;overflow-x:hidden}
button{background:none;border:none;color:inherit;font-family:'DM Sans',sans-serif;cursor:pointer}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
.shell{display:flex;min-height:100vh}
.sidebar{width:220px;flex-shrink:0;background:var(--bg2);border-right:0.5px solid var(--border);padding:1.5rem 0.875rem;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}
.logo{padding:0 10px 1.5rem;font-size:15px;font-weight:600;letter-spacing:-0.3px;display:flex;align-items:center;gap:8px}
.logo-dot{width:8px;height:8px;border-radius:50%;background:var(--gw-green);box-shadow:0 0 8px var(--gw-green)}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;color:var(--muted2);font-size:13px;border:none;background:none;width:100%;text-align:left;transition:all .15s;white-space:nowrap}
.nav-item:hover{background:var(--bg3);color:var(--text)}
.nav-item.active{background:rgba(29,158,117,0.10);color:var(--accent2)}
.nav-icon{font-size:16px;opacity:.7}
.nav-sep{height:0.5px;background:var(--border);margin:8px 0}
.nav-section{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;margin-top:4px}
.main{flex:1;padding:2rem 2.5rem;overflow-y:auto;min-width:0}
.page{display:none}.page.active{display:block}
.page-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:16px;flex-wrap:wrap}
.page-hdr-left .page-title{font-size:22px;font-weight:600;letter-spacing:-0.4px}
.page-hdr-left .page-sub{font-size:12px;color:var(--muted);margin-top:3px;letter-spacing:.3px;text-transform:uppercase}
/* SCORE */
.score-card{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--radius);padding:1rem 1.5rem;display:flex;align-items:center;gap:1.5rem;flex-shrink:0}
.score-ring{width:56px;height:56px;flex-shrink:0;position:relative}
.score-ring svg{transform:rotate(-90deg)}
.score-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px;font-weight:600;font-family:'DM Mono',monospace}
.score-info .score-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.score-info .score-status{font-size:14px;font-weight:500;margin-top:4px}
.score-info .score-sub{font-size:11px;color:var(--muted);margin-top:2px}
/* PILLS */
.mes-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:1.5rem}
.mes-pill{padding:5px 14px;font-size:12px;font-weight:500;border-radius:20px;border:0.5px solid var(--border);background:transparent;color:var(--muted2);cursor:pointer;transition:all .15s}
.mes-pill:hover{border-color:var(--border2);color:var(--text)}
.mes-pill.active{background:rgba(29,158,117,0.15);color:var(--accent2);border-color:rgba(29,158,117,0.3)}
/* KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:1.5rem}
.kpi{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;position:relative;overflow:hidden;transition:border-color .2s}
.kpi:hover{border-color:var(--border2)}
.kpi-accent{position:absolute;top:0;left:0;right:0;height:2px}
.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:.5rem}
.kpi-value{font-size:22px;font-weight:600;letter-spacing:-0.5px;font-family:'DM Mono',monospace}
.kpi-sub{font-size:11px;color:var(--muted);margin-top:4px}
.kpi-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px;margin-top:6px}
.badge-up{background:rgba(240,82,82,.12);color:var(--danger)}
.badge-down{background:rgba(52,211,153,.12);color:var(--success)}
.badge-neutral{background:rgba(107,107,122,.12);color:var(--muted2)}
.badge-warn{background:rgba(245,158,11,.12);color:var(--warn)}
/* CARD */
.card{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem;transition:border-color .2s}
.card:hover{border-color:var(--border2)}
.card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}
.card-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}
.card-badge{font-size:11px;color:var(--muted2);background:var(--bg4);padding:3px 10px;border-radius:20px;border:0.5px solid var(--border)}
/* GRID */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}
.grid-3-1{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1rem}
/* RECEITA */
.receita-item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:0.5px solid var(--border)}
.receita-item:last-child{border-bottom:none}
.receita-left{display:flex;align-items:center;gap:10px}
.receita-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.receita-desc{font-size:13px}
.receita-codigo{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace}
.receita-valor{font-size:13px;font-weight:500;font-family:'DM Mono',monospace}
.receita-edit{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;transition:all .15s}
.receita-edit:hover{background:var(--bg4);color:var(--text)}
.receita-separator{height:0.5px;background:var(--border);margin:10px 0}
.receita-total{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.receita-total-label{font-size:13px;font-weight:500}
.receita-total-valor{font-size:15px;font-weight:600;font-family:'DM Mono',monospace}
/* BALDES */
.balde-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:1rem}
.balde-card{background:var(--bg4);border:0.5px solid var(--border);border-radius:var(--radius-sm);padding:1rem;position:relative;overflow:hidden}
.balde-top{height:3px;border-radius:1.5px;margin-bottom:10px}
.balde-name{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.balde-orcado{font-size:16px;font-weight:600;font-family:'DM Mono',monospace;margin-bottom:2px}
.balde-gasto{font-size:11px;color:var(--muted);margin-bottom:8px}
.balde-bar-bg{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}
.balde-bar{height:4px;border-radius:2px;transition:width .7s cubic-bezier(.4,0,.2,1)}
.balde-pct{font-size:10px;color:var(--muted);margin-top:4px}
/* LIBERDADE DIÁRIA */
.liberdade-card{background:var(--bg3);border:0.5px solid rgba(124,111,247,0.3);border-radius:var(--radius);padding:1.75rem;margin-bottom:1rem;text-align:center;position:relative;overflow:hidden}
.liberdade-label{font-size:11px;color:var(--accent2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.liberdade-valor{font-size:48px;font-weight:600;font-family:'DM Mono',monospace;letter-spacing:-2px;color:var(--text);margin-bottom:4px}
.liberdade-sub{font-size:13px;color:var(--muted)}
.liberdade-dias{font-size:12px;color:var(--muted2);margin-top:6px}
.liberdade-glow{position:absolute;top:-40px;left:50%;transform:translateX(-50%);width:200px;height:200px;background:rgba(124,111,247,0.06);border-radius:50%;pointer-events:none}
/* RITMO */
.ritmo-wrap{margin-top:1rem}
.ritmo-hdr{display:flex;justify-content:space-between;margin-bottom:8px}
.ritmo-label{font-size:12px;color:var(--muted)}
.ritmo-val{font-size:12px;font-weight:500;font-family:'DM Mono',monospace}
.ritmo-bar-bg{height:8px;background:var(--bg4);border-radius:4px;position:relative;overflow:hidden}
.ritmo-bar-ideal{position:absolute;top:0;left:0;height:100%;background:rgba(255,255,255,0.1);border-radius:4px;transition:width .5s}
.ritmo-bar-real{position:absolute;top:0;left:0;height:100%;border-radius:4px;transition:width .7s cubic-bezier(.4,0,.2,1)}
.ritmo-markers{display:flex;justify-content:space-between;margin-top:6px}
.ritmo-marker{font-size:10px;color:var(--muted)}
/* PRESSÃO */
.pressao-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:20px;font-size:12px;font-weight:500;border:0.5px solid}
.pressao-baixa{background:rgba(52,211,153,.08);color:#34d399;border-color:rgba(52,211,153,.2)}
.pressao-media{background:rgba(245,158,11,.08);color:#f59e0b;border-color:rgba(245,158,11,.2)}
.pressao-alta{background:rgba(251,146,60,.08);color:#fb923c;border-color:rgba(251,146,60,.2)}
.pressao-critica{background:rgba(240,82,82,.08);color:#f05252;border-color:rgba(240,82,82,.2)}
/* CATS */
.cat-row{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:0.5px solid var(--border)}
.cat-row:last-child{border-bottom:none}
.cat-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.cat-info{flex:1;min-width:0}
.cat-name{font-size:13px;font-weight:500}
.cat-pct-txt{font-size:11px;color:var(--muted);margin-top:1px}
.cat-bar-wrap{width:80px;height:3px;background:var(--bg4);border-radius:2px;flex-shrink:0}
.cat-bar{height:3px;border-radius:2px;transition:width .6s cubic-bezier(.4,0,.2,1)}
.cat-val{font-size:13px;font-weight:500;white-space:nowrap;min-width:90px;text-align:right;font-family:'DM Mono',monospace}
.cat-delta{font-size:10px;margin-top:2px}
/* ALERTAS */
.alerta{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:8px;font-size:13px;line-height:1.5;border:0.5px solid}
.al-warn{background:rgba(245,158,11,.06);border-color:rgba(245,158,11,.2);color:#d4a015}
.al-danger{background:rgba(240,82,82,.06);border-color:rgba(240,82,82,.2);color:#e57373}
.al-ok{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.2);color:#5ecba1}
.al-info{background:rgba(96,165,250,.06);border-color:rgba(96,165,250,.2);color:#7ab4f8}
.al-icon{font-size:16px;flex-shrink:0;margin-top:1px}
.al-body .al-title{font-weight:500;margin-bottom:2px}
.al-body .al-desc{font-size:12px;opacity:.8}
/* VAZAMENTOS */
.vazamentos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.vaz-card{background:var(--bg4);border:0.5px solid var(--border);border-radius:var(--radius-sm);padding:1rem;transition:all .2s}
.vaz-card:hover{border-color:var(--border2)}
.vaz-emoji{font-size:20px;margin-bottom:8px}
.vaz-nome{font-size:12px;color:var(--muted2);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vaz-valor{font-size:18px;font-weight:600;color:var(--danger);font-family:'DM Mono',monospace}
.vaz-sub{font-size:10px;color:var(--muted);margin-top:2px}
/* ASSINATURAS */
.assin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg4);border-radius:var(--radius-sm);border:0.5px solid var(--border);margin-bottom:8px}
.assin-left{display:flex;align-items:center;gap:10px}
.assin-icon{width:30px;height:30px;border-radius:8px;background:var(--bg3);border:0.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px}
.assin-nome{font-size:13px;font-weight:500}
.assin-cat{font-size:11px;color:var(--muted)}
.assin-mensal{font-size:13px;font-weight:500;font-family:'DM Mono',monospace}
.assin-anual{font-size:10px;color:var(--muted)}
.assin-footer{margin-top:10px;padding-top:10px;border-top:0.5px solid var(--border);font-size:12px;color:var(--muted2);line-height:1.6}
.assin-footer strong{color:var(--warn)}
/* QUALIDADE */
.qual-row{margin-bottom:14px}
.qual-hdr{display:flex;justify-content:space-between;margin-bottom:6px}
.qual-label{font-size:12px;font-weight:500}
.qual-pct{font-size:12px;color:var(--muted);font-family:'DM Mono',monospace}
.qual-bar-bg{height:6px;background:var(--bg4);border-radius:3px;overflow:hidden}
.qual-bar{height:6px;border-radius:3px;transition:width .7s cubic-bezier(.4,0,.2,1)}
/* FEED */
.feed-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--bg4);border-radius:var(--radius-sm);border:0.5px solid var(--border);margin-bottom:8px;transition:border-color .15s}
.feed-item:hover{border-color:var(--border2)}
.feed-nome{font-size:13px;font-weight:500;margin-bottom:4px}
.feed-tags{display:flex;gap:5px;flex-wrap:wrap}
.feed-tag{font-size:10px;padding:2px 8px;border-radius:20px;border:0.5px solid;font-weight:500}
.tag-time{background:rgba(96,165,250,.08);border-color:rgba(96,165,250,.2);color:#7ab4f8}
.tag-alert{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.2);color:#d4a015}
.tag-ok{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.2);color:#5ecba1}
.tag-cat{background:rgba(124,111,247,.08);border-color:rgba(124,111,247,.2);color:var(--accent2)}
.feed-valor{font-size:13px;font-weight:500;font-family:'DM Mono',monospace;white-space:nowrap;text-align:right}
.feed-data{font-size:10px;color:var(--muted);margin-top:3px;text-align:right}
/* TABELA */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;padding:10px 14px;color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.3px;border-bottom:0.5px solid var(--border);white-space:nowrap;background:var(--bg3)}
td{padding:11px 14px;border-bottom:0.5px solid var(--border);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--bg4)}
.badge-cat{display:inline-flex;align-items:center;font-size:11px;padding:3px 10px;border-radius:20px;white-space:nowrap;border:0.5px solid}
/* FILTROS */
.filters{display:flex;gap:8px;margin-bottom:1rem;flex-wrap:wrap}
.filters select,.filters input{font-size:13px;padding:7px 12px;border:0.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg3);color:var(--text);outline:none;transition:border-color .15s}
.filters select:focus,.filters input:focus{border-color:var(--border2)}
/* FORM */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:1rem}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.form-group input,.form-group select{font-size:13px;padding:9px 12px;border:0.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg3);color:var(--text);outline:none;transition:border-color .15s;color-scheme:dark}
.form-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.5);cursor:pointer}
.form-group input:focus,.form-group select:focus{border-color:var(--accent)}
input,select,textarea{background:var(--bg3);color:var(--text);border:0.5px solid var(--border);font-family:'DM Sans',sans-serif}
input::placeholder{color:var(--muted)}
input[type=checkbox]{accent-color:var(--vblue1)}
.btn{padding:9px 20px;font-size:13px;font-weight:500;border-radius:var(--radius-sm);border:0.5px solid var(--border);background:var(--bg3);color:var(--text);cursor:pointer;transition:all .15s}
.btn:hover{background:var(--bg4);border-color:var(--border2)}
.btn-primary{background:var(--gw-green);color:#fff;border-color:var(--gw-green)}
.btn-primary:hover{background:#178f68;border-color:#178f68}
.btn-sm{padding:5px 12px;font-size:12px}
.feedback{font-size:13px;margin-top:10px;padding:9px 14px;border-radius:var(--radius-sm);display:none;border:0.5px solid}
.feedback.ok{background:rgba(52,211,153,.06);color:#5ecba1;border-color:rgba(52,211,153,.2);display:block}
.feedback.err{background:rgba(240,82,82,.06);color:#e57373;border-color:rgba(240,82,82,.2);display:block}
.empty{text-align:center;padding:2.5rem;color:var(--muted);font-size:13px}
/* COMP */
.comp-grid{display:grid;gap:1rem;margin-bottom:1rem;align-items:start}
.comp-col{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius);padding:1.25rem}
.comp-col-title{font-size:15px;font-weight:600;letter-spacing:-.3px}
.comp-col-total{font-size:12px;color:var(--muted);margin-bottom:1rem;padding-bottom:10px;border-bottom:0.5px solid var(--border)}
.comp-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:0.5px solid var(--border)}
.comp-row:last-child{border-bottom:none}
.comp-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.comp-name{flex:1;font-size:12px;color:var(--muted2);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comp-val{font-size:12px;font-weight:500;white-space:nowrap;font-family:'DM Mono',monospace}
.comp-sel-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.comp-sel-bar select,.comp-sel-bar label{font-size:13px;padding:6px 10px;border:0.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg3);color:var(--text);outline:none}
.comp-sel-bar label{background:none;border:none;padding:6px 0;font-size:11px;color:var(--muted)}
/* EDIT INLINE */
.edit-field{display:none;gap:6px;align-items:center;margin-top:6px}
.edit-field.open{display:flex}
.edit-input{font-size:13px;padding:5px 10px;border:0.5px solid var(--accent);border-radius:var(--radius-xs);background:var(--bg4);color:var(--text);width:130px;font-family:'DM Mono',monospace;outline:none}
/* CHART WRAP */
.chart-wrap{position:relative;height:220px}
/* ANIMS */
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeUp .3s ease both}
/* DIVISOR DE SEÇÃO */
.section-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem;margin-top:1.5rem;display:flex;align-items:center;gap:8px}
.section-label::after{content:'';flex:1;height:0.5px;background:var(--border)}

/* ── RESPONSIVO GERAL ─────────────────────────────────────── */
@media(max-width:768px){
  .sidebar{display:none}
  .main{padding:1.25rem}
  .grid2,.grid-3-1,.grid3{grid-template-columns:1fr}
  .desktop-only{display:none !important}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .balde-grid{grid-template-columns:1fr}
}

/* AUTOCOMPLETE CUSTOMIZADO */
.ac-wrap{position:relative;flex:1}
.ac-input{width:100%;font-size:11px;padding:3px 6px;background:var(--bg4);border:0.5px solid var(--border);border-radius:var(--radius-xs);color:var(--text);outline:none;font-family:'DM Sans',sans-serif}
.ac-input:focus{border-color:var(--gw-green)}
.ac-dropdown{position:absolute;top:calc(100% + 3px);left:0;min-width:100%;max-height:180px;overflow-y:auto;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:9999;display:none}
.ac-dropdown.open{display:block}
.ac-option{padding:7px 12px;font-size:12px;color:var(--muted2);cursor:pointer;transition:background .1s}
.ac-option:hover,.ac-option.ac-active{background:rgba(29,158,117,0.10);color:var(--text)}

/* PLAN FONTES */
.plan-fonte-row{display:flex;align-items:center;gap:6px;margin-top:4px}
.plan-fonte-row:first-child{margin-top:5px}
.plan-fontes-wrap{padding-left:2px}

/* MODAL FATURA */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(4px)}
.modal-box{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:820px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}
.modal-hdr{display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:15px;font-weight:600}
.fatura-group-title{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:8px 0 4px;border-bottom:0.5px solid var(--border);margin-top:8px}
.fatura-row{display:grid;grid-template-columns:90px 1fr 1fr 80px 60px;gap:8px;align-items:center;padding:5px 0;border-bottom:0.5px solid var(--border);font-size:12px}
.fatura-row.skip{opacity:.4}
.via-badge{font-size:10px;padding:1px 6px;border-radius:10px}
.via-depara{background:rgba(52,211,153,.12);color:var(--success)}
.via-ia{background:rgba(124,111,247,.12);color:var(--accent2)}
.via-skip{background:rgba(107,107,122,.12);color:var(--muted)}
/* CARD NUBANK */
.nubank-card{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;position:relative;overflow:hidden}
.nubank-group{margin-bottom:10px}
.nubank-group-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}
.nubank-item{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:3px 0}
.nubank-total{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;padding-top:8px;border-top:0.5px solid var(--border2);margin-top:6px}
@keyframes spin{to{transform:rotate(360deg)}}

/* CARTÃO FATURA */
.fatura-grupo-titulo{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600;padding:10px 0 4px;border-bottom:0.5px solid var(--border);margin-bottom:2px}
.fatura-item{display:grid;grid-template-columns:85px minmax(0,1fr) 150px 80px 80px;gap:6px;align-items:center;padding:6px 0;border-bottom:0.5px solid var(--border);font-size:12px}
.fatura-item.nao-lancado{background:rgba(240,82,82,0.04)}
.status-check{font-size:11px;text-align:center}
/* VIAGEM */
/* viagem — paleta azul */
--vblue1:#0ea5e9;--vblue2:#38bdf8;--vblue3:#7dd3fc;--vblue4:rgba(14,165,233,.12);--vblue5:rgba(14,165,233,.2);
.mv-chip{background:var(--bg4)!important;border:0.5px solid var(--border2)!important;border-radius:20px!important;padding:5px 12px;font-size:12px;color:var(--muted2);cursor:pointer;transition:all .15s;appearance:none;-webkit-appearance:none;font-family:'DM Sans',sans-serif;outline:none;box-shadow:none}
.mv-chip.ativo{background:var(--vblue4);border-color:var(--vblue1);color:var(--vblue2)}
.mv-orc-row{padding:10px 0;border-bottom:0.5px solid var(--border)}
.mv-orc-row .form-group{margin:0}
.vcat-row{display:grid;grid-template-columns:1fr 100px 100px 100px;gap:6px;align-items:center;padding:8px 0;border-bottom:0.5px solid var(--border);font-size:12px}
.vcat-bar-wrap{grid-column:1/-1;margin:-4px 0 4px;height:4px;background:var(--bg4);border-radius:2px;overflow:hidden}
.vcat-bar{height:100%;border-radius:2px;transition:width .4s;background:var(--vblue1)}
.vcat-bar.over{background:#f05252}
.viagem-sel-btn{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--radius-xs);padding:6px 14px;font-size:12px;cursor:pointer;color:var(--muted);transition:all .15s}
.viagem-sel-btn.ativo{border-color:var(--vblue1);color:var(--vblue2);background:var(--vblue4)}
.liberdade-card.viagem-mode{background:linear-gradient(135deg,#0c2d48 0%,#0a1628 50%,#071020 100%);border-color:var(--vblue1)}
.liberdade-card.viagem-mode .liberdade-glow{background:radial-gradient(ellipse at 30% 40%,rgba(14,165,233,.25),transparent 70%)}
.liberdade-card.viagem-mode .liberdade-label{color:var(--vblue3)}
.liberdade-card.viagem-mode .liberdade-valor{color:#fff}
.liberdade-card.viagem-mode .liberdade-sub{color:var(--vblue3);opacity:.7}
.liberdade-cat-card{background:var(--bg3);border:0.5px solid rgba(14,165,233,.2);border-radius:var(--radius-sm);padding:1rem 1.25rem;margin-bottom:.5rem}
.liberdade-cat-val{font-size:1.4rem;font-weight:600;color:var(--vblue2);font-family:'DM Mono',monospace}
.liberdade-cat-nome{font-size:11px;color:var(--vblue3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:.25rem}
.liberdade-cat-sub{font-size:11px;color:var(--muted);margin-top:.25rem}


/* ── KanbanPM Bug Reporter ── */
#kbug-fab {
  position: fixed;
  top: 14px;
  right: 14px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(240,82,82,0.18);
  border: 1px solid rgba(240,82,82,0.35);
  color: #f05252;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 8888;
  transition: all .2s;
  user-select: none;
  box-shadow: 0 2px 8px rgba(240,82,82,0.15);
}
#kbug-fab:hover {
  background: rgba(240,82,82,0.32);
  border-color: rgba(240,82,82,0.6);
  transform: scale(1.12);
  box-shadow: 0 4px 16px rgba(240,82,82,0.3);
}
#kbug-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,0.55); z-index: 8889;
  align-items: flex-start; justify-content: flex-end; padding: 54px 14px 0;
}
#kbug-overlay.open { display: flex; }
#kbug-panel {
  background: var(--bg2); border: 0.5px solid rgba(240,82,82,0.25);
  border-radius: 14px; padding: 18px 20px 20px; width: 320px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.5); animation: kbug-slide .18s ease;
}
@keyframes kbug-slide {
  from { opacity:0; transform: translateY(-8px) scale(.97); }
  to   { opacity:1; transform: translateY(0) scale(1); }
}
#kbug-panel h4 { font-size:13px; font-weight:600; color:#f87171; margin-bottom:14px; display:flex; align-items:center; gap:7px; }
.kbug-field { display:flex; flex-direction:column; gap:5px; margin-bottom:12px; }
.kbug-field label { font-size:11px; color:var(--muted2); text-transform:uppercase; letter-spacing:.4px; font-weight:500; }
.kbug-field input,.kbug-field textarea,.kbug-field select {
  background:var(--bg3); border:0.5px solid var(--border2); border-radius:8px;
  color:var(--text); padding:9px 11px; font-size:13px; font-family:inherit;
  transition:border-color .15s; outline:none; width:100%; box-sizing:border-box; resize:none;
}
.kbug-field input:focus,.kbug-field textarea:focus,.kbug-field select:focus { border-color:#f05252; }
#kbug-actions { display:flex; gap:8px; margin-top:4px; }
#kbug-actions button { flex:1; padding:9px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; border:none; font-family:inherit; transition:opacity .15s; }
#kbug-actions button:hover { opacity:.85; }
#kbug-btn-cancel { background:var(--bg3); color:var(--muted2); }
#kbug-btn-send   { background:#f05252; color:#fff; }
#kbug-feedback { display:none; margin-top:10px; font-size:12px; padding:8px 10px; border-radius:8px; border:0.5px solid; }
#kbug-feedback.ok    { background:rgba(52,211,153,.08); border-color:rgba(52,211,153,.3); color:#34d399; }
#kbug-feedback.error { background:rgba(240,82,82,.08);  border-color:rgba(240,82,82,.3);  color:#f87171; }

/* ═══════════════════════════════════════════════════════════
   GaiaWave — Módulo Maconha v5
   ═══════════════════════════════════════════════════════════ */

:root {
  --gw-green: #1D9E75;
  --gw-green-light: #5DCAA5;
  --gw-green-muted: rgba(29,158,117,0.12);
  --gw-green-border: rgba(29,158,117,0.25);
}

/* ── HERO ─────────────────────────────────────────────────── */
.gw-hero {
  background: var(--bg3);
  border: 0.5px solid var(--gw-green-border);
  border-radius: var(--radius);
  padding: .75rem 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0;
}
.gw-hero-left { flex: 1; min-width: 0; }
.gw-hero-eyebrow {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--gw-green-light);
  margin-bottom: 4px;
  font-weight: 500;
}
.gw-hero-number {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--gw-green);
  font-family: 'DM Mono', monospace;
  line-height: 1;
}
.gw-hero-unit { font-size: 12px; color: var(--muted); margin-top: 5px; }
.gw-hero-stats { display: flex; flex-direction: column; gap: 8px; min-width: 120px; }
.gw-stat-mini {
  background: var(--bg4);
  border: 0.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 6px 10px;
}
.gw-stat-mini-label {
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 2px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.gw-stat-mini-val {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  font-family: 'DM Mono', monospace;
}

/* ── SECTION LABEL ────────────────────────────────────────── */
.gw-section-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  margin: 1.25rem 0 .625rem;
  padding-bottom: .4rem;
  border-bottom: 0.5px solid var(--border);
  display: block;
}

/* ── META DIÁRIA ──────────────────────────────────────────── */
.gw-meta-box {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  padding: .75rem 1rem;
  margin-bottom: 0;
}
.gw-meta-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.gw-meta-today-label { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 3px; }
.gw-meta-today-val { font-size: 1.4rem; font-weight: 700; color: var(--text); font-family: 'DM Mono', monospace; }
.gw-bar-track {
  height: 5px;
  background: var(--bg4);
  border-radius: 99px;
  overflow: hidden;
  border: 0.5px solid var(--border);
}
.gw-bar-fill { height: 100%; border-radius: 99px; width: 0%; transition: width .5s ease; }
.gw-bar-ok   { background: var(--gw-green); }
.gw-bar-over { background: var(--danger); }
.gw-bar-labels { display: flex; justify-content: space-between; font-size: 11px; color: var(--muted); margin-top: 5px; }
.gw-status-ok   { color: var(--gw-green); font-weight: 600; }
.gw-status-over { color: var(--danger);   font-weight: 600; }
.gw-link-btn {
  background: none;
  border: none;
  color: var(--gw-green-light);
  font-size: 11px;
  cursor: pointer;
  padding: 0 2px;
  font-family: 'DM Sans', sans-serif;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── PERIOD CHIPS ─────────────────────────────────────────── */
.gw-period-chips { display: flex; gap: 6px; margin-bottom: .75rem; }
.gw-chip {
  padding: 4px 14px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 20px;
  border: 0.5px solid var(--border);
  background: transparent;
  color: var(--muted2);
  cursor: pointer;
  transition: all .15s;
  font-family: 'DM Sans', sans-serif;
}
.gw-chip:hover { border-color: var(--border2); color: var(--text); }
.gw-chip.active { background: var(--gw-green-muted); color: var(--gw-green-light); border-color: var(--gw-green-border); }

/* ── TREND CARDS ──────────────────────────────────────────── */
.gw-trend-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 1.25rem; }
.gw-trend-card {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  transition: border-color .15s;
}
.gw-trend-card.gw-trend-active { border-color: var(--gw-green); background: var(--gw-green-muted); }
.gw-trend-ref { opacity: .8; }
.gw-trend-period { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.gw-trend-val { font-size: 18px; font-weight: 700; color: var(--text); font-family: 'DM Mono', monospace; }
.gw-trend-unit { font-size: 11px; color: var(--muted); font-weight: 400; }
.gw-trend-delta { font-size: 11px; margin-top: 5px; }
.gw-delta-down { color: var(--gw-green); }
.gw-delta-up   { color: var(--danger); }
.gw-delta-flat { color: var(--muted); }

/* ── PILL METRICS ─────────────────────────────────────────── */
.gw-pill-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 1.25rem; }
.gw-pill-metric {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  padding: .875rem 1rem;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.gw-pill-icon { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gw-pill-icon-green { background: var(--gw-green-muted); color: var(--gw-green); }
.gw-pill-icon-amber { background: rgba(245,158,11,.12); color: var(--warn); }
.gw-pill-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
.gw-pill-val   { font-size: 1.15rem; font-weight: 700; color: var(--text); font-family: 'DM Mono', monospace; }
.gw-pill-sub   { font-size: 10px; color: var(--muted); margin-top: 2px; }

/* ── FINANCEIRO ROW ───────────────────────────────────────── */
.gw-fin-row {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  padding: .875rem 1rem;
  display: flex;
  align-items: stretch;
  margin-bottom: 1.25rem;
}
.gw-fin-item { flex: 1; padding: 0 12px; }
.gw-fin-item:first-child { padding-left: 0; }
.gw-fin-item:last-child  { padding-right: 0; }
.gw-fin-sep { width: 0.5px; background: var(--border); flex-shrink: 0; align-self: stretch; }
.gw-fin-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.gw-fin-val   { font-size: 15px; font-weight: 700; color: var(--text); font-family: 'DM Mono', monospace; }
.gw-fin-sub   { font-size: 11px; color: var(--muted); margin-top: 3px; }

/* ── BOTÕES GW ────────────────────────────────────────────── */
.gw-btn-primary {
  background: var(--gw-green) !important;
  border-color: var(--gw-green) !important;
  color: #fff !important;
  padding: 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
}
.gw-btn-secondary {
  background: rgba(96,165,250,0.1) !important;
  border-color: #3b82f6 !important;
  color: #60a5fa !important;
  padding: 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
}
.gw-btn-ghost {
  font-size: 12px;
  color: var(--muted2);
  border: 0.5px dashed var(--border2);
  padding: 7px 14px;
  border-radius: var(--radius-sm);
  width: 100%;
  text-align: center;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
  transition: all .15s;
}
.gw-btn-ghost:hover { color: var(--text); background: var(--bg4); }
.gw-btn-icon { padding: 6px 10px !important; border-radius: var(--radius-xs) !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.gw-btn-save-sm { background: var(--gw-green) !important; border-color: var(--gw-green) !important; color: #fff !important; font-size: 11px !important; padding: 4px 10px !important; white-space: nowrap; }

/* ── TIMELINE ─────────────────────────────────────────────── */
.gw-timeline { display: flex; flex-direction: column; gap: 0; margin-bottom: 1.25rem; }
.gw-tl-row   { display: flex; align-items: stretch; gap: 0; }
.gw-tl-spine { display: flex; flex-direction: column; align-items: center; width: 28px; flex-shrink: 0; padding-top: 2px; }
.gw-tl-dot   { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.gw-dot-ok   { background: var(--gw-green); }
.gw-dot-over { background: var(--muted); }
.gw-tl-line  { flex: 1; width: 1px; background: var(--border); margin: 3px 0; min-height: 10px; }
.gw-tl-body  { flex: 1; padding: 0 0 16px 4px; min-width: 0; }
.gw-tl-date  { font-size: 11px; color: var(--muted); margin-bottom: 5px; font-weight: 500; }
.gw-tl-sessions { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.gw-tl-session {
  background: var(--bg4);
  border: 0.5px solid var(--border);
  border-radius: var(--radius-xs);
  padding: 3px 9px;
  font-size: 12px;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.gw-tl-hora { color: var(--muted2); font-family: 'DM Mono', monospace; }
.gw-tl-g    { font-weight: 600; color: var(--gw-green-light); font-family: 'DM Mono', monospace; }
.gw-tl-nota { font-size: 11px; color: var(--muted); }
.gw-tl-del  { background: none; border: none; cursor: pointer; color: var(--muted); font-size: 11px; padding: 0 2px; margin-left: 2px; line-height: 1; transition: color .15s; }
.gw-tl-del:hover { color: var(--danger); }
.gw-tl-total { font-size: 11px; color: var(--muted); }
.gw-tl-ok   { color: var(--gw-green-light); }
.gw-tl-over { color: var(--muted); }

/* ── COLLAPSE ─────────────────────────────────────────────── */
.gw-collapse-hdr { display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 4px 0; user-select: none; }
.gw-collapse-hdr:hover .gw-section-label { color: var(--muted2); }
.gw-collapse-arrow { font-size: 12px; color: var(--muted); }
.gw-collapse-body  { margin-bottom: 1.25rem; }
.gw-total-estoque  { font-size: 11px; color: var(--muted); font-family: 'DM Mono', monospace; }

/* ── LISTAS ───────────────────────────────────────────────── */
.gw-list { display: flex; flex-direction: column; gap: 5px; }
.gw-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 10px;
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius-sm);
}
.gw-list-main { font-size: 13px; font-weight: 600; color: var(--text); font-family: 'DM Mono', monospace; }
.gw-list-sub  { font-size: 11px; color: var(--muted); margin-top: 1px; }
.gw-del-btn { background: none; border: none; cursor: pointer; color: var(--muted); font-size: 12px; padding: 3px 7px; border-radius: var(--radius-xs); transition: all .15s; flex-shrink: 0; }
.gw-del-btn:hover { color: var(--danger); background: rgba(240,82,82,.08); }
.gw-empty { text-align: center; color: var(--muted); font-size: 13px; padding: 18px; }
.gw-badge-count { font-size: 11px; font-weight: 600; color: var(--gw-green-light); margin-left: 4px; }

/* ── MODAL GW ─────────────────────────────────────────────── */
.gw-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
}
.gw-modal-card {
  background: var(--bg2);
  border: 0.5px solid var(--border2);
  border-radius: var(--radius);
  padding: 1.5rem;
  width: 320px;
  max-width: 90vw;
}
.gw-modal-title { font-size: 15px; font-weight: 600; margin-bottom: 1.25rem; color: var(--text); }
.gw-form-field { margin-bottom: 12px; }
.gw-form-field label { font-size: 11px; color: var(--muted); display: block; margin-bottom: 5px; text-transform: uppercase; letter-spacing: .04em; }
.gw-input {
  width: 100%;
  font-size: 14px;
  padding: 8px 10px;
  background: var(--bg3);
  border: 0.5px solid var(--border2);
  border-radius: var(--radius-xs);
  color: var(--text);
  font-family: 'DM Mono', monospace;
  outline: none;
  transition: border-color .15s;
}
.gw-input:focus { border-color: var(--gw-green); }
.gw-input-hint { font-size: 11px; color: var(--muted); display: block; margin-top: 4px; }
.gw-input-xs {
  width: 72px;
  font-size: 13px;
  padding: 5px 8px;
  background: var(--bg4);
  border: 0.5px solid var(--border2);
  border-radius: var(--radius-xs);
  color: var(--text);
  font-family: 'DM Mono', monospace;
  outline: none;
}
.gw-input-xs:focus { border-color: var(--gw-green); }
.gw-modal-actions { display: flex; gap: 8px; margin-top: 1.25rem; }
.gw-modal-actions .btn { flex: 1; padding: 9px; font-size: 13px; font-weight: 600; border-radius: var(--radius-sm); cursor: pointer; font-family: 'DM Sans', sans-serif; }

/* ── LAYOUT BLOCOS: tendência + projeção ──────────────────── */
.gw-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 1.25rem;
}

/* Bloco compacto de período (tendência) */
.gw-period-block {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.gw-period-block-hdr {
  padding: 6px 12px;
  background: var(--bg4);
  border-bottom: 0.5px solid var(--border);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  font-weight: 600;
}
.gw-period-row {
  display: flex;
  align-items: center;
  padding: 7px 12px;
  border-bottom: 0.5px solid var(--border);
  gap: 10px;
}
.gw-period-row:last-child { border-bottom: none; }
.gw-period-row-ref { opacity: .7; }
.gw-period-label { font-size: 12px; color: var(--muted2); width: 52px; flex-shrink: 0; }
.gw-period-val   { font-size: 15px; font-weight: 600; color: var(--text); font-family: 'DM Mono', monospace; flex-shrink: 0; }
.gw-period-unit  { font-size: 11px; color: var(--muted); margin-left: 2px; flex-shrink: 0; }
.gw-period-meta  { margin-left: auto; font-size: 11px; flex-shrink: 0; }

/* Bloco de projeção */
.gw-proj-block {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.gw-proj-row {
  display: flex;
  align-items: center;
  padding: 7px 12px;
  border-bottom: 0.5px solid var(--border);
  gap: 8px;
}
.gw-proj-row:last-child { border-bottom: none; }
.gw-proj-label   { font-size: 12px; color: var(--muted2); width: 52px; flex-shrink: 0; }
.gw-proj-dias    { font-size: 11px; color: var(--muted); width: 28px; flex-shrink: 0; }
.gw-proj-add     { font-size: 12px; color: var(--gw-green-light); font-family: 'DM Mono', monospace; font-weight: 600; margin-left: auto; flex-shrink: 0; }
.gw-proj-tot     { font-size: 14px; font-weight: 600; color: var(--text); font-family: 'DM Mono', monospace; width: 52px; text-align: right; flex-shrink: 0; }

/* VS mês — tabela compacta largura controlada */
.gw-vs-block {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 1.25rem;
  max-width: 480px;
}
.gw-vs-hdr {
  display: grid;
  grid-template-columns: 80px 90px 90px 56px;
  padding: 6px 12px;
  background: var(--bg4);
  border-bottom: 0.5px solid var(--border);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  font-weight: 600;
  gap: 4px;
}
.gw-vs-hdr span:not(:first-child) { text-align: right; }
.gw-vs-row {
  display: grid;
  grid-template-columns: 80px 90px 90px 56px;
  padding: 7px 12px;
  border-bottom: 0.5px solid var(--border);
  align-items: center;
  gap: 4px;
}
.gw-vs-row:last-child { border-bottom: none; }
.gw-vs-label  { font-size: 12px; color: var(--muted2); }
.gw-vs-ant    { font-size: 13px; color: var(--muted); font-family: 'DM Mono', monospace; text-align: right; }
.gw-vs-atual  { font-size: 14px; font-weight: 600; color: var(--text); font-family: 'DM Mono', monospace; text-align: right; }
.gw-vs-diff   { font-size: 11px; text-align: right; }

/* ── TABELA GW legada ─────────────────────────────────────── */
.gw-table-card {
  background: var(--bg3);
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 1.25rem;
}
.gw-tbl-head {
  display: grid;
  grid-template-columns: 70px 1fr 80px;
  padding: 6px 12px;
  background: var(--bg4);
  border-bottom: 0.5px solid var(--border);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  font-weight: 600;
  gap: 6px;
}
.gw-tbl-head span:not(:first-child) { text-align: right; }
.gw-tbl-row {
  display: grid;
  grid-template-columns: 70px 1fr 80px;
  padding: 9px 12px;
  border-bottom: 0.5px solid var(--border);
  align-items: center;
  gap: 6px;
}
.gw-tbl-row:last-child { border-bottom: none; }
.gw-tbl-row-ref { opacity: .75; }
.gw-tbl-label { font-size: 12px; color: var(--muted2); }
.gw-tbl-val   { font-size: 14px; font-weight: 600; color: var(--text); font-family: 'DM Mono', monospace; text-align: right; }
.gw-tbl-muted { font-size: 12px; color: var(--muted); font-family: 'DM Mono', monospace; text-align: right; }
.gw-tbl-add   { font-size: 12px; text-align: right; }
.gw-tbl-plus  { color: var(--gw-green-light); font-family: 'DM Mono', monospace; font-weight: 600; }
.gw-tbl-row > span:last-child { text-align: right; font-size: 11px; }
.gw-proj-tbl .gw-tbl-head, .gw-proj-tbl .gw-tbl-row { grid-template-columns: 52px 36px 1fr 1fr; }
.gw-vs-tbl .gw-tbl-head,  .gw-vs-tbl .gw-tbl-row  { grid-template-columns: 72px 1fr 1fr 60px; }

/* ── TIMELINE COMPACTA ────────────────────────────────────── */
.gw-timeline-list { margin-bottom: 1.25rem; }
.gw-tl-group-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  padding: 10px 0 5px;
  font-weight: 600;
}
.gw-tl-compact-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 0.5px solid var(--border);
}
.gw-tl-compact-row:last-of-type { border-bottom: none; }
.gw-tl-compact-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.gw-tl-compact-date { font-size: 13px; color: var(--muted2); flex: 1; }
.gw-tl-compact-g    { font-size: 13px; font-weight: 600; font-family: 'DM Mono', monospace; min-width: 44px; text-align: right; }
.gw-tl-compact-becks { font-size: 11px; color: var(--muted); min-width: 52px; text-align: right; }

/* ── HERO + META GRID ─────────────────────────────────────── */
.gw-hero-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 1.25rem;
  align-items: stretch;
}
.gw-hero-meta-grid > * { height: 100%; box-sizing: border-box; }
.gw-hero-meta-grid .gw-hero     { margin-bottom: 0; align-items: flex-start; }
.gw-hero-meta-grid .gw-meta-box { margin-bottom: 0; display: flex; flex-direction: column; justify-content: space-between; }

/* ══════════════════════════════════════════════════════════
   RESPONSIVO MOBILE — tudo junto num único bloco 768px
   ══════════════════════════════════════════════════════════ */
@media(max-width: 768px) {

  /* ── Módulo maconha ── */
  .gw-hero { flex-direction: column; gap: .75rem; }
  .gw-hero-stats { flex-direction: row; flex-wrap: wrap; min-width: auto; width: 100%; }
  .gw-stat-mini { flex: 1; min-width: 100px; }
  .gw-hero-meta-grid { grid-template-columns: 1fr; }
  .gw-stats-grid     { grid-template-columns: 1fr; }
  .gw-vs-block       { max-width: 100%; }

  /* ── Visão Geral — Linha 1 (liberdade + maconha mini) ── */
  /*
   * No mobile, em vez de empilhar os dois em coluna única,
   * fazemos: liberdade ocupa linha inteira (1fr),
   * e os dois cards de maconha ficam lado a lado (1fr 1fr).
   * Para isso, o div#visao-linha1 vira grid de 2 colunas
   * com o card liberdade ocupando ambas.
   */
  #visao-linha1 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  /* liberdade ocupa as 2 colunas */
  #visao-linha1 .liberdade-card {
    grid-column: 1 / -1;
    padding: 1.1rem 1.25rem !important;
    margin-bottom: 0 !important;
  }

  /* fonte menor no valor para caber bem */
  #visao-linha1 .liberdade-valor {
    font-size: 36px !important;
    letter-spacing: -1px !important;
  }

  /* card maconha mini ocupa 1 coluna — mas aqui só tem 1 card neste div,
     então ele ocupa as 2 colunas também (largura total) */
  #visao-linha1 > .card {
    grid-column: 1 / -1;
    padding: .875rem 1rem !important;
    margin-bottom: 0 !important;
  }

  /* ── KPI grid: maconha lado a lado ── */
  .kpi-grid { grid-template-columns: 1fr 1fr; }
}

/* ── Breakpoint menor: 600px ── */
@media(max-width: 600px) {
  .gw-trend-grid { grid-template-columns: 1fr; }
  .gw-pill-row   { grid-template-columns: 1fr; }
  .gw-fin-row    { flex-direction: column; gap: 12px; }
  .gw-fin-sep    { width: 100%; height: 0.5px; align-self: auto; }
  .gw-fin-item   { padding: 0; }
  .gw-hero-meta-grid { grid-template-columns: 1fr; }
  .gw-stats-grid     { grid-template-columns: 1fr; }
  .gw-vs-block       { max-width: 100%; }
}