/* OBS conversation is additive: the existing player layout remains unchanged offline. */
.live-obs-layout{display:block;min-width:0}
.live-obs-layout.has-obs-room{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);gap:20px;align-items:start}
.live-obs-layout.has-obs-room .live-tv-frame{min-width:0}
.obs-room{min-width:0;position:relative;overflow:hidden;border:1px solid #dedbd1;border-radius:26px;background:#fffdf7;box-shadow:0 14px 40px #24251d14;color:#25271f}
.obs-room[hidden],.obs-room [hidden]{display:none!important}
.obs-room__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 22px 0}
.obs-room__badge{font-size:.64rem;font-weight:850;letter-spacing:.1em;color:#b12c30}
.obs-room__header h3{font-size:clamp(1.2rem,2vw,1.7rem);letter-spacing:-.045em;margin:9px 0 0;line-height:1.2}
.obs-room__signal{display:grid;place-items:center;color:#b12c30;background:#fce8e5;width:38px;height:38px;border-radius:50%;font-size:1.15rem}
.obs-room__intro{font-size:.78rem;line-height:1.6;color:#68685d;padding:0 22px;margin:12px 0 16px}
.obs-room__history{position:relative;min-height:130px;background:linear-gradient(#f4f2e8aa,#fffdf7);border-block:1px solid #e9e6da}
.obs-room__messages{height:clamp(140px,20vw,245px);margin:0;padding:16px 20px;list-style:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cec9b8 transparent}
.obs-room__messages:focus-visible{outline:2px solid #b78711;outline-offset:-4px}
.obs-room__empty{position:absolute;inset:42px 20px auto;margin:0;text-align:center;font-size:.85rem;color:#767465;pointer-events:none}
.obs-message{margin:0 0 14px;overflow-wrap:anywhere}
.obs-room__welcome{font-size:.71rem;line-height:1.6;color:#8c7950;margin:0 22px 14px;padding:10px 12px;background:#f6efdc;border-radius:11px}
.obs-room__audience-notice{font-size:.66rem;font-weight:800;color:#607544;background:#eef4e3;margin:0 22px 12px;padding:9px 12px;border:1px solid #dae6ca;border-radius:10px}
.obs-message{position:relative;width:fit-content;box-sizing:border-box;max-width:94%;padding:11px 13px;background:#fff;border:1px solid #e7e1ce;box-shadow:0 3px 10px #3c351108;border-radius:16px 16px 16px 4px;margin-bottom:12px}
.obs-message--own{margin-left:auto;background:#fff1c2;border-color:#e9d991;border-radius:16px 16px 4px 16px}
.obs-message__meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px;padding-right:18px}.obs-message__meta .obs-message__time{margin-left:0}
.obs-message__own{font-size:.55rem;font-weight:850;color:#a88625;background:#fff8e4;border-radius:5px;padding:2px 5px}
.obs-message__menu{position:absolute;top:7px;right:8px}.obs-message__menu summary{cursor:pointer;color:#b19f76;font-size:.9rem;line-height:1;list-style:none;padding:4px;letter-spacing:.05em}.obs-message__menu summary::-webkit-details-marker{display:none}.obs-message__menu[open]{z-index:2}.obs-message__menu .obs-message__actions{position:absolute;right:0;top:18px;min-width:145px;padding:8px;background:#fffdf5;border:1px solid #d9cdb1;border-radius:10px;box-shadow:0 8px 18px #33280e20;gap:5px}.obs-message__menu .obs-message__actions button{width:100%;text-align:left;min-height:30px}
.obs-message__private{display:block;border:0;background:transparent;color:#9e8c62;font:inherit;font-size:.57rem;padding:6px 0 0;cursor:pointer}.obs-message__private:hover:not(:disabled){color:#68521d;text-decoration:underline}
.obs-message__author{font-size:.78rem;font-weight:850;color:#725b27;line-height:1.4}
.obs-message__time{font-size:.6rem;color:#939181;margin-left:9px;font-variant-numeric:tabular-nums}
.obs-message__body{margin:4px 0 0;font-size:.83rem;line-height:1.5;white-space:pre-wrap;color:#33372c}
.obs-message__actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}
.obs-message__actions button{font:inherit;font-size:.65rem;border:1px solid #d3cdbd;border-radius:7px;background:#fff;padding:4px 6px;cursor:pointer}
.obs-room__reactions{display:flex;gap:6px;padding:14px 18px 8px}
.obs-room__reactions button{flex:1;min-width:0;min-height:42px;display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;border:1px solid #e4dece;border-radius:13px;background:#f8f5ea;font:inherit;font-size:1.12rem;cursor:pointer;transition:background .16s,translate .16s,box-shadow .16s}
.obs-room__reactions [data-obs-count]{font-size:.65rem;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.obs-room__reactions button:hover:not(:disabled){background:#fff0c2;box-shadow:0 3px 10px #85712620;translate:0 -2px}
.obs-room__reactions button:active:not(:disabled){translate:0 1px}
.obs-room button:disabled{opacity:.5;cursor:not-allowed}
.obs-room button:focus-visible,.obs-room a:focus-visible,.obs-room textarea:focus-visible,.obs-room input:focus-visible{outline:3px solid #eac443;outline-offset:3px}
.obs-room__signin{display:block;margin:12px 22px 18px;padding:12px 14px;background:#eee7d4;border-radius:12px;text-decoration:none;font-size:.76rem;font-weight:800;line-height:1.5;color:#353629}
.obs-room__form{margin:8px 20px 0}
.obs-room__form label{display:block;font-size:.72rem;font-weight:800;margin-bottom:8px}
.obs-room__form textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:68px;resize:vertical;max-height:180px;border:1px solid #d6d1c1;border-radius:12px;background:#fff;font:inherit;font-size:.82rem;line-height:1.55;padding:10px 12px;color:#25271f}
.obs-room__compose-actions{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:8px}
.obs-room__compose-actions button{min-height:40px;font:inherit;font-size:.73rem;font-weight:800;border:1px solid #dfd6bc;border-radius:11px;padding:9px 12px;cursor:pointer}
.obs-room__emoji-toggle{background:#f7f4e8;color:#555542}
.obs-room__send{background:#ffd84f;color:#25271f;box-shadow:0 3px 0 #c6a532}
.obs-room__send:active:not(:disabled){box-shadow:none;translate:0 2px}
.obs-room__emoji-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:10px;margin-top:10px;border:1px solid #e1dbca;border-radius:12px;background:#f7f2e3}
.obs-room__emoji-picker button{min-height:38px;border:0;border-radius:8px;background:#fff9;font:inherit;font-size:1.25rem;cursor:pointer}
.obs-room__feedback{margin:8px 20px;min-height:16px;font-size:.72rem;line-height:1.45;color:#795b23;overflow-wrap:anywhere}
.obs-room__footer{padding:12px 20px 17px;border-top:1px solid #e7e1d1;font-size:.65rem;line-height:1.55;color:#82806f}
.obs-room__moderation{margin:10px 20px;font-size:.72rem}
.obs-room__moderation summary{cursor:pointer;font-weight:800;padding:8px 0}
.obs-room__moderation label{display:block;margin-top:5px}
.obs-room__moderation input{box-sizing:border-box;width:100%;font:inherit;border:1px solid #d8d0bd;border-radius:8px;padding:8px;margin:6px 0}
.obs-room__moderation-actions{display:flex;flex-wrap:wrap;gap:6px}
.obs-room__moderation-actions button{font:inherit;padding:8px;border:1px solid #d6c6a1;border-radius:8px;background:#fff4d4;cursor:pointer}
.obs-room__moderation p{font-size:.65rem;line-height:1.5;color:#787360}
.obs-room__floats{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.obs-room__float{position:absolute;bottom:6px;right:18px;font-size:1.6rem;animation:obs-heart-rise 1.8s ease-out forwards;will-change:transform,opacity}
@keyframes obs-heart-rise{0%{opacity:0;transform:translateY(0) scale(.7)}20%{opacity:1}100%{opacity:0;transform:translate(-24px,-130px) rotate(-15deg) scale(1.05)}}
@media(max-width:1050px){.live-obs-layout.has-obs-room{grid-template-columns:1fr}.obs-room__messages{height:220px}.obs-room{border-radius:20px}}
@media(max-width:440px){.obs-room__header{padding:18px 16px 0}.obs-room__intro{padding-inline:16px}.obs-room__messages{padding:14px 16px}.obs-room__reactions{padding-inline:12px}.obs-room__form{margin-inline:16px}.obs-room__compose-actions button{padding-inline:10px}.obs-room__reactions button{font-size:1rem}}
.motion-paused .obs-room *,html.motion-paused .obs-room *,html.nv-motion-off .obs-room *{animation:none!important;transition:none!important;translate:none!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){.obs-room *{animation:none!important;transition:none!important;translate:none!important;scroll-behavior:auto!important}.obs-room__floats{display:none}}
