/* ─────────────────────────────────────────────
   0. 字体：霞鹜文楷（CDN加载）+ 降级栈
───────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&family=JetBrains+Mono:wght@400;700&display=swap');
@import url('https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/style.css');

shell{position:relative;box-sizing:border-box;width:100%;height:min(86vh,760px);margin:0 auto;overflow:hidden;font-family:'JetBrains Mono','SF Mono','Consolas','LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif;color:hsl(40,8%,85%);line-height:1.65;letter-spacing:.3px;background:radial-gradient(130% 100% at 50% -10%,hsl(240,12%,16%),hsl(240,12%,8%) 45%,hsl(240,12%,4%)),linear-gradient(rgba(212,175,55,0.045) 1px,transparent 1px),linear-gradient(90deg,rgba(212,175,55,0.045) 1px,transparent 1px);background-size:auto,40px 40px,40px 40px;border:1px solid hsl(46,25%,60%);border-radius:6px;box-shadow:0 0 0 1px hsla(46,25%,60%,.12) inset,0 22px 55px -20px hsla(240,12%,2%,.95),0 0 60px -26px hsla(46,25%,55%,.5);contain:layout;display:flex;flex-direction:column;isolation:isolate;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='1.5' fill='%23d4af37'/%3E%3Ccircle cx='14' cy='14' r='6' fill='none' stroke='%23d4af37' stroke-width='0.8' opacity='0.9'/%3E%3Cline x1='14' y1='2' x2='14' y2='8' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='14' y1='20' x2='14' y2='26' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='2' y1='14' x2='8' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='20' y1='14' x2='26' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3C/svg%3E") 14 14,crosshair}
shell *,shell *::before,shell *::after{box-sizing:border-box}
shell::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cg fill='hsl(46,25%,60%)'%3E%3Ccircle cx='20' cy='30' r='.8'/%3E%3Ccircle cx='60' cy='80' r='1.1' opacity='.8'/%3E%3Ccircle cx='120' cy='40' r='.7'/%3E%3Ccircle cx='170' cy='90' r='1'/%3E%3Ccircle cx='90' cy='140' r='.8' opacity='.7'/%3E%3Ccircle cx='40' cy='170' r='1.2'/%3E%3Ccircle cx='150' cy='160' r='.7'/%3E%3Ccircle cx='185' cy='20' r='.9' opacity='.6'/%3E%3Ccircle cx='105' cy='95' r='.6'/%3E%3Ccircle cx='30' cy='110' r='.7' opacity='.7'/%3E%3C/g%3E%3Cg fill='hsl(0,100%,68%)'%3E%3Ccircle cx='75' cy='55' r='.9'/%3E%3Ccircle cx='160' cy='120' r='.7' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");background-size:200px 200px;opacity:.7;animation:ecoDrift 60s linear infinite}
@keyframes ecoDrift{0%{background-position:0 0}100%{background-position:200px 400px}}
shell::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,transparent 0 3px,hsla(240,12%,2%,.22) 3px 4px),radial-gradient(80% 60% at 50% 120%,hsla(46,25%,45%,.1),transparent);opacity:.6}
shell input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}

/* ===== 顶部栏 ===== */
.top{position:relative;z-index:5;flex:0 0 auto;height:52px;display:flex;align-items:center;gap:10px;padding:0 14px;background:linear-gradient(180deg,hsla(240,12%,18%,.95),hsla(240,12%,9%,.82));border-bottom:1px solid hsla(46,25%,55%,.32);overflow:hidden}
.top::before{content:"";position:absolute;left:-40%;top:0;width:45%;height:100%;background:linear-gradient(90deg,transparent,hsla(46,25%,65%,.2),transparent);animation:ecoScan 4.5s linear infinite;pointer-events:none}
@keyframes ecoScan{0%{left:-45%}100%{left:120%}}
.top::after{content:"";position:absolute;right:8px;top:8px;width:18px;height:18px;border-top:1.5px solid hsla(46,25%,60%,.7);border-right:1.5px solid hsla(46,25%,60%,.7);pointer-events:none}
wicon{position:relative;flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:radial-gradient(circle at 50% 35%,hsla(40,8%,30%,.95),hsla(240,12%,12%,.95));border:1px solid hsla(46,25%,60%,.4);box-shadow:0 0 12px -3px hsla(46,25%,55%,.6) inset}
wicon::after{content:"";position:absolute;inset:5px;background-repeat:no-repeat;background-position:center;background-size:contain}
.top[w='sun'] wicon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,80%,68%)' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='hsla(45,80%,62%,.3)'/%3E%3Cg opacity='.9'%3E%3Cpath d='M12 2v2.5M12 19.5V22M2 12h2.5M19.5 12H22M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M19.1 4.9l-1.8 1.8M6.7 17.3l-1.8 1.8'/%3E%3C/g%3E%3C/svg%3E");animation:ecoSun 4s ease-in-out infinite}
@keyframes ecoSun{0%,100%{transform:scale(1);filter:drop-shadow(0 0 2px hsla(45,85%,62%,.5))}50%{transform:scale(1.12);filter:drop-shadow(0 0 6px hsla(45,85%,62%,.85))}}
.top[w='rain'] wicon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 11a5 5 0 0 1 9.6-2A4 4 0 1 1 17 17H7a4 4 0 0 1-1-8z' fill='hsla(46,25%,45%,.4)'/%3E%3C/svg%3E")}
.top[w='rain'] wicon::before{content:"";position:absolute;inset:5px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='hsl(46,25%,60%)' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M8 18l-1 3M13 18l-1 3M18 18l-1 3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain;animation:ecoRain 1.1s linear infinite}
@keyframes ecoRain{0%{transform:translateY(-3px);opacity:0}30%{opacity:1}100%{transform:translateY(4px);opacity:0}}
.top[w='fog'] wicon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(40,8%,72%)' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M4 9h16M3 13h18M5 17h14'/%3E%3C/svg%3E");animation:ecoFog 3.5s ease-in-out infinite}
@keyframes ecoFog{0%,100%{transform:translateX(-2px);opacity:.6}50%{transform:translateX(2px);opacity:1}}
.top[w='night'] wicon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='hsla(240,12%,72%,.3)' stroke='hsl(240,12%,78%)' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z'/%3E%3C/svg%3E");animation:ecoTwinkle 3s ease-in-out infinite}
@keyframes ecoTwinkle{0%,100%{filter:drop-shadow(0 0 1px hsla(240,12%,72%,.4))}50%{filter:drop-shadow(0 0 6px hsla(46,25%,70%,.9))}}
.top[w='ash'] wicon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(40,8%,65%)' stroke-width='1.7'%3E%3Ccircle cx='7' cy='9' r='1.2' fill='hsl(40,8%,60%)'/%3E%3Ccircle cx='14' cy='7' r='1' fill='hsl(40,8%,60%)'/%3E%3Ccircle cx='17' cy='13' r='1.3' fill='hsl(40,8%,60%)'/%3E%3Ccircle cx='10' cy='15' r='1' fill='hsl(40,8%,60%)'/%3E%3C/svg%3E");animation:ecoAsh 4s linear infinite}
@keyframes ecoAsh{0%{transform:translateY(-2px) rotate(0)}100%{transform:translateY(3px) rotate(20deg);opacity:.7}}
.top[w='storm'] wicon::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='hsla(40,8%,55%,.35)' stroke='hsl(50,90%,65%)' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M6 11a5 5 0 0 1 9.6-2A4 4 0 1 1 17 17h-2' stroke='hsl(40,8%,60%)'/%3E%3Cpath d='M11 13l-2 4h3l-1 4 4-6h-3z' fill='hsl(50,90%,62%)' stroke='none'/%3E%3C/svg%3E");animation:ecoStorm 2.6s steps(1) infinite}
@keyframes ecoStorm{0%,88%,100%{filter:none}90%{filter:drop-shadow(0 0 8px hsla(50,90%,62%,.9)) brightness(1.6)}94%{filter:none}}
tinfo{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px;overflow:hidden}
tinfo time{font-size:16px;font-weight:700;letter-spacing:.5px;color:hsl(46,25%,60%);text-shadow:0 0 10px hsla(46,25%,55%,.5);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
tinfo time::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:hsl(46,25%,60%);box-shadow:0 0 8px hsl(46,25%,60%);animation:ecoPulse 1.8s ease-in-out infinite;vertical-align:1px}
@keyframes ecoPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
tinfo small{font-size:12.5px;color:hsla(40,8%,72%,.9);display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
tinfo small::before{content:"";width:12px;height:12px;flex:0 0 auto;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(0,100%,64%)' stroke-width='2'%3E%3Cpath d='M12 21s-7-6.5-7-11a7 7 0 0 1 14 0c0 4.5-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.4' fill='hsl(0,100%,60%)'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}
danger{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
danger b{font-size:10px;letter-spacing:2px;color:hsla(0,100%,68%,.9);text-transform:uppercase}
stars{position:relative;width:74px;height:9px;background:hsla(240,12%,6%,.6);border:1px solid hsla(46,25%,50%,.4);border-radius:5px;overflow:hidden}
stars::before{content:"";position:absolute;inset:0;transform-origin:left;background:linear-gradient(90deg,hsl(46,25%,60%),hsl(280,70%,60%) 50%,hsl(0,100%,58%));border-radius:5px;transform:scaleX(0);box-shadow:0 0 8px hsla(46,25%,55%,.5)}
danger[d='1'] stars::before{transform:scaleX(.1)}danger[d='2'] stars::before{transform:scaleX(.2)}danger[d='3'] stars::before{transform:scaleX(.3)}danger[d='4'] stars::before{transform:scaleX(.4)}danger[d='5'] stars::before{transform:scaleX(.5)}danger[d='6'] stars::before{transform:scaleX(.6)}danger[d='7'] stars::before{transform:scaleX(.7)}danger[d='8'] stars::before{transform:scaleX(.8)}danger[d='9'] stars::before{transform:scaleX(.9);animation:ecoAlarm 1.4s ease-in-out infinite}danger[d='10'] stars::before{transform:scaleX(1);animation:ecoAlarm 1.1s ease-in-out infinite}
@keyframes ecoAlarm{0%,100%{filter:brightness(1)}50%{filter:brightness(1.6) drop-shadow(0 0 6px hsl(0,100%,58%))}}
.set-btn{flex:0 0 auto;position:relative;width:34px;height:34px;border-radius:9px;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;background:hsla(240,12%,16%,.85);border:1px solid hsla(46,25%,55%,.35);transition:transform .5s cubic-bezier(.34,1.4,.5,1),box-shadow .3s,background .3s}
.set-btn::after{content:"";position:absolute;inset:7px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-1.8-.3 1.6 1.6 0 0 0-1 1.5V21a2 2 0 0 1-4 0v-.1a1.6 1.6 0 0 0-1-1.5 1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0 .3-1.8 1.6 1.6 0 0 0-1.5-1H3a2 2 0 0 1 0-4h.1a1.6 1.6 0 0 0 1.5-1 1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H9a1.6 1.6 0 0 0 1-1.5V3a2 2 0 0 1 4 0v.1a1.6 1.6 0 0 0 1 1.5 1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V9a1.6 1.6 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain;transition:transform 1s linear}
.set-btn:hover{background:hsla(40,8%,24%,.95);box-shadow:0 0 14px -2px hsla(46,25%,55%,.7),0 0 0 1px hsla(46,25%,60%,.45)}
.set-btn:hover::after{transform:rotate(90deg)}
.set-btn:active{transform:scale(.9)}

/* ===== 中间舞台 ===== */
stage{position:relative;z-index:2;flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}
stxt{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding:16px 16px 18px;font-size:16px;color:hsl(40,8%,86%);text-shadow:0 1px 3px hsla(240,12%,2%,.7);scrollbar-width:thin;scrollbar-color:hsla(46,25%,55%,.55) transparent}
stxt::-webkit-scrollbar{width:7px}
stxt::-webkit-scrollbar-thumb{background:linear-gradient(hsla(46,25%,55%,.7),hsla(240,12%,40%,.7));border-radius:4px}
stxt::-webkit-scrollbar-track{background:hsla(240,12%,3%,.3)}
stxt p{margin:0 0 12px}
stxt p:first-letter{color:hsl(46,25%,60%)}

.textmask{position:absolute;inset:0;z-index:2;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='1.5' fill='%23d4af37'/%3E%3Ccircle cx='14' cy='14' r='6' fill='none' stroke='%23d4af37' stroke-width='0.8' opacity='0.9'/%3E%3Cline x1='14' y1='2' x2='14' y2='8' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='14' y1='20' x2='14' y2='26' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='2' y1='14' x2='8' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='20' y1='14' x2='26' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3C/svg%3E") 14 14,crosshair;pointer-events:none}
.orbback{position:absolute;inset:0;z-index:8;display:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='1.5' fill='%23d4af37'/%3E%3Ccircle cx='14' cy='14' r='6' fill='none' stroke='%23d4af37' stroke-width='0.8' opacity='0.9'/%3E%3Cline x1='14' y1='2' x2='14' y2='8' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='14' y1='20' x2='14' y2='26' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='2' y1='14' x2='8' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='20' y1='14' x2='26' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3C/svg%3E") 14 14,crosshair;pointer-events:none}

/* ===== 面板 ===== */
.panel{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(14px);pointer-events:none;background:linear-gradient(160deg,hsla(240,12%,9%,.98),hsla(240,12%,5%,.99));backdrop-filter:blur(3px);transition:opacity .38s ease,transform .42s cubic-bezier(.22,1,.36,1),visibility .38s}
shell:has(.p1:checked) stage .panel[p='1'],shell:has(.p2:checked) stage .panel[p='2'],shell:has(.p3:checked) stage .panel[p='3'],shell:has(.p4:checked) stage .panel[p='4'],shell:has(.p5:checked) stage .panel[p='5']{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
phead{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid hsla(46,25%,55%,.28);background:linear-gradient(180deg,hsla(240,12%,16%,.7),transparent)}
phead::before{content:"";width:20px;height:20px;flex:0 0 auto;background-repeat:no-repeat;background-position:center;background-size:contain}
.panel[p='1'] phead::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.8'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-6 8-6s8 2 8 6'/%3E%3C/svg%3E")}
.panel[p='2'] phead::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(40,8%,68%)' stroke-width='1.8'%3E%3Ccircle cx='9' cy='8' r='3.4'/%3E%3Ccircle cx='17' cy='9' r='2.6' opacity='.8'/%3E%3Cpath d='M3 20c0-3.4 2.8-5 6-5s6 1.6 6 5M15 20c0-2.6 1.4-4 4-4'/%3E%3C/svg%3E")}
.panel[p='3'] phead::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(0,100%,64%)' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h6l-1 8 9-12h-6z'/%3E%3C/svg%3E")}
.panel[p='4'] phead::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z'/%3E%3Cpath d='M9 4v14M15 6v14' opacity='.6'/%3E%3C/svg%3E")}
.panel[p='5'] phead::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(265,70%,72%)' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 8v4l3 2'/%3E%3Cpath d='M3.5 12a8.5 8.5 0 1 0 2.6-6.1L3 8'/%3E%3Cpath d='M3 4v4h4'/%3E%3C/svg%3E")}
phead b{flex:1 1 auto;font-size:16px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 12px hsla(46,25%,55%,.5)}
.pclose{flex:0 0 auto;width:30px;height:30px;border-radius:8px;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;background:hsla(240,12%,6%,.4);border:1px solid hsla(0,100%,55%,.4);position:relative;transition:background .3s,transform .3s,box-shadow .3s}
.pclose::before,.pclose::after{content:"";position:absolute;top:50%;left:50%;width:13px;height:1.8px;background:hsl(0,100%,70%);border-radius:2px}
.pclose::before{transform:translate(-50%,-50%) rotate(45deg)}
.pclose::after{transform:translate(-50%,-50%) rotate(-45deg)}
.pclose:hover{background:hsla(0,100%,35%,.55);box-shadow:0 0 12px -2px hsla(0,100%,58%,.75);transform:rotate(90deg)}
pbody{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:hsla(46,25%,55%,.55) transparent}
pbody::-webkit-scrollbar{width:7px}
pbody::-webkit-scrollbar-thumb{background:linear-gradient(hsla(46,25%,55%,.7),hsla(240,12%,40%,.7));border-radius:4px}
pbody::-webkit-scrollbar-track{background:hsla(240,12%,3%,.3)}
holder{display:block;text-align:center;color:hsla(40,8%,60%,.75);font-size:14px;padding:40px 10px}
holder::before{content:"";display:block;width:44px;height:44px;margin:0 auto 12px;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.4'%3E%3Cpath d='M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2 2M16.4 16.4l2 2M18.4 5.6l-2 2M7.6 16.4l-2 2'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;animation:ecoSpin 6s linear infinite}

/* ===== 悬浮球(扫描雷达) ===== */
.orb{position:absolute;right:14px;top:50%;transform:translateY(-50%);z-index:9;width:52px;height:52px;border-radius:50%;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;background:radial-gradient(circle at 40% 35%,hsl(46,25%,60%),hsl(240,12%,10%) 70%);border:1px solid hsla(46,25%,60%,.55);box-shadow:0 0 20px -4px hsla(46,25%,55%,.75),0 4px 12px hsla(240,12%,2%,.6),0 0 0 1px hsla(46,25%,65%,.2) inset;transition:transform .55s cubic-bezier(.34,1.3,.5,1),box-shadow .4s,right .55s cubic-bezier(.34,1.2,.5,1);animation:ecoBreath 3.4s ease-in-out infinite}
@keyframes ecoBreath{0%,100%{box-shadow:0 0 18px -4px hsla(46,25%,55%,.6),0 4px 12px hsla(240,12%,2%,.6)}50%{box-shadow:0 0 30px -2px hsla(46,25%,60%,.95),0 4px 12px hsla(240,12%,2%,.6)}}
.orb::before{content:"";position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(from 0deg,hsla(46,25%,60%,.55),transparent 90deg);animation:ecoSpin 3.5s linear infinite;mask:radial-gradient(circle,transparent 58%,#000 60%);-webkit-mask:radial-gradient(circle,transparent 58%,#000 60%)}
@keyframes ecoSpin{to{transform:rotate(360deg)}}
.orb::after{content:"";position:absolute;inset:13px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.5' opacity='.7'/%3E%3Cpath d='M12 3v3M12 18v3M3 12h3M18 12h3'/%3E%3Ccircle cx='12' cy='12' r='1.4' fill='hsl(0,100%,62%)' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain;filter:drop-shadow(0 0 4px hsla(46,25%,60%,.7))}
.orb:hover{transform:translateY(-50%) scale(1.12);box-shadow:0 0 36px -2px hsla(46,25%,62%,1),0 4px 14px hsla(240,12%,2%,.7)}
.orb:active{transform:translateY(-50%) scale(.94)}
.hide:checked~stage .orb{right:-30px;opacity:.85;animation:none}
.hide:checked~stage .orb:hover{right:6px;opacity:1}
.hide:checked~stage .orbback{display:block}
.hide:checked~stage .textmask{z-index:0}

/* ===== 选项弹窗 ===== */
.optmask{position:fixed;inset:0;z-index:40;background:hsla(240,12%,3%,.6);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
opt{position:absolute;left:50%;top:44%;z-index:41;width:min(80%,290px);transform:translate(-50%,-46%) scale(.85);opacity:0;visibility:hidden;background:linear-gradient(165deg,hsla(240,12%,12%,.98),hsla(240,12%,6%,.99));border:1px solid hsla(46,25%,58%,.4);border-radius:14px;box-shadow:0 0 0 1px hsla(46,25%,55%,.12) inset,0 20px 55px -12px hsla(240,12%,1%,.9),0 0 45px -14px hsla(46,25%,55%,.6);transition:opacity .4s,transform .45s cubic-bezier(.22,1.2,.36,1),visibility .4s;overflow:hidden}
n.optmask:has(.optshow:checked){opacity:1;visibility:visible}
n.optmask:has(.optshow:checked) opt{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
opthead{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid hsla(46,25%,55%,.28);font-size:15px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%)}
opthead::before{content:"";width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='2'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat}
.optclose{margin-left:auto;width:26px;height:26px;border-radius:7px;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;background:hsla(240,12%,6%,.4);border:1px solid hsla(0,100%,55%,.35);position:relative;transition:transform .3s,background .3s}
.optclose::before,.optclose::after{content:"";position:absolute;top:50%;left:50%;width:11px;height:1.6px;background:hsl(0,100%,70%)}
.optclose::before{transform:translate(-50%,-50%) rotate(45deg)}
.optclose::after{transform:translate(-50%,-50%) rotate(-45deg)}
.optclose:hover{transform:rotate(90deg);background:hsla(0,100%,32%,.55)}
optbody{padding:14px 16px;max-height:50vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:hsla(46,25%,55%,.55) transparent}
optbody::-webkit-scrollbar{width:6px}
optbody::-webkit-scrollbar-thumb{background:hsla(46,25%,55%,.7);border-radius:3px}
shell [data-action="append-textinput"]{display:block;padding:10px 12px;margin-bottom:8px;background:linear-gradient(155deg,hsla(240,12%,13%,.9),hsla(240,12%,6%,.92));border:1px solid hsla(46,25%,55%,.32);border-radius:8px;color:hsl(46,25%,60%);font-size:14px;line-height:1.5;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;transition:transform .25s,box-shadow .3s,border-color .3s,background .3s;word-break:break-word}
shell [data-action="append-textinput"]:hover{transform:translateX(2px);border-color:hsla(46,25%,62%,.65);box-shadow:0 0 18px -4px hsla(46,25%,55%,.55);background:linear-gradient(155deg,hsla(240,12%,16%,.95),hsla(240,12%,8%,.95))}
shell [data-action="append-textinput"]:active{transform:translateX(0) scale(.98)}
shell [data-action="append-textinput"]:last-child{margin-bottom:0}

/* ===== 底部5按钮 ===== */
.nav{position:relative;z-index:5;flex:0 0 auto;display:flex;height:58px;background:linear-gradient(0deg,hsla(240,12%,7%,.96),hsla(240,12%,13%,.8));border-top:1px solid hsla(46,25%,55%,.32)}
.nbtn{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;color:hsla(40,8%,66%,.9);font-size:11px;letter-spacing:.5px;overflow:hidden;transition:color .3s;-webkit-tap-highlight-color:transparent}
.nbtn::before{content:"";width:21px;height:21px;background-repeat:no-repeat;background-position:center;background-size:contain;transition:transform .4s cubic-bezier(.34,1.3,.5,1),filter .3s}
.nbtn::after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:linear-gradient(90deg,transparent,hsl(46,25%,60%),transparent);transform:translateX(-50%);transition:width .35s;box-shadow:0 0 8px hsl(46,25%,60%)}
.nbtn[t='1']::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-6 8-6s8 2 8 6'/%3E%3C/svg%3E")}
.nbtn[t='2']::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(40,8%,66%)' stroke-width='1.7'%3E%3Ccircle cx='9' cy='8' r='3.4'/%3E%3Ccircle cx='17' cy='9' r='2.6' opacity='.8'/%3E%3Cpath d='M3 20c0-3.4 2.8-5 6-5s6 1.6 6 5M15 20c0-2.6 1.4-4 4-4'/%3E%3C/svg%3E")}
.nbtn[t='3']::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(0,100%,64%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h6l-1 8 9-12h-6z'/%3E%3C/svg%3E")}
.nbtn[t='4']::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z'/%3E%3Cpath d='M9 4v14M15 6v14' opacity='.6'/%3E%3C/svg%3E")}
.nbtn[t='5']::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(265,58%,70%)' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M12 8v4l3 2'/%3E%3Cpath d='M3.5 12a8.5 8.5 0 1 0 2.6-6.1L3 8'/%3E%3Cpath d='M3 4v4h4'/%3E%3C/svg%3E")}
.nbtn:hover{color:hsl(46,25%,60%)}
.nbtn:hover::before{transform:translateY(-3px);filter:drop-shadow(0 0 5px hsla(46,25%,58%,.85))}
.nbtn:hover::after{width:60%}
.nbtn:active::before{transform:scale(.85)}
shell:has(.p1:checked) .nav .nbtn[t='1'],shell:has(.p2:checked) .nav .nbtn[t='2'],shell:has(.p3:checked) .nav .nbtn[t='3'],shell:has(.p4:checked) .nav .nbtn[t='4'],shell:has(.p5:checked) .nav .nbtn[t='5']{color:hsl(46,25%,60%)}
shell:has(.p1:checked) .nav .nbtn[t='1']::after,shell:has(.p2:checked) .nav .nbtn[t='2']::after,shell:has(.p3:checked) .nav .nbtn[t='3']::after,shell:has(.p4:checked) .nav .nbtn[t='4']::after,shell:has(.p5:checked) .nav .nbtn[t='5']::after{width:80%}
shell:has(.p1:checked) .nav .nbtn[t='1']::before,shell:has(.p2:checked) .nav .nbtn[t='2']::before,shell:has(.p3:checked) .nav .nbtn[t='3']::before,shell:has(.p4:checked) .nav .nbtn[t='4']::before,shell:has(.p5:checked) .nav .nbtn[t='5']::before{filter:drop-shadow(0 0 6px hsla(46,25%,60%,.95));animation:ecoFloat 2.2s ease-in-out infinite}
@keyframes ecoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* ===== 设置侧滑 ===== */
.setmask{position:fixed;inset:0;z-index:50;background:hsla(240,12%,3%,.55);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
setpanel{position:absolute;top:0;right:0;z-index:51;width:min(80%,300px);height:100%;background:linear-gradient(200deg,hsla(240,12%,11%,.99),hsla(240,12%,5%,.99));border-left:1px solid hsla(46,25%,58%,.4);box-shadow:-14px 0 45px -12px hsla(240,12%,1%,.9);transform:translateX(100%);transition:transform .5s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column}
n.setmask:has(.setshow:checked){opacity:1;visibility:visible}
n.setmask:has(.setshow:checked) setpanel{transform:translateX(0)}
sethead{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:16px;border-bottom:1px solid hsla(46,25%,55%,.28);font-size:16px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%)}
sethead::before{content:"";width:19px;height:19px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2 2M17 17l2 2M19 4.9l-2 2M6.9 17l-2 2'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;animation:ecoSpin 12s linear infinite}
.setclose{margin-left:auto;width:28px;height:28px;border-radius:8px;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;background:hsla(240,12%,6%,.4);border:1px solid hsla(0,100%,55%,.35);position:relative;transition:transform .3s,background .3s}
.setclose::before,.setclose::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:1.7px;background:hsl(0,100%,70%)}
.setclose::before{transform:translate(-50%,-50%) rotate(45deg)}
.setclose::after{transform:translate(-50%,-50%) rotate(-45deg)}
.setclose:hover{transform:rotate(90deg);background:hsla(0,100%,32%,.55)}
setbody{flex:1 1 auto;overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:hsla(46,25%,55%,.55) transparent}
setbody::-webkit-scrollbar{width:6px}
setbody::-webkit-scrollbar-thumb{background:hsla(46,25%,55%,.7);border-radius:3px}

/* ─── 设置面板内容 ─── */
shell sgrp{margin-bottom:12px;padding:10px 12px;background:hsla(240,12%,10%,.5);border:1px solid hsla(46,25%,45%,.22);border-radius:8px}
shell sh{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;letter-spacing:1.5px;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.4);border-bottom:1px dashed hsla(46,25%,45%,.18)}
shell sh::before{content:"";flex:0 0 auto;min-width:max-content;min-height:16px;padding-left:20px;background-repeat:no-repeat;background-position:left center;background-size:14px 14px;filter:drop-shadow(0 0 3px hsla(46,25%,58%,.6));font-size:13px;font-weight:700;letter-spacing:1.5px;color:inherit;line-height:16px;white-space:nowrap}
shell sh[i="pref"]::before{content:"偏好约束";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(315,70%,72%)' stroke-width='1.7'%3E%3Cpath d='M12 21s-7-4.4-9.5-9C1 8.5 3 4.5 7 4.5c2 0 3.5 1 5 3 1.5-2 3-3 5-3 4 0 6 4 4.5 7.5C19 16.6 12 21 12 21z' fill='hsla(315,60%,55%,.25)'/%3E%3C/svg%3E")}
shell sh[i="narr"]::before{content:"叙述调整";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'/%3E%3C/svg%3E")}
shell srow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px dashed hsla(46,25%,45%,.1)}
shell srow:last-child{border-bottom:none}
shell srow::before{content:attr(t);flex:0 0 auto;font-size:12px;color:hsla(40,8%,66%,.9);letter-spacing:1px;padding-left:8px;border-left:2px solid hsla(46,25%,60%,.5)}
shell sv{flex:1 1 auto;text-align:right;font-size:12.5px;color:hsl(40,8%,84%);word-break:break-word}
shell shint{display:block;margin-top:4px;padding:9px 11px;background:hsla(240,12%,5%,.55);border:1px dashed hsla(46,25%,45%,.28);border-radius:7px}
shell shint::before{content:"使用说明";display:block;margin-bottom:6px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:hsla(46,25%,68%,.85);text-transform:uppercase}
shell scmd{display:block;padding:4px 0;font-size:11.5px;line-height:1.55;color:hsla(40,8%,70%,.9);font-family:ui-monospace,Consolas,monospace;word-break:break-all;border-bottom:1px dashed hsla(46,25%,45%,.1)}
shell scmd:last-child{border-bottom:none}
shell scmd::before{content:"›";margin-right:5px;color:hsl(46,25%,60%);font-weight:700}

/* ===== 响应式 ===== */
@media(max-width:480px){shell{height:min(84vh,680px);border-radius:10px}.nbtn{font-size:0;gap:0}.nbtn::before{width:24px;height:24px}tinfo time{font-size:15px}stars{width:60px}.orb{width:46px;height:46px;right:10px}.orb::after{inset:11px}}
@media(max-width:640px){
  /* === 顶部状态栏 === */
  .top{height:auto;min-height:48px;flex-wrap:wrap;padding:6px 10px;gap:6px;overflow:visible}
  .top wicon{width:30px;height:30px}
  tinfo{flex:1 1 calc(100% - 84px);min-width:0}
  tinfo time{font-size:14px}
  tinfo small{font-size:11px;gap:3px}
  danger{flex:0 0 auto}
  /* === 通用间距缩小 === */
  shell stxt{padding:12px 12px 14px;font-size:15px}
  shell pbody{padding:12px 10px}
  shell grp{padding:10px 10px 12px}
  shell sheet{gap:12px}
  shell f{font-size:12.5px;padding:4px 2px;gap:8px}
  shell f::before{font-size:11.5px}
  shell bar{height:12px;margin:6px 0 3px}
  shell bar t{font-size:10.5px}
  shell tag{font-size:11px;padding:2px 8px;letter-spacing:.5px}
  shell tags{gap:5px}
  shell lbl{font-size:11px;letter-spacing:1.5px;margin:8px 0 2px}
  /* === P1 在场简报统计4列→2列 === */
  shell bstat{grid-template-columns:repeat(2,1fr);gap:6px}
  shell .bcell{padding:7px 4px}
  shell .bcell strong{font-size:18px}
  shell .bcell em{font-size:10.5px}
  /* === P1 特殊载体chead换行 === */
  shell chead{flex-wrap:wrap;gap:4px;padding-right:22px}
  shell cname{flex:1 1 100%;min-width:0;font-size:13px}
  shell cgrade{flex:0 0 auto;font-size:10px;padding:1px 6px}
  shell cstat{gap:5px}
  shell cstat mt,shell hm mt,shell ameta mt{font-size:11px;padding:2px 7px}
  /* === P1 据点头hh换行 === */
  shell hh{flex-wrap:wrap;gap:6px}
  shell hn{flex:1 1 100%;font-size:14px}
  shell ht{font-size:10.5px;padding:2px 8px}
  shell hm{gap:6px}
  /* === P1 建筑等级头bvh换行 === */
  shell bvh{flex-wrap:wrap;gap:4px}
  shell bvn{flex:1 1 calc(100% - 30px);font-size:11.5px}
  shell bvt{min-width:20px;height:20px;font-size:10px}
  shell bvc{font-size:10.5px}
  /* === P1 建筑网格缩小 === */
  shell bdg{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:5px}
  shell bld{padding:6px 8px 6px 20px;font-size:11px}
  shell bdn{font-size:11px}
  shell bdm{font-size:10px}
  /* === P1 材料库存缩小 === */
  shell ml{gap:6px}
  shell mat{padding:7px 8px}
  shell mn{font-size:11.5px}
  shell mv{font-size:11.5px}
  /* === P1 势力运营3列缩小 === */
  shell rc{gap:6px}
  shell rcell{padding:32px 4px 6px}
  shell rn{font-size:16px}
  shell rl{font-size:10px}
  /* === P1 NPC头部换行 === */
  shell nh{flex-wrap:wrap;gap:6px;overflow:visible}
  shell av{width:36px;height:36px;font-size:16px}
  shell ni{flex:1 1 calc(100% - 48px);min-width:0}
  shell nn{font-size:14px}
  shell nm{font-size:11px}
  shell ns{font-size:10px;padding:2px 6px}
  shell lock{width:16px;height:16px;font-size:11px;margin-left:4px}
  shell .fold-btn{width:22px;height:22px;margin-left:4px}
  shell .fold-btn::after{width:13px;height:13px}
  /* === P2 NPC详情缩小 === */
  shell nb{gap:5px}
  shell nb bar{height:11px;margin:3px 0 1px}
  shell look,shell rel,shell recent{padding:7px 8px 7px 28px;font-size:12px;line-height:1.55}
  /* === P3 CG立绘缩小 === */
  shell cg[w="tall"]{min-height:220px}
  shell cg[w="wide"]{min-height:140px}
  shell ctop{font-size:10px;letter-spacing:1.5px;height:24px}
  shell cbot{font-size:9.5px;letter-spacing:1px;height:22px}
  /* === P3 私密档案缩小 === */
  shell pi{padding:6px 8px 6px 28px;font-size:12px;line-height:1.55}
  shell pk{min-width:34px;font-size:11.5px}
  /* === P3 当前意图缩小 === */
  shell itext{font-size:12.5px;line-height:1.6}
  shell intent{padding:10px}
  /* === P4 地图节点换行 === */
  shell mr{flex-wrap:wrap;gap:4px;padding:6px 8px 6px 28px}
  shell mname{flex:1 1 100%;font-size:12px}
  shell mtag{flex:1 1 auto;min-width:0;font-size:10.5px}
  shell ms{font-size:10px;padding:2px 6px}
  /* === P4 事件ehead换行 === */
  shell ehead{flex-wrap:wrap;gap:6px}
  shell ename{flex:1 1 100%;font-size:13px}
  shell etime{font-size:10.5px;padding:2px 7px}
  shell ed{font-size:12px;padding:6px 8px}
  /* === P4 任务缩小 === */
  shell qname{font-size:13px;gap:4px}
  shell qb{font-size:10px;padding:1px 6px}
  shell qobj{font-size:11.5px;padding:4px 6px}
  shell qr{font-size:11px;padding:4px 8px 4px 24px}
  /* === P5 短期记忆缩小 === */
  shell mem{padding:8px 9px;margin-left:12px;margin-bottom:8px}
  shell mhead{gap:6px}
  shell mtext{font-size:12.5px;line-height:1.55}
  /* === P5 长期记忆缩小 === */
  shell chunk{padding:8px 10px}
  shell chead{gap:6px}
  shell ctheme{font-size:12.5px}
  shell ctext{font-size:12px;line-height:1.6}
  /* === P5 世界大事记whead换行 === */
  shell whead{flex-wrap:wrap;gap:6px}
  shell wname{flex:1 1 100%;font-size:12.5px}
  shell wturn{font-size:10px;padding:1px 6px}
  shell wtext{font-size:12px}
  /* === P5 羁绊bond缩小+换行 === */
  shell brel{flex-wrap:wrap;gap:6px;justify-content:center;padding:5px 8px}
  shell brfrom,shell brto{font-size:11px;padding:2px 9px}
  shell brarrow{font-size:14px}
  shell btext{font-size:11.5px;line-height:1.55}
  /* === P5 重大决定缩小 === */
  shell decision{padding:10px 38px 10px 12px}
  shell dhead{gap:6px}
  shell dtitle{font-size:13px}
  shell dturn{font-size:10px;padding:1px 6px}
  shell dc,shell di{font-size:12px;line-height:1.55}
  /* === 设置面板缩小 === */
  shell sgrp{padding:8px 10px;margin-bottom:10px}
  shell sh{font-size:12px;letter-spacing:1px;margin-bottom:6px}
  shell srow{padding:4px 0}
  shell srow::before{font-size:11px}
  shell sv{font-size:11.5px}
  shell scmd{font-size:11px;line-height:1.5}
  shell shint{padding:7px 9px}
}
@media(min-width:481px){.hide:checked~stage .orb{right:14px;opacity:1;animation:ecoBreath 3.4s ease-in-out infinite}.hide:checked~stage .orbback{display:none}}

/* ══════════════ 主角信息面板 · 星空蓝科技风 ══════════════ */
shell sheet{display:flex;flex-direction:column;gap:16px}

/* ─── 分组容器 ─── */
shell grp{position:relative;padding:12px 12px 14px;background:linear-gradient(158deg,hsla(240,12%,14%,.72),hsla(240,12%,7%,.72));border:1px solid hsla(46,25%,55%,.28);border-radius:10px;box-shadow:0 0 0 1px hsla(46,25%,60%,.08) inset,0 6px 18px -8px hsla(240,12%,1%,.75)}
shell grp::before{content:"";position:absolute;left:-1px;top:14px;width:3px;height:22px;background:linear-gradient(180deg,hsl(46,25%,60%),hsla(40,8%,45%,.2));border-radius:0 2px 2px 0;box-shadow:0 0 10px hsla(46,25%,58%,.7)}
shell grp::after{content:"";position:absolute;right:8px;top:8px;width:12px;height:12px;border-top:1px solid hsla(46,25%,60%,.5);border-right:1px solid hsla(46,25%,60%,.5);opacity:.7}

/* ─── 分组标题 ─── */
shell gh{position:relative;display:flex;align-items:center;gap:8px;padding:0 0 10px 4px;margin-bottom:10px;font-size:14px;font-weight:700;letter-spacing:2px;color:hsl(46,25%,60%);text-shadow:0 0 10px hsla(46,25%,55%,.45);border-bottom:1px dashed hsla(46,25%,50%,.28)}
shell gh::before{content:"";flex:0 0 auto;min-width:max-content;min-height:16px;padding-left:22px;background-repeat:no-repeat;background-position:left center;background-size:16px 16px;filter:drop-shadow(0 0 4px hsla(46,25%,58%,.7));font-size:14px;font-weight:700;letter-spacing:2px;color:inherit;line-height:16px;white-space:nowrap}
shell gh::after{content:"";flex:1 1 auto;height:1px;margin-left:6px;background:linear-gradient(90deg,hsla(46,25%,55%,.5),transparent);align-self:center}
shell .grp-fold{display:none}
shell .grp-fold:not(:checked)~.grp-body{display:none}
shell .fold-btn{flex:0 0 auto;order:1;width:24px;height:24px;margin-left:8px;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;border-radius:6px;position:relative;background:linear-gradient(135deg,hsla(46,25%,55%,.12),hsla(46,25%,55%,.04));border:1px solid hsla(46,25%,55%,.25);transition:all .3s cubic-bezier(.4,0,.2,1)}
shell .fold-btn::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;transform:translate(-50%,-50%) rotate(0deg);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237DC4E8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 3px hsla(46,25%,55%,.6));transition:transform .3s cubic-bezier(.4,0,.2,1),filter .3s ease}
shell .fold-btn:hover{background:linear-gradient(135deg,hsla(46,25%,55%,.25),hsla(46,25%,55%,.08));border-color:hsla(46,25%,55%,.6);box-shadow:0 0 12px hsla(46,25%,55%,.5),inset 0 0 8px hsla(46,25%,55%,.15)}
shell .fold-btn:hover::after{transform:translate(-50%,-50%) rotate(0deg) scale(1.25);filter:drop-shadow(0 0 6px hsla(46,25%,55%,.8))}
shell .grp-fold:checked~gh .fold-btn::after{transform:translate(-50%,-50%) rotate(90deg)}
shell .grp-fold:checked~gh .fold-btn:hover::after{transform:translate(-50%,-50%) rotate(90deg) scale(1.25)}
shell npc:has(.grp-fold:not(:checked)) nb{display:none}
shell npc:has(.grp-fold:checked) .fold-btn::after{transform:translate(-50%,-50%) rotate(90deg)}
shell npc:has(.grp-fold:checked) .fold-btn:hover::after{transform:translate(-50%,-50%) rotate(90deg) scale(1.25)}
shell gh[i="id"]::before{content:"身份档案";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='11' r='2.4'/%3E%3Cpath d='M14 10h4M14 13h4M6 17h12'/%3E%3C/svg%3E")}
shell gh[i="ic"]::before{content:"当前交互";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(0,100%,68%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='3.5' fill='hsla(0,100%,55%,.25)'/%3E%3Cpath d='M5 20c0-3.5 3-5.5 7-5.5s7 2 7 5.5'/%3E%3Cpath d='M3 3h3M3 3v3M21 3h-3M21 3v3M3 21h3M3 21v-3M21 21h-3M21 21v-3' stroke-width='1.5' opacity='.6'/%3E%3C/svg%3E")}
shell gh[i="pw"]::before{content:"境界战力";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h6l-1 8 9-12h-6z' fill='hsla(46,25%,55%,.25)'/%3E%3C/svg%3E")}
shell gh[i="sp"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(265,70%,74%)' stroke-width='1.7'%3E%3Cpath d='M12 3a5 5 0 0 0-5 5c0 2 1 3.5 2.5 4.5V16a2.5 2.5 0 0 0 5 0v-3.5C16 11.5 17 10 17 8a5 5 0 0 0-5-5z' fill='hsla(265,60%,50%,.2)'/%3E%3Cpath d='M10 20h4'/%3E%3C/svg%3E")}
shell gh[i="ab"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='3' fill='hsla(46,25%,55%,.3)'/%3E%3Ccircle cx='12' cy='12' r='8' stroke-dasharray='2 3'/%3E%3Cpath d='M12 4v3M12 17v3M4 12h3M17 12h3'/%3E%3C/svg%3E")}
shell gh[i="eq"]::before{content:"装备与资产";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(40,8%,70%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M6 3l3 3-6 6 3 3 6-6 3 3'/%3E%3Cpath d='M14 10l7 7-3 3-7-7'/%3E%3C/svg%3E")}
shell gh[i="ct"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,70%,72%)' stroke-width='1.6'%3E%3Cpath d='M12 3l1.8 4.5L18 9l-3.5 3 1 4.5L12 14l-3.5 2.5 1-4.5L6 9l4.2-1.5z' fill='hsla(45,70%,60%,.3)'/%3E%3C/svg%3E")}
shell gh[i="rs"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(150,55%,68%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='8' fill='hsla(150,55%,50%,.2)'/%3E%3Cpath d='M12 7v10M9.5 9.5h5M9.5 14.5h5'/%3E%3C/svg%3E")}
shell gh[i="st"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(0,100%,68%)' stroke-width='1.7'%3E%3Cpath d='M12 2L3 7v6c0 5 4 8 9 9 5-1 9-4 9-9V7z' fill='hsla(0,100%,55%,.25)'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E")}

/* ─── 字段行（f 标签 + attr() 渲染，替代 row/k/v 三层嵌套）─── */
shell f{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 2px;font-size:13.5px;line-height:1.5;border-bottom:1px dashed hsla(46,25%,45%,.14);text-align:right;color:hsl(40,8%,86%);word-break:break-word;font-variant-numeric:tabular-nums}
shell f:last-child{border-bottom:none}
shell f::before{content:attr(t);flex:0 0 auto;color:hsla(40,8%,66%,.9);letter-spacing:1px;font-size:12.5px;padding-left:8px;border-left:2px solid hsla(46,25%,60%,.6);text-align:left}
shell f[hl]{color:hsl(46,25%,60%);font-weight:600;text-shadow:0 0 8px hsla(46,25%,55%,.55);letter-spacing:.5px}
shell f[hl]::before{color:hsla(40,8%,66%,.9);font-weight:400;text-shadow:none;letter-spacing:1px}

/* ─── 进度条 ─── */
shell bar{position:relative;display:block;width:100%;height:14px;margin:8px 0 4px;background:linear-gradient(180deg,hsla(240,12%,4%,.85),hsla(240,12%,10%,.75));border:1px solid hsla(46,25%,50%,.32);border-radius:8px;overflow:hidden;box-shadow:0 2px 6px hsla(240,12%,1%,.6) inset,0 0 0 1px hsla(46,25%,55%,.08)}
shell bar i{display:block;height:100%;max-width:100%;border-radius:7px 3px 3px 7px;position:relative;transition:width .6s cubic-bezier(.22,1,.36,1);box-shadow:0 0 10px -1px currentColor}
shell bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,hsla(0,0%,100%,.35) 50%,transparent 100%);animation:ecoStream 2.4s linear infinite;border-radius:inherit}
@keyframes ecoStream{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
shell bar t{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:600;letter-spacing:1px;color:hsl(40,8%,94%);text-shadow:0 1px 2px hsla(240,12%,2%,.95),0 0 3px hsla(240,12%,2%,.8);font-variant-numeric:tabular-nums;pointer-events:none;z-index:2}
shell bar[c="hp"] i{background:linear-gradient(90deg,hsl(0,100%,55%),hsl(345,85%,62%));color:hsl(0,100%,58%)}
shell bar[c="ep"] i{background:linear-gradient(90deg,hsl(46,25%,60%),hsl(46,25%,60%));color:hsl(46,25%,60%)}
shell bar[c="exp"] i{background:linear-gradient(90deg,hsl(160,80%,45%),hsl(60,90%,60%));color:hsl(110,80%,50%)}
shell bar[c="hun"] i{background:linear-gradient(90deg,hsl(25,85%,55%),hsl(35,90%,60%));color:hsl(30,88%,58%)}
shell bar[c="thi"] i{background:linear-gradient(90deg,hsl(195,80%,50%),hsl(205,85%,55%));color:hsl(200,82%,52%)}
shell bar[c="sta"] i{background:linear-gradient(90deg,hsl(135,70%,45%),hsl(140,75%,50%));color:hsl(138,72%,48%)}
shell bar[c="au"] i{background:linear-gradient(90deg,hsl(45,85%,55%),hsl(50,95%,65%));color:hsl(48,90%,60%)}
shell bar[c="cr"] i{background:linear-gradient(90deg,hsl(280,60%,50%),hsl(320,75%,60%));color:hsl(305,80%,60%)}
shell bar[c="cr"][warn] i{background:linear-gradient(90deg,hsl(15,80%,52%),hsl(0,85%,58%));color:hsl(5,85%,58%);animation:ecoBarWarn 1.8s ease-in-out infinite}
shell bar[c="cr"][danger] i{background:linear-gradient(90deg,hsl(0,100%,50%),hsl(345,95%,58%));color:hsl(0,100%,55%);animation:ecoBarWarn 1s ease-in-out infinite}
@keyframes ecoBarWarn{0%,100%{filter:brightness(1)}50%{filter:brightness(1.6) drop-shadow(0 0 8px currentColor)}}
/* ─── bar t 固定前缀/后缀注入（AI 只输出数值，固定文字由 CSS 生成）─── */
shell bar[c="hp"] t::before{content:"HP "}
shell bar[c="ep"] t::before{content:"EP "}
shell bar[c="exp"] t::before{content:"经验 "}
shell bar[c="hun"] t::before{content:"饥饿 "}
shell bar[c="thi"] t::before{content:"口渴 "}
shell bar[c="sta"] t::before{content:"体力 "}
shell bar[c="au"] t::before{content:"黄金化 "}
shell bar[c="cr"] t::before{content:"侵蚀值 "}
shell bar[c="cr"] t::after{content:"%"}
shell bar[c="fv"] t::before{content:"好感 "}
shell bar[c="fv"] t::after{content:"%"}
shell bar[c="hs"] t::before{content:"敌意 "}
shell bar[c="hs"] t::after{content:"%"}
shell bar[c="it"] t::before{content:"意图强度 · "}
shell bar[c="qp"] t::before{content:"进度 "}
shell bar[c="df"] t::before{content:"防御值 "}
shell bar[c="dg"] t::before{content:"危险等级 · "}
shell bar[c="dg"] t::after{content:" 星"}

/* ─── 异能标签 / 状态标签 ─── */
shell tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
shell tag{position:relative;display:inline-flex;align-items:center;padding:3px 10px;font-size:12px;letter-spacing:1px;border-radius:4px;background:hsla(240,12%,14%,.7);border:1px solid hsla(46,25%,55%,.38);color:hsl(40,8%,82%);transition:transform .25s,box-shadow .3s,background .3s;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='1.5' fill='%23d4af37'/%3E%3Ccircle cx='14' cy='14' r='6' fill='none' stroke='%23d4af37' stroke-width='0.8' opacity='0.9'/%3E%3Cline x1='14' y1='2' x2='14' y2='8' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='14' y1='20' x2='14' y2='26' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='2' y1='14' x2='8' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3Cline x1='20' y1='14' x2='26' y2='14' stroke='%23d4af37' stroke-width='0.8'/%3E%3C/svg%3E") 14 14,crosshair}
shell tag::before{content:"";width:5px;height:5px;margin-right:5px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor}
shell tag:hover{transform:translateY(-1px);box-shadow:0 0 10px -1px currentColor;background:hsla(240,12%,18%,.9)}
shell tag[g="E"]{color:hsl(40,8%,70%);border-color:hsla(40,8%,55%,.4)}
shell tag[g="D"]{color:hsl(46,25%,60%);border-color:hsla(46,25%,55%,.5)}
shell tag[g="C"]{color:hsl(46,25%,60%);border-color:hsla(46,25%,55%,.55)}
shell tag[g="B"]{color:hsl(240,12%,74%);border-color:hsla(240,12%,60%,.6)}
shell tag[g="A"]{color:hsl(265,70%,76%);border-color:hsla(265,75%,60%,.65)}
shell tag[g="S"]{color:hsl(45,85%,68%);border-color:hsla(45,85%,58%,.7);background:hsla(45,45%,12%,.55);box-shadow:0 0 8px -2px hsla(45,90%,55%,.5)}
shell tag[g="世界级"]{color:hsl(46,25%,60%);border-color:hsla(46,25%,62%,.85);background:linear-gradient(120deg,hsla(40,8%,14%,.85),hsla(46,25%,20%,.75));box-shadow:0 0 12px -2px hsla(46,25%,55%,.75)}
shell tag[g="统治级"]{color:hsl(0,100%,72%);border-color:transparent;background:linear-gradient(120deg,hsla(240,12%,12%,.9),hsla(0,50%,18%,.85));box-shadow:0 0 16px -2px hsla(0,100%,58%,.85),0 0 0 1px hsla(0,100%,60%,.7) inset;animation:ecoTagFlow 3.2s linear infinite}
@keyframes ecoTagFlow{0%,100%{box-shadow:0 0 14px -2px hsla(0,100%,58%,.75),0 0 0 1px hsla(0,100%,60%,.7) inset}50%{box-shadow:0 0 20px -1px hsla(0,100%,60%,1),0 0 0 1px hsla(45,90%,65%,.85) inset}}
/* ─── 装备品阶色系 g=（仙品紫/灵品蓝/极品红/上品橙/良品绿/凡品灰）─── */
shell tag[g="仙品"]{color:hsl(285,75%,76%);border-color:hsla(285,75%,60%,.65);background:hsla(285,45%,14%,.6);box-shadow:0 0 10px -2px hsla(285,80%,55%,.5)}
shell tag[g="灵品"]{color:hsl(40,8%,76%);border-color:hsla(40,8%,60%,.6);background:hsla(40,8%,14%,.6)}
shell tag[g="极品"]{color:hsl(0,100%,72%);border-color:hsla(0,100%,58%,.65);background:hsla(0,100%,14%,.6)}
shell tag[g="上品"]{color:hsl(35,85%,68%);border-color:hsla(35,80%,55%,.6);background:hsla(35,45%,14%,.6)}
shell tag[g="良品"]{color:hsl(150,60%,70%);border-color:hsla(150,60%,55%,.55);background:hsla(150,40%,14%,.6)}
shell tag[g="凡品"]{color:hsl(40,8%,65%);border-color:hsla(40,8%,50%,.4);background:hsla(40,8%,14%,.6)}
shell tag[s="安全"]{color:hsl(150,65%,70%);border-color:hsla(150,60%,55%,.55)}
shell tag[s="增益"]{color:hsl(46,25%,60%);border-color:hsla(46,25%,60%,.65);background:hsla(46,25%,14%,.6)}
shell tag[s="受伤"]{color:hsl(30,85%,68%);border-color:hsla(30,80%,55%,.6)}
shell tag[s="危险"]{color:hsl(0,100%,70%);border-color:hsla(0,100%,58%,.7);background:hsla(0,100%,14%,.65);animation:ecoTagPulse 1.6s ease-in-out infinite}
shell tag[s="致命"]{color:hsl(0,95%,72%);border-color:hsla(0,90%,58%,.85);background:linear-gradient(120deg,hsla(0,55%,15%,.9),hsla(340,50%,18%,.85));box-shadow:0 0 12px -2px hsla(0,100%,58%,.85);animation:ecoTagPulse 1s ease-in-out infinite}
@keyframes ecoTagPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.5) drop-shadow(0 0 6px currentColor)}}

/* ─── tag tooltip（d 单行 / d1+d2+d3 多行，hover 显示详情）─── */
shell tag[d],shell tag[d1]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer}
shell tag[d]::after,shell tag[d1]::after{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(-4px);padding:6px 10px;background:linear-gradient(155deg,hsla(240,12%,13%,.97),hsla(240,12%,6%,.97));border:1px solid hsla(46,25%,58%,.55);border-radius:6px;font-size:12px;font-weight:400;letter-spacing:.3px;line-height:1.6;color:hsl(40,8%,90%);width:max-content;max-width:260px;box-shadow:0 8px 22px -8px hsla(240,12%,1%,.9),0 0 14px -4px hsla(46,25%,55%,.5);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s;z-index:30;pointer-events:none}
shell tag[d]::after{content:attr(d);white-space:normal}
shell tag[d1]::after{content:"来源 · " attr(d1) "\A 价值 · " attr(d2) "\A 效果 · " attr(d3);white-space:pre-line}
shell tag[d]:hover,shell tag[d1]:hover{z-index:31}
shell tag[d]:hover::after,shell tag[d1]:hover::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

/* ─── 物品卡 (全息鉴定书) ─── */
shell item{position:relative;padding:10px 12px 10px 16px;margin-top:6px;background:linear-gradient(155deg,hsla(240,12%,12%,.9),hsla(240,12%,6%,.9));border:1px solid hsla(46,25%,55%,.32);border-radius:8px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s;overflow:hidden}
shell item + item{margin-top:8px}
shell item::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:linear-gradient(180deg,hsl(46,25%,60%),hsl(40,8%,45%));border-radius:0 2px 2px 0;box-shadow:0 0 8px hsla(46,25%,58%,.7);transition:box-shadow .35s}
shell item::after{content:"";position:absolute;right:8px;top:8px;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsla(46,80,65,.6)' stroke-width='1.8'%3E%3Cpath d='M4 4h5v2H6v3H4zM20 4h-5v2h3v3h2zM4 20h5v-2H6v-3H4zM20 20h-5v-2h3v-3h2z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.7}
shell item:hover{transform:translateX(2px);border-color:hsla(46,25%,60%,.65);box-shadow:0 0 18px -4px hsla(46,25%,55%,.6),0 6px 14px -6px hsla(240,12%,1%,.8)}
shell item:hover::before{box-shadow:0 0 14px hsla(46,25%,60%,1)}
shell iname{display:block;font-size:14.5px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 10px hsla(46,25%,55%,.55);margin-bottom:5px;padding-right:22px;word-break:break-word}
shell .imeta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
shell .imeta mt{display:inline-flex;align-items:center;padding:2px 8px;font-size:11.5px;letter-spacing:.5px;color:hsla(40,8%,72%,.9);background:hsla(240,12%,10%,.7);border:1px solid hsla(46,25%,50%,.28);border-radius:3px}
 shell .imeta mt::before{content:"";width:4px;height:4px;margin-right:5px;border-radius:50%;background:hsl(46,25%,60%);box-shadow:0 0 4px hsl(46,25%,60%)}
shell .imeta .val{color:hsl(45,80%,72%);border-color:hsla(45,70%,55%,.4)}
shell .imeta .val::before{background:hsl(45,90%,60%);box-shadow:0 0 4px hsl(45,95%,60%)}
shell .idesc{display:block;padding:6px 8px;font-size:12.5px;line-height:1.65;color:hsla(40,8%,80%,.92);background:hsla(240,12%,4%,.55);border-left:2px solid hsla(46,25%,55%,.4);border-radius:0 4px 4px 0;word-break:break-word}












/* ══════════════ 重要角色面板 · 星空蓝科技风 ══════════════ */

/* ─── 在场简报 ─── */
shell brief{position:relative;padding:12px 12px 14px;background:linear-gradient(135deg,hsla(240,12%,14%,.85),hsla(240,12%,7%,.85));border:1px solid hsla(46,25%,58%,.4);border-radius:10px;overflow:hidden;box-shadow:0 0 20px -6px hsla(46,25%,55%,.45) inset,0 6px 18px -8px hsla(240,12%,1%,.8)}
shell brief::before{content:"";position:absolute;left:-45%;top:0;width:45%;height:100%;background:linear-gradient(90deg,transparent,hsla(46,25%,65%,.18),transparent);animation:ecoScan 5s linear infinite;pointer-events:none}
shell brief::after{content:"";position:absolute;left:8px;bottom:8px;width:14px;height:14px;border-bottom:1.5px solid hsla(46,25%,60%,.7);border-left:1.5px solid hsla(46,25%,60%,.7)}
shell .bhead{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:3px;color:hsl(46,25%,60%);text-shadow:0 0 10px hsla(46,25%,55%,.55);margin-bottom:10px}
shell .bhead::before{content:"";flex:0 0 auto;min-width:14px;min-height:14px;padding-left:22px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3v18M3 12h18'/%3E%3Ccircle cx='12' cy='12' r='4' fill='hsla(46,25%,55%,.35)'/%3E%3C/svg%3E");background-size:14px 14px;background-repeat:no-repeat;background-position:left center;filter:drop-shadow(0 0 4px hsla(46,25%,58%,.8));color:inherit;line-height:14px;white-space:nowrap}
shell .bhead::after{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,hsla(46,25%,55%,.5),transparent)}
shell bstat{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
shell .bcell{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:hsla(240,12%,4%,.55);border:1px solid hsla(46,25%,50%,.28);border-radius:6px;text-decoration:none;transition:transform .3s,box-shadow .3s,border-color .3s}
shell .bcell:hover{transform:translateY(-2px);border-color:hsla(46,25%,60%,.7);box-shadow:0 0 14px -3px hsla(46,25%,55%,.6)}
shell .bcell em{font-style:normal;font-size:11px;letter-spacing:1.5px;color:hsla(40,8%,66%,.9)}
shell .bcell strong{font-size:21px;font-weight:800;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 10px hsla(46,25%,55%,.6);font-variant-numeric:tabular-nums;line-height:1}
shell .bcell:nth-child(2) strong{color:hsl(150,70%,74%);text-shadow:0 0 10px hsla(150,80%,50%,.55)}
shell .bcell:nth-child(3) strong{color:hsl(0,100%,72%);text-shadow:0 0 10px hsla(0,100%,55%,.6)}
shell .bcell:nth-child(4) strong{color:hsl(315,75%,78%);text-shadow:0 0 12px hsla(315,85%,60%,.7)}

/* ─── NPC 卡容器 ─── */
shell npc{position:relative;display:block;padding:12px;background:linear-gradient(155deg,hsla(240,12%,13%,.9),hsla(240,12%,6%,.92));border:1px solid hsla(46,25%,55%,.32);border-radius:12px;transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s,border-color .4s;overflow:hidden}
shell npc + npc{margin-top:12px}
shell npc:hover{transform:translateY(-2px);border-color:hsla(46,25%,62%,.7);box-shadow:0 0 22px -6px hsla(46,25%,55%,.7),0 8px 20px -8px hsla(240,12%,1%,.9)}

/* ─── 卡头 ─── */
shell nh{position:relative;display:flex;align-items:center;gap:10px;padding:0 0 10px;margin-bottom:10px;border-bottom:1px dashed hsla(46,25%,50%,.25);overflow:hidden}
shell nh::before{content:"";position:absolute;left:-55%;top:0;width:55%;height:1px;background:linear-gradient(90deg,transparent,hsl(46,25%,60%),transparent);animation:ecoScan 5.5s linear infinite;pointer-events:none}
shell av{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:20px;font-weight:800;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 10px hsla(46,25%,55%,.75);background:radial-gradient(circle at 40% 35%,hsl(40,8%,32%),hsl(240,12%,10%) 75%);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);box-shadow:0 0 12px -2px hsla(46,25%,55%,.55);transition:transform .5s cubic-bezier(.22,1,.36,1)}
shell av::before{content:"";position:absolute;inset:0;background:linear-gradient(155deg,transparent 45%,hsla(46,25%,65%,.35) 50%,transparent 55%);clip-path:inherit;pointer-events:none}
shell npc:hover av{transform:rotate(30deg) scale(1.05)}
shell ni{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;overflow:hidden}
shell nn{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:15.5px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.5);line-height:1.3}
shell nm{display:block;font-size:12px;letter-spacing:.5px;color:hsla(40,8%,68%,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
shell badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:1px;border-radius:3px;background:hsla(240,12%,14%,.8);border:1px solid hsla(46,25%,55%,.4);color:hsl(40,8%,82%)}
shell badge::before{content:"";width:4px;height:4px;margin-right:5px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor}
shell ns{flex:0 0 auto;display:inline-flex;align-items:center;padding:3px 9px;font-size:11.5px;letter-spacing:1px;border-radius:11px;background:hsla(240,12%,4%,.7);border:1px solid hsla(46,25%,55%,.4);color:hsl(40,8%,78%)}
shell ns::before{content:"";width:6px;height:6px;margin-right:5px;background:currentColor;border-radius:50%;box-shadow:0 0 6px currentColor;animation:ecoPulse 1.8s ease-in-out infinite}
shell lock{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;font-size:13px;line-height:1;color:hsl(45,90%,65%);text-shadow:0 0 6px hsla(45,90%,55%,.6);filter:drop-shadow(0 0 3px hsla(45,90%,55%,.4));animation:ecoPulse 2.5s ease-in-out infinite}

/* ─── 关系徽章色系 r= ─── */
shell npc[r="伙伴"]{border-color:hsla(150,70%,55%,.5)}
shell npc[r="伙伴"] av{box-shadow:0 0 14px -2px hsla(150,80%,55%,.65)}
shell npc[r="伙伴"] badge{color:hsl(150,70%,74%);border-color:hsla(150,70%,55%,.6);background:hsla(150,40%,12%,.7)}
shell npc[r="盟友"]{border-color:hsla(46,25%,58%,.5)}
shell npc[r="盟友"] av{box-shadow:0 0 14px -2px hsla(46,25%,58%,.6)}
shell npc[r="盟友"] badge{color:hsl(46,25%,60%);border-color:hsla(46,25%,58%,.65);background:hsla(40,8%,14%,.7)}
shell npc[r="中立"] badge{color:hsl(40,8%,78%);border-color:hsla(40,8%,55%,.5)}
shell npc[r="敌对"]{border-color:hsla(20,80%,55%,.55)}
shell npc[r="敌对"] av{box-shadow:0 0 14px -2px hsla(20,85%,55%,.6)}
shell npc[r="敌对"] badge{color:hsl(20,85%,72%);border-color:hsla(20,85%,55%,.65);background:hsla(20,45%,14%,.7)}
shell npc[r="仇敌"]{border-color:hsla(0,100%,58%,.7)}
shell npc[r="仇敌"] av{box-shadow:0 0 16px -1px hsla(0,100%,55%,.75)}
shell npc[r="仇敌"] badge{color:hsl(0,100%,74%);border-color:hsla(0,100%,58%,.8);background:linear-gradient(120deg,hsla(0,50%,14%,.9),hsla(0,100%,18%,.85));box-shadow:0 0 10px -2px hsla(0,100%,55%,.75);animation:ecoTagPulse 1.6s ease-in-out infinite}
shell npc[r="暧昧"]{border-color:hsla(315,60%,55%,.45);box-shadow:0 0 12px -4px hsla(315,65%,55%,.3)}
shell npc[r="暧昧"]::before{content:"";position:absolute;inset:0;z-index:0;border-radius:12px;pointer-events:none;background:linear-gradient(135deg,hsla(315,60%,50%,.06),transparent 50%,hsla(325,70%,60%,.06));animation:ecoLoveBreath 4s ease-in-out infinite}
shell npc[r="暧昧"] > *{position:relative;z-index:1}
@keyframes ecoLoveBreath{0%,100%{opacity:.5}50%{opacity:1}}
shell npc[r="暧昧"] av{box-shadow:0 0 12px -3px hsla(315,70%,62%,.55)}
shell npc[r="暧昧"] badge{color:hsl(315,80%,78%);border-color:hsla(315,70%,58%,.6);background:linear-gradient(120deg,hsla(300,45%,15%,.9),hsla(320,50%,18%,.85));box-shadow:0 0 8px -2px hsla(315,75%,55%,.45)}

/* ─── 状态 st= ─── */
shell npc[st="在场"] ns{color:hsl(150,70%,74%);border-color:hsla(150,70%,55%,.55)}
shell npc[st="远程"] ns{color:hsl(46,25%,60%);border-color:hsla(46,25%,58%,.55)}
shell npc[st="远程"] ns::before{animation:ecoBlink 1.4s ease-in-out infinite}
@keyframes ecoBlink{0%,100%{opacity:1}50%{opacity:.25}}
shell npc[st="失联"] ns{color:hsl(45,65%,72%);border-color:hsla(45,70%,55%,.55)}
shell npc[st="失联"] ns::before{animation:ecoLoss 1.2s steps(2) infinite}
@keyframes ecoLoss{0%,49%{opacity:.85}50%,100%{opacity:.15}}
shell npc[st="死亡"]{filter:grayscale(.85) brightness(.55) contrast(.95)}
shell npc[st="死亡"]:hover{filter:grayscale(.7) brightness(.7)}
shell npc[st="死亡"] ns{color:hsl(0,100%,70%);border-color:hsla(0,100%,55%,.5);background:hsla(0,100%,12%,.7)}
shell npc[st="死亡"] ns::before{animation:none;opacity:.7}
shell npc[st="死亡"]::after{content:"KIA";position:absolute;right:12px;bottom:10px;font-size:38px;font-weight:900;letter-spacing:3px;color:hsla(0,100%,55%,.12);pointer-events:none;transform:rotate(-8deg);text-shadow:0 0 20px hsla(0,100%,45%,.4)}

/* ─── 卡身 nb ─── */
shell nb{display:flex;flex-direction:column;gap:6px}
shell nb tags{margin-top:4px;margin-bottom:2px}
shell nb bar{margin:4px 0 2px;height:12px}
shell nb bar t{font-size:11px}
shell nb bar[c="fv"] i{background:linear-gradient(90deg,hsl(46,25%,60%),hsl(320,75%,68%));color:hsl(310,80%,65%)}
shell nb bar[c="hs"] i{background:linear-gradient(90deg,hsl(30,85%,52%),hsl(0,100%,58%));color:hsl(0,100%,58%)}

/* ─── 外貌 / 关系 / 近期互动 三特色块 ─── */
/* ─── NPC 信息块（look/rel/recent 短标签 + attr() 渲染，保留背景色+图标）─── */
shell look,shell rel,shell recent{position:relative;display:block;margin-top:8px;padding:8px 10px 8px 30px;border-left:2px solid;border-radius:0 6px 6px 0;font-size:12.5px;line-height:1.65;color:hsla(40,8%,86%,.95);background-color:hsla(240,12%,4%,.55)}
shell look::before,shell rel::before,shell recent::before{content:attr(t)" \00b7 ";display:inline;font-weight:600;color:hsla(40,8%,72%,.9);letter-spacing:1px;word-break:break-word}
shell look{border-color:hsl(265,70%,66%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(265,75%,76%)' stroke-width='1.7'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3.2' fill='hsla(265,70%,55%,.35)'/%3E%3C/svg%3E"),linear-gradient(90deg,hsla(265,45%,14%,.6),hsla(240,12%,5%,.55) 60%);background-position:8px 10px,center;background-repeat:no-repeat,no-repeat;background-size:14px 14px,cover}
shell rel{border-color:hsl(315,70%,66%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(315,80%,78%)' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M9 6a3 3 0 0 0 0 6h6a3 3 0 0 1 0 6M12 3v18'/%3E%3C/svg%3E"),linear-gradient(90deg,hsla(315,45%,14%,.6),hsla(240,12%,5%,.55) 60%);background-position:8px 10px,center;background-repeat:no-repeat,no-repeat;background-size:14px 14px,cover}
shell recent{border-color:hsl(46,25%,60%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E"),linear-gradient(90deg,hsla(46,25%,14%,.6),hsla(240,12%,5%,.55) 60%);background-position:8px 10px,center;background-repeat:no-repeat,no-repeat;background-size:14px 14px,cover}





/* ══════════════ 当前交互面板 · 星空蓝科技风 ══════════════ */

/* ─── 新增分组图标 ─── */
shell gh[i="ps"]::before{content:"性格特质";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(315,70%,74%)' stroke-width='1.7'%3E%3Cpath d='M12 21s-7-4.4-9.5-9C1 8.5 3 4.5 7 4.5c2 0 3.5 1 5 3 1.5-2 3-3 5-3 4 0 6 4 4.5 7.5C19 16.6 12 21 12 21z' fill='hsla(315,60%,55%,.25)'/%3E%3C/svg%3E")}
shell gh[i="pv"]::before{content:"私密档案";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(320,75%,76%)' stroke-width='1.7'%3E%3Crect x='5' y='11' width='14' height='9' rx='2' fill='hsla(320,60%,50%,.25)'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3Ccircle cx='12' cy='15.5' r='1.4' fill='hsl(320,80%,72%)' stroke='none'/%3E%3C/svg%3E")}
shell gh[i="in"]::before{content:"当前意图";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(35,85%,68%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 2C8 6 6 9 6 13a6 6 0 0 0 12 0c0-4-2-7-6-11z' fill='hsla(35,80%,55%,.3)'/%3E%3Cpath d='M12 20a3 3 0 0 0 3-3c0-2-1.5-3.5-3-5-1.5 1.5-3 3-3 5a3 3 0 0 0 3 3z' fill='hsl(15,85%,60%)' stroke='none'/%3E%3C/svg%3E")}
shell gh[i="sc"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Crect x='3' y='5' width='18' height='13' rx='2' fill='hsla(46,25%,50%,.2)'/%3E%3Cpath d='M3 9h18M7 5V3M17 5V3M8 14l2.5-2.5L13 14l3-3.5'/%3E%3C/svg%3E")}

/* ─── 小标签 ─── */
shell lbl{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:10px 0 2px;font-size:11.5px;font-weight:700;letter-spacing:2px;white-space:nowrap;color:hsla(40,8%,72%,.9)}
shell lbl::before{content:"";width:3px;height:11px;background:linear-gradient(180deg,hsl(46,25%,60%),transparent);border-radius:2px;box-shadow:0 0 6px hsla(46,25%,58%,.6)}

/* ─── 私密档案 · 冷粉紫加密岛 ─── */
shell .prvgrp{position:relative;background:linear-gradient(158deg,hsla(310,40%,13%,.72),hsla(280,45%,8%,.75));border-color:hsla(315,60%,58%,.4)}
shell .prvgrp::before{background:linear-gradient(180deg,hsl(315,80%,65%),hsla(300,60%,45%,.2));box-shadow:0 0 10px hsla(315,90%,62%,.7)}
shell .prvgrp gh{color:hsl(315,65%,82%);text-shadow:0 0 10px hsla(315,85%,58%,.5);border-bottom-color:hsla(315,55%,55%,.3)}
shell .prvgrp gh::after{background:linear-gradient(90deg,hsla(315,85%,60%,.5),transparent)}
shell .prvgrp::after{content:"🔒 CLASSIFIED";position:absolute;right:10px;top:10px;z-index:2;font-size:8px;letter-spacing:1.5px;color:hsla(315,60%,72%,.7);pointer-events:none}
shell prv{display:flex;flex-direction:column;gap:6px;margin-top:4px}
shell pi{position:relative;display:flex;align-items:flex-start;gap:8px;padding:7px 10px 7px 32px;background:hsla(300,40%,6%,.55);border:1px solid hsla(315,45%,55%,.25);border-radius:6px;font-size:12.5px;line-height:1.6;transition:border-color .3s,box-shadow .3s,transform .3s}
shell pi:hover{border-color:hsla(315,75%,62%,.6);box-shadow:0 0 12px -3px hsla(315,85%,58%,.55);transform:translateX(2px)}
shell pi::before{content:"";position:absolute;left:9px;top:8px;width:15px;height:15px;background-repeat:no-repeat;background-position:center;background-size:contain;filter:drop-shadow(0 0 4px hsla(315,80%,58%,.6))}
shell pi[p="口"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(345,80%,74%)' stroke-width='1.6'%3E%3Cpath d='M3 12c3-3 6-3 9 0s6 3 9 0M3 12c3 3 6 3 9 0s6-3 9 0' fill='hsla(345,70%,60%,.25)'/%3E%3C/svg%3E")}
shell pi[p="胸"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(320,78%,76%)' stroke-width='1.6'%3E%3Ccircle cx='8' cy='13' r='5' fill='hsla(320,65%,58%,.22)'/%3E%3Ccircle cx='16' cy='13' r='5' fill='hsla(320,65%,58%,.22)'/%3E%3Ccircle cx='8' cy='13' r='1' fill='hsl(320,80%,72%)' stroke='none'/%3E%3Ccircle cx='16' cy='13' r='1' fill='hsl(320,80%,72%)' stroke='none'/%3E%3C/svg%3E")}
shell pi[p="臀"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(310,78%,76%)' stroke-width='1.6'%3E%3Cpath d='M12 4c-1 3-4 5-4 9a4 4 0 0 0 8 0c0-4-3-6-4-9z' fill='hsla(310,65%,58%,.25)'/%3E%3Cpath d='M12 8v9' opacity='.6'/%3E%3C/svg%3E")}
shell pi[p="菊"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(300,72%,76%)' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='7' opacity='.5'/%3E%3Cpath d='M12 6l1.5 3.5L17 11l-2.8 2 .8 3.8L12 15l-3 1.8.8-3.8L8 11l3.5-1.5z' fill='hsla(300,65%,58%,.3)'/%3E%3C/svg%3E")}
shell pi[p="穴"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(335,80%,76%)' stroke-width='1.6'%3E%3Cpath d='M12 4c3 4 4 7 4 10a4 4 0 0 1-8 0c0-3 1-6 4-10z' fill='hsla(335,68%,58%,.28)'/%3E%3Cpath d='M12 9v7' opacity='.7'/%3E%3C/svg%3E")}
shell pi[p="腿"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(290,68%,76%)' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M9 3v8l-2 9M15 3v8l2 9' fill='hsla(290,60%,58%,.2)'/%3E%3Cpath d='M9 11h6'/%3E%3C/svg%3E")}
shell pk{flex:0 0 auto;min-width:38px;font-weight:700;letter-spacing:.5px;color:hsl(315,65%,80%);text-shadow:0 0 6px hsla(315,85%,58%,.4)}
shell pk::after{content:"·";margin-left:5px;color:hsla(315,55%,60%,.6)}
shell pv{flex:1 1 auto;color:hsla(320,25%,86%,.95);word-break:break-word}

/* ─── 当前意图 · 金红呼吸块 ─── */
shell .intentgrp{background:linear-gradient(158deg,hsla(30,45%,13%,.75),hsla(0,100%,8%,.78));border-color:hsla(30,70%,55%,.45)}
shell .intentgrp::before{background:linear-gradient(180deg,hsl(35,90%,60%),hsla(0,60%,45%,.2));box-shadow:0 0 10px hsla(35,95%,58%,.7)}
shell .intentgrp gh{color:hsl(35,75%,74%);text-shadow:0 0 10px hsla(35,90%,55%,.5);border-bottom-color:hsla(30,60%,55%,.3)}
shell .intentgrp gh::after{background:linear-gradient(90deg,hsla(35,90%,58%,.5),transparent)}
shell intent{position:relative;padding:12px;background:radial-gradient(120% 100% at 0 0,hsla(35,50%,16%,.7),hsla(0,100%,8%,.6));border:1px solid hsla(35,70%,58%,.5);border-radius:8px;overflow:hidden;animation:ecoIntentGlow 3.2s ease-in-out infinite}
@keyframes ecoIntentGlow{0%,100%{box-shadow:0 0 14px -4px hsla(30,85%,55%,.5),0 0 0 1px hsla(35,80%,58%,.15) inset}50%{box-shadow:0 0 24px -2px hsla(15,90%,58%,.85),0 0 0 1px hsla(45,85%,62%,.4) inset}}
shell ihead{display:block;font-size:11px;font-weight:800;letter-spacing:3px;color:hsl(40,90%,68%);text-shadow:0 0 10px hsla(35,95%,55%,.7);margin-bottom:8px}
shell ihead::before{content:"◈ ";color:hsl(15,85%,60%)}
shell itext{display:block;font-size:13.5px;line-height:1.7;color:hsl(35,40%,90%);text-shadow:0 1px 3px hsla(20,60%,5%,.8);margin-bottom:10px;word-break:break-word}
shell bar[c="it"] i{background:linear-gradient(90deg,hsl(45,90%,55%),hsl(15,90%,55%),hsl(0,90%,56%));color:hsl(20,90%,58%)}

/* ─── CG 采集帧相框 ─── */
shell cg{position:relative;display:block;width:100%;margin-top:4px;border-radius:12px;overflow:hidden;background:radial-gradient(120% 90% at 50% 0,hsl(240,12%,15%),hsl(240,12%,6%) 70%);border:1px solid hsla(46,25%,58%,.4);box-shadow:0 0 26px -8px hsla(46,25%,55%,.5),0 8px 22px -10px hsla(240,12%,1%,.85)}
shell cg[w="tall"]{aspect-ratio:3/4;min-height:280px}
shell cg[w="wide"]{aspect-ratio:16/9;min-height:180px}
shell pic{position:absolute;inset:0;z-index:2;background-size:cover;background-position:center top;background-repeat:no-repeat}
shell pic::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 2px,hsla(240,12%,3%,.14) 2px 3px);pointer-events:none;opacity:.6}
shell cnone{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
shell cnone::before{content:"";width:64px;height:64px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsla(46,25%,60%,.5)' stroke-width='1.3'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.6;animation:ecoBreath 3.4s ease-in-out infinite}
shell csig{display:block;font-size:16px;font-weight:800;letter-spacing:4px;color:hsla(46,25%,65%,.75);text-shadow:0 0 12px hsla(46,25%,55%,.5);animation:ecoBlink 1.6s ease-in-out infinite}
shell ctip{display:block;font-size:11px;letter-spacing:1.5px;color:hsla(40,8%,55%,.7)}
shell cframe{position:absolute;inset:0;z-index:5;pointer-events:none;box-shadow:0 0 0 1px hsla(46,25%,60%,.15) inset,0 0 30px -8px hsla(46,25%,55%,.35) inset;transition:box-shadow .4s}
shell cframe::before,shell cframe::after{content:"";position:absolute;width:22px;height:22px}
shell cframe::before{left:8px;top:32px;border-left:2px solid hsla(46,25%,62%,.8);border-top:2px solid hsla(46,25%,62%,.8)}
shell cframe::after{right:8px;bottom:32px;border-right:2px solid hsla(46,25%,62%,.8);border-bottom:2px solid hsla(46,25%,62%,.8)}
shell ctop{position:absolute;left:0;top:0;right:0;z-index:6;display:flex;align-items:center;height:26px;padding:0 10px;font-size:11px;font-weight:700;letter-spacing:2px;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.6);background:linear-gradient(180deg,hsla(240,12%,4%,.85),transparent);overflow:hidden}
shell ctop::before{content:"";width:6px;height:6px;margin-right:7px;background:hsl(150,80%,60%);border-radius:50%;box-shadow:0 0 6px hsl(150,90%,55%);animation:ecoPulse 1.8s ease-in-out infinite}
shell ctop::after{content:"";position:absolute;left:-45%;top:0;width:45%;height:100%;background:linear-gradient(90deg,transparent,hsla(46,25%,65%,.25),transparent);animation:ecoScan 4s linear infinite}
shell cbot{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;justify-content:flex-end;height:24px;padding:0 10px;font-size:10.5px;letter-spacing:1.5px;color:hsla(46,25%,70%,.9);background:linear-gradient(0deg,hsla(240,12%,4%,.88),transparent)}
shell cbot::before{content:"";flex:0 0 auto;width:5px;height:5px;margin-right:6px;background:hsl(46,25%,60%);border-radius:50%;box-shadow:0 0 5px hsl(46,25%,60%)}
shell cbot::after{content:"目标已采集"}
shell csig::before{content:"NO SIGNAL"}
shell ctip::before{content:"档案图像未采集"}
shell danger b::before{content:"DANGER"}
.panel[p="1"] phead b::before{content:"主角信息"}
.panel[p="2"] phead b::before{content:"重要角色"}
.panel[p="3"] phead b::before{content:"当前交互"}
.panel[p="4"] phead b::before{content:"地区与任务"}
.panel[p="5"] phead b::before{content:"过往记忆"}
.panel[p="2"] .bhead::before{content:"在场简报"}
.panel[p="5"] .bhead::before{content:"记忆索引"}
shell cg:hover cframe{box-shadow:0 0 0 1px hsla(46,25%,62%,.5) inset,0 0 40px -6px hsla(46,25%,55%,.6) inset}
shell cg:hover cframe::before,shell cg:hover cframe::after{border-color:hsl(46,25%,60%)}
shell cg::after{content:"";position:absolute;left:0;right:0;top:-30%;height:30%;z-index:4;background:linear-gradient(180deg,transparent,hsla(46,25%,65%,.14),transparent);opacity:0;pointer-events:none}
shell cg:hover::after{animation:ecoCgScan 2.2s ease-in-out}
@keyframes ecoCgScan{0%{top:-30%;opacity:1}100%{top:100%;opacity:0}}



/* ══════════════ 地区与任务面板 · 星空蓝科技风 ══════════════ */

/* ─── 新增分组图标 ─── */
shell gh[i="rg"]::before{content:"当前区域";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9' fill='hsla(46,25%,50%,.15)'/%3E%3Cpath d='M12 3v3M12 18v3M3 12h3M18 12h3'/%3E%3Cpath d='M15 9l-2 5-5 2 2-5z' fill='hsl(0,100%,60%)' stroke='none'/%3E%3C/svg%3E")}
shell gh[i="bs"]::before{content:"个人势力";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M4 21V9l8-5 8 5v12' fill='hsla(46,25%,50%,.2)'/%3E%3Cpath d='M4 21h16M9 21v-6h6v6M4 9h16'/%3E%3C/svg%3E")}
shell gh[i="as"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,80%,72%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 2L4 5v7c0 5 3.5 8.5 8 10 4.5-1.5 8-5 8-10V5z' fill='hsla(45,70%,55%,.25)'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E")}
shell gh[i="mp"]::before{content:"区域导航";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M9 3L3 5v16l6-2 6 2 6-2V3l-6 2z' fill='hsla(46,25%,50%,.2)'/%3E%3Cpath d='M9 3v16M15 5v16'/%3E%3C/svg%3E")}
shell gh[i="ev"]::before{content:"动态事件";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(15,85%,68%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3L2 20h20z' fill='hsla(15,80%,55%,.28)'/%3E%3Cpath d='M12 10v5M12 17.5v.5'/%3E%3C/svg%3E")}
shell gh[i="qs"]::before{content:"任务清单";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(48,85%,72%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M6 3h11l3 3v15H6z' fill='hsla(48,75%,55%,.2)'/%3E%3Cpath d='M9 8h8M9 12h8M9 16h5' stroke-linecap='round'/%3E%3C/svg%3E")}

/* ─── 新增进度条 ─── */
shell bar[c="dg"] i{background:linear-gradient(90deg,hsl(30,85%,55%),hsl(0,100%,58%));color:hsl(5,90%,58%)}
shell bar[c="df"] i{background:linear-gradient(90deg,hsl(46,25%,60%),hsl(180,85%,60%));color:hsl(46,25%,60%)}
shell bar[c="et"] i{background:linear-gradient(90deg,hsl(45,90%,55%),hsl(15,90%,55%),hsl(0,100%,55%));color:hsl(15,90%,58%);animation:ecoBarWarn 1.8s ease-in-out infinite}
shell bar[c="qp"] i{background:linear-gradient(90deg,hsl(150,75%,50%),hsl(48,90%,60%));color:hsl(90,85%,55%)}

/* ─── 麾下资产卡 ─── */
shell asset{position:relative;display:block;padding:10px 12px 10px 16px;margin-top:6px;background:linear-gradient(155deg,hsla(240,12%,12%,.9),hsla(240,12%,6%,.9));border:1px solid hsla(46,25%,55%,.32);border-radius:8px;overflow:hidden;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s}
shell asset + asset{margin-top:8px}
shell asset::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:linear-gradient(180deg,currentColor,transparent);box-shadow:0 0 8px currentColor;color:hsl(46,25%,60%)}
shell asset:hover{transform:translateX(2px);border-color:hsla(46,25%,62%,.65);box-shadow:0 0 18px -4px hsla(46,25%,55%,.55)}
shell asset[tp="坐骑"]{color:hsl(150,75%,68%)}
shell asset[tp="战兽"]{color:hsl(45,85%,68%)}
shell asset[tp="载具"]{color:hsl(46,25%,60%)}
shell asset[tp="军团"]{color:hsl(265,75%,74%)}
shell asset[tp="死士"]{color:hsl(0,100%,70%)}
shell asset[tp="侍妾"]{color:hsl(315,70%,72%)}
shell asset[tp="奴隶"]{color:hsl(30,55%,60%)}
shell asset[tp="幕僚"]{color:hsl(180,70%,65%)}
shell asset[tp="产业"]{color:hsl(95,60%,62%)}
shell asset[tp="商铺"]{color:hsl(50,80%,65%)}
shell asset[tp="情报网"]{color:hsl(240,12%,68%)}
shell asset[tp="傀儡"]{color:hsl(290,60%,70%)}
shell asset[tp="附庸"]{color:hsl(330,60%,68%)}
shell asset badge{color:currentColor;border-color:currentColor;background:hsla(240,12%,10%,.7);margin-left:6px}
shell aname{display:block;font-size:14px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.5);margin-bottom:5px;word-break:break-word}
shell ameta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
shell ameta mt{display:inline-flex;align-items:center;padding:2px 8px;font-size:11.5px;letter-spacing:.5px;color:hsla(40,8%,72%,.9);background:hsla(240,12%,10%,.7);border:1px solid hsla(46,25%,50%,.28);border-radius:3px}
shell ameta mt::before{content:"";width:4px;height:4px;margin-right:5px;border-radius:50%;background:hsl(46,25%,60%);box-shadow:0 0 4px hsl(46,25%,60%)}
shell ameta .aval{color:currentColor;border-color:hsla(46,25%,55%,.4)}
shell ameta .aval::before{background:currentColor;box-shadow:0 0 4px currentColor}
shell adesc{display:block;padding:6px 8px;font-size:12.5px;line-height:1.65;color:hsla(40,8%,82%,.92);background:hsla(240,12%,4%,.55);border-left:2px solid currentColor;border-radius:0 4px 4px 0;word-break:break-word}

/* ─── 背包库存模块（P1装备组·物品胶囊+tooltip） ─── */
shell inv{position:relative;display:block;padding:10px 12px;margin-top:6px;background:linear-gradient(155deg,hsla(240,12%,11%,.85),hsla(240,12%,5%,.88));border:1px solid hsla(46,25%,55%,.32);border-radius:9px;overflow:visible;box-shadow:0 0 0 1px hsla(46,25%,60%,.08) inset,0 4px 14px -8px hsla(240,12%,1%,.75)}
shell inv::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,hsl(46,25%,60%),hsl(265,70%,55%));box-shadow:0 0 10px hsla(46,25%,58%,.6)}
shell inv::after{content:"";position:absolute;right:8px;top:8px;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsla(46,25%,65%,.55)' stroke-width='1.7'%3E%3Cpath d='M6 7h12l-1 13H7z'/%3E%3Cpath d='M9 7V5a3 3 0 0 1 6 0v2M9 12h6M9 16h4'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.7}
shell ic{position:relative;display:block;padding:8px 10px;margin-top:8px;background:hsla(240,12%,4%,.45);border:1px solid hsla(46,25%,45%,.22);border-radius:7px;overflow:visible;transition:transform .3s,box-shadow .3s,border-color .3s}
shell ic:first-of-type{margin-top:4px}
shell ic::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2.5px;border-radius:0 2px 2px 0;background:currentColor;box-shadow:0 0 6px currentColor}
shell ic:hover{transform:translateX(2px);box-shadow:0 0 12px -4px currentColor;z-index:10}
shell ic[tp="消耗品"]{color:hsl(35,85%,65%)}
shell ic[tp="消耗品"]::before{background:linear-gradient(180deg,hsl(35,85%,60%),hsl(15,80%,55%))}
shell ic[tp="物品"]{color:hsl(265,75%,72%)}
shell ic[tp="物品"]::before{background:linear-gradient(180deg,hsl(265,75%,62%),hsl(295,70%,60%))}
shell ic[tp="材料"]{color:hsl(150,70%,65%)}
shell ic[tp="材料"]::before{background:linear-gradient(180deg,hsl(150,70%,55%),hsl(180,75%,55%))}
shell ih{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding-left:8px}
shell iv{flex:1 1 auto;font-size:12.5px;font-weight:700;letter-spacing:1.5px;color:currentColor;text-shadow:0 0 6px currentColor}
shell iv::before{content:"◈ "}
shell iq{flex:0 0 auto;font-size:10.5px;font-weight:600;letter-spacing:.5px;color:hsla(40,8%,68%,.9);font-variant-numeric:tabular-nums;background:hsla(240,12%,10%,.7);border:1px solid hsla(46,25%,50%,.3);border-radius:3px;padding:2px 7px}
shell iq em{font-style:normal;color:hsl(45,80%,72%);text-shadow:0 0 4px hsla(45,90%,55%,.5)}
shell inv tag[d1]{position:relative;display:inline-flex;align-items:center;padding:4px 11px;font-size:12px;letter-spacing:.5px;border-radius:4px;background:hsla(240,12%,14%,.7);border:1px solid hsla(46,25%,55%,.38);color:hsl(40,8%,82%);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;transition:transform .25s,box-shadow .3s,background .3s,border-color .3s}
shell inv tag[d1]::before{content:"";width:5px;height:5px;margin-right:6px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor}
shell inv tag[d1]:hover{transform:translateY(-1px);box-shadow:0 0 12px -2px currentColor;background:hsla(240,12%,18%,.9);border-color:currentColor;z-index:31}
shell inv tag[g="仙品"]{color:hsl(285,75%,76%);border-color:hsla(285,75%,60%,.65);background:hsla(285,45%,14%,.6);box-shadow:0 0 10px -2px hsla(285,80%,55%,.5)}
shell inv tag[g="灵品"]{color:hsl(40,8%,76%);border-color:hsla(40,8%,60%,.6);background:hsla(40,8%,14%,.6)}
shell inv tag[g="极品"]{color:hsl(0,100%,72%);border-color:hsla(0,100%,58%,.65);background:hsla(0,100%,14%,.6)}
shell inv tag[g="上品"]{color:hsl(35,85%,68%);border-color:hsla(35,80%,55%,.6);background:hsla(35,45%,14%,.6)}
shell inv tag[g="良品"]{color:hsl(150,60%,70%);border-color:hsla(150,60%,55%,.55);background:hsla(150,40%,14%,.6)}
shell inv tag[g="凡品"]{color:hsl(40,8%,65%);border-color:hsla(40,8%,50%,.4);background:hsla(40,8%,14%,.6)}
shell ix{display:inline-block;margin-left:5px;padding:1px 6px;font-size:10.5px;font-weight:700;color:hsl(45,85%,72%);background:hsla(40,50%,12%,.9);border:1px solid hsla(45,70%,55%,.45);border-radius:3px;text-shadow:0 0 4px hsla(45,90%,55%,.5);font-variant-numeric:tabular-nums}
shell ix::before{content:"×"}

/* ─── 商城商品标签（cr内复用inv标签样式 + 价格符号） ─── */
shell cr tag[d1]{position:relative;display:inline-flex;align-items:center;padding:4px 11px;font-size:12px;letter-spacing:.5px;border-radius:4px;background:hsla(240,12%,14%,.7);border:1px solid hsla(46,25%,55%,.38);color:hsl(40,8%,82%);cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Crect x='6' y='6' width='16' height='16' fill='none' stroke='%23ff2d2d' stroke-width='1.2'/%3E%3Crect x='11' y='11' width='6' height='6' fill='%23ff2d2d' fill-opacity='0.4' stroke='%23ff2d2d' stroke-width='0.8'/%3E%3Cline x1='14' y1='0' x2='14' y2='5' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='14' y1='23' x2='14' y2='28' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='0' y1='14' x2='5' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3Cline x1='23' y1='14' x2='28' y2='14' stroke='%23ff2d2d' stroke-width='1'/%3E%3C/svg%3E") 14 14,pointer;transition:transform .25s,box-shadow .3s,background .3s,border-color .3s}
shell cr tag[d1]::before{content:"";width:5px;height:5px;margin-right:6px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor}
shell cr tag[d1]:hover{transform:translateY(-1px);box-shadow:0 0 12px -2px currentColor;background:hsla(240,12%,18%,.9);border-color:currentColor;z-index:31}
shell cr tag[g="仙品"]{color:hsl(285,75%,76%);border-color:hsla(285,75%,60%,.65);background:hsla(285,45%,14%,.6);box-shadow:0 0 10px -2px hsla(285,80%,55%,.5)}
shell cr tag[g="灵品"]{color:hsl(40,8%,76%);border-color:hsla(40,8%,60%,.6);background:hsla(40,8%,14%,.6)}
shell cr tag[g="极品"]{color:hsl(0,100%,72%);border-color:hsla(0,100%,58%,.65);background:hsla(0,100%,14%,.6)}
shell cr tag[g="上品"]{color:hsl(35,85%,68%);border-color:hsla(35,80%,55%,.6);background:hsla(35,45%,14%,.6)}
shell cr tag[g="良品"]{color:hsl(150,60%,70%);border-color:hsla(150,60%,55%,.55);background:hsla(150,40%,14%,.6)}
shell cr tag[g="凡品"]{color:hsl(40,8%,65%);border-color:hsla(40,8%,50%,.4);background:hsla(40,8%,14%,.6)}
shell cr[tp="系统商城"] ix::before{content:"§"}
shell cr[tp="召唤系统"] ix::before{content:"Lv"}

/* ─── 特殊载体模块（P1装备组·进化树/罗盘/培育舱/系统商城/召唤系统） ─── */
shell cr{position:relative;display:block;padding:10px 12px 10px 16px;margin-top:8px;background:linear-gradient(155deg,hsla(46,25%,13%,.75),hsla(240,12%,6%,.78));border:1px solid hsla(46,25%,55%,.42);border-radius:9px;overflow:visible;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s}
shell cr + cr{margin-top:8px}
shell cr::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:linear-gradient(180deg,currentColor,transparent);box-shadow:0 0 10px currentColor;color:hsl(46,25%,60%)}
shell cr::after{content:"";position:absolute;right:8px;top:8px;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsla(46,25%,65%,.6)' stroke-width='1.8'%3E%3Cpath d='M12 2v6M12 16v6M6 6l3 3M15 15l3 3M18 6l-3 3M9 15l-3 3'/%3E%3Ccircle cx='12' cy='12' r='2' fill='hsla(46,25%,55%,.3)'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.7;animation:ecoSpin 8s linear infinite}
shell cr:hover{transform:translateX(2px);border-color:hsla(46,25%,62%,.7);box-shadow:0 0 22px -6px hsla(46,25%,55%,.65);z-index:20}
shell cr:hover::before{box-shadow:0 0 16px currentColor}
shell cr[tp="进化树"]{color:hsl(150,80%,68%)}
shell cr[tp="进化树"]::before{background:linear-gradient(180deg,hsl(150,80%,60%),hsl(46,25%,60%));box-shadow:0 0 12px hsla(150,85%,55%,.7)}
shell cr[tp="进化树"]::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(150,80%,65%)' stroke-width='1.7'%3E%3Cpath d='M12 3v4M12 17v4M8 7l4-4 4 4M8 17l4 4 4-4M5 12h4M15 12h4'/%3E%3Ccircle cx='12' cy='12' r='3' fill='hsla(150,80%,55%,.35)'/%3E%3C/svg%3E");animation:none;filter:drop-shadow(0 0 4px hsla(150,85%,55%,.7))}
shell cr[tp="罗盘"]{color:hsl(45,85%,70%)}
shell cr[tp="罗盘"]::before{background:linear-gradient(180deg,hsl(45,85%,60%),hsl(30,80%,50%));box-shadow:0 0 12px hsla(45,90%,55%,.7)}
shell cr[tp="罗盘"]::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,85%,70%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3l3 9-3 9-3-9z' fill='hsla(0,100%,55%,.35)'/%3E%3Cpath d='M3 12l9 3 9-3-9-3z' opacity='.6'/%3E%3C/svg%3E");animation:ecoSpin 12s linear infinite;filter:drop-shadow(0 0 4px hsla(45,90%,55%,.7))}
shell cr[tp="培育舱"]{color:hsl(280,75%,72%)}
shell cr[tp="培育舱"]::before{background:linear-gradient(180deg,hsl(280,75%,62%),hsl(310,70%,55%));box-shadow:0 0 12px hsla(280,85%,55%,.7)}
shell cr[tp="培育舱"]::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(280,75%,72%)' stroke-width='1.7'%3E%3Crect x='5' y='8' width='14' height='12' rx='2' fill='hsla(280,60%,40%,.25)'/%3E%3Cpath d='M8 8V6a4 4 0 0 1 8 0v2M9 14h6M9 17h4'/%3E%3Ccircle cx='12' cy='11' r='1.4' fill='hsl(310,80%,72%)' stroke='none'/%3E%3C/svg%3E");animation:none;filter:drop-shadow(0 0 4px hsla(280,85%,55%,.7))}
shell cr[tp="系统商城"]{color:hsl(45,85%,70%)}
shell cr[tp="系统商城"]::before{background:linear-gradient(180deg,hsl(45,85%,60%),hsl(280,75%,55%));box-shadow:0 0 12px hsla(45,90%,55%,.7)}
shell cr[tp="系统商城"]::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,85%,70%)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M6 8h12l-1 12H7z' fill='hsla(45,80%,55%,.25)'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3Cpath d='M9 12h6'/%3E%3C/svg%3E");animation:none;filter:drop-shadow(0 0 4px hsla(45,90%,55%,.7))}
shell cr[tp="召唤系统"]{color:hsl(180,80%,68%)}
shell cr[tp="召唤系统"]::before{background:linear-gradient(180deg,hsl(180,80%,60%),hsl(260,75%,60%));box-shadow:0 0 12px hsla(180,85%,55%,.7)}
shell cr[tp="召唤系统"]::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(180,80%,68%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9' fill='hsla(180,80%,50%,.2)'/%3E%3Ccircle cx='12' cy='12' r='5' opacity='.55'/%3E%3Cpath d='M12 3v18M3 12h18' opacity='.35'/%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11' opacity='.25'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='hsl(260,80%,72%)' stroke='none'/%3E%3C/svg%3E");animation:ecoSpin 18s linear infinite;filter:drop-shadow(0 0 4px hsla(180,85%,55%,.7))}
shell chead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;padding-right:22px}
shell cname{flex:1 1 auto;font-size:14px;font-weight:700;letter-spacing:1px;color:currentColor;text-shadow:0 0 8px currentColor;word-break:break-word}
shell cname::before{content:"◈ ";color:hsl(35,85%,62%)}
shell cgrade{flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 9px;font-size:11px;font-weight:700;letter-spacing:1.5px;border-radius:3px;background:hsla(240,12%,14%,.8);border:1px solid currentColor;color:currentColor}
shell cgrade::before{content:"";width:4px;height:4px;margin-right:5px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor;animation:ecoPulse 2s ease-in-out infinite}
shell cstat{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
shell cstat mt{display:inline-flex;align-items:center;padding:2px 8px;font-size:11.5px;letter-spacing:.5px;color:hsla(40,8%,72%,.9);background:hsla(240,12%,10%,.7);border:1px solid hsla(46,25%,50%,.28);border-radius:3px}
shell cstat mt::before{content:"";width:4px;height:4px;margin-right:5px;border-radius:50%;background:currentColor;box-shadow:0 0 4px currentColor}
shell cstat .cval{color:hsl(45,80%,72%);border-color:hsla(45,70%,55%,.4)}
shell cstat .cval::before{background:hsl(45,90%,60%);box-shadow:0 0 4px hsl(45,95%,60%)}
shell cb{position:relative;display:block;width:100%;height:11px;margin:6px 0 4px;background:linear-gradient(180deg,hsla(240,12%,4%,.85),hsla(240,12%,10%,.75));border:1px solid hsla(46,25%,50%,.32);border-radius:6px;overflow:hidden;box-shadow:0 2px 6px hsla(240,12%,1%,.6) inset}
shell cb i{display:block;height:100%;border-radius:6px 2px 2px 6px;background:linear-gradient(90deg,currentColor,transparent);box-shadow:0 0 8px -2px currentColor;position:relative;transition:width .6s cubic-bezier(.22,1,.36,1)}
shell cb i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,hsla(0,0%,100%,.35) 50%,transparent 100%);animation:ecoStream 2.4s linear infinite;border-radius:inherit}
shell cb t{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 8px;font-size:10.5px;font-weight:600;letter-spacing:.5px;color:hsl(40,8%,94%);text-shadow:0 1px 2px hsla(240,12%,2%,.95);font-variant-numeric:tabular-nums;pointer-events:none;z-index:2}
shell cd{display:block;margin-top:6px;padding:6px 8px;font-size:12px;line-height:1.6;color:hsla(40,8%,82%,.92);background:hsla(240,12%,4%,.55);border-left:2px solid currentColor;border-radius:0 4px 4px 0;word-break:break-word}
@keyframes ecoSpin{to{transform:rotate(360deg)}}

/* ─── 家园建造模块（P1势力组·据点/材料/建筑/招募四子模块） ─── */
shell hl{position:relative;display:block;padding:12px 14px;margin-bottom:10px;background:radial-gradient(120% 100% at 0 0,hsla(45,40%,14%,.7),hsla(30,45%,6%,.7));border:1px solid hsla(45,65%,55%,.4);border-radius:9px;overflow:hidden}
shell hl::before{content:"";position:absolute;left:-40%;top:0;width:45%;height:100%;background:linear-gradient(90deg,transparent,hsla(45,80%,55%,.15),transparent);animation:ecoScan 5s linear infinite;pointer-events:none}
shell hl::after{content:"";position:absolute;right:10px;top:10px;width:18px;height:18px;border-top:1.5px solid hsla(45,85%,60%,.7);border-right:1.5px solid hsla(45,85%,60%,.7)}
shell hh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
shell hn{flex:1 1 auto;font-size:15px;font-weight:700;letter-spacing:1.5px;color:hsl(45,75%,78%);text-shadow:0 0 10px hsla(45,85%,55%,.55);word-break:break-word}
shell hn::before{content:"◈ ";color:hsl(35,85%,60%)}
shell ht{flex:0 0 auto;padding:3px 10px;font-size:11.5px;font-weight:800;letter-spacing:1.5px;color:hsl(48,90%,72%);background:hsla(40,50%,12%,.9);border:1px solid hsla(45,80%,55%,.55);border-radius:4px;text-shadow:0 0 6px hsla(45,95%,55%,.6)}
shell ht::before{content:"LV "}
shell hb{position:relative;display:block;width:100%;height:12px;background:linear-gradient(180deg,hsla(240,12%,4%,.85),hsla(240,12%,10%,.75));border:1px solid hsla(46,25%,50%,.32);border-radius:6px;overflow:hidden;box-shadow:0 2px 6px hsla(240,12%,1%,.6) inset}
shell hb i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,hsl(45,90%,55%),hsl(30,85%,55%),hsl(15,80%,55%));box-shadow:0 0 10px -1px hsl(35,90%,58%);position:relative;transition:width .6s cubic-bezier(.22,1,.36,1)}
shell hb i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,hsla(0,0%,100%,.35) 50%,transparent 100%);animation:ecoStream 2.4s linear infinite;border-radius:inherit}
shell hb t{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600;letter-spacing:.5px;color:hsl(40,8%,94%);text-shadow:0 1px 2px hsla(240,12%,2%,.95);font-variant-numeric:tabular-nums;pointer-events:none;z-index:2}
shell hm{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
shell hm mt{display:inline-flex;align-items:center;padding:3px 9px;font-size:11.5px;letter-spacing:.5px;color:hsla(40,8%,72%,.9);background:hsla(240,12%,10%,.7);border:1px solid hsla(46,25%,50%,.28);border-radius:3px}
shell hm mt::before{content:"";width:4px;height:4px;margin-right:5px;border-radius:50%;background:hsl(46,25%,60%);box-shadow:0 0 4px hsl(46,25%,60%)}
shell hm .hval{color:hsl(45,80%,72%);border-color:hsla(45,70%,55%,.4)}
shell hm .hval::before{background:hsl(45,90%,60%);box-shadow:0 0 4px hsl(45,95%,60%)}
shell ml{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:6px}
shell mat{position:relative;padding:8px 10px;background:linear-gradient(155deg,hsla(240,12%,12%,.88),hsla(240,12%,6%,.9));border:1px solid hsla(46,25%,50%,.32);border-radius:7px;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s}
shell mat:hover{transform:translateY(-2px);border-color:hsla(46,25%,62%,.55);box-shadow:0 0 14px -3px hsla(46,25%,55%,.5)}
shell mat::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2.5px;border-radius:0 2px 2px 0;background:currentColor;box-shadow:0 0 6px currentColor}
shell mat[tp="晶核"]{color:hsl(305,80%,65%)}
shell mat[tp="合金"]{color:hsl(46,25%,60%)}
shell mat[tp="骨骼"]{color:hsl(45,80%,68%)}
shell mat[tp="本源"]{color:hsl(150,75%,65%)}
shell mh{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px;padding-left:6px}
shell mn{flex:1 1 auto;font-size:12px;font-weight:700;letter-spacing:.5px;color:currentColor;text-shadow:0 0 6px currentColor}
shell mn::before{content:"";display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor;vertical-align:1px}
shell mv{flex:0 0 auto;font-size:12px;font-weight:800;color:hsl(45,85%,75%);text-shadow:0 0 4px hsla(45,90%,55%,.5);font-variant-numeric:tabular-nums}
shell mv::before{content:"§ "}
shell mb{position:relative;display:block;width:calc(100% - 6px);height:8px;background:hsla(240,12%,4%,.7);border:1px solid hsla(46,25%,45%,.3);border-radius:4px;overflow:hidden;margin-left:6px}
shell mb i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,currentColor,transparent);box-shadow:0 0 6px -1px currentColor;transition:width .6s cubic-bezier(.22,1,.36,1)}
shell mb i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,hsla(0,0%,100%,.35) 50%,transparent 100%);animation:ecoStream 2.4s linear infinite;border-radius:inherit}
shell bl{display:flex;flex-direction:column;gap:8px;margin-top:6px}
shell bg{position:relative;padding:8px 10px 10px;background:linear-gradient(155deg,hsla(240,12%,12%,.7),hsla(240,12%,6%,.75));border:1px solid hsla(46,25%,50%,.25);border-radius:7px;overflow:hidden}
shell bg::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;border-radius:0 2px 2px 0;background:linear-gradient(180deg,hsl(46,25%,60%),hsla(40,8%,45%,.3));box-shadow:0 0 8px hsla(46,25%,55%,.6)}
shell bvh{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding-left:6px}
shell bvt{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:12px;background:radial-gradient(circle at 35% 30%,hsl(40,8%,32%),hsl(240,12%,10%) 75%);border:1.5px solid hsla(46,25%,55%,.65);font-size:11px;font-weight:800;color:hsl(46,25%,60%);text-shadow:0 0 4px hsla(46,25%,55%,.7);box-shadow:0 0 8px -2px hsla(46,25%,55%,.6);white-space:nowrap}
shell bvn{flex:1 1 auto;font-size:12px;font-weight:700;letter-spacing:1px;color:hsla(40,8%,72%,.9)}
shell bvc{flex:0 0 auto;font-size:11px;font-weight:700;color:hsla(150,70%,72%,.9);font-variant-numeric:tabular-nums}
shell bvc::before{content:""}
shell bvc em{font-style:normal;color:hsl(150,75%,72%)}
shell bvc em::before{content:"✓ "}
shell bvc .pending{color:hsl(45,80%,72%)}
shell bvc .pending::before{content:"⏳ "}
shell bvc .locked{color:hsla(40,8%,55%,.7)}
shell bvc .locked::before{content:"🔒 "}
shell bdg{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px;padding-left:6px}
shell bld{position:relative;padding:7px 9px 7px 22px;background:hsla(240,12%,4%,.55);border:1px solid hsla(46,25%,50%,.28);border-radius:5px;font-size:11.5px;line-height:1.5;transition:transform .3s,box-shadow .3s,border-color .3s}
shell bld::before{content:"";position:absolute;left:8px;top:9px;width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}
shell bld:hover{transform:translateX(2px);box-shadow:0 0 10px -2px currentColor}
shell bdn{display:block;font-weight:700;color:currentColor;text-shadow:0 0 4px currentColor;margin-bottom:2px}
shell bdm{display:block;font-size:10.5px;color:hsla(40,8%,72%,.9);letter-spacing:.3px}
shell bld[st="已建成"]{color:hsl(150,75%,68%);border-color:hsla(150,70%,55%,.45)}
shell bld[st="已建成"]:hover{border-color:hsla(150,80%,55%,.7)}
shell bld[st="建造中"]{color:hsl(45,85%,68%);border-color:hsla(45,80%,55%,.5);background:linear-gradient(155deg,hsla(45,40%,12%,.7),hsla(240,12%,6%,.7))}
shell bld[st="建造中"]::before{animation:ecoPulse 1.6s ease-in-out infinite}
shell bld[st="建造中"]:hover{border-color:hsla(45,90%,55%,.75)}
shell bld[st="未解锁"]{color:hsla(40,8%,55%,.7);border-color:hsla(40,8%,45%,.3);border-style:dashed;opacity:.65;filter:grayscale(.4)}
shell bld[st="未解锁"]::before{opacity:.4;box-shadow:none}
shell bld[st="未解锁"]:hover{opacity:.85;filter:grayscale(.2)}
shell rc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
shell rcell{position:relative;padding:36px 6px 8px;background:linear-gradient(155deg,hsla(240,12%,12%,.88),hsla(240,12%,6%,.9));border:1px solid hsla(46,25%,50%,.32);border-radius:7px;text-align:center;transition:transform .3s,box-shadow .3s,border-color .3s}
shell rcell:hover{transform:translateY(-2px);border-color:hsla(46,25%,60%,.6);box-shadow:0 0 14px -3px hsla(46,25%,55%,.55)}
shell rcell::before{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:24px;height:24px;background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.85}
shell rcell[tp="守卫"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(150,75%,68%)' stroke-width='1.7'%3E%3Cpath d='M12 2L4 5v7c0 5 3.5 8.5 8 10 4.5-1.5 8-5 8-10V5z' fill='hsla(150,70%,55%,.2)'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E")}
shell rcell[tp="异兽"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,85%,68%)' stroke-width='1.7'%3E%3Cpath d='M12 3c-3 4-4 7-4 10a4 4 0 0 0 8 0c0-3-1-6-4-10z' fill='hsla(45,80%,55%,.25)'/%3E%3Cpath d='M9 14l3 3 3-3'/%3E%3C/svg%3E")}
shell rcell[tp="农田"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(150,55%,68%)' stroke-width='1.7'%3E%3Cpath d='M3 14c3-3 6-3 9 0s6 3 9 0M3 10c3-3 6-3 9 0s6 3 9 0M3 18c3-3 6-3 9 0s6 3 9 0'/%3E%3C/svg%3E")}
shell rn{display:block;font-size:18px;font-weight:800;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.6);font-variant-numeric:tabular-nums;line-height:1}
shell rn em{font-style:normal;font-size:11px;font-weight:500;color:hsla(40,8%,60%,.9);text-shadow:none}
shell rl{display:block;margin-top:4px;font-size:10.5px;letter-spacing:1px;color:hsla(40,8%,68%,.9)}
shell rcell[tp="守卫"] shell rn{color:hsl(150,75%,75%);text-shadow:0 0 8px hsla(150,85%,55%,.6)}
shell rcell[tp="异兽"] shell rn{color:hsl(45,85%,72%);text-shadow:0 0 8px hsla(45,90%,55%,.6)}
shell rcell[tp="农田"] shell rn{color:hsl(150,65%,68%);text-shadow:0 0 8px hsla(150,75%,55%,.6)}

/* ─── HTML5自定义元素 display 修正 ─── */
shell cr,shell chead,shell cname,shell cgrade,shell cstat,shell cb,shell cd,shell hl,shell hh,shell hn,shell ht,shell hb,shell hm,shell ml,shell mat,shell mh,shell mn,shell mv,shell mb,shell bl,shell bg,shell bvh,shell bvt,shell bvn,shell bvc,shell bdg,shell bld,shell bdn,shell bdm,shell rc,shell rcell,shell rcell-icon,shell rn,shell rl{display:block}
shell hb i,shell mb i,shell bvt,shell cb i,shell cgrade,shell cstat mt,shell hm mt,shell mn,shell mv,shell bdn,shell rn,shell rl{display:block}
shell hb t,shell cb t{display:flex;align-items:center;justify-content:center}
shell bvt,shell cgrade,shell rn{display:inline-flex;align-items:center;justify-content:center}
shell cstat,shell hm,shell ml,shell bl,shell bdg,shell rc{display:grid}
shell ml{grid-template-columns:repeat(2,1fr)}
shell cstat,shell hm{display:flex;flex-wrap:wrap}
shell cstat mt,shell hm mt,shell mn,shell mv,shell ameta mt{display:inline-flex;align-items:center}

/* ─── 区域导航节点行 ─── */
shell mr{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px 8px 30px;margin-top:6px;background:hsla(240,12%,5%,.55);border:1px solid hsla(46,25%,50%,.28);border-radius:6px;font-size:12.5px;transition:transform .3s,border-color .3s,box-shadow .3s}
shell mr:hover{transform:translateX(2px);border-color:hsla(46,25%,60%,.55);box-shadow:0 0 12px -3px hsla(46,25%,55%,.5)}
shell mr::before{content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='hsla(46,25%,55%,.35)' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Cpath d='M12 21s-7-6.5-7-11a7 7 0 0 1 14 0c0 4.5-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.4' fill='hsl(46,25%,60%)' stroke='none'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat}
shell mname{flex:0 0 auto;font-weight:700;color:hsl(46,25%,60%);text-shadow:0 0 6px hsla(46,25%,55%,.4);letter-spacing:.5px}
shell mtag{flex:1 1 auto;font-size:11.5px;color:hsla(40,8%,66%,.9);letter-spacing:.5px}
shell ms{flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;letter-spacing:1px;border-radius:10px;background:hsla(240,12%,4%,.7);border:1px solid hsla(46,25%,55%,.4);color:hsl(40,8%,80%)}
shell ms::before{content:"";width:5px;height:5px;margin-right:5px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor}
shell mr[st="当前"]{border-color:hsla(150,80%,55%,.65);background:linear-gradient(90deg,hsla(150,45%,14%,.55),hsla(240,12%,5%,.55) 70%);box-shadow:0 0 14px -4px hsla(150,80%,50%,.55)}
shell mr[st="当前"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='hsla(150,80%,55%,.5)' stroke='hsl(150,85%,72%)' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='12' cy='12' r='9' opacity='.5'/%3E%3C/svg%3E");animation:ecoPulse 1.8s ease-in-out infinite}
shell mr[st="当前"] ms{color:hsl(150,75%,74%);border-color:hsla(150,80%,55%,.65)}
shell mr[st="已解锁"] ms{color:hsl(46,25%,60%);border-color:hsla(46,25%,58%,.55)}
shell mr[st="未探索"]{opacity:.62;filter:grayscale(.4)}
shell mr[st="未探索"]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsla(40,8%,55%,.7)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 .9-1 1.7v.5M12 17v.5' stroke-linecap='round'/%3E%3C/svg%3E")}
shell mr[st="未探索"] mname{color:hsla(40,8%,65%,.85)}
shell mr[st="未探索"] ms{color:hsla(40,8%,65%,.85);border-color:hsla(40,8%,45%,.4)}

/* ─── 动态事件·警报暖岛 ─── */
shell .evgrp{background:linear-gradient(158deg,hsla(15,45%,13%,.75),hsla(0,45%,7%,.8));border-color:hsla(15,75%,55%,.5)}
shell .evgrp::before{background:linear-gradient(180deg,hsl(15,90%,60%),hsla(0,100%,45%,.2));box-shadow:0 0 10px hsla(15,95%,58%,.75)}
shell .evgrp gh{color:hsl(15,75%,74%);text-shadow:0 0 10px hsla(15,90%,55%,.55);border-bottom-color:hsla(15,60%,55%,.3)}
shell .evgrp gh::after{background:linear-gradient(90deg,hsla(15,90%,58%,.5),transparent)}
shell event{position:relative;padding:11px 12px;margin-top:6px;background:radial-gradient(120% 100% at 0 0,hsla(15,50%,15%,.65),hsla(0,100%,7%,.6));border:1px solid hsla(15,70%,55%,.5);border-radius:8px;overflow:hidden;animation:ecoIntentGlow 3.4s ease-in-out infinite}
shell event + event{margin-top:8px}
shell ehead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
shell ename{flex:1 1 auto;font-size:14px;font-weight:700;letter-spacing:1px;color:hsl(30,80%,80%);text-shadow:0 0 10px hsla(15,90%,55%,.55);word-break:break-word}
shell ename::before{content:"◈ ";color:hsl(0,100%,62%)}
shell etime{flex:0 0 auto;padding:3px 9px;font-size:11.5px;font-weight:800;letter-spacing:1px;color:hsl(48,90%,72%);text-shadow:0 0 8px hsla(45,95%,55%,.7);background:hsla(0,50%,10%,.6);border:1px solid hsla(45,80%,55%,.5);border-radius:10px;font-variant-numeric:tabular-nums}
shell etime::before{content:"⏱ ";opacity:.85}
shell ed{display:block;margin-top:8px;padding:7px 9px;font-size:12.5px;line-height:1.65;color:hsla(30,30%,88%,.95);background:hsla(0,50%,4%,.5);border-left:2px solid hsla(15,80%,55%,.55);border-radius:0 4px 4px 0;word-break:break-word}
shell event[ev="兽潮"] ename::before{content:"⚠ ";color:hsl(0,100%,60%)}
shell event[ev="入侵"]{border-color:hsla(0,100%,55%,.65);animation:ecoEventAlarm 1.4s ease-in-out infinite}
shell event[ev="入侵"] ename{color:hsl(0,100%,78%)}
shell event[ev="入侵"] ename::before{content:"‼ ";color:hsl(0,100%,62%)}
shell event[ev="遗迹"]{border-color:hsla(48,85%,58%,.6)}
shell event[ev="遗迹"] ename{color:hsl(48,80%,80%);text-shadow:0 0 10px hsla(48,90%,55%,.6)}
shell event[ev="遗迹"] ename::before{content:"◊ ";color:hsl(48,90%,62%)}
@keyframes ecoEventAlarm{0%,100%{box-shadow:0 0 16px -4px hsla(0,100%,55%,.55),0 0 0 1px hsla(0,100%,58%,.2) inset}50%{box-shadow:0 0 28px -1px hsla(0,100%,58%,.95),0 0 0 1px hsla(15,90%,60%,.5) inset}}

/* ─── 任务卡 ─── */
shell quest{position:relative;padding:11px 12px 11px 14px;margin-top:6px;background:linear-gradient(155deg,hsla(240,12%,13%,.9),hsla(240,12%,6%,.92));border:1px solid hsla(46,25%,55%,.35);border-radius:9px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s;overflow:hidden}
shell quest + quest{margin-top:8px}
shell quest::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 2px 2px 0;background:linear-gradient(180deg,currentColor,transparent);box-shadow:0 0 8px currentColor;color:hsl(46,25%,60%)}
shell quest:hover{transform:translateY(-1px);border-color:hsla(46,25%,62%,.65);box-shadow:0 0 20px -6px hsla(46,25%,55%,.65)}
shell qname{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px;font-size:14px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.5);word-break:break-word}
shell qb{flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 9px;font-size:11px;font-weight:700;letter-spacing:1.5px;border-radius:3px;background:hsla(240,12%,14%,.8);border:1px solid currentColor;color:currentColor}
shell qb::before{content:"";width:4px;height:4px;margin-right:5px;background:currentColor;border-radius:50%;box-shadow:0 0 4px currentColor}
shell qobj{display:block;padding:5px 8px;margin-bottom:6px;font-size:12.5px;line-height:1.6;color:hsla(40,8%,86%,.95);background:hsla(240,12%,4%,.5);border-left:2px solid currentColor;border-radius:0 4px 4px 0;word-break:break-word}
shell qr{display:block;margin-top:6px;padding:5px 8px 5px 26px;font-size:11.5px;letter-spacing:.5px;color:hsl(48,70%,78%);background:hsla(48,35%,10%,.55);border:1px dashed hsla(48,65%,55%,.4);border-radius:5px;position:relative}
shell qr::before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='hsla(48,80%,55%,.4)' stroke='hsl(48,90%,68%)' stroke-width='1.7'%3E%3Crect x='3' y='8' width='18' height='13' rx='1'/%3E%3Cpath d='M3 12h18M12 8v13M8 8V6a4 4 0 0 1 8 0v2'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 0 4px hsla(48,90%,58%,.6))}
shell quest[q="主线"]{color:hsl(48,85%,68%);border-color:hsla(48,85%,55%,.55);background:linear-gradient(155deg,hsla(48,35%,12%,.75),hsla(240,12%,6%,.9))}
shell quest[q="主线"] qb{background:linear-gradient(120deg,hsla(48,55%,14%,.9),hsla(30,55%,16%,.9));box-shadow:0 0 10px -2px hsla(48,90%,55%,.55);animation:ecoTagFlow 3.5s linear infinite}
shell quest[q="支线"]{color:hsl(46,25%,60%);border-color:hsla(46,25%,58%,.55)}
shell quest[q="紧急"]{color:hsl(0,100%,70%);border-color:hsla(0,100%,58%,.65)}
shell quest[q="紧急"] qb{background:hsla(0,100%,15%,.85);animation:ecoTagPulse 1.4s ease-in-out infinite}
shell quest[q="紧急"]::before{animation:ecoQuestUrgent 1.2s ease-in-out infinite}
@keyframes ecoQuestUrgent{0%,100%{filter:brightness(1)}50%{filter:brightness(1.7) drop-shadow(0 0 8px hsl(0,100%,58%))}}
shell quest[q="日常"]{color:hsl(40,8%,72%);border-color:hsla(40,8%,55%,.45)}
shell quest[q="日常"] qname{color:hsl(40,8%,80%)}
shell quest[st="已完成"]{opacity:.55;filter:saturate(.6)}
shell quest[st="已完成"]::after{content:"✓ COMPLETE";position:absolute;right:12px;bottom:10px;font-size:24px;font-weight:900;letter-spacing:3px;color:hsla(150,80%,55%,.15);pointer-events:none;transform:rotate(-6deg)}
shell quest[st="可提交"]{border-color:hsla(150,80%,55%,.7);box-shadow:0 0 16px -4px hsla(150,80%,50%,.6)}
shell quest[st="可提交"] qb{color:hsl(150,80%,72%);border-color:hsla(150,80%,55%,.65)}
shell quest[st="可提交"]::after{content:"⬤ READY";position:absolute;right:12px;top:8px;font-size:10px;font-weight:800;letter-spacing:2px;color:hsl(150,80%,72%);text-shadow:0 0 8px hsl(150,90%,55%);pointer-events:none;animation:ecoPulse 1.6s ease-in-out infinite}
shell quest[st="失败"]{filter:grayscale(.75) brightness(.6)}
shell quest[st="失败"]::after{content:"✗ FAILED";position:absolute;right:12px;bottom:10px;font-size:26px;font-weight:900;letter-spacing:3px;color:hsla(0,100%,55%,.18);pointer-events:none;transform:rotate(-8deg)}
shell quest[st="未接取"]{opacity:.75;border-style:dashed}


/* ══════════════ 过往记忆面板 · 星空蓝科技风 ══════════════ */

/* ─── 新增分组图标 ─── */
shell gh[i="st"]::before{content:"短期记忆";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(46,25%,60%)' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9' fill='hsla(46,25%,50%,.15)'/%3E%3Cpath d='M12 7v5l3.5 2' stroke-linecap='round'/%3E%3C/svg%3E")}
shell gh[i="lt"]::before{content:"长期记忆";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(45,80%,72%)' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M6 4h11a2 2 0 0 1 2 2v14H8a2 2 0 0 1-2-2z' fill='hsla(45,70%,55%,.2)'/%3E%3Cpath d='M6 4a2 2 0 0 0-2 2v0a2 2 0 0 0 2 2M9 9h7M9 13h7M9 17h4' stroke-linecap='round'/%3E%3C/svg%3E")}
shell gh[i="wd"]::before{content:"世界大事记";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(265,72%,76%)' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='9' fill='hsla(265,55%,50%,.18)'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.6 2.5 15.4 0 18M12 3c-2.5 2.6-2.5 15.4 0 18' opacity='.8'/%3E%3C/svg%3E")}
shell gh[i="bd"]::before{content:"羁绊转折";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(315,78%,78%)' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M8 10a3.5 3.5 0 0 0 0 7h1M16 14a3.5 3.5 0 0 0 0-7h-1M9 13.5h6'/%3E%3C/svg%3E")}
shell gh[i="dc"]::before{content:"重大决定";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='hsl(48,85%,72%)' stroke-width='1.6'%3E%3Ccircle cx='12' cy='9' r='6' fill='hsla(0,100%,55%,.25)'/%3E%3Cpath d='M12 6v3l2 1.5' stroke-linecap='round'/%3E%3Cpath d='M8 15l-1 6 5-2 5 2-1-6'/%3E%3C/svg%3E")}

/* ─── 短期记忆 · 时间轴 ─── */
shell tl{position:relative;padding-left:8px;margin-top:4px}
shell tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,hsl(46,25%,60%),hsla(40,8%,40%,.5),hsla(240,12%,20%,.2));border-radius:2px;box-shadow:0 0 8px hsla(46,25%,58%,.5)}
shell mem{position:relative;display:block;margin-left:14px;margin-bottom:10px;padding:9px 11px;background:linear-gradient(155deg,hsla(240,12%,13%,.88),hsla(240,12%,6%,.9));border:1px solid hsla(46,25%,55%,.3);border-radius:8px;transition:transform .3s,border-color .3s,box-shadow .3s}
shell mem:last-child{margin-bottom:2px}
shell mem::before{content:"";position:absolute;left:-17px;top:14px;width:9px;height:9px;border-radius:50%;background:hsl(40,8%,30%);border:2px solid hsl(46,25%,60%);box-shadow:0 0 6px hsla(46,25%,55%,.6);z-index:1}
shell mem:hover{transform:translateX(2px);border-color:hsla(46,25%,62%,.6);box-shadow:0 0 14px -4px hsla(46,25%,55%,.55)}
shell mhead{display:flex;align-items:center;gap:8px;margin-bottom:5px}
shell mturn{flex:0 0 auto;padding:1px 7px;font-size:11px;font-weight:800;letter-spacing:1px;color:hsl(46,25%,60%);background:hsla(40,8%,16%,.9);border:1px solid hsla(46,25%,55%,.45);border-radius:4px;font-variant-numeric:tabular-nums}
shell mtime{flex:1 1 auto;font-size:11.5px;letter-spacing:.5px;color:hsla(40,8%,66%,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
shell mtext{display:block;font-size:13px;line-height:1.6;color:hsl(40,8%,86%);word-break:break-word}
shell mtags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
shell mtags tag{font-size:11px;padding:2px 8px}
shell mem[mt="关键"]{border-color:hsla(46,25%,60%,.55)}
shell mem[mt="关键"]::before{background:hsl(46,25%,60%);border-color:hsl(46,25%,60%);box-shadow:0 0 10px hsla(46,25%,58%,.85);animation:ecoPulse 2s ease-in-out infinite}
shell mem[mt="转折"]{border-color:hsla(45,85%,58%,.65);box-shadow:0 0 14px -4px hsla(45,85%,55%,.5)}
shell mem[mt="转折"]::before{background:hsl(45,85%,50%);border-color:hsl(48,95%,68%);box-shadow:0 0 12px hsla(45,95%,58%,1);animation:ecoPulse 1.5s ease-in-out infinite}
shell mem[mt="转折"] mturn{color:hsl(48,90%,74%);border-color:hsla(48,85%,55%,.6);background:hsla(45,45%,14%,.9)}

/* ─── 长期记忆 · 归纳卷宗 ─── */
shell .ltgrp{background:linear-gradient(158deg,hsla(40,42%,13%,.72),hsla(30,45%,7%,.76));border-color:hsla(45,65%,55%,.42)}
shell .ltgrp::before{background:linear-gradient(180deg,hsl(45,90%,62%),hsla(35,60%,45%,.2));box-shadow:0 0 10px hsla(45,95%,58%,.7)}
shell .ltgrp gh{color:hsl(45,72%,76%);text-shadow:0 0 10px hsla(45,90%,55%,.5);border-bottom-color:hsla(45,55%,55%,.3)}
shell .ltgrp gh::after{background:linear-gradient(90deg,hsla(45,90%,58%,.5),transparent)}
shell chunk{position:relative;padding:10px 12px;margin-top:6px;background:linear-gradient(155deg,hsla(40,45%,11%,.7),hsla(240,12%,6%,.72));border:1px solid hsla(45,60%,55%,.4);border-radius:8px;overflow:hidden;transition:transform .3s,box-shadow .3s}
shell chunk + chunk{margin-top:8px}
shell chunk:hover{transform:translateX(2px);box-shadow:0 0 16px -5px hsla(45,85%,55%,.5)}
shell chead{display:flex;align-items:center;gap:8px;margin-bottom:7px;padding-bottom:6px;border-bottom:1px dashed hsla(45,55%,55%,.28)}
shell crange{flex:0 0 auto;padding:2px 8px;font-size:10.5px;font-weight:800;letter-spacing:1px;color:hsl(48,80%,74%);background:hsla(40,50%,12%,.9);border:1px solid hsla(45,70%,55%,.5);border-radius:4px;font-variant-numeric:tabular-nums}
shell ctheme{flex:1 1 auto;font-size:13.5px;font-weight:700;letter-spacing:1px;color:hsl(45,72%,80%);text-shadow:0 0 8px hsla(45,90%,55%,.45)}
shell ctheme::before{content:"◈ ";color:hsl(35,85%,62%)}
shell ctext{display:block;font-size:12.5px;line-height:1.7;color:hsla(40,28%,88%,.95);word-break:break-word;margin-bottom:6px}

/* ─── 世界大事记 · 星图 ─── */
shell .wdgrp{background:linear-gradient(158deg,hsla(265,42%,13%,.72),hsla(250,45%,7%,.78));border-color:hsla(265,60%,58%,.42)}
shell .wdgrp::before{background:linear-gradient(180deg,hsl(265,80%,66%),hsla(280,55%,45%,.2));box-shadow:0 0 10px hsla(265,90%,62%,.7)}
shell .wdgrp gh{color:hsl(265,68%,80%);text-shadow:0 0 10px hsla(265,85%,58%,.5);border-bottom-color:hsla(265,55%,58%,.3)}
shell .wdgrp gh::after{background:linear-gradient(90deg,hsla(265,85%,60%,.5),transparent)}
shell wevent{position:relative;padding:10px 12px 10px 16px;margin-top:6px;background:linear-gradient(155deg,hsla(258,45%,11%,.72),hsla(240,12%,6%,.75));border:1px solid hsla(265,55%,58%,.4);border-radius:8px;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s}
shell wevent + wevent{margin-top:8px}
shell wevent::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;background:linear-gradient(180deg,currentColor,transparent);box-shadow:0 0 8px currentColor;color:hsl(265,80%,66%)}
shell wevent:hover{transform:translateX(2px);border-color:hsla(265,80%,66%,.65);box-shadow:0 0 16px -4px hsla(265,85%,58%,.55)}
shell whead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
shell wname{flex:1 1 auto;font-size:13.5px;font-weight:700;letter-spacing:.5px;color:currentColor;word-break:break-word}
shell wturn{flex:0 0 auto;padding:1px 7px;font-size:10.5px;font-weight:800;color:hsla(265,50%,82%,.9);background:hsla(258,45%,12%,.9);border:1px solid hsla(265,60%,58%,.45);border-radius:4px;font-variant-numeric:tabular-nums}
shell wtext{display:block;font-size:12.5px;line-height:1.65;color:hsla(260,25%,86%,.95);word-break:break-word;margin-bottom:5px}
shell wi{display:block;padding:4px 8px;font-size:11.5px;letter-spacing:.5px;color:hsla(265,40%,80%,.9);background:hsla(258,50%,6%,.5);border-left:2px solid currentColor;border-radius:0 4px 4px 0}
shell wevent[we="势力"]{color:hsl(265,75%,76%)}
shell wevent[we="强者"]{color:hsl(45,85%,70%)}
shell wevent[we="灾变"]{color:hsl(0,100%,72%);border-color:hsla(0,100%,58%,.5)}
shell wevent[we="灾变"] wname::before{content:"⚠ ";color:hsl(0,100%,60%)}
shell wevent[we="遗迹"]{color:hsl(46,25%,60%)}

/* ─── 羁绊转折 · 关系流 ─── */
shell .bdgrp{background:linear-gradient(158deg,hsla(315,40%,13%,.72),hsla(300,42%,7%,.76));border-color:hsla(315,58%,58%,.42)}
shell .bdgrp::before{background:linear-gradient(180deg,hsl(315,80%,66%),hsla(300,55%,45%,.2));box-shadow:0 0 10px hsla(315,90%,62%,.7)}
shell .bdgrp gh{color:hsl(315,66%,82%);text-shadow:0 0 10px hsla(315,85%,58%,.5);border-bottom-color:hsla(315,55%,58%,.3)}
shell .bdgrp gh::after{background:linear-gradient(90deg,hsla(315,85%,60%,.5),transparent)}
shell bond{position:relative;padding:10px 12px;margin-top:6px;background:linear-gradient(155deg,hsla(308,42%,11%,.72),hsla(240,12%,6%,.74));border:1px solid hsla(315,55%,58%,.4);border-radius:8px;overflow:hidden;transition:transform .3s,box-shadow .3s}
shell bond + bond{margin-top:8px}
shell bond:hover{transform:translateX(2px);box-shadow:0 0 16px -5px hsla(315,85%,58%,.55)}
shell .bhead2{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
shell bname{flex:0 0 auto;font-size:14px;font-weight:700;letter-spacing:1px;color:hsl(315,68%,82%);text-shadow:0 0 8px hsla(315,85%,58%,.45)}
shell bturn{flex:0 0 auto;padding:1px 7px;font-size:10.5px;font-weight:800;color:hsla(315,50%,82%,.9);background:hsla(308,42%,12%,.9);border:1px solid hsla(315,58%,58%,.45);border-radius:4px;font-variant-numeric:tabular-nums}
shell brel{display:flex;align-items:center;gap:10px;margin-bottom:7px;padding:6px 8px;background:hsla(300,45%,5%,.5);border-radius:6px}
shell brfrom,shell brto{flex:0 0 auto;padding:3px 12px;font-size:12px;font-weight:600;letter-spacing:.5px;border-radius:5px;background:hsla(240,12%,14%,.8);border:1px solid hsla(46,25%,55%,.4);color:hsl(40,8%,80%)}
shell brto{color:hsl(315,72%,82%);border-color:hsla(315,70%,60%,.6);background:hsla(315,45%,14%,.8);box-shadow:0 0 10px -2px hsla(315,85%,58%,.5)}
shell brarrow{flex:0 0 auto;font-size:16px;font-weight:800;color:hsl(315,85%,70%);text-shadow:0 0 8px hsla(315,90%,58%,.8);animation:ecoArrow 1.8s ease-in-out infinite}
@keyframes ecoArrow{0%,100%{transform:translateX(0);opacity:.7}50%{transform:translateX(3px);opacity:1}}
shell btext{display:block;font-size:12px;line-height:1.6;color:hsla(315,25%,86%,.92);word-break:break-word}
shell bond[bt="升温"] brarrow{color:hsl(330,85%,72%)}
shell bond[bt="破裂"]{border-color:hsla(20,75%,55%,.5)}
shell bond[bt="破裂"] brarrow{color:hsl(20,85%,65%)}
shell bond[bt="破裂"] brto{color:hsl(20,85%,72%);border-color:hsla(20,80%,55%,.6);background:hsla(20,45%,14%,.8)}
shell bond[bt="逆转"] brarrow{color:hsl(265,80%,72%)}
shell bond[bt="死别"]{filter:saturate(.7)}
shell bond[bt="死别"] brarrow{color:hsl(0,100%,62%);animation:none}
shell bond[bt="死别"] brto{color:hsl(0,100%,68%);border-color:hsla(0,100%,50%,.5);background:hsla(0,100%,12%,.8)}

/* ─── 重大决定 · 结局印章卷宗 ─── */
shell .dcgrp{background:linear-gradient(158deg,hsla(240,12%,12%,.78),hsla(240,50%,6%,.82));border-color:hsla(40,8%,58%,.45)}
shell decision{position:relative;padding:11px 44px 11px 14px;margin-top:6px;background:linear-gradient(155deg,hsla(240,12%,12%,.9),hsla(240,12%,6%,.92));border:1px solid hsla(46,25%,55%,.4);border-radius:9px;overflow:hidden;transition:transform .3s,box-shadow .3s}
shell decision + decision{margin-top:8px}
shell decision:hover{transform:translateY(-1px);box-shadow:0 0 20px -6px hsla(46,25%,55%,.6)}
shell decision::after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%) rotate(-10deg);width:28px;height:28px;border-radius:50%;border:2px solid currentColor;color:hsl(46,25%,60%);opacity:.5;box-shadow:0 0 10px -1px currentColor}
shell dhead{display:flex;align-items:center;gap:8px;margin-bottom:7px}
shell dtitle{flex:1 1 auto;font-size:14px;font-weight:700;letter-spacing:1px;color:hsl(46,25%,60%);text-shadow:0 0 8px hsla(46,25%,55%,.5);word-break:break-word}
shell dtitle::before{content:"§ ";color:hsl(48,85%,65%)}
shell dturn{flex:0 0 auto;padding:1px 7px;font-size:10.5px;font-weight:800;color:hsla(46,25%,70%,.9);background:hsla(240,12%,14%,.9);border:1px solid hsla(46,25%,55%,.45);border-radius:4px;font-variant-numeric:tabular-nums}
shell dc{display:block;padding:5px 8px;margin-bottom:5px;font-size:12.5px;line-height:1.6;color:hsl(46,25%,60%);background:hsla(240,12%,4%,.5);border-left:2px solid hsl(46,25%,60%);border-radius:0 4px 4px 0;word-break:break-word}
shell di{display:block;padding:5px 8px;font-size:12px;line-height:1.6;color:hsla(40,8%,84%,.92);background:hsla(240,12%,4%,.5);border-left:2px solid currentColor;border-radius:0 4px 4px 0;word-break:break-word}
shell decision[dr="人类存续"]{color:hsl(46,25%,60%)}
shell decision[dr="进化真理"]{color:hsl(20,85%,68%)}
shell decision[dr="中立平衡"]{color:hsl(160,70%,66%)}
shell decision[dr="进化毁灭"]{color:hsl(0,100%,66%)}
shell decision[dr="纪元轮回"]{color:hsl(275,78%,74%)}

/* ───思维链隐藏 ─── */
wldata{display:none}

/* ─── HTML5自定义元素display修正（默认inline→显式block/inline-block）─── */
shell pbody,shell brief,shell stars,shell opt,shell optbody,shell setbody,shell grp,shell item,shell intent,shell event,shell quest,shell chunk,shell wevent,shell bond,shell decision,shell tl,shell pic,shell cframe,shell mname,shell mtag,shell ename,shell qname,shell mtime,shell ctheme,shell wname,shell bname,shell dtitle,shell pk,shell pv,shell look,shell rel,shell recent,shell sgrp{display:block}
shell mturn,shell crange,shell wturn,shell bturn,shell dturn,shell etime,shell brfrom,shell brto,shell brarrow,shell mt{display:inline-block}

/* ══════════════ rili 平台气泡界面破宽度限制 ══════════════
   平台默认给AI回复/输入框设 max-w-2xl(~672px) 把内容压窄。
   以下规则解除气泡/正文/输入区的宽度上限，让 shell 铺满可用宽度。
   1. 全局把外层 max-w-2xl 提升到 920px（无 @media 限制，移动端也生效）
   2. AI 气泡 / 玩家气泡 / markdown渲染器 / 正文框 / 输入框 全部 width:100%
   3. 输入栏父容器链逐一破限（外层→输入组→textarea→footer→header）
═══════════════════════════════════════════════════ */

/* 外层容器破限（全局，无 @media） */
.max-w-2xl,
div[class*="max-w-2xl"] {
    max-width: 920px !important;
}

/* AI 回复气泡解除宽度限制 */
div[class*="is-assistant"],
.group.is-assistant {
    max-width: none !important;
    width: 100% !important;
}

.group.is-assistant > .is-dark.bg-card,
div[class*="is-assistant"][class*="bg-card"] {
    max-width: none !important;
    width: 100% !important;
}

/* 玩家消息气泡解除宽度限制 */
div[class*="is-user"],
.group.is-user {
    max-width: none !important;
}

/* markdown 渲染器铺满 */
div.rili-markdown-renderer,
.group.is-assistant .rili-markdown-renderer {
    max-width: none !important;
    width: 100% !important;
}

/* AI 正文框铺满 */
article.story-main {
    max-width: none !important;
    width: 100% !important;
}

/* ═══ 输入栏破限（核心：逐层突破父容器链）═══ */
/* 1. 输入栏最外层容器（#prompt-input 包裹层） */
#prompt-input,
#ai-chat-bottom-input,
div[data-slot="input-group"],
div[data-slot="input-group"][role="group"] {
    max-width: 920px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* 2. 输入组内部容器铺满 */
#prompt-input [data-slot="input-group"],
#prompt-input > div,
#ai-chat-bottom-input > div {
    width: 100% !important;
    max-width: none !important;
}

/* 3. 输入栏头部 / 底部铺满 */
#prompt-input-header,
#prompt-input-footer,
#prompt-input-header > div,
#prompt-input-footer > div {
    width: 100% !important;
    max-width: none !important;
}

/* 4. textarea 文本框铺满 */
#prompt-input textarea,
#ai-chat-bottom-input textarea {
    width: 100% !important;
    max-width: none !important;
}

/* 5. 兜底：所有含 input/prompt/chat-bottom 的容器破限 */
div[class*="prompt-input"],
div[class*="chat-bottom"],
div[class*="input-group"] {
    max-width: 920px !important;
    width: 100% !important;
}

/* ══════════════ rili 平台渲染区文字基线（霞鹜文楷配套） ══════════════
   AI 正文 / markdown 渲染器统一使用霞鹜文楷，字重/行距与 shell 内部呼应，
   保证玩家在 shell 外的纯文本回复也能享受到同一字体规范。
═══════════════════════════════════════════════════ */
article.story-main,
.group.is-assistant .rili-markdown-renderer,
div.rili-markdown-renderer {
    font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;
    font-size: 15.5px !important;
    font-weight: 500 !important;
    line-height: 1.85 !important;
    letter-spacing: .35px !important;
    color: #dce8f0 !important;
}

article.story-main p,
.group.is-assistant .rili-markdown-renderer p,
div.rili-markdown-renderer p {
    color: #dce8f0 !important;
}

article.story-main b,
article.story-main strong,
.group.is-assistant .rili-markdown-renderer b,
.group.is-assistant .rili-markdown-renderer strong,
div.rili-markdown-renderer b,
div.rili-markdown-renderer strong {
    color: #d8e8f0 !important;
    font-weight: 800 !important;
    text-shadow: 0 0 6px rgba(130, 180, 210, .28) !important;
}

.group.is-assistant .rili-markdown-renderer h1,
.group.is-assistant .rili-markdown-renderer h2,
.group.is-assistant .rili-markdown-renderer h3,
div.rili-markdown-renderer h1,
div.rili-markdown-renderer h2,
div.rili-markdown-renderer h3 {
    color: #c8d8e8 !important;
    font-weight: 900 !important;
    letter-spacing: 1px !important;
}

/* ══════════════ 面板互斥：checkbox 后选覆盖极简版 ══════════════
   平台 HTML 净化器会剥离 radio 的 name 属性，导致 radio 无法分组互斥。
   回退到 checkbox 方案（不依赖 name）。利用 :has() 实现"编号大压编号小"：
   当任一比当前面板编号大的面板被选中时，隐藏当前面板。
   多个面板同时 checked 时，显示编号最大的那个；点 X 取消勾选露出次大。
═══════════════════════════════════════════════════ */
shell:has(.p2:checked) stage .panel[p='1'],
shell:has(.p3:checked) stage .panel[p='1'],
shell:has(.p3:checked) stage .panel[p='2'],
shell:has(.p4:checked) stage .panel[p='1'],
shell:has(.p4:checked) stage .panel[p='2'],
shell:has(.p4:checked) stage .panel[p='3'],
shell:has(.p5:checked) stage .panel[p='1'],
shell:has(.p5:checked) stage .panel[p='2'],
shell:has(.p5:checked) stage .panel[p='3'],
shell:has(.p5:checked) stage .panel[p='4']{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(14px)!important}

/* ══════════════ rili 平台页面美化（废土科技·青蓝光弧系） ══════════════
   借鉴大梁风华录的输入栏/气泡/按钮/导航美化，按末日重启废土科技风重铸：
   - 底色：深空蓝黑 (hsl 220-230, 50-65%, 4-14%)
   - 主色：青蓝光弧 (hsl 200-210, 85-95%, 55-70%)
   - AI 气泡：青蓝流动光弧（左侧）
   - 玩家气泡：紫光弧（右侧，呼应异能紫色系）
   - 输入栏/导航：青蓝顶部/底部扫描线流动
═══════════════════════════════════════════════════ */
:root {
  --eco-bg: hsl(240, 12%, 8%);
  --eco-bg-mid: hsl(240, 12%, 14%);
  --eco-bg-light: hsl(240, 12%, 20%);
  --eco-bg-deep: hsl(240, 12%, 4%);
  --eco-text: hsl(40, 8%, 85%);
  --eco-text-mid: hsl(46, 30%, 65%);
  --eco-text-faint: hsl(46, 20%, 40%);
  --eco-cyan: hsl(46, 90%, 60%);
  --eco-cyan-dark: hsl(46, 85%, 45%);
  --eco-cyan-light: hsl(46, 85%, 72%);
  --eco-purple: hsl(270, 85%, 65%);
  --eco-purple-light: hsl(265, 80%, 75%);
  --eco-border: hsla(46, 60%, 55%, .35);
  --eco-font: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif;
}

/* ─── 输入栏容器 ─── */
#prompt-input [data-slot="input-group"] {
  background: linear-gradient(135deg, hsl(240,12%,14%) 0%, hsl(240,12%,8%)100%) !important;
  border: 1px solid hsla(46,25%,55%,.35) !important;
  border-top: 3px solid hsl(46,25%,60%) !important;
  border-radius: 8px !important;
  box-shadow: 0 -4px 16px hsla(240, 12%, 2%, .6), inset 0 0 60px hsla(46, 90%, 55%, .04), 0 -1px 0 hsla(46, 90%, 60%, .15) inset !important;
  position: relative !important;
  overflow: visible !important;
  transition: all 0.3s ease !important;
}
#prompt-input [data-slot="input-group"]::before {
  content: "" !important;
  position: absolute !important;
  top: -3px; left: 0; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, transparent 0%, hsl(46,25%,60%) 10%, hsl(46,25%,60%) 30%, hsl(46,25%,60%) 50%, hsl(46,25%,60%) 70%, hsl(46,25%,60%) 90%, transparent 100%) !important;
  background-size: 200% 100% !important;
  animation: ecoInputBorderFlow 4s linear infinite !important;
  opacity: 0.8 !important;
}
#prompt-input [data-slot="input-group"]:hover {
  box-shadow: 0 -6px 24px hsla(240, 12%, 2%, .75), inset 0 0 80px hsla(46, 90%, 55%, .06), 0 -1px 0 hsla(46, 90%, 60%, .25) inset !important;
  transform: translateY(-2px) !important;
}
#prompt-input [data-slot="input-group"]:focus-within {
  border-color: hsl(46,25%,60%) !important;
  box-shadow: 0 -6px 28px hsla(46, 90%, 55%, .2), inset 0 0 100px hsla(46, 90%, 55%, .08), 0 0 0 2px hsla(46, 90%, 55%, .2) !important;
}

/* ─── 输入框文本 ─── */
#prompt-input textarea {
  background: hsl(240,12%,4%) !important;
  color: hsl(40,8%,85%) !important;
  border: none !important;
  font-family: 'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  padding: 12px 16px !important;
  border-radius: 4px !important;
  transition: all 0.2s ease !important;
  box-shadow: inset 0 1px 3px hsla(240, 12%, 2%, .4) !important;
}
#prompt-input textarea:focus {
  background: hsl(240, 12%, 6%) !important;
  outline: none !important;
  box-shadow: inset 0 1px 4px hsla(46, 90%, 55%, .12), 0 0 0 1px hsl(46,25%,60%) inset !important;
}
#prompt-input textarea::placeholder {
  color: hsl(46,25%,60%) !important;
  font-family: 'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif !important;
  font-style: italic !important;
  opacity: 0.6 !important;
}

/* ─── 发送按钮 ─── */
#prompt-input-footer button {
  background: linear-gradient(135deg, hsl(46,25%,60%) 0%, hsl(46,25%,35%) 100%) !important;
  color: hsl(46, 90%, 88%) !important;
  border: 1px solid hsl(46,25%,60%) !important;
  border-radius: 6px !important;
  padding: 8px 16px !important;
  font-family: 'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 8px hsla(46, 90%, 55%, .3), inset 0 1px 0 hsla(46, 90%, 75%, .15) !important;
  transition: all 0.2s ease !important;
  position: relative !important;
  overflow: hidden !important;
  text-shadow: 0 0 8px hsla(46, 90%, 60%, .5) !important;
}
#prompt-input-footer button::before {
  content: "" !important;
  position: absolute !important;
  top: -50%; left: -50% !important;
  width: 200%; height: 200% !important;
  background: radial-gradient(circle, hsla(46, 95%, 65%, .25) 0%, transparent 70%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
}
#prompt-input-footer button:hover {
  background: linear-gradient(135deg, hsl(46,25%,60%) 0%, hsl(46,25%,60%) 100%) !important;
  box-shadow: 0 4px 14px hsla(46, 90%, 55%, .5), inset 0 1px 0 hsla(46, 90%, 80%, .25) !important;
  transform: translateY(-1px) scale(1.02) !important;
}
#prompt-input-footer button:hover::before {
  opacity: 1 !important;
  animation: ecoButtonRipple 1.2s ease-out infinite !important;
}
#prompt-input-footer button:active {
  transform: translateY(0) scale(0.98) !important;
  box-shadow: 0 1px 4px hsla(46, 90%, 55%, .4), inset 0 2px 4px hsla(240, 12%, 2%, .3) !important;
}
#prompt-input-footer button svg {
  transition: transform 0.3s ease !important;
  filter: drop-shadow(0 1px 2px hsla(240, 12%, 2%, .4)) !important;
}
#prompt-input-footer button:hover svg {
  transform: translateX(2px) !important;
}

/* ─── 输入栏头部按钮 ─── */
#prompt-input-header button {
  background: hsl(240,12%,20%) !important;
  color: hsl(46,25%,60%) !important;
  border: 1px solid hsla(46,25%,55%,.35) !important;
  border-radius: 4px !important;
  padding: 6px 10px !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px hsla(240, 12%, 2%, .3) !important;
}
#prompt-input-header button:hover {
  background: hsl(240,12%,14%) !important;
  color: hsl(46,25%,60%) !important;
  border-color: hsl(46,25%,60%) !important;
  box-shadow: 0 2px 6px hsla(46, 90%, 55%, .2), inset 0 0 0 1px hsla(46, 90%, 55%, .1) !important;
  transform: translateY(-1px) !important;
}
#prompt-input-header button svg { transition: all 0.3s ease !important; }
#prompt-input-header button:hover svg {
  transform: scale(1.1) !important;
  filter: drop-shadow(0 0 3px hsla(46, 90%, 60%, .5)) !important;
}

/* ─── AI 回复气泡（青蓝光弧·左） ─── */
.is-assistant > div {
  font-family: 'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif !important;
  position: relative !important;
  background: linear-gradient(135deg, hsla(46, 55%, 20%, .15) 0%, hsla(46, 60%, 30%, .08) 25%, hsla(46, 50%, 15%, .12) 50%, hsla(46, 60%, 30%, .08) 75%, hsla(46, 55%, 20%, .15) 100%), linear-gradient(180deg, hsla(240, 12%, 14%, .92) 0%, hsla(240, 12%, 10%, .88) 50%, hsla(240, 12%, 7%, .92) 100%) !important;
  border: 1px solid hsla(46, 80%, 55%, .25) !important;
  border-left: 2px solid hsla(46, 90%, 55%, .4) !important;
  box-shadow: 0 2px 12px hsla(240, 12%, 2%, .4), inset 0 0 60px hsla(46, 90%, 55%, .04), 0 1px 0 hsla(46, 90%, 60%, .1) inset !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  color: hsl(40,8%,85%) !important;
}
.is-assistant > div::before {
  content: "" !important;
  position: absolute !important;
  top: 0; left: -3px; bottom: 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, transparent 0%, hsl(46,25%,60%) 10%, hsl(46,25%,60%) 30%, hsl(46,25%,60%) 50%, hsl(46,25%,60%) 70%, hsl(46,25%,60%) 90%, transparent 100%) !important;
  background-size: 100% 200% !important;
  animation: ecoAssistantBorderFlow 4s linear infinite !important;
  opacity: 0.8 !important;
  filter: drop-shadow(0 0 4px hsla(46, 90%, 60%, .6)) !important;
}
.is-assistant > div:hover {
  transform: none !important;
  box-shadow: 0 6px 24px hsla(240, 12%, 2%, .6), inset 0 0 80px hsla(46, 90%, 55%, .06), 0 1px 0 hsla(46, 90%, 60%, .2) inset !important;
}

/* ─── 玩家消息气泡（紫光弧·右） ─── */
.is-user > div {
  font-family: 'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif !important;
  position: relative !important;
  background: linear-gradient(135deg, hsla(265, 55%, 25%, .12) 0%, hsla(250, 50%, 30%, .08) 25%, hsla(265, 45%, 20%, .12) 50%, hsla(250, 50%, 30%, .08) 75%, hsla(265, 55%, 25%, .12) 100%), linear-gradient(180deg, hsla(240, 12%, 16%, .92) 0%, hsla(240, 12%, 12%, .88) 50%, hsla(240, 12%, 9%, .92) 100%) !important;
  border: 1px solid hsla(265, 70%, 55%, .25) !important;
  border-right: 2px solid hsla(270, 80%, 55%, .35) !important;
  box-shadow: 0 2px 12px hsla(240, 12%, 2%, .4), inset 0 0 60px hsla(265, 80%, 55%, .04), 0 1px 0 hsla(265, 80%, 60%, .1) inset !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  color: hsl(40,8%,85%) !important;
}
.is-user > div::before {
  content: "" !important;
  position: absolute !important;
  top: 0; right: -3px; bottom: 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, transparent 0%, hsl(265,80%,75%) 10%, hsl(270,85%,65%) 30%, hsl(265,80%,75%) 50%, hsl(270,85%,65%) 70%, hsl(265,80%,75%) 90%, transparent 100%) !important;
  background-size: 100% 200% !important;
  animation: ecoUserBorderFlow 4s linear infinite !important;
  opacity: 0.7 !important;
  filter: drop-shadow(0 0 4px hsla(270, 85%, 60%, .5)) !important;
}
.is-user > div:hover {
  transform: none !important;
  box-shadow: 0 6px 24px hsla(240, 12%, 2%, .6), inset 0 0 80px hsla(265, 80%, 55%, .06), 0 1px 0 hsla(265, 80%, 60%, .2) inset !important;
}

/* ─── 顶部导航栏 ─── */
nav header {
  background: linear-gradient(135deg, hsl(240,12%,14%) 0%, hsl(240,12%,8%)100%) !important;
  border-bottom: 3px solid transparent !important;
  border-image: linear-gradient(90deg, transparent 0%, hsl(46,25%,60%) 20%, hsl(46,25%,60%) 40%, hsl(46,25%,60%) 60%, hsl(46,25%,60%) 80%, transparent 100%) 1 !important;
  box-shadow: 0 4px 16px hsla(240, 12%, 2%, .5), inset 0 0 60px hsla(46, 90%, 55%, .03), 0 1px 0 hsla(46, 90%, 60%, .1) inset !important;
  position: relative !important;
  overflow: visible !important;
  transition: all 0.3s ease !important;
}
nav header::before {
  content: "" !important;
  position: absolute !important;
  bottom: -3px; left: 0; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, transparent 0%, hsl(46,25%,60%) 20%, hsl(46,25%,60%) 40%, hsl(46,25%,60%) 60%, hsl(46,25%,60%) 80%, transparent 100%) !important;
  background-size: 200% 100% !important;
  animation: ecoHeaderBorderFlow 4s linear infinite !important;
  opacity: 0.8 !important;
}
nav header:hover {
  box-shadow: 0 6px 24px hsla(240, 12%, 2%, .65), inset 0 0 80px hsla(46, 90%, 55%, .05), 0 1px 0 hsla(46, 90%, 60%, .2) inset !important;
}

/* ─── 圆形操作按钮（复制/重试等） ─── */
.is-assistant button.rounded-full,
.is-user button.rounded-full {
  background: hsl(240,12%,20%) !important;
  color: hsl(46,25%,60%) !important;
  border: 1px solid hsla(46,25%,55%,.35) !important;
  border-radius: 50% !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 1px 3px hsla(240, 12%, 2%, .3) !important;
  position: relative !important;
  overflow: hidden !important;
}
.is-assistant button.rounded-full::before,
.is-user button.rounded-full::before {
  content: "" !important;
  position: absolute !important;
  top: -50%; left: -50% !important;
  width: 200%; height: 200% !important;
  background: radial-gradient(circle, hsla(46, 95%, 65%, .2) 0%, transparent 70%) !important;
  opacity: 0 !important;
  transition: opacity 0.4s ease !important;
}
.is-assistant button.rounded-full:hover,
.is-user button.rounded-full:hover {
  background: hsl(240,12%,14%) !important;
  color: hsl(46,25%,60%) !important;
  border-color: hsl(46,25%,60%) !important;
  box-shadow: 0 2px 6px hsla(46, 90%, 55%, .2), inset 0 0 0 1px hsla(46, 90%, 55%, .1) !important;
  transform: translateY(-1px) scale(1.05) !important;
}
.is-assistant button.rounded-full:hover::before,
.is-user button.rounded-full:hover::before {
  opacity: 1 !important;
  animation: ecoButtonRipple 1.2s ease-out infinite !important;
}
.is-assistant button.rounded-full:active,
.is-user button.rounded-full:active {
  transform: translateY(0) scale(0.95) !important;
  box-shadow: 0 1px 3px hsla(46, 90%, 55%, .25), inset 0 2px 4px hsla(240, 12%, 2%, .3) !important;
}
.is-assistant button.rounded-full svg,
.is-user button.rounded-full svg { transition: all 0.3s ease !important; }
.is-assistant button.rounded-full:hover svg,
.is-user button.rounded-full:hover svg {
  transform: scale(1.1) !important;
  filter: drop-shadow(0 0 3px hsla(46, 90%, 60%, .5)) !important;
}


/* ─── 动画关键帧 ─── */
@keyframes ecoInputBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes ecoAssistantBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 0% 200%; } }
@keyframes ecoUserBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 0% 200%; } }
@keyframes ecoHeaderBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes ecoButtonRipple { 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; } }

