/* One screen, two clear areas. Cards retain their own purple art frame. */
.card-description-menu{position:fixed;inset:auto;margin:0;width:min(260px,calc(100vw - 16px));overflow:auto;box-sizing:border-box;padding:10px 12px;border:1px solid #71675a;border-radius:6px;background:#201d29f5;color:#f4e4c7;box-shadow:0 4px 14px #0008;text-align:left;z-index:100;pointer-events:auto;overscroll-behavior:contain;font:12px/1.4 var(--sans)}
.card-description-menu[hidden]{display:none}
.card-description-menu strong{font-size:13px}
.card-description-menu p{margin:5px 0 0}
.card-description-menu .card-description-hint{font-size:10px;color:#c8b3d5}
.card-description-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
.card-description-actions[hidden]{display:none}
.card-description-actions button{min-height:44px;padding:8px;font:12px/1.2 var(--sans);color:#f4e4c7;background:#47354f;border:1px solid #9676a5;border-radius:5px}
.card-description-actions button:only-child{grid-column:1 / -1}
.deck-slot:has(.deck-card){border-color:transparent;background:none}
.deck-card.illustrated-card,.plant-hud .build-card,.magic-pack{border:0;background:transparent;box-shadow:none}
.shop-buy-zone{border:2px dashed #ad8abd;border-radius:8px;text-align:center;padding:8px;color:#ead8fa;font:12px var(--sans);background:#4b345566}
.shop-buy-zone.drop-hover{background:#72548e;border-color:#ffe2a0}
.deck-card[aria-disabled=true],.magic-pack[aria-disabled=true]{opacity:.55;cursor:help}
.team-tarot{border-top:1px solid #78608155;padding-top:5px;min-width:0}
.team-tarot h3{margin:0 0 4px;font:600 11px var(--sans);color:#d2b6e5}
.team-tarot-player{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:4px;font:10px var(--sans)}
.team-tarot-player>strong{flex:0 0 70px;overflow:hidden;text-overflow:ellipsis}
.team-tarot-cards{display:flex;gap:6px;min-width:0;overflow-x:auto;padding:2px}
.loadout-panel .team-tarot .deck-card{flex:0 0 29px;width:29px;height:45px;min-height:0;padding:0}
.team-tarot-status{position:absolute;bottom:0;left:0;right:0;background:#20172fda;font:8px var(--sans);color:#fff2bc}
#night-target{display:block;margin-top:3px;color:#f0d39b;font-size:10px;letter-spacing:.04em;white-space:nowrap}
@media(max-width:700px){#night-target{font-size:8px}.shop-buy-zone{padding:5px;font-size:10px}}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){.playing .hud:has(#night-target:not(.hidden)){height:44px;min-height:44px}}
/* Start at the top: centering oversized contents clips purchases above scrollTop 0. */
.prep-content>.shop-board{flex:1 1 0;overflow-y:auto;overflow-x:hidden;min-height:0;padding:4px 1px;justify-content:flex-start;margin:0;overscroll-behavior:contain}
.shop-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:stretch;flex:none}
.loadout-panel,.shop-panel{min-width:0;border:1px solid #655169;border-radius:10px;background:#17141f55;padding:14px}
.panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.panel-heading h2,.panel-heading h3{margin:0;color:#f0dcb4;font:600 18px var(--sans)}
.panel-heading small{color:#b8a4c5;font:10px var(--sans);text-align:right}
.loadout-panel .deck-columns{display:flex;flex-direction:column;gap:10px}
.loadout-panel .deck-section{padding:0 0 9px;gap:6px;border:0;border-bottom:1px solid #78608140;border-radius:0;background:none}
.loadout-panel .deck-section:last-child{padding-bottom:0;border-bottom:0}
.loadout-panel .deck-heading{height:auto;min-height:26px;align-items:center;gap:6px}
.loadout-panel .deck-heading h3{font-size:13px;white-space:nowrap}
.loadout-panel .deck-heading small{margin-right:auto;text-align:left;font-size:9px}
.loadout-panel .shop-action{height:auto;min-height:0;border-style:solid;padding:5px 7px;white-space:nowrap}
.deck-trays{display:flex;gap:10px;min-width:0;align-items:stretch}
.loadout-panel .deck-slots{display:flex;gap:5px;flex:1 1 60%;overflow-x:auto;overflow-y:hidden;padding:5px 3px;min-width:0;scrollbar-width:thin;scrollbar-color:#917398 transparent}
.loadout-panel .deck-slot{flex:0 0 43px;width:43px;height:67px;min-height:67px;border-radius:3px;background:#3a2d4940;border-color:#84719066}
.loadout-panel .deck-slot:has(.deck-card){border-color:transparent;background:none}
.loadout-panel .deck-slot .deck-card.illustrated-card{width:100%;height:100%;min-height:0;padding:0;gap:0}
.loadout-panel .deck-card .card-name{display:none}
.loadout-panel .card-art{height:100%;min-height:0;flex:1}
.loadout-panel .slot-number{position:absolute;top:2px;left:3px;z-index:1;pointer-events:none;font:700 9px var(--sans);color:#fff2bc;text-shadow:0 1px 2px #170e21,1px 0 2px #170e21}
.deck-reserve{flex:1 1 32%;min-width:0;max-width:38%;padding-left:9px;border-left:1px solid #78608140;display:flex;flex-direction:column;gap:3px}
.loadout-panel .deck-available{display:flex;gap:4px;min-height:48px;height:100%;overflow-x:auto;overflow-y:hidden;align-items:center;padding:3px;scrollbar-width:thin;scrollbar-color:#917398 transparent}
.loadout-panel .deck-available .deck-card.illustrated-card{flex:0 0 33px;width:33px;height:51px;min-height:0;padding:0;gap:0}
.loadout-panel .empty-deck{font-size:9px;margin:auto;line-height:1.4}
.loadout-panel .available-label{font-size:8px;height:auto;line-height:1.2}
.shop-panel{display:flex;flex-direction:column;gap:5px}
.shop-offer-groups{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;min-width:0}
.shop-stock{min-width:0;display:flex;flex-direction:column;gap:7px}
.stock-heading{display:flex;align-items:center;justify-content:space-between;gap:3px;min-height:26px}
.stock-heading h3{margin:0;font:600 12px var(--sans);color:#ead9bb}
.stock-heading .reroll{padding:4px;font-size:10px;border:0;background:#5e446c66;white-space:nowrap}
.shop-panel .deck-offers{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;min-height:136px}
.shop-panel .deck-card.illustrated-card{height:136px;min-height:0;padding:3px 0;gap:5px}
.shop-panel .card-name{font-size:9px;min-height:20px;display:flex;align-items:center;justify-content:center;line-height:1.1}
.shop-panel .card-price{font-size:10px;line-height:13px}
.shop-panel .stock-magic .deck-offers{grid-template-columns:1fr}
.shop-panel .stock-magic .pack-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.shop-panel .magic-pack{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;height:136px;gap:8px;padding:0}
.shop-panel .magic-pack .card-art{height:97px;width:63px;max-width:100%;flex:none}
.stock-note{color:#bda6ca;text-align:center;font:9px/1.3 var(--sans);margin:auto 0 0;min-height:20px;display:flex;align-items:center;justify-content:center}
.shop-panel .buy-plant-slot{font-size:9px;padding:4px;min-height:24px;border-style:solid;margin-top:auto}
.upgrade-heading{border-top:1px solid #78608166;padding-top:13px;margin:13px 0 0}
.upgrade-heading h3{font-size:13px}
.player-upgrades{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding-top:5px}
.shop-panel .upgrade-card{height:130px!important;position:relative}
.upgrade-level{position:absolute;top:6px;right:12%;font:700 9px var(--sans);color:#ffe8b8;text-shadow:0 1px 2px #180e28}
.card-ghost{translate:-50% -50%;transform-origin:center;will-change:transform;max-width:none}
.shop-board .card-detail{min-height:34px;height:auto;flex-shrink:0}
.shop-board .card-detail:empty{display:none}
.build-card:hover,.deck-card:hover,.magic-pack:hover{z-index:3}
.loadout-layout .loadout-panel{padding:8px}
@media(max-width:1000px){
 .shop-layout{gap:10px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
 .loadout-panel,.shop-panel{padding:9px}
 .shop-offer-groups{gap:7px}.stock-heading{flex-wrap:wrap;min-height:35px;align-content:center}
 .shop-panel .deck-offers{gap:4px}.panel-heading h2{font-size:15px}.panel-heading small{font-size:9px}
 .loadout-panel .deck-slot{flex-basis:36px;width:36px;height:56px;min-height:56px}
 .loadout-panel .deck-available .deck-card.illustrated-card{flex-basis:29px;width:29px;height:45px}
 .deck-trays{gap:5px}.deck-reserve{padding-left:4px;max-width:32%}
}
@media(max-width:700px) and (orientation:portrait){
 .prep-content>.shop-board{justify-content:flex-start}
 .shop-footer .supplies{grid-template-columns:repeat(2,minmax(0,1fr))}
 .shop-layout{grid-template-columns:1fr;gap:8px}
 .loadout-panel,.shop-panel{padding:8px}
 .panel-heading{margin-bottom:5px}.panel-heading h2{font-size:14px}.panel-heading small{font-size:8px}
 .loadout-panel .deck-columns{gap:4px}.loadout-panel .deck-section{gap:1px;padding-bottom:4px}
 .loadout-panel .deck-heading{min-height:23px}.loadout-panel .deck-heading h3{font-size:11px}.loadout-panel .deck-heading small{font-size:8px}
 .loadout-panel .shop-action{font-size:9px;padding:4px}.loadout-panel .deck-slots{gap:4px;padding:3px 1px}
 .loadout-panel .deck-slot{flex-basis:30px;width:30px;height:46px;min-height:46px}
 .loadout-panel .deck-available{min-height:32px;padding:1px}.loadout-panel .deck-available .deck-card.illustrated-card{flex-basis:25px;width:25px;height:38px}
 .loadout-panel .empty-deck{font-size:8px}.loadout-panel .available-label{font-size:7px}.loadout-panel .slot-number{font-size:8px}
 .shop-offer-groups{gap:9px}.stock-heading{min-height:23px;flex-wrap:nowrap}.stock-heading h3{font-size:10px}.stock-heading .reroll{font-size:9px;padding:3px}
 .shop-panel .deck-offers{min-height:90px}.shop-panel .deck-card.illustrated-card{height:90px;gap:3px;padding:0}
 .shop-panel .card-name{font-size:8px;min-height:17px}.shop-panel .card-price{font-size:9px;line-height:10px}
 .shop-panel .magic-pack{height:90px;gap:4px;font-size:10px}.shop-panel .magic-pack .card-art{height:70px;width:45px}
 .shop-stock{gap:4px}.stock-note{font-size:8px;min-height:20px}.shop-panel .buy-plant-slot{font-size:8px;padding:3px;min-height:20px}
 .upgrade-heading{padding-top:7px;margin-top:5px}.upgrade-heading h3{font-size:11px}.player-upgrades{gap:9px;padding-top:0}
 .shop-panel .upgrade-card{height:86px!important}.upgrade-level{top:3px;font-size:8px;right:20%}
 .shop-board .card-detail{font-size:9px;min-height:29px;height:auto;padding:5px 7px}
}
@media(orientation:landscape) and (max-height:600px){
 .shop-layout{gap:8px}.loadout-panel,.shop-panel{padding:6px}.panel-heading{margin-bottom:2px}.panel-heading h2{font-size:13px}.panel-heading small{font-size:8px}
 .loadout-panel .deck-columns{gap:2px}.loadout-panel .deck-section{gap:1px;padding-bottom:3px}.loadout-panel .deck-heading{min-height:19px}.loadout-panel .deck-heading h3{font-size:10px}.loadout-panel .deck-heading small{font-size:7px}.loadout-panel .shop-action{font-size:8px;padding:3px}
 .loadout-panel .deck-slots{padding:2px}.loadout-panel .deck-slot{flex-basis:23px;width:23px;height:36px;min-height:36px}.loadout-panel .deck-available{min-height:25px;padding:0}.loadout-panel .deck-available .deck-card.illustrated-card{flex-basis:20px;width:20px;height:31px}.loadout-panel .empty-deck{font-size:7px}.loadout-panel .available-label{font-size:6px}
 .stock-heading{min-height:18px;flex-wrap:nowrap}.stock-heading h3{font-size:10px}.stock-heading .reroll{font-size:8px;padding:2px}.shop-stock{gap:2px}
 .shop-panel .deck-offers{min-height:66px}.shop-panel .deck-card.illustrated-card{height:66px;gap:1px;padding:0}.shop-panel .card-name{font-size:7px;min-height:14px}.shop-panel .card-price{font-size:8px;line-height:9px}
 .shop-panel .magic-pack{height:66px;font-size:9px;gap:2px}.shop-panel .magic-pack .card-art{height:49px;width:32px}.stock-note{font-size:7px;min-height:16px}.shop-panel .buy-plant-slot{font-size:8px;min-height:16px;padding:2px}
 .upgrade-heading{margin-top:2px;padding-top:4px}.upgrade-heading h3{font-size:10px}.player-upgrades{padding-top:0}.shop-panel .upgrade-card{height:66px!important}.upgrade-level{font-size:7px;top:0;right:25%}
 .shop-board .card-detail{font-size:8px;min-height:24px;padding:3px 6px}
}
@media(prefers-reduced-motion:reduce){.card-ghost{will-change:auto}}
@media(max-width:700px) and (orientation:portrait) and (max-height:740px){
 .shop-layout{gap:5px}.loadout-panel,.shop-panel{padding:6px}.panel-heading{margin-bottom:3px}.panel-heading h2{font-size:12px}
 .loadout-panel .deck-columns{gap:2px}.loadout-panel .deck-section{padding-bottom:2px}.loadout-panel .deck-heading{min-height:19px}.loadout-panel .shop-action{padding:3px;font-size:8px}
 .loadout-panel .deck-slot{flex-basis:24px;width:24px;height:37px;min-height:37px}.loadout-panel .deck-slots{padding:2px 1px}.loadout-panel .deck-available{min-height:27px}.loadout-panel .deck-available .deck-card.illustrated-card{flex-basis:20px;width:20px;height:31px}
 .shop-panel{gap:2px}.shop-stock{gap:2px}.stock-heading{min-height:21px}.shop-panel .deck-offers{min-height:73px}.shop-panel .deck-card.illustrated-card{height:73px;gap:1px}.shop-panel .card-name{font-size:7px;min-height:14px}
 .shop-panel .magic-pack{height:73px;font-size:9px}.shop-panel .magic-pack .card-art{height:54px;width:35px}.stock-note,.shop-panel .buy-plant-slot{min-height:17px;font-size:7px}
 .upgrade-heading{padding-top:5px;margin-top:4px}.shop-panel .upgrade-card{height:68px!important}.player-upgrades{gap:5px}
 .shop-board .card-detail{min-height:24px;font-size:8px;padding:3px 5px}
}

[data-draggable=true]{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
[data-draggable=true] img{-webkit-user-drag:none;touch-action:none;-webkit-touch-callout:none}

/* Keep touch controls readable even in the compact phone layouts above. */
.shop-footer .lobby-chat{position:relative;inset:auto;z-index:45;flex-shrink:0}
.shop-footer .chat-toggle{float:none;width:100%;white-space:nowrap}
.shop-footer .chat-panel{position:fixed;inset:auto;width:min(330px,calc(100vw - 40px));max-height:min(300px,calc(100dvh - 100px));box-sizing:border-box;display:flex;flex-direction:column}
.shop-footer .chat-panel header,.shop-footer .chat-panel form{flex-shrink:0}
.shop-footer .chat-history{min-height:0;flex-shrink:1}
.shop-footer .chat-panel input{flex:1;min-width:0}
@media(pointer:coarse){
 .prep-lobby .shop-action:not(.magic-pack){min-height:44px;padding:7px 8px;font-size:11px;line-height:1.2}
 .prep-lobby .stock-heading{flex-wrap:wrap;gap:5px;min-height:0}
 .prep-lobby .stock-heading .reroll{min-width:44px}
 .prep-lobby .buy-plant-slot{white-space:normal}
 .prep-lobby .hud-button,.prep-lobby #sound,.shop-footer .supplies .hud-button,.shop-footer #save-quit,.shop-footer #prep-ready,.shop-footer #prep-start{min-height:44px;min-width:44px;padding:8px 10px;font-size:11px;line-height:1.2}
 .prep-lobby .deck-heading{flex-wrap:wrap}
 .shop-footer .supplies{gap:6px}
 .card-description-menu{font-size:13px}.card-description-menu strong{font-size:14px}.card-description-menu .card-description-hint{font-size:11px}
}
@media(pointer:coarse) and (orientation:portrait){
 .prep-lobby .shop-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
 .prep-lobby .shop-heading>strong{grid-column:1;grid-row:2;text-align:left;max-width:none}
 .prep-lobby .shop-window-controls{grid-column:2;grid-row:1 / span 2}
}

.unowned-upgrade .card-art{opacity:.4}
.player-upgrade-slots .upgrade-level{top:2px;right:2px}
.prestiged-upgrade .upgrade-level{color:#ffe17e}
.upgrade-card[data-prestige="true"] .card-name{color:#ffe17e;font-weight:800}

.shop-panel .magic-pack{width:fit-content;max-width:100%;justify-self:center}.tarot-pack-ghost{display:block;object-fit:contain;image-rendering:pixelated;border:0;padding:0;margin:0}
