.dcp-live-shell{background:#080809;color:#f5f3ee;min-height:calc(100vh - 64px);padding:34px 0 70px}.dcp-live-wrap{max-width:1180px}.dcp-live-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.65fr);gap:45px;align-items:end;margin-bottom:20px}.dcp-live-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--creator-primary,#c9a65a);font-weight:800;display:flex;align-items:center;gap:8px}.dcp-live-pulse{width:8px;height:8px;border-radius:50%;background:#777;display:inline-block}.dcp-live-pulse.is-live{background:#ef3340;box-shadow:0 0 0 5px rgba(239,51,64,.12)}.dcp-live-heading h1{font-size:62px;line-height:.86;letter-spacing:-.04em;margin:10px 0 0;color:#fff}.dcp-live-heading h1 span{display:block;color:var(--creator-primary,#c9a65a)}.dcp-live-heading-copy{border-left:1px solid #333;padding-left:24px}.dcp-live-heading-copy strong{font-size:15px;color:#fff}.dcp-live-heading-copy p{color:#a8a8a8;font-size:13px;line-height:1.6;margin:8px 0 0}.dcp-live-viewbar{display:flex;justify-content:flex-end;margin-bottom:10px}.dcp-live-view-toggle{display:inline-flex;border:1px solid #2e2e31;background:#111}.dcp-live-view-toggle button{appearance:none;border:0;background:transparent;color:#888;padding:8px 12px;font-size:10px;font-weight:800;text-transform:uppercase;cursor:pointer}.dcp-live-view-toggle button.is-active{background:var(--creator-primary,#c9a65a);color:#111}.dcp-live-stage{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.dcp-live-player-card,.dcp-live-sidebar,.dcp-live-info-grid article{border:1px solid #29292c;background:#0e0e10}.dcp-live-cardbar{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid #29292c;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9a9a9f}.dcp-live-cardbar>div{display:flex;align-items:center;gap:8px}.dcp-live-cardbar strong{color:#fff}.dcp-live-player-wrap{background:#000;position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;transition:aspect-ratio .18s ease}.dcp-live-view-portrait .dcp-live-player-wrap{aspect-ratio:9/16;max-height:760px;margin:0 auto;width:min(100%,430px)}.dcp-live-player-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.dcp-live-runtime-cover{position:absolute;inset:0;z-index:3;display:none;place-content:center;text-align:center;background:#000;color:#fff}.dcp-live-runtime-cover.is-visible{display:grid}.dcp-live-runtime-cover strong{font-size:24px;font-weight:650;letter-spacing:-.02em}.dcp-live-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:30px;color:#999}.dcp-live-empty strong{font-size:18px;color:#fff}.dcp-live-empty p{margin:7px 0}.dcp-live-underplayer{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-top:1px solid #222}.dcp-live-underplayer span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:8px;color:#76767b}.dcp-live-underplayer strong{font-size:12px}.dcp-live-state-pill{font-size:9px;font-weight:900;text-transform:uppercase;border:1px solid #333;padding:6px 8px}.dcp-live-state-pill.is-live{border-color:#ef3340;color:#ff5863}.dcp-live-sidebar{padding:22px;min-height:340px}.dcp-live-creator-logo{max-width:160px;max-height:78px;object-fit:contain;object-position:left center;margin-bottom:26px}.dcp-live-section-number{font-size:10px;color:var(--creator-primary,#c9a65a);font-weight:850;letter-spacing:.15em}.dcp-live-sidebar small,.dcp-live-info-grid small{display:block;margin-top:8px;font-size:8px;letter-spacing:.16em;color:#777;font-weight:800}.dcp-live-sidebar h2{font-size:28px;line-height:1;margin:7px 0 10px}.dcp-live-sidebar p{color:#aaa;font-size:12px;line-height:1.6}.dcp-live-sidebar dl{border-top:1px solid #28282b;margin-top:18px}.dcp-live-sidebar dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #242426;padding:9px 0;font-size:10px}.dcp-live-sidebar dt{color:#777}.dcp-live-sidebar dd{margin:0;color:#ddd;text-align:right}.dcp-live-chat-coming{margin-top:20px;padding:13px;border-left:2px solid var(--creator-primary,#c9a65a);background:#131313;display:grid;gap:4px}.dcp-live-chat-coming strong{font-size:11px}.dcp-live-chat-coming span{font-size:9px;color:#888;line-height:1.4}.dcp-live-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.dcp-live-info-grid article{padding:22px}.dcp-live-info-grid h2{font-size:24px;margin:7px 0}.dcp-live-info-grid p{font-size:12px;color:#999;line-height:1.6;max-width:520px}.dcp-live-info-grid a{color:var(--creator-primary,#c9a65a);font-size:11px;text-decoration:none;font-weight:750}
@media(max-width:900px){.dcp-live-heading{grid-template-columns:1fr;gap:14px}.dcp-live-heading-copy{border-left:0;border-top:1px solid #29292c;padding:14px 0 0}.dcp-live-stage{grid-template-columns:1fr}.dcp-live-sidebar{min-height:0}.dcp-live-info-grid{grid-template-columns:1fr}.dcp-live-viewbar{justify-content:flex-start}}
@media(max-width:700px){.dcp-live-shell{padding:0 0 45px}.dcp-live-wrap{width:100%}.dcp-live-heading{padding:24px 16px 12px;margin:0}.dcp-live-heading h1{font-size:45px}.dcp-live-heading-copy{font-size:11px}.dcp-live-viewbar{padding:0 16px 10px}.dcp-live-stage{gap:0}.dcp-live-player-card,.dcp-live-sidebar{border-left:0;border-right:0}.dcp-live-cardbar{display:none}.dcp-live-player-wrap{aspect-ratio:16/9}.dcp-live-view-portrait .dcp-live-player-wrap{width:100%;max-height:none;aspect-ratio:9/16}.dcp-live-underplayer{padding:10px 16px}.dcp-live-sidebar{padding:20px 16px}.dcp-live-info-grid{margin:12px 12px 0}.dcp-live-info-grid article{padding:18px}.dcp-live-view-toggle button{padding:7px 10px;font-size:9px}}

/* v0.1.81 — GNN Live Viewer fixed viewport shell.
   One interaction dock. One scrollable message viewport. Portrait/landscape only
   changes the video layer beneath it. Mobile document scrolling is not used. */
:root{
  --dcp-live-header-h:0px;
  --dcp-live-appbar-h:0px;
  --dcp-live-chat-side:16px;
  --dcp-live-chat-bottom:14px;
  --dcp-live-chat-viewport-h:clamp(176px,24vh,238px);
}

.dcp-live-experience{position:relative;background:#000;overflow:hidden;isolation:isolate}
.dcp-live-experience>.dcp-live-player-wrap{z-index:1}

/* Video-local display copy. It never handles input. */
.dcp-live-chat-overlay{position:absolute;z-index:6;left:18px;bottom:18px;width:min(58%,430px);max-height:45%;overflow:hidden;pointer-events:none;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.86);font-size:13px;line-height:1.32}
.dcp-live-chat-overlay[hidden]{display:none!important}
.dcp-live-chat-overlay-message{margin-top:11px;overflow-wrap:anywhere}
.dcp-live-chat-overlay-message>div{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800}
.dcp-live-chat-overlay-message p{margin:2px 0 0;color:#fff;font-size:13px;line-height:1.34}
.dcp-live-chat-overlay-message small{display:block;margin-top:2px;color:#fff;font-size:11px;opacity:.94}

/* Interactive layer. The entire dock is one unit. */
.dcp-live-chat-ui{position:absolute;z-index:9;inset:0;pointer-events:none;color:#fff;font-family:inherit}
.dcp-live-chat-ui button,.dcp-live-chat-ui textarea,.dcp-live-chat-ui input{font:inherit}
.dcp-live-chat-ui button{cursor:pointer}
.dcp-live-chat-ui.is-chat-disabled button[disabled]{opacity:.38;cursor:not-allowed}
.dcp-live-chat-shell{position:absolute;z-index:11;left:var(--dcp-live-chat-side);right:var(--dcp-live-chat-side);bottom:var(--dcp-live-chat-bottom);max-width:620px;pointer-events:auto;display:flex;flex-direction:column;align-items:stretch;gap:7px;color:#fff}
.dcp-live-chat-ui.is-chat-hidden .dcp-live-chat-messages,
.dcp-live-chat-ui.is-chat-hidden .dcp-live-chat-new,
.dcp-live-chat-ui.is-chat-hidden .dcp-live-chat-reply,
.dcp-live-chat-ui.is-chat-hidden .dcp-live-chat-compose,
.dcp-live-chat-ui.is-chat-hidden .dcp-live-chat-feedback{display:none!important}

/* Rolling window: fixed viewport height, variable number of visible messages. */
.dcp-live-chat-messages{height:var(--dcp-live-chat-viewport-h);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;flex-direction:column;padding:12px 8px 5px 2px;mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 100%)}
.dcp-live-chat-messages::-webkit-scrollbar{display:none}
.dcp-live-chat-empty{margin-top:auto;padding:12px 4px;color:rgba(255,255,255,.62);font-size:12px;text-shadow:0 1px 3px rgba(0,0,0,.85)}
.dcp-live-chat-message{flex:0 0 auto;padding:5px 4px 8px;color:#fff;overflow-wrap:anywhere;text-shadow:0 1px 3px rgba(0,0,0,.9);outline:0}
.dcp-live-chat-message.is-selected{background:rgba(255,255,255,.06);border-radius:8px}
.dcp-live-chat-message-meta{display:flex;align-items:center;gap:7px;min-width:0}
.dcp-live-chat-message-meta strong{font-size:11px;line-height:1.2;color:rgba(255,255,255,.82);font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcp-live-chat-message>p{margin:2px 0 0;color:#fff;font-size:14px;line-height:1.28;font-weight:500;white-space:normal;overflow-wrap:anywhere}
.dcp-live-chat-quote{margin:3px 0 2px 24px;padding-left:7px;border-left:2px solid rgba(255,255,255,.28);display:grid;gap:1px;min-width:0}
.dcp-live-chat-quote strong{font-size:9px;color:rgba(255,255,255,.72)}
.dcp-live-chat-quote span{font-size:10px;color:rgba(255,255,255,.68);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcp-live-chat-reaction-summary{margin:2px 0 0 24px;color:#fff;font-size:11px;line-height:1.2;min-height:0}
.dcp-live-chat-reaction-summary[hidden]{display:none}
.dcp-live-chat-source{width:18px;height:18px;flex:0 0 18px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);overflow:hidden;color:#fff}
.dcp-live-chat-source svg{width:12px;height:12px;fill:currentColor;stroke:currentColor;stroke-width:1.7}.dcp-live-chat-source svg .cut{fill:#111;stroke:none}.dcp-live-chat-source svg .stroke{fill:none;stroke:#111}
.dcp-live-chat-source .letter{font-size:9px;font-weight:900;color:#111;width:100%;height:100%;display:grid;place-items:center;background:var(--creator-primary,#c9a65a)}
.dcp-live-chat-new{align-self:center;border:0;border-radius:999px;background:rgba(20,20,22,.82);color:#fff;padding:6px 10px;font-size:10px;font-weight:800;box-shadow:0 4px 15px rgba(0,0,0,.25)}
.dcp-live-chat-new[hidden]{display:none!important}

/* Controls belong to the dock, rather than being independently positioned. */
.dcp-live-chat-tools{align-self:flex-end;display:flex;align-items:center;gap:8px;pointer-events:auto}
.dcp-live-tool{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.32);background:rgba(15,15,17,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;padding:0;box-shadow:0 2px 12px rgba(0,0,0,.18)}
.dcp-live-tool svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dcp-live-tool.is-active{background:rgba(201,166,90,.92);border-color:var(--creator-primary,#c9a65a);color:#111}
.dcp-live-tool:focus-visible{outline:2px solid #fff;outline-offset:2px}
.dcp-live-tool .dcp-orientation-portrait{display:none}
.dcp-live-tool.is-portrait .dcp-orientation-landscape{display:none}
.dcp-live-tool.is-portrait .dcp-orientation-portrait{display:block}

.dcp-live-chat-reply{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;background:rgba(20,20,22,.72);border-left:2px solid var(--creator-primary,#c9a65a);border-radius:5px;padding:7px 8px 7px 10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.dcp-live-chat-reply[hidden]{display:none!important}
.dcp-live-chat-reply>div{min-width:0}.dcp-live-chat-reply span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.dcp-live-chat-reply strong{display:block;font-size:10px;margin-top:1px}.dcp-live-chat-reply p{margin:2px 0 0;font-size:10px;color:#d6d6d6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dcp-live-chat-reply button{border:0;background:transparent;color:#fff;font-size:19px;line-height:1;padding:1px 4px}
.dcp-live-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:end}
.dcp-live-chat-compose textarea{width:100%;box-sizing:border-box;resize:none;overflow-y:auto;max-height:86px;min-height:40px;border:1px solid rgba(255,255,255,.27);border-radius:22px;background:rgba(20,20,22,.48);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;outline:0;padding:9px 14px;font-size:16px;line-height:1.3;caret-color:#fff}
.dcp-live-chat-compose textarea::placeholder{color:rgba(255,255,255,.6)}
.dcp-live-chat-compose textarea:focus{border-color:rgba(255,255,255,.45);background:rgba(25,25,27,.64)}
.dcp-live-chat-compose button{width:40px;height:40px;border:0;border-radius:50%;background:var(--creator-primary,#c9a65a);color:#111;display:grid;place-items:center;font-size:19px;font-weight:900;padding:0}
.dcp-live-chat-compose button:disabled,.dcp-live-chat-compose textarea:disabled{opacity:.48;cursor:not-allowed}
.dcp-live-chat-feedback{min-height:0;height:0;overflow:visible;padding:0 4px;color:rgba(255,255,255,.72);font-size:9px;text-shadow:0 1px 3px rgba(0,0,0,.9)}
.dcp-live-chat-feedback.is-good{color:#9be7ad}.dcp-live-chat-feedback.is-warning{color:#ffd36d}.dcp-live-chat-feedback.is-bad{color:#ff8b91}

/* Tap action sheet is an overlay, never part of message/document flow. */
.dcp-live-chat-actionsheet{position:fixed;z-index:10030;left:50%;bottom:calc(var(--dcp-live-appbar-h) + 74px);transform:translateX(-50%);width:min(420px,calc(100% - 28px));padding:15px 16px 13px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(15,15,17,.94);box-shadow:0 18px 45px rgba(0,0,0,.42);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto;color:#fff}
.dcp-live-chat-actionsheet[hidden]{display:none!important}
.dcp-live-chat-action-close{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#fff;font-size:24px;line-height:1;padding:4px 7px}.dcp-live-chat-action-reply{border:0;background:transparent;color:#fff;font-size:14px;font-weight:750;padding:5px 40px 11px 2px;display:flex;align-items:center;gap:7px}.dcp-live-chat-action-reactions{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.dcp-live-chat-action-reactions button{border:1px solid transparent;background:rgba(255,255,255,.08);border-radius:12px;min-width:0;height:43px;font-size:21px;padding:0}.dcp-live-chat-action-reactions button.is-selected{border-color:var(--creator-primary,#c9a65a);background:rgba(201,166,90,.2)}

/* Identity bottom sheet. */
.dcp-live-chat-account{position:fixed;z-index:10040;inset:0;background:rgba(0,0,0,.42);display:flex;align-items:flex-end;justify-content:center;pointer-events:auto}.dcp-live-chat-account[hidden]{display:none!important}.dcp-live-chat-account-card{position:relative;width:min(520px,100%);border-radius:22px 22px 0 0;background:#fff;color:#151515;padding:26px max(20px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));box-shadow:0 -16px 50px rgba(0,0,0,.3)}.dcp-live-chat-account-close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:#222;font-size:28px;line-height:1;padding:5px 8px}.dcp-live-chat-account-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#171719;color:#fff;font-weight:900;font-size:18px;overflow:hidden;margin-bottom:11px}.dcp-live-chat-account-avatar img{width:100%;height:100%;object-fit:cover}.dcp-live-chat-account-card small{font-size:9px;letter-spacing:.14em;font-weight:850;color:#8c6f2e}.dcp-live-chat-account-card h2{font-size:25px;margin:4px 0 6px}.dcp-live-chat-account-card p{font-size:12px;line-height:1.45;color:#666;margin:0 0 17px}.dcp-live-chat-account-card label{display:block;font-size:10px;font-weight:800;margin:0 0 6px}.dcp-live-chat-account-card input{width:100%;box-sizing:border-box;border:1px solid #d5d5d5;border-radius:10px;background:#f7f7f7;color:#111;padding:11px 12px;font-size:16px;outline:0}.dcp-live-chat-account-card input:focus{border-color:#a9883d}.dcp-live-chat-account-actions{display:flex;gap:8px;margin-top:11px}.dcp-live-chat-account-actions button{border:0;border-radius:9px;background:#111;color:#fff;padding:10px 13px;font-size:11px;font-weight:800}.dcp-live-chat-account-actions button.secondary{background:#ececec;color:#222}

/* Keyboard mode: the browser resizes the content viewport (see the page's
   interactive-widget viewport directive). Nothing is translated or scrolled.
   Hiding the app bar gives the resized viewer to the chat + keyboard. */
body.dcp-live-chat-keyboard .dcp-pwa-appbar{display:none!important}
body.dcp-live-chat-keyboard .dcp-live-shell{bottom:0!important}
body.dcp-live-chat-keyboard .dcp-live-chat-shell{bottom:max(8px,env(safe-area-inset-bottom));}
body.dcp-live-chat-keyboard .dcp-live-chat-actionsheet{bottom:74px}

/* Mobile / installed-app live viewer: a fixed screen between header and app bar.
   The document itself never scrolls. */
@media (max-width:700px), (max-width:1100px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  html:has(body.dcp-creator-live-page){height:100%;overflow:hidden!important;overscroll-behavior:none}
  body.dcp-creator-live-page{position:fixed;inset:0;width:100%;height:100dvh;margin:0!important;padding:0!important;overflow:hidden!important;overscroll-behavior:none;background:#050506}
  body.dcp-creator-live-page .dcp-pwa-pull-refresh{display:none!important}
  body.dcp-creator-live-page .dcp-header{position:fixed!important;z-index:60;left:0;right:0;top:0}
  body.dcp-creator-live-page .dcp-live-shell{position:fixed;z-index:1;left:0;right:0;top:var(--dcp-live-header-h);bottom:var(--dcp-live-appbar-h);height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;overflow:hidden!important;background:#050506}
  body.dcp-creator-live-page .dcp-live-wrap,
  body.dcp-creator-live-page .dcp-live-stage,
  body.dcp-creator-live-page .dcp-live-player-card,
  body.dcp-creator-live-page .dcp-live-experience{width:100%;height:100%;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;overflow:hidden!important}
  body.dcp-creator-live-page .dcp-live-heading,
  body.dcp-creator-live-page .dcp-live-viewbar,
  body.dcp-creator-live-page .dcp-live-sidebar,
  body.dcp-creator-live-page .dcp-live-info-grid,
  body.dcp-creator-live-page .dcp-live-cardbar,
  body.dcp-creator-live-page .dcp-live-underplayer{display:none!important}
  body.dcp-creator-live-page .dcp-live-stage{display:block}
  body.dcp-creator-live-page .dcp-live-player-card{border:0!important;background:#000}
  /* v0.1.87: keep the original Restream iframe in its original DOM and fix its
     wrapper directly to the keyboard-free programme geometry. No visualViewport
     translation or scroll compensation is applied; Safari focus panning is
     prevented at the composer instead. */
  body.dcp-creator-live-page .dcp-live-player-wrap{position:fixed!important;z-index:2;left:0;top:var(--dcp-live-header-h);margin:0!important;max-height:none!important;background:#000;overflow:hidden;transition:none;transform:none;will-change:auto}
  body.dcp-live-view-landscape.dcp-creator-live-page .dcp-live-player-wrap{width:100%;height:min(var(--dcp-live-programme-h,100dvh),56.25vw);aspect-ratio:auto}
  body.dcp-live-view-portrait.dcp-creator-live-page .dcp-live-player-wrap{right:0;width:100%;height:var(--dcp-live-programme-h,calc(100dvh - var(--dcp-live-header-h) - var(--dcp-live-appbar-h)));aspect-ratio:auto}
  body.dcp-live-view-portrait.dcp-creator-live-page .dcp-live-player-wrap iframe{width:100%;height:100%}
  body.dcp-creator-live-page .dcp-live-runtime-cover{z-index:4}
  body.dcp-creator-live-page .dcp-live-chat-ui{z-index:9}
  body.dcp-creator-live-page .dcp-live-chat-shell{max-width:none}
  body.dcp-creator-live-page .dcp-live-chat-overlay{left:14px;bottom:14px;width:min(70%,420px);max-height:50%}
  body.dcp-live-view-portrait.dcp-creator-live-page .dcp-live-chat-overlay{display:none!important}
  html.dcp-pwa-standalone body.dcp-creator-live-page .dcp-live-shell{bottom:var(--dcp-live-appbar-h)}
}

@media (max-width:620px){
  :root{--dcp-live-chat-side:12px;--dcp-live-chat-bottom:max(10px,env(safe-area-inset-bottom));--dcp-live-chat-viewport-h:clamp(168px,26vh,226px)}
  .dcp-live-chat-tools{gap:6px}.dcp-live-tool{width:36px;height:36px}.dcp-live-tool svg{width:18px;height:18px}
  .dcp-live-chat-compose{grid-template-columns:minmax(0,1fr) 39px}.dcp-live-chat-compose button{width:38px;height:38px}
  .dcp-live-chat-message>p{font-size:14px}.dcp-live-chat-message-meta strong{font-size:11px}
}

/* v0.1.90 keyboard contract: keep the v0.1.87 focus model and move the
   existing chat shell only after iOS has finished opening/closing the keyboard.
   The shell never changes positioning mode while focused; a single settled
   keyboard inset is applied to its normal bottom anchor. */
@media (max-width:700px), (max-width:1100px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  body.dcp-creator-live-page.dcp-live-chat-keyboard .dcp-live-chat-shell{
    bottom:calc(max(8px,env(safe-area-inset-bottom)) + var(--dcp-live-kb-inset,0px))!important;
  }
}


/* v0.1.97 — Desktop Live workspace refinement.
   Keep the proven v0.1.95 mobile viewer untouched. Desktop follows the
   successful TLMUK proportions more closely: a larger programme area, a
   narrower companion chat, and a chat viewport whose height is locked to the
   programme rather than growing with message history. */
.dcp-live-chat-panel-head{display:none}
@media (min-width:1101px) and (hover:hover) and (pointer:fine){
  .dcp-live-wrap{max-width:1640px}
  .dcp-live-stage{grid-template-columns:minmax(0,1fr) 250px;gap:18px}
  .dcp-live-player-card{min-width:0}

  /* The empty second grid track reserves room for chat. Chat itself is
     absolutely contained, so message history can never make the player row
     taller. The 16:9 programme therefore defines the whole workspace height. */
  .dcp-live-experience{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;overflow:hidden;background:#070708}
  .dcp-live-experience>.dcp-live-player-wrap{grid-column:1;grid-row:1;align-self:start;z-index:1;width:100%}
  .dcp-live-view-portrait .dcp-live-experience>.dcp-live-player-wrap{justify-self:center}
  .dcp-live-chat-ui{position:absolute;z-index:2;top:0;right:0;bottom:0;width:310px;inset-block:0;inset-inline:auto 0;min-width:0;min-height:0;max-height:100%;overflow:hidden;pointer-events:auto;background:#0d0d0f;border-left:1px solid #29292c;color:#f5f3ee}
  .dcp-live-chat-shell{position:absolute;inset:0;left:0;right:0;bottom:0;top:0;max-width:none;height:auto;min-height:0;box-sizing:border-box;padding:0;gap:0;display:flex;flex-direction:column;color:#f5f3ee;overflow:hidden}
  .dcp-live-chat-panel-head{display:flex;flex:0 0 52px;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:0 13px;border-bottom:1px solid #29292c;background:#111113}
  .dcp-live-chat-panel-head>div{display:grid;gap:2px}
  .dcp-live-chat-panel-head small{font-size:8px;line-height:1;letter-spacing:.16em;font-weight:850;color:var(--creator-primary,#c9a65a)}
  .dcp-live-chat-panel-head strong{font-size:12px;line-height:1.1;color:#f5f3ee}
  .dcp-live-chat-panel-head>span{margin-right:72px;font-size:8px;line-height:1;text-transform:uppercase;letter-spacing:.11em;color:#8b8b90}

  /* This is deliberately a true scrolling chat viewport. It occupies only
     the available space between the panel header and composer. */
  .dcp-live-chat-messages{flex:1 1 0;height:0;min-height:0;max-height:none;overflow-y:auto!important;overflow-x:hidden;padding:13px 12px 10px;mask-image:none;-webkit-mask-image:none;background:#0d0d0f;scrollbar-width:thin;overscroll-behavior:contain}
  .dcp-live-chat-messages::-webkit-scrollbar{display:block;width:7px}
  .dcp-live-chat-messages::-webkit-scrollbar-track{background:#111113}
  .dcp-live-chat-messages::-webkit-scrollbar-thumb{background:#343439;border-radius:999px}
  .dcp-live-chat-empty{color:#747479;text-shadow:none}
  .dcp-live-chat-message{flex:0 0 auto;padding:6px 2px 8px;text-shadow:none}
  .dcp-live-chat-message-meta strong{color:#cfcfd2}
  .dcp-live-chat-message>p{font-size:12px;color:#f7f7f8;text-shadow:none}
  .dcp-live-chat-quote{border-left-color:#4b4b50}
  .dcp-live-chat-reply{flex:0 0 auto;margin:0 10px 7px;background:#171719;border-radius:5px;backdrop-filter:none;-webkit-backdrop-filter:none}
  .dcp-live-chat-tools{position:absolute;z-index:4;top:9px;right:10px;align-self:auto;gap:5px}
  .dcp-live-tool{width:32px;height:32px;background:#161618;border-color:#38383d;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
  .dcp-live-tool svg{width:15px;height:15px}
  .dcp-live-tool.is-active{background:var(--creator-primary,#c9a65a);border-color:var(--creator-primary,#c9a65a)}
  #dcp-live-chat-overlay-toggle,#dcp-live-orientation-button{display:none!important}
  .dcp-live-chat-compose{flex:0 0 auto;margin:0;padding:10px;border-top:1px solid #29292c;background:#111113;grid-template-columns:minmax(0,1fr) 36px;gap:7px}
  .dcp-live-chat-compose textarea{min-height:36px;max-height:78px;border:1px solid #39393e;border-radius:7px;background:#0b0b0d;color:#fff;padding:8px 10px;font-size:12px;backdrop-filter:none;-webkit-backdrop-filter:none}
  .dcp-live-chat-compose textarea:focus{border-color:var(--creator-primary,#c9a65a);background:#0b0b0d;box-shadow:0 0 0 1px color-mix(in srgb,var(--creator-primary,#c9a65a) 35%,transparent)}
  .dcp-live-chat-compose button{width:36px;height:36px;border-radius:7px;font-size:16px}
  .dcp-live-chat-feedback{position:absolute;left:12px;right:12px;bottom:53px;height:auto;min-height:0;color:#aaa;text-shadow:none;pointer-events:none}
  .dcp-live-chat-new{background:#202024;box-shadow:none}
  .dcp-live-chat-ui.is-chat-hidden .dcp-live-chat-panel-head{display:flex!important}

  /* Compact desktop identity editor, visually integrated with the panel. */
  .dcp-live-chat-account{position:absolute;z-index:20;inset:50px 8px auto 8px;background:transparent;display:block;align-items:initial;justify-content:initial;pointer-events:auto}
  .dcp-live-chat-account[hidden]{display:none!important}
  .dcp-live-chat-account-card{width:auto;border:1px solid #35353a;border-radius:8px;background:#151517;color:#f5f3ee;padding:14px;box-shadow:0 18px 40px rgba(0,0,0,.48)}
  .dcp-live-chat-account-close{right:7px;top:6px;color:#aaa;font-size:20px}
  .dcp-live-chat-account-avatar{width:34px;height:34px;margin-bottom:9px;background:#252529;color:#fff;font-size:13px}
  .dcp-live-chat-account-card small{font-size:8px;color:var(--creator-primary,#c9a65a)}
  .dcp-live-chat-account-card h2{font-size:17px;margin:4px 0 5px;color:#fff}
  .dcp-live-chat-account-card p{font-size:10px;line-height:1.4;color:#999;margin:0 0 11px}
  .dcp-live-chat-account-card label{font-size:9px;color:#bbb;margin-bottom:5px}
  .dcp-live-chat-account-card input{border:1px solid #3a3a3f;border-radius:6px;background:#0b0b0d;color:#fff;padding:8px 9px;font-size:12px}
  .dcp-live-chat-account-card input:focus{border-color:var(--creator-primary,#c9a65a)}
  .dcp-live-chat-account-actions{gap:7px;margin-top:8px}
  .dcp-live-chat-account-actions button{border:1px solid var(--creator-primary,#c9a65a);border-radius:6px;background:var(--creator-primary,#c9a65a);color:#111;padding:8px 9px;font-size:9px}
  .dcp-live-chat-account-actions button.secondary{border-color:#343439;background:#222226;color:#ddd}

  .dcp-live-chat-actionsheet{position:absolute;z-index:19;left:8px;right:8px;bottom:58px;transform:none;width:auto;padding:11px;border:1px solid #35353a;border-radius:8px;background:#171719;box-shadow:0 16px 36px rgba(0,0,0,.42);backdrop-filter:none;-webkit-backdrop-filter:none}
  .dcp-live-chat-action-reactions button{height:36px;border-radius:7px;background:#222226}
}


/* v0.1.98 — Desktop creator information moves into the heading band.
   This frees the former right-hand creator-card column so the programme +
   scrolling chat workspace can use the full desktop width. Mobile remains on
   the proven v0.1.95 presentation and still uses the existing creator card. */
.dcp-live-heading-creator{display:none}
@media (min-width:1101px) and (hover:hover) and (pointer:fine){
  .dcp-live-wrap{max-width:1640px}

  /* Three-part heading: Live Stream title / creator identity / schedule. */
  .dcp-live-heading{grid-template-columns:minmax(300px,.95fr) minmax(330px,.9fr) minmax(300px,.8fr);gap:34px;align-items:end}
  .dcp-live-heading-creator{display:flex;align-items:center;gap:15px;min-width:0;padding:0 0 3px;border-left:1px solid #2e2e31;padding-left:22px}
  .dcp-live-heading-logo{width:92px;height:56px;object-fit:contain;object-position:left center;flex:0 0 auto}
  .dcp-live-heading-creator-copy{display:grid;gap:5px;min-width:0}
  .dcp-live-heading-creator-copy>small{font-size:8px;line-height:1;text-transform:uppercase;letter-spacing:.16em;font-weight:850;color:#777}
  .dcp-live-heading-creator-copy>strong{font-size:18px;line-height:1.1;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dcp-live-heading-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:8px;line-height:1;text-transform:uppercase;letter-spacing:.1em;color:#9a9a9f}
  .dcp-live-heading-meta span:first-child{color:var(--creator-primary,#c9a65a);font-weight:800}

  /* Remove the old right-hand creator information card on desktop. */
  .dcp-live-stage{grid-template-columns:minmax(0,1fr);gap:0}
  .dcp-live-stage>.dcp-live-sidebar{display:none}

  /* With the sidebar gone, allow the TLMUK-style two-panel workspace to use
     the full width. Chat remains height-locked to the 16:9 programme area. */
  .dcp-live-experience{grid-template-columns:minmax(0,1fr) 360px}
  .dcp-live-chat-ui{width:360px}
  .dcp-live-chat-panel-head>span{margin-right:72px}
}

@media (min-width:1101px) and (max-width:1380px) and (hover:hover) and (pointer:fine){
  .dcp-live-heading{grid-template-columns:minmax(260px,.9fr) minmax(280px,.8fr) minmax(260px,.72fr);gap:24px}
  .dcp-live-heading-logo{width:76px;height:48px}
  .dcp-live-heading-creator-copy>strong{font-size:16px}
  .dcp-live-experience{grid-template-columns:minmax(0,1fr) 330px}
  .dcp-live-chat-ui{width:330px}
}


/* v0.1.101 — Desktop keeps the compact icon toolbar but restores the
   chat-over-video control. This is a deliberate TV/AirPlay mode: viewers can
   put the programme full-screen on a television and continue to see the most
   recent chat messages from across the room. The labelled Landscape /
   Portrait selector remains removed; orientation stays as an icon. */
@media (min-width:1101px) and (hover:hover) and (pointer:fine){
  .dcp-live-viewbar{display:none!important}
  #dcp-live-chat-overlay-toggle,#dcp-live-orientation-button{display:inline-flex!important}
  .dcp-live-chat-panel-head>span{margin-right:146px}
}


/* v0.1.104 — explicit iPad/iPadOS landscape Live workspace.
   Uses the JS-applied .dcp-ipad class rather than viewport width/pointer media
   features. This catches 11/13-inch iPads whose CSS viewport can exceed 1100px
   while leaving the proven desktop and phone layouts untouched. */
@media (min-width:701px) and (min-height:600px) and (orientation:landscape){
  html:has(body.dcp-ipad.dcp-creator-live-page){height:auto;overflow:auto!important;overscroll-behavior:auto}
  body.dcp-ipad.dcp-creator-live-page{position:static!important;inset:auto!important;width:auto;height:auto;margin:0!important;padding:0!important;overflow:auto!important;overscroll-behavior:auto;background:#080809}
  body.dcp-ipad.dcp-creator-live-page .dcp-header{position:relative!important;z-index:60;left:auto;right:auto;top:auto}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-shell{position:relative!important;z-index:1;left:auto;right:auto;top:auto;bottom:auto;height:auto!important;min-height:calc(100vh - 64px)!important;max-height:none!important;padding:24px 0 calc(84px + env(safe-area-inset-bottom))!important;overflow:visible!important;background:#080809}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-wrap{width:min(calc(100% - 32px),1180px)!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0 auto!important;padding:0!important;overflow:visible!important}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-stage,
  body.dcp-ipad.dcp-creator-live-page .dcp-live-player-card,
  body.dcp-ipad.dcp-creator-live-page .dcp-live-experience{width:100%;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;overflow:hidden!important}

  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading{display:grid!important;grid-template-columns:minmax(210px,.8fr) minmax(250px,.9fr) minmax(240px,.8fr);gap:18px;align-items:end;margin-bottom:16px;padding:0}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-title{display:block}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading h1{font-size:46px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-creator{display:flex!important;align-items:center;gap:10px;min-width:0;padding:0 0 3px 16px;border-left:1px solid #2e2e31}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-logo{width:68px;height:44px;object-fit:contain;object-position:left center;flex:0 0 auto}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-creator-copy{display:grid;gap:4px;min-width:0}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-creator-copy>small{font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.14em;font-weight:850;color:#777}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-creator-copy>strong{font-size:15px;line-height:1.1;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:#9a9a9f}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-copy{display:block!important;border-left:1px solid #333;padding-left:16px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-copy strong{font-size:13px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-heading-copy p{font-size:11px;line-height:1.45;margin-top:6px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-viewbar,
  body.dcp-ipad.dcp-creator-live-page .dcp-live-sidebar{display:none!important}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-info-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-info-grid article{padding:18px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-cardbar{display:flex!important}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-underplayer{display:flex!important}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-stage{display:block!important}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-player-card{border:1px solid #29292c!important;background:#0e0e10}

  body.dcp-ipad.dcp-creator-live-page .dcp-live-experience{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr) 300px;align-items:start;background:#070708;isolation:isolate}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-experience>.dcp-live-player-wrap{position:relative!important;z-index:1;left:auto!important;right:auto!important;top:auto!important;grid-column:1;grid-row:1;width:100%!important;height:auto!important;aspect-ratio:16/9!important;max-height:none!important;margin:0!important;transform:none!important;background:#000;overflow:hidden}
  body.dcp-ipad.dcp-live-view-portrait.dcp-creator-live-page .dcp-live-experience>.dcp-live-player-wrap{width:min(100%,350px)!important;aspect-ratio:9/16!important;justify-self:center}

  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-ui{position:absolute!important;z-index:2;top:0;right:0;bottom:0;left:auto!important;width:300px;height:auto!important;min-height:0;max-height:100%;overflow:hidden;pointer-events:auto;background:#0d0d0f;border-left:1px solid #29292c;color:#f5f3ee}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-shell{position:absolute!important;inset:0!important;max-width:none!important;height:auto!important;min-height:0;box-sizing:border-box;padding:0!important;gap:0;display:flex;flex-direction:column;color:#f5f3ee;overflow:hidden}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-panel-head{display:flex!important;flex:0 0 48px;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 10px;border-bottom:1px solid #29292c;background:#111113}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-panel-head>div{display:grid;gap:2px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-panel-head small{font-size:7px;line-height:1;letter-spacing:.14em;font-weight:850;color:var(--creator-primary,#c9a65a)}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-panel-head strong{font-size:11px;line-height:1.1;color:#f5f3ee}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-panel-head>span{margin-right:142px;font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.09em;color:#8b8b90}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-messages{flex:1 1 0;height:0!important;min-height:0;max-height:none!important;overflow-y:auto!important;overflow-x:hidden;padding:10px 10px 8px;mask-image:none;-webkit-mask-image:none;background:#0d0d0f;scrollbar-width:thin;overscroll-behavior:contain}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-messages::-webkit-scrollbar{display:block;width:6px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-messages::-webkit-scrollbar-track{background:#111113}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-messages::-webkit-scrollbar-thumb{background:#343439;border-radius:999px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-message{padding:5px 2px 7px;text-shadow:none}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-message>p{font-size:12px;text-shadow:none}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-reply{flex:0 0 auto;margin:0 8px 6px;background:#171719;border-radius:5px;backdrop-filter:none;-webkit-backdrop-filter:none}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-tools{position:absolute;z-index:4;top:8px;right:8px;align-self:auto;gap:4px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-tool{width:31px;height:31px;background:#161618;border-color:#38383d;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;display:grid;place-items:center}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-tool svg{width:15px;height:15px}
  body.dcp-ipad.dcp-creator-live-page #dcp-live-chat-overlay-toggle,
  body.dcp-ipad.dcp-creator-live-page #dcp-live-orientation-button{display:grid!important;align-items:center!important;justify-content:center!important}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-compose{flex:0 0 auto;margin:0;padding:8px;border-top:1px solid #29292c;background:#111113;grid-template-columns:minmax(0,1fr) 34px;gap:6px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-compose textarea{min-height:34px;max-height:68px;border:1px solid #39393e;border-radius:7px;background:#0b0b0d;color:#fff;padding:7px 9px;font-size:12px;backdrop-filter:none;-webkit-backdrop-filter:none}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-compose button{width:34px;height:34px;border-radius:7px;font-size:15px}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-feedback{position:absolute;left:10px;right:10px;bottom:47px;height:auto;min-height:0;color:#aaa;text-shadow:none;pointer-events:none}
  body.dcp-ipad.dcp-creator-live-page .dcp-live-chat-overlay{left:14px;bottom:14px;width:min(62%,390px);max-height:46%}
  body.dcp-ipad.dcp-live-view-portrait.dcp-creator-live-page .dcp-live-chat-overlay{display:none!important}
}

/* v0.1.102 — exact centring for the two pictogram controls whose desktop
   display mode is explicitly overridden. display:inline-flex without flex
   centring caused the SVG glyphs to sit off-centre inside their circles. */
@media (min-width:701px){
  #dcp-live-chat-overlay-toggle,
  #dcp-live-orientation-button{
    align-items:center!important;
    justify-content:center!important;
    line-height:0;
  }
  #dcp-live-chat-overlay-toggle svg,
  #dcp-live-orientation-button svg{
    display:block;
    margin:auto;
    flex:0 0 auto;
  }
}


/* v0.1.103 — orientation glyph visibility + reliable iPad landscape targeting.
   iPadOS does not consistently advertise hover:none/pointer:coarse, especially
   in installed/PWA contexts, so the large-tablet workspace is keyed to viewport
   geometry instead. The min-height guard prevents phone landscape from entering
   the tablet layout. Also undo the generic SVG display rule so only the glyph
   for the currently selected orientation is visible. */
@media (min-width:701px){
  #dcp-live-orientation-button .dcp-orientation-landscape{display:block!important}
  #dcp-live-orientation-button .dcp-orientation-portrait{display:none!important}
  #dcp-live-orientation-button.is-portrait .dcp-orientation-landscape{display:none!important}
  #dcp-live-orientation-button.is-portrait .dcp-orientation-portrait{display:block!important}
}

/* v0.1.104: iPad layout targeting is device-class based via .dcp-ipad. */
