/*
  finance.css — Financial Workspace, Phase 1.2 Dashboard UX.
  Colors/radii/shadows/spacing/control-height/typography all come from
  public/design-tokens.css (--cos-*) — design-tokens.css itself is NOT
  touched this round. Text-role mapping (unchanged from Phase 1.1):
    Page Title    (--cos-fs-page-title/28/700)    -> .fin-page-header h1
    Section Title (--cos-fs-section-title/22/600) -> .fin-section-title
    Card Title    (--cos-fs-card-title/18/600)    -> placeholder title
    Body          (--cos-fs-body/16/500)          -> subtitle, task text, placeholder
                                                       desc, checklist label, stat value
    Label         (--cos-fs-label/15/600)         -> nav label, kpi/stat/completeness labels
    Small         (--cos-fs-small/14/600)         -> tags, mock badge, status badge, cost row head

  .fin-kpi-value is the one exception: the spec asks for a KPI number with
  more visual weight than the Card Title token allows, without adding a new
  global typography token. It is a plain, module-local font-size (24px) used
  nowhere else — not a --cos-fs-* token, not reused outside this file.
*/

.fin-app{display:flex;min-height:100vh;font-family:var(--cos-font);background:var(--cos-surface-muted);color:var(--cos-text);}

.fin-sidebar{width:260px;flex:0 0 260px;background:var(--cos-sidebar-bg);color:var(--cos-sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto;}
.fin-sidebar-brand{padding:var(--cos-space-lg) var(--cos-space-md);font-size:var(--cos-fs-card-title);font-weight:var(--cos-fw-card-title);border-bottom:1px solid var(--cos-sidebar-border);}
.fin-sidebar-brand small{display:block;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-sidebar-text-muted);margin-top:var(--cos-space-xs);}
.fin-nav{display:flex;flex-direction:column;padding:var(--cos-space-sm);gap:var(--cos-space-xs);}
.fin-nav-divider{height:1px;background:var(--cos-sidebar-border);margin:var(--cos-space-xs) var(--cos-space-sm);}
.fin-nav-item{display:flex;align-items:center;gap:var(--cos-space-sm);height:var(--cos-control-height);text-align:left;background:transparent;border:0;color:var(--cos-sidebar-text);padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);font-family:inherit;cursor:pointer;transition:background var(--cos-transition-fast);}
.fin-nav-item:hover{background:var(--cos-sidebar-hover);}
.fin-nav-item.is-active{background:var(--cos-accent);color:#fff;font-weight:var(--cos-fw-label);}
.fin-nav-icon{font-size:var(--cos-fs-body);line-height:1;flex:0 0 auto;}
.fin-nav-label{flex:1;font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);}
/* Phase 1.5: 人力成本 group header (non-clickable) + its two indented sub-items. */
.fin-nav-group-label{display:flex;align-items:center;gap:var(--cos-space-sm);height:var(--cos-control-height);padding:0 var(--cos-space-md);color:var(--cos-sidebar-text-muted);font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);}
.fin-nav-item-sub{padding-left:calc(var(--cos-space-md) + var(--cos-space-lg));}

.fin-main{flex:1;min-width:0;padding:var(--cos-space-lg);}

/* Page header — compact; status now lives here as a tag, not as a banner.
   Phase 1.3: title/subtitle gap and header-to-KPI gap widened for vertical rhythm. */
.fin-page-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--cos-space-md);margin-bottom:var(--cos-space-xl);}
.fin-page-header h1{margin:0;font-size:var(--cos-fs-page-title);font-weight:var(--cos-fw-page-title);color:var(--cos-text);}
.fin-page-subtitle{margin:var(--cos-space-sm) 0 0;color:var(--cos-text-muted);font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);}
.fin-header-tags{display:flex;gap:var(--cos-space-sm);flex-wrap:wrap;align-items:center;}

