/* Line 16359 (businesses_host_words_grounded): the visitor test of ten /businesses/<domain> pages
   (docs/factory/visitor-test-business-sites-r1/FINDINGS.md rows 4, 5, 6 and 11). Loaded only by
   marketplace/businesses/show while the key is lit, so every rule here is scoped to that page.
   The dock itself (components/alive/dock, css/door-voice-first.css, css/pages/doors-google-path.css) is untouched. */

/* Row 4: her live words beside the resting dock (js/pages/businesses-host-words.js mirrors the pill's clipped caption
   and places this bubble 8 px above the dock's right end). It never takes a tap; the pill's caption stays the live region. */
.ns-biz-host-words {
    position: fixed;
    z-index: 1039;
    box-sizing: border-box;
    width: max-content;
    max-width: min(320px, calc(100vw - 32px));
    margin: 0;
    padding: 8px 12px;
    border: 1px solid #dadce0;
    border-radius: 14px;
    background: #ffffff;
    color: #202124;
    font: 14px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    text-align: left;
    box-shadow: 0 4px 16px rgba(32, 33, 36, .16);
    pointer-events: none;
    opacity: 1;
    transition: opacity .2s ease;
}
.ns-biz-host-words[hidden] { display: none; }
.ns-biz-host-words[data-quiet="1"] { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .ns-biz-host-words { transition: none; } }

/* Row 5: the opened sheet sits on its own card. css/pages/doors-google-path.css clears the live-hello dock's ground so
   the free host has none; that stays true while she rests (pill, face), and the open sheet and chat get one back. */
.alive-dock.alive-dock--voice-first[data-door-live-hello="1"]:is([data-alive-dock-sheet="sheet"], [data-alive-dock-sheet="chat"]) {
    background: #ffffff !important;
    color: #202124 !important;
    border: 1px solid #dadce0 !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 28px rgba(32, 33, 36, .2) !important;
    max-height: calc(100dvh - 32px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}

/* Rows 4 and 5: her live face (<netshow-alive>, a 1:2.5 portrait by default) stays inside its face slot instead of
   spilling a tall dark tile over the consent line and the page. */
.alive-dock [data-ns-door-face] .ns-alive-card-mount { overflow: hidden; border-radius: inherit; }
.alive-dock [data-ns-door-face] .ns-alive-card-mount netshow-alive { display: block; width: 100%; height: 100%; }

/* Row 6: while the Communicator's panel sits in her drawer it is the one chat layer: the second portrait frame under it,
   the drawer's "using the conversation below" line and the sheet's copy of the consent line (the panel carries its own) fold. */
.alive-dock:has([data-door-voice-drawer]:not([hidden]) > #ns-chat-root) > .alive-dock__body,
.alive-dock:has([data-door-voice-drawer]:not([hidden]) > #ns-chat-root) [data-door-voice-drawer] > p,
.alive-dock:has([data-door-voice-drawer]:not([hidden]) > #ns-chat-root) .ns-door-voice-controls > [data-ns-media-consent-line] {
    display: none !important;
}

/* Row 11 (the hero at the top, no empty band above the title) is an inline <style> in marketplace/businesses/show, so the
   title never moves after first paint while this sheet loads. */
