[hidden]{display:none!important}:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#4d283b;background:#fff7fb;font-size:14px;--green:#cb4e8b;--muted:#98788b;--line:#f1dfe9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;background:white;border:1px solid #ead3df;border-radius:8px;padding:9px 14px;color:#75425d}button:hover{background:#fff0f7}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#ad3e75}.danger{color:#b14545}input,select{display:block;width:100%;padding:11px 12px;border:1px solid #eed7e3;border-radius:8px;background:#fff;color:#58354a;outline:none}input:focus,select:focus{border-color:#dc6da2;box-shadow:0 0 0 3px #dc6da212}label{display:block;margin:15px 0;color:#80596d;font-size:13px}label input,label select{margin-top:7px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fffbfd}.intro{position:relative;background:#743750;color:#fff0f7;padding:64px 13%;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.intro:after{content:"";width:500px;height:500px;border:1px solid #ffffff10;border-radius:50%;position:absolute;right:-200px;bottom:-150px;box-shadow:0 0 0 80px #ffffff03,0 0 0 160px #ffffff02}.logo{display:inline-grid;place-items:center;font-weight:800;font-size:22px;border-radius:12px;background:#ffd0e6;color:#9b3f68;width:44px;height:44px}.intro>.logo{position:absolute;top:55px}.intro h1{font-size:52px;line-height:1.4;letter-spacing:-2px;margin:22px 0}.intro>p:not(.eyebrow){color:#edbdd3;line-height:1.9}.eyebrow{font-size:10px;letter-spacing:2px;color:#ba809d;font-weight:600}.intro-foot{position:absolute;bottom:45px;left:13%;right:13%;font-size:12px}.intro-foot span{float:right;color:#d8a7bd}.login-card{width:380px;max-width:85%;margin:auto}.login-card h2{font-size:30px;margin-bottom:8px}.login-card .primary{width:100%;padding:13px;margin:15px 0}.pill,.badge{display:inline-block;border-radius:5px;padding:5px 9px;background:#ffe8f2;color:#bc5081;font-size:11px}.muted{color:var(--muted);line-height:1.8}.error{color:#b14545}aside{width:232px;position:fixed;height:100vh;background:#fff;border-right:1px solid var(--line);padding:31px 20px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:#743750;font-size:21px;font-weight:700;padding:0 9px}.brand small{display:block;font-size:8px;letter-spacing:1.5px;margin-top:5px;color:#b28b9e}.nav-label{font-size:10px;color:#c3a3b4;margin:44px 15px 16px;letter-spacing:1px}nav button{display:block;width:100%;text-align:left;border:0;margin:6px 0;padding:14px 16px;color:#a27990;background:transparent}nav button.active{background:#ffe9f4;color:#cb4e8b;font-weight:700}nav button span{display:inline-block;width:28px;font-size:17px}.sidebar-bottom{position:absolute;bottom:28px;left:35px;color:#a27d91;font-size:12px}.sidebar-bottom small{display:block;font-size:10px;color:#c39bb0;margin-top:10px}.online{display:inline-block;width:7px;height:7px;border-radius:50%;background:#e17aac;margin-right:8px}main{margin-left:232px;padding:40px 42px 24px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}header h1{font-size:28px;letter-spacing:-.7px;margin:10px 0}.identity{display:flex;gap:10px;align-items:center;font-size:12px}.identity>span{margin-right:10px}.identity button{font-size:11px;padding:7px 10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.stat{padding:23px;background:white;border:1px solid var(--line);border-radius:12px}.stat small{font-size:12px;color:#b18a9f}.stat strong{display:block;font-size:34px;margin:15px 0 9px;font-weight:600;color:#8f3f65}.stat p{margin:0;color:#c2a6b5;font-size:11px}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:24px}.panel-head{padding:22px 24px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid #f7e8f0}.panel-head h2{font-size:16px;margin:0 0 5px}.panel-head p{margin:0;font-size:12px;color:#b99aac}.panel-head .tools{display:flex;gap:8px;align-items:center}.tools input,.tools select{padding:8px;width:180px;font-size:12px}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-weight:500;color:#b092a2;font-size:11px;background:#fffbfd;padding:14px 24px;border-bottom:1px solid #f6e7ef}td{padding:17px 24px;border-bottom:1px solid #f9edf3;font-size:12px;color:#815d71}td strong{color:#864766;font-size:13px}td small{display:block;color:#bfa1b1;margin-top:5px;font-size:10px}.badge.bad{color:#b15555;background:#faeeee}.badge.warn{color:#9b7a25;background:#faf4e5}.empty{text-align:center;padding:70px;color:#bd9aaf}.empty strong{display:block;color:#a36a86;font-size:16px;margin-bottom:10px}.welcome{border-radius:12px;background:#ffe5f1;padding:28px 32px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between}.welcome h2{margin:0 0 9px;font-size:19px;color:#9e466f}.welcome p{font-size:12px;color:#bf80a0;margin:0;line-height:1.8}.welcome .mark{font-size:52px;color:#df91b6}.split{display:grid;grid-template-columns:1.35fr 1fr;gap:24px}.info{padding:24px;font-size:13px;line-height:2;color:#ab8a9b}.info p{margin:0 0 16px}.info b{color:#a4587d}footer{display:flex;justify-content:space-between;font-size:10px;color:#c9a8ba;margin-top:35px}dialog{width:560px;max-width:92vw;border:1px solid #e1e9e2;padding:26px;border-radius:15px;box-shadow:0 24px 100px #18302430}dialog::backdrop{background:#15291d55;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font-size:20px}.dialog-head button{font-size:22px;border:0}dialog .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.checks{display:flex;gap:20px}.checks label{display:flex;align-items:center;gap:7px}.checks input{width:auto;margin:0}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff2f8;padding:16px;border-radius:8px;max-height:55vh;overflow:auto;font-size:12px}#notice{padding:12px 18px;background:#fff0e5;color:#986143;border-radius:8px;margin-bottom:20px}.pager{display:flex;gap:10px;justify-content:flex-end;padding:18px}.code{word-break:break-all;white-space:normal;font-family:monospace;background:#fff0f7;border:1px dashed #e39cbf;padding:20px;border-radius:8px}.tab-note{padding:16px 24px;color:#8a998d;font-size:11px}@media(max-width:1000px){aside{width:185px}main{margin-left:185px;padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.identity{flex-wrap:wrap;justify-content:flex-end}.split{grid-template-columns:1fr}.tools input{width:120px}}@media(max-width:650px){.login{grid-template-columns:1fr}.intro{display:none}.login-card{margin:15vh auto}aside{position:static;width:100%;height:auto;padding:15px}.brand{font-size:17px}.nav-label,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:10px}nav button{width:auto;white-space:nowrap;padding:9px}main{margin:0;padding:20px}header{gap:12px}header h1{font-size:23px}.stats{gap:10px}.stat{padding:18px}.panel-head{align-items:flex-start;flex-direction:column}.identity>span{display:none}th,td{padding:14px}.welcome{padding:22px}}

