/* Gestor Operacional — linguagem visual calma.
   Só aparência: cores, tipo, espaçamento, estados vazios e leitura.
   Não altera grelhas de impressão, limpezas nem a grelha de seguros. */

:root{
  --calm-navy:#10243f;
  --calm-navy-2:#0c1c33;
  --calm-ink:#1c2b42;
  --calm-muted:#5e7088;
  --calm-line:#e3eaf2;
  --calm-line-strong:#d3deea;
  --calm-bg:#f4f7fb;
  --calm-surface:#ffffff;
  --calm-brand:#1f6fdb;
  --calm-brand-2:#185bb8;
  --calm-green:#0f7a45;
  --calm-green-bg:#e8f6ee;
  --calm-amber:#9a6200;
  --calm-amber-bg:#fff6e0;
  --calm-red:#b42318;
  --calm-red-bg:#fdecec;
  --calm-blue-bg:#e8f1fd;
  --calm-slate:#526074;
  --calm-slate-bg:#eef2f6;
  --calm-radius:12px;
  --calm-shadow:0 1px 2px rgba(16,36,64,.04),0 8px 24px rgba(16,36,64,.05);
  --sidebar:252px;
}

@media screen{
  html,body{
    font-size:14px!important;
    background:var(--calm-bg)!important;
    color:var(--calm-ink)!important;
    font-family:"Segoe UI",system-ui,-apple-system,sans-serif!important;
  }
}

h1,h2,h3,h1:focus,h2:focus{outline:none!important}