/* ══════════════ rili 平台渲染器补充美化（废土科技·青蓝光弧系 续） ══════════════
   补齐 shell 外的渲染器元素美化：代码块 / 引用块 / 滚动条 / 行动选项按钮防御。
   全部沿用 :root 中的 --eco-* 变量，与 shell 内部色调一致。
═══════════════════════════════════════════════════ */

/* ─── 代码块（终端风·青蓝边） ─── */
.rili-markdown-renderer pre {
  background: hsl(240,12%,4%) !important;
  border: 1px solid hsla(46,25%,55%,.35) !important;
  border-left: 3px solid hsl(46,25%,60%) !important;
  border-radius: 4px !important;
  padding: 12px 16px !important;
  margin: 8px 0 !important;
  font-family: 'Cascadia Code', 'Consolas', 'Source Code Pro', 'Menlo', 'Courier New', monospace !important;
  font-size: 0.88em !important;
  line-height: 1.6 !important;
  color: hsl(46, 55%, 78%) !important;
  overflow-x: auto !important;
  box-shadow: inset 0 0 30px hsla(46, 90%, 55%, .04), 0 1px 4px hsla(240, 12%, 2%, .4) !important;
}
.rili-markdown-renderer pre code {
  background: transparent !important;
  color: hsl(46, 55%, 78%) !important;
  padding: 0 !important;
  font-family: inherit !important;
  text-shadow: 0 0 6px hsla(46, 90%, 55%, .25) !important;
}
.rili-markdown-renderer code {
  background: hsla(46, 60%, 20%, .35) !important;
  color: hsl(46, 70%, 75%) !important;
  padding: 1px 5px !important;
  border-radius: 3px !important;
  font-family: 'Cascadia Code', 'Consolas', 'Source Code Pro', 'Menlo', 'Courier New', monospace !important;
  font-size: 0.9em !important;
  border: 1px solid hsla(46, 60%, 45%, .25) !important;
}

