/* 达尔文进化岛 · 群聊 UI —— 全分辨率自适应：320px 小屏手机 → 大屏手机 → 平板竖/横 → 桌面 → 4K */
:root{--bg:#f2f3f7;--panel:#fff;--txt:#1d1f24;--sub:#8a8f99;--bub:#fff;--me:#0099ff;--meTxt:#fff;--line:#e3e5ea;--chip:#eef5ff;--chipTxt:#1677ff;--q:#f1f2f5;
  --fs:15px;--av:38px;--side:300px;--dm:360px;--bubMax:min(46rem,100%);--card:min(300px,68vw);--vvh:100dvh;
  --sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}
body.dark{--bg:#111316;--panel:#1b1d21;--txt:#e6e8ec;--sub:#8b919c;--bub:#25282d;--me:#1f6fd1;--meTxt:#fff;--line:#2b2e34;--chip:#1e2a3a;--chipTxt:#6fb1ff;--q:#2c3036}
*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[v-cloak]{display:none}
html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--txt);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font:var(--fs)/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}
button,input,textarea{font:inherit;color:inherit}
#app{position:fixed;inset:0;display:flex;width:100%;max-width:100vw;height:100%;height:var(--vvh);overflow:hidden;background:var(--bg)}

/* ---- 中间聊天区 ---- */
#chat{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;height:100%;position:relative;padding-left:var(--sal);padding-right:var(--sar)}
#top{display:flex;align-items:center;gap:4px;padding:6px 8px;padding-top:calc(6px + var(--sat));background:var(--panel);border-bottom:1px solid var(--line);flex:none}
.ttl{flex:1;text-align:center;min-width:0}
#gName{font-weight:600;font-size:1.07em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#gSub{font-size:.74em;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ic{flex:none;min-width:40px;height:40px;border:0;background:none;font-size:20px;border-radius:8px;position:relative;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.ic:active,.ic:hover{background:var(--line)}
.dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#f33}
#pin{display:flex;gap:6px;padding:7px 12px;background:#fff8e1;color:#8a6100;font-size:.87em;border-bottom:1px solid var(--line);flex:none;cursor:pointer;min-width:0}
body.dark #pin{background:#2d2614;color:#e3c169}
#pinTxt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#pin.open #pinTxt{white-space:normal}
#list{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 10px 16px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sys{text-align:center;margin:8px auto;font-size:.8em;color:var(--sub);max-width:86%}
.sys span{background:rgba(0,0,0,.06);padding:3px 10px;border-radius:10px;display:inline-block;overflow-wrap:anywhere}
body.dark .sys span{background:rgba(255,255,255,.07)}
.time{text-align:center;font-size:.74em;color:var(--sub);margin:10px 0 4px}
.msg{display:flex;gap:8px;margin:10px 0;align-items:flex-start;min-width:0}
.msg.me{flex-direction:row-reverse}
.av{width:var(--av);height:var(--av);border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:calc(var(--av)*.42);overflow:hidden;background:#8aa}
.av img{width:100%;height:100%;object-fit:cover}
.av.bot{background:linear-gradient(135deg,#36d1dc,#5b86e5);font-size:calc(var(--av)*.52)}
.body{flex:0 1 auto;min-width:0;max-width:calc(100% - var(--av) * 2 - 16px);display:flex;flex-direction:column;align-items:flex-start}
.msg:not(.me) .body{max-width:calc(100% - var(--av) - 10px)}
.body>*{max-width:var(--bubMax)}
.me .body{align-items:flex-end}
.who{font-size:.8em;color:var(--sub);margin:0 2px 3px;display:flex;gap:4px;align-items:center;flex-wrap:wrap;min-width:0}
.who .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:16em}
.me .who{flex-direction:row-reverse}
.bd{font-size:10px;line-height:15px;padding:0 4px;border-radius:4px;color:#fff;font-weight:600;white-space:nowrap}
.bd.owner{background:#f5a623}.bd.admin{background:#21b573}.bd.bot{background:#3d8bff}.bd.lv{background:#a5b3c6}.bd.tt{background:#b36bff}
.bub{background:var(--bub);padding:8px 11px;border-radius:4px 14px 14px 14px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:.97em;box-shadow:0 1px 1px rgba(0,0,0,.04);user-select:text;-webkit-user-select:text;min-width:0}
.me .bub{background:var(--me);color:var(--meTxt);border-radius:14px 4px 14px 14px}
.bub.botb{font-family:ui-monospace,"Sarasa Mono SC","Noto Sans Mono CJK SC",monospace,sans-serif;font-size:.9em;line-height:1.55}
.bub .cmd{color:var(--chipTxt);cursor:pointer;text-decoration:underline dotted}
.me .bub .cmd{color:#fff}
.bub .at{color:var(--chipTxt)}
.me .bub .at{color:#dff}
.bub.img{padding:4px;background:transparent;box-shadow:none}
.bub.img img{display:block;width:var(--card);max-width:100%;height:auto;border-radius:8px;cursor:zoom-in}
.qt{font-size:.8em;color:var(--sub);background:var(--q);border-radius:6px;padding:4px 8px;margin-bottom:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hints{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.hints button{border:1px solid var(--chipTxt);background:var(--chip);color:var(--chipTxt);border-radius:14px;padding:5px 11px;font-size:.87em;min-height:34px;cursor:pointer;white-space:nowrap}
.hints button:active{opacity:.6}
#toBottom{position:absolute;right:14px;bottom:calc(120px + var(--sab));border:0;border-radius:16px;padding:6px 12px;background:var(--me);color:#fff;font-size:.87em;box-shadow:0 2px 8px rgba(0,0,0,.2);z-index:5}
#bottom{flex:none;background:var(--panel);border-top:1px solid var(--line);padding:6px 8px;padding-bottom:calc(6px + var(--sab));min-width:0}
#bottom .row{display:flex;gap:6px;align-items:flex-end;min-width:0}
#inp{flex:1 1 auto;min-width:0;width:100%;resize:none;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 10px;font-size:16px;line-height:1.4;max-height:120px;min-height:42px;font-family:inherit}
#send{flex:none;white-space:nowrap;border:0;background:var(--me);color:#fff;border-radius:8px;padding:0 16px;min-width:64px;height:42px;font-size:15px;cursor:pointer}
#quick{display:flex;gap:6px;overflow:hidden;padding:0 0 6px;min-width:0;align-items:center}
#quick .qscroll{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
#quick .qscroll::-webkit-scrollbar{display:none}
#quick #repBtn,#quick #moreBtn{flex:none;z-index:1}
#quick::-webkit-scrollbar{display:none}
#quick button{flex:none;border:1px solid var(--line);background:var(--bg);border-radius:16px;padding:5px 10px;font-size:.82em;min-height:36px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
#quote{display:flex;align-items:center;gap:6px;font-size:.8em;color:var(--sub);background:var(--q);border-radius:6px;padding:4px 8px;margin-bottom:6px;min-width:0}
#quote span{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#quote button{border:0;background:none;color:var(--sub);font-size:14px;min-width:30px;min-height:30px}

/* ---- 左栏（群列表）与右栏（私信）：窄屏为抽屉 ---- */
aside{background:var(--panel);display:flex;flex-direction:column;min-height:0;padding-top:var(--sat)}
#drawer,#dmPanel{position:fixed;top:0;bottom:0;z-index:20;box-shadow:0 0 20px rgba(0,0,0,.25);transition:transform .22s ease;visibility:hidden}
#drawer{left:0;width:min(84vw,var(--side));transform:translateX(-102%);padding-left:var(--sal)}
#dmPanel{right:0;width:min(92vw,var(--dm));transform:translateX(102%);padding-right:var(--sar)}
#drawer.open,#dmPanel.open{transform:none;visibility:visible}
.dhead{font-weight:600;padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:52px}
.dhead small{color:var(--sub);font-weight:400}
#chList{flex:1;overflow:auto}
.chi{display:flex;gap:10px;padding:12px 14px;align-items:center;cursor:pointer;border-bottom:1px solid var(--line)}
.chi:hover{background:var(--q)}
.chi.on{background:var(--chip)}
.chi .ci{width:42px;height:42px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:22px;flex:none}
.chi .cm{min-width:0;flex:1}.chi .cn{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chi .cd{font-size:.8em;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chi.notice .ci{background:#fff3cd}.chi.dm .ci{background:#e8f4ff}
body.dark .chi.notice .ci{background:#3a3218}body.dark .chi.dm .ci{background:#1a2a3a}
.sec-lab{font-size:.75em;color:var(--sub);padding:10px 14px 4px;letter-spacing:.06em}
.ubadge{flex:none;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#f33;color:#fff;font-size:11px;line-height:18px;text-align:center;font-weight:700}
#pin.ann{background:#eef5ff;color:#1a5fb4}body.dark #pin.ann{background:#1a2a3a;color:#8cb4ff}
.noticeBox{text-align:left;max-height:80vh;overflow:auto}
.noticeBox h1{text-align:center}
.np-item{padding:10px 0;border-top:1px solid var(--line)}
.np-item h3{margin:0 0 6px;font-size:1.05em}
.np-item p{margin:0;white-space:pre-wrap;color:var(--txt);font-size:.92em}
.dfoot{padding:12px 14px;padding-bottom:calc(12px + var(--sab));display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line)}
.dfoot .me-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sub)}
.dfoot button{border:0;background:none;color:#e44;cursor:pointer;white-space:nowrap}
#dmList{flex:1;overflow:auto;padding:8px 10px}
#dmList .bub{margin:6px 0 10px;font-size:.84em}
#dmList .t{font-size:.74em;color:var(--sub)}
#dmList .empty{color:var(--sub);text-align:center;margin-top:30px;font-size:.87em}
#mask{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:15}
#viewer{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--sat) var(--sar) var(--sab) var(--sal)}
#viewer img{max-width:96vw;max-height:92vh;max-height:92dvh;object-fit:contain}
#toast{position:fixed;left:50%;top:22%;transform:translateX(-50%);background:rgba(0,0,0,.78);color:#fff;padding:8px 16px;border-radius:8px;z-index:50;font-size:.93em;max-width:80vw;text-align:center}
.overlay{position:fixed;inset:0;z-index:30;background:linear-gradient(160deg,#3a7bd5,#00d2ff);display:flex;align-items:center;justify-content:center;padding:20px;padding-top:calc(20px + var(--sat));overflow:auto}
.loginBox{background:var(--panel);border-radius:16px;padding:26px 22px;width:min(380px,100%);text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.loginBox .logo{font-size:44px}
.loginBox h1{margin:4px 0;font-size:1.45em}
.loginBox .sub{color:var(--sub);font-size:.87em;margin:0 0 14px}
.loginBox input{width:100%;height:46px;margin:6px 0;border:1px solid var(--line);border-radius:8px;padding:0 12px;font-size:16px;background:var(--bg)}
.loginBox button{width:100%;height:46px;margin-top:8px;border:0;border-radius:8px;background:#0099ff;color:#fff;font-size:16px;cursor:pointer}
.err{color:#e33;font-size:.87em;min-height:18px;margin-top:6px}
.tip{font-size:.8em;color:var(--sub)}
.hidden{display:none!important}

/* ---- 断点 ---- */
/* 小屏手机 ≤374px（iPhone SE 1 / 320 宽安卓） */
@media (max-width:374px){:root{--fs:14px;--av:32px;--card:min(260px,72vw)}#list{padding:6px 6px 12px}.msg{gap:6px}#send{padding:0 12px;min-width:56px}.ic{min-width:36px}#bottom{padding:5px 6px calc(5px + var(--sab))}}
/* 横屏手机（矮屏）：压缩头部 */
@media (orientation:landscape) and (max-height:500px){#top{padding:2px 8px;padding-top:calc(2px + var(--sat))}.ic{height:34px}#pin{padding:4px 12px}#quick button span{display:none}#moreSheet{max-height:36vh}:root{--card:min(240px,40vw)}}
/* 平板竖屏及以上 */
@media (min-width:600px){:root{--av:40px;--card:300px;--bubMax:min(44rem,100%)}#list{padding:10px 16px 18px}}
/* ≥900px：群列表常驻左栏 */
@media (min-width:900px){
  #drawer{position:relative;transform:none;visibility:visible;box-shadow:none;border-right:1px solid var(--line);flex:none;width:var(--side);z-index:auto;transition:none}
  .only-narrow{display:none!important}
  #mask{display:none}
  :root{--card:320px}
}
/* ≥1400px：私信栏常驻右侧 */
@media (min-width:1400px){
  #dmPanel{position:relative;transform:none;visibility:visible;box-shadow:none;border-left:1px solid var(--line);flex:none;width:var(--dm);z-index:auto;transition:none}
  .only-mid{display:none!important}
  :root{--side:320px;--dm:380px;--card:340px}
}
/* 2K / 4K：整体按视口放大字号与栏宽，保持可读行宽 */
@media (min-width:2000px){:root{--fs:17px;--av:46px;--side:380px;--dm:460px;--card:400px;--bubMax:50rem}}
@media (min-width:2800px){:root{--fs:21px;--av:56px;--side:460px;--dm:560px;--card:500px;--bubMax:54rem}.ic{min-width:52px;height:52px;font-size:26px}#inp,#send{font-size:20px;height:auto;min-height:54px}.bd{font-size:13px;line-height:19px}}
@media (hover:hover){#quick button:hover,.hints button:hover{filter:brightness(.96)}}

#quick #repBtn{border-color:#7a5af8;color:#7a5af8;font-weight:600}
#quick #repBtn.on{background:#7a5af8;color:#fff}
#quick button.rep{border-color:#7a5af8;box-shadow:0 0 0 2px rgba(122,90,248,.25) inset}
.hints button,#quick button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}
#pinTxt .cmd{color:inherit;text-decoration:underline}

/* ---- v0.5.4 美化卡片 / 可点击筹码 / 分类快捷栏 / 操作菜单 ---- */
.gcard{background:var(--bub);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06);width:min(24rem,100%);max-width:100%;min-width:0;font-size:.93em;line-height:1.45}
body.dark .gcard{box-shadow:0 2px 10px rgba(0,0,0,.35)}
.gcard .chd{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;background:linear-gradient(180deg,rgba(22,119,255,.08),transparent);border-bottom:1px solid var(--line)}
body.dark .gcard .chd{background:linear-gradient(180deg,rgba(111,177,255,.1),transparent)}
.gcard.bag .chd{background:linear-gradient(180deg,rgba(245,166,35,.14),transparent)}
.gcard.loc .chd{background:linear-gradient(180deg,rgba(46,184,122,.14),transparent)}
.gcard.pets .chd{background:linear-gradient(180deg,rgba(179,107,255,.14),transparent)}
.gcard.equip .chd{background:linear-gradient(180deg,rgba(255,183,77,.14),transparent)}
.gcard .chd .ci{font-size:1.35em;flex:none;line-height:1}
.gcard .ctit{min-width:0;flex:1}
.gcard .ct{font-weight:700;font-size:1.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcard .cs{font-size:.78em;color:var(--sub);margin-top:1px}
.gcard .csec{padding:8px 10px;border-top:1px dashed var(--line)}
.gcard .csec:first-of-type{border-top:0}
.gcard .cst{font-weight:600;font-size:.86em;color:var(--sub);margin:0 2px 6px;display:flex;align-items:center;gap:4px}
.gcard .ctxt,.gcard .clines{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;font-size:.93em}
.gcard .clines>div+div{margin-top:2px}
.gcard .cft{padding:8px 12px 10px;font-size:.8em;color:var(--sub);border-top:1px dashed var(--line);white-space:pre-wrap;overflow-wrap:anywhere}
.gcard .cmd{color:var(--chipTxt);cursor:pointer;text-decoration:underline dotted}
.gcard .at{color:var(--chipTxt);cursor:pointer}

.cnav{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px 4px}
.cnav .crow{display:flex;align-items:center;gap:10px}
.cnav .heart{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#ff6b8a,#ff3b5c);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 2px 6px rgba(255,59,92,.3)}
.cnav .dir{min-width:64px;height:36px;border:1px solid var(--chipTxt);background:var(--chip);color:var(--chipTxt);border-radius:18px;font-weight:600;cursor:pointer}
.cnav .dir.off{opacity:.45;border-style:dashed;background:var(--bg);color:var(--sub);cursor:default}

.chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
@media (min-width:380px){.gcard .chips{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:900px){.gcard .chips{grid-template-columns:repeat(3,minmax(0,1fr))}}
.chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:8px 6px 7px;border:1px solid var(--line);background:var(--bg);border-radius:12px;cursor:pointer;min-width:0;min-height:64px;text-align:center}
.chip .em{font-size:1.35em;line-height:1.1}
.chip .nm{font-size:.78em;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.chip .n{font-size:.72em;color:var(--chipTxt);font-weight:700}
.chip:active{transform:scale(.97);opacity:.85}

.rows{display:flex;flex-direction:column;gap:4px}
.grow{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:var(--bg);border-radius:10px;padding:8px 8px;cursor:pointer;min-width:0;min-height:48px}
.grow:active{opacity:.8}
.grow .ix{flex:none;font-size:.7em;font-weight:700;color:var(--sub);background:var(--line);border-radius:6px;padding:2px 6px;max-width:5.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow .em{font-size:1.25em;flex:none}
.grow .meta{flex:1;min-width:0}
.grow .meta .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow .meta .sub{font-size:.75em;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grow .go{color:var(--sub);font-size:1.2em;flex:none}

.bub.pretty{font-family:inherit;white-space:pre-wrap}

#quick #moreBtn.on,#quick #moreBtn{min-width:auto}
#quick #moreBtn.on{background:var(--chip);color:var(--chipTxt);border-color:var(--chipTxt)}
#moreMask{position:fixed;inset:0;background:transparent;z-index:8;pointer-events:auto}
#bottom,#moreSheet{position:relative;z-index:9}
#moreSheet{flex:none;background:var(--panel);border-top:1px solid var(--line);padding:4px 10px 8px;max-height:min(42vh,380px);overflow:auto;animation:sheetUp .18s ease}
#moreSheet .grab{width:36px;height:4px;border-radius:2px;background:var(--line);margin:2px auto 8px}
#moreSheet .tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
#moreSheet .tabs::-webkit-scrollbar{display:none}
#moreSheet .tabs button{flex:none;border:0;background:var(--bg);border-radius:16px;padding:5px 12px;font-size:.84em;min-height:32px;cursor:pointer;color:var(--sub)}
#moreSheet .tabs button.on{background:var(--chip);color:var(--chipTxt);font-weight:600}
#moreSheet .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#moreSheet .grid button{border:0;background:var(--bg);border-radius:12px;padding:10px 4px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
#moreSheet .grid button:active{opacity:.7}
#moreSheet .gic{font-size:1.45em;line-height:1}
#moreSheet .glb{font-size:.72em;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#moreSheet .grid button.rep{box-shadow:0 0 0 2px rgba(122,90,248,.3) inset}
@media (min-width:600px){#moreSheet .grid{grid-template-columns:repeat(6,minmax(0,1fr))}#moreSheet{max-height:min(36vh,420px)}}
@media (max-width:374px){#moreSheet .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.chip{min-height:58px;padding:6px 4px}#quick button{padding:4px 8px}}

#sheetMask,#promptMask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:30;display:flex;align-items:flex-end;justify-content:center}
#promptMask{align-items:center;padding:20px}
#sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(480px,100%);background:var(--panel);border-radius:16px 16px 0 0;padding:8px 12px calc(10px + var(--sab));z-index:31;animation:sheetUp .2s ease;box-shadow:0 -8px 24px rgba(0,0,0,.18)}
#sheet .shd{display:flex;align-items:center;gap:10px;padding:10px 6px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
#sheet .shd .em{font-size:1.6em}
#sheet .shd .nm{font-weight:700}
#sheet .shd .sub{font-size:.8em;color:var(--sub)}
#sheet button{display:block;width:100%;border:0;background:var(--bg);border-radius:10px;padding:12px;margin:6px 0;text-align:center;font-size:1em;cursor:pointer}
#sheet button:active{opacity:.75}
#sheet button.cancel{background:transparent;color:var(--sub);font-weight:500}
.pbox{width:min(360px,100%);background:var(--panel);border-radius:16px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.pbox .ptt{font-weight:700;font-size:1.05em;margin-bottom:6px}
.pbox .phint{font-size:.82em;color:var(--sub);margin-bottom:10px}
.pbox input{width:100%;height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font-size:16px;background:var(--bg)}
.pbox .xy{display:flex;align-items:center;gap:8px}
.pbox .xy input{flex:1;min-width:0}
.pbox .pbtns{display:flex;gap:8px;margin-top:12px}
.pbox .pbtns button{flex:1;height:42px;border:0;border-radius:8px;background:var(--bg);cursor:pointer}
.pbox .pbtns .ok{background:var(--me);color:#fff}
@keyframes sheetUp{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}

#toBottom{bottom:calc(148px + var(--sab))}
@media (max-width:374px){:root{--fs:14px}}

.gcard.attr .chd{background:linear-gradient(180deg,rgba(79,155,255,.16),transparent)}
.gcard.dex .chd{background:linear-gradient(180deg,rgba(46,184,122,.14),transparent)}
.attr-hero{display:flex;gap:12px;align-items:center;padding:10px 12px 6px}
.avpick{position:relative;flex:none;width:72px;height:72px;border-radius:50%;border:3px solid var(--chipTxt);padding:0;overflow:hidden;cursor:pointer;background:var(--bg)}
.avpick img{width:100%;height:100%;object-fit:cover;display:block}
.avpick .edit{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;font-size:.65em;padding:2px 0;text-align:center}
.attr-meta{min-width:0;flex:1}
.attr-meta .an{font-weight:800;font-size:1.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attr-meta .ab{font-size:.78em;color:var(--sub);margin:2px 0}
.attr-meta .ap{font-weight:700;color:#c0392b}
.bars{display:flex;flex-direction:column;gap:6px;padding:4px 0}
.bar{display:flex;flex-direction:column;gap:2px}
.bar .bl{display:flex;justify-content:space-between;font-size:.75em;color:var(--sub)}
.bar .bt{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.bar .bf{height:100%;border-radius:99px;background:var(--chipTxt);min-width:0}
.eqgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
@media (max-width:359px){.eqgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.eqslot{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;border:1px solid var(--line);border-radius:12px;background:var(--bg);cursor:pointer;min-width:0;min-height:88px;box-shadow:inset 0 0 0 2px var(--rar, transparent)}
.eqslot.empty{opacity:.7}
.eqslot .eqimg{width:36px;height:36px;object-fit:contain}
.eqslot .eqico{font-size:1.3em;line-height:1}
.eqslot .eqn{font-size:.72em;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eqslot .eqs{font-size:.68em;color:var(--sub);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eqslot .eqr{font-size:.68em;font-weight:800;color:var(--rar, var(--chipTxt))}
.grow .thumb,.chip .thumb,#sheet .thumb{width:36px;height:36px;object-fit:contain;flex:none}
.chip .thumb{width:40px;height:40px}
#avMask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}
#avBox{width:min(420px,100%);max-height:min(80vh,640px);overflow:auto;background:var(--panel);border-radius:16px;padding:14px 14px calc(12px + var(--sab));box-shadow:0 12px 32px rgba(0,0,0,.3)}
#avBox h3{margin:0 0 6px;font-size:1.05em}
#avBox .hint{font-size:.8em;color:var(--sub);margin-bottom:10px}
.avgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.avcell{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:8px 4px;cursor:pointer;text-align:center;min-width:0}
.avcell img{width:48px;height:48px;object-fit:contain}
.avcell .nm{font-size:.72em;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avcell.on{box-shadow:0 0 0 2px var(--chipTxt)}
#avBox .up{margin-top:12px;display:flex;gap:8px}
#avBox .up button,#avBox .close{flex:1;height:40px;border:0;border-radius:8px;background:var(--me);color:#fff;cursor:pointer}
#avBox .close{background:var(--bg);color:var(--txt);margin-top:8px;width:100%}
