/* anticipos.algebraix.ninja design system — copied verbatim from contratos (contratos-design-pkg,
 * (docs/design-handoff.md). Modern fintech back-office: Manrope, 1px borders, radius
 * 4/6/8/10, no shadows on static surfaces, meaning through color only, tabular numerals
 * on every figure. Light is primary; dark tokens under [data-theme="dark"] and the OS
 * default (guarded so an explicit light choice still wins). */

:root {
	/* brand */
	--blue-50:  #F2F7FF; --blue-100: #DCE4FB; --blue-200: #B9C7F5; --blue-300: #8C9DEB;
	--blue-400: #5B70DC; --blue-500: #2E45C4; --blue-600: #112AA9; --blue-700: #0D218A;
	--blue-800: #0A1A6D; --blue-900: #071250; --blue-border: #C9D6F8;
	/* neutrals */
	--ink: #0B0F16; --gray-900: #2C2F36; --gray-800: #373C43; --gray-700: #4A4E56;
	--gray-600: #5D5F67; --gray-500: #74767E; --gray-400: #A5A8B0; --gray-300: #CACDD6;
	--gray-200: #DDE0E9; --gray-100: #EAEDF6; --gray-50: #F6F8FC;
	--surface: #FFFFFF; --page: #FDFEFF;
	/* semantic */
	--success: #00A56F; --success-ink: #00754F; --success-bg: #E6F7F1; --success-border: #B8E8D8;
	--warning: #FFC107; --warning-ink: #7A5600; --warning-bg: #FFF7E0; --warning-border: #FFE6A3; --warning-stroke: #E0A800; --warning-card: #FFFCF2;
	--danger: #FF2D30; --danger-ink: #C31417; --danger-bg: #FFF1F1; --danger-border: #FFC9CA; --danger-row: #FFFAFA; --danger-hover: #FFB3B4;
	--purple: #8B6BC4; --purple-ink: #5E4492; --purple-bg: #F3EFFA; --purple-border: #DFD4F0;
	--teal: #48CFAD; --teal-ink: #0E7A63; --teal-bg: #E7F9F4; --teal-border: #B6EEDF;
	--lime: #97D930;
	/* roles */
	--text: var(--gray-900); --text-muted: var(--gray-600); --text-faint: var(--gray-400);
	--border: var(--gray-200); --border-strong: var(--gray-300); --border-soft: var(--gray-100);
	--row-hover: var(--gray-50); --selected: var(--blue-50);
	--focus-ring: 0 0 0 3px rgba(17, 42, 169, .22);
	--elev-1: 0 1px 2px rgba(11, 15, 22, .06), 0 8px 24px rgba(11, 15, 22, .08);
	/* type */
	--ui: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
	--mono: ui-monospace, SFMono-Regular, Menlo, monospace;
}
:root[data-theme="dark"] {
	--page: #0B0F16; --surface: #14181F; --gray-50: #1B2029; --gray-100: #1F2530;
	--border: #262C36; --border-strong: #333A45; --border-soft: #1F2530;
	--text: #F4F6FA; --ink: #F4F6FA; --text-muted: #A5A8B0; --text-faint: #74767E;
	--blue-600: #6B85FF; --blue-700: #8C9DEB; --blue-50: #131A3D; --blue-border: #26306B;
	--success: #2ED9A0; --success-ink: #2ED9A0; --success-bg: #10251E; --success-border: #1E4A3B;
	--warning: #FFD24D; --warning-ink: #FFD24D; --warning-bg: #2A2410; --warning-border: #4A3F14; --warning-card: #1F1D12;
	--danger: #FF6B6E; --danger-ink: #FF6B6E; --danger-bg: #2A1516; --danger-border: #4A2224; --danger-row: #1C1214;
	--purple: #A98BE0; --purple-ink: #A98BE0; --purple-bg: #1F1A2E; --purple-border: #3A2F55;
	--teal-ink: #48CFAD; --teal-bg: #10241F; --teal-border: #1E4A40;
	--row-hover: #1B2029; --selected: #131A3D;
	--focus-ring: 0 0 0 3px rgba(107, 133, 255, .35);
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--page: #0B0F16; --surface: #14181F; --gray-50: #1B2029; --gray-100: #1F2530;
		--border: #262C36; --border-strong: #333A45; --border-soft: #1F2530;
		--text: #F4F6FA; --ink: #F4F6FA; --text-muted: #A5A8B0; --text-faint: #74767E;
		--blue-600: #6B85FF; --blue-700: #8C9DEB; --blue-50: #131A3D; --blue-border: #26306B;
		--success: #2ED9A0; --success-ink: #2ED9A0; --success-bg: #10251E; --success-border: #1E4A3B;
		--warning: #FFD24D; --warning-ink: #FFD24D; --warning-bg: #2A2410; --warning-border: #4A3F14; --warning-card: #1F1D12;
		--danger: #FF6B6E; --danger-ink: #FF6B6E; --danger-bg: #2A1516; --danger-border: #4A2224; --danger-row: #1C1214;
		--purple: #A98BE0; --purple-ink: #A98BE0; --purple-bg: #1F1A2E; --purple-border: #3A2F55;
		--teal-ink: #48CFAD; --teal-bg: #10241F; --teal-border: #1E4A40;
		--row-hover: #1B2029; --selected: #131A3D;
		--focus-ring: 0 0 0 3px rgba(107, 133, 255, .35);
	}
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-family: var(--ui); font-size: 14px; color: var(--text); background: var(--page); -webkit-font-smoothing: antialiased; }
body { margin: 0; min-height: 100vh; }
a { color: var(--blue-600); text-decoration: none; }
a:hover { color: var(--blue-700); }
h1, h2, h3 { margin: 0; color: var(--ink); font-weight: 700; letter-spacing: -0.01em; }
p { margin: 0 0 8px; }
.mono { font-family: var(--mono); font-size: 13px; }
.num, .tabular { font-variant-numeric: tabular-nums; }
.muted { color: var(--text-muted); }
.faint { color: var(--text-faint); }
:focus-visible { outline: none; box-shadow: var(--focus-ring); border-color: var(--blue-600); }
[hidden] { display: none !important; }

