/* /Components/AdminGate.razor.rz.scp.css */
.admin-gate-status[b-3wgz1z2me1] {
    padding: 2rem;
    text-align: center;
    color: #655c52;
}
/* /Components/AttendanceThermometer.razor.rz.scp.css */
.attendance-thermometer-visual[b-cjr7bc7eqm] {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    align-self: center;
    width: 110px;
    padding: 0 10px 2.5rem;
    cursor: ns-resize;
    /* Disables the browser's own touch-scroll gesture so a finger-drag on the tube reliably
       delivers pointermove events instead of scrolling the page. */
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
}

.attendance-thermometer-visual.disabled[b-cjr7bc7eqm] {
    cursor: default;
    opacity: 0.7;
}

.glass-tube-outer[b-cjr7bc7eqm] {
    --tube-height: 12.6rem;
    position: relative;
    width: 14px;
    height: var(--tube-height);
    background: rgba(244, 234, 210, 0.03);
    border: 2px solid rgba(244, 234, 210, 0.15);
    border-radius: 10px 10px 0 0;
    box-shadow: inset 0 0 10px rgba(244, 234, 210, 0.05);
}

.tube-ticks[b-cjr7bc7eqm] {
    position: absolute;
    right: 22px;
    height: 100%;
    width: 60px;
}

.tick-mark[b-cjr7bc7eqm] {
    position: absolute;
    right: 0;
    transform: translateY(50%);
    color: rgba(245, 237, 224, 0.4);
    font-size: 0.975rem;
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
}

.vacuum-chamber[b-cjr7bc7eqm] {
    position: absolute;
    bottom: 0;
    left: 1px;
    right: 1px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: visible;
}

.liquid-neon-fill[b-cjr7bc7eqm] {
    width: 100%;
    /* Anchored to the full tube height (not this element's own, resizing height) and pinned to
       the bottom, so a partial fill shows the true color at that temperature (burgundy near the
       bottom, amber near the top) instead of a mini gradient rescaled to whatever height it is. */
    background-image: linear-gradient(to top, #5f1d2b, #d3a348);
    background-size: 100% var(--tube-height);
    background-position: bottom;
    border-radius: 8px 8px 0 0;
    box-shadow: 0 0 15px rgba(211, 163, 72, 0.5), inset 0 0 5px rgba(244, 234, 210, 0.35);
    transition: height 0.65s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.65s ease;
    position: relative;
}

.thermal-bubbles[b-cjr7bc7eqm] {
    position: absolute;
    inset: 0;
    /* Original tile (4px, 20% radius) rendered dots under 1px across -- effectively invisible;
       widened the tile and dot radius so the boil is actually visible. */
    background-image: radial-gradient(circle, rgba(95, 29, 43, 0.9) 32%, transparent 34%), radial-gradient(circle, rgba(211, 163, 72, 0.9) 32%, transparent 34%);
    background-size: 14px 14px, 14px 14px;
    background-position: 0 0, 7px 7px;
    animation: attendance-thermometer-boil-b-cjr7bc7eqm 0.9s infinite linear;
    opacity: 0.85;
}

@keyframes attendance-thermometer-boil-b-cjr7bc7eqm {
    0% {
        background-position: 0 0, 7px 7px;
    }

    100% {
        background-position: 0 -28px, 7px -21px;
    }
}

.thermometer-bulb[b-cjr7bc7eqm] {
    position: absolute;
    bottom: -34px;
    left: -12px;
    width: 34px;
    height: 34px;
    background: rgba(17, 16, 13, 0.6);
    border: 2px solid rgba(244, 234, 210, 0.15);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 10px rgba(244, 234, 210, 0.05);
}

.bulb-core[b-cjr7bc7eqm] {
    width: 22px;
    height: 22px;
    background: #5f1d2b;
    border-radius: 50%;
    box-shadow: 0 0 18px rgba(95, 29, 43, 0.8), inset 0 0 4px rgba(244, 234, 210, 0.35);
}
/* /Components/CommandConsole.razor.rz.scp.css */
.terminal-form[b-siw18ufcec] {
    display: grid;
    gap: 0.85rem;
    margin-top: 0.2rem;
}

.console-transcript[b-siw18ufcec] {
    display: grid;
    gap: 0.45rem;
}

.console-command-line[b-siw18ufcec] {
    position: relative;
    display: grid;
    gap: 0.18rem;
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
    cursor: text;
}


.command-row[b-siw18ufcec] {
    display: flex;
    gap: 0.6rem;
    align-items: baseline;
    color: var(--amber);
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
}

.command-text[b-siw18ufcec] {
    overflow-wrap: anywhere;
}

.field-prompt[b-siw18ufcec] {
    color: var(--amber);
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
}

.console-subtext[b-siw18ufcec] {
    color: color-mix(in srgb, var(--paper) 72%, transparent);
    font-family: var(--font-teleprinter);
    font-size: clamp(0.86rem, 2.1vw, 1rem);
    line-height: 1.25;
}

.console-input-line[b-siw18ufcec] {
    display: flex;
    align-items: baseline;
    min-height: 1.5rem;
    color: var(--paper);
    /* Faint outline so the input reads as a tappable field, prompting mobile users (iPhone
       especially, since the keyboard can't auto-open there) to tap in and start typing. */
    padding: 0.4rem 0.6rem;
    border: 1px solid rgba(211, 163, 72, 0.28);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.05);
}

.console-enter-button[b-siw18ufcec] {
    flex: 0 0 auto;
    margin-left: 0.5rem;
    padding: 0.3rem 0.7rem;
    border: 1px solid var(--amber);
    border-radius: 0.25rem;
    background: var(--amber);
    color: var(--ink);
    font-family: var(--font-teleprinter);
    font-size: 0.85em;
    font-weight: 700;
    letter-spacing: 0.04em;
    cursor: pointer;
}

.console-enter-button:disabled[b-siw18ufcec] {
    opacity: 0.6;
    cursor: wait;
}

.console-input-prompt[b-siw18ufcec] {
    flex: 0 0 auto;
    color: var(--green);
}

.console-line-input[b-siw18ufcec] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 1.5rem;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
    color: var(--paper);
    background: transparent;
    caret-color: var(--amber);
    border-radius: 0;
    appearance: none;
    touch-action: manipulation;
}

.console-line-input[b-siw18ufcec]::placeholder {
    color: var(--paper);
    opacity: 0.45;
}

.console-line-input:focus[b-siw18ufcec] {
    outline: 0;
}

.console-native-submit[b-siw18ufcec] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.console-error[b-siw18ufcec] {
    color: #ffb4a8;
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
}

.console-help[b-siw18ufcec] {
    color: var(--green);
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
}

@media (max-width: 640.98px) {
    .console-input-line[b-siw18ufcec] {
        grid-column: 1 / -1;
    }

    .console-command-line[b-siw18ufcec],
    .console-transcript[b-siw18ufcec],
    .console-error[b-siw18ufcec],
    .console-help[b-siw18ufcec],
    .command-row[b-siw18ufcec],
    .field-prompt[b-siw18ufcec],
    .console-line-input[b-siw18ufcec] {
        font-size: clamp(1.7rem, 5vw, 2.1rem);
    }
}
/* /Components/GuestIdentityGate.razor.rz.scp.css */
.guest-gate[b-r4zx3o2ofy] {
    position: fixed;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #14100d;
    color: #f5ede0;
    padding: 1.5rem;
}

.guest-gate-status[b-r4zx3o2ofy] {
    color: #a89c8a;
}

.guest-gate-card[b-r4zx3o2ofy] {
    max-width: 26rem;
    text-align: center;
    display: grid;
    gap: 1rem;
}

.guest-gate-card h1[b-r4zx3o2ofy] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
    letter-spacing: 0.02em;
}

.guest-gate-card p[b-r4zx3o2ofy] {
    margin: 0;
    color: #d8cdb9;
    line-height: 1.5;
}

.guest-gate-dev-button[b-r4zx3o2ofy] {
    justify-self: center;
    margin-top: 0.5rem;
    opacity: 0.7;
    border-style: dashed;
}
/* /Components/KarmaBadge.razor.rz.scp.css */
/* The number fills the header's full height (set by the parent .app-header, not by this
   component) rather than sharing space with the progress bar -- the bar itself is a thin strip
   pinned to the header's bottom edge (see .karma-badge-bar-track), positioned relative to the
   nearest positioned ancestor (.app-header has position:relative). */
.karma-badge[b-3k9mrnpagh] {
    display: flex;
    align-items: center;
    height: 100%;
}

.karma-badge-value[b-3k9mrnpagh] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--amber);
}

.karma-badge-icon[b-3k9mrnpagh] {
    width: 1.3rem;
    height: 1.3rem;
}

.karma-badge-number[b-3k9mrnpagh] {
    font-family: Consolas, "Courier New", monospace;
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1;
}

/* Recharge-rate multiplier, previewed alongside a dial and a text readout and picked as "the
   pragmatic approach" -- x1 (no effect) is the center; fills grow outward from there towards
   green (faster) or red (slower). Currently always exactly x1 (see DrainRateMultiplier), so both
   fills sit at zero width until that's tied to Community Bank health. */
.karma-badge-multiplier-track[b-3k9mrnpagh] {
    position: relative;
    width: 2.2rem;
    height: 0.35rem;
    border-radius: 0.2rem;
    /* Same red-to-green spectrum backdrop as the dial option -- readable even at rest (x1,
       zero-width fill), with the solid fill on top showing the actual current reading. */
    background: linear-gradient(to right, rgba(255, 90, 77, 0.55), rgba(245, 237, 224, 0.15) 50%, rgba(111, 191, 115, 0.55));
    align-self: center;
}

.karma-badge-multiplier-fill[b-3k9mrnpagh] {
    position: absolute;
    top: 0;
    height: 100%;
    border-radius: 0.2rem;
    transition: width 0.6s ease;
}

.karma-badge-multiplier-fill.positive[b-3k9mrnpagh] {
    background: #6fbf73;
}

.karma-badge-multiplier-fill.negative[b-3k9mrnpagh] {
    background: #ff5a4d;
}

.karma-badge-multiplier-center[b-3k9mrnpagh] {
    position: absolute;
    left: 50%;
    top: -0.12rem;
    width: 2px;
    height: calc(100% + 0.24rem);
    background: rgba(245, 237, 224, 0.5);
    transform: translateX(-50%);
}

.karma-badge-bar-track[b-3k9mrnpagh] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 0.2rem;
    background: rgba(245, 237, 224, 0.15);
    overflow: hidden;
}

.karma-badge-bar-fill[b-3k9mrnpagh] {
    height: 100%;
    transition: width 1s linear;
    background: #6fbf73;
}

.karma-badge-bar-fill.recharging[b-3k9mrnpagh] {
    background: #ff5a4d;
}
/* /Components/Layout/GuestLayout.razor.rz.scp.css */
.guest-layout[b-rwbpykxo14] {
    min-height: 100vh;
}
/* /Components/Layout/LegalLayout.razor.rz.scp.css */
.legal-document[b-iyow9ukzhk] {
    min-height: 100vh;
    max-width: 48rem;
    margin: 0 auto;
    padding: 1.5rem 1.25rem 3rem;
    color: rgba(245, 237, 224, 0.86);
}

.legal-header[b-iyow9ukzhk] {
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(245, 237, 224, 0.14);
}

.legal-brand[b-iyow9ukzhk] {
    color: #d3a348;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.legal-content[b-iyow9ukzhk] {
    padding: 2rem 0;
}

.legal-content[b-iyow9ukzhk]  h1,
.legal-content[b-iyow9ukzhk]  h2 {
    font-family: Georgia, "Times New Roman", serif;
    color: rgba(245, 237, 224, 0.95);
}

.legal-content[b-iyow9ukzhk]  h1 {
    margin: 0 0 0.5rem;
    font-size: clamp(2rem, 7vw, 3rem);
}

.legal-content[b-iyow9ukzhk]  h2 {
    margin: 2rem 0 0.65rem;
    font-size: 1.25rem;
}

.legal-content[b-iyow9ukzhk]  p,
.legal-content[b-iyow9ukzhk]  li {
    line-height: 1.65;
}

.legal-content[b-iyow9ukzhk]  ul {
    padding-left: 1.25rem;
}

.legal-content[b-iyow9ukzhk]  a,
.legal-footer a[b-iyow9ukzhk] {
    color: #d3a348;
}

.legal-content[b-iyow9ukzhk]  .effective-date {
    margin: 0 0 2rem;
    color: rgba(245, 237, 224, 0.55);
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.82rem;
}

.legal-footer[b-iyow9ukzhk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(245, 237, 224, 0.14);
    font-size: 0.82rem;
}

@media (min-width: 48rem) {
    .legal-document[b-iyow9ukzhk] {
        padding-top: 2.5rem;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-8k3484ykr0] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-8k3484ykr0] {
    flex: 1;
}

.sidebar[b-8k3484ykr0] {
    background-image: linear-gradient(180deg, #11100d 0%, #5f1d2b 70%);
}

@media (min-width: 641px) {
    .page[b-8k3484ykr0] {
        flex-direction: row;
    }

    .sidebar[b-8k3484ykr0] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        transition: width 0.15s ease;
    }

    .sidebar.collapsed[b-8k3484ykr0] {
        width: 4.25rem;
    }

    article[b-8k3484ykr0] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-kagyge06j6] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-kagyge06j6] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-kagyge06j6] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.top-row .container-fluid[b-kagyge06j6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.navbar-brand[b-kagyge06j6] {
    font-size: 1.1rem;
    overflow: hidden;
    white-space: nowrap;
}

.top-row.collapsed .navbar-brand[b-kagyge06j6] {
    display: none;
}

.collapse-toggle[b-kagyge06j6] {
    flex: 0 0 auto;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    line-height: 1;
    color: white;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    display: none;
}

@media (min-width: 641px) {
    .collapse-toggle[b-kagyge06j6] {
        display: inline-block;
    }
}

.bi[b-kagyge06j6] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

/* Guesses, pending Nick's final icon picks -- kept as simple hand-drawn shapes rather than exact
   Bootstrap Icons glyphs so they're easy to tweak later. */
.bi-table-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.3' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='2.5' width='13' height='11' rx='1'/%3E%3Cline x1='1.5' y1='6.5' x2='14.5' y2='6.5'/%3E%3Cline x1='1.5' y1='10' x2='14.5' y2='10'/%3E%3Cline x1='6' y1='2.5' x2='6' y2='13.5'/%3E%3C/svg%3E");
}

.bi-person-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='4.5' r='3'/%3E%3Cpath d='M3.5 14 4.5 10.5 11.5 10.5 12.5 14Z'/%3E%3C/svg%3E");
}

.bi-envelope-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.3' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='3' width='13' height='10' rx='1'/%3E%3Cpath d='M2 3.5 8 9 14 3.5'/%3E%3C/svg%3E");
}

.bi-chat-square-text-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.2' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='2' width='13' height='9' rx='1.5'/%3E%3Cpath d='M5 13.5 5 11 8 11'/%3E%3Cline x1='4' y1='5.5' x2='12' y2='5.5'/%3E%3Cline x1='4' y1='8' x2='9.5' y2='8'/%3E%3C/svg%3E");
}

.bi-sliders-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.4' viewBox='0 0 16 16'%3E%3Cline x1='3' y1='2' x2='3' y2='14'/%3E%3Cline x1='8' y1='2' x2='8' y2='14'/%3E%3Cline x1='13' y1='2' x2='13' y2='14'/%3E%3Ccircle cx='3' cy='6' r='1.6' fill='white' stroke='none'/%3E%3Ccircle cx='8' cy='11' r='1.6' fill='white' stroke='none'/%3E%3Ccircle cx='13' cy='4' r='1.6' fill='white' stroke='none'/%3E%3C/svg%3E");
}

.bi-search-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.4' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cline x1='10.5' y1='10.5' x2='14' y2='14'/%3E%3C/svg%3E");
}

.bi-diagram-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Ccircle cx='3' cy='3' r='2'/%3E%3Ccircle cx='13' cy='3' r='2'/%3E%3Ccircle cx='8' cy='13' r='2'/%3E%3Cpath d='M3 5 8 13 13 5' fill='none' stroke='white' stroke-width='1.2'/%3E%3C/svg%3E");
}

.bi-clipboard-check-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.3' viewBox='0 0 16 16'%3E%3Crect x='3' y='2.5' width='10' height='12' rx='1'/%3E%3Crect x='6' y='1.5' width='4' height='2' rx='0.5' fill='white' stroke='none'/%3E%3Cpath d='M5.5 8.5 7.5 10.5 11 6.5'/%3E%3C/svg%3E");
}

.bi-camera-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.3' viewBox='0 0 16 16'%3E%3Crect x='1.5' y='4.5' width='13' height='9' rx='1.5'/%3E%3Cpath d='M5.5 4.5 6.5 2.5h3l1 2'/%3E%3Ccircle cx='8' cy='9' r='2.6'/%3E%3C/svg%3E");
}

.bi-qrcode-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Crect x='1' y='1' width='5' height='5'/%3E%3Crect x='10' y='1' width='5' height='5'/%3E%3Crect x='1' y='10' width='5' height='5'/%3E%3Crect x='9' y='9' width='2' height='2'/%3E%3Crect x='12' y='9' width='3' height='2'/%3E%3Crect x='9' y='12' width='2' height='3'/%3E%3Crect x='12' y='13' width='3' height='2'/%3E%3C/svg%3E");
}

.bi-printer-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.3' viewBox='0 0 16 16'%3E%3Crect x='4' y='1.5' width='8' height='4' fill='white' stroke='none'/%3E%3Crect x='1.5' y='5.5' width='13' height='6' rx='1'/%3E%3Crect x='4' y='10' width='8' height='4.5' fill='white' stroke='none'/%3E%3C/svg%3E");
}

.bi-logout-nav-menu[b-kagyge06j6] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='white' stroke-width='1.4' viewBox='0 0 16 16'%3E%3Crect x='9' y='2.5' width='4.5' height='11' rx='0.8'/%3E%3Cline x1='2' y1='8' x2='9.5' y2='8'/%3E%3Cpath d='M7 5.5 9.5 8 7 10.5'/%3E%3C/svg%3E");
}

.nav-item[b-kagyge06j6] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-kagyge06j6] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-kagyge06j6] {
        padding-bottom: 1rem;
    }

    .nav-item[b-kagyge06j6]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
        overflow: hidden;
        white-space: nowrap;
    }

.nav-text[b-kagyge06j6] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-scrollable.collapsed .nav-text[b-kagyge06j6] {
    display: none;
}

.nav-scrollable.collapsed .nav-item[b-kagyge06j6]  .nav-link {
    justify-content: center;
}

.nav-scrollable.collapsed .bi[b-kagyge06j6] {
    margin-right: 0;
}

.nav-item[b-kagyge06j6]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-kagyge06j6]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-kagyge06j6] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-kagyge06j6] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-kagyge06j6] {
        display: none;
    }

    .nav-scrollable[b-kagyge06j6] {
        /* Wide screens always show the nav (never hidden entirely like the mobile checkbox
           toggle below) -- shrinking to the icon rail is a separate, explicit state (see
           .collapse-toggle / .nav-scrollable.collapsed), not tied to this checkbox. */
        display: block;

        /* Allow sidebar to scroll for tall menus. overflow-x is explicit -- setting only
           overflow-y makes browsers compute overflow-x as auto too, showing an unwanted
           horizontal scrollbar at the bottom whenever content is even a hair wider than the
           sidebar, in both the collapsed icon rail and the expanded width. */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
        overflow-x: hidden;
    }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-8ayn5e4v4r],
.components-reconnect-repeated-attempt-visible[b-8ayn5e4v4r],
.components-reconnect-failed-visible[b-8ayn5e4v4r],
.components-pause-visible[b-8ayn5e4v4r],
.components-resume-failed-visible[b-8ayn5e4v4r],
.components-rejoining-animation[b-8ayn5e4v4r] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-retrying[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-failed[b-8ayn5e4v4r],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-8ayn5e4v4r] {
    display: block;
}


#components-reconnect-modal[b-8ayn5e4v4r] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-8ayn5e4v4r 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-8ayn5e4v4r 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-8ayn5e4v4r 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-8ayn5e4v4r]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-8ayn5e4v4r 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-8ayn5e4v4r {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-8ayn5e4v4r {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-8ayn5e4v4r {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-8ayn5e4v4r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-8ayn5e4v4r] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-8ayn5e4v4r] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-8ayn5e4v4r] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-8ayn5e4v4r] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-8ayn5e4v4r] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-8ayn5e4v4r] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-8ayn5e4v4r 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-8ayn5e4v4r] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-8ayn5e4v4r {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/LiveTyping.razor.rz.scp.css */
.live-typing[b-zj0ltf6k5p] {
    min-height: min(68vh, 32rem);
    display: grid;
    align-items: center;
    border: 1px solid rgba(211, 163, 72, 0.28);
    padding: clamp(1rem, 4vw, 2rem);
    background:
        repeating-linear-gradient(0deg, rgba(244, 234, 210, 0.05) 0 1px, transparent 1px 7px),
        rgba(10, 10, 8, 0.78);
}