.fin-tag{display:inline-flex;align-items:center;height:var(--cos-space-xl);padding:0 var(--cos-space-sm);border-radius:var(--cos-radius-pill);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);white-space:nowrap;box-sizing:border-box;}
.fin-tag-month{background:var(--cos-accent-soft);color:var(--cos-accent);border:1px solid var(--cos-accent-soft-border);}
.fin-tag-status{background:var(--cos-surface-muted);color:var(--cos-text-muted);border:1px solid var(--cos-border);}
.fin-tag-demo{background:var(--cos-warning-bg);color:#93650a;border:1px solid #fde68a;}
.fin-tag-disconnected{background:var(--cos-surface-muted);color:var(--cos-text-muted);border:1px solid var(--cos-border);}
.fin-tag-planning{background:var(--cos-accent-soft);color:var(--cos-accent);border:1px solid var(--cos-accent-soft-border);}

.fin-page-body{display:flex;flex-direction:column;gap:var(--cos-space-md);}

.fin-card{background:var(--cos-surface);border:1px solid var(--cos-border);border-radius:var(--cos-radius-lg);padding:var(--cos-space-xl);box-shadow:var(--cos-shadow-sm);}
.fin-section-title{margin:0 0 var(--cos-space-sm);font-size:var(--cos-fs-section-title);font-weight:var(--cos-fw-section-title);color:var(--cos-text);}

/* ---- Financial KPI Cards — first-screen focus (section 3) ----
   Phase 1.4: card padding reduced 30px->20px (~25% shorter cards); fixed 3-column grid
   capped at 900px so a 5-card default set lays out 3+2 with the trailing row left-aligned
   (default grid behavior — no extra alignment rules needed) and cards never over-stretch
   at wide viewports; per-card "展示資料" tag removed (redundant with the header's
   "展示模式" tag) in favor of the section-level settings entry below. */
.fin-kpi-section{background:var(--cos-surface);border:1px solid var(--cos-border);border-radius:var(--cos-radius-lg);padding:var(--cos-space-xl);box-shadow:var(--cos-shadow-sm);}
.fin-kpi-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cos-space-sm);}
.fin-kpi-section-head .fin-section-title{margin:0;}
.fin-kpi-settings-btn{height:32px;padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);border:1px solid var(--cos-accent-soft-border);background:var(--cos-accent-soft);color:var(--cos-accent);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);font-family:inherit;cursor:pointer;}
.fin-kpi-settings-btn:hover{background:var(--cos-accent-soft-border);}
.fin-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;gap:var(--cos-space-sm);}
.fin-kpi-card{background:var(--cos-surface-muted);border:1px solid var(--cos-border);border-radius:var(--cos-radius-md);padding:20px var(--cos-space-md);display:flex;flex-direction:column;}
.fin-kpi-card-head{display:flex;align-items:center;gap:var(--cos-space-xs);}
.fin-kpi-icon{font-size:var(--cos-fs-body);line-height:1;}
.fin-kpi-label{font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text-muted);}
.fin-kpi-value{font-size:24px;font-weight:700;color:var(--cos-text);line-height:1.2;margin-top:var(--cos-space-sm);} /* module-local KPI display size, see file header note */
.fin-kpi-note{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-subtle);margin-top:var(--cos-space-sm);}
.fin-kpi-mock{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-subtle);background:var(--cos-surface);border:1px solid var(--cos-border);border-radius:var(--cos-radius-pill);padding:1px var(--cos-space-sm);align-self:flex-start;margin-top:var(--cos-space-xs);}

/* Placeholder KPI card (availability = disconnected/future) — dashed border signals
   "not a real card" at a glance; never renders a value/note, only status + message. */
.fin-kpi-card-placeholder{border-style:dashed;}
.fin-kpi-placeholder-status{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);margin-top:var(--cos-space-sm);}
.fin-kpi-placeholder-msg{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-subtle);margin-top:var(--cos-space-xs);}

/* ---- Pending Tasks — secondary information, below the KPI row (section 4) ----
   Phase 1.3: row height raised to ~56px (min-height, outside the --cos-space scale,
   same local-override precedent as .fin-kpi-value) with icon/text kept vertically
   centered via align-items:center; action button gets more horizontal breathing room. */
.fin-task-list{display:flex;flex-direction:column;gap:var(--cos-space-xs);}
.fin-task-card{display:flex;align-items:center;min-height:56px;gap:var(--cos-space-md);padding:var(--cos-space-xs) var(--cos-space-md);border-radius:var(--cos-radius-md);background:var(--cos-surface-muted);border:1px solid var(--cos-border);}
.fin-task-severity{font-size:var(--cos-fs-body);line-height:1;flex:0 0 auto;}
.fin-task-text{flex:1;font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}
.fin-task-action{height:36px;padding:0 var(--cos-space-lg);border-radius:var(--cos-radius-sm);border:1px solid var(--cos-accent);background:var(--cos-accent);color:#fff;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);font-family:inherit;flex:0 0 auto;cursor:default;}

/* ---- Status badge — shared by Closing Checklist + Data Completeness ---- */
.fin-status-badge{display:inline-flex;align-items:center;height:26px;padding:0 var(--cos-space-sm);border-radius:var(--cos-radius-pill);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);white-space:nowrap;box-sizing:border-box;}
.fin-status-badge.is-done{background:var(--cos-success-bg);color:var(--cos-success);border:1px solid var(--cos-success-border);}
.fin-status-badge.is-mock{background:var(--cos-accent-soft);color:var(--cos-accent);border:1px solid var(--cos-accent-soft-border);}
.fin-status-badge.is-pending{background:var(--cos-warning-bg);color:#93650a;border:1px solid #fde68a;}
.fin-status-badge.is-disconnected{background:var(--cos-surface-muted);color:var(--cos-text-muted);border:1px solid var(--cos-border);}

/* ---- Month Closing Checklist — 10 items, 3+ states (section 5) ----
   Phase 1.3: row gap tightened below --cos-space-xs (4px) to make the 10-step
   process read as one compact flow; badge size (.fin-status-badge) unchanged. */
.fin-checklist{display:flex;flex-direction:column;gap:2px;}
.fin-checklist-row{display:flex;align-items:center;gap:var(--cos-space-sm);padding:var(--cos-space-xs) var(--cos-space-sm);border-radius:var(--cos-radius-sm);}
.fin-checklist-mark{width:var(--cos-space-lg);flex:0 0 var(--cos-space-lg);text-align:center;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}
.fin-checklist-row.is-done .fin-checklist-mark{color:var(--cos-success);}
.fin-checklist-row.is-mock .fin-checklist-mark{color:var(--cos-accent);}
.fin-checklist-label{flex:1;font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}
.fin-checklist-row.is-disconnected .fin-checklist-label{color:var(--cos-text-muted);}

/* ---- Cost Structure — proportion bars (section 6) ----
   Phase 1.3: percentage pinned to the right edge regardless of label width. */
.fin-cost-list{display:flex;flex-direction:column;gap:var(--cos-space-sm);}
.fin-cost-row{display:flex;flex-direction:column;gap:var(--cos-space-xs);}
.fin-cost-row-head{display:flex;justify-content:space-between;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text);}
.fin-cost-row-head span:last-child{text-align:right;}
.fin-cost-track{height:8px;border-radius:var(--cos-radius-pill);background:var(--cos-surface-muted);border:1px solid var(--cos-border);overflow:hidden;}
.fin-cost-fill{height:100%;border-radius:var(--cos-radius-pill);background:var(--cos-accent);}

