/* V18 · Touch-friendly reaction controls that remain visible and clickable. */
.bp18-reaction-bar{display:flex;gap:5px;align-items:center;flex-wrap:wrap;min-width:0;max-width:100%}
.bp18-chip,.bp18-add{min-height:34px;border:1px solid #e5d5b4;border-radius:999px;background:#fffaf1;color:#5b452b;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 9px;cursor:pointer;font-weight:750;font-size:13px;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.bp18-chip.mine{background:#fbe0a0;border-color:#be8e32;color:#403011}
.bp18-chip span{font-size:12px;min-width:9px}
.bp18-add{font-size:12px;font-weight:800;border-style:dashed;min-width:51px}
.bp18-add:disabled{opacity:.55}
.bp18-chip:focus-visible,.bp18-add:focus-visible,.bp18-sheet button:focus-visible{outline:3px solid #ad802d;outline-offset:2px}
.bp18-reaction-layer{position:fixed;left:0;right:0;top:var(--bp18-top,0px);height:var(--bp18-vh,100dvh);bottom:auto;z-index:600;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.bp18-shade{position:absolute;inset:0;background:#211a16a3;pointer-events:auto}
.bp18-sheet{position:relative;pointer-events:auto;width:min(100%,470px);background:#fffdf9;padding:16px 15px max(25px,env(safe-area-inset-bottom));border:1px solid #e6d5b2;border-radius:24px 24px 0 0;box-shadow:0 -12px 70px #24190a40;display:flex;flex-direction:column;gap:13px;animation:bp18-show .14s ease-out}
.bp18-sheet-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bp18-sheet-top strong{font-size:15px;color:#3b2e1b;letter-spacing:0}
.bp18-sheet-top button{border:0;background:#f5efe3;color:#7b6849;border-radius:11px;min-height:36px;min-width:36px;font-size:18px;cursor:pointer}
.bp18-emoji-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.bp18-emoji-list button{font-size:28px;min-height:58px;padding:6px;border:1px solid #ebe0cc;background:#fff7e9;border-radius:16px;cursor:pointer;touch-action:manipulation}
.bp18-emoji-list button.selected{border:2px solid #b28a3a;background:#fce7b1}
.bp18-hint{margin:0;color:#958269;font-size:11px;text-align:center}
@keyframes bp18-show{from{transform:translateY(15px);opacity:.5}to{transform:translateY(0);opacity:1}}
@media (max-width:740px){.bp18-chip,.bp18-add{min-height:37px}.bp18-sheet{border-radius:22px 22px 0 0}}
@media(prefers-reduced-motion:reduce){.bp18-sheet{animation:none}}
