/* Shared chrome is glass; dense content stays opaque. Loaded after domain styles. */
:root {
  --ink:#29232b; --muted:#716672; --blue:#792748; --blue-dark:#5d1e38;
  --blue-soft:#f5e9ef; --accent:var(--blue); --line:#e3dce2; --border:var(--line);
  --wash:#f7f5f8; --paper:#fff; --paper-strong:#fff; --focus:#385ac7;
  --glass:rgba(255,255,255,.78); --glass-border:rgba(255,255,255,.94);
  --glass-shadow:0 3px 16px #36203f08,inset 0 1px 0 #fff;
  --glass-blur:blur(18px) saturate(125%); --surface-radius:16px;
}
html { background:#f5f3f7; }
body.app-shell { background:radial-gradient(ellipse at 92% 0,#ede9f5 0,transparent 48%),radial-gradient(ellipse at 0 65%,#f7eaf0 0,transparent 48%),#f5f3f7; background-attachment:fixed; }
.app-shell main { padding:24px 28px 32px; }
.app-shell.nav-mode-header main { padding-top:22px; }
.app-shell h1 { font-size:clamp(23px,2vw,30px); line-height:1.2; letter-spacing:-.035em; margin-bottom:16px; }
.app-shell h2 { letter-spacing:-.02em; }
.app-shell :is(.app-bar,.sidebar,#main-nav,.settings-panel,#desktop-settings-panel) {
  background:var(--glass); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border-color:var(--glass-border); box-shadow:var(--glass-shadow);
}
.app-shell .app-bar { border-bottom:1px solid #dfd6df; }
.app-shell :is(.nav-links,.header-menu) a { border-radius:10px; transition:background .16s ease,color .16s ease; }
.app-shell :is(.nav-links,.header-menu) a:is(.active,[aria-current='page']) { background:#7927480e; color:var(--blue-dark); box-shadow:inset 0 0 0 1px #79274814; }
.app-shell :is(.card,.panel) { border-color:var(--line); border-radius:var(--surface-radius); box-shadow:0 2px 12px #36203f05; padding:16px; background:#fff; }
/* Existing semantic wrappers remain, but never add another decorated card. */
.app-shell :is(.card,.panel,dialog) :is(.card,.panel) { border:0; border-radius:0; box-shadow:none; background:transparent; padding:12px 0; }
.app-shell :is(.card,.panel,dialog) :is(.card,.panel) + :is(.card,.panel) { border-top:1px solid var(--line); }
.app-shell :where(input:not([type='checkbox']):not([type='radio']):not([type='range']),select,textarea) { background:#fff; border-color:#dcd4dc; border-radius:10px; box-shadow:inset 0 1px 2px #36203f03; transition:border-color .16s ease,box-shadow .16s ease; }
.app-shell :is(input,select,textarea):focus { border-color:var(--focus); box-shadow:0 0 0 3px #385ac71a; }
.app-shell :is(input,select,textarea)[aria-invalid='true'] { border-color:#b62f54; box-shadow:0 0 0 2px rgb(182 47 84 / 12%); }
.app-shell :is(input,select,textarea)[aria-invalid='true']:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
.app-shell :is(button,.button-link,.ui-button) { border-radius:10px; transition:background .16s ease,border-color .16s ease,box-shadow .16s ease; }
.app-shell :is(button,.button-link,.ui-button):focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.app-shell :is(button,.button-link,.ui-button):disabled { cursor:not-allowed; }
.app-shell :is(.cf-panel,.dr-filters) { background:var(--glass); border:1px solid var(--glass-border); border-radius:var(--surface-radius); box-shadow:var(--glass-shadow); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); padding:14px 16px; gap:12px; margin-bottom:16px; }
.app-shell .cf-period { gap:16px; }
.app-shell .cf-presets { gap:6px; }
.app-shell .cf-options { gap:10px; }
.app-shell .cf-actions { padding-top:10px; border-top-color:#ddd3dc; gap:8px; }
.app-shell :is(.cf-range-hint,.dr-result-context) { font-size:12px; }
.app-shell :is(.cf-presets button,.dr-preset) { border-radius:999px; background:#ffffff8c; box-shadow:none; }
.app-shell :is(.cf-presets button,.dr-preset):is(.active,[aria-pressed='true']) { background:#79274810; border-color:#79274840; color:var(--blue-dark); }
.cf-mobile-extra-toggle { display:none; }
.app-shell :is(.horizontal-tabs,.finance-tabs,.dr-subjects,.dr-tabs) { gap:6px; }
.app-shell .finance-workspace .finance-tabs a { border-color:transparent; background:transparent; padding:8px 12px; }
.app-shell .finance-workspace .finance-tabs a.active { background:#792748; color:#fff; }
.app-shell :is(.horizontal-tab,.dr-subjects a,.dr-tabs a) { border-radius:9px; }
.app-shell .horizontal-tab:is([aria-selected='true'],[aria-current='page']) { background:#7927480c; }
.app-shell table { background:#fff; border-color:var(--line); border-radius:12px; }
.app-shell :is(th,td) { padding:10px 12px; border-bottom-color:#eae4e9; }
.app-shell thead th { background:#f5f2f6; color:#66566b; font-size:12px; font-weight:650; letter-spacing:0; text-transform:none; }
.app-shell tbody tr:hover > :is(td,th) { background:#79274804; }
.app-shell :is(.money,.money-value,.dr-money,.metric b) { font-variant-numeric:tabular-nums; }
.app-shell :is(.finance-table-region,.table-scroll) > table { border:0; border-radius:0; }
.app-shell :is(.overview-period,.overview-current,.overview-reports,.overview-attention) { padding:16px 18px; margin-top:16px; border-radius:var(--surface-radius); background:#fff; box-shadow:none; border-color:var(--line); }
.app-shell .overview-section-heading { margin-bottom:12px; }
.app-shell .overview-period-grid { gap:14px 0; }
.app-shell :is(.overview-period-primary,.overview-period-metric) { padding:4px 14px; }
.app-shell .overview-cards { gap:0; background:#fff; border:1px solid var(--line); border-radius:var(--surface-radius); overflow:hidden; }
.app-shell .overview-cards > :is(.metric,.card) { border:0; border-radius:0; box-shadow:none; padding:14px 16px; background:transparent; }
.app-shell .overview-cards > :is(.metric,.card) + :is(.metric,.card) { border-left:1px solid var(--line); }
.app-shell :is(.order-entry-form,.operator-order-form) { gap:16px; }
.app-shell :is(.order-entry-form,.operator-order-form) .order-field-group { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; padding:0 0 14px; }
.app-shell .order-field-group legend { padding:0; margin-bottom:10px; }
.app-shell :is(.order-field-grid,.operator-order-fields) { gap:12px; }
.app-shell :is(.order-entry-form,.operator-order-form,.order-page-card) :is(.payment-channel,.order-cash,.order-cashless,.order-additional,.order-distribution,.order-page-section) { border:0; border-radius:0; background:transparent; box-shadow:none; padding:10px 0; margin:0; }
.app-shell :is(.order-page-section,.order-additional) + :is(.order-page-section,.order-distribution) { border-top:1px solid var(--line); }
.app-shell .order-page-header { padding:16px; }
.app-shell .order-page-sections { gap:0; padding:0 16px; }
.app-shell dialog { background:#fffffff5; border:1px solid #fff; border-radius:20px; box-shadow:0 24px 90px #35203630,0 3px 16px #35203614; padding:20px; }
.app-shell dialog::backdrop { background:#32263c55; backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.app-shell dialog > :is(header,.dialog-heading) { background:var(--glass); border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:16px; }
.app-shell dialog :is(.order-inline-editor,.finance-payout-lookup) { background:transparent; border:0; border-radius:0; padding:0; box-shadow:none; }
.app-shell dialog :is(footer,.order-save-actions,.operator-order-actions) { border-top:1px solid var(--line); padding-top:12px; margin-top:14px; }
.app-shell .messaging-heading { margin-bottom:8px; }
.app-shell .messaging-heading h1 { margin-bottom:0; }
.app-shell .messaging-heading a { font-size:13px; }
.app-shell .messaging-accounts-bar { padding:4px 8px; margin-bottom:8px; gap:0 14px; border:1px solid var(--glass-border); border-radius:12px; background:var(--glass); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); box-shadow:var(--glass-shadow); }
.app-shell .messaging-all-tab-group .horizontal-tab { border-radius:0; }
.app-shell .messaging-workspace { background:#fff; border-color:var(--line); border-radius:14px; box-shadow:0 3px 18px #36203f05; }
.app-shell .messaging-chat-heading { padding:8px 14px; background:#fcfafdd9; backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); }
.app-shell .messaging-history { background:#fff; padding:12px 14px; }
.app-shell .messaging-message { background:#f3f0f5; border-radius:12px; }
.app-shell .messaging-message[data-direction='outgoing'] { background:#f9e5ee; }
.app-shell .messaging-message-meta { color:#70616f; font-variant-numeric:tabular-nums; }
.app-shell .messaging-composer { background:#fcfafc; padding:8px 12px; }
.app-shell .messaging-conversation { padding:9px 12px; }
.app-shell .dr-table { background:#fff; }
.app-shell .dr-table thead th { font-size:12px; text-transform:none; letter-spacing:0; }
.app-shell .dr-heading { margin-bottom:12px; }
.app-shell .dr-tabs { margin:12px 0; }
.app-shell .finance-heading { margin-bottom:12px; }
.app-shell .finance-table-region { margin:12px 0; border-radius:12px; }
.app-shell .finance-detail .finance-payout-lookup { margin:12px 0; padding:12px 0; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; }
@media (min-width:761px) {
  .app-shell :is(.data-table,.financial-table,.dr-table) thead th { position:sticky; top:0; z-index:1; }
  .app-shell :is(.money,.dr-money) { text-align:right; }
}
@media (max-width:1099px) {
  .app-shell main,.app-shell.nav-mode-header main { padding:calc(var(--app-bar-height) + var(--tg-safe-area-top) + 14px) max(16px,var(--tg-safe-area-right)) calc(20px + var(--tg-safe-area-bottom)) max(16px,var(--tg-safe-area-left)); }
}
@media (max-width:700px) {
  .app-shell main,.app-shell.nav-mode-header main,body.app-shell:has(.messaging-page) main { padding:calc(var(--app-bar-height) + var(--tg-safe-area-top) + 10px) max(12px,var(--tg-safe-area-right)) calc(12px + var(--tg-safe-area-bottom)) max(12px,var(--tg-safe-area-left)); }
  .app-shell h1 { font-size:24px; margin-bottom:12px; }
  .app-shell :is(.card,.panel,.overview-period,.overview-current,.overview-reports,.overview-attention,.cf-panel) { padding:12px; border-radius:14px; }
  .app-shell :is(input:not([type='checkbox']):not([type='radio']),select,textarea) { font-size:16px; }
  .app-shell :is(button,.button-link,.ui-button) { min-height:44px; }
  .app-shell .cf-panel { gap:10px; }
  .app-shell .cf-mobile-extra-toggle { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; width:100%; padding:8px 12px; color:var(--blue-dark); background:#ffffff8c; border:1px solid #dcd4dc; font-size:14px; }
  .cf-mobile-extra-count { display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 5px; border-radius:999px; background:#79274812; font-size:12px; }
  .app-shell .cf-mobile-extra-toggle::after { content:'⌄'; font-size:18px; }
  .app-shell .cf-mobile-extra-toggle[aria-expanded='true']::after { content:'⌃'; }
  .app-shell .cf-options { gap:8px; }
  .app-shell .cf-options > * { max-width:none; }
  .app-shell .overview-cards > :is(.metric,.card) { padding:12px; border-left:0; border-bottom:1px solid var(--line); }
  .app-shell .overview-cards > :is(.metric,.card):last-child { border-bottom:0; }
  .app-shell .overview-cards > :is(.metric,.card) + :is(.metric,.card) { border-left:0; }
  .app-shell .messaging-accounts-bar { gap:0 10px; padding:2px 6px; }
  .app-shell .messaging-heading a { font-size:12px; }
  .app-shell .messaging-workspace { border-radius:12px; }
  .app-shell .messaging-chat-heading { padding:8px 10px; }
  .app-shell dialog { padding:16px !important; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); border-radius:18px; }
  .app-shell .order-create-dialog > header h2 { font-size:21px; }
  .app-shell .finance-records tbody { gap:0; }
  .app-shell .finance-records tr { border-radius:0; box-shadow:none; padding:10px 12px; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  :root { --glass:#fff; --glass-blur:none; }
}
@media (prefers-reduced-transparency:reduce) {
  :root { --glass:#fff; --glass-blur:none; }
  .app-shell dialog::backdrop { backdrop-filter:none; -webkit-backdrop-filter:none; }
}
/* Secondary workspaces use the same flat surface and control rhythm. */
.app-shell .finance-workspace .finance-tabs {
  gap:4px; padding:6px; margin-bottom:16px; background:var(--glass);
  border:1px solid var(--glass-border); border-radius:14px;
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
}
.app-shell .finance-workspace .finance-tabs a { flex:0 1 auto; padding:8px 10px; }
.app-shell .accounting-balance {
  gap:0; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
}
.app-shell .accounting-balance > .card { border:0; border-radius:0; box-shadow:none; padding:14px 16px; }
.app-shell .accounting-balance > .card + .card { border-left:1px solid var(--line); }
.app-shell :is(.notifications-workspace,.self-profile) {
  max-width:760px; padding:20px; background:var(--glass); border:1px solid var(--glass-border);
  border-radius:var(--surface-radius); box-shadow:var(--glass-shadow);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
}
.app-shell .notifications-workspace > .panel {
  border:0; border-radius:0; padding:14px 0; margin:0; background:transparent; box-shadow:none;
}
.app-shell .notifications-workspace > .panel + .panel { border-top:1px solid var(--line); }
.app-shell .notifications-workspace form { display:grid; gap:10px; }
.app-shell .notifications-workspace .check { min-height:44px; display:flex; align-items:center; gap:10px; }
.app-shell :is(.self-profile,.notifications-workspace) form > button { justify-self:start; width:auto; }
.app-shell .self-profile form { gap:12px; }
.app-shell .self-profile form > p { margin:0; }
.app-shell .system-checks { grid-template-columns:minmax(0,1fr); gap:0; margin-block:16px; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; }
.app-shell .system-checks .system-check { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:start; gap:6px 18px; padding:12px 16px; border:0; border-radius:0; box-shadow:none; }
.app-shell .system-check + .system-check { border-top:1px solid var(--line); }
.app-shell .system-check h2 { font-size:16px; }
.app-shell .system-check p { font-size:13px; }
.app-shell .system-check > p:not(.status-label) { grid-column:1 / -1; }
.app-shell .system-check > .diagnostic-details { grid-column:1 / -1; min-width:0; }
.app-shell .diagnostic-details { padding:4px 12px; margin-top:8px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.app-shell .diagnostic-details > summary { padding-block:10px; min-height:44px; }
.app-shell .users-compact .agent-label { margin:0 0 4px; font-size:14px; line-height:1.4; }
.app-shell .users-compact .user-tech-open { padding:4px 0; min-height:44px; width:auto; font-size:13px; }
.app-shell .users-compact .user-switch { min-height:44px; gap:4px; }
.app-shell .users-compact .users-table :is(th,td) { padding-block:8px; }
.app-shell .user-create .user-roles-inline { border:0; border-radius:0; padding:12px 0 0; border-top:1px solid var(--line); background:transparent; }
.app-shell .user-create .user-roles-inline legend { padding:0; font-weight:650; }
.app-shell .user-create .user-role-checklist label { font-size:14px; padding:4px; gap:8px; }
.app-shell .number-row-heading { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.app-shell .number-row-status { padding-top:8px; padding-bottom:2px; }
.app-shell .number-row-metrics { gap:4px; padding-top:4px; padding-bottom:8px; }
.app-shell .number-row-metrics > span { font-weight:500; }
.app-shell .number-row-metrics .number-metric { display:flex; flex-wrap:wrap; gap:4px 8px; align-items:baseline; }
.app-shell .number-row-metrics .number-metrics { gap:8px; }
@media (max-width:700px) {
  .app-shell :is(.notifications-workspace,.self-profile) { padding:14px; }
  .app-shell :is(.self-profile,.notifications-workspace) form > button { width:100%; }
  .app-shell .finance-workspace .finance-tabs a { flex:0 1 auto; font-size:14px; padding:8px; }
  .app-shell .accounting-balance > .card + .card { border-left:0; border-top:1px solid var(--line); }
  .app-shell .system-checks .system-check { gap:6px 12px; padding:12px; }
  .app-shell .system-check .diagnostic-table > table { min-width:0; }
  .app-shell .system-check .diagnostic-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .app-shell .system-check .diagnostic-table tbody, .app-shell .system-check .diagnostic-table tr { display:block; width:100%; }
  .app-shell .system-check .diagnostic-table tr + tr { border-top:1px solid var(--line); }
  .app-shell .system-check .diagnostic-table td { display:grid; grid-template-columns:90px minmax(0,1fr); gap:8px; min-width:0; padding:8px 0; border:0; white-space:normal; overflow-wrap:anywhere; }
  .app-shell .system-check .diagnostic-table td::before { content:attr(data-label); color:var(--muted); font-size:12px; font-weight:650; }
  .app-shell .user-create .user-role-checklist { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 8px; }
  .app-shell .users-compact .users-table td { padding-block:0; }
  .app-shell .number-row-metrics .number-metric { display:block; }
}
@media (prefers-reduced-motion:reduce) {
  .app-shell :is(button,.button-link,.ui-button,input,select,textarea) { transition:none; }
}
@media (prefers-reduced-motion:reduce) {
  .app-shell *, .app-shell *::before, .app-shell *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media (forced-colors:active) {
  :root { --glass:Canvas; --glass-blur:none; --glass-shadow:none; }
  .app-shell :is(button,.button-link,.ui-button,input,select,textarea) { border:1px solid ButtonText; }
}

/* Keep the joined All outline; its containing tab supplies the full touch row. */
.app-shell .messaging-all-settings { min-height:29px; border-radius:5px 0 0 5px; }
.cf-mobile-extra-count[hidden], .cf-mobile-extra-toggle[hidden] { display:none !important; }
.app-shell .agents-filters { gap:12px; margin:12px 0; }
.app-shell .agents-heading h1 { margin-bottom:0; }
.app-shell .agents-table :is(th,td) { padding:10px 12px; }
/* Embedded provider retains its existing full-height frame and own layout. */
body.app-shell:has(.messaging-embed-active) main { padding:0; }
/* Semantic attention group and dialogue rows do not become nested cards. */
.app-shell .overview-period > .overview-attention { margin:0 0 14px; padding:0 0 14px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
.app-shell :is(.overview-period,.overview-current,.overview-reports,.panel) .overview-cards { border:0; border-radius:0; box-shadow:none; background:transparent; }
.app-shell .messaging-conversation { border-radius:0; box-shadow:none; }
.app-shell .messaging-conversation[aria-current='true'] { box-shadow:inset 3px 0 var(--blue); }

/* Financial directory is a child of the cash workspace. */
.finance-nav-group{position:relative;flex:none;min-width:0}
.finance-nav-group>summary{display:flex;align-items:center;gap:8px;min-height:44px;margin:0!important;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--muted);list-style:none;white-space:nowrap}
.finance-nav-group>summary::-webkit-details-marker{display:none}
.finance-nav-group>summary::after{content:'▾';font-size:.7em}
.finance-nav-group[open]>summary,.finance-nav-group>summary:hover{background:var(--blue-soft);color:var(--blue-dark)}
.finance-nav-dropdown{position:absolute;top:100%;left:0;z-index:60;display:grid;min-width:160px;padding:6px;background:var(--paper,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #38212b20}
.finance-nav-dropdown a{display:flex;padding:10px 12px;min-height:44px;align-items:center}
.app-bar .header-menu{overflow:visible}
#main-nav .finance-nav-dropdown{position:static;box-shadow:none;margin-left:14px}
