:root {
  --navy: #142a3e; --navy-deep: #102234; --ink: #203347; --muted: #637387;
  --border: #e0e7ed; --surface: #fff; --canvas: #f3f6f8; --brand: #087f8c;
  --mint: #e5f4f0; --blue: #165aa7; --danger: #a83c3c;
  --radius: 14px; --shadow: 0 3px 16px rgba(23, 46, 67, .035);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-size: 14px; color: var(--ink); background: var(--canvas);
}
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.55; }
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .68; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: clamp(28px, 3vw, 40px); line-height: 1.18; font-weight: 700; letter-spacing: -.035em; color: var(--navy); overflow-wrap: anywhere; }
h2 { font-size: 19px; line-height: 1.35; letter-spacing: -.02em; font-weight: 650; }
h3 { font-size: 15px; font-weight: 650; line-height: 1.4; }
strong { font-weight: 650; }
svg { flex-shrink: 0; vertical-align: middle; }
img { max-width: 100%; object-fit: contain; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #3c88c6; outline-offset: 3px; }
input:focus, select:focus, textarea:focus { outline: 2px solid #3c88c6; outline-offset: 1px; border-color: #3c88c6; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -70px; padding: 12px 18px; background: #fff; color: var(--navy); border: 2px solid var(--blue); z-index: 100; }
.skip-link:focus { top: 12px; }
.eyebrow { display: block; font-size: 10px; letter-spacing: .13em; font-weight: 750; color: var(--brand); margin-bottom: 10px; }
.muted, .small { color: var(--muted); }
.small { font-size: 12px; }
.lead { font-size: 17px; line-height: 1.65; color: var(--muted); }
.icon { width: 19px; height: 19px; }
.dot-separator { color: #b0bdc7; margin: 0 10px; }
.button { min-height: 42px; border: 1px solid transparent; border-radius: 8px; padding: 10px 16px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-weight: 650; font-size: 12px; line-height: 1.4; text-decoration: none; transition: background .15s, border-color .15s, box-shadow .15s; }
.button:hover { text-decoration: none; }
.button-primary { background: var(--brand); color: #fff; }
.button-primary:hover { background: color-mix(in srgb, var(--brand) 86%, #102234); box-shadow: 0 2px 5px #10223414; }
.button-secondary { background: #fff; border-color: #d7e0e8; color: #3a5369; }
.button-secondary:hover { background: #f3f7fa; border-color: #adbdcc; }
.button-small { min-height: 35px; padding: 7px 11px; font-size: 11px; }
.button-large { min-height: 49px; font-size: 14px; padding: 13px 24px; }
.button-full { width: 100%; }
.button-danger-quiet { color: var(--danger); background: #fff; border-color: #ead8d8; }
.button-danger-quiet:hover { background: #fff1f1; }
.text-link { font-size: 12px; font-weight: 600; }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; min-width: 0; }
.card-heading { padding: 26px 26px 0; }
.card-heading h2 { margin-bottom: 6px; }
.card-heading p { font-size: 12px; color: var(--muted); }
.section-heading { padding: 23px 26px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--border); }
.section-heading p { font-size: 12px; color: var(--muted); margin-top: 4px; }
.icon-tile { display: inline-flex; width: 44px; height: 44px; justify-content: center; align-items: center; border-radius: 12px; color: var(--brand); background: #eaf4f5; margin-bottom: 14px; }
.notice { display: flex; align-items: flex-start; gap: 12px; padding: 15px 18px; border: 1px solid; border-radius: 10px; font-size: 12px; line-height: 1.6; margin-bottom: 22px; }
.notice > .icon { margin-top: 1px; }
.notice p { margin-top: 3px; }
.notice-info { color: #375870; background: #edf5fa; border-color: #d8e8f3; }
.notice-success { color: #256553; background: #edf8f2; border-color: #cfe9de; }
.notice-error { color: #943939; background: #fff2f1; border-color: #f1cecc; }
.notice-warning { color: #775724; background: #fcf7e9; border-color: #eee0bc; }
.flash-stack { margin-bottom: 20px; }
.flash-stack .notice { margin-bottom: 10px; }
.badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 6px; padding: 5px 8px; font-size: 10px; line-height: 1.3; white-space: nowrap; font-weight: 650; }
.status-new { background: #eaf2fc; color: #245f9e; }
.status-in_review { background: #e8f5f3; color: #247971; }
.status-completed, .badge-active { background: #ecf6ef; color: #387950; }
.badge-urgent { background: #fff1e6; color: #945324; }
.badge-inactive, .badge-neutral { background: #edf1f4; color: #667589; }
.badge-private { background: #edf6f6; color: var(--brand); }
.badge .icon { height: 13px; width: 13px; }
.status-dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
/* Staff shell */
.sidebar { width: 236px; position: fixed; inset: 0 auto 0 0; background: var(--navy-deep); color: #c4d1dc; z-index: 10; display: flex; flex-direction: column; }
.sidebar-brand { padding: 30px 23px 26px; }
.dual-logos { display: flex; align-items: center; gap: 24px; }
.dual-logos img { display: block; }
.logo-team { width: 119px; height: 56px; }
.logo-apollo { width: 145px; height: 59px; }
.logo-divider { height: 30px; width: 1px; background: #dce4e9; }
.sidebar-brand .dual-logos { background: #fff; border-radius: 9px; padding: 11px 10px; gap: 9px; }
.sidebar-brand .logo-team { width: 71px; height: 34px; }
.sidebar-brand .logo-apollo { width: 83px; height: 35px; }
.sidebar-brand .logo-divider { height: 23px; }
.workspace-label { margin-top: 18px; letter-spacing: .15em; font-size: 9px; font-weight: 600; color: #91a8bc; }
.side-nav { padding: 0 14px; display: grid; gap: 7px; }
.nav-link { display: flex; gap: 13px; align-items: center; color: #b9cbd9; padding: 12px 15px; border-radius: 7px; font-size: 13px; font-weight: 550; }
.nav-link:hover { background: #20394f; text-decoration: none; color: #fff; }
.nav-link.active { background: #284657; color: #cff3e9; box-shadow: inset 3px 0 #77c9b5; }
.sidebar-bottom { margin-top: auto; padding: 24px; }
.sidebar-hint { color: #adc0d0; font-size: 11px; padding-bottom: 23px; }
.sidebar-hint span { color: #7f9aaf; font-size: 10px; }
.user-block { display: flex; align-items: center; gap: 11px; padding-top: 19px; border-top: 1px solid #ffffff15; }
.avatar { display: flex; flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; background: #2c4a5e; color: #c8e8e3; font-size: 13px; align-items: center; justify-content: center; font-weight: 650; }
.user-block strong { font-size: 12px; color: #eef4f8; display: block; max-width: 141px; overflow-wrap: anywhere; }
.user-block span:not(.avatar) { font-size: 10px; color: #92aabe; }
.logout-button { border: 0; color: #9fb4c5; display: inline-flex; gap: 11px; align-items: center; background: transparent; margin-top: 16px; font-size: 11px; padding: 5px 0; }
.logout-button:hover { color: #fff; }
.workspace { margin-left: 236px; min-height: 100vh; display: flex; flex-direction: column; }
.workspace-header { height: 64px; padding: 0 36px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); background: #fff; color: #728397; font-size: 11px; }
.workspace-header > span:first-child { font-weight: 600; color: #37536b; }
.header-context { font-size: 10px; }
.main-content { width: 100%; max-width: 1560px; padding: 35px 36px 22px; margin: 0 auto; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 27px; }
.page-heading h1 { font-size: 30px; }
.page-heading p { color: var(--muted); margin-top: 8px; font-size: 13px; }
.heading-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.page-footer { display: flex; justify-content: space-between; gap: 12px; font-size: 10px; color: #7b8a99; padding: 24px 36px; margin-top: auto; }
/* Forms */
.form-stack { display: grid; gap: 19px; padding: 24px 26px 27px; }
.field { display: flex; flex-direction: column; min-width: 0; }
.field label, .private-link-field > label { color: #405469; font-weight: 600; font-size: 11px; margin-bottom: 7px; display: block; }
input:not([type=checkbox]):not([type=hidden]):not([type=file]), select, textarea { width: 100%; min-height: 41px; padding: 9px 11px; color: #223b51; border: 1px solid #d6e0e7; border-radius: 7px; background: #fff; }
input::placeholder, textarea::placeholder { color: #8797a6; font-size: 12px; opacity: 1; }
input[readonly] { background: #f6f8fa !important; color: #64788c !important; }
textarea { resize: vertical; min-height: 100px; line-height: 1.6; }
select { cursor: pointer; }
.field-hint { margin-top: 7px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.optional { font-size: 10px; font-weight: 400; color: #7b8a98; margin-left: 4px; }
.required { color: var(--brand); }
.input-icon { position: relative; }
.input-icon .icon { position: absolute; top: 11px; left: 12px; color: #8c9baa; width: 17px; height: 17px; }
.input-icon input { padding-left: 36px !important; }
.filter-bar { display: flex; gap: 13px; align-items: flex-end; padding: 20px 26px; border-bottom: 1px solid var(--border); background: #fcfdfe; }
.filter-bar .search-field { flex: 1.7; }
.filter-bar > .field { flex: 1; }
.filter-actions { display: flex; align-items: center; gap: 10px; }
/* Inbox */
.stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 13px; margin-bottom: 26px; }
.stat-card { border: 1px solid var(--border); background: #fff; border-radius: 10px; padding: 19px 20px; }
.stat-card > span:first-child { display: flex; align-items: center; gap: 7px; font-size: 11px; color: #647589; font-weight: 550; }
.stat-card strong { display: block; color: var(--navy); font-size: 31px; line-height: 1.25; margin: 9px 0 6px; font-weight: 650; letter-spacing: -.02em; }
.stat-caption { font-size: 9px; color: #8190a0; }
.stat-accent { border-top: 3px solid #6c98c6; padding-top: 17px; }
.stat-urgent { background: #fffcf8; border-color: #eee4d8; }
.stat-urgent .icon { color: #ad7b40; width: 13px; height: 13px; }
.mini-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.dot-blue { background: #4c85b6; }.dot-teal { background: #43a59a; }.dot-green { background: #6c9b76; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th { color: #748596; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; font-weight: 650; background: #f9fbfc; padding: 13px 20px; border-bottom: 1px solid var(--border); white-space: nowrap; }
td { padding: 18px 20px; border-bottom: 1px solid #edf1f5; vertical-align: middle; font-size: 12px; }
tbody tr:hover { background: #fcfefd; }
tbody tr:last-child td { border-bottom: none; }
.table-primary { color: #284b69; font-weight: 650; display: block; min-width: 170px; max-width: 340px; overflow-wrap: anywhere; }
.table-subline { display: flex; gap: 8px; align-items: center; margin-top: 5px; }
.reference { font-size: 10px; letter-spacing: .02em; color: #748a9c; font-variant-numeric: tabular-nums; }
.table-meta { display: block; color: #7b8b9a; font-size: 10px; margin-top: 4px; overflow-wrap: anywhere; }
.table-client { font-size: 11px; display: block; min-width: 125px; max-width: 240px; }
.date-value { font-size: 10px; white-space: nowrap; color: #576e82; }
.row-open { color: #65829a; width: 30px; height: 30px; border-radius: 6px; display: flex; align-items: center; justify-content: center; }
.row-open:hover { background: #ecf4f9; }
.table-footer { border-top: 1px solid var(--border); padding: 14px 26px; display: flex; gap: 16px; justify-content: space-between; color: #7c8e9f; font-size: 10px; }
.empty-state { text-align: center; padding: 52px 25px; }
.empty-state h3 { color: #405c73; margin-bottom: 7px; }
.empty-state p { color: #7b8b9c; font-size: 12px; max-width: 390px; margin: 0 auto 16px; }
.operations-note { display: flex; gap: 13px; padding: 20px 4px; color: #7a8c9b; font-size: 10px; }
.operations-note .icon { color: #849ba9; margin-top: 2px; }
.operations-note strong { color: #5a7285; font-size: 11px; }
#inbox-update { align-items: center; justify-content: space-between; }
/* Client and team management */
.clients-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; align-items: start; }
.create-card { scroll-margin-top: 25px; }
.client-filter { flex-wrap: wrap; }
.client-filter .text-link { padding-bottom: 11px; }
.client-list, .staff-list { padding: 0 26px; }
.client-card, .staff-card { padding: 25px 0; border-bottom: 1px solid var(--border); }
.client-card:last-child, .staff-card:last-child { border-bottom: 0; }
.client-card-heading, .staff-card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.client-card h3 { overflow-wrap: anywhere; }
.client-facts { display: grid; grid-template-columns: 1.3fr 1fr .8fr; gap: 17px; margin: 17px 0; }
.client-facts > div { min-width: 0; }
.client-facts span { display: block; font-size: 9px; color: #82909d; margin-bottom: 4px; }
.client-facts strong, .client-facts a { font-size: 10px; font-weight: 500; overflow-wrap: anywhere; }
.client-facts .icon { width: 12px; height: 12px; }
.copy-row { display: flex; gap: 9px; }
.copy-row input { font-size: 10px !important; min-width: 0; }
.copy-row .button { flex-shrink: 0; }
.private-link-field { background: #f7fafb; border: 1px solid #e7edf1; border-radius: 9px; padding: 13px; }
.private-link-field label { font-size: 10px; }
.client-actions { display: flex; gap: 12px; justify-content: space-between; margin-top: 17px; flex-wrap: wrap; }
.client-actions form { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.inactive-link-note { font-size: 11px; background: #f6f8fa; padding: 13px; color: #7d8b98; border-radius: 7px; }
.staff-card-heading { align-items: center; justify-content: initial; }
.staff-card-heading > div { flex: 1; min-width: 0; }
.staff-card h3 .badge { margin-left: 7px; }
.staff-card-heading p { font-size: 11px; color: #7e8d9a; overflow-wrap: anywhere; margin-top: 3px; }
.avatar-light { color: #568378; background: #e5f1ee; }
.staff-meta { display: flex; gap: 16px; font-size: 10px; color: #6f8598; margin: 15px 0 0 45px; }
.staff-controls { margin-top: 17px; border-top: 1px solid #edf1f4; padding-top: 13px; }
.staff-controls summary { cursor: pointer; color: #55738b; font-weight: 600; font-size: 11px; }
.password-reset-form { display: flex; gap: 12px; align-items: center; margin: 17px 0; }
.password-reset-form .field { flex: 1; }
.password-reset-form .button { margin-top: 4px; }
/* Submission review and account */
.back-link { font-size: 11px; color: #6c8296; display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.back-link .icon { width: 15px; height: 15px; }
.detail-heading { align-items: flex-start; }
.detail-heading h1 { font-size: 28px; max-width: 730px; }
.detail-heading .heading-actions { padding-top: 12px; justify-content: flex-end; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; align-items: start; }
.detail-main, .detail-sidebar { display: grid; gap: 22px; min-width: 0; }
.detail-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 25px 26px; margin: 0; }
dt { font-size: 10px; color: #7c8e9e; margin-bottom: 5px; }
dd { margin: 0; font-size: 12px; color: #39556d; overflow-wrap: anywhere; }
.message-panel { margin: 0 26px 26px; background: #f7f9fb; border: 1px solid #e9eff3; padding: 18px; border-radius: 9px; }
.message-panel h3 { font-size: 11px; margin-bottom: 9px; color: #657b8d; }
.message-panel p { font-size: 12px; }
.preserve-whitespace { white-space: pre-wrap; overflow-wrap: anywhere; }
.compact-notice { margin: 19px 26px 0; font-size: 11px; }
.document-list { padding: 0 26px; list-style: none; margin: 0; }
.document-list li { display: flex; gap: 13px; align-items: center; padding: 20px 0; border-bottom: 1px solid #edf1f4; }
.document-list li:last-child { border-bottom: 0; }
.document-icon { width: 35px; height: 42px; border-radius: 7px; background: #f0f5f8; color: #748ca1; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.document-info { flex: 1; min-width: 0; }
.document-info strong { display: block; font-size: 12px; overflow-wrap: anywhere; }
.document-info span { display: block; font-size: 9px; color: #8092a2; margin-top: 4px; overflow-wrap: anywhere; }
.document-actions { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.card-footnote { padding: 15px 26px; border-top: 1px solid var(--border); font-size: 10px; background: #fcfdfe; color: #7c8f9e; }
.activity-list { list-style: none; margin: 0; padding: 25px 26px; }
.activity-list > li { position: relative; display: flex; gap: 15px; padding-bottom: 24px; }
.activity-list > li:last-child { padding-bottom: 0; }
.activity-list > li:not(:last-child)::before { content: ''; position: absolute; left: 4px; top: 9px; bottom: 0; width: 1px; background: #e4ecf0; }
.activity-dot { width: 9px; height: 9px; background: #b8d7cf; border: 2px solid #edf6f3; box-sizing: content-box; border-radius: 50%; margin-top: 3px; flex-shrink: 0; position: relative; left: -2px; }
.activity-list > li > div { flex: 1; min-width: 0; }
.activity-heading { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.activity-heading strong { font-size: 11px; }
.activity-heading time { color: #8797a3; font-size: 9px; }
.activity-actor { display: block; font-size: 10px; color: #8494a1; margin-top: 2px; }
.activity-list p { font-size: 12px; margin-top: 9px; padding: 11px 14px; border-radius: 7px; background: #f7fafb; }
.compact-empty { padding: 28px; }
.account-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 24px; max-width: 1040px; align-items: start; }
.account-details { margin: 0; padding: 25px 26px; }
.account-details > div { margin-bottom: 24px; }
.account-details > div:last-child { margin-bottom: 0; }
.account-details dd { font-size: 13px; }
/* Public and client shell */
.public-layout { background: #f5f7f9; }
.public-header { background: #fff; border-bottom: 1px solid var(--border); }
.public-header-inner { max-width: 1210px; margin: 0 auto; padding: 18px 36px; display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 100px; }
.header-security { font-size: 10px; color: #7b8d9c; display: flex; align-items: center; gap: 7px; }
.header-security .icon { width: 14px; height: 14px; }
.client-logo { width: 147px; height: 64px; object-position: left center; }
.client-logo-apollo { width: 190px; }
.public-workspace { min-height: calc(100vh - 101px); display: flex; flex-direction: column; }
.public-content { max-width: 1210px; width: 100%; padding: 45px 36px 25px; margin: 0 auto; }
.public-workspace .page-footer { max-width: 1210px; width: 100%; margin: auto auto 0; padding-top: 30px; }
.landing-hero { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 85px; padding: 36px 0 55px; }
.hero-copy h1 { font-size: clamp(38px, 4vw, 60px); margin: 17px 0 23px; letter-spacing: -.045em; }
.hero-copy .lead { max-width: 440px; margin-bottom: 28px; }
.hero-copy .notice { max-width: 465px; margin-bottom: 27px; }
.hero-copy > .small { margin-top: 10px; }
.hero-panel { border: 1px solid #dae8e6; border-radius: 18px; background: #fff; overflow: hidden; box-shadow: 0 10px 25px #1b433714; }
.hero-panel-top { background: #e9f3f0; padding: 30px; position: relative; }
.hero-panel-top h2 { font-size: 28px; line-height: 1.25; margin: 13px 0; color: #2a5b53; }
.hero-panel-top p { font-size: 12px; color: #66847b; max-width: 255px; }
.hero-icon { width: 45px; height: 45px; position: absolute; right: 28px; top: 31px; color: #9cbcb2; }
.steps { list-style: none; margin: 0; padding: 26px 30px; display: grid; gap: 22px; }
.steps li { display: flex; gap: 16px; }
.steps li > span { font-size: 11px; color: #699b8b; padding-top: 3px; font-weight: 700; }
.steps strong { font-size: 12px; }
.steps p { font-size: 11px; color: #7c8d9b; margin-top: 4px; }
.landing-bottom { border-top: 1px solid var(--border); padding: 31px 0 15px; display: flex; justify-content: space-between; gap: 25px; align-items: center; }
.landing-bottom h2 { font-size: 18px; }
.brand-links { display: flex; gap: 22px; }
.brand-links a { display: flex; gap: 7px; align-items: center; font-size: 11px; font-weight: 600; color: #5d798e; }
.brand-links .icon { width: 14px; height: 14px; }
.auth-layout { display: grid; grid-template-columns: 1fr 430px; gap: 65px; align-items: center; max-width: 990px; margin: 45px auto 50px; }
.auth-intro h1 { font-size: 46px; margin: 13px 0 20px; }
.auth-intro .lead { margin-bottom: 30px; }
.intro-detail { display: flex; gap: 14px; max-width: 350px; color: #7b8d9b; font-size: 12px; }
.intro-detail .icon { color: #98aea9; margin-top: 3px; }
.auth-card .card-heading { padding-top: 30px; }
.auth-card .form-stack { gap: 21px; }
.form-footnote { border-top: 1px solid var(--border); background: #f9fbfc; padding: 20px 26px; font-size: 10px; color: #7d8e9b; }
.centered-state { max-width: 670px; margin: 45px auto; padding: 48px 45px; text-align: center; }
.centered-state .eyebrow { margin-top: 10px; }
.centered-state h1 { font-size: 31px; margin: 17px 0; }
.centered-state .lead { font-size: 15px; margin-bottom: 15px; }
.centered-state .muted { font-size: 12px; margin-bottom: 24px; }
/* Client upload */
.upload-heading { margin: 0 0 29px; }
.upload-heading h1 { font-size: 39px; margin: 10px 0 12px; }
.upload-heading .lead { font-size: 15px; }
.client-identity { display: inline-flex; gap: 9px; align-items: center; margin-top: 18px; background: #eaf0f4; border-radius: 7px; padding: 9px 13px; color: #5d7589; font-size: 11px; }
.client-identity .icon { width: 15px; height: 15px; }
.client-identity strong { color: #345369; }
.upload-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 27px; align-items: start; }
.upload-form { padding: 0 28px; }
.upload-form > .notice { margin-top: 23px; }
.form-section { padding: 28px 0; border-bottom: 1px solid var(--border); }
.form-section h3 { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; font-size: 13px; color: #405b70; }
.section-number { border-radius: 6px; background: #edf3f5; color: #78939c; font-size: 10px; width: 25px; height: 25px; display: inline-flex; align-items: center; justify-content: center; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 19px; }
.field-full { grid-column: 1 / -1; }
.file-dropzone { padding: 23px 20px; text-align: center; border: 1.5px dashed #adc9c8; border-radius: 10px; background: #f6faf9; transition: background .15s, border-color .15s; }
.file-dropzone.drag-active { border-color: var(--brand); background: #e5f2ed; }
.upload-symbol { width: 43px; height: 43px; border-radius: 11px; background: #e7f1ed; display: flex; align-items: center; justify-content: center; color: var(--brand); margin: 0 auto 13px; }
.file-dropzone > strong { display: block; font-size: 13px; color: #3c645e; margin-bottom: 6px; }
.file-dropzone p { font-size: 10px; color: #7a928b; }
.file-dropzone input[type=file] { display: block; max-width: 100%; margin: 16px auto 0; color: #60796e; font-size: 11px; }
input[type=file]::file-selector-button { border: 1px solid #c7d8d2; border-radius: 6px; padding: 8px 12px; background: #fff; color: #476d62; cursor: pointer; font: inherit; margin-right: 12px; }
.file-dropzone .field-hint { margin-top: 10px; }
.file-selection { margin-top: 16px; }
.file-selection-heading { display: flex; justify-content: space-between; align-items: center; font-size: 11px; }
#file-summary { font-size: 10px; color: #8295a1; }
.selected-files { margin: 10px 0 0; padding: 0; list-style: none; }
.selected-files li { display: flex; align-items: center; gap: 9px; border: 1px solid #e6edf0; border-radius: 7px; padding: 10px 12px; margin-top: 6px; }
.selected-files .file-name { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 11px; }
.selected-files .file-size { font-size: 9px; color: #8093a1; }
.file-remove { border: 0; background: transparent; color: #8a6270; font-size: 11px; padding: 6px; border-radius: 5px; }
.file-remove:hover { background: #f8ebec; }
.checkbox-card { margin-top: 19px; display: flex; align-items: flex-start; gap: 11px; padding: 15px; border-radius: 8px; border: 1px solid #e4ebf0; background: #f9fbfc; cursor: pointer; }
input[type=checkbox] { accent-color: var(--brand); width: 15px; height: 15px; flex-shrink: 0; margin: 3px 0 0; }
.checkbox-card strong { display: block; font-size: 11px; color: #556d80; }
.checkbox-card > span > span { font-size: 10px; color: #8494a1; display: block; margin-top: 4px; }
.upload-submit { padding: 25px 0 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.upload-submit > p { font-size: 10px; color: #7c8f9d; }
#upload-progress { font-weight: 600; color: var(--brand); font-size: 12px; }
.upload-guidance { display: grid; gap: 20px; }
.guidance-card { background: #eaf3f0; border: 1px solid #dfece6; border-radius: 12px; padding: 24px; color: #52766b; }
.guidance-card h2 { font-size: 20px; color: #3c6257; }
.guidance-card h3 { font-size: 12px; margin-bottom: 7px; color: #567082; }
.guidance-card p { font-size: 11px; color: #7b8e9b; }
.guidance-card p + p { margin-top: 10px; }
.guidance-card hr { border: 0; border-top: 1px solid #e0e8ed; margin: 20px 0; }
.guidance-muted { background: #f0f4f7; border-color: #e5ecf0; }
.checklist { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 17px; }
.checklist li { display: flex; gap: 9px; font-size: 11px; }
.checklist .icon { width: 15px; height: 15px; margin-top: 2px; color: #76a798; }
/* Receipt */
.receipt-wrap { max-width: 680px; margin: 5px auto 25px; }
.receipt-heading { text-align: center; margin-bottom: 27px; }
.success-mark { display: flex; width: 63px; height: 63px; border-radius: 50%; background: #def0e8; color: #438a71; align-items: center; justify-content: center; margin: 0 auto 21px; }
.success-mark .icon { width: 29px; height: 29px; }
.receipt-heading h1 { font-size: 32px; margin: 11px 0; }
.receipt-heading .lead { font-size: 14px; }
.receipt-card { padding: 28px; }
.receipt-reference { background: #f0f6f4; border: 1px solid #deebe6; border-radius: 9px; padding: 23px; text-align: center; }
.receipt-reference > span { font-size: 9px; letter-spacing: .12em; color: #7a998c; }
.receipt-reference strong { display: block; font-size: 27px; letter-spacing: .03em; color: #345d51; margin: 8px 0; overflow-wrap: anywhere; }
.receipt-reference p { font-size: 10px; color: #7a9188; }
.receipt-details { margin: 24px 0; }
.receipt-details > div { display: grid; grid-template-columns: 130px 1fr; padding: 11px 0; border-bottom: 1px solid #edf1f4; }
.receipt-details dt { margin: 0; }
.receipt-file-list, .receipt-message { margin: 24px 0; }
.receipt-file-list h3, .receipt-message h3 { font-size: 11px; color: #7b8e9b; margin-bottom: 12px; }
.receipt-file-list ul { list-style: none; padding: 0; margin: 0; }
.receipt-file-list li { display: flex; align-items: center; gap: 9px; font-size: 11px; padding: 7px 0; overflow-wrap: anywhere; }
.receipt-file-list li span { min-width: 0; }
.receipt-file-list .icon { width: 15px; height: 15px; color: #8499a9; }
.receipt-message p { font-size: 12px; padding: 13px; border-radius: 7px; background: #f7f9fb; }
.receipt-footer { text-align: center; font-size: 11px; color: #8495a3; margin: 23px 0; }
/* Responsive */
@media (min-width: 1500px) { .main-content { padding-top: 43px; } .stats-grid { gap: 19px; } }
@media (max-width: 1250px) {
  .main-content { padding: 28px 24px 20px; }.workspace-header { padding: 0 24px; }
  .clients-layout, .detail-layout { grid-template-columns: minmax(0, 1fr) 285px; gap: 18px; }
  .filter-bar { flex-wrap: wrap; }.filter-bar .search-field { flex-basis: 100%; }
  .stats-grid { gap: 10px; }.stat-card { padding: 17px 13px; }.stat-accent { padding-top: 15px; }
  .stat-caption { font-size: 8px; }.client-facts { grid-template-columns: 1fr 1fr; }
  .landing-hero { gap: 45px; }.detail-heading { flex-wrap: wrap; }.detail-heading .heading-actions { padding-top: 0; }
}
@media (max-width: 1050px) {
  .sidebar { width: 207px; }.workspace { margin-left: 207px; }.sidebar-brand { padding: 25px 17px; }
  .sidebar-brand .dual-logos { gap: 6px; padding: 10px 7px; }.sidebar-brand .logo-team { width: 64px; }.sidebar-brand .logo-apollo { width: 74px; }
  .sidebar-bottom { padding: 20px; }.page-heading { flex-wrap: wrap; }.stats-grid { grid-template-columns: repeat(3, 1fr); }
  .clients-layout, .detail-layout { grid-template-columns: 1fr; }.create-card { max-width: none; }.detail-sidebar { grid-template-columns: 1fr 1fr; align-items: start; }
  .upload-layout { grid-template-columns: minmax(0, 1fr) 240px; gap: 20px; }.upload-form { padding: 0 23px; }.guidance-card { padding: 20px; }
  .brand-links { flex-direction: column; gap: 10px; }.auth-layout { gap: 40px; grid-template-columns: 1fr 390px; }
}
@media (max-width: 800px) {
  .sidebar { position: static; width: 100%; display: grid; grid-template-columns: auto 1fr; align-items: center; }
  .sidebar-brand { padding: 13px 18px; }.sidebar-brand .dual-logos { width: 170px; }.workspace-label { display: none; }
  .side-nav { display: flex; gap: 2px; flex-wrap: wrap; justify-content: flex-end; padding: 12px; }
  .nav-link { padding: 9px; font-size: 11px; gap: 6px; }.nav-link .icon { width: 16px; height: 16px; }.nav-link.active { box-shadow: inset 0 -2px #77c9b5; }
  .sidebar-bottom { grid-column: 1 / -1; padding: 6px 19px 12px; display: flex; align-items: center; justify-content: space-between; gap: 15px; }
  .sidebar-hint { display: none; }.user-block { border: 0; padding: 0; }.user-block .avatar { width: 27px; height: 27px; }.user-block > div { display: flex; gap: 12px; align-items: center; }.user-block strong { max-width: none; }.logout-button { margin: 0; }
  .workspace { margin-left: 0; }.workspace-header { height: 48px; font-size: 10px; }.main-content { padding: 26px 20px 18px; }
  .page-footer { padding: 24px 20px; }.account-layout { grid-template-columns: 1fr; }.client-facts { grid-template-columns: 1.3fr 1fr .8fr; }
  .public-header-inner { padding: 15px 23px; }.public-content { padding: 32px 23px 20px; }.public-workspace .page-footer { padding-left: 23px; padding-right: 23px; }
  .landing-hero { grid-template-columns: 1fr; gap: 30px; padding-top: 5px; }.hero-copy h1 { font-size: 48px; }.hero-panel { max-width: 530px; }.hero-panel-top h2 br { display: none; }
  .landing-bottom { align-items: flex-start; }.auth-layout { grid-template-columns: 1fr; gap: 27px; max-width: 480px; margin: 10px auto 35px; }.auth-intro h1 { font-size: 36px; }.auth-intro .lead { font-size: 15px; margin-bottom: 15px; }.intro-detail { max-width: 100%; }
  .upload-layout { grid-template-columns: 1fr; }.upload-guidance { grid-template-columns: 1fr 1fr; gap: 18px; }.upload-heading h1 { font-size: 34px; }
}
@media (max-width: 560px) {
  .sidebar { display: block; }.sidebar-brand { padding: 13px 16px 3px; }.sidebar-brand .dual-logos { width: 180px; }
  .side-nav { justify-content: flex-start; padding: 10px; gap: 7px; }.nav-link { padding: 10px 9px; }.sidebar-bottom { padding: 2px 16px 12px; }
  .user-block strong { font-size: 10px; }.user-block > div { gap: 8px; }.user-block .avatar { display: none; }.logout-button { font-size: 10px; }
  .header-context { display: none; }.main-content { padding: 23px 15px 16px; }.page-heading { gap: 17px; margin-bottom: 21px; }.page-heading h1 { font-size: 27px; }.page-heading p { font-size: 12px; }
  .heading-actions { gap: 8px; }.heading-actions .button { font-size: 11px; padding: 9px 12px; }.stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }.stat-card { padding: 15px; }.stat-accent { padding-top: 13px; }.stat-card strong { font-size: 28px; }.stat-caption { font-size: 9px; }.stat-urgent { grid-column: 1 / -1; }.stat-urgent strong { display: inline-block; margin-right: 15px; }
  .section-heading { padding: 19px 18px; flex-wrap: wrap; }.section-heading h2 { font-size: 17px; }.filter-bar { padding: 18px; gap: 12px; }.filter-bar > .field { flex-basis: 42%; }.filter-bar .search-field { flex-basis: 100%; }.filter-actions { width: 100%; }
  th { padding: 12px 15px; }td { padding: 17px 15px; }.table-footer { padding: 13px 18px; flex-direction: column; gap: 5px; }.empty-state { padding: 38px 20px; }
  .client-list, .staff-list { padding: 0 18px; }.client-facts { grid-template-columns: 1fr 1fr; }.client-card-heading { align-items: flex-start; }.client-card-heading h3 { font-size: 14px; }.copy-row { flex-wrap: wrap; }.copy-row input { width: 100%; }.client-actions { gap: 12px; }.client-actions form { gap: 8px; }.client-actions .small { font-size: 10px; }
  .card-heading { padding: 22px 20px 0; }.form-stack { padding: 22px 20px; }.password-reset-form { flex-direction: column; align-items: stretch; }.password-reset-form .button { align-self: flex-start; }.staff-meta { margin-left: 0; }
  .detail-sidebar { grid-template-columns: 1fr; }.detail-facts { padding: 22px 18px; gap: 20px; }.message-panel { margin: 0 18px 18px; }.compact-notice { margin: 16px 18px 0; }.document-list { padding: 0 18px; }.document-list li { flex-wrap: wrap; gap: 11px; }.document-info { flex-basis: calc(100% - 46px); }.document-actions { margin-left: 46px; justify-content: flex-start; }.card-footnote { padding: 15px 18px; }.activity-list { padding: 22px 18px; }.activity-heading { flex-direction: column; gap: 4px; }.account-details { padding: 22px 20px; }
  .public-header-inner { padding: 13px 18px; min-height: 86px; }.public-header .dual-logos { gap: 12px; }.public-header .logo-team { width: 89px; height: 43px; }.public-header .logo-apollo { width: 105px; height: 43px; }.public-header .logo-divider { height: 23px; }.header-security { font-size: 0; gap: 0; }.header-security .icon { width: 17px; height: 17px; }.client-logo { width: 125px; height: 55px; }.client-logo-apollo { width: 165px; }
  .public-content { padding: 28px 16px 16px; }.hero-copy h1 { font-size: 42px; }.hero-copy .lead { font-size: 15px; }.hero-panel-top { padding: 25px; }.steps { padding: 25px; }.landing-bottom { flex-direction: column; }.brand-links { gap: 13px; }.page-footer { flex-direction: column; font-size: 9px; gap: 5px; }.public-workspace .page-footer { padding: 22px 16px; }.auth-intro h1 { font-size: 33px; }.auth-card { border-radius: 12px; }.centered-state { margin: 15px auto; padding: 30px 22px; }.centered-state h1 { font-size: 27px; }
  .upload-heading h1 { font-size: 30px; }.upload-heading .lead { font-size: 13px; }.client-identity { align-items: flex-start; font-size: 10px; }.client-identity span { overflow-wrap: anywhere; }.upload-form { padding: 0 18px; }.form-grid { grid-template-columns: 1fr; gap: 18px; }.form-section { padding: 23px 0; }.file-dropzone { padding: 20px 12px; }.upload-guidance { grid-template-columns: 1fr; }.upload-submit .button { width: 100%; }.selected-files li { flex-wrap: wrap; }.selected-files .file-name { flex-basis: 70%; }.file-selection-heading { gap: 10px; }
  .receipt-heading h1 { font-size: 28px; }.receipt-heading .lead { font-size: 13px; }.receipt-card { padding: 19px; }.receipt-reference { padding: 20px 13px; }.receipt-reference strong { font-size: 24px; }.receipt-details > div { grid-template-columns: 95px 1fr; gap: 9px; }.receipt-details dd { font-size: 11px; }
  #inbox-update { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print { .sidebar, .workspace-header, .heading-actions, .detail-sidebar, .document-actions, .back-link { display: none; }.workspace { margin: 0; }.main-content { padding: 0; }.detail-layout { display: block; }.card { break-inside: avoid; box-shadow: none; margin-bottom: 18px; }.public-header { border: 0; }.page-footer { position: static; }body { background: #fff; } }

/* Secondary text remains readable on the pale surfaces. */
.table-meta, .reference, .stat-caption, .field-hint, .optional, .table-footer,
.page-footer, .header-security, .client-facts span, dt, .document-info span,
.activity-heading time, .activity-actor, .activity-list .muted, .card-footnote,
.form-footnote, .staff-card-heading p, .receipt-footer, .selected-files .file-size,
#file-summary, .empty-state p, .steps p, .intro-detail { color: #5e7284; }
.operations-note, .upload-submit > p, .checkbox-card > span > span,
.guidance-card p, .receipt-file-list h3, .receipt-message h3 { color: #5e7284; }
.file-dropzone p, .hero-panel-top p, .receipt-reference p,
.receipt-reference > span { color: #577568; }
input::placeholder, textarea::placeholder { color: #687c8e; }
.sidebar-hint span, .user-block span:not(.avatar), .workspace-label { color: #a5bbcb; }

/* Public invoice intake */
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.company-choice{border:0;margin:0 0 24px;padding:0}.company-choice legend{font-weight:650;font-size:14px;margin-bottom:12px}
.company-choice-options{display:flex;gap:12px}.company-choice-card{flex:1;min-width:0;position:relative;display:flex;align-items:center;flex-direction:column;gap:12px;border:1px solid #d7e1e8;border-radius:12px;padding:18px 12px;cursor:pointer;background:#fff}
.company-choice-card input{position:absolute;left:12px;top:12px;accent-color:#087f8c}.company-choice-card img{width:145px;height:62px;object-fit:contain;margin-top:4px}.company-choice-card span{font-size:13px;font-weight:600;text-align:center}.company-choice-card:has(input:checked){border-color:#087f8c;background:#f1faf9;box-shadow:0 0 0 1px #087f8c}.company-choice-card:focus-within{outline:3px solid #a6d8e3;outline-offset:3px}
.optional-contact{margin-top:18px}.optional-contact summary{font-size:14px;cursor:pointer;color:#166575;font-weight:600}.optional-contact .form-grid{margin-top:18px}
@media(max-width:520px){.company-choice-options{gap:8px}.company-choice-card{padding:18px 6px}.company-choice-card img{width:120px;height:58px}.company-choice-card span{font-size:12px}}

/* Temporary invoice upload notice and quick guide. */
.upload-heading-with-guide { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.upload-heading-with-guide > div { min-width: 0; }
.upload-guide-trigger { min-height: 48px; padding: 13px 18px; font-size: 14px; flex-shrink: 0; }
.temporary-upload-notice { margin: 23px 28px 0; padding: 21px 23px; background: #f0f6fa; border: 1px solid #d4e3ee; border-left: 4px solid var(--brand); border-radius: 10px; color: #304f66; font-size: 14px; line-height: 1.65; }
.temporary-upload-notice p:first-child { font-weight: 650; color: var(--navy); }
.temporary-upload-notice p + p { margin-top: 11px; }
.relationship-manager-field { margin-top: 19px; padding: 16px; background: #f7fafb; border: 1px solid var(--border); border-radius: 9px; }
.relationship-manager-field label { font-size: 13px; color: var(--navy); }
.relationship-manager-field .field-hint { font-size: 12px; }
.upload-guide-fallback { margin: 0 0 24px; border: 1px solid #d4e3ee; border-radius: 10px; background: #fff; }
.upload-guide-fallback > summary { min-height: 46px; padding: 12px 18px; cursor: pointer; font-size: 14px; font-weight: 650; color: #166575; }
.upload-guide-fallback[open] > summary { border-bottom: 1px solid var(--border); }
.upload-guide-fallback-content { padding: 3px 23px 22px; }
.upload-guide:not([open]) { display: none; }
.upload-guide { width: min(660px, calc(100% - 40px)); max-width: none; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); margin: auto; padding: 28px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--border); border-radius: 16px; background: #fff; color: var(--ink); box-shadow: 0 18px 70px #10223440; font-size: 14px; line-height: 1.6; }
.upload-guide::backdrop { background: rgba(16, 34, 52, .65); }
.upload-guide-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 13px; }
.upload-guide-header h2 { font-size: 24px; color: var(--navy); }
.upload-guide-close { min-height: 44px; flex-shrink: 0; font-size: 13px; }
#upload-guide-intro { color: #5e7284; }
.upload-guide-steps { padding-left: 27px; margin: 22px 0; font-size: 14px; }
.upload-guide-steps li { padding-left: 7px; }
.upload-guide-steps li + li { margin-top: 17px; }
.upload-guide-steps li::marker { color: #166575; font-weight: 750; }
.upload-guide-steps strong { display: block; color: var(--navy); }
.upload-guide-steps p { margin-top: 4px; color: #5e7284; }
.upload-guide-safety { padding: 14px 16px; border: 1px solid #eee0bc; border-radius: 9px; background: #fcf7e9; color: #664b21; font-size: 13px; }
.upload-guide-footer { display: flex; justify-content: flex-end; margin-top: 22px; }
.upload-guide-footer .button { min-height: 44px; font-size: 13px; }
@media (max-width: 1050px) {
  .upload-heading-with-guide { align-items: flex-start; flex-direction: column; gap: 16px; }
  .temporary-upload-notice { margin-left: 23px; margin-right: 23px; }
}
@media (max-width: 560px) {
  .upload-guide-trigger { width: 100%; }
  .temporary-upload-notice { margin: 20px 18px 0; padding: 17px 16px; font-size: 13px; }
  .relationship-manager-field { padding: 14px; }
  .upload-guide { width: calc(100% - 24px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); padding: 20px; border-radius: 12px; }
  .upload-guide-header { gap: 12px; }
  .upload-guide-header h2 { font-size: 21px; }
  .upload-guide-fallback-content { padding-left: 16px; padding-right: 16px; }
  .upload-guide-footer .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .upload-guide, .upload-guide::backdrop, .upload-guide-trigger, .upload-guide-close { animation: none !important; transition: none !important; }
}
