/* ABS workspace presentation. Business rules, data and component behaviour stay in Razor.
   Palette surfaces follow MudTheme so the existing theme and dark-mode controls still work. */
.abs-workspace {
    --abs-ink: var(--mud-palette-text-primary);
    --abs-muted: var(--mud-palette-text-secondary);
    --abs-surface: var(--mud-palette-surface);
    --abs-canvas: var(--mud-palette-background);
    --abs-line: var(--mud-palette-lines-default);
    --abs-selection: var(--mud-palette-primary-hover);
    --abs-row-padding: 10px 12px;
    --abs-primary: var(--mud-palette-primary);
    --abs-error: var(--mud-palette-error);
    color: var(--abs-ink);
    font-size: 0.9375rem;
    line-height: 1.5;
}
.abs-density-compact { --abs-row-padding: 5px 12px; }
.abs-workspace .abs-main-content { background: var(--abs-canvas); }
.abs-workspace .abs-content-full { height: calc(100dvh - 76px); padding: 24px; }
.abs-workspace .abs-workspace-header {
    min-height: 76px; display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 12px 24px; border-bottom: 1px solid var(--abs-line); background: var(--abs-surface);
}
.abs-workspace-switch, .abs-density-toggle {
    appearance: none; font: inherit; color: inherit; background: transparent; border: 0;
    display: inline-flex; align-items: center; gap: 10px; text-align: left; cursor: pointer; border-radius: 6px;
}
.abs-workspace-switch { padding: 4px 0; min-width: 0; }
.abs-workspace-switch:hover { color: var(--abs-primary); }
.abs-workspace-identity { display: flex; flex-direction: column; min-width: 0; }
.abs-workspace-company { font-weight: 600; overflow-wrap: anywhere; }
.abs-workspace-client { font-size: 0.75rem; color: var(--abs-muted); }
.abs-workspace-tools { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.abs-workspace-period { font-size: 0.8125rem; color: var(--abs-muted); }
.abs-density-toggle { font-size: 0.8125rem; padding: 8px 10px; border: 1px solid var(--abs-line); }
.abs-density-toggle:hover, .abs-density-toggle[aria-pressed="true"] { background: var(--abs-selection); color: var(--abs-primary); }
.abs-workspace :where(button, a, input, [tabindex]):focus-visible { outline: 2px solid var(--abs-primary); outline-offset: 3px; }
.abs-workspace .mud-drawer.abs-sidebar-full { --mud-drawer-width: 232px; --mud-drawer-width-mini: 56px; }
.abs-workspace .abs-sidebar-header { min-height: 76px; padding: 12px; border-bottom-color: #304353; }
.abs-workspace .abs-logo-text { font-size: 1.2rem; letter-spacing: .03em; }
.abs-workspace .abs-sidebar-nav .mud-nav-link { font-size: 0.875rem; min-height: 40px; padding: 10px 14px; }
.abs-workspace .abs-nav-group-header { margin-top: 20px; padding: 8px 14px; }
.abs-workspace .abs-nav-group-header, .abs-workspace .abs-nav-group-header span { font-size: 0.6875rem; color: #aabccc; letter-spacing: .06em; }
.abs-workspace .abs-dark-sidebar .mud-nav-link.active {
    background: #223e48 !important; color: #fff !important; border-left-color: #5eead4 !important;
}
.abs-workspace .abs-dark-sidebar .mud-nav-link.active .mud-icon-root { color: #5eead4 !important; }
.abs-workspace .abs-avatar-name { font-size: 0.8125rem; }
.abs-workspace .abs-workspace-switch:disabled { cursor: default; opacity: .6; }
.abs-workspace .abs-text-muted { color: var(--abs-muted); }

/* One hierarchy for page titles, section headings and supporting information. */
.abs-page-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.abs-page-heading h1, .abs-page-heading > .mud-typography-h6, .abs-page-heading > .mud-stack .mud-typography-h6 {
    font-family: var(--abs-font-display); font-size: 1.5rem; line-height: 1.3; font-weight: 600; margin: 0;
}
.abs-page-subtitle { margin: 5px 0 0; color: var(--abs-muted); font-size: .875rem; }
.abs-page-meta { color: var(--abs-muted); font-size: .8125rem; }
.abs-workspace .abs-panel-header {
    height: 44px; min-height: 44px; padding: 0 14px; background: var(--abs-surface); color: var(--abs-ink);
    border-bottom: 1px solid var(--abs-line); font-size: .875rem; letter-spacing: 0; font-weight: 600;
}
.abs-workspace .abs-panel-header .mud-icon-root, .abs-workspace .abs-panel-header .mud-icon-button {
    color: var(--abs-muted) !important;
}
.abs-workspace .abs-panel-header .mud-icon-button { height: 32px; width: 32px; }
.abs-workspace .abs-split-container > :not(.coa-splitter) { background: var(--abs-surface) !important; border-color: var(--abs-line) !important; }
.abs-workspace .abs-panel, .abs-workspace .mud-table { box-shadow: none; }
.abs-workspace .abs-content-area .mud-button-root { text-transform: none; font-size: .875rem; min-height: 38px; box-shadow: none; }
.abs-workspace .abs-content-area .mud-input { font-size: .875rem; }
.abs-workspace .abs-content-area .mud-input-control { margin-bottom: 0; }
.abs-workspace .mud-input-outlined-border { border-color: var(--abs-line); }
.mud-picker-popover .mud-picker-inline-paper { min-width: 320px; }
.mud-picker-popover .mud-picker.mud-picker-paper { min-width: 320px; width: auto; }

/* Ledger and report rows share density, readable text and tabular figures. */
.abs-workspace .mud-table-dense .mud-table-cell, .abs-workspace .mud-table-dense td, .abs-workspace .mud-table-dense th {
    padding: var(--abs-row-padding); font-size: .875rem; line-height: 1.45; font-variant-numeric: tabular-nums;
    border-color: var(--abs-line);
}
.abs-workspace .mud-table-dense th { font-weight: 600; color: var(--abs-muted); background: var(--abs-canvas); }
.abs-workspace .mud-table-dense td .mud-typography-body2 { font-size: inherit; }
.abs-workspace .mud-table-dense td .mud-typography-caption { font-size: .75rem; color: var(--abs-muted); }
.abs-workspace .mud-table-footer .mud-table-cell { background: var(--abs-canvas); font-weight: 600; }
.abs-workspace .report-grid tr.group td { background: var(--abs-canvas); color: var(--abs-ink); }
.abs-workspace .report-grid tfoot td { background: var(--abs-canvas); border-top: 2px solid var(--abs-line); font-weight: 600; }
.abs-workspace .report-grid table { table-layout: auto; }
.abs-workspace .report-grid tr:hover td { background: var(--abs-selection); }
.abs-workspace .report-grid th.num, .abs-workspace .report-grid td.num { min-width: 116px; }

.abs-workspace .abs-ledger-workspace { height: calc(100dvh - 182px); min-height: 380px; background: transparent; box-shadow: none; }
.abs-workspace .abs-ledger-workspace-body { height: 100%; padding: 0; }
.abs-workspace .abs-ledger-panel > div:last-child { padding: 16px !important; }
.abs-ledger-filters { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.abs-workspace .abs-ledger-summary { flex-wrap: wrap; gap: 12px 24px; padding: 12px 14px; margin-bottom: 16px; border: 1px solid var(--abs-line); border-radius: 6px; background: var(--abs-canvas); font-size: .875rem; }
.abs-ledger-summary > span:first-child { width: 100%; font-size: 1rem; }
.abs-ledger-summary strong { font-variant-numeric: tabular-nums; }
.abs-currency-context { margin-left: auto; padding-left: 12px; color: var(--abs-muted); font-size: .75rem; font-weight: 400; }
.abs-workspace .tree-node-content { font-size: .875rem !important; min-height: 34px; padding-top: 7px !important; padding-bottom: 7px !important; }
.abs-workspace .tree-node-content.selected, .abs-workspace .report-list-item.selected { background: var(--abs-selection); border-left-color: var(--abs-primary); }
.abs-workspace .abs-empty-state { margin: 0; padding: 56px 24px; color: var(--abs-muted); min-height: 180px; }
.abs-workspace .coa-splitter { width: 12px; min-width: 12px; background: transparent; }
.abs-workspace .coa-splitter:hover { background: var(--abs-selection); }
.abs-workspace .abs-tree-panel { position: relative; }

.abs-workspace .abs-reports-workspace { min-height: 420px; }
.abs-report-host { padding: 20px; }
.abs-report-frame { position: relative; }
.abs-workspace .abs-report-window-action { position: absolute; top: 20px; right: 16px; padding: 0; height: 32px; min-height: 32px; border: none; z-index: 1; }
.abs-report-host .report-page-header { padding-right: 36px; }
.report-page-header { justify-content: flex-start; }
.report-page-header > .mud-icon-root { color: var(--abs-primary); }
.abs-workspace .abs-report-content { padding: 0; }
.abs-workspace .report-params { padding-bottom: 20px; margin-bottom: 16px; border-bottom: 1px solid var(--abs-line); }
.abs-workspace .report-toolbar { flex-wrap: wrap; }
.abs-workspace .report-list-item { min-height: 38px; font-size: .875rem; }
.abs-workspace .report-list-title { white-space: normal; line-height: 1.4; font-size: .875rem; }
.abs-workspace .report-open-tab-btn:focus-visible, .abs-workspace .report-list-item:focus-within .report-open-tab-btn { opacity: 1; }
.abs-workspace .report-section-header { padding-top: 14px; padding-bottom: 8px; }

/* Dashboard: neutral financial figures, one chart accent, colour for labelled status. */
.abs-dashboard { max-width: 1600px; margin: 0 auto; }
.abs-workspace .abs-dashboard .mud-card { border: 1px solid var(--abs-line); border-radius: 8px; box-shadow: none; }
.abs-workspace .abs-dashboard .mud-card-content { padding: 20px; }
.abs-workspace .abs-dashboard .mud-card-header { padding: 18px 20px 0; }
.abs-workspace .dashboard-card { height: 100%; background: var(--abs-surface); color: var(--abs-ink); }
.abs-metric-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--abs-muted); font-size: .875rem; }
.abs-metric-header .mud-icon-root { color: var(--abs-primary); }
.abs-metric-value { font-family: var(--abs-font-display); font-weight: 600; font-size: clamp(1.375rem, 1.65vw, 1.875rem); line-height: 1.4; margin: 10px 0 4px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.abs-metric-caption { color: var(--abs-muted); font-size: .75rem; }
.abs-dashboard-widget { height: 100%; }
.abs-workspace .widget-heading { font-weight: 600; font-size: 1rem; color: var(--abs-ink); }
.abs-workspace .abs-dashboard .mud-typography-h6 { font-size: 1rem; font-variant-numeric: tabular-nums; }
.abs-workspace .abs-dashboard .mud-tabs { min-width: 0; }
.abs-workspace .abs-dashboard .mud-tab { text-transform: none; min-width: 90px; font-size: .875rem; }
.abs-workspace .sales-trend-chart text { font-family: var(--abs-font-body); font-size: 14px; fill: var(--abs-muted); }
.abs-workspace .sales-trend-chart .mud-chart-bar { stroke-width: 24px; stroke-linecap: butt; stroke: var(--abs-primary); }
.abs-workspace .abs-dashboard .mud-table th { background: var(--abs-surface); }

@media (max-width: 1100px) {
    .abs-workspace .abs-content-full { padding: 18px; }
    .abs-workspace .abs-workspace-header { padding: 12px 18px; }
    .abs-workspace .abs-workspace-tools { gap: 8px; }
    .abs-workspace .abs-tree-panel { width: 230px !important; min-width: 210px !important; }
    .abs-workspace .abs-ledger-panel > div:last-child { padding: 12px !important; }
    .abs-report-host { padding: 16px; }
}
@media (max-width: 700px) {
    .abs-workspace .abs-workspace-header { align-items: flex-start; flex-direction: column; gap: 8px; min-height: 116px; }
    .abs-workspace .abs-workspace-tools { width: 100%; justify-content: space-between; flex-wrap: wrap; }
    .abs-workspace .abs-content-full { height: calc(100dvh - 116px); padding: 16px; }
    .abs-workspace .abs-split-container { flex-direction: column; height: auto !important; gap: 16px; }
    .abs-workspace .abs-tree-panel { width: 100% !important; max-width: none !important; min-width: 0 !important; max-height: 260px; }
    .abs-workspace .coa-splitter { display: none; }
    .abs-workspace .abs-ledger-workspace { height: auto; }
    .abs-workspace .abs-ledger-panel { min-height: 360px; }
    .abs-workspace .abs-reports-workspace { height: auto !important; }
    .abs-workspace .abs-content-area .mud-input { font-size: 1rem; }
    .abs-workspace .abs-ledger-filters > div { flex: 1 1 150px; }
    .abs-workspace .report-toolbar { gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .abs-workspace *, .abs-workspace *::before, .abs-workspace *::after { scroll-behavior: auto !important; transition-duration: 0s !important; }
}
