/**
 * V22 共用业务详情样式：增值服务、状态补充字段、文件清单与日期布局。
 * 只使用 index.html 定义的颜色变量，保证预约/新单/保单抽屉风格一致。
 */
.v22-service{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:14px;min-width:0}
.v22-service legend{font-weight:700;color:var(--teal);padding:0 6px}
.v22-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.v22-service-grid input,.v22-service-grid select{width:100%;min-width:0}
.v22-wide{grid-column:1/-1}
[data-service-details][hidden],[data-row-fields][hidden]{display:none!important}
.appointment-form-v2 .appointment-v2-service-head select{height:40px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--ink);font:inherit}
.appointment-form-v2 .appointment-v2-grid>.field{min-width:0}
.appointment-form-v2 .appointment-v2-grid>.field>input,.appointment-form-v2 .appointment-v2-grid>.field>select{width:100%;min-width:0;height:43px;box-sizing:border-box}
.v22-status-fields{grid-column:1/-1;border-top:1px solid var(--line);padding-top:15px;display:grid;gap:12px}
/* 資料頁前四項兩兩並列；狀態區的生效日期及文件維持原容器與網格。 */
#drawer.lead-wizard .v22-status-fields{border-top:0;padding-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px}
#drawer.lead-wizard .v22-status-fields>[data-activation-dates],#drawer.lead-wizard .v22-status-fields>[data-status-error]{grid-column:1/-1}
.v22-status-fields [data-activation-dates]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#supabase-case-status-form [data-activation-dates],#v22-status-dialog [data-activation-dates]{grid-template-columns:1fr}
.v22-status-fields [hidden],.v22-service [hidden],[data-add-service][hidden],[data-services-loading][hidden]{display:none!important}
.v22-activation-dialog{width:min(600px,96vw);max-height:90dvh;overflow:auto}
.v22-month{display:flex;gap:5px;align-items:center}.v22-month .btn{padding:8px 12px}
.reception-location-hint:empty{display:none}
.payment-summary-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.payment-pending-file{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0}
.payment-pending-file span{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.v22-service-grid,.v22-status-fields [data-activation-dates],#drawer.lead-wizard .v22-status-fields,.payment-summary-editor{grid-template-columns:1fr}}
.workbench-wide-table { min-width: 1900px; }
.workbench-wide-table th, .workbench-wide-table td { vertical-align: top; white-space: nowrap; }
.workbench-wide-table input:not([type="checkbox"]), .workbench-wide-table select { min-width: 88px; max-width: 170px; padding: 7px 8px; border: 1px solid #d8e5e2; border-radius: 7px; background: #fff; color: #244744; }
.workbench-wide-table input[type="checkbox"] { accent-color: #126a67; }
/* 工作台兩張寬表格固定首兩列與操作列；指定列寬讓水平捲動時的 left 偏移保持準確。 */
#value-added-services .workbench-wide-table{--workbench-first-column:142px;--workbench-second-column:154px;--workbench-actions-column:116px}
#admin-fee-intake .workbench-wide-table{min-width:2180px;--workbench-selection-column:68px;--workbench-first-column:134px;--workbench-second-column:156px;--workbench-actions-column:116px}
.workbench-wide-table :is(th,td):nth-child(1):not([colspan]){width:var(--workbench-first-column);min-width:var(--workbench-first-column);max-width:var(--workbench-first-column);position:sticky;left:0;z-index:3;overflow:hidden;text-overflow:ellipsis;background:#fff}
.workbench-wide-table :is(th,td):nth-child(2):not([colspan]){width:var(--workbench-second-column);min-width:var(--workbench-second-column);max-width:var(--workbench-second-column);position:sticky;left:var(--workbench-first-column);z-index:3;overflow:hidden;text-overflow:ellipsis;background:#fff;box-shadow:7px 0 10px rgba(28,53,55,.07)}
.workbench-wide-table :is(th,td):last-child:not([colspan]){width:var(--workbench-actions-column);min-width:var(--workbench-actions-column);max-width:var(--workbench-actions-column);position:sticky;right:0;z-index:3;background:#fff;box-shadow:-7px 0 10px rgba(28,53,55,.07)}
.workbench-wide-table thead :is(th:nth-child(1),th:nth-child(2),th:last-child):not([colspan]){z-index:5;background:#f8faf9}
.workbench-wide-table tbody tr:hover :is(td:nth-child(1),td:nth-child(2),td:last-child):not([colspan]){background:#fbfdfc}
/* 行政費勾選列獨立固定於最左，原日期／時間與接待／陪同仍一併固定，便於勾選後核對。 */
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(1):not([colspan]){width:var(--workbench-selection-column);min-width:var(--workbench-selection-column);max-width:var(--workbench-selection-column);left:0;box-shadow:none}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(2):not([colspan]){width:var(--workbench-first-column);min-width:var(--workbench-first-column);max-width:var(--workbench-first-column);left:var(--workbench-selection-column);box-shadow:none}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(3):not([colspan]){width:var(--workbench-second-column);min-width:var(--workbench-second-column);max-width:var(--workbench-second-column);position:sticky;left:calc(var(--workbench-selection-column) + var(--workbench-first-column));z-index:3;overflow:hidden;text-overflow:ellipsis;background:#fff;box-shadow:7px 0 10px rgba(28,53,55,.07)}
#admin-fee-intake .workbench-wide-table thead th:nth-child(3):not([colspan]){z-index:5;background:#f8faf9}
#admin-fee-intake .workbench-wide-table tbody tr:hover td:nth-child(3):not([colspan]){background:#fbfdfc}
#admin-fee-intake .workbench-selection-cell{text-align:center;padding-left:10px;padding-right:10px}
#admin-fee-intake input[data-fee-select]{width:18px;height:18px;margin:0;vertical-align:middle}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(4){width:170px;min-width:170px;max-width:170px;white-space:normal;overflow-wrap:anywhere}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(7){width:180px;min-width:180px;max-width:180px;white-space:normal;overflow-wrap:anywhere}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(8){width:118px;min-width:118px;max-width:118px}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(9){width:286px;min-width:286px;max-width:286px;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
#admin-fee-intake .workbench-wide-table :is(th,td):nth-child(10){min-width:180px;max-width:320px;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
/* 抽屜規則仍使用同一控件的文字覆層與自定義輸入；列表只顯示只讀文字。 */
.workbench-fee-rule-select{position:relative;width:100%;max-width:100%}
#admin-fee-intake .workbench-fee-rule-select{width:264px}
.workbench-fee-rule-select::after{content:"";position:absolute;top:22px;right:13px;z-index:2;width:9px;height:9px;border-right:2px solid #315f58;border-bottom:2px solid #315f58;transform:rotate(45deg);pointer-events:none}
.workbench-fee-rule-select [data-fee-rule]{display:block;width:100%;min-width:0;max-width:none;height:58px;box-sizing:border-box;padding:6px 30px 6px 8px;appearance:none;-webkit-appearance:none;border:1px solid #d8e5e2;border-radius:7px;background:#fff;color:transparent;cursor:pointer}
.workbench-fee-rule-select [data-fee-rule] option{color:#244744}
.workbench-fee-rule-selected{position:absolute;top:50%;left:9px;right:30px;transform:translateY(-50%);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-height:2.8em;color:#244744;font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;pointer-events:none}
.workbench-fee-rule-selected[hidden]{display:none}
.workbench-fee-rule-select [data-fee-custom-rule]:not(:empty){position:absolute;top:1px;bottom:1px;left:1px;right:30px;z-index:1}
.workbench-fee-rule-select [data-fee-custom-rule] textarea{display:block;width:100%;height:100%;min-width:0;min-height:0;box-sizing:border-box;padding:7px 8px;border:0;border-radius:6px;background:#fff;color:#244744;font:inherit;font-size:13px;line-height:1.4;resize:none;overflow:auto}
.workbench-fee-rule-select [data-fee-custom-rule] textarea:focus{outline:none}
.workbench-fee-rule-select:focus-within [data-fee-rule]{border-color:#6ca99a;box-shadow:0 0 0 2px #cde8df}
/* 抽屉遮罩须高于固定表头和任意浮动行菜单，避免背景表格穿透遮罩。 */
.drawer-backdrop{z-index:10060}
.drawer{z-index:10061}
.workbench-money { display: flex; align-items: center; gap: 5px; }
.workbench-money > span { color: #54736f; font-size: 12px; }
.workbench-money input { width: 105px; }
.workbench-money .field { margin: 0; min-width: 95px; }
.workbench-money .field select { width: 100%; }
.workbench-subline, .workbench-conflict { display: block; margin-top: 4px; font-size: 11px; color: #747f7c; white-space: normal; }
.workbench-conflict { color: #ad4f38; max-width: 130px; }
.workbench-two-line{display:grid;gap:3px;min-width:82px;white-space:normal;line-height:1.25}
.workbench-two-line>span{font-weight:600;color:#244744}
.workbench-two-line small{display:block;color:#5b7773;font-size:13px;line-height:1.25}
.workbench-two-line .workbench-cell-time{font-size:12px}
.workbench-two-line .workbench-cell-product{font-size:13px}
.workbench-fee-rule-editor{display:grid}
.workbench-fee-rule-select [data-fee-custom-rule]:empty{display:none}
.workbench-fee-rule-text{display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.workbench-charge-missing{background:#fff4ef;border-color:#e6bba9;color:#a74632}
.workbench-charge-rmb-hint{display:grid;gap:4px;margin-top:-8px;padding:12px 14px;border:1px solid #e7ba77;border-left:4px solid #d38122;border-radius:8px;background:#fff6e7;color:#704415;font-size:13px;line-height:1.5}
.workbench-charge-rmb-hint strong{font-size:14px;color:#7e4210}
#workbench-service-charge-form [type="submit"]:disabled{opacity:.55;cursor:not-allowed}
/* 增值服務列表只讀；「編輯」開啟完整表單，點擊「儲存」後寫入。
   操作欄維持主業務列表的兩行閱讀順序：先編輯，再確認收費。 */
#value-added-services .workbench-service-actions,#admin-fee-intake .workbench-service-actions{display:grid!important;grid-template-columns:minmax(0,1fr);gap:4px!important;align-items:start;justify-items:start;min-width:74px!important}
#value-added-services .workbench-service-actions>button,#admin-fee-intake .workbench-service-actions>button{width:auto;min-height:27px;padding:4px 6px;border:1px solid #e1eeea;border-radius:5px;background:#fff;color:var(--teal);font:inherit;font-size:12px;line-height:1.2;white-space:nowrap;cursor:pointer}
#admin-fee-intake .workbench-service-actions>button.btn-danger{color:#b25239}
#value-added-services .workbench-service-actions>small,#admin-fee-intake .workbench-service-actions>small{white-space:normal;font-size:11px;color:#747f7c}
/* 增值服務沿用保單的本機列表設定；服務類型、客戶與操作列不可隱藏，保留固定列語義。 */
.workbench-column-dialog-open{overflow:hidden}
.workbench-column-backdrop{position:fixed;inset:0;z-index:10070;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(28,45,57,.42);backdrop-filter:blur(3px)}
.workbench-column-backdrop[hidden]{display:none}
.workbench-column-dialog{width:min(820px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow:auto;background:#fff;border:1px solid #dce7ea;border-radius:18px;box-shadow:0 24px 70px rgba(26,54,66,.24)}
.workbench-column-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 18px;border-bottom:1px solid #e4eceb}.workbench-column-dialog-head h3{margin:0;color:#234b59;font-size:20px}.workbench-column-dialog-head p{margin:6px 0 0;color:#6d8188;font-size:13px}
.workbench-column-close{width:36px;height:36px;border:0;border-radius:9px;background:#f1f6f4;color:#55707a;font-size:24px;line-height:1}.workbench-column-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:22px 24px}.workbench-column-options label{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid #dce7ea;border-radius:10px;background:#fbfdfc;font-size:14px;cursor:pointer}.workbench-column-options input{width:17px;height:17px;accent-color:#11776f}.workbench-column-dialog-note{padding:0 24px 18px;color:#6d8188;font-size:12px}.workbench-column-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid #e4eceb;background:#f8faf9}

/* 增值服务／行政费用属于业务列表，页面标题和操作按钮沿用预约、新单、保单。 */
.workbench-list-panel>.intro{align-items:center}
.workbench-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.workbench-page-actions .btn{font-size:14px;padding:11px 17px;white-space:nowrap}
.workbench-list-panel>.notice:not(.hidden)+.card{margin-top:16px}
.workbench-list-panel>.card>.card-head>div>.card-sub{margin-top:4px}

/* 新增／编辑表单使用与预约、新单一致的宽抽屉、双列字段和固定底部操作区。 */
#drawer.workbench-entry-drawer{height:100dvh;max-height:100dvh;width:min(900px,96vw);padding:0;display:flex;flex-direction:column;overflow:hidden}
#drawer.workbench-entry-drawer>.drawer-head{flex:none;margin:0;padding:14px 20px;border-bottom:1px solid var(--line)}
#drawer.workbench-entry-drawer>#drawer-body{flex:1;min-height:0;overflow:auto;padding:24px 28px 0;scrollbar-gutter:stable}
#drawer.workbench-entry-drawer .workbench-entry-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;align-items:start;min-height:100%}
#drawer.workbench-entry-drawer .workbench-entry-form>.field{min-width:0;align-content:start;gap:9px}
#drawer.workbench-entry-drawer .workbench-entry-form>.field :is(input,select,textarea){width:100%;min-width:0;box-sizing:border-box}
#drawer.workbench-entry-drawer .workbench-entry-form>.field>textarea{min-height:92px}
#drawer.workbench-entry-drawer .workbench-form-wide,#drawer.workbench-entry-drawer .workbench-form-note,#drawer.workbench-entry-drawer .form-footer{grid-column:1/-1}
#drawer.workbench-entry-drawer .workbench-form-note{color:var(--muted);font-size:12px;padding:8px 11px;border-radius:8px;background:#f7faf9;border:1px solid var(--line)}
#drawer.workbench-entry-drawer .required-mark{color:#d16c51!important;font-weight:800}
#drawer.workbench-entry-drawer .workbench-money{display:grid;grid-template-columns:112px minmax(0,1fr);gap:8px;width:100%}
#drawer.workbench-entry-drawer .workbench-money>.field{min-width:0;margin:0}
#drawer.workbench-entry-drawer .workbench-money>.field>label:empty{display:none}
#drawer.workbench-entry-drawer .workbench-money>.field select,#drawer.workbench-entry-drawer .workbench-money>input{width:100%;height:43px}
#drawer.workbench-entry-drawer .workbench-checkbox{display:flex;align-items:center;gap:8px;font-weight:600}
#drawer.workbench-entry-drawer .workbench-checkbox input{flex:none;width:16px!important;height:16px;accent-color:var(--teal)}
#drawer.workbench-entry-drawer .form-footer{position:sticky;bottom:0;z-index:2;margin:2px -28px 0;padding:12px 28px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 12px #153a320a}
#drawer.workbench-entry-drawer .workbench-service-save-status{margin-right:auto;color:#587570;font-size:12px;line-height:1.35}
#drawer.workbench-entry-drawer .workbench-service-save-status.is-error{color:#ad4f38}

@media(max-width:700px){
  .workbench-column-options{grid-template-columns:repeat(2,minmax(0,1fr)}
  .workbench-page-actions{width:100%;justify-content:flex-start;margin-top:16px}
  .workbench-list-panel>.intro{display:block}
  #drawer.workbench-entry-drawer{width:100vw}
  #drawer.workbench-entry-drawer>#drawer-body{padding:16px 16px 0}
  #drawer.workbench-entry-drawer .workbench-entry-form{grid-template-columns:1fr;gap:15px}
  #drawer.workbench-entry-drawer .workbench-form-wide,#drawer.workbench-entry-drawer .workbench-form-note,#drawer.workbench-entry-drawer .form-footer{grid-column:auto}
  #drawer.workbench-entry-drawer .form-footer{margin:2px -16px 0;padding:10px 16px}
}
@media(max-width:480px){.workbench-column-backdrop{padding:12px}.workbench-column-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.workbench-column-options{grid-template-columns:1fr}.workbench-column-dialog-actions{align-items:stretch;flex-direction:column}.workbench-column-dialog-actions .btn{width:100%}}