.row-actions{display:flex;gap:7px;flex-wrap:wrap}.row-actions button{font-size:11px;padding:7px 10px}textarea{font:inherit;color:#684357;width:100%;padding:12px;border:1px solid #efd9e5;border-radius:8px;resize:vertical;margin-top:8px}progress{width:100%;accent-color:#cb4e8b}.login-card button:disabled{background:#dbb6c8;border-color:#dbb6c8}

aside{overflow-y:auto}.sidebar-bottom{position:static;margin:28px 15px 0}@media(max-width:650px){aside{overflow:visible}}

.nav-group{margin:22px 0}.nav-group h2{font-size:11px;font-weight:500;letter-spacing:1px;color:#bb8fa5;margin:0 15px 8px}.nav-group button{margin:3px 0;padding:11px 15px}.role-groups fieldset{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:8px 14px}.role-groups legend{color:#a15079;padding:0 8px}.role-groups .checks{flex-wrap:wrap;gap:4px 20px}.role-groups label{margin:8px 0}.record-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.record-images a{color:var(--muted);text-decoration:none;min-width:0}.record-images img{width:100%;height:160px;object-fit:contain;background:#fff7fb;border:1px solid var(--line);border-radius:8px}.record-images small{display:block;margin-top:5px}.record-upload{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:16px}.record-upload input{min-width:0;font-size:12px}.record-upload button{flex-shrink:0}dialog{max-height:90vh;overflow:auto;border-color:var(--line)}dialog .actions{position:sticky;bottom:-26px;background:#fff;padding:16px 0;margin-top:12px}.nav-label{margin-top:28px}@media(max-width:650px){nav .nav-group{margin:0;display:flex;align-items:center;gap:4px;border-right:1px solid var(--line);padding-right:10px}nav .nav-group h2{display:none}.record-images{grid-template-columns:1fr}.record-upload{align-items:stretch;flex-direction:column}}

.data-scope{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:9px;background:#fff}.data-scope button{border:0;margin:0!important;padding:8px 12px;white-space:nowrap}.data-scope button.active{background:#ffe9f4;color:#bb427b;font-weight:600}.identity .data-scope{margin-right:10px}

.pager{align-items:center;flex-wrap:wrap;gap:8px}.pager select{width:115px;padding:9px}.pager input{width:72px;padding:9px}.pager>span{margin-right:auto}

td input[type=checkbox],th input[type=checkbox]{width:16px;height:16px;padding:0;margin:0;accent-color:#cb4e8b}.panel-head .tools{flex-wrap:wrap}.panel-head .tools>span{white-space:nowrap}

/* 弹窗标题与关闭按钮始终悬浮于滚动内容上方。 */
dialog#modal{padding:0;max-height:90vh;width:min(920px,94vw)}#modal .dialog-head{position:sticky;top:0;z-index:5;margin:0;padding:20px 24px;background:white;border-bottom:1px solid var(--line);gap:16px}#modal .dialog-head h2{margin:0;overflow-wrap:anywhere;font-size:18px}#modalClose{flex:0 0 38px;height:38px;background:#fff0f7;border-radius:50%;font-size:22px;padding:0}#modalBody{padding:20px 24px}.asset-summary{font-weight:600;color:#ad3e75}

.asset-bag-tools{display:flex;gap:12px;align-items:center}.asset-bag-tools input{flex:1;min-width:0}.asset-bag-tools select{width:180px}.quality-badge{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid var(--quality-color);border-radius:6px;color:var(--quality-color);background:#fff;font-size:12px;white-space:nowrap}@media(max-width:650px){.asset-bag-tools{align-items:stretch;flex-direction:column}.asset-bag-tools select{width:100%}}

/* 游戏账号客户端可用开关，沿用后台粉色主题。 */
.account-switch{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border-color:transparent;background:transparent;padding:6px;color:var(--muted)}.account-switch-track{display:inline-block;position:relative;width:34px;height:20px;border-radius:12px;background:#c7c3ca;transition:background .15s}.account-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}.account-switch[aria-checked="true"]{color:#cb4e8b}.account-switch[aria-checked="true"] .account-switch-track{background:#cb4e8b}.account-switch[aria-checked="true"] .account-switch-track::after{transform:translateX(14px)}.account-switch:focus-visible{outline:2px solid #cb4e8b;outline-offset:2px}.account-switch:disabled{opacity:.55;cursor:wait}
