:root{
    --bg0:#060b14;--bg1:#0c1220;--bg2:#111a2e;--bg3:#162038;--bg4:#1c2844;
    --bd:#1a2744;--bd2:#243352;--bd3:#2e3f64;
    --t1:#edf2f7;--t2:#94a3b8;--t3:#5a6a82;--t4:#3a4a62;
    --ac:#00e0a0;--ac2:rgba(0,224,160,.12);--ac3:rgba(0,224,160,.25);
    --gd:#fbbf24;--gd2:rgba(251,191,36,.1);--gd3:rgba(251,191,36,.25);
    --pf:#00e0a0;--ls:#f43f5e;--wn:#f59e0b;--inf:#38bdf8;
    --pf2:rgba(0,224,160,.08);--ls2:rgba(244,63,94,.08);--wn2:rgba(245,158,11,.08);
    --r:10px;--r2:6px;--r3:4px;
    --fd:'Orbitron',monospace;--fb:'Noto Sans SC',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:13px;scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--bg0);color:var(--t1);min-height:100vh;overflow-x:hidden;line-height:1.5}
.hidden{display:none!important}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg1)}
::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:3px}

#bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none}
.glow-orb{position:fixed;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0;opacity:.3}
.orb-1{width:500px;height:500px;background:radial-gradient(circle,rgba(0,224,160,.15),transparent 70%);top:-100px;left:-100px;animation:oF 20s ease-in-out infinite}
.orb-2{width:400px;height:400px;background:radial-gradient(circle,rgba(251,191,36,.1),transparent 70%);bottom:-80px;right:-80px;animation:oF 25s ease-in-out infinite reverse}
@keyframes oF{0%,100%{transform:translate(0,0)}25%{transform:translate(60px,40px)}50%{transform:translate(-30px,80px)}75%{transform:translate(40px,-20px)}}

.icon{display:inline-block;width:1em;height:1em;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon.sm{font-size:14px}.icon.md{font-size:18px}.icon.lg{font-size:24px}.icon.xl{font-size:40px}
.icon.gold{color:var(--gd)}.icon.muted{color:var(--t3)}

/* ====== 密码锁屏 ====== */
#lock-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--bg0)}
#lock-screen::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,224,160,.04),transparent 70%)}
.lock-card{position:relative;width:360px;max-width:90vw;background:var(--bg2);border:1px solid var(--bd2);border-radius:16px;padding:40px 32px 32px;text-align:center;box-shadow:0 20px 80px rgba(0,0,0,.6);animation:sU .4s}
.lock-icon{margin-bottom:16px}
.lock-title{font-family:var(--fd);font-size:22px;font-weight:900;background:linear-gradient(135deg,var(--gd),var(--ac));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px}
.lock-sub{font-size:13px;color:var(--t3);margin-bottom:24px}
.lock-input-wrap{position:relative;display:flex;align-items:center;margin-bottom:8px}
.lock-input-wrap svg{position:absolute;left:12px;pointer-events:none}
.lock-input-wrap input{width:100%;padding:12px 42px 12px 40px;font-size:15px;color:var(--t1);background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r);outline:none;transition:.2s;font-family:var(--fb);letter-spacing:1px}
.lock-input-wrap input:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac2)}
.lock-eye{position:absolute;right:4px;background:none;border:none;color:var(--t4);cursor:pointer;padding:8px;border-radius:var(--r2);transition:.15s}
.lock-eye:hover{color:var(--t2)}
.lock-err{font-size:12px;color:var(--ls);margin-bottom:8px;animation:shake .3s}
.lock-btn{width:100%;padding:12px;font-size:14px;font-weight:700;margin-top:4px}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}