/* ---- Stat lists — Accounts Payable / Income Summary (sections 7-8) ----
   Phase 1.3: amount pinned to the right edge regardless of label width. */
.fin-stat-list{display:flex;flex-direction:column;}
.fin-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--cos-space-xs) 0;border-bottom:1px solid var(--cos-border);}
.fin-stat-row:last-child{border-bottom:none;}
.fin-stat-label{font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text-muted);}
.fin-stat-value{font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);text-align:right;}
.fin-stat-value.is-alert{color:var(--cos-danger);}

/* ---- Data Completeness — overall bar + per-source status badges (section 9) ---- */
.fin-completeness-bar-wrap{display:flex;align-items:center;gap:var(--cos-space-sm);margin-bottom:var(--cos-space-md);}
.fin-completeness-track{flex:1;height:var(--cos-space-sm);border-radius:var(--cos-radius-pill);background:var(--cos-surface-muted);border:1px solid var(--cos-border);overflow:hidden;}
.fin-completeness-fill{height:100%;background:var(--cos-accent);border-radius:var(--cos-radius-pill);}
.fin-completeness-pct{font-size:var(--cos-fs-card-title);font-weight:var(--cos-fw-card-title);color:var(--cos-text);min-width:44px;text-align:right;}
.fin-completeness-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:var(--cos-space-sm);}
.fin-completeness-item{display:flex;align-items:center;justify-content:space-between;gap:var(--cos-space-xs);padding:var(--cos-space-sm);background:var(--cos-surface-muted);border-radius:var(--cos-radius-sm);}
.fin-completeness-item-label{font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text);}

/* ---- Two-column bottom rows (section 10): Cost Structure|Payable, Income|Completeness ---- */
.fin-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--cos-space-md);align-items:start;}

/* ---- Finance Settings overview (UAT-FIX-011) — compact capability rows.
   Card / section title / status badge / footer all reuse the existing vocabulary
   (.fin-card / .fin-section-title / .fin-status-badge / .fin-page-footer); only the row
   layout below is new. Body copy stays on --cos-text and the secondary line on
   --cos-text-subtle (#667085, 5.0:1 on white) rather than --cos-text-muted (#8a94a6,
   2.9:1), so this page does not reintroduce the contrast defect UAT-FIX-010C fixed. */
.fin-settings-section + .fin-settings-section{margin-top:var(--cos-space-md);}
.fin-settings-list{list-style:none;margin:var(--cos-space-md) 0 0;padding:0;display:flex;flex-direction:column;}
.fin-settings-row{padding:var(--cos-space-sm) 0;border-bottom:1px solid var(--cos-border);}
.fin-settings-row:last-child{border-bottom:none;padding-bottom:0;}
.fin-settings-row-head{display:flex;align-items:center;gap:var(--cos-space-sm);flex-wrap:wrap;}
.fin-settings-row-title{font-size:var(--cos-fs-body);font-weight:var(--cos-fw-card-title);color:var(--cos-text);}
.fin-settings-row-desc{margin:var(--cos-space-xs) 0 0;font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}
.fin-settings-row-note{margin:2px 0 0;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-subtle);}
.fin-settings-row.is-unavailable .fin-settings-row-title{color:var(--cos-text-subtle);}

/* ---- 會計科目的成本用途勾選（BATCH3-2 C）----
   表格儲存格內的一組 checkbox。必須明確宣告 flex-direction:row —— style.css 的全域
   `label{display:flex;flex-direction:column}` 否則會把 checkbox 與文字拆成上下兩層
   （與 UAT-FIX-006／008／010C／Batch1-L 同一個缺陷類型）。 */
.fin-coa-purpose{display:inline-flex;flex-direction:row;align-items:center;gap:4px;margin-right:var(--cos-space-sm);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text);white-space:nowrap;}
.fin-coa-purpose input[type=checkbox]{width:15px;height:15px;flex:0 0 auto;accent-color:var(--cos-accent);cursor:pointer;}
.fin-coa-purpose input[type=checkbox]:disabled{cursor:not-allowed;}
.fin-coa-purpose:has(input:disabled){color:var(--cos-text-subtle);}

.fin-placeholder-card{text-align:center;padding:calc(var(--cos-space-xl) * 2) var(--cos-space-xl);}
.fin-placeholder-title{font-size:var(--cos-fs-card-title);font-weight:var(--cos-fw-card-title);color:var(--cos-text);margin-bottom:var(--cos-space-sm);}
.fin-placeholder-desc{font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text-muted);margin-bottom:var(--cos-space-md);}
.fin-placeholder-tags{display:flex;gap:var(--cos-space-sm);justify-content:center;flex-wrap:wrap;}

.fin-page-footer{margin-top:var(--cos-space-xs);padding-top:var(--cos-space-sm);border-top:1px solid var(--cos-border);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);text-align:center;}