.live-typing pre[b-zj0ltf6k5p] {
    min-height: 11rem;
    margin: 0;
    white-space: pre-wrap;
    color: var(--amber, #d3a348);
    font-family: Consolas, "Courier New", monospace;
    font-size: clamp(1rem, 3.4vw, 1.35rem);
    line-height: 1.7;
}

.live-typing-cursor[b-zj0ltf6k5p] {
    animation: live-typing-blink-b-zj0ltf6k5p 1.1s steps(1) infinite;
}

@keyframes live-typing-blink-b-zj0ltf6k5p {
    50% {
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .live-typing-cursor[b-zj0ltf6k5p] {
        animation: none;
    }
}
/* /Components/Nick.razor.rz.scp.css */
/* Container Panel - Glassmorphism Blueprint */
.vagus-thermometer-container[b-5bs8zjtwu2] {
    display: flex;
    flex-direction: row;
    gap: 24px;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 24px;
    max-width: 640px;
    margin: 20px auto;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Button Options Column */
.thermometer-options-column[b-5bs8zjtwu2] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}

/* Individual Option Button Layout */
.temp-option-btn[b-5bs8zjtwu2] {
    display: flex;
    align-items: center;
    gap: 14px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 12px 16px;
    cursor: pointer;
    text-align: left;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.temp-option-btn:hover[b-5bs8zjtwu2] {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.15);
}

/* Selected Button State - High Contrast Neon Highlight */
.temp-option-btn.active[b-5bs8zjtwu2] {
    background: rgba(255, 0, 255, 0.08); /* Fuchsia active background */
    border-color: rgba(255, 0, 255, 0.45);
    box-shadow: 0 0 12px rgba(255, 0, 255, 0.15);
}

/* Temperature Marker Badges */
.temp-marker-badge[b-5bs8zjtwu2] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 32px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    color: rgba(255, 253, 241, 0.6);
    font-size: 0.85rem;
    font-weight: 700;
    font-family: monospace;
    transition: all 0.2s ease;
}

.temp-option-btn.active .temp-marker-badge[b-5bs8zjtwu2] {
    border-color: rgba(255, 0, 255, 0.6);
    color: #FF00FF;
    box-shadow: 0 0 8px rgba(255, 0, 255, 0.3);
}

/* Button Text Styling */
.temp-btn-content[b-5bs8zjtwu2] {
    display: flex;
    flex-direction: column;
}

.temp-btn-label[b-5bs8zjtwu2] {
    color: rgba(255, 253, 241, 0.85);
    font-size: 0.95rem;
    font-weight: 600;
    transition: color 0.2s ease;
}

.temp-option-btn.active .temp-btn-label[b-5bs8zjtwu2] {
    color: #FFFFFF;
}

.temp-btn-subtext[b-5bs8zjtwu2] {
    color: rgba(255, 253, 241, 0.4);
    font-size: 0.75rem;
    line-height: 1.25;
    margin-top: 3px;
}

/* Threshold-Locked Companion Toggle Card */
.companion-toggle-card[b-5bs8zjtwu2] {
    display: flex;
    flex-direction: row;
    gap: 14px;
    align-items: center;
    background: rgba(0, 255, 255, 0.02);
    border: 1px solid rgba(0, 255, 255, 0.1);
    border-radius: 8px;
    padding: 14px 16px;
    margin-top: 8px;
    transition: all 0.3s ease;
}

.companion-toggle-card.enabled-glow[b-5bs8zjtwu2] {
    background: rgba(0, 255, 255, 0.06);
    border-color: rgba(0, 255, 255, 0.4);
    box-shadow: 0 0 15px rgba(0, 255, 255, 0.15);
}

.toggle-switch-wrapper[b-5bs8zjtwu2] {
    display: flex;
    align-items: center;
}

.toggle-content[b-5bs8zjtwu2] {
    display: flex;
    flex-direction: column;
}

.toggle-title[b-5bs8zjtwu2] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 253, 241, 0.9);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.badge-unlocked[b-5bs8zjtwu2] {
    background: rgba(0, 255, 255, 0.2);
    border: 1px solid #00FFFF;
    border-radius: 3px;
    color: #00FFFF;
    font-size: 0.65rem;
    padding: 1px 4px;
    font-weight: 800;
    letter-spacing: 0.02em;
    box-shadow: 0 0 6px rgba(0, 255, 255, 0.3);
}

.toggle-subtext[b-5bs8zjtwu2] {
    color: rgba(255, 253, 241, 0.4);
    font-size: 0.7rem;
    margin-top: 2px;
}

/* The Switch Slider styling */
.switch[b-5bs8zjtwu2] {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

.switch input[b-5bs8zjtwu2] {
    opacity: 0;
    width: 0;
    height: 0;
}

.switch-slider[b-5bs8zjtwu2] {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: .3s cubic-bezier(0.16, 1, 0.3, 1);
    border-radius: 24px;
}

.switch-slider[b-5bs8zjtwu2]:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 3px;
    bottom: 3px;
    background-color: rgba(255, 253, 241, 0.6);
    transition: .3s cubic-bezier(0.16, 1, 0.3, 1);
    border-radius: 50%;
}

input:checked + .switch-slider[b-5bs8zjtwu2] {
    background-color: rgba(0, 255, 255, 0.2);
    border-color: #00FFFF;
}

input:checked + .switch-slider[b-5bs8zjtwu2]:before {
    transform: translateX(20px);
    background-color: #00FFFF;
    box-shadow: 0 0 8px rgba(0, 255, 255, 0.5);
}

/* Thermometer Visual Column */
.thermometer-visual-column[b-5bs8zjtwu2] {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90px;
    padding-left: 10px;
}

/* Glass Tube Outer Shell */
.glass-tube-outer[b-5bs8zjtwu2] {
    position: relative;
    width: 14px;
    height: 310px;
    background: rgba(255, 255, 255, 0.03);
    border: 2px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px 10px 0 0;
    box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.05);
}

/* Side Tick Marks Layout */
.tube-ticks[b-5bs8zjtwu2] {
    position: absolute;
    right: 22px;
    height: 100%;
    width: 45px;
}

.tick-mark[b-5bs8zjtwu2] {
    position: absolute;
    right: 0;
    transform: translateY(50%);
    color: rgba(255, 253, 241, 0.3);
    font-size: 0.65rem;
    font-family: monospace;
    font-weight: 500;
}

/* Internal Vacuum and Liquid Neon */
.vacuum-chamber[b-5bs8zjtwu2] {
    position: absolute;
    bottom: 0;
    left: 1px;
    right: 1px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: visible;
}

.liquid-neon-fill[b-5bs8zjtwu2] {
    width: 100%;
    background: linear-gradient(to top, #FF00FF, #00FFFF); /* Magenta transitioning to Cyan */
    border-radius: 8px 8px 0 0;
    box-shadow: 0 0 15px rgba(255, 0, 255, 0.6), inset 0 0 5px rgba(255, 255, 255, 0.4);
    transition: height 0.65s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
}

/* Thermal Runaway Bubbles Animation at 110F */
.thermal-bubbles[b-5bs8zjtwu2] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle, #FFF 20%, transparent 20%), radial-gradient(circle, #00FFFF 20%, transparent 20%);
    background-size: 4px 4px;
    background-position: 0 0, 2px 2px;
    animation: boil-b-5bs8zjtwu2 0.8s infinite linear;
    opacity: 0.6;
}

@keyframes boil-b-5bs8zjtwu2 {
    0% { background-position: 0 0, 2px 2px; }
    100% { background-position: 0 -20px, 2px -18px; }
}

/* Bulb Core */
.thermometer-bulb[b-5bs8zjtwu2] {
    position: absolute;
    bottom: -34px;
    left: -12px;
    width: 34px;
    height: 34px;
    background: rgba(0, 0, 0, 0.6);
    border: 2px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.05);
}

.bulb-core[b-5bs8zjtwu2] {
    width: 22px;
    height: 22px;
    background: #FF00FF; /* Solid Magenta Base */
    border-radius: 50%;
    box-shadow: 0 0 18px rgba(255, 0, 255, 0.8), inset 0 0 4px rgba(255, 255, 255, 0.3);
}
/* /Components/Pages/AdminHome.razor.rz.scp.css */
.admin-home[b-5gb06yi9sa] {
    display: grid;
    gap: 1.25rem;
    color: #241f1b;
}

.admin-header[b-5gb06yi9sa],
.admin-panel[b-5gb06yi9sa] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
    padding: 1.5rem;
}

.eyebrow[b-5gb06yi9sa] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-header h1[b-5gb06yi9sa],
.admin-panel h2[b-5gb06yi9sa] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
}

.admin-header h1[b-5gb06yi9sa] {
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.lede[b-5gb06yi9sa],
.admin-panel p[b-5gb06yi9sa],
.muted[b-5gb06yi9sa] {
    color: #655c52;
}

.lede[b-5gb06yi9sa] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
}

.admin-panel h2[b-5gb06yi9sa] {
    margin-bottom: 0.6rem;
}

.panel-heading[b-5gb06yi9sa] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.quick-links[b-5gb06yi9sa] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.quick-link[b-5gb06yi9sa] {
    padding: 0.55rem 1rem;
    border: 1px solid #d8d0c3;
    border-radius: 0.35rem;
    color: #241f1b;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.5);
}

.quick-link:hover[b-5gb06yi9sa] {
    background: rgba(255, 255, 255, 0.9);
}
/* /Components/Pages/AdminLogin.razor.rz.scp.css */
.admin-login[b-cu76r1qhr6] {
    max-width: 22rem;
    margin: 4rem auto;
    padding: 1.5rem;
    display: grid;
    gap: 1rem;
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    border-radius: 0.5rem;
}

.admin-login h1[b-cu76r1qhr6] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
}

.admin-login[b-cu76r1qhr6]  form {
    display: grid;
    gap: 0.6rem;
}

.admin-login-error[b-cu76r1qhr6] {
    color: #a4342a;
    margin: 0;
}
/* /Components/Pages/Alert.razor.rz.scp.css */
.alert-page[b-zj82qrt0fz] {
    --paper: #f4ead2;
    --amber: #d3a348;
    --green: #5f7f55;

    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 2.5rem);
    color: var(--paper);
    background:
        linear-gradient(rgba(17, 16, 13, 0.88), rgba(17, 16, 13, 0.94)),
        repeating-linear-gradient(0deg, rgba(211, 163, 72, 0.08) 0 1px, transparent 1px 9px),
        #17130f;
}

.alert-snow[b-zj82qrt0fz] {
    position: fixed;
    inset: 0;
    z-index: 20;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 96px 96px;
    image-rendering: pixelated;
    filter: grayscale(1) contrast(2.4) brightness(1.15);
    mix-blend-mode: screen;
    animation:
        snow-shift-b-zj82qrt0fz 0.1s steps(5) 5,
        snow-clear-b-zj82qrt0fz 0.5s step-end forwards;
    pointer-events: none;
}

.alert-notice[b-zj82qrt0fz] {
    width: min(38rem, 100%);
    border: 1px solid rgba(211, 163, 72, 0.45);
    background: rgba(13, 19, 13, 0.88);
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.55);
}

.alert-notice header[b-zj82qrt0fz] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem;
    border-bottom: 1px solid rgba(211, 163, 72, 0.25);
}

.alert-mark[b-zj82qrt0fz] {
    width: 3.25rem;
    height: 3.25rem;
    object-fit: contain;
}

.alert-eyebrow[b-zj82qrt0fz] {
    margin: 0 0 0.2rem;
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.alert-notice h1[b-zj82qrt0fz] {
    margin: 0;
    color: var(--paper);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 7vw, 2.6rem);
}

.alert-copy[b-zj82qrt0fz] {
    padding: 1.25rem;
}

.alert-copy > p[b-zj82qrt0fz] {
    margin: 0 0 1.2rem;
    font-size: clamp(1.05rem, 4vw, 1.35rem);
}

.alert-copy dl[b-zj82qrt0fz] {
    display: grid;
    gap: 0.8rem;
    margin: 0;
}

.alert-copy dl div[b-zj82qrt0fz] {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 0.75rem;
    padding-top: 0.8rem;
    border-top: 1px solid rgba(244, 234, 210, 0.12);
}

.alert-copy dt[b-zj82qrt0fz] {
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.82rem;
    text-transform: uppercase;
}

.alert-copy dd[b-zj82qrt0fz] {
    margin: 0;
}

.caretaker-contact[b-zj82qrt0fz] {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(244, 234, 210, 0.12);
}

.caretaker-contact p[b-zj82qrt0fz] {
    margin: 0;
    color: rgba(244, 234, 210, 0.72);
    line-height: 1.45;
}

.caretaker-button[b-zj82qrt0fz] {
    justify-self: start;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--amber);
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    text-decoration: none;
}

.caretaker-button:hover[b-zj82qrt0fz],
.caretaker-button:focus-visible[b-zj82qrt0fz] {
    background: var(--amber);
    color: #11100d;
}

.be-ready-flash[b-zj82qrt0fz] {
    padding: 0.9rem 1.25rem;
    border-top: 1px solid rgba(211, 163, 72, 0.3);
    color: #ff6b5f;
    font-family: Consolas, "Courier New", monospace;
    font-size: clamp(1.35rem, 6vw, 2rem);
    font-weight: 900;
    letter-spacing: 0.12em;
    text-align: center;
    animation: alert-pulse-b-zj82qrt0fz 1.1s steps(1) infinite;
}

.alert-signal[b-zj82qrt0fz] {
    position: fixed;
    top: 0.8rem;
    right: 0.8rem;
    display: flex;
    gap: 0.35rem;
}

.alert-signal span[b-zj82qrt0fz] {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--green);
}

@keyframes alert-pulse-b-zj82qrt0fz {
    50% {
        color: var(--amber);
        background: rgba(211, 163, 72, 0.1);
    }
}

@keyframes snow-shift-b-zj82qrt0fz {
    20% { background-position: 18px -12px; }
    40% { background-position: -22px 16px; }
    60% { background-position: 12px 28px; }
    80% { background-position: -16px -20px; }
}

@keyframes snow-clear-b-zj82qrt0fz {
    100% {
        visibility: hidden;
    }
}

@media (max-width: 420px) {
    .alert-page[b-zj82qrt0fz] {
        place-items: start center;
        padding-top: 1.25rem;
    }

    .alert-copy dl div[b-zj82qrt0fz] {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .be-ready-flash[b-zj82qrt0fz] {
        animation: none;
    }

    .alert-snow[b-zj82qrt0fz] {
        animation: snow-clear-b-zj82qrt0fz 0.5s step-end forwards;
    }
}
/* /Components/Pages/ClueAdmin.razor.rz.scp.css */
.clue-edit-backdrop[b-7wu14n6lg8] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 1rem;
    overflow-y: auto;
    background: rgba(0, 0, 0, 0.6);
}

.clue-edit-modal[b-7wu14n6lg8] {
    width: min(100%, 46rem);
    max-height: calc(100vh - 4rem);
    display: flex;
    flex-direction: column;
    border: 1px solid var(--muted);
    border-radius: 0.5rem;
    background: var(--ink);
    box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.clue-edit-modal-header[b-7wu14n6lg8] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--muted);
    background: var(--ink);
}

.clue-edit-modal-body[b-7wu14n6lg8] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1.25rem;
}
/* /Components/Pages/ClueTestPortal.razor.rz.scp.css */
.intro-message[b-7begqkv9ry] {
    border: 1px solid var(--amber);
    border-radius: 0.4rem;
    padding: 0.75rem 1rem;
    background: rgba(211, 163, 72, 0.08);
}

.intro-message summary[b-7begqkv9ry] {
    cursor: pointer;
    font-weight: 700;
    color: var(--amber);
}

.intro-message-body[b-7begqkv9ry] {
    margin-top: 0.75rem;
}

.intro-message-body[b-7begqkv9ry]  :first-child {
    margin-top: 0;
}

.intro-message-body[b-7begqkv9ry]  :last-child {
    margin-bottom: 0;
}

.intro-message-body[b-7begqkv9ry]  blockquote {
    border-left: 3px solid var(--amber);
    padding-left: 0.75rem;
    color: var(--muted);
    font-style: italic;
}
/* /Components/Pages/Confirm.razor.rz.scp.css */
.confirm-page[b-igsnjdnoe6] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 28rem;
    margin: 0 auto;
    padding: 3rem 1.5rem;
    text-align: center;
    color: rgba(245, 237, 224, 0.82);
}

.confirm-page h1[b-igsnjdnoe6] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 5vw, 2.6rem);
    color: rgba(245, 237, 224, 0.9);
}

.confirm-page .muted[b-igsnjdnoe6] {
    color: rgba(245, 237, 224, 0.55);
}

.confirm-cta[b-igsnjdnoe6] {
    display: grid;
    justify-items: center;
    gap: 0.85rem;
    margin-top: 1rem;
}

.confirm-cta-text[b-igsnjdnoe6] {
    margin: 0;
    color: #f5ede0;
    font-size: 1.35rem;
    font-weight: 700;
}

.confirm-cta-button[b-igsnjdnoe6] {
    display: inline-block;
    padding: 0.65rem 1.6rem;
    background: #d3a348;
    color: #14100d;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0.35rem;
}

.confirm-cta-button:hover[b-igsnjdnoe6] {
    background: #e6bd66;
    color: #14100d;
}
/* /Components/Pages/ConfirmEmail.razor.rz.scp.css */
.confirm-page[b-i2dd40hxnz] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 28rem;
    margin: 0 auto;
    padding: 3rem 1.5rem;
    text-align: center;
    color: rgba(245, 237, 224, 0.82);
}

.confirm-page h1[b-i2dd40hxnz] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 5vw, 2.6rem);
    color: rgba(245, 237, 224, 0.9);
}

.confirm-page .muted[b-i2dd40hxnz] {
    color: rgba(245, 237, 224, 0.55);
}

.confirm-cta[b-i2dd40hxnz] {
    display: grid;
    justify-items: center;
    gap: 0.85rem;
    margin-top: 1rem;
}

.confirm-cta-text[b-i2dd40hxnz] {
    margin: 0;
    color: #f5ede0;
    font-size: 1.35rem;
    font-weight: 700;
}

.confirm-cta-button[b-i2dd40hxnz] {
    display: inline-block;
    padding: 0.65rem 1.6rem;
    background: #d3a348;
    color: #14100d;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0.35rem;
}

.confirm-cta-button:hover[b-i2dd40hxnz] {
    background: #e6bd66;
    color: #14100d;
}
/* /Components/Pages/EscapeeAdmin.razor.rz.scp.css */
.escapee-admin[b-x284u4c2ad] {
    display: grid;
    gap: 1.25rem;
    color: #241f1b;
}

.admin-header[b-x284u4c2ad],
.admin-panel[b-x284u4c2ad] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
    padding: 1.2rem;
}

.admin-header[b-x284u4c2ad] {
    padding: 1.5rem;
}

.eyebrow[b-x284u4c2ad] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-header h1[b-x284u4c2ad],
.admin-panel h2[b-x284u4c2ad] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
}

.admin-header h1[b-x284u4c2ad] {
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.lede[b-x284u4c2ad],
.admin-panel p[b-x284u4c2ad],
.muted[b-x284u4c2ad],
.subtle[b-x284u4c2ad] {
    color: #655c52;
}

.lede[b-x284u4c2ad] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
}

.admin-panel h2[b-x284u4c2ad] {
    margin-bottom: 0.6rem;
}

/* EditForm renders its own <form> as a child component, so its root element never gets this
   component's CSS-isolation scope attribute; ::deep is required to style it from here. */
.admin-panel[b-x284u4c2ad]  form {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    align-items: start;
}

.form-field[b-x284u4c2ad] {
    display: grid;
    gap: 0.35rem;
    width: 100%;
}

.form-field label[b-x284u4c2ad] {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.form-field.wide[b-x284u4c2ad] {
    max-width: 32rem;
}

.form-field.medium[b-x284u4c2ad] {
    max-width: 18rem;
}

.escapee-list[b-x284u4c2ad] {
    display: grid;
    gap: 0.8rem;
    margin: 0.8rem 0 0;
    padding: 0;
    list-style: none;
}

.escapee-list li[b-x284u4c2ad] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.6rem 0;
    border-top: 1px solid #e5ddd0;
}

.escapee-list li:first-child[b-x284u4c2ad] {
    border-top: none;
}

.mugshot-thumb[b-x284u4c2ad] {
    width: 3.2rem;
    height: 3.2rem;
    object-fit: cover;
    border-radius: 50%;
    border: 1px solid #d8d0c3;
    flex-shrink: 0;
}

.escapee-list li > div[b-x284u4c2ad] {
    flex: 1;
}

.escapee-list li > button[b-x284u4c2ad] {
    flex-shrink: 0;
}
/* /Components/Pages/Faq.razor.rz.scp.css */
.faq-page[b-5rge6befph] {
    position: relative;
    max-width: 46rem;
    margin: 0 auto;
    padding: 1.25rem 1rem 3rem;
    color: var(--paper);
}

.faq-close[b-5rge6befph] {
    position: absolute;
    top: 1.25rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    line-height: 1;
    font-size: 1.75rem;
    color: var(--amber);
    text-decoration: none;
    border-radius: 50%;
}

.faq-close:hover[b-5rge6befph],
.faq-close:focus-visible[b-5rge6befph] {
    background: rgba(211, 163, 72, 0.15);
}

.eyebrow[b-5rge6befph] {
    margin: 0 0 0.35rem;
    color: var(--amber);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding-right: 3rem;
}

.faq-header h1[b-5rge6befph] {
    margin: 0 0 1.25rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 1.5rem + 3vw, 3rem);
    color: var(--amber);
}

.faq-body[b-5rge6befph] {
    display: block;
    line-height: 1.6;
}

.faq-body[b-5rge6befph]  h1,
.faq-body[b-5rge6befph]  h2,
.faq-body[b-5rge6befph]  h3,
.faq-body[b-5rge6befph]  h4 {
    color: var(--amber);
    margin-top: 1.6rem;
}

/* Bootstrap's default h3/h4 fluid sizes (calc(1.3rem + 0.6vw) / calc(1.275rem + 0.3vw), capped at
   1.75rem/1.5rem) read as nearly the same size, especially on mobile where the vw term is small --
   h4 explicitly set to 80% of its own Bootstrap baseline (same formula, each term x0.8) so it stays
   clearly smaller than h3 at every viewport width. */
.faq-body[b-5rge6befph]  h4 {
    font-size: calc(1.02rem + 0.24vw);
}

@media (min-width: 1200px) {
    .faq-body[b-5rge6befph]  h4 {
        font-size: 1.2rem;
    }
}

.faq-body[b-5rge6befph]  hr {
    border-color: rgba(211, 163, 72, 0.28);
}

/* A touch larger than the 1rem body default, but kept comfortably under h4's smallest possible
   size (1.02rem, at the narrowest viewports) so answer text never outsizes its own question. */
.faq-body[b-5rge6befph]  p {
    font-size: 1.05rem;
}

.faq-body[b-5rge6befph]  strong {
    color: var(--amber);
}

.faq-body[b-5rge6befph]  code {
    color: var(--amber);
}

.muted[b-5rge6befph] {
    color: rgba(244, 234, 210, 0.66);
}

.faq-back[b-5rge6befph] {
    display: inline-block;
    margin-top: 2rem;
    color: var(--amber);
}
/* /Components/Pages/GuestAdmin.razor.rz.scp.css */
.guest-manifest[b-chi4o2ebxf] {
    display: grid;
    gap: 1.25rem;
    color: #241f1b;
}

