.page { display: grid; grid-template-columns: 260px 1fr; height: 100vh; width: 100vw; overflow: hidden; background: var(--bg, #12141a); color: var(--text, #e8eaef); } .sidebar { border-right: 1px solid var(--stroke, #2a2f3a); padding: 12px; overflow: auto; display: flex; flex-direction: column; gap: 10px; } .sideTitle { font-weight: 800; font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; opacity: 0.85; } .accordion { border: 1px solid var(--stroke, #2a2f3a); border-radius: 10px; overflow: hidden; background: rgba(255, 255, 255, 0.02); } .accordionHead { width: 100%; text-align: left; padding: 10px 12px; font-weight: 700; background: transparent; border: 0; color: inherit; cursor: pointer; } .palette { display: grid; gap: 6px; padding: 8px; } .paletteItem { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--stroke, #2a2f3a); background: rgba(0, 0, 0, 0.2); color: inherit; cursor: grab; user-select: none; } .paletteItem:active { cursor: grabbing; } .paletteLabel { font-size: 13px; font-weight: 600; } .hint { font-size: 12px; opacity: 0.65; line-height: 1.35; } .stage { position: relative; min-width: 0; min-height: 0; background: #0a0b0e; } .viewport { position: absolute; inset: 0; overflow: hidden; cursor: default; } .world { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; } .mapImg { display: block; max-width: none; user-select: none; pointer-events: none; } .trap { position: absolute; transform: translate(-50%, -50%); border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.55); background: rgba(0, 0, 0, 0.45); display: grid; place-items: center; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4); cursor: move; touch-action: none; } .trapSelected { border-color: #f5c542; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(245, 197, 66, 0.35); } .trapLabel { position: absolute; left: 50%; top: calc(100% + 4px); transform: translateX(-50%); font-size: 11px; white-space: nowrap; background: rgba(0, 0, 0, 0.7); padding: 2px 6px; border-radius: 4px; } .handle { position: absolute; right: -5px; bottom: -5px; width: 12px; height: 12px; border-radius: 2px; background: #f5c542; border: 1px solid #000; cursor: nwse-resize; touch-action: none; } .empty { position: absolute; inset: 0; display: grid; place-items: center; opacity: 0.7; } .toolbar { display: flex; gap: 8px; flex-wrap: wrap; } .toolbar button { font-size: 12px; }