.clinic-expenses,.clinic-expense-dialog,.expense-home-card{font-family:var(--ff-sans, -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif);color:var(--t-strong,#1A1D28)}
.clinic-expenses *,.clinic-expense-dialog *{box-sizing:border-box}
.clinic-expenses button,.clinic-expense-dialog button{font:inherit;cursor:pointer;touch-action:manipulation}
.clinic-expenses button:disabled,.clinic-expense-dialog button:disabled{cursor:wait;opacity:.65}
.clinic-expenses{max-width:1080px;margin:0 auto;padding-bottom:24px}
.expense-heading-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}
.expense-heading-copy{flex:1;min-width:0}
.expense-heading-row h2{font-size:1.25rem;font-weight:650;margin:0;line-height:1.4}
.expense-heading-row p{color:var(--t-muted,#727680);font-size:.8125rem;margin:4px 0 0}
.expense-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border:1px solid var(--bd-default,#D4D6DC);border-radius:var(--r-md,12px);background:var(--bg-subtle,#F5F6F9);color:var(--t-base,#383C4A);white-space:nowrap;font-weight:600!important;transition:all var(--tr-fast,150ms ease)}
.expense-primary{background:linear-gradient(135deg,var(--p-500,#4F78BE),var(--p-600,#3D5F9A));border-color:transparent;color:#fff;box-shadow:0 2px 8px rgba(79,120,190,.25)}
.expense-button:active{transform:scale(.96)}
@media(hover:hover){.expense-primary:hover{box-shadow:0 4px 16px rgba(79,120,190,.35);transform:translateY(-1px)}.expense-button:not(.expense-primary):hover{background:var(--bg-page,#EFF0F5);border-color:var(--bd-strong,#BFC1C8)}}
.expense-month-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;margin-bottom:0;border-bottom:1px solid var(--bd-subtle,#E8E9ED)}
.expense-month-picker{display:flex;align-items:center;gap:4px}
.expense-month-picker .expense-month-trigger{width:auto;min-width:0;min-height:40px;padding:8px 10px;gap:8px;background:var(--bg-subtle,#F5F6F9)}
.expense-month-trigger .picker-name{font-size:.875rem;white-space:nowrap}
.expense-current-month{font-size:.8125rem!important;padding:8px 12px;min-height:40px;flex:none}
.expense-icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--bg-subtle,#F5F6F9);color:var(--t-muted,#727680);width:40px;min-height:40px;padding:6px;border-radius:var(--r-full,9999px);transition:all var(--tr-fast)}
.expense-text-button{border:0;background:transparent;color:var(--p-600,#3D5F9A);padding:6px 0;min-height:34px;white-space:nowrap}
.expense-muted{color:var(--t-muted,#727680);font-size:.8125rem}
.expense-small{font-size:.75rem;color:var(--t-muted,#727680);font-weight:400}
.expense-number{font-family:inherit;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.expense-summary{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:22px 32px;align-items:center;background:#fff;border:1px solid var(--bd-subtle,#E8E9ED);border-radius:var(--r-xl,20px);box-shadow:var(--sh-sm);padding:20px 24px 24px;margin-bottom:20px}
.expense-total{white-space:normal;overflow-wrap:anywhere;color:var(--t-strong,#1A1D28);font-size:2.125rem;line-height:1.3;letter-spacing:-.025em;margin:6px 0}
.expense-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:var(--bg-subtle,#F5F6F9);border-radius:var(--r-md,12px);padding:18px}
.expense-category-total{min-width:0}
.expense-category-total .expense-number{font-size:1.0625rem;margin-top:8px;overflow-wrap:anywhere;white-space:normal}
.expense-ledger{background:#fff;border:1px solid var(--bd-subtle,#E8E9ED);border-radius:var(--r-xl,20px);box-shadow:var(--sh-sm);overflow:hidden}
.expense-ledger-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--bd-subtle,#E8E9ED)}
.expense-ledger-header h3{font-size:.9375rem;font-weight:600;margin:0}
.expense-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}
.expense-table th{background:var(--bg-subtle,#F5F6F9);color:var(--t-muted,#727680);font-size:.75rem;font-weight:500;padding:11px 22px}
.expense-table th:first-child{width:19%}.expense-table th:nth-child(2){width:14%}.expense-table th:nth-child(4){width:21%}.expense-table th:last-child{width:12%}
.expense-table td{padding:16px 22px;border-bottom:1px solid var(--bd-subtle,#E8E9ED);font-size:.875rem}
.expense-table tr:last-child td{border-bottom:0}.expense-table .expense-money{text-align:right}
.expense-note{color:var(--t-muted,#727680);overflow-wrap:anywhere}
.expense-pill{display:inline-flex;align-items:center;padding:3px 11px;border-radius:20px;font-size:.75rem;background:var(--p-50,#EDF1F9);color:var(--p-600,#3D5F9A);white-space:nowrap}
.expense-pill.expense-life{background:var(--g-50,#EDF2F0);color:var(--g-600,#477062)}
.expense-payment-badge{display:inline-flex;align-items:center;vertical-align:middle;padding:2px 7px;border-radius:var(--r-xs,6px);font-size:.6875rem;font-weight:500;line-height:1.6;background:var(--payment-background,#F6EFE5);color:var(--payment-color,#8B7760);white-space:nowrap}
.expense-payment-wechat{--payment-color:#447860;--payment-background:#E3F4EA}
.expense-payment-alipay{--payment-color:#466B9A;--payment-background:#E3EFFC}
.expense-payment-bank{--payment-color:#736489;--payment-background:#EEE9F7}
.expense-payment-unknown{--payment-color:#8B7760;--payment-background:#F6EFE5}
.expense-table td:nth-child(2)>.expense-payment-badge{margin:5px 0 0 5px}
.expense-row-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.expense-payment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.expense-payment-option{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border:1px solid var(--bd-default);border-radius:var(--r-md);min-height:44px;font-size:.875rem;cursor:pointer;transition:all var(--tr-fast)}
.expense-payment-option.is-selected{border-color:var(--payment-color);color:var(--payment-color);background:var(--payment-background)}
.expense-payment-option input{width:16px;height:16px;accent-color:var(--payment-color);margin:0}
.expense-payment-option:focus-within{outline:2px solid var(--payment-color);outline-offset:2px}
.expense-payment-default{display:flex;align-items:center;gap:10px;min-height:40px}
.expense-empty{display:flex;align-items:center;justify-content:center;gap:14px;padding:40px 20px;color:var(--t-muted,#727680);font-size:.875rem;text-align:left}.expense-empty p{margin:0 0 6px;color:var(--t-base,#383C4A);font-weight:500}.expense-empty-icon{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;border-radius:12px;background:var(--bg-subtle,#F5F6F9);color:var(--t-placeholder,#9A9EA6);font-size:18px}
.expense-error-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-radius:12px;background:var(--a-50,#F7F0F2);color:var(--a-600,#8C4859);padding:10px 14px;margin-bottom:14px;font-size:.875rem}
.expense-mobile-list,.expense-mobile-footer{display:none}
.expense-back{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;border:0;border-radius:8px;background:transparent;color:var(--p-600,#3D5F9A);padding:10px 4px;min-height:44px;white-space:nowrap;font-size:.8125rem!important}
.expense-back:active{background:var(--p-50,#EDF1F9)}
.expense-back:focus-visible{outline:2px solid var(--p-500,#4F78BE);outline-offset:3px}
.expense-brand{color:var(--t-muted,#727680);font-size:.75rem}
.expense-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:16000;padding:12px 20px;border-radius:12px;color:var(--t-strong,#1A1D28);background:#fff;box-shadow:0 6px 24px #19203226;border:1px solid var(--bd-subtle,#E8E9ED);font-size:.875rem;white-space:nowrap}
.clinic-expense-overlay{z-index:15000}
.clinic-expense-dialog{max-width:420px;font-family:var(--ff-sans);color:var(--t-strong)}
.clinic-expense-picker-overlay{z-index:15010;font-family:var(--ff-sans)}
.expense-picker-dialog{max-width:360px}
.expense-picker-dialog .dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;text-align:center;font-size:.75rem;font-weight:700;color:var(--t-muted)}
.expense-picker-dialog .dp-cell.dp-sel:hover{background:var(--p-500);color:#fff}
.expense-picker-dialog .expense-month-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.expense-month-grid .dp-cell{border-radius:var(--r-md);min-height:44px}
.expense-picker-close{display:block;margin:14px auto 0;min-height:40px}
.expense-picker-dialog .cal-l-enter-active,.expense-picker-dialog .cal-l-leave-active,.expense-picker-dialog .cal-r-enter-active,.expense-picker-dialog .cal-r-leave-active{transition:opacity .18s ease,transform .18s ease}
.expense-picker-dialog .cal-l-enter-from,.expense-picker-dialog .cal-r-leave-to{opacity:0;transform:translateX(24px)}
.expense-picker-dialog .cal-l-leave-to,.expense-picker-dialog .cal-r-enter-from{opacity:0;transform:translateX(-24px)}
.expense-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.expense-dialog-header h3{display:flex;align-items:center;gap:10px}
.expense-dialog-header h3::before{content:'';width:3px;height:20px;border-radius:var(--r-full);background:linear-gradient(180deg,var(--g-500),var(--g-600))}
.expense-mobile-dialog .expense-dialog-header h3::before{background:var(--p-500)}
.expense-dialog-header .expense-icon-button{width:32px;min-height:32px;font-size:.875rem}
.clinic-expense-dialog h3{font-size:1.125rem;font-weight:700;margin:0}
.expense-field{margin-bottom:16px}.expense-field>label{display:block;font-size:.8125rem;color:var(--t-muted,#727680);margin-bottom:7px}
.expense-field>input{display:block;width:100%;min-width:0;font:inherit;padding:10px 16px;border:1.5px solid var(--bd-default,#D4D6DC);border-radius:var(--r-md,12px);min-height:46px;background:var(--bg-surface,#fff);color:var(--t-strong,#1A1D28);transition:all var(--tr-fast)}
.expense-field>input:focus{border-color:var(--g-500);box-shadow:0 0 0 4px rgba(90,138,122,.15);outline:none}
.expense-field .picker-name{flex:1;text-align:left}
.expense-field .picker-caret{margin-left:auto;color:var(--t-placeholder);font-size:.75rem}
.expense-amount-input{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bd-subtle,#E8E9ED)}
.expense-amount-input>span{font-size:1.5rem;color:var(--t-muted,#727680)}
.expense-amount-input>input{border:0;background:transparent;width:100%;min-width:0;font-size:2rem;font-family:inherit;font-variant-numeric:tabular-nums;padding:8px 0;color:var(--t-strong,#1A1D28)}
.expense-category-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.expense-category-buttons>button{min-height:44px;border:1px solid var(--bd-default,#D4D6DC);border-radius:12px;padding:10px 8px;color:var(--t-base,#383C4A);background:#fff}
.expense-category-buttons>button[aria-pressed=true]{background:var(--p-50,#EDF1F9);border-color:var(--p-500,#4F78BE);color:var(--p-600,#3D5F9A);font-weight:600}
.expense-copy-rent{display:block;margin-top:9px;padding:8px 11px;background:var(--p-50,#EDF1F9);color:var(--p-600,#3D5F9A);border:0;border-radius:9px;font-size:.75rem!important}
.expense-form-actions{display:flex;gap:10px;margin-top:20px}.expense-form-actions .expense-button{flex:1}
.expense-delete-link{text-align:center;margin-top:10px}.expense-danger{color:var(--a-600,#8C4859)!important}.expense-form-error{color:var(--a-600,#8C4859);font-size:.8125rem;margin:10px 0}
.expense-delete-description{font-size:.875rem;margin:16px 0;color:var(--t-muted,#727680)}
.expense-home-card{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;width:100%;border:1px solid var(--bd-subtle,#E8E9ED);background:#fff;border-radius:18px;padding:18px 22px;cursor:pointer;margin:18px 0 24px;font:inherit}
.expense-home-label{display:block;font-size:.8125rem;color:var(--t-muted,#727680)}
.expense-home-icon{display:none}
.expense-home-amount{display:block;margin-top:3px;font-size:1.5rem;font-weight:700;font-family:var(--ff-mono,Consolas,monospace);font-variant-numeric:tabular-nums;color:var(--p-600,#3D5F9A)}
.expense-home-link{font-size:.8125rem;color:var(--p-600,#3D5F9A);white-space:nowrap}
@media(max-width:768px){
  .clinic-expenses{padding:0 0 100px}.expense-mobile-page{padding-left:12px;padding-right:12px}.expense-heading-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);margin-bottom:12px;gap:8px;min-height:44px}.expense-heading-row h2{font-size:1.0625rem}.expense-heading-row p{display:none}.expense-heading-copy{text-align:center}.expense-back{justify-self:start}.expense-desktop-add,.expense-heading-spacer{justify-self:end}
  .expense-desktop-add{visibility:hidden;pointer-events:none;padding:0;width:0;overflow:hidden}.expense-summary{grid-template-columns:minmax(0,1fr);gap:18px;padding:16px;margin-bottom:16px}
  .expense-month-row{padding-bottom:12px;gap:4px}.expense-month-picker{gap:0}.expense-month-picker .expense-month-trigger{padding:8px;gap:6px}.expense-month-picker .expense-icon-button{width:30px;min-height:40px;font-size:.75rem}.expense-current-month{padding:8px 10px}
  .expense-total-block{grid-column:1/-1}.expense-total{font-size:2rem}.expense-category-grid{gap:8px;padding:14px 12px}
  .expense-category-total .expense-number{font-size:.875rem;letter-spacing:-.025em;margin-top:6px}.expense-category-total .expense-muted{font-size:.75rem}
  .expense-table{display:none}.expense-mobile-list{display:block}.expense-ledger-header{padding:14px 16px}
  .expense-mobile-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bd-subtle,#E8E9ED)}.expense-mobile-row:last-child{border:0}
  .expense-row-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;background:var(--p-50,#EDF1F9);color:var(--p-600,#3D5F9A);border-radius:10px;font-size:.8125rem}.expense-row-life{background:var(--g-50,#EDF2F0);color:var(--g-600,#477062)}
  .expense-row-detail{min-width:0;flex:1}.expense-row-name{font-size:.875rem;font-weight:600;margin-bottom:4px}.expense-row-detail .expense-note{line-height:1.5}
  .expense-row-amount{flex:none;text-align:right;max-width:50%}.expense-row-amount>.expense-number{font-size:.9375rem;white-space:normal;overflow-wrap:anywhere}.expense-row-amount>.expense-text-button{font-size:.6875rem;min-height:30px;padding:4px 0 0}
  .expense-empty{padding:30px 16px;gap:12px;font-size:.8125rem}.expense-empty-icon{width:38px;height:38px}.expense-empty .expense-small{font-size:.6875rem}
  .expense-mobile-footer{display:block;position:fixed;left:0;right:0;bottom:0;padding:12px 16px max(16px,env(safe-area-inset-bottom));background:var(--bg-base,#EFF0F5);z-index:9100}
  .expense-mobile-footer>.expense-button{width:100%;min-height:46px}
  .expense-field>input{font-size:16px}.expense-toast{top:16px}
  .expense-home-card{display:grid;grid-template-columns:34px minmax(0,1fr) max-content 12px;align-items:center;gap:10px;padding:13px 16px;min-height:62px;border-radius:var(--r-lg,16px);margin:14px 0 20px;box-shadow:var(--sh-xs,0 1px 2px rgba(20,25,40,.03));transition:background .15s ease}
  .expense-home-card:active{background:var(--p-50,#EDF1F9)}
  .expense-home-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--p-50,#EDF1F9);color:var(--p-600,#3D5F9A);border-radius:10px;font-size:14px}
  .expense-home-copy{display:contents}
  .expense-home-label{font-size:.875rem;font-weight:500;color:var(--t-base,#383C4A);white-space:nowrap}
  .expense-home-amount{font-family:inherit;font-size:1rem;font-weight:600;color:var(--t-strong,#1A1D28);margin:0;letter-spacing:-.015em;white-space:nowrap}
  .expense-home-link{font-size:10px;color:var(--t-placeholder,#9A9EA6);text-align:right}
  .expense-home-link-text{display:none}
}
@media(prefers-reduced-motion:reduce){.clinic-expenses *,.clinic-expense-dialog,.clinic-expense-dialog *,.clinic-expense-overlay,.clinic-expense-picker-overlay,.expense-picker-dialog,.expense-picker-dialog *{animation:none!important;transition:none!important}}

.expense-row-icon svg,.expense-empty-icon svg{width:20px;height:20px;display:block;flex:none}
@media(max-width:360px){.expense-month-picker .expense-month-trigger{padding:8px 5px;gap:4px}.expense-month-picker .expense-icon-button{width:26px}.expense-current-month{padding-left:6px;padding-right:6px}}