/* app.css's global .btn-outline-dark rule targets the dark console theme (cream text) — override
   it here since this page uses a light cream panel background instead. */
.btn-outline-dark[b-chi4o2ebxf] {
    --bs-btn-color: #241f1b;
    --bs-btn-border-color: #8b7f6f;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #241f1b;
    --bs-btn-hover-border-color: #241f1b;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #241f1b;
    --bs-btn-active-border-color: #241f1b;
    --bs-btn-disabled-color: #8b7f6f;
    --bs-btn-disabled-border-color: #8b7f6f;
}

.admin-header[b-chi4o2ebxf],
.admin-panel[b-chi4o2ebxf] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
}

.admin-header[b-chi4o2ebxf] {
    padding: 1.5rem;
}

.header-top[b-chi4o2ebxf] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.eyebrow[b-chi4o2ebxf] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-header h1[b-chi4o2ebxf],
.admin-panel h2[b-chi4o2ebxf] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
}

.admin-header h1[b-chi4o2ebxf] {
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.lede[b-chi4o2ebxf],
.admin-panel p[b-chi4o2ebxf],
.muted[b-chi4o2ebxf],
.subtle[b-chi4o2ebxf] {
    color: #655c52;
}

.phone-cell[b-chi4o2ebxf] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.confirm-phone-button[b-chi4o2ebxf] {
    padding: 0.1rem 0.45rem;
    font-size: 0.72rem;
    line-height: 1.4;
}

.lede[b-chi4o2ebxf] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
}

.admin-panel[b-chi4o2ebxf] {
    padding: 1.2rem;
}

.summary-table[b-chi4o2ebxf] {
    max-width: 26rem;
    margin-top: 1rem;
}

.summary-table td:last-child[b-chi4o2ebxf] {
    text-align: right;
    font-weight: 700;
}

.estimate-line[b-chi4o2ebxf] {
    margin: 0.9rem 0 0.2rem;
    font-size: 1.05rem;
}

.estimate-line strong[b-chi4o2ebxf] {
    color: #8b3f2d;
}

.small[b-chi4o2ebxf] {
    font-size: 0.78rem;
}

.master-detail[b-chi4o2ebxf] {
    display: grid;
    grid-template-columns: minmax(26rem, 1.6fr) minmax(20rem, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.table-toolbar[b-chi4o2ebxf] {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.filters[b-chi4o2ebxf] {
    flex: 1 1 16rem;
    min-width: 0;
}

.filters input[b-chi4o2ebxf] {
    width: 100%;
    min-width: 0;
}

.admin-table[b-chi4o2ebxf] {
    width: 100%;
    font-size: 0.9rem;
    opacity: 0.8;
}

.admin-table tbody tr[b-chi4o2ebxf] {
    cursor: pointer;
}

.admin-table tbody tr:hover[b-chi4o2ebxf] {
    background: #f8f0e3;
}

.admin-table tbody tr.selected[b-chi4o2ebxf] {
    opacity: 0.6;
}

.detail-panel[b-chi4o2ebxf] {
    min-height: 24rem;
}

.detail-panel h2[b-chi4o2ebxf] {
    margin-bottom: 0.75rem;
}

.detail-mugshot[b-chi4o2ebxf] {
    display: block;
    width: 100%;
    max-width: 16rem;
    margin: 0 0 1rem;
    border: 1px solid #d8d0c3;
    object-fit: cover;
}

.guest-detail-list[b-chi4o2ebxf] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.3rem 1rem;
    margin: 0;
}

.guest-detail-list dt[b-chi4o2ebxf] {
    color: #8b7f6f;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.guest-detail-list dd[b-chi4o2ebxf] {
    margin: 0;
    overflow-wrap: anywhere;
}

.entourage-panel[b-chi4o2ebxf] {
    margin-top: 1.1rem;
    padding-top: 0.9rem;
    border-top: 1px solid #b9ac98;
}

.entourage-panel h3[b-chi4o2ebxf] {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
}

.entourage-form[b-chi4o2ebxf] {
    display: flex;
    align-items: end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.form-field.short[b-chi4o2ebxf] {
    width: 7rem;
}

.form-field label[b-chi4o2ebxf] {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.mobile-table[b-chi4o2ebxf] {
    display: none;
}

.status-icon[b-chi4o2ebxf] {
    display: inline-flex;
    color: #8b7f6f;
}

.quotient-bar[b-chi4o2ebxf] {
    display: inline-flex;
    gap: 2px;
}

.quotient-segment[b-chi4o2ebxf] {
    width: 0.85rem;
    height: 0.6rem;
    background: #e5ddd0;
    border-radius: 1px;
}

.quotient-segment.filled[b-chi4o2ebxf] {
    background: #8b3f2d;
}

@media (max-width: 1200px) {
    .master-detail[b-chi4o2ebxf] {
        grid-template-columns: 1fr;
    }

    .table-panel[b-chi4o2ebxf] {
        order: 2;
    }

    .detail-panel[b-chi4o2ebxf] {
        order: 1;
    }

    .desktop-table[b-chi4o2ebxf] {
        display: none;
    }

    .mobile-table[b-chi4o2ebxf] {
        display: block;
    }
}
/* /Components/Pages/GuestInvites.razor.rz.scp.css */
.guest-admin[b-9utgihxyl4] {
    display: grid;
    gap: 1.25rem;
    color: #241f1b;
}

.admin-header[b-9utgihxyl4],
.admin-panel[b-9utgihxyl4] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
}

.admin-header[b-9utgihxyl4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem;
}

.eyebrow[b-9utgihxyl4] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-header h1[b-9utgihxyl4],
.admin-panel h2[b-9utgihxyl4] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
}

.admin-header h1[b-9utgihxyl4] {
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.lede[b-9utgihxyl4],
.admin-panel p[b-9utgihxyl4],
.muted[b-9utgihxyl4],
.subtle[b-9utgihxyl4] {
    color: #655c52;
}

.lede[b-9utgihxyl4] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
}

.admin-panel[b-9utgihxyl4] {
    padding: 1.2rem;
}

.table-toolbar[b-9utgihxyl4],
.panel-heading[b-9utgihxyl4] {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

.create-panel[b-9utgihxyl4] {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.create-panel .panel-heading[b-9utgihxyl4] {
    align-items: center;
}

/* EditForm renders its own <form> as a child component, so its root element never gets this
   component's CSS-isolation scope attribute; ::deep is required to style it from here. */
.create-panel[b-9utgihxyl4]  .create-form {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: 1rem;
}

.referral-list[b-9utgihxyl4] {
    display: grid;
    gap: 0.6rem;
    margin-top: 0.8rem;
}

.referral-row[b-9utgihxyl4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    border: 1px solid #ded4c5;
    background: #f8f0e3;
    padding: 0.65rem 0.9rem;
}

.referral-info[b-9utgihxyl4] {
    display: grid;
    gap: 0.15rem;
}

.referral-actions[b-9utgihxyl4] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.referral-status[b-9utgihxyl4] {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #8b7f6f;
}

.form-field[b-9utgihxyl4] {
    display: grid;
    gap: 0.35rem;
}

.form-field label[b-9utgihxyl4] {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.form-field.wide[b-9utgihxyl4] {
    min-width: min(24rem, 100%);
}

.form-field.medium[b-9utgihxyl4] {
    min-width: min(14rem, 100%);
}

.form-field.short[b-9utgihxyl4] {
    width: 7rem;
}

.admin-grid[b-9utgihxyl4] {
    display: grid;
    grid-template-columns: minmax(18rem, 0.75fr) minmax(20rem, 1.25fr);
    gap: 1.25rem;
}

.qr-panel[b-9utgihxyl4],
.hits-panel[b-9utgihxyl4] {
    min-height: 24rem;
}

.token-label[b-9utgihxyl4] {
    margin-top: 1rem;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.code-line[b-9utgihxyl4] {
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: 1.1rem;
    font-weight: 700;
}

.qr-image[b-9utgihxyl4] {
    display: block;
    width: min(100%, 18rem);
    margin-top: 1rem;
    border: 1px solid #d8d0c3;
    background: #fff;
}

.guest-detail-list[b-9utgihxyl4] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.3rem 1rem;
    margin: 1.1rem 0 0;
    padding-top: 0.9rem;
    border-top: 1px solid #e5ddd0;
}

.guest-detail-list dt[b-9utgihxyl4] {
    color: #8b7f6f;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.guest-detail-list dd[b-9utgihxyl4] {
    margin: 0;
    overflow-wrap: anywhere;
}

.hit-list[b-9utgihxyl4] {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.8rem;
    max-height: 38rem;
    overflow-y: auto;
    padding-right: 0.3rem;
}

.hit-row[b-9utgihxyl4] {
    display: grid;
    grid-template-columns: 9rem 4rem 1fr;
    gap: 0.7rem;
    align-items: center;
    width: 100%;
    border: 1px solid #ded4c5;
    background: #f8f0e3;
    color: #241f1b;
    padding: 0.65rem 0.75rem;
    text-align: left;
}

.hit-row:hover[b-9utgihxyl4] {
    border-color: #9b604a;
    background: #fff6e9;
}

.hit-time[b-9utgihxyl4],
.hit-token[b-9utgihxyl4],
.subtle[b-9utgihxyl4] {
    font-size: 0.82rem;
}

.hit-time[b-9utgihxyl4] {
    color: #8b7f6f;
}

.hit-token[b-9utgihxyl4] {
    font-weight: 800;
}

.hit-context[b-9utgihxyl4] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.table-toolbar[b-9utgihxyl4] {
    align-items: center;
    margin-bottom: 1rem;
}

.table-toolbar p[b-9utgihxyl4] {
    margin: 0.2rem 0 0;
}

.filters[b-9utgihxyl4] {
    display: flex;
    gap: 0.6rem;
    min-width: min(35rem, 100%);
}

.admin-table[b-9utgihxyl4] {
    margin-bottom: 0;
    vertical-align: middle;
}

.admin-table th button[b-9utgihxyl4],
.link-button[b-9utgihxyl4] {
    border: 0;
    background: transparent;
    color: #402b22;
    font: inherit;
    font-weight: 800;
    padding: 0;
    text-align: left;
}

.admin-table th button:hover[b-9utgihxyl4],
.link-button:hover[b-9utgihxyl4] {
    color: #8b3f2d;
    text-decoration: underline;
}

.admin-table tr.selected td[b-9utgihxyl4] {
    /* Inset box-shadow layers the tint over the table's existing (dark-theme) row background
       instead of replacing it outright, which a plain background-color would do. */
    box-shadow: inset 0 0 0 999px rgba(247, 234, 213, 0.2);
}

.actions-cell[b-9utgihxyl4] {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .admin-header[b-9utgihxyl4],
    .create-panel[b-9utgihxyl4],
    .table-toolbar[b-9utgihxyl4],
    .filters[b-9utgihxyl4] {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-grid[b-9utgihxyl4] {
        grid-template-columns: 1fr;
    }

    .hit-row[b-9utgihxyl4] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/GuestManifest.razor.rz.scp.css */
.manifest-page[b-f1n4gexd78] {
    display: grid;
    gap: 1.25rem;
    color: #241f1b;
}

/* app.css's global .btn-outline-dark rule targets the dark console theme (cream text) — override
   it here since this page uses a light cream panel background instead. */
.btn-outline-dark[b-f1n4gexd78] {
    --bs-btn-color: #241f1b;
    --bs-btn-border-color: #8b7f6f;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #241f1b;
    --bs-btn-hover-border-color: #241f1b;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #241f1b;
    --bs-btn-active-border-color: #241f1b;
    --bs-btn-disabled-color: #8b7f6f;
    --bs-btn-disabled-border-color: #8b7f6f;
}

.admin-header[b-f1n4gexd78],
.admin-panel[b-f1n4gexd78],
.overlay-panel[b-f1n4gexd78] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.94);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
}

.admin-header[b-f1n4gexd78] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem;
    flex-wrap: wrap;
}

.header-actions[b-f1n4gexd78] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.eyebrow[b-f1n4gexd78] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Nick's ask: titles at ~80% of this admin theme's usual sizing (see GuestAdmin/GuestInvites). */
.admin-header h1[b-f1n4gexd78],
.admin-panel h2[b-f1n4gexd78],
.overlay-panel h2[b-f1n4gexd78] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
}

.admin-header h1[b-f1n4gexd78] {
    font-size: clamp(1.6rem, 3.2vw, 2.72rem);
}

.admin-panel h2[b-f1n4gexd78],
.overlay-panel h2[b-f1n4gexd78] {
    font-size: 1.2rem;
}

.entourage-panel h3[b-f1n4gexd78] {
    margin: 0 0 0.5rem;
    font-size: 0.76rem;
}

.lede[b-f1n4gexd78],
.admin-panel p[b-f1n4gexd78],
.overlay-panel p[b-f1n4gexd78],
.muted[b-f1n4gexd78],
.subtle[b-f1n4gexd78] {
    color: #655c52;
}

.lede[b-f1n4gexd78] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
}

.admin-panel[b-f1n4gexd78] {
    padding: 1.2rem;
}

.table-toolbar[b-f1n4gexd78] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.table-toolbar p[b-f1n4gexd78] {
    margin: 0.2rem 0 0;
}

.filters[b-f1n4gexd78] {
    display: flex;
    gap: 0.6rem;
    min-width: min(35rem, 100%);
}

.admin-table[b-f1n4gexd78] {
    width: 100%;
    margin-bottom: 0;
    vertical-align: middle;
}

.admin-table th button[b-f1n4gexd78] {
    border: 0;
    background: transparent;
    color: #402b22;
    font: inherit;
    font-weight: 800;
    padding: 0;
    text-align: left;
}

.admin-table th button:hover[b-f1n4gexd78] {
    color: #8b3f2d;
    text-decoration: underline;
}

.admin-table tbody tr[b-f1n4gexd78] {
    cursor: pointer;
}

.admin-table tbody tr:hover[b-f1n4gexd78] {
    background: #f8f0e3;
}

.status-icon[b-f1n4gexd78] {
    display: inline-flex;
    color: #8b7f6f;
}

.quotient-bar[b-f1n4gexd78] {
    display: inline-flex;
    gap: 2px;
}

.quotient-segment[b-f1n4gexd78] {
    width: 0.85rem;
    height: 0.6rem;
    background: #e5ddd0;
    border-radius: 1px;
}

.quotient-segment.filled[b-f1n4gexd78] {
    background: #8b3f2d;
}

.group-icon[b-f1n4gexd78] {
    display: inline-flex;
    margin-left: 0.35rem;
    vertical-align: middle;
}

.group-icon.warning[b-f1n4gexd78] {
    color: #b45309;
}

.group-icon.success[b-f1n4gexd78] {
    color: #2e7d32;
}

.capacity-panel[b-f1n4gexd78] {
    display: grid;
    gap: 0.7rem;
}

.capacity-panel h2[b-f1n4gexd78] {
    margin: 0 0 0.15rem;
    font-size: 1rem;
}

.capacity-row[b-f1n4gexd78] {
    display: grid;
    grid-template-columns: 11rem 1fr;
    align-items: center;
    gap: 1rem;
}

.capacity-label[b-f1n4gexd78] {
    font-size: 0.82rem;
    color: #655c52;
}

.capacity-label strong[b-f1n4gexd78] {
    color: #241f1b;
}

.capacity-track[b-f1n4gexd78] {
    display: flex;
    height: 1.1rem;
    overflow: hidden;
    background: #e5ddd0;
    border-radius: 2px;
}

.capacity-ticks-row[b-f1n4gexd78] {
    display: grid;
    grid-template-columns: 11rem 1fr;
    gap: 1rem;
}

.capacity-ticks[b-f1n4gexd78] {
    position: relative;
    height: 1.1rem;
}

.capacity-tick[b-f1n4gexd78] {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    font-size: 0.62rem;
    line-height: 1;
    color: #a89d8d;
}

.capacity-tick[b-f1n4gexd78]::before {
    content: "";
    width: 1px;
    height: 0.3rem;
    background: #c9c2b5;
}

.capacity-fill[b-f1n4gexd78] {
    height: 100%;
    transition: width 0.2s ease;
}

.capacity-not-scanned[b-f1n4gexd78] {
    background: #8b7f6f;
}

.funnel-fill[b-f1n4gexd78] {
    background: #5c7a8a;
}

.capacity-scanned[b-f1n4gexd78] {
    background: #5c7a8a;
}

/* Heat gradient from coolest/lowest commitment (32°) to hottest/most locked-in (104°), matching
   the app's temperature framing -- ordered highest-first in the markup so 104° sits leftmost. */
.temp-0[b-f1n4gexd78] {
    background: #c9c2b5;
}

.temp-1[b-f1n4gexd78] {
    background: #d3a466;
}

.temp-2[b-f1n4gexd78] {
    background: #c9793f;
}

.temp-3[b-f1n4gexd78] {
    background: #a8452c;
}

.temp-4[b-f1n4gexd78] {
    background: #7a2116;
}

/* Full-screen overlays for detail/create/hits -- desktop-only tool, no need to worry about small
   viewports (Nick only uses this on Windows or his Pixel Fold unfolded). */
.fullscreen-overlay[b-f1n4gexd78] {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: flex;
    justify-content: center;
    padding: 2.5rem 1.5rem;
    overflow-y: auto;
    background: rgba(36, 31, 27, 0.55);
}

.overlay-panel[b-f1n4gexd78] {
    position: relative;
    width: 100%;
    max-width: 60rem;
    height: fit-content;
    padding: 2rem;
    color: #241f1b;
}

.overlay-close[b-f1n4gexd78] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    line-height: 1;
    font-size: 1.75rem;
    color: #8b3f2d;
    background: transparent;
    border: none;
    border-radius: 50%;
}

.overlay-close:hover[b-f1n4gexd78],
.overlay-close:focus-visible[b-f1n4gexd78] {
    background: rgba(139, 63, 45, 0.12);
}

.detail-grid[b-f1n4gexd78] {
    display: grid;
    grid-template-columns: minmax(16rem, 20rem) 1fr;
    gap: 2rem;
    margin-top: 1rem;
}

.code-line[b-f1n4gexd78] {
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: 1.1rem;
    font-weight: 700;
}

.qr-image[b-f1n4gexd78] {
    display: block;
    width: 100%;
    max-width: 18rem;
    margin-top: 1rem;
    border: 1px solid #d8d0c3;
    background: #fff;
}

.overlay-actions[b-f1n4gexd78] {
    display: flex;
    gap: 0.6rem;
    margin-top: 1.25rem;
}

.detail-mugshot[b-f1n4gexd78] {
    display: block;
    width: 100%;
    max-width: 16rem;
    margin: 0 0 1rem;
    border: 1px solid #d8d0c3;
    object-fit: cover;
}

.guest-detail-list[b-f1n4gexd78] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.3rem 1rem;
    margin: 0 0 1.1rem;
}

.guest-detail-list dt[b-f1n4gexd78] {
    color: #8b7f6f;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.guest-detail-list dd[b-f1n4gexd78] {
    margin: 0;
    overflow-wrap: anywhere;
}

.contact-edit-row[b-f1n4gexd78] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.contact-edit-input[b-f1n4gexd78] {
    flex: 1 1 10rem;
    min-width: 0;
    max-width: 16rem;
}

.contact-saved-badge[b-f1n4gexd78] {
    color: #4d6d45;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.insta-prefix[b-f1n4gexd78] {
    color: #8b7f6f;
}

.funnel-progress-list[b-f1n4gexd78] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.9rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.funnel-progress-list li[b-f1n4gexd78] {
    position: relative;
    padding-left: 1.1rem;
    color: #a89d8d;
}

.funnel-progress-list li[b-f1n4gexd78]::before {
    content: "\2715";
    position: absolute;
    left: 0;
    color: #b7452e;
}

.funnel-progress-list li.done[b-f1n4gexd78] {
    color: #241f1b;
}

.funnel-progress-list li.done[b-f1n4gexd78]::before {
    content: "\2713";
    color: #4a7a4e;
}

.entourage-panel[b-f1n4gexd78] {
    margin-top: 1.1rem;
    padding-top: 0.9rem;
    border-top: 1px solid #b9ac98;
}

.entourage-form[b-f1n4gexd78] {
    display: flex;
    align-items: end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.form-field[b-f1n4gexd78] {
    display: grid;
    gap: 0.35rem;
}

.form-field label[b-f1n4gexd78] {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.form-field.wide[b-f1n4gexd78] {
    min-width: min(24rem, 100%);
}

.form-field.short[b-f1n4gexd78] {
    width: 7rem;
}

/* EditForm renders its own <form> as a child component, so its root element never gets this
   component's CSS-isolation scope attribute; ::deep is required to style it from here. */
.overlay-panel[b-f1n4gexd78]  .create-form {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1rem;
}

.panel-heading[b-f1n4gexd78] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.hit-list[b-f1n4gexd78] {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.8rem;
    max-height: 34rem;
    overflow-y: auto;
    padding-right: 0.3rem;
}

.hit-row[b-f1n4gexd78] {
    display: grid;
    grid-template-columns: 9rem 4rem 1fr;
    gap: 0.7rem;
    align-items: center;
    width: 100%;
    border: 1px solid #ded4c5;
    background: #f8f0e3;
    color: #241f1b;
    padding: 0.65rem 0.75rem;
    text-align: left;
}

.hit-row:hover[b-f1n4gexd78] {
    border-color: #9b604a;
    background: #fff6e9;
}

.hit-time[b-f1n4gexd78],
.hit-token[b-f1n4gexd78] {
    font-size: 0.82rem;
}

.hit-time[b-f1n4gexd78] {
    color: #8b7f6f;
}

.hit-token[b-f1n4gexd78] {
    font-weight: 800;
}

.hit-context[b-f1n4gexd78] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Pages/Init.razor.rz.scp.css */
.init-page[b-94rbt92ap8] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 32rem;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    /* Nick's ask: cream reads more transparent here than the solid --paper used elsewhere. */
    color: rgba(245, 237, 224, 0.82);
}

.init-identity-actions[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-left: auto;
}

.init-faq-link[b-94rbt92ap8] {
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
    font-size: 1.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
}

.init-faq-link:hover[b-94rbt92ap8],
.init-faq-link:focus-visible[b-94rbt92ap8] {
    text-decoration: underline;
}

.init-faq-link.alerting[b-94rbt92ap8] {
    animation: faq-link-alert-b-94rbt92ap8 0.72s ease-in-out infinite;
}

@keyframes faq-link-alert-b-94rbt92ap8 {
    0%, 100% {
        color: #ff5a4d;
        text-shadow: 0 0 0.4rem rgba(255, 90, 77, 0.65);
    }

    50% {
        color: var(--amber);
        text-shadow: 0 0 0.9rem rgba(211, 163, 72, 0.9);
    }
}

@media (prefers-reduced-motion: reduce) {
    .init-faq-link.alerting[b-94rbt92ap8] {
        animation: none;
        color: #ff5a4d;
        text-shadow: 0 0 0.6rem rgba(255, 90, 77, 0.7);
    }
}

.init-identity[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.init-message-button[b-94rbt92ap8] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid rgba(211, 163, 72, 0.45);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.08);
    color: #d3a348;
    cursor: pointer;
}

