.crate{display:inline-flex;position:relative;align-items:center;justify-content:center;flex-shrink:0;min-width:39px;min-height:24px;padding:3px 6px;font:700 9px/1.3 ui-monospace,monospace;white-space:nowrap;background-color:#36424b;border:1px solid #0007;border-top-color:#ffffff50;border-left-color:#ffffff30;box-shadow:2px 3px 0 #0005,inset 3px 0 #ffffff14,inset -3px 0 #0002;background-image:repeating-linear-gradient(90deg,transparent,transparent 6px,#0000000e 6px,#0000000e 8px);border-radius:2px;margin:2px 3px 4px 0;text-shadow:0 1px #0002;transform:skewY(-3deg)}
.stock{display:flex;flex-wrap:wrap;gap:3px;min-height:28px;align-items:center}
.empty-stock{font:italic 11px/1.5 system-ui;color:inherit;opacity:.7}
.ship-token{margin:0;max-width:100%;width:max(156px,calc(61px + var(--ship-slots,5)*19px));min-width:0;flex:0 1 auto;position:relative}
.ship-hull{min-height:47px;position:relative;display:flex;align-items:center;padding:8px 18px 8px 13px;gap:6px;isolation:isolate;filter:drop-shadow(2px 5px 0 #061f2a90)}
.ship-hull:before{content:"";position:absolute;inset:0;background:var(--player-color,#dbb369);clip-path:polygon(0 9%,84% 9%,100% 50%,84% 91%,0 91%,4% 50%);z-index:-2}
.ship-hull:after{content:"";position:absolute;inset:6px 10px 6px 8px;background:#283d43;clip-path:polygon(0 0,85% 0,100% 50%,85% 100%,0 100%,3% 50%);z-index:-1}
.ship-bridge{width:15px;height:26px;background:#e9e4cd;box-shadow:3px 2px 0 #081b25;position:relative;flex-shrink:0;border-top:4px solid #9b9887}
.ship-bridge:before{content:"";position:absolute;left:3px;right:3px;top:4px;height:4px;background:#47717e;box-shadow:0 7px #47717e}
.ship-deck{display:flex;flex-wrap:wrap;gap:3px;align-items:center;min-width:0}
.deck-slot{display:flex;width:16px;height:24px;border:1px dashed #91a0a260;align-items:center;justify-content:center}
.ship-deck .crate{font-size:0;min-width:16px;width:16px;height:24px;min-height:0;padding:0;margin:0;box-shadow:1px 2px 0 #0006;transform:skewY(-8deg)}
.ship-token figcaption{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:9px;font:10px/1.3 ui-monospace,monospace;color:#edf0df}
.ship-token figcaption>span:not(.player-mark){overflow-wrap:anywhere}
.ship-token small{font-size:9px;white-space:nowrap;color:#c0d1cf}
.ship-token .player-mark{width:19px;height:19px;font-size:9px;border-radius:50%}
.player-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;background:var(--player-color,#e3b963);color:#18262b;border:1px solid #0003;box-shadow:inset 0 0 0 2px #ffffff25;font:700 12px ui-monospace,monospace;border-radius:50%}
.player-board{background:linear-gradient(125deg,#d4bb92,#bfa77f);color:#303731;border:1px solid #ebd5af;border-top:6px solid var(--player-color,#e3b963);padding:16px;border-radius:5px;box-shadow:3px 5px 0 #090f1580,inset 0 0 0 4px #67564022;min-width:0}
.player-board.current{outline:2px solid #f1d298;outline-offset:3px}
.player-head{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #6c654a60;padding-bottom:13px}
.player-name{display:flex;align-items:center;gap:8px;min-width:0}
.player-head h3{font:700 17px/1.15 Georgia,serif;margin:0;overflow-wrap:anywhere}
.player-head>span{font:8px/1.5 ui-monospace,monospace;color:#494c3d;text-align:right;max-width:94px}
.player-board.current .player-head>span{background:#34453d;color:#f4e0b8;padding:4px 6px;border-radius:2px}
.machine-piece,.warehouse-piece{display:inline-block;position:relative;width:25px;height:24px;background:#6f69572b;border:1px dashed #66655260}
.machine-piece{clip-path:polygon(0 22%,27% 0,27% 22%,55% 0,55% 22%,85% 22%,85% 0,100% 0,100% 100%,0 100%)}
.machine-piece.built{border-style:solid;box-shadow:inset 0 -5px #0002}
.machine-piece.built:after{content:"";position:absolute;bottom:6px;left:4px;width:4px;height:5px;background:#f8edc5;box-shadow:7px 0 #f8edc5}
.warehouse-piece{width:23px;height:21px;clip-path:polygon(0 25%,50% 0,100% 25%,100% 100%,0 100%)}
.warehouse-piece.built{background:#7e6346;border-style:solid;box-shadow:inset 0 -3px #0002}
.warehouse-piece.built:after{content:"";position:absolute;bottom:1px;left:7px;width:8px;height:10px;background:#bea580;border:1px solid #503d2d}
.yard-heading{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;gap:8px}
.yard-heading h4{font:700 12px Georgia,serif}
.yard-heading>span{font:9px ui-monospace,monospace;color:#515344}
.price-yard{margin-bottom:12px;padding:10px;background:#f0ddb729;border:1px solid #796d4a55;border-radius:3px}
.price-shelves{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5px}
.price-shelf{border:1px solid #80725166;background:#ebd9b12e;min-width:0}
.price-tag{display:block;text-align:center;font:700 12px ui-monospace,monospace;padding:3px 0;background:#6e664126;color:#3d4638;border-bottom:1px solid #82754f40}
.shelf-cargo{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;min-height:41px}
.shelf-cargo .crate{font-size:8px;min-width:35px;max-width:100%;padding:3px;margin:0 1px 3px 0}
.empty-slot{font:16px/1.5 ui-monospace,monospace;color:#6c6c515c}
.value-card{display:flex;flex-wrap:wrap;gap:5px;background:#151e1c;border:1px solid #6e6c52;border-radius:4px;padding:10px 6px;justify-content:space-between}
.value-row{display:flex;align-items:center;flex-direction:column;gap:7px;min-width:0}
.value-row .crate{font-size:8px;min-width:35px;margin:0 0 3px;min-height:23px;padding:3px}
.value-row strong{font:700 10px ui-monospace,monospace;color:#ead7ad;white-space:nowrap}
.ship-cargo-summary{font:10px/1.5 ui-monospace,monospace;color:#e1e7d6;margin:6px 0 0;text-align:center;overflow-wrap:anywhere}
.table-zone{min-width:0}.zone-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.zone-heading h4{margin:0;overflow-wrap:anywhere}
.disc-piece{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:6px;border-radius:50%;background:#526d88;color:#fff;font:700 10px ui-monospace,monospace;box-shadow:inset 0 2px 1px #fff5,0 3px 0 #0005}
.ship-token,.player-board,.price-yard,.value-card,.table-zone{box-sizing:border-box}
