/* Darkr r23 concept: dark rounded item slots for the painterly icons + the reworked stash panel. Load after style.css. */
.i23{position:absolute;inset:0;display:block;background-repeat:no-repeat;pointer-events:none}
img.i23{width:100%;height:100%;object-fit:contain}
.slot{border-radius:8px;border:1px solid #34323a;
  background:radial-gradient(circle at 50% 36%,#2a272d 0%,#18161b 60%,#0d0c0f 100%);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.65),inset 0 7px 10px rgba(255,255,255,.03),inset 0 -9px 14px rgba(0,0,0,.6)}
.slot .ico{inset:2px}
.slot.r-m,.slot.r-r,.slot.r-u,.slot.r-s,.slot.r-g{background:radial-gradient(circle at 50% 36%,#2a272d 0%,#18161b 60%,#0d0c0f 100%)}
.slot.r-m{border-color:#5a70d8;box-shadow:inset 0 0 0 1px rgba(0,0,0,.6),inset 0 0 12px rgba(124,156,255,.32),0 0 6px rgba(124,156,255,.25)}
.slot.r-r{border-color:#d8c048;box-shadow:inset 0 0 0 1px rgba(0,0,0,.6),inset 0 0 12px rgba(255,229,90,.28),0 0 6px rgba(255,229,90,.22)}
.slot.r-u{border-color:#c08a44;box-shadow:inset 0 0 0 1px rgba(0,0,0,.6),inset 0 0 12px rgba(217,163,90,.34),0 0 6px rgba(217,163,90,.25)}
.slot.r-s{border-color:#38c04a;box-shadow:inset 0 0 0 1px rgba(0,0,0,.6),inset 0 0 12px rgba(62,224,80,.28),0 0 6px rgba(62,224,80,.22)}
.slot .qty{right:4px;bottom:1px;font:700 12px/1.2 Outfit,system-ui,sans-serif;color:#f6f0e6;text-shadow:0 0 2px #000,0 1px 2px #000,0 0 5px #000}
.slot.sel{border-color:#ff8a3a;box-shadow:inset 0 0 12px rgba(255,106,26,.35),0 0 10px rgba(255,106,26,.55)}

/* ---- stash panel (r23) ---- */
.st23{position:relative;width:max-content;padding:14px 18px 14px;font-family:Outfit,system-ui,sans-serif;color:#e4ded6;
  background:linear-gradient(175deg,#1d1a1c 0%,#131114 50%,#0a090b 100%);border:1px solid #3e3a3e;border-radius:10px;
  box-shadow:0 0 0 1px #000,0 18px 60px rgba(0,0,0,.9),0 0 30px rgba(255,80,10,.12),inset 0 1px 0 rgba(255,150,70,.16)}
.st23::before{content:'';position:absolute;left:24px;right:24px;top:0;height:2px;background:linear-gradient(90deg,transparent,#c2481a 20%,#ffb050 50%,#c2481a 80%,transparent);opacity:.85}
.st23 .hd{display:flex;align-items:center;gap:12px;padding-bottom:10px;border-bottom:1px solid #2c282c}
.st23 .hd .chest{width:58px;height:58px;position:relative;filter:drop-shadow(0 0 8px rgba(255,90,20,.35))}
.st23 .hd h1{margin:0;font:700 23px Georgia,serif;letter-spacing:3px;text-transform:uppercase;color:#ffb46a;text-shadow:0 0 12px rgba(255,90,20,.45),0 2px 2px #000}
.st23 .hd .sub{font-size:12.5px;color:#8f8790;letter-spacing:.4px;margin-top:2px}
.st23 .hd .cnt{margin-left:auto;text-align:right;font-size:12px;color:#8f8790}.st23 .hd .cnt b{display:block;font:700 20px Outfit;color:#f2e6d8}
.st23 .x{margin-left:14px;color:#8a8288;font-size:20px;cursor:pointer}
.st23 .tabs{display:flex;gap:4px;margin:12px 0 0;align-items:flex-end}
.st23 .tab{padding:7px 14px 6px;font-size:13px;color:#a69ea4;background:linear-gradient(#1e1b1e,#141215);border:1px solid #34303a;border-bottom:none;border-radius:7px 7px 0 0;display:flex;gap:7px;align-items:center}
.st23 .tab .ti{width:20px;height:20px;position:relative}
.st23 .tab.on{color:#ffd6a8;background:linear-gradient(#2c211c,#17120f);border-color:#7a4a28;box-shadow:inset 0 2px 0 rgba(255,140,60,.55)}
.st23 .tab i{font-style:normal;color:#6f676c;font-size:11px}
.st23 .tools{margin-left:auto;display:flex;gap:6px;padding-bottom:5px}
.st23 button{font:600 12.5px Outfit,system-ui;background:linear-gradient(#302c30,#19171a);color:#ece6de;border:1px solid #4a454c;border-radius:5px;padding:6px 11px}
.st23 button.hot{border-color:#c2581e;box-shadow:0 0 8px rgba(255,90,20,.3)}
.st23 .well{position:relative;padding:10px;border:1px solid #4a3a30;border-radius:0 8px 8px 8px;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,110,40,.10),rgba(0,0,0,0) 60%),linear-gradient(#141114,#0c0a0c);
  box-shadow:inset 0 0 0 2px #0a0809,inset 0 0 0 3px #2e2a2e,inset 0 0 24px rgba(0,0,0,.8)}
.st23 .well::before,.st23 .well::after{content:'';position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#9a9ca4,#3a3c42);top:4px;left:4px;box-shadow:0 1px 1px #000}
.st23 .well::after{left:auto;right:4px}
.st23 .grid{display:grid;gap:5px}
.st23 .slot{width:54px;height:54px;position:relative}
.st23 .slot.dim{opacity:.28}
.st23 .slot.empty{background:radial-gradient(circle at 50% 36%,#1d1b1f 0%,#121014 70%);border-color:#29262c}
.st23 .lab{display:flex;align-items:center;gap:10px;margin:12px 0 7px;font-size:12.5px;color:#a69ea4;letter-spacing:1.5px;text-transform:uppercase}
.st23 .lab::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,#3a3236,transparent)}
.st23 .slot.hot{border-color:#6a3418}
.st23 .slot .hk{position:absolute;left:4px;top:1px;font:600 10px Outfit;color:#8a8288}
.st23 .ft{display:flex;align-items:center;gap:12px;margin-top:11px;font-size:12px;color:#8f8790}
.st23 .gold{display:flex;align-items:center;gap:6px;color:#ffd26a;font-weight:700;font-size:14px}
.st23 .gold i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff2b0,#d8a030 55%,#7a5010);box-shadow:0 0 6px rgba(255,200,80,.5)}
.st23 .ft .hint{margin-left:auto}
.st23 .ft kbd{font:600 11px Outfit;border:1px solid #4a454c;border-bottom-width:2px;border-radius:3px;padding:0 4px;color:#d8d0c8;background:#1c1a1d}

/* v27: .i23 fills its nearest positioned ancestor; make every icon container a positioning box (0 specificity so explicit absolute rules still win) */
:where(.fico,.cxIco,.ghost,.ico,.qico,.stico,.chest,:has(> .i23)){position:relative}
:where(.fico,.cxIco,.qico,.stico){overflow:hidden}