/* Barra lateral */
.sidebar{
  width:var(--sidebar)!important;
  background:linear-gradient(180deg,var(--calm-navy) 0%,var(--calm-navy-2) 100%)!important;
  box-shadow:none!important;
  border-right:1px solid rgba(255,255,255,.04);
}
.main-stage,.content-wrap{margin-left:var(--sidebar)!important}
.brand-zone,.brand-zone.brand-zone-image{background:var(--calm-navy)!important}
.quick-launch{
  gap:6px!important;
  padding:10px 10px 8px!important;
  background:transparent!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.quick-launch a{
  height:34px!important;
  border-radius:9px!important;
  font-size:12px!important;
  font-weight:650!important;
  color:#e7eef8!important;
  background:rgba(255,255,255,.05)!important;
  border:1px solid rgba(255,255,255,.08)!important;
}
.quick-launch a:hover{background:rgba(255,255,255,.1)!important}
.nav-scroll{padding:6px 10px 78px!important}
.nav-group{margin:2px 0 8px!important}
.nav-heading{
  font-size:11px!important;
  letter-spacing:.08em!important;
  color:#9eb0c9!important;
  padding:12px 8px 6px!important;
  font-weight:700!important;
}
.nav-link{
  height:36px!important;
  padding:0 8px!important;
  gap:10px!important;
  margin:1px 0!important;
  border-radius:9px!important;
  font-size:13.5px!important;
  font-weight:550!important;
  color:#e4edf8!important;
}
.nav-link:hover{background:rgba(255,255,255,.07)!important;color:#fff!important}
.nav-current{
  background:#1d5fbf!important;
  box-shadow:none!important;
  color:#fff!important;
}
.nav-icon,
.nav-icon.ic-blue,.nav-icon.ic-violet,.nav-icon.ic-sky,.nav-icon.ic-amber,
.nav-icon.ic-slate,.nav-icon.ic-purple,.nav-icon.ic-cyan,.nav-icon.ic-green,
.nav-icon.ic-orange,.nav-icon.ic-rose,.nav-icon.ic-indigo,.nav-icon.ic-emerald{
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  border-radius:7px!important;
  background:rgba(255,255,255,.08)!important;
  color:#d5e4f6!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:700!important;
}
.nav-current .nav-icon{background:rgba(255,255,255,.16)!important;color:#fff!important}
.nav-arrow{display:none!important}
.sidebar-foot{
  background:#0b1b31!important;
  font-size:11px!important;
  padding:10px 12px!important;
}
.sidebar-foot small{font-size:10px!important;color:#93a6c2!important}

/* Barra de topo */
.commandbar{
  height:56px!important;
  padding:0 16px!important;
  background:#fff!important;
  border-bottom:1px solid var(--calm-line)!important;
  box-shadow:none!important;
  gap:12px!important;
}
.crumb{max-width:190px}
.crumb,.crumb b{font-size:13px!important;color:var(--calm-muted)!important}
.crumb b{color:var(--calm-ink)!important;font-weight:700}
.crumb span{display:none!important}
.command-actions{gap:6px!important}
.command-actions>a{
  width:auto!important;
  min-width:0!important;
  height:34px!important;
  padding:0 8px!important;
  border-radius:9px!important;
  border:1px solid var(--calm-line)!important;
  background:#fff!important;
  color:var(--calm-ink)!important;
  font-size:12.5px!important;
  font-weight:650!important;
  box-shadow:none!important;
}
.command-actions>a:hover{background:#f4f8fd!important;border-color:#b9cceb!important;color:var(--calm-brand-2)!important}
.avatar,.avatar-btn{
  width:34px!important;
  height:34px!important;
  border-radius:10px!important;
  background:var(--calm-navy)!important;
  font-size:11px!important;
}
.global-search{
  height:38px!important;
  border-radius:10px!important;
  border-color:var(--calm-line)!important;
  background:#f7f9fc!important;
}
.global-search input{height:36px!important;font-size:13px!important}

/* Páginas */
.screen{background:var(--calm-bg)!important}
.workspace,.ops-dashboard{padding:16px 18px 24px!important}
.page-titlebar{margin:0 0 12px!important;gap:10px!important;align-items:flex-start!important}
.page-titlebar h1,.ops-topline h1{
  font-size:26px!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
  color:#122848!important;
  font-weight:720!important;
}
.page-titlebar p,.ops-topline p{font-size:13.5px!important;color:var(--calm-muted)!important;margin-top:3px!important}
.section-kicker,.ops-topline .section-kicker{font-size:11px!important;letter-spacing:.12em!important;color:var(--calm-brand)!important}
.workspace[class*="module-"] .page-titlebar:before{
  width:4px!important;
  height:28px!important;
  background:var(--calm-brand)!important;
  box-shadow:none!important;
  margin-right:2px;
}

/* Botões — uma só cor para a ação principal */
.btn,.tinybtn,.stackbtn{
  font-size:13px!important;
  line-height:1.2!important;
  min-height:34px!important;
  padding:6px 12px!important;
  border-radius:9px!important;
  border:1px solid var(--calm-line-strong)!important;
  background:#fff!important;
  color:var(--calm-ink)!important;
  font-weight:650!important;
  box-shadow:none!important;
}
.btn:hover,.tinybtn:hover,.stackbtn:hover{background:#f5f8fc!important;transform:none!important;box-shadow:none!important}
.btn.primary,.primary,
.workspace[class*="module-"] .btn.primary,
.task-editor-actions .btn.primary,
.module-expenses .page-actions .btn.new-expense-btn{
  background:var(--calm-brand)!important;
  background-image:none!important;
  border-color:var(--calm-brand)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:none!important;
}
.btn.primary:hover,.primary:hover,
.workspace[class*="module-"] .btn.primary:hover,
.module-expenses .page-actions .btn.new-expense-btn:hover{
  background:var(--calm-brand-2)!important;
  border-color:var(--calm-brand-2)!important;
  color:#fff!important;
}
.tinybtn{font-size:12px!important;min-height:28px!important;padding:4px 9px!important}
.page-actions{gap:6px!important}

/* Campos e barras de filtro */
.input,.textarea,select.input,input.input{
  font-size:13.5px!important;
  min-height:36px!important;
  padding:7px 10px!important;
  border-radius:9px!important;
  border:1px solid var(--calm-line-strong)!important;
  background:#fff!important;
  color:var(--calm-ink)!important;
}
.input:focus,.textarea:focus,select:focus,input:focus{
  border-color:#7aa7e4!important;
  box-shadow:0 0 0 3px rgba(31,111,219,.12)!important;
  outline:none!important;
}
.toolbar,.subtoolbar,.edit-strip,.opbar,.report-controls{
  border-radius:12px!important;
  border:1px solid var(--calm-line)!important;
  background:#fff!important;
  padding:8px 10px!important;
  margin-bottom:10px!important;
  gap:8px!important;
  box-shadow:none!important;
}
.op-chip{
  font-size:12px!important;
  padding:4px 9px!important;
  border-radius:999px!important;
  background:#f3f6fa!important;
  color:var(--calm-slate)!important;
  border:1px solid var(--calm-line)!important;
}
.help,.muted{font-size:12.5px!important;color:var(--calm-muted)!important}

/* Cartões */
.panel,.ops-card,.work-card{
  border-radius:var(--calm-radius)!important;
  border:1px solid var(--calm-line)!important;
  background:#fff!important;
  box-shadow:var(--calm-shadow)!important;
}
.panel-head,.ops-card-head{
  min-height:42px!important;
  height:auto!important;
  padding:8px 12px!important;
  background:#fbfcfe!important;
  border-bottom:1px solid var(--calm-line)!important;
  font-size:13.5px!important;
  color:#173152!important;
}
.panel-head b,.ops-card-head b{font-size:14px!important}
.module-tasks .task-detail{border-top:0!important}
.module-tasks .task-split{grid-template-columns:minmax(0,1fr) 250px!important}
.module-tasks .vgrid{table-layout:fixed!important;min-width:0!important;width:100%!important}
.module-tasks .vgrid th,.module-tasks .vgrid td{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.module-tasks .vgrid td.name{min-width:0!important;white-space:nowrap!important}
.module-tasks .vgrid th{font-size:10px!important;letter-spacing:0!important}
.module-tasks .vgrid th:nth-child(1),.module-tasks .vgrid td:nth-child(1){width:32px}
.module-tasks .vgrid th:nth-child(2),.module-tasks .vgrid td:nth-child(2){width:104px}
.module-tasks .vgrid th:nth-child(3),.module-tasks .vgrid td:nth-child(3){width:92px}
.module-tasks .vgrid th:nth-child(4),.module-tasks .vgrid td:nth-child(4){width:72px}
.module-tasks .vgrid th:nth-child(9),.module-tasks .vgrid td:nth-child(9){width:158px}
.module-tasks .vgrid th:nth-child(10),.module-tasks .vgrid td:nth-child(10){width:58px}
.quick-launch a,.quick-launch a span{font-size:10.5px!important;letter-spacing:0!important}
.module-tasks .status{max-width:100%}
.module-visits .visit-matrix th,.module-visits .visit-matrix td{font-size:11.5px!important;padding:4px 5px!important}
.agenda-day-list .btn{white-space:nowrap!important;font-size:12px!important;padding:6px 8px!important}
.quick-launch a,.quick-launch a span{font-size:10px!important;font-weight:600!important;padding:0 2px!important;letter-spacing:0!important}
.fraction-panel .vgrid td,.module-insurance .insurance-control-grid td{overflow:hidden!important}
.fraction-panel .status,.module-insurance .status{white-space:normal!important}

/* Tabelas */
.vgrid,.grid-table{font-size:13px!important}
.vgrid th,.grid-table th{
  font-size:11px!important;
  letter-spacing:.04em!important;
  padding:9px 10px!important;
  color:#5c6e86!important;
  background:#f6f8fb!important;
  font-weight:700!important;
}
.vgrid td,.grid-table td{
  padding:9px 10px!important;
  font-size:13px!important;
  border-bottom:1px solid #eef2f6!important;
  color:#24364e!important;
}
.vgrid tbody tr:nth-child(even) td,.grid-table tbody tr:nth-child(even) td{background:#fbfcfe}
.vgrid tbody tr:hover td,.grid-table tbody tr:hover td{background:#f3f7fd!important}
.vgrid tbody tr.selected td,.grid-table tbody tr.selected td,
.workspace[class*="module-"] .vgrid tr.selected td{
  background:#eaf2fc!important;
}
.vgrid td.code{color:var(--calm-brand-2)!important}

/* Estados: em curso, à espera, concluído */
.status,.state-badge,.due-badge{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.2!important;
  padding:4px 9px!important;
  border-radius:999px!important;
  border:1px solid transparent!important;
  letter-spacing:0!important;
  white-space:nowrap;
}
.status::before,.state-badge::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  flex:none;
}
.status.blue,.state-badge.blue{background:var(--calm-blue-bg)!important;color:#1857b5!important;border-color:#d3e4fa!important}
.status.amber,.state-badge.amber,.group-badge.pending{background:var(--calm-amber-bg)!important;color:var(--calm-amber)!important;border-color:#f3e2b6!important}
.status.green,.state-badge.green,.op-chip.success{background:var(--calm-green-bg)!important;color:var(--calm-green)!important;border-color:#cfe8d8!important}
.status.red,.status.pink,.state-badge.red,.group-badge.due,.due-badge.overdue{background:var(--calm-red-bg)!important;color:var(--calm-red)!important;border-color:#f3d0d0!important}
.status.slate,.status.gray,.state-badge.slate{background:var(--calm-slate-bg)!important;color:var(--calm-slate)!important;border-color:#e1e7ee!important}
.due-badge.today{background:var(--calm-blue-bg)!important;color:#1857b5!important;border-color:#d3e4fa!important}
.group-badge{
  font-size:11px!important;
  min-height:22px!important;
  padding:2px 8px!important;
}

/* Estados vazios */
.empty-clean,.empty-cell,.agenda-empty{
  margin:12px!important;
  padding:28px 16px!important;
  border:1px dashed #d5deea!important;
  border-radius:12px!important;
  background:#f8fafc!important;
  color:var(--calm-muted)!important;
  font-size:13.5px!important;
  text-align:center!important;
}
.empty-clean.small{margin:8px!important;padding:16px 12px!important}

/* Dashboard */
.ops-topline{margin-bottom:12px!important;gap:12px!important}
.ops-date{font-size:13px!important;color:var(--calm-muted)!important}
.ops-date span{background:#eaf2fc!important;color:var(--calm-brand-2)!important;font-size:12px!important}
.ops-filterbar{margin-bottom:12px!important;gap:6px!important}
.filter-caption{font-size:12px!important;color:var(--calm-muted)!important}
.period-chip{font-size:13px!important;padding:7px 12px!important;border-radius:9px!important}
.period-chip.active{background:var(--calm-brand)!important;border-color:var(--calm-brand)!important}
.ops-kpis{gap:10px!important;margin-bottom:12px!important}
.ops-kpi{
  min-height:78px!important;
  padding:12px!important;
  border-radius:12px!important;
  box-shadow:var(--calm-shadow)!important;
  border:1px solid var(--calm-line)!important;
}
.ops-kpi small{font-size:12px!important}
.ops-kpi strong{font-size:24px!important}
.ops-kpi div>span{font-size:12px!important}
.ops-kpi-icon{width:36px!important;height:36px!important;font-size:16px!important}
.ops-card-head a{font-size:12.5px!important}
.agenda-weekday{font-size:11px!important}
.agenda-day{border-radius:8px!important}
.day-number{font-size:12px!important}
.agenda-item{font-size:12.5px!important;border-radius:8px!important}
.agenda-item b{font-size:13px!important}
.chart-legend,.agenda-legend{font-size:12px!important}

/* Separadores, modais e formulário de tarefa */
.module-tabs{
  border-radius:12px!important;
  padding:4px!important;
  background:#f3f6fa!important;
  border:1px solid var(--calm-line)!important;
  min-height:40px!important;
}
.module-tabs button{font-size:13px!important;min-height:32px!important;border-radius:8px!important;padding:6px 12px!important}
.module-tabs button.active{
  background:var(--calm-brand)!important;
  border-color:var(--calm-brand)!important;
  color:#fff!important;
}
.modal-card,.task-editor-modal{
  border-radius:16px!important;
  border:1px solid var(--calm-line)!important;
  box-shadow:0 24px 60px rgba(16,32,58,.18)!important;
}
.modal-head,.task-editor-head{background:#fbfcfe!important}
.modal-head b,.task-editor-head h2{font-size:18px!important;color:#122848!important}
.task-editor-head p,.modal-head span{font-size:13px!important;color:var(--calm-muted)!important}
.task-editor-form label{font-size:12.5px!important;color:#3d5270!important}
.modal-actions,.task-editor-actions{background:#f8fafc!important}
.detail-field span,.task-detail .detail-field span{font-size:11px!important}
.detail-field b,.task-detail .detail-field b{font-size:13.5px!important}
.task-detail-body h3{font-size:16px!important}
.task-detail-body>p,.task-complete-note{font-size:13px!important}

/* Acompanhamentos e grupos */
.accomp-condo-head,.diary-condo-head{
  min-height:40px!important;
  height:auto!important;
  padding:8px 10px!important;
}
.accomp-condo-head b,.diary-condo-head b{font-size:13.5px!important}

/* Telemóvel e tablet */
@media(max-width:1100px){
  .command-actions>a{display:none!important}
}
@media(max-width:820px){
  .main-stage,.content-wrap{margin-left:0!important}
  .ops-dashboard,.workspace{padding:12px 12px 20px!important}
  .ops-topline>div:first-child,.page-titlebar>div:first-child{padding-left:48px}
  .page-titlebar h1,.ops-topline h1{font-size:22px!important}
  .ops-kpis{grid-template-columns:1fr 1fr!important}
  .mobile-menu-toggle{
    width:42px!important;
    height:42px!important;
    border-radius:12px!important;
    top:10px!important;
    left:10px!important;
  }
}

/* Estas grelhas já têm medidas próprias. Não as alargar. */
.module-cleaning .clean-matrix th,
.module-cleaning .clean-matrix td,
.report-print-sheet .vgrid th,
.report-print-sheet .vgrid td,
.report-print-sheet .grid-table th,
.report-print-sheet .grid-table td{
  font-size:inherit;
  padding:inherit;
}