.init-contact-button[b-94rbt92ap8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid rgba(211, 163, 72, 0.45);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.08);
    color: #d3a348;
    cursor: pointer;
}

.init-contact-button:hover[b-94rbt92ap8],
.init-contact-button:focus-visible[b-94rbt92ap8] {
    border-color: #d3a348;
    background: rgba(211, 163, 72, 0.18);
}

.init-message-button.unread[b-94rbt92ap8] {
    box-shadow: 0 0 0.8rem rgba(211, 163, 72, 0.35);
}

.init-message-button.alerting[b-94rbt92ap8] {
    animation: init-message-alert-b-94rbt92ap8 0.72s ease-in-out infinite;
}

@keyframes init-message-alert-b-94rbt92ap8 {
    0%, 100% {
        border-color: #ff5a4d;
        background: rgba(255, 90, 77, 0.1);
        box-shadow: 0 0 0.4rem rgba(255, 90, 77, 0.65);
        transform: scale(1);
    }

    50% {
        border-color: var(--amber);
        background: rgba(211, 163, 72, 0.32);
        box-shadow: 0 0 1.25rem rgba(255, 90, 77, 1), 0 0 2rem rgba(211, 163, 72, 0.8);
        transform: scale(1.18);
    }
}

@media (prefers-reduced-motion: reduce) {
    .init-message-button.alerting[b-94rbt92ap8] {
        animation: none;
        border-color: #ff5a4d;
        box-shadow: 0 0 0.8rem rgba(255, 90, 77, 0.7);
    }
}

.init-message-badge[b-94rbt92ap8] {
    position: absolute;
    top: -0.45rem;
    right: -0.45rem;
    display: grid;
    place-items: center;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.22rem;
    border-radius: 999px;
    background: #ff5a4d;
    color: #130e0b;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.72rem;
    font-weight: 900;
    box-shadow: 0 0 0 2px #16120f;
}

.mugshot.placeholder[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: rgba(245, 237, 224, 0.08);
    color: rgba(245, 237, 224, 0.7);
    font-weight: 700;
}

.init-guest-name[b-94rbt92ap8] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
    color: rgba(245, 237, 224, 0.82);
}

.message-overlay[b-94rbt92ap8] {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(8, 7, 6, 0.84);
}

.message-dialog[b-94rbt92ap8] {
    width: min(34rem, 100%);
    max-height: 82vh;
    overflow-y: auto;
    border: 1px solid rgba(211, 163, 72, 0.45);
    border-radius: 0.4rem;
    background: #16120f;
    color: rgba(245, 237, 224, 0.88);
    box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.65);
}

.message-dialog-header[b-94rbt92ap8] {
    position: sticky;
    top: 0;
    z-index: 1;
    display: grid;
    grid-template-columns: 2rem 1fr 2rem;
    align-items: center;
    min-height: 3.5rem;
    padding: 0.65rem 0.8rem;
    border-bottom: 1px solid rgba(211, 163, 72, 0.25);
    background: #16120f;
}

.message-dialog-header h2[b-94rbt92ap8] {
    grid-column: 2;
    margin: 0;
    text-align: center;
    color: #d3a348;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
}

.message-back[b-94rbt92ap8],
.message-close[b-94rbt92ap8] {
    border: 0;
    background: transparent;
    color: #d3a348;
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
}

.message-back[b-94rbt92ap8] {
    grid-column: 1;
}

.message-close[b-94rbt92ap8] {
    grid-column: 3;
}

.message-list[b-94rbt92ap8] {
    display: grid;
}

.message-row[b-94rbt92ap8] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.2rem 0.75rem;
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(245, 237, 224, 0.1);
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.message-row.unread[b-94rbt92ap8] {
    border-left: 3px solid #ff5a4d;
    background: rgba(211, 163, 72, 0.07);
}

.message-row-title[b-94rbt92ap8] {
    font-weight: 700;
}

.message-row-meta[b-94rbt92ap8] {
    color: rgba(245, 237, 224, 0.52);
    font-size: 0.82rem;
}

.message-row-arrow[b-94rbt92ap8] {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    color: #d3a348;
    font-size: 1.5rem;
}

.message-body[b-94rbt92ap8] {
    padding: 1rem 1.2rem 1.4rem;
    line-height: 1.55;
}

.message-body[b-94rbt92ap8]  h1,
.message-body[b-94rbt92ap8]  h2,
.message-body[b-94rbt92ap8]  h3,
.message-body[b-94rbt92ap8]  strong {
    color: #d3a348;
}

.contact-overlay[b-94rbt92ap8] {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(8, 7, 6, 0.84);
}

.contact-dialog[b-94rbt92ap8] {
    position: relative;
    width: min(22rem, 100%);
    padding: 1.5rem;
    border: 1px solid rgba(211, 163, 72, 0.45);
    border-radius: 0.4rem;
    background: #16120f;
    color: rgba(245, 237, 224, 0.88);
    text-align: center;
    box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.65);
}

.contact-dialog h2[b-94rbt92ap8] {
    margin: 0 0 1rem;
    color: #d3a348;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.contact-close[b-94rbt92ap8] {
    position: absolute;
    top: 0.55rem;
    right: 0.7rem;
    border: 0;
    background: transparent;
    color: #d3a348;
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
}

.contact-instagram-link[b-94rbt92ap8] {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    padding: 0.65rem 0.9rem;
    border: 1px solid #d3a348;
    color: #d3a348;
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    text-decoration: none;
}

.contact-instagram-link:hover[b-94rbt92ap8],
.contact-instagram-link:focus-visible[b-94rbt92ap8] {
    background: #d3a348;
    color: #11100d;
}

.init-header .eyebrow[b-94rbt92ap8] {
    margin: 0 0 0.35rem;
    color: #d3a348;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.init-header h1[b-94rbt92ap8] {
    margin: 0 0 0.5rem;
    font-family: Georgia, "Times New Roman", serif;
    /* +30% over the original clamp(1.8rem, 5vw, 2.6rem) */
    font-size: clamp(2.34rem, 6.5vw, 3.38rem);
    color: rgba(245, 237, 224, 0.9);
}

.event-window[b-94rbt92ap8] {
    margin: 0;
    color: #d3a348;
    font-family: Consolas, "Courier New", monospace;
    /* Needs to outrank .init-header p (1.5rem) below, which otherwise wins on specificity. */
    font-size: 2rem !important;
    letter-spacing: 0.02em;
}

.event-window-row[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0 0 0.5rem;
    flex-wrap: wrap;
}

.calendar-cta[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    flex: 0 0 auto;
}

.add-to-calendar-button[b-94rbt92ap8] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.muted[b-94rbt92ap8] {
    color: rgba(245, 237, 224, 0.55);
}

.init-header p[b-94rbt92ap8] {
    font-size: 1.5rem;
}

.portal-location p[b-94rbt92ap8] {
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.35;
}

.portal-address-link[b-94rbt92ap8] {
    color: #5f1d2b;
    font-size: 1.625rem;
}

.portal-location-note[b-94rbt92ap8] {
    font-style: italic;
}

.init-panel[b-94rbt92ap8] {
    background: transparent;
    border: 1px solid rgba(245, 237, 224, 0.12);
    border-radius: 0.5rem;
    padding: 1rem;
}

.init-panel h2[b-94rbt92ap8] {
    margin: 0 0 0.75rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 1.3rem + 3vw, 2.2rem);
    letter-spacing: 0.02em;
    color: rgba(245, 237, 224, 0.85);
}

.registration-form[b-94rbt92ap8] {
    display: grid;
    gap: 1rem;
}

.registration-form .form-field[b-94rbt92ap8] {
    display: grid;
    gap: 0.35rem;
}

.registration-form label[b-94rbt92ap8] {
    color: #d3a348;
    font-family: Consolas, "Courier New", monospace;
    font-size: 1rem;
}

.registration-form .form-control[b-94rbt92ap8] {
    min-width: 0;
    min-height: 3rem;
    font-size: 1rem;
}

.field-subtext[b-94rbt92ap8],
.registration-disclosure[b-94rbt92ap8] {
    color: rgba(245, 237, 224, 0.58);
    font-size: 0.82rem;
    line-height: 1.45;
}

.contact-step-intro[b-94rbt92ap8] {
    margin: 0;
}

.registration-consent[b-94rbt92ap8] {
    display: grid;
    grid-template-columns: 1.25rem 1fr;
    align-items: start;
    gap: 0.65rem;
    color: rgba(245, 237, 224, 0.86) !important;
    font-family: inherit !important;
    line-height: 1.45;
}

.registration-consent input[b-94rbt92ap8] {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0.15rem;
}

.registration-disclosure[b-94rbt92ap8] {
    margin: -0.35rem 0 0;
}

.registration-disclosure a[b-94rbt92ap8] {
    color: #d3a348;
}

