:root{--red:#f34242;--line:#dedede;--blue:#6297ee;--ink:#333;--bg:#f5f5f5;--sidebar:#20252c}
*{box-sizing:border-box}body{margin:0;color:#333;background:var(--bg);font:14px/1.5 "Microsoft YaHei","PingFang SC",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;color:#999;background:#f3f3f3;border-color:#aaa}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #a8c5f2;outline-offset:1px}
input,select{height:32px;padding:5px 9px;border:1px solid #ddd;border-radius:4px;color:#333;background:white;min-width:0}input::placeholder,textarea::placeholder{color:#999}input[type=radio],input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:#fc4029;vertical-align:middle;flex-shrink:0}input:disabled,select:disabled{background:#f3f3f3;color:#999}
.sidebar{position:fixed;inset:0 auto 0 0;width:200px;background:var(--sidebar);color:white;z-index:10}.brand{display:flex;align-items:center;gap:7px;height:62px;padding:0 13px;white-space:nowrap;color:#e92324}.brand-mark{font-size:27px}.brand strong{font-size:18px}.brand small{font-size:15px;font-weight:bold;margin-left:7px}.sidebar nav>div,.sidebar nav>button{display:block;width:100%;height:44px;padding:11px 18px;border:0;background:transparent;color:#fff;font-weight:600;text-align:left;white-space:nowrap}.sidebar nav>div span{float:right;font-size:19px;line-height:21px}.sidebar nav>.nav-active{color:#ee2c1e;font-size:14px}
.workspace{margin-left:200px;min-width:1180px;min-height:100vh}body:not([data-view=list]) .sidebar{display:none}body:not([data-view=list]) .workspace{margin-left:0}.tabbar{height:34px;background:#20252c;display:flex;align-items:stretch;white-space:nowrap;overflow:visible}.tab{display:inline-flex;align-items:center;justify-content:center;padding:0 20px;color:white;background:transparent;border:0;font-size:15px;white-space:nowrap}.tab.active{background:#f32c17;border-radius:6px 6px 0 0}.tab-close{margin-left:8px;font-size:18px;font-weight:300}main{padding:10px;background:var(--bg);min-height:calc(100vh - 34px)}
.btn{height:31px;padding:3px 16px;border:1px solid #e0e3e8;border-radius:5px;background:#fafafa;color:#78818b;white-space:nowrap}.btn:hover{background:#f6f6f6}.btn.soft,.btn.danger{border-color:#ffb1b1;background:#fff1f1;color:#f26b6b}.btn.soft:hover,.btn.danger:hover{background:#ffe6e6}.btn.primary{color:white;background:#f34242;border-color:#f34242}.btn.primary:hover{background:#e93838}.btn.small{height:28px;padding:2px 12px;font-size:13px}.link{padding:0;border:0;background:none;color:var(--blue);text-decoration:underline;white-space:nowrap;font:inherit}.link:disabled{background:none;color:#aaa;border:0;text-decoration:underline}
.filter-panel{padding:16px 18px;background:white;box-shadow:3px 3px 3px #0005;margin:0 0 14px;min-height:100px}.filter-first-row{display:flex;align-items:center;gap:12px;white-space:nowrap}.field{display:flex;align-items:center;gap:0;height:32px;padding:0 9px;border:1px solid #ddd;border-radius:4px;background:white;white-space:nowrap;flex:0 1 200px;min-width:145px}.field label{white-space:nowrap;flex-shrink:0;color:#333}.field input,.field select{padding:2px 0;border:0;background:transparent;min-width:0;width:100%;height:29px;outline:none}.field select{color:#8f8f8f}.date-field{flex:0 0 390px;gap:8px}.date-field input{width:124px;font-size:13px;color:#a9b2bf}.date-field label{font-size:13px}.filter-actions{margin-left:auto;display:flex;align-items:center;gap:12px;padding-left:12px}.asset-filter{display:flex;align-items:center;gap:10px;margin-top:12px}.asset-filter>.field{flex:0 0 200px}.asset-filter>input{width:95px}.history-client-field{flex-basis:230px}.history-client-field input{width:160px}
.notice{display:flex;align-items:center;background:white;color:#444;font-size:13px;padding:5px 16px;margin:0 0 10px;white-space:nowrap}.bell{display:inline-block;color:#ed5656;font-size:20px;line-height:22px;margin-right:8px}.panel{background:white;margin-bottom:12px;border:0;border-radius:0}.list-panel{padding:0 18px;min-height:calc(100vh - 197px)}.toolbar{display:flex;align-items:center;gap:12px;height:62px;white-space:nowrap}.toolbar>input{width:175px}.toolbar>.link{margin-left:3px;text-decoration:none}.toolbar .right{margin-left:auto}
.table-scroll{overflow-x:auto;overflow-y:visible;position:relative;max-width:100%}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:center;font-size:13px}.data-table th,.data-table td{border:1px solid #ddd;white-space:nowrap;height:36px;padding:6px 10px;vertical-align:middle;font-weight:400;line-height:22px;background:white}.data-table th{font-weight:600;background:#f7f7f7}.data-table td{overflow:hidden;text-overflow:ellipsis}.data-table tbody tr:hover td{background:#fafafa}.whitelist-table{width:3195px;table-layout:fixed}.whitelist-table .fixed-left,.whitelist-table .fixed-right{position:sticky;z-index:2}.whitelist-table th.fixed-left,.whitelist-table th.fixed-right{z-index:3;background:#f7f7f7}.fixed-0{left:0}.fixed-1{left:95px}.fixed-2{left:200px;box-shadow:4px 1px 4px #0003}.fixed-17{right:115px;box-shadow:-3px 1px 3px #0002}.fixed-18{right:0}.row-actions{display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;line-height:22px}.permission-cell{text-align:left}.tag{display:inline-block;vertical-align:middle;padding:0 5px;border:1px solid #f8baba;border-radius:4px;color:#f16060;background:#fff1f1;font-size:12px;line-height:20px;margin-right:4px}.tag.gray{border-color:#d7d7d7;color:#888;background:#f6f6f6}.remark-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:55px 0 22px;font-size:13px;white-space:nowrap;color:#9aa0a8}.pagination .total{margin-right:auto}.page-btn{min-width:25px;height:25px;padding:0 5px;border:0;background:transparent;color:#9199a3;border-radius:4px}.page-btn.active{background:#f44343;color:white}.page-btn:disabled{background:transparent;color:#ccc;border:0}.page-btn.active:disabled{color:#f34343}.pagination select{height:25px;padding:0 7px;color:#98a0aa;font-size:13px;background:#fafafa;border-color:#eee}.pagination input{height:25px;width:48px;padding:0 5px;text-align:center;border-color:#eee;color:#98a0aa}.history-panel{padding:30px 40px;min-height:calc(100vh - 160px)}.history-table{min-width:1680px;table-layout:fixed}.history-table th:nth-child(1),.history-table th:nth-child(2){width:185px}.history-table th:nth-child(3){width:90px}.history-table th:nth-child(4){width:105px}.history-table th:nth-child(5){width:180px}.history-table th:nth-child(9){width:230px}.history-table th:nth-child(10){width:235px}.history-table th:last-child{width:80px}.empty{height:38px!important;color:#999!important;text-align:center;font-size:13px}
.panel-title{position:relative;height:45px;display:flex;align-items:center;padding-left:16px;font-weight:600;border-bottom:1px solid #eee}.panel-title:before{content:"";position:absolute;left:0;top:13px;width:4px;height:19px;background:#f2442c;border-radius:0 4px 4px 0}.panel-body{padding:16px 18px 24px}.client-toolbar{display:flex;align-items:center;height:32px;margin-bottom:15px}.client-table{min-width:1320px;width:75%;text-align:center}.client-table td,.client-table th{padding:6px 11px}.client-table th:last-child{min-width:260px}
.form-line{display:flex;align-items:center;gap:10px;margin:0 0 15px;white-space:nowrap;padding-left:25px}.form-label{width:143px;text-align:right;white-space:nowrap;flex-shrink:0}.radios{display:flex;align-items:center;gap:28px;white-space:nowrap}.radios label,.checks label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer}label:has(input:disabled){cursor:default}.config-box{margin:0 0 20px 178px;padding:13px 15px;border:1px solid #ddd;border-radius:8px;background:#f8f8f8}.roles-box{width:620px}.employees-box{width:1000px}.config-note{margin-bottom:11px;color:#999;white-space:nowrap}.role-row{display:flex;align-items:center;gap:20px;height:30px;white-space:nowrap}.role-row>label{display:flex;align-items:center;gap:8px;min-width:215px;white-space:nowrap;cursor:pointer}.current-person{font-size:13px;color:#999;white-space:nowrap}.info-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;background:#333;color:white;font-size:9px;border-radius:50%;vertical-align:middle;cursor:help}.checks{display:flex;align-items:center;gap:12px;white-space:nowrap}.endpoint-line{margin:0;gap:10px;padding-left:15px}.endpoint-line .form-label{width:153px}
.employee-picker{position:relative;width:235px;margin-bottom:13px}.employee-picker input{width:100%;padding-right:30px;background:white}.employee-picker input:disabled{background:#eee}.search-icon{position:absolute;right:10px;top:3px;color:#999;font-size:20px}.suggestions{position:absolute;left:0;right:0;top:35px;max-height:280px;overflow:auto;background:white;box-shadow:2px 3px 5px #0004;z-index:15}.suggestion{display:block;width:100%;padding:9px 12px;border:0;text-align:left;background:white;color:#777;white-space:nowrap;font-size:13px}.suggestion:hover{background:#f6f6f6}.employee-table{width:100%;table-layout:auto}.employee-table td,.employee-table th{padding:6px 10px}.employees-box .pagination{padding:14px 0 0}
.remark-box{width:75%;min-width:900px;max-width:100%;border:1px solid #ddd;border-radius:4px;background:white}.remark-box textarea{display:block;min-height:110px;width:100%;padding:12px;border:0;background:transparent;color:#333;resize:none;outline:none;font:inherit}.remark-box.readonly{background:#f0f0f0}.remark-box.readonly textarea{color:#999}.remark-bottom{display:flex;align-items:flex-end;gap:8px;min-height:49px;padding:0 10px 10px}.char-count{margin-left:auto;color:#999;font-size:13px;white-space:nowrap}.upload-btn{display:flex;align-items:center;justify-content:center;width:37px;height:37px;border:0;border-radius:6px;background:#f4f4f4;color:#999;font-size:20px;cursor:pointer}.upload-btn.disabled{cursor:not-allowed;color:#ccc}.thumb-wrap{position:relative;width:39px;height:37px}.thumb-wrap img{display:block;width:39px;height:37px;object-fit:cover;border:1px solid #ddd;border-radius:4px;cursor:zoom-in}.remove-img{position:absolute;right:0;top:0;width:13px;height:13px;padding:0;border:0;background:#666;color:white;border-radius:0 3px 0 0;font-size:11px;line-height:13px}.form-actions{position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;gap:13px;padding:12px;background:white;box-shadow:2px 3px 3px #0005;margin-top:12px;z-index:5}
.overlay{position:fixed;inset:0;background:#0005;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal{display:flex;flex-direction:column;background:white;width:900px;max-width:95vw;max-height:90vh;box-shadow:3px 4px 6px #0005}.modal.small{width:460px}.modal.medium{width:510px}.modal-head{display:flex;align-items:center;justify-content:space-between;background:#2d384a;color:white;height:42px;min-height:42px;padding:0 18px;font-size:15px;font-weight:600}.close-btn{border:0;background:none;padding:0;color:#8c98a9;font-size:25px;font-weight:300;line-height:1}.modal-content{padding:28px 32px;overflow:auto}.modal-footer{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #f3f3f3;padding:12px 20px}.confirm-copy{position:relative;padding:25px 0 26px 36px;font-weight:400;line-height:1.7}.confirm-copy:before{content:"!";position:absolute;left:7px;top:30px;display:flex;align-items:center;justify-content:center;background:#f57e39;color:white;width:17px;height:17px;border-radius:50%;font-weight:600;font-size:12px}.confirm-copy strong{font-weight:400}.confirm-copy p{margin:12px 0 0;color:#444}.modal.small .confirm-copy{min-height:142px;padding-top:32px}.modal.small .confirm-copy:before{top:36px}.modal.medium .remark-box{width:100%;min-width:0}.modal.medium .remark-box textarea{min-height:100px}.modal.medium .confirm-copy{padding-top:13px}.modal.medium .confirm-copy:before{top:18px}.modal-search{display:flex;align-items:center;gap:12px;margin-bottom:14px}.modal-search input{width:235px}.modal-search .btn{height:31px}.modal .pagination{padding:25px 0 0}.modal .data-table{font-size:13px}
.drawer{position:fixed;inset:0 0 0 auto;width:1000px;max-width:90vw;background:white;display:flex;flex-direction:column;box-shadow:-3px 0 5px #0002}.drawer .modal-head{height:46px;flex-shrink:0}.drawer-body{padding:20px;overflow:auto;flex:1}.drawer h3{font-size:14px;font-weight:400;margin:0 0 14px;padding-left:10px;border-left:3px solid #f24242}.drawer .data-table{font-size:12px}.drawer .data-table th,.drawer .data-table td{border:0;border-bottom:1px solid #eee;background:#fafafa}.drawer .data-table th{font-weight:400}.inner-tabs{display:flex;gap:24px;margin:15px 0 20px}.inner-tabs button{padding:5px 0 9px;background:none;color:#777;border:0;border-bottom:2px solid transparent}.inner-tabs button.active{color:#f44343;border-bottom-color:#f44343}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px;font-size:12px;color:#999}.coverage{display:grid;grid-template-columns:1fr 1fr;gap:28px}.coverage h4{font-size:13px;font-weight:400}.coverage-card{background:#fff6f6;border:1px solid #f5ecec;border-radius:3px;padding:12px;margin-bottom:9px;font-size:12px;color:#777}.timeline{border-left:1px solid #eee;padding-left:20px}.timeline-item{position:relative;color:#aaa;font-size:12px;margin:16px 0}.timeline-item:before{position:absolute;content:"";width:7px;height:7px;top:5px;left:-24px;border-radius:50%;background:#e4e7ed}.timeline-item p{padding:10px;background:#fff0e3;color:#555;border-radius:3px}
.image-modal{position:relative;max-width:90vw;max-height:85vh}.image-modal img{display:block;max-width:85vw;max-height:80vh;object-fit:contain}.image-modal .close-btn{position:absolute;right:0;top:-31px;color:white}#toast-root{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:100;pointer-events:none}.toast{padding:10px 24px;margin-bottom:8px;border:1px solid #f9dada;background:#fff1f1;color:#fa8181;border-radius:3px;white-space:nowrap}.toast.success{border-color:#a9c5f4;background:#eff5ff;color:#669bdf}.muted{color:#999}
.date-field input[type=date]{position:relative}
.date-field input[type=date][value=""]::-webkit-datetime-edit{color:transparent}
.date-field input[type=date][value=""]:before{content:"选择日期";position:absolute;left:0;top:5px;color:#b3bdca;pointer-events:none}
.restore-default{position:absolute;left:20px;bottom:12px;width:150px}
