body{margin:0;font-family:Segoe UI,Microsoft YaHei,sans-serif;color:#222;background:#f7f8fa}.wrap{max-width:1400px;margin:0 auto;padding:16px 20px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid #e9edf3;margin-bottom:18px}h1{font-size:17px;margin:0;font-weight:600;color:#28313f;line-height:1.2}.brand{display:flex;align-items:center;gap:11px}.brandtext{display:flex;flex-direction:column}.subtitle{font-size:12px;color:#8b94a3;margin:2px 0 0}.logo{width:34px;height:34px;border-radius:9px;background:#e6f1fb;color:#185fa5;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mcards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:4px 0 12px}.mc{background:#f1f4f8;border-radius:8px;padding:9px 13px}.mc .k{font-size:12px;color:#777}.mc .v{font-size:18px;font-weight:600;margin-top:2px}.rbadge{display:inline-block;min-width:42px;padding:1px 7px;border-radius:6px;font-size:12px}.r-poor{background:#fcebeb;color:#791f1f}.r-mid{background:#f1efe8;color:#444441}.r-good{background:#eaf3de;color:#27500a}.r-great{background:#e6f1fb;color:#0c447c}.r-elite{background:#eeedfe;color:#3c3489}.alive{color:#3b6d11}.dead{color:#9aa1ad}button,.filebtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border:1px solid transparent;background:#4f88d6;color:#fff;line-height:1;border-radius:7px;cursor:pointer;font-size:13px;transition:background .12s,border-color .12s}button:hover:not(:disabled),.filebtn:hover{background:#4079c9}button:disabled{opacity:.5;cursor:default}.ghost{background:#f1f4f8;color:#46566f;border-color:#dbe3ef}.ghost:hover:not(:disabled),.filebtn.ghost:hover{background:#e7ecf4}.filebtn input{display:none}.lg{padding:10px 20px;font-size:14px;font-weight:600;border-radius:9px}.lg .ic{width:18px;height:18px}.sm{padding:5px 11px;font-size:12px;border-radius:7px}.sm .ic{width:14px;height:14px}.muted{color:#777;font-size:13px}.error{color:#c00}.warn{color:#8a5200;background:#fff8e8;border:1px solid #f0d08a;padding:8px;border-radius:4px}.warn span,.error span{display:inline-block;margin:2px 8px 2px 0}.uploadwrap{margin-bottom:16px}.uploadcard{border:1.5px dashed #c2d0e4;background:#fbfcfe;border-radius:12px;padding:30px 20px;text-align:center;transition:border-color .12s,background .12s}.uploadcard.dragging{border-color:#4f88d6;background:#eef4fb}.up-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#e6f1fb;color:#3a82d2;margin-bottom:12px}.up-icon .ic{width:26px;height:26px}.up-title{font-size:15px;font-weight:600;color:#3a4555}.up-sub{font-size:13px;color:#9098a6;margin-top:4px}.up-actions{display:flex;gap:10px;justify-content:center;margin-top:16px}.filebar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:9px 13px;transition:border-color .12s,background .12s}.filebar.dragging{border-color:#4f88d6;background:#eef4fb}.fb-ic{width:18px;height:18px;color:#5b86c4}.fb-count{font-size:13px;font-weight:600;color:#3a4555;flex:none}.fb-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0}.actionrow{display:flex;align-items:center;gap:12px;margin-top:12px}.chip{background:#eef2f7;border:1px solid #d7dee9;border-radius:4px;padding:3px 6px;font-size:12px;display:inline-flex;align-items:center;gap:4px}.chipx{padding:0 4px;border:none;background:transparent;color:#8a93a6;font-size:14px;line-height:1;cursor:pointer;border-radius:3px}.chipx:hover{background:#d9534f;color:#fff}.tabx{margin-left:4px;padding:0 3px;border-radius:3px;opacity:.65}.tabx:hover{background:#d9534f;color:#fff;opacity:1}.dropdown{position:relative;display:inline-block}.colpanel{position:absolute;top:110%;right:0;z-index:50;width:260px;background:#fff;border:1px solid #c7d3e6;border-radius:6px;box-shadow:0 6px 24px #00000026;padding:6px 0}.colpanel-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 10px 6px;border-bottom:1px solid #eef1f6}.cph-title{flex-basis:100%;font-size:12px;color:#777;margin-bottom:2px}.linkbtn{background:none;border:none;color:#4f88d6;padding:2px 4px;font-size:12px;cursor:pointer}.linkbtn:hover:not(:disabled){background:none}.linkbtn:hover{text-decoration:underline}.collist{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow-y:auto}.collist li{display:flex;align-items:center;gap:6px;padding:3px 10px}.collist li:hover{background:#f3f6fb}.collist li.dragging{opacity:.4}.grip{cursor:grab;color:#aab;-webkit-user-select:none;user-select:none;font-size:12px;letter-spacing:-2px}.colitem{flex:1;font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap;cursor:default}.cat{font-size:11px;color:#9aa3b2}.restoolbar{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin:16px 0 8px}.resactions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0;margin:0}.tabs button{background:#f1f4f8;color:#46566f;border-color:#dbe3ef}.tabs button:hover:not(:disabled){background:#e7ecf4}.tabs button.active{background:#e6f1fb;color:#185fa5;border-color:#bcd8f2;font-weight:600}.tabs.locked button:disabled{cursor:not-allowed}.tablewrap{overflow-x:auto;background:#fff;border:1px solid #e3e8ef;border-radius:10px}table{border-collapse:collapse;width:max-content;min-width:100%;font-size:13px}th,td{padding:7px 12px;white-space:nowrap;text-align:center;border-bottom:1px solid #eef1f6;font-variant-numeric:tabular-nums}th{background:#f1f4f8;color:#46566f;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;border-bottom:1px solid #d6deea}tbody tr:last-child td{border-bottom:none}th:last-child,td:last-child{padding-right:16px}tr.t1 td{background:#eef4fb}tr.t2 td{background:#fbf1ec}.closed{padding:30px;font-family:Segoe UI,Microsoft YaHei,sans-serif}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:8px;padding:18px 20px;width:360px;max-width:90vw;box-shadow:0 8px 30px #0003}.modal-title{font-size:15px;font-weight:700;margin:0 0 8px;color:#34465f}.modal-sub{font-size:12px;color:#777;margin:6px 0 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
