/* Royal fantasy presentation tokens: every window keeps a complete independent frame. */
:root{--pui-gold:#cba35f;--pui-gold-light:#ffe4a1;--pui-violet:#aa62e6;--pui-crimson:#ec426e;--pui-surface:#08070d;--pui-text:#f4eedf;--pui-muted:#b8adbc;--pui-line:#655035;--pui-radius:5px;--pui-gap:16px}
.pui-module{box-sizing:border-box;color:var(--pui-text);font-family:inherit;color-scheme:dark;scrollbar-color:#78613f #14101c;scrollbar-width:thin}
.pui-module :where(*, *::before,*::after){box-sizing:border-box}
.pui-module[hidden]{display:none!important}
/* Drag only translates a registered shell; its authored transform and aspect stay intact. */
.pui-module.pui-draggable{translate:var(--pui-drag-x,0px) var(--pui-drag-y,0px)}
.pui-module .pui-drag-handle{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.pui-module.pui-dragging,.pui-module.pui-dragging .pui-drag-handle{cursor:grabbing}
.pui-module .pui-drag-handle :is(button,a,input,select,textarea,summary,[role=button],[role=tab],[role=slider]){cursor:auto;touch-action:manipulation;user-select:auto;-webkit-user-select:auto}
#character-frame-dialog.pui-draggable>.pui-drag-titleplate{position:absolute;z-index:5;top:1%;left:5%;right:15%;height:10%;background:transparent}
.pui-module.pui-window{background:radial-gradient(ellipse at 50% 0,#21112c 0,transparent 52%),var(--pui-surface)!important;color:var(--pui-text)!important;border:22px solid transparent!important;border-image:url('/assets/ui/player-modules/frame.svg') 70 fill /22px /0 stretch!important;border-radius:0!important;box-shadow:0 0 0 1px #050409,0 22px 70px #000b!important;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px;overflow:auto;overscroll-behavior:contain}
dialog.pui-window:not([open]){display:none!important}
.pui-window::backdrop{background:#000b;backdrop-filter:blur(5px)}
.pui-window>header,.pui-popover>header{border-bottom:1px solid var(--pui-line);background:linear-gradient(100deg,#17101f,#100d13);color:var(--pui-text);padding:10px 8px 18px;gap:16px}
.pui-window :where(h1,h2,h3,h4){color:var(--pui-gold-light);line-height:1.35;text-wrap:balance}
.pui-window :where(h2){font-size:clamp(22px,2.2vw,32px);margin:0}
.pui-window>header h2,.pui-window .shop-sign h2{padding:3px 14px;border-left:3px solid var(--pui-gold);background:linear-gradient(90deg,#43225380,transparent);text-shadow:0 2px 3px #000}
.pui-window :where(p,small,dt,label,summary){line-height:1.65}
.pui-window :where(small){font-size:12px;color:var(--pui-muted)}
.pui-window :where(input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea){color:var(--pui-text);background:#14101c;border:1px solid #705b42;border-radius:var(--pui-radius);min-height:42px;padding:10px 12px;font:inherit;accent-color:var(--pui-violet)}
.pui-window :where(input,textarea)::placeholder{color:#9b919f;opacity:1}
.pui-window :where(button),.pui-popover :where(button){color:var(--pui-text);background:linear-gradient(#2c2333,#16111d);border:1px solid #9b7645;border-radius:var(--pui-radius);font:inherit;line-height:1.4;transition:background .14s,border-color .14s,box-shadow .14s}
.pui-window :where(button:hover:not(:disabled)),.pui-popover :where(button:hover:not(:disabled)){border-color:var(--pui-gold-light);box-shadow:inset 0 0 0 1px #cba35f40}
.pui-module :where(button,input,select,textarea,summary,a):focus-visible{outline:2px solid var(--pui-gold-light)!important;outline-offset:3px;box-shadow:0 0 0 5px #54297880}
.pui-window :where(button:disabled){opacity:.5;cursor:not-allowed}
.pui-window :where(button[aria-selected=true],button[aria-pressed=true],button.active){color:#fff4dc;background:linear-gradient(120deg,#502276,#691e47);border-color:#d5a366}
.pui-window :where([role=alert],.error){color:#ff9eab}
.pui-window :where(table){width:100%;border-collapse:collapse}
.pui-window :where(th,td){border-bottom:1px solid #4a3a2c;padding:10px 12px;text-align:start}
.pui-window :where(progress,meter,input[type=range]){accent-color:var(--pui-violet)}
.pui-window :where(footer){border-top:1px solid var(--pui-line);padding-top:14px}
.pui-module.pui-panel,.pui-module.pui-popover{background:linear-gradient(135deg,#211528,#0b0911)!important;border:1px solid #a27b43!important;border-radius:var(--pui-radius);color:var(--pui-text)!important;box-shadow:inset 0 0 0 3px #050409,0 7px 20px #0008}
.pui-module :where(.adventure-grid-empty,.adventure-grid-item,.shop-item){border-image:url('/assets/ui/player-modules/frame.svg') 70 /7px /0 stretch;border-radius:0}
.pui-module :where(.adventure-grid-item.selected,.shop-item[aria-pressed=true]){box-shadow:inset 0 0 12px #ad36cf60,0 0 0 1px #e193e2}
.pui-popover{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain}
.pui-module.pui-hud{background:linear-gradient(135deg,#1c1323ed,#08070dec)!important;border:1px solid #987440!important;color:var(--pui-text)!important;box-shadow:inset 0 0 0 2px #07050b,0 4px 12px #0006}
/* Compact HUD retains existing position, pointer handling and mechanic colors. */
#game .character.pui-hud .name-row strong{color:var(--pui-gold-light)}
#game .character.pui-hud .character-info>p,#game .map-panel.pui-hud .coordinates{color:var(--pui-muted)}
#adventure-navigation.pui-hud{border-radius:4px;background:linear-gradient(90deg,#120d1be8,#08070de8)!important}
#adventure-navigation.pui-hud button{color:#d8c8ac}
#adventure-navigation.pui-hud button[aria-pressed=true],#adventure-navigation.pui-hud button.active{color:var(--pui-gold-light);background:#52237680}
#game-context-menu.pui-popover{padding:8px;min-width:180px}
#game-context-menu.pui-popover button{min-height:40px;padding:8px 12px;width:100%;text-align:start;background:transparent;border-color:transparent}
#game-context-menu.pui-popover button:hover{background:#51236c}
#connection-dialog.pui-window{width:min(540px,calc(100vw - 24px));padding:22px}
#connection-dialog.pui-window .connection-card{background:none;box-shadow:none;border:0;color:var(--pui-text)}
#connection-dialog.pui-window :is(#connection-title,#connection-message){color:var(--pui-text)}
.respawn-card.pui-window{padding:24px;max-width:540px}
.respawn-card.pui-window :is(.respawn-note,.respawn-cause){color:#d1c4d0}
.map-loading-card.pui-panel{padding:24px}
#game .location.pui-hud{border-radius:5px}
#game .location.pui-hud h2,#game .map-panel.pui-hud .map-heading{color:var(--pui-gold-light)}
#game .resource-panel.pui-hud :is(.resource-counts,.capacity-row){color:#c8b8ca}
#adventure-hotbar.pui-hud{border-radius:6px;padding:4px;box-shadow:inset 0 0 0 1px #cba35f40,0 5px 18px #0008}
#adventure-hotbar.pui-hud .hud-orb{border-color:#bb9457;background-color:#15101d}
#adventure-hotbar.pui-hud .hud-orb[data-action-kind=skill]{box-shadow:inset 0 0 0 1px #aa62e660}
#sword-charge.pui-hud{border-radius:3px}
#sword-charge.pui-hud :is(i,.sword-charge-fill){background:linear-gradient(90deg,#833dc9,#d93d76)}
#joystick.pui-control{border-color:#cba35f77;background:#15101d55}
#joystick.pui-control #stick{background:#32144899;border-color:#d6ac6eaa}
@media(max-height:620px){.pui-module.pui-window{border-width:10px!important;border-image-width:10px!important;max-height:calc(100dvh - 12px);max-width:calc(100vw - 12px);padding:10px}.pui-window>header{padding:6px 4px 10px}.pui-window :where(h2){font-size:22px}}
@media(max-width:600px){.pui-module.pui-window{max-width:calc(100vw - 12px);padding:12px;border-width:10px!important;border-image-width:10px!important}.pui-window :where(input,select,textarea){max-width:100%}.pui-window :where(th,td){padding:8px}.pui-window>header{gap:8px}}
@media(prefers-reduced-motion:reduce){.pui-module *{transition:none!important;scroll-behavior:auto!important}}
