        /* 紫色风格 */
        [data-theme="purple"] {
            --theme-sidebar: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            --theme-card: linear-gradient(45deg, #667eea, #764ba2);
            --theme-btn: linear-gradient(45deg, #667eea, #764ba2);
            --theme-focus: #667eea;
            --theme-focus-rgb: 102, 126, 234;
        }
        /* 蓝色风格（默认，与登录页 SUNSUN 一致） */
        [data-theme="blue"] {
            --theme-sidebar: linear-gradient(135deg, #1e40af 0%, #1d4ed8 100%);
            --theme-card: linear-gradient(45deg, #1e40af, #1d4ed8);
            --theme-btn: linear-gradient(45deg, #1e40af, #1d4ed8);
            --theme-focus: #1e40af;
            --theme-focus-rgb: 30, 64, 175;
        }
        /* 与登录页统一的字体与色值 */
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
            color: #1e293b;
        }
        /* 左侧导航 - 蓝白主题（默认）：无背景填充，与登录页一致 */
        .sidebar {
            min-height: 100vh;
            background: #fff;
            border-right: 1px solid #e2e8f0;
        }
        .sidebar .nav-link {
            color: #64748b;
            border-radius: 8px;
            margin: 2px 0;
            padding: 0.5rem 0.75rem;
            font-size: 0.9375rem;
            transition: color 0.2s, background-color 0.2s;
        }
        .sidebar .nav-link:hover {
            color: #1e40af;
            background: #f1f5f9;
        }
        .sidebar .nav-link.active {
            color: #1e40af;
            background: #eff6ff;
            font-weight: 600;
        }
        .sidebar .nav-link i { color: inherit; }
        /* 部分精简版 Bootstrap Icons 未包含 bi-sliders2，侧栏「系统功能」会无图标 */
        .bi-sliders2::before {
            display: inline-block;
            font-family: "bootstrap-icons" !important;
            font-style: normal;
            font-weight: normal !important;
            font-variant: normal;
            text-transform: none;
            line-height: 1;
            vertical-align: -0.125em;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            content: "\f789";
        }
        .sidebar .sidebar-brand { color: #1e293b; font-weight: 600; font-size: 1rem; }
        .sidebar .sidebar-user-block {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            color: #1e293b;
        }
        .sidebar .sidebar-user-block .small { color: #64748b; }
        .sidebar .btn-outline-light { border-color: #e2e8f0; color: #64748b; }
        .sidebar .btn-outline-light:hover { background: #f1f5f9; border-color: #cbd5e1; color: #1e40af; }
        /* 紫色主题：侧栏渐变填充、白字 */
        [data-theme="purple"] .sidebar {
            background: var(--theme-sidebar);
            border-right: none;
        }
        [data-theme="purple"] .sidebar .nav-link { color: rgba(255,255,255,0.85); }
        [data-theme="purple"] .sidebar .nav-link:hover,
        [data-theme="purple"] .sidebar .nav-link.active {
            color: #fff;
            background: rgba(255,255,255,0.15);
        }
        [data-theme="purple"] .sidebar .sidebar-brand { color: #fff; }
        [data-theme="purple"] .sidebar .sidebar-user-block {
            background: rgba(255,255,255,0.12);
            border: none;
            color: #fff;
        }
        [data-theme="purple"] .sidebar .sidebar-user-block .small { color: rgba(255,255,255,0.9); }
        [data-theme="purple"] .sidebar .btn-outline-light { border-color: rgba(255,255,255,0.6); color: #fff; }
        [data-theme="purple"] .sidebar .btn-outline-light:hover { background: rgba(255,255,255,0.2); border-color: #fff; color: #fff; }
        .main-content {
            background-color: #f0f4f8;
            min-height: 100vh;
        }
        .card {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            box-shadow: 0 4px 24px rgba(30, 41, 59, 0.08);
        }
        .stats-card {
            background: var(--theme-card, linear-gradient(45deg, #1e40af, #1d4ed8));
            color: white;
        }
        .btn-primary {
            background: var(--theme-btn, linear-gradient(45deg, #1e40af, #1d4ed8));
            border: none;
            border-radius: 25px;
        }
        /* 列表页与登录页风格一致 */
        .content-section h2 {
            color: #1e293b;
            font-weight: 600;
            font-size: 1.25rem;
        }
        .content-section .text-muted {
            color: #64748b !important;
        }
        .table th {
            border-top: none;
            font-weight: 600;
            color: #1e293b;
            border-bottom: 1px solid #e2e8f0;
        }
        .table td {
            color: #1e293b;
        }
        /* 整站列表页：取消表格行悬停背景色，仅保留左侧导航悬停效果 */
        .table-hover tbody tr:hover,
        .table-hover tbody tr:hover td,
        body .table-hover tbody tr:hover,
        body .table-hover tbody tr:hover td,
        .content-section .table tbody tr:hover,
        .content-section .table tbody tr:hover td,
        body .content-section .table-responsive .table tbody tr:hover,
        body .content-section .table-responsive .table tbody tr:hover td {
            background-color: transparent !important;
        }
        /* 覆盖 Bootstrap 表格悬停用的变量，避免行/单元格出现悬停背景 */
        .table-hover tbody tr:hover,
        .table-hover tbody tr:hover > *,
        .content-section .table tbody tr:hover,
        .content-section .table tbody tr:hover > * {
            --bs-table-accent-bg: transparent !important;
        }
        .modal-content {
            border-radius: 15px;
        }
        .form-control, .form-select {
            border-radius: 8px;
            border: 1px solid #dee2e6;
        }
        .form-control:focus, .form-select:focus {
            border-color: var(--theme-focus, #1e40af);
            box-shadow: 0 0 0 0.2rem rgba(var(--theme-focus-rgb, 30, 64, 175), 0.25);
        }
        
        /* 附件缩略图样式 */
        .attachment-thumbnail {
            transition: transform 0.2s ease;
        }
        .attachment-thumbnail:hover {
            transform: scale(1.05);
        }
        .attachment-thumbnail:hover .attachment-overlay {
            display: flex !important;
        }
        
        /* 图片查看器样式 */
        #imageViewerModal .modal-dialog {
            max-width: 90vw;
        }
        
        /* 设备报修列表：操作列始终显示（与报修处理一致） */
        #device-repairs .repair-row-actions {
            opacity: 1;
            pointer-events: auto;
        }
        #device-repairs .device-repair-row {
            transition: background-color 0.15s ease;
        }
        /* 设备报修页面样式优化（与报修处理一致） */
        #device-repairs .content-section-inner { max-width: 100%; }
        #device-repairs .page-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 1rem;
            margin-bottom: 1.5rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid #e2e8f0;
        }
        #device-repairs .page-header h2 {
            margin: 0;
            font-size: 1.35rem;
            font-weight: 600;
            color: #1e293b;
            display: flex;
            align-items: center;
        }
        #device-repairs .page-header h2 i { color: var(--theme-focus, #1e40af); margin-right: 0.5rem; }
        #device-repairs .btn-primary {
            border-radius: 8px;
            padding: 0.5rem 1rem;
            font-weight: 500;
        }
        #device-repairs .card {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
        }
        #device-repairs .card-header {
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            color: #475569;
            font-weight: 600;
            font-size: 0.9375rem;
            border-bottom: 1px solid #e2e8f0;
            padding: 0.75rem 1.25rem;
            border-radius: 12px 12px 0 0;
        }
        #device-repairs .card-header i { margin-right: 0.35rem; opacity: 0.9; }
        #device-repairs .table thead th {
            background: #f8fafc;
            color: #475569;
            font-size: 0.8125rem;
            font-weight: 600;
            text-transform: none;
            padding: 0.75rem 0.85rem;
            border-bottom: none;
            white-space: nowrap;
        }
        #device-repairs .table tbody td {
            padding: 0.7rem 0.85rem;
            font-size: 0.875rem;
            vertical-align: middle;
        }
        #device-repairs .table tbody td:nth-child(4) {
            max-width: 220px;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #device-repairs .table { table-layout: fixed; width: 100%; border-collapse: separate; border-spacing: 0 4px; }
        /* 表头与明细列宽一致，故障描述/部门/报修人员 标签与内容对齐 */
        #device-repairs .device-repairs-table-layout .device-repair-col-photo { width: 100px; min-width: 100px; }
        #device-repairs .device-repairs-table-layout .device-repair-col-device { width: 12%; }
        #device-repairs .device-repairs-table-layout .device-repair-col-type { width: 10%; }
        #device-repairs .device-repairs-table-layout .device-repair-col-fault { width: 28%; }
        #device-repairs .device-repairs-table-layout .device-repair-col-dept { width: 10%; }
        #device-repairs .device-repairs-table-layout .device-repair-col-reporter { width: 10%; }
        #device-repairs .device-repairs-table-layout .device-repair-col-actions { width: 220px; min-width: 180px; }
        #device-repairs .table td,
        #device-repairs .table th { border: none !important; }
        #device-repairs .table-hover tbody tr:hover,
        #device-repairs .table-hover tbody tr:hover td { background-color: transparent !important; }
        /* 设备报修单条：单 TR 单 TD，表头（单号/时间/状态）与明细合并，去掉外边框 */
        #device-repairs tr.device-repair-content-row td.device-repair-content-cell {
            padding: 0;
            vertical-align: top;
            border: none !important;
        }
        #device-repairs .device-repair-content-cell .device-repair-record-header-cell {
            padding: 0.35rem 0 0.5rem;
            margin-bottom: 0;
            border: none;
            background: transparent;
        }
        #device-repairs .device-repair-content-cell .device-repair-header-inner {
            padding: 0.4rem 0.75rem;
            background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%) !important;
            border: none !important;
            border-radius: 6px;
            display: block;
        }
        #device-repairs .device-repair-content-inner {
            display: table;
            width: 100%;
            table-layout: fixed;
        }
        #device-repairs .device-repair-content-inner > .device-repair-cell-photo,
        #device-repairs .device-repair-content-inner > .device-repair-cell-type,
        #device-repairs .device-repair-content-inner > .device-repair-cell-device,
        #device-repairs .device-repair-content-inner > .device-repair-cell-fault,
        #device-repairs .device-repair-content-inner > .device-repair-cell-dept,
        #device-repairs .device-repair-content-inner > .device-repair-cell-reporter,
        #device-repairs .device-repair-content-inner > .device-repair-cell-actions {
            display: table-cell;
            vertical-align: top;
            padding: 0.5rem 0.75rem;
            font-size: 0.875rem;
            word-break: break-word;
        }
        #device-repairs .device-repair-content-inner > .device-repair-cell-photo { width: 100px; min-width: 100px; }
        #device-repairs .device-repair-content-inner > .device-repair-cell-type { width: 10%; }
        #device-repairs .device-repair-content-inner > .device-repair-cell-device { width: 12%; }
        #device-repairs .device-repair-content-inner > .device-repair-cell-fault { width: 28%; }
        #device-repairs .device-repair-content-inner > .device-repair-cell-dept { width: 10%; }
        #device-repairs .device-repair-content-inner > .device-repair-cell-reporter { width: 10%; }
        #device-repairs .device-repair-content-inner > .device-repair-cell-actions { width: 220px; min-width: 180px; }
        #device-repairs tr.device-repair-content-row td {
            background: transparent;
            border: none !important;
        }
        #device-repairs .device-repair-cell-photo {
            width: 100px;
            max-width: 100px;
            overflow: hidden;
        }
        /* 设备报修列表：附件图片等比例放大 */
        #device-repairs .device-repair-cell-photo .repair-list-photo-thumb {
            max-width: 100%;
            max-height: 260px;
            width: auto;
            height: auto;
            object-fit: contain;
            border-radius: 6px;
            border: none;
            display: block;
        }
        /* 设备报修列表：点击图片打开查看详情 */
        #device-repairs .device-repair-photo-link {
            display: block;
            cursor: pointer;
            text-decoration: none;
        }
        #device-repairs .device-repair-photo-link .repair-list-photo-thumb {
            display: block;
        }
        #device-repairs .device-repair-cell-fault { min-width: 0; }
        #device-repairs .device-repair-th-actions,
        #device-repairs .device-repair-cell-actions {
            min-width: 220px;
            width: 220px;
            max-width: none;
            vertical-align: middle;
            white-space: nowrap;
            padding-left: 0.85rem;
            padding-right: 0.85rem;
            overflow: visible;
            box-sizing: border-box;
        }
        #device-repairs .repair-row-actions {
            display: inline-flex;
            flex-wrap: nowrap;
            gap: 0.35rem;
        }
        #device-repairs .repair-reported-time-month-day { display: none; }
        #device-repairs .repair-row-actions .btn.device-repair-action-btn {
            border-radius: 6px;
            padding: 0.3rem 0.6rem;
            background: #fff !important;
            color: #000 !important;
            border: 1px solid #dee2e6;
        }
        #device-repairs .repair-row-actions .btn.device-repair-action-btn:hover {
            background: #f8f9fa !important;
            color: #000 !important;
            border-color: #adb5bd;
        }
        #device-repairs .pagination .page-link {
            border-radius: 6px;
            margin: 0 2px;
            border: 1px solid #e2e8f0;
            color: #475569;
        }
        #device-repairs .pagination .page-item.active .page-link {
            background: var(--theme-focus, #1e40af);
            border-color: var(--theme-focus, #1e40af);
        }
        
        /* 报修处理列表：操作列默认隐藏，悬停该行时显示（按权限显示图标） */
        #repair-processes .process-row-actions,
        #repair-process-archived .process-row-actions {
            opacity: 1;
            pointer-events: auto;
        }
        #repair-processes .repair-process-row,
        #repair-process-archived .repair-process-row {
            transition: background-color 0.15s ease;
        }
        /* 报修处理页面样式优化 */
        #repair-processes .content-section-inner,
        #repair-process-archived .content-section-inner { max-width: 100%; }
        #repair-processes .page-header,
        #repair-process-archived .page-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 1rem;
            margin-bottom: 1.5rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid #e2e8f0;
        }
        #repair-processes .page-header h2,
        #repair-process-archived .page-header h2 {
            margin: 0;
            font-size: 1.35rem;
            font-weight: 600;
            color: #1e293b;
            display: flex;
            align-items: center;
        }
        #repair-processes .page-header h2 i,
        #repair-process-archived .page-header h2 i {
            color: var(--theme-focus, #1e40af);
            margin-right: 0.5rem;
        }
        #repair-processes .btn-primary,
        #repair-process-archived .btn-primary {
            border-radius: 8px;
            padding: 0.5rem 1rem;
            font-weight: 500;
        }
        #repair-processes .card,
        #repair-process-archived .card {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
        }
        #repair-processes .card-header,
        #repair-process-archived .card-header {
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            color: #475569;
            font-weight: 600;
            font-size: 0.9375rem;
            border-bottom: 1px solid #e2e8f0;
            padding: 0.75rem 1.25rem;
            border-radius: 12px 12px 0 0;
        }
        #repair-process-archived .card-header {
            background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
            color: #64748b;
        }
        #repair-processes .card-header i,
        #repair-process-archived .card-header i {
            margin-right: 0.35rem;
            opacity: 0.9;
        }
        #repair-processes .table thead th,
        #repair-process-archived .table thead th {
            background: #f8fafc;
            color: #475569;
            font-size: 0.8125rem;
            font-weight: 600;
            text-transform: none;
            padding: 0.75rem 0.85rem;
            border-bottom: none;
            white-space: nowrap;
        }
        #repair-processes .table thead th.th-span-center,
        #repair-process-archived .table thead th.th-span-center {
            text-align: center;
        }
        #repair-processes .table tbody td,
        #repair-process-archived .table tbody td {
            padding: 0.7rem 0.85rem;
            font-size: 0.875rem;
            vertical-align: middle;
        }
        #repair-processes .table tbody tr.repair-process-row td:nth-child(2),
        #repair-process-archived .table tbody tr.repair-process-row td:nth-child(2) {
            max-width: 220px;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        #repair-processes .table tbody tr.repair-process-row td.repair-reason-cell,
        #repair-process-archived .table tbody tr.repair-process-row td.repair-reason-cell {
            max-width: 160px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .repair-list-photo-cell { vertical-align: top !important; }
        /* 报修处理列表：点击图片打开报修查看详情 */
        #repair-processes .repair-process-photo-link,
        #repair-process-archived .repair-process-photo-link {
            display: block;
            cursor: pointer;
            text-decoration: none;
        }
        #repair-processes .repair-process-photo-link .repair-list-photo-thumb,
        #repair-process-archived .repair-process-photo-link .repair-list-photo-thumb {
            display: block;
        }
        .repair-list-photos { display: flex; align-items: center; }
        .repair-list-photo-thumb {
            max-width: 80px;
            max-height: 80px;
            width: auto;
            height: auto;
            object-fit: contain;
            border-radius: 6px;
            border: 1px solid #e2e8f0;
        }
        /* 报修处理列表：附件图片等比例放大 */
        #repair-processes .repair-list-photo-cell .repair-list-photo-thumb,
        #repair-process-archived .repair-list-photo-cell .repair-list-photo-thumb {
            max-width: 100%;
            max-height: 260px;
            width: auto;
            height: auto;
            object-fit: contain;
        }
        #repair-processes .table,
        #repair-process-archived .table {
            table-layout: fixed;
            width: 100%;
        }
        #repair-processes .table tbody tr.repair-record-header td,
        #repair-process-archived .table tbody tr.repair-record-header td {
            padding: 0;
            width: 100%;
            max-width: 100%;
            vertical-align: middle;
        }
        .repair-record-header-cell {
            line-height: 1.35;
            font-size: 0.875rem;
            color: #1e293b;
            background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
            border-bottom: 1px solid #e2e8f0;
            white-space: nowrap;
            box-sizing: border-box;
        }
        #repair-processes .table tbody tr.repair-process-row td,
        #repair-process-archived .table tbody tr.repair-process-row td {
            padding-bottom: 1.25rem;
        }
        .repair-record-header-cell .badge { font-weight: 500; }
        .repair-process-index { font-size: 0.8em; color: #64748b; font-weight: normal; }
        .repair-time-date-only { display: none; }
        .repair-time-month-day { display: none; }
        .repair-time-full { display: inline; }
        .repair-status-label { display: inline; }
        .repair-order-label { display: inline; }
        .repair-header-inner {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: nowrap;
            gap: 0.75rem;
            width: 100%;
            min-width: 100%;
            box-sizing: border-box;
            padding: 0.35rem 0.75rem;
        }
        .repair-header-inner .repair-header-left {
            flex: 1 1 auto;
            min-width: 0;
        }
        .repair-header-inner .repair-header-actions {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            flex-shrink: 0;
            margin-left: auto;
        }
        .repair-header-delete-wrap {
            flex-shrink: 0;
            margin-left: auto;
        }
        .repair-header-delete-btn {
            color: #dc3545;
            border: 1px solid #dc3545;
            background: #fff;
            padding: 0.25rem 0.5rem;
            border-radius: 6px;
        }
        .repair-header-delete-btn:hover {
            color: #fff;
            background: #dc3545;
            border-color: #dc3545;
        }
        #repair-processes .table-hover tbody tr:hover,
        #repair-process-archived .table-hover tbody tr:hover {
            background-color: transparent !important;
        }
        #repair-processes .table-hover tbody tr:hover td,
        #repair-process-archived .table-hover tbody tr:hover td {
            background-color: transparent !important;
        }
        #repair-processes .process-row-actions .btn,
        #repair-process-archived .process-row-actions .btn {
            border-radius: 6px;
            padding: 0.3rem 0.6rem;
            margin: 0;
        }
        #repair-processes .repair-header-actions .repair-action-btn,
        #repair-process-archived .repair-header-actions .repair-action-btn {
            margin: 0;
        }
        .repair-action-btn {
            color: #212529;
            border: 1px solid #dee2e6;
            background: #fff;
        }
        a.repair-order-link,
        .repair-order-link {
            color: #0d6efd;
            text-decoration: none;
            font-weight: 700;
        }
        .repair-order-link:hover {
            color: #0a58ca;
            text-decoration: underline;
        }
        .repair-action-btn:hover {
            color: #212529;
            border-color: #adb5bd;
            background: #f8f9fa;
        }
        #repair-processes .pagination .page-link,
        #repair-process-archived .pagination .page-link {
            border-radius: 6px;
            margin: 0 2px;
            border: 1px solid #e2e8f0;
            color: #475569;
        }
        #repair-processes .pagination .page-item.active .page-link,
        #repair-process-archived .pagination .page-item.active .page-link {
            background: var(--theme-focus, #1e40af);
            border-color: var(--theme-focus, #1e40af);
        }
        #repair-process-archived .page-header h2 i {
            color: #64748b;
        }
        /* 报修处理/归档：桌面端隐藏“内容行下方”的操作行（仅手机版显示） */
        #repair-processes .repair-actions-row-mobile,
        #repair-process-archived .repair-actions-row-mobile {
            display: none;
        }
        /* 报修处理/归档：手机端单条明细三行布局（第一行表头、第二行明细内容、第三行操作），表头填满、内容不挤压 */
        @media (max-width: 768px) {
            #repair-processes .repair-header-actions,
            #repair-process-archived .repair-header-actions {
                display: none !important;
            }
            #repair-processes .repair-header-left,
            #repair-process-archived .repair-header-left {
                width: 100%;
                min-width: 0;
            }
            #repair-processes .repair-time-full,
            #repair-process-archived .repair-time-full {
                display: none !important;
            }
            #repair-processes .repair-time-date-only,
            #repair-process-archived .repair-time-date-only {
                display: none !important;
            }
            #repair-processes .repair-time-month-day,
            #repair-process-archived .repair-time-month-day {
                display: inline !important;
            }
            #repair-processes .repair-status-label,
            #repair-process-archived .repair-status-label {
                display: none !important;
            }
            #repair-processes .repair-order-label,
            #repair-process-archived .repair-order-label {
                display: none !important;
            }
            #repair-processes .repair-order-number,
            #repair-process-archived .repair-order-number {
                font-weight: 700;
            }
            /* 维护记录列表：仅显示完整维修日期（年月日），与 PC 一致，避免月日重复 */
            #maintenance .maintenance-row-header .maintenance-date-full { display: inline !important; }
            #maintenance .maintenance-date-month-day { display: none !important; }
            #device-repairs .repair-reported-time-full { display: none !important; }
            #device-repairs .repair-reported-time-month-day { display: inline !important; }
            /* 设备报修/维护记录：手机端表格改为列表卡片式（与报修处理一致） */
            #device-repairs .table thead,
            #maintenance .table thead {
                display: none;
            }
            /* 手机版表格与容器占满视口宽度，禁止横向溢出导致只显示一半 */
            #device-repairs .table-responsive,
            #maintenance .table-responsive {
                overflow-x: visible !important;
                max-width: 100%;
            }
            #device-repairs .table,
            #maintenance .table {
                display: block !important;
                width: 100% !important;
                max-width: 100% !important;
                min-width: 0 !important;
                table-layout: fixed;
            }
            #device-repairs .table tbody,
            #device-repairs .table tbody tr,
            #maintenance .table tbody,
            #maintenance .table tbody tr {
                width: 100% !important;
                display: block !important;
                max-width: 100%;
                min-width: 0;
            }
            #device-repairs .table td,
            #maintenance .table td {
                display: block !important;
                width: 100% !important;
                white-space: normal !important;
                max-width: 100% !important;
                min-width: 0;
                box-sizing: border-box;
            }
            /* 手机版：每条记录一个 TR 一个 TD，卡片在 TD 上（与设备报修一致，无重复 TR/TD 框） */
            #device-repairs .table tbody tr.device-repair-content-row,
            #maintenance .table tbody tr.maintenance-content-row {
                display: block !important;
                padding: 0 !important;
                margin-bottom: 0.5rem !important;
                background: transparent !important;
                border: none !important;
                border-radius: 0;
                box-sizing: border-box;
            }
            #maintenance .maintenance-content-cell,
            #device-repairs .device-repair-content-cell {
                display: block !important;
                padding: 0 !important;
                background: #fff;
                border: 1px solid #e2e8f0;
                border-radius: 8px;
                overflow: hidden;
            }
            #maintenance .maintenance-content-cell .maintenance-record-header-cell {
                border: none;
                background: transparent;
            }
            #maintenance .maintenance-content-cell .maintenance-header-inner {
                border-radius: 8px 8px 0 0 !important;
            }
            /* 手机端维护记录明细由 mobile.css 内 grid/标签统一处理 */
            #maintenance .maintenance-content-inner {
                display: block !important;
            }
            #maintenance .maintenance-content-inner > .maintenance-cell-photo,
            #maintenance .maintenance-content-inner > .maintenance-cell-category,
            #maintenance .maintenance-content-inner > .maintenance-cell-device,
            #maintenance .maintenance-content-inner > .maintenance-cell-right,
            #maintenance .maintenance-content-inner > .maintenance-cell-performer,
            #maintenance .maintenance-content-inner > .maintenance-cell-actions {
                display: block !important;
                width: 100% !important;
                box-sizing: border-box;
            }
            /* 手机版设备报修：单 TR 单 TD，表头与明细合并，无外边框 */
            #device-repairs .device-repair-content-cell .device-repair-record-header-cell {
                display: block !important;
                width: 100% !important;
                padding: 0.25rem 0 0.5rem !important;
                border: none !important;
                background: transparent !important;
            }
            #device-repairs .device-repair-content-cell .device-repair-header-inner {
                display: block !important;
                width: 100% !important;
                padding: 0.4rem 0.75rem !important;
                border: none !important;
                border-radius: 6px !important;
                background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%) !important;
            }
            #device-repairs .device-repair-content-inner {
                display: block !important;
                width: 100%;
            }
            #device-repairs .device-repair-content-inner > .device-repair-cell-photo,
            #device-repairs .device-repair-content-inner > .device-repair-cell-type,
            #device-repairs .device-repair-content-inner > .device-repair-cell-device,
            #device-repairs .device-repair-content-inner > .device-repair-cell-fault,
            #device-repairs .device-repair-content-inner > .device-repair-cell-dept,
            #device-repairs .device-repair-content-inner > .device-repair-cell-reporter,
            #device-repairs .device-repair-content-inner > .device-repair-cell-actions {
                display: block !important;
                width: 100% !important;
                padding: 0.35rem 0 !important;
                border: none;
                font-size: 0.875rem;
            }
            #device-repairs .device-repair-content-inner > .device-repair-cell-photo {
                overflow: visible !important;
            }
            #device-repairs .device-repair-content-inner > .device-repair-cell-photo .repair-list-photos {
                display: block !important;
                width: 100%;
                max-width: 100%;
            }
            #device-repairs .device-repair-content-inner > .device-repair-cell-photo .repair-list-photo-thumb {
                width: 100% !important;
                max-width: 100% !important;
                height: auto !important;
                min-height: 80px;
                max-height: 420px !important;
                object-fit: contain !important;
            }
            #maintenance .maintenance-detail-inline {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.35rem;
            }
            /* 维护记录手机版图片/明细由 mobile.css 统一处理 */
            #maintenance .maintenance-row-actions {
                margin-left: 0;
                padding-left: 0;
                border-left: none;
                border-top: none;
                padding-top: 0;
                margin-top: 0;
            }
            /* 手机版维护记录：与报修处理一致，不显示“图片：”“操作：”标签 */
            #repair-processes .table thead,
            #repair-process-archived .table thead {
                display: none;
            }
            #repair-processes .table tbody tr.repair-record-header,
            #repair-process-archived .table tbody tr.repair-record-header {
                display: table-row;
            }
            #repair-processes .table tbody tr.repair-record-header td,
            #repair-process-archived .table tbody tr.repair-record-header td {
                display: block;
                width: 100%;
            }
            #repair-processes .table tbody tr.repair-process-row,
            #repair-process-archived .table tbody tr.repair-process-row {
                display: block;
                padding: 0.6rem 0.75rem 0.75rem;
                background: #fff;
            }
            #repair-processes .table tbody tr.repair-process-row td,
            #repair-process-archived .table tbody tr.repair-process-row td {
                display: block;
                width: 100%;
                padding: 0.35rem 0;
                border: none;
                font-size: 0.875rem;
            }
            #repair-processes .table tbody tr.repair-process-row td::before,
            #repair-process-archived .table tbody tr.repair-process-row td::before {
                content: attr(data-label) "：";
                font-weight: 600;
                color: #475569;
                margin-right: 0.35rem;
                font-size: 0.8125rem;
            }
            #repair-processes .table tbody tr.repair-process-row td.repair-list-photo-cell,
            #repair-process-archived .table tbody tr.repair-process-row td.repair-list-photo-cell {
                display: inline-block;
                width: 42%;
                vertical-align: top;
                padding-right: 0.5rem;
            }
            /* 手机版报修处理：图片列不显示“报修照片：”标签 */
            #repair-processes .table tbody tr.repair-process-row td.repair-list-photo-cell::before,
            #repair-process-archived .table tbody tr.repair-process-row td.repair-list-photo-cell::before {
                content: none !important;
                display: none !important;
            }
            /* 手机版报修处理：操作列不显示“操作：”标签 */
            #repair-processes .table tbody tr.repair-process-row td.repair-process-row-actions-cell::before,
            #repair-process-archived .table tbody tr.repair-process-row td.repair-process-row-actions-cell::before {
                content: none !important;
                display: none !important;
            }
            #repair-processes .table tbody tr.repair-process-row td.repair-fault-desc-cell,
            #repair-process-archived .table tbody tr.repair-process-row td.repair-fault-desc-cell {
                display: inline-block;
                width: 55%;
                vertical-align: top;
                padding-left: 0;
            }
            #repair-processes .table tbody tr.repair-process-row td.repair-fault-desc-cell::before,
            #repair-process-archived .table tbody tr.repair-process-row td.repair-fault-desc-cell::before {
                display: block;
                margin-bottom: 0.25rem;
            }
            #repair-processes .table tbody tr.repair-process-row td:nth-child(3),
            #repair-processes .table tbody tr.repair-process-row td:nth-child(4),
            #repair-processes .table tbody tr.repair-process-row td:nth-child(5),
            #repair-processes .table tbody tr.repair-process-row td:nth-child(6),
            #repair-processes .table tbody tr.repair-process-row td:nth-child(7),
            #repair-process-archived .table tbody tr.repair-process-row td:nth-child(3),
            #repair-process-archived .table tbody tr.repair-process-row td:nth-child(4),
            #repair-process-archived .table tbody tr.repair-process-row td:nth-child(5),
            #repair-process-archived .table tbody tr.repair-process-row td:nth-child(6),
            #repair-process-archived .table tbody tr.repair-process-row td:nth-child(7) {
                display: block;
                width: 100%;
                padding-top: 0.5rem;
            }
            #repair-processes .repair-actions-row-mobile,
            #repair-process-archived .repair-actions-row-mobile {
                display: table-row;
            }
            #repair-processes .repair-actions-cell-mobile,
            #repair-process-archived .repair-actions-cell-mobile {
                padding: 0.6rem 0.75rem 0.75rem;
                background: transparent;
                border-bottom: 1px solid #e2e8f0;
                vertical-align: middle;
            }
            #repair-processes .repair-actions-cell-mobile::after,
            #repair-process-archived .repair-actions-cell-mobile::after {
                content: '';
                display: block;
                height: 2rem;
            }
            #repair-processes .table tbody tr.repair-actions-row-mobile + tr.repair-record-header td,
            #repair-process-archived .table tbody tr.repair-actions-row-mobile + tr.repair-record-header td {
                padding-top: 1.5rem !important;
            }
            #repair-processes .table tbody tr.repair-actions-row-mobile + tr.repair-record-header .repair-header-inner,
            #repair-process-archived .table tbody tr.repair-actions-row-mobile + tr.repair-record-header .repair-header-inner {
                padding-top: 0.35rem;
            }
            #repair-processes .repair-actions-cell-mobile .process-row-actions,
            #repair-process-archived .repair-actions-cell-mobile .process-row-actions {
                display: inline-flex;
                flex-wrap: wrap;
                align-items: center;
                gap: 0.5rem;
            }
            #repair-processes .repair-actions-cell-mobile .repair-action-btn,
            #repair-process-archived .repair-actions-cell-mobile .repair-action-btn {
                margin: 0;
                background-color: #f1f5f9;
            }
            #repair-processes .process-row-actions,
            #repair-process-archived .process-row-actions {
                opacity: 1;
                pointer-events: auto;
            }
        }
        
        /* 维护记录列表：操作列始终显示（与报修处理一致） */
        #maintenance .maintenance-row-actions {
            opacity: 1;
            pointer-events: auto;
        }
        #maintenance .maintenance-row {
            transition: background-color 0.15s ease;
        }
        #maintenance .table-hover tbody tr:hover,
        #maintenance .table-hover tbody tr:hover td { background-color: transparent !important; }
        /* 维护记录单条：表头条不显示单号/日期/类型，仅显示渐变条（在单 TD 内）；仅桌面端隐藏文字 */
        #maintenance .maintenance-content-cell .maintenance-record-header-cell {
            padding: 0;
            margin-bottom: 0;
            background: transparent;
            border: none;
            box-sizing: border-box;
        }
        @media (min-width: 769px) {
            /* PC 端：表格表头与单条明细表头（单号 日期 维修状态）均显示 */
            #maintenance .table thead { display: table-header-group !important; }
            #maintenance .table thead tr { display: table-row !important; }
            #maintenance .table thead th { display: table-cell !important; }
        }
        #maintenance .maintenance-header-inner {
            padding: 0.4rem 0;
            min-height: 8px;
            background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%) !important;
            border-radius: 10px;
            display: block;
            border: none;
        }
        #maintenance tr.maintenance-content-row td {
            background: transparent;
            border: none !important;
            border-bottom: none !important;
        }
        /* 单条明细内容行：单 TD 内嵌 .maintenance-content-inner，桌面端模拟表格列 */
        #maintenance tr.maintenance-content-row td.maintenance-content-cell {
            padding: 0;
            vertical-align: top;
            border: none !important;
        }
        #maintenance .maintenance-content-inner {
            display: table;
            width: 100%;
            table-layout: fixed;
        }
        #maintenance .maintenance-content-inner > .maintenance-cell-photo,
        #maintenance .maintenance-content-inner > .maintenance-cell-category,
        #maintenance .maintenance-content-inner > .maintenance-cell-device,
        #maintenance .maintenance-content-inner > .maintenance-cell-right,
        #maintenance .maintenance-content-inner > .maintenance-cell-performer,
        #maintenance .maintenance-content-inner > .maintenance-cell-actions {
            display: table-cell;
            vertical-align: middle;
            padding: 0.65rem 0.75rem;
            font-size: 0.875rem;
            line-height: 1.45;
        }
        #maintenance .maintenance-content-inner > .maintenance-cell-photo { width: 9%; min-width: 90px; }
        #maintenance .maintenance-content-inner > .maintenance-cell-category { width: 11%; }
        #maintenance .maintenance-content-inner > .maintenance-cell-device { width: 13%; }
        #maintenance .maintenance-content-inner > .maintenance-cell-right { width: 40%; }
        #maintenance .maintenance-content-inner > .maintenance-cell-performer { width: 11%; }
        #maintenance .maintenance-content-inner > .maintenance-cell-actions { width: 16%; }
        #maintenance .maintenance-content-inner .maintenance-label { display: none; }
        #maintenance tr.maintenance-content-row td {
            padding: 0.65rem 0.75rem;
            vertical-align: middle;
            font-size: 0.875rem;
            line-height: 1.45;
        }
        #maintenance .maintenance-cell-photo {
            padding-left: 0.85rem;
            padding-right: 0.6rem;
            overflow: hidden;
            min-width: 0;
        }
        #maintenance .maintenance-cell-photo .maintenance-list-photos {
            max-width: 100%;
        }
        /* PC 端：图片等比例放大 */
        #maintenance .maintenance-cell-photo .maintenance-list-photo-thumb {
            max-width: 100%;
            max-height: 260px;
            width: auto;
            height: auto;
            object-fit: contain;
        }
        #maintenance .maintenance-cell-category,
        #maintenance .maintenance-cell-device {
            word-break: break-word;
            padding-left: 0.5rem;
        }
        #maintenance .maintenance-cell-right {
            word-break: break-word;
            min-width: 0;
        }
        #maintenance .maintenance-cell-performer {
            word-break: break-word;
        }
        #maintenance .maintenance-cell-actions {
            vertical-align: middle;
            padding-left: 0.85rem;
            padding-right: 0.85rem;
        }
        #maintenance .maintenance-detail-inline {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.5rem 1rem;
            min-width: 0;
        }
        #maintenance .maintenance-detail-inline .maintenance-detail-item {
            margin-bottom: 0;
        }
        #maintenance .maintenance-row-header {
            font-size: 0.875rem;
            color: #1e293b;
            margin-bottom: 0.25rem;
        }
        #maintenance .maintenance-row-header .badge { font-weight: 500; }
        #maintenance .maintenance-row-date-mobile { display: none; }
        #maintenance .maintenance-list-photos { margin-top: 0.25rem; flex-shrink: 0; }
        #maintenance .maintenance-list-photo-thumb {
            max-width: 100%;
            max-height: 260px;
            width: auto;
            height: auto;
            object-fit: contain;
            border-radius: 6px;
            border: none;
            display: block;
        }
        #maintenance .maintenance-detail-item {
            margin-bottom: 0.35rem;
            font-size: 0.875rem;
        }
        #maintenance .maintenance-detail-inline .maintenance-detail-item { margin-bottom: 0; }
        #maintenance .maintenance-detail-label {
            color: #64748b;
            margin-right: 0.25rem;
        }
        #maintenance .maintenance-row-actions .maintenance-action-btn {
            font-size: 0.8125rem;
            margin-right: 0.35rem;
            background: #fff !important;
            color: #000 !important;
            border: 1px solid #dee2e6;
        }
        #maintenance .maintenance-row-actions .maintenance-action-btn:hover {
            background: #f8f9fa !important;
            color: #000 !important;
            border-color: #adb5bd;
        }
        #maintenance .maintenance-row-actions .maintenance-action-btn:last-child {
            margin-right: 0;
        }
        /* 维护记录页面样式优化（与报修处理一致） */
        #maintenance .content-section-inner { max-width: 100%; }
        #maintenance .page-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 1rem;
            margin-bottom: 1.5rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid #e2e8f0;
        }
        #maintenance .page-header h2 {
            margin: 0;
            font-size: 1.35rem;
            font-weight: 600;
            color: #1e293b;
            display: flex;
            align-items: center;
        }
        #maintenance .page-header h2 i { color: var(--theme-focus, #1e40af); margin-right: 0.5rem; }
        #maintenance .btn-primary {
            border-radius: 8px;
            padding: 0.5rem 1rem;
            font-weight: 500;
        }
        #maintenance .card {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
        }
        #maintenance .card-header {
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            color: #475569;
            font-weight: 600;
            font-size: 0.9375rem;
            border-bottom: 1px solid #e2e8f0;
            padding: 0.75rem 1.25rem;
            border-radius: 12px 12px 0 0;
        }
        #maintenance .card-header i { margin-right: 0.35rem; opacity: 0.9; }
        #maintenance .table thead th {
            background: #f8fafc;
            color: #475569;
            font-size: 0.8125rem;
            font-weight: 600;
            text-transform: none;
            padding: 0.75rem 0.85rem;
            border-bottom: none;
            white-space: nowrap;
        }
        #maintenance .table tbody td {
            padding: 0.7rem 0.85rem;
            font-size: 0.875rem;
            vertical-align: middle;
        }
        #maintenance .table { table-layout: fixed; width: 100%; border-collapse: separate; border-spacing: 0 4px; }
        #maintenance .table td,
        #maintenance .table th { border: none !important; }
        /* 单条明细列宽：图片/操作固定，设备分类/名称适中，维护内容占主空间 */
        #maintenance .maintenance-table-layout .col-photo { width: 9%; min-width: 90px; }
        #maintenance .maintenance-table-layout .col-category { width: 11%; min-width: 72px; }
        #maintenance .maintenance-table-layout .col-device { width: 13%; min-width: 80px; }
        #maintenance .maintenance-table-layout .col-content { width: 40%; min-width: 120px; }
        #maintenance .maintenance-table-layout .col-performer { width: 11%; min-width: 72px; }
        #maintenance .maintenance-table-layout .col-actions { width: 16%; min-width: 88px; }
        a.maintenance-order-link,
        .maintenance-order-link {
            color: #0d6efd;
            text-decoration: none;
            font-weight: 700;
        }
        .maintenance-order-link:hover {
            color: #0a58ca;
            text-decoration: underline;
        }
        /* 维护记录列表：点击附件图片打开查看详情 */
        #maintenance .maintenance-photo-link {
            display: block;
            cursor: pointer;
            text-decoration: none;
        }
        #maintenance .maintenance-photo-link .maintenance-list-photo-thumb {
            display: block;
        }
        #maintenance .maintenance-row-actions .btn.maintenance-action-btn {
            border-radius: 6px;
            padding: 0.3rem 0.6rem;
        }
        #maintenance .pagination .page-link {
            border-radius: 6px;
            margin: 0 2px;
            border: 1px solid #e2e8f0;
            color: #475569;
        }
        #maintenance .pagination .page-item.active .page-link {
            background: var(--theme-focus, #1e40af);
            border-color: var(--theme-focus, #1e40af);
        }
        #imageViewerImage {
            max-width: 100%;
            height: auto;
        }
        #imageViewerPrevBtn, #imageViewerNextBtn {
            background: rgba(255, 255, 255, 0.9);
            border: 1px solid #dee2e6;
        }
        #imageViewerPrevBtn:hover, #imageViewerNextBtn:hover {
            background: rgba(255, 255, 255, 1);
        }
        
        /* 图片查看器显示时的样式 */
        #imageViewerModal.show {
            z-index: 9999 !important;
        }
        #imageViewerModal.show .modal-backdrop {
            z-index: 9998 !important;
        }
        
        /* 报修处理弹窗：确保在遮罩之上且内容可见，避免灰屏 */
        #repairProcessModal {
            position: fixed !important;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 1060 !important;
        }
        #repairProcessModal.show {
            display: block !important;
            visibility: visible !important;
            opacity: 1 !important;
        }
        #repairProcessModal .modal-dialog {
            position: relative;
            z-index: 1061 !important;
            display: block !important;
            visibility: visible !important;
            opacity: 1 !important;
        }
        
        /* 报修处理附件样式 */
        #repair-process-attachments .attachment-thumbnail {
            transition: transform 0.2s ease;
        }
        
        #repair-process-attachments .attachment-thumbnail:hover {
            transform: scale(1.05);
        }
        
        #repair-process-attachments .img-thumbnail {
            border: 2px solid #dee2e6;
            transition: border-color 0.2s ease;
        }
        
        #repair-process-attachments .img-thumbnail:hover {
            border-color: #007bff;
        }
        
        /* 只读字段样式 */
        input[readonly] {
            background-color: #f8f9fa;
            color: #6c757d;
            cursor: not-allowed;
        }
        
        /* 报修人字段特殊样式 */
        #repair-reported-by[readonly] {
            background-color: #e9ecef;
            border-color: #ced4da;
            color: #495057;
        }
        /* 日常工作报表卡片可点击（无浮动特效） */
        .daily-report-card {
            cursor: pointer;
        }
        .daily-report-card:hover {
            box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,0.1);
        }
        .daily-report-card { min-height: 100px; display: flex; flex-direction: column; justify-content: center; align-items: center; }
        .daily-report-card .dr-icon { font-size: 1.5rem; margin-bottom: 0.35rem; opacity: 0.9; }
        .daily-report-card .dr-num { font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
        .daily-report-card .dr-label { font-size: 0.8rem; }
        .dashboard .stats-card { min-height: 100px; }
        .dashboard .stats-card .card-body { padding: 1.25rem 1rem; }
        .dashboard .stats-card .stat-icon { font-size: 2rem; opacity: 0.9; margin-bottom: 0.25rem; }
        .dashboard .stats-card h3 { font-size: 1.75rem; font-weight: 700; margin-bottom: 0.25rem; }
        .dashboard .stats-card p { font-size: 0.9rem; opacity: 0.95; margin: 0; }
        /* 基本设定（站点设置）蓝白色调，与首页风格一致 */
        #site-settings h2 {
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
        }
        #site-settings h2 i {
            color: var(--theme-focus, #1e40af);
        }
        #site-settings .card {
            border: 1px solid #e0e7ff;
            background: #fff;
        }
        #site-settings .card-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-bottom: 1px solid #bfdbfe;
        }
        #site-settings .card-header i {
            color: var(--theme-focus, #1e40af);
        }
        #site-settings .card-body {
            background: #fff;
        }
        /* 公开报修页：仅显示填写报修单入口 */
        body.public-repair-page .sidebar,
        body.public-repair-page .mobile-navbar { display: none !important; }
        body.public-repair-page .container-fluid .row { min-height: 100vh; }
        body.public-repair-page .main-content .content-section { display: none !important; }
        body.public-repair-page .main-content .public-repair-hero { display: flex !important; }
        body.public-repair-page .main-content { flex: 0 0 100%; max-width: 100%; padding: 0; }
        /* /repair 页面美化 */
        body.public-repair-page .main-content {
            display: flex;
            min-height: 100vh;
            background: linear-gradient(160deg, #f0f9ff 0%, #e0f2fe 30%, #f8fafc 70%);
            align-items: center;
            justify-content: center;
        }
        .public-repair-hero {
            width: 100%;
            max-width: 520px;
            margin: 0 auto;
            padding: 2.5rem 1.5rem !important;
        }
        .public-repair-hero .hero-icon-wrap {
            width: 72px;
            height: 72px;
            margin: 0 auto 1.25rem;
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            border: 1px solid #bfdbfe;
            border-radius: 18px;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .public-repair-hero .hero-icon-wrap i {
            font-size: 2rem;
            color: var(--theme-focus, #1e40af);
        }
        .public-repair-hero .hero-title {
            font-size: 1.75rem;
            font-weight: 700;
            color: #1e293b;
            margin-bottom: 0.5rem;
        }
        .public-repair-hero .hero-desc {
            color: #64748b;
            font-size: 0.9375rem;
            margin-bottom: 1.75rem;
            line-height: 1.5;
        }
        .public-repair-hero .btn-cta {
            background: linear-gradient(135deg, #1e40af 0%, #1d4ed8 100%);
            border: none;
            border-radius: 12px;
            padding: 0.75rem 1.75rem;
            font-weight: 600;
            font-size: 1rem;
            box-shadow: 0 4px 14px rgba(30, 64, 175, 0.35);
            transition: transform 0.2s, box-shadow 0.2s;
        }
        .public-repair-hero .btn-cta:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(30, 64, 175, 0.4);
        }
        .public-repair-hero .query-card {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 14px;
            padding: 1.25rem 1.5rem;
            box-shadow: 0 4px 20px rgba(30, 41, 59, 0.06);
        }
        .public-repair-hero .query-card .query-label {
            font-size: 0.8125rem;
            color: #64748b;
            margin-bottom: 0.75rem;
            display: block;
        }
        .public-repair-hero .query-card .form-control {
            border-radius: 10px;
            border: 1px solid #e2e8f0;
        }
        .public-repair-hero .query-card .form-control:focus {
            border-color: var(--theme-focus, #1e40af);
            box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.15);
        }
        .public-repair-hero .query-card .btn-query {
            border-radius: 10px;
            font-weight: 500;
            padding: 0.5rem 1.25rem;
        }
        .public-repair-hero .divider-text {
            font-size: 0.75rem;
            color: #94a3b8;
            margin: 1.5rem 0 1rem;
            display: flex;
            align-items: center;
            gap: 0.75rem;
        }
        .public-repair-hero .divider-text::before,
        .public-repair-hero .divider-text::after {
            content: '';
            flex: 1;
            height: 1px;
            background: #e2e8f0;
        }
        /* 系统与分页：同蓝白色调 */
        #basic-settings h2 {
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
        }
        #basic-settings h2 i {
            color: var(--theme-focus, #1e40af);
        }
        #basic-settings .card {
            border: 1px solid #e0e7ff;
            background: #fff;
        }
        #basic-settings .card-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-bottom: 1px solid #bfdbfe;
        }
        #basic-settings .card-header i {
            color: var(--theme-focus, #1e40af);
        }
        #basic-settings .card-body {
            background: #fff;
        }
        /* 设备管理设置：与系统与分页同风格 */
        #device-manager-settings h2 {
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
        }
        #device-manager-settings h2 i {
            color: var(--theme-focus, #1e40af);
        }
        #device-manager-settings .card {
            border: 1px solid #e0e7ff;
            background: #fff;
        }
        #device-manager-settings .card-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-bottom: 1px solid #bfdbfe;
        }
        #device-manager-settings .card-header i {
            color: var(--theme-focus, #1e40af);
        }
        #device-manager-settings .card-body {
            background: #fff;
        }
        /* 查看设备报修弹窗：与站点蓝白风格一致 */
        #viewDeviceRepairModal .modal-content {
            border: 1px solid #e0e7ff;
            box-shadow: 0 4px 20px rgba(30, 64, 175, 0.08);
        }
        #viewDeviceRepairModal .modal-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-bottom: 1px solid #bfdbfe;
            padding: 1rem 1.25rem;
            border-radius: 15px 15px 0 0;
        }
        #viewDeviceRepairModal .modal-header .modal-title {
            color: var(--theme-focus, #1e40af);
            font-size: 1.1rem;
        }
        #viewDeviceRepairModal .modal-header .btn-close {
            filter: invert(1);
            opacity: 0.7;
        }
        #viewDeviceRepairModal .modal-body {
            padding: 1.25rem;
            background: #fff;
        }
        #viewDeviceRepairModal .view-repair-section {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 1rem 1.25rem;
            margin-bottom: 1rem;
        }
        #viewDeviceRepairModal .view-repair-section-title {
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            font-size: 0.9rem;
            margin-bottom: 0.75rem;
            padding-bottom: 0.5rem;
            border-bottom: 1px solid #e0e7ff;
        }
        #viewDeviceRepairModal .view-repair-section .form-label {
            color: #64748b;
            font-size: 0.8rem;
            font-weight: 500;
            margin-bottom: 0.25rem;
        }
        #viewDeviceRepairModal .view-repair-section .form-control-plaintext {
            color: #1e293b;
            font-size: 0.9375rem;
            padding: 0;
            min-height: auto;
        }
        #viewDeviceRepairModal #view-repair-order-number {
            color: var(--theme-focus, #1e40af);
            font-size: 1rem;
        }
        #viewDeviceRepairModal #view-repair-processes-section {
            margin-top: 0.5rem;
        }
        #viewDeviceRepairModal #view-repair-processes-section .view-repair-section-title {
            margin-bottom: 0.5rem;
        }
        #viewDeviceRepairModal #view-repair-processes {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 1rem;
            min-height: 60px;
        }
        #viewDeviceRepairModal .view-repair-process-item {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 1rem 1.25rem;
            margin-bottom: 0.75rem;
        }
        #viewDeviceRepairModal .view-repair-process-item:last-child {
            margin-bottom: 0;
        }
        #viewDeviceRepairModal .view-repair-process-head {
            padding-bottom: 0.5rem;
            border-bottom: 1px solid #e2e8f0;
        }
        #viewDeviceRepairModal .view-repair-process-date {
            font-size: 0.8125rem;
            color: #64748b;
        }
        #viewDeviceRepairModal .view-repair-process-fields {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }
        #viewDeviceRepairModal .view-repair-process-field {
            display: flex;
            flex-direction: column;
            gap: 0.25rem;
        }
        #viewDeviceRepairModal .view-repair-process-field .view-repair-process-label {
            font-size: 0.75rem;
            font-weight: 600;
            color: #64748b;
            text-transform: none;
        }
        #viewDeviceRepairModal .view-repair-process-field .view-repair-process-value {
            font-size: 0.9375rem;
            color: #1e293b;
        }
        #viewDeviceRepairModal .view-repair-process-text {
            line-height: 1.5;
            white-space: pre-wrap;
            word-break: break-word;
        }
        #viewDeviceRepairModal .view-repair-process-attachments .view-repair-process-value {
            display: flex;
            flex-wrap: wrap;
            align-items: flex-start;
            gap: 0.5rem;
        }
        #viewDeviceRepairModal #view-repair-processes .attachment-thumbnail:hover .attachment-overlay {
            display: flex !important;
        }
        #viewDeviceRepairModal .modal-footer {
            border-top: 1px solid #e2e8f0;
            padding: 0.75rem 1.25rem;
            background: #f8fafc;
            border-radius: 0 0 15px 15px;
        }
        /* 查看维护记录弹窗：与查看设备报修一致 */
        #viewMaintenanceModal .modal-content {
            border: 1px solid #e0e7ff;
            box-shadow: 0 4px 20px rgba(30, 64, 175, 0.08);
        }
        #viewMaintenanceModal .modal-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-bottom: 1px solid #bfdbfe;
            padding: 1rem 1.25rem;
            border-radius: 15px 15px 0 0;
        }
        #viewMaintenanceModal .modal-header .modal-title {
            color: var(--theme-focus, #1e40af);
            font-size: 1.1rem;
        }
        #viewMaintenanceModal .modal-header .btn-close {
            filter: invert(1);
            opacity: 0.7;
        }
        #viewMaintenanceModal .modal-body {
            padding: 1.25rem;
            background: #fff;
        }
        #viewMaintenanceModal .view-repair-section {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 1rem 1.25rem;
            margin-bottom: 1rem;
        }
        #viewMaintenanceModal .view-repair-section-title {
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            font-size: 0.9rem;
            margin-bottom: 0.75rem;
            padding-bottom: 0.5rem;
            border-bottom: 1px solid #e0e7ff;
        }
        #viewMaintenanceModal .view-repair-section .form-label {
            color: #64748b;
            font-size: 0.8rem;
            font-weight: 500;
            margin-bottom: 0.25rem;
        }
        #viewMaintenanceModal .view-repair-section .form-control-plaintext {
            color: #1e293b;
            font-size: 0.9375rem;
            padding: 0;
            min-height: auto;
        }
        #viewMaintenanceModal #view-maintenance-number {
            color: var(--theme-focus, #1e40af);
            font-size: 1rem;
        }
        #viewMaintenanceModal .modal-footer {
            border-top: 1px solid #e2e8f0;
            padding: 0.75rem 1.25rem;
            background: #f8fafc;
            border-radius: 0 0 15px 15px;
        }
        /* 报修提交成功弹窗：与站点风格一致 */
        #repairSubmitSuccessModal .modal-content {
            border: 1px solid #e0e7ff;
            box-shadow: 0 4px 20px rgba(30, 64, 175, 0.08);
            border-radius: 15px;
        }
        #repairSubmitSuccessModal .modal-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-bottom: 1px solid #bfdbfe;
            padding: 1rem 1.25rem;
            border-radius: 15px 15px 0 0;
        }
        #repairSubmitSuccessModal .modal-title {
            color: var(--theme-focus, #1e40af) !important;
        }
        #repairSubmitSuccessModal .modal-body {
            padding: 1.25rem;
            color: #1e293b;
        }
        #repairSubmitSuccessModal #repair-success-order-number {
            color: var(--theme-focus, #1e40af);
        }
        #repairSubmitSuccessModal .repair-success-copy-item {
            cursor: pointer;
            text-decoration: underline;
            user-select: all;
        }
        #repairSubmitSuccessModal .repair-success-copy-item:hover {
            opacity: 0.85;
        }
        #repairSubmitSuccessModal .modal-footer {
            border-top: 1px solid #e2e8f0;
            padding: 0.75rem 1.25rem;
            background: #f8fafc;
            border-radius: 0 0 15px 15px;
        }
        /* 最近一周报修单列表弹窗（公开报修页） */
        #publicRepairRecentListModal .modal-content {
            border: 1px solid #e0e7ff;
            border-radius: 15px;
        }
        #publicRepairRecentListModal .modal-header {
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: var(--theme-focus, #1e40af);
            font-weight: 600;
            border-radius: 15px 15px 0 0;
        }
        #publicRepairRecentListModal .public-repair-recent-table-wrap {
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            overflow: hidden;
        }
        #publicRepairRecentListModal .public-repair-recent-table {
            display: table !important;
            table-layout: auto;
            width: 100%;
            border-collapse: collapse;
            border-spacing: 0;
            font-size: 0.875rem;
        }
        #publicRepairRecentListModal .public-repair-recent-table thead {
            display: table-header-group !important;
        }
        #publicRepairRecentListModal .public-repair-recent-table tbody {
            display: table-row-group !important;
        }
        #publicRepairRecentListModal .public-repair-recent-table thead tr,
        #publicRepairRecentListModal .public-repair-recent-table tbody tr {
            display: table-row !important;
        }
        #publicRepairRecentListModal .public-repair-recent-table thead th {
            display: table-cell !important;
            font-weight: 600;
            color: #1e293b;
            background: #f8fafc;
            border-bottom: 1px solid #e2e8f0;
        }
        #publicRepairRecentListModal .public-repair-recent-table th,
        #publicRepairRecentListModal .public-repair-recent-table td {
            display: table-cell !important;
            white-space: nowrap;
            width: auto;
            vertical-align: middle;
            padding: 0.5rem 0.6rem;
            border-bottom: 1px solid #f1f5f9;
        }
        #publicRepairRecentListModal .public-repair-recent-table td + td,
        #publicRepairRecentListModal .public-repair-recent-table th + th {
            border-left: 1px solid #eef2ff;
        }
        #publicRepairRecentListModal .public-repair-recent-table th:nth-child(2),
        #publicRepairRecentListModal .public-repair-recent-table td:nth-child(2) {
            width: 1%;
            max-width: 380px;
        }
        #publicRepairRecentListModal .public-repair-fault-ellipsis {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        #publicRepairRecentListModal .public-repair-recent-row {
            cursor: pointer;
        }
        #publicRepairRecentListModal .public-repair-recent-row:hover {
            background: #f1f5f9;
        }
        /* 权限管理相关弹窗：须高于 #globalLoadingOverlay(9999)，否则全屏加载层会盖住弹窗 */
        #userModal,
        #permissionModal,
        #roleModal,
        #rolePermissionsModal {
            z-index: 10050 !important;
        }
        #userModal.show,
        #permissionModal.show,
        #roleModal.show,
        #rolePermissionsModal.show {
            display: block !important;
            pointer-events: auto;
        }
        #userModal .modal-dialog,
        #permissionModal .modal-dialog,
        #roleModal .modal-dialog,
        #rolePermissionsModal .modal-dialog {
            position: relative;
            z-index: 10051 !important;
            pointer-events: auto;
        }

        /* 全局加载进度条（圆形）：仅在加载较慢时显示 */
        .global-loading-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 9999;
            background: rgba(255, 255, 255, 0.85);
            align-items: center;
            justify-content: center;
            flex-direction: column;
        }
        .global-loading-overlay.is-visible {
            display: flex !important;
        }
        .global-loading-spinner-wrap {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1rem;
        }
        .global-loading-spinner {
            width: 48px;
            height: 48px;
            border: 3px solid #e2e8f0;
            border-top-color: var(--theme-focus, #1e40af);
            border-radius: 50%;
            animation: global-loading-spin 0.75s linear infinite;
        }
        .global-loading-text {
            font-size: 0.9375rem;
            color: #64748b;
        }
        @keyframes global-loading-spin {
            to { transform: rotate(360deg); }
        }

        /* 分类管理：一级 / 二级 列表区分 */
        tr.category-row-level1 > td:first-child {
            box-shadow: inset 3px 0 0 #0d6efd;
        }
        tr.category-row-level2 > td:first-child {
            box-shadow: inset 3px 0 0 #6c757d;
        }
        tr.category-row-level2 td {
            background-color: rgba(108, 117, 125, 0.06);
        }

        button.category-toggle-btn {
            text-decoration: none;
            vertical-align: baseline;
        }
        button.category-toggle-btn:hover,
        button.category-toggle-btn:focus {
            text-decoration: none;
        }

        /* 台账预览：屏幕展示用较高分辨率图源，避免超大图硬缩模糊 */
        .ledger-qr-onscreen {
            width: 100%;
            height: auto;
            image-rendering: crisp-edges;
        }

        /* 设备标签打印：名称 + 二维码自适应区域（尺寸由打印纸张与缩放决定） */
        .device-label-print-sheet {
            max-width: 420px;
            min-height: 300px;
        }
        .device-label-print-name-field .device-label-print-name {
            font-size: clamp(1rem, 2.8vw, 1.35rem);
            word-break: break-word;
            line-height: 1.35;
        }
        .device-label-print-qr-wrap {
            min-height: 200px;
        }
        .device-label-print-qr-preview {
            max-width: 100%;
            max-height: min(360px, 45vh);
            width: auto;
            height: auto;
            object-fit: contain;
            image-rendering: pixelated;
        }
