:root,:root[data-theme=light]{--color-primary: #1C1B1B;--color-primary-dark: #000000;--color-primary-light: #3A3838;--color-on-primary: #FFFFFF;--color-primary-fixed-dim: #6B6760;--color-accent: #F9B91B;--color-accent-dark: #D49C12;--color-accent-soft: #FEF9EF;--accent-ink: #8A5E1A;--color-bg: #FCF9F8;--color-surface: #FFFFFF;--color-surface-low: #F3F0EE;--color-surface-mid: #E8E4DE;--color-zebra: #F7F4F1;--color-text: #1C1B1B;--color-text-variant: #4C616C;--color-text-inverse: #FCF9F8;--color-text-muted: #6B6760;--color-border: #E5E2E1;--color-border-strong: #D4D0CB;--color-status-pending: #6B6760;--color-status-progress: #2C5282;--color-status-signed: #2D6A4F;--color-status-lost: #BA1A1A;--color-status-paused: #B45309;--color-alert-critical: #E63946;--color-error: #BA1A1A;--color-error-container: #FEF2F2;--color-on-status: #FFFFFF;--font-tc: "Taipei Sans TC Beta", "Noto Sans TC", -apple-system, "PingFang TC", "Microsoft JhengHei", sans-serif;--font-mono: "DM Mono", "JetBrains Mono", "Consolas", "Roboto Mono", monospace;--font-display-en: "Archivo Black", var(--font-tc);--fs-headline-lg: 28px;--fs-headline-md: 20px;--fs-body-lg: 16px;--fs-body-md: 14px;--fs-label-sm: 12px;--fs-data-lg: 18px;--fs-data-md: 14px;--lh-headline-lg: 40px;--lh-headline-md: 32px;--lh-body-lg: 24px;--lh-body-md: 22px;--lh-label-sm: 16px;--lh-data-lg: 24px;--lh-data-md: 20px;--row-standard: 48px;--row-dense: 40px;--gutter: 16px;--page-margin: 24px;--stack: 8px;--radius-sm: 2px;--radius: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-bar: 0 -1px 4px rgba(28,27,27,.06);--shadow-soft: 0 1px 3px rgba(28,27,27,.06), 0 4px 12px rgba(28,27,27,.04);--shadow-card: 0 1px 3px rgba(28,27,27,.07), 0 6px 18px rgba(28,27,27,.05);--brand-yellow: #F9B91B;--brand-yellow-strong: #D49C12;--brand-black: #1C1B1B;--brand-bone: #FCF9F8;--brand-fog: #D4C4AC;--warning-stripe: repeating-linear-gradient(45deg, #F9B91B 0 12px, #1C1B1B 12px 24px)}:root[data-theme=dark]{--color-primary: #FCF9F8;--color-primary-dark: #FFFFFF;--color-primary-light: #D4C4AC;--color-on-primary: #1C1B1B;--color-primary-fixed-dim: #6B6760;--color-accent: #F9B91B;--color-accent-dark: #FFCA3F;--color-accent-soft: rgba(249,185,27,.12);--accent-ink: #F9B91B;--color-bg: #1C1B1B;--color-surface: #2D2B2B;--color-surface-low: #3A3838;--color-surface-mid: #454241;--color-zebra: #353333;--color-text: #FCF9F8;--color-text-variant: #D4C4AC;--color-text-inverse: #1C1B1B;--color-text-muted: #ABA59C;--color-border: #3A3838;--color-border-strong: #4C4847;--color-status-pending: #8A857E;--color-status-progress: #5B9BD5;--color-status-signed: #6EE7B7;--color-status-lost: #FF6B6B;--color-status-paused: #FFCA3F;--color-alert-critical: #FF6B6B;--color-error: #FF6B6B;--color-error-container: rgba(255,107,107,.12);--color-on-status: #1C1B1B;--shadow-bar: 0 -1px 4px rgba(0,0,0,.4);--shadow-soft: 0 1px 3px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--shadow-card: 0 1px 3px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.4)}@font-face{font-family:Taipei Sans TC Beta;src:url(/fonts/TaipeiSansTCBeta-Light.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Taipei Sans TC Beta;src:url(/fonts/TaipeiSansTCBeta-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Taipei Sans TC Beta;src:url(/fonts/TaipeiSansTCBeta-Bold.woff2) format("woff2");font-weight:700;font-display:swap}:root{--topbar-h: 58px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;font-family:var(--font-tc);font-size:var(--fs-body-md);line-height:var(--lh-body-md);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:6px 8px;min-height:36px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--color-text-muted)}.display{font-family:var(--font-display-en);letter-spacing:.02em}.logo-mark{width:32px;height:32px;border-radius:6px;background:var(--brand-yellow);color:var(--brand-black);display:grid;place-items:center;font-weight:700;font-size:18px;flex:none}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px var(--page-margin);background:var(--brand-black);color:var(--brand-bone);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.topbar .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px}.topbar .brand small{display:block;font-weight:400;font-size:11px;color:var(--brand-fog);letter-spacing:.12em;text-transform:uppercase;font-family:var(--font-mono)}.topbar .spacer{flex:1}.topbar .select,.topbar .datebox{min-height:35px;border:1px solid #444;background:#1b1b1b;color:#fff;border-radius:8px;padding:0 10px}.topbar .datebox{color-scheme:dark}.topbar .userchip{font-size:12px;color:var(--brand-fog)}.topbar .linklike{background:none;border:1px solid #444;color:var(--brand-bone);border-radius:8px;min-height:35px;padding:0 12px}.theme-toggle{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid #444;background:#1b1b1b;color:var(--brand-bone);display:grid;place-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-weight:700}.btn:hover{background:var(--color-surface-low)}.btn.primary{background:var(--brand-yellow);border-color:var(--brand-yellow);color:var(--brand-black)}.btn.primary:hover{background:var(--color-accent-dark)}.btn.sm{min-height:32px;padding:0 10px;font-size:12px}.btn.danger{color:var(--color-error);border-color:var(--color-error);background:transparent}.btn.big{min-height:56px;font-size:18px;padding:0 24px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.light-dark{background:#1e1e1e;border-color:#555;color:#fff}.alert{padding:10px 14px;border-radius:var(--radius-md);font-size:13px;margin-top:10px;border:1px solid transparent}.alert.ok{background:#2d6a4f1a;color:var(--color-status-signed);border-color:#2d6a4f4d}.alert.warn{background:#b453091a;color:var(--color-status-paused);border-color:#b453094d}.alert.danger{background:var(--color-error-container);color:var(--color-error);border-color:#ba1a1a4d}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--color-bg)}.login .box{width:min(420px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:32px 28px;text-align:center;display:flex;flex-direction:column}.report{--brand: var(--brand-yellow);--ink: var(--color-text);--line: var(--color-border);--green: #16a34a;--ryellow: #d6a400;--red: #dc2626;background:var(--color-bg);color:var(--ink);font-size:14px}.report .page{max-width:1580px;margin:0 auto;padding:20px 24px 42px}.report .title-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.report .title-row h1{font-size:26px;margin:3px 0}.report .subtitle{color:var(--color-text-muted)}.report .title-actions{display:flex;gap:8px;align-items:center}.report .panel{background:var(--color-surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.report .kpi-wrap{padding:14px}.report .kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}.report .dept-card{border:1.5px solid var(--color-border-strong);border-radius:14px;overflow:hidden;background:var(--color-surface);min-width:0;height:330px;display:flex;flex-direction:column}.report .dept-head{height:58px;background:var(--brand-black);color:#fff;padding:0 18px;display:flex;align-items:center;justify-content:space-between}.report .dept-head h3{font-size:21px;margin:0}.report .dept-badge{background:var(--brand-yellow);color:var(--brand-black);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:800}.report .compact-body{position:relative;display:block;height:272px;padding:0}.report .total-area{position:absolute;left:0;top:0;width:34%;height:100%;display:block}.report .total-area .num{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;text-align:center;font-family:var(--font-mono);font-size:96px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.report .total-area .unit{position:absolute;left:calc(50% + 58px);top:calc(50% + 32px);transform:translateY(-50%);margin:0;text-align:left;font-size:14px;font-weight:700;line-height:1}.report .category-area{position:absolute;left:34%;right:0;top:0;bottom:0;border-left:1px solid var(--line);padding:8px 0 8px 20px;display:flex;align-items:center;overflow:hidden}.report .dynamic-tags{display:flex;gap:10px;flex-wrap:wrap;align-content:center;align-items:center;max-height:230px;overflow:auto;padding-right:4px}.report .dynamic-tag{min-width:96px;max-width:150px;min-height:72px;border-radius:18px;padding:10px 14px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;font-size:14px;color:#3d4654;border:1px solid transparent;flex:0 1 auto}.report .dynamic-tag .tag-label{line-height:1.25;white-space:normal;word-break:keep-all}.report .dynamic-tag b{color:#1c1b1b;margin-top:8px;font-size:24px;line-height:1;font-weight:800;display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.report .dynamic-tag.tag-1{background:#e9e1f7;border-color:#d9caef}.report .dynamic-tag.tag-2{background:#dfeaf8;border-color:#cbdcf1}.report .dynamic-tag.tag-3{background:#dff1e7;border-color:#cae6d6}.report .dynamic-tag.tag-4{background:#f8efd8;border-color:#eedfb9}.report .dynamic-tag.tag-5{background:#e3edf0;border-color:#cedde2}.report .dynamic-empty{color:var(--color-text-muted)}.report .finance-body{display:grid;grid-template-columns:1fr 1fr;height:272px;flex:1}.report .finance-side{position:relative;min-width:0;height:272px;padding:0;overflow:hidden}.report .finance-side+.finance-side{border-left:2px solid var(--line)}.report .finance-left{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.report .finance-left h4{position:absolute;top:18px;left:18px;font-size:18px;margin:0}.report .finance-count{position:absolute;left:0;top:57%;transform:translateY(-50%);width:34%;display:flex;align-items:baseline;justify-content:center;gap:8px}.report .finance-count strong{font-family:var(--font-mono);font-size:96px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.report .finance-count span{font-size:14px;font-weight:700;line-height:1}.report .finance-metrics{position:absolute;left:33%;top:57%;transform:translateY(-50%);width:61%;display:grid;gap:14px;align-content:center;padding:0}.report .money-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:end;min-width:0}.report .money-label{font-size:14px;color:var(--color-text-muted);white-space:nowrap}.report .line-input{height:28px;width:100%;min-width:0;max-width:100%;border:0;border-bottom:1px solid var(--color-border-strong);border-radius:0;outline:none;text-align:center;font-size:16px;font-weight:800;background:transparent;overflow:hidden;font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:0 4px;min-height:0;color:var(--ink)}.report .line-input:focus{border-color:var(--brand-yellow-strong);background:var(--color-accent-soft)}.report .line-output{height:28px;width:100%;min-width:0;max-width:100%;border-bottom:1px solid var(--color-border-strong);display:flex;justify-content:center;align-items:center;font-size:16px;font-weight:800;overflow:hidden;white-space:nowrap;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.report .cashflow-body{height:272px;flex:1;padding:18px 20px 16px;display:flex;flex-direction:column}.report .cashflow-head-balance{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:390px;max-width:48%;color:#fff;font-size:15px;font-weight:800}.report .cashflow-head-balance .label{white-space:nowrap}.report .cashflow-bank-input{width:230px;max-width:100%;height:32px;border:0;border-bottom:1px solid #8a8f97;border-radius:0;background:transparent;outline:none;padding:0 4px;text-align:center;font-size:18px;font-weight:800;color:#fff;font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-height:0}.report .cashflow-bank-input::placeholder{color:#b8bec7}.report .cashflow-bank-input:focus{border-bottom-color:var(--brand-yellow);background:#ffffff14}.report .cashflow-table-wrap{flex:1;min-height:0;overflow:hidden}.report .cashflow-table{width:100%!important;min-width:0!important;height:100%;border-collapse:collapse!important;border-spacing:0!important;table-layout:fixed;font-size:15px;color:var(--ink)}.report .cashflow-table th,.report .cashflow-table td{padding:0 8px;text-align:center;vertical-align:middle;color:var(--ink);background:var(--color-surface);border-bottom:1px solid var(--color-border-strong);border-right:1px solid var(--color-border-strong)}.report .cashflow-table th:last-child,.report .cashflow-table td:last-child{border-right:0}.report .cashflow-table thead tr.group-header th{height:38px;font-size:16px;font-weight:800;border-top:0}.report .cashflow-table thead tr.column-header th{height:42px;font-size:15px;font-weight:800}.report .cashflow-table tbody tr{height:50px}.report .cashflow-table tbody tr:last-child td{border-bottom:0}.report .cashflow-cell-input{width:100%;height:36px;border:0;border-radius:0;background:transparent;outline:none;text-align:center;font-family:var(--font-mono);font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink);padding:0 6px;min-height:0}.report .cashflow-cell-input:focus{background:var(--color-accent-soft)}.report .cashflow-cell-input::placeholder{color:var(--color-text-muted);font-weight:500;font-size:8px}.report .cashflow-readout,.report .cashflow-auto-cell{font-family:var(--font-mono);font-size:16px;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2}.report .negative{color:var(--color-error)!important}.report .tables-stack{display:grid;gap:16px;margin-top:16px}.report .dept-table-panel{background:var(--color-surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.report .dept-table-head{height:52px;background:var(--brand-black);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 18px}.report .dept-table-head h3{margin:0;font-size:18px}.report .dept-table-actions{display:flex;gap:8px}.report .dept-table-actions .btn{min-height:32px}.report .toolbar{padding:10px 12px;background:var(--color-surface-low);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.report .toolbar-left{display:flex;gap:8px;align-items:center}.report .input,.report .filter{height:34px;min-height:34px;border:1px solid var(--color-border-strong);border-radius:7px;background:var(--color-surface);padding:0 9px;text-align:center}.report .filter{text-align-last:center}.report .input{min-width:260px}.report .table-wrap{overflow:auto}.report .table-wrap table:not(.cashflow-table){border-collapse:separate;border-spacing:0;table-layout:fixed}.report .table-wrap table:not(.finance-table):not(.cashflow-table){width:1530px;min-width:1530px;max-width:1530px}.report .table-wrap table.finance-table{width:1760px;min-width:1760px;max-width:1760px;table-layout:fixed}.report thead th{background:var(--brand-black);color:#fff;padding:10px 8px;text-align:center;border-right:1px solid #343434;white-space:nowrap;font-weight:700}.report tbody td{padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--color-surface);vertical-align:middle;overflow:hidden}.report tbody tr:hover td{background:var(--color-accent-soft)}.report .col-no{width:58px}.report .col-case{width:120px}.report .col-owner{width:105px}.report .col-abn{width:170px}.report .col-risk{width:100px}.report .col-period{width:110px}.report .col-amount{width:150px}.report .col-over{width:100px}.report .col-summary{width:300px}.report .col-date{width:140px}.report .col-note{width:220px}.report .cell-edit,.report .manual-box{width:100%;max-width:100%;min-width:0;min-height:34px;border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 7px;outline:none;background:var(--color-surface);text-align:center;overflow:hidden}.report .cell-edit{border-color:transparent;background:transparent}.report .cell-edit:focus,.report .manual-box:focus{border-color:var(--brand-yellow-strong);background:var(--color-accent-soft)}.report .money-edit{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.report textarea.cell-edit{resize:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-align:left;display:block;line-height:1.5}.report td:has(textarea.cell-edit){text-align:left;vertical-align:top}.report .abnormal-select,.report .date-input{height:32px;min-height:32px;width:100%;max-width:100%;min-width:0;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-surface);padding:0 6px;text-align:center;text-align-last:center}.report .readonly-cell{color:var(--ink);text-align:center;font-weight:700}.report .overdue-cell{font-variant-numeric:tabular-nums;font-family:var(--font-mono);text-align:center}.report .risk-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:64px;padding:5px 8px;border-radius:999px;font-weight:800;font-size:12px}.report .risk-chip.normal{background:#ecfdf3;color:#087a35}.report .risk-chip.yellow{background:#fff8d8;color:#956f00}.report .risk-chip.red{background:#feecec;color:#b42318}.report .risk-chip.none{background:#f3f4f6;color:#7a8390}.report .risk-light{width:8px;height:8px;border-radius:50%;background:currentColor}.report .helper{font-size:12px;color:var(--color-text-muted);padding:9px 12px;background:var(--color-surface-low);border-top:1px solid var(--line)}.report .drawer{position:fixed;right:-460px;top:0;width:440px;height:100vh;background:var(--color-surface);z-index:50;box-shadow:-8px 0 30px #0000002e;transition:right .2s;display:flex;flex-direction:column}.report .drawer.open{right:0}.report .drawer-head{height:62px;background:var(--brand-black);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-weight:800}.report .drawer-close{border:0;background:transparent;color:#fff;font-size:22px;cursor:pointer}.report .drawer-body{padding:16px 18px;overflow:auto}.report .def-group{margin-bottom:18px}.report .def-group h3{margin:0 0 6px;font-size:15px}.report .def-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.report .def-row span{color:var(--color-text-muted)}.report .overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000047;z-index:40}.report .overlay.show{display:block}.report .overall-panel{background:var(--color-surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:14px}.report .overall-head{height:52px;background:var(--brand-black);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.report .overall-head h2{margin:0;font-size:20px;font-weight:800}.report .overall-head .overall-note{font-size:12px;color:#c8ccd2}.report .overall-grid{display:grid;grid-template-columns:repeat(4,1fr);min-height:126px}.report .overall-kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;padding:16px 12px}.report .overall-kpi+.overall-kpi{border-left:1px solid var(--line)}.report .overall-label{font-size:15px;font-weight:700;color:var(--color-text-variant)}.report .overall-value{font-family:var(--font-mono);font-size:38px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink);text-align:center}.report .overall-input{width:150px;height:42px;min-height:0;border:0;border-bottom:1px solid var(--color-border-strong);border-radius:0;background:transparent;outline:none;text-align:center;font-family:var(--font-mono);font-size:38px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}.report .overall-input::placeholder{font-size:13px;font-weight:500;color:var(--color-text-muted)}.report .overall-input:focus{border-bottom-color:var(--brand-yellow-strong);background:var(--color-accent-soft)}.report .history-block{border-top:1px solid var(--line);padding:16px 18px 18px}.report .combo-block{display:block;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--color-surface);margin-bottom:14px}.report .combo-chart-wrap{padding:16px 18px 18px}.report .combo-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.report .combo-chart-title h3{margin:0;font-size:16px;color:var(--color-text-variant)}.report .combo-legend{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:flex-end}.report .combo-legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-variant);font-weight:700}.report .combo-legend i{display:inline-block}.report .lg-bar-total{width:12px;height:12px;border-radius:3px;background:var(--brand-yellow)}.report .lg-bar-abnormal{width:12px;height:12px;border-radius:3px;background:var(--color-surface-mid)}.report .lg-line-collection,.report .lg-line-payment{width:18px;height:0;border-top-width:3px;border-top-style:solid;position:relative}.report .lg-line-collection{border-top-color:var(--brand-yellow-strong);color:var(--brand-yellow-strong)}.report .lg-line-payment{border-top-color:var(--color-primary);color:var(--color-primary)}.report .lg-line-collection:after,.report .lg-line-payment:after{content:"";position:absolute;right:-1px;top:-4px;width:7px;height:7px;border-radius:50%;background:currentColor}.report .combo-chart-canvas{width:100%;height:380px;border:1px solid var(--line);border-radius:14px;background:var(--color-surface);overflow:hidden}.report .combo-chart-canvas svg{display:block;width:100%;height:100%}.report .stats-grid{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--color-surface)}.report .stats-grid-head{display:flex;align-items:center;justify-content:flex-start;padding:14px 16px 12px;border-bottom:1px solid var(--line)}.report .stats-grid-head h3{margin:0;font-size:15px;color:var(--color-text-variant)}.report .stats-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.report .stats-table th,.report .stats-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 8px;text-align:center;vertical-align:middle;background:var(--color-surface)}.report .stats-table thead th{background:var(--color-surface-low);font-size:13px;font-weight:800;color:var(--color-text-variant)}.report .stats-table th.metric-name{width:150px;background:var(--color-surface-low);color:var(--ink);font-weight:800}.report .stats-table td:last-child,.report .stats-table th:last-child{border-right:0}.report .stats-table tr:last-child td,.report .stats-table tr:last-child th{border-bottom:0}.report .stats-note-good{color:var(--color-status-signed);font-weight:800}.report .stats-note-mid{color:var(--color-status-paused);font-weight:800}.report .stats-note-bad{color:var(--color-error);font-weight:800}.report .stats-note-neutral{color:var(--color-text-muted);font-weight:700}.report .stats-table tbody tr:nth-child(2n) td,.report .stats-table tbody tr:nth-child(2n) th{background:var(--color-zebra)}.report .save-status{font-size:12px;color:var(--color-text-muted);min-width:64px;text-align:right}.report .save-status.saving{color:var(--color-status-paused)}.report .save-status.error{color:var(--color-error)}.report .readonly-banner{margin:0 0 12px}@media(max-width:1180px){.report .overall-grid{grid-template-columns:repeat(2,1fr)}.report .overall-kpi:nth-child(3){border-left:0;border-top:1px solid var(--line)}.report .overall-kpi:nth-child(4){border-top:1px solid var(--line)}}@media(max-width:760px){.report .page{padding:14px}.report .kpi-grid,.report .finance-body{grid-template-columns:1fr}.report .finance-side+.finance-side{border-left:0;border-top:2px solid var(--line)}.report .title-row{align-items:flex-start;gap:12px;flex-direction:column}.report .overall-grid{grid-template-columns:1fr}.report .overall-kpi+.overall-kpi{border-left:0;border-top:1px solid var(--line)}.report .combo-chart-head,.report .stats-grid-head{flex-direction:column;align-items:flex-start}.report .combo-chart-canvas{height:360px}.report .cashflow-body{height:auto;min-height:272px;padding:16px}.report .cashflow-head-balance{min-width:0;max-width:58%;gap:6px}.report .cashflow-bank-input{width:120px}}@media print{@page{size:A3 landscape;margin:6mm}html,body{background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{zoom:.74!important}.topbar,.title-actions,.report .drawer,.report .overlay,.report .dept-table-actions,.report .toolbar,.report .readonly-banner{display:none!important}.report .page{width:1580px!important;max-width:1580px!important;margin:0 auto!important;padding:10px 20px 24px!important}.report .title-row{margin:0 0 8px!important;min-height:34px!important}.report .title-row h1{font-size:24px!important;margin:0!important;line-height:1.2!important}.report .overall-panel{margin-bottom:10px!important;break-inside:avoid!important;page-break-inside:avoid!important}.report .overall-head{height:42px!important;padding:0 14px!important}.report .overall-head h2{font-size:18px!important}.report .overall-grid{min-height:86px!important;grid-template-columns:repeat(4,1fr)!important}.report .overall-kpi{padding:8px 10px!important;gap:5px!important}.report .overall-label{font-size:13px!important}.report .overall-value,.report .overall-input{font-size:31px!important;height:36px!important}.report .history-block{display:block!important;padding:8px 10px 10px!important}.report .combo-block{display:block!important;break-inside:avoid!important;margin-bottom:8px!important}.report .combo-chart-wrap{padding:8px 10px 10px!important}.report .combo-chart-head{margin-bottom:4px!important}.report .combo-chart-title h3{font-size:14px!important}.report .combo-legend{gap:4px 9px!important}.report .combo-legend span{font-size:10px!important}.report .combo-chart-canvas{height:190px!important;border-radius:10px!important}.report .stats-grid{break-inside:avoid!important}.report .stats-grid-head{padding:8px 12px!important}.report .stats-grid-head h3{font-size:13px!important}.report .stats-table{font-size:11px!important}.report .stats-table th,.report .stats-table td{padding:4px 6px!important;height:24px!important}.report .stats-table thead th{font-size:11px!important}.report .panel,.report .dept-table-panel{break-inside:avoid!important;page-break-inside:avoid!important;box-shadow:none!important}.report .kpi-wrap{padding:8px!important}.report .kpi-grid{grid-template-columns:1fr 1fr!important;gap:6px!important}.report .dept-card{height:240px!important}.report .dept-head{height:48px!important;padding:0 14px!important}.report .dept-head h3{font-size:18px!important}.report .dept-badge{padding:6px 12px!important;font-size:12px!important}.report .finance-body,.report .compact-body,.report .cashflow-body{height:192px!important}.report .cashflow-body{padding:8px 12px 10px!important}.report .cashflow-table{font-size:12px!important}.report .cashflow-table thead tr.group-header th{height:30px!important;font-size:13px!important}.report .cashflow-table thead tr.column-header th{height:30px!important;font-size:12px!important}.report .cashflow-table tbody tr{height:36px!important}.report .cashflow-cell-input{height:28px!important;font-size:12px!important}.report .tables-stack{break-before:page!important;page-break-before:always!important;margin-top:0!important;gap:12px!important}.report .dept-table-panel{break-inside:avoid!important;page-break-inside:avoid!important;box-shadow:none!important}.report .table-wrap{overflow:visible!important}.report .table-wrap table:not(.finance-table):not(.cashflow-table){width:1530px!important;min-width:1530px!important;max-width:1530px!important;font-size:14px!important}.report .table-wrap table.finance-table{width:1760px!important;min-width:1760px!important;max-width:1760px!important;font-size:14px!important}.report thead th{padding:10px 8px!important}.report tbody td{padding:8px!important}.report .abnormal-select,.report .date-input{border:1px solid #d8dadd!important;background:#fff!important;-moz-appearance:auto!important;appearance:auto!important;-webkit-appearance:auto!important;font-size:14px!important}.report .manual-box,.report .cell-edit{border:1px solid #d8dadd!important;padding:7px 8px!important;min-height:34px!important}.report .risk-chip{padding:5px 8px!important;font-size:12px!important;min-width:64px!important}}
