/* TaskEsc v3.3 — responsividade, filtros e iconografia */

/* Nunca exibir os caracteres de fallback como "ícones". A biblioteca local
   public/assets/taskesc-icons.js hidrata todos os data-lucide com SVG. */
.icon-fallback{display:none!important}

/* O menu mobile já possui um SVG. A regra antiga #menu:before criava um
   segundo hambúrguer e deixava o botão visualmente duplicado. */
#menu::before{content:none!important;display:none!important}

/* Popover fecha ao clicar novamente no sino, fora dele ou com Esc. */
.notification-popover .notification-close{display:none!important}

/* Kanban — filtros alinhados em uma grade estável no desktop. */
.toolbar.kanban-filters{
  display:grid;
  grid-template-columns:minmax(178px,1.35fr) repeat(4,minmax(142px,1fr)) auto auto;
  align-items:center;
  gap:7px;
}
.toolbar.kanban-filters>.input,
.toolbar.kanban-filters>.select,
.toolbar.kanban-filters>.check,
.toolbar.kanban-filters>button{
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
}
.toolbar.kanban-filters>.input,
.toolbar.kanban-filters>.select,
.toolbar.kanban-filters>.check,
.toolbar.kanban-filters>button{
  height:35px;
  min-height:35px;
}
.toolbar.kanban-filters>.filter-check{
  padding:0 10px;
  white-space:nowrap;
}

/* Conteúdo de cards nunca deve empurrar a viewport. Rolagens horizontais
   continuam apenas onde são intencionais (tabelas e o próprio Kanban). */
.stat-card,.comparison-card,.chart-panel,.panel,.task-card{min-width:0;max-width:100%}
.chart-panel{overflow:hidden}
.metric-chart{max-width:100%}

@media(max-width:1180px) and (min-width:761px){
  .toolbar.kanban-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .toolbar.kanban-filters>#demand-search{grid-column:span 2}
}