/* ---- KPI Widget settings drawer (section 3-8) — Mock UI only, closes on backdrop click ---- */
.fin-widget-overlay{position:fixed;inset:0;background:rgba(15,20,30,.35);z-index:40;}
.fin-widget-drawer{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:92vw;background:var(--cos-surface);box-shadow:var(--cos-shadow-lift);z-index:41;display:flex;flex-direction:column;padding:var(--cos-space-lg);overflow-y:auto;}
/* CLINICOS-V4-UAT-FIX-008：抽屜自己的文字顏色契約。
   這個抽屜是一個 <aside>，而 style.css:127 有一條給深色側邊欄用的全域
   `aside{width:220px;background:#111827;color:white;…}`。上面那條 .fin-widget-drawer
   蓋掉了 width／background／position，唯獨沒有蓋掉 color，於是抽屜底色是
   var(--cos-surface)（白）、文字顏色卻繼承自全域的 white —— 凡是沒有自己宣告顏色的文字
   都變成白底白字（實測 rgb(255,255,255) on rgb(255,255,255)，對比 1.00，不是「偏淡」）。
   抽屜裡看得見的字（標題／說明／列名）之所以正常，是因為它們各自都有明確的 color。
   這裡把缺的那一半補上，讓本模組的顏色契約自己完整、不再依賴全域元素選擇器。
   不改 style.css 的全域 aside（外層側邊欄仍靠它），不用 !important。 */
.fin-widget-drawer{color:var(--cos-text);}
/* 正式表單 Label（非 secondary hint）：沿用全站既有的 form label token
   （--cos-fs-label / --cos-fw-label / --cos-text，與 .cos-field__label、
   .fin-widget-row-name 同一組），因此與 placeholder、helper text（--cos-text-muted）、
   metadata（--cos-text-subtle）在顏色與字重上都分得開，也不需要新增任何硬編顏色。 */
.fin-widget-drawer-form label{font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text);}
.fin-widget-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cos-space-sm);}
.fin-widget-drawer-head h3{margin:0;font-size:var(--cos-fs-section-title);font-weight:var(--cos-fw-section-title);color:var(--cos-text);}
.fin-widget-close-btn{width:32px;height:32px;flex:0 0 auto;border-radius:var(--cos-radius-sm);border:1px solid var(--cos-border);background:var(--cos-surface-muted);color:var(--cos-text-muted);font-size:var(--cos-fs-body);font-family:inherit;cursor:pointer;}
.fin-widget-drawer-desc{margin:0 0 var(--cos-space-md);font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text-muted);}
.fin-widget-list{display:flex;flex-direction:column;gap:var(--cos-space-sm);flex:1;}
/* CLINICOS-V4-UAT-FIX-006：這一列是「checkbox ＋ 名稱／來源 ＋ 狀態」的橫向設定列。
   它是一個 <label>，而 style.css 有一條全域的 `label{display:flex;flex-direction:column;
   gap:6px;font-weight:700}`。本規則原本只宣告 display:flex，沒有宣告 flex-direction，
   於是全域那條的 column 無人可擋 —— checkbox、文字、狀態被疊成三層，每一列實測高達 125px，
   380px 的 Drawer 首屏只放得下 11 項中的 5 項。這裡把「橫向列」與字重明白寫出來，讓本模組
   的版面契約自己完整，不再依賴 flex 預設值，也不受全域 label 樣式影響。
   不改 style.css 的全域 label（其他頁面仍靠它排表單），也不用 !important。 */
.fin-widget-row{display:flex;flex-direction:row;align-items:center;font-weight:var(--cos-fw-body);gap:var(--cos-space-sm);padding:var(--cos-space-sm);border:1px solid var(--cos-border);border-radius:var(--cos-radius-md);cursor:pointer;}
/* 狀態標籤是 nowrap 的 pill，不讓它被壓縮或把名稱擠掉；名稱／來源那一欄負責吸收剩餘寬度。
   同一顆 pill 在這個 380px 的 Drawer 裡連續重複 11 次，用工作台上的完整尺寸會過度搶視覺、
   也把「來源」擠成兩行，因此僅在本 Drawer 內收斂尺寸（語意保留 —— availability 有
   可展示／尚未連接／未來功能三種值，不是恆真標記，不能拿掉）。 */
