/* Shared Astilven menu finish. Item tiles retain their rarity frames and sizing. */
:root{
 --popup-surface:radial-gradient(ellipse at top,#332b413b,transparent 65%),linear-gradient(135deg,#14151d,#090d13 55%,#191721);
 --popup-text:#eee5df;--popup-muted:#b6aabd;--popup-border:#b6aa9b;
 --popup-button:linear-gradient(110deg,#25232c,#10141c 50%,#25232c);
 --popup-active:linear-gradient(110deg,#13304d,#07548a,#132c48);
}
body #overlay{position:fixed;inset:0;z-index:1000;padding:20px;overflow:auto;background:#05080dd9;backdrop-filter:blur(6px);align-items:center;justify-content:center}
body #overlay[hidden]{display:none!important}
body #overlay .dialog,
body :is(#inventory-dialog,#bank-dialog,#adventure-menu,#world-map-dialog,#adventurer-inspection){
 color:var(--popup-text);background:var(--popup-surface);border:3px double var(--popup-border);border-radius:3px;
 box-shadow:0 0 0 5px #090b10,0 0 0 6px #746777,0 24px 90px #000,inset 0 0 35px #000;
 overscroll-behavior:contain;scrollbar-color:#746777 #10141c;
}
body #overlay .dialog{width:min(560px,100%);max-width:560px;max-height:calc(100dvh - 40px);padding:22px 24px;overflow:auto;margin:auto;text-align:center}
body #overlay[data-mode="pause"] .dialog{width:min(440px,100%);max-width:440px;text-align:center}
body #overlay[data-mode="tutorial"] .dialog{width:min(680px,100%);max-width:680px}
body #overlay #dialog-label{display:block;color:var(--popup-muted);font:11px Georgia,serif;letter-spacing:2.5px}
body #overlay #dialog-title{color:var(--popup-text);font:26px Georgia,serif;line-height:1.2;margin:12px 0;overflow-wrap:anywhere}
body #overlay #dialog-text{color:#c9becb;font-size:13px;line-height:1.65;margin:0 0 16px;letter-spacing:normal}
body #overlay[data-mode="pause"] #dialog-label{font-size:18px;letter-spacing:4px;color:#e6d9ce}
body #overlay[data-mode="pause"] #dialog-title{letter-spacing:7px;margin:16px 0 8px}
body #overlay[data-mode="pause"] #dialog-text{font-size:10px;letter-spacing:4px}
body #overlay #dialog-actions{display:grid;grid-template-columns:1fr;gap:6px;max-width:460px;margin-inline:auto}
/* Short confirmations use a tidy row; longer menus keep a compact, even stack. */
body #overlay #dialog-actions:has(>button:nth-child(2)):not(:has(>button:nth-child(4))){grid-template-columns:repeat(2,minmax(0,1fr))}
body #overlay #dialog-actions:has(>button:nth-child(3)):not(:has(>button:nth-child(4)))>button:last-child{grid-column:1/-1}
body #overlay #dialog-actions button,
body dialog :is(.bag-header,.adventure-heading,.inventory-tabs,.craft-source-tabs,.shop-pages,.tutorial-journal-row,.bank-controls) button,
body dialog :is(.bank-detail,.shop-detail,.soul-services) button,
body dialog .soul-craft-button,body dialog>button,body .item-menu button{
 min-height:36px;padding:6px 12px;border:3px double #958c8b;border-radius:3px;background:var(--popup-button);
 box-shadow:inset 0 0 0 2px #080d16,0 3px 8px #0008;color:var(--popup-text);font:15px Georgia,serif;
 white-space:normal;overflow-wrap:anywhere;text-align:center;
}
body #overlay #dialog-actions button{width:100%;margin:0;text-align:center;font-size:14px;line-height:1.3}
body #overlay[data-mode="pause"] #dialog-actions button{text-align:center;font-size:16px}
body #overlay #dialog-actions button:first-child,
body dialog :is(.inventory-tabs,.craft-source-tabs,.bank-tabs) button:is([aria-pressed="true"],[aria-selected="true"]){background:var(--popup-active);border-color:#9abfda}
body #overlay #dialog-actions button:hover:not(:disabled),body dialog :is(.bag-header,.adventure-heading,.inventory-tabs,.craft-source-tabs,.shop-pages,.tutorial-journal-row) button:hover:not(:disabled),body .item-menu button:hover:not(:disabled){background:linear-gradient(110deg,#303346,#194462,#303346);border-color:#e2d4c5}
body #overlay button:focus-visible,body dialog button:focus-visible,body .item-menu button:focus-visible{outline:2px solid #9abfda;outline-offset:3px}
body #overlay button:disabled{opacity:.45;cursor:not-allowed}
body #overlay[data-mode="tutorial"] #dialog-actions{position:static;padding:12px 0 0;background:transparent;box-shadow:none}
body #overlay[data-mode="tutorial"] #dialog-text{text-align:left}
body .tutorial-task{background:#162033;border-color:#746777;color:#ded9e6}
body #overlay summary,body .tutorial-core strong{color:#e6d9ce}
body .tutorial-core{border-color:#4c4656}
body dialog::backdrop{background:#05080dd9;backdrop-filter:blur(6px)}
body dialog :is(.bag-header,.adventure-heading){background:#14151d;border-color:#746777}
body dialog :is(h2,h3){color:#ede4dc}
body dialog :is(.journal p,.tutorial-journal,.adventurer-stats){color:#c9becb}
body dialog :is(.armory-character,.adventurer-detail,.shop-panel,.soul-panel){background:linear-gradient(135deg,#1c1d29,#10141c);border-color:#746777}
body dialog :is(#character-stats,.soul-preview,.shop-detail,.city-routes section){background:#10141c;border-color:#514959;color:#c9becb}
body dialog :is(#inventory-items,.bank-grid,.bank-detail,.shop-grid){background:#10141c;border-color:#514959}
body dialog :is(select,.soul-slot,.soul-core){background:#14151d;border-color:#746777;color:var(--popup-text)}
body dialog :is(.empty-state,.bank-status,.bag-toolbar,.eyebrow){color:var(--popup-muted)}
body :is(.item-hover,.item-menu){background:var(--popup-surface);color:var(--popup-text);box-shadow:0 14px 45px #000c}
body .item-menu{border:3px double var(--popup-border);border-radius:3px}
.bank-controls{display:flex;flex-direction:column;gap:10px;margin:12px 0 18px}
.bank-tabs,.bank-purchase{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.bank-purchase{justify-content:space-between;color:var(--popup-muted);font-size:12px}
.bank-purchase button:disabled{opacity:.45;cursor:not-allowed}
.bank-core-grid{min-height:0;margin-top:8px}.bank-core-grid+.empty-state{margin:0}
.bank-columns .bank-grid+h3{margin-top:18px}
@media(max-width:600px){
 body #overlay{padding:12px}
 body #overlay .dialog{padding:20px 18px;max-height:calc(100dvh - 24px)}
 body #overlay #dialog-title{font-size:23px}
 body #overlay #dialog-actions button{font-size:14px}
 body :is(#inventory-dialog,#bank-dialog,#adventure-menu,#world-map-dialog,#adventurer-inspection){max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
}
@media(max-height:500px){body #overlay .dialog{padding:16px 20px}body #overlay[data-mode="pause"] .dialog::before{height:45px}body #overlay #dialog-actions{gap:6px}}
@media(max-width:420px){body #overlay #dialog-actions:has(>button:nth-child(2)):not(:has(>button:nth-child(4))){grid-template-columns:1fr}}
@media(pointer:coarse){body #overlay #dialog-actions button,body dialog button:not(.bag-item):not(.equipment-slot),body .item-menu button{min-height:44px}}
/* Service menus use short choices in a grid, with detail one level deeper. */
body #overlay:not([data-mode="pause"]):not([data-mode="tutorial"]) #dialog-actions:has(>button:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
body #overlay[data-mode="guild"] .dialog{width:min(420px,100%);padding:20px}
body #overlay[data-mode="guild"] #dialog-title{font-size:24px;margin:8px 0}
body #overlay[data-mode="guild"] #dialog-text{font-size:12px;margin-bottom:14px}
body #overlay[data-mode="guild"] #dialog-actions{gap:8px}
body #overlay[data-mode="guild"] #dialog-actions button{min-height:34px;padding:6px 8px;font-size:13px}
body #overlay[data-mode="guild-contracts"] #dialog-actions>button:last-child{grid-column:1/-1}
@media(pointer:coarse){body #overlay[data-mode="guild"] #dialog-actions button{min-height:44px}}
