/* Shared soft white workspace palette. */
:root {
    --bg: #fafafa;
    --surface: #ffffff;
    --ink: #29292f;
    --muted: #717181;
    --line: #ededf0;
    --teal: #525260;
    --teal-dark: #353541;
    --nav: #ffffff;
    --radius: 16px;
    --shadow: 0 4px 18px #27273303;
}
body { background: var(--bg); }
.sidebar { color: #747480; border-right: 1px solid var(--line); }
.brand, .brand .brand-mark, .login-brand .brand-mark { color: #31313a; }
.brand small { color: #8e8e99; }
.brand-mark span { color: #8d8d9b; }
.workspace-label { background: #fafafa; border-color: #ededf0; color: #71717d; border-radius: 10px; }
.status-dot { background: #92929f; }
.amber-dot { background: #cba36b; }
.nav-label { color: #a0a0aa; }
.nav-item { color: #767682; border-radius: 9px; }
.nav-item.active { background: #f2f2f5; color: #383844; font-weight: 600; }
.nav-item.active:before { background: #b5b5c4; }
.nav-item:hover { background: #f7f7f9; color: #393944; }
.nav-count { background: #e8e8ee; color: #666673; }
.automation-mini { background: #fafafa; border-color: #ededf0; color: #848491; border-radius: 12px; }
.automation-mini strong, .profile strong { color: #4e4e5b; }
.automation-mini small, .profile small { color: #9b9ba6; }
.profile { border-color: #ededf0; }
.profile>span:last-child { color: #9c9ca8; }
.avatar, .avatar.pastel { background: #f0f0f4; color: #666674; }
.breadcrumb, .top-date { color: #93939e; }
.breadcrumb strong { color: #63636e; }
.topbar { background: #ffffff; }
.button { border-radius: 10px; box-shadow: 0 2px 4px #27273306; }
.button.secondary { border-color: #e4e4e9; color: #63636f; }
.button.secondary:hover:not(:disabled) { background: #f6f6f8; border-color: #d8d8e0; }
.icon-button, .row-link { color: #94949f; }
.icon-button:hover, .row-link:hover { background: #f0f0f4; color: #525260; }
.eyebrow { color: #8c8c99; }
.kpi-icon, .action-icon, .teal { background: #f2f2f6; color: #777789; }
.positive { color: #6a6a7d; }
.tiny-pill { background: #f7f7f9; border-color: #e7e7ee; color: #7e7e90; }
.mint, .bar.planned { background: #e3e3eb; }
.legend-dot.teal, .bar.actual { background: #9797b0; }
.ai-prompt { background: #f7f7fa; border-color: #e9e9f0; }
.ai-star, .ai-prompt strong, .ai-prompt a { color: #737389; }
.ai-prompt p { color: #9292a0; }
.badge.sold, .badge.approved, .badge.completed, .badge.available, .badge.sent,
.badge.eligible, .badge.paid, .badge.resolved, .badge.done { background: #f0f0f5; color: #747489; }
.system-strip { background: #f5f5f8; border-color: #e9e9ee; color: #8c8c9a; }
.system-strip strong { color: #737382; }
.flash { background: #f4f4f8; border-color: #e0e0e9; color: #656579; }
.flash.error { background: #faeeed; border-color: #f3d9d4; color: #ba655d; }
.demo-banner { background: #f5f5f8; border-color: #ebebf0; color: #93939f; }
.mini-progress { background: #efeff3; }
.mini-progress i { background: #a6a6bc; }
input, select, textarea { color: #4f4f5b; border-color: #e2e2e9; border-radius: 9px; }
input:focus, select:focus, textarea:focus { border-color: #b4b4c6; outline-color: #eeeef6; }
input[type=file]::file-selector-button { background: #f1f1f6; color: #77778b; }
.form-aside { background: #f7f7fa; border-color: #e8e8f0; }
.form-aside h2 { color: #737389; }
.numbered-list li { color: #9292a1; }
.numbered-list li:before { border-color: #dedeea; color: #8b8b9e; }
.form-aside .info-box { background: #efeff5; border-color: #e3e3ed; color: #88889d; }
.journey-step.done { color: #828299; }
.journey-step.current { color: #656583; }
.journey>span { background: #e7e7ee; }
.upload-label { background: #fafafa; border-color: #dedee7; color: #9696a5; }
.timeline>div { border-color: #e7e7ef; }
.timeline i { background: #a6a6bc; box-shadow: 0 0 0 1px #e2e2ee; }
.empty svg { color: #b1b1c0; }
.unit-visual { background: #f0f0f5; color: #a4a4ba; }
.tone-1 { background: #f2f3f7; color: #a2a6b9; }
.tone-2 { background: #f6f4f1; color: #b7ae9e; }
.flow-node>span { background: #f5f5f9; border-color: #e0e0ec; color: #9a9ab1; }
.flow-node strong, .flow-notes strong { color: #85859c; }
.flow-node small, .flow-notes>div, .flow-notes p { color: #9999a8; }
.integration-logo.property { background: #f1f1f6; color: #9797ac; }
.refund-formula { background: #f7f7fa; border-color: #e7e7ef; color: #88889d; }
.save-bar { background: #f5f5f9; border-color: #e5e5ef; color: #9292a5; }
.minimal, .portal-body { background: #fafafa; }
.login-story { background: #f5f5f8; color: #353540; border-right: 1px solid #e8e8ee; }
.login-brand>span:last-child { color: #9292a1; }
.story-copy .eyebrow { color: #9292a3; }
.story-copy h1 em { color: #8989a6; }
.story-copy>p:not(.eyebrow) { color: #9292a3; }
.login-story footer { color: #6f6f80; }
.login-story footer span { color: #a0a0ae; }
.orbit-grid { border-color: #cfcfde66; box-shadow: 0 0 0 50px #d6d6e420, 0 0 0 100px #d6d6e410; }
.orbit-card { background: #ffffffbd; border-color: #e1e1ed; color: #9898b0; box-shadow: 0 15px 50px #36364807; }
.orbit-card strong { color: #78788d; }
.orbit-card small { color: #aaaabb; }
.portal-upload { background: #f8f8fb; border-color: #e9e9f0; }
.portal-upload p { color: #9595a6; }
.portal-upload small { color: #aaaabb; }
.template-facts>div, .mail-preview-frame, .template-section,
.template-section[open]>summary { border-color: #e8e8ee; }
.template-facts small, .source-documents p { color: #9292a1; }
.mail-preview-frame, .template-section>summary { background: #f8f8fa; }
.variable-chips code { background: #f5f5f9; border-color: #e3e3ed; color: #77778e; }
input[readonly], textarea[readonly] { background: #f7f7fa; color: #9494a7; }
.payment-approval>form { background: #f8f8fb; border-color: #e3e3ed; }
.danger-button:hover:not(:disabled) { background: #ac5358; border-color: #ac5358; }
@media(max-width:760px) { .sidebar { box-shadow: 20px 0 40px #2a2a3910; } }

/* Full-width pages with readable text at every breakpoint. */
body { font-size: 15px; }
.main-shell { min-width: 0; margin-left: 248px; }
.sidebar { width: 248px; padding: 20px 14px 14px; }
.brand { margin: 0 8px 20px; }
.brand small { font-size: 12px; letter-spacing: 1.2px; color: #757586; }
.workspace-label { margin: 0 3px 15px; padding: 10px; font-size: 13px; }
.nav-label { margin: 14px 10px 8px; font-size: 12px; letter-spacing: 1px; color: #757586; }
.nav-item { font-size: 14px; gap: 10px; padding: 10px; margin: 2px 0; line-height: 1.4; }
.nav-count { font-size: 12px; padding: 2px 6px; }
.sidebar-bottom { padding-top: 20px; }
.automation-mini { padding: 11px; margin: 0 0 10px; gap: 9px; }
.automation-mini strong { font-size: 13px; }
.automation-mini small, .profile small { font-size: 12px; color: #737384; }
.profile { padding-top: 12px; }
.profile strong { font-size: 14px; }
.topbar { height: 64px; padding: 0 16px; }
.breadcrumb, .top-date { font-size: 13px; color: #737384; }
.page-content { width: 100%; max-width: none; margin: 0; padding: 16px; }
.page-content>* { min-width: 0; }
.page-heading { margin-bottom: 20px; }
.page-heading p:not(.eyebrow) { font-size: 14px; color: #717181; }
.page-footer { margin: 0 16px 16px; font-size: 12px; color: #737384; }
.demo-banner { margin-bottom: 16px; padding: 10px 12px; font-size: 13px; color: #717181; }
.eyebrow { font-size: 12px; color: #717181; }
.button, .heading-actions .button, .small-button { font-size: 14px; }
.card-heading { padding: 18px 20px 14px; }
.card-heading h2 { font-size: 17px; }
.card-heading p { font-size: 13px; color: #717181; }
.form-card, .side-card { padding: 20px; }
.narrow { width: 100%; max-width: none; }
.form-grid label, label { font-size: 14px; }
input, select, textarea { font-size: 14px; }
.help { font-size: 13px; }
.filter-bar { padding: 14px 16px; }
.filter-bar input, .filter-bar select, .filter-bar .muted { font-size: 14px; }
.search-input { max-width: none; }
table, td, td strong { font-size: 14px; }
th { font-size: 13px; color: #717181; }
td small { font-size: 12px; color: #717181; }
th, td { padding: 13px 16px; }
.badge { font-size: 12px; }
.kpi-top, .kpi-bottom, .kpi>strong small { font-size: 13px; }
.kpi-top, .kpi-bottom, .card-heading p, .action-row small,
.ai-prompt p, .due-row small, .detail-summary small, .unit-content .muted,
.unit-specs, .info-pair, .side-card p, .timeline small,
.integration-card p, .integration-card small, .flow-node small,
.flow-notes p, .numbered-list li, .template-facts small,
.source-documents p { color: #717181; }
.action-row strong, .due-row strong, .journey-step strong,
.timeline strong, .flow-node strong { font-size: 14px; }
.action-row small, .due-row small, .journey-step small,
.timeline small, .flow-node small { font-size: 12px; }
.date-box { width: 42px; height: 47px; }
.date-box small { font-size: 12px; }
.detail-summary { padding: 18px 20px; }
.ai-prompt { margin: 14px 18px; padding: 13px; }
.ai-prompt strong, .ai-prompt p, .ai-prompt a { font-size: 14px; }
.system-strip { font-size: 13px; padding: 12px 14px; }
.system-strip strong { font-size: 14px; }
.info-box, .flow-summary, .refund-formula { font-size: 14px; }
.code-block, .variable-chips code { font-size: 13px; }
.unit-content { padding: 18px; }
.unit-project, .unit-content .muted { font-size: 13px; }
.unit-specs { font-size: 13px; flex-wrap: wrap; }
.notification-body { max-width: none; font-size: 14px; overflow-wrap: anywhere; }
.source-documents>div:first-child { max-width: none; }
.save-bar { margin: 20px 0; padding: 14px 16px; font-size: 14px; }
.save-bar span { max-width: none; font-size: 13px; }
.portal-main { width: 100%; max-width: none; margin: 0; padding: 20px 16px; }
.portal-header { padding: 18px 16px; }
.portal-greeting p, .portal-upload p { font-size: 14px; }
.portal-summary small, .portal-upload small, .portal-footer { font-size: 13px; color: #717181; }
.portal-brand small { font-size: 12px; }
.login-form { padding: 24px; }
.login-form>div { width: 100%; max-width: none; }
.login-note { font-size: 13px; }
.error-card, .portal-welcome { width: calc(100% - 32px); max-width: none; margin: 16px; padding: 24px; }
@media(max-width:760px) {
    .main-shell { margin-left: 0; }
    .sidebar { width: 248px; }
    .page-content { padding: 12px; }
    .topbar { padding: 0 12px; }
    .page-footer { margin: 0 12px 12px; }
    .breadcrumb { font-size: 13px; }
    .demo-banner { margin-bottom: 14px; font-size: 12px; }
    .page-heading { margin-bottom: 16px; }
    .button, .heading-actions .button { font-size: 14px; }
    .card-heading { padding: 15px 16px 12px; }
    .form-card, .side-card { padding: 16px; }
    .form-grid label { font-size: 14px; }
    .table-scroll table { min-width: 720px; }
    .kpi>strong small { font-size: 12px; }
    .flow-node small { max-width: none; }
    .unit-visual .badge { font-size: 12px; }
    .save-bar span { display: block; font-size: 13px; }
    .save-bar { flex-wrap: wrap; justify-content: space-between; }
    .portal-upload { padding: 16px; }
    .portal-upload p { font-size: 14px; }
}

/* Compact unit inventory. */
.units-heading { margin-bottom: 14px; }
.units-heading h1 { margin: 0; font-size: 24px; letter-spacing: -.5px; }
.units-filters { display: grid; grid-template-columns: minmax(160px,2fr) minmax(120px,1fr) minmax(95px,.6fr) minmax(130px,1fr) minmax(95px,.7fr) auto; gap: 8px; padding: 12px 14px; }
.units-filters .search-input { min-width: 0; width: 100%; margin: 0; }
.units-filters input, .units-filters select { min-width: 0; width: 100%; margin: 0; min-height: 40px; }
.units-filters .search-input input { padding-left: 0; }
.units-filter-actions { display: flex; align-items: center; gap: 6px; }
.units-filter-actions .button { padding: 8px 12px; }
.units-table th, .units-table td { padding: 8px 14px; }
.units-table td { vertical-align: middle; }
.units-table td strong { color: var(--ink); font-weight: 550; }
.units-table td small { display: block; line-height: 1.5; margin-top: 2px; }
.units-table td:first-child, .units-table td:nth-child(3), .units-table td:nth-child(4), .units-table .badge { white-space: nowrap; }
.units-table .unit-amount { text-align: right; white-space: nowrap; }
.units-table .unit-action { width: 62px; text-align: right; }
.units-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); padding: 10px 14px; color: var(--muted); font-size: 13px; }
.units-pagination>div { display: flex; align-items: center; gap: 12px; }
@media(max-width:1100px) and (min-width:761px) {
    .units-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .units-filters .search-input { grid-column: span 2; }
    .units-filter-actions { justify-content: flex-end; }
}
@media(max-width:640px) {
    .units-filters { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .units-filters .search-input { grid-column: 1 / -1; }
    .units-filter-actions { grid-column: 1 / -1; justify-content: flex-end; }
}
@media(max-width:420px) {
    .units-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .units-filters select[name=project] { grid-column: 1 / -1; }
}

/* Clear text and semantic accents on the white workspace. */
:root { --ink: #1e293b; --muted: #526174; --line: #e2e8f0; }
.nav-item, .breadcrumb, .top-date, .page-heading p:not(.eyebrow),
.help, .filter-bar .muted, td small, .demo-banner { color: #526174; }
.nav-item.active { background: #eff6ff; color: #1d4ed8; }
.nav-item.active:before { background: #3b82f6; }
.nav-label, .eyebrow, .page-footer { color: #58677b; }
.breadcrumb strong, .profile strong, .automation-mini strong { color: #334155; }
.icon-button, .row-link { color: #526174; }
.icon-button:hover, .row-link:hover { background: #eff6ff; color: #1d4ed8; }
.badge.available { background: #eff6ff; color: #1d4ed8; }
.badge.sold, .badge.approved, .badge.completed, .badge.sent,
.badge.paid, .badge.resolved, .badge.done { background: #ecfdf5; color: #166534; }
.badge.reserved, .badge.pending, .badge.queued, .badge.draft,
.badge.processing, .badge.waiting_resale { background: #fffbeb; color: #92400e; }
.badge.failed, .badge.rejected, .badge.terminated { background: #fef2f2; color: #b91c1c; }
.badge.eligible { background: #f5f3ff; color: #6d28d9; }
.badge { font-weight: 600; }
.badge.closed, .badge.review { background: #fff1f2; color: #9f1239; }
.property-connection { padding: 18px 20px; margin-bottom: 16px; }
.property-connection-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.property-connection-heading h2 { margin: 0 0 4px; font-size: 19px; }
.property-connection-heading p { margin: 0; color: #526174; }
.property-facts { display: flex; gap: 24px; flex-wrap: wrap; border-top: 1px solid #e5e9f0; margin-top: 14px; padding-top: 12px; color: #526174; font-size: 13px; }
.property-facts strong { color: #1e293b; margin-left: 8px; font-weight: 600; }
.property-connection-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.property-connection-actions form { margin: 0; }
.property-connection .help { margin: 12px 0 0; }
.property-status-help { font-size: 13px; color: #526174; margin-top: 12px; }
.property-status-help summary { cursor: pointer; color: #334155; }
.property-status-help p { margin: 8px 0 0; line-height: 1.6; }
.integration-secondary { grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 16px; }
.integration-secondary .integration-card { padding: 14px 18px; display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; flex-wrap: wrap; min-height: 0; text-align: left; }
.integration-secondary .integration-logo { width: 34px; height: 34px; margin: 0; flex-shrink: 0; }
.integration-secondary .integration-card h2 { margin: 0 0 3px; font-size: 16px; }
.integration-secondary .integration-card p { margin: 0; font-size: 13px; min-height: 0; }
.integration-secondary .integration-card .badge { margin-left: auto; }
.integration-secondary .integration-card small { margin: 0; }
button:disabled { opacity: .55; cursor: not-allowed; }
@media(max-width:760px) {
    .integration-secondary { grid-template-columns: minmax(0,1fr); }
    .property-connection { padding: 14px; }
    .property-facts { gap: 8px 16px; }
    .property-facts strong { display: block; margin: 4px 0 0; }
}
input::placeholder, textarea::placeholder { color: #64748b; opacity: 1; }
