/* Shared sizing comes last so every module uses the same visual controls. */
body #drawerEditMaterial { background:var(--accent); color:#fff; }
body #materialSummaryDrawer .drawer-content { gap:16px; }
body #materialSummaryDrawer .drawer-content > h3 { margin:8px 0 0; }
body #materialSummaryDrawer .recent-history { gap:12px; }
body #materialSummaryDrawer .recent-history > p { display:grid; gap:6px; margin:0; padding:12px; border:1px solid var(--line); border-radius:8px; line-height:1.6; overflow-wrap:anywhere; }
body #materialSummaryDrawer .recent-history > p > span { color:var(--muted); font-size:13px; }
body #materialSummaryDrawer .drawer-actions { margin-top:24px; padding-top:16px; border-top:1px solid var(--line); }
body #scheduleBacklog { gap:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
body #scheduleBacklog .schedule-backlog-row { margin:0; padding:0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
body #scheduleBacklog .schedule-backlog-row:last-child { border-bottom:0; }
body .schedule-backlog-row > summary { display:grid; grid-template-columns:minmax(0,1fr) auto 52px; gap:12px; align-items:center; min-height:50px; padding:10px 12px; list-style:none; cursor:pointer; }
body .schedule-backlog-row > summary::-webkit-details-marker { display:none; }
body .schedule-backlog-row > summary > strong { overflow-wrap:anywhere; font-size:14px; }
body .schedule-backlog-row > summary:hover,body .schedule-backlog-row[open] > summary { background:var(--ui-hover); }
body .schedule-backlog-row .schedule-priority { text-align:center; padding:4px; }
body .schedule-backlog-row.priority-紧急 .schedule-priority { color:#a9342b; background:#fff0ed; }
body .schedule-backlog-row.priority-高 .schedule-priority { color:#8c5d1f; background:#fff5df; }
body .backlog-quantity { font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
body .schedule-backlog-detail { padding:4px 14px 16px; border-top:1px solid var(--line); }
body .schedule-backlog-detail p { margin:10px 0; color:var(--muted); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
body #dataImportDialog { width:min(560px,calc(100vw - 28px)); max-height:85vh; overflow:auto; padding:20px; border:1px solid var(--line); border-radius:12px; color:var(--ink); }
body #dataImportDialog::backdrop { background:#17251b66; }
body #dataImportDialog p { line-height:1.6; overflow-wrap:anywhere; }
body .import-counts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:12px; background:var(--soft); }
body .import-dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:20px; }
body #dashboard button.metric { color:var(--ink); text-align:left; font-weight:400; cursor:pointer; }
body #dashboard button.metric:hover { background:var(--ui-hover); }
body #dashboard button.metric:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
#materialForm .material-platform-field { display:grid; gap:6px; min-width:0; }
#materialForm .material-platform-field > span { font-size:13px; color:var(--muted); }
#materialForm .material-platform-field :is(input,select) { width:100%; min-width:0; }
#materialSummaryDrawer .info-item strong { overflow-wrap:anywhere; }
body .bom-material-view { width:100%; grid-template-columns:48px minmax(0,1fr) auto; color:var(--ink); text-align:left; font-weight:400; }
body .bom-detail-material { grid-column:span 2; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:10px; min-width:0; padding:0; border:0; background:transparent; color:var(--ink); text-align:left; font-weight:400; }
body .bom-material-view:hover,body .bom-detail-material:hover { background:var(--ui-hover); }
.bom-material-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
body [data-bomitems-edit],body .bom-material-actions button { flex-shrink:0; white-space:nowrap; }
#materialSummaryDrawer .drawer-actions { flex-wrap:wrap; }
#materialSummaryDrawer .drawer-actions button { flex:1 1 110px; }
@media (min-width:768px) {
  body #materials.mobile-editor-active #materialForm { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  body #materials.mobile-editor-active #materialForm > :is(.file-field,.mobile-save-bar) { grid-column:1/-1; }
}
@media (max-width:767px) {
  body .bom-material-view,body .bom-detail-material { grid-template-columns:40px minmax(0,1fr) auto; }
  body .bom-detail-material { grid-template-columns:40px minmax(0,1fr); gap:8px; }
}
body button[aria-busy="true"] { opacity:.7; cursor:wait; pointer-events:none; }
body #saveOperationNotice { position:fixed; z-index:6000; top:18px; left:50%; transform:translateX(-50%); max-width:85vw; padding:10px 18px; border-radius:6px; color:white; background:#235d36; font-size:15px; box-shadow:0 3px 12px #0002; }
body :is(#bomList,#kitList) > .product-row { content-visibility:auto; contain-intrinsic-size:auto 100px; }
/* Editor visibility must win over shared dashboard/filter display rules. */
body #materials.mobile-editor-active :is(#materialStats,.filter-bar,#materialRows) {
  display:none !important;
}
.delete-reference-list { max-height:40vh; overflow:auto; border-block:1px solid #e1e7e2; margin:14px 0; }
.delete-reference-list h3 { font-size:13px; }
.delete-reference-list p,.delete-material-dialog > p { font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
body .delete-material-dialog .danger-btn { margin-left:10px; background:#b43d35; color:white; }
body .weekly-toy-table { overflow:auto; }
body .weekly-toy-table table { width:100%; min-width:0; table-layout:fixed; font-size:12px; }
body .weekly-toy-table th,body .weekly-toy-table td { padding:8px 3px; text-align:center; white-space:normal; overflow-wrap:anywhere; }
body .weekly-toy-table th:first-child { width:22%; text-align:left; }
body .weekly-toy-table th,body .weekly-toy-table td { font-size:12px; }
body .weekly-toy-table thead th:not(:first-child):not(:last-child) { white-space:nowrap; }
body .weekly-toy-table small { display:block; font-size:9px; color:#68766b; }
body .weekly-toy-table tfoot { background:#edf6ef; font-weight:bold; }
body .gantt-worker h3 button { display:flex; justify-content:space-between; align-items:center; width:100%; background:transparent; color:#27643b; text-align:left; padding:0; min-height:28px; }
body .gantt-worker h3 small { font-size:11px; color:#68766b; }
.worker-mini,.worker-leave-days { display:grid; grid-template-columns:220px minmax(0,1fr); }
.worker-mini > span,.worker-leave-days > span { padding:6px 10px; font-size:11px; color:#68766b; }
.worker-mini > div { padding:6px 0; }
.worker-mini-row { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); height:9px; gap:2px; }
.worker-mini-row i { background:#74a879; height:4px; align-self:center; margin:0 2px; }
.worker-mini-row > * { grid-row:1; }
.worker-mini-row .mini-leave { background:#aab0b377; z-index:1; }
.worker-leave-days > div { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.worker-leave-days span { font-size:10px; text-align:center; }
.worker-leave-days .is-leave { background:#dadddd; color:#5f6464; padding:5px 0; }
body .schedule-gantt-scroll .gantt-track > * { grid-row:1; }
.leave-day-shade { display:block; align-self:stretch; background:#aab0b366; z-index:2; pointer-events:none; }
.has-leave-conflict .gantt-bar { outline:1px dashed #9b6860; }
.leave-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.leave-form label { display:grid; gap:6px; font-size:13px; min-width:0; }
.leave-form input,.leave-form select,.leave-form textarea { min-width:0; width:100%; padding:8px; border:1px solid #dce5dd; border-radius:5px; font:inherit; }
.leave-reason,#leaveDuration { grid-column:1/-1; }
body #leaveForm > button[type=submit] { min-height:40px; padding:9px 14px; background:#287f43; color:#fff; font-size:14px; }
#leaveMessage { font-size:13px; line-height:1.5; color:#27643b; }
.leave-record { padding:12px 0; border-bottom:1px solid #e3e8e3; }
.leave-record p { font-size:12px; color:#65716a; }
body .leave-record button { padding:5px 10px; font-size:12px; min-height:30px; }
.leave-assignment-note { font-size:12px; color:#965648; }
body .calendar-grid button:disabled { background:#dadddd; color:#7a7f7a; text-decoration:line-through; opacity:1; }
@media(max-width:640px) {
  .worker-mini,.worker-leave-days { grid-template-columns:84px minmax(0,1fr); }
  .worker-leave-days span { font-size:8px; }
  .leave-form { grid-template-columns:minmax(0,1fr); }
}
body :is(.metric-grid,.material-stats,.order-stats,.prod-stats,.pc-stats,.assembly-summary,.dashboard-flow-summary) {
  display:flex !important; flex-wrap:nowrap !important; gap:6px !important; overflow-x:auto; width:100%; min-width:0;
}
body :is(.metric-grid,.material-stats,.order-stats,.prod-stats,.pc-stats,.assembly-summary,.dashboard-flow-summary) > * {
  flex:1 0 64px; min-width:64px; padding:10px 5px !important; text-align:center;
}
body :is(.material-stat,.order-stat,.pc-stat,.assembly-stat) :is(b,strong) { font-size:23px !important; }
body :is(.material-stat,.order-stat,.pc-stat,.assembly-stat) :is(b,strong) { white-space:nowrap; }
body :is(.material-stat,.order-stat,.pc-stat,.assembly-stat) :is(span,small) { font-size:11px !important; white-space:nowrap; }
body :is(.mode-tabs,.production-tabs,.mobile-subnav) { display:flex; gap:20px; padding:0; background:transparent !important; border:0; border-bottom:1px solid #e1e7e2; border-radius:0 !important; box-shadow:none; }
body :is(.mode-tabs,.production-tabs,.mobile-subnav) > button { flex:0 0 auto; min-height:40px !important; padding:8px 5px !important; font-size:14px !important; font-weight:600; background:transparent !important; border:0; border-bottom:3px solid transparent; border-radius:0 !important; color:#6c766f; box-shadow:none; }
body :is(.mode-tabs,.production-tabs,.mobile-subnav) > button.is-active { color:#237c43; border-bottom-color:#258647; }
body :is(.filter-bar,.product-toolbar,.sample-picker-filters,.purchase-picker-filters,.picker-search) :is(input,select,button), body .compact-filter-menu > summary {
  min-height:34px !important; height:34px !important; padding:6px 9px !important; font-size:12px !important; line-height:20px !important; border-radius:5px !important;
}
body :is(.order-status-chips,.pc-filter-chips,.chip-row,#statsRangeChips) { display:flex; flex-wrap:nowrap; overflow:auto; gap:6px; }
body :is(.order-status-chips,.pc-filter-chips,.chip-row,#statsRangeChips) > button { flex:0 0 auto; min-height:30px !important; height:30px !important; padding:4px 9px !important; font-size:12px !important; line-height:20px !important; white-space:nowrap; border-radius:5px !important; }
body #orders .panel-head { flex-wrap:wrap; gap:10px; }
body #orders .panel-head-actions { display:flex; flex-wrap:nowrap; gap:6px; }
body #orders .panel-head-actions .panel-note { display:none; }
body #orders .panel-head-actions button { width:auto !important; min-height:34px !important; padding:6px 10px !important; font-size:12px !important; white-space:nowrap; }
body select.enhanced-toy-select { display:none !important; }
body .toy-picker-trigger { min-width:0; max-width:100%; text-align:left; padding:10px; font-size:13px; background:#f5f8f4; color:#225b35; border:1px solid #dce5dc; white-space:normal; }
body .workspace-picker { width:min(540px,calc(100vw - 24px)); max-height:85vh; padding:18px; border:1px solid #e1e7e2; border-radius:10px; color:#202a23; background:white; }
.workspace-picker::backdrop { background:#17251b66; }
.workspace-picker header { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.workspace-picker h2 { margin:0; font-size:18px; }
body .workspace-picker button { min-height:36px; padding:7px 10px; font-size:13px; color:#265b37; background:#f1f6f0; border-radius:5px !important; }
.picker-search { display:flex; gap:8px; }
.picker-search input { flex:1; min-width:0; }
.picker-search select { width:120px; min-width:0; }
.picker-count,.range-hint { font-size:12px; color:#6c766f; }
.picker-results { display:grid; gap:6px; max-height:55vh; overflow:auto; }
body .picker-results button { text-align:left; }
.range-summary,.calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
.calendar-nav input { width:160px; padding:7px; font-size:14px; }
.calendar-week,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; text-align:center; }
.calendar-week { font-size:12px; margin-bottom:8px; }
body .calendar-grid button { padding:8px 0; min-width:0; }
body .workspace-picker .is-selected { background:#287f43; color:white; }
body .workspace-picker .in-range { background:#deefdf; }
body .workspace-picker .range-confirm { width:100%; margin-top:16px; background:#287f43; color:white; }
@media(max-width:767px) {
  body #orders .panel-head-actions { width:100%; }
  body #orders .panel-head-actions button { flex:1; }
  body #dashboard .metric-grid > * { min-width:70px; }
  body #dashboard .metric-grid strong { font-size:21px; }
}

/* 日报：每款独立分隔，三个字段同行，保留清晰字号和触控高度。 */
body #productionReports > .panel > .panel-head { display:block; }
body #productionReports h2 { font-size:24px; }
body #productionReports .daily-report-identity { display:flex; justify-content:space-between; align-items:center; margin-top:16px; padding:10px 0; border-top:1px solid #d9e2d9; font-size:15px; color:#526054; }
body #dailyReportUser { margin-left:8px; color:#1d542f; font-size:20px; }
body .daily-report-section-title h4 { margin:4px 0; font-size:19px; }
body .daily-report-section-title p { margin:0; font-size:14px; line-height:1.6; color:#526054; }
body #dailyReportToyRows { counter-reset:report-toy; gap:16px; }
body #dailyReportToyRows .daily-report-toy-row { display:block; padding:10px 12px 14px; border:1px solid #b8cdbd; border-left:4px solid #328149; border-radius:6px; background:#f5f9f4; counter-increment:report-toy; }
body .daily-report-row-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
body .daily-report-row-number { font-size:16px; color:#235c34; }
body .daily-report-row-number::after { content:" " counter(report-toy); }
body #dailyReportToyRows [data-remove-daily-report-toy] { width:auto; min-height:44px; padding:6px 12px; font-size:14px; color:#775047; background:white; border:1px solid #d8ccc8; }
body #dailyReportToyRows .daily-report-fields { display:flex; flex-wrap:wrap; gap:8px; }
body #dailyReportToyRows label { display:flex; flex:1 1 70px; flex-direction:column; align-items:stretch; min-width:0; gap:6px; }
body #dailyReportToyRows label:first-child { flex:1.2 1 80px; }
body #dailyReportToyRows label:last-child { flex:1.4 1 190px; }
body #dailyReportToyRows label > span { font-size:14px; white-space:nowrap; color:#384b3d; }
body #dailyReportToyRows :is(input,.daily-report-toy-choice) { width:100%; min-width:0; min-height:48px; padding:8px 6px; border:1px solid #a6b8aa; border-radius:4px; font-size:17px; color:#172c1d; background:white; }
body #dailyReportToyRows .daily-report-toy-choice { font-weight:700; text-align:center; white-space:normal; overflow-wrap:anywhere; }
body #dailyReportToyRows .daily-report-toy-choice[data-toy-name=""] { color:#236e39; border-color:#328149; }
body #dailyReportForm #addDailyReportToy { width:100%; min-height:52px; border:2px solid #24733b; border-radius:6px; background:#e8f3e8; color:#19572c; font-size:19px; font-weight:700; }
body #dailyReportForm > button[type=submit] { min-height:52px; font-size:19px; background:#24733b; color:white; }
body #dailyReportToyRows select { width:100%; min-width:0; min-height:48px; padding:8px 4px; border:1px solid #a6b8aa; border-radius:4px; background:white; color:#172c1d; font-size:16px; }
body #weeklyWorkerFilter { min-height:34px; max-width:180px; font-size:14px; padding:6px 9px; border-radius:5px; }
body #attendanceEntry { margin:12px 0; border:1px solid #c5d6c8; padding:12px; border-radius:6px; }
body #attendanceEntry summary { font-size:16px; font-weight:700; color:#24733b; cursor:pointer; min-height:36px; }
body .attendance-day { display:grid; gap:8px; padding:12px 0; border-bottom:1px solid #dce5dd; font-size:14px; }
body .attendance-day small { font-size:13px; color:#546557; }
body .attendance-day button { justify-self:start; }
body .weekly-toy-table .weekly-difficulty { font-size:11px; line-height:1.5; color:#42654b; }
.image-paste-target { display:none; }
@media(min-width:768px) {
  body :is(#bomForm,#kitForm) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(860px,calc(100vw - 40px)); gap:16px; }
  body :is(#bomForm,#kitForm) > :is(.modal-head,.filter-bar,.product-form-actions), body #kitForm > input { grid-column:1/-1; }
  body :is(#bomForm,#kitForm) > .modal-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
  body :is(#bomForm,#kitForm) .modal-head p { font-size:14px; margin:5px 0 0; }
  body :is(#bomForm,#kitForm) > .multi-picker { grid-column:1; max-height:280px; overflow:auto; min-width:0; }
  body :is(#bomForm,#kitForm) > .file-field { grid-column:2; min-width:0; align-content:start; }
  body :is(#bomForm,#kitForm) .product-form-actions { display:flex; gap:12px; }
  body :is(#bomForm,#kitForm) .product-form-actions button { flex:1; min-height:44px; }
  body .image-dropzone { position:relative; }
  body .image-dropzone.is-paste-target, body .image-dropzone.is-drag-over { outline:2px dashed #2c8647; outline-offset:3px; }
  body .image-dropzone.is-drag-over { background:#e7f4e7; }
  body .image-paste-target { display:block; padding:7px 5px; margin:4px 0; border:1px dashed #94b69c; border-radius:4px; font-size:12px; font-weight:400; line-height:1.5; white-space:normal; color:#28653a; background:#f1f8ef; cursor:pointer; }
  body .image-paste-target:focus-visible { outline:2px solid #287a40; outline-offset:2px; }
  body .mini-file .file-preview { display:block; max-width:72px; max-height:72px; object-fit:contain; }
}
body #dailyReportEditNotice:not([hidden]) { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:12px; border-left:4px solid #287d40; border-radius:5px; background:#edf5eb; }
body #dailyReportEditNotice strong { font-size:16px; color:#265c35; }
body #dailyReportEditNotice button { min-height:44px; padding:8px 12px; font-size:14px; }
body #myProductionReportList .daily-history-card { display:flex; flex-direction:column; align-items:stretch; gap:10px; padding:14px; border:1px solid #d4e0d6; border-radius:6px; }
body #myProductionReportList .daily-history-card > strong { font-size:16px; }
body #myProductionReportList .daily-history-card > span { white-space:normal; overflow-wrap:anywhere; line-height:1.7; font-size:15px; }
body .daily-history-actions { display:flex; gap:8px; }
body .daily-history-actions button { flex:1; min-width:0; min-height:44px; padding:8px 12px; font-size:15px; border:1px solid #cbd8ce; border-radius:5px; }
body .daily-history-actions [data-edit-saved-report] { color:#236b37; background:#eef6ec; }
body .daily-history-actions [data-delete-saved-report] { color:#a03d34; background:#fff7f5; border-color:#e8cdc8; }

/* 日报选玩具：两步选择，合集增多时只滚动列表，不挤掉顶部操作。 */
body.daily-picker-open { overflow:hidden; }
body #dailyReportToyPicker { z-index:5500; padding:12px; }
body #dailyReportToyPicker .daily-toy-picker {
  display:flex; flex-direction:column; gap:14px; width:min(680px,100%);
  height:min(720px,calc(100dvh - 24px)); max-height:calc(100dvh - 24px);
  min-width:0; padding:20px; border-radius:8px; overflow:hidden; box-sizing:border-box;
}
body #dailyReportToyPicker .modal-head { display:flex; flex-wrap:nowrap; align-items:flex-start; gap:12px; margin:0; flex-shrink:0; }
body #dailyReportToyPicker .modal-head > div { flex:1; min-width:0; }
body #dailyReportToyPicker h2 { margin:0; font-size:22px; line-height:1.4; }
body #dailyReportToyPicker .modal-head p { margin:4px 0 0; font-size:14px; line-height:1.5; color:#627268; }
body #dailyReportToyPicker #closeDailyToyPicker { flex:0 0 auto; width:auto; min-width:64px; min-height:44px; padding:8px 12px; font-size:15px; line-height:1.4; white-space:nowrap; border:1px solid #d6e0d8; border-radius:5px; }
body #dailyReportToyPicker .daily-picker-steps { display:flex; align-items:center; gap:12px; flex-shrink:0; padding-bottom:10px; border-bottom:1px solid #e2e9e3; color:#7c867f; font-size:15px; }
body #dailyReportToyPicker #dailyToyPickerBack { width:auto; min-height:40px; padding:7px 10px; background:#edf5ed; color:#256a39; border:0; border-radius:5px; font-size:15px; line-height:1.4; }
body #dailyReportToyPicker [aria-current="step"] { color:#206d36; font-weight:700; }
body #dailyReportToyPicker #dailyToyPickerSearch { flex-shrink:0; width:100%; min-width:0; min-height:46px; padding:10px 12px; font-size:16px; border:1px solid #ccd9ce; border-radius:5px; background:#f7faf7; box-sizing:border-box; }
body #dailyReportToyPicker .daily-picker-context { flex-shrink:0; margin:0; font-size:14px; line-height:1.6; color:#526858; overflow-wrap:anywhere; }
body #dailyReportToyPicker .daily-picker-content { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
body #dailyReportToyPicker :is(.daily-toy-groups,.daily-toy-picker-list):not([hidden]) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:2px 2px 8px; overflow:visible; }
body #dailyReportToyPicker [hidden] { display:none !important; }
body #dailyReportToyPicker .daily-toy-groups button { display:flex; flex-direction:column; justify-content:space-between; gap:12px; width:100%; min-width:0; min-height:96px; padding:14px 12px; text-align:left; white-space:normal; overflow-wrap:anywhere; border:1px solid #c7d9cb; border-radius:6px; color:#244b30; background:#f1f7f0; box-shadow:none; }
body #dailyReportToyPicker .daily-toy-groups strong { font-size:17px; line-height:1.5; font-weight:700; }
body #dailyReportToyPicker .daily-toy-groups button > span { display:flex; justify-content:space-between; align-items:center; width:100%; font-size:13px; line-height:1.5; color:#607665; }
body #dailyReportToyPicker .daily-toy-groups b { font-size:21px; line-height:1; color:#327346; }
body #dailyReportToyPicker .daily-toy-picker-list button { width:100%; min-width:0; min-height:64px; padding:14px 10px; border:1px solid #bdcfc1; border-radius:6px; background:white; color:#203d29; text-align:center; white-space:normal; overflow-wrap:anywhere; font-size:18px; font-weight:700; line-height:1.5; box-shadow:none; }
body #dailyReportToyPicker .empty { grid-column:1/-1; padding:20px 8px; font-size:15px; line-height:1.6; }
body #dailyReportToyPicker button:focus-visible { outline:2px solid #287b40; outline-offset:1px; }
@media (max-width:380px) {
  body #dailyReportToyPicker .daily-toy-picker { padding:14px; gap:12px; }
  body #dailyReportToyPicker .daily-toy-groups strong { font-size:16px; }
}

/* 人员管理独立限定尺寸，避免通用表单样式放大手机复选框。 */
body.permission-manager-open { overflow:hidden; }
body #userPermissionModal { z-index:6000; padding:0; font-family:system-ui,"Microsoft YaHei","PingFang SC",sans-serif; color:#233c2d; }
body #userPermissionModal [hidden] { display:none !important; }
body #userPermissionModal .permission-manager { display:flex; flex-direction:column; width:100%; max-width:none; height:100dvh; max-height:100dvh; gap:0; padding:0; border:0; border-radius:0; overflow:hidden; background:#f4f7f5; box-sizing:border-box; }
body #userPermissionModal :is(h2,h3,p) { margin:0; }
body #userPermissionModal h2 { font-size:22px; line-height:1.4; }
body #userPermissionModal h3 { font-size:16px; line-height:1.5; }
body #userPermissionModal p { font-size:13px; line-height:1.6; color:#6b7870; margin-top:5px; }
body #userPermissionModal button { flex-shrink:0; width:auto; min-width:0; min-height:40px; height:auto; padding:8px 14px; font-size:14px; line-height:1.4; font-weight:600; border:1px solid #d9e3dc; border-radius:6px; white-space:nowrap; box-shadow:none; }
body #userPermissionModal button.primary { background:#287746; color:#fff; border-color:#287746; }
body #userPermissionModal button.secondary { background:#fff; color:#395e46; }
body #userPermissionModal button:disabled { opacity:.6; cursor:wait; }
body #userPermissionModal :is(button,input,select,summary):focus-visible { outline:2px solid #287746; outline-offset:2px; }
body #userPermissionModal .modal-head { flex:0 0 auto; display:flex; flex-flow:row nowrap; align-items:center; gap:12px; padding:20px max(24px,calc((100vw - 1120px)/2)); border-bottom:1px solid #dfe7e1; background:#fff; }
body #userPermissionModal .modal-head > div { min-width:0; flex:1; }
body #userPermissionModal #closeUserPermission { min-width:60px; }
body #userPermissionModal .permission-list-view { flex:1; width:100%; max-width:1168px; margin:0 auto; padding:24px; box-sizing:border-box; overflow:auto; }
body #userPermissionModal .permission-list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
body #userPermissionModal .permission-list-toolbar > div { display:flex; gap:10px; align-items:center; white-space:nowrap; font-size:16px; }
body #userPermissionModal #permissionUserCount { font-size:13px; color:#6b7870; }
body #userPermissionModal :is(input[type=search],input[type=password],select) { width:100%; min-width:0; height:42px; min-height:42px; padding:9px 12px; border:1px solid #d4dfd7; border-radius:6px; background:#fff; color:#263e2e; font-size:16px; line-height:22px; box-sizing:border-box; }
body #userPermissionModal #permissionUserSearch { width:min(320px,50%); }
body #userPermissionModal .permission-table-wrap { border:1px solid #dfe7e1; border-radius:8px; }
body #userPermissionModal .permission-table { table-layout:fixed; min-width:0; }
body #userPermissionModal .permission-table :is(th,td) { position:static; min-width:0; padding:15px 16px; font-size:14px; line-height:1.6; border-bottom:1px solid #edf1ee; overflow-wrap:anywhere; }
body #userPermissionModal .permission-table thead { background:#f8faf8; color:#6b7870; }
body #userPermissionModal .permission-table th { font-size:12px; font-weight:500; background:#f8faf8; color:#6b7870; }
body #userPermissionModal .permission-table :is(th,td):nth-child(1) { width:20%; }
body #userPermissionModal .permission-table :is(th,td):nth-child(2) { width:14%; }
body #userPermissionModal .permission-table :is(th,td):nth-child(4) { width:18%; }
body #userPermissionModal .permission-table :is(th,td):last-child { width:84px; text-align:right; }
body #userPermissionModal .permission-person { display:flex; align-items:center; gap:10px; min-width:0; }
body #userPermissionModal .permission-avatar { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; background:#edf4ed; border-radius:7px; font-size:16px; color:#39754a; }
body #userPermissionModal .permission-role-badge { display:inline-block; padding:3px 7px; border-radius:4px; background:#edf2ef; color:#506359; font-size:12px; line-height:1.6; white-space:nowrap; font-weight:500; }
body #userPermissionModal .permission-role-badge.is-worker { background:#e9f4e9; color:#317441; }
body #userPermissionModal .permission-user-detail { flex:1; display:flex; flex-direction:column; min-height:0; gap:0; overflow:hidden; }
body #userPermissionModal .permission-detail-head { flex:0 0 auto; display:flex; flex-flow:row nowrap; align-items:center; justify-content:space-between; gap:12px; width:100%; max-width:1168px; padding:16px 24px; margin:0 auto; box-sizing:border-box; }
body #userPermissionModal .permission-selected-person { display:flex; align-items:center; gap:10px; min-width:0; }
body #userPermissionModal .permission-selected-person h3 { min-width:0; overflow-wrap:anywhere; }
body #userPermissionModal .permission-detail-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
body #userPermissionModal .permission-detail-layout { display:grid; grid-template-columns:300px minmax(0,1fr); align-items:start; gap:20px; max-width:1168px; padding:0 24px 24px; margin:0 auto; box-sizing:border-box; }
body #userPermissionModal .permission-account-settings { display:grid; gap:16px; min-width:0; }
body #userPermissionModal .permission-detail-card { padding:18px; border:1px solid #dfe7e1; border-radius:8px; background:#fff; min-width:0; }
body #userPermissionModal .permission-role-row { display:flex; flex-direction:row; width:100%; gap:8px; margin-top:14px; }
body #userPermissionModal .permission-role-row select { flex:1; }
body #userPermissionModal .permission-user-head { display:block; margin:0 0 14px; }
body #userPermissionModal .permission-access-table { border-collapse:collapse; table-layout:fixed; width:100%; min-width:0; }
body #userPermissionModal .permission-access-table :is(th,td) { position:static; min-width:0; padding:0; height:46px; border-bottom:1px solid #edf1ee; font-size:14px; line-height:1.5; text-align:center; background:#fff; color:#233c2d; }
body #userPermissionModal .permission-access-table tr:last-child :is(th,td) { border-bottom:0; }
body #userPermissionModal .permission-access-table thead th { height:34px; font-size:12px; color:#718078; background:#f7faf7; font-weight:500; }
body #userPermissionModal .permission-access-table th:first-child { width:auto; padding-left:12px; text-align:left; font-weight:500; }
body #userPermissionModal .permission-access-table thead th:not(:first-child) { width:76px; }
body #userPermissionModal .permission-check { display:flex; align-items:center; justify-content:center; width:100%; height:46px; margin:0; padding:0; cursor:pointer; background:transparent; border:0; }
body #userPermissionModal .permission-check input[type=checkbox] { appearance:auto; -webkit-appearance:checkbox; display:block; flex:0 0 20px; width:20px; height:20px; min-width:20px; min-height:20px; max-width:20px; max-height:20px; margin:0; padding:0; border-radius:3px; accent-color:#287746; cursor:pointer; box-shadow:none; }
body #userPermissionModal .permission-security summary { cursor:pointer; font-size:15px; font-weight:600; line-height:1.5; }
body #userPermissionModal .permission-security summary span { display:block; margin-top:4px; font-size:12px; font-weight:400; color:#718078; }
body #userPermissionModal .permission-security-body { margin-top:16px; border-top:1px solid #edf1ee; padding-top:16px; }
body #userPermissionModal .permission-security-body > label { font-size:14px; font-weight:600; }
body #userPermissionModal .permission-password-row { display:flex; flex-direction:column; align-items:stretch; gap:8px; margin-top:10px; }
body #userPermissionModal .permission-danger { display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin-top:20px; padding-top:16px; border:0; border-top:1px solid #eee2df; background:transparent; }
body #userPermissionModal .permission-danger button { background:#fff; color:#b3453b; border-color:#ead2cc; }
body #userPermissionModal .permission-save-bar { flex:0 0 auto; display:flex; justify-content:flex-end; align-items:center; gap:20px; padding:12px max(24px,calc((100vw - 1120px)/2)); padding-bottom:max(12px,env(safe-area-inset-bottom)); border-top:1px solid #dfe7e1; background:#fff; }
body #userPermissionModal .permission-save-bar > span { font-size:13px; color:#6b7870; }
body #userPermissionModal .permission-save-bar button { min-width:140px; min-height:44px; }
@media(max-width:767px) {
  body #userPermissionModal .modal-head { padding:16px; }
  body #userPermissionModal h2 { font-size:20px; }
  body #userPermissionModal .permission-list-view { padding:16px 12px; }
  body #userPermissionModal .permission-list-toolbar { gap:10px; }
  body #userPermissionModal #permissionUserSearch { width:55%; font-size:14px; }
  body #userPermissionModal .permission-table :is(th,td):is(:nth-child(3),:nth-child(4)) { display:none; }
  body #userPermissionModal .permission-table :is(th,td) { padding:12px 8px; }
  body #userPermissionModal .permission-table :is(th,td):nth-child(1) { width:auto; }
  body #userPermissionModal .permission-table :is(th,td):nth-child(2) { width:78px; }
  body #userPermissionModal .permission-table :is(th,td):last-child { width:60px; }
  body #userPermissionModal .permission-table button { padding:7px 8px; font-size:13px; }
  body #userPermissionModal .permission-person { gap:7px; }
  body #userPermissionModal .permission-avatar { flex-basis:28px; width:28px; height:32px; font-size:14px; }
  body #userPermissionModal .permission-name-full { display:none; }
  body #userPermissionModal .permission-name-short { display:inline; }
  body #userPermissionModal .permission-detail-head { padding:12px; gap:8px; }
  body #userPermissionModal .permission-detail-head button { padding:7px 10px; font-size:13px; }
  body #userPermissionModal .permission-selected-person { gap:6px; }
  body #userPermissionModal .permission-selected-person h3 { font-size:15px; }
  body #userPermissionModal .permission-detail-layout { display:flex; flex-direction:column; gap:12px; padding:0 12px 16px; }
  body #userPermissionModal .permission-account-settings { display:contents; }
  body #userPermissionModal .permission-detail-card { width:100%; padding:14px; box-sizing:border-box; }
  body #userPermissionModal .permission-security { order:3; }
  body #userPermissionModal .permission-role-row { margin-top:10px; }
  body #userPermissionModal .permission-access-table thead th:not(:first-child) { width:64px; }
  body #userPermissionModal .permission-save-bar { padding:10px 16px max(10px,env(safe-area-inset-bottom)); justify-content:space-between; gap:10px; }
  body #userPermissionModal .permission-save-bar > span { font-size:12px; }
  body #userPermissionModal .permission-save-bar button { min-width:124px; }
}
