:root{--bg:#1f1f24;--p1:#1e1e1e;--p2:#242424;--ink:#eaeaea;--ac:#1e90ff;--gap:1px;--cell:32px;--red:#c31212;--blue:#2e74dc;--floor:#101215;--teal:#14b8a6;--teal2:#86efe4;--ring:#0b0b0b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px system-ui,-apple-system,Segoe UI,Roboto,Arial}
h1{font-size:20px;margin:10px 0;text-align:center}
.toolbar{display:flex;gap:8px;justify-content:center;margin:6px 0 10px;flex-wrap:wrap}
button{border:0;border-radius:8px;padding:8px 12px;background:#35363a;color:#fff;cursor:pointer}button.active{background:var(--ac)}
input[type=text]{padding:8px 10px;border-radius:8px;border:1px solid #3a3a3a;background:#222;color:#eee;min-width:220px}
.shell{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:300px 1fr 380px;gap:14px;padding:0 12px 18px}
.panel{background:var(--p1);border:1px solid #333;border-radius:12px;padding:12px}
.sub{background:var(--p2);border:1px solid #333;border-radius:8px;padding:8px;margin:8px 0}
.stat{display:flex;align-items:center;gap:8px;margin:6px 0}
.stat label{opacity:.8;min-width:120px}.stat .v{background:#303;border-radius:6px;padding:4px 8px;min-width:48px;text-align:center}
#grid{justify-self:center;width:fit-content;background:#4a4a4a;padding:0;border-radius:10px;user-select:none;align-self:start}.board{display:grid;grid-template-columns:repeat(16,var(--cell));grid-template-rows:repeat(16,var(--cell));gap:var(--gap);background:#444}
.cell{position:relative;width:var(--cell);height:var(--cell);background:var(--floor);cursor:pointer;outline:1px solid #202226}
.wall{background:var(--red)}.obj{position:absolute;inset:0;background:var(--blue);z-index:3}
.exit{background:var(--teal);box-shadow:inset 0 0 0 3px var(--teal2)}
.rubber::after{content:'+';position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:18px;opacity:.9;color:#ffb300;text-shadow:0 0 3px #000}
.fragile::after{content:'F';position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:16px;opacity:.95}
.deadly::after{content:"\2620";position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:16px;opacity:.95}
.pusher::after{content:attr(data-arrow);position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:18px;opacity:.95;color:#ddd;text-shadow:0 0 3px #000}
.painted{box-shadow:inset 0 0 0 3px #fff}
.tplate{position:absolute;inset:3px;border-radius:6px;border:2px solid var(--ring);display:grid;place-items:center;font-weight:700;color:#111;z-index:2;background:#f2c14e}
.tplate.on{box-shadow:0 0 8px rgba(255,255,255,.35), inset 0 0 0 2px #fff}
.tplate.off{filter:saturate(.85) brightness(.9)}
.tlabel{font-size:12px;background:rgba(0,0,0,.18);color:#000;padding:1px 4px;border-radius:4px}
.tg-outline{position:absolute;inset:0;border:2px solid currentColor;border-radius:4px;pointer-events:none;opacity:.6}
.tg-corners{position:absolute;inset:0;pointer-events:none}
.tg-corners i{position:absolute;width:0;height:0;border-style:solid}
.tg-corners i.tl{top:0;left:0;border-width:8px 8px 0 0}
.tg-corners i.tr{top:0;right:0;border-width:8px 0 0 8px}
.tg-corners i.bl{bottom:0;left:0;border-width:0 8px 8px 0}
.tg-corners i.br{bottom:0;right:0;border-width:0 0 8px 8px}
.tg-neutral-center{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.tg-neutral-center b{width:14px;height:14px;background:#aaa;border-radius:3px;opacity:.8}
.tg-badge{position:absolute;bottom:2px;right:2px;background:#111;color:#fff;font-weight:700;font-size:11px;padding:1px 4px;border-radius:6px;opacity:.9}
.tabs{display:flex;gap:8px;margin-bottom:8px}.tab{background:#333;border:1px solid #444;padding:6px 10px;border-radius:8px;cursor:pointer}.tab.active{background:var(--ac)}
.chip{border:1px solid #444;background:#333;color:#eee;padding:6px 10px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.chip.active{background:var(--ac)}.row{display:flex;align-items:center;gap:8px;margin:8px 0;flex-wrap:wrap}.tiny{font-size:12px;opacity:.85}
.warn,.ok{padding:8px 10px;border-radius:8px;margin:8px 0}.warn{background:#332222;border:1px solid #553333;color:#ffb3b3}.ok{background:#223322;border:1px solid #335533;color:#b7ffb7}
.help{opacity:.8;font-size:12px;margin-top:4px}
#booterr{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6);z-index:9999}
#booterr>div{background:#300;padding:16px 20px;border:1px solid #633;border-radius:10px;color:#fbb}
#perCellList{max-height:260px;overflow:auto;border:1px dashed #444;border-radius:8px;padding:6px}
.perRow{display:grid;grid-template-columns:52px 1fr 1fr;gap:6px;align-items:center;margin:6px 0}
.perRow small{opacity:.8}
.star::after{content:'★';position:absolute;inset:0;display:grid;place-items:center;font-size:18px;color:#ffd54a;text-shadow:0 0 4px #000}
.portal-base::after{content:'⦿';position:absolute;inset:0;display:grid;place-items:center;font-size:18px;opacity:.9}
.portal-orange::after{content:'⦿';position:absolute;inset:0;display:grid;place-items:center;font-size:18px;color:#ff9f43}
.exit.exit-closed{box-shadow:inset 0 0 0 3px #000;background:#b23a3a}
.exit.exit-open{box-shadow:inset 0 0 0 3px #9ff;background:#14b8a6}
@keyframes fragile-flash {
    50% { background-color: #c31212; }
}
.fragile-triggered::after {
    animation: fragile-flash 0.5s infinite;
}
/* VVV ADICIONADO VVV */
.baddie::after {
    content: attr(data-baddie);
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-weight: 900;
    font-size: 14px;
    opacity: .95;
    color: #ff6b6b;
    text-shadow: 0 0 3px #000;
}
/* ^^^ ADICIONADO ^^^ */