.fin-widget-row .fin-status-badge{flex:0 0 auto;height:22px;padding:0 6px;font-size:11px;}
.fin-widget-row input[type=checkbox]{width:18px;height:18px;flex:0 0 auto;accent-color:var(--cos-accent);cursor:pointer;}
.fin-widget-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.fin-widget-row-name{font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text);}
.fin-widget-row-source{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}
.fin-widget-drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--cos-space-sm);margin-top:var(--cos-space-md);padding-top:var(--cos-space-md);border-top:1px solid var(--cos-border);}
.fin-widget-drawer-foot-right{display:flex;gap:var(--cos-space-sm);}
.fin-widget-btn{height:36px;padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);font-family:inherit;cursor:pointer;}
.fin-widget-btn-ghost{background:transparent;border:1px solid var(--cos-border);color:var(--cos-text-muted);}
.fin-widget-btn-outline{background:var(--cos-surface);border:1px solid var(--cos-border);color:var(--cos-text);}
.fin-widget-btn-primary{background:var(--cos-accent);border:1px solid var(--cos-accent);color:#fff;}
.fin-widget-btn:disabled{opacity:.5;cursor:not-allowed;}

/* ---- Journal List / Detail / Confirm Dialog ----
   Filter bar and detail-drawer helper rows only. The table, drawer and button chrome reuse the
   fin-dc-table, fin-widget-drawer and fin-widget-btn families above, no duplication. The confirm
   dialog is the one new structural pattern (a centered modal, distinct from a side drawer),
   reused for both Review and Post confirmation, never per-action.

   CLINICOS-V4-UAT-FIX-010C —— 這段註解原本把那三個類別名用「星號＋斜線」串在一起，那個組合
   等同於註解結束符，會讓註解提前結束；其後的文字被當成 CSS 解析失敗，連帶把緊接著的
   .fin-journal-filter-bar 規則整條吞掉。這就是「篩選卡其實是 block、吃到 .fin-card 的 24px
   內距、兩個控制項卻高達 184px」的真正原因 —— 那條規則從寫下來就沒有生效過。
   註解改成不含該組合的寫法後，下面的 compact filter bar 才真的套用得上。

   compact filter bar：較小的內距與間距，flex-wrap 讓控制項放得下就同列、放不下自然換行；
   全部使用既有 token，不新增設計語彙。 */
.fin-journal-filter-bar{display:flex;flex-wrap:wrap;gap:var(--cos-space-sm) var(--cos-space-md);align-items:center;padding:var(--cos-space-sm) var(--cos-space-md);}
/* 篩選 label 同樣是正式標籤（實測 3.06:1），改用正式文字色。 */
/* flex-direction 必須寫出來。這條規則原本只宣告 display:flex，沒有宣告 flex-direction，
   於是 style.css 的全域 `label{display:flex;flex-direction:column;…}` 無人可擋 ——
   每個「標籤＋控制項」被疊成上下兩層，2 個控制項的篩選卡因此高達 184px、
   010B 的 8 個條件更高達 586px，首屏幾乎看不到資料。
   這與 UAT-FIX-004／006／008 是同一個缺陷類型：模組規則只覆蓋了全域元素規則的一部分。
   這裡把橫向版面明白寫出來，讓本模組的版面契約自己完整。 */
.fin-journal-filter-bar label{display:flex;flex-direction:row;align-items:center;gap:var(--cos-space-xs);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text);white-space:nowrap;}
.fin-journal-filter-bar select,.fin-journal-filter-bar input{height:var(--cos-control-height);border-radius:var(--cos-radius-sm);border:1px solid var(--cos-border);background:var(--cos-surface);color:var(--cos-text);font-family:inherit;font-size:var(--cos-fs-small);padding:0 var(--cos-space-sm);}
.fin-journal-detail-header{margin-bottom:var(--cos-space-md);display:flex;flex-direction:column;gap:var(--cos-space-xs);}
.fin-journal-audit-mini{margin-top:var(--cos-space-md);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);display:flex;flex-direction:column;gap:2px;}
.fin-journal-action-error{color:#b42318;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);margin:var(--cos-space-sm) 0;}
.fin-modal-overlay{position:fixed;inset:0;background:rgba(15,20,30,.45);z-index:50;}
.fin-modal-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:420px;max-width:92vw;background:var(--cos-surface);border-radius:var(--cos-radius-lg);box-shadow:var(--cos-shadow-lift);z-index:51;padding:var(--cos-space-lg);}
.fin-modal-box h3{margin:0 0 var(--cos-space-sm);font-size:var(--cos-fs-section-title);font-weight:var(--cos-fw-section-title);color:var(--cos-text);}
.fin-modal-box p{margin:0 0 var(--cos-space-sm);font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}

/* ==================================================================
   醫師成本與產值 (Phase 1.5) — Architecture & UI Planning
   Reuses .fin-card / .fin-kpi-* / .fin-status-badge / .fin-widget-* /
   .fin-stat-* wherever the shape matches; fin-dc-* is only for markup
   that has no existing equivalent (toolbar, data table, tabs, wizard).
   ================================================================== */

.fin-dc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cos-space-sm);margin-bottom:var(--cos-space-md);}
.fin-dc-toolbar-pill{display:inline-flex;align-items:center;height:var(--cos-control-height);padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);background:var(--cos-surface);border:1px solid var(--cos-border);color:var(--cos-text);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);}
.fin-dc-toolbar-btn{height:var(--cos-control-height);padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);background:var(--cos-surface);border:1px solid var(--cos-border);color:var(--cos-text);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);font-family:inherit;cursor:pointer;}
.fin-dc-toolbar-btn-primary{background:var(--cos-accent);border-color:var(--cos-accent);color:#fff;}

.fin-dc-kpi-grid{max-width:1100px;}

.fin-dc-table-section{overflow:visible;}
.fin-dc-table-scroll{overflow-x:auto;border:1px solid var(--cos-border);border-radius:var(--cos-radius-md);}
/* CLINICOS-V4-UAT-FIX-010C：表格寬度改為「依內容決定」。
   原本這條無條件 min-width:1400px 是為了醫師成本那張真正的寬表（十幾欄＋sticky 首欄）而寫，
   卻套在全部 19 張財務表上：損益表只有 3 欄也被撐到 1400px，1366 下產生 409px 內部橫捲，
   金額因此被推離科目名稱數百 px。
   現在窄表以 width:100% 自然填滿容器（不再有假造的橫捲），寬表則由儲存格的 white-space:nowrap
   自然把表撐到內容需要的寬度，超出時仍由既有的 .fin-dc-table-scroll 橫向捲動——
   也就是「需要多寬就多寬」，而不是「一律 1400px」。 */
.fin-dc-table{border-collapse:collapse;width:100%;}
/* 真正的寬表才 opt-in。目前唯一使用者是醫師成本（fin-dc-col-sticky-left 那張）。 */
.fin-dc-table--wide{min-width:1400px;}
/* 金額欄右對齊並收斂寬度：width:1% 搭配儲存格的 white-space:nowrap 是表格的標準寫法 ——
   金額欄縮到內容需要的寬度，剩下的寬度由文字欄（科目名稱等）吸收，
   而不是三欄各拿三分之一、把數字硬推到離科目很遠的地方。 */
.fin-dc-table th.fin-dc-num,.fin-dc-table td.fin-dc-num{text-align:right;width:1%;}
.fin-dc-table th,.fin-dc-table td{padding:var(--cos-space-sm) var(--cos-space-sm);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text);white-space:nowrap;border-bottom:1px solid var(--cos-border);text-align:left;}
/* 表頭是正式欄位標題，不是 helper text。原本用 --cos-text-muted 配 muted 底，實測對比只有
   2.88:1（低於 WCAG AA 4.5:1）。改用正式文字色；helper／metadata 仍維持 muted，不是把所有
   文字一律加深。 */
