.classic-vip { position:absolute; left:390px; top:-4px; width:42px; height:40px; padding:0; border:0; background:transparent url('/ui/vip/menu.png?v=f662b69c16f31ee0') no-repeat; cursor:pointer; }
.classic-vip:is(:hover,:focus-visible) { background-image:url('/ui/vip/menu-hover.png?v=c5ea3ddb5a9a40c1'); }
.classic-vip:is(:active,[aria-expanded='true']) { background-image:url('/ui/vip/menu-pressed.png?v=de7a78b3f6f24e6e'); }
.vip-window { position:absolute; left:0; top:0; width:313px; height:326px; padding:0; border:0; background:url('/ui/vip/frame.png?v=9a93b3bf415c0553') no-repeat; transform:scale(var(--vip-scale,1)); transform-origin:top left; color:#e9cb67; font:12px/16px Arial,sans-serif; text-shadow:1px 1px #63451f; }
.vip-window[hidden] { display:none; }
.vip-window button { position:absolute; padding:0; border:0; background-color:transparent; background-repeat:no-repeat; }
.vip-window button:disabled { cursor:default; opacity:1; }
.vip-window button:focus-visible,.classic-vip:focus-visible { outline:1px solid #ffe3a0; outline-offset:1px; }
.vip-drag { position:absolute; left:50px; top:16px; width:218px; height:38px; cursor:grab; touch-action:none; }
.vip-drag:active { cursor:grabbing; }
.vip-close { left:278px; top:35px; width:14px; height:14px; background-image:url('/ui/vip/close.png?v=ba8361940be59439'); }
.vip-close:is(:hover,:focus-visible) { background-image:url('/ui/vip/close-hover.png?v=3238bc8255303eae'); }
.vip-close:active { background-image:url('/ui/vip/close-pressed.png?v=fda8b0bb7e9037b9'); }
.vip-level { position:absolute; left:90px; top:57px; margin:0; }
.vip-remaining { position:absolute; left:40px; top:74px; width:236px; margin:0; text-align:center; font:11px/14px Arial,sans-serif; }
.vip-service { width:109px; height:21px; background-image:var(--vip-normal); }
.vip-service:enabled:is(:hover,:focus-visible) { background-image:var(--vip-hover); }
.vip-service:enabled:active { background-image:var(--vip-pressed); }
.vip-service:disabled { background-image:var(--vip-disabled); }
.vip-window .vip-service-label { --vip-normal:url('/ui/vip/service-skin.png?v=22c9d52c3792837f'); --vip-hover:url('/ui/vip/service-skin-hover.png?v=30b0f62949cbeb52'); --vip-pressed:url('/ui/vip/service-skin-pressed.png?v=a0556b432c6561b7'); --vip-disabled:url('/ui/vip/service-skin-disabled.png?v=38cbceae99490a27'); color:#ffe9a4; font:bold 9px/20px Arial,sans-serif; text-shadow:0 -1px 0 #fff3c388,0 1px 0 #6e3506,1px 1px 0 #502607; white-space:nowrap; }
.vip-check { left:120px; top:280px; width:76px; height:20px; background-image:url('/ui/vip/check.png?v=79164fd8603293c6'); }
.vip-check:is(:hover,:focus-visible) { background-image:url('/ui/vip/check-hover.png?v=99b1c33b1db8cbdf'); }
.vip-check:active { background-image:url('/ui/vip/check-pressed.png?v=2ef9c4829a4676f8'); }
.vip-forum { left:200px; top:280px; width:76px; height:20px; background-image:url('/ui/vip/forum.png?v=924807dd63a529c6'); }
.vip-status { position:absolute; z-index:2; left:14px; top:334px; width:285px; max-height:48px; overflow:auto; box-sizing:border-box; margin:0; padding:5px; background:url('/ui/panel-texture.png?v=93164c996907e574'); color:#fff0c1; font:11px/16px Arial,sans-serif; overflow-wrap:anywhere; }

.vip-window .vip-service-label:enabled:is(:hover,:focus-visible) { color:#fff7d6; }
.vip-window .vip-service-label:enabled:active { color:#e6bd68; text-shadow:0 1px 0 #f2d49c,0 -1px 0 #502804; }
.vip-window .vip-service-label:disabled { color:#aaa; text-shadow:1px 1px #333; }
#vip-service-layer { position:absolute; z-index:9; left:0; top:18px; transform:scale(var(--vip-dialog-scale,1)); transform-origin:top left; color:#fff; font:11px/14px monospace; text-shadow:1px 1px #000; }
.vip-warehouse-dialog,.vip-repair-dialog { position:relative; padding:0; border:0; }
.vip-warehouse-dialog { width:363px; height:342px; background:url('/ui/vip/warehouse-frame.png?v=3039ff40388f6fdd') no-repeat; }
.vip-repair-dialog { width:362px; height:356px; background:url('/ui/vip/repair-frame.png?v=76ca72e388e0934c') no-repeat; }
#vip-service-layer button { position:absolute; padding:0; border:0; background-color:transparent; background-repeat:no-repeat; }
#vip-service-layer button:disabled { opacity:.6; cursor:default; }
#vip-service-layer button:focus-visible { outline:1px solid #ffe3a0; }
.vip-service-close { left:330px; top:10px; width:14px; height:14px; background-image:url('/ui/vip/close.png?v=ba8361940be59439'); }
.vip-warehouse-selectors { position:absolute; left:12px; top:33px; display:flex; flex-direction:column; gap:0; }
#vip-service-layer .vip-warehouse-selectors button { position:relative; width:110px; height:30px; background-image:var(--bank-normal); }
#vip-service-layer .vip-warehouse-selectors button:is(:hover,:focus-visible,[aria-pressed='true']) { background-image:var(--bank-active); }
.vip-warehouse-grid { position:absolute; left:129px; top:45px; display:grid; grid-template-columns:repeat(5,43px); grid-template-rows:repeat(4,43px); }
#vip-service-layer .vip-warehouse-grid button { position:relative; width:42px; height:42px; }
.vip-warehouse-grid img { width:40px; height:40px; object-fit:contain; }
.vip-warehouse-page { position:absolute; left:240px; top:226px; }
.vip-warehouse-savings { position:absolute; left:84px; top:267px; width:85px; height:22px; padding:0 3px; overflow:hidden; font-size:11px; line-height:22px; text-align:left; }
.vip-warehouse-amount { position:absolute; left:255px; top:267px; width:90px; height:22px; border:0; padding:0 3px; background:transparent; color:white; font-size:12px; line-height:22px; text-align:left; }
.vip-warehouse-withdraw { left:80px; top:300px; width:64px; height:22px; background-image:url('/ui/vip/withdraw.png?v=c1daa3a2713e0008'); }
.vip-warehouse-withdraw:active { background-image:url('/ui/vip/withdraw-pressed.png?v=a05c8720140011f3'); }
.vip-warehouse-deposit { left:215px; top:300px; width:64px; height:22px; background-image:url('/ui/vip/deposit.png?v=565f6c612bd24fcd'); }
.vip-warehouse-deposit:active { background-image:url('/ui/vip/deposit-pressed.png?v=d38abd6e54c1a047'); }
.vip-warehouse-unlock { position:absolute; left:128px; top:44px; width:215px; padding:12px; background:url('/ui/panel-texture.png?v=93164c996907e574'); }
.vip-warehouse-unlock input { width:100%; margin:8px 0; }
#vip-service-layer .vip-warehouse-unlock button { position:relative; color:white; background:#21475a; padding:5px 12px; }
.vip-service-message { position:absolute; left:16px; top:344px; width:330px; margin:0; padding:4px; background:url('/ui/panel-texture.png?v=93164c996907e574'); color:#fff0bd; font-size:11px; }
.vip-service-message:empty { display:none; }
.vip-repair-dialog .vip-service-message { top:358px; }
.vip-repair-items img { position:absolute; width:39px; height:39px; object-fit:contain; }
.vip-repair-items span { position:absolute; width:112px; font-size:10px; line-height:12px; color:yellow; max-height:29px; overflow:auto; }
.vip-repair-total { position:absolute; left:165px; top:283px; width:80px; font-size:11px; color:yellow; }
.vip-repair-submit { left:100px; top:310px; width:64px; height:22px; background-image:url('/ui/vip/repair-submit.png?v=dcbbb31ecdd44558'); }
.vip-repair-submit:active { background-image:url('/ui/vip/repair-submit-pressed.png?v=d431627dc897026a'); }
.vip-repair-cancel { left:220px; top:310px; width:64px; height:22px; background-image:url('/ui/vip/cancel.png?v=4ea615fe6406fd99'); }
.vip-repair-cancel:active { background-image:url('/ui/vip/cancel-pressed.png?v=246744ebe606d2b6'); }

.vip-warehouse-prev { left:190px; top:223px; width:20px; height:20px; background-image:url('/ui/vip/page-prev.png?v=fd968d1bed79e53c'); }
.vip-warehouse-next { left:280px; top:223px; width:20px; height:20px; background-image:url('/ui/vip/page-next.png?v=aad6eb227ec5283d'); }
.vip-repair-money { position:absolute; left:70px; top:283px; width:40px; height:20px; }
.vip-service-message { max-height:40px; overflow:auto; }

.vip-city-dialog { position:relative; left:0; top:0; transform:none; }
.vip-city-heading { position:absolute; left:40px; top:57px; width:236px; margin:0; text-align:center; font-size:12px; }
.vip-city-dialog .vip-service-message { top:334px; left:14px; width:285px; }

#vip-service-layer .npc-compose { top:0; }

/* Loot settings reuse the mobile kit's panel texture and readable, scrollable rows. */
.vip-loot-dialog{width:100%;height:100%;box-sizing:border-box;padding:20px;display:flex;flex-direction:column;gap:12px;background:url('/ui/mobile/popbg.png?v=3add4e59f44b5c98') 0 0/100% 100%;color:#eee4ce;text-shadow:0 1px 2px #000;font:14px/1.4 Georgia,serif}
.vip-loot-dialog[hidden]{display:none}
.vip-loot-dialog header{display:flex;align-items:center;justify-content:space-between;flex:none}
.vip-loot-dialog h2{margin:2px 0 0;font-size:24px;color:#e2c47c}
.vip-loot-dialog header small{color:#b9a579;font:10px/1.3 monospace;letter-spacing:2px}
#vip-service-layer .vip-loot-close{position:static;width:44px;height:44px;color:#e2c47c;font:28px Georgia,serif;background:url('/ui/mobile/btnB.png?v=6985addbe008ac4c') 0 0/100% 100%}
.vip-loot-intro{margin:0;color:#c8c1b0;font-size:13px;flex:none}
.vip-loot-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;flex:1;scrollbar-width:thin}
.vip-loot-choice{display:flex;align-items:center;gap:10px;min-height:56px;padding:7px 4px;border-bottom:1px solid #a8894a44;cursor:pointer;box-sizing:border-box}
.vip-loot-choice img{width:32px;height:32px;object-fit:contain;flex:none}
.vip-loot-choice span{flex:1;min-width:0}
.vip-loot-choice b{display:block;color:#ecd399;font-size:14px}
.vip-loot-choice small{display:block;color:#aaa99e;font-size:11px;line-height:1.35;margin-top:3px}
.vip-loot-choice input{width:22px;height:22px;accent-color:#d7b769;flex:none;cursor:pointer}
.vip-loot-choice:focus-within{outline:1px solid #e2c47c;outline-offset:-1px}
.vip-loot-notes{color:#b7af9d;font-size:11px;line-height:1.5}
.vip-loot-notes p{margin:12px 0 0}
.vip-loot-dialog .vip-service-message{position:static;width:auto;padding:0;margin:0;flex:none;font:12px/1.4 Georgia,serif;color:#ffdb99}
@media(max-height:430px){.vip-loot-dialog{padding:12px 18px;gap:6px}.vip-loot-dialog h2{font-size:20px}.vip-loot-intro{font-size:12px}}
