/* Function-specific art: character portraits, boards, rewards and collectibles. */
body .v1-function-entry{position:relative;min-height:110px!important;padding:10px 7px!important;background:linear-gradient(160deg,#fff 64%,var(--entry-bg))!important;border-radius:15px!important;box-shadow:0 4px 0 #24658b24!important;gap:5px!important;overflow:hidden}
body .v1-function-icon{width:66px!important;height:62px!important;overflow:visible!important}
body .v1-function-icon img{filter:drop-shadow(0 3px 2px #1a476529);transition:transform .25s cubic-bezier(.2,.9,.3,1.3)}
body .v1-function-entry:hover .v1-function-icon img{transform:translateY(-3px) rotate(-4deg)}
body .v1-function-entry>span:last-child{font-size:12px;line-height:1.4}
body .v1-world-icon{width:44px!important;height:44px!important}
body .v1-function-group h3{gap:10px!important}
body .v1-page>h1{background-image:var(--component-art,url('/static/subway/semantic/group_game.webp')),url('/static/subway/world/graffiti-room.webp')!important;background-position:right 18px center,center 20%!important;background-size:110px auto,cover!important;padding-right:125px!important}
body .v1-page>.v1-basic-info .v1-console-head{background-image:url('/static/subway/semantic/console.webp')!important}
body .v1-metric::after{background-image:url('/static/subway/semantic/remaining.webp')!important}
body .v1-metric:nth-child(2)::after{background-image:url('/static/subway/semantic/purchased.webp')!important}
body .v1-metric:nth-child(3)::after{background-image:url('/static/subway/semantic/purchase.webp')!important}
body[data-component-art='meal'] .v1-metric:first-child::after{background-image:url('/static/subway/semantic/items.webp')!important}
body[data-component-art='meal'] .v1-metric:nth-child(2)::after{background-image:url('/static/subway/semantic/meal.webp')!important}
body[data-component-art='card'] .v1-metric:first-child::after{background-image:url('/static/subway/semantic/card.webp')!important}
body[data-component-art='card'] .v1-metric:nth-child(2)::after{background-image:url('/static/subway/semantic/type_list.webp')!important}
body .v1-home-stats .v1-metric:first-child::after{background-image:url('/static/subway/semantic/user_list.webp')!important}
body .v1-home-stats .v1-metric:nth-child(2)::after{background-image:url('/static/subway/semantic/card.webp')!important}
body .v1-home-stats .v1-metric:nth-child(3)::after{background-image:url('/static/subway/semantic/meal.webp')!important}
body.v1-tools-page .v1-tool-head,body.v1-tools-page .v1-tool-card:first-child .v1-tool-head{background-image:var(--component-art),url('/static/subway/world/graffiti-room.webp')!important;background-size:70px auto,cover!important}
body.v1-tools-page .v1-tool-card:nth-child(2) .v1-tool-head{background-image:url('/static/subway/semantic/query.webp'),url('/static/subway/world/graffiti-room.webp')!important}
body.v1-tools-page .v1-tool-card:nth-child(3) .v1-tool-head{background-image:url('/static/subway/semantic/security.webp'),url('/static/subway/world/graffiti-room.webp')!important}
html body.zw-records .account-records-balance::after{background-image:url('/static/subway/semantic/account_records.webp')!important}
body[data-component-art='xiaobai'] .generator-panel::after{background-image:url('/static/subway/semantic/xiaobai.webp')!important}
body .runner-heading-art{width:68px!important;height:50px!important;object-fit:contain!important}
.runner-management .manager-menu-art{width:30px;height:30px;object-fit:contain;flex:none}
.runner-management .zw-side button{display:flex;align-items:center;gap:9px}
.runner-management .zw-stat{position:relative;padding-right:65px;overflow:hidden}
.runner-management .manager-stat-art{position:absolute;right:8px;bottom:9px;width:56px;height:56px;object-fit:contain}
.runner-management .manager-art-heading{display:flex;gap:10px;align-items:center}
.runner-management .manager-art-heading img{width:42px;height:42px;object-fit:contain}
body .v1-row{border-radius:13px!important}
body .el-dialog__header{background-image:var(--component-art,url('/static/subway/semantic/settings.webp'))!important;background-size:50px auto!important}
html body:not(.v1-login) .el-dialog__header::after{background-image:var(--component-art,url('/static/subway/semantic/items.webp'))!important}
html body .runner-settings-dialog .el-dialog__header::after{background-image:url('/static/subway/semantic/settings.webp')!important}
html body .runner-messages-dialog .el-dialog__header::after,html body .runner-message-detail .el-dialog__header::after{background-image:url('/static/subway/semantic/messages.webp')!important}
html:root body.zw-recharge-flow[data-link-kind='fixed'] .card-header::after{background-image:url('/static/subway/semantic/profile.webp')!important}
html:root body.zw-recharge-flow[data-link-kind='custom'] .card-header::after{background-image:url('/static/subway/semantic/mmsz.webp')!important}
body[data-component-art='plcz1'] .card-header{background-image:url('/static/subway/semantic/plcz1.webp')!important;background-position:right 18px center!important;background-repeat:no-repeat!important;background-size:90px!important;padding-right:120px!important}
/* Proxy pool is a game supply station, with real quota and order data. */
body.subway-proxy{background:#e5f4fe;background-image:linear-gradient(180deg,#d7f1ff,#f5f9ff 640px);color:#193d61}
.subway-proxy .zw-page{max-width:1160px;padding-top:18px}
.subway-proxy .zw-hero{padding:28px 168px 25px 25px;border:3px solid white;border-bottom:6px solid #127fbf;background:linear-gradient(120deg,#067dbd,#27b1d7);color:white;border-radius:24px;box-shadow:0 6px 0 #a8d4ea}
.subway-proxy .zw-hero::before{content:'';position:absolute;width:250px;height:250px;border:35px solid #ffffff12;border-radius:50%;right:-45px;top:-105px;pointer-events:none}
.subway-proxy .zw-kicker{color:#ffdc65;letter-spacing:1px;font-weight:900}
.subway-proxy .zw-hero h1{font-size:30px;text-shadow:0 3px #075a90;font-weight:900}
.subway-proxy .zw-hero p{color:#e4faff;font-size:13px;max-width:640px;margin-top:13px}
.subway-proxy .zw-hero img{width:142px;height:142px;right:12px;bottom:8px;filter:drop-shadow(0 6px 2px #064e8645);opacity:1}
.subway-proxy .zw-stats{gap:0;border:3px solid white;border-radius:20px;background:#fff;box-shadow:0 5px 0 #b8dded;overflow:hidden}
.subway-proxy .zw-stat{position:relative;border:0;border-radius:0;padding:18px 13px 18px 70px;background:linear-gradient(145deg,#effaff,#fff)}
.subway-proxy .zw-stat+ .zw-stat{border-left:1px dashed #b5d8eb}
.subway-proxy .zw-stat:nth-child(2){background:linear-gradient(145deg,#fff7db,#fff)}
.subway-proxy .zw-stat:nth-child(3){background:linear-gradient(145deg,#ebf9f0,#fff)}
.subway-proxy .zw-stat img{position:absolute;left:9px;top:18px;width:53px;height:57px;object-fit:contain}
.subway-proxy .zw-stat strong{color:#136faa;font-size:32px;margin-top:5px}
.subway-proxy .zw-stat span{color:#476882;font-weight:700}
.subway-proxy .zw-panel{border:2px solid #fff;border-bottom:5px solid #bad8eb;box-shadow:0 3px 14px #1858790c;padding:22px;border-radius:20px}
.subway-proxy .proxy-panel-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px dashed #c6dbea}
.subway-proxy .proxy-panel-head img{width:58px;height:55px;object-fit:contain;filter:drop-shadow(0 2px 2px #174e7420)}
.subway-proxy .proxy-panel-head h2{margin:4px 0 0;font-size:18px;color:#1b4868}
.subway-proxy .proxy-panel-head small{font-size:10px;letter-spacing:1px;color:#1489b7;font-weight:900}
.subway-proxy .zw-field input{background:#f0f9ff;border:2px solid #c7e5f6;font-size:21px;font-weight:800;text-align:center;padding:14px}
.subway-proxy .proxy-packs{display:grid;grid-template-columns:repeat(3,1fr)}
.subway-proxy .zw-btn{border-radius:12px;border-width:2px;transition:transform .2s cubic-bezier(.2,.8,.3,1.3),background .2s}
.subway-proxy .proxy-packs .zw-btn.active{background:#ffdf6c;border-color:#ecc04c;color:#6f4c13;box-shadow:0 3px 0 #d6a93e}
.subway-proxy .zw-btn.primary{background:linear-gradient(#28aae5,#0789ce);border-color:#56bbec;border-bottom:4px solid #066cad;box-shadow:none;color:#fff;min-height:51px}
.subway-proxy .zw-price{background:#fff7d9;border:1px solid #ffe3a2;border-radius:13px;color:#9b6516;padding:14px 16px;font-size:31px;margin:18px 0}
.subway-proxy .zw-price small{display:block;margin-top:3px;color:#9a7c42}
.subway-proxy .zw-note{color:#59748a;font-size:12px;line-height:1.85}
.subway-proxy .zw-tag{border:1px solid #c4e4fb;border-radius:8px}
.subway-proxy .zw-tag.gold{border-color:#f6d56e}
.subway-proxy .zw-channels .active{background:#dff5ff;border-color:#1286bf}
.subway-proxy .zw-result{display:flex;align-items:center;gap:12px;border:1px solid #b6e2ce;font-weight:700}
.subway-proxy .zw-result.error{border-color:#f2c9b9;background:#fff2e9;color:#9c4d2e}
.subway-proxy .zw-result img{width:38px;height:38px;object-fit:contain;flex:none}
.subway-proxy .zw-table th{background:#eaf6fd;color:#346686}
.subway-proxy .zw-table td{border-bottom:1px dashed #d7e7f1;line-height:1.65}
.subway-proxy .zw-table .zw-note{white-space:normal;min-width:150px;max-width:300px}
.subway-proxy .zw-empty{background:#f7fbfe;border-radius:14px;font-size:13px}
.subway-proxy .zw-empty img{width:86px;height:86px;object-fit:contain}
.subway-proxy .zw-modal .zw-panel{border-bottom-color:#1494cb}
/* Both fixed and custom links use four item columns at every screen size. */
html:root body.zw-recharge-flow .detail-grid,html:root body.zw-recharge-flow .items-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
html:root body.zw-recharge-flow .detail-card,html:root body.zw-recharge-flow .item-card{min-width:0!important;padding:12px 7px!important;border-radius:11px!important;min-height:62px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;background:#f4faff!important;box-shadow:0 3px 0 #d5e8f3!important;transition:background .18s,transform .22s cubic-bezier(.2,.9,.3,1.3)!important}
html:root body.zw-recharge-flow .detail-card .el-checkbox,html:root body.zw-recharge-flow .item-card .el-checkbox{height:auto!important;max-width:100%!important;width:100%!important;white-space:normal!important;align-items:center!important;justify-content:center!important}
html:root body.zw-recharge-flow .detail-card .el-checkbox__label,html:root body.zw-recharge-flow .item-card .el-checkbox__label{white-space:normal!important;overflow-wrap:anywhere!important;font-size:12px!important;line-height:1.45!important;padding-left:4px!important;font-weight:700!important}
html:root body.zw-recharge-flow .item-card.active,html:root body.zw-recharge-flow .detail-card.owned{background:#def2ff!important;border-color:#2d9dd8!important;color:#176ea7!important}
html:root body.zw-recharge-flow .item-card.active{box-shadow:inset 0 0 0 1px #2d9dd8,0 3px 0 #aad8f0!important}
html:root body.zw-recharge-flow .channel-categories{width:100%;display:grid;gap:18px}
html:root body.zw-recharge-flow .channel-category h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:14px;color:#225675;font-weight:900}
html:root body.zw-recharge-flow .channel-category h3 img{width:32px;height:32px;object-fit:contain}
html:root body.zw-recharge-flow .channel-category h3 small{font-size:10px;color:#6a8699;font-weight:500;margin-left:auto}
html:root body.zw-recharge-flow .channel-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
html:root body.zw-recharge-flow .channel-category:last-child .channel-grid{grid-template-columns:1fr!important}
html:root body.zw-recharge-flow .channel-option{border-radius:13px;min-width:0;padding:12px 10px;box-shadow:0 3px 0 #d6e9f4;background:#f8fcff}
html:root body.zw-recharge-flow .channel-option.active{border-color:#2199cf;background:#e3f5ff;box-shadow:0 3px 0 #80c7e9}
html:root body.zw-recharge-flow .channel-check{flex-shrink:0}
.runner-feedback{position:fixed;z-index:9999;top:max(18px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(460px,calc(100vw - 24px));display:flex;gap:12px;align-items:center;padding:15px 12px;background:#fff8dd;border:2px solid #efce71;border-bottom:5px solid #dab050;border-radius:17px;box-shadow:0 10px 32px #17476a36;animation:runner-tip-in .3s cubic-bezier(.2,.8,.3,1.2);color:#5e4e28}
.runner-feedback>img{width:47px;height:47px;object-fit:contain;flex:none}
.runner-feedback>div{flex:1;min-width:0}
.runner-feedback strong{font-size:14px;font-weight:900}
.runner-feedback p{font-size:12px;line-height:1.7;margin:4px 0 0;overflow-wrap:anywhere}
.runner-feedback>button{align-self:flex-start;flex:none;background:#ffffffa0;color:inherit;border:0;width:30px;height:30px;border-radius:9px;font-size:22px;cursor:pointer}
.runner-feedback.success{background:#edf9ee;border-color:#a4d3a9;color:#346744}
.runner-feedback.error{background:#fff0e9;border-color:#e7b5a1;color:#9c4e35}
@keyframes runner-tip-in{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}
@media(max-width:768px){
 body .v1-function-entry{min-height:103px!important}
 body .v1-function-icon{width:59px!important;height:55px!important}
 .subway-proxy .zw-hero{padding:22px 117px 21px 19px}
 .subway-proxy .zw-hero h1{font-size:25px}
 .subway-proxy .zw-hero img{width:106px;height:110px;right:4px;bottom:18px}
 .subway-proxy .zw-hero p{font-size:11px}
 .subway-proxy .zw-stat{padding:10px;text-align:center}
 .subway-proxy .zw-stat img{position:static;display:block;margin:0 auto 3px;width:43px;height:43px}
 .subway-proxy .zw-stat strong{font-size:26px}
 .subway-proxy .zw-stat span{font-size:11px}
 .subway-proxy .zw-panel{padding:17px}
 .subway-proxy .proxy-panel-head h2{font-size:16px}
 html:root body.zw-recharge-flow .detail-grid,html:root body.zw-recharge-flow .items-grid{gap:5px!important}
 html:root body.zw-recharge-flow .detail-card,html:root body.zw-recharge-flow .item-card{padding:10px 4px!important;min-height:68px!important}
 html:root body.zw-recharge-flow .detail-card .el-checkbox__label,html:root body.zw-recharge-flow .item-card .el-checkbox__label{font-size:11px!important;padding:0!important}
 html:root body.zw-recharge-flow .detail-card .el-checkbox__input,html:root body.zw-recharge-flow .item-card .el-checkbox__input{display:none!important}
 html:root body.zw-recharge-flow .channel-option{padding:10px 6px!important;flex-direction:column!important;gap:5px!important;text-align:center}
 html:root body.zw-recharge-flow .channel-copy strong{font-size:11px!important}
 html:root body.zw-recharge-flow .channel-copy small{font-size:9px!important}
 html:root body.zw-recharge-flow .channel-check{display:none}
 html:root body.zw-recharge-flow .channel-option.active .channel-mark{background:#148fc5;color:white}
 html:root body.zw-recharge-flow .channel-category:last-child .channel-option{flex-direction:row!important;text-align:left}
}
@media(prefers-reduced-motion:reduce){.runner-feedback{animation:none}body .v1-function-icon img,.subway-proxy .zw-btn{transition:none}}

body[data-component-art="znx"]{--component-art:url("/static/subway/semantic/znx.webp")}
body[data-component-art="card"]{--component-art:url("/static/subway/semantic/card.webp")}
body[data-component-art="admin_list"]{--component-art:url("/static/subway/semantic/admin_list.webp")}
body[data-component-art="mylogs"]{--component-art:url("/static/subway/semantic/mylogs.webp")}
body[data-component-art="gd"]{--component-art:url("/static/subway/semantic/gd.webp")}
body[data-component-art="zck"]{--component-art:url("/static/subway/semantic/zck.webp")}
body[data-component-art="console"]{--component-art:url("/static/subway/semantic/console.webp")}
body[data-component-art="mmsz"]{--component-art:url("/static/subway/semantic/mmsz.webp")}
body[data-component-art="log"]{--component-art:url("/static/subway/semantic/log.webp")}
body[data-component-art="gg"]{--component-art:url("/static/subway/semantic/gg.webp")}
body[data-component-art="SPlb"]{--component-art:url("/static/subway/semantic/SPlb.webp")}
body[data-component-art="meal"]{--component-art:url("/static/subway/semantic/meal.webp")}
body[data-component-art="account_records"]{--component-art:url("/static/subway/semantic/account_records.webp")}
body[data-component-art="system"]{--component-art:url("/static/subway/semantic/system.webp")}
body[data-component-art="ip_blacklist"]{--component-art:url("/static/subway/semantic/ip_blacklist.webp")}
body[data-component-art="type_list"]{--component-art:url("/static/subway/semantic/type_list.webp")}
body[data-component-art="item_list"]{--component-art:url("/static/subway/semantic/item_list.webp")}
body[data-component-art="plcz1"]{--component-art:url("/static/subway/semantic/plcz1.webp")}
body[data-component-art="xiaobai"]{--component-art:url("/static/subway/semantic/xiaobai.webp")}
body[data-component-art="cxcd"]{--component-art:url("/static/subway/semantic/cxcd.webp")}
body[data-component-art="feedback_mgr"]{--component-art:url("/static/subway/semantic/feedback_mgr.webp")}
body[data-component-art="user_list"]{--component-art:url("/static/subway/semantic/user_list.webp")}
