/* Gestão SAF-T MPR — sistema de design da aplicação (tema claro) */
:root{
  color-scheme:light;
  --navy:#122240;--navy-soft:#1e3660;--blue:#2a78d6;--blue-deep:#1c5cab;--blue-soft:#eaf3ff;
  --bg:#eef2f8;--surface:#ffffff;--text:#16233d;--muted:#5d7290;--line:#d9e3ef;--line-soft:#e7eef6;
  --green:#0c7a4d;--green-soft:#e9f7f0;--amber:#996a08;--amber-soft:#fdf5df;--red:#bf3f4c;--red-soft:#fdeff0;
  --chart-1:#2a78d6;--chart-2:#008300;--chart-grid:#e3e9f1;
  --radius:12px;--radius-sm:8px;
  --shadow-1:0 1px 2px rgba(18,34,64,.06),0 4px 14px rgba(18,34,64,.06);
  --shadow-2:0 6px 22px rgba(18,34,64,.10);
}
.vat-paper{width:min(100%,1080px);max-width:none;box-sizing:border-box}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Inter,Arial,sans-serif;
  background:linear-gradient(150deg,#f4f7fb 0%,var(--bg) 55%,#eef4f4 100%);
  color:var(--text);line-height:1.5;font-size:14.5px}
h1,h2,h3{letter-spacing:-.02em;color:var(--navy)}
h1{font-size:24px;margin-top:0}h2{font-size:17px}h3{font-size:15px}
a{color:var(--blue-deep)}
::selection{background:#cfe3fb}

/* ---------- barra superior ---------- */
.topnav{height:62px;background:linear-gradient(100deg,var(--navy),var(--navy-soft));
  display:flex;align-items:center;gap:6px;padding:0 18px;position:sticky;top:0;z-index:30;
  overflow-x:auto;box-shadow:0 3px 16px rgba(10,22,44,.25)}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#fff;
  color:var(--navy);font-weight:850;font-size:13px;box-shadow:0 3px 10px rgba(4,12,28,.35)}