/* ====== 头部 ====== */
header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:16px;padding:10px 20px;background:rgba(6,11,20,.85);backdrop-filter:blur(24px) saturate(1.2);border-bottom:1px solid var(--bd)}
.logo{display:flex;align-items:center;gap:8px;flex-shrink:0}
.logo-text{font-family:var(--fd);font-size:16px;font-weight:900;background:linear-gradient(135deg,var(--gd),var(--ac));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.level-section{display:flex;align-items:center;gap:10px;max-width:280px;flex:1}
.level-badge{font-family:var(--fd);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;background:linear-gradient(135deg,var(--gd),#f97316);color:#000;white-space:nowrap}
.level-info{flex:1;min-width:0}
.level-name{font-size:10px;color:var(--t3);display:block}
.level-bar{height:5px;border-radius:3px;background:var(--bg3);margin:3px 0;overflow:hidden}
.level-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac),var(--gd));width:0%;transition:width .6s}
.level-xp{font-size:10px;color:var(--t4);font-family:var(--fd)}
.header-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}
.sm-text{display:none}

.btn-accent{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;font-size:12px;font-weight:600;color:#000;background:var(--ac);border:none;border-radius:var(--r2);cursor:pointer;transition:.2s;font-family:var(--fb)}
.btn-accent:hover{filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 4px 20px var(--ac3)}
.btn-profit{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;font-size:12px;font-weight:600;color:#000;background:var(--pf);border:none;border-radius:var(--r2);cursor:pointer;transition:.2s;font-family:var(--fb)}
.btn-profit:hover{filter:brightness(1.15)}
.btn-ghost{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;font-size:12px;font-weight:500;color:var(--t2);background:transparent;border:1px solid var(--bd2);border-radius:var(--r2);cursor:pointer;transition:.2s;font-family:var(--fb)}
.btn-ghost:hover{color:var(--t1);border-color:var(--bd3);background:var(--bg3)}
.btn-danger{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;font-size:12px;color:var(--ls);background:var(--ls2);border:1px solid rgba(244,63,94,.2);border-radius:var(--r2);cursor:pointer;transition:.2s;font-family:var(--fb)}
.btn-danger:hover{background:rgba(244,63,94,.15)}
.btn-warn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;font-size:12px;color:var(--wn);background:var(--wn2);border:1px solid rgba(245,158,11,.2);border-radius:var(--r2);cursor:pointer;transition:.2s;font-family:var(--fb)}
.btn-warn:hover{background:rgba(245,158,11,.15)}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:var(--t3);background:transparent;border:1px solid var(--bd);border-radius:var(--r2);cursor:pointer;transition:.2s}
.btn-icon:hover{color:var(--gd);border-color:var(--gd);background:var(--gd2)}
.btn-x{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--t3);background:transparent;border:none;border-radius:var(--r3);cursor:pointer;transition:.2s}
.btn-x:hover{color:var(--t1);background:var(--bg3)}
.btn-sm{padding:5px 10px;font-size:11.5px}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}

main{position:relative;z-index:1;max-width:1560px;margin:0 auto;padding:16px 20px 40px}

#dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.stat-card{position:relative;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;overflow:hidden;transition:.25s}
.stat-card:hover{border-color:var(--bd2);transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.3)}
.sc-glow{position:absolute;top:-30px;right:-30px;width:100px;height:100px;border-radius:50%;filter:blur(50px);opacity:.4;transition:.3s}
.sc-total .sc-glow{background:var(--inf)}.sc-cost .sc-glow{background:var(--wn)}.sc-profit .sc-glow{background:var(--pf)}.sc-roi .sc-glow{background:var(--ac)}
.stat-card:hover .sc-glow{opacity:.6;transform:scale(1.2)}
.sc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.sc-label{font-size:11px;color:var(--t3);font-weight:500}
.sc-value{font-family:var(--fd);font-size:24px;font-weight:700;line-height:1.1}
.sc-split{font-size:10.5px;color:var(--t4);margin-top:8px;padding-top:6px;border-top:1px solid var(--bd)}
.sc-trend{font-size:10px;color:var(--t3);margin-top:4px;font-family:var(--fd)}

/* 快捷操作栏 */
#quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.qa-card{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);transition:.2s}
.qa-card:hover{border-color:var(--bd2);transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.2)}
.qa-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--bg3);color:var(--t3)}
.qa-info{display:flex;flex-direction:column;flex:1}
.qa-label{font-size:10px;color:var(--t4);margin-bottom:2px}
.qa-value{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--t1)}

#toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;margin-bottom:10px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.tb-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.search-box{position:relative;display:flex;align-items:center}
.search-box input{width:200px;padding:6px 10px 6px 28px;font-size:12px;color:var(--t1);background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r2);outline:none;transition:.2s;font-family:var(--fb)}
.search-box input:focus{border-color:var(--ac);box-shadow:0 0 0 2px var(--ac2)}
.search-box .icon{position:absolute;left:7px;pointer-events:none}
select{padding:6px 24px 6px 8px;font-size:12px;color:var(--t2);background:var(--bg2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%235a6a82'/%3E%3C/svg%3E") no-repeat right 8px center;border:1px solid var(--bd);border-radius:var(--r2);outline:none;cursor:pointer;appearance:none;font-family:var(--fb);transition:.2s}
select:focus{border-color:var(--ac)}
.tb-right{display:flex;align-items:center;gap:8px}
.page-info{font-size:11px;color:var(--t4);white-space:nowrap;font-family:var(--fd)}

.table-wrap{overflow-x:auto;border:1px solid var(--bd);border-radius:var(--r);background:var(--bg2)}
#dtable{width:100%;border-collapse:collapse;white-space:nowrap;min-width:1100px}
#dtable th{padding:8px 10px;font-size:10.5px;font-weight:600;color:var(--t3);text-align:left;background:var(--bg1);border-bottom:1px solid var(--bd);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:2}
#dtable th.th-num,#dtable th.th-pf,#dtable th.th-roi,#dtable th.th-act{text-align:right}
#dtable th.th-ck{width:32px;text-align:center}
#dtable td{padding:6px 10px;font-size:12px;color:var(--t2);border-bottom:1px solid rgba(26,39,68,.4);transition:background .15s}
#dtable td.num{text-align:right;font-variant-numeric:tabular-nums}
#dtable td.pf-cell{font-weight:700;text-align:right}
#dtable td.act-cell{text-align:right}
#dtable tbody tr{transition:background .15s}
#dtable tbody tr:hover{background:rgba(22,32,56,.8)}
#dtable tbody tr:last-child td{border-bottom:none}

td.edt{border-bottom:1px solid transparent;cursor:default;position:relative}
td.edt::after{content:'';position:absolute;bottom:0;left:4px;right:4px;height:1px;background:var(--ac);opacity:0;transition:opacity .2s}
td.edt:hover::after{opacity:.5}

.domain-cell{display:flex;align-items:center;gap:7px}
.domain-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.domain-dot.holding{background:var(--ac)}.domain-dot.sold{background:var(--gd)}.domain-dot.expiring{background:var(--wn);animation:pu 1.5s infinite}.domain-dot.expired{background:var(--ls)}
.domain-name{color:var(--t1);font-weight:600;font-size:12.5px}
@keyframes pu{0%,100%{opacity:1}50%{opacity:.4}}

.tag{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;font-size:10px;font-weight:600;border-radius:10px;white-space:nowrap}
.tag.holding{background:var(--ac2);color:var(--ac)}.tag.sold{background:var(--gd2);color:var(--gd)}.tag.expiring{background:var(--wn2);color:var(--wn)}.tag.expired{background:var(--ls2);color:var(--ls)}

.exp-cell{min-width:120px}
.exp-bar{height:3px;border-radius:2px;background:var(--bg4);margin-bottom:2px;overflow:hidden}
.exp-fill{height:100%;border-radius:2px;transition:width .3s}
.exp-fill.safe{background:var(--ac)}.exp-fill.warn{background:var(--wn)}.exp-fill.danger{background:var(--ls)}
.exp-date{font-size:11px;color:var(--t2)}
.exp-days{font-size:9.5px;font-weight:600;margin-left:5px}
.exp-days.safe{color:var(--ac)}.exp-days.warn{color:var(--wn)}.exp-days.danger{color:var(--ls)}

.t-pf{color:var(--pf)}.t-ls{color:var(--ls)}.t-mu{color:var(--t4)}

.act-btns{display:flex;gap:2px;justify-content:flex-end}
.act-btn{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--r3);cursor:pointer;transition:.15s;background:transparent;color:var(--t4)}
.act-btn:hover{background:var(--bg4);color:var(--t2)}
.act-btn.sell:hover{color:var(--gd);background:var(--gd2)}
.act-btn.renew:hover{color:var(--inf);background:rgba(56,189,248,.1)}
.act-btn.del:hover{color:var(--ls);background:var(--ls2)}
.act-btn.wq:hover{color:var(--ac);background:var(--ac2)}

.cell-input{width:100%;padding:2px 5px;font-size:12px;color:var(--t1);background:var(--bg1);border:1px solid var(--ac);border-radius:var(--r3);outline:none;font-family:var(--fb);box-shadow:0 0 0 2px var(--ac2)}
.cell-select{padding:2px 5px;font-size:12px;color:var(--t1);background:var(--bg1);border:1px solid var(--ac);border-radius:var(--r3);outline:none;font-family:var(--fb);cursor:pointer;appearance:auto}

.empty-state{text-align:center;padding:50px 20px;color:var(--t4)}
.empty-state .icon.lg{opacity:.2;margin-bottom:12px;display:block}
.empty-state p{font-size:13px;margin-bottom:14px}
.edit-hint{text-align:center;font-size:10.5px;color:var(--t4);margin-top:8px;opacity:.6}

/* 手机卡片 - 网格布局 */
.m-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.m-card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);padding:12px;position:relative;overflow:hidden;transition:.2s;min-height:160px;display:flex;flex-direction:column}
.m-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--ac)}
.m-card.sold::before{background:var(--gd)}.m-card.loss::before{background:var(--ls)}.m-card.expired::before{background:var(--ls)}
.m-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.m-name{font-size:12px;font-weight:700;color:var(--t1);word-break:break-all;line-height:1.3}
.m-acts{display:flex;gap:3px;flex-shrink:0;margin-left:6px}
.m-acts .act-btn{width:24px;height:24px}
.m-row{display:flex;justify-content:space-between;align-items:center;padding:2px 0;font-size:10.5px;color:var(--t2)}
.m-row .label{color:var(--t4);flex-shrink:0;margin-right:6px}
.m-row .val{font-weight:500}
.m-exp{display:flex;align-items:center;gap:4px;margin:4px 0}
.m-exp-bar{flex:1;height:3px;border-radius:2px;background:var(--bg4);overflow:hidden}
.m-exp-fill{height:100%;border-radius:2px}
.m-exp-fill.safe{background:var(--ac)}.m-exp-fill.warn{background:var(--wn)}.m-exp-fill.danger{background:var(--ls)}
.m-divider{height:1px;background:var(--bd);margin:6px 0}
.m-profit-row{display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.m-profit-val{font-family:var(--fd);font-size:14px;font-weight:700}
.m-profit-roi{font-size:11px;font-weight:600}

/* 续费编辑弹窗 */
.re-panel{background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--r);width:320px;max-height:80vh;overflow-y:auto;box-shadow:0 16px 64px rgba(0,0,0,.5);animation:sU .2s}
.re-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--bd)}
.re-head span{font-size:14px;font-weight:600}
.re-domain{padding:10px 16px;font-size:15px;font-weight:700;color:var(--t1);text-align:center;border-bottom:1px solid var(--bd)}
.re-list{padding:12px 16px}
.re-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.re-row label{width:50px;font-size:12px;color:var(--t2);flex-shrink:0}
.re-row input{flex:1;padding:5px 8px;font-size:12px;color:var(--t1);background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r3);outline:none;font-family:var(--fb)}
.re-row input:focus{border-color:var(--ac)}
.re-row .re-del{color:var(--t4);cursor:pointer;background:none;border:none;font-size:14px;padding:2px 4px;border-radius:var(--r3);transition:.15s}
.re-row .re-del:hover{color:var(--ls);background:var(--ls2)}
.re-total{padding:10px 16px;border-top:1px solid var(--bd);font-size:13px;font-weight:600;color:var(--wn);text-align:center}

