:root{color:#1f2937;background:#f4f6f8;font-family:Inter,Microsoft YaHei,PingFang SC,Hiragino Sans GB,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}button{font:inherit}.app-shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:28px;border-right:1px solid #d8dee6;background:#fff;padding:24px 18px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:#0f766e;color:#fff;font-weight:700}.brand strong,.brand span{display:block}.brand strong{font-size:15px}.brand span{margin-top:2px;color:#6b7280;font-size:12px}.nav-list{display:grid;gap:18px}.nav-section{display:grid;gap:8px}.nav-section-title{padding:0 12px;color:#8a94a3;font-size:12px;font-weight:800;letter-spacing:0}.nav-item{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;border:0;border-radius:8px;background:transparent;padding:0 12px;color:#4b5563;cursor:pointer;font-size:14px;font-weight:600;text-align:left}.nav-item:hover{background:#f3f7f7;color:#0f766e}.nav-item.active{background:#e7f5f3;color:#0f766e}.workspace{min-width:0;padding:28px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid #d8dee6;padding-bottom:24px}.topbar h1{margin:0;color:#111827;font-size:28px;line-height:1.25}.topbar p{margin:8px 0 0;color:#6b7280;font-size:14px}.icon-button,.pagination button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #cfd7df;border-radius:8px;background:#fff;color:#374151;cursor:pointer}.icon-button:hover,.pagination button:hover:not(:disabled){border-color:#0f766e;color:#0f766e}.danger-button:hover{border-color:#dc2626;color:#dc2626}.icon-button:disabled,.pagination button:disabled{cursor:not-allowed;opacity:.45}.table-panel{margin-top:24px;border:1px solid #d8dee6;border-radius:8px;background:#fff;overflow:hidden}.operation-log-page,.issue-rules-page{display:grid;gap:20px}.issue-rules-panel{margin-top:0}.issue-rules-scroll{max-height:calc(100vh - 300px)}.issue-rules-filter-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #e5e7eb;background:#f8fafc;color:#475569;font-size:13px}.issue-rules-filter-bar select{min-height:34px;border:1px solid #d8dee6;border-radius:6px;background:#fff;padding:0 8px;color:#1f2937;font:inherit}.issue-rules-table{min-width:1600px}.issue-rules-table th,.issue-rules-table td{padding:10px 9px;vertical-align:middle}.issue-rules-table th{position:sticky;top:59px;z-index:1}.issue-rules-table input:not([type=checkbox]){min-width:130px;min-height:34px;border:1px solid #d8dee6;border-radius:6px;background:#fff;padding:0 8px;color:#1f2937;font:inherit;font-size:12px}.issue-rules-table textarea{min-width:260px;min-height:86px;border:1px solid #d8dee6;border-radius:6px;background:#fff;padding:8px;color:#1f2937;font:inherit;font-size:12px;line-height:1.45;resize:vertical}.issue-rules-table input:focus,.issue-rules-table textarea:focus{border-color:#0f766e;outline:2px solid #ccfbf1}.country-holidays-table{min-width:980px}.holiday-date-picker{display:grid;gap:8px;min-width:280px}.holiday-date-picker input[type=date]{min-width:180px}.holiday-date-tags{display:flex;flex-wrap:wrap;gap:6px;max-width:360px}.holiday-date-tag{display:inline-flex;align-items:center;gap:4px;border:1px solid #99f6e4;border-radius:999px;background:#f0fdfa;color:#0f766e;padding:4px 8px;font-size:12px;cursor:pointer}.holiday-date-tag:hover{border-color:#0f766e;background:#ccfbf1}.holiday-date-empty{color:#94a3b8;font-size:12px}.issue-rules-table .rule-number-input{width:82px;min-width:82px}.issue-rules-table input[type=checkbox]{width:16px;height:16px;accent-color:#0f766e}.danger-icon-button:hover:not(:disabled){border-color:#dc2626;color:#dc2626}.issue-rules-help{border-top:1px solid #e5e7eb;border-bottom:0}.operation-log-settings,.operation-log-panel{margin-top:0}.operation-log-controls,.operation-log-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:16px}.operation-log-controls label,.operation-log-filters label{display:grid;gap:6px;color:#6b7280;font-size:12px;font-weight:700}.operation-log-controls input,.operation-log-filters input,.operation-log-filters select{min-height:36px;border:1px solid #cfd7df;border-radius:7px;background:#fff;padding:0 10px;color:#1f2937}.operation-log-controls input{min-width:220px}.log-device-id,.log-message{color:#6b7280;font-size:12px}.log-message{align-self:center;color:#0f766e}.operation-log-toolbar{align-items:flex-end}.operation-log-filters{padding:0}.operation-log-scroll{max-height:calc(100vh - 310px)}.operation-log-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:12px}.operation-log-table th,.operation-log-table td{border-bottom:1px solid #edf0f2;padding:11px 12px;text-align:left;vertical-align:top}.operation-log-table th{position:sticky;top:0;z-index:1;background:#f8fafb;color:#6b7280;font-weight:800}.operation-log-table td small{display:block;margin-top:4px;color:#9ca3af}.operation-log-table code{color:#4b5563;white-space:normal;word-break:break-word}.device-badge{display:inline-block;border-radius:999px;background:#e7f5f3;padding:3px 8px;color:#0f766e;font-weight:800}.log-success{color:#15803d;font-weight:800}.log-failed{color:#dc2626;font-weight:800}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;border-bottom:1px solid #e5e7eb;padding:12px 16px}.send-table-toolbar{align-items:center}.table-toolbar strong,.table-toolbar span{display:block}.table-toolbar strong{color:#111827;font-size:15px}.table-toolbar span{margin-top:3px;color:#6b7280;font-size:12px}.pagination{display:flex;gap:8px}.notice{border-bottom:1px solid #e5e7eb;background:#f9fafb;padding:12px 16px;color:#4b5563;font-size:14px}.notice.error{background:#fef2f2;color:#b91c1c}.top-notice{margin-top:18px;border:1px solid #fecaca;border-radius:8px}.metric-grid{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr) minmax(0,1.4fr);gap:16px;margin-top:24px}.overview-grid{grid-template-columns:minmax(180px,.75fr) minmax(180px,.75fr) minmax(0,1.1fr) minmax(0,1.2fr)}.send-summary-grid{grid-template-columns:minmax(180px,.8fr) minmax(180px,.8fr)}.metric-card{min-height:136px;border:1px solid #d8dee6;border-radius:8px;background:#fff;padding:16px}.metric-card.primary{background:#0f766e;color:#fff}.metric-card.send-metric{background:#fff7ed}.metric-card span,.metric-card small{display:block}.metric-card span{color:#6b7280;font-size:13px;font-weight:700}.metric-card.primary span,.metric-card.primary small{color:#d9fbf4}.metric-card strong{display:block;margin-top:18px;font-size:40px;line-height:1}.metric-card small{margin-top:10px;color:#6b7280;font-size:12px}.stat-list{display:grid;gap:8px;margin-top:12px}.stat-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;color:#1f2937;font-size:13px}.stat-row b{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.stat-row em{min-width:30px;border-radius:999px;background:#ecfdf5;padding:2px 8px;color:#047857;font-style:normal;font-weight:700;text-align:center}.filter-bar{display:grid;grid-template-columns:minmax(180px,1fr) 120px minmax(150px,200px) 120px 120px 72px;gap:12px;border-bottom:1px solid #e5e7eb;padding:14px 16px}.filter-bar>.action-button{min-width:72px;padding:0 10px;white-space:nowrap}.total-search-bar{display:flex;align-items:center;gap:12px;border-bottom:1px solid #e5e7eb;background:#f8fafc;padding:12px 16px}.total-search-bar .search-field{width:min(420px,100%)}.total-search-bar>span{color:#6b7280;font-size:13px;white-space:nowrap}.filtered-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;background:#f8fafc;padding:14px 16px}.filtered-summary div{display:flex;align-items:baseline;gap:10px}.filtered-summary span{color:#4b5563;font-size:13px;font-weight:700}.filtered-summary strong{color:#0f766e;font-size:28px;line-height:1}.filtered-summary small{color:#6b7280;font-size:12px}.search-field{display:flex;align-items:center;gap:8px;min-height:38px;border:1px solid #cfd7df;border-radius:8px;background:#fff;padding:0 11px;color:#6b7280}.search-field input,.filter-bar select{width:100%;border:0;outline:0;background:transparent;color:#1f2937;font:inherit;font-size:14px}.filter-bar select{min-height:38px;border:1px solid #cfd7df;border-radius:8px;background:#fff;padding:0 10px}.pdf-panel{margin-top:24px}.pdf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-bottom:1px solid #e5e7eb;padding:14px 16px}.file-picker,.action-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid #cfd7df;border-radius:8px;background:#fff;padding:0 12px;color:#374151;cursor:pointer;font-size:14px;font-weight:700}.file-picker{max-width:360px}.file-picker input{display:none}.file-picker span{overflow:hidden;max-width:250px;text-overflow:ellipsis;white-space:nowrap}.action-button:hover:not(:disabled),.file-picker:hover{border-color:#0f766e;color:#0f766e}.action-button:disabled{cursor:not-allowed;opacity:.55}.primary-action{border-color:#0f766e;background:#0f766e;color:#fff}.primary-action:hover:not(:disabled){background:#0b5f59;color:#fff}.rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}.rule-field{display:grid;gap:8px}.rule-field span{color:#374151;font-size:13px;font-weight:700}.rule-field textarea{min-height:110px;resize:vertical;border:1px solid #cfd7df;border-radius:8px;padding:10px;color:#1f2937;font:inherit;font-size:13px;line-height:1.5}.rule-field textarea:focus{border-color:#0f766e;outline:2px solid #ccfbf1}.table-scroll{width:100%;overflow-x:auto}table{width:100%;min-width:1120px;border-collapse:collapse}.today-table{min-width:920px}.overview-combined-table{min-width:1040px}.overview-combined-table thead th{position:sticky;top:0;z-index:1}.today-table-scroll{max-height:560px;overflow:auto}.today-table thead th{position:sticky;top:0;z-index:1}.editable-table{min-width:1680px}.send-table{min-width:1240px}.actions-column{min-width:210px}.select-cell{width:44px;min-width:44px;text-align:center}.select-cell input{width:16px;min-width:16px;height:16px;min-height:16px;cursor:pointer}.send-table-scroll{max-height:560px;overflow:auto}.send-table thead th{position:sticky;top:0;z-index:1}.today-table th:last-child,.today-table td:last-child,.send-table th:last-child,.send-table td:last-child{position:sticky;right:0;z-index:2;background:#fff;box-shadow:-8px 0 12px -12px #334155}.today-table thead th:last-child,.send-table thead th:last-child{z-index:3;background:#f8fafc}.overdue-row td:last-child{background:#fff7f7}.table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5e7eb;background:#fff;padding:12px 16px;color:#6b7280;font-size:13px}.bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-bottom:1px solid #e5e7eb;background:#f8fafc;padding:12px 16px}.bulk-actions span{color:#4b5563;font-size:13px;font-weight:700}.table-footer .pagination button{width:auto;min-width:72px;padding:0 10px}.segmented-control{display:inline-flex;overflow:hidden;border:1px solid #cfd7df;border-radius:8px;background:#fff}.segmented-control button{min-height:36px;border:0;border-right:1px solid #cfd7df;background:transparent;padding:0 14px;color:#4b5563;cursor:pointer;font-size:13px;font-weight:700}.segmented-control button:last-child{border-right:0}.segmented-control button.active{background:#0f766e;color:#fff}th,td{border-bottom:1px solid #eef1f4;padding:10px 12px;text-align:left;vertical-align:middle;font-size:13px;line-height:1.45;white-space:nowrap}th{background:#f8fafc;color:#4b5563;font-weight:700}td{color:#1f2937}td input{width:100%;min-width:120px;min-height:34px;border:1px solid #d8dee6;border-radius:6px;background:#fff;padding:0 8px;color:#1f2937;font:inherit;font-size:13px}td input:focus{border-color:#0f766e;outline:2px solid #ccfbf1}tbody tr:hover{background:#f9fbfb}tbody tr:nth-child(2n):not(.overdue-row){background:#fcfdfd}.overdue-row,.overdue-row:hover{background:#fff7f7}.status-tag{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;background:#eef2ff;padding:2px 9px;color:#3730a3;font-size:12px;font-weight:700}.order-status-办理中{background:#fff7ed;color:#c2410c}.order-status-已完成{background:#ecfdf5;color:#047857}.order-status-已取消{background:#fef2f2;color:#b91c1c}.order-status-overdue{border:1px solid #fecaca;background:#fee2e2;color:#991b1b}.overdue-row .customer-name,.overdue-date{color:#b91c1c;font-weight:800}.send-status-已发送{background:#ecfdf5;color:#047857}.send-status-已取消{background:#fef2f2;color:#b91c1c}.send-status-待发送{background:#fff7ed;color:#c2410c}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.row-actions .action-button{min-height:32px;padding:0 10px;font-size:12px}.danger-action:hover:not(:disabled){border-color:#dc2626;color:#dc2626}.customer-name,.subtext{display:block}.customer-name{color:#111827;font-size:13px}.subtext{margin-top:3px;color:#6b7280;font-size:12px}.empty-cell{height:96px;color:#6b7280;text-align:center}@media (max-width: 800px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #d8dee6}.workspace{padding:18px}.topbar,.table-toolbar,.filtered-summary,.rule-grid,.metric-grid,.filter-bar{display:grid;grid-template-columns:1fr}}