.fin-dc-table thead th{background:var(--cos-surface-muted);font-weight:var(--cos-fw-label);color:var(--cos-text);position:sticky;top:0;z-index:1;}
.fin-dc-table tbody tr:last-child td{border-bottom:none;}
.fin-dc-col-sticky-left{position:sticky;left:0;background:var(--cos-surface);box-shadow:2px 0 4px rgba(16,24,40,.06);z-index:2;}
.fin-dc-table thead .fin-dc-col-sticky-left{background:var(--cos-surface-muted);z-index:3;}
.fin-dc-col-emphasis{background:var(--cos-surface-muted);border-left:1px solid var(--cos-border);}
.fin-dc-doctor-link{background:transparent;border:0;padding:0;color:var(--cos-accent);font-weight:var(--cos-fw-label);font-size:var(--cos-fs-small);font-family:inherit;cursor:pointer;}
.fin-dc-table-note{margin:var(--cos-space-sm) 0 0;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}

.fin-dc-missing{color:var(--cos-text-muted);font-style:italic;}
.fin-dc-na{color:var(--cos-text-subtle);}
.fin-dc-cannot{color:var(--cos-text-muted);font-style:italic;}
.fin-dc-disconnected{color:var(--cos-text-muted);}

.fin-dc-view-btn{height:32px;padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);background:var(--cos-surface);border:1px solid var(--cos-border);color:var(--cos-text);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);font-family:inherit;cursor:pointer;}
.fin-dc-view-btn[disabled]{opacity:.6;cursor:default;}
.fin-dc-view-btn-primary{background:var(--cos-accent);border-color:var(--cos-accent);color:#fff;}

/* Drawer (wider than the KPI widget settings drawer — 醫師明細 needs room for tables) */
.fin-dc-drawer{position:fixed;top:0;right:0;bottom:0;width:52%;min-width:640px;max-width:96vw;background:var(--cos-surface);box-shadow:var(--cos-shadow-lift);z-index:41;display:flex;flex-direction:column;padding:var(--cos-space-lg);overflow-y:auto;}
.fin-dc-drawer-meta{margin:2px 0 0;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);display:flex;align-items:center;gap:var(--cos-space-xs);flex-wrap:wrap;}
.fin-dc-drawer-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--cos-space-sm);margin:var(--cos-space-md) 0;padding:var(--cos-space-md);background:var(--cos-surface-muted);border-radius:var(--cos-radius-md);}
.fin-dc-drawer-summary > div{display:flex;flex-direction:column;gap:2px;}
.fin-dc-drawer-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--cos-border);margin-bottom:var(--cos-space-md);}
.fin-dc-drawer-tab{height:36px;padding:0 var(--cos-space-sm);border:0;border-bottom:2px solid transparent;background:transparent;color:var(--cos-text-muted);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);font-family:inherit;cursor:pointer;}
.fin-dc-drawer-tab.is-active{color:var(--cos-accent);border-bottom-color:var(--cos-accent);font-weight:var(--cos-fw-label);}
.fin-dc-drawer-body{flex:1;}

.fin-dc-tab-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cos-space-sm);margin-bottom:var(--cos-space-sm);}
.fin-dc-tab-hint{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}
.fin-dc-empty{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);padding:var(--cos-space-md) 0;}

/* Phase 2 Pack 2-3A — Daily Closing validation warnings list */
.fin-dc-warning-list{margin:0;padding-left:var(--cos-space-lg);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}
.fin-dc-warning-list li{margin-bottom:var(--cos-space-xs);}

/* Overtime/reduction modal + wizard modal share the same centered-card treatment */
.fin-dc-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:640px;max-width:92vw;max-height:86vh;overflow-y:auto;background:var(--cos-surface);box-shadow:var(--cos-shadow-lift);border-radius:var(--cos-radius-lg);z-index:41;padding:var(--cos-space-lg);}
.fin-dc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--cos-space-sm) var(--cos-space-md);margin-bottom:var(--cos-space-sm);}
.fin-dc-field{display:flex;flex-direction:column;gap:4px;font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text);}
.fin-dc-field input,.fin-dc-field select,.fin-dc-field textarea{height:var(--cos-control-height);padding:0 var(--cos-space-sm);border-radius:var(--cos-radius-sm);border:1px solid var(--cos-border);background:var(--cos-surface-muted);font-family:inherit;font-size:var(--cos-fs-body);color:var(--cos-text-muted);}
.fin-dc-field textarea{height:auto;padding:var(--cos-space-sm);resize:none;}
.fin-dc-field-wide{grid-column:1 / -1;}
.fin-dc-field-checkbox{grid-column:1 / -1;flex-direction:row;align-items:center;gap:var(--cos-space-sm);}
.fin-dc-field-checkbox input{height:18px;width:18px;flex:0 0 auto;}

