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}.medal{font-size:12px}.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}@media(max-width:768px){header{flex-direction:column;align-items:flex-start;gap:8px}.mcards{grid-template-columns:repeat(2,1fr)}.filebar{flex-wrap:wrap}th,td{padding:5px 8px;font-size:12px}.rbadge{min-width:36px;padding:1px 5px;font-size:11px}.tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:none;white-space:nowrap}.colpanel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100vw - 40px);max-width:380px;z-index:200;max-height:80vh}.collist{max-height:50vh}.tablewrap{background:linear-gradient(to right,transparent calc(100% - 48px),rgba(0,0,0,.04) 100%),#fff}th:first-child,td:first-child{position:sticky;left:0;z-index:2}th:first-child{background:#f1f4f8}td:first-child{background:#fff}tr.t1 td:first-child{background:#eef4fb}tr.t2 td:first-child{background:#fbf1ec}}@media(max-width:480px){.wrap{padding:10px 8px}.mcards{grid-template-columns:1fr;gap:6px}.mc{padding:6px 10px}.mc .v{font-size:15px}.up-actions{flex-direction:column;align-items:stretch}.up-actions .filebtn{width:100%}.filebar{flex-direction:column;align-items:stretch;gap:6px}.filebar .ghost.sm{width:100%}.fb-chips{max-height:80px;overflow-y:auto}.actionrow{flex-direction:column;align-items:stretch}.actionrow .lg{width:100%}.colpanel{width:calc(100vw - 24px)}.collist{max-height:50vh}.restoolbar{flex-direction:column}.tabs{flex:none;width:100%}.restoolbar .resactions{width:100%;gap:4px}.restoolbar .resactions button{flex:1;min-width:0}.modal{width:calc(100vw - 32px)}th,td{padding:4px 5px;font-size:11px}.rbadge{min-width:28px;padding:1px 4px;font-size:10px}.chip{font-size:11px;padding:2px 4px}header .ghost{font-size:0;gap:0;padding:6px;width:32px;height:32px;border-radius:50%}header .ghost .ic{font-size:0;width:18px;height:18px}}.scroll-hint{display:none}@media(max-width:768px){.scroll-hint{display:block;text-align:center;font-size:11px;color:#9aa3b2;margin:6px 0 0;padding-bottom:4px}}
