/* Line 31752 (luma_store_concierge_container, App\Support\Stage\LumaConciergeContainer): the store concierge's one container as
   Luma's on the NetShow home. sheet.css and host.css draw it as on /shop/sunray and /shop/lorentz; this layer puts it in her
   place in NetShow's own tokens (public/css/ns-tokens.css, light and dark): from 900 px the left rail (her face at its top, her
   name, her conversation, the voice bar, the input), under 900 px a band at the foot of the screen (her face, her name and live
   line, the voice bar's buttons, the open button) that opens the whole container over the page. Every rule is scoped to her
   aside (aside.ns-fp.sc-house), so a store page never reads one of them. */

aside.ns-fp.sc-house {
    --sc-bg: var(--ns-surface, #fff);
    --sc-surface: var(--ns-card, #fff);
    --sc-surface-raised: var(--ns-card, #fff);
    --sc-suggest-bg: var(--ns-surface, #fff);
    --sc-ink: var(--ns-text, #202124);
    --sc-ink-strong: var(--ns-text, #202124);
    --sc-muted: var(--ns-text-2, #5f6368);
    --sc-muted-2: var(--ns-text-2, #5f6368);
    --sc-hairline: var(--ns-border, #dadce0);
    --sc-border: var(--ns-border, #dadce0);
    --sc-border-input: var(--ns-border, #dadce0);
    --sc-tile: var(--ns-surface-2, #f1f3f4);
    --sc-olive: var(--nsfp-accent, #1a73e8);
    --sc-olive-btn: var(--nsfp-accent, #1a73e8);
    --sc-forest: var(--nsfp-accent, #1a73e8);
    --sc-sage: color-mix(in srgb, var(--nsfp-accent, #1a73e8) 7%, var(--ns-surface, #fff));
    --sc-sage-border: color-mix(in srgb, var(--nsfp-accent, #1a73e8) 22%, var(--ns-surface, #fff));
    --sc-sage-ink: var(--ns-text-2, #5f6368);
    --sc-wave: var(--nsfp-accent, #1a73e8);
    --sc-send-off: var(--ns-surface-2, #f1f3f4);
    --sc-send-off-ink: var(--ns-text-2, #5f6368);
    --sc-bubble: color-mix(in srgb, var(--nsfp-accent, #1a73e8) 10%, var(--ns-card, #fff)); /* the visitor's turns stand out from the grey rail */
    --sc-sparkle: var(--nsfp-accent, #1a73e8);
    --sc-on-dark: #fff;
    --sc-on-dark-2: #fff;
    --sc-serif: var(--ns-font, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
    --sc-sans: var(--ns-font, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
    --nsfp-face: 148px;
    gap: 0;
    padding: 0;
}
aside.ns-fp.sc-house .sc-sheet {
    --sc-sh-muted: var(--ns-text-2, #5f6368);
    --sc-sh-meta: var(--ns-text-2, #5f6368);
    --sc-sh-icon: var(--ns-text, #202124);
    --sc-sh-arrow: var(--ns-text-2, #5f6368);
    --sc-sh-suggest-border: var(--ns-border, #dadce0);
    --sc-sh-suggest-active: var(--ns-surface-2, #f1f3f4);
    --sc-sh-arch: var(--ns-border, #dadce0);
    --sc-sh-label-tile: var(--ns-border, #dadce0);
    --sc-sh-dock-line: var(--ns-border, #dadce0);
    --sc-sh-fold-line: var(--ns-border, #dadce0);
    --sc-sh-dots: var(--ns-text-2, #5f6368);
    --sc-sh-placeholder: var(--ns-text-2, #5f6368);
    --sc-sh-input-ink: var(--ns-text, #202124);
    --sc-sh-focus: var(--nsfp-accent, #1a73e8);
}
aside.ns-fp.sc-house .sc-voicebar {
    --sc-vb-btn: var(--ns-text-2, #5f6368);
    --sc-vb-hover: color-mix(in srgb, var(--nsfp-accent, #1a73e8) 12%, transparent);
}

/* the store's sheet, in her aside: never fixed over the page, never slid away (it is always open in her place) */
aside.ns-fp.sc-house > .sc-sheet {
    position: relative;
    inset: auto;
    z-index: auto;
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    padding-top: 0;
    border: 0;
    transform: none;
    transition: none;
}

/* her face at the top of her container: her one element, every look and skill the kit's (its first frame until it builds) */
aside.ns-fp.sc-house .sc-house-face {
    position: relative;
    flex: 0 0 auto;
    height: calc(var(--nsfp-face) + 12px);
    margin: 0;
    background: var(--sc-bg);
}
aside.ns-fp.sc-house .sc-house-face > alive-agent > :is(.ak-caption, .ak-life-cc, [data-alive-quiet-mic], [data-alive-looks]) { display: none !important; }
/* line 31821: her still (the face's own layer until her 3D body draws; NetshowHostLuma::firstFrame caps it at 220 px) and her first
   frame before the kit builds fill her box too (LumaConciergeContainer::bigStill gives the picture that size) */
aside.ns-fp.sc-house .sc-house-face > alive-agent[data-ns-luma-host] > .ak-face::before { width: 100%; }
aside.ns-fp.sc-house .sc-house-face > alive-agent > .ns-luma-first img { width: min(100%, var(--nsfp-face)); }
/* her one hamburger (the kit's menu: Mute, Volume, Language, Camera ...) at the top right of her face. Line 31821 (Michael, Tue 27
   Oct 2026 ~10:5x AM PT: "It needs to go away when you don't have your mouse over the top of the agent. Now it's just stuck
   there"): it rests unseen, as the kit's own rule has it (NEW-17845, alive-kit.js), and shows only while the pointer is over her
   (any pointer that can hover), on Tab to her or to it, on a tap on her (touch: the kit's data-ak-reveal; a second tap or a tap
   outside puts it away) and while her menu is open. The pane's own rule (netshow-ai-factory-pane.css) hides it for good; this
   one is hers. */
aside.ns-fp.sc-house #ns-house-pane-host[data-mode="container"] > .ak-menu-btn { top: 8px; right: 8px; bottom: auto; left: auto; opacity: 0 !important; pointer-events: none !important; }
@media (any-hover: hover) {
    aside.ns-fp.sc-house #ns-house-pane-host[data-mode="container"]:not([data-kit-walking]):hover > .ak-menu-btn { opacity: 1 !important; pointer-events: auto !important; }
}
aside.ns-fp.sc-house #ns-house-pane-host[data-mode="container"][data-ak-reveal] > .ak-menu-btn,
aside.ns-fp.sc-house #ns-house-pane-host[data-mode="container"] > .ak-menu-btn:is(:focus-visible, [aria-expanded="true"]) { opacity: 1 !important; pointer-events: auto !important; }
/* its own rule: a browser without :has() drops only this one */
aside.ns-fp.sc-house #ns-house-pane-host[data-mode="container"]:has(> .ak-face:focus-visible) > .ak-menu-btn { opacity: 1 !important; pointer-events: auto !important; }

/* her name and live line (line 31763: no pencil; her menu's Clear chat is the one new conversation) */
aside.ns-fp.sc-house .sc-sheet__head { min-height: 56px; padding: 0 6px 0 16px; }
aside.ns-fp.sc-house .sc-sheet__head > .sc-mark,
aside.ns-fp.sc-house .sc-welcome > .sc-mark--lg { display: none; }
aside.ns-fp.sc-house .sc-sheet__name { font-size: 20px; line-height: 24px; font-weight: 600; letter-spacing: 0; }
aside.ns-fp.sc-house .sc-house-state { display: none; }
aside.ns-fp.sc-house .sc-house-cc { display: none; }
aside.ns-fp.sc-house .sc-house-iam { display: none; }
aside.ns-fp.sc-house .sc-house-open { display: none; }

/* the welcome: the page's one question, her hello, the home's three asks */
aside.ns-fp.sc-house .sc-welcome { padding: 18px 16px 12px; }
aside.ns-fp.sc-house .sc-welcome .sc-eyebrow { margin: 0; }
aside.ns-fp.sc-house .sc-welcome__title { margin-top: 8px; max-width: none; font-size: 22px; line-height: 28px; font-weight: 500; }
aside.ns-fp.sc-house .sc-welcome__hello { margin-top: 10px; font-size: 15px; line-height: 22px; }
aside.ns-fp.sc-house .sc-suggest { margin-top: 16px; }
aside.ns-fp.sc-house .sc-suggest__row { min-height: 44px; border-radius: 10px; }
aside.ns-fp.sc-house .sc-stream { padding: 8px 16px 20px; }
aside.ns-fp.sc-house .sc-msg--user { border-radius: 16px 16px 4px 16px; }
aside.ns-fp.sc-house .sc-house-note { margin: 0; font-size: 13px; line-height: 18px; color: var(--ns-text-2, #5f6368); }
aside.ns-fp.sc-house .sc-house-links { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 0; white-space: normal; }
aside.ns-fp.sc-house .sc-house-links a { color: var(--nsfp-accent, #1a73e8); text-decoration: underline; text-underline-offset: 2px; }
aside.ns-fp.sc-house .sc-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* the foot: the voice bar (Talk is the one filled button), the input, the AI line */
aside.ns-fp.sc-house .sc-sheet__foot { padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)); }
aside.ns-fp.sc-house .sc-voicebar .sc-voicebar__talk { padding: 0 14px; border-radius: 999px; background: var(--nsfp-accent, #1a73e8); color: var(--ns-on-accent, #fff); font-weight: 500; }
aside.ns-fp.sc-house .sc-voicebar .sc-voicebar__talk:hover { background: color-mix(in srgb, var(--nsfp-accent, #1a73e8) 88%, #000); }
/* line 31840: Looks, right beside Talk (and beside Mute mic and End during her call): a small outlined pill with its word */
aside.ns-fp.sc-house .sc-voicebar .sc-voicebar__looks { padding: 0 14px; border: 1px solid var(--ns-border, #dadce0); border-radius: 999px; background: var(--ns-surface, #fff); color: var(--nsfp-accent, #1a73e8); font-weight: 600; }
aside.ns-fp.sc-house .sc-voicebar .sc-voicebar__looks:hover { background: color-mix(in srgb, var(--nsfp-accent, #1a73e8) 8%, var(--ns-surface, #fff)); }
aside.ns-fp.sc-house .sc-composer { min-height: 48px; border-radius: 24px; padding: 4px 4px 4px 16px; }
aside.ns-fp.sc-house .sc-send { border-radius: 50%; }
/* line 31763: her input's keyboard ring (ns-focus-ring.css) is drawn on the round field itself, never a square ring inside it */
html.ns-focus-ring aside.ns-fp.sc-house .sc-composer__input:focus-visible { outline: none !important; }
html.ns-focus-ring aside.ns-fp.sc-house .sc-composer:has(.sc-composer__input:focus-visible) { outline: 2px solid var(--ns-accent, #4f8cff); outline-offset: 2px; }
aside.ns-fp.sc-house .sc-ai-line { padding-bottom: 2px; }

/* from 900 px: the left rail, the page beside it (the pane's own body padding reads --nsfp-w) */
@media (min-width: 900px) {
    :root[data-ns-factory-pane]:has(aside.ns-fp.sc-house) { --nsfp-w: 320px; }
    aside.ns-fp.sc-house { padding: 0; }
    aside.ns-fp.sc-house .sc-sheet__tools [data-sc-action="close"] { display: none; }
}
@media (min-width: 1200px) {
    :root[data-ns-factory-pane]:has(aside.ns-fp.sc-house) { --nsfp-w: 360px; }
}
/* Line 31763 (Michael's screenshots of the live home, Mon 26 Oct: "her menu opens over the page"): from 900 px her one menu opens
   in her own corner, under its button and inside the rail (the kit's placeMenu set it beside the button, over the page); it
   still closes on a tap outside, Escape or a choice (menu-closes="choice"). Under 600 px it stays the kit's bottom sheet. */
@media (min-width: 900px) {
    aside.ns-fp.sc-house #ns-house-pane-host > .ak-menu:not([data-sheet]) {
        left: 8px !important;
        right: auto !important;
        width: calc(var(--nsfp-w, 320px) - 16px) !important;
        min-width: 0 !important;
        max-width: calc(var(--nsfp-w, 320px) - 16px) !important;
    }
}
/* Line 31821 (Michael, Tue 27 Oct 2026 ~10:5x AM PT, his own test from the show console: "Luma is some tiny little dot. It should
   be much, much bigger. It needs to fill in that area, look around, and be as capable an alive agent as it can be"): from 900 px
   her face fills the top of her rail, the rail less 20 px each side (320 px in the 360 px rail), and at most 38% of the screen's
   height, so her name, her question, the voice bar and the input stay in view under her on a short screen (it was 148 px, and
   112 px under 760 px tall). The one size rule holds: one box per screen, never moved or resized while she talks; her look moves
   inside it (her 3D body and her still both fill it). vh, not svh: a desktop screen's two are the same, and a unit a browser does
   not know would void the whole value (her box would collapse). */
@media (min-width: 900px) {
    aside.ns-fp.sc-house { --nsfp-face: max(148px, min(calc(var(--nsfp-w, 320px) - 40px), 38vh)); }
}

/* under 900 px, closed: a band at the foot of the screen (above the site's bottom bar): her face, her name and live line, the
   voice bar's buttons (icon only, each named), the open button. The page keeps the band's room (the pane's own padding). */
@media (max-width: 899.98px) {
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) aside.ns-fp.sc-house[data-sc-house]:not(.sc-house--open) {
        top: auto; left: 0; right: 0; bottom: env(safe-area-inset-bottom, 0px); width: auto; height: 72px;
        padding: 0; gap: 0; border: 0; border-top: 1px solid var(--ns-border, #dadce0); border-radius: 0; overflow: hidden;
        background: var(--ns-surface, #fff); box-shadow: 0 -2px 12px rgba(0, 0, 0, .08);
    }
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) body:has(.ns-gbar) aside.ns-fp.sc-house[data-sc-house]:not(.sc-house--open) {
        bottom: calc(var(--ns-gbar-h, 56px) + env(safe-area-inset-bottom, 0px));
    }
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) aside.ns-fp.sc-house[data-sc-house]:not(.sc-house--open) > .sc-sheet[data-sc-house] {
        display: grid !important; grid-template-columns: 72px minmax(0, 1fr) auto auto; grid-template-rows: 72px; align-items: center; height: 72px; overflow: hidden;
    }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-face { grid-column: 1; grid-row: 1; width: 72px; height: 72px; --nsfp-face: 56px; background: transparent; }
    /* above main's living-container band face (netshow-ai-factory-pane.css, specificity 1,10,1): hers sits at the band's left */
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) aside.ns-fp.sc-house[data-sc-house]:not(.sc-house--open) #ns-house-pane-host[data-mode="container"] > .ak-face {
        inset: 8px auto auto 8px !important; width: 56px !important; height: 56px !important;
    }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-face alive-agent > .ns-luma-first { position: absolute; top: 8px; left: 8px; margin: 0; gap: 0; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-face alive-agent > .ns-luma-first img { width: 56px; height: 56px; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-face alive-agent > .ns-luma-first .ns-luma-load { display: none; }
    aside.ns-fp.sc-house:not(.sc-house--open) #ns-house-pane-host[data-mode="container"] > .ak-menu-btn { display: none !important; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__head { display: contents; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who { grid-column: 2; grid-row: 1; min-width: 0; padding: 0 6px 0 2px; cursor: pointer; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; row-gap: 0; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__name { font-size: 16px; line-height: 20px; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__as { margin: 0; font-size: 13px; line-height: 18px; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-cc:not(:empty) {
        display: -webkit-box; flex-basis: 100%; margin: 2px 0 0; font-size: 13px; line-height: 18px; color: var(--ns-text, #202124);
        -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-state { display: inline; }
    /* Line 31808 (T3, the 390 show walk: the band read "Luma · AI agent / You came straight to NetShow, so let's get you set up."):
       folded, the label reads "I'm Luma, an AI" (her name stays the sheet's heading for a reader) and the line under it asks the
       page's one question, two lines at most; the line that answers how they came opens with the container. */
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who:has(.sc-house-iam) > .sc-sheet__name {
        position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
    }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who:has(.sc-house-iam) > .sc-sheet__as {
        max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
        font-size: 15px; line-height: 20px; font-weight: 600; color: var(--ns-text, #202124);
    }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-iam { display: inline; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who:has(.sc-house-iam) > .sc-sheet__as::before { display: none; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who:has(.sc-house-iam) .sc-house-as { display: none; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__who:has(.sc-house-iam) .sc-house-state { font-weight: 400; color: var(--ns-text-2, #5f6368); }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-state:not(:empty)::before { content: " · "; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__tools { grid-column: 4; grid-row: 1; padding-right: 6px; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__tools > :not(.sc-house-open) { display: none; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-house-open { display: grid; width: 44px; height: 44px; }
    aside.ns-fp.sc-house:not(.sc-house--open) :is(.sc-sheet__body, .sc-clear) { display: none; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__foot { display: contents; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-sheet__foot > :not(.sc-voicebar) { display: none !important; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-voicebar { grid-column: 3; grid-row: 1; min-height: 44px; padding: 0; gap: 2px; border: 0; background: transparent; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-voicebar :is(.sc-voicebar__wave, .sc-voicebar__label) { display: none; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-voicebar .sc-voicebar__btn { min-width: 44px; min-height: 44px; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-voicebar .sc-voicebar__talk { width: 44px; padding: 0; justify-content: center; border-radius: 50%; }
    /* line 31840: folded, Looks keeps its word beside the round Talk (the band's other buttons go icon-only) */
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-voicebar .sc-voicebar__looks { padding: 0 12px; margin-left: 4px; font-size: 14px; }
    aside.ns-fp.sc-house:not(.sc-house--open) .sc-voicebar .sc-voicebar__btn .sc-voicebar__text {
        position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
    }

    /* open: the whole container over the page (the store's phone sheet), her face at its top, Close folds it to the band.
       Line 31763 (390 walk: the cookie notice, z-index 2147482000, lay on her voice bar and her input): open, her one container
       is in front until it folds back to the band, where the notice (essential cookies only until a yes) shows again. */
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) aside.ns-fp.sc-house[data-sc-house].sc-house--open {
        top: 0; left: 0; right: 0; bottom: 0; width: auto; height: auto; z-index: 2147482001;
        padding: env(safe-area-inset-top, 0px) 0 0; gap: 0; border: 0; border-radius: 0; box-shadow: none; overflow: hidden;
    }
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) aside.ns-fp.sc-house[data-sc-house].sc-house--open > .sc-sheet[data-sc-house] { display: flex !important; }
    /* line 31821 (3): open, she is big at the top of her sheet too (the screen less 24 px each side, at most 34% of its small
       height, the one left under the browser's own bars; 30% of the screen where svh is unknown; it was 104 px), her
       conversation, voice bar and input under her */
    aside.ns-fp.sc-house.sc-house--open { --nsfp-face: max(104px, min(calc(100vw - 48px), 30vh)); }
    @supports (height: 1svh) {
        aside.ns-fp.sc-house.sc-house--open { --nsfp-face: max(104px, min(calc(100vw - 48px), 34svh)); }
    }
    :root[data-ns-factory-pane]:not([data-nsb-free]):not([data-nsb-min]):not([data-nsb-size="half"]):not([data-nsb-size="max"]) aside.ns-fp.sc-house[data-sc-house].sc-house--open #ns-house-pane-host[data-mode="container"] > .ak-face {
        inset: 4px auto auto calc(50% - var(--nsfp-face) / 2) !important; width: var(--nsfp-face) !important; height: var(--nsfp-face) !important; border-radius: 0; background: transparent; box-shadow: none;
    }
}
@media print { aside.ns-fp.sc-house { display: none !important; } }