/* ─── 引用块（紫光弧·左） ─── */
.rili-markdown-renderer blockquote {
  background: linear-gradient(135deg, hsla(265, 55%, 25%, .1) 0%, hsla(250, 50%, 20%, .06) 100%) !important;
  border-left: 4px solid hsl(270,85%,65%) !important;
  padding: 10px 16px !important;
  margin: 8px 0 !important;
  color: hsl(46,25%,60%) !important;
  font-style: italic !important;
  border-radius: 0 4px 4px 0 !important;
  box-shadow: 0 1px 4px hsla(265, 80%, 30%, .15), inset 0 0 30px hsla(265, 80%, 55%, .03) !important;
  position: relative !important;
}
.rili-markdown-renderer blockquote::before {
  content: "" !important;
  position: absolute !important;
  top: 0; bottom: 0; left: -4px !important;
  width: 4px !important;
  background: linear-gradient(180deg, transparent 0%, hsl(265,80%,75%) 15%, hsl(270,85%,65%) 50%, hsl(265,80%,75%) 85%, transparent 100%) !important;
  background-size: 100% 200% !important;
  animation: ecoUserBorderFlow 4s linear infinite !important;
  opacity: 0.8 !important;
}

/* ─── 渲染器滚动条（青蓝主题） ─── */
.rili-markdown-renderer ::-webkit-scrollbar {
  width: 8px !important;
  height: 8px !important;
}
.rili-markdown-renderer ::-webkit-scrollbar-track {
  background: hsl(240,12%,4%) !important;
  border-radius: 4px !important;
}
.rili-markdown-renderer ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, hsla(46, 85%, 55%, .7), hsla(240, 12%, 40%, .7)) !important;
  border-radius: 4px !important;
  border: 1px solid hsla(46, 60%, 45%, .3) !important;
}
.rili-markdown-renderer ::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, hsla(46, 90%, 65%, .85), hsla(240, 12%, 50%, .85)) !important;
  box-shadow: 0 0 8px hsla(46, 90%, 55%, .5) !important;
}