.registration-submit[b-94rbt92ap8] {
    min-height: 3rem;
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.registration-submit:not(:disabled)[b-94rbt92ap8] {
    background: var(--amber);
    border-color: var(--amber);
    color: var(--ink);
}

.registration-error[b-94rbt92ap8] {
    color: #ff9b91;
}

.identity-mugshot[b-94rbt92ap8] {
    display: block;
    width: min(100%, 22rem);
    max-height: 28rem;
    margin: 0 auto;
    border: 1px solid rgba(211, 163, 72, 0.45);
    object-fit: cover;
}

.identity-ingestion[b-94rbt92ap8] {
    display: grid;
    gap: 0.75rem;
    font-family: Consolas, "Courier New", monospace;
}

.identity-ingestion p[b-94rbt92ap8] {
    margin: 0;
    font-size: 1.5rem;
}

/* `p.identity-status` (type+class) ties `.identity-ingestion p`'s specificity and wins on source
   order, so this eyebrow label keeps its own size instead of the surrounding body-text size. */
p.identity-status[b-94rbt92ap8] {
    color: #d3a348;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.mugshot-protocol[b-94rbt92ap8] {
    display: grid;
    gap: 0.35rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid rgba(211, 163, 72, 0.38);
    background: rgba(32, 29, 24, 0.6);
}

.mugshot-protocol strong[b-94rbt92ap8] {
    color: #d3a348;
    font-size: 1.4rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.mugshot-protocol p[b-94rbt92ap8] {
    font-size: 1.5rem;
}

.mugshot-upload-row[b-94rbt92ap8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.mugshot-upload-row input[type="file"][b-94rbt92ap8] {
    max-width: 100%;
}

.mugshot-hint[b-94rbt92ap8],
.mugshot-status[b-94rbt92ap8] {
    color: rgba(245, 237, 224, 0.55);
    font-size: 0.82rem;
}

.mugshot-error[b-94rbt92ap8] {
    color: #d98478;
    font-size: 0.82rem;
}

.preferences-form[b-94rbt92ap8],
.referral-form[b-94rbt92ap8],
.companion-toggle[b-94rbt92ap8],
.commitment-options[b-94rbt92ap8] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.preferences-form[b-94rbt92ap8] {
    margin-top: 1.5rem;
}

.form-field[b-94rbt92ap8] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.form-field.short[b-94rbt92ap8] {
    max-width: 7rem;
}

.friend-count-field[b-94rbt92ap8] {
    max-width: 16rem;
}

.form-field label[b-94rbt92ap8] {
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(245, 237, 224, 0.55);
}

.preferences-form .form-control[b-94rbt92ap8],
.referral-form .form-control[b-94rbt92ap8] {
    background: rgba(245, 237, 224, 0.06);
    border: 1px solid rgba(245, 237, 224, 0.2);
    color: rgba(245, 237, 224, 0.9);
    font-size: 1.8rem;
    padding: 0.7rem 1rem;
}

.preferences-form .form-control:focus[b-94rbt92ap8],
.referral-form .form-control:focus[b-94rbt92ap8] {
    background: rgba(245, 237, 224, 0.1);
    border-color: rgba(245, 237, 224, 0.4);
    color: rgba(245, 237, 224, 0.95);
    box-shadow: none;
}

.field-input-group[b-94rbt92ap8] {
    position: relative;
    display: flex;
    align-items: center;
}

.field-input-with-icon[b-94rbt92ap8] {
    padding-right: 3.6rem;
}

.field-status-icon[b-94rbt92ap8] {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: none;
    background: transparent;
}

.field-status-icon.dirty[b-94rbt92ap8] {
    color: #d3a348;
    cursor: pointer;
}

.field-status-icon.saved[b-94rbt92ap8] {
    color: #7fbf8f;
}

.field-status-icon.saved.unverified[b-94rbt92ap8] {
    color: rgba(245, 237, 224, 0.35);
}

.insta-input-group[b-94rbt92ap8] {
    margin-bottom: 1rem;
    background: rgba(245, 237, 224, 0.06);
    border: 1px solid rgba(245, 237, 224, 0.2);
    border-radius: 0.375rem;
}

.insta-prefix[b-94rbt92ap8] {
    padding-left: 1rem;
    font-size: 1.8rem;
    color: rgba(245, 237, 224, 0.55);
}

.insta-input-group .form-control[b-94rbt92ap8] {
    border: 0;
    background: transparent;
    padding-left: 0.3rem;
}

.checkbox-line[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: rgba(245, 237, 224, 0.82);
    font-size: 1.7rem;
}

.checkbox-line input[type="checkbox"][b-94rbt92ap8] {
    width: 1.3rem;
    height: 1.3rem;
    flex: 0 0 auto;
    accent-color: #d3a348;
}

.form-message[b-94rbt92ap8] {
    margin: 0;
    font-size: 1.4rem;
    color: rgba(245, 237, 224, 0.6);
}

.farewell-message[b-94rbt92ap8] {
    margin: 0;
    color: #d3a348;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.4rem;
}

.commitment-save[b-94rbt92ap8] {
    margin-top: 1.25rem;
    font-size: 1.5rem;
    padding: 0.6rem 1.5rem;
}

.referral-section hr[b-94rbt92ap8] {
    margin: 1rem 0;
    border: none;
    border-top: 1px solid rgba(245, 237, 224, 0.12);
}

.attendance-slider[b-94rbt92ap8] {
    display: grid;
    gap: 0.6rem;
    margin: 0.25rem 0 1rem;
}

.attendance-slider-title[b-94rbt92ap8] {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(245, 237, 224, 0.55);
}

.attendance-slider-title-row[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.attendance-save-indicator[b-94rbt92ap8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
}

.attendance-save-indicator.saving[b-94rbt92ap8] {
    color: #d3a348;
}

.attendance-save-indicator.saved[b-94rbt92ap8] {
    color: #7fbf8f;
    animation: attendance-save-fade-b-94rbt92ap8 1.4s ease forwards;
}

@keyframes attendance-save-fade-b-94rbt92ap8 {
    0%, 55% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.attendance-picker[b-94rbt92ap8] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch;
    gap: 1rem;
}

.attendance-dropdown[b-94rbt92ap8] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.attendance-dropdown-trigger[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border: 1px solid rgba(211, 163, 72, 0.45);
    border-radius: 0.35rem;
    background: rgba(211, 163, 72, 0.08);
    padding: 0.6rem 0.85rem;
    text-align: left;
    cursor: pointer;
}

.attendance-dropdown-trigger:disabled[b-94rbt92ap8] {
    cursor: default;
}

.attendance-dropdown-trigger .attendance-option-label[b-94rbt92ap8] {
    color: #d3a348;
}

.attendance-dropdown-chevron[b-94rbt92ap8] {
    flex: 0 0 auto;
    color: #d3a348;
    font-size: 1.1rem;
    transition: transform 0.2s ease;
}

.attendance-dropdown-chevron.open[b-94rbt92ap8] {
    transform: rotate(180deg);
}

.attendance-options[b-94rbt92ap8] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    animation: attendance-dropdown-open-b-94rbt92ap8 0.18s ease-out;
}

@keyframes attendance-dropdown-open-b-94rbt92ap8 {
    from {
        opacity: 0;
        transform: translateY(-0.35rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.attendance-option[b-94rbt92ap8] {
    display: grid;
    gap: 0.2rem;
    border: 1px solid rgba(245, 237, 224, 0.12);
    border-radius: 0.35rem;
    background: transparent;
    padding: 0.55rem 0.75rem;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.attendance-option:disabled[b-94rbt92ap8] {
    cursor: default;
}

.attendance-option.selected[b-94rbt92ap8] {
    border-color: #d3a348;
    background: rgba(211, 163, 72, 0.1);
}

.attendance-option.selected .attendance-option-label[b-94rbt92ap8] {
    color: #d3a348;
}

.attendance-option-label[b-94rbt92ap8] {
    color: rgba(245, 237, 224, 0.75);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
}

.attendance-selected-detail[b-94rbt92ap8] {
    display: flex;
    flex-direction: column;
    flex: 1;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.1rem 0.85rem 0;
}

.attendance-selected-secondary[b-94rbt92ap8] {
    margin: 0;
    color: #d3a348;
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.2;
}

.attendance-selected-tertiary[b-94rbt92ap8] {
    margin: 0;
    color: rgba(245, 237, 224, 0.7);
    font-size: 1.15rem;
    line-height: 1.35;
}

/* Reserves space for the largest possible toggled state (companion invite + entourage form) so
   dragging the slider through its tiers doesn't jerk the page height around. */
.attendance-detail[b-94rbt92ap8] {
    min-height: 14rem;
}

.invite-list[b-94rbt92ap8] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.invite-row[b-94rbt92ap8] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    border: 1px solid rgba(245, 237, 224, 0.12);
    border-radius: 0.35rem;
    padding: 0.5rem 0.7rem;
}

.invite-url[b-94rbt92ap8] {
    flex: 1 1 12rem;
    overflow-wrap: anywhere;
    font-family: "Cascadia Mono", Consolas, monospace;
    font-size: 0.82rem;
}

.invite-status[b-94rbt92ap8] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(245, 237, 224, 0.5);
}

.invite-qr[b-94rbt92ap8] {
    display: block;
    width: 10rem;
    height: 10rem;
    margin: 0.4rem 0 0.2rem;
    padding: 0.5rem;
    background: #fff;
    border-radius: 0.35rem;
}
/* /Components/Pages/LiveBroadcast.razor.rz.scp.css */
.broadcast-view[b-qanhfwpa3s] {
    position: relative;
    z-index: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100vh;
    padding: 1.5rem;
    color: #f5ede0;
}

/* No blur — full-width/full-height album art, exactly as Spotify sends it. */
.broadcast-bg[b-qanhfwpa3s] {
    position: fixed;
    inset: 0;
    background-color: #14100d;
    background-size: cover;
    background-position: center;
    transition: background-image 0.6s ease;
    z-index: -2;
}

/* Legibility only, not a blur effect — darkest at top/bottom where the text sits. */
.broadcast-scrim[b-qanhfwpa3s] {
    position: fixed;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.65) 0%,
        rgba(0, 0, 0, 0.15) 30%,
        rgba(0, 0, 0, 0.15) 65%,
        rgba(0, 0, 0, 0.75) 100%
    );
    z-index: -1;
}

.broadcast-top[b-qanhfwpa3s] {
    display: grid;
    gap: 0.5rem;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.broadcast-guest[b-qanhfwpa3s] {
    margin: 0;
    font-style: italic;
    color: #d8cdb9;
}

.broadcast-stat-line[b-qanhfwpa3s] {
    margin: 0;
    font-size: 0.95rem;
}

.clue-progress[b-qanhfwpa3s] {
    display: grid;
    gap: 0.25rem;
    max-width: 20rem;
}

.clue-progress-label[b-qanhfwpa3s] {
    font-size: 0.8rem;
    color: #d8cdb9;
}

.clue-progress-track[b-qanhfwpa3s] {
    height: 0.5rem;
    border-radius: 999px;
    background: rgba(245, 237, 224, 0.2);
    overflow: hidden;
}

.clue-progress-fill[b-qanhfwpa3s] {
    height: 100%;
    background: #f0ad4e;
    transition: width 0.4s ease;
}

.broadcast-bottom[b-qanhfwpa3s] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.broadcast-track-name[b-qanhfwpa3s] {
    font-size: 1.4rem;
    font-weight: 700;
}

.broadcast-artist-name[b-qanhfwpa3s] {
    color: #d8cdb9;
}

.broadcast-muted[b-qanhfwpa3s] {
    color: #d8cdb9;
}

.broadcast-vote-buttons[b-qanhfwpa3s] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.broadcast-like[b-qanhfwpa3s] {
    flex-shrink: 0;
    border: none;
    background: none;
    color: #ff5a6e;
    font-size: 2.5rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.broadcast-like.liked[b-qanhfwpa3s] {
    color: #ff1f3d;
}

.broadcast-like:disabled[b-qanhfwpa3s] {
    cursor: default;
}
/* /Components/Pages/LiveDashboard.razor.rz.scp.css */
.live-dashboard[b-xaqbh3f12g] {
    position: relative;
    z-index: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    height: 100svh;
    overflow: hidden;
    max-width: 32rem;
    margin: 0 auto;
    color: #f5ede0;
    /* Tells the browser this element owns horizontal gestures, so Android/iOS edge-swipe-back
       navigation doesn't hijack a swipe meant for view switching. */
    touch-action: pan-y;
}

/* Persistent across every view (not just The Journey) -- position:relative so KarmaBadge's
   full-width progress strip (position:absolute, pinned to the bottom edge) is positioned against
   this element rather than the page. Background matches the Karma panel's own translucent gold
   tint for visual continuity between the two. No overflow:hidden -- KarmaBadge's preview
   drain-rate-multiplier bar intentionally sits just below the header's bottom edge. */
.app-header[b-xaqbh3f12g] {
    flex: 0 0 auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 3.5rem;
    padding: 0 0.85rem;
    border-radius: 0.5rem;
    background: rgba(211, 163, 72, 0.1);
}

.app-header-left[b-xaqbh3f12g] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    height: 100%;
}

.app-hamburger[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.3rem;
    width: 1.8rem;
    height: 1.8rem;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
}

.app-hamburger span[b-xaqbh3f12g] {
    display: block;
    height: 2px;
    border-radius: 999px;
    background: #f5ede0;
}

.app-header-guest-name[b-xaqbh3f12g] {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.1rem;
}

.app-menu-dropdown[b-xaqbh3f12g] {
    position: absolute;
    z-index: 5;
    top: calc(100% + 0.5rem);
    left: 0;
    display: grid;
    gap: 0.35rem;
    padding: 0.5rem;
    border: 1px solid rgba(245, 237, 224, 0.18);
    border-radius: 0.3rem;
    background: #0a0807;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.5);
}

.app-menu-item[b-xaqbh3f12g] {
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(245, 237, 224, 0.18);
    border-radius: 0.3rem;
    background: rgba(8, 7, 6, 0.28);
    color: inherit;
    text-align: left;
    white-space: nowrap;
}

/* Fixed, blurred, oversized so the blur never reveals an edge; sits behind the scrim and panels. */
.live-bg[b-xaqbh3f12g] {
    position: fixed;
    inset: 0;
    background-color: #14100d;
    background-size: cover;
    background-position: center;
    filter: blur(1.1rem) brightness(0.55);
    transform: scale(1.08);
    transition: background-image 0.6s ease;
    z-index: -2;
}

.live-scrim[b-xaqbh3f12g] {
    position: fixed;
    inset: 0;
    background: rgba(10, 8, 6, 0.35);
    z-index: -1;
}

/* Lightweight directional cue on view switch (tap or swipe) — a small offset + fade, not a full
   finger-tracked drag, to keep this simple alongside each view's own internal scrolling. */
.slide-in-from-right[b-xaqbh3f12g] {
    animation: slide-in-from-right-b-xaqbh3f12g 0.22s ease-out;
}

.slide-in-from-left[b-xaqbh3f12g] {
    animation: slide-in-from-left-b-xaqbh3f12g 0.22s ease-out;
}

@keyframes slide-in-from-right-b-xaqbh3f12g {
    from {
        transform: translateX(1.5rem);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slide-in-from-left-b-xaqbh3f12g {
    from {
        transform: translateX(-1.5rem);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.live-view-icons[b-xaqbh3f12g] {
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
}

.live-view-icons button[b-xaqbh3f12g] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    width: 5.5rem;
    padding: 0.35rem 0 0.25rem;
    border: none;
    background: none;
    cursor: pointer;
}

.nav-icon-badge[b-xaqbh3f12g] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.3rem;
    height: 3.3rem;
}

/* Tap target stays full-size for accessibility; only this backdrop circle shrinks (~60% of the
   button's radius) so a big icon doesn't sit inside an oversized blob. */
.nav-icon-badge[b-xaqbh3f12g]::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: rgba(245, 237, 224, 0.12);
    transition: background 0.2s ease, transform 0.2s ease;
}

.live-view-icons button.active .nav-icon-badge[b-xaqbh3f12g]::before {
    background: rgba(240, 173, 78, 0.35);
    transform: scale(1.08);
}

.nav-icon-img[b-xaqbh3f12g] {
    position: relative;
    z-index: 1;
    width: 3.2rem;
    height: 3.2rem;
    display: block;
    pointer-events: none;
}

.nav-label[b-xaqbh3f12g] {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: center;
    line-height: 1.15;
    color: rgba(245, 237, 224, 0.65);
}

.live-view-icons button.active .nav-label[b-xaqbh3f12g] {
    color: var(--amber);
}

.live-view-icon-badge[b-xaqbh3f12g] {
    position: absolute;
    top: 0.3rem;
    right: 0.4rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: #d9534f;
    border: 1px solid rgba(10, 8, 6, 0.6);
}

.live-column[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.music-view[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.home-view[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.home-art-frame[b-xaqbh3f12g] {
    position: relative;
    border-radius: 0.5rem;
    overflow: hidden;
    flex: 0 0 auto;
}

.home-art[b-xaqbh3f12g] {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
}

.home-track-overlay[b-xaqbh3f12g] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 2.5rem 1rem 1rem;
    background: linear-gradient(to top, rgba(10, 8, 6, 0.85), rgba(10, 8, 6, 0));
}

.home-track-name[b-xaqbh3f12g] {
    font-weight: 700;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.home-artist-name[b-xaqbh3f12g] {
    font-size: 0.85rem;
    color: #d8cdb9;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.live-panel[b-xaqbh3f12g] {
    background: transparent;
    border: 1px solid rgba(245, 237, 224, 0.15);
    border-radius: 0.5rem;
    padding: 1rem;
}

.live-panel h2[b-xaqbh3f12g] {
    margin: 0 0 0.75rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
    letter-spacing: 0.02em;
}

.preference-toggle[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Full-page overlay for the hamburger menu's Preferences/FAQ/About items -- same "close (x),
   dismiss returns to where you were" pattern as Faq.razor, but rendered in-place so switching
   views/state underneath is preserved rather than navigating away to a separate route. */
.live-overlay-page[b-xaqbh3f12g] {
    position: fixed;
    inset: 0;
    z-index: 20;
    overflow-y: auto;
    background: #14100d;
    padding: 1.25rem 1rem 3rem;
}

.live-overlay-close[b-xaqbh3f12g] {
    position: absolute;
    top: 1.25rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    line-height: 1;
    font-size: 1.75rem;
    color: var(--amber);
    background: none;
    border: none;
}

.live-overlay-header[b-xaqbh3f12g] {
    max-width: 32rem;
    margin: 0 auto;
    padding-right: 2.5rem;
}

.live-overlay-header .eyebrow[b-xaqbh3f12g] {
    margin: 0 0 0.35rem;
    color: var(--amber);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.live-overlay-header h1[b-xaqbh3f12g] {
    margin: 0 0 1.25rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 1.3rem + 2vw, 2.4rem);
    color: var(--amber);
}

.live-overlay-body[b-xaqbh3f12g] {
    max-width: 32rem;
    margin: 0 auto;
    color: #f5ede0;
    line-height: 1.6;
}

.live-overlay-body[b-xaqbh3f12g]  h1,
.live-overlay-body[b-xaqbh3f12g]  h2,
.live-overlay-body[b-xaqbh3f12g]  h3,
.live-overlay-body[b-xaqbh3f12g]  h4 {
    color: var(--amber);
    margin-top: 1.6rem;
}

.live-overlay-body[b-xaqbh3f12g]  strong,
.live-overlay-body[b-xaqbh3f12g]  code {
    color: var(--amber);
}

.qd-icon-inline[b-xaqbh3f12g] {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
}

.muted[b-xaqbh3f12g] {
    color: #a89c8a;
}

.status-note[b-xaqbh3f12g] {
    font-style: italic;
    color: #d8cdb9;
}

.escapee-count[b-xaqbh3f12g] {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.9rem;
    color: #f0ad4e;
}

.escapee-grid[b-xaqbh3f12g] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
    gap: 0.75rem;
    margin: 0.75rem 0 0;
    padding: 0;
    list-style: none;
}

.escapee-grid li[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    text-align: center;
}

.mugshot[b-xaqbh3f12g] {
    width: 3.6rem;
    height: 3.6rem;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid #f0ad4e;
}

.mugshot.placeholder[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(245, 237, 224, 0.08);
    color: #a89c8a;
    font-weight: 700;
}

.escapee-name[b-xaqbh3f12g] {
    font-size: 0.75rem;
    color: #d8cdb9;
}

.now-playing-card[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
}

.album-art[b-xaqbh3f12g] {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 0.25rem;
}

.track-name[b-xaqbh3f12g] {
    font-weight: 700;
}

.artist-name[b-xaqbh3f12g] {
    color: #a89c8a;
    font-size: 0.9rem;
}

.now-playing-controls[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.75rem;
}

.now-playing-controls progress[b-xaqbh3f12g] {
    flex: 1 1 auto;
    min-width: 0;
}

.now-playing-like[b-xaqbh3f12g] {
    flex: 0 0 auto;
    border: none;
    background: none;
    color: #ff5a6e;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.now-playing-like.liked[b-xaqbh3f12g] {
    color: #ff1f3d;
}

.now-playing-like:disabled[b-xaqbh3f12g] {
    cursor: default;
}

.now-playing-downvote[b-xaqbh3f12g] {
    flex: 0 0 auto;
    border: none;
    background: none;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    opacity: 0.85;
}

.like-count[b-xaqbh3f12g] {
    color: #a89c8a;
    flex: 0 0 auto;
    white-space: nowrap;
}

.downvote-modal-backdrop[b-xaqbh3f12g] {
    position: fixed;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
}

.downvote-modal[b-xaqbh3f12g] {
    max-width: 22rem;
    padding: 1.5rem;
    border-radius: 0.5rem;
    background: #14100d;
    color: #f5ede0;
    text-align: center;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.6);
}

.downvote-modal p[b-xaqbh3f12g] {
    margin: 0 0 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.comments[b-xaqbh3f12g] {
    margin-top: 0.75rem;
}

.comment-track-toggle[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: #a89c8a;
    margin-bottom: 0.5rem;
}

.comment-track-toggle input[type="checkbox"][b-xaqbh3f12g] {
    margin: 0;
}

.link-button[b-xaqbh3f12g] {
    background: none;
    border: none;
    padding: 0;
    color: #a89c8a;
    text-decoration: underline;
    font-size: 0.8rem;
    cursor: pointer;
}

.comments input[b-xaqbh3f12g] {
    margin-bottom: 0.6rem;
}

.comment-list[b-xaqbh3f12g] {
    display: grid;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 10rem;
    overflow-y: auto;
    font-size: 0.85rem;
}

.likers-list[b-xaqbh3f12g] {
    display: grid;
    gap: 0.3rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
    max-height: 10rem;
    overflow-y: auto;
    text-align: left;
}

.track-history-list[b-xaqbh3f12g] {
    display: grid;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 16rem;
    overflow-y: auto;
    overflow-x: hidden;
}

.track-history-list li[b-xaqbh3f12g] {
    min-width: 0;
}

.track-history-summary[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
    padding: 0.3rem;
    background: rgba(245, 237, 224, 0.05);
    border: none;
    border-radius: 0.3rem;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.track-history-art[b-xaqbh3f12g] {
    width: 2.2rem;
    height: 2.2rem;
    object-fit: cover;
    border-radius: 0.2rem;
    flex: 0 0 auto;
}

.track-history-art.placeholder[b-xaqbh3f12g] {
    background: rgba(245, 237, 224, 0.1);
}

.track-history-info[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.track-history-name[b-xaqbh3f12g] {
    min-width: 0;
    font-size: 0.85rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.track-history-artist[b-xaqbh3f12g] {
    min-width: 0;
    font-size: 0.75rem;
    color: #a89c8a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.track-history-time[b-xaqbh3f12g] {
    font-size: 0.7rem;
    color: #a89c8a;
    flex: 0 0 auto;
}

.track-history-likes[b-xaqbh3f12g] {
    flex: 0 0 auto;
    white-space: nowrap;
}

.track-history-like[b-xaqbh3f12g] {
    flex: 0 0 auto;
    font-size: 1.1rem;
    line-height: 1;
    color: #ff5a6e;
    text-decoration: none;
}

.track-history-like.liked[b-xaqbh3f12g] {
    color: #ff1f3d;
}

.track-history-toolbar[b-xaqbh3f12g] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
}

.track-history-filter.active[b-xaqbh3f12g] {
    background: #ff1f3d;
    border-color: #ff1f3d;
    color: #fff;
}

.track-history-expanded[b-xaqbh3f12g] {
    display: grid;
    gap: 0.4rem;
    padding: 0.5rem 0.3rem 0.3rem;
}

.upload-row[b-xaqbh3f12g] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.photo-grid[b-xaqbh3f12g] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(5rem, 1fr));
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.photo-grid li[b-xaqbh3f12g] {
    position: relative;
}

.photo-grid img[b-xaqbh3f12g] {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 0.25rem;
    display: block;
    cursor: pointer;
}

.share-button[b-xaqbh3f12g] {
    position: absolute;
    bottom: 0.25rem;
    right: 0.25rem;
    width: 1.8rem;
    height: 1.8rem;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    color: #f5ede0;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.photos-view[b-xaqbh3f12g] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.chat-view[b-xaqbh3f12g] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    gap: 0.75rem;
}

.chat-scroll[b-xaqbh3f12g] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 0.5rem;
    border: 1px solid rgba(245, 237, 224, 0.15);
    border-radius: 0.5rem;
    background: rgba(20, 16, 13, 0.3);
}

.chat-entry[b-xaqbh3f12g] {
    display: flex;
    gap: 0.5rem;
}

.mugshot-thumb[b-xaqbh3f12g] {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.mugshot-thumb.placeholder[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(245, 237, 224, 0.1);
    color: #a89c8a;
    font-weight: 700;
    font-size: 0.8rem;
}

.chat-entry-body[b-xaqbh3f12g] {
    min-width: 0;
}

.chat-entry-author[b-xaqbh3f12g] {
    font-weight: 700;
    font-size: 0.85rem;
}

.chat-entry-text[b-xaqbh3f12g] {
    font-size: 0.9rem;
}

.chat-entry-track[b-xaqbh3f12g] {
    font-size: 0.75rem;
    color: #a89c8a;
    font-style: italic;
}

.chat-entry-photo-img[b-xaqbh3f12g] {
    margin-top: 0.3rem;
    max-width: 12rem;
    border-radius: 0.4rem;
    display: block;
}

.reaction-bar[b-xaqbh3f12g] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.4rem;
}

.reaction-button[b-xaqbh3f12g] {
    border: 1px solid rgba(245, 237, 224, 0.2);
    border-radius: 999px;
    background: rgba(245, 237, 224, 0.05);
    color: #f5ede0;
    font-size: 0.85rem;
    padding: 0.1rem 0.45rem;
    cursor: pointer;
    /* Quiet by default so a wall of 6 emoji doesn't dominate every message; a real tally or an
       already-reacted button stays visible, everything else reveals on hover/tap. */
    opacity: 0.4;
    transition: opacity 0.15s ease;
}

.reaction-button.has-count[b-xaqbh3f12g],
.reaction-button.reacted[b-xaqbh3f12g],
.reaction-bar:hover .reaction-button[b-xaqbh3f12g],
.reaction-bar:focus-within .reaction-button[b-xaqbh3f12g],
.reaction-button:active[b-xaqbh3f12g] {
    opacity: 1;
}

.reaction-button.reacted[b-xaqbh3f12g] {
    background: rgba(240, 173, 78, 0.2);
    border-color: rgba(240, 173, 78, 0.5);
}

.reaction-button:disabled[b-xaqbh3f12g] {
    cursor: default;
}

.chat-announcement[b-xaqbh3f12g] {
    align-self: center;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    background: rgba(240, 173, 78, 0.15);
    border: 1px solid rgba(240, 173, 78, 0.4);
    color: #f0ad4e;
    font-size: 0.85rem;
    text-align: center;
}

.chat-composer[b-xaqbh3f12g] {
    display: grid;
    gap: 0.4rem;
}

.photo-carousel-backdrop[b-xaqbh3f12g] {
    position: fixed;
    inset: 0;
    z-index: 15;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.85);
}

.photo-carousel[b-xaqbh3f12g] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    max-width: 100%;
    padding: 0 1rem;
}

.photo-carousel-side[b-xaqbh3f12g] {
    width: 3.5rem;
    height: 3.5rem;
    object-fit: cover;
    border-radius: 0.4rem;
    opacity: 0.4;
    cursor: pointer;
    flex: 0 0 auto;
    transition: opacity 0.2s ease;
}

.photo-carousel-side:hover[b-xaqbh3f12g] {
    opacity: 0.7;
}

.photo-carousel-side.placeholder[b-xaqbh3f12g] {
    visibility: hidden;
}

.photo-carousel-main-wrap[b-xaqbh3f12g] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    justify-content: center;
}

.photo-carousel-main[b-xaqbh3f12g] {
    max-width: 100%;
    max-height: 75vh;
    object-fit: contain;
    border-radius: 0.5rem;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.6);
}

.photo-carousel-main-wrap .share-button[b-xaqbh3f12g] {
    top: 0.5rem;
    bottom: auto;
}

.photo-carousel-close[b-xaqbh3f12g] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.2rem;
    height: 2.2rem;
    border: none;
    border-radius: 50%;
    background: rgba(245, 237, 224, 0.15);
    color: #f5ede0;
    font-size: 1.1rem;
    cursor: pointer;
}
/* /Components/Pages/Monitor.razor.rz.scp.css */
.monitor-view[b-1zjwnbxls2] {
    position: relative;
    z-index: 0;
    min-height: 100vh;
    color: #f5ede0;
    overflow: hidden;
}

/* Blurred backdrop only — the real (unblurred) album art sits on top, left-aligned. */
.monitor-bg[b-1zjwnbxls2] {
    position: fixed;
    inset: 0;
    background-color: #14100d;
    background-size: cover;
    background-position: center;
    filter: blur(2.5rem) brightness(0.5);
    transform: scale(1.15);
    transition: background-image 0.6s ease;
    z-index: -2;
}

.monitor-scrim[b-1zjwnbxls2] {
    position: fixed;
    inset: 0;
    background: rgba(10, 8, 6, 0.35);
    z-index: -1;
}

.monitor-content[b-1zjwnbxls2] {
    display: flex;
    align-items: stretch;
    height: 100vh;
    padding: 2rem;
    gap: 2rem;
}

.monitor-art-col[b-1zjwnbxls2] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    height: 100%;
}

.monitor-art-frame[b-1zjwnbxls2] {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
}

.monitor-art[b-1zjwnbxls2] {
    height: 100%;
    width: auto;
    max-width: 60vw;
    object-fit: contain;
    border-radius: 0.5rem;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.6);
}

.monitor-art-overlay[b-1zjwnbxls2] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 2.5rem 1.5rem 1.5rem;
    background: linear-gradient(to top, rgba(10, 8, 6, 0.85), rgba(10, 8, 6, 0));
    border-radius: 0 0 0.5rem 0.5rem;
}

.monitor-info-col[b-1zjwnbxls2] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 1.5rem;
}

.monitor-status[b-1zjwnbxls2] {
    flex: 0 0 auto;
    display: grid;
    gap: 0.6rem;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.monitor-art-overlay .monitor-track-name[b-1zjwnbxls2],
.monitor-art-overlay .monitor-artist-name[b-1zjwnbxls2] {
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.monitor-art-col > .monitor-track-name.muted[b-1zjwnbxls2] {
    margin: auto;
}

.monitor-track-name[b-1zjwnbxls2] {
    font-size: 2rem;
    font-weight: 700;
}

.monitor-track-name.muted[b-1zjwnbxls2] {
    font-size: 1.4rem;
    font-weight: 400;
    color: #d8cdb9;
}

.monitor-artist-name[b-1zjwnbxls2] {
    font-size: 1.3rem;
    color: #d8cdb9;
}

.monitor-stat-line[b-1zjwnbxls2] {
    margin: 0.5rem 0 0;
    font-size: 1.1rem;
}

.monitor-funnel[b-1zjwnbxls2] {
    display: grid;
    gap: 0.4rem;
}

.monitor-funnel-label[b-1zjwnbxls2] {
    margin: 0;
    font-size: 1.1rem;
}

.monitor-funnel-track[b-1zjwnbxls2] {
    position: relative;
    height: 0.9rem;
    border-radius: 999px;
    background: rgba(245, 237, 224, 0.2);
    overflow: hidden;
}

.monitor-funnel-fill[b-1zjwnbxls2] {
    position: absolute;
    inset: 0;
    width: 0;
    border-radius: 999px;
    transition: width 0.4s ease;
}

.monitor-funnel-fill.arrived[b-1zjwnbxls2] {
    background: #f0ad4e;
}

.monitor-funnel-fill.escaped[b-1zjwnbxls2] {
    background: #6fbf73;
}

.monitor-clue-chart[b-1zjwnbxls2] {
    display: grid;
    gap: 0.5rem;
}

.monitor-clue-chart-title[b-1zjwnbxls2] {
    font-size: 0.95rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #d8cdb9;
}

.monitor-clue-chart-bars[b-1zjwnbxls2] {
    display: flex;
    align-items: flex-end;
    gap: 0.9rem;
    height: 7rem;
}

.monitor-clue-bar-group[b-1zjwnbxls2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    flex: 1 1 0;
}

.monitor-clue-bar-values[b-1zjwnbxls2] {
    display: flex;
    gap: 0.3rem;
    font-size: 0.7rem;
    color: #d8cdb9;
    margin-bottom: 0.2rem;
    white-space: nowrap;
}

.monitor-clue-bar-values .solved-value[b-1zjwnbxls2] {
    color: #6fbf73;
}

.monitor-clue-bars[b-1zjwnbxls2] {
    display: flex;
    align-items: flex-end;
    gap: 0.2rem;
    height: 5rem;
    width: 100%;
}

.monitor-clue-bar[b-1zjwnbxls2] {
    flex: 1 1 0;
    border-radius: 0.15rem 0.15rem 0 0;
    min-height: 2px;
}

.monitor-clue-bar.guesses[b-1zjwnbxls2] {
    background: #f0ad4e;
}

.monitor-clue-bar.solved[b-1zjwnbxls2] {
    background: #6fbf73;
}

.monitor-clue-bar-label[b-1zjwnbxls2] {
    margin-top: 0.3rem;
    font-size: 0.7rem;
    color: #d8cdb9;
    white-space: nowrap;
}

.monitor-clue-chart-legend[b-1zjwnbxls2] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: #d8cdb9;
}

.legend-swatch[b-1zjwnbxls2] {
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 0.15rem;
}

.legend-swatch.guesses[b-1zjwnbxls2] {
    background: #f0ad4e;
}

.legend-swatch.solved[b-1zjwnbxls2] {
    background: #6fbf73;
    margin-left: 0.6rem;
}

.monitor-comments[b-1zjwnbxls2] {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    border-top: 1px solid rgba(245, 237, 224, 0.2);
    padding-top: 1rem;
}

.monitor-comment-list[b-1zjwnbxls2] {
    display: grid;
    align-content: start;
    gap: 0.9rem;
    margin: 0;
    padding: 0;
    list-style: none;
    height: 100%;
    overflow: hidden;
}

.monitor-comment-list li[b-1zjwnbxls2] {
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}

.monitor-comment-author[b-1zjwnbxls2] {
    font-weight: 700;
    margin-right: 0.4rem;
}

.monitor-comment-text[b-1zjwnbxls2] {
    font-size: 1.05rem;
}

.monitor-comment-track[b-1zjwnbxls2] {
    display: block;
    font-size: 0.85rem;
    color: #d8cdb9;
    font-style: italic;
}

.muted[b-1zjwnbxls2] {
    color: #d8cdb9;
}
/* /Components/Pages/Preview.razor.rz.scp.css */
.preview-page[b-7ioeh8i9ty] {
    max-width: 32rem;
    margin: 3rem auto;
    padding: 0 1rem;
    color: var(--paper);
}

.eyebrow[b-7ioeh8i9ty] {
    margin: 0 0 0.35rem;
    color: var(--amber);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.event-window[b-7ioeh8i9ty] {
    margin: 0.5rem 0 0;
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
    font-size: 1.3rem;
    letter-spacing: 0.02em;
}

.portal-location[b-7ioeh8i9ty] {
    margin-top: 0.75rem;
}

.portal-location p[b-7ioeh8i9ty] {
    margin: 0;
    font-size: 1rem;
    line-height: 1.35;
}

.portal-address-link[b-7ioeh8i9ty] {
    color: var(--burgundy);
    font-size: 1.15rem;
}

.portal-location-note[b-7ioeh8i9ty] {
    font-style: italic;
    color: rgba(244, 234, 210, 0.55);
}

.preview-form[b-7ioeh8i9ty] {
    margin-top: 1.5rem;
}

.preview-checkbox[b-7ioeh8i9ty] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.05rem;
}

.preview-guest-count-field[b-7ioeh8i9ty] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1rem;
}

