.vacuum-game{position:relative;width:min(100%,530px);margin:0 auto;color:#305563}
.vacuum-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.vacuum-hud>div{min-width:0;padding:8px 4px;border:2px solid #a6cbd1;border-radius:13px;background:#f0fcf8;text-align:center;box-shadow:0 3px 0 #c1dedb}
.vacuum-hud small{display:block;color:#5c7d82;font-size:11px;font-weight:800}
.vacuum-hud strong{display:block;font-size:17px;font-weight:900;white-space:nowrap;font-variant-numeric:tabular-nums}
.vacuum-hud [data-battery].is-low{color:#d76b73}
.vacuum-scene{padding:10px;border:4px solid #66989d;border-radius:20px;background:linear-gradient(140deg,#d5eee9,#aacfd3);box-shadow:0 5px 0 #8bb9ba}
.vacuum-scene-head{display:flex;justify-content:space-between;align-items:center;margin:0 4px 8px;color:#315f68;font-size:13px}
.vacuum-scene-head strong{font-size:15px}
.vacuum-board{display:grid;grid-template-columns:repeat(var(--vacuum-size),minmax(0,1fr));gap:3px;width:min(100%,390px);aspect-ratio:1;margin:0 auto;padding:5px;border:2px solid #6896a2;border-radius:12px;background:#779da2;touch-action:none}
.vacuum-cell{display:grid;place-items:center;position:relative;min-width:0;min-height:0;border:1px solid #d7e3d8;border-radius:4px;background:#f6f8e9;font-size:clamp(15px,5.5vw,27px);line-height:1}
.vacuum-cell.is-wall{border-color:#668a91;background:repeating-linear-gradient(45deg,#517984 0 8px,#5c8992 8px 16px)}
.vacuum-cell.is-brake{background:#ffedb9}
.vacuum-cell.is-dock{background:#c9efd6}
.vacuum-cell.is-charge{background:#d3ecff}
.vacuum-cell.is-portal{background:#d9d2fa;box-shadow:inset 0 0 0 2px #977cd0}
.vacuum-cell.is-robot{z-index:1;background:#fff1aa;box-shadow:inset 0 0 0 2px #e5b75c;filter:drop-shadow(0 2px 2px #54767a88)}
.vacuum-cell.is-hint{outline:3px solid #e98749;outline-offset:-4px;z-index:2}
.vacuum-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 12px;margin-top:8px;color:#4b7479;font-size:11px;font-weight:800}
.vacuum-dpad{display:grid;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,40px);justify-content:center;gap:3px;margin:12px auto 8px}
.vacuum-dpad button{padding:0;border:2px solid #63959b;border-radius:11px;background:#f2fffa;color:#2e6871;font-family:inherit;font-size:25px;font-weight:900;box-shadow:0 3px 0 #b2d6d3;touch-action:manipulation}
.vacuum-dpad button[data-dir=U]{grid-column:2;grid-row:1}
.vacuum-dpad button[data-dir=L]{grid-column:1;grid-row:2}
.vacuum-dpad button[data-dir=R]{grid-column:3;grid-row:2}
.vacuum-dpad button[data-dir=D]{grid-column:2;grid-row:3}
.vacuum-dpad button:disabled{opacity:.52}
.vacuum-dpad button:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px 0 #b2d6d3}
.vacuum-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:5px}
.vacuum-tools .button{min-width:0;min-height:40px;padding:5px 3px;font-size:13px}
.vacuum-game .toy-status{min-height:2.5em;margin:8px 0;text-align:center}
.vacuum-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.vacuum-controls .button{min-width:0;padding:7px 3px;font-size:13px;white-space:nowrap}
.vacuum-overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:16px;border-radius:18px;background:#315e6999;backdrop-filter:blur(2px)}
.vacuum-overlay[hidden]{display:none}
.vacuum-dialog{width:min(100%,345px);padding:22px 18px;border:3px solid #86b6b6;border-radius:19px;background:#fffdf3;box-shadow:0 8px 0 #37626d77;text-align:center}
.vacuum-dialog h2{margin:0 0 10px;color:#32666c;font-size:24px}
.vacuum-dialog p{margin:0 0 17px;color:#58767a;font-size:15px;line-height:1.6}
.vacuum-dialog .button{min-width:145px}
.vacuum-game button:focus-visible{outline:3px solid #f18c52;outline-offset:2px}
@media(max-width:480px){.toy-page:has(.vacuum-game) .toy-card{padding:14px 11px}.toy-page:has(.vacuum-game) .toy-card h1{font-size:22px}.toy-page:has(.vacuum-game) .toy-instruction{margin:5px 0 10px;line-height:1.4}.vacuum-hud{gap:5px}.vacuum-hud strong{font-size:15px}.vacuum-scene{padding:7px}.vacuum-board{gap:2px;padding:4px}.vacuum-cell{font-size:clamp(15px,6vw,24px)}.vacuum-dpad{grid-template-rows:repeat(3,38px);margin-top:9px}}