.top-brand{display:flex;align-items:center;gap:10px;margin-right:14px;white-space:nowrap}
.top-brand span{font-weight:700;color:#fff;font-size:15px}
.topnav>a{color:#cfdcf0;text-decoration:none;padding:9px 12px;border-radius:8px;font-size:13px;
  font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.topnav>a:hover{background:rgba(255,255,255,.09);color:#fff}
.topnav>a.active{background:#fff;color:var(--navy);box-shadow:0 3px 10px rgba(4,12,28,.3)}
.top-spacer{flex:1}

/* ---------- área de trabalho ---------- */
.workspace{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:calc(100vh - 62px)}
.sidebar{background:linear-gradient(180deg,#f8fbff,#eef4fb);border-right:1px solid #d3e0ee;
  padding:18px 12px;position:sticky;top:62px;height:calc(100vh - 62px);overflow-y:auto}
.company-mini{padding:13px 12px;margin-bottom:14px;border:1px solid #cddff2;border-radius:11px;
  background:linear-gradient(135deg,#eaf3ff,#f0faf5);box-shadow:0 3px 10px rgba(29,77,128,.06)}
.company-mini b{display:block;color:var(--navy);font-size:13.5px;line-height:1.3}
.company-mini span{font-size:11.5px;color:#55708e}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{color:#42597a;text-decoration:none;padding:9px 10px;border-radius:8px;font-size:13px;
  border-left:3px solid transparent;transition:background .12s}
.nav a:hover{background:#e5effa;color:#164a86;border-left-color:#8ab8e8}
.nav a.active,.nav a[aria-current="page"]{background:linear-gradient(90deg,#dcecff,#e7f6ee);
  color:#134d39;font-weight:700;border-left-color:var(--green)}
.nav-section{padding:14px 10px 5px;color:#6687aa;font-size:10px;font-weight:800;
  text-transform:uppercase;letter-spacing:.1em}
.main{min-width:0}
.contextbar{height:54px;background:rgba(249,251,254,.85);border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:flex-end;padding:0 26px;backdrop-filter:blur(8px)}
.status{font-size:12px;color:var(--green);background:var(--green-soft);border:1px solid #bfe7d2;
  border-radius:999px;padding:5px 10px;white-space:nowrap}
.wrap{margin:0 auto;padding:24px 26px;max-width:1600px}
.page-heading{margin:0 0 4px;font-size:27px;letter-spacing:-.03em;color:var(--navy)}
.page-heading:after{content:"";display:block;width:44px;height:3px;border-radius:4px;
  background:linear-gradient(90deg,var(--blue),#3f9e75);margin-top:8px}
.page-subtitle{margin:8px 0 22px;color:var(--muted)}
.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 18px}

/* ---------- cartões e grelhas ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;margin-bottom:18px;box-shadow:var(--shadow-1)}
.card>h1:first-child,.card>h2:first-child{margin-top:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px}
.grid>.card{margin-bottom:0}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:15px}
.grid-2>.card{margin-bottom:0}
.kpi-card{position:relative;overflow:hidden;background:linear-gradient(140deg,#fff,#f6faff)}
.kpi-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--blue)}
.kpi-card:nth-child(2n):before{background:#3f9e75}
.kpi-card:nth-child(3n):before{background:#e0a23a}
.kpi{font-size:27px;line-height:1.2;font-weight:750;letter-spacing:-.03em;margin-top:7px;color:var(--navy);font-variant-numeric:tabular-nums}
.kpi-note{font-size:12px;color:var(--muted);margin-top:5px}
.muted{color:var(--muted)}
.bad{color:var(--red)!important}
.good{color:var(--green)!important}
.warn{color:var(--amber)!important}
.num{font-variant-numeric:tabular-nums}

/* ---------- tabelas ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
table{width:100%;border-collapse:collapse;font-size:13.5px;white-space:nowrap}
th{background:linear-gradient(180deg,#eaf1fa,#e3ecf6);color:#38516f;text-align:right;padding:10px 12px;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #cad8e7;
  position:sticky;top:0}
th:first-child,td:first-child{text-align:left}
td{padding:10px 12px;border-top:1px solid var(--line-soft);text-align:right;font-variant-numeric:tabular-nums}
tbody tr:nth-child(even){background:#f8fbfe}
tbody tr:hover{background:#eef5fc}
tbody tr.row-alert{background:var(--red-soft)}
tbody tr.row-alert:hover{background:#f9e3e5}
tbody tr.row-income{background:var(--green-soft)}
tbody tr.row-income:hover{background:#ddf2e8}
.date-plan-form{display:flex;gap:4px;align-items:center;justify-content:flex-start}
.date-plan-form input{margin:0;min-width:134px}
tfoot td{font-weight:750;background:#eef3f9;border-top:2px solid #c6d5e5}

/* ---------- botões, formulários, alertas ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  background:linear-gradient(135deg,var(--blue),var(--blue-deep));color:#fff;border:0;
  padding:9px 15px;border-radius:9px;text-decoration:none;font-weight:650;font-size:13.5px;
  cursor:pointer;box-shadow:0 3px 9px rgba(37,99,235,.22);transition:filter .12s}
.btn:hover{filter:brightness(1.08)}
.btn-ghost{background:#fff;color:var(--blue-deep);border:1px solid #bcd2ea;box-shadow:none}
.btn-ghost:hover{background:var(--blue-soft)}
.btn-danger{background:linear-gradient(135deg,#d1596a,#b23a4b)}
.btn-sm{padding:6px 10px;font-size:12.5px;border-radius:7px}
input,select,textarea{padding:9px 11px;border:1px solid #bdccdc;border-radius:8px;margin:4px;
  background:#fff;max-width:100%;font:inherit;color:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:var(--blue)}
label.field{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);font-weight:600}
label.field>input,label.field>select{margin:0}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.alert{padding:12px 15px;border-radius:10px;margin-bottom:16px;font-size:13.5px}
.alert.success{background:var(--green-soft);color:#075c3d;border:1px solid #bce6cf}
.alert.danger{background:var(--red-soft);color:#8f1f2b;border:1px solid #f2c5ca}
.alert.info{background:#eef5ff;color:#1d4f93;border:1px solid #c4dbf5}
.alert.warning{background:var(--amber-soft);color:#7c5407;border:1px solid #ecd9a0}

/* ---------- estados e etiquetas ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;
  font-size:11.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.badge-ok{background:var(--green-soft);color:#0a6b44;border:1px solid #b7e2cb}
.badge-warn{background:var(--amber-soft);color:#8a5d06;border:1px solid #ecd9a0}
.badge-bad{background:var(--red-soft);color:#a03340;border:1px solid #f0c3c9}
.badge-neutral{background:#eef2f7;color:#4d6480;border:1px solid #d6e0ec}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--blue-soft);
  color:var(--blue-deep);font-size:11.5px;font-weight:700}
.empty{padding:44px 20px;text-align:center}
.empty-icon{width:56px;height:56px;display:grid;place-items:center;margin:0 auto 15px;
  border-radius:16px;background:var(--blue-soft);color:var(--blue);font-size:26px}

/* ---------- listas de verificação ---------- */
.check-item{display:flex;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.check-item:last-child{border-bottom:0}
.check-dot{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:12px;font-weight:900;margin-top:2px}
.check-ok .check-dot{background:var(--green-soft);color:var(--green);border:1px solid #b7e2cb}
.check-warn .check-dot{background:var(--amber-soft);color:var(--amber);border:1px solid #ecd9a0}
.check-bad .check-dot{background:var(--red-soft);color:var(--red);border:1px solid #f0c3c9}
.check-item b{display:block;color:var(--navy)}
.check-item p{margin:3px 0 0;color:var(--muted);font-size:13px}

/* ---------- declaração de IVA (aspeto do formulário oficial) ---------- */
.decl th{position:static}
.decl td:first-child{white-space:normal;min-width:330px}
.decl .decl-section td{background:#e3edf8;color:#173863;font-weight:800;font-size:12px;
  text-transform:uppercase;letter-spacing:.04em;border-top:2px solid #c2d4e8}
.decl .decl-total td{background:#eef3f9;font-weight:800;border-top:2px solid #c6d5e5}
.decl .decl-grand td{background:#e8f5ef;font-weight:850;border-top:2px solid #9fd4b8;font-size:14.5px}
.campo{display:inline-grid;place-items:center;min-width:30px;height:22px;padding:0 5px;
  border:1.6px solid var(--blue);border-radius:5px;color:var(--blue-deep);font-weight:800;
  font-size:12px;background:#f2f8ff}
.decl-note{font-size:12px;color:var(--muted);margin-top:4px;white-space:normal}

/* ---------- gráficos de barras (linhas-tabela com pista) ---------- */
.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:6px 0 10px}
.legend .swatch{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.hbar-row{display:grid;grid-template-columns:52px minmax(120px,1fr) 110px;gap:10px;align-items:center;
  padding:6px 0;border-bottom:1px solid var(--line-soft)}
.hbar-row:last-child{border-bottom:0}
.hbar-row>b{font-size:12px;color:#42597a}
.hbar-tracks{display:flex;flex-direction:column;gap:3px}
.bar-track{height:11px;background:var(--chart-grid);border-radius:7px;overflow:hidden}
.bar{height:100%;border-radius:7px 4px 4px 7px;background:var(--chart-1);min-width:2px}
.bar.s2{background:var(--chart-2)}
.bar.badbar{background:linear-gradient(90deg,#e7aa4b,#d45b68)}
.hbar-vals{display:flex;flex-direction:column;gap:3px;font-size:12px;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- pagamentos / agenda ---------- */
.pay-item{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line-soft)}
.pay-item:last-child{border-bottom:0}
.pay-date{flex:0 0 auto;width:52px;text-align:center;background:#f1f6fd;border:1px solid #d5e3f3;
  border-radius:9px;padding:5px 2px;line-height:1.15}
.pay-date b{display:block;font-size:16px;color:var(--navy)}
.pay-date span{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.06em}
.pay-item .pay-info{flex:1;min-width:0}
.pay-item .pay-info b{display:block;color:var(--navy);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pay-item .pay-info span{font-size:12px;color:var(--muted)}
.pay-amount{font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- diversos ---------- */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.divider{height:1px;background:var(--line-soft);margin:14px 0}
details summary{cursor:pointer;color:var(--blue-deep);font-size:12.5px}
.metric-note{font-size:12px;color:var(--muted);margin-top:7px}

/* ---------- inventário por artigo ---------- */
.inventory-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.inventory-search input{min-width:280px}.snapshot-import{position:relative}.snapshot-import>summary{list-style:none}
.snapshot-import>summary::-webkit-details-marker{display:none}.snapshot-form{display:grid;grid-template-columns:170px minmax(230px,1fr) auto;align-items:end;gap:9px;margin-top:13px;padding:14px;border-radius:9px;background:#f5f9fe;border:1px solid var(--line)}
.snapshot-form small{grid-column:1/-1}.inventory-table-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.inventory-table-heading h2{margin:0}.inventory-table th:first-child,.inventory-table td:first-child{text-align:left}
.inventory-table td{vertical-align:middle}.inventory-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:12px}
.inventory-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.inventory-item-header .page-heading{margin-top:8px}
.inventory-unit-total{display:grid;grid-template-columns:minmax(70px,1fr) auto auto;gap:8px;font-size:12px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line-soft)}
.inventory-analysis-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.stock-analysis-grid{margin-bottom:18px}.stock-analysis-grid>.card{margin-bottom:0;min-width:0}
.stock-alert{display:flex;gap:11px;padding:11px 4px;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.stock-alert:last-child{border-bottom:0}.stock-alert>span{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900}
.stock-alert p{margin:2px 0 0;color:var(--muted);font-size:12px}.stock-alert-critical>span{background:var(--red-soft);color:var(--red)}
.stock-alert-warning>span{background:var(--amber-soft);color:var(--amber)}.stock-alert-info>span{background:var(--blue-soft);color:var(--blue)}
.stock-alert-ok>span{background:var(--green-soft);color:var(--green)}
.stock-bar-row{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(90px,1fr) 105px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line-soft)}
.stock-bar-row>div:first-child,.stock-list-row>div{min-width:0}.stock-bar-row small,.stock-list-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10.5px}
.stock-bar-row strong,.stock-list-row strong{text-align:right}.stock-list-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.footer-note{color:#8ba0b8;font-size:11.5px;padding:18px 4px 8px;text-align:center}
.purchase-print-header,.purchase-print-footer,.aging-print-header,.aging-print-footer{display:none}
.aging-data-note{margin:0 0 10px;padding:9px 12px;border-left:4px solid #d49a2d;border-radius:7px;background:#fff8e7;color:#715312;font-size:11px;line-height:1.4}

/* ---------- relatório executivo de tesouraria ---------- */
.ceo-report{max-width:1250px;margin:0 auto}
.report-cover{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;
  background:linear-gradient(120deg,var(--navy),#244779);color:#fff;border-radius:14px;
  padding:28px 32px;margin-bottom:18px;box-shadow:var(--shadow-2)}
.report-cover h1{color:#fff;font-size:30px;margin:4px 0}.report-cover p{margin:0;color:#dbe8f7}
.report-kicker{font-size:10.5px;font-weight:800;letter-spacing:.14em;color:#79b6fa}
.report-date{text-align:right;color:#cbdced;white-space:nowrap}.report-date b{color:#fff;font-size:16px}
.report-section{background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px 23px;
  margin-bottom:16px;box-shadow:var(--shadow-1)}
.report-section>h2{margin:0 0 14px;font-size:19px;border-bottom:2px solid #d9e6f3;padding-bottom:9px}
.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.report-kpis-3{grid-template-columns:repeat(3,minmax(180px,1fr))}
.report-kpis>div{border:1px solid var(--line);background:linear-gradient(145deg,#f9fbfe,#f1f6fb);
  padding:13px 15px;border-radius:9px}.report-kpis span{display:block;color:var(--muted);font-size:11.5px}
.report-kpis b{display:block;color:var(--navy);font-size:20px;margin-top:4px}.report-kpis small{color:var(--muted)}
.executive-note{padding:12px 15px;border-radius:9px;line-height:1.55;margin:10px 0 0}
.executive-bad{background:var(--red-soft);border:1px solid #f0c3c9;color:#7e2934}
.executive-good{background:var(--green-soft);border:1px solid #b7e2cb;color:#075d3c}
.report-subgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;margin-top:12px}
.mini-report-card{border:1px solid var(--line);border-left:4px solid var(--blue);padding:11px 13px;border-radius:8px;
  display:flex;flex-direction:column;gap:3px}.mini-report-card span{color:var(--muted);font-size:12px}
.mini-report-card strong{font-size:16px;color:var(--navy);margin-top:3px}.mini-report-card.mini-alert{border-left-color:var(--red);background:var(--red-soft)}
.report-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:15px}.report-columns h3{margin-top:0}
.report-footnote{font-size:11.5px;color:var(--muted);margin:9px 0 0}
.report-disclaimer{font-size:10.5px;color:#7288a3;border-top:1px solid var(--line);padding:13px 4px 25px}
.report-annex{border-top:5px solid var(--blue)}

/* Relatório executivo compacto */
.ceo-report-compact{max-width:1320px}
.compact-cover{padding:20px 26px;margin-bottom:12px;background:
  radial-gradient(circle at 88% 20%,rgba(73,156,241,.32),transparent 24%),
  linear-gradient(118deg,#10213e 0%,#173b69 60%,#176348 100%)}
.compact-cover h1{font-size:25px}.compact-cover .report-kicker{color:#86d6b5}
.report-page{display:flex;flex-direction:column;gap:11px}.report-page>.report-section{margin:0;padding:15px 17px}
.section-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:11px;border-bottom:1px solid var(--line-soft);padding-bottom:8px}
.section-title .section-number{flex:0 0 27px;height:27px;border-radius:8px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--blue),#1d5ca7);color:#fff;font-weight:850;font-size:13px}
.section-title h2{margin:0;font-size:17px}.section-title p{margin:1px 0 0;color:var(--muted);font-size:11.5px}
.compact-kpis{gap:8px;margin-bottom:10px}.compact-kpis>div{padding:10px 12px;border:0;border-left:4px solid var(--blue);min-height:79px}
.compact-kpis b{font-size:18px}.compact-kpis small{display:block;font-size:10.5px;margin-top:2px}
.compact-kpis-3{grid-template-columns:repeat(3,1fr)}
.tone-blue{background:#eef6ff!important;border-left-color:#3a82d4!important}.tone-blue b{color:#155da7!important}
.tone-red{background:#fff0f1!important;border-left-color:#d4505e!important}.tone-red b{color:#a52d3c!important}
.tone-amber{background:#fff8e7!important;border-left-color:#e0a23a!important}.tone-amber b{color:#8a5d06!important}
.tone-purple{background:#f5f0ff!important;border-left-color:#8155c7!important}.tone-purple b{color:#6238a2!important}
.tone-navy{background:#eef1f8!important;border-left-color:#263d6b!important}.tone-navy b{color:#1e3158!important}
.tone-green{background:#eaf8f1!important;border-left-color:#299765!important}.tone-green b{color:#087049!important}
.management-reading{display:flex;gap:11px;padding:11px 13px;background:linear-gradient(100deg,#fff6e2,#fffaf0);
  border:1px solid #efd89b;border-radius:9px;color:#624609}.management-reading .reading-icon{flex:0 0 25px;height:25px;
  border-radius:50%;display:grid;place-items:center;background:#dda12f;color:#fff;font-weight:900}
.management-reading p{margin:2px 0;font-size:11.8px;line-height:1.42}.group-reading{background:#f4efff;border-color:#d5c4ef;color:#4b3372}
.group-reading .reading-icon{background:#8155c7}
.horizon-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.horizon-box{border-radius:8px;padding:9px 10px;border:1px solid var(--line);display:flex;flex-direction:column}
.horizon-box span{font-size:10px;text-transform:uppercase;font-weight:800}.horizon-box b{font-size:16px;margin:3px 0}.horizon-box small{color:var(--muted)}
.horizon-box em{font-size:9.5px;font-style:normal;margin-top:5px;border-top:1px solid rgba(0,0,0,.08);padding-top:4px}
.horizon-danger{background:#fff1f2;border-color:#efc8cc}.horizon-danger b,.horizon-danger em{color:#a93240}
.horizon-safe{background:#ecf8f2;border-color:#bee4d1}.horizon-safe b{color:#087049}
.compact-columns{gap:9px;margin-top:9px}.explain-box{padding:9px 11px;border-radius:8px;background:#f5f8fc;border:1px solid var(--line)}
.explain-box h3{margin:0;font-size:12px}.explain-box>b{font-size:17px}.explain-box p{font-size:10.8px;margin:2px 0;color:var(--muted)}
.liability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.liability-tile{padding:10px 12px;border-radius:8px;border-left:4px solid var(--blue)}
.liability-tile span,.liability-tile small{display:block;color:var(--muted);font-size:10.5px}.liability-tile b{display:block;font-size:17px;margin:2px 0}
.inline-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.inline-metrics span{padding:8px;background:#f5f8fc;border-radius:7px;font-size:10px}
.inline-metrics b{display:block;font-size:14px;color:var(--navy)}.group-summary{background:#f5f0ff;border-left:4px solid #8155c7;border-radius:8px;padding:9px 12px}
.group-summary h3,.group-summary p{margin:0}.group-summary>b{display:block;font-size:18px;color:#6238a2}.group-summary a{font-size:10.5px}
.report-data-note{margin-top:8px;padding:8px 10px;border-radius:7px;background:#f4f7fb;
  border-left:3px solid #7892b4;color:#526984;font-size:10px;line-height:1.4}
.compact-table table{font-size:11px}.compact-table th{padding:6px 8px;font-size:8.5px;position:static}.compact-table td{padding:6px 8px}
.compact-table td small{display:block;color:var(--muted);font-size:9px}
.state-columns{display:grid;grid-template-columns:1fr 1fr;gap:9px}.state-panel{border-radius:9px;padding:10px 12px;border:1px solid var(--line)}
.state-panel h3{display:flex;justify-content:space-between;margin:0 0 7px;font-size:13px}.state-panel h3 strong{font-size:16px}
.ss-panel{background:#f0f8ff;border-top:4px solid #4b8fd6}.at-panel{background:#f4faf5;border-top:4px solid #3d9668}
.state-line{display:flex;justify-content:space-between;gap:10px;border-top:1px solid rgba(40,70,100,.1);padding:4px 0;font-size:10.5px}
.state-panel p{font-size:10px;color:var(--muted);line-height:1.35;margin:6px 0 0}
.state-panel-full{width:100%}.report-risk-section{border-left:4px solid var(--line)}
.ss-risk-section{border-left-color:#4b8fd6}.at-risk-section{border-left-color:#3d9668}
.bank-risk-section{border-left-color:#263d6b}.salary-risk-section{border-left-color:#299765}
.plan-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.plan-chips>div{display:flex;flex-direction:column;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fafcff}
.plan-chips b{font-size:10px}.plan-chips span,.plan-chips small{font-size:8.8px;color:var(--muted)}.plan-chips strong{font-size:13px;color:var(--navy)}
.plan-chips .chip-alert{background:#fff1f2;border-color:#efc8cc}
.bank-bars>div{display:grid;grid-template-columns:95px 1fr 90px;align-items:center;gap:7px;margin:5px 0;font-size:10.5px}.bank-bars b{text-align:right}
.mini-bar{height:8px;border-radius:8px;background:#e2e9f2;overflow:hidden}.mini-bar i{display:block;height:100%;background:linear-gradient(90deg,#347fd1,#55a983);border-radius:8px}
.risk-total{display:flex;align-items:baseline;justify-content:space-between;gap:15px;padding:7px 10px;margin-bottom:5px;border-radius:7px;background:#eef1f8;color:#263d6b}
.risk-total span{font-size:10.5px}.risk-total b{font-size:17px}
.salary-summary{display:grid;grid-template-columns:minmax(210px,.55fr) 1.45fr;gap:14px;align-items:center;padding:9px 11px;border-radius:8px;background:#eaf8f1;border:1px solid #bfe4d2}
.salary-summary span{display:block;color:#527567;font-size:10px}.salary-summary b{display:block;color:#087049;font-size:19px;margin-top:2px}.salary-summary p{margin:0;color:#527567;font-size:10px;line-height:1.4}
.monthly-cost-box{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 8px;padding:10px 12px;border-radius:8px;background:#f5f8fc;border:1px solid var(--line)}
.monthly-cost-box span{font-size:10px;color:var(--muted)}.monthly-cost-box b{font-size:18px;color:var(--navy)}.monthly-cost-box small{font-size:9px;color:var(--muted)}
.monthly-cost-box hr{grid-column:1/-1;width:100%;border:0;border-top:1px solid var(--line);margin:5px 0}
.trend-verdict{display:grid;grid-template-columns:1fr auto;align-items:center;border-radius:8px;padding:9px 12px;margin-bottom:9px}
.trend-verdict b{font-size:12px}.trend-verdict strong{font-size:19px;grid-row:span 2}.trend-verdict span{font-size:9.5px}
.trend-bad{background:#fff0f1;color:#9f2e3b}.trend-good{background:#eaf8f1;color:#087049}
.explanation-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.explanation-grid>div{background:#f5f8fc;border-radius:8px;padding:8px 10px}
.explanation-grid b{font-size:10.5px}.explanation-grid p{font-size:9.8px;margin:2px 0;color:var(--muted)}
.action-list{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px;margin:0;padding-left:22px}.action-list li{padding:4px 0 4px 2px;color:var(--blue-deep);font-weight:800;font-size:11px}
.action-list li span{display:block;color:var(--muted);font-weight:400;font-size:9.8px;line-height:1.35}
.method-box{background:#f4f7fb!important}.method-box h2{font-size:12px!important;margin:0 0 3px!important;border:0!important;padding:0!important}.method-box p{font-size:9.5px;color:var(--muted);margin:0;line-height:1.35}
.group-report{border-top:5px solid #8155c7}.group-report .section-number{background:linear-gradient(135deg,#8155c7,#593294)}

/* ---------- impressão (declaração e mapas) ---------- */
@media print{
  @page{size:A4 portrait;margin:7mm}
  .topnav,.sidebar,.contextbar,.page-actions,.toolbar,.btn,form,.footer-note{display:none!important}
  .workspace{display:block}
  .wrap{padding:0;max-width:none}
  body{background:#fff}
  .card{box-shadow:none;border-color:#bbb;break-inside:avoid}
  .ceo-report{max-width:none}.report-cover{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .report-section{box-shadow:none;break-inside:auto}.report-section table{font-size:10.5px}
  .report-section tr{break-inside:avoid}.report-annex{break-before:page;page-break-before:always}
  .report-kpis,.report-subgrid,.report-columns{break-inside:avoid}
  .ceo-report-compact{font-size:10.5px}.compact-cover{padding:13px 19px;margin-bottom:9px;border-radius:8px}
  .compact-cover h1{font-size:21px}.report-page{gap:10px}.report-page>.report-section{padding:12px 14px;border-radius:8px}
  .report-page-break{break-before:page;page-break-before:always}.section-title{margin-bottom:8px;padding-bottom:7px}
  .section-title h2{font-size:15px}.section-title p{font-size:9.5px}.section-title .section-number{width:23px;height:23px;flex-basis:23px}
  .compact-kpis>div{min-height:0;padding:9px 10px}.compact-kpis b{font-size:16px}.management-reading{padding:9px 11px}.management-reading p{font-size:10px}
  .horizon-box{padding:8px}.horizon-box b{font-size:14px}.liability-tile{padding:9px 10px}.liability-tile b{font-size:15px}
  .report-section table{font-size:9.5px}.compact-table table{font-size:9.2px}.compact-table th,.compact-table td{padding:5px 7px}
  .state-panel{padding:9px 11px}.plan-chips>div{padding:7px 8px}.report-disclaimer{padding:7px 2px;font-size:8.5px}
  /* O motor de impressão usa um viewport estreito. Estas regras têm de
     prevalecer sobre o layout móvel para impedir cartões empilhados. */
  .ceo-report-compact .compact-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .ceo-report-compact .compact-kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .ceo-report-compact .horizon-strip{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .ceo-report-compact .liability-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .ceo-report-compact .report-columns,.ceo-report-compact .state-columns,
  .ceo-report-compact .explanation-grid{grid-template-columns:1fr 1fr!important}
  .ceo-report-compact .plan-chips{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .ceo-report-compact .action-list{grid-template-columns:1fr 1fr!important}
  .ceo-report-compact .report-page{break-after:page;page-break-after:always}
  .ceo-report-compact .report-page:last-of-type{break-after:auto;page-break-after:auto}
  .purchase-ranking-print{page:purchase-ranking;color:#152744;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .purchase-ranking-screen-only{display:none!important}
  .purchase-ranking-print .purchase-print-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
    padding:10px 14px;margin-bottom:8px;border-radius:7px;background:linear-gradient(110deg,#17345e,#226a55);color:#fff}
  .purchase-print-header span{font-size:7.5px;font-weight:800;letter-spacing:.12em;color:#b9e7d5}
  .purchase-print-header h1{font-size:17px;color:#fff;margin:2px 0}.purchase-print-header p{font-size:8.5px;margin:0;color:#e2edf7}
  .purchase-print-period{text-align:right;white-space:nowrap;font-size:8.5px}.purchase-print-period b{font-size:11px;color:#fff}
  .purchase-ranking-print>.card:first-of-type{display:none}
  .purchase-ranking-print>.grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;margin:0 0 8px!important}
  .purchase-ranking-print>.grid .card{padding:6px 7px!important;border-left-width:3px}.purchase-ranking-print .kpi{font-size:13px!important;margin:2px 0}
  .purchase-ranking-print .kpi-note,.purchase-ranking-print .muted{font-size:6.8px}.purchase-ranking-table-card{padding:0!important;border:0!important;break-inside:auto!important}
  .purchase-ranking-table-card .table-wrap{overflow:visible}.purchase-ranking-table{font-size:7.6px!important;width:100%;table-layout:fixed}
  .purchase-ranking-table thead{display:table-header-group}.purchase-ranking-table tr{break-inside:avoid;page-break-inside:avoid}
  .purchase-ranking-table th,.purchase-ranking-table td{padding:3.5px 4px!important}.purchase-ranking-table th{font-size:6.3px!important}
  .purchase-ranking-table th:nth-child(1),.purchase-ranking-table td:nth-child(1){width:4%}
  .purchase-ranking-table th:nth-child(2),.purchase-ranking-table td:nth-child(2){width:36%}
  .purchase-ranking-table th:nth-child(3),.purchase-ranking-table td:nth-child(3){width:11%}
  .purchase-ranking-table th:nth-child(4),.purchase-ranking-table td:nth-child(4),
  .purchase-ranking-table th:nth-child(5),.purchase-ranking-table td:nth-child(5){width:15%}
  .purchase-ranking-table th:nth-child(6),.purchase-ranking-table td:nth-child(6){width:19%}
  .purchase-ranking-table td small{display:block;font-size:6.2px}.purchase-screen-only{display:none!important}
  .purchase-print-footer{display:block;margin-top:7px;padding-top:5px;border-top:1px solid #cbd8e7;color:#637993;font-size:7px}
  .aging-report-print{page:aging-report;color:#152744;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .aging-screen-only{display:none!important}.aging-print-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:9px 13px;margin-bottom:7px;border-radius:7px;background:linear-gradient(110deg,#17345e,#226a55);color:#fff}
  .aging-print-header span{font-size:7px;font-weight:800;letter-spacing:.12em;color:#b9e7d5}.aging-print-header h1{font-size:16px;color:#fff;margin:2px 0}.aging-print-header p{font-size:8px;margin:0;color:#e2edf7}.aging-print-header>div:last-child{text-align:right;white-space:nowrap;font-size:8px}.aging-print-header b{font-size:11px}
  .aging-kpis{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important;margin:0 0 7px!important}.aging-kpis .card{padding:6px 7px!important;border-left-width:3px;min-width:0}.aging-kpis .kpi{font-size:12px!important;margin:2px 0}.aging-kpis .muted,.aging-kpis .kpi-note{font-size:6.5px}
  .aging-data-note{font-size:7px;padding:5px 8px;margin-bottom:6px;border-left-width:3px}.aging-table-card{padding:0!important;border:0!important;break-inside:auto!important}.aging-table-card .table-wrap{overflow:visible}.aging-table{font-size:6.7px!important;width:100%;table-layout:fixed}.aging-table thead{display:table-header-group}.aging-table tfoot{display:table-footer-group}.aging-table tr{break-inside:avoid;page-break-inside:avoid}.aging-table th,.aging-table td{padding:3px 3.5px!important}.aging-table th{font-size:5.8px!important}.aging-table th:nth-child(1),.aging-table td:nth-child(1){width:7%}.aging-table th:nth-child(2),.aging-table td:nth-child(2){width:37%}.aging-table th:nth-child(3),.aging-table td:nth-child(3){width:7%}.aging-table th:nth-child(4),.aging-table td:nth-child(4){width:10%}.aging-table th:nth-child(n+5),.aging-table td:nth-child(n+5){width:7.8%}.aging-table a{color:inherit;text-decoration:none}.aging-print-footer{display:block;margin-top:6px;padding-top:4px;border-top:1px solid #cbd8e7;color:#637993;font-size:6.5px}
}

@page purchase-ranking{size:A4 portrait;margin:8mm}
@page aging-report{size:A4 landscape;margin:7mm}

/* ---------- responsivo ---------- */
@media(max-width:900px){
  .workspace{grid-template-columns:1fr}
  .sidebar{position:static;height:auto}
  .nav{flex-direction:row;overflow-x:auto}
  .nav a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent}
  .company-mini,.nav-section{display:none}
  .contextbar{padding:0 14px}
  .wrap{padding:18px 13px}
  .kpi{font-size:23px}
  .decl td:first-child{min-width:230px}
  .report-kpis,.report-kpis-3,.report-columns{grid-template-columns:1fr}
  .report-cover{flex-direction:column}.report-date{text-align:left}
}
@media(min-width:1600px){
  .workspace{grid-template-columns:206px minmax(0,1fr)}
}
.vat-paper-wrap{display:grid;gap:22px;margin-bottom:20px}.vat-paper{--vat-blue:#0787c7;--vat-pale:#dff2fb;background:#fff;border:2px solid var(--vat-blue);box-shadow:0 4px 18px #123b5b18;padding:10px;color:#10283d;font-size:12px;max-width:1180px;margin:auto}.vat-paper-header{display:grid;grid-template-columns:220px 1fr 210px;border:2px solid var(--vat-blue);min-height:75px}.vat-at,.vat-iva-mark{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px}.vat-at{border-right:2px solid var(--vat-blue)}.vat-at b{font-size:31px}.vat-at span{font-weight:800;line-height:1.1}.vat-form-title{display:flex;align-items:center;justify-content:center;background:#2594ca;color:#fff;font-size:19px;font-weight:900;letter-spacing:.03em}.vat-iva-mark{border-left:2px solid var(--vat-blue);flex-direction:column;gap:1px}.vat-iva-mark b{font-size:30px;color:var(--vat-blue);font-style:italic}.vat-iva-mark small{text-align:center;font-size:8px;font-weight:800}.vat-band{background:var(--vat-blue);color:#fff;font-weight:900;letter-spacing:.04em;padding:5px 8px;margin-top:5px}.vat-ident-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;border:1px solid var(--vat-blue)}.vat-ident-grid>div{padding:7px;border-right:1px solid var(--vat-blue);min-height:62px}.vat-ident-grid>div:last-child{border:0}.vat-ident-grid label{display:block;font-size:9px;margin-top:6px}.vat-ident-period{grid-template-columns:1fr 1.3fr 1fr}.vat-section-no,.vat-field-no{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#087fc1;border:1px solid #087fc1;border-radius:2px;font-weight:900;min-width:22px;height:19px;margin-right:5px}.vat-write{border:1px solid #e6b936;background:#fffef2;min-height:22px;padding:4px;margin-top:3px}.vat-checks{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.vat-form-table,.vat-mini-table{width:100%;border-collapse:collapse}.vat-form-table th,.vat-form-table td,.vat-mini-table th,.vat-mini-table td{border:1px solid #8bc6e5;padding:5px 7px}.vat-form-table th{background:#e7f5fc;font-size:9px}.vat-form-table th:first-child{width:51%;text-align:left}.vat-form-table td:not(:first-child){text-align:right}.vat-subband td{background:var(--vat-pale);font-weight:900;font-size:10px;letter-spacing:.025em}.vat-field{display:inline-flex;align-items:center;justify-content:flex-end;min-width:93px;white-space:nowrap}.vat-field-value{background:#f2f2f2;border-bottom:1px solid #a9a9a9;min-width:65px;padding:2px 4px;text-align:right}.vat-total td,.vat-total{background:#dbeffc!important;font-weight:900}.vat-settlement{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--vat-blue);border-top:0}.vat-settlement>div{padding:8px;border-right:1px solid var(--vat-blue);display:flex;align-items:center;gap:8px}.vat-settlement>div:last-child{border:0}.vat-refund{display:flex;justify-content:flex-end;gap:28px;border:1px solid var(--vat-blue);border-top:0;padding:7px}.vat-paper-foot{text-align:center;font-size:9px;font-weight:700;padding:8px 4px 1px}.vat-form-block{border:1px solid var(--vat-blue);border-top:0;padding:7px}.vat-form-block h3{font-size:10px;margin:0 0 6px;text-transform:uppercase}.vat-cells{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.vat-cells-3{grid-template-columns:repeat(3,1fr)}.vat-cells label,.vat-q06d label{display:flex;align-items:center;justify-content:space-between;gap:5px;background:#f7fbfd;padding:4px}.vat-mini-table th{background:#e7f5fc}.vat-mini-table td:not(:first-child){text-align:right}.vat-total-line{border:1px solid var(--vat-blue);padding:7px;text-align:center;font-weight:900}.vat-rates th:first-child{width:38%;text-align:left}.vat-q06d{display:grid;grid-template-columns:1fr 1fr;gap:4px}.vat-paper-page2 .vat-band:first-child{margin-top:0}@media(max-width:800px){.vat-paper{min-width:920px}.vat-paper-wrap{overflow-x:auto}.vat-paper-header{grid-template-columns:180px 1fr 170px}.vat-cells-3{grid-template-columns:1fr 1fr}}@media print{.vat-paper{box-shadow:none;page-break-after:always}.vat-paper-wrap{display:block}.vat-paper+.vat-paper{margin-top:15px}}