.preview-guest-count-field input[b-7ioeh8i9ty] {
    width: 5rem;
}

.preview-save-button[b-7ioeh8i9ty] {
    margin-top: 1.25rem;
}

.modal-content[b-7ioeh8i9ty] {
    background: #16120f;
    color: var(--paper);
    border: 1px solid rgba(211, 163, 72, 0.45);
}

.modal-header[b-7ioeh8i9ty],
.modal-footer[b-7ioeh8i9ty] {
    border-color: rgba(211, 163, 72, 0.25);
}

.modal-title[b-7ioeh8i9ty] {
    color: var(--amber);
}

.modal-body[b-7ioeh8i9ty]  h1,
.modal-body[b-7ioeh8i9ty]  h2,
.modal-body[b-7ioeh8i9ty]  h3,
.modal-body[b-7ioeh8i9ty]  h4 {
    color: var(--amber);
}

.modal-body[b-7ioeh8i9ty]  strong {
    color: var(--amber);
}

.preview-message-ok[b-7ioeh8i9ty] {
    border: 1px solid var(--amber);
    background: var(--amber);
    color: var(--ink);
}

.preview-message-ok:hover[b-7ioeh8i9ty],
.preview-message-ok:focus[b-7ioeh8i9ty] {
    background: var(--paper);
    color: var(--ink);
}
/* /Components/Pages/PrintInvites.razor.rz.scp.css */
.print-invites[b-rl3pcjj0rv] {
    max-width: 60rem;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    color: #241f1b;
}

.admin-header[b-rl3pcjj0rv],
.admin-panel[b-rl3pcjj0rv] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
}

.admin-header[b-rl3pcjj0rv] {
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}

.eyebrow[b-rl3pcjj0rv] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-header h1[b-rl3pcjj0rv] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.lede[b-rl3pcjj0rv] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
    color: #655c52;
}

.print-controls[b-rl3pcjj0rv] {
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    display: grid;
    gap: 0.85rem;
}

.form-row[b-rl3pcjj0rv] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.form-field[b-rl3pcjj0rv] {
    display: grid;
    gap: 0.25rem;
}

.form-field input[b-rl3pcjj0rv] {
    width: 8rem;
}

.count-note[b-rl3pcjj0rv] {
    margin: 0;
    color: #655c52;
    font-size: 0.9rem;
}

/* Fixed-size grid, not content-driven wrapping: every column is exactly one QR wide and every
   row exactly one card tall, so a guillotine can cut straight lines across the whole sheet
   instead of scissor-cutting each card individually. Column/row sizes come from inline styles
   (qrSizeMm/labelHeightMm/gapMm) since they're user-adjustable at runtime. */
.invite-sheet[b-rl3pcjj0rv] {
    display: grid;
    justify-content: start;
}

.invite-card[b-rl3pcjj0rv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    break-inside: avoid;
}

/* Only the QR gets a cut-guide border — the label is cut/taped separately, not enclosed with it. */
.qr-cut-box[b-rl3pcjj0rv] {
    display: flex;
    border: 1px dashed #9a8f80;
}

/* Second, identical QR per card — cut the first one off for the item, keep this one (still
   attached to the label) as a "receipt" to match a separated piece back to its guest/context. */
.qr-receipt[b-rl3pcjj0rv] {
    border-style: dotted;
}

.qr-cut-box img[b-rl3pcjj0rv] {
    display: block;
}

.invite-label[b-rl3pcjj0rv] {
    margin-top: 0.3rem;
    text-align: center;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.65rem;
    line-height: 1.2;
    overflow: hidden;
}

.invite-id[b-rl3pcjj0rv] {
    font-weight: 700;
}

.invite-code[b-rl3pcjj0rv] {
    color: #655c52;
}

.invite-group[b-rl3pcjj0rv] {
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.invite-name[b-rl3pcjj0rv] {
    overflow-wrap: anywhere;
}

/* Standard ID-1 card size (54mm x 85.6mm), portrait, tiled edge-to-edge with no grid gap so each
   card's border doubles as the neighboring cutline. 10mm top padding leaves room for a staple
   once the stack is cut apart; QR sits at the bottom via margin-top: auto on its wrapper. Colored
   with the guest-facing palette (paper background, burgundy text/lines) since these are printed
   for guests to hold, not admin chrome. */
.card-sheet[b-rl3pcjj0rv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, 54mm);
    justify-content: start;
    background: var(--paper);
}

.id-card[b-rl3pcjj0rv] {
    box-sizing: border-box;
    width: 54mm;
    height: 85.6mm;
    padding: 10mm 10mm 10mm;
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px dashed rgba(95, 29, 43, 0.35);
    break-inside: avoid;
    text-align: center;
    font-family: Consolas, "Courier New", monospace;
    background: var(--burgundy);
    color: var(--burgundy);
    position: relative;
    z-index: 0;
}

/* Victorian/steampunk embellishment: a double-rule frame inset from the cutline, with a small
   brass-toned cog rosette at each corner. Purely decorative -- the dashed border above stays the
   real cut guide. Also carries the cream fill for the inner content area, leaving the outer
   margin (outside the frame, down to the physical edge) solid burgundy as a printed mat. */
.id-card[b-rl3pcjj0rv]::before,
.cover-front[b-rl3pcjj0rv]::before,
.cover-back[b-rl3pcjj0rv]::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 3mm;
    border: 1pt double rgba(95, 29, 43, 0.55);
    background-color: var(--paper);
    background-repeat: no-repeat;
    background-size: 4mm 4mm;
    background-position: top left, top right, bottom left, bottom right;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='%23d3a348'/%3E%3Ccircle cx='21' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='21' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='3' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='5.64' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='3' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='5.64' r='2' fill='%23d3a348'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='%23d3a348'/%3E%3Ccircle cx='21' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='21' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='3' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='5.64' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='3' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='5.64' r='2' fill='%23d3a348'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='%23d3a348'/%3E%3Ccircle cx='21' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='21' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='3' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='5.64' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='3' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='5.64' r='2' fill='%23d3a348'/%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='%23d3a348'/%3E%3Ccircle cx='21' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='21' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='18.36' r='2' fill='%23d3a348'/%3E%3Ccircle cx='3' cy='12' r='2' fill='%23d3a348'/%3E%3Ccircle cx='5.64' cy='5.64' r='2' fill='%23d3a348'/%3E%3Ccircle cx='12' cy='3' r='2' fill='%23d3a348'/%3E%3Ccircle cx='18.36' cy='5.64' r='2' fill='%23d3a348'/%3E%3C/svg%3E");
    pointer-events: none;
}

/* The burgundy mat widens to 20mm on the spine-adjacent edge of each cover panel. */
.cover-front[b-rl3pcjj0rv]::before {
    inset: 3mm 20mm 3mm 3mm;
}

.cover-back[b-rl3pcjj0rv]::before {
    inset: 3mm 3mm 3mm 20mm;
}

.id-card-text[b-rl3pcjj0rv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.id-card-tagline[b-rl3pcjj0rv] {
    margin: 0 0 3.6mm;
    /* wwwroot/app.css forces `p { font-family: var(--font-body) !important; }` globally --
       !important needed here to actually win. */
    font-family: "Fleur De Leah", cursive !important;
    text-align: center;
    line-height: 1.1;
    font-size: 1.69rem !important;
}

.id-reserved-name[b-rl3pcjj0rv] {
    font-weight: 700;
    font-size: 0.68rem;
    overflow-wrap: anywhere;
}

.id-group-name[b-rl3pcjj0rv] {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.56rem;
    opacity: 0.75;
}

.id-token-number[b-rl3pcjj0rv] {
    margin-top: 1mm;
    font-weight: 700;
    font-size: 0.64rem;
}

.id-token-code[b-rl3pcjj0rv] {
    font-size: 0.56rem;
    opacity: 0.75;
}

.id-card-qr[b-rl3pcjj0rv] {
    margin-top: auto;
    display: flex;
}

.id-card-qr img[b-rl3pcjj0rv] {
    display: block;
}

/* Wraps around the stapled stack of cards — same width as a card, twice the length plus a 5mm
   spine for the stack's thickness, folds at each edge of the spine (front facing one way, back
   the other). Laid out landscape (wide/short rather than tall/narrow) so it reserves a shorter,
   more page-friendly footprint when printed. No forced page break -- flows right after the card
   grid, sharing the last page if there's room. */
.cover-sheet[b-rl3pcjj0rv] {
    box-sizing: border-box;
    width: 176.2mm;
    height: 54mm;
    display: flex;
    flex-direction: row;
    background: var(--paper);
    color: var(--burgundy);
    break-inside: avoid;
}

.cover-front[b-rl3pcjj0rv],
.cover-back[b-rl3pcjj0rv] {
    box-sizing: border-box;
    width: 85.6mm;
    height: 54mm;
    padding: 10mm;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--burgundy);
    position: relative;
    z-index: 0;
}

/* Content sits inside the cream frame, which is pushed 20mm off the spine edge -- padding is
   widened on that side so centering follows the frame, not the panel's full width. */
.cover-front[b-rl3pcjj0rv] {
    padding-right: 27mm;
}

.cover-back[b-rl3pcjj0rv] {
    padding-left: 27mm;
}

.cover-logo[b-rl3pcjj0rv] {
    width: 30mm;
    height: 30mm;
    object-fit: contain;
}

.cover-spine[b-rl3pcjj0rv] {
    box-sizing: border-box;
    flex: 0 0 5mm;
    background: var(--burgundy);
    border-left: 1mm solid var(--amber);
    border-right: 1mm solid var(--amber);
}

.cover-back[b-rl3pcjj0rv] {
    flex-direction: column;
}

.cover-tagline[b-rl3pcjj0rv] {
    margin: 0;
    /* wwwroot/app.css forces `p { font-family: var(--font-body) !important; }` globally --
       !important needed here to actually win. */
    font-family: "Fleur De Leah", cursive !important;
    text-align: center;
    font-size: 1.4rem !important;
}

.cover-subtext[b-rl3pcjj0rv] {
    margin: 2mm 0 0;
    font-family: "Fleur De Leah", cursive !important;
    text-align: center;
    font-size: 1.4rem !important;
}

/* Page size/margin is set dynamically per the paper-width/height inputs via an inline
   <style> tag in PrintInvites.razor (a static scoped-CSS @page rule can't take a runtime value). */

@media print {
    .print-hide[b-rl3pcjj0rv] {
        display: none !important;
    }

    .print-invites[b-rl3pcjj0rv] {
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .qr-cut-box[b-rl3pcjj0rv] {
        border-color: #000;
    }

    .invite-label[b-rl3pcjj0rv],
    .invite-label *[b-rl3pcjj0rv] {
        color: #000;
    }
}
/* /Components/Pages/QrTool.razor.rz.scp.css */
.qr-tool[b-irv7mcj82k] {
    max-width: 40rem;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    color: #241f1b;
}

.admin-header[b-irv7mcj82k],
.admin-panel[b-irv7mcj82k] {
    border: 1px solid #d8d0c3;
    background: rgba(255, 250, 241, 0.82);
    box-shadow: 0 10px 24px rgba(36, 31, 27, 0.06);
}

.admin-header[b-irv7mcj82k] {
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}

.eyebrow[b-irv7mcj82k] {
    margin: 0 0 0.35rem;
    color: #8b3f2d;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-header h1[b-irv7mcj82k] {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.4rem);
}

.lede[b-irv7mcj82k] {
    max-width: 46rem;
    margin: 0.45rem 0 0;
    color: #655c52;
}

.admin-panel[b-irv7mcj82k] {
    padding: 1.2rem;
}

.form-field[b-irv7mcj82k] {
    display: grid;
    gap: 0.35rem;
}

.form-field label[b-irv7mcj82k] {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.form-field.wide[b-irv7mcj82k] {
    min-width: min(24rem, 100%);
}

.qr-panel[b-irv7mcj82k] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.qr-actions[b-irv7mcj82k] {
    display: flex;
    gap: 0.5rem;
}

.qr-display[b-irv7mcj82k] {
    display: flex;
    justify-content: center;
}

.qr-image-large[b-irv7mcj82k] {
    display: block;
    width: min(80vw, 22rem);
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid #d8d0c3;
    background: #fff;
}
/* /Components/Pages/Token.razor.rz.scp.css */
.token-console[b-sayjsvwaot] {
    --paper: #f4ead2;
    --ink: #11100d;
    --field: #201d18;
    --amber: #d3a348;
    --green: #5f7f55;
    --burgundy: #5f1d2b;
    --muted: #b9aa8a;
    --glass: #0d130d;

    position: relative;
    isolation: isolate;
    height: 100svh;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
    padding: clamp(1rem, 3vw, 3rem);
    overflow: hidden;
    color: var(--paper);
    background:
        radial-gradient(circle at 18% 8%, rgba(211, 163, 72, 0.18), transparent 18rem),
        radial-gradient(circle at 92% 12%, rgba(95, 127, 85, 0.16), transparent 16rem),
        radial-gradient(circle at 33% 100%, rgba(180, 42, 42, 0.22), transparent 22rem),
        linear-gradient(rgba(17, 16, 13, 0.9), rgba(17, 16, 13, 0.86)),
        repeating-linear-gradient(0deg, rgba(211, 163, 72, 0.08) 0 1px, transparent 1px 9px),
        linear-gradient(135deg, #2c2118, #10100d 45%, #1f2a1b);
}

.token-console[b-sayjsvwaot]::before,
.token-console[b-sayjsvwaot]::after {
    position: absolute;
    z-index: -1;
    content: "";
    pointer-events: none;
}

.token-console[b-sayjsvwaot]::before {
    inset: 0;
    background:
        linear-gradient(90deg, rgba(244, 234, 210, 0.04) 1px, transparent 1px),
        linear-gradient(rgba(244, 234, 210, 0.035) 1px, transparent 1px);
    background-size: 5rem 5rem;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent 82%);
}

.token-console[b-sayjsvwaot]::after {
    inset: auto -10vw -24vh -10vw;
    height: 40vh;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.62), transparent 68%);
}

.launch-light[b-sayjsvwaot] {
    position: absolute;
    z-index: 0;
    width: clamp(9rem, 24vw, 18rem);
    aspect-ratio: 1;
    border: 1px solid rgba(211, 163, 72, 0.24);
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(244, 234, 210, 0.92) 0 0.18rem, transparent 0.2rem),
        radial-gradient(circle, rgba(211, 163, 72, 0.28), rgba(211, 163, 72, 0.07) 44%, transparent 70%);
    box-shadow: 0 0 2.2rem rgba(211, 163, 72, 0.28);
    opacity: 0.68;
    animation: launch-light-flicker-b-sayjsvwaot 5.5s steps(1) infinite;
}

.launch-light-left[b-sayjsvwaot] {
    top: calc(clamp(0.8rem, 3vw, 2rem) - clamp(2.25rem, 6vw, 4.5rem));
    left: calc(clamp(0.75rem, 4vw, 3rem) - clamp(2.25rem, 6vw, 4.5rem));
}

.launch-light-right[b-sayjsvwaot] {
    top: calc(clamp(0.8rem, 3vw, 2rem) + clamp(2.25rem, 6vw, 4.5rem));
    right: calc(clamp(0.75rem, 5vw, 5rem) + (3 * clamp(2.25rem, 6vw, 4.5rem)) - clamp(9rem, 24vw, 18rem));
    animation-delay: 1.4s;
}

.cable-run[b-sayjsvwaot] {
    position: absolute;
    top: clamp(0.4rem, 1.6vw, 1.1rem);
    left: 50%;
    z-index: 1;
    width: clamp(14rem, 34vw, 26rem);
    height: clamp(1.6rem, 4vw, 2.4rem);
    transform: translateX(-50%);
    pointer-events: none;
}

.cable-wire[b-sayjsvwaot] {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 0.3rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #16110e, #514338 45%, #17120f);
    box-shadow: inset 0 0.06rem rgba(244, 234, 210, 0.12), 0 0.5rem 1rem rgba(0, 0, 0, 0.38);
    transform: translateY(-50%);
}

.cable-end[b-sayjsvwaot] {
    position: absolute;
    top: 50%;
    right: -0.35rem;
    width: 1.45rem;
    height: 1.45rem;
    border: 1px solid rgba(244, 234, 210, 0.28);
    border-radius: 50%;
    background: radial-gradient(circle at 45% 40%, #d7c09a, #5b493b 46%, #1b1512 75%);
    box-shadow: 0 0 1rem rgba(211, 163, 72, 0.22);
    transform: translateY(-50%);
}

.spark-travel[b-sayjsvwaot] {
    position: absolute;
    top: 50%;
    left: 0%;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: radial-gradient(circle, #fff8cb, #d3a348 60%, transparent 75%);
    box-shadow: 0 0 0.7rem rgba(211, 163, 72, 0.9);
    opacity: 0;
    transform: translate(-50%, -50%);
    animation: spark-travel-b-sayjsvwaot 3.2s ease-in infinite;
}

.spark-discharge[b-sayjsvwaot] {
    position: absolute;
    inset: -0.35rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 248, 203, 0.9), rgba(211, 163, 72, 0.5) 50%, transparent 75%);
    opacity: 0;
    transform: scale(0.5);
    animation: spark-discharge-b-sayjsvwaot 3.2s ease-out infinite;
}

.console-shell[b-sayjsvwaot] {
    position: relative;
    z-index: 2;
    width: min(100%, 980px);
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: clamp(0.75rem, 3vw, 1.5rem) 0;
}

.crt-monitor[b-sayjsvwaot] {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 0.75rem;
    flex: 1 1 auto;
    min-height: 0;
    width: min(100%, 920px);
    padding: clamp(0.75rem, 2vw, 1.1rem);
    border: 1px solid rgba(198, 148, 96, 0.28);
    border-radius: 0.8rem 0.8rem 1.8rem 1.8rem;
    background:
        linear-gradient(145deg, rgba(244, 234, 210, 0.14), transparent 24%),
        linear-gradient(180deg, #302820, #17130f 56%, #0d0b09);
    box-shadow:
        inset 0 0.16rem rgba(244, 234, 210, 0.13),
        0 2.2rem 4rem rgba(0, 0, 0, 0.52),
        0 0 3rem rgba(211, 163, 72, 0.09);
}

.crt-monitor[b-sayjsvwaot]::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(ellipse 34% 24% at 10% 16%, rgba(196, 104, 38, 0.65), transparent 72%),
        radial-gradient(ellipse 26% 32% at 88% 10%, rgba(168, 82, 28, 0.6), transparent 74%),
        radial-gradient(ellipse 42% 28% at 80% 90%, rgba(184, 96, 32, 0.65), transparent 72%),
        radial-gradient(ellipse 24% 20% at 20% 84%, rgba(140, 64, 20, 0.55), transparent 72%),
        radial-gradient(ellipse 18% 34% at 50% 46%, rgba(120, 54, 16, 0.35), transparent 76%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='r'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23r)'/%3E%3C/svg%3E");
    background-size: auto, auto, auto, auto, auto, 180px 180px;
    background-blend-mode: color-burn, color-burn, color-burn, color-burn, color-burn, overlay;
    mix-blend-mode: overlay;
    opacity: 0.95;
}

.crt-monitor[b-sayjsvwaot]::after {
    content: "";
    position: absolute;
    left: 16%;
    right: 16%;
    bottom: -1.2rem;
    height: 1.2rem;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(#16120f, #080706);
    box-shadow: 0 1.1rem 2rem rgba(0, 0, 0, 0.44);
}

.crt-topline[b-sayjsvwaot],
.crt-controls[b-sayjsvwaot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: rgba(244, 234, 210, 0.56);
    font-family: Consolas, "Courier New", monospace;
    font-size: clamp(0.72rem, 0.62rem + 0.5vw, 0.92rem);
    letter-spacing: 0.08em;
}

.crt-topline[b-sayjsvwaot] {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 0.6rem;
}

.crt-status-dot[b-sayjsvwaot] {
    width: 0.68rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--amber);
    box-shadow: 0 0 0.9rem rgba(211, 163, 72, 0.9);
    animation: crt-status-flicker-b-sayjsvwaot 4.4s steps(1) infinite;
    margin-left: 0;
}