/* Exception center */
.fin-dc-exception-list-wrap{display:flex;flex-direction:column;gap:var(--cos-space-sm);}
.fin-dc-exception-row{display:flex;align-items:flex-start;gap:var(--cos-space-sm);padding:var(--cos-space-sm);border:1px solid var(--cos-border);border-radius:var(--cos-radius-md);}
.fin-dc-sev-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;margin-top:5px;}
.fin-dc-sev-red{background:var(--cos-danger);}
.fin-dc-sev-yellow{background:#c9860a;}
.fin-dc-sev-blue{background:var(--cos-accent);}
.fin-dc-sev-gray{background:var(--cos-text-muted);}
.fin-dc-exception-body{flex:1;min-width:0;}
.fin-dc-exception-desc{font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}
.fin-dc-exception-meta{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);margin-top:2px;}
.fin-dc-exception-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}

/* Closing wizard */
.fin-dc-wizard{width:720px;}
.fin-dc-wizard-steps{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--cos-space-md);}
.fin-dc-wizard-step{display:flex;align-items:center;gap:var(--cos-space-sm);padding:var(--cos-space-xs) var(--cos-space-sm);border-radius:var(--cos-radius-sm);}
.fin-dc-wizard-step.is-active{background:var(--cos-accent-soft);}
.fin-dc-wizard-step-num{width:22px;height:22px;flex:0 0 auto;border-radius:50%;background:var(--cos-surface-muted);border:1px solid var(--cos-border);display:inline-flex;align-items:center;justify-content:center;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}
.fin-dc-wizard-step-title{flex:1;font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}
.fin-dc-wizard-blockers{padding-top:var(--cos-space-sm);border-top:1px solid var(--cos-border);}
.fin-dc-wizard-blockers-title{margin:0 0 var(--cos-space-xs);font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);color:var(--cos-text);}

/* ==================================================================
   收入管理 (Income Management V1, Mock UI) — reuses .fin-card/.fin-kpi-*/
   .fin-status-badge/.fin-dc-* wherever the shape already matches;
   fin-inc-* is only for markup with no existing equivalent.
   ================================================================== */

.fin-inc-filter-bar{margin-bottom:var(--cos-space-md);}

.fin-inc-grid-2x2{display:grid;grid-template-columns:1fr 1fr;gap:var(--cos-space-md);}

/* Line chart (收入趨勢) — plain inline SVG, no charting library */
.fin-inc-linechart{width:100%;height:90px;display:block;}
.fin-inc-linechart-labels{display:flex;justify-content:space-between;margin-top:var(--cos-space-xs);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text-muted);}

/* Donut chart (收入來源) — CSS conic-gradient, no charting library */
.fin-inc-donut-wrap{display:flex;align-items:center;gap:var(--cos-space-lg);}
.fin-inc-donut{width:96px;height:96px;flex:0 0 auto;border-radius:50%;}
.fin-inc-donut-legend{display:flex;flex-direction:column;gap:var(--cos-space-xs);flex:1;min-width:0;}
.fin-inc-donut-legend-row{display:flex;align-items:center;gap:var(--cos-space-xs);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text);}
.fin-inc-donut-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
.fin-inc-donut-pct{margin-left:auto;color:var(--cos-text-muted);}

.fin-inc-alert-list{display:flex;flex-direction:column;gap:var(--cos-space-sm);}
.fin-inc-alert-row{display:flex;align-items:center;gap:var(--cos-space-sm);}
.fin-inc-alert-text{font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text);}

.fin-inc-quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--cos-space-sm);}
.fin-inc-quick-card{display:flex;flex-direction:column;align-items:center;gap:var(--cos-space-xs);padding:var(--cos-space-md) var(--cos-space-sm);border-radius:var(--cos-radius-md);background:var(--cos-surface-muted);border:1px solid var(--cos-border);font-family:inherit;cursor:pointer;text-align:center;}
.fin-inc-quick-card:hover{background:var(--cos-accent-soft);border-color:var(--cos-accent-soft-border);}
.fin-inc-quick-card.is-disabled-look{opacity:.55;filter:grayscale(.6);}
.fin-inc-quick-icon{font-size:20px;line-height:1;}
.fin-inc-quick-label{font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);color:var(--cos-text);}

.fin-inc-notice{margin-bottom:var(--cos-space-md);padding:var(--cos-space-sm) var(--cos-space-md);border-radius:var(--cos-radius-md);background:var(--cos-accent-soft);border:1px solid var(--cos-accent-soft-border);color:var(--cos-accent);font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);}

/* Phase 2.1B — Reader UI states (Loading/Error/Closed-unsupported) for 銷售收入 */
.fin-inc-state-card{text-align:center;padding:var(--cos-space-xl);}
.fin-inc-state-title{font-size:var(--cos-fs-card-title);font-weight:var(--cos-fw-card-title);color:var(--cos-text);margin-bottom:var(--cos-space-sm);}
.fin-inc-state-desc{font-size:var(--cos-fs-body);font-weight:var(--cos-fw-body);color:var(--cos-text-muted);margin-bottom:var(--cos-space-md);}