/* ─── 行动选项按钮（shell 外防御样式） ───
   shell 内已有 L114 样式，此处覆盖 shell 结构被平台净化器破坏时的兜底场景 */
.rili-markdown-renderer [data-action="append-textinput"] {
  display: block !important;
  padding: 10px 14px !important;
  margin: 6px 0 !important;
  background: linear-gradient(155deg, hsla(240, 12%, 13%, .92), hsla(240, 12%, 6%, .94)) !important;
  border: 1px solid hsla(46, 70%, 55%, .35) !important;
  border-left: 3px solid hsl(46,25%,60%) !important;
  border-radius: 6px !important;
  color: hsl(46, 65%, 82%) !important;
  font-family: 'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun','Georgia',serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  cursor: pointer !important;
  transition: all 0.25s ease !important;
  word-break: break-word !important;
  box-shadow: 0 2px 8px hsla(240, 12%, 2%, .3), inset 0 1px 0 hsla(46, 90%, 60%, .08) !important;
}
.rili-markdown-renderer [data-action="append-textinput"]:hover {
  transform: translateX(3px) !important;
  border-color: hsl(46,25%,60%) !important;
  border-left-color: hsl(46,25%,60%) !important;
  box-shadow: 0 4px 14px hsla(46, 90%, 55%, .35), inset 0 1px 0 hsla(46, 90%, 70%, .15), 0 0 18px -4px hsla(46, 90%, 55%, .5) !important;
  background: linear-gradient(155deg, hsla(240, 12%, 16%, .96), hsla(240, 12%, 8%, .96)) !important;
  color: hsl(46, 80%, 90%) !important;
}
.rili-markdown-renderer [data-action="append-textinput"]:active {
  transform: translateX(1px) scale(0.98) !important;
  box-shadow: 0 1px 4px hsla(46, 90%, 55%, .3), inset 0 2px 4px hsla(240, 12%, 2%, .4) !important;
}

