:root { color-scheme: light; --ink:#172b3a; --muted:#5d6b75; --blue:#193f5f; --pale:#edf4f8; --line:#cbd6de; --accent:#d9781f; --danger:#9b2c2c; }
* { box-sizing:border-box; }
body { margin:0; font-family:Arial, Helvetica, sans-serif; color:var(--ink); background:#f4f7f9; line-height:1.45; }
a { color:#145a86; }
.topbar { min-height:64px; display:flex; align-items:center; gap:28px; padding:0 32px; background:var(--blue); color:white; }
.topbar a { color:white; text-decoration:none; }
.brand { display:flex; align-items:center; gap:10px; min-width:300px; font-weight:700; }
.brand-logo { width:44px; height:44px; object-fit:contain; background:white; border-radius:5px; padding:3px; }
.brand-text { display:flex; flex-direction:column; line-height:1.15; }
.brand-text strong { max-width:310px; font-size:.86rem; }
.brand-text small { margin-top:3px; font-size:.74rem; opacity:.82; }
.topbar nav { display:flex; gap:22px; flex:1; }
.department-nav a { padding:20px 0; white-space:nowrap; }
.account-links { display:flex; gap:16px; align-items:center; white-space:nowrap; }
.workspacebar { min-height:44px; display:flex; gap:22px; align-items:center; padding:0 32px; background:#dce9f0; border-bottom:1px solid var(--line); }
.workspacebar a { color:#294c63; text-decoration:none; font-weight:700; font-size:.88rem; }
.section-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 20px; }
.section-tabs a { padding:8px 13px; border:1px solid var(--line); border-radius:999px; background:white; color:#294c63; text-decoration:none; font-weight:700; font-size:.86rem; }
.section-tabs a.active { background:var(--blue); color:white; border-color:var(--blue); }
.logout-form { margin:0; }
.link-button { border:0; background:transparent; color:white; cursor:pointer; font:inherit; }
.page-shell { max-width:1280px; margin:0 auto; padding:32px; }
.page-heading { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:24px; }
h1 { margin:.15rem 0 .25rem; font-size:2rem; }
h2 { margin:0; font-size:1.2rem; }
.eyebrow { margin:0; color:#4d687a; text-transform:uppercase; letter-spacing:.09em; font-size:.75rem; font-weight:700; }
.actions { display:flex; gap:10px; flex-wrap:wrap; }
.button, button.primary { display:inline-block; border:1px solid #9eafb9; border-radius:6px; padding:10px 16px; background:white; color:var(--ink); text-decoration:none; cursor:pointer; font-weight:700; }
.button.primary, button.primary { background:var(--blue); border-color:var(--blue); color:white; }
.button.danger { background:#fff5f5; color:var(--danger); border-color:#d9a7a7; }
button.danger { display:inline-block; border:1px solid #d9a7a7; border-radius:6px; padding:10px 16px; background:#fff5f5; color:var(--danger); cursor:pointer; font-weight:700; }
button:disabled { opacity:.5; cursor:not-allowed; }
.card, .form-card, .narrow-card { background:white; border:1px solid var(--line); border-radius:8px; padding:22px; box-shadow:0 2px 8px rgba(24,47,63,.05); }
.form-card { max-width:760px; }
.narrow-card { max-width:440px; margin:7vh auto; }
.two-column { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:14px; margin-bottom:22px; }
.metric { background:white; border:1px solid var(--line); border-radius:8px; padding:18px; }
.metric span { display:block; color:var(--muted); font-size:.84rem; }
.metric strong { display:block; font-size:1.65rem; margin-top:5px; }
.section-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:10px 9px; border-bottom:1px solid #dce4e9; vertical-align:top; font-size:.9rem; }
thead th { background:var(--pale); color:#324e61; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; }
.comparison th:first-child { width:20%; }
.comparison td { width:40%; overflow-wrap:anywhere; }
.comparison tr.changed { background:#fff6df; }
.status { display:inline-block; border-radius:999px; padding:3px 9px; background:#e7edf1; font-size:.78rem; white-space:nowrap; }
.status.review, .status.pending { background:#fff0c7; color:#6e4b00; }
.status.complete, .status.accepted, .status.ready { background:#e1f3e5; color:#225d2e; }
.status.failed, .status.rejected { background:#f7dddd; color:#812525; }
button.status-button { border:0; font-family:inherit; cursor:pointer; }
button.status-button:focus-visible { outline:3px solid rgba(20,90,134,.35); outline-offset:2px; }
.notice, .message { padding:13px 15px; border:1px solid #b9ccd8; background:#edf7fc; border-radius:6px; margin-bottom:20px; }
.notice.warning { background:#fff5d9; border-color:#e2c576; }
.message.success { background:#e4f5e8; border-color:#9fc8a7; }
.message.error, .errorlist { color:#812525; }
.stack-form { display:grid; gap:10px; }
.stack-form label { font-weight:700; }
.stack-form input[type=text], .stack-form input[type=password], .stack-form input[type=month], .stack-form input[type=date], .stack-form input[type=file], .stack-form textarea, .stack-form select { width:100%; border:1px solid #9eafb9; border-radius:5px; padding:10px; font:inherit; background:white; }
.checkbox-field label { display:flex; gap:9px; align-items:flex-start; }
.bulk-print-toolbar { display:flex; gap:14px; align-items:center; flex-wrap:wrap; padding:12px 14px; margin-bottom:14px; border:1px solid var(--line); border-radius:6px; background:var(--pale); }
.bulk-print-toolbar label { display:flex; gap:7px; align-items:center; font-weight:700; }
.bulk-print-toolbar .help { flex:1; min-width:260px; margin:0; }
.bulk-document-actions { display:grid; gap:8px; margin-left:auto; min-width:156px; }
.bulk-document-actions button { width:100%; }
.bulk-review-note { flex:1; min-width:260px; }
.bulk-review-note label { display:block; margin-bottom:4px; font-size:.82rem; }
.bulk-review-note input { width:100%; border:1px solid #9eafb9; border-radius:5px; padding:8px; font:inherit; background:white; }
.select-column { width:88px; }
.select-column label { display:flex; gap:6px; align-items:center; cursor:pointer; white-space:nowrap; }
.statement-select-label { justify-content:center; }
.document-select-column { width:92px; text-align:center; }
.document-select-column label { display:flex; gap:6px; align-items:center; justify-content:center; cursor:pointer; white-space:nowrap; }
.table-open-button, .table-download-button { border:0; background:none; color:var(--link); padding:0; font:inherit; text-decoration:underline; cursor:pointer; }
.table-open-button:disabled, .table-download-button:disabled { color:var(--muted); cursor:not-allowed; text-decoration:none; }
.document-actions { display:grid; gap:8px; min-width:205px; }
.document-options, .document-links { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.document-actions label { display:flex; gap:5px; align-items:center; cursor:pointer; white-space:nowrap; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.help { margin:3px 0 8px; color:var(--muted); font-size:.85rem; }
.batch-date-card { margin-bottom:20px; padding:14px 18px; }
.batch-date-summary { display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.batch-date-summary div { display:grid; gap:2px; }
.batch-date-summary .help { margin:0; }
.batch-date-summary .button { margin-left:auto; }
.balance-stack { display:grid; gap:8px; min-width:92px; }
.balance-item strong, .balance-item span { display:block; }
.balance-item strong { font-size:.85rem; line-height:1.2; }
.balance-item span { margin-top:2px; white-space:nowrap; }
.empty { color:var(--muted); }
.compact-form { max-width:none; margin-bottom:20px; padding:14px 18px; }
.inline-form { display:flex; gap:14px; align-items:end; flex-wrap:wrap; }
.inline-form label { display:block; font-weight:700; font-size:.82rem; }
.inline-form input, .inline-form select { border:1px solid #9eafb9; border-radius:5px; padding:9px; font:inherit; background:white; }
.pagination { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:18px; flex-wrap:wrap; }
.pagination .button { padding:7px 12px; }
.detail-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:20px; }
.detail-grid span { display:block; color:var(--muted); font-size:.8rem; }
.detail-grid strong { overflow-wrap:anywhere; }
.compact-list { margin:6px 0 0; padding-left:18px; color:var(--muted); font-size:.8rem; }
.details-list { display:grid; grid-template-columns:180px 1fr; gap:10px 20px; margin:0; }
.details-list dt { color:var(--muted); font-weight:700; }
.details-list dd { margin:0; }
.client-financial-summary { margin-bottom:20px; }
.current-value { margin:4px 0; font-size:1.25rem; font-weight:700; }
.rate-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0 0; }
.rate-grid div { padding:12px; background:var(--pale); border-radius:6px; }
.rate-grid dt { color:var(--muted); font-size:.78rem; }
.rate-grid dd { margin:3px 0 0; font-weight:700; font-size:1.15rem; }
dialog { width:min(960px,calc(100% - 40px)); max-height:80vh; border:1px solid var(--line); border-radius:10px; padding:22px; color:var(--ink); box-shadow:0 16px 50px rgba(0,0,0,.25); }
dialog::backdrop { background:rgba(15,32,45,.55); }
.dialog-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:18px; }
.drift-dialog { overflow:auto; }
.readiness-dialog { overflow:auto; }
.readiness-review-list { display:grid; gap:10px; margin-top:16px; }
.readiness-review-list div { padding:13px 15px; border:1px solid #e2c576; border-radius:6px; background:#fff8e5; }
.readiness-review-list p { margin:4px 0 0; }
.drift-dialog h3 { margin:22px 0 8px; font-size:1rem; }
.drift-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:18px; }
.drift-summary-grid div { padding:12px; border-radius:6px; background:var(--pale); }
.drift-summary-grid strong, .drift-summary-grid span { display:block; }
.drift-summary-grid strong { font-size:1.25rem; }
.drift-summary-grid span { color:var(--muted); font-size:.78rem; }
.dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }
@media (max-width:820px) { .page-shell{padding:20px}.topbar{padding:12px 20px;flex-wrap:wrap}.topbar nav{order:3;width:100%;padding-bottom:8px;overflow-x:auto}.department-nav a{padding:4px 0}.account-links{margin-left:auto}.workspacebar{padding:10px 20px;overflow-x:auto}.page-heading{display:block}.actions{margin-top:14px}.two-column{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.rate-grid{grid-template-columns:1fr} }
