*{margin:0;padding:0;box-sizing:border-box}html{overflow-y:scroll}body{background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;padding:24px;color:#333}.header{max-width:1400px;margin:0 auto 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.header-title{font-size:24px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:10px}.header-title .icon{width:auto;height:auto;background:none;display:inline;color:inherit;font-size:inherit;font-weight:inherit}.header-title .icon.pika{height:28px}.robot-icon{height:1em;width:auto;vertical-align:-.15em;margin-right:2px}.header-info{display:flex;align-items:center;gap:16px;font-size:13px;color:#666}.header-quote{flex:1;min-width:0;text-align:center;position:relative;height:44px;font-size:17px;font-weight:700;font-family:STXinwei,STXingkai,STKaiti,KaiTi,楷体,serif;color:#1a1a2e;-webkit-user-select:none;user-select:none}.header-quote #headerQuoteText{display:inline-flex;flex-direction:column;align-items:center;max-width:100%;line-height:1.35}.quote-body{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-from{align-self:flex-end;margin-top:2px;font-size:12px;font-weight:400;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#444;white-space:nowrap}.header-quote .quote-actions{position:absolute;top:100%;left:50%;transform:translate(-50%);display:none;gap:6px;padding-top:4px;z-index:10}.header-quote:hover .quote-actions{display:flex}.quote-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:#fff;border:1px solid #d0d0d0;color:#555;cursor:pointer;transition:all .15s}.quote-btn svg{width:12px;height:12px}.quote-btn:hover{background:#1976d2;color:#fff;border-color:#1976d2}.header-info .status-badge{padding:4px 14px;border-radius:20px;background:#e8f5e9;color:#2e7d32;font-weight:500;font-size:12px;transition:all .3s}.header-info .status-badge.disconnected{background:#ffebee;color:#d32f2f}.header-info .time{font-family:monospace;background:#fff;padding:4px 12px;border-radius:6px;border:1px solid #e0e0e0}.btn-request-logs{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;background:#fff3e0;color:#e65100;border:1px solid #ffe0b2;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-request-logs:hover{background:#ffe0b2;border-color:#ff9800}.btn-request-logs:active{transform:scale(.97)}.empty-state{max-width:400px;margin:100px auto;text-align:center;color:#999}.empty-state .empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state .empty-text{font-size:16px;margin-bottom:8px;color:#666}.empty-state .empty-hint{font-size:13px;color:#bbb}.main-container{max-width:1400px;margin:0 auto;display:flex;gap:16px;align-items:flex-start}.main-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.panel-grid{flex:1;min-width:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.fields-modal .modal{max-width:700px}.abnormal-panel{width:230px;flex-shrink:0;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;border:1px solid #e8e8e8;overflow:hidden;display:flex;flex-direction:column;align-self:stretch}.abnormal-panel-header{padding:10px 14px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.abnormal-panel-title{font-size:13px;font-weight:600;color:#d32f2f;display:flex;align-items:center;gap:6px}.abnormal-panel-count{font-size:11px;color:#999;font-weight:400}.abnormal-list{overflow-y:auto;flex:1;padding:6px 8px}.abnormal-list::-webkit-scrollbar{width:4px}.abnormal-list::-webkit-scrollbar-track{background:transparent}.abnormal-list::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:2px}.abnormal-item{padding:6px 8px;border-radius:6px;background:#fff5f5;border:1px solid #ffcdd2;margin-bottom:4px}.abnormal-item:last-child{margin-bottom:0}.abnormal-item-header{display:flex;align-items:center;justify-content:space-between;gap:4px}.abnormal-item-name{font-size:11px;font-weight:600;color:#c62828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.abnormal-item-robot{font-size:10px;color:#888;margin-top:1px}.abnormal-item-info{display:flex;align-items:center;justify-content:space-between;margin-top:3px}.abnormal-item-duration{font-size:10px;color:#999}.abnormal-item .btn-xs{padding:2px 6px;font-size:10px}.abnormal-empty{text-align:center;color:#bbb;font-size:12px;padding:20px 0}.panel{background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;border:1px solid #e8e8e8;transition:box-shadow .25s,border-color .25s;overflow:hidden}.panel:hover{box-shadow:0 4px 24px #0000001f;border-color:#d0d0d0}.panel.dragging{opacity:.5;border-color:#7b1fa2;box-shadow:0 0 0 2px #7b1fa24d}.panel.drag-over{border-color:#7b1fa2;box-shadow:0 0 0 2px #7b1fa24d}.panel-header{padding:12px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-header-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.panel-name{font-size:15px;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.status-tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap}.menu-container{position:relative;flex-shrink:0}.btn-view-all{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;background:#f0f4ff;color:#1976d2;border:1px solid #d0e0ff;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-view-all:hover{background:#e3f0ff;border-color:#1976d2}.btn-view-all:active{transform:scale(.97)}.btn-view-all.view-all-notran{background:#f5f5f5;color:#b0b0b0;border-color:#e5e5e5}.btn-view-all.view-all-notran:hover{background:#ececec;border-color:#d0d0d0;color:#999}.menu-btn{width:24px;height:24px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:14px;line-height:24px;text-align:center;color:#999;transition:all .15s;-webkit-user-select:none;user-select:none}.menu-btn:hover{background:#f0f0f0;color:#333}.menu-dropdown{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;border:1px solid #e8e8e8;min-width:110px;max-width:200px;z-index:100;overflow:hidden;white-space:nowrap}.menu-dropdown.show{display:block}.menu-item{padding:6px 12px;font-size:12px;cursor:pointer;color:#d32f2f;transition:background .15s;display:flex;align-items:center;gap:4px}.menu-item:hover{background:#fff5f5}.menu-item .menu-icon{font-size:12px}.panel-body{padding:6px 10px}.panel-body .btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:#1976d2;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.panel-body .btn-primary:hover{background:#1565c0;box-shadow:0 2px 8px #1976d24d}.panel-body .btn-primary:active{transform:scale(.97)}.panel-run-list{max-height:115px;overflow-y:auto;padding-right:4px}.panel-run-list::-webkit-scrollbar{width:4px}.panel-run-list::-webkit-scrollbar-track{background:transparent}.panel-run-list::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:2px}.panel-run-list::-webkit-scrollbar-thumb:hover{background:#bbb}.run-rec{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 8px;margin-bottom:3px;border-radius:6px;background:#f8f9fb;border:1px solid #f0f0f0;transition:background .15s;min-height:28px}.run-rec:last-child{margin-bottom:0}.run-rec:hover{background:#f0f2f5}.run-rec.run-rec-failed{background:#fff5f5;border-color:#ffcdd2}.run-rec-info{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;flex:1;overflow:hidden}.run-rec-actions{display:flex;gap:4px;flex-shrink:0}.run-rec-empty{text-align:center;color:#bbb;font-size:12px;padding:10px 0}.lr-robot{font-size:11px;color:#555;font-weight:500;white-space:nowrap;flex-shrink:0}.status-tag.running{background:#e3f2fd;color:#1976d2}.status-tag.ended{background:#f5f5f5;color:#6c757d}.status-tag.failed{background:#ffebee;color:#d32f2f}.status-tag.unknown{background:#fff3e0;color:#e65100}.run-duration{font-size:11px;color:#1976d2;white-space:nowrap;flex-shrink:0;font-weight:500}.run-duration.ended{color:#999}.status-time{font-size:11px;color:#999;white-space:nowrap;font-family:monospace;flex-shrink:0}.btn-xs{display:inline-flex;align-items:center;gap:2px;padding:3px 7px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;line-height:1.4}.btn-xs.btn-log{background:#e8f0fe;color:#1967d2}.btn-xs.btn-log:hover{background:#d2e3fc}.btn-xs.btn-data{background:#e8f5e9;color:#2e7d32}.btn-xs.btn-data:hover{background:#c8e6c9}.latest-logs-title{font-size:13px;font-weight:600;color:#666;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;gap:6px}.latest-logs-title .log-count{font-weight:400;color:#999;font-size:12px}.log-item{padding:10px 12px;border-radius:6px;background:#fafafa;margin-bottom:6px;border-left:3px solid #1976d2;transition:background .15s}.log-item:last-child{margin-bottom:0}.log-item.log-error{border-left-color:#d32f2f;background:#fff5f5}.log-item.log-error .log-content{color:#c62828}.log-item.log-exception{background:#ffebee;border-left-color:#b71c1c;border-left-width:4px}.log-item.log-exception .log-content{color:#b71c1c;font-weight:600}.log-time{font-size:12px;color:#999;margin-bottom:3px;font-family:monospace}.log-content{font-size:13px;color:#333;line-height:1.5;word-break:break-all;white-space:pre-wrap}.log-empty{text-align:center;color:#bbb;padding:20px;font-size:13px}.btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:all .15s}.btn:active{transform:scale(.97)}.btn-sm{padding:4px 10px;font-size:12px}.btn-log{background:#e3f2fd;color:#1976d2}.btn-log:hover{background:#bbdefb}.btn-data{background:#f3e5f5;color:#7b1fa2}.btn-data:hover{background:#e1bee7}.btn-danger{background:#ffebee;color:#d32f2f}.btn-danger:hover{background:#ffcdd2}.btn-danger-final{background:#d32f2f;color:#fff}.btn-danger-final:hover{background:#b71c1c}.btn-cancel{background:#f5f5f5;color:#666}.btn-cancel:hover{background:#e0e0e0}.btn:disabled{opacity:.5;cursor:not-allowed}.users-container{background:#fff;border-radius:0 0 12px 12px;border:1px solid #e0e0e0;border-top:none;padding:20px 24px;box-shadow:0 1px 4px #0000000f;position:relative;min-height:calc(100vh - 120px)}.perm-checkboxes{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 12px}.perm-checkboxes label{display:inline-flex;align-items:center;gap:5px;border:1px solid #d0d7e2;border-radius:8px;padding:5px 12px;font-size:13px;color:#333;background:#fafbfd;cursor:pointer}.perm-checkboxes label:has(input:checked){background:#e8f0fe;border-color:#1976d2;color:#1976d2}.perm-checkboxes input{accent-color:#1976d2;cursor:pointer}.perm-chips{display:flex;flex-wrap:wrap;gap:4px}.perm-chip{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;line-height:1.4;background:#e8f0fe;color:#1967d2;white-space:nowrap}.perm-chip.none{background:#f0f0f0;color:#999}.perm-chip.all{background:#fff3cd;color:#8a6100}.user-login-cell{line-height:1.5}.user-login-cell .u-time{font-size:13px;color:#333}.user-login-cell .u-ip{font-size:11px;color:#999;margin-top:2px}.user-login-cell .u-never{color:#bbb;font-size:12px}.user-actions{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;white-space:nowrap}.user-actions .btn-sm{flex:0 0 auto}.users-table{table-layout:fixed}.users-table th,.users-table td{overflow:hidden;text-overflow:ellipsis}.users-table td{white-space:nowrap}.users-table td:nth-child(3){white-space:normal}.users-table td:nth-child(6) .user-actions{justify-content:flex-start}.btn-oplog{background:#fff3e0;color:#e65100}.btn-oplog:hover{background:#ffe0b2}.oplog-meta{display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid #eee;background:#fafbff;font-size:13px;color:#555}.oplog-meta .oplog-user{font-weight:600;color:#1976d2}.oplog-meta .oplog-hint{color:#999;font-size:12px}.oplog-table{width:100%;border-collapse:collapse;font-size:13px}.oplog-table th{text-align:left;padding:8px 12px;border-bottom:2px solid #e0e0e0;color:#666;font-weight:600;font-size:12px}.oplog-table td{padding:8px 12px;border-bottom:1px solid #f0f0f0;vertical-align:top}.oplog-table .op-time{white-space:nowrap;color:#555}.oplog-table .op-action{white-space:nowrap;font-weight:600;color:#333}.oplog-table .op-detail{color:#444;word-break:break-all}.oplog-table .op-ip{white-space:nowrap;font-family:Consolas,monospace;font-size:12px;color:#333}.oplog-table .op-ua{font-size:11px;color:#999;word-break:break-all}.oplog-table .req-log-row{cursor:pointer}.oplog-table .req-log-row:hover td{background:#f7f9ff}.oplog-table .req-log-row.expanded td{background:#eef2ff}.oplog-table .req-log-path{font-family:Consolas,monospace;font-size:12px;color:#333;word-break:break-all}.oplog-table .req-log-toggle{color:#999;text-align:center}.oplog-table .req-log-detail-row td{background:#fafbfd;padding:4px 12px 12px}.oplog-table .req-log-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:#555;padding:4px 0}.oplog-table .req-log-err{color:#d32f2f}.oplog-table .req-log-label{margin-top:8px;font-size:12px;color:#666}.oplog-table .req-log-body{margin:4px 0 0;padding:8px 10px;background:#fff;border:1px solid #eee;border-radius:4px;font-family:Consolas,monospace;font-size:12px;color:#333;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow:auto}.oplog-table .req-log-details{margin:4px 0 0;padding-left:18px;font-size:12px;color:#444}.run-records-toolbar{display:flex;align-items:center;gap:12px;padding:8px 20px;border-bottom:1px solid #eee;background:#fafbff}.rr-check-all{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:#444;cursor:pointer}.rr-check-all input,.rr-check input{accent-color:#1976d2;cursor:pointer}.rr-selected{font-size:13px;color:#888;flex:1}.rr-check{margin-right:6px}.switches-container{background:#fff;border-radius:0 0 12px 12px;border:1px solid #e0e0e0;border-top:none;padding:20px 24px;min-height:calc(100vh - 120px);position:relative}.switches-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.switches-header h3{margin:0;font-size:16px;color:#1a1a2e}.switches-toast{display:none;position:absolute;top:12px;left:50%;transform:translate(-50%);padding:8px 20px;border-radius:8px;font-size:13px;background:#e8f5e9;color:#2e7d32;box-shadow:0 2px 8px #0000001f;z-index:20}.switches-toast.active{display:block;animation:toastFade .25s ease}@keyframes toastFade{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.btn-add-switch{background:#1976d2;color:#fff;border:none;padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;transition:background .15s}.btn-add-switch:hover{background:#1565c0}.switches-table{width:100%;border-collapse:collapse;font-size:13px}.switches-table th{text-align:left;padding:10px 12px;border-bottom:2px solid #e0e0e0;color:#666;font-weight:600}.switches-table td{padding:10px 12px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.switches-table tbody tr:hover{background:#fafbff}.switches-empty{text-align:center;color:#bbb;padding:30px 0!important}.switch-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-toggle input{display:none}.switch-slider{width:36px;height:20px;background:#ccc;border-radius:10px;position:relative;transition:background .2s}.switch-slider:after{content:"";position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:2px;left:2px;transition:transform .2s}.switch-toggle input:checked+.switch-slider{background:#2e7d32}.switch-toggle input:checked+.switch-slider:after{transform:translate(16px)}.switch-label{font-size:12px;color:#888}.btn-switch-del{background:none;border:1px solid #e0e0e0;padding:4px 10px;border-radius:4px;font-size:12px;color:#d32f2f;cursor:pointer;transition:all .15s}.btn-switch-del:hover{background:#fff5f5;border-color:#d32f2f}.btn-switch-log{background:none;border:1px solid #e0e0e0;padding:4px 10px;border-radius:4px;font-size:12px;color:#1976d2;cursor:pointer;transition:all .15s}.btn-switch-log:hover{background:#f0f7ff;border-color:#1976d2}.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;z-index:1000;justify-content:center;align-items:center}.modal-overlay.active{display:flex}.modal{background:#fff;border-radius:12px;width:90%;max-width:720px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;animation:modalIn .2s ease}.modal-sm{max-width:420px}.modal-lg{max-width:900px}.modal-xl{max-width:800px}.modal-xxl{max-width:1320px;max-height:92vh}@keyframes modalIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:16px 20px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-header h3{font-size:16px;font-weight:600;color:#1a1a2e}.modal-close{background:none;border:none;font-size:22px;color:#999;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .15s}.modal-close:hover{background:#f5f5f5;color:#333}.modal-body{padding:16px 20px;overflow-y:auto;flex:1;min-height:200px;transition:opacity .2s ease}.modal-body.loading{display:flex;align-items:center;justify-content:center}.run-records-loading{display:flex;align-items:center;justify-content:center;padding:60px 0}.run-records-loading .spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .7s linear infinite}.req-log-item{padding:10px 16px;border-bottom:1px solid #f0f0f0;font-size:12px;line-height:1.6}.req-log-item:last-child{border-bottom:none}.req-log-time{color:#888;font-family:monospace;font-size:11px}.req-log-method{font-weight:600;color:#1565c0}.req-log-path{color:#6a1b9a;font-weight:500}.req-log-ct{color:#888;font-size:11px}.req-log-body{margin-top:4px;background:#f5f5f5;padding:6px 10px;border-radius:4px;font-family:monospace;font-size:11px;color:#333;white-space:pre-wrap;word-break:break-all;max-height:120px;overflow-y:auto}.toast-container{position:fixed;top:168px;left:50%;transform:translate(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none;align-items:center}.toast{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;color:#fff;box-shadow:0 4px 16px #00000026;animation:toastIn .3s ease,toastOut .3s ease 2.5s forwards;text-align:center;pointer-events:auto}.toast.success{background:#2e7d32}.toast.error{background:#d32f2f}@keyframes toastIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.sw-prompt-input{width:100%;padding:10px 12px;border:1px solid #d0d0d0;border-radius:8px;font-size:14px;outline:none;box-sizing:border-box;transition:border-color .15s;margin-bottom:22px}.sw-prompt-input:focus{border-color:#1976d2}.sw-prompt-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.sw-prompt-actions button{padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.sw-prompt-actions .btn-cancel{background:#f0f0f0;color:#666}.sw-prompt-actions .btn-cancel:hover{background:#e0e0e0}.sw-prompt-actions .btn-confirm{background:#1976d2;color:#fff}.sw-prompt-actions .btn-confirm:hover{background:#1565c0}.btn-spin{display:inline-flex;align-items:center;gap:4px}.btn-spin .spinner-icon{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spPin .6s linear infinite}@keyframes spPin{to{transform:rotate(360deg)}}.req-log-ok{color:#2e7d32;font-weight:500}.req-log-failed{color:#c62828;font-weight:500}.req-log-error{color:#d32f2f;font-family:monospace;font-size:11px;margin-top:2px}.req-log-detail{color:#f57c00;font-family:monospace;font-size:11px;margin-top:2px}.req-log-empty{text-align:center;color:#bbb;padding:40px 0;font-size:14px}.run-record{padding:12px 16px;border-radius:8px;background:#fafafa;margin-bottom:8px;border:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;transition:all .15s}.run-record:last-child{margin-bottom:0}.run-record:hover{border-color:#d0d0d0;background:#f5f5f5}.run-record.run-failed{background:#fff5f5;border-color:#ffcdd2}.run-record.run-failed:hover{background:#ffebee}.run-record-info{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0;flex:1}.run-record-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500}.run-record-status.running{color:#1976d2}.run-record-status.ended{color:#6c757d}.run-record-status.failed{color:#d32f2f}.run-record-robot{font-size:12px;color:#555;font-weight:500;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-record-starttime{font-size:12px;color:#888}.delete-modal-input{padding:0 16px 16px}.delete-modal-input input{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s;box-sizing:border-box}.delete-modal-input input:focus{border-color:#1976d2}.run-record-actions{display:flex;gap:6px;flex-shrink:0}.context-menu-item:hover{background:#fff5f5}.today-dashboard{background:#fff;border-radius:12px;box-shadow:0 1px 8px #0000000d;border:1px solid #e0e0e0;overflow:hidden;transition:box-shadow .3s}.today-dashboard:hover{box-shadow:0 2px 16px #00000014}.today-dashboard-header{padding:10px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(135deg,#fafcff,#f5f7ff)}.today-dashboard-title{font-size:14px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:6px}.today-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid #f0f0f0;background:#fafbff}.today-stat-card{padding:14px 8px;text-align:center;border-right:1px solid #f0f0f0;transition:all .2s;position:relative}.today-stat-card:last-child{border-right:none}.today-stat-card:hover{background:#fff;box-shadow:inset 0 -2px #1976d2}.today-stat-number{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.2;margin-bottom:2px;word-break:keep-all}.today-stat-number.green{color:#2e7d32}.today-stat-number.blue{color:#1976d2}.today-stat-number.orange{color:#e65100}.today-stat-number.purple{color:#7b1fa2}.today-stat-label{font-size:12px;color:#888;font-weight:500;letter-spacing:.3px}.stat-card-sm{padding:10px 6px}.today-detail-list{padding:10px 14px}.today-detail-empty{text-align:center;color:#bbb;padding:20px 0;font-size:13px}.today-detail-item{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:8px;padding:7px 12px;border-radius:6px;background:#f8f9fb;border:1px solid #eee;margin-bottom:4px;transition:all .15s}.today-detail-item:last-child{margin-bottom:0}.today-detail-item:hover{background:#f0f4ff;border-color:#d0e0ff}.today-process-group{margin-bottom:10px;border-radius:8px;border:1px solid #e8e8e8;overflow:hidden;background:#fff;display:grid;grid-template-columns:248px auto 1fr}.today-process-group:last-child{margin-bottom:0}.today-group-name-cell{display:flex;align-items:center;padding:7px 12px;background:transparent;border-right:1px solid #e8e8e8;box-sizing:border-box}.today-group-name-text{font-size:13px;font-weight:600;color:#1a1a2e;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.3}.today-group-count-badge{font-size:11px;color:#888;background:#e0e4ea;padding:1px 10px;border-radius:10px;white-space:nowrap;display:inline-block;flex-shrink:0}.today-process-group>.today-detail-meta{padding:7px 12px;transition:all .15s;border-bottom:1px solid #e8e8e8}.today-process-group>.today-detail-meta:hover{background:#f5f7fc}.today-process-group>.today-detail-data-block{padding:7px 12px;border-left:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;white-space:nowrap;font-size:12px}.today-summary-row{display:contents}.today-summary-meta{grid-column:2 / -1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:20px;padding:9px 12px;font-size:12px;color:#555;border-left:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.today-summary-meta .summary-duration.data-val{color:#1976d2;font-weight:600}.today-summary-meta .summary-runcount.data-val{color:#e65100;font-weight:600}.today-summary-meta .today-detail-data-item .data-label{font-weight:600}.today-detail-name{font-size:13px;font-weight:600;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-detail-meta{display:flex;align-items:center;justify-content:flex-start;gap:36px;padding:7px 12px;font-size:12px;color:#666;min-width:0}.today-detail-meta .meta-field{display:inline-flex;align-items:center;flex:none;overflow:hidden;white-space:nowrap}.today-detail-meta .meta-label{flex-shrink:0;color:#555}.today-detail-meta .meta-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-detail-meta .meta-robot{width:220px;text-align:left}.today-detail-meta .meta-robot .meta-label,.today-detail-meta .meta-robot .meta-val{color:#555;font-weight:500}.today-detail-meta .meta-time{width:175px;text-align:left}.today-detail-meta .meta-time .meta-label,.today-detail-meta .meta-time .meta-val{color:#555;font-weight:500}.today-detail-meta .meta-duration{width:135px;text-align:left}.today-detail-meta .meta-duration .meta-label{color:#555;font-weight:500}.today-detail-meta .meta-duration .meta-val{color:#1976d2;font-weight:500}.today-detail-data-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.today-detail-data-item{display:flex;align-items:center;gap:4px;white-space:nowrap;line-height:1.4}.today-detail-data-item .data-label{color:#555;flex-shrink:0;font-weight:400}.today-detail-data-item .data-val{font-weight:500;color:#2e7d32}.today-notes-box{margin-top:10px;border-top:1px solid #f0f0f0;padding:10px 14px}.today-notes-header{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:6px}.today-notes-textarea{width:100%;min-height:60px;padding:8px 10px;border:1px solid #e0e0e0;border-radius:6px;font-size:13px;font-weight:600;color:#1a1a2e;background:#fafafa;resize:none;box-sizing:border-box;outline:none;transition:border-color .15s;overflow:hidden}.today-notes-textarea:focus{border-color:#1976d2;background:#fff}.today-dashboard-actions{display:flex;align-items:center;gap:8px}.today-dashboard-title{cursor:default}.fields-modal-field-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f9fb;border:1px solid #f0f0f0;border-radius:6px;margin-bottom:6px}.fields-modal-field-row .field-name{flex:1;font-size:14px;color:#333}.fields-modal-field-row .btn-remove-field{width:24px;height:24px;border:none;background:#ffebee;color:#d32f2f;border-radius:4px;cursor:pointer;font-size:14px;line-height:24px;text-align:center;transition:all .15s;flex-shrink:0}.fields-modal-field-row .btn-remove-field:hover{background:#ffcdd2}.fields-modal-add-row{display:flex;align-items:center;gap:8px;margin-top:10px}.fields-modal-add-row input{flex:1;padding:8px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:13px;outline:none;transition:border-color .15s}.fields-modal-add-row input:focus{border-color:#7b1fa2}.fields-modal-add-row .btn-add-field{padding:8px 16px;background:#7b1fa2;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.fields-modal-add-row .btn-add-field:hover{background:#6a1b9a}.fields-modal-add-row .btn-add-field:active{transform:scale(.97)}.cat-modal-category{margin-bottom:16px;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden}.cat-modal-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f5f7fc;border-bottom:1px solid #e8e8e8}.cat-modal-header .cat-name{flex:1;font-size:14px;font-weight:600;color:#1a1a2e}.cat-modal-header .btn-remove-cat{width:22px;height:22px;border:none;background:#ffebee;color:#d32f2f;border-radius:50%;cursor:pointer;font-size:14px;line-height:22px;text-align:center;transition:all .15s}.cat-modal-header .btn-remove-cat:hover{background:#ffcdd2}.cat-modal-fields{padding:8px 12px}.cat-field-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#f8f9fb;border:1px solid #f0f0f0;border-radius:4px;margin-bottom:4px}.cat-field-row .cf-name{flex:1;font-size:13px;color:#333}.cat-field-row .btn-remove-cf{width:20px;height:20px;border:none;background:transparent;color:#999;cursor:pointer;font-size:14px;line-height:20px;text-align:center;transition:all .15s}.cat-field-row .btn-remove-cf:hover{color:#d32f2f}.cat-field-row .cf-actions{display:flex;align-items:center;gap:2px}.cat-field-row .btn-move-cf{width:20px;height:20px;border:none;background:transparent;color:#999;cursor:pointer;font-size:14px;line-height:20px;text-align:center;transition:all .15s}.cat-field-row .btn-move-cf:hover{color:#1976d2;background:#e3f2fd}.cat-add-field-row{display:flex;align-items:center;gap:6px;margin-top:6px}.cat-add-field-row input{flex:1;padding:6px 10px;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;outline:none}.cat-add-field-row input:focus{border-color:#7b1fa2}.cat-add-field-row .btn-cat-add-field{padding:6px 12px;background:#7b1fa2;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .15s}.cat-add-field-row .btn-cat-add-field:hover{background:#6a1b9a}.cat-add-category-row{margin-top:12px}.cat-add-category-row .btn-add-category{width:100%;padding:8px;background:#f3e5f5;color:#7b1fa2;border:1px dashed #ce93d8;border-radius:6px;font-size:13px;cursor:pointer;transition:all .15s}.cat-add-category-row .btn-add-category:hover{background:#e1bee7}.data-modal-body{padding:0 20px 16px;overflow-y:auto;flex:1}.data-modal-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.data-modal-table th{position:sticky;top:0;z-index:2;background:#f5f5f5;padding:8px 12px;text-align:left;font-weight:600;color:#666;border-bottom:2px solid #e0e0e0}.data-modal-table td{padding:8px 12px;border-bottom:1px solid #f0f0f0;color:#333}.data-modal-table tbody tr:hover td{background:#fafafa}.data-modal-table .dt-label{color:#888;white-space:nowrap;width:35%}.data-modal-table .dt-value{font-weight:500}.data-modal-table th.att-col{width:70px;text-align:center}.data-modal-table td.att-col{text-align:center}.btn-attachment{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;font-size:11px;border:1px solid #1976d2;background:#e3f2fd;color:#1976d2;border-radius:4px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn-attachment:hover{background:#bbdefb}.btn-attachment.disabled{border-color:#e0e0e0;background:#f5f5f5;color:#ccc;cursor:not-allowed;pointer-events:none}.delete-modal-msg{text-align:center;padding:24px 16px;font-size:15px;color:#333;line-height:1.6}.delete-modal-msg .delete-warning{color:#d32f2f;font-size:13px;margin-top:8px}.delete-modal-actions{display:flex;justify-content:center;gap:12px;padding:0 16px 20px}.delete-modal-actions .btn{padding:8px 28px;font-size:14px;border-radius:8px}.loading-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#fffc;z-index:999;justify-content:center;align-items:center}.loading-overlay.active{display:flex}.spinner{width:36px;height:36px;border:3px solid #e0e0e0;border-top-color:#1976d2;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rename-modal-input{padding:16px 20px}.rename-modal-input label{display:block;font-size:13px;color:#666;margin-bottom:4px}.rename-modal-input .rename-original{font-size:12px;color:#999;margin-bottom:12px;padding:6px 10px;background:#f5f5f5;border-radius:4px}.rename-modal-input input{width:100%;padding:10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;outline:none;transition:border-color .15s;box-sizing:border-box}.rename-modal-input input:focus{border-color:#1976d2}.rename-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 20px 20px}.rename-modal-actions .btn{padding:8px 24px;font-size:14px;border-radius:8px}.menu-item-rename{padding:6px 12px;font-size:12px;cursor:pointer;color:#333;transition:background .15s;display:flex;align-items:center;gap:4px}.menu-item-rename:hover{background:#f0f4ff}.menu-item-rename .menu-icon{font-size:12px}.rule-section{margin-top:20px;border-top:2px solid #e8e8e8;padding-top:16px}.rule-section-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:10px;display:flex;align-items:center;gap:6px}.rule-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f8f9fb;border:1px solid #e8e8e8;border-radius:6px;margin-bottom:6px}.rule-item select{flex:1;padding:6px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:12px;outline:none;background:#fff}.rule-item select:focus{border-color:#1976d2}.rule-item .btn-remove-rule{width:22px;height:22px;border:none;background:#ffebee;color:#d32f2f;border-radius:50%;cursor:pointer;font-size:14px;line-height:22px;text-align:center;flex-shrink:0;transition:all .15s}.rule-item .btn-remove-rule:hover{background:#ffcdd2}.rule-add-row{margin-top:8px}.rule-add-row .btn-add-rule{width:100%;padding:7px;background:#e3f2fd;color:#1976d2;border:1px dashed #90caf9;border-radius:6px;font-size:12px;cursor:pointer;transition:all .15s}.rule-add-row .btn-add-rule:hover{background:#bbdefb}.rule-empty{text-align:center;color:#bbb;padding:12px 0;font-size:12px}@media(max-width:900px){.main-container{flex-direction:column}.abnormal-panel{width:100%;height:auto;max-height:none;position:static}}@media(max-width:600px){.panel-grid{grid-template-columns:1fr}.header,.run-record{flex-direction:column;align-items:flex-start}.run-record-actions{align-self:flex-end}.modal{width:95%;max-height:90vh}}.login-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;display:flex;align-items:center;justify-content:center;z-index:9999}.login-overlay.hidden{display:none}.login-box{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:40px;width:400px;max-width:90vw}.login-box .login-header{text-align:center;margin-bottom:28px}.login-box .login-header .icon{font-size:48px;margin-bottom:10px}.login-box .login-header .icon.pika{height:48px}.login-box .login-header h2{font-size:22px;font-weight:700;color:#1a1a2e}.login-box .login-header p{font-size:13px;color:#888;margin-top:4px}.login-box .form-group{margin-bottom:18px}.login-box .form-group label{display:block;font-size:13px;font-weight:600;color:#444;margin-bottom:6px}.login-box .form-group input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:14px;transition:all .2s;outline:none;font-family:inherit}.login-box .form-group input:focus{border-color:#1976d2;box-shadow:0 0 0 3px #1976d226}.login-box .login-btn{width:100%;padding:12px;background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.login-box .login-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px #1976d266}.login-box .login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-box .error-msg{background:#fff5f5;color:#d32f2f;border:1px solid #ffcdd2;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px;display:none}.login-box .error-msg.show{display:block}.login-box .login-footer{text-align:center;margin-top:20px;font-size:12px;color:#aaa}.login-box .remember-row{margin-bottom:20px}.login-box .remember-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none}.login-box .remember-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#1976d2}.login-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:loginSpin .6s linear infinite;vertical-align:middle;margin-right:6px}@keyframes loginSpin{to{transform:rotate(360deg)}}.main-tabs{display:flex;gap:0;background:#fff;border-radius:12px 12px 0 0;border:1px solid #e0e0e0;border-bottom:none;overflow:hidden;margin-bottom:0}.main-tab{padding:12px 28px;font-size:14px;font-weight:600;color:#888;cursor:pointer;transition:all .2s;border-bottom:3px solid transparent;-webkit-user-select:none;user-select:none;position:relative}.main-tab:hover{color:#555;background:#fafafa}.main-tab.active{color:#1976d2;border-bottom-color:#1976d2;background:#f8f9ff}.main-tab .tab-badge{display:inline-block;font-size:11px;background:#e3f2fd;color:#1976d2;padding:1px 8px;border-radius:10px;margin-left:4px;font-weight:500}.main-tab-content{display:none}.main-tab-content.active{display:block}.monitor-container{background:#fff;border-radius:0 0 12px 12px;border:1px solid #e0e0e0;border-top:none;padding:16px;min-height:calc(100vh - 120px);overflow-y:auto}.server-container{background:#fff;border-radius:0 0 12px 12px;border:1px solid #e0e0e0;border-top:none;padding:16px;min-height:calc(100vh - 120px)}.server-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.server-header h3{margin:0;font-size:16px;color:#1a1a2e}.server-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:#888}.btn-refresh{padding:5px 12px;background:#f0f4ff;color:#1976d2;border:1px solid #d6e4ff;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.btn-refresh:hover{background:#e3f2fd;border-color:#1976d2}.server-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.server-card{background:#fafbff;border:1px solid #e8e8e8;border-radius:12px;padding:14px;display:flex;flex-direction:column}.server-card-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.server-card-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700}.server-card-title{font-size:13px;color:#666;font-weight:500}.server-card-value{font-size:26px;font-weight:700;color:#1a1a2e;margin:6px 0;line-height:1.2}.server-card-detail{font-size:12px;color:#888;margin-top:auto}.server-progress{height:8px;background:#e8e8e8;border-radius:4px;overflow:hidden;margin-top:10px}.server-progress-bar{height:100%;border-radius:4px;transition:width .3s ease;min-width:2px}.bg-blue{background:#1976d2}.bg-green{background:#2e7d32}.bg-orange{background:#e65100}.bg-purple{background:#7b1fa2}.bg-gray{background:#757575}.server-info-row{display:flex;justify-content:space-between;font-size:12px;padding:5px 0;border-bottom:1px solid #f0f0f0;color:#555}.server-info-row:last-child{border-bottom:none}.server-info-row span:first-child{color:#888}.server-empty{text-align:center;color:#999;padding:80px 0;font-size:14px}@media(max-width:768px){.server-grid{grid-template-columns:1fr}}.monitor-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#fafbff;border:1px solid #e0e0e0;border-top:none;border-radius:0;position:relative;z-index:5}.monitor-overview-item{padding:14px 8px;text-align:center;border-right:1px solid #f0f0f0;position:relative}.monitor-overview-item:last-child{border-right:none}.monitor-overview-number{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.2;margin-bottom:2px}.monitor-overview-number.green{color:#2e7d32}.monitor-overview-number.blue{color:#1976d2}.monitor-overview-number.orange{color:#e65100}.monitor-overview-number.purple{color:#7b1fa2}.monitor-overview-label{font-size:12px;color:#888;font-weight:500}.ov-hover{cursor:default}.ov-popover{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:220px;max-width:380px;max-height:260px;overflow-y:auto;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 6px 24px #00000026;z-index:100;text-align:left;padding:6px 0}.ov-hover:hover .ov-popover{display:block}.ov-popover-item{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:12px;border-bottom:1px solid #f7f7f7}.ov-popover-item:last-child{border-bottom:none}.ov-popover-item .ovp-dot{font-size:11px;line-height:1;color:#1976d2;flex-shrink:0}.ov-popover-item .ovp-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#1a1a2e}.ov-popover-item .ovp-robot{color:#888;white-space:nowrap;flex-shrink:0}.ov-popover-item .ovp-time{color:#666;font-size:11px;white-space:nowrap;flex-shrink:0}.ov-popover-empty{padding:12px;text-align:center;color:#bbb;font-size:12px}.report-sub-tabs{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #f0f0f0;background:#fafbff}.report-sub-tab{padding:10px 20px;font-size:13px;font-weight:600;color:#888;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;-webkit-user-select:none;user-select:none}.report-sub-tab:hover{color:#555}.report-sub-tab.active{color:#1976d2;border-bottom-color:#1976d2}.report-period-selector{margin-left:auto;display:flex;align-items:center;gap:6px}.report-period-selector input[type=date],.report-period-selector input[type=week],.report-period-selector input[type=month]{padding:5px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;outline:none;font-family:inherit}.report-period-selector input:focus{border-color:#1976d2}.report-period-selector .period-nav-btn{padding:4px 10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;color:#555;transition:all .15s;line-height:1.2}.report-period-selector .period-nav-btn:hover{background:#f0f0f0;border-color:#ccc}.report-content{padding:16px;min-height:100px}.report-empty{text-align:center;color:#bbb;padding:40px 0;font-size:14px}.report-loading{text-align:center;color:#999;padding:40px 0;font-size:14px}.shop-container{background:#fff;border-radius:0 0 12px 12px;border:1px solid #e0e0e0;border-top:none;padding:16px}.shop-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;background:#fafbff;border:1px solid #e8e8e8;border-radius:10px;margin-bottom:12px}.shop-filter-bar label{font-size:13px;color:#666;font-weight:500;margin-left:4px}.shop-filter-bar select,.shop-filter-bar input[type=date]{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;outline:none;font-family:inherit;background:#fff;color:#333}.shop-filter-bar select:focus,.shop-filter-bar input[type=date]:focus{border-color:#1976d2}.shop-range-group{display:inline-flex;gap:0;border:1px solid #d5d9e8;border-radius:6px;overflow:hidden;margin-right:2px}.shop-range-btn{padding:6px 14px;border:none;border-left:1px solid #e4e7f0;background:#fff;color:#555;font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s}.shop-range-btn:first-child{border-left:none}.shop-range-btn:hover{background:#f0f4fb;color:#1976d2}.shop-range-btn.active{background:#1976d2;color:#fff;font-weight:600}.shop-btn{padding:7px 16px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.shop-btn-primary{background:#1976d2;color:#fff}.shop-btn-primary:hover{background:#1565c0}.shop-btn-default{background:#fff;color:#555;border:1px solid #ddd}.shop-btn-default:hover{background:#f0f0f0}.shop-btn-export{background:#2e7d32;color:#fff;margin-left:auto}.shop-btn-export:hover{background:#1b5e20}.shop-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.shop-stat-card{background:#fafbff;border:1px solid #e8e8e8;border-radius:10px;padding:12px 14px;text-align:center}.shop-stat-number{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.2;margin-bottom:2px;word-break:keep-all}.shop-stat-number.green{color:#2e7d32}.shop-stat-number.blue{color:#1976d2}.shop-stat-number.orange{color:#e65100}.shop-stat-number.purple{color:#7b1fa2}.shop-stat-label{font-size:12px;color:#888;font-weight:500;letter-spacing:.3px}.shop-group{margin-bottom:12px;border:1px solid #e8e8e8;border-radius:10px;overflow:hidden;background:#fff}.shop-group:last-child{margin-bottom:0}.shop-group-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fafbff;border-bottom:1px solid #e8e8e8;cursor:pointer;-webkit-user-select:none;user-select:none}.shop-group-header:hover{background:#f0f4ff}.shop-group-title{font-size:14px;font-weight:700;color:#1a1a2e}.shop-group-badge{background:#e3f2fd;color:#1976d2;font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px}.shop-group-arrow{margin-left:auto;color:#999;font-size:12px}.shop-group-body{overflow:auto;max-height:55vh}.shop-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;white-space:nowrap}.shop-table thead th{position:sticky;top:0;z-index:2;background:#f5f6fa;text-align:center;padding:8px 10px;border-bottom:2px solid #e0e0e0;color:#555;font-weight:600}.shop-table td{padding:7px 10px;border-bottom:1px solid #f0f0f0;color:#333;text-align:center}.shop-table tbody tr:hover{background:#fafbff}.shop-table .col-shop,.shop-table .col-date,.shop-table .col-ddate{position:sticky;background:#fff;box-shadow:inset -1px 0 #e8e8e8}.shop-table .col-shop{left:0;z-index:1;width:160px;min-width:160px;max-width:160px;font-weight:600}.shop-table .col-date{left:160px;z-index:1;width:88px;min-width:88px;max-width:88px;font-weight:600;color:#1976d2}.shop-table .col-ddate{left:248px;z-index:1;width:88px;min-width:88px;max-width:88px;font-weight:600}.shop-table thead .col-shop,.shop-table thead .col-date,.shop-table thead .col-ddate{z-index:3}.shop-table tbody tr:hover .col-shop,.shop-table tbody tr:hover .col-date,.shop-table tbody tr:hover .col-ddate{background:#fafbff}.shop-table td.shop-hl-row-cell{background:#fff7e6}.shop-table td.shop-hl-col,.shop-table td.shop-hl-col.col-shop,.shop-table td.shop-hl-col.col-date,.shop-table td.shop-hl-col.col-ddate{background:#e6f7ff}.shop-table tbody tr:hover td.shop-hl-row-cell{background:#fff7e6}.shop-table tbody tr:hover td.shop-hl-col,.shop-table tbody tr:hover td.shop-hl-col.col-shop,.shop-table tbody tr:hover td.shop-hl-col.col-date,.shop-table tbody tr:hover td.shop-hl-col.col-ddate{background:#e6f7ff}.shop-table td.shop-hl-cell{background:#ffd591!important;box-shadow:inset 0 0 0 2px #fa8c16!important;font-weight:700}.shop-table thead th.shop-hl-th{background:#7ec4ff!important;color:#fff}#shopHlMenu{position:fixed;z-index:99999;min-width:190px;background:#fff;border:1px solid #dfe3ea;border-radius:8px;box-shadow:0 8px 26px #00000029;padding:10px;font-size:12px}#shopHlMenu .shop-hl-title{color:#57606a;margin:0 2px 8px}#shopHlMenu .shop-hl-title b{color:#24292f}#shopHlMenu .shop-hl-swatches{display:flex;flex-wrap:wrap;gap:6px;width:196px}#shopHlMenu .shop-hl-swatch{width:22px;height:22px;border-radius:4px;border:1px solid rgba(0,0,0,.12);cursor:pointer;padding:0}#shopHlMenu .shop-hl-swatch:hover{transform:scale(1.18);box-shadow:0 0 0 2px #0000002e}#shopHlMenu .shop-hl-clear{margin-top:8px;font-size:12px;color:#d4380d;background:none;border:none;cursor:pointer;padding:0 2px;font-weight:600}#shopHlMenu .shop-hl-clear:hover{text-decoration:underline}#shopHlMenu .shop-hl-tip{margin-top:8px;font-size:11px;color:#8b949e}.shop-empty{text-align:center;color:#bbb;padding:40px 0;font-size:14px}.shop-loading{text-align:center;color:#999;padding:40px 0;font-size:14px}.shop-main{display:flex;gap:14px;align-items:stretch}.shop-data-area{flex:1;min-width:0}.ai-fab{position:fixed;right:20px;bottom:26px;width:58px;height:58px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9990;transition:transform .2s;-webkit-user-select:none;user-select:none}.ai-fab:hover{transform:scale(1.1)}.ai-fab .ai-fab-icon{height:32px;width:auto}.ai-fab .ai-fab-dot{position:absolute;top:5px;right:5px;width:11px;height:11px;border-radius:50%;background:#22c55e;border:2px solid #fff}.ai-fab-tip{position:absolute;right:68px;top:50%;transform:translateY(-50%);white-space:nowrap;background:#1e1e3cd9;color:#fff;font-size:12px;padding:5px 10px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .2s}.ai-fab:hover .ai-fab-tip{opacity:1}.ai-panel{position:fixed;right:26px;bottom:26px;width:380px;max-width:calc(100vw - 32px);height:min(620px,calc(100vh - 90px));display:none;flex-direction:column;border:1px solid #e3e6f0;border-radius:14px;background:#fff;box-shadow:0 14px 44px #14143238;overflow:hidden;z-index:9991}.ai-panel.open{display:flex;animation:aiPanelIn .22s ease}@keyframes aiPanelIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.ai-panel-header{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:8px 10px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;flex-shrink:0}.ai-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.ai-avatar img{height:22px;width:auto}.ai-title{line-height:1.25;min-width:0}.ai-name{font-weight:700;font-size:14px}.ai-sub{font-size:11px;opacity:.88}.ai-collapse-btn{margin-left:auto;background:#ffffff2e;border:none;color:#fff;width:24px;height:24px;border-radius:6px;cursor:pointer;font-size:14px;line-height:1;flex-shrink:0}.ai-collapse-btn:hover{background:#ffffff52}.ai-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:#f7f8fc}.ai-msg{display:flex;gap:8px;align-items:flex-start}.ai-msg-user{flex-direction:row-reverse}.ai-msg-avatar{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px}.ai-msg-avatar img{height:18px;width:auto}.ai-msg-content{min-width:0;max-width:84%;display:flex;flex-direction:column;gap:4px}.ai-msg-user .ai-msg-content{align-items:flex-end}.ai-msg-bubble{padding:8px 12px;border-radius:10px;font-size:13px;line-height:1.65;max-width:100%;word-break:break-word;white-space:normal}.ai-msg-actions{display:flex;gap:6px;padding-left:2px}.ai-msg-user .ai-msg-actions{display:none}.ai-action-btn{border:1px solid #e0e2ef;background:#fff;color:#6b7280;font-size:11px;line-height:1;border-radius:6px;padding:3px 9px;cursor:pointer;transition:all .15s}.ai-action-btn:hover{color:#4f46e5;border-color:#b8b3f0;background:#f3f2ff}.ai-msg-bot .ai-msg-bubble{background:#fff;border:1px solid #e6e6ef;color:#333;border-top-left-radius:2px}.ai-msg-user .ai-msg-bubble{background:#4f46e5;color:#fff;border-top-right-radius:2px}.ai-msg-bubble b,.ai-msg-bubble strong{font-weight:700}.ai-msg-bubble pre.ai-code{background:#f4f5f9;border:1px solid #e6e6ef;border-radius:6px;padding:8px;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.ai-msg-bubble code{background:#f0f1f7;padding:1px 4px;border-radius:4px;font-size:12px}.ai-msg-user .ai-msg-bubble code{background:#fff3;color:#fff}.ai-msg-bubble ul{margin:4px 0;padding-left:18px}.ai-msg-bubble li{margin:2px 0}.ai-msg-typing .ai-msg-bubble{color:#999;font-style:italic}.ai-quick-row{display:flex;gap:8px;padding:8px 12px;border-top:1px solid #eef0f6;background:#fff}.ai-quick-btn{flex:1;padding:8px 0;border:1px dashed #b8b3f0;border-radius:8px;background:#f3f2ff;color:#4f46e5;font-size:13px;font-weight:600;cursor:pointer}.ai-quick-btn:hover{background:#e9e7ff}.ai-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #eef0f6;background:#fff}.ai-input-row textarea{flex:1;resize:none;height:42px;max-height:90px;border:1px solid #dcdce8;border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;line-height:1.5;outline:none}.ai-input-row textarea:focus{border-color:#4f46e5}.ai-send-btn{background:#4f46e5;color:#fff;border:none;border-radius:8px;padding:0 16px;cursor:pointer;font-size:13px;font-weight:600;flex-shrink:0}.ai-send-btn:hover{background:#4338ca}.ai-send-btn:disabled{background:#a5a3d8;cursor:not-allowed}@media(max-width:900px){.shop-main{flex-direction:column}.ai-panel{right:10px;bottom:10px;left:10px;width:auto;height:72vh}.ai-fab{right:14px;bottom:18px}}.report-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid #f0f0f0;background:#fafbff}.report-summary-card{padding:14px 8px;text-align:center;border-right:1px solid #f0f0f0}.report-summary-card:last-child{border-right:none}.report-summary-number{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.2;margin-bottom:2px}.report-summary-number.green{color:#2e7d32}.report-summary-number.blue{color:#1976d2}.report-summary-number.orange{color:#e65100}.report-summary-number.purple{color:#7b1fa2}.report-summary-label{font-size:12px;color:#888;font-weight:500}.report-process-list{padding:10px 14px}.report-process-item{border:1px solid #eee;border-radius:8px;margin-bottom:10px;overflow:hidden}.report-process-header{padding:10px 14px;background:#f8f9fb;font-weight:700;font-size:13px;color:#1a1a2e;border-bottom:1px solid #eee;display:flex;align-items:center;gap:8px}.report-process-body{padding:10px 14px;display:flex;flex-wrap:wrap;gap:10px}.report-process-stat{display:flex;align-items:center;gap:4px;font-size:13px;color:#555;padding:4px 10px;background:#f8f9fb;border-radius:6px}.report-process-stat .stat-label{color:#888}.report-process-stat .stat-val{font-weight:600;color:#333}.pagination-row{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0}.pagination-btn{padding:6px 16px;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;color:#333;transition:all .15s;font-family:inherit}.pagination-btn:hover:not([disabled]){background:#e0e0e0;border-color:#ccc}.pagination-info{font-size:13px;color:#888;-webkit-user-select:none;user-select:none}.btn-logout{padding:5px 14px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:12px;color:#666;transition:all .15s;font-family:inherit}.btn-logout:hover{background:#fff0f0;border-color:#ffcdd2;color:#d32f2f}.per-process-charts{padding:8px 14px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.ppc-card{border:1px solid #e8e8e8;border-radius:10px;overflow:hidden;background:#fff}.ppc-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f8f9fb;border-bottom:1px solid #eee}.ppc-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.ppc-name{font-weight:700;font-size:14px;color:#1a1a2e}.ppc-body{padding:12px 14px}.ppc-summary{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.ppc-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.ppc-badge-runs{background:#fff3e0;color:#e65100}.ppc-badge-dur{background:#e3f2fd;color:#1976d2}.ppc-badge-data{background:#e8f5e9;color:#2e7d32}.ppc-line-wrap{margin-bottom:10px}.ppc-line-title{font-size:11px;color:#999;margin-bottom:4px}.ppc-line-chart-container{position:relative;width:100%;height:160px}.ppc-data-section{margin-bottom:10px}.ppc-data-label{font-size:11px;color:#999;margin-bottom:5px}.ppc-data-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px dashed #f0f0f0}.ppc-data-row:last-child{border-bottom:none}.ppc-data-row-label{font-size:12px;color:#555}.ppc-data-row-val{font-size:12px;font-weight:700;color:#333;font-family:monospace}.ppc-doughnut-wrap{display:flex;flex-direction:column;align-items:center;padding-top:6px;border-top:1px dashed #e8e8e8}.ppc-doughnut-label{font-size:11px;color:#999;margin-bottom:4px}.ppc-doughnut-canvas{width:140px;height:140px;max-width:100%}.invoice-wrap{background:#fff;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 12px 12px;padding:16px;overflow:hidden}.invoice-panel{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:hidden}.invoice-panel-cols{display:grid;grid-template-columns:minmax(330px,44%) 1px minmax(420px,1fr);align-items:stretch}.invoice-col{padding:16px 18px;min-width:0}.invoice-col-sep{background:#eef0f4;height:auto}@media(max-width:1020px){.invoice-panel-cols{grid-template-columns:1fr}.invoice-col-sep{display:none}.invoice-col{border-bottom:1px solid #eef0f4}}.invoice-section{border-top:1px solid #eef0f4;padding:14px 18px 6px}.invoice-card-title{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:12px;display:flex;align-items:center;gap:8px}.invoice-sec-sub{font-size:12px;color:#9aa0ad;font-weight:400}.invoice-pick-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.invoice-file-input-hidden{display:none}.invoice-pending-wrap{border:1px solid #e8eaf0;border-radius:10px;background:#fbfcfe;margin:2px 0 10px;overflow:hidden}.invoice-pending-head{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#f3f5f9;font-size:12px;color:#556}.invoice-pending-list{max-height:230px;overflow:auto}.invoice-pending-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid #eef0f4;font-size:13px}.invoice-pending-row:first-child{border-top:none}.invoice-pending-row:hover{background:#f7f9fd}.invoice-pending-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-pending-size{color:#9aa0ad;font-size:12px;white-space:nowrap}.invoice-pending-del{cursor:pointer;color:#c0392b;background:none;border:none;font-size:15px;line-height:1;padding:2px 4px;border-radius:4px}.invoice-pending-del:hover{background:#fdeceb}.invoice-pending-del:disabled{color:#bbb;cursor:not-allowed}.invoice-pending-empty{padding:14px;text-align:center;color:#9aa0ad;font-size:12px}.invoice-upload-rules{margin-top:8px;padding-top:8px;border-top:1px dashed #e8eaf0}.invoice-login-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.invoice-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.invoice-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:#999}.invoice-badge-ok{background:#e8f8ef;color:#1c7e4e}.invoice-badge-ok:before{background:#23a55a}.invoice-badge-off{background:#fdeceb;color:#c0392b}.invoice-badge-off:before{background:#e74c3c}.invoice-badge-warn{background:#fff6e5;color:#b26b00}.invoice-badge-warn:before{background:#f39c12}.invoice-badge-gray{background:#f0f1f5;color:#666}.invoice-badge-gray:before{background:#9aa0ad}.invoice-qr-area{display:flex;gap:14px;align-items:center;margin-top:8px}.invoice-qr-box{width:210px;height:210px;border:1px dashed #c5c9d4;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fafbfc;overflow:hidden}.invoice-qr-box img{width:100%;height:100%;object-fit:contain}.invoice-qr-tip{flex:1;font-size:12px;color:#667;line-height:1.7}.invoice-warn-banner{margin:0 0 12px;padding:10px 14px;border-radius:10px;background:#fff7e8;border:1px solid #f5d9a8;color:#9a6200;font-size:13px;display:flex;align-items:center;gap:8px}.invoice-button{padding:8px 16px;border:none;border-radius:8px;font-size:13px;cursor:pointer;font-weight:600}.invoice-button-primary{background:#2f6fed;color:#fff}.invoice-button-primary:hover{background:#245cd6}.invoice-button-default{background:#f0f1f5;color:#333}.invoice-button-default:hover{background:#e3e5ea}.invoice-button-danger{background:#fdf0ef;color:#c0392b}.invoice-button-danger:hover{background:#f9e0de}.invoice-button:disabled{opacity:.55;cursor:not-allowed}.invoice-upload-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.invoice-upload-input{flex:1 1 220px;min-width:200px}.invoice-upload-hint{font-size:12px;color:#889;line-height:1.7}.invoice-table{width:100%;border-collapse:collapse;background:#fff}.invoice-table th,.invoice-table td{padding:10px 12px;border-bottom:1px solid #eef0f4;font-size:13px;text-align:left;vertical-align:middle}.invoice-table th{background:#f7f8fa;color:#667;font-weight:600;position:sticky;top:0}.invoice-table tr:hover td{background:#fafbfd}.invoice-progress{width:100%;height:8px;border-radius:6px;background:#eef0f4;overflow:hidden}.invoice-progress-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,#2f6fed,#6aa2ff);transition:width .4s}.invoice-progress-bar.done{background:linear-gradient(90deg,#23a55a,#5cd48f)}.invoice-progress-bar.fail{background:linear-gradient(90deg,#e74c3c,#f08a82)}.invoice-status-tag{display:inline-block;padding:3px 10px;border-radius:14px;font-size:12px;font-weight:600}.invoice-status-queued{background:#eef2ff;color:#2f5fe0}.invoice-status-processing{background:#fff3e0;color:#b26b00}.invoice-status-success{background:#e8f8ef;color:#1c7e4e}.invoice-status-failed{background:#fdeceb;color:#c0392b}.invoice-status-cancelled{background:#f0f1f5;color:#777}.invoice-list-empty{padding:40px;text-align:center;color:#9aa0ad;font-size:13px}.invoice-detail-log{max-height:380px;overflow:auto;background:#f7f8fa;border-radius:8px;padding:12px}.invoice-detail-log-title{font-size:12px;color:#889;margin:8px 0 4px}.invoice-detail-log-item{font-size:12px;color:#445;padding:3px 0;border-bottom:1px dashed #e8eaf0}.invoice-detail-log-item.err{color:#c0392b}.invoice-detail-log-item .t{color:#99a;margin-right:8px;font-family:monospace}.invoice-detail-log-item .d{color:#9a8a4d;margin-right:6px;font-size:11px}.invoice-action-link{cursor:pointer;color:#2f6fed;margin-right:12px;font-size:13px;background:none;border:none;padding:0}.invoice-action-link.danger{color:#c0392b}.invoice-action-link:disabled{color:#bbb;cursor:not-allowed}.invoice-meta{font-size:12px;color:#889;line-height:1.8}.invoice-card-notice{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:9px 12px;border-radius:10px;background:#fff7e8;border:1px solid #f5d9a8;color:#9a6200;font-size:13px}.invoice-card-notice:before{content:"⚠️";flex-shrink:0}.invoice-qr-spinner{width:34px;height:34px;border:4px solid #e3e6ec;border-top-color:#2f6fed;border-radius:50%;animation:invoiceSpin .9s linear infinite;margin:0 auto 10px}@keyframes invoiceSpin{to{transform:rotate(360deg)}}.invoice-qr-box .qr-loading-text{font-size:12px;color:#667;text-align:center;line-height:1.6}.invoice-modal-icon{font-size:34px;text-align:center;margin-top:18px}.invoice-modal-msg{text-align:center;padding:18px 16px 6px;font-size:14px;color:#333;line-height:1.7;word-break:break-all;white-space:pre-line}.invoice-fail-block{margin:14px 0 6px;padding:12px;border-radius:10px;background:#fbfcff;border:1px solid #e6ebf5}.invoice-reopen-head{margin-bottom:10px;padding:10px 12px;border-radius:10px;background:#fff8f6;border:1px solid #f3d6cd;font-size:13px;color:#333;line-height:1.9}.invoice-reopen-head .k{color:#889}.invoice-reopen-head .v{color:#c0392b}.invoice-reopen-grid{display:grid;grid-template-columns:96px 1fr 96px 1fr 96px 1fr;gap:6px 10px;align-items:center;margin-bottom:6px}.invoice-reopen-grid label{font-size:12px;color:#667;text-align:right}.invoice-reopen-grid input{width:100%;padding:6px 8px;font-size:13px;border:1px solid #dfe3ea;border-radius:6px;background:#fff;color:#333}.invoice-reopen-input{width:100%;padding:4px 6px;font-size:12px;border:1px solid #e3e6ec;border-radius:5px;background:#fff;color:#333}.invoice-modal-scope{font-size:12px}.invoice-modal-scope .invoice-meta{font-size:12px;line-height:1.7}.invoice-modal-scope .invoice-detail-log-title{font-size:12px}.invoice-modal-scope .invoice-table th,.invoice-modal-scope .invoice-table td{padding:5px 8px;font-size:12px}.invoice-modal-scope .invoice-button{padding:6px 14px;font-size:12px}.invoice-modal-scope .invoice-action-link{font-size:12px}.invoice-reopen-table tfoot td{background:#f7f8fa;font-weight:600;color:#333;border-top:2px solid #e6ebf5;border-bottom:none}.invoice-reopen-total td:first-child{text-align:right;color:#667}.invoice-reopen-total-val{display:block;padding:4px 6px;border:1px solid transparent;font-size:12px;line-height:normal}.invoice-task-id{color:#9aa0ad;font-size:11px;margin-right:2px}.invoice-op-cell{white-space:nowrap}.invoice-op-cell .invoice-action-link{margin-right:10px;font-size:12px}.invoice-op-cell .invoice-action-link:last-child{margin-right:0}.btn-primary{background:#1976d2;color:#fff;border-color:#1976d2}.btn-primary:hover{background:#1565c0;border-color:#1565c0;color:#fff}.login-view[data-v-1e87af2e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;display:flex;align-items:center;justify-content:center;z-index:999}.login-container[data-v-1e87af2e]{background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000014;padding:40px;width:400px;max-width:90vw}.login-header[data-v-1e87af2e]{text-align:center;margin-bottom:32px}.login-header .icon[data-v-1e87af2e]{font-size:48px;margin-bottom:12px}.login-header .icon.pika[data-v-1e87af2e]{height:48px}.login-header h1[data-v-1e87af2e]{font-size:22px;font-weight:700;color:#1a1a2e}.login-header p[data-v-1e87af2e]{font-size:13px;color:#888;margin-top:6px}.form-group[data-v-1e87af2e]{margin-bottom:20px}.form-group label[data-v-1e87af2e]{display:block;font-size:13px;font-weight:600;color:#444;margin-bottom:6px}.form-group input[data-v-1e87af2e]{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:14px;transition:all .2s;outline:none}.form-group input[data-v-1e87af2e]:focus{border-color:#1976d2;box-shadow:0 0 0 3px #1976d226}.form-group input[data-v-1e87af2e]::placeholder{color:#bbb}.login-btn[data-v-1e87af2e]{width:100%;padding:12px;background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.login-btn[data-v-1e87af2e]:hover{transform:translateY(-1px);box-shadow:0 8px 24px #1976d266}.login-btn[data-v-1e87af2e]:active{transform:translateY(0)}.login-btn[data-v-1e87af2e]:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-msg[data-v-1e87af2e]{background:#fff5f5;color:#d32f2f;border:1px solid #ffcdd2;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px;display:none}.error-msg.show[data-v-1e87af2e]{display:block}.login-footer[data-v-1e87af2e]{text-align:center;margin-top:24px;font-size:12px;color:#aaa}.remember-row[data-v-1e87af2e]{margin-bottom:20px}.remember-label[data-v-1e87af2e]{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none}.remember-label input[data-v-1e87af2e]{width:16px;height:16px;cursor:pointer;accent-color:#1976d2}.loading-spinner[data-v-1e87af2e]{display:inline-block;width:16px;height:16px;margin-right:6px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin-1e87af2e .6s linear infinite;vertical-align:middle}@keyframes spin-1e87af2e{to{transform:rotate(360deg)}}.records-filter[data-v-7f72e6ff]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.records-filter-spacer[data-v-7f72e6ff]{flex:1}.log-list[data-v-7f72e6ff]{max-height:60vh;overflow:auto}.report-container{background:#fff;border-radius:0 0 12px 12px;border:1px solid #e0e0e0;border-top:none;overflow:hidden}.report-container .report-sub-tabs{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #f0f0f0;background:#fafbff}.report-container .report-sub-tab{padding:10px 20px;font-size:13px;font-weight:600;color:#888;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;-webkit-user-select:none;user-select:none}.report-container .report-sub-tab:hover{color:#555}.report-container .report-sub-tab.active{color:#1976d2;border-bottom-color:#1976d2}.report-container .report-period-selector{margin-left:auto;display:flex;align-items:center;gap:6px}.report-container .report-period-selector input[type=date],.report-container .report-period-selector input[type=week],.report-container .report-period-selector input[type=month]{padding:5px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;outline:none;font-family:inherit}.report-container .report-period-selector input:focus{border-color:#1976d2}.report-container .report-period-selector .period-nav-btn{padding:4px 10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;color:#555;transition:all .15s;line-height:1.2;font-family:inherit}.report-container .report-period-selector .period-nav-btn:hover{background:#f0f0f0;border-color:#ccc}.report-container .report-content{padding:16px;min-height:100px}.report-container .report-empty{text-align:center;color:#bbb;padding:40px 0;font-size:14px}.report-container .report-loading{text-align:center;color:#999;padding:40px 0;font-size:14px}.report-container .today-dashboard-header{padding:10px 16px;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:linear-gradient(135deg,#fafcff,#f5f7ff)}.report-container .today-dashboard-title{font-size:14px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:6px;cursor:default}.report-container .today-dashboard-title.report-title-manage{cursor:pointer}.report-container .today-dashboard-title.report-title-manage:hover{color:#1976d2}.report-container .today-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid #f0f0f0;background:#fafbff}.report-container .today-stat-card{padding:14px 8px;text-align:center;border-right:1px solid #f0f0f0;transition:all .2s;position:relative}.report-container .today-stat-card:last-child{border-right:none}.report-container .today-stat-card:hover{background:#fff;box-shadow:inset 0 -2px #1976d2}.report-container .today-stat-number{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.2;margin-bottom:2px;word-break:keep-all}.report-container .today-stat-number.green{color:#2e7d32}.report-container .today-stat-number.blue{color:#1976d2}.report-container .today-stat-number.orange{color:#e65100}.report-container .today-stat-number.purple{color:#7b1fa2}.report-container .today-stat-label{font-size:12px;color:#888;font-weight:500;letter-spacing:.3px}.report-container .stat-card-sm{padding:10px 6px}.report-container .today-detail-list{padding:10px 14px}.report-container .today-detail-empty{text-align:center;color:#bbb;padding:20px 0;font-size:13px}.report-container .report-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid #f0f0f0;background:#fafbff}.report-container .report-summary-card{padding:14px 8px;text-align:center;border-right:1px solid #f0f0f0}.report-container .report-summary-card:last-child{border-right:none}.report-container .report-summary-number{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.2;margin-bottom:2px}.report-container .report-summary-number.green{color:#2e7d32}.report-container .report-summary-number.blue{color:#1976d2}.report-container .report-summary-number.orange{color:#e65100}.report-container .report-summary-number.purple{color:#7b1fa2}.report-container .report-summary-label{font-size:12px;color:#888;font-weight:500}.report-container .per-process-charts{padding:8px 14px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.report-container .ppc-card{border:1px solid #e8e8e8;border-radius:10px;overflow:hidden;background:#fff}.report-container .ppc-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f8f9fb;border-bottom:1px solid #eee}.report-container .ppc-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.report-container .ppc-name{font-weight:700;font-size:14px;color:#1a1a2e}.report-container .ppc-body{padding:12px 14px}.report-container .ppc-summary{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.report-container .ppc-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.report-container .ppc-badge-runs{background:#fff3e0;color:#e65100}.report-container .ppc-badge-dur{background:#e3f2fd;color:#1976d2}.report-container .ppc-badge-data{background:#e8f5e9;color:#2e7d32}.report-container .ppc-line-wrap{margin-bottom:10px}.report-container .ppc-line-chart-container{position:relative;width:100%;height:160px}@media(max-width:900px){.report-container .per-process-charts{grid-template-columns:1fr}}.user-status-select[data-v-244c5ea5]{width:100%;height:34px;border:1px solid #ddd;border-radius:8px;padding:0 8px;font-size:14px;background:#fff}.records-filter[data-v-f460b41d]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.records-filter-spacer[data-v-f460b41d]{flex:1}.btn-view-all-off[data-v-f460b41d],.btn-view-all-off[data-v-f460b41d]:hover{opacity:.5;cursor:not-allowed;background:#f0f0f0;color:#999;border-color:#e0e0e0}.rec-flow[data-v-f460b41d]{flex:0 0 150px;min-width:0;display:inline-flex;align-items:center;gap:6px;overflow:hidden}.rec-flow-txt[data-v-f460b41d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-trig[data-v-f460b41d],.rec-dur[data-v-f460b41d],.rec-time[data-v-f460b41d]{flex:0 0 auto;white-space:nowrap;font-size:12px;color:#888}.rec-trig[data-v-f460b41d]{flex-basis:42px}.rec-dur[data-v-f460b41d]{flex-basis:96px}.rec-time[data-v-f460b41d]{flex-basis:152px;font-family:Consolas,Menlo,monospace}.sched-empty[data-v-f460b41d]{color:#888;text-align:center;padding:18px}.sched-err[data-v-f460b41d]{color:#c0392b}.monitor-container>.empty-state[data-v-f460b41d]{max-width:760px;margin:72px auto;padding:0 8px}.monitor-container>.empty-state .empty-hint[data-v-f460b41d]{white-space:nowrap}.sched-panel .panel-header[data-v-f460b41d]{flex-wrap:wrap}.sched-panel .panel-header-right[data-v-f460b41d]{flex-wrap:wrap;justify-content:flex-end}.sched-panel .btn-view-all[data-v-f460b41d]{padding:2px 8px;font-size:12px}.sched-panel .btn-view-all.danger[data-v-f460b41d]{background:#fff5f5;color:#c0392b;border-color:#f5c6c6}.sched-panel .btn-view-all.danger[data-v-f460b41d]:hover{background:#ffecec;border-color:#e08a8a;color:#a93226}.sched-badge[data-v-f460b41d]{display:inline-block;padding:0 7px;border-radius:10px;font-size:11px;white-space:nowrap}.sched-badge.ok[data-v-f460b41d]{background:#e8f7ee;color:#1c7e4e}.sched-badge.off[data-v-f460b41d]{background:#fdecec;color:#c0392b}.sched-sub[data-v-f460b41d]{color:#9aa;font-size:11px;overflow-wrap:anywhere}.sched-meta[data-v-f460b41d]{color:#8a8f98;font-size:12px}.sched-state[data-v-f460b41d]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f7f8fa;border-radius:6px;padding:5px 9px;margin:8px 0 0;font-size:12px}.sched-state.idle[data-v-f460b41d]{color:#999}.sched-state em[data-v-f460b41d]{color:#aaa;font-style:normal;font-size:11px}.sched-state-tag[data-v-f460b41d]{display:inline-block;padding:0 7px;border-radius:10px;font-size:11px}.sched-state-tag.run[data-v-f460b41d]{background:#e8f7ee;color:#1c7e4e}.sched-state-tag.que[data-v-f460b41d]{background:#eef2ff;color:#3b5bdb}.sched-state-tag.idle[data-v-f460b41d]{background:#eee;color:#777}.sched-chip[data-v-f460b41d]{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1px solid #e2e5ea;border-radius:12px;padding:0 7px;font-size:12px}.sched-chip em[data-v-f460b41d]{color:#aaa;font-style:normal;font-size:11px}.sched-table[data-v-f460b41d]{display:flex;flex-direction:column;border:1px solid #e6e9ee;border-radius:8px;overflow:hidden;margin-top:6px}.sched-tr[data-v-f460b41d]{display:flex;gap:8px;padding:6px 9px;border-bottom:1px solid #f0f2f5;align-items:flex-start}.sched-tr[data-v-f460b41d]:last-child{border-bottom:none}.sched-th[data-v-f460b41d]{background:#f7f8fa;font-weight:600;color:#555}.sched-tr.invalid[data-v-f460b41d]{background:#fdf6f6;opacity:.8}.sched-tr.disabled[data-v-f460b41d]{opacity:.8}.sched-tr .col-flow[data-v-f460b41d]{flex:1 1 30%;min-width:0}.sched-tr .col-flow .flow-name[data-v-f460b41d]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-tr .col-state[data-v-f460b41d]{flex:0 0 76px}.sched-tr .col-cron[data-v-f460b41d]{flex:1 1 26%;min-width:0;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.sched-tr .col-op[data-v-f460b41d]{flex:0 0 auto;display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.sched-tr .ct-flow[data-v-f460b41d]{flex:1 1 20%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-tr .ct-name[data-v-f460b41d]{flex:1 1 26%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-tr .ct-cron[data-v-f460b41d]{flex:1 1 30%;min-width:0}.sched-tr .ct-state[data-v-f460b41d]{flex:0 0 60px}.sched-tr .ct-op[data-v-f460b41d]{flex:0 0 auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.sched-code[data-v-f460b41d]{font-family:Consolas,monospace;font-size:11px;color:#555;overflow-wrap:anywhere}.sched-btn[data-v-f460b41d]{border:1px solid #cfd4da;background:#fff;border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer;white-space:nowrap}.sched-btn[data-v-f460b41d]:hover{background:#f4f6f8}.sched-btn[data-v-f460b41d]:disabled{opacity:.45;cursor:not-allowed}.sched-btn.primary[data-v-f460b41d]{background:#3b7cff;color:#fff;border-color:#3b7cff}.sched-btn.primary[data-v-f460b41d]:hover{background:#2f6ce0}.sched-btn.danger[data-v-f460b41d]{color:#c0392b}.sched-link[data-v-f460b41d]{background:none;border:none;color:#3b7cff;cursor:pointer;padding:0;font-size:12px}.sched-link[data-v-f460b41d]:disabled{opacity:.45;cursor:not-allowed}.sched-link.danger[data-v-f460b41d]{color:#c0392b}.sched-table-legacy[data-v-f460b41d]{width:100%;border-collapse:collapse}.sched-table-legacy th[data-v-f460b41d],.sched-table-legacy td[data-v-f460b41d]{border:1px solid #eef0f3;padding:5px 8px;text-align:left;vertical-align:top}.sched-table-legacy th[data-v-f460b41d]{background:#f7f8fa;font-weight:600}.sched-form[data-v-f460b41d]{display:flex;flex-direction:column;gap:10px}.sched-form label[data-v-f460b41d]{display:flex;flex-direction:column;gap:4px;font-size:13px}.sched-form label.inline[data-v-f460b41d]{flex-direction:row;align-items:center;gap:6px}.sched-form input[data-v-f460b41d],.sched-form select[data-v-f460b41d]{border:1px solid #cfd4da;border-radius:6px;padding:6px 8px;font-size:13px}.sched-form input.num[data-v-f460b41d]{width:76px;text-align:center}.sched-form-row[data-v-f460b41d]{color:#999;font-size:12px}.sched-form-actions[data-v-f460b41d]{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}.sched-toolbar[data-v-f460b41d]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.sched-toolbar select[data-v-f460b41d]{border:1px solid #cfd4da;border-radius:6px;padding:4px 6px}.sched-logbox[data-v-f460b41d]{max-height:420px;overflow-y:auto;background:#fafbfc;border:1px solid #eef0f3;border-radius:6px;padding:8px;margin-top:8px}.sched-log[data-v-f460b41d]{padding:3px 0;border-bottom:1px dashed #eee;font-size:12px}.sched-log.err[data-v-f460b41d]{color:#c0392b}.sched-flow-modal[data-v-f460b41d] .modal{max-width:1180px}.sched-tabs[data-v-f460b41d]{display:inline-flex;border:1px solid #e2e5ea;border-radius:8px;overflow:hidden;background:#f7f8fa}.sched-tab-btn[data-v-f460b41d]{border:none;background:#fff;color:#666;padding:5px 16px;font-size:13px;cursor:pointer;border-right:1px solid #eef0f3}.sched-tab-btn[data-v-f460b41d]:last-child{border-right:none}.sched-tab-btn[data-v-f460b41d]:hover{background:#f4f6f8}.sched-tab-btn.on[data-v-f460b41d]{background:#3b7cff;color:#fff;font-weight:600}.sched-cron-add[data-v-f460b41d]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 4px;padding:7px 9px;background:#f7f8fa;border:1px solid #eef0f3;border-radius:8px}.sched-cron-add select[data-v-f460b41d]{border:1px solid #cfd4da;border-radius:6px;padding:4px 8px;font-size:12px;max-width:280px}.sched-mode-row[data-v-f460b41d]{display:flex;border:1px solid #e2e5ea;border-radius:8px;overflow:hidden;align-self:flex-start}.sched-mode-tab[data-v-f460b41d]{padding:4px 14px;font-size:12px;cursor:pointer;color:#666;background:#fff;border-right:1px solid #eef0f3;-webkit-user-select:none;user-select:none}.sched-mode-tab[data-v-f460b41d]:last-child{border-right:none}.sched-mode-tab.on[data-v-f460b41d]{background:#3b7cff;color:#fff;font-weight:600}.sched-cn-kinds[data-v-f460b41d]{display:flex;gap:10px;flex-wrap:wrap}.sched-cn-kind[data-v-f460b41d]{flex-direction:row!important;align-items:center;gap:4px!important;font-size:13px!important;cursor:pointer}.sched-cn-kind input[data-v-f460b41d],.sched-cn-day input[data-v-f460b41d]{width:auto;height:auto;padding:0;border:none;background:none;accent-color:#3b7cff;cursor:pointer}.sched-cn-field[data-v-f460b41d]{display:flex;flex-direction:column;gap:6px}.sched-cn-field label.inline[data-v-f460b41d]{display:flex;flex-wrap:wrap}.sched-cn-field input[type=time][data-v-f460b41d]{padding:4px 6px}.sched-cn-days[data-v-f460b41d]{display:flex;align-items:center;gap:4px 6px;flex-wrap:wrap}.sched-cn-day[data-v-f460b41d]{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:3px!important;font-size:12px!important;cursor:pointer;border:1px solid #e2e5ea;border-radius:12px;padding:2px 8px;background:#fff}.sched-cn-day[data-v-f460b41d]:has(input:checked){background:#eef4ff;border-color:#3b7cff}.sched-cn-time[data-v-f460b41d]{margin-top:2px}.sched-cn-preview[data-v-f460b41d]{border:1px dashed #cfd8e3;background:#fafbfc;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.sched-cn-preview-head[data-v-f460b41d]{color:#8a8f98;font-size:11px}.sched-cn-preview-body code[data-v-f460b41d]{font-family:Consolas,monospace;font-size:13px;color:#0b5394;background:#eef4ff;border-radius:4px;padding:1px 6px;word-break:break-all}.sched-cn-preview-desc[data-v-f460b41d]{color:#1c7e4e;font-size:12px}.sched-cn-preview.bad[data-v-f460b41d]{border-color:#f0b4ad;background:#fff7f6}.sched-cn-preview.bad .sched-cn-preview-body code[data-v-f460b41d]{color:#c0392b;background:#fdeceb}.sched-cn-preview-err[data-v-f460b41d]{color:#c0392b;font-size:12px}.sched-cn-preview-next[data-v-f460b41d]{color:#666;font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px}.sched-cn-preview-next em[data-v-f460b41d]{font-style:normal;color:#0b5394;background:#eef4ff;border-radius:4px;padding:1px 6px;font-family:Consolas,monospace}.fm-container[data-v-aab7031a]{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 12px 12px;padding:20px 24px 24px;min-height:calc(100vh - 120px);position:relative}.fm-card[data-v-aab7031a]{background:#fafbfc;border:1px solid #eef0f3;border-radius:10px;padding:12px 16px}.fm-card-title[data-v-aab7031a]{font-size:15px;font-weight:600;color:#1f2328;display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.fm-hint[data-v-aab7031a]{font-size:12px;font-weight:400;color:#8a9199}.fm-cfg-grid[data-v-aab7031a]{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:flex-end}.fm-cfg-item[data-v-aab7031a]{display:flex;flex-direction:column;gap:4px}.fm-cfg-label[data-v-aab7031a]{font-size:12px;color:#6b7280}.fm-cfg-ctrl[data-v-aab7031a]{display:flex;align-items:center;gap:6px;font-size:13px;color:#4b5563}.fm-cfg-ctrl input[data-v-aab7031a]{width:120px;height:32px;border:1px solid #d8dce0;border-radius:8px;padding:0 8px;font-size:14px}.fm-cfg-actions[data-v-aab7031a]{display:flex;gap:8px;margin-left:auto}.fm-dir-head[data-v-aab7031a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.fm-dir-title[data-v-aab7031a]{display:flex;align-items:baseline;gap:10px;min-width:0}.fm-dir-name[data-v-aab7031a]{font-size:15px;font-weight:600;color:#1f2328}.fm-dir-path[data-v-aab7031a]{font-size:12px;color:#98a2aa;font-family:Consolas,Menlo,monospace;word-break:break-all}.btn-add-switch.active[data-v-aab7031a]{background:#1976d2;color:#fff;border-color:#1976d2}.fm-stats[data-v-aab7031a]{display:flex;gap:26px;margin-bottom:12px;flex-wrap:wrap}.fm-stat[data-v-aab7031a]{display:flex;flex-direction:column;gap:2px}.fm-stat-num[data-v-aab7031a]{font-size:20px;font-weight:700;color:#1f2328}.fm-stat-txt[data-v-aab7031a]{font-size:13px;color:#1f2328;font-family:Consolas,Menlo,monospace}.fm-stat-label[data-v-aab7031a]{font-size:12px;color:#98a2aa}.fm-op-row[data-v-aab7031a]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px dashed #edf0f2;padding-top:12px}.fm-op-date[data-v-aab7031a]{display:flex;align-items:center;gap:8px;font-size:13px;color:#4b5563}.fm-op-date input[type=date][data-v-aab7031a]{height:30px;border:1px solid #d8dce0;border-radius:8px;padding:0 8px;font-size:13px}.fm-op-btns[data-v-aab7031a]{display:flex;gap:8px}.fm-list-toolbar[data-v-aab7031a]{display:flex;align-items:center;gap:12px;margin-bottom:10px}.fm-search[data-v-aab7031a]{width:220px;height:30px;border:1px solid #d8dce0;border-radius:8px;padding:0 10px;font-size:13px}.fm-table[data-v-aab7031a]{margin-top:0}.fm-fname[data-v-aab7031a]{font-family:Consolas,Menlo,monospace;font-size:13px;word-break:break-all}.fm-sort[data-v-aab7031a]{cursor:pointer;-webkit-user-select:none;user-select:none}.fm-sort.active[data-v-aab7031a]{color:#1976d2}.fm-note[data-v-aab7031a]{font-size:12px;color:#98a2aa;line-height:1.6}