/* ─── os-cg 立绘标记（新版图库系统·P3交互面板） ─── */
shell .os-cg{display:block;width:100%;margin-top:4px;border-radius:12px;overflow:hidden;aspect-ratio:3/4;min-height:280px;background-size:cover;background-position:center top;background-repeat:no-repeat;background-color:hsl(240,12%,10%);border:1px solid hsla(46,25%,58%,.4);box-shadow:0 0 26px -8px hsla(46,25%,55%,.5),0 8px 22px -10px hsla(240,12%,1%,.85);position:relative}
shell .os-cg::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 2px,hsla(240,12%,3%,.14) 2px 3px);pointer-events:none;opacity:.6}

/* ─── os-cg URL映射表 ─── */
shell .os-cg[data-npc="林超"][data-mood="常态"]{background-image:url(https://i.ibb.co/Q0zkV3Z/image.gif)}
shell .os-cg[data-npc="林诗雨"][data-mood="常态"]{background-image:url(https://i.ibb.co/tp0SgmCH/image.gif)}
shell .os-cg[data-npc="范香语"][data-mood="常态"]{background-image:url(https://i.ibb.co/CsHgdCs4/image.gif)}
shell .os-cg[data-npc="黑月"][data-mood="常态"]{background-image:url(https://i.ibb.co/8kQzW4k/image.gif)}
shell .os-cg[data-npc="尤潜"][data-mood="常态"]{background-image:url(https://i.ibb.co/ZRW2JvgZ/image.gif)}
shell .os-cg[data-npc="黄金犬"][data-mood="常态"]{background-image:url(https://i.ibb.co/F4Rk8Np7/image.gif)}
shell .os-cg[data-npc="楚山河"][data-mood="常态"]{background-image:url(https://i.ibb.co/YBYNrvyf/image.gif)}
shell .os-cg[data-npc="赵冰冰"][data-mood="常态"]{background-image:url(https://i.ibb.co/jkNRmT3L/image.gif)}
shell .os-cg[data-npc="林一伊"][data-mood="常态"]{background-image:url(https://i.ibb.co/nqk4DsqF/image.gif)}
shell .os-cg[data-npc="柳思琴"][data-mood="常态"]{background-image:url(https://i.ibb.co/S4B7Fg4x/image.gif)}
shell .os-cg[data-npc="乔之之"][data-mood="常态"]{background-image:url(https://i.ibb.co/KzQDHN2V/image.gif)}
shell .os-cg[data-npc="李汐婉"][data-mood="常态"]{background-image:url(https://i.ibb.co/4wTjCVQr/image.gif)}
shell .os-cg[data-npc="夏莲绮"][data-mood="常态"]{background-image:url(https://i.ibb.co/ZpV5ycTV/image.gif)}
shell .os-cg[data-npc="夏莲欣"][data-mood="常态"]{background-image:url(https://i.ibb.co/FbCqJStP/image.gif)}
shell .os-cg[data-npc="夏莲欣"][data-mood="情趣穿搭"]{background-image:url(https://i.ibb.co/vxZNBjqw/2.gif)}
shell .os-cg[data-npc="夏莲枝"][data-mood="常态"]{background-image:url(https://i.ibb.co/1G6brT2F/1.gif)}
shell .os-cg[data-npc="黑泽美绪"][data-mood="常态"]{background-image:url(https://i.ibb.co/wZBhs92W/Mori-Calliope.gif)}
shell .os-cg[data-npc="佐藤梓"][data-mood="常态"]{background-image:url(https://i.ibb.co/ZzFQhKKs/Azki.gif)}
shell .os-cg[data-npc="安妮·科瓦连科"][data-mood="常态"]{background-image:url(https://i.ibb.co/vCHmSH53/Annytf.gif)}
shell .os-cg[data-npc="神楽七奈"][data-mood="常态"]{background-image:url(https://i.ibb.co/mFTnKMB6/image.gif)}
shell .os-cg[data-npc="艾莉·海特"][data-mood="常态"]{background-image:url(https://i.ibb.co/yFy21WFn/Elly.gif)}
shell .os-cg[data-npc="安娜·沃尔科娃"][data-mood="常态"]{background-image:url(https://i.ibb.co/rKTffW0t/Awful-Queen.gif)}
shell .os-cg[data-npc="鲨村亚纪"][data-mood="常态"]{background-image:url(https://i.ibb.co/Cs13Ny4d/Gawr-Gura.gif)}
shell .os-cg[data-npc="饭岛美和"][data-mood="常态"]{background-image:url(https://i.ibb.co/27K5pxd5/Onigiri.gif)}
shell .os-cg[data-npc="卡米拉·罗斯"][data-mood="常态"]{background-image:url(https://i.ibb.co/HT8MKLSW/Camila.gif)}
shell .os-cg[data-npc="夏洛特·莉莉安"][data-mood="常态"]{background-image:url(https://i.ibb.co/0RXWCt9v/Shylily.gif)}
shell .os-cg[data-npc="特里·维斯"][data-mood="常态"]{background-image:url(https://i.ibb.co/TqDzMnJv/Trickywi.gif)}
shell .os-cg[data-npc="阿部明日香"][data-mood="常态"]{background-image:url(https://i.ibb.co/GfdJm38h/Ahyra.gif)}
shell .os-cg[data-npc="沼田ぬみ"][data-mood="常态"]{background-image:url(https://i.ibb.co/nqS6dv15/Akuma-Nihmune.gif)}
shell .os-cg[data-npc="阿鲁娜·里维拉"][data-mood="常态"]{background-image:url(https://i.ibb.co/RGM6Bts9/Aruna-Reaver.gif)}
shell .os-cg[data-npc="科顿·韦伯"][data-mood="常态"]{background-image:url(https://i.ibb.co/LXM3cTkG/Cottontail.gif)}
shell .os-cg[data-npc="爱琳·诺亚"][data-mood="常态"]{background-image:url(https://i.ibb.co/pBCQz0Q5/Eileennoir.gif)}
shell .os-cg[data-npc="双月芙羽"][data-mood="常态"]{background-image:url(https://i.ibb.co/xtjn1mff/Fuwawa-Abyssgard.gif)}
shell .os-cg[data-npc="星名瀬音"][data-mood="常态"]{background-image:url(https://i.ibb.co/ym7RCSBV/Hoshina-Selene.gif)}
shell .os-cg[data-npc="凤玲天"][data-mood="常态"]{background-image:url(https://i.ibb.co/5g4YdSz6/Hourei-Tenten.gif)}
shell .os-cg[data-npc="矶凪音"][data-mood="常态"]{background-image:url(https://i.ibb.co/TMgMDfXr/Isonade-Orca.gif)}
shell .os-cg[data-npc="玛塔拉·菓"][data-mood="常态"]{background-image:url(https://i.ibb.co/35SRCsrx/Matara-Kan.gif)}
shell .os-cg[data-npc="森子葡萄"][data-mood="常态"]{background-image:url(https://i.ibb.co/9k2RjNFw/Moriko-Kyoho.gif)}
shell .os-cg[data-npc="霓虹哈珀"][data-mood="常态"]{background-image:url(https://i.ibb.co/391hQzZ9/Neon-Harper.gif)}
shell .os-cg[data-npc="银谷"][data-mood="常态"]{background-image:url(https://i.ibb.co/Kjwy6ZrF/Silvervale.gif)}
shell .os-cg[data-npc="辛德"][data-mood="常态"]{background-image:url(https://i.ibb.co/b5WwRkhw/Sinder.gif)}
shell .os-cg[data-npc="维克索莉亚"][data-mood="常态"]{background-image:url(https://i.ibb.co/HLZVQX9g/Vexoria-The-Sun-Eater.gif)}
shell .os-cg[data-npc="天璋院緋乃"][data-mood="常态"]{background-image:url(https://i.ibb.co/CprgB73z/image.gif)}
shell .os-cg[data-npc="麻呂太"][data-mood="常态"]{background-image:url(https://i.ibb.co/wrW7KpwR/image.gif)}
shell .os-cg[data-npc="湊阿庫婭"][data-mood="常态"]{background-image:url(https://i.ibb.co/nJn9349/image.gif)}
shell .os-cg[data-npc="何白棠"][data-mood="常态"]{background-image:url(https://i.ibb.co/pvg8G0X3/image.gif)}
shell .os-cg[data-npc="林若笙"][data-mood="常态"]{background-image:url(https://i.ibb.co/Kcdj9dkM/image.gif)}
shell .os-cg[data-npc="郭千华"][data-mood="常态"]{background-image:url(https://i.ibb.co/Fk54DyHt/image.png)}


/* ─── os-cg 召唤系统角色层 URL映射表 ─── */
shell .os-cg[data-npc="2B"][data-mood="常态"]{background-image:url(https://i.ibb.co/Dg6jRxgg/2B.gif)}
shell .os-cg[data-npc="A2"][data-mood="常态"]{background-image:url(https://i.ibb.co/d0yDfRyz/A2.gif)}
shell .os-cg[data-npc="伊什塔尔"][data-mood="常态"]{background-image:url(https://i.ibb.co/1YJgsLxJ/image.gif)}
shell .os-cg[data-npc="伊莉雅丝菲尔·冯·爱因兹贝伦"][data-mood="常态"]{background-image:url(https://i.ibb.co/d8vCbgK/image.gif)}
shell .os-cg[data-npc="克洛伊·冯·爱因兹贝伦"][data-mood="常态"]{background-image:url(https://i.ibb.co/7JwqnGfW/image.gif)}
shell .os-cg[data-npc="卫宫美游"][data-mood="常态"]{background-image:url(https://i.ibb.co/fzm9Js7g/image.gif)}
shell .os-cg[data-npc="尼禄·克劳狄乌斯"][data-mood="常态"]{background-image:url(https://i.ibb.co/sdTCKyYj/image.gif)}
shell .os-cg[data-npc="提亚马特"][data-mood="常态"]{background-image:url(https://i.ibb.co/qXBMvyt/image.gif)}
shell .os-cg[data-npc="斯卡蒂"][data-mood="常态"]{background-image:url(https://i.ibb.co/tpH9y17L/image.gif)}
shell .os-cg[data-npc="源赖光"][data-mood="常态"]{background-image:url(https://i.ibb.co/9HN9LHJ8/image.gif)}
shell .os-cg[data-npc="牛若丸"][data-mood="常态"]{background-image:url(https://i.ibb.co/6J0358cq/image.gif)}
shell .os-cg[data-npc="玉藻前"][data-mood="常态"]{background-image:url(https://i.ibb.co/nNPSQXBG/image.gif)}
shell .os-cg[data-npc="玛修·基列莱特"][data-mood="常态"]{background-image:url(https://i.ibb.co/Dgr94LsL/image.gif)}
shell .os-cg[data-npc="紫式部"][data-mood="常态"]{background-image:url(https://i.ibb.co/FbshkZP3/image.gif)}
shell .os-cg[data-npc="织田信长"][data-mood="常态"]{background-image:url(https://i.ibb.co/Jws8wSL1/image.gif)}
shell .os-cg[data-npc="美杜莎"][data-mood="常态"]{background-image:url(https://i.ibb.co/qMtd540Y/image.gif)}
shell .os-cg[data-npc="葛饰北斋"][data-mood="常态"]{background-image:url(https://i.ibb.co/BHBjPdwT/livewallpaper-00104.gif)}
shell .os-cg[data-npc="贞德·达尔克"][data-mood="常态"]{background-image:url(https://i.ibb.co/Rp5j3jQJ/image.gif)}
shell .os-cg[data-npc="远坂凛"][data-mood="常态"]{background-image:url(https://i.ibb.co/RnHyJnn/image.gif)}
shell .os-cg[data-npc="酒吞童子"][data-mood="常态"]{background-image:url(https://i.ibb.co/1f2ZMLRh/image.gif)}
shell .os-cg[data-npc="间桐樱"][data-mood="常态"]{background-image:url(https://i.ibb.co/Xr5t9rSn/image.gif)}
shell .os-cg[data-npc="阿尔托莉雅"][data-mood="常态"]{background-image:url(https://i.ibb.co/p6423gtM/image.gif)}
shell .os-cg[data-npc="阿斯托尔福"][data-mood="常态"]{background-image:url(https://i.ibb.co/RkTrPD71/image.gif)}
shell .os-cg[data-npc="阿比盖尔"][data-mood="常态"]{background-image:url(https://i.ibb.co/QFCkhtjQ/image.gif)}
shell .os-cg[data-npc="露维亚瑟琳塔·艾德费尔特"][data-mood="常态"]{background-image:url(https://i.ibb.co/sdmRksFm/image.gif)}

/* ─── 列表 / 表格 细节美化 ─── */
.rili-markdown-renderer ul,
.rili-markdown-renderer ol {
  margin: 6px 0 !important;
  padding-left: 22px !important;
  color: hsl(40,8%,85%) !important;
}
.rili-markdown-renderer ul li::marker {
  color: hsl(46,25%,60%) !important;
}
.rili-markdown-renderer ol li::marker {
  color: hsl(46,25%,60%) !important;
  font-weight: 700 !important;
}
.rili-markdown-renderer table {
  border: 1px solid hsla(46,25%,55%,.35) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  margin: 8px 0 !important;
  background: hsl(240,12%,4%) !important;
}
.rili-markdown-renderer th {
  background: hsl(240,12%,14%) !important;
  color: hsl(46,25%,60%) !important;
  font-weight: 700 !important;
  border: 1px solid hsla(46,25%,55%,.35) !important;
  padding: 6px 10px !important;
  text-align: left !important;
}
.rili-markdown-renderer td {
  border: 1px solid hsla(46,25%,55%,.35) !important;
  padding: 6px 10px !important;
  color: hsl(40,8%,85%) !important;
}
.rili-markdown-renderer tr:hover td {
  background: hsla(46, 60%, 20%, .25) !important;
}

/* ─── 分割线 / 链接 ─── */
.rili-markdown-renderer hr {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, hsl(46,25%,60%), transparent) !important;
  margin: 14px 0 !important;
  opacity: 0.6 !important;
}
.rili-markdown-renderer a {
  color: hsl(46,25%,60%) !important;
  text-decoration: none !important;
  border-bottom: 1px dashed hsla(46, 85%, 72%, .4) !important;
  transition: all 0.2s ease !important;
}
.rili-markdown-renderer a:hover {
  color: hsl(46, 90%, 85%) !important;
  border-bottom-color: hsl(46,25%,60%) !important;
  text-shadow: 0 0 6px hsla(46, 90%, 55%, .5) !important;
}


/* ─── 固定文字CSS注入（省token） ─── */
shell ic[tp="消耗品"] iv::before{content:"消耗品"}
shell ic[tp="物品"] iv::before{content:"物品"}
shell ic[tp="材料"] iv::before{content:"材料"}
shell mat[tp="晶核"] mn::before{content:"凡阶晶核";width:auto;height:auto;border-radius:0;background:none}
shell mat[tp="合金"] mn::before{content:"异兽合金";width:auto;height:auto;border-radius:0;background:none}
shell mat[tp="骨骼"] mn::before{content:"异兽骨骼";width:auto;height:auto;border-radius:0;background:none}
shell mat[tp="本源"] mn::before{content:"本源碎片";width:auto;height:auto;border-radius:0;background:none}
shell rcell[tp="守卫"] rl::before{content:"守卫"}
shell rcell[tp="异兽"] rl::before{content:"驯化异兽"}
shell rcell[tp="农田"] rl::before{content:"粮食/人"}

/* ─────────────────────────────────────────────
   ★ 末日监察风附加样式 (GAIA·MONITOR OVERLAY)
───────────────────────────────────────────── */
shell{outline:1px solid hsla(46,25%,52%,0.25);outline-offset:-4px;box-shadow:0 0 0 1px hsla(46,25%,60%,.12) inset,0 22px 55px -20px hsla(240,12%,2%,.95),0 0 60px -26px hsla(46,25%,55%,.5),inset 0 0 24px -8px hsla(46,25%,52%,0.15)}
.top{border-bottom:1px solid hsl(46,25%,60%) !important;box-shadow:0 1px 0 0 hsla(46,25%,60%,0.5),inset 0 -8px 20px -10px hsla(46,25%,55%,0.4)}
phead b,danger b,tinfo time,tinfo small{font-family:'LXGW WenKai','Noto Serif SC','Source Han Serif SC','STSong','SimSun',serif !important}
tinfo time{color:hsl(46,25%,60%) !important;text-shadow:0 0 10px hsla(46,25%,55%,0.5) !important}
tinfo time::before{background:hsl(46,25%,60%) !important;box-shadow:0 0 8px hsl(46,25%,60%) !important}
phead b{color:hsl(46,25%,60%) !important;text-shadow:0 0 12px hsla(46,25%,55%,0.5) !important;letter-spacing:1.5px}
phead{border-bottom:1px solid hsla(46,25%,52%,0.4) !important;background:linear-gradient(180deg,hsla(240,12%,16%,0.7),transparent) !important}
.orb{background:radial-gradient(circle at 40% 35%,hsl(46,25%,60%),hsl(240,25%,10%) 70%) !important;border:1px solid hsla(46,25%,60%,.55) !important;box-shadow:0 0 20px -4px hsla(46,25%,55%,.75),0 4px 12px hsla(240,12%,2%,.6),0 0 0 1px hsla(46,25%,65%,.2) inset !important}
.orb::after{filter:drop-shadow(0 0 4px hsla(46,25%,60%,0.7))}
.orb:hover{box-shadow:0 0 36px -2px hsla(46,25%,62%,1),0 4px 14px hsla(240,12%,2%,.7) !important}
shell [data-action="append-textinput"]{background:linear-gradient(155deg,hsla(240,12%,13%,.9),hsla(240,12%,6%,.92)) !important;border:1px solid hsla(46,25%,55%,.32) !important;color:hsl(46,25%,60%) !important}
shell [data-action="append-textinput"]:hover{transform:translateX(2px) !important;border-color:hsla(46,25%,62%,.65) !important;box-shadow:0 0 18px -4px hsla(46,25%,55%,.55) !important;background:linear-gradient(155deg,hsla(46,25%,16%,.95),hsla(240,12%,8%,.95)) !important}
.nbtn{color:hsla(40,8%,60%,.85) !important;transition:color .3s,transform .25s}
.nbtn:hover{color:hsl(46,25%,60%) !important}
shell:has(.p1:checked) .nav .nbtn[t='1'],shell:has(.p2:checked) .nav .nbtn[t='2'],shell:has(.p3:checked) .nav .nbtn[t='3'],shell:has(.p4:checked) .nav .nbtn[t='4'],shell:has(.p5:checked) .nav .nbtn[t='5']{color:hsl(46,25%,60%) !important}
shell:has(.p1:checked) .nav .nbtn[t='1']::before,shell:has(.p2:checked) .nav .nbtn[t='2']::before,shell:has(.p3:checked) .nav .nbtn[t='3']::before,shell:has(.p4:checked) .nav .nbtn[t='4']::before,shell:has(.p5:checked) .nav .nbtn[t='5']::before{filter:drop-shadow(0 0 6px hsla(46,25%,60%,.95)) !important}
.set-btn{background:hsla(240,12%,16%,.85) !important;border:1px solid hsla(46,25%,55%,.35) !important}
.set-btn:hover{background:hsla(46,25%,24%,.95) !important;box-shadow:0 0 14px -2px hsla(46,25%,55%,.7),0 0 0 1px hsla(46,25%,60%,.45) !important}
.pclose{background:hsla(240,12%,6%,.4) !important;border:1px solid hsla(46,25%,55%,.4) !important}
.pclose::before,.pclose::after{background:hsl(0,100%,70%) !important}
.pclose:hover{background:hsla(0,60%,35%,.55) !important;box-shadow:0 0 12px -2px hsla(0,80%,58%,.75) !important}
stxt::-webkit-scrollbar-thumb,pbody::-webkit-scrollbar-thumb,optbody::-webkit-scrollbar-thumb{background:linear-gradient(hsla(46,25%,55%,.7),hsla(46,25%,40%,.7)) !important;border-radius:4px}
stxt::-webkit-scrollbar-track,pbody::-webkit-scrollbar-track,optbody::-webkit-scrollbar-track{background:hsla(240,12%,3%,.3) !important}
.optbody input:focus,.optbody textarea:focus{border-color:hsl(46,25%,60%) !important;box-shadow:0 0 0 2px hsla(46,25%,55%,0.2) !important;outline:none !important}
danger b{color:hsla(0,100%,68%,0.9) !important;letter-spacing:2px}
stars{background:hsla(240,12%,6%,.6) !important;border:1px solid hsla(46,25%,50%,.4) !important}
stars::before{background:linear-gradient(90deg,hsl(46,25%,60%),hsl(280,70%,60%) 50%,hsl(0,100%,58%)) !important}
.panel{background:linear-gradient(160deg,hsla(240,12%,9%,.98),hsla(240,12%,5%,.99)) !important;backdrop-filter:blur(3px)}
.panel::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(80% 40% at 50% 0%,hsla(46,25%,55%,0.06),transparent);opacity:0.8}
.optmask{background:hsla(240,12%,3%,.6) !important}
.optpanel{border:1px solid hsla(46,25%,52%,0.5) !important;box-shadow:0 30px 80px -20px hsla(240,12%,2%,.95),0 0 60px -20px hsla(46,25%,55%,0.4) !important;background:linear-gradient(160deg,hsla(240,12%,10%,.98),hsla(240,12%,5%,.99)) !important}
stxt p:first-letter{color:hsl(46,25%,60%) !important}
holder{color:hsla(40,8%,60%,.75) !important}
@keyframes ecoAlarm{0%,100%{filter:brightness(1)}50%{filter:brightness(1.6) drop-shadow(0 0 6px hsl(0,100%,58%))}}