/* 應收帳款 disabled state — grayscale skeleton behind a centered message veil */
.fin-inc-ar-disabled-wrap{position:relative;min-height:260px;overflow:hidden;}
.fin-inc-ar-skeleton{display:flex;flex-direction:column;gap:var(--cos-space-sm);filter:grayscale(1);opacity:.35;}
.fin-inc-ar-skeleton-row{height:36px;border-radius:var(--cos-radius-sm);background:var(--cos-surface-muted);border:1px solid var(--cos-border);}
.fin-inc-ar-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(255,255,255,.6);padding:var(--cos-space-lg);}
.fin-inc-ar-icon{font-size:32px;margin-bottom:var(--cos-space-sm);opacity:.6;}

@media (max-width:1200px){
  .fin-completeness-grid{grid-template-columns:repeat(2,minmax(120px,1fr));}
  .fin-dc-drawer-summary{grid-template-columns:repeat(3,1fr);}
  .fin-inc-quick-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:900px){
  .fin-row-2col{grid-template-columns:1fr;}
  .fin-dc-form-grid{grid-template-columns:1fr;}
  .fin-inc-grid-2x2{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .fin-kpi-grid{grid-template-columns:repeat(2,1fr);max-width:100%;}
  .fin-dc-kpi-grid{grid-template-columns:repeat(2,1fr);}
  .fin-completeness-grid{grid-template-columns:1fr;}
  .fin-sidebar{width:200px;flex-basis:200px;}
  .fin-dc-drawer{width:100%;min-width:0;}
  .fin-dc-drawer-summary{grid-template-columns:repeat(2,1fr);}
  .fin-inc-quick-grid{grid-template-columns:repeat(2,1fr);}
}

/* ---- Phase 2.1B.3 — Navigation Standard v2.0 main-system Host shell ----
   Only rendered when FinanceModule detects Host mode (not finance.html Preview, which keeps
   .fin-sidebar/.fin-nav above untouched). Breadcrumb + Workspace Tabs replace the old
   persistent full nav list — Rule 4. Scoped entirely under #financeHostRoot so it can never
   leak into or be affected by the main system's own global button/input/table styles. */
#financeHostRoot .fin-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:var(--cos-space-xs);padding:var(--cos-space-sm) 0 var(--cos-space-md);font-size:var(--cos-fs-label);font-weight:var(--cos-fw-label);}
#financeHostRoot .fin-breadcrumb-item{color:var(--cos-text-muted);}
#financeHostRoot .fin-breadcrumb-item:last-child{color:var(--cos-text);font-weight:var(--cos-fw-section-title);}
#financeHostRoot .fin-breadcrumb-sep{color:var(--cos-text-subtle);}

#financeHostRoot .fin-workspace-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--cos-space-md);margin-bottom:var(--cos-space-lg);}
#financeHostRoot .fin-workspace-header:empty{display:none;margin-bottom:0;}

#financeHostRoot .fin-back-workspace{height:var(--cos-control-height);padding:0 var(--cos-space-md);border-radius:var(--cos-radius-sm);border:1px solid var(--cos-border);background:var(--cos-surface);color:var(--cos-text-muted);font-family:inherit;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);cursor:pointer;flex:0 0 auto;}
#financeHostRoot .fin-back-workspace:hover{background:var(--cos-surface-muted);color:var(--cos-text);}

#financeHostRoot .fin-workspace-tabs{display:flex;flex-wrap:wrap;gap:var(--cos-space-xs);}
#financeHostRoot .fin-workspace-tab{height:var(--cos-control-height);padding:0 var(--cos-space-md);border-radius:var(--cos-radius-pill);border:1px solid var(--cos-border);background:var(--cos-surface);color:var(--cos-text-muted);font-family:inherit;font-size:var(--cos-fs-small);font-weight:var(--cos-fw-small);cursor:pointer;white-space:nowrap;}
#financeHostRoot .fin-workspace-tab:hover{background:var(--cos-surface-muted);color:var(--cos-text);}
#financeHostRoot .fin-workspace-tab.is-active{background:var(--cos-accent);border-color:var(--cos-accent);color:#fff;font-weight:var(--cos-fw-label);}

@media (max-width:760px){
  #financeHostRoot .fin-workspace-header{gap:var(--cos-space-sm);}
}

/* CLINICOS-V4-UAT-FIX-007 —— 新增費用表單裡的「＋ 新增自訂科目」inline 區塊。
   刻意做成費用科目下拉正下方的一小段，而不是另開視窗或多步驟精靈：建立完就回到同一張
   費用表單並自動選取，使用者不會離開原本的建立流程。全部沿用既有 fin-widget-btn／
   cos-space token，不新增設計語彙。 */
.fin-expense-new-category-btn{align-self:flex-start;margin:calc(var(--cos-space-sm) * -1) 0 0;}
.fin-expense-new-category{display:flex;flex-direction:column;gap:var(--cos-space-sm);padding:var(--cos-space-sm);border:1px dashed var(--cos-border);border-radius:var(--cos-radius-md);background:var(--cos-surface-muted,transparent);}
.fin-expense-new-category-actions{display:flex;justify-content:flex-end;gap:var(--cos-space-sm);}
.fin-expense-new-category-error{margin:0;}
