/* Dark jade windows with an antique gold frame. */
dialog.rpg-window{--window-gold:#d8bc78;width:min(1120px,94vw);max-width:1120px;max-height:92dvh;padding:0;overflow:auto;color:#e8e2cc;border:1px solid #d1b46c;border-radius:9px;background:radial-gradient(ellipse at 20% 0%,#27382a66,transparent 65%),linear-gradient(120deg,#101e18,#081410);box-shadow:inset 0 0 0 4px #101813,inset 0 0 0 5px #a38a474d,0 24px 100px #000b;font-size:14px}
.rpg-window::backdrop{background:#030b087a;backdrop-filter:blur(4px)}
.rpg-window button{border:1px solid #9f8e5a70;border-radius:4px;background:linear-gradient(#22312799,#101c1699);padding:10px 16px;color:#e9ddba;min-height:40px}
.rpg-window button:hover{background:linear-gradient(#4c482e,#293426);border-color:#d8bc78}
.rpg-window button:focus-visible,.rpg-window input:focus-visible{outline:2px solid #ffe6a1;outline-offset:3px}
.rpg-window button:disabled{opacity:.4}
.rpg-window button[aria-pressed=true],.rpg-window button[aria-current=true]{border-color:#e1c279;background:linear-gradient(125deg,#8c6e2a88,#342c1688);box-shadow:inset 0 0 12px #f5ce5930;color:#ffe4a3}
.window-heading{position:sticky;top:0;z-index:var(--z-local-header);display:flex;align-items:center;gap:16px;padding:19px 25px;border-bottom:1px solid #bda26766;background:linear-gradient(90deg,#203122,#102019)}
.window-heading h2{margin:0;color:#f1dba2;font-size:28px;font-weight:500;letter-spacing:.5px}
.window-sigil{font:34px Georgia;color:#e5c980;width:40px;text-align:center}
.window-subtitle{color:#a9b3a9;border-left:1px solid #ad96544d;padding-left:20px;margin-left:5px}
.rpg-window .window-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto;font:34px/1 Arial,sans-serif;padding:0;width:43px;height:43px;min-width:43px;color:#eed7a0}
.window-nav{display:flex;justify-content:center;border-bottom:1px solid #bda26755;padding:10px 20px 0;gap:8px;background:#030c0833}
.window-nav button{min-width:160px;border-radius:5px 5px 0 0;margin-bottom:-1px}
.window-panel{min-width:0;border:1px solid #aa965846;border-radius:5px;padding:19px;background:linear-gradient(140deg,#1d2a1d66,#08120e66);box-shadow:inset 0 0 0 3px #09120d66}
.window-panel h3{font-size:20px;font-weight:500;color:#eed7a0;margin:0 0 15px;border-bottom:1px solid #ae995b40;padding-bottom:12px}
.window-muted{color:#a4ad9e;font-size:12px;line-height:1.8;white-space:pre-line}
.window-footer{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:16px 24px;border-top:1px solid #bda26755;color:#e3c688;background:#08130d88}
.window-footer small{margin-left:auto;font-size:11px;color:#8f9b8d}
.window-footer button{margin-left:auto}
.window-data-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;border-bottom:1px solid #99a47c1c;color:#bfc4b3}
.window-data-row strong{font-weight:400;color:#f0ecdb;font-size:18px;white-space:nowrap}
.window-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;font-size:34px;flex-shrink:0}
.window-data-row .window-icon{width:42px;height:42px}
.rpg-window .gold-button{background:linear-gradient(120deg,#b68d39,#f0ce78 48%,#a88031);border-color:#f0d691;color:#1b1e11;box-shadow:inset 0 0 0 3px #be9b54,inset 0 0 0 4px #ffe5a955,0 0 18px #d4a83922;font-size:18px;font-weight:600}
.rpg-window .gold-button:hover{background:linear-gradient(120deg,#cda246,#ffe3a0,#bb953e)}
.points-badge{color:#f1dba2;border:1px solid #aa8c454d;background:linear-gradient(90deg,#84632344,#493a1522);padding:9px 12px;border-radius:4px;margin:0 0 14px}
.character-layout{display:grid;grid-template-columns:36% 1fr;gap:18px;padding:20px}
.character-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:460px;overflow:hidden;border:1px solid #ac92553b;background:radial-gradient(ellipse at 50% 60%,#57724340,transparent 70%),repeating-conic-gradient(from 0deg at 50% 64%,#bda66a06 0deg 10deg,transparent 10deg 20deg)}
.character-stage:after{content:'◇';position:absolute;bottom:120px;width:80%;height:48px;border:3px double #b69c556b;border-radius:50%;color:#bfa36a;text-align:center;font-size:28px;box-shadow:0 12px 20px #0006;z-index:var(--z-local-base);pointer-events:none}
.stage-label{align-self:flex-start;margin:18px;color:#d9c18e;font-size:13px;letter-spacing:2px}
.character-art{width:100%;height:auto;max-height:390px;object-fit:contain;position:relative;z-index:var(--z-local-content);filter:drop-shadow(0 12px 12px #0008)}
.character-name{z-index:var(--z-local-content);text-align:center;padding:10px;width:90%;background:linear-gradient(90deg,transparent,#09130df0,transparent);border-block:1px solid #baa05a66}
.character-name h3{font:27px Georgia;color:#f0dfb3;margin:0 0 5px}.character-name span{font-size:11px;color:#bfc3a7}
.equipment-strip{display:flex;gap:15px;margin:20px;z-index:var(--z-local-content)}
.rpg-window .equipment-slot{position:relative;border-color:#5d92a8;width:76px;height:76px;padding:5px;background:#0d1a1699}.equipment-slot .window-icon{width:60px;height:60px}.equipment-slot small{position:absolute;right:5px;bottom:4px;color:#f2db94}.equipment-label{position:absolute;left:0;right:0;bottom:-20px;font-size:11px;color:#bbc6ae}
.character-content{display:flex;flex-direction:column;gap:13px;min-width:0}
.window-resource{display:grid;grid-template-columns:40px 1fr 110px;gap:15px;align-items:center;margin:10px 0}.window-resource>span{font-size:13px;text-align:right}.window-resource>strong{color:#e4ce9c;font:16px Georgia}
.window-meter{height:18px;background:#050d0a;border:1px solid #7b82566b;padding:3px;border-radius:20px;box-shadow:inset 0 2px 5px #000}.window-meter i{display:block;height:100%;border-radius:20px;background:linear-gradient(#ee7063,#b12129,#dc4749)}.window-meter.mana i{background:linear-gradient(#51bee7,#12678e,#2a9ac3)}.window-meter.experience i{background:linear-gradient(#efd38a,#9f792e,#d0a648)}
.character-tabs{display:flex;gap:8px}.character-tabs button{flex:1}
.status-columns{display:grid;grid-template-columns:1.15fr 1fr;gap:12px}
.attribute-row{display:grid;grid-template-columns:36px 1fr 32px 34px;align-items:center;gap:7px;min-height:43px;border-bottom:1px solid #99a47c1c}.attribute-row>span{color:#e2c58e;font:16px Georgia}.attribute-row small{font-size:11px;color:#aab4a1}.attribute-row strong{font-weight:400;font-size:18px;text-align:right}.rpg-window .attribute-plus{padding:0;min-height:30px;height:30px;font-size:22px}.pending-value{color:#b4e490}
.stat-actions{display:flex;align-items:center;gap:10px}.stat-actions>span{flex:1}.stat-actions button{min-width:90px}
.skills-layout{display:grid;grid-template-columns:21% 1fr 32%;gap:16px;padding:20px}.skill-sidebar{border:1px solid #a38d4d40;padding:15px;background:radial-gradient(ellipse,#3b4d2c55,transparent)}.skill-sidebar .character-art{margin-top:16px;max-height:300px}.skill-sidebar h3{color:#e5d1a7;font:24px Georgia;margin:15px 0 8px}.skill-tree{display:flex;flex-direction:column;gap:18px;padding:18px 10px}
.rpg-window .skill-card{display:grid;grid-template-columns:68px 1fr;align-items:center;text-align:left;position:relative;gap:4px 14px;padding:10px;border-color:#ad995270;min-height:94px}.skill-card .window-icon{grid-row:1/4;border:1px solid #bba055;background:#05100c}.skill-card strong{font-weight:500;font-size:17px}.skill-card small{color:#9fae96;font-size:11px}.skill-card .rank-label{color:#eac77c;font-size:13px}.skill-card.locked{filter:grayscale(.85);opacity:.55}.skill-card[aria-pressed=true]{box-shadow:0 0 20px #d4a93625,inset 0 0 9px #d4a93620}.skill-hint{color:#bcc5af;white-space:pre-line;line-height:2;font-size:13px;margin-top:32px}
.detail-icon{display:flex;width:155px;height:155px;margin:8px auto 24px;filter:drop-shadow(0 4px 16px #c1a04b30)}.skill-detail h3,.item-detail h3{border:0;font-size:23px;line-height:1.4;margin-bottom:8px;padding:0}.skill-type{font-size:12px;border:1px solid #b69b5270;border-radius:20px;padding:4px 10px;color:#d8c48e}.skill-rank{font-size:20px;color:#c6e6a0;margin:20px 0}.skill-detail>button,.item-detail>button{width:100%;margin-top:14px}.equipped-skills{display:flex;gap:8px;order:1}.equipped-skills .window-icon{width:45px;height:45px;border:1px solid #b59b5366}
.bag-layout{display:grid;grid-template-columns:1fr 29%;gap:20px;padding:20px}.bag-tools{display:flex;gap:12px;margin-bottom:16px;align-items:center;flex-wrap:wrap}.bag-tools input{font:inherit;background:#07120e;border:1px solid #78866a88;border-radius:4px;padding:12px;color:#e3dfce;min-width:120px;flex:1;width:100%}.bag-filters{display:flex;gap:5px}.bag-filters button{padding:10px 13px}.bag-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.rpg-window .bag-slot{position:relative;padding:3px;aspect-ratio:1;min-height:0;display:flex;align-items:center;justify-content:center;border:1px solid #7b8c7355;background:radial-gradient(#293c2c55,#081410);border-radius:5px;overflow:hidden}.bag-slot .window-icon{width:100%;height:100%;font-size:30px}.rpg-window .bag-slot.equipment{border-color:#5d96b4}.rpg-window .bag-slot.consumable{border-color:#68a779}.rpg-window .bag-slot.material{border-color:#948ab4}.rpg-window .bag-slot[aria-pressed=true]{border:2px solid #efd07b;box-shadow:0 0 12px #d6b45366}.count-label{position:absolute;bottom:3px;right:5px;font-size:14px;text-shadow:0 2px 3px #000;color:#fff}.enhancement-label{position:absolute;left:4px;top:3px;font-size:14px;color:#f4df9b;text-shadow:0 2px 3px #000}.equipped-label{position:absolute;bottom:2px;left:3px;background:#101910df;padding:1px 3px;font-size:9px;color:#ebd39a}.item-detail{min-height:470px}.item-category{color:#75b6cd;font-size:13px}.empty-detail{display:block;font:100px Georgia;text-align:center;color:#726f48;margin:60px 0}.bag-items{min-width:0}.bag-items>.window-muted{margin:8px 0 0}
@media(max-width:850px){.skills-layout{grid-template-columns:1fr 1fr}.skill-sidebar{display:none}.character-layout{grid-template-columns:30% 1fr}.window-subtitle{font-size:12px}.window-panel{padding:13px}.status-columns{grid-template-columns:1fr 1fr}.attribute-row{grid-template-columns:33px 1fr 30px}.attribute-row small{display:none}.bag-layout{grid-template-columns:1fr 32%}.bag-grid{gap:5px;grid-template-columns:repeat(6,minmax(0,1fr))}.detail-icon{width:115px;height:115px}.window-resource{gap:8px;grid-template-columns:30px 1fr 100px}.window-footer{gap:10px}}
@media(max-width:600px){dialog.rpg-window{width:96vw;max-height:94dvh;font-size:13px}.window-heading{padding:12px;gap:8px}.window-heading h2{font-size:21px}.window-sigil{width:25px;font-size:25px}.window-subtitle{display:none}.window-nav{padding:8px 8px 0;gap:5px}.window-nav button{min-width:0;flex:1;padding:8px;font-size:12px;min-height:44px}.character-layout,.skills-layout,.bag-layout{padding:10px;gap:10px;grid-template-columns:1fr}.character-stage{min-height:0;display:grid;grid-template-columns:100px 1fr}.character-stage:after,.stage-label{display:none}.character-stage .character-art{height:130px;width:100px;grid-row:1/3}.character-name{width:100%;padding:8px}.character-name h3{font-size:21px}.equipment-strip{margin:8px 0 20px;justify-content:center;gap:10px}.rpg-window .equipment-slot{width:50px;height:50px}.equipment-slot .window-icon{width:40px;height:40px}.equipment-label{font-size:10px;bottom:-18px}.window-panel h3{font-size:17px}.status-columns{gap:8px}.attribute-row{grid-template-columns:33px 1fr 34px}.window-data-row{gap:5px;font-size:11px;min-height:42px}.window-data-row strong{font-size:16px}.window-resource{grid-template-columns:30px 1fr 85px;font-size:12px}.window-resource>span{font-size:11px}.stat-actions{flex-wrap:wrap}.stat-actions>span{flex-basis:100%}.stat-actions button{flex:1}.window-footer{padding:12px;font-size:12px}.window-footer small{width:100%;margin:0;font-size:10px}.skill-tree{flex-direction:row;gap:8px;padding:4px 0 12px}.rpg-window .skill-card{display:flex;flex:1;flex-direction:column;padding:8px 4px;text-align:center;min-width:0;gap:8px}.skill-card .window-icon{width:60px;height:60px}.skill-card strong{font-size:12px;overflow-wrap:anywhere}.skill-card small{display:none}.skill-hint{margin-top:8px}.skill-detail .detail-icon{float:left;width:85px;height:85px;margin:0 15px 15px 0}.skill-detail .window-data-row{clear:both}.skill-detail .skill-rank{margin:15px 0}.bag-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.bag-tools{gap:8px}.bag-filters{width:100%}.bag-filters button{flex:1;padding:8px}.item-detail{min-height:0}.item-detail .detail-icon{float:left;width:90px;height:90px;margin:0 12px 10px 0}.item-detail .window-data-row{clear:both}.empty-detail{font-size:50px;margin:10px}.bag-tools input{font-size:16px}.bag-layout{gap:16px}.window-close{min-height:44px}.rpg-window .attribute-plus{min-height:34px}.equipped-skills .window-icon{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.rpg-window *{transition:none!important}}
@media(min-width:851px) and (max-height:850px){.window-heading{padding:12px 22px}.window-heading h2{font-size:25px}.window-nav{padding-top:7px}.character-layout,.skills-layout,.bag-layout{padding:15px;gap:14px}.window-panel{padding:12px 16px}.character-stage{min-height:400px}.character-art{max-height:290px}.character-stage:after{bottom:112px}.stage-label{margin:10px 18px}.character-name{padding:7px}.equipment-strip{margin:15px 20px 25px}.window-resource{margin:5px 0}.status-columns .window-panel h3{font-size:18px;padding-bottom:8px;margin-bottom:9px}.attribute-row{min-height:34px}.window-data-row{min-height:34px}.points-badge{padding:7px 10px;margin-bottom:8px}.character-content{gap:9px}.window-footer{padding:11px 22px}.window-heading .window-close{height:35px;width:35px;min-height:35px}.character-tabs button,.stat-actions button{padding:7px 12px;min-height:35px}.window-resource .window-meter{height:16px}.skill-tree{gap:12px;padding:8px 5px}.skill-hint{margin-top:18px}.item-detail{min-height:410px}.detail-icon{width:130px;height:130px;margin-bottom:18px}.bag-grid{gap:6px}}
@media(min-width:851px) and (max-height:760px){.window-heading{padding:8px 20px}.window-nav{padding-top:5px}.window-nav button{min-height:34px;padding:7px 15px}.character-layout,.skills-layout,.bag-layout{padding:12px}.window-panel{padding:10px 13px}.character-content{gap:7px}.window-resource{margin:4px 0}.window-data-row,.attribute-row{min-height:30px}.status-columns .window-panel h3{margin-bottom:7px;padding-bottom:6px}.points-badge{font-size:12px;padding:6px 9px}.character-stage{min-height:350px}.character-art{max-height:260px}.detail-icon{width:100px;height:100px;margin:2px auto 12px}.skill-rank{margin:14px 0;font-size:18px}.skill-detail h3,.item-detail h3{font-size:21px}.skill-hint{margin-top:10px}.item-detail{min-height:380px}.skill-detail>button,.item-detail>button{margin-top:10px}.window-footer{padding:9px 20px}.equipped-skills .window-icon{width:36px;height:36px}.window-footer small{font-size:10px}.stat-actions>span{font-size:11px}}
@media(max-width:600px){.bag-grid{max-height:310px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px;align-content:start}.bag-grid .bag-slot{min-height:48px}.bag-grid .empty-slot{min-height:48px}.item-detail{margin-top:0}}
.skill-points-mobile{display:none}
@media(max-width:850px){.skill-points-mobile{display:block}}
@media(max-width:600px){#bag-dialog .window-subtitle{display:inline;border:0;padding:0;margin-left:auto;font-size:11px}#bag-dialog .window-close{margin-left:4px}.skill-hint{font-size:12px;line-height:1.6}.skills-layout .skill-tree{padding-bottom:4px}}

#shop-dialog{width:min(760px,94vw);padding:22px}.shop-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.shop-tools input{width:72px;padding:8px}.shop-tools [aria-pressed=true]{border-color:#e5c477}.shop-status{min-height:24px;color:#e5c477}.shop-list{display:grid;gap:10px}.shop-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:12px;background:#ffffff08;border:1px solid #d8bc7833;border-radius:6px}.shop-row small{display:block;margin-top:5px;color:#b4c5b9}.shop-icon{font-size:26px}.shop-icon img{width:36px;height:36px;object-fit:contain}.gold-display{position:absolute;right:18px;top:62px;z-index:var(--z-status);color:#f2d18b;background:#102019dd;border:1px solid #d8bc7866;padding:6px 12px;border-radius:6px;pointer-events:none}@media(max-width:600px){#shop-dialog{padding:14px}.shop-row{grid-template-columns:32px 1fr}.shop-row button{grid-column:1/-1}.gold-display{top:58px;right:12px;font-size:11px}}

.shop-header{position:sticky;top:-22px;z-index:var(--z-local-header);background:#102019;padding:8px 0;box-shadow:0 8px 10px #102019}.shop-header .dialog-heading{margin-bottom:10px}@media(max-width:600px){.shop-header{top:-14px}}
/* Keep important actions visible through each level of navigation. */
#game .has-notification{position:relative}
#game .window-notification-badge{position:absolute;top:3px;right:3px;width:10px;height:10px;border:2px solid #ffe3a3;border-radius:50%;background:#ed343e;box-shadow:0 1px 4px #0008;pointer-events:none;z-index:1}
.bag-slot[data-inventory-drag-id]{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
#game .rpg-window .is-dragging{opacity:.4;cursor:grabbing}
#game .rpg-window .is-drop-target{border-color:#ffe59b;box-shadow:inset 0 0 0 2px #ffe59b,0 0 14px #edc56c88;background:#526449}
.inventory-drag-ghost{position:fixed;box-sizing:border-box;margin:0;pointer-events:none;z-index:100;border:2px solid #ffe59b;border-radius:8px;background:#25372eee;box-shadow:0 6px 20px #0008}
.inventory-drag-ghost *{pointer-events:none!important}
.inventory-drag-ghost .window-icon{width:100%;height:100%}
.is-inventory-dragging .item-hover{pointer-events:none}
.bag-slot.filtered-slot{opacity:.4}

/* Paired controls only withdraw unconfirmed allocation. */
#game .attribute-controls{display:grid;grid-template-columns:30px 32px 30px;align-items:center;gap:7px;min-width:0}
#game .attribute-controls>strong{text-align:center;font-variant-numeric:tabular-nums}
#game .rpg-window .attribute-controls button{flex:1;min-width:0;padding:0}
#game .attribute-row:has(>.attribute-controls){grid-template-columns:36px minmax(0,1fr) 106px}