/* ---------- top navigation ---------- */
.topnav { height: 60px; background: var(--surface); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; }
.topnav__left, .topnav__right { display: flex; align-items: center; gap: 14px; }
.topnav__left { gap: 36px; }
.brand { display: flex; flex-direction: column; line-height: 1.15; }
.brand__name { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.brand__lockup { font-size: 11px; font-weight: 500; color: var(--text-muted); }
.nav { display: flex; align-items: center; gap: 4px; }
.nav__item { font-size: 14px; font-weight: 500; color: var(--text-muted); padding: 7px 12px; border-radius: 8px; }
.nav__item:hover { background: var(--gray-50); color: var(--text); }
.nav__item.is-active { color: var(--blue-600); background: var(--blue-50); font-weight: 600; }
.chip-debug { font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .06em; color: #0B0F16; background: #FFC107; border: 1px solid #E0A800; border-radius: 4px; padding: 3px 7px; }
.avatar { width: 28px; height: 28px; border-radius: 999px; background: var(--gray-100); border: 1px solid var(--border); font-size: 12px; font-weight: 600; color: var(--gray-800); display: inline-flex; align-items: center; justify-content: center; object-fit: cover; }
.usermenu { position: relative; }
.usermenu__btn { display: flex; align-items: center; gap: 8px; background: none; border: 0; padding: 4px 6px; border-radius: 8px; font: inherit; color: var(--text); cursor: pointer; }
.usermenu__btn:hover { background: var(--gray-50); }
.usermenu__name { font-size: 13px; font-weight: 500; }
.usermenu__caret { font-size: 11px; color: var(--text-muted); }
.usermenu__panel { position: absolute; right: 0; top: calc(100% + 6px); min-width: 240px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--elev-1); padding: 10px; z-index: 30; }
.usermenu__email { font-size: 12px; color: var(--text-muted); padding: 4px 6px 10px; border-bottom: 1px solid var(--border-soft); margin-bottom: 8px; word-break: break-all; }
.usermenu__theme { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); padding: 2px 6px 10px; }
.usermenu__theme button { font: inherit; font-size: 12px; padding: 3px 8px; border-radius: 6px; border: 1px solid var(--border-strong); background: var(--surface); color: var(--text); cursor: pointer; }
.usermenu__theme button[aria-pressed="true"] { background: var(--blue-600); border-color: var(--blue-600); color: #fff; }
.usermenu__logout { width: 100%; text-align: left; font: inherit; font-size: 13px; padding: 7px 8px; border: 0; background: none; color: var(--danger-ink); border-radius: 6px; cursor: pointer; }
.usermenu__logout:hover { background: var(--danger-bg); }

/* ---------- debug banner ---------- */
.banner-debug { display: flex; align-items: center; gap: 12px; background: var(--warning-bg); border-bottom: 1px solid var(--warning-border); box-shadow: inset 0 3px 0 #FFC107; padding: 12px 24px; font-size: 14px; color: var(--text); }
.banner-debug__badge { font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .06em; background: #FFC107; border: 1px solid #E0A800; color: #0B0F16; border-radius: 4px; padding: 3px 7px; }
.banner-debug__link { margin-left: auto; font-weight: 600; }

/* ---------- page ---------- */
.page { max-width: 1320px; margin: 0 auto; padding: 24px 60px 56px; display: flex; flex-direction: column; gap: 20px; }
.page--wide { max-width: none; padding: 24px 24px 56px; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.page-title { font-size: 24px; }
.page-sub { font-size: 14px; color: var(--text-muted); margin-top: 4px; }
.page-actions { display: flex; gap: 8px; }
.breadcrumb { font-size: 13px; color: var(--text); display: flex; gap: 8px; }
.breadcrumb .sep { color: var(--gray-300); }
.breadcrumb .current { font-weight: 600; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 36px; padding: 0 14px; border-radius: 8px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid transparent; white-space: nowrap; transition: background .15s ease-out, border-color .15s ease-out, color .15s ease-out; }
.btn--primary { background: var(--blue-600); border-color: var(--blue-600); color: #fff; }
.btn--primary:hover { background: var(--blue-700); border-color: var(--blue-700); color: #fff; }
.btn--secondary { background: var(--surface); border-color: var(--border-strong); color: var(--text); }
.btn--secondary:hover { background: var(--gray-50); color: var(--text); }
.btn--ghost { background: transparent; color: var(--blue-600); padding: 0 12px; }
.btn--ghost:hover { background: var(--blue-50); }
.btn--danger { background: var(--surface); border-color: var(--danger-border); color: var(--danger-ink); }
.btn--danger:hover { background: var(--danger-bg); border-color: var(--danger-hover); }
.btn--danger-filled { background: #FF2D30; border-color: #E01F22; color: #fff; }
.btn--sm { height: 30px; padding: 0 10px; border-radius: 6px; font-size: 13px; }
.btn[disabled], .btn.is-disabled { background: var(--gray-400); border-color: var(--gray-400); color: #fff; cursor: not-allowed; }
.btn--secondary[disabled] { background: var(--surface); border-color: var(--border); color: var(--gray-400); }

/* ---------- fields ---------- */
.field { display: flex; flex-direction: column; gap: 6px; }
.field__label { font-size: 13px; font-weight: 500; color: var(--text-muted); }
.field__help { font-size: 12px; color: var(--text-muted); }
.field__error { font-size: 12px; color: var(--danger-ink); }
.input, .select, textarea.input { height: 36px; border-radius: 6px; border: 1px solid var(--border-strong); background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; padding: 0 10px; width: 100%; }
textarea.input { height: auto; min-height: 80px; padding: 8px 10px; resize: vertical; }
.input::placeholder { color: var(--gray-400); }
.input:focus, .select:focus { border-color: var(--blue-600); box-shadow: var(--focus-ring); outline: none; }
.input[disabled], .select[disabled] { background: var(--gray-50); border-color: var(--border); color: var(--gray-400); }
.input.is-error { border-color: var(--danger); }
.input--search { width: 260px; }
.input--num { text-align: right; font-variant-numeric: tabular-nums; }
.select { appearance: none; padding-right: 28px; background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%); background-position: calc(100% - 15px) 15px, calc(100% - 10px) 15px; background-size: 5px 5px; background-repeat: no-repeat; }
.money { display: flex; align-items: stretch; border: 1px solid var(--border-strong); border-radius: 6px; overflow: hidden; background: var(--surface); }
.money__addon { display: flex; align-items: center; padding: 0 10px; font-size: 13px; color: var(--text-muted); background: var(--gray-50); border-right: 1px solid var(--border); }
.money__addon--suffix { border-right: 0; border-left: 1px solid var(--border); }
.money .input { border: 0; border-radius: 0; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.money .input:focus { box-shadow: none; }
.money:focus-within { border-color: var(--blue-600); box-shadow: var(--focus-ring); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.form-grid .span-2 { grid-column: span 2; }
.check { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.check input { width: 16px; height: 16px; accent-color: var(--blue-600); }

/* ---------- chips, pills ---------- */
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { font-size: 13px; font-weight: 500; border-radius: 999px; padding: 5px 12px; background: var(--surface); border: 1px solid var(--border-strong); color: var(--text); }
.chip:hover { background: var(--gray-50); color: var(--text); }
.chip.is-selected { background: var(--blue-600); border-color: var(--blue-600); color: #fff; font-weight: 600; }
.pill { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; border-radius: 999px; padding: 2px 8px; border: 1px solid; white-space: nowrap; }
.pill__dot { width: 6px; height: 6px; border-radius: 999px; background: currentColor; }
.pill--green { background: var(--success-bg); border-color: var(--success-border); color: var(--success-ink); }
.pill--green .pill__dot { background: var(--success); }
.pill--gray { background: var(--gray-100); border-color: var(--border); color: var(--text-muted); }
.pill--purple { background: var(--purple-bg); border-color: var(--purple-border); color: var(--purple-ink); }
.pill--purple .pill__dot { background: var(--purple); }
.pill--amber { background: var(--warning-bg); border-color: var(--warning-border); color: var(--warning-ink); }
.pill--amber .pill__dot { background: var(--warning); }
.pill--red { background: var(--danger-bg); border-color: var(--danger-border); color: var(--danger-ink); }
.pill--red .pill__dot { background: var(--danger); }
.pill--teal { background: var(--teal-bg); border-color: var(--teal-border); color: var(--teal-ink); }
.pill--teal .pill__dot { background: var(--teal); }
.pill--blue { background: var(--blue-50); border-color: var(--blue-border); color: var(--blue-600); }
.pill--blue .pill__dot { background: var(--blue-600); }
.pill--struck { text-decoration: line-through; }

/* ---------- toolbar ---------- */
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.toolbar__right { display: flex; align-items: center; gap: 8px; }

/* ---------- panels, KPI ---------- */
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 18px 20px; }
.panel--table { padding: 0; overflow: hidden; }
.panel__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.panel--table .panel__head { padding: 14px 16px 0; margin-bottom: 12px; } /* anticipos-ninja: a titled table panel */
.panel__title { font-size: 16px; font-weight: 600; color: var(--ink); }
.panel__sub { font-size: 13px; color: var(--text-muted); margin-top: 2px; }
.kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.kpi { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 14px; }
.kpi__label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.kpi__value { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); font-variant-numeric: tabular-nums; margin-top: 6px; }
.kpi__foot { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.kpi__foot--danger { color: var(--danger-ink); }
.kpi__foot--success { color: var(--success-ink); }
.kpi--alert { background: var(--warning-card); border-color: var(--warning-border); }
.kpi--alert .kpi__label { color: var(--warning-ink); }
.kpi--danger { background: var(--danger-row); border-color: var(--danger-border); }
.kpi--danger .kpi__label { color: var(--danger-ink); }
.kpi--blue { background: var(--blue-50); border-color: var(--blue-border); }
.kpi--blue .kpi__label { color: var(--blue-600); }

/* ---------- table ---------- */
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th { height: 36px; background: var(--gray-100); border-bottom: 1px solid var(--border); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); text-align: left; padding: 0 14px; white-space: nowrap; }
.table th.num, .table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.table td { height: 40px; padding: 6px 14px; border-bottom: 1px solid var(--border-soft); vertical-align: middle; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: var(--row-hover); }
.table tr.is-selected td { background: var(--selected); box-shadow: inset 2px 0 0 var(--blue-600); }
.table tr.is-failed td { background: var(--danger-row); }
.table tfoot td { background: var(--page); border-top: 1px solid var(--border); font-weight: 700; font-variant-numeric: tabular-nums; }
.table tfoot td.label { font-size: 13px; font-weight: 600; color: var(--text-muted); }
.cell-title { font-weight: 600; color: var(--ink); }
.cell-title:hover { color: var(--blue-600); }
.cell-sub { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.table .mono { font-size: 13px; }

/* ---------- banners, empty, toast ---------- */
.banner { display: flex; align-items: flex-start; gap: 10px; border-radius: 8px; padding: 12px 14px; font-size: 14px; }
.banner--info { background: var(--blue-50); border: 1px solid var(--blue-border); }
.banner--warning { background: var(--warning-bg); border: 1px solid var(--warning-border); box-shadow: inset 3px 0 0 #FFC107; }
.banner--danger { background: var(--danger-bg); border: 1px solid var(--danger-border); color: var(--danger-ink); }
.empty { padding: 32px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--text-muted); }
.empty__glyph { width: 40px; height: 40px; border: 1px dashed var(--gray-300); border-radius: 8px; }
.empty p { max-width: 320px; margin: 0; }
.toast { position: fixed; right: 24px; bottom: 24px; background: #0B0F16; color: #fff; border-radius: 8px; padding: 12px 14px; font-size: 14px; font-weight: 500; box-shadow: var(--elev-1); z-index: 40; }

/* ---------- tabs ---------- */
.tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--border); }
.tabs__item { font-size: 14px; font-weight: 500; color: var(--text-muted); padding: 0 0 10px; }
.tabs__item.is-active { color: var(--blue-600); font-weight: 600; box-shadow: inset 0 -2px 0 var(--blue-600); }
.tabs__count { font-size: 12px; color: var(--text-faint); margin-left: 4px; }

/* ---------- login (design_handoff_login, 2026-09-10) ---------- */
body.bare { background: var(--page); }
.login-ground { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 40px; }
.login-card { width: 400px; max-width: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 36px 32px; display: flex; flex-direction: column; gap: 24px; }
.login-lockup { display: flex; flex-direction: column; gap: 2px; }
.login-wordmark { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); margin: 0; }
.login-brand { font-size: 12px; font-weight: 500; color: var(--text-muted); }
.login-desc { font-size: 14px; color: var(--text); line-height: 1.6; text-wrap: pretty; margin: 0; }
.login-btn { display: flex; align-items: center; justify-content: center; gap: 10px; height: 44px; width: 100%; border-radius: 8px; background: var(--blue-600); border: 1px solid var(--blue-600); color: #fff; font-size: 14px; font-weight: 600; transition: background .15s ease-out, border-color .15s ease-out, box-shadow .15s ease-out; }
.login-btn:hover { background: var(--blue-700); border-color: var(--blue-700); color: #fff; }
.login-btn:focus-visible { box-shadow: 0 0 0 3px rgba(17, 42, 169, .28); outline: none; }
.login-btn.is-redirecting { cursor: progress; }
.login-btn__badge { width: 20px; height: 20px; border-radius: 999px; background: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.login-spinner { width: 14px; height: 14px; border: 2px solid rgba(17, 42, 169, .3); border-top-color: var(--blue-600); border-radius: 999px; display: inline-block; animation: ann-spin 700ms linear infinite; }
@keyframes ann-spin { to { transform: rotate(360deg); } }
.login-divider { height: 1px; background: var(--border-soft); }
.login-foot { font-size: 13px; color: var(--text-muted); line-height: 1.7; margin: 0; }
.login-foot .mono { font-size: 12px; color: var(--text); }
.login-foot__group { word-break: break-all; }
.login-help { font-size: 13px; font-weight: 600; }
.login-banner { display: flex; align-items: flex-start; gap: 10px; border-radius: 8px; padding: 12px 14px; font-size: 13px; line-height: 1.5; border: 1px solid; }
.login-banner__icon { width: 18px; height: 18px; border-radius: 999px; flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: #fff; margin-top: 1px; }
.login-banner__title { font-weight: 700; }
.login-banner--danger { background: var(--danger-bg); border-color: var(--danger-border); color: var(--danger-ink); }
.login-banner--danger .login-banner__icon { background: var(--danger); }
.login-banner--warning { background: var(--warning-bg); border-color: var(--warning-border); color: var(--warning-ink); box-shadow: inset 3px 0 0 #FFC107; }
.login-banner--warning .login-banner__icon { background: var(--warning); color: #0B0F16; }
.login-banner--info { background: var(--blue-50); border-color: var(--blue-border); color: var(--blue-700); }
.login-banner--info .login-banner__icon { background: var(--blue-600); }

@media (max-width: 1024px) {
	.page { padding: 20px; }
	.kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.kpi__value { font-size: 20px; }
	.input--search { width: 200px; }
	.topnav { padding: 0 20px; }
}

/* ---------- simulate rail / timeline ---------- */
.sim-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 6px 0; font-size: 14px; }
.sim-row b { font-weight: 600; color: var(--ink); }
.sim-row--sub { font-size: 12px; color: var(--text-muted); padding: 2px 0; }
.sim-sep { border-top: 1px dashed var(--border); margin: 6px 0; }
.sim-sep--solid { border-top-style: solid; }
.sim-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 10px; font-size: 14px; }
.sim-total b { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.form-stack { display: flex; flex-direction: column; gap: 20px; }
.table .input, .table .money { min-width: 90px; }
.table td .input { height: 32px; }

/* anticipos-ninja additions — wide tables scroll inside their panel; the top bar wraps on a
 * phone instead of overflowing (the contratos layout assumes a desktop). */
.panel--table { overflow-x: auto; }
.page > * { min-width: 0; }   /* flex children may shrink below their table width */
@media (max-width: 760px) {
	.topnav { height: auto; flex-wrap: wrap; gap: 8px; padding: 10px 16px; }
	.topnav__left { gap: 12px; flex-wrap: wrap; width: 100%; min-width: 0; }
	.nav { overflow-x: auto; max-width: 100%; min-width: 0; }
	.topnav__right .mono { display: none; }
	.page { padding-left: 16px; padding-right: 16px; }
}
