html, body { margin:0; height:100%; }
:root {
    --ink:#173342;
    --muted:#58707d;
    --brand:#174f6d;
    --brand-hover:#0f405a;
    --brand-soft:#e7f0f5;
    --line:#c9d7df;
    --surface:#fff;
    --canvas:#eef3f6;
    --danger:#9f2f38;
    --focus:#58a5cf;
}

/* Shared controls: compact enough for operational screens, but still easy to target. */
html body .workspace-body button,
html body .access-page button {
    min-height:32px;
    padding:5px 13px;
    border:1px solid transparent;
    border-radius:6px;
    background:var(--brand);
    color:#fff;
    font:600 14px/1.2 "Segoe UI",sans-serif;
    letter-spacing:.005em;
    cursor:pointer;
    box-shadow:0 1px 2px rgba(15,47,64,.16);
    transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease;
}
html body .workspace-body button:hover:not(:disabled),
html body .access-page button:hover:not(:disabled) { background:var(--brand-hover); box-shadow:0 2px 5px rgba(15,47,64,.2); }
html body .workspace-body button:active:not(:disabled),
html body .access-page button:active:not(:disabled) { transform:translateY(1px); box-shadow:none; }
html body .workspace-body button:disabled,
html body .access-page button:disabled { opacity:.48; cursor:not-allowed; box-shadow:none; }
html body .workspace-body button.secondary,
html body .workspace-body button.quiet,
html body .access-page button.secondary,
html body .access-page button.quiet { background:#fff; border-color:#9eb4c0; color:#174a67; box-shadow:none; }
html body .workspace-body button.secondary:hover:not(:disabled),
html body .workspace-body button.quiet:hover:not(:disabled),
html body .access-page button.secondary:hover:not(:disabled),
html body .access-page button.quiet:hover:not(:disabled) { background:var(--brand-soft); border-color:#64899d; }
html body .workspace-body button:focus-visible,
html body .access-page button:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
html body .workspace-body input,
html body .workspace-body select,
html body .workspace-body textarea { min-height:32px; box-sizing:border-box; border:1px solid #91a8b5; border-radius:5px; background:#fff; color:var(--ink); font:inherit; }
html body .workspace-body input:focus,
html body .workspace-body select:focus,
html body .workspace-body textarea:focus { border-color:#28749a; outline:3px solid rgba(88,165,207,.25); }
/* Shared desktop grid standard: use data-workspace for all management lists. */
.workspace-body .data-workspace { height:100%; min-height:0; display:flex; flex-direction:column; background:#eef3f6; }
.workspace-body .data-workspace > header { flex:none; display:flex; align-items:baseline; gap:20px; padding:10px 18px; background:#174a67; color:#fff; }
.workspace-body .data-workspace > header strong { font-size:20px; }
.workspace-body .data-workspace > section { flex:1; min-height:0; display:flex; flex-direction:column; overflow:auto; padding:12px 18px; max-width:none; box-sizing:border-box; }
.workspace-body .data-workspace .grid-scroll { flex:1 1 0; min-height:160px; max-height:none; overflow:auto; background:white; border:1px solid var(--line); border-radius:5px; }
.workspace-body .data-workspace table { width:100%; border-collapse:collapse; background:white; }
.workspace-body .data-workspace th, .workspace-body .data-workspace td { padding:3px 9px; font-size:14px; line-height:1.2; border-bottom:1px solid #d5dfe5; }
.workspace-body .data-workspace td { height:20px; }
.workspace-body .data-workspace td button { min-height:26px; padding:2px 9px; font-size:12px; line-height:1.15; box-shadow:none; }
.workspace-body .data-workspace th { position:sticky; top:0; background:#dce7ee; z-index:1; }
.workspace-body .data-workspace th.amount,
.workspace-body .data-workspace td.amount { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.workspace-body .data-workspace td.amount input { text-align:right; font-variant-numeric:tabular-nums; }
.workspace-body .data-workspace th.actions,
.workspace-body .data-workspace td.actions { text-align:right; white-space:nowrap; }
.workspace-body .data-workspace .document-link { color:#155b7c; font-weight:600; text-decoration:none; border-bottom:1px solid #9fc0d0; }
.workspace-body .data-workspace .document-link:hover { color:#0e4059; border-bottom-color:#0e4059; }
.workspace-body .data-workspace .document-link:focus-visible { outline:3px solid var(--focus); outline-offset:2px; border-radius:2px; }
.workspace-body .data-workspace .pagination { flex:none; display:flex; align-items:center; gap:16px; padding:10px 0; font-size:14px; }
.workspace-body .data-workspace .pagination button { padding:8px 16px; }
.workspace-body .data-workspace h1 { flex:none; margin:0; font-size:24px; line-height:1.15; color:var(--ink); }
.workspace-body .data-workspace h2 { color:var(--ink); }
.workspace-body .data-workspace p { flex:none; margin:5px 0; line-height:1.35; }
.workspace-body .data-workspace form { flex:none; margin:8px 0; }
.workspace-body .data-workspace .listing-toolbar { flex:none; }
.workspace-body .data-workspace .listing-toolbar form { margin:0; }
.workspace-body .data-workspace label { font-size:13px; margin-bottom:4px; }
.workspace-body .data-workspace input { padding:5px 9px; }
.workspace-body .data-workspace .search-line button { padding:5px 13px; }
.workspace-body .data-workspace .note { font-size:12px; }
.workspace-body .data-workspace .customer-detail { flex:none; }
.workspace-body .data-workspace .page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex:none; }
.workspace-body .data-workspace .page-heading-copy { min-width:240px; }
.workspace-body .data-workspace .compact-toolbar { display:flex; align-items:flex-end; gap:8px; flex-wrap:wrap; margin:0; }
.workspace-body .data-workspace .compact-toolbar label { display:grid; gap:3px; margin:0; color:#3d5664; font-weight:600; }
.workspace-body .data-workspace .compact-toolbar .grow { flex:1 1 260px; min-width:220px; }
.workspace-body .data-workspace .compact-toolbar .filter-actions { display:flex; gap:6px; align-items:center; }
@media(max-width:900px) {
    .workspace-body .data-workspace .page-heading { align-items:stretch; flex-direction:column; gap:8px; }
    .workspace-body .data-workspace .compact-toolbar { width:100%; }
}
.vat-book-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.vat-book-heading p { max-width:760px; }
.vat-book-filters { max-width:720px; }
.vat-totals { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); border:1px solid #b8cbd7; background:#fff; margin:2px 0 8px; }
.vat-totals div { padding:9px 12px; border-right:1px solid #d5dfe5; display:flex; flex-direction:column; gap:3px; }
.vat-totals div:last-child { border-right:0; }
.vat-totals span { font-size:12px; color:#536b79; }
.vat-totals strong { font-size:17px; color:#163f55; font-variant-numeric:tabular-nums; }
.vat-totals .vat-total-final { background:#163f55; }
.vat-totals .vat-total-final span,.vat-totals .vat-total-final strong { color:#fff; }
.vat-book table { min-width:1450px; }
.vat-book .credit-row td { color:#8d2f2f; }
.vat-book .amount { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.fiscal-control .page-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.fiscal-purpose { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:14px 0; background:#bfd0d9; border:1px solid #bfd0d9; }
.fiscal-purpose div { display:grid; gap:4px; padding:12px 14px; background:#f7fafb; }
.fiscal-purpose strong { color:#123d55; }
.fiscal-purpose span { color:#415866; line-height:1.35; }
.control-summary { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 1rem; margin:1rem 0; border-left:4px solid; }
.control-summary.ok { background:#e7f4ed; border-color:#287a55; }
.control-summary.warning { background:#fff2dc; border-color:#c26b11; }
.control-grid { max-height:calc(100vh - 315px); }
.control-grid tr.needs-review td { background:#fff7e9; }
.control-grid tr.matched td:first-child { border-left:3px solid #3c8b66; }
@media(max-width:800px) { .fiscal-control .page-heading,.control-summary { align-items:stretch; flex-direction:column; } .fiscal-purpose { grid-template-columns:1fr; } .control-grid { max-height:calc(100vh - 360px); } }
.closure-filters { display:flex; align-items:end; gap:12px; }.closure-filters label { display:grid; gap:4px; }.closure-state { display:flex; justify-content:space-between; gap:16px; margin:8px 0 14px; padding:12px 16px; border-left:4px solid; }.closure-state.ready { background:#e7f4ed; border-color:#287a55; }.closure-state.attention { background:#fff2dc; border-color:#c26b11; }.closure-metrics { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:10px; margin-bottom:14px; }.closure-metrics div { background:#fff; border:1px solid #d5dfe5; padding:10px 12px; }.closure-metrics span { display:block; color:#516674; font-size:12px; }.closure-metrics strong { display:block; margin-top:3px; font-size:20px; }.closure-issues { display:grid; gap:7px; }.closure-issues h2 { margin:4px 0; font-size:18px; }.closure-issue { display:flex; justify-content:space-between; gap:16px; padding:9px 12px; background:#fff; border-left:4px solid #d18a25; color:#17394d; text-decoration:none; }.closure-issue.severity-1 { border-color:#b83939; }.closure-links { display:flex; gap:18px; margin-top:14px; }.closure-links a { font-weight:700; color:#195573; }
@media(max-width:1000px){.closure-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.vat-totals{grid-template-columns:repeat(3,1fr)}.vat-totals div:nth-child(3){border-right:0}.vat-totals div:nth-child(-n+3){border-bottom:1px solid #d5dfe5}}
h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