@media(max-width:760px){
  .grid.stats,.client-stats{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:0 0 12px!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  .grid.stats .stat-card,.client-stats .stat-card{
    flex:initial!important;
    width:100%!important;
    min-width:0!important;
    scroll-snap-align:none!important;
  }
  .comparison-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:0 0 12px!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  .comparison-card{
    flex:initial!important;
    width:100%!important;
    min-width:0!important;
    scroll-snap-align:none!important;
  }
  .comparison-card.finance-summary-card{grid-column:1/-1!important}

  .chart-panel{overflow:hidden!important}
  .metric-chart,
  .metric-chart.finance-chart{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    gap:4px!important;
    padding-inline:0!important;
  }
  .metric-chart{grid-template-columns:repeat(8,minmax(0,1fr))!important}
  .metric-chart.finance-chart{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .metric-bars{gap:2px!important}
  .metric-bar{width:min(15px,44%)!important}
  .metric-column>span{
    min-width:0;
    overflow:hidden;
    text-overflow:clip;
    white-space:nowrap;
    font-size:8px;
  }

  .dashboard-period-bar{overflow:visible!important;flex-wrap:wrap!important;padding-bottom:0!important}

  .toolbar.kanban-filters{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    margin-bottom:9px!important;
  }
  .toolbar.kanban-filters>#demand-search{grid-column:1/-1}
  .toolbar.kanban-filters>.input,
  .toolbar.kanban-filters>.select,
  .toolbar.kanban-filters>.check,
  .toolbar.kanban-filters>button{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:40px!important;
    min-height:40px!important;
    margin:0!important;
  }
  .toolbar.kanban-filters>.input,
  .toolbar.kanban-filters>.select{
    padding-inline:10px!important;
    font-size:13px!important;
  }
  .toolbar.kanban-filters>.filter-check{
    padding:0 9px!important;
    font-size:11px!important;
  }
  .toolbar.kanban-filters>#refresh-kanban{font-size:11px!important}

  .notification-popover{max-width:calc(100vw - 20px)}
}

@media(max-width:380px){
  .grid.stats,.client-stats,.comparison-grid{grid-template-columns:1fr!important}
  .comparison-card.finance-summary-card{grid-column:auto!important}
}


/* TaskEsc v3.4.1 — remove rolagem horizontal indevida de cards */
.comparison-card,
.dashboard-chart-card,
.stat-card,
.health-card,
.finance-analysis-grid>div,
.report-analysis-grid>div,
.expense-category-strip>div,
.client-finance-summary>div,
.invoice-summary-grid>div,
.account-check,
.compact-row{
  min-width:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}

.comparison-card>*,
.stat-card>*,
.health-card>*,
.finance-analysis-grid>div>*,
.report-analysis-grid>div>*,
.expense-category-strip>div>*,
.client-finance-summary>div>*,
.invoice-summary-grid>div>*{
  min-width:0;
  max-width:100%;
}

.comparison-card>span,
.comparison-card>b,
.comparison-card>small,
.comparison-card>em,
.stat-card .stat-label,
.stat-card .stat-value,
.stat-card .stat-note,
.finance-analysis-grid span,
.finance-analysis-grid b,
.finance-analysis-grid small,
.report-analysis-grid span,
.report-analysis-grid b,
.report-analysis-grid small{
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:normal;
}

@media(max-width:760px){
  .comparison-card,
  .dashboard-chart-card,
  .stat-card,
  .health-card,
  .finance-analysis-grid>div,
  .report-analysis-grid>div,
  .expense-category-strip>div,
  .client-finance-summary>div,
  .invoice-summary-grid>div{
    overflow:hidden!important;
  }

  .comparison-card::after{pointer-events:none}
}


/* TaskEsc v3.5 — modal enriquecido da Agenda */
.event-detail-modal.modal.compact{
  width:min(700px,100%);
  max-height:min(92dvh,860px);
  overflow-y:auto;
  overflow-x:hidden;
}
.event-detail-modal .modal-head{margin-bottom:10px}
.event-primary-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.event-primary-actions>a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:40px;
  text-decoration:none;
}
.event-meet-btn{flex:1 1 230px}
.event-calendar-link{flex:0 1 auto}
.event-detail-grid>div{
  display:grid;
  align-content:start;
  gap:3px;
  min-width:0;
}
.event-detail-grid>div>span{margin-bottom:1px}
.event-detail-grid>div>b{
  overflow-wrap:anywhere;
  white-space:normal;
}
.event-detail-grid>div>small{
  color:#7d8994;
  font-size:9px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.event-detail-grid>div>small a,
.event-inline-link{
  color:#9bb8d0;
  text-decoration:none;
}
.event-detail-grid>div>small a:hover,
.event-inline-link:hover{text-decoration:underline}

.event-detail-section{
  margin-top:8px;
  padding:10px;
  border:1px solid #242b32;
  border-radius:8px;
  background:#0d1013;
}
.event-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.event-section-head>div{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.event-section-head .ui-icon{
  width:15px;
  height:15px;
  color:#8ca5b9;
}
.event-section-head span{
  display:grid;
  gap:2px;
  min-width:0;
}
.event-section-head b{
  color:#dce5ed;
  font-size:11px;
}
.event-section-head small{
  color:#71808d;
  font-size:9px;
}

.event-attendee-list{display:grid;gap:5px}
.event-attendee{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:7px 8px;
  border:1px solid #202830;
  border-radius:7px;
  background:#0a0d10;
}
.event-attendee-avatar{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid #30404d;
  border-radius:50%;
  background:#111a21;
  color:#dce7ef;
  font-size:10px;
  font-weight:800;
}
.event-attendee-info{
  display:grid;
  gap:2px;
  min-width:0;
}
.event-attendee-info>b{
  color:#e4e9ed;
  font-size:10.5px;
  overflow-wrap:anywhere;
}
.event-attendee-info>b em{
  display:inline-flex;
  margin-left:4px;
  padding:1px 4px;
  border:1px solid #31414d;
  border-radius:5px;
  color:#8195a5;
  font-size:7px;
  font-style:normal;
  font-weight:700;
  text-transform:uppercase;
}
.event-attendee-info>a,
.event-attendee-info>small{
  color:#74818c;
  font-size:9px;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.event-attendee-info>a:hover{text-decoration:underline}
.event-rsvp{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:23px;
  padding:0 7px;
  border:1px solid #303a43;
  border-radius:20px;
  color:#8e9ba6;
  font-size:8px;
  white-space:nowrap;
}
.event-rsvp.accepted{border-color:#35483f;color:#9eb8a8;background:#0d1511}
.event-rsvp.declined{border-color:#4a3438;color:#c69ba2;background:#160d0f}
.event-rsvp.tentative{border-color:#4b4535;color:#c4b68f;background:#15130d}
.event-rsvp.pending{border-color:#343e48;color:#8e9ba6;background:#0c1013}

.event-link-list{display:grid;gap:6px}
.event-resource-link{
  display:grid;
  gap:2px;
  min-width:0;
  padding:8px 9px;
  border:1px solid #26313a;
  border-radius:7px;
  background:#0a0d10;
  color:#dce5ed;
  text-decoration:none;
}
.event-resource-link:hover{border-color:#3b4c59;background:#0e1317}
.event-resource-link b{
  font-size:10px;
  overflow-wrap:anywhere;
}
.event-resource-link small{
  color:#74818c;
  font-size:9px;
  overflow-wrap:anywhere;
}

@media(max-width:760px){
  .event-detail-modal.modal.compact{
    width:100%;
    max-height:96dvh;
  }
  .event-primary-actions{display:grid;grid-template-columns:1fr}
  .event-primary-actions>a{width:100%}
  .event-attendee{
    grid-template-columns:30px minmax(0,1fr);
  }
  .event-rsvp{
    grid-column:2;
    justify-self:start;
  }
}


/* TaskEsc v3.5.1 — comparativo permanente de faturamento, custos e lucro */
.finance-profit-comparison{
  display:grid;
  gap:13px;
  overflow:hidden!important;
}
.finance-profit-margin{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border:1px solid #2c3740;
  border-radius:999px;
  background:#0c1013;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.finance-profit-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1.1fr);
  align-items:stretch;
  gap:7px;
}
.finance-profit-metric{
  min-width:0;
  display:grid;
  gap:4px;
  align-content:center;
  padding:13px 14px;
  border:1px solid #26313a;
  border-radius:10px;
  background:#0c1013;
}
.finance-profit-metric>span{
  color:#748391;
  font-size:9px;
  font-weight:800;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.finance-profit-metric>b{
  color:#e8edf1;
  font-size:20px;
  line-height:1.15;
  overflow-wrap:anywhere;
}
.finance-profit-metric>small{
  color:#6d7882;
  font-size:9px;
  line-height:1.4;
}
.finance-profit-metric.revenue{border-color:#304252}
.finance-profit-metric.costs{border-color:#463136}
.finance-profit-metric.costs>b{color:#d98e99}
.finance-profit-metric.result.positive{border-color:#31483a;background:#0c1310}
.finance-profit-metric.result.positive>b{color:#9bc6aa}
.finance-profit-metric.result.negative{border-color:#51333a;background:#150d0f}
.finance-profit-metric.result.negative>b{color:#e09aa5}
.finance-profit-equation{
  display:grid;
  place-items:center;
  color:#64717b;
  font-size:20px;
  font-weight:800;
}
.finance-profit-bars{
  display:grid;
  gap:9px;
  padding:12px 13px;
  border:1px solid #232c33;
  border-radius:10px;
  background:#090c0f;
}
.finance-profit-bar-row{
  display:grid;
  grid-template-columns:155px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-width:0;
}
.finance-profit-bar-row>div:first-child{
  display:flex;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  font-size:10px;
}
.finance-profit-bar-row span{color:#7b8995}
.finance-profit-bar-row b{color:#cfd8df;white-space:nowrap}
.finance-profit-track{
  height:9px;
  overflow:hidden;
  border-radius:99px;
  background:#171d22;
}
.finance-profit-track>i{
  display:block;
  height:100%;
  min-width:0;
  border-radius:inherit;
}
.finance-profit-track>i.revenue{background:linear-gradient(90deg,#3f617d,#7290a7)}
.finance-profit-track>i.costs{background:linear-gradient(90deg,#6e3d47,#b05f70)}
.finance-profit-foot{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding-top:1px;
  color:#82909b;
  font-size:10px;
  line-height:1.5;
}
.finance-profit-foot>b,
.finance-profit-foot span{min-width:0}
.finance-profit-foot small{color:#65717a}

@media(max-width:760px){
  .finance-profit-comparison{gap:9px}
  .finance-profit-comparison .panel-head{
    align-items:flex-start;
    gap:7px;
  }
  .finance-profit-margin{
    min-height:26px;
    padding:0 8px;
    font-size:9px;
  }
  .finance-profit-grid{
    grid-template-columns:1fr;
    gap:6px;
  }
  .finance-profit-equation{display:none}
  .finance-profit-metric{
    padding:11px 12px;
  }
  .finance-profit-metric>b{font-size:18px}
  .finance-profit-bar-row{
    grid-template-columns:1fr;
    gap:5px;
  }
  .finance-profit-foot{
    display:grid;
    grid-template-columns:1fr;
    gap:5px;
  }
}


/* TaskEsc v3.6 — pagamentos de custos e mensalidades recorrentes */
.monthly-billing-panel{overflow:hidden!important}
.monthly-billing-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin:0 0 11px;
}
.monthly-billing-summary>span{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:6px;
  padding:9px 10px;
  border:1px solid #26313a;
  border-radius:8px;
  background:#0b0f12;
  color:#7d8994;
  font-size:9px;
}
.monthly-billing-summary b{
  color:#e1e8ed;
  font-size:14px;
}
.expense-table .status-ok,
.expense-table .status-warn,
.monthly-billing-panel .status-ok,
.monthly-billing-panel .status-warn,
.monthly-billing-panel .status-error{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 7px;
  border-radius:99px;
  white-space:nowrap;
}
.expense-table .status-ok,
.monthly-billing-panel .status-ok{
  border:1px solid #31483a;
  background:#0c1510;
}
.expense-table .status-warn,
.monthly-billing-panel .status-warn{
  border:1px solid #4a4130;
  background:#15120b;
}
.monthly-billing-panel .status-error{
  border:1px solid #4c3238;
  background:#150d0f;
}
.expense-payment-field.hidden,
.expense-payment-date.hidden{display:none!important}

@media(max-width:760px){
  .monthly-billing-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .monthly-billing-summary>span{
    padding:8px;
    font-size:8px;
  }
  .monthly-billing-summary b{font-size:13px}
}


/* TaskEsc v3.7 — financeiro mais claro e categorias de custo */
.finance-health-panel{
  display:grid;
  gap:14px;
  overflow:hidden!important;
}
.finance-health-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.finance-health-title{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.finance-health-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border:1px solid #31404a;
  border-radius:12px;
  background:#0b1014;
}
.finance-health-icon .ui-icon{width:20px;height:20px}
.finance-health-title h3{margin:2px 0 2px;font-size:18px}
.finance-health-title p{margin:0;color:#77838e;font-size:10px;line-height:1.45}
.finance-health-projection{
  display:grid;
  gap:2px;
  min-width:210px;
  padding:10px 12px;
  border:1px solid #27313a;
  border-radius:10px;
  background:#0b0f12;
  text-align:right;
}
.finance-health-projection span{font-size:8px;letter-spacing:.5px;text-transform:uppercase;color:#72808b}
.finance-health-projection b{font-size:18px}
.finance-health-projection small{font-size:8px;color:#65717a}
.finance-health-panel.health-healthy{border-color:#2b4135}
.finance-health-panel.health-healthy .finance-health-icon{border-color:#355743;color:#91bea0;background:#0b1510}
.finance-health-panel.health-attention{border-color:#463f2f}
.finance-health-panel.health-attention .finance-health-icon{border-color:#5b5137;color:#c4ae73;background:#16130b}
.finance-health-panel.health-critical{border-color:#4a3137}
.finance-health-panel.health-critical .finance-health-icon{border-color:#68424b;color:#d88b98;background:#170d10}
.finance-flow-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
.finance-flow-card{
  min-width:0;
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid #253039;
  border-radius:9px;
  background:#0b0f12;
}
.finance-flow-card>span{
  color:#73828d;
  font-size:8px;
  font-weight:800;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.finance-flow-card>b{
  color:#e5ebef;
  font-size:18px;
  overflow-wrap:anywhere;
}
.finance-flow-card>small{font-size:8px;color:#64717a;line-height:1.35}
.finance-flow-card.incoming,.finance-flow-card.pending-in{border-color:#304252}
.finance-flow-card.outgoing,.finance-flow-card.pending-out{border-color:#49333a}
.finance-flow-card.balance{border-color:#34423a}
.finance-future-comparison{margin-top:0}
.finance-details-panel{
  overflow:hidden!important;
  padding:0!important;
}
.finance-details-panel>summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 15px;
  cursor:pointer;
  user-select:none;
}
.finance-details-panel>summary::-webkit-details-marker{display:none}
.finance-details-panel>summary span{font-size:11px;font-weight:800;color:#d8e0e6}
.finance-details-panel>summary small{font-size:9px;color:#687681}
.finance-details-panel[open]>summary{border-bottom:1px solid #222b32}
.finance-details-body{padding:13px 15px}
.finance-details-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
}
.finance-details-grid>div{
  min-width:0;
  display:grid;
  gap:3px;
  padding:10px;
  border:1px solid #222c33;
  border-radius:8px;
  background:#0a0d10;
}
.finance-details-grid span{font-size:8px;color:#72808a;text-transform:uppercase;letter-spacing:.4px}
.finance-details-grid b{font-size:13px;overflow-wrap:anywhere}
.field-label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.field-label-row label{margin:0!important}
.category-modal-backdrop{
  z-index:40;
  background:rgba(0,0,0,.72);
}
.category-quick-modal{width:min(430px,calc(100% - 26px))!important}
.expense-categories-modal{width:min(680px,calc(100% - 26px))!important}
.category-create-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  margin-bottom:12px;
}
.expense-category-manager-list{
  display:grid;
  gap:6px;
  max-height:52vh;
  overflow:auto;
  padding-right:3px;
}
.expense-category-manager-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:9px 10px;
  border:1px solid #232d34;
  border-radius:8px;
  background:#0b0f12;
}
.expense-category-manager-row>div:first-child{
  display:grid;
  gap:2px;
  min-width:0;
}
.expense-category-manager-row b{
  font-size:10px;
  color:#dce4e9;
  overflow-wrap:anywhere;
}
.expense-category-manager-row small{font-size:8px;color:#687680}

@media(max-width:980px){
  .finance-flow-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .finance-details-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .finance-title{align-items:flex-start}
  .finance-title .top-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .finance-title .top-actions #manage-expense-categories{grid-column:1/-1}
  .finance-health-head{
    display:grid;
    grid-template-columns:1fr;
  }
  .finance-health-projection{
    min-width:0;
    text-align:left;
  }
  .finance-flow-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .finance-flow-card.balance{grid-column:1/-1}
  .finance-details-panel>summary{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .finance-details-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .category-create-row{grid-template-columns:1fr}
  .expense-category-manager-row{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .expense-category-manager-row .row-actions{grid-column:1/-1}
}


/* TaskEsc v3.7.1 — filtros individuais nos cards financeiros */
.finance-period-panel{overflow:hidden!important}
.finance-period-controls{
  display:grid;
  grid-template-columns:minmax(160px,220px) minmax(160px,220px) auto;
  align-items:end;
  gap:8px;
}
.finance-period-controls .filter-actions{
  display:flex;
  gap:7px;
  align-items:center;
  padding-bottom:1px;
}
.panel-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.finance-filter-result{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 8px;
  border:1px solid #27323a;
  border-radius:999px;
  background:#0a0e11;
  color:#74828d;
  font-size:8px;
  font-weight:700;
  white-space:nowrap;
}
.finance-card-filters{
  display:grid;
  grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(135px,.8fr)) auto;
  gap:7px;
  align-items:center;
  margin:10px 0 12px;
}
.finance-card-filters-wide{
  grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(125px,.75fr)) auto;
}
.finance-card-filters .search-box{
  min-width:0;
  width:100%;
}
.finance-card-filters .input,
.finance-card-filters .select{
  min-width:0;
  width:100%;
  height:38px;
}
.finance-card-filters .search-box .input{padding-left:34px}
.finance-filter-clear{
  min-height:38px;
  white-space:nowrap;
}
.finance-entry-panel,
.expense-panel,
.recurring-expense-panel,
.monthly-billing-panel,
.finance-log-panel{
  overflow:hidden!important;
}
.finance-entry-panel .table-wrap,
.expense-panel .table-wrap,
.recurring-expense-panel .table-wrap,
.monthly-billing-panel .table-wrap,
.finance-log-panel .table-wrap{
  margin-top:2px;
}
.finance-log-panel .finance-card-filters{margin-top:8px}
.finance-log-wrap{max-height:430px;overflow:auto}
.finance-card-filters + .table-wrap tbody tr[data-filter-row]{
  transition:opacity .12s ease;
}

@media(max-width:1180px){
  .finance-card-filters,
  .finance-card-filters-wide{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .finance-card-filters .search-box{
    grid-column:span 2;
  }
  .finance-filter-clear{width:100%}
}
@media(max-width:760px){
  .finance-period-controls{
    grid-template-columns:1fr 1fr;
  }
  .finance-period-controls .filter-actions{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .finance-card-filters,
  .finance-card-filters-wide{
    grid-template-columns:1fr 1fr;
    margin-top:8px;
  }
  .finance-card-filters .search-box{
    grid-column:1/-1;
  }
  .finance-filter-clear{
    grid-column:1/-1;
  }
  .panel-head-actions{
    width:100%;
    justify-content:flex-start;
  }
  .expense-panel .panel-head,
  .monthly-billing-panel .panel-head,
  .finance-log-panel .panel-head{
    align-items:flex-start;
  }
}
@media(max-width:480px){
  .finance-period-controls,
  .finance-card-filters,
  .finance-card-filters-wide{
    grid-template-columns:1fr;
  }
  .finance-period-controls .filter-actions,
  .finance-card-filters .search-box,
  .finance-filter-clear{
    grid-column:auto;
  }
}


/* TaskEsc v3.8 — visão financeira centrada no caixa */
.finance-cash-overview{
  display:grid;
  gap:14px;
  overflow:hidden!important;
  padding:16px!important;
}
.finance-cash-overview-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.finance-cash-overview-head h3{
  margin:3px 0 2px;
  font-size:17px;
}
.finance-cash-health{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:29px;
  padding:0 10px;
  border:1px solid #303a42;
  border-radius:999px;
  background:#0b0f12;
  color:#93a0aa;
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
}
.finance-cash-health.health-healthy{
  border-color:#355443;
  background:#0c1510;
  color:#9ac1a8;
}
.finance-cash-health.health-attention{
  border-color:#51472f;
  background:#16130b;
  color:#c5b276;
}
.finance-cash-health.health-critical{
  border-color:#5c3941;
  background:#170d10;
  color:#d99aa5;
}
.finance-cash-groups{
  display:grid;
  gap:10px;
}
.finance-cash-group{
  min-width:0;
  padding:11px;
  border:1px solid #252f36;
  border-radius:11px;
  background:#090d10;
}
.finance-cash-group.current{border-color:#2b3943}
.finance-cash-group.future{border-color:#333b42;background:#0b0e11}
.finance-cash-group-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}
.finance-cash-group-head>span{
  font-size:8px;
  font-weight:900;
  letter-spacing:.7px;
  color:#9babb7;
}
.finance-cash-group-head>small{
  font-size:8px;
  color:#65727c;
}
.finance-cash-cards{
  display:grid;
  grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1.15fr);
  align-items:stretch;
  gap:6px;
}
.finance-cash-card{
  min-width:0;
  display:grid;
  align-content:center;
  gap:4px;
  padding:14px 15px;
  border:1px solid #28333b;
  border-radius:10px;
  background:#0d1114;
}
.finance-cash-card>span{
  color:#82919d;
  font-size:9px;
  font-weight:800;
  letter-spacing:.45px;
  text-transform:uppercase;
}
.finance-cash-card>b{
  color:#eef2f5;
  font-size:23px;
  line-height:1.08;
  overflow-wrap:anywhere;
}
.finance-cash-card>small{
  color:#687680;
  font-size:8.5px;
  line-height:1.35;
}
.finance-cash-card.incoming{
  border-color:#304453;
  background:#0c1216;
}
.finance-cash-card.incoming>b{color:#a9c4d7}
.finance-cash-card.outgoing{
  border-color:#4a343a;
  background:#130d0f;
}
.finance-cash-card.outgoing>b{color:#d798a4}
.finance-cash-card.balance,
.finance-cash-card.final{
  border-width:1px;
}
.finance-cash-card.balance.positive,
.finance-cash-card.final.positive{
  border-color:#36533f;
  background:#0c1510;
}
.finance-cash-card.balance.positive>b,
.finance-cash-card.final.positive>b{color:#9fc9ad}
.finance-cash-card.balance.negative,
.finance-cash-card.final.negative{
  border-color:#603b44;
  background:#180d10;
}
.finance-cash-card.balance.negative>b,
.finance-cash-card.final.negative>b{color:#e09ba6}
.finance-cash-card.final{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.finance-cash-operator{
  display:grid;
  place-items:center;
  color:#64717b;
  font-size:18px;
  font-weight:900;
}
.finance-cash-formula{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.finance-cash-formula>span{
  min-width:0;
  padding:9px 11px;
  border:1px solid #242d34;
  border-radius:8px;
  background:#0a0d10;
  color:#7f8c96;
  font-size:9px;
  line-height:1.45;
}
.finance-cash-formula b{color:#aeb9c1}
.finance-cash-formula strong{font-size:10px}
.finance-period-panel{
  padding:11px 13px!important;
}
.finance-period-panel .panel-head{margin-bottom:7px}
.finance-period-panel .panel-head h3{font-size:11px}
.finance-period-panel .panel-sub{font-size:8px}
.finance-period-controls{
  grid-template-columns:minmax(140px,190px) minmax(140px,190px) auto!important;
}
.finance-period-controls .field label{
  font-size:8px;
  margin-bottom:4px;
}
.finance-period-controls .input{
  height:36px;
}

@media(max-width:980px){
  .finance-cash-cards{
    grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr);
  }
  .finance-cash-card{
    padding:12px;
  }
  .finance-cash-card>b{font-size:19px}
}
@media(max-width:760px){
  .finance-cash-overview{
    padding:12px!important;
    gap:10px;
  }
  .finance-cash-overview-head{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
  .finance-cash-health{
    justify-self:start;
  }
  .finance-cash-cards{
    grid-template-columns:1fr;
    gap:6px;
  }
  .finance-cash-operator{display:none}
  .finance-cash-card{
    padding:11px 12px;
  }
  .finance-cash-card>b{font-size:20px}
  .finance-cash-card.balance,
  .finance-cash-card.final{
    padding:14px 12px;
  }
  .finance-cash-formula{
    grid-template-columns:1fr;
  }
  .finance-period-controls{
    grid-template-columns:1fr 1fr!important;
  }
}
@media(max-width:480px){
  .finance-period-controls{
    grid-template-columns:1fr!important;
  }
  .finance-period-controls .filter-actions{
    grid-column:auto!important;
  }
}


/* TaskEsc v3.8.1 — alinhamento do modal de custo e categoria rápida */
.expense-modal .form-grid{
  align-items:start;
}
.expense-modal .field{
  position:relative;
}
.expense-modal .field>label,
.expense-modal .field-label-row{
  min-height:18px;
  box-sizing:border-box;
}
.expense-modal .field>label{
  margin-bottom:6px;
}
.expense-modal .field-label-row{
  position:relative;
  display:flex;
  align-items:center;
  margin-bottom:6px;
  padding-right:132px;
}
.expense-modal .field-label-row label{
  margin:0!important;
  line-height:18px;
}
.expense-modal #quick-new-expense-category{
  position:absolute;
  top:-5px;
  right:0;
  min-height:28px;
  height:28px;
  padding:3px 8px;
}
.expense-modal .input,
.expense-modal .select{
  height:40px;
}
.category-modal-backdrop{
  z-index:180!important;
}
.category-quick-modal{
  position:relative;
  z-index:181;
}
.category-quick-modal .input{
  height:40px;
}

@media(max-width:520px){
  .expense-modal .field-label-row{
    min-height:34px;
    padding-right:0;
  }
  .expense-modal #quick-new-expense-category{
    position:absolute;
    top:-8px;
    right:0;
  }
}


/* TaskEsc v3.8.2 — detalhamento clicável dos totais do caixa */
.finance-cash-card[data-breakdown]{
  cursor:pointer;
  transition:border-color .14s ease,background .14s ease,transform .14s ease,box-shadow .14s ease;
}
.finance-cash-card[data-breakdown]:hover{
  transform:translateY(-1px);
  border-color:#526370;
  box-shadow:0 8px 24px rgba(0,0,0,.16);
}
.finance-cash-card[data-breakdown]:focus-visible{
  outline:2px solid #607b91;
  outline-offset:2px;
}
.finance-cash-card[data-breakdown]::after{
  content:"Ver itens";
  justify-self:start;
  margin-top:4px;
  color:#718494;
  font-size:8px;
  font-weight:700;
  letter-spacing:.25px;
}
.cash-breakdown-modal{
  width:min(920px,100%)!important;
}
.cash-breakdown-loading{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#9aa7b1;
}
.cash-breakdown-loading b{font-size:11px}
.cash-breakdown-summary{
  display:grid;
  gap:3px;
  margin-bottom:12px;
  padding:13px 14px;
  border:1px solid #29343c;
  border-radius:9px;
  background:#0a0e11;
}
.cash-breakdown-summary>span{
  color:#788792;
  font-size:8px;
  font-weight:800;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.cash-breakdown-summary>b{
  font-size:24px;
  line-height:1.1;
}
.cash-breakdown-summary>small{
  color:#77848e;
  font-size:9px;
}
.cash-breakdown-summary.positive{
  border-color:#31473a;
  background:#0b130f;
}
.cash-breakdown-summary.positive>b{color:#9fc6ad}
.cash-breakdown-summary.negative{
  border-color:#54353d;
  background:#160d0f;
}
.cash-breakdown-summary.negative>b{color:#dc99a4}
.cash-breakdown-groups{
  display:grid;
  gap:10px;
}
.cash-breakdown-group{
  overflow:hidden;
  border:1px solid #252f36;
  border-radius:9px;
  background:#090d10;
}
.cash-breakdown-group.incoming{border-color:#2d414f}
.cash-breakdown-group.outgoing{border-color:#46343a}
.cash-breakdown-group-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  border-bottom:1px solid #222a30;
  background:#0d1114;
}
.cash-breakdown-group-head>div{
  display:grid;
  gap:1px;
}
.cash-breakdown-group-head b{
  color:#dbe3e8;
  font-size:10px;
}
.cash-breakdown-group-head small{
  color:#65727c;
  font-size:8px;
}
.cash-breakdown-group-head>strong{
  color:#d9e1e6;
  font-size:12px;
  white-space:nowrap;
}
.cash-breakdown-list{
  display:grid;
}
.cash-breakdown-row{
  display:grid;
  grid-template-columns:82px minmax(0,1fr) auto 120px;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:9px 11px;
  border-bottom:1px solid #1d252b;
}
.cash-breakdown-row:last-child{border-bottom:0}
.cash-breakdown-row>time{
  color:#74828c;
  font-size:9px;
  white-space:nowrap;
}
.cash-breakdown-main{
  display:grid;
  gap:2px;
  min-width:0;
}
.cash-breakdown-main>b{
  color:#e3e9ed;
  font-size:10px;
  overflow-wrap:anywhere;
}
.cash-breakdown-main>small{
  color:#6e7a84;
  font-size:8.5px;
  overflow-wrap:anywhere;
}
.cash-breakdown-tag{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 7px;
  border:1px solid #2d3840;
  border-radius:99px;
  color:#86949f;
  font-size:8px;
  white-space:nowrap;
}
.cash-breakdown-row>strong{
  justify-self:end;
  font-size:11px;
  white-space:nowrap;
}
.cash-breakdown-row>strong.positive{color:#98c1a7}
.cash-breakdown-row>strong.negative{color:#d995a0}

@media(max-width:760px){
  .finance-cash-card[data-breakdown]::after{font-size:9px}
  .cash-breakdown-modal{
    width:100%!important;
  }
  .cash-breakdown-row{
    grid-template-columns:70px minmax(0,1fr) auto;
    gap:7px;
  }
  .cash-breakdown-tag{
    grid-column:2;
    justify-self:start;
  }
  .cash-breakdown-row>strong{
    grid-column:3;
    grid-row:1/3;
    align-self:center;
  }
}
@media(max-width:480px){
  .cash-breakdown-row{
    grid-template-columns:1fr auto;
    padding:10px;
  }
  .cash-breakdown-row>time{
    grid-column:1;
  }
  .cash-breakdown-main{
    grid-column:1/-1;
  }
  .cash-breakdown-tag{
    grid-column:1;
  }
  .cash-breakdown-row>strong{
    grid-column:2;
    grid-row:1;
  }
}


/* TaskEsc v3.9 — status de Web Push por dispositivo */
.push-device-status{
  margin-top:4px;
  padding:8px 10px;
  border:1px solid #27313a;
  border-radius:7px;
  background:#0a0e11;
  color:#82909b;
  font-size:9px;
  line-height:1.45;
}
.pwa-actions [data-push-test].hidden{display:none!important}
@media(max-width:600px){
  .pwa-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
  }
  .pwa-actions button{width:100%}
}