/* 分页 */
#pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:14px;flex-wrap:wrap}
.pg-btn{min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--t3);background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r3);cursor:pointer;transition:.15s;font-family:var(--fb)}
.pg-btn:hover{border-color:var(--bd2);color:var(--t1)}
.pg-btn.active{background:var(--ac);color:#000;border-color:var(--ac);font-weight:700}
.pg-btn:disabled{opacity:.25;cursor:not-allowed}
.pg-el{color:var(--t4);padding:0 3px;font-size:11px}

/* 弹窗通用 */
.overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);animation:fI .15s}
.modal{background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--r);width:92%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 16px 64px rgba(0,0,0,.5);animation:sU .2s}
.modal-sm{max-width:380px}.modal-lg{max-width:640px}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--bd)}
.modal-head h2{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.modal-body{padding:16px 18px}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:12px}
.fg{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;float:left;width:calc(50% - 6px);margin-right:12px}
.fg.full{float:none;width:100%;margin-right:0}
.modal-body::after{content:'';display:table;clear:both}
.fg label{font-size:11px;font-weight:600;color:var(--t3)}
.fg input,.fg select,.fg textarea{padding:6px 10px;font-size:12px;color:var(--t1);background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r3);outline:none;transition:.2s;font-family:var(--fb)}
.fg input:focus,.fg select:focus{border-color:var(--ac);box-shadow:0 0 0 2px var(--ac2)}
.fg small{font-size:10px;color:var(--t4)}
.form-hint{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t4);padding:8px 10px;background:var(--bg1);border-radius:var(--r3);margin-bottom:12px;float:none;width:100%;clear:both}
.sell-name{font-size:16px;font-weight:700;text-align:center;color:var(--t1);margin-bottom:12px}
.sell-costs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:12px}
.sc-item{text-align:center;padding:6px 4px;background:var(--bg1);border-radius:var(--r3)}
.sc-item label{display:block;font-size:9.5px;color:var(--t4);margin-bottom:2px}
.sc-item span{font-size:12px;font-weight:600;color:var(--t2)}
.sell-preview{text-align:center;padding:8px;background:var(--bg1);border-radius:var(--r3);margin-top:8px;font-size:13px;font-weight:700}
.import-tabs{display:flex;border:1px solid var(--bd);border-radius:var(--r3);overflow:hidden;margin-bottom:12px}
.itab{flex:1;padding:7px;text-align:center;font-size:12px;font-weight:600;color:var(--t3);background:var(--bg1);border:none;cursor:pointer;transition:.2s;font-family:var(--fb)}
.itab.active{color:var(--ac);background:var(--ac2)}
.import-panel{display:none}.import-panel.active{display:block}
.import-desc{font-size:11px;color:var(--t3);margin-bottom:8px;line-height:1.8}
#imp-simple,#imp-csv{width:100%;padding:8px;font-size:11.5px;font-family:Consolas,Monaco,monospace;color:var(--t1);background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r3);outline:none;resize:vertical;transition:.2s}
#import-simple:focus,#imp-csv:focus{border-color:var(--ac)}
.import-actions{margin-top:10px}
.import-result{margin-top:12px;padding:10px;background:var(--bg1);border-radius:var(--r3);font-size:11.5px;color:var(--t2);line-height:1.8}
.cfm-modal .modal-body{padding:28px 20px}
.cfm-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;color:var(--wn);background:var(--wn2);border-radius:50%}
.cfm-modal p{font-size:13px;color:var(--t2);margin-bottom:16px}
.w-bar{height:6px;border-radius:3px;background:var(--bg4);overflow:hidden}
.w-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac),var(--gd));width:0%;transition:width .3s}

