/* CHIBRA operations: semantic colours shared by every portal workspace. */
:root{--canvas:#f3f5f8;--paper:#fff;--surface-raised:#fff;--surface-soft:#f5f7fb;--surface-hover:#edf1f7;--sidebar:#151d2d;--ink:#202b40;--muted:#626e84;--line:#dce2ec;--line-bright:#b9c4d6;--primary:#34675a;--primary-dark:#265346;--primary-soft:#e6f2ed;--acid:#966326;--green:#26724e;--amber:#946016;--red:#b23842;--blue:#355f91;--shadow:0 5px 24px #202b4009;--shadow-soft:0 4px 16px #202b4006;color-scheme:light}
:root[data-theme=dark]{--canvas:#111722;--paper:#1b2433;--surface-raised:#242f41;--surface-soft:#202b3d;--surface-hover:#2b3950;--sidebar:#111827;--ink:#edf1f8;--muted:#a8b5cb;--line:#354259;--line-bright:#526581;--primary:#8fd3b7;--primary-dark:#b9e8d4;--primary-soft:#243d37;--acid:#dabc86;--green:#96dbb4;--amber:#f0c27d;--red:#f7a0a6;--blue:#a6c8f2;color-scheme:dark}
body{line-height:1.5}h1,h2,h3,h4,.login-art h1,.login-form h2,.topbar h1,.surface h2,.section-heading h2,.dialog-heading h2,.mail-header h2{font-family:Inter,"Helvetica Neue",Arial,sans-serif!important;letter-spacing:-.035em!important}
.workspace{max-width:none}.sidebar{background:var(--sidebar)!important;border-color:var(--line);box-shadow:none}.topbar{background:var(--canvas)!important;border-color:var(--line);gap:14px}.topbar h1{font-size:30px}.top-actions{gap:8px;flex-wrap:wrap}.top-actions button{min-height:40px}.dashboard-hero{padding:26px!important;border:1px solid var(--line)!important;background:var(--paper)!important;margin-bottom:22px}.dashboard-hero h2{font-size:32px!important;color:var(--ink)!important}.dashboard-hero p,.dashboard-hero time{color:var(--muted)!important}.dashboard-hero .kicker{color:var(--acid)!important}.dashboard-hero time{background:var(--surface-soft)!important;border-color:var(--line)!important}.dashboard-hero:after{display:none}.nav-children .nav-item.active{background:#2e483f!important;color:#d8f1e5!important}
.surface,.command-card,.command-metric,.metric,.combined-revenue-card,.pnl-kpi,.analytics-kpis>div,dialog,.inbox-list,.inbox-detail,.mailbox-account,.login-shell,.login-form{background:var(--paper)!important;border-color:var(--line)!important;color:var(--ink)!important;box-shadow:var(--shadow)}
.surface p,.command-card p,.command-metric small,.metric small,.combined-revenue-card small,.inline-summary small,.empty-state p,.dashboard-list small,.mail-header p,.inquiry-preview,.inquiry-meta,.mailbox-key,.wage-month-callout small{color:var(--muted)!important}.surface strong,.command-metric strong,.metric strong,.combined-revenue-card strong,.inline-summary strong,.inquiry-subject,.inquiry-card-head strong,.mailbox-account strong,.wage-month-callout strong{color:var(--ink)!important}
input,select,textarea,.search-command{background:var(--surface-soft)!important;color:var(--ink)!important;border-color:var(--line-bright)!important;border-radius:8px!important}input::placeholder,textarea::placeholder{color:var(--muted)!important}label{color:var(--ink)}.button,.text-button,.mailbox-folders nav button{color:var(--ink);background:var(--surface-soft);border-color:var(--line)}.button.primary{background:#316657!important;border-color:#316657!important;color:#fff!important}.button.primary:hover{background:#234d40!important}.button:disabled{opacity:.55;cursor:wait}
.command-metric,.metric,.pnl-kpi{border-radius:12px}.command-metric>span,.command-metric>p,.metric>span,.pnl-kpi>span{color:var(--muted)!important}.command-grid{gap:18px}.section-heading{gap:12px}.attention-strip>*,.daily-brief,.inline-summary>*,.wage-month-callout,.mailbox-folders,.mail-toolbar,.inquiry-card,.inquiry-card.unread,.mail-detail-head,.mailbox-shell,.compose-panel,.conversation-message,.detail-summary,.portal-settings-card{background:var(--surface-soft)!important;color:var(--ink)!important;border-color:var(--line)!important}.inquiry-card:hover,.inquiry-card.selected,.mailbox-folders nav button.active{background:var(--surface-hover)!important;color:var(--ink)!important}.inquiry-card.unread .inquiry-subject{color:var(--ink)!important}.badge,.health-pill{background:var(--primary-soft)!important;color:var(--primary-dark)!important;border-color:var(--line)!important}.badge.error,.badge.danger{color:var(--red)!important}.badge.warning{color:var(--amber)!important}
table{color:var(--ink)}th{background:var(--surface-soft)!important;color:var(--muted)!important}td{border-color:var(--line)!important}tr:hover td{background:var(--surface-hover)}dialog{max-height:90dvh;overflow:auto}dialog::backdrop{background:#080e1bcc;backdrop-filter:blur(3px)}.dialog-heading{position:sticky;top:0;background:var(--paper);z-index:1}.dialog-heading button{min-width:40px;min-height:40px;color:var(--ink)}.toast{background:var(--ink);color:var(--canvas);max-width:calc(100vw - 32px)}.toast.error{background:#842e36;color:white}.alert.error{background:#842e36;color:white}
.portal-skip{position:fixed;z-index:1000;left:12px;top:-100px;padding:12px 18px;background:var(--paper);color:var(--ink)}.portal-skip:focus{top:12px}.suite-home{display:block;padding:12px 10px;margin-bottom:8px;border-bottom:1px solid #ffffff20;color:#ced8ec;text-decoration:none;font-size:12px}.suite-home:hover{color:white}.theme-choice{white-space:nowrap}#workspace-main:focus{outline:none}
#workspace-search{width:min(570px,calc(100vw - 28px));padding:22px;border:1px solid var(--line);border-radius:16px}#workspace-search input{width:100%;margin:16px 0}#workspace-search-results{display:grid;gap:5px;max-height:55vh;overflow:auto}#workspace-search-results button{text-align:left;border:1px solid transparent;background:var(--surface-soft);color:var(--ink);padding:13px;border-radius:8px;font-size:14px}#workspace-search-results button:hover{border-color:var(--primary)}#workspace-search-results small{display:block;color:var(--muted);margin-top:2px}
.navigation-shade{display:none}.workspace[aria-busy=true] .command-metrics:empty{height:100px;background:linear-gradient(90deg,var(--surface-soft),var(--surface-hover),var(--surface-soft));border-radius:12px}.login-form .theme-choice{align-self:flex-start;margin-bottom:20px}.login-art{background:radial-gradient(ellipse at bottom left,#47715a,transparent 80%),#141d2d!important}.login-art h1{font-size:clamp(50px,6vw,90px);color:#fff!important}.login-art .kicker{color:#dabc86!important}
@media(max-width:900px){.workspace{margin-left:0!important;padding:0 18px 28px!important}.sidebar{width:280px;z-index:60;max-width:85vw}.topbar{align-items:center;flex-wrap:wrap;padding:18px 0!important;position:relative}.topbar>div:nth-child(2){flex:1}.topbar h1{font-size:25px}.top-actions{width:100%;justify-content:flex-start}.top-actions .health-pill{margin-right:auto}.search-command kbd{display:none}.dashboard-hero h2{font-size:27px!important}.command-grid{grid-template-columns:1fr}.command-grid .span-2{grid-column:auto}.navigation-shade:not([hidden]){display:block;position:fixed;inset:0;z-index:55;border:0;background:#060c17b3}.sidebar.open{transform:translateX(0)!important}.sidebar nav{overflow:auto}.command-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.surface,.command-card{min-width:0}.top-actions button{padding:9px 12px}.table-wrap{overflow:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.backstage-bar,.theme-choice,.suite-home,.portal-skip{display:none!important}:root{--canvas:#fff;--paper:#fff;--ink:#111;--muted:#444;--line:#bbb}}

.dashboard-hero>div{min-width:0!important;width:auto!important}.dashboard-hero p{white-space:normal!important;overflow-wrap:anywhere}.attention-strip strong{background:var(--primary-soft)!important;color:var(--primary-dark)!important}.cashup-metrics article{background:var(--paper)!important;color:var(--ink)!important}
@media(max-width:900px){.dashboard-hero{display:block!important}.top-actions{display:flex!important}.top-actions #refresh,.top-actions .health-pill{display:inline-flex!important}.top-actions{flex-wrap:wrap}.topbar #mobile-menu{flex:none;min-width:42px;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}}
@media(max-width:900px){.topbar{display:flex!important;flex-wrap:wrap!important;position:relative!important;min-height:0!important;height:auto!important;align-items:center!important}.topbar>div:nth-child(2){min-width:0;flex:1}.topbar .top-actions{position:static!important;inset:auto!important;transform:none!important;order:3;flex:0 0 100%;width:100%!important;margin:8px 0 0!important;justify-content:flex-start!important}.topbar h1{display:block!important}.topbar .search-command{min-width:42px!important}.table-wrap{max-width:100%;overflow-x:auto}}
.app-shell .workspace form label,.app-shell .workspace .settings-grid label{color:var(--muted)!important}.app-shell .workspace input,.app-shell .workspace select,.app-shell .workspace textarea{background:var(--surface-soft)!important;color:var(--ink)!important;border-color:var(--line-bright)!important}.app-shell .workspace .button:not(.primary):not(.danger){background:var(--surface-soft)!important;color:var(--ink)!important;border-color:var(--line)!important}
.app-shell .workspace h2,.app-shell .workspace h3{color:var(--ink)!important}.app-shell .workspace .combined-revenue-card p,.app-shell .workspace .combined-revenue-card span{color:var(--muted)!important}.app-shell .workspace .combined-revenue-card .kicker{color:var(--acid)!important}

/* Pair every legacy component surface with the active theme's text colours. */
:root { --danger-soft:#fcecef;--warning-soft:#fff3db; }
:root[data-theme=dark] { --danger-soft:#442e35;--warning-soft:#403626; }
.app-shell .workspace :where(strong,b,dd,td,summary) { color:var(--ink)!important; }
.app-shell .workspace :where(p,small,label,dt,li) { color:var(--muted)!important; }
.app-shell .workspace :where(span) { color:inherit!important; }
.app-shell .workspace :where(a) { color:var(--primary)!important; }
.app-shell .workspace :is(
  .suite-shortcut,.brief-line,.brief-counters>div,.dashboard-empty,
  .on-call-person,.system-warning-summary,.analytics-main,.mix-card,
  .variance-chart,.cashup-stat,.philsheet-stat,.cashup-till-total,
  .cashup-recount,.reconciliation-bank,.reconciliation-card-total,
  .philsheet-help,.safety-row,.backup-card,.boundary-note,.search,
  .staff-record-group,.staff-record-subgroup,.mail-empty>span,
  .pnl-status,.pnl-confidence-metrics>div,.pnl-invoice-queue,
  .pnl-invoice-queue button,.wage-cost-preview,.toggle-grid label,
  .inline-check,.call-workspace-summary article,.calls-surface pre,
  .mail-detail-toolbar,.message-body,.original-message,.workflow-panel,
  .email-composer,.attachment,.ai-summary,.composer-heading,
  .composer-footer,.translated-step,.invoice-document.attachment,
  .invoice-payment-panel,.inquiry-list,.sender-avatar,.money-input
) {
  background:var(--surface-soft)!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
}
.app-shell .workspace :is(.row-actions button,.segmented-control) {
  background:var(--surface-soft)!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
}
.app-shell .workspace .segmented-control button { color:var(--ink)!important; }
.app-shell .workspace .segmented-control button.active {
  background:var(--primary-soft)!important;
  color:var(--primary-dark)!important;
}
.app-shell .workspace .segmented-control b {
  background:var(--surface-raised)!important;
  color:var(--ink)!important;
}
.app-shell .workspace :is(.suite-shortcut:hover,.dashboard-list-row:hover,.inquiry-card.active),
.app-shell .workspace table tbody tr:hover td {
  background:var(--surface-hover)!important;
}
.app-shell .workspace .calls-surface tr { background:var(--paper)!important; }
.app-shell .workspace :is(.inline-summary span,.analytics-kpis span,.call-workspace-summary span,
  .chart-heading span,.variance-chart header span,.mix-donut span,.mix-legend span,
  .chart-legend,.pnl-chart-legend,.pnl-breakdown-row span,.brief-counters span) {
  color:var(--muted)!important;
}
.app-shell .workspace :is(.message-body,.call-safe-summary,.toggle-grid label span,
  .integration-card,.denomination-grid label span) { color:var(--ink)!important; }
.app-shell .workspace :is(.badge,.health-pill,.trend-chip,.list-icon,.mini-avatar,.on-call-avatar) {
  background:var(--primary-soft)!important;
  color:var(--primary-dark)!important;
  border-color:var(--line)!important;
}
.app-shell .workspace :is(.pnl-positive,.badge.revenue,.trend-chip.up) { color:var(--green)!important; }
.app-shell .workspace :is(.pnl-negative,.variance-alert,.badge.danger,.badge.error,.quality-flag.critical) { color:var(--red)!important; }
.app-shell .workspace :is(.badge.warning,.badge.expense,.quality-flag.warning,.trend-chip.down) { color:var(--amber)!important; }
.app-shell .workspace :is(.chart-axis-label,.pnl-axis-label,.wage-value-label) { fill:var(--muted); }
.app-shell .workspace :is(.chart-line,.pnl-revenue-line) { stroke:var(--blue); }
.app-shell .workspace :is(.chart-grid-line,.pnl-grid-line,.pnl-zero-line) { stroke:var(--line-bright); }
.app-shell .workspace .variance-row>span { color:var(--muted)!important; }
.app-shell .workspace :is(.brief-line>span,.boundary-note>span,.staff-record-subgroup span,
  .backup-icon,.mailbox-account-mark,.mailbox-folders nav button>b,.language-pill,
  .invoice-state,.empty-state>span,.response-deadline) {
  background:var(--primary-soft)!important;
  color:var(--primary-dark)!important;
  border-color:var(--line)!important;
}
.app-shell .workspace :is(.brief-line.danger>span,.list-icon.danger,.response-deadline.overdue) {
  background:var(--danger-soft)!important;
  color:var(--red)!important;
}
.app-shell .workspace :is(.brief-line.warning>span,.list-icon.amber,.response-deadline.soon,.invoice-state.outstanding) {
  background:var(--warning-soft)!important;
  color:var(--amber)!important;
}

/* The 14-day planner must work when inline style attributes are blocked. */
.stay-calendar-grid { grid-template-columns:120px repeat(14,minmax(64px,1fr)); }
.app-shell .workspace :is(.stay-calendar-corner,.stay-calendar-day,.stay-calendar-room) {
  background:var(--surface-soft)!important;
  color:var(--ink)!important;
}
.app-shell .workspace .stay-calendar-day.today {
  background:var(--primary-soft)!important;
  color:var(--primary-dark)!important;
}
.app-shell .workspace .stay-calendar-cell { background:var(--paper)!important; }
.app-shell .workspace .stay-calendar-cell.occupied { background:var(--primary-soft)!important; }
.app-shell .workspace .stay-calendar-cell.occupied:after { border-color:var(--primary)!important; }
.app-shell .workspace .stay-calendar-cell.arrival { border-left-color:var(--primary)!important; }
.app-shell .workspace .stay-calendar-cell span { color:var(--primary-dark)!important;font-size:11px; }
.app-shell .workspace .stay-calendar-day strong { color:inherit!important;font-size:12px; }
.app-shell .workspace .stay-calendar-day small { color:inherit!important; }
.stay-calendar-room,.stay-calendar-corner { font-size:12px; }

/* Accessibility repairs: keep legacy labels legible without changing page logic. */
:root { --brand-surface:#a34d2c;--on-brand:#fff;--control-border:#7b879a; }
:root[data-theme=dark] { --brand-surface:#a34d2c;--on-brand:#fff;--control-border:#8190a8; }
.brand-mark,.user-avatar { background:var(--brand-surface)!important;color:var(--on-brand)!important; }
.search-command kbd { background:var(--surface-raised)!important;color:var(--muted)!important;border-color:var(--line)!important; }
.sidebar .suite-link span { color:#a8b5cb!important; }
.sidebar .nav-area-toggle i { color:#ced8ec; }
.app-shell :is(small,time,label,.kicker,.badge,.health-pill,.channel,.language-pill,
  .invoice-state,.response-deadline,.mailbox-key,.inquiry-meta,.inquiry-preview,
  .chart-legend,.pnl-chart-legend,.trend-chip,.cash-receipt-link),
.login-shell :is(label,small,.kicker),dialog :is(label,small,.kicker) {
  font-size:12px!important;
  line-height:1.5;
}
.app-shell :is(.nav-item b,.mailbox-folders nav button>b,.segmented-control b,
  .command-metric>span,.metric>span,.pnl-kpi>span,.analytics-kpis span,
  .combined-revenue-total span,.combined-revenue-breakdown span,.cashup-stat>span,
  .philsheet-stat>span,.brief-counters span,.chart-heading span,.mix-donut span,
  .mix-legend span,.variance-chart header span,.variance-row strong,.variance-row span,
  .inline-summary span,.pnl-confidence-metrics span,.wage-cost-preview span,
  .mailbox-account strong,.staff-record-group>summary>span,.staff-record-subgroup span,
  .composer-step-head b,.translated-step span,.reconciliation-source span,
  .inquiry-card-foot span,.staff-record-group>span,.staff-record-group>summary span,.pnl-invoice-queue b,
  .suite-shortcut b,.call-workspace-summary span,.cashup-till-total>span,.pnl-muted,.safety-row strong),
.app-shell th,.app-shell .row-actions button,.app-shell .wages-table button {
  font-size:12px!important;
  line-height:1.5;
}
.app-shell .workspace :is(input,select,textarea),.login-form input,dialog :is(input,select,textarea) {
  font-size:16px!important;
  line-height:1.5;
  border-color:var(--control-border)!important;
}
.app-shell :is(.chart-axis-label,.pnl-axis-label,.wage-value-label) { font-size:12px; }
.analytics-main,.pnl-chart,.wages-chart { max-width:100%;overflow-x:auto; }
.revenue-chart,.pnl-trend-svg,.wage-chart-svg { min-width:920px;height:310px!important; }
.revenue-chart { min-width:820px;height:320px!important; }
.app-shell .workspace :is(.stay-calendar-cell span,.stay-calendar-day small) { font-size:12px!important; }

/* Dialogs sit outside .workspace, so they need their own theme pairing. */
dialog[open] :is(input,select,textarea),dialog[open] :is(.inline-check,.wage-cost-preview) {
  background:var(--surface-soft)!important;
  color:var(--ink)!important;
  border-color:var(--control-border)!important;
}
dialog :is(label,p,small) { color:var(--muted)!important; }
dialog :is(strong,h2,h3) { color:var(--ink)!important; }
dialog :is(.dialog-heading button,.button:not(.primary):not(.danger)) {
  background:var(--surface-soft)!important;color:var(--ink)!important;border-color:var(--line)!important;
}
.button.danger { background:var(--danger-soft)!important;color:var(--red)!important;border-color:var(--red)!important; }
.button.danger:hover { background:var(--surface-hover)!important; }
dialog .wage-cost-preview :is(span,small) { color:var(--muted)!important; }
dialog .kicker,.login-form .kicker { color:var(--acid)!important; }
.login-form :is(label,p,small) { color:var(--muted)!important; }

/* Shrinking tracks must not clip amounts, headings or actions. */
.combined-revenue-card { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1fr); }
.combined-revenue-card:after { display:none; }
.combined-revenue-card>* { min-width:0; }
.combined-revenue-total strong,.combined-revenue-breakdown strong { white-space:normal;overflow-wrap:anywhere; }
.combined-revenue-breakdown { grid-template-columns:repeat(2,minmax(0,1fr)); }
.app-shell .workspace :is(.section-heading,.composer-heading,.composer-footer,.dialog-actions,
  .table-heading,.mail-detail-toolbar,.mail-detail-head,.pnl-chart-legend) { flex-wrap:wrap; }
.section-heading>* { min-width:0;max-width:100%; }
.inline-summary { flex-wrap:wrap; }
.inline-summary>div { min-width:0;overflow-wrap:anywhere; }
.section-heading .text-button { white-space:normal; }
.app-shell .workspace :is(.dashboard-list-row,.suite-shortcut,.brief-line,.attachment,
  .inquiry-card,.mail-header,.on-call-person) { overflow-wrap:anywhere; }
.inbox-toolbar>* { min-width:0;max-width:100%; }
.inbox-toolbar :is(input,select) { width:100%;min-width:0;max-width:100%; }
.inbox-toolbar .search { min-width:0; }
.knowledge-row>* { min-width:0;overflow-wrap:anywhere; }
.knowledge-row .row-actions { flex-wrap:wrap; }
dialog { max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px); }
dialog :is(.form-grid,.dialog-heading,.dialog-actions)>* { min-width:0; }
dialog .dialog-heading { align-items:flex-start;gap:12px; }
dialog .dialog-heading h2 { min-width:0;overflow-wrap:anywhere; }
dialog .dialog-heading button { flex:none; }

@media(max-width:1200px) {
  .combined-revenue-card { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .combined-revenue-copy { grid-column:1/-1; }
  .inbox-toolbar,
  #inbox:is(.mailbox-mode,.team-task-mode,.staff-record-mode) .inbox-toolbar {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .inbox-toolbar :is(.search,.inbox-toolbar-title) { grid-column:1/-1; }
}
@media(max-width:900px) {
  .topbar h1 { white-space:normal;overflow-wrap:anywhere; }
  .combined-revenue-card { grid-template-columns:minmax(0,1fr); }
  .combined-revenue-copy { grid-column:auto; }
  .combined-revenue-total { padding:16px 0;border-left:0;border-top:1px solid var(--line); }
  .analytics-kpis { grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr)); }
  .analytics-kpis strong { white-space:normal;overflow-wrap:anywhere; }
}
@media(max-width:540px) {
  .revenue-chart,.pnl-trend-svg { min-width:520px;height:280px!important; }
  .revenue-chart { min-width:350px;height:286px!important; }
  .inbox-toolbar,
  #inbox:is(.mailbox-mode,.team-task-mode,.staff-record-mode) .inbox-toolbar { grid-template-columns:minmax(0,1fr); }
  .inbox-toolbar>* { grid-column:auto!important;width:100%; }
  .section-heading { align-items:flex-start; }
  .section-heading>div { flex:1 1 100%; }
  .section-heading>button { flex:0 1 auto; }
  .command-card .section-heading h2 { overflow-wrap:anywhere; }
  .combined-revenue-breakdown { grid-template-columns:minmax(0,1fr); }
  .attention-strip { grid-template-columns:minmax(0,1fr)!important; }
  .attention-strip button { min-width:0; }
  .app-shell .workspace :is(.form-grid,.cashup-form-grid.two,.cashup-form-grid.three) { grid-template-columns:minmax(0,1fr); }
  dialog .form-grid { grid-template-columns:minmax(0,1fr); }
  dialog .form-grid .wide { grid-column:auto; }
  dialog .dialog-actions { display:flex;flex-wrap:wrap; }
  dialog .dialog-actions .button { flex:1 1 120px; }
}

@media print {
  .app-shell .workspace :is(.badge,.trend-chip,.list-icon) { background:#fff!important;color:#111!important; }
}

.kiki-frame { display:block; width:100%; height:calc(100vh - 240px); min-height:640px; border:0; border-radius:16px; margin-top:16px; background:#0f1115; }
@media(max-width:640px) { .kiki-frame { min-height:720px; } }
