#shipyard-dialog{max-width:1080px;padding:24px;max-height:94vh;overflow:auto}
#yard-wallet{color:#edcc8b;font:600 15px/1.6 Consolas,monospace;margin-top:10px}
.yard-layout{position:relative;display:block;height:clamp(280px,48vh,540px);min-height:280px;margin:12px 0;background:radial-gradient(ellipse,#1d3039,#080f19 75%);border:1px solid #56727d;overflow:hidden}
.yard-layout>canvas,.yard-rooms{position:absolute;inset:0;width:100%;height:100%}
.yard-layout .yard-room{position:absolute;padding:3px;background:transparent;border:2px solid transparent;cursor:grab;touch-action:none;user-select:none;display:flex;align-items:end;justify-content:center}
.yard-layout .yard-room span{background:#08141ded;color:#e1edf0;padding:3px 6px;font:11px/1.2 Segoe UI,sans-serif;max-width:100%;overflow-wrap:anywhere;pointer-events:none}
.yard-layout .yard-room:hover{background:#aad9e018;border-color:#b4dfe4}
.yard-layout .yard-source{opacity:.4;border:2px dashed #f3cf89;background:#e9b65f22}
.yard-layout .yard-valid{border-color:#84c9b8;background:#6ce4b418}
.yard-layout .yard-invalid{opacity:.45}
.yard-layout .yard-over.yard-valid{border:3px solid #f5d486;background:#f4d28345;box-shadow:inset 0 0 20px #e4c58c55}
.yard-layout .yard-over.yard-invalid{border:3px solid #ed867d;background:#ed867d33}
.yard-dragging,.yard-dragging button{cursor:grabbing!important}
.yard-drag-ghost{position:fixed;z-index:9999;pointer-events:none;border:2px solid #f3cf89;box-shadow:0 10px 28px #000b;opacity:.9}
.yard-drag-ghost[hidden]{display:none}
.yard-receipt{position:fixed;inset:30% auto auto 50%;transform:translateX(-50%);margin:0;padding:22px 34px;min-width:260px;max-width:min(520px,90vw);background:#132b24f5;color:#f6dba1;border:2px solid #ecc778;box-shadow:0 12px 70px #000c,0 0 30px #f3cf8933;text-align:center;pointer-events:none}
.yard-receipt:popover-open{display:grid;gap:8px;animation:yard-charge .3s ease-out}
.yard-receipt strong{font:700 30px/1.2 Consolas,monospace;color:#ffe0a1}.yard-receipt span{font:14px/1.5 Segoe UI,sans-serif;color:#d7e9e0}
.yard-receipt[data-success=false]{background:#352325f5;border-color:#e4a097}.yard-receipt[data-success=false] strong{color:#f1b8ac;font-size:24px}
@keyframes yard-charge{from{opacity:0;transform:translate(-50%,15px) scale(.85)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media(prefers-reduced-motion:reduce){.yard-receipt:popover-open{animation:none}}.reduced-motion .yard-receipt:popover-open{animation:none}
