/* Shared interface; document canvases remain paper-colored in both themes. */
:root {
 color-scheme:light; --sidebar-width:246px; --sidebar-width-collapsed:64px;
 --bg:#f3f5f8; --surface:#fff; --surface-alt:#f7f9fc; --surface-hover:#eef2f7;
 --text:#202c40; --text-muted:#627088; --border:#dce3ed;
 --accent:#275cc7; --accent-hover:#1d469e; --accent-soft:#eaf0fd; --link-color:#275cc7;
 --danger:#b83242; --danger-soft:#fcebef; --success:#147659; --success-soft:#e9f6f0; --warning-soft:#fff4da;
 --sidebar-bg:#14243b; --sidebar-text:#c4cee0; --sidebar-active:#2c4d7c;
 --shadow:0 2px 4px rgb(20 36 59 / 3%),0 8px 28px rgb(20 36 59 / 4%); --radius:12px;
}
:root[data-theme="dark"] {
 color-scheme:dark; --bg:#101722; --surface:#192332; --surface-alt:#1e2a3b; --surface-hover:#26354a;
 --text:#e5ebf5; --text-muted:#a6b4c9; --border:#334359;
 --accent:#467be1; --accent-hover:#3566c5; --accent-soft:#213756; --link-color:#9bc1ff;
 --danger:#ff9ba8; --danger-soft:#442632; --success:#77d9b4; --success-soft:#183e34; --warning-soft:#3e3321;
 --sidebar-bg:#0d1521; --sidebar-text:#c4cee0; --sidebar-active:#243f63; --shadow:0 8px 28px rgb(0 0 0 / 13%);
}
body {line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
a {color:var(--link-color);text-underline-offset:3px}
button,input,select,textarea {font-family:inherit}
:focus-visible {outline:3px solid var(--link-color);outline-offset:3px}
input,select,textarea {color:var(--text);background-color:var(--surface);accent-color:var(--accent)}
input::placeholder,textarea::placeholder {color:var(--text-muted);opacity:.85}
input:disabled,select:disabled,textarea:disabled {opacity:.65}
input[type="text"],input[type="password"],input[type="email"],input[type="date"],input[type="number"],select,textarea {border-radius:7px;min-height:36px}
.app {align-items:flex-start}
.sidebar {height:100dvh;z-index:40;border-right:1px solid rgb(255 255 255 / 5%)}
.sidebar-brand,.sidebar-brand:not(:has(.sidebar-logo-wrap)) {display:flex;gap:11px;align-items:center;padding:24px 20px}
.atlas-monogram {display:inline-flex;width:38px;height:38px;flex-shrink:0;align-items:center;justify-content:center;border:1px solid #6d93cf;border-radius:11px;font-size:25px;font-weight:700;color:#fff;background:#284973;position:relative}
.atlas-monogram span {position:absolute;width:7px;height:7px;background:#8dd7c3;border-radius:50%;right:-3px;top:-3px;border:2px solid var(--sidebar-bg)}
.brand-copy {display:grid;gap:2px}
.brand-copy strong {color:#fff;font-size:16px;letter-spacing:-.4px}
.brand-copy small {font-size:10px;font-weight:400;color:#a9bad2;white-space:nowrap}
.sidebar-nav {padding:8px 12px 20px;scrollbar-width:thin;scrollbar-color:#4c6080 transparent}
.nav-section + .nav-section {margin-top:14px}
.nav-section-title {margin:10px 12px 6px;color:#8fa4c4;font-size:10px;line-height:1.4;font-weight:650;text-transform:uppercase;letter-spacing:1.5px}
.sidebar-nav .nav-link {padding:8px 11px;gap:10px;border-radius:7px;font-size:13px;margin:2px 0;min-height:37px}
.sidebar-nav .nav-link.active {background:var(--sidebar-active);color:#fff;box-shadow:inset 3px 0 #85b2ff}
.nav-icon-svg {width:18px;height:18px}
.sidebar-toggle {width:100%;min-height:42px;background:rgb(255 255 255 / 3%);border-top:1px solid rgb(255 255 255 / 8%)}
.sidebar-maintenance-wrap {padding:12px 6px;margin-top:20px;border-top:1px solid rgb(255 255 255 / 12%)}
.sidebar-maintenance-row {padding:6px}
.sidebar-maintenance-row .nav-label {font-size:12px}
.maintenance-switch-slider::before {background:#fff}
.app.sidebar-collapsed .brand-copy,.app.sidebar-collapsed .nav-section-title {display:none}
.app.sidebar-collapsed .sidebar-header {padding:0}
.app.sidebar-collapsed .sidebar-brand {padding:18px 12px}
.app.sidebar-collapsed .atlas-monogram {width:36px;height:36px}
.app.sidebar-collapsed .sidebar-nav {padding:8px}
.app.sidebar-collapsed .sidebar-nav .nav-link {padding:8px}
.app.sidebar-collapsed .nav-section + .nav-section {margin-top:12px;border-top:1px solid rgb(255 255 255 / 8%);padding-top:8px}
.workspace-main {flex:1;min-width:0}
.workspace-header {min-height:68px;padding:14px 30px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border-bottom:1px solid var(--border)}
.workspace-location,.workspace-tools {display:flex;align-items:center;gap:14px;min-width:0}
.workspace-location {font-size:12px}
.workspace-section {color:var(--text-muted);white-space:nowrap}
.workspace-page {font-weight:600;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.breadcrumb-divider {color:var(--border)}
.workspace-tools {flex-shrink:0}
.theme-control {display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted);margin:0}
.theme-control select {font-size:12px;width:90px;min-height:32px;padding:5px 8px;border-radius:7px}
.account-link {max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--text);text-decoration:none;font-size:12px}
.logout-link {font-size:11px;color:var(--text-muted);white-space:nowrap}
.main {padding:28px 30px 16px;min-height:calc(100dvh - 69px);overflow:visible}
.page-title {margin:0 0 20px;font-size:26px;line-height:1.25;font-weight:650;letter-spacing:-.65px}
.page-description,.form-hint,.page-lead,.text-muted,.text-secondary {color:var(--text-muted)}
.page-description {line-height:1.7;max-width:68ch}
.toolbar {gap:8px;margin-bottom:16px}
.btn {font-weight:550;border-radius:7px;min-height:34px;line-height:1.4;padding:8px 13px;background:var(--surface);color:var(--text);border-color:var(--border);transition:background .12s,border-color .12s}
.btn:hover {background:var(--surface-hover);border-color:var(--text-muted)}
.btn-primary,.btn-primary:visited {background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover {background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.btn-danger {background:#b83242;border-color:#b83242;color:#fff}
.btn-danger:hover {background:#962536;color:#fff}
.btn-outline-danger {color:var(--danger);background:transparent;border-color:var(--danger)}
.btn-sm {min-height:30px;padding:5px 9px;font-size:12px}
table {background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);font-size:13px}
th {background:var(--surface-alt);font-size:11px;color:var(--text-muted);font-weight:650;letter-spacing:.02em}
td,th {padding:11px 13px}
tbody tr:hover {background-color:var(--surface-alt)}
.departments-table th,.departments-table td {padding:9px 11px}
.departments-table td:first-child {font-weight:550}
.sort-header {color:inherit}
.card,.dept-profile-section,.firm-profile-card,.modal,.upload-progress-inner {border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}
.modal {color:var(--text)}
.modal-overlay {backdrop-filter:blur(3px)}
.alert {border-radius:9px;line-height:1.55}
.alert-success {color:var(--success);background:var(--success-soft);border-color:var(--success)}
.alert-error {color:var(--danger);background:var(--danger-soft);border-color:var(--danger)}
.trigger-assignments-table thead th {background:var(--surface-alt);color:var(--text)}
.trigger-assignments-table .btn-save-row {background:var(--accent);color:#fff;border-color:var(--accent)}
.report-review-layout .report-pdf-iframe {height:76vh;min-height:480px;border-radius:8px;background:#fff}
.report-review-header {margin-bottom:14px}
.report-review-page .report-review-page-title {font-size:24px}
.mailing-list-table input[type="text"],.mailing-list-table select {min-height:30px}
.mailing-list-table .col-state {width:62px;max-width:none;min-width:62px}
.mailing-list-table .col-letter-type {min-width:100px}
.app-footer {position:static;background:transparent;margin-top:auto;padding:24px 0 4px;text-align:left;font-size:10px;border:0;color:var(--text-muted)}
.layout-page-ref {font-size:11px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);padding:5px 7px;border-radius:5px;bottom:9px;right:12px}
.skip-link {position:fixed;left:16px;top:-80px;z-index:10001;padding:12px 18px;background:var(--surface);border:1px solid var(--accent);border-radius:8px}
.skip-link:focus {top:12px}
.mobile-menu-toggle,.sidebar-backdrop {display:none}
.eyebrow {margin:0 0 10px;font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--link-color)}
.overview-intro {display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:6px 0 24px}
.overview-intro .page-title {font-size:clamp(27px,2.5vw,38px);margin-bottom:12px;letter-spacing:-1.1px}
.overview-intro .page-description {margin:0;font-size:14px}
.overview-date {white-space:nowrap;font-size:11px;color:var(--text-muted);padding-top:6px}
.overview-maintenance {color:var(--text);background:var(--warning-soft);border:1px solid var(--border);font-size:12px}
.section-heading {display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:16px 0 12px}
.section-heading h2 {font-size:15px;font-weight:650;margin:0}
.section-heading > span {color:var(--text-muted);font-size:11px}
.overview-metrics {display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:28px}
.metric-card {display:flex;flex-direction:column;padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-decoration:none;color:var(--text);box-shadow:var(--shadow)}
.metric-card:hover {border-color:var(--accent)}
.metric-label {font-size:12px;font-weight:600}
.metric-value {font-size:38px;font-weight:650;line-height:1.2;margin:14px 0 8px;letter-spacing:-1.3px;font-variant-numeric:tabular-nums}
.metric-description {color:var(--text-muted);font-size:11px;line-height:1.6;flex:1}
.metric-action {border-top:1px solid var(--border);margin-top:18px;padding-top:13px;color:var(--link-color);font-size:11px;display:flex;align-items:center;justify-content:space-between}
.workspace-cards {display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.workspace-card {background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}
.workspace-card h3 {font-size:15px;margin:0 0 8px}
.workspace-card p {color:var(--text-muted);font-size:12px;margin:0 0 16px;min-height:38px}
.workspace-card-links {display:grid;gap:2px}
.workspace-card-links a {display:flex;justify-content:space-between;text-decoration:none;font-size:12px;padding:7px 0;gap:8px}
.workspace-card-links a:hover {text-decoration:underline}
.workspace-card-links span {color:var(--text-muted)}
.overview-note {color:var(--text-muted);font-size:11px;line-height:1.7;max-width:90ch;padding:10px 0}
/* Letter/rich-text canvases remain faithful to the document, even in dark mode. */
.letterhead-preview-content,.letterhead-editor-area,.template-editor,.template-editor-area,.letter-preview,[contenteditable="true"] {color-scheme:light;background:#fff;color:#202020}
/* Legacy page-local styles: UI containers only, never letter content. */
:root[data-theme="dark"] .main :is(.card,.form-section,.settings-section,.email-instructions,.firm-tile,.address-popover,.notes-popover-box,.dropdown-popover,.row-menu-dropdown,.popover-content,.modal) {background-color:var(--surface);color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] .main :is(.text-secondary,.form-hint,.page-description,.page-lead) {color:var(--text-muted)}
.login-page {min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at 25% 10%,var(--accent-soft),transparent 65%),var(--bg);padding:28px 20px}
.login-wrap {width:100%;max-width:420px}
.login-brand {display:flex;align-items:center;justify-content:center;gap:12px;font-weight:700;font-size:21px;color:var(--text);text-decoration:none;margin-bottom:28px}
.login-box {padding:34px;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
.login-box h1 {font-size:27px;letter-spacing:-.7px;margin:0 0 8px}
.login-description {font-size:13px;color:var(--text-muted);margin:0 0 26px}
.login-box label {font-size:12px;margin-bottom:7px}
.login-box input {min-height:43px;max-width:none}
.login-box button[type="submit"] {width:100%;min-height:43px;margin-top:7px}
.login-footer {text-align:center;color:var(--text-muted);font-size:10px;margin-top:22px}
.login-theme {justify-content:center;margin-top:24px}
.maintenance-overlay {position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgb(5 15 30 / 65%);padding:20px;backdrop-filter:blur(4px)}
.maintenance-box {width:100%;max-width:430px;padding:30px;border:1px solid var(--border);border-radius:16px;color:var(--text);background:var(--surface);box-shadow:var(--shadow)}
.maintenance-box h2 {margin-top:0;font-size:22px}
.maintenance-box p {font-size:14px;color:var(--text-muted)}
.maintenance-continue {padding:10px 14px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:7px;cursor:pointer;margin-top:10px}
@media (max-width:1150px) {
 .workspace-header {padding:14px 20px}.main {padding:24px 20px 16px}
 .workspace-page,.breadcrumb-divider,.overview-date {display:none}
}
@media (max-width:760px) {
 .sidebar {position:fixed;inset:0 auto 0 0;width:246px !important;transform:translateX(-100%);transition:transform .18s ease;z-index:100}
 .app.mobile-nav-open .sidebar {transform:translateX(0)}
 .app.sidebar-collapsed .sidebar .brand-copy {display:grid}
 .app.sidebar-collapsed .sidebar .nav-label,.app.sidebar-collapsed .sidebar .nav-section-title {display:block}
 .app.sidebar-collapsed .sidebar .nav-link {justify-content:flex-start}
 .app.sidebar-collapsed .sidebar .nav-section + .nav-section {border:0}
 .sidebar-toggle {display:none}.mobile-menu-toggle {display:inline-flex;align-items:center;justify-content:center;min-width:36px}
 .sidebar-backdrop:not([hidden]) {display:block;position:fixed;inset:0;z-index:90;background:rgb(5 15 30 / 60%);border:0}
 .workspace-main {width:100%}.workspace-header {padding:12px 16px;flex-wrap:wrap;gap:10px}
 .workspace-tools {gap:10px}.workspace-tools .account-link {display:none}.workspace-location {gap:10px}
 .theme-control {font-size:0;gap:0}.main {padding:22px 16px 16px;overflow-x:auto}
 .section-heading {align-items:flex-start;flex-direction:column;gap:4px}.overview-intro {padding:2px 0 16px}
 .overview-metrics {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card {padding:15px}.metric-value {font-size:32px}
 .metric-card:last-child:nth-child(odd) {grid-column:1 / -1}
 .workspace-cards {grid-template-columns:1fr}.login-box {padding:28px}
}
@media (prefers-reduced-motion:reduce) {*,*::before,*::after {transition:none !important;scroll-behavior:auto !important}}
@media print {
 :root {color-scheme:light;--bg:#fff;--surface:#fff;--surface-alt:#fff;--text:#111;--text-muted:#444;--border:#ccc;--link-color:#111}
 .sidebar,.workspace-header,.layout-page-ref,.sidebar-backdrop,.skip-link {display:none !important}.main {padding:0}.app,.workspace-main {display:block}
}
/* Legacy controls rendered by user-management and mailing pages. */
:root[data-theme="dark"] .modal-wrapper .modal-inner,
:root[data-theme="dark"] .admin-user-actions .btn-icon { background:var(--surface);color:var(--text);border-color:var(--border); }
:root[data-theme="dark"] .admin-user-actions .btn-icon:hover,
:root[data-theme="dark"] .admin-user-actions-dropdown .dropdown-item:hover { background:var(--surface-hover); }
:root[data-theme="dark"] .col-mailed .btn-unmailed { background:var(--surface-alt);color:var(--text-muted);border-color:var(--border); }
:root[data-theme="dark"] .col-mailed .btn-unmailed:hover { background:var(--surface-hover);color:var(--text); }

.branding-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:4px; }
.branding-section-head .card-title { margin-bottom:6px; padding-bottom:0; border-bottom:none; }
.branding-list { display:flex; flex-direction:column; gap:14px; margin:12px 0 14px; }
.branding-card { background:var(--surface-alt); border:1px solid var(--border); border-radius:8px; padding:14px 16px 16px; position:relative; }
.branding-card.is-default { border-color:var(--accent); box-shadow:inset 3px 0 0 var(--accent); }
.branding-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.branding-card-identity { display:flex; align-items:flex-end; gap:10px; flex:0 1 auto; min-width:180px; }
.branding-name-label { display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:500; color:var(--text-muted); flex:0 1 320px; min-width:0; }
.branding-name-label .branding-name { width:100%; max-width:320px; padding:6px 10px; font-size:14px; font-weight:600; border:1px solid var(--border); border-radius:4px; background:var(--surface); color:var(--text); }
.branding-badge { display:inline-block; font-size:11px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; color:var(--accent); background:var(--accent-soft); border:1px solid var(--border); border-radius:999px; padding:3px 8px; margin-bottom:2px; }
.branding-card-actions { display:flex; gap:6px; flex-wrap:wrap; }
.branding-add-btn { display:block; width:100%; padding:14px 16px; font-size:14px; font-weight:600; color:var(--accent); background:var(--surface); border:2px dashed var(--border); border-radius:8px; cursor:pointer; }
.branding-add-btn:hover { background:var(--accent-soft); border-color:var(--accent); }
.branding-add-btn:disabled { opacity:.6; cursor:wait; }
.branding-card-signature .signature-preview-img { max-height:72px; height:auto; display:block; border:1px solid var(--border); padding:4px; background:var(--surface); }
.branding-card-signature .signature-preview-wrap { margin-bottom:4px; }
.branding-card-signature .signature-drop-zone { max-width:320px; }
.branding-card .letterhead-letter-preview {
  width:100%;
  max-width:8.5in;
  min-height:0;
  overflow:visible;
  background:#fff;
  border-radius:6px;
}
.branding-card .letterhead-image-options .letterhead-header-zone,
.branding-card .letterhead-header-zone {
  display:block;
  width:100%;
  min-height:0;
  max-height:none;
  height:auto;
  background:#fff;
  border-bottom:none;
}
.branding-card .letterhead-header-zone.has-image { min-height:0; }
.branding-card .letterhead-header-zone .letterhead-preview-img,
.branding-card .letterhead-preview-img {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
}
.branding-card .letterhead-header-overlay { opacity:0; transition:opacity .15s; }
.branding-card .letterhead-header-zone:hover .letterhead-header-overlay,
.branding-card .letterhead-header-zone.dragover .letterhead-header-overlay { opacity:1; }
.branding-card .letterhead-image-actions { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:8px; }
.branding-card .letterhead-delete-btn { position:static; margin-top:0; }
.letterhead-preview-content .letterhead-image img,
.letterhead-preview-content .letterhead img {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
}
.branding-flash { margin:0 0 10px; }
.template-asset-row { display:flex; flex-wrap:wrap; gap:16px 24px; align-items:flex-end; margin-top:10px; }
.template-asset-row .form-group { min-width:220px; max-width:340px; flex:0 1 280px; }
.template-signature-preview { margin-top:8px; max-height:48px; height:auto; display:none; border:1px solid var(--border); padding:4px; background:var(--surface); }