.crt-label[b-sayjsvwaot] {
    min-width: 0;
    overflow: hidden;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.44rem, 1.152rem + 1.6vw, 1.92rem);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--amber);
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.6), 0 0 0.4rem rgba(211, 163, 72, 0.35);
    white-space: nowrap;
    pointer-events: none;
}

.crt-message-button[b-sayjsvwaot] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0.3rem;
    border: 1px solid rgba(211, 163, 72, 0.4);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.08);
    color: var(--amber);
    cursor: pointer;
}

.crt-message-button.alerting[b-sayjsvwaot] {
    animation: crt-message-alert-b-sayjsvwaot 0.72s ease-in-out infinite;
}

.crt-message-badge[b-sayjsvwaot] {
    position: absolute;
    top: -0.52rem;
    right: -0.52rem;
    display: grid;
    place-items: center;
    width: 1.05rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: #ff5a4d;
    color: #130e0b;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 0 0 2px #16120f, 0 0 0.65rem rgba(255, 90, 77, 0.95);
}

@keyframes crt-message-alert-b-sayjsvwaot {
    0%, 100% {
        border-color: #ff5a4d;
        background: rgba(255, 90, 77, 0.12);
        box-shadow: 0 0 0.35rem rgba(255, 90, 77, 0.65);
        transform: scale(1);
    }

    50% {
        border-color: var(--amber);
        background: rgba(211, 163, 72, 0.32);
        box-shadow: 0 0 1.25rem rgba(255, 90, 77, 1), 0 0 2rem rgba(211, 163, 72, 0.8);
        transform: scale(1.18);
    }
}

.intro-overlay[b-sayjsvwaot] {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(8, 7, 6, 0.82);
}

.intro-dialog[b-sayjsvwaot] {
    position: relative;
    width: min(46rem, 100%);
    max-height: 84vh;
    overflow-y: auto;
    padding: 1.6rem;
    border: 1px solid rgba(211, 163, 72, 0.45);
    border-radius: 0.4rem;
    background: #16120f;
    color: var(--paper);
    box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.6);
}

.intro-close[b-sayjsvwaot] {
    position: absolute;
    top: 0.55rem;
    right: 0.7rem;
    border: 0;
    background: transparent;
    color: var(--amber);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.intro-body[b-sayjsvwaot] {
    font-size: 1rem;
    line-height: 1.55;
}

.intro-body[b-sayjsvwaot]  h1,
.intro-body[b-sayjsvwaot]  h2,
.intro-body[b-sayjsvwaot]  h3 {
    color: var(--amber);
}

.intro-body[b-sayjsvwaot]  strong {
    color: var(--amber);
}

.intro-ready-button[b-sayjsvwaot] {
    display: block;
    margin: 1.4rem auto 0;
}

.crt-screen[b-sayjsvwaot] {
    position: relative;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    /* Hide the scrollbar chrome — content should just shift up as lines are added, like a real
       terminal, not read as a scrollable pane. Scrolling itself still works (JS still calls
       scrollToBottom on new lines); only the visible scrollbar affordance is removed. */
    scrollbar-width: none;
    -ms-overflow-style: none;
    border: 1px solid rgba(211, 163, 72, 0.28);
    border-radius: 0.45rem;
    padding: clamp(1rem, 3vw, 1.45rem);
    background:
        radial-gradient(circle at 50% 32%, rgba(95, 127, 85, 0.22), transparent 50%),
        linear-gradient(180deg, rgba(244, 234, 210, 0.04), transparent 12%),
        var(--glass);
    box-shadow:
        inset 0 0 2.4rem rgba(0, 0, 0, 0.7),
        inset 0 0 5rem rgba(95, 127, 85, 0.15),
        0 0 2rem rgba(95, 127, 85, 0.14);
    animation: crt-warmup-b-sayjsvwaot 2.2s cubic-bezier(0.25, 0.8, 0.25, 1) both;
}

.crt-screen[b-sayjsvwaot]::before,
.crt-screen[b-sayjsvwaot]::after {
    position: absolute;
    inset: 0;
    z-index: 3;
    content: "";
    pointer-events: none;
}

.crt-screen[b-sayjsvwaot]::-webkit-scrollbar {
    display: none;
}

.crt-screen[b-sayjsvwaot]::before {
    background:
        linear-gradient(rgba(244, 234, 210, 0.08) 50%, rgba(0, 0, 0, 0.14) 50%),
        linear-gradient(90deg, rgba(255, 0, 0, 0.035), rgba(0, 255, 80, 0.025), rgba(0, 80, 255, 0.035));
    background-size: 100% 0.26rem, 0.55rem 100%;
    mix-blend-mode: screen;
    opacity: 0.34;
}

.crt-screen[b-sayjsvwaot]::after {
    background:
        radial-gradient(ellipse at center, transparent 58%, rgba(0, 0, 0, 0.42) 100%),
        linear-gradient(105deg, transparent 0 42%, rgba(244, 234, 210, 0.08) 46%, transparent 52%);
    animation: crt-flicker-b-sayjsvwaot 6.2s steps(1) infinite;
}

.crt-noise[b-sayjsvwaot] {
    position: absolute;
    inset: 0;
    z-index: 5;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 96px 96px;
    image-rendering: pixelated;
    filter: grayscale(1) contrast(2.4) brightness(1.15);
    mix-blend-mode: screen;
    animation:
        crt-static-shift-b-sayjsvwaot 0.12s steps(6) infinite,
        crt-static-fade-b-sayjsvwaot 2s ease-out forwards;
}

.crt-controls[b-sayjsvwaot] {
    justify-content: flex-end;
    gap: 0.45rem;
}

.crt-controls span[b-sayjsvwaot] {
    width: 0.8rem;
    aspect-ratio: 1;
    border: 1px solid rgba(244, 234, 210, 0.16);
    border-radius: 50%;
    background: radial-gradient(circle at 38% 34%, rgba(244, 234, 210, 0.24), #16120f 60%);
}

.console-session[b-sayjsvwaot] {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 0.85rem;
    font-size: var(--font-size-teleprinter);
}

.console-kicker[b-sayjsvwaot] {
    margin: 0;
    color: var(--amber);
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    letter-spacing: 0;
    text-transform: uppercase;
}

h1[b-sayjsvwaot],
h2[b-sayjsvwaot] {
    color: var(--paper);
    font-family: var(--font-display);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

h1[b-sayjsvwaot] {
    margin: 0.2rem 0 1rem;
    font-size: clamp(2rem, 6vw, 4.1rem);
    line-height: 0.95;
}

h2[b-sayjsvwaot] {
    margin: 0.6rem 0;
    font-size: clamp(1.4rem, 4vw, 2.4rem);
}

.console-art[b-sayjsvwaot],
.console-prompt[b-sayjsvwaot],
.console-line[b-sayjsvwaot],
.console-muted[b-sayjsvwaot],
.console-input[b-sayjsvwaot],
.console-button[b-sayjsvwaot],
.console-error[b-sayjsvwaot] {
    font-family: Consolas, "Courier New", monospace;
}

.console-art[b-sayjsvwaot] {
    margin: 0.2rem 0 0.4rem;
    overflow-x: auto;
    color: var(--muted);
    font-size: 0.85rem;
}

.command-row[b-sayjsvwaot],
.command-output[b-sayjsvwaot],
.terminal-form[b-sayjsvwaot],
.field-prompt[b-sayjsvwaot] {
    font-family: Consolas, "Courier New", monospace;
}

.command-row[b-sayjsvwaot] {
    display: flex;
    gap: 0.6rem;
    align-items: baseline;
    color: var(--amber);
}

.command-text[b-sayjsvwaot] {
    overflow-wrap: anywhere;
}

.command-output[b-sayjsvwaot] {
    margin: 0;
    color: var(--paper);
}

.command-output[b-sayjsvwaot]::before {
    content: none;
    color: var(--muted);
}

.command-output-block[b-sayjsvwaot] {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.15rem;
    padding: 0 0 0 clamp(0.8rem, 2vw, 1rem);
    border-left: 2px solid rgba(211, 163, 72, 0.52);
}

.command-output-block[b-sayjsvwaot]::before {
    content: none;
}

.command-output-block p[b-sayjsvwaot],
.command-output-block ul[b-sayjsvwaot] {
    margin: 0;
}

.console-cursor[b-sayjsvwaot] {
    display: inline-block;
    color: var(--amber);
    animation: blink-b-sayjsvwaot 1.1s steps(1) infinite;
}

.terminal-field[b-sayjsvwaot] {
    display: grid;
    grid-template-columns: minmax(9rem, 12rem) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
}

.terminal-field-long[b-sayjsvwaot] {
    align-items: start;
}

.field-prompt[b-sayjsvwaot] {
    color: var(--amber);
}

.console-panel[b-sayjsvwaot] {
    display: grid;
    gap: 0.85rem;
    margin-top: 1rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid rgba(244, 234, 210, 0.18);
    background: rgba(32, 29, 24, 0.82);
}

.console-panel p[b-sayjsvwaot],
.console-panel ul[b-sayjsvwaot] {
    margin: 0;
}

.console-prompt[b-sayjsvwaot],
.console-line[b-sayjsvwaot] {
    color: var(--amber);
}

.console-muted[b-sayjsvwaot] {
    color: var(--muted);
    font-size: 0.92rem;
}

.console-error[b-sayjsvwaot] {
    color: #ffb4a8;
}

label[b-sayjsvwaot] {
    display: grid;
    gap: 0.35rem;
    color: var(--paper);
}

.console-input[b-sayjsvwaot] {
    width: 100%;
    min-height: 2.75rem;
    border: 1px solid rgba(211, 163, 72, 0.55);
    border-radius: 0;
    padding: 0.65rem 0.75rem;
    color: var(--paper);
    background: var(--field);
}

.console-input:focus[b-sayjsvwaot] {
    outline: 2px solid var(--amber);
    outline-offset: 2px;
}

.console-check[b-sayjsvwaot] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.console-check input[b-sayjsvwaot] {
    margin-top: 0.25rem;
}

.ready-panel[b-sayjsvwaot] {
    align-items: start;
    margin-top: 0;
}

.ready-panel a[b-sayjsvwaot] {
    color: var(--amber);
    text-underline-offset: 0.18em;
}

.ready-button[b-sayjsvwaot] {
    width: 100%;
    min-height: 3.25rem;
    margin-top: 0.35rem;
    font-weight: 700;
}

.ready-button:disabled[b-sayjsvwaot] {
    cursor: not-allowed;
}

.console-actions[b-sayjsvwaot] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.secure-channel-actions[b-sayjsvwaot] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
    margin-top: 0.85rem;
}

.secure-channel-button[b-sayjsvwaot] {
    min-height: 3rem;
    font-weight: 700;
    touch-action: manipulation;
}

.console-button[b-sayjsvwaot] {
    min-height: 2.75rem;
    border: 1px solid var(--amber);
    padding: 0.65rem 1rem;
    color: var(--ink);
    background: var(--amber);
}

.console-button:hover[b-sayjsvwaot],
.console-button:focus[b-sayjsvwaot] {
    background: var(--paper);
}

.console-button:disabled[b-sayjsvwaot] {
    cursor: wait;
    opacity: 0.65;
}

.console-button-secondary[b-sayjsvwaot] {
    color: var(--paper);
    border-color: rgba(244, 234, 210, 0.35);
    background: transparent;
}

.console-button-secondary:hover[b-sayjsvwaot],
.console-button-secondary:focus[b-sayjsvwaot] {
    color: var(--paper);
    background: var(--burgundy);
}

.reveal-panel[b-sayjsvwaot] {
    border-color: rgba(95, 127, 85, 0.75);
}

.coordinate-sequence[b-sayjsvwaot] {
    position: relative;
    min-height: clamp(18rem, 55vw, 27rem);
    overflow: hidden;
    border: 1px solid rgba(211, 163, 72, 0.38);
    background: #0e100c;
}

.coordinate-stage-final[b-sayjsvwaot] {
    position: absolute;
    inset: 0;
    display: grid;
    align-items: end;
    padding: clamp(0.85rem, 3vw, 1.25rem);
    opacity: 0;
    animation-name: coordinate-stage-final-b-sayjsvwaot;
    animation-duration: 13s;
    animation-fill-mode: forwards;
    animation-timing-function: steps(1, end);
}

.scan-header[b-sayjsvwaot] {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 0.3rem;
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
}

.vector-coordinate-map[b-sayjsvwaot] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.vector-map-background[b-sayjsvwaot] {
    fill: #10150f;
}

.vector-map-grid[b-sayjsvwaot] {
    opacity: 0.32;
}

.vector-grid-line[b-sayjsvwaot] {
    fill: none;
    stroke: rgba(244, 234, 210, 0.24);
    stroke-width: 0.01;
}

.vector-landmass[b-sayjsvwaot] {
    fill: rgba(95, 127, 85, 0.2);
    stroke: rgba(211, 163, 72, 0.72);
    stroke-width: 0.22;
    vector-effect: non-scaling-stroke;
}

.vector-landmass-secondary[b-sayjsvwaot] {
    fill: rgba(95, 127, 85, 0.13);
}

.vector-coast[b-sayjsvwaot],
.vector-region[b-sayjsvwaot],
.vector-road[b-sayjsvwaot] {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.vector-coast[b-sayjsvwaot] {
    stroke: rgba(244, 234, 210, 0.55);
    stroke-width: 0.18;
}

.vector-region[b-sayjsvwaot] {
    stroke: rgba(211, 163, 72, 0.58);
    stroke-width: 0.1;
}

.vector-road[b-sayjsvwaot] {
    stroke: rgba(244, 234, 210, 0.46);
    stroke-width: 0.006;
}

.major-road[b-sayjsvwaot] {
    stroke: rgba(211, 163, 72, 0.72);
    stroke-width: 0.01;
}

.local-road[b-sayjsvwaot] {
    stroke: rgba(244, 234, 210, 0.68);
    stroke-width: 0.002;
}

.vector-label[b-sayjsvwaot] {
    fill: var(--muted);
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.65px;
    letter-spacing: 0;
    vector-effect: non-scaling-stroke;
}

.vector-label-continent[b-sayjsvwaot] {
    font-size: 3.6px;
}

.vector-label-region[b-sayjsvwaot] {
    font-size: 0.42px;
}

.vector-label-city[b-sayjsvwaot] {
    font-size: 0.014px;
}

.vector-label-local[b-sayjsvwaot] {
    fill: var(--paper);
    font-size: 0.0012px;
}

.vector-landmark circle[b-sayjsvwaot] {
    fill: var(--burgundy);
    stroke: var(--paper);
    stroke-width: 0.0008;
    vector-effect: non-scaling-stroke;
}

.vector-landmark text[b-sayjsvwaot] {
    fill: var(--paper);
    paint-order: stroke;
    stroke: rgba(14, 16, 12, 0.9);
    stroke-width: 0.0008;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.0038px;
    letter-spacing: 0;
    vector-effect: non-scaling-stroke;
}

.vector-landmark-secondary circle[b-sayjsvwaot] {
    fill: var(--green);
}

.target-ring[b-sayjsvwaot],
.target-dot-vector[b-sayjsvwaot] {
    fill: none;
    stroke: var(--amber);
    vector-effect: non-scaling-stroke;
}

.target-ring[b-sayjsvwaot] {
    opacity: 0.76;
    stroke-width: 0.012;
}

.target-ring-home[b-sayjsvwaot] {
    stroke-width: 0.001;
    animation: target-vector-pulse-b-sayjsvwaot 1.2s steps(1, end) infinite;
}

.target-dot-vector[b-sayjsvwaot] {
    fill: var(--amber);
    animation: target-vector-pulse-b-sayjsvwaot 1.2s steps(1, end) infinite;
}

.reveal-links[b-sayjsvwaot] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.coordinate-final-details[b-sayjsvwaot] {
    display: grid;
    gap: 0.75rem;
    opacity: 0;
    animation: coordinate-details-final-b-sayjsvwaot 13s steps(1, end) forwards;
}

/* Skips the wait that was originally timed to the map's zoom animation, since there's nothing to
   watch while the map is disabled (see ShowCoordinateMap in Token.razor). */
.no-map-delay[b-sayjsvwaot] {
    opacity: 1;
    animation: none;
}

.coordinate-sequence.no-map-delay[b-sayjsvwaot] {
    min-height: 6rem;
    padding: clamp(0.85rem, 3vw, 1.25rem);
}

.event-window[b-sayjsvwaot] {
    margin: -0.5rem 0 0;
    color: var(--amber);
    font-family: Consolas, "Courier New", monospace;
    letter-spacing: 0.02em;
}

.reveal-links a[b-sayjsvwaot] {
    border: 1px solid rgba(211, 163, 72, 0.6);
    padding: 0.55rem 0.75rem;
    color: var(--paper);
    font-family: Consolas, "Courier New", monospace;
    text-decoration: none;
}

.reveal-links a:hover[b-sayjsvwaot],
.reveal-links a:focus[b-sayjsvwaot] {
    color: var(--ink);
    background: var(--amber);
}

.mugshot-panel[b-sayjsvwaot] {
    font-family: Consolas, "Courier New", monospace;
}

.mugshot-protocol[b-sayjsvwaot] {
    display: grid;
    gap: 0.35rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid rgba(211, 163, 72, 0.38);
    background: rgba(32, 29, 24, 0.6);
}

.mugshot-protocol strong[b-sayjsvwaot] {
    color: var(--amber);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.mugshot-ack[b-sayjsvwaot] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--muted);
    cursor: pointer;
}

.mugshot-upload-row[b-sayjsvwaot] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.mugshot-file-input[b-sayjsvwaot] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.mugshot-selfie-button[b-sayjsvwaot] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--amber);
    padding: 0.5rem 0.9rem;
    color: var(--amber);
    background: transparent;
    font-family: Consolas, "Courier New", monospace;
    cursor: pointer;
}

.mugshot-selfie-button:hover[b-sayjsvwaot],
.mugshot-selfie-button:focus[b-sayjsvwaot] {
    color: var(--ink);
    background: var(--amber);
}

.mugshot-hint[b-sayjsvwaot] {
    color: var(--muted);
}

.mugshot-status[b-sayjsvwaot] {
    color: var(--amber);
}

.mugshot-error[b-sayjsvwaot] {
    color: var(--burgundy);
}

.mugshot-skip[b-sayjsvwaot] {
    justify-self: start;
    border: 1px solid rgba(244, 234, 210, 0.3);
    background: none;
    padding: 0.4rem 0.7rem;
    color: var(--muted);
    font-family: Consolas, "Courier New", monospace;
    cursor: pointer;
}

.mugshot-skip:hover[b-sayjsvwaot],
.mugshot-skip:focus[b-sayjsvwaot] {
    color: var(--paper);
    border-color: rgba(244, 234, 210, 0.6);
}

.cursor[b-sayjsvwaot] {
    animation: blink-b-sayjsvwaot 1.1s steps(1) infinite;
}

@keyframes coordinate-stage-final-b-sayjsvwaot {
    0%, 81% {
        opacity: 0;
    }

    82%, 100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes coordinate-details-final-b-sayjsvwaot {
    0%, 81% {
        opacity: 0;
    }

    82%, 100% {
        opacity: 1;
    }
}

@keyframes target-vector-pulse-b-sayjsvwaot {
    0%, 45% {
        opacity: 1;
    }

    50%, 95% {
        opacity: 0;
    }
}

@keyframes blink-b-sayjsvwaot {
    50% {
        opacity: 0;
    }
}

@keyframes launch-light-flicker-b-sayjsvwaot {
    0%, 9%, 12%, 38%, 42%, 72%, 100% {
        opacity: 0.7;
        filter: brightness(1);
    }

    10%, 40%, 74% {
        opacity: 0.28;
        filter: brightness(0.55);
    }

    11%, 41%, 75% {
        opacity: 0.96;
        filter: brightness(1.35);
    }
}

@keyframes spark-travel-b-sayjsvwaot {
    0% {
        left: 0%;
        opacity: 0;
    }

    3% {
        opacity: 1;
    }

    58% {
        left: 96%;
        opacity: 1;
    }

    62%, 100% {
        left: 96%;
        opacity: 0;
    }
}

@keyframes spark-discharge-b-sayjsvwaot {
    0%, 58%, 100% {
        opacity: 0;
        transform: scale(0.5);
    }

    60% {
        opacity: 1;
        transform: scale(1.4);
    }

    66% {
        opacity: 0.5;
        transform: scale(0.9);
    }

    70% {
        opacity: 0;
        transform: scale(0.6);
    }
}

@keyframes crt-warmup-b-sayjsvwaot {
    0% {
        opacity: 0;
        filter: brightness(3.2) saturate(0);
    }

    18% {
        opacity: 1;
    }

    34% {
        filter: brightness(2.3) saturate(0.35);
    }

    52% {
        filter: brightness(0.62) saturate(0.7);
    }

    100% {
        opacity: 1;
        filter: brightness(1) saturate(1);
    }
}

@keyframes crt-flicker-b-sayjsvwaot {
    0%, 6%, 10%, 76%, 100% {
        opacity: 0.9;
    }

    7%, 78% {
        opacity: 0.48;
    }

    8%, 79% {
        opacity: 1;
    }
}

@keyframes crt-status-flicker-b-sayjsvwaot {
    0%, 34%, 38%, 100% {
        opacity: 1;
    }

    35%, 37% {
        opacity: 0.22;
    }
}

@keyframes crt-static-shift-b-sayjsvwaot {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 120px 90px;
    }
}

