/* Extend the existing site theme to native proxy and administrator components. */
html body:is(.runner-management,.subway-proxy,.zw-login){
 --zw-blue:var(--v1-blue);--zw-ink:var(--run-ink);--zw-muted:#54748a;--zw-line:var(--run-line);--zw-paper:var(--run-paper);
 color:var(--run-ink)!important;font:14px/1.5 'Noto Sans SC','Microsoft YaHei',sans-serif!important;
 background:#a9e6f3 url('/static/subway/world/graffiti-room.webp') center top/cover fixed no-repeat!important;
}
html body:is(.runner-management,.subway-proxy) .zw-page{max-width:1200px;padding:20px 24px 34px}
html body:is(.runner-management,.subway-proxy) .zw-hero{
 min-height:136px;padding:23px 158px 22px 22px;border:3px solid #fff;border-bottom:4px solid var(--run-gold);border-radius:22px;
 background:linear-gradient(120deg,#1260b3,#239fe0);box-shadow:0 5px 0 #12537c,0 12px 24px #12537c24;color:#fff;
}
html body:is(.runner-management,.subway-proxy) .zw-hero::before{inset:0;right:0;top:0;width:auto;height:auto;border:0;border-radius:0;background:repeating-linear-gradient(125deg,transparent 0 60px,#ffffff0d 61px 95px,transparent 96px 160px);content:'';pointer-events:none}
html body:is(.runner-management,.subway-proxy) .zw-hero h1{position:relative;color:#fff;font-size:27px;font-weight:900;text-shadow:0 3px #114d86;margin:7px 0 8px;line-height:1.3}
html body:is(.runner-management,.subway-proxy) .zw-kicker{position:relative;font-size:10px;font-weight:850;color:#bfeeff;letter-spacing:1px!important}
html body:is(.runner-management,.subway-proxy) .zw-hero p{position:relative;color:#e3f5ff;font-size:12px;line-height:1.7;max-width:640px}
html body:is(.runner-management,.subway-proxy) .zw-hero img{width:140px;height:132px;right:8px;bottom:0;opacity:1;filter:drop-shadow(0 4px 0 #144c6e35)}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-panel{background:var(--run-paper);border:3px solid #fff;border-radius:20px;box-shadow:0 5px 0 #81b8d8,0 8px 20px #17466b16;padding:22px;min-width:0}
html body:is(.runner-management,.subway-proxy) .zw-grid{gap:20px}
html body:is(.runner-management,.subway-proxy) .zw-panel>h2,
html body:is(.runner-management,.subway-proxy) .proxy-panel-head{
 display:flex;align-items:center;gap:12px;min-height:77px;margin:-22px -22px 20px;padding:14px 20px;
 border:0;border-bottom:4px solid var(--run-gold);border-radius:17px 17px 0 0;background:linear-gradient(115deg,#1364b6,#23a0da);color:#fff;font-size:18px;font-weight:850;text-shadow:0 2px #104d85;
}
html body.subway-proxy .proxy-panel-head h2{color:#fff;font-size:18px;margin:4px 0 0}
html body.subway-proxy .proxy-panel-head small{color:#bfeeff;font-size:10px}
html body.subway-proxy .proxy-panel-head img{width:55px;height:50px;object-fit:contain}
html body.runner-management .manager-art-heading img{width:48px;height:46px}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-btn{
 min-height:38px;border:1px solid #b9d5e6;border-radius:10px;padding:9px 14px;background:#eef8ff;color:#225675;font-size:12px;font-weight:750;
 transition:transform .22s cubic-bezier(.25,1.4,.5,1),background .18s,box-shadow .18s;
}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-btn.primary{
 border:1px solid #dfa526;background:linear-gradient(#ffdf5c,#ffce32);color:#573e10;box-shadow:0 3px 0 #c38a1f;min-height:40px;
}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-btn.primary:hover:not(:disabled){background:linear-gradient(#ffe882,#ffda4e);transform:translateY(-1px);box-shadow:0 4px 0 #c38a1f,0 8px 16px #17344a20}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-btn:active:not(:disabled){transform:translateY(2px) scale(.98)}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-btn:disabled{opacity:.58;cursor:default;box-shadow:none}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-btn.danger{background:#fff0ea;border-color:#e9b7ac;color:#b14336}
html body:is(.runner-management,.subway-proxy,.zw-login) :is(button,a,input,select,textarea):focus-visible{outline:3px solid #218dca80;outline-offset:3px}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-field{gap:8px;margin-bottom:17px}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-field label{color:#294d67;font-size:12px;font-weight:750}
html body:is(.runner-management,.subway-proxy,.zw-login) :is(.zw-field input,.zw-field select,.zw-field textarea,.zw-input){
 min-height:40px;border:1px solid #b9d5e6;border-radius:10px;background:#f6fbff;color:#294d67;font:inherit;padding:10px 12px;box-shadow:0 2px 0 #fff;
}
html body:is(.runner-management,.subway-proxy,.zw-login) :is(input,select,textarea):focus{border-color:#218dca;box-shadow:0 0 0 1px #218dca}
html body:is(.runner-management,.subway-proxy,.zw-login) input[type='checkbox']{accent-color:#168acb;width:17px;height:17px;vertical-align:middle;cursor:pointer}
html body.subway-proxy #quantity{font-size:22px;font-weight:850;text-align:center;background:#f6fbff}
html body.subway-proxy .proxy-packs .zw-btn.active{border-color:#dfa526;background:linear-gradient(#ffdf5c,#ffce32);color:#573e10;box-shadow:0 3px 0 #c38a1f}
html body.subway-proxy .zw-channels .zw-btn.active{border:2px solid #218dca;background:#def2ff;color:#176ea7}
html body.subway-proxy .zw-price{background:#fff3ba;border:1px solid #efd576;border-radius:12px;color:#805618;font-size:30px}
html body:is(.runner-management,.subway-proxy) .zw-stats{gap:10px;margin:20px 0}
html body.runner-management .zw-stat{min-height:98px;background:#f4fcff;border:2px solid #fff;border-bottom:4px solid #56a8bc;border-radius:14px;box-shadow:0 4px 0 #19567632;padding:14px 70px 14px 15px}
html body.runner-management .zw-stat:nth-child(3n+2){background:#fff8db;border-bottom-color:#f1be3c}
html body.runner-management .zw-stat:nth-child(3n){background:#fff0e7;border-bottom-color:#ed775a}
html body:is(.runner-management,.subway-proxy) .zw-stat span{color:#526a73;font-size:12px;font-weight:700}
html body:is(.runner-management,.subway-proxy) .zw-stat strong{color:#173a4e;font-size:26px;font-weight:850;overflow-wrap:anywhere;line-height:1.4}
html body.subway-proxy .zw-stats{gap:0;background:#e5f5ff;border:3px solid #fff;border-bottom:4px solid var(--run-gold);box-shadow:0 5px 0 #81b8d8}
html body.subway-proxy .zw-stat{background:#f4fcff}
html body.subway-proxy .zw-stat:nth-child(2){background:#fff8db}
html body.subway-proxy .zw-stat:nth-child(3){background:#fff0e7}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-note{color:#54748a;font-size:12px;line-height:1.75}
html body:is(.runner-management,.subway-proxy) .zw-tag{border:1px solid #bfdfed;background:#e4f4ff;color:#225675;font-size:10px;font-weight:750;border-radius:6px;padding:4px 8px}
html body:is(.runner-management,.subway-proxy) .zw-tag.gold{border-color:#efd576;background:#fff3ba;color:#805618}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-result{background:#edf9ee;color:#346744;border:1px solid #a4d3a9;border-radius:13px;box-shadow:0 3px 0 #aad2b1;font-size:12px;line-height:1.7}
html body:is(.runner-management,.subway-proxy,.zw-login) .zw-result.error{background:#fff0e9;color:#9c4e35;border-color:#e7b5a1;box-shadow:0 3px 0 #d9ae9a}
html body:is(.runner-management,.subway-proxy) .zw-table{font-size:12px;line-height:1.7}
html body:is(.runner-management,.subway-proxy) .zw-table th{background:#e5f5ff;color:#346686;font-weight:750}
html body:is(.runner-management,.subway-proxy) .zw-table :is(th,td){border-bottom:1px solid #cfe3ed;padding:13px 10px}
html body:is(.runner-management,.subway-proxy) .zw-table tbody tr:nth-child(even){background:#f1f8fc}
html body:is(.runner-management,.subway-proxy) .zw-table tbody tr:hover{background:#e4f4ff}
html body:is(.runner-management,.subway-proxy) .zw-empty{background:#f1f8fc;border:1px solid #d4e7f1;border-radius:13px;color:#54748a}
html body:is(.runner-management,.subway-proxy) .zw-modal{background:#072d5570;z-index:90}
html body:is(.runner-management,.subway-proxy) .zw-modal>.zw-panel{width:min(640px,100%);max-width:100%;min-width:0;margin:0;border-radius:22px;box-shadow:0 7px 0 #114f77,0 24px 70px #072d5559;max-height:90dvh}
html body:is(.runner-management,.subway-proxy) .zw-key{background:#e8f5ff;border:1px solid #b9d5e6;color:#225675;border-radius:10px}
/* Management chrome follows the user dashboard's station header and sidebar. */
html body.runner-management .zw-manager{grid-template-columns:232px minmax(0,1fr)}
html body.runner-management .zw-side{background:#f7fcff;border-right:1px solid #cde0f1;padding:20px 14px}
html body.runner-management .zw-brand{font-size:16px;color:#19557f;gap:9px;margin-bottom:21px}
html body.runner-management .zw-brand img{width:42px;height:42px;border:2px solid var(--run-gold);border-radius:9px;object-fit:cover;background:white}
html body.runner-management .zw-side h3{color:#6983a0;margin:16px 10px 9px;font-size:11px}
html body.runner-management .zw-side button{border:1px solid transparent;border-radius:12px;background:transparent;color:#173451;min-height:44px;padding:10px 12px;transition:background .18s,transform .22s}
html body.runner-management .zw-side button:hover{background:#e5f1ff}
html body.runner-management .zw-side button.active{background:#fff3ba;border-color:#efd576;color:#805618;font-weight:800;box-shadow:0 2px 0 #e4bf59}
html body.runner-management .zw-top{height:68px;color:#fff;background:#167cb5 url('/static/subway/world/graffiti-room.webp') center 18%/cover;border-bottom:4px solid var(--run-gold);box-shadow:0 4px 16px #102c3b30}
html body.runner-management .zw-top>.zw-buttons{align-items:center}
html body.runner-management .zw-top .zw-tag{background:#fff3ba;border-color:#efd576;color:#805618}
html body.runner-management .zw-top .zw-btn{background:#eaf6ff;color:#19557f;border-color:#c3dce9}
html body.runner-management .zw-manager-frame{height:calc(100dvh - 68px)}
/* The separate administrator login uses the same game login card language. */
html body.zw-login{min-height:100dvh;padding:30px 16px;display:grid;place-items:center}
html body.zw-login>.zw-panel{width:min(440px,100%);padding:28px;overflow:hidden}
html body.zw-login .zw-login-brand{position:relative;margin:-28px -28px 23px;padding:23px 118px 23px 23px;min-height:145px;background:linear-gradient(115deg,#1364b6,#23a0da);border-bottom:4px solid var(--run-gold);color:white}
html body.zw-login .zw-login-brand h1{font-size:24px;color:#fff;text-shadow:0 3px #114d86;margin:8px 0}
html body.zw-login .zw-login-brand .zw-kicker{color:#bfeeff;font-size:10px;font-weight:850}
html body.zw-login .zw-login-brand .zw-note{color:#e3f5ff;font-size:11px;margin:8px 0 0}
html body.zw-login .zw-login-brand img{position:absolute;right:10px;bottom:12px;width:102px;height:120px;object-fit:contain}
html body.zw-login .zw-btn.primary{min-height:48px}
@media(max-width:768px){
 html body:is(.runner-management,.subway-proxy) .zw-page{padding:14px 12px 28px}
 html body:is(.runner-management,.subway-proxy) .zw-hero{padding:18px 119px 19px 17px;min-height:127px;border-radius:18px}
 html body:is(.runner-management,.subway-proxy) .zw-hero h1{font-size:23px}
 html body:is(.runner-management,.subway-proxy) .zw-hero img{width:110px;height:119px;right:5px}
 html body:is(.runner-management,.subway-proxy) .zw-hero p{font-size:10px}
 html body:is(.runner-management,.subway-proxy) .zw-panel{padding:18px}
 html body:is(.runner-management,.subway-proxy) .zw-panel>h2,
 html body.subway-proxy .proxy-panel-head{margin:-18px -18px 18px;padding:13px 16px;font-size:17px;min-height:75px}
 html body.subway-proxy .proxy-panel-head h2{font-size:16px}
 html body.runner-management .zw-stat{padding:12px 9px;min-height:118px}
 html body.runner-management .manager-stat-art{position:static;display:block;margin-bottom:5px;width:34px;height:34px}
 html body:is(.runner-management,.subway-proxy) .zw-stat strong{font-size:23px}
 html body:is(.runner-management,.subway-proxy) .zw-stat span{font-size:10px}
 html body.runner-management .zw-top{height:auto;min-height:58px;padding:10px 12px;gap:8px;flex-wrap:wrap}
 html body.runner-management .zw-side{padding:12px;gap:6px}
 html body.runner-management .zw-side button{padding:7px 9px;background:#eaf4ff;border-color:#d0e3f4;font-size:11px;min-height:36px}
 html body.runner-management .manager-menu-art{width:23px;height:23px}
 html body.runner-management .zw-manager-frame{height:calc(100dvh - 110px);min-height:450px}
 html body.zw-login>.zw-panel{padding:23px}
 html body.zw-login .zw-login-brand{margin:-23px -23px 23px}
}
@media(prefers-reduced-motion:reduce){html body:is(.runner-management,.subway-proxy,.zw-login) :is(.zw-btn,.zw-side button){transition:none}}