.panel{background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--r);width:92%;max-width:660px;max-height:85vh;overflow-y:auto;box-shadow:0 16px 64px rgba(0,0,0,.5);animation:sU .2s}
.panel-sm{max-width:460px}
.panel-sub{padding:8px 18px;font-size:11.5px;color:var(--t3)}
.panel-body{padding:16px 18px}
hr{border:none;border-top:1px solid var(--bd);margin:12px 0}

.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;padding:0 18px 18px}
.ach-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:14px 8px;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r2);transition:.2s}
.ach-card.unlocked{border-color:rgba(251,191,36,.3);background:linear-gradient(135deg,rgba(251,191,36,.04),rgba(0,224,160,.04))}
.ach-card.locked{opacity:.35}
.ach-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg3);color:var(--t4);margin-bottom:6px}
.ach-card.unlocked .ach-icon{background:var(--gd2);color:var(--gd)}
.ach-name{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:2px}
.ach-desc{font-size:10px;color:var(--t4);line-height:1.4}

/* 后缀价格管理 */
.tld-price-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;max-height:200px;overflow-y:auto}
.tld-price-row{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg1);border-radius:var(--r3)}
.tld-price-row .tld-name{width:70px;font-size:12px;font-weight:600;color:var(--t1);flex-shrink:0}
.tld-price-row .tld-count{font-size:10px;color:var(--t4);flex-shrink:0;min-width:30px}
.tld-price-row input{flex:1;max-width:90px;padding:4px 6px;font-size:12px;color:var(--t1);background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r3);outline:none;font-family:var(--fb)}
.tld-price-row input:focus{border-color:var(--ac)}
.tld-price-row .tld-del{color:var(--t4);cursor:pointer;background:none;border:none;font-size:12px;padding:2px;border-radius:var(--r3);transition:.15s;flex-shrink:0}
.tld-price-row .tld-del:hover{color:var(--ls);background:var(--ls2)}
.tld-add-row{display:flex;align-items:center;gap:6px;margin-top:4px}
.tld-add-row input{padding:5px 8px;font-size:12px;color:var(--t1);background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r3);outline:none;font-family:var(--fb)}
.tld-add-row input:focus{border-color:var(--ac)}

