.floor-memory{position:relative;margin:12px 0 4px;padding:13px;border:1px solid #667a69;border-radius:12px;background:linear-gradient(155deg,#34413a,#1e2925 63%);box-shadow:inset 0 0 28px #0c16135c}
.floor-memory-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#e8f4e6;font:700 15.4px 'Space Mono',monospace}
.floor-memory-top span{padding:5px 7px;border:1px solid #78927a;border-radius:5px;background:#17261dcc}
.floor-memory-top .floor-urgent{color:#ffb39d;border-color:#b85449}
.floor-memory-board{display:grid;grid-template-columns:repeat(var(--floor-cells),minmax(0,1fr));gap:5px;width:min(100%,330px);margin:14px auto 12px;padding:9px;border:8px solid #d2c7ae;border-radius:6px;background:#d2c7ae;box-shadow:0 7px 19px #0007}
.floor-memory-cell{position:relative;z-index:5;aspect-ratio:1;min-height:38px;display:grid;place-items:center;border:1px solid #9c9b90;border-radius:3px;background:#e0ddd0;color:#485149;cursor:pointer;touch-action:manipulation;box-shadow:inset 0 -3px #bcb8aa}
.floor-memory-cell:nth-child(odd){background:#c2c8bd}
.floor-memory-cell small{font:700 9.8px 'Space Mono',monospace;letter-spacing:.015em}
.floor-memory-cell.floor-lit{background:#ddc575;box-shadow:inset 0 0 0 3px #fff4ca,0 0 14px #ffd76a}
.floor-memory-cell.floor-walked{background:#84b79b;box-shadow:inset 0 0 0 2px #dbf5df}
.floor-memory-cell.floor-hint{background:#86b9d6;box-shadow:inset 0 0 0 3px #e3faff,0 0 14px #90d6ff}
.floor-memory-cell.floor-wrong{background:#cf725d;box-shadow:inset 0 0 0 3px #ffdbd3}
/* Аудит M2 (№1): кепка наехала на правую колонку клеток (тап шёл на кепку).
   Сдвиг вправо + клетки подняты до z5 — доска (главная механика) всегда сверху. */
.floor-memory-cap.timed-cap{position:absolute;top:97px;right:calc(50% - 190px);width:51px;height:44px;transform:rotate(14deg);z-index:4;background-size:contain;filter:none;
  /* П.3: clip-path отрезал верх кепки И попадание по ней (clip режет и hit-тест) —
     визуальный срез перенесён на маску: маска не уменьшает тап-зону. */
  -webkit-mask-image:linear-gradient(to bottom,transparent 45%,#000 45%);
  mask-image:linear-gradient(to bottom,transparent 45%,#000 45%)}
.floor-memory-cap.timed-cap:hover{transform:rotate(14deg) scale(1.1)}
.floor-memory-message{min-height:42px;padding:9px 11px;border-radius:6px;background:#111e18;color:#ebf4e4;font:15.4px/1.4 'Space Mono',monospace}
.floor-memory-message[data-kind='fail']{color:#ffc2ad}
.floor-memory-message[data-kind='good']{color:#c7efaa}
.floor-memory-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.floor-memory-controls button{min-height:46px;padding:8px 11px;border:1px solid #829b79;border-radius:7px;background:#26382b;color:#eef8e9;font:700 15.4px Manrope,sans-serif;cursor:pointer}
.floor-memory-controls button:disabled{opacity:.43;cursor:default}
.floor-memory-controls button:not(:disabled):hover{border-color:#c5f477;background:#35533b}
.floor-memory-controls button[hidden]{display:none}
@media(max-width:520px){.floor-memory{padding:10px}.floor-memory-board{width:min(100%,285px);gap:4px;border-width:6px;padding:6px}.floor-memory-cell{min-height:33px}.floor-memory-cap.timed-cap{right:calc(50% - 168px);top:78px}.floor-memory-top{font-size:12.6px}.floor-memory-controls button{flex:1}}
