/* The shop owns its scroll regions. Detail content never shrinks over buttons. */
.shop-modal[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;width:min(1220px,calc(100vw - 28px));height:min(840px,calc(100dvh - 28px));max-height:none;padding:22px;overflow:hidden}
.shop-modal .modal-heading{margin:0;padding:0 0 12px;min-width:0}.shop-modal .modal-heading h2{font-size:28px}.shop-modal .modal-heading p{font-size:14px;line-height:1.5}.shop-modal .close-button{flex-shrink:0;width:40px;height:40px}
.shop-modal .shop-meta{margin:0;min-height:38px;gap:14px;font-size:13px;line-height:1.5;flex-wrap:wrap}.shop-meta .gold{font-size:22px;white-space:nowrap}.shop-meta .shop-open,.shop-meta .shop-locked{font-size:12px}.shop-host-name{color:#b1c3cf}
.shop-modal .shop-layout{height:auto;min-height:0;grid-template-columns:136px minmax(0,1fr) minmax(290px,330px);grid-template-rows:minmax(0,1fr);gap:16px;overflow:hidden}
.shop-modal .shop-categories{min-height:0;overflow-y:auto;padding:0 12px 0 0}.shop-categories button{font-size:14px;line-height:1.4;padding:12px 8px;flex-shrink:0;min-height:44px}
.shop-modal .shop-catalog{min-height:0;overflow:hidden}.shop-catalog .search-box{flex-shrink:0;min-height:44px;margin:0}.shop-catalog .search-box input{font-size:16px;min-width:0}
.shop-modal #item-grid{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;grid-auto-rows:max-content;margin-top:12px;gap:8px;padding:0 6px 12px 0}
.shop-modal #item-grid .shop-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:92px;padding:12px;flex-wrap:nowrap;height:auto}
.shop-modal #item-grid .shop-item>.item-icon{width:44px;height:44px;flex-shrink:0}.shop-modal #item-grid .shop-item>span:not(.item-icon){min-width:0;flex-basis:auto}
.shop-modal #item-grid .shop-item strong{font-size:14px;line-height:1.45;overflow-wrap:anywhere}.shop-modal #item-grid .shop-item em{font-size:12px;line-height:1.55;margin-top:5px}.shop-modal #item-grid .shop-item small{font-size:12px;line-height:1.4;margin-top:4px;letter-spacing:.25px}.shop-modal #item-grid .shop-item b{font-size:14px;margin:0;white-space:nowrap;align-self:center}
.shop-modal .build-guide{padding:14px!important}.shop-modal .build-guide h3{font-size:21px;line-height:1.3}.shop-modal .build-guide p{font-size:14px;line-height:1.65}.shop-modal .build-guide small,.shop-modal .build-group-heading span{font-size:12px;line-height:1.5}
.shop-modal .item-detail{display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;min-width:0;min-height:0;padding:0;background:#09131d}
.item-detail-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:18px}.item-detail-scroll>*{flex-shrink:0}.item-detail-scroll .detail-item-hero h3{font-size:25px;line-height:1.2;margin:12px 0}.item-detail-scroll .detail-item-hero .item-icon{width:66px}.item-detail-scroll .detail-item-hero>span{font-size:12px;line-height:1.4}.item-detail-scroll .detail-item-hero small{font-size:12px;line-height:1.5;display:block;margin-top:8px}
.item-detail-scroll .item-stats>div{font-size:14px;line-height:1.5;gap:12px}.item-detail-scroll .item-description,.item-detail-scroll .item-fit p{font-size:14px;line-height:1.7}.item-detail-scroll .item-fit>strong{font-size:12px}.item-detail-scroll .recipe>div{display:flex;flex-wrap:wrap;gap:12px}.item-detail-scroll .recipe .eyebrow{display:block;font-size:12px}.item-detail-scroll .recipe button{min-width:42px;min-height:55px}.item-detail-scroll .recipe .item-icon{width:40px}.item-detail-scroll .recipe small{font-size:12px}
.item-purchase-bar{background:#101e2a;border-top:1px solid #617b9145;padding:14px;min-width:0}.item-purchase-bar .purchase{width:100%;margin:0;min-height:48px;font-size:14px;line-height:1.4;letter-spacing:.3px;gap:12px}.item-purchase-bar .purchase span{white-space:nowrap}.item-purchase-bar .buy-note{display:block;font-size:12px;line-height:1.5;margin:10px 0 0;color:#a7bccd}
.shop-modal .shop-inventory{margin:0;padding:12px 0 0;min-height:66px;gap:16px}.shop-inventory .eyebrow{font-size:12px}.shop-inventory small{font-size:12px;line-height:1.5}.shop-inventory .inventory-slots{flex-shrink:0;display:grid;grid-template-columns:repeat(6,44px);gap:8px;width:auto}.shop-modal .inventory-slots>button,.shop-modal .inventory-slots>.empty-slot{width:44px;height:44px;max-width:none}.shop-modal .inventory-slots button.selected{outline:2px solid #e4c98b}
@media(max-width:1000px){.shop-modal[open]{padding:16px}.shop-modal .shop-layout{grid-template-columns:minmax(0,1fr) minmax(270px,.8fr);grid-template-rows:auto minmax(0,1fr);gap:12px}.shop-modal .shop-categories{grid-column:1/-1;display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:0 0 8px;border:0;gap:4px}.shop-categories button{white-space:nowrap;border-left:0;border-bottom:2px solid transparent}.shop-categories button.selected{border-bottom-color:#e4c98b}.shop-modal #item-grid .shop-item{grid-template-columns:38px minmax(0,1fr);gap:10px;padding:10px}.shop-modal #item-grid .shop-item>.item-icon{width:38px;height:38px}.shop-modal #item-grid .shop-item b{grid-column:2;justify-self:start}.shop-modal .shop-inventory>div:first-child{display:block}.shop-inventory .inventory-slots{grid-template-columns:repeat(6,38px);gap:6px}.shop-modal .inventory-slots>button,.shop-modal .inventory-slots>.empty-slot{width:38px;height:38px}}
@media(max-width:660px){.shop-modal[open]{display:block;overflow-y:auto;padding:14px;width:calc(100vw - 12px);height:calc(100dvh - 12px)}.shop-modal .modal-heading{position:relative}.shop-modal .shop-meta{margin:12px 0}.shop-modal .shop-layout{display:flex;flex-direction:column;overflow:visible;gap:14px}.shop-modal .shop-categories{width:100%}.shop-modal .shop-catalog{height:38dvh;min-height:240px;flex:none}.shop-modal .item-detail{height:430px;flex:none}.shop-modal .shop-inventory{margin-top:14px;flex-direction:column;align-items:flex-start}.shop-modal #item-grid .shop-item{grid-template-columns:44px minmax(0,1fr) auto}.shop-modal #item-grid .shop-item b{grid-column:auto}.shop-modal .item-detail-scroll{padding:16px}.shop-modal .modal-heading p{display:none}}
@media(max-height:600px) and (min-width:661px){.shop-modal[open]{padding:12px;gap:8px}.shop-modal .modal-heading h2{font-size:23px}.shop-modal .modal-heading p{display:none}.shop-modal .shop-meta{min-height:26px}.shop-modal .shop-inventory{min-height:48px;padding-top:8px}.shop-modal .shop-layout{min-height:0;height:auto}.shop-inventory small{display:none}}
@media(max-width:1000px){.shop-modal #item-grid{grid-template-columns:minmax(0,1fr)}}