/* 修改密码 */
.pwd-row{display:flex;gap:8px;align-items:center}
.pwd-row input{flex:1;padding:6px 10px;font-size:12px;color:var(--t1);background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r3);outline:none;font-family:var(--fb)}
.pwd-row input:focus{border-color:var(--ac)}

#toast-c{position:fixed;top:66px;right:16px;z-index:999;display:flex;flex-direction:column;gap:6px}
.toast{display:flex;align-items:center;gap:7px;padding:9px 14px;font-size:12px;color:var(--t1);background:var(--bg3);border:1px solid var(--bd2);border-radius:var(--r2);box-shadow:0 8px 32px rgba(0,0,0,.4);animation:sIR .25s;max-width:320px}
.toast.success{border-left:3px solid var(--pf)}.toast.success .icon{color:var(--pf)}
.toast.error{border-left:3px solid var(--ls)}.toast.error .icon{color:var(--ls)}
.toast.warning{border-left:3px solid var(--wn)}.toast.warning .icon{color:var(--wn)}
.toast.achievement{border-left:3px solid var(--gd)}.toast.achievement .icon{color:var(--gd)}
.toast-out{animation:sOR .25s forwards}

input[type="checkbox"]{width:14px;height:14px;accent-color:var(--ac);cursor:pointer}

@keyframes fI{from{opacity:0}to{opacity:1}}
@keyframes sU{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes sIR{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes sOR{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(30px)}}

@media(max-width:1400px){.m-card-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
@media(max-width:1100px){#dashboard{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){
    .sm-text{display:inline}
    header{gap:10px;padding:8px 12px}
    .level-section{order:10;flex-basis:100%;max-width:none}
    main{padding:12px 10px 30px}
    #dashboard{grid-template-columns:1fr 1fr;gap:8px}
    .sc-value{font-size:20px}
    .tb-left{width:100%}.search-box input{width:100%}
    .desk-view{display:none!important}
    .mobile-view{display:block!important}
    .m-card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
    .edit-hint{display:none}
}
@media(max-width:480px){#dashboard{grid-template-columns:1fr}.ach-grid{grid-template-columns:repeat(2,1fr)}.sell-costs{grid-template-columns:1fr}.tld-price-row .tld-name{width:55px}}
@media(min-width:861px){.mobile-view{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}