@keyframes crt-static-fade-b-sayjsvwaot {
    0% {
        opacity: 1;
    }

    5% {
        opacity: 0.1;
    }

    10% {
        opacity: 1;
    }

    16% {
        opacity: 0.08;
    }

    24% {
        opacity: 1;
    }

    30% {
        opacity: 0.15;
    }

    40% {
        opacity: 0.9;
    }

    48% {
        opacity: 0.2;
    }

    60% {
        opacity: 0.85;
    }

    72% {
        opacity: 0.3;
    }

    85% {
        opacity: 0.5;
    }

    100% {
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .launch-light[b-sayjsvwaot],
    .spark-travel[b-sayjsvwaot],
    .spark-discharge[b-sayjsvwaot],
    .crt-status-dot[b-sayjsvwaot],
    .crt-message-button.alerting[b-sayjsvwaot],
    .crt-screen[b-sayjsvwaot],
    .crt-screen[b-sayjsvwaot]::after,
    .crt-noise[b-sayjsvwaot],
    .cursor[b-sayjsvwaot],
    .console-cursor[b-sayjsvwaot],
    .target-dot-vector[b-sayjsvwaot],
    .coordinate-stage-final[b-sayjsvwaot],
    .coordinate-final-details[b-sayjsvwaot],
    .vector-coordinate-map animate[b-sayjsvwaot] {
        animation: none;
    }

    .crt-noise[b-sayjsvwaot] {
        opacity: 0;
    }

    .spark-travel[b-sayjsvwaot],
    .spark-discharge[b-sayjsvwaot] {
        opacity: 0;
    }

    .coordinate-stage-final[b-sayjsvwaot] {
        opacity: 1;
        transform: none;
    }

    .coordinate-final-details[b-sayjsvwaot] {
        opacity: 1;
        animation: none;
    }
}

@media (max-width: 640.98px) {
    .token-console[b-sayjsvwaot] {
        padding: 0.65rem;
    }

    .launch-light[b-sayjsvwaot] {
        width: 4.25rem;
    }

    .cable-run[b-sayjsvwaot] {
        width: clamp(10rem, 70vw, 16rem);
        height: 1.4rem;
    }

    .console-shell[b-sayjsvwaot] {
        padding: 1rem 0 1rem;
    }

    .crt-monitor[b-sayjsvwaot] {
        border-radius: 0.55rem 0.55rem 1.05rem 1.05rem;
        padding: 0.48rem;
    }

    .crt-topline[b-sayjsvwaot],
    .crt-controls[b-sayjsvwaot] {
        font-size: 0.74rem;
    }

    .crt-screen[b-sayjsvwaot] {
        padding: 0.72rem;
        border-radius: 0.32rem;
    }

    .console-actions[b-sayjsvwaot] {
        display: grid;
    }

    .terminal-field[b-sayjsvwaot] {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

}
/* /Components/Pages/VibeGate.razor.rz.scp.css */
.vibe-gate[b-yopc6bb3vx] {
    max-width: 46rem;
    margin: 0 auto;
    padding: 1.5rem 0 3rem;
}

.vibe-gate-header[b-yopc6bb3vx],
.vibe-control-heading[b-yopc6bb3vx],
.vibe-actions[b-yopc6bb3vx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.vibe-gate-header h1[b-yopc6bb3vx],
.emancipation-panel h2[b-yopc6bb3vx] {
    margin: 0;
}

.vibe-control-group[b-yopc6bb3vx],
.emancipation-panel[b-yopc6bb3vx] {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(17, 16, 13, 0.16);
    border-radius: 0.4rem;
    background: rgba(211, 163, 72, 0.08);
}

.vibe-control-heading label[b-yopc6bb3vx] {
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    text-transform: uppercase;
}

.vibe-control-heading output[b-yopc6bb3vx] {
    color: #7c341f;
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
}

.vibe-control-group input[type="range"][b-yopc6bb3vx] {
    width: 100%;
    margin-top: 0.8rem;
    accent-color: #7c341f;
}

.vibe-actions[b-yopc6bb3vx] {
    justify-content: flex-start;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.vibe-message[b-yopc6bb3vx] {
    margin: 1rem 0 0;
    padding: 0.7rem 0.8rem;
    border-left: 3px solid #7c341f;
    background: rgba(124, 52, 31, 0.1);
}

.emancipation-panel[b-yopc6bb3vx] {
    display: grid;
    gap: 0.9rem;
}

.emancipation-fields[b-yopc6bb3vx] {
    display: grid;
    grid-template-columns: 6rem minmax(0, 1fr);
    align-items: center;
    gap: 0.55rem 0.75rem;
}
/* /Components/PostponementSplash.razor.rz.scp.css */
.postponement-overlay[b-ws4xbnmigv] {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(8, 7, 6, 0.9);
}

.postponement-dialog[b-ws4xbnmigv] {
    position: relative;
    width: min(34rem, 100%);
    max-height: 88vh;
    overflow-y: auto;
    padding: 1.75rem 1.5rem 1.5rem;
    border: 1px solid rgba(211, 163, 72, 0.5);
    border-radius: 0.4rem;
    background: #16120f;
    color: rgba(245, 237, 224, 0.88);
    font-family: Consolas, "Courier New", monospace;
    box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.7), 0 0 3rem rgba(211, 163, 72, 0.1);
}

.postponement-close[b-ws4xbnmigv] {
    position: absolute;
    top: 0.55rem;
    right: 0.7rem;
    border: 0;
    background: transparent;
    color: #d3a348;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.postponement-tag[b-ws4xbnmigv] {
    margin: 0 0 0.75rem;
    color: rgba(245, 237, 224, 0.6);
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    text-align: center;
}

.postponement-rule[b-ws4xbnmigv] {
    margin: 0.9rem 0;
    border: 0;
    border-top: 1px dashed rgba(211, 163, 72, 0.4);
}

.postponement-title[b-ws4xbnmigv] {
    margin: 0 0 0.35rem;
    color: #d3a348;
    font-size: clamp(1.6rem, 1.2rem + 2vw, 2.1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-align: center;
    text-transform: uppercase;
}

.postponement-window[b-ws4xbnmigv] {
    margin: 0;
    color: rgba(245, 237, 224, 0.82);
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-align: center;
    text-transform: uppercase;
}

.postponement-body[b-ws4xbnmigv] {
    display: grid;
    gap: 0.85rem;
    font-size: 0.92rem;
    line-height: 1.55;
}

.postponement-body p[b-ws4xbnmigv] {
    margin: 0;
}

.postponement-status[b-ws4xbnmigv] {
    margin: 0;
    color: #d3a348;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
}

.postponement-close-button[b-ws4xbnmigv] {
    display: block;
    width: 100%;
    margin: 1.5rem 0 0;
    min-height: 2.75rem;
    font-family: Consolas, "Courier New", monospace;
    font-weight: 700;
    letter-spacing: 0.06em;
}
/* /Components/QdosJourney.razor.rz.scp.css */
/* Provides its own box styling (border/padding) rather than relying on LiveDashboard.razor.css's
   .live-panel -- Blazor's per-component CSS scoping means that rule can't reach markup rendered
   by this component, even with the same class name on it. */
.qdos-panel[b-vrohdf6fhq] {
    background: transparent;
    border: 1px solid rgba(245, 237, 224, 0.15);
    border-radius: 0.5rem;
    padding: 1rem;
}

.qdos-journey[b-vrohdf6fhq] {
    display: grid;
    gap: 0.8rem;
}

/* Matches the app's other lightweight custom modals (see LiveDashboard.razor.css's
   .downvote-modal-backdrop) rather than the Bootstrap modal component. */
.qdos-hint-modal-backdrop[b-vrohdf6fhq] {
    position: fixed;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
}

.qdos-hint-modal[b-vrohdf6fhq] {
    max-width: 22rem;
    padding: 1.5rem;
    border-radius: 0.5rem;
    background: #14100d;
    color: #f5ede0;
    text-align: center;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.6);
}

.qdos-hint-modal p[b-vrohdf6fhq] {
    margin: 0 0 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.qdos-hint-modal-checkbox[b-vrohdf6fhq] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
    font-size: 0.8rem;
    color: rgba(245, 237, 224, 0.7);
}

.qdos-hint-modal-actions[b-vrohdf6fhq] {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
}

/* Shares .qdos-hint-modal-backdrop for the dimmed overlay; this is the dialog box itself, styled
   to fit a short list rather than a centered message. */
.qdos-topics-dialog[b-vrohdf6fhq] {
    position: relative;
    width: min(20rem, 100%);
    padding: 1.25rem;
    border-radius: 0.5rem;
    background: #14100d;
    color: #f5ede0;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.6);
}

.qdos-topics-dialog h3[b-vrohdf6fhq] {
    margin: 0 0 0.75rem;
    padding-right: 1.5rem;
    color: var(--amber);
    font-family: Georgia, "Times New Roman", serif;
}

.qdos-topics-dialog-close[b-vrohdf6fhq] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    line-height: 1;
    font-size: 1.5rem;
    color: var(--amber);
    background: none;
    border: none;
}

.qdos-topics-dialog-list[b-vrohdf6fhq] {
    display: grid;
    gap: 0.6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.qdos-topics-dialog-list li[b-vrohdf6fhq] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.qdos-topics-dialog-icon[b-vrohdf6fhq] {
    font-size: 1.4rem;
}

.qdos-clue-detail h3[b-vrohdf6fhq] {
    margin: 0;
    color: var(--amber);
    font-family: Georgia, "Times New Roman", serif;
}

/* The clue number isn't a title -- it should read like just another line of clue text, not a
   heading, since the real title (the answer) is deliberately withheld from guests. */
.qdos-clue-detail h3[b-vrohdf6fhq] {
    font-size: 1.5rem;
    font-weight: 700;
}

.qd-icon-inline[b-vrohdf6fhq] {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
}

.qdos-bank[b-vrohdf6fhq],
.qdos-clue-tab span:last-child[b-vrohdf6fhq] {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.qdos-bank[b-vrohdf6fhq],
.qdos-notice[b-vrohdf6fhq],
.qdos-hint[b-vrohdf6fhq],
.qdos-resolved[b-vrohdf6fhq] {
    margin: 0;
    padding: 0.65rem 0.75rem;
    border-left: 3px solid var(--amber);
    background: rgba(211, 163, 72, 0.1);
}

.qdos-bank[b-vrohdf6fhq] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.qdos-notice.error[b-vrohdf6fhq] {
    border-color: #ff5a4d;
}

/* The Fibonacci "debt" step-graph -- a visible social object guests can compare, so the shape
   alone (not the numbers) communicates how expensive another wrong guess is about to get. */
.qdos-cooldown-graph[b-vrohdf6fhq] {
    display: flex;
    align-items: flex-end;
    gap: 0.4rem;
    height: 7rem;
    padding: 0.5rem 0.25rem 0;
}

.qdos-cooldown-bar-wrap[b-vrohdf6fhq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 0.3rem;
    flex: 0 0 1.4rem;
    height: 100%;
}

.qdos-cooldown-bar[b-vrohdf6fhq] {
    width: 100%;
    min-height: 0.35rem;
    border-radius: 0.15rem 0.15rem 0 0;
    background: rgba(245, 237, 224, 0.22);
}

.qdos-cooldown-bar.current[b-vrohdf6fhq] {
    background: #ff5a4d;
    box-shadow: 0 0 0.5rem rgba(255, 90, 77, 0.6);
}

.qdos-cooldown-bar.future[b-vrohdf6fhq] {
    background: rgba(255, 181, 168, 0.5);
}

.qdos-cooldown-bar-label[b-vrohdf6fhq] {
    font-size: 0.65rem;
    color: rgba(245, 237, 224, 0.55);
    white-space: nowrap;
}

.qdos-clue-list[b-vrohdf6fhq] {
    display: grid;
    gap: 0.35rem;
    max-height: 14rem;
    overflow-y: auto;
}

.qdos-clue-tab[b-vrohdf6fhq] {
    display: flex;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(245, 237, 224, 0.18);
    border-radius: 0.3rem;
    background: rgba(8, 7, 6, 0.28);
    color: inherit;
    text-align: left;
}

.qdos-clue-tab.selected[b-vrohdf6fhq] {
    border-color: var(--amber);
    background: rgba(211, 163, 72, 0.16);
}

.qdos-clue-tab.solved span:last-child[b-vrohdf6fhq],
.qdos-resolved[b-vrohdf6fhq] {
    color: #a7d69b;
}

/* Answer + explanation bullets in one bordered panel once a clue is solved. */
.qdos-solved-panel[b-vrohdf6fhq] {
    display: grid;
    gap: 0.6rem;
    padding: 1rem;
    border: 1px solid #f5ede0;
    border-radius: 0.5rem;
}

.qdos-resolved-answer[b-vrohdf6fhq] {
    margin: 0;
    color: #f5ede0;
    font-size: 1.4em;
    font-weight: 700;
}

.qdos-clue-detail[b-vrohdf6fhq] {
    display: grid;
    gap: 0.8rem;
    padding-top: 0.25rem;
}

/* Centers the verse block as a whole (container shrinks to its widest line, then sits in the
   middle) without touching the per-line left-alignment/hanging-indent below. Top/bottom margin
   adds to .qdos-clue-detail's 0.8rem grid gap, giving the verse extra breathing room over its
   siblings (heading row above, guess row below). */
.qdos-verse[b-vrohdf6fhq] {
    width: fit-content;
    max-width: 100%;
    margin: 1.08rem auto;
}

.qdos-verse p[b-vrohdf6fhq] {
    margin: 0.25rem 0;
    font-size: 1.4em;
}

/* Verse convention: lines 2 and 4 read as the "answer" half-couplet, set off with a hanging
   indent rather than relying on literal leading spaces (which HTML collapses anyway). */
.qdos-verse p:nth-child(2)[b-vrohdf6fhq],
.qdos-verse p:nth-child(4)[b-vrohdf6fhq] {
    padding-left: 1ch;
}

.qdos-command[b-vrohdf6fhq] {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3rem;
    padding: 0 0.7rem;
    border: 1px solid rgba(211, 163, 72, 0.65);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.12);
    color: var(--amber);
    font-family: var(--font-display), Consolas, "Courier New", monospace !important;
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1;
}

.qdos-command:disabled[b-vrohdf6fhq] {
    opacity: 0.5;
}

.qdos-guess-row[b-vrohdf6fhq] {
    display: block;
}

/* Submit + Hint sit side by side below the input, equal width, centered as a pair rather than
   stretched edge to edge. */
.qdos-guess-actions-row[b-vrohdf6fhq] {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
}

.qdos-guess-actions-row .qdos-command[b-vrohdf6fhq],
.qdos-guess-actions-row .qdos-mini-command[b-vrohdf6fhq] {
    flex: 1 1 0;
    max-width: 10rem;
}

/* Input-group pairing: the letter-count button (when present) sits flush against the input's
   left edge, sharing a border like a Bootstrap input-group addon. */
.qdos-guess-input-group[b-vrohdf6fhq] {
    display: flex;
    align-items: stretch;
    width: 100%;
    min-width: 0;
}

.qdos-letter-count-button[b-vrohdf6fhq] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.7rem;
    border: 1px solid rgba(211, 163, 72, 0.65);
    border-right: none;
    border-radius: 0.375rem 0 0 0.375rem;
    background: rgba(211, 163, 72, 0.12);
    color: var(--amber);
    font-family: var(--font-display), Consolas, "Courier New", monospace !important;
    font-size: 1.12rem;
    font-weight: 700;
}

.qdos-letter-count-button:disabled[b-vrohdf6fhq] {
    opacity: 0.5;
}

.qdos-guess-input-wrap[b-vrohdf6fhq] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

/* Only when the letter-count button actually precedes it -- flattens the shared edge into one
   merged control instead of two separately-rounded boxes. */
.qdos-letter-count-button + .qdos-guess-input-wrap input[b-vrohdf6fhq] {
    border-radius: 0 0.375rem 0.375rem 0;
}

/* Monospace + a transparent-ish input background so the underlay's blanks show through where the
   guest hasn't typed yet, and typed characters visually line up with (and cover) the underscores
   directly beneath them. !important needed: app.css forces `input { font-family: ... !important }`
   site-wide, which otherwise wins regardless of selector specificity. Font-size is set inline per
   card (see AnswerFontSizeStyle) since it depends on the guessed/revealed answer's length. */
.qdos-guess-row input[b-vrohdf6fhq] {
    position: relative;
    font-family: Consolas, "Courier New", monospace !important;
    line-height: 1.5 !important;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-align: center;
    background: rgba(8, 7, 6, 0.35);
    color: #f5ede0;
    border-color: rgba(211, 163, 72, 0.65);
}

.qdos-guess-underlay[b-vrohdf6fhq] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem 0.75rem;
    font-family: Consolas, "Courier New", monospace;
    line-height: 1.5;
    letter-spacing: 0.15em;
    color: var(--amber);
    white-space: pre;
    pointer-events: none;
    transform: translateY(2px);
}

/* 80% of the input's own (large-mode) text size -- disappears the instant the input gains
   focus, not just once the guest starts typing (unlike a native placeholder). */
.qdos-guess-placeholder[b-vrohdf6fhq] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Consolas, "Courier New", monospace;
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(245, 237, 224, 0.4);
    pointer-events: none;
}

.qdos-paths[b-vrohdf6fhq] {
    margin: 0;
    padding-left: 1.25rem;
}

/* Stacked frontier cards -- one per path the guest has reached, so a border between them stands
   in for the list divider the old single-selection view didn't need. */
.qdos-clue-cards[b-vrohdf6fhq] {
    display: grid;
    gap: 1rem;
}

.qdos-clue-cards .qdos-clue-detail + .qdos-clue-detail[b-vrohdf6fhq] {
    border-top: 1px solid rgba(245, 237, 224, 0.18);
    padding-top: 1rem;
}

.qdos-clue-heading-row[b-vrohdf6fhq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.qdos-mini-command[b-vrohdf6fhq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3rem;
    padding: 0 0.7rem;
    border: 1px solid rgba(211, 163, 72, 0.65);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.12);
    color: var(--amber);
    font-family: var(--font-display), Consolas, "Courier New", monospace !important;
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1;
}

.qdos-mini-command:disabled[b-vrohdf6fhq] {
    opacity: 0.5;
}

/* Same slot whether it's still showing the "Topics" button or the revealed category icons --
   right-justified within the heading row (see .qdos-clue-heading-row's space-between), with a
   min-height so the row doesn't jump when the button is replaced by shorter icon glyphs. */
.qdos-topics-slot[b-vrohdf6fhq] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 3rem;
    gap: 0.5rem;
    font-size: 1.4rem;
}

.qdos-topics-slot .qdos-mini-command[b-vrohdf6fhq] {
    font-size: 1.12rem;
}

.qdos-topics-icons[b-vrohdf6fhq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0;
    border: none;
    background: none;
    line-height: 1;
}

.qdos-branch-header[b-vrohdf6fhq] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.qdos-branch-header-row[b-vrohdf6fhq] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.qdos-branch-title-block[b-vrohdf6fhq] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.1rem;
    flex: 1 1 auto;
    min-width: 0;
}

.qdos-branch-name[b-vrohdf6fhq] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--amber);
    font-family: var(--font-display), Georgia, "Times New Roman", serif;
    font-size: 1.7rem;
    font-weight: 700;
}

/* 80% of the title block's height beside it, centered rather than stretched -- see
   align-items:center on the row above. */
.qdos-branch-chevron-button[b-vrohdf6fhq] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 80%;
    border: 1px solid rgba(211, 163, 72, 0.65);
    border-radius: 0.3rem;
    background: rgba(211, 163, 72, 0.12);
    color: var(--amber);
}

.qdos-branch-chevron[b-vrohdf6fhq] {
    font-size: 1.6rem;
    line-height: 1;
    color: var(--amber);
    transition: transform 0.15s ease;
}

.qdos-branch-chevron.open[b-vrohdf6fhq] {
    transform: rotate(180deg);
}

.qdos-branch-dropdown[b-vrohdf6fhq] {
    position: absolute;
    z-index: 5;
    top: calc(100% + 0.35rem);
    left: 0;
    width: 100%;
    display: grid;
    gap: 0.35rem;
    padding: 0.5rem;
    border: 1px solid rgba(245, 237, 224, 0.18);
    border-radius: 0.3rem;
    background: #0a0807;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.5);
}

.qdos-branch-option[b-vrohdf6fhq] {
    display: grid;
    gap: 0.25rem;
    padding: 0.5rem 0.65rem;
    border: 1px solid rgba(245, 237, 224, 0.18);
    border-radius: 0.3rem;
    background: rgba(8, 7, 6, 0.28);
    color: inherit;
    text-align: left;
}

.qdos-branch-option.selected[b-vrohdf6fhq] {
    border-color: var(--amber);
    background: rgba(211, 163, 72, 0.16);
}

.qdos-branch-option-name[b-vrohdf6fhq] {
    font-weight: 700;
}

.qdos-branch-option-subtitle[b-vrohdf6fhq] {
    font-size: 0.8rem;
    color: rgba(245, 237, 224, 0.65);
}

/* One segment per clue in the branch, rather than a continuous fill -- both the unsolved
   (background) and solved (foreground) portions read as discrete units. */
.qdos-branch-progress[b-vrohdf6fhq] {
    display: flex;
    gap: 0.15rem;
    width: 100%;
    height: 0.5rem;
}

.qdos-branch-progress-segment[b-vrohdf6fhq] {
    flex: 1 1 0;
    height: 100%;
    border-radius: 0.15rem;
    background: rgba(245, 237, 224, 0.15);
    transition: background 0.3s ease;
}

.qdos-branch-progress-segment.solved[b-vrohdf6fhq] {
    background: var(--amber);
}
/* /Components/TeleprinterOutput.razor.rz.scp.css */
.teleprinter-output pre[b-cya2e68177] {
    min-height: 1.5rem;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    color: var(--paper, #f4ead2);
    font-family: var(--font-teleprinter);
    font-size: var(--font-size-teleprinter);
    line-height: var(--line-height-teleprinter);
}

.teleprinter-highlight[b-cya2e68177] {
    color: var(--green, #5f7f55);
    /* Force this to always track the parent <pre>'s current size — without it, some mobile
       browsers (observed on Android/Pixel) size a dynamically-inserted highlighted span
       differently than its sibling text nodes at narrow viewports. */
    font-size: inherit;
    line-height: inherit;
}

.teleprinter-cursor[b-cya2e68177] {
    display: inline-block;
    color: var(--amber, #d3a348);
    animation: teleprinter-blink-b-cya2e68177 0.55s steps(1) infinite;
}

@keyframes teleprinter-blink-b-cya2e68177 {
    50% {
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .teleprinter-cursor[b-cya2e68177] {
        animation: none;
    }
}

@media (max-width: 640.98px) {
    .teleprinter-output pre[b-cya2e68177] {
        font-size: clamp(1.7rem, 5vw, 2.1rem);
        line-height: 1.5;
    }
}
