/* Icebreakers: standalone lobby/management plus distraction-free play UI. */
.ksw-icebreakers-lobby .ice-game-card,
.ksw-icebreakers-lobby .ice-lobby-card,
.ksw-icebreakers-manage .card {
    border-radius: 1rem;
    border-color: rgba(0,0,0,.08);
    box-shadow: 0 .4rem 1.4rem rgba(0,0,0,.04);
}

.ice-join-qr img,
.ice-my-qr img {
    max-width: 100%;
    height: auto;
    border-radius: .75rem;
    background: #fff;
}

.letter-spaced { letter-spacing: .12em; }

.ice-fullscreen {
    min-height: 100vh;
    margin: 0;
    background: #111827;
    color: #1f2937;
}

.ice-app {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at top left, rgba(59,130,246,.28), transparent 34rem),
        linear-gradient(145deg, #111827 0%, #1f2937 52%, #0f172a 100%);
}

.ice-topbar {
    flex: 0 0 auto;
    min-height: 64px;
    padding: calc(.75rem + env(safe-area-inset-top)) 1rem .75rem;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.ice-topbar-title { min-width: 0; flex: 1 1 auto; }
.ice-topbar-title .fw-bold { max-width: none; }
.ice-topbar-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 0 0 auto;
}

.ice-main {
    flex: 1 1 auto;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 1rem;
    min-height: 0;
}

.ice-panel {
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 1.15rem;
    box-shadow: 0 1rem 3rem rgba(0,0,0,.16);
    padding: 1.1rem;
}

.ice-alert {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 1rem;
}

.ice-center-panel {
    max-width: 620px;
    margin: 10vh auto;
    text-align: center;
}

.ice-setup-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 320px;
    gap: 1rem;
    align-items: start;
}

.ice-play-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 300px;
    gap: 1rem;
    align-items: stretch;
    height: calc(100vh - 98px - env(safe-area-inset-top));
    min-height: 560px;
}

.ice-current-card,
.ice-side-panel {
    overflow: auto;
    min-height: 0;
}

.ice-current-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.ice-current-card h1 {
    font-size: clamp(2.1rem, 4vw, 3rem);
    line-height: .98;
    letter-spacing: -.04em;
    margin: .25rem 0 1rem;
}

.ice-current-card .lead {
    font-size: clamp(1.05rem, 2vw, 1.5rem);
}

.ice-side-panel {
    text-align: center;
    position: sticky;
    top: 1rem;
    align-self: start;
}

.ice-progress-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    color: #6b7280;
    font-size: .95rem;
    margin-bottom: .75rem;
}

.ice-target-progress {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    border-radius: 999px;
    padding: .45rem .8rem;
    background: #eef2ff;
    color: #3730a3;
    font-weight: 600;
}

.ice-same-card-auto-timer {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    border-radius: 999px;
    padding: .45rem .8rem;
    background: #fff7ed;
    color: #9a3412;
    font-weight: 600;
}

.ice-same-card-auto-timer.d-none {
    display: none !important;
}

.ice-live-waiting-copy {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    border-radius: 999px;
    padding: .45rem .8rem;
    background: #f8fafc;
    color: #334155;
    font-weight: 600;
}

.ice-my-qr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .55rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
}

.ice-my-qr.compact-qr img { width: 220px; }

.ice-player-code {
    margin-top: .5rem;
    font-size: 2.15rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .18em;
    color: #111827;
}

.ice-player-code.compact-code {
    font-size: 1.65rem;
}

.ice-stat {
    text-align: center;
    padding: .9rem .5rem;
    border-radius: .9rem;
    background: #f8fafc;
}

.ice-stat strong {
    display: block;
    font-size: 1.75rem;
    line-height: 1;
}

.ice-stat span {
    display: block;
    color: #6b7280;
    font-size: .85rem;
    margin-top: .2rem;
}

.ice-answer-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: .75rem;
}

.ice-answer-card {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .9rem;
    padding: .9rem;
    background: #fff;
}

.ice-answer-choice {
    display: flex;
    gap: .45rem;
    flex-wrap: wrap;
    margin: .65rem 0;
}

.ice-custom-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-bottom: .5rem;
}
.ice-custom-row > input { flex: 1 1 260px; }

.ice-open-card-list {
    display: grid;
    gap: .5rem;
    grid-auto-rows: max-content;
    align-content: start;
    align-items: start;
}

.ice-open-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem .9rem;
    border-radius: .85rem;
    border: 1px solid rgba(0,0,0,.08);
    color: #1f2937;
    background: #fff;
    text-decoration: none;
    align-self: start;
    min-height: 0;
}

.ice-open-card-copy {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.ice-open-card-title {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ice-open-card-action-badge {
    flex: 0 0 auto;
}

.ice-open-card:hover,
.ice-open-card.is-current {
    color: #111827;
    border-color: #2563eb;
    box-shadow: 0 .45rem 1rem rgba(37,99,235,.12);
}

.ice-open-card.is-complete {
    opacity: .68;
    background: #f8fafc;
}
.ice-open-card.is-failed {
    opacity: .72;
}
.ice-open-card.is-failed .ice-open-card-status {
    font-weight: 700;
}

.ice-open-card-status {
    flex: 0 0 auto;
    color: #6b7280;
}

.ice-connection-list,
.ice-leaderboard-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ice-connection-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.ice-connection-card > img,
.ice-connection-card > .ice-user-menu-wrap > a > img,
.ice-leaderboard-list > li > img,
.ice-leaderboard-list > li > .ice-user-menu-wrap > a > img,
.ice-intro-post > img,
.ice-intro-post > .ice-user-menu-wrap > a > img {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    background: #e5e7eb;
}

.ice-leaderboard-list > li {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) auto;
    gap: .65rem;
    align-items: center;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.ice-intro-post {
    display: flex;
    gap: .7rem;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
}

.ice-drawer .offcanvas-body { padding-top: .75rem; }

#iceScanVideo {
    width: 100%;
    min-height: 300px;
    border-radius: 1rem;
    background: #111827;
    object-fit: cover;
}

.ice-result-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: .75rem;
    font-size: 1.55rem;
}
.ice-result-success .ice-result-icon { background: #dcfce7; color: #166534; }
.ice-result-error .ice-result-icon { background: #fee2e2; color: #991b1b; }
.ice-result-avatar {
    width: 86px;
    height: 86px;
    border-radius: 50%;
    object-fit: cover;
    margin: .25rem auto .75rem;
    display: block;
}

@media (max-width: 991.98px) {
    .ice-main { padding: .75rem; }
    .ice-setup-grid { grid-template-columns: 1fr; }
    .ice-play-layout {
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 0;
    }
    .ice-side-panel {
        order: -1;
        position: sticky;
        top: 0;
        z-index: 20;
        padding: .75rem;
    }
    .ice-side-panel h2 { display: none; }
    .ice-side-panel hr { display: none; }
    .ice-my-qr.compact-qr img { width: 132px; }
    .ice-player-code.compact-code { font-size: 1.25rem; }
    .ice-current-card { justify-content: flex-start; }
    .ice-current-card h1 { font-size: clamp(1.8rem, 8vw, 2.8rem); }
    .ice-progress-line { font-size: .85rem; }
}

@media (max-width: 575.98px) {
    .ice-topbar { min-height: 58px; padding-left: .75rem; padding-right: .75rem; }
    .ice-panel { border-radius: .9rem; padding: .85rem; }
    .ice-answer-list { grid-template-columns: 1fr; }
    .ice-side-panel {
        display: grid;
        grid-template-columns: auto minmax(0,1fr);
        grid-template-areas: "qr code" "qr menu";
        gap: .5rem .75rem;
        align-items: center;
        text-align: left;
    }
    .ice-side-panel .ice-my-qr { grid-area: qr; }
    .ice-side-panel .ice-player-code { grid-area: code; margin: 0; }
    .ice-side-panel .btn { grid-area: menu; }
    .ice-current-card .btn-lg { font-size: 1rem; padding: .75rem 1rem; }
}

/* Pass 2 host display and organizer tools. */
.ice-host-screen {
    min-height: 100vh;
    margin: 0;
    background: #0f172a;
    color: #fff;
    overflow: hidden;
}
.ice-host-shell {
    min-height: 100vh;
    padding: clamp(1rem, 2vw, 2rem);
    background:
        radial-gradient(circle at top left, rgba(59,130,246,.34), transparent 34rem),
        linear-gradient(145deg, #0f172a 0%, #111827 50%, #020617 100%);
}
.ice-host-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(1rem, 2vw, 2rem);
}
.ice-host-label {
    text-transform: uppercase;
    letter-spacing: .18em;
    color: rgba(255,255,255,.62);
    font-size: .8rem;
    font-weight: 700;
}
.ice-host-hero h1 {
    font-size: clamp(2.3rem, 5vw, 5rem);
    line-height: .95;
    margin: .15rem 0 .5rem;
    letter-spacing: -.05em;
}
.ice-host-hero p {
    color: rgba(255,255,255,.72);
    font-size: clamp(1rem, 1.5vw, 1.35rem);
    max-width: 62rem;
    margin: 0;
}
.ice-host-state {
    flex: 0 0 auto;
    padding: .7rem 1rem;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    font-weight: 700;
}
.ice-host-grid {
    display: grid;
    grid-template-columns: minmax(360px, 1.1fr) minmax(320px, .9fr);
    gap: clamp(1rem, 2vw, 2rem);
    align-items: stretch;
}
.ice-host-qr-panel,
.ice-host-live-panel {
    background: rgba(255,255,255,.96);
    color: #111827;
    border-radius: 1.4rem;
    padding: clamp(1rem, 2vw, 2rem);
    box-shadow: 0 1.5rem 4rem rgba(0,0,0,.28);
    min-height: 0;
}
.ice-host-qr-panel {
    text-align: center;
}
.ice-host-qr img {
    width: min(62vh, 100%);
    height: auto;
    border-radius: 1rem;
    background: #fff;
}
.ice-host-code {
    font-size: clamp(2rem, 5vw, 4.8rem);
    line-height: 1;
    font-weight: 900;
    letter-spacing: .18em;
    margin-top: .7rem;
}
.ice-host-link {
    color: #64748b;
    word-break: break-all;
    font-size: clamp(.8rem, 1vw, 1rem);
    margin-top: .5rem;
}
.ice-host-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}
.ice-host-stats div {
    border-radius: 1rem;
    background: #f8fafc;
    padding: 1rem;
    text-align: center;
}
.ice-host-stats strong {
    display: block;
    font-size: clamp(1.8rem, 4vw, 3.4rem);
    line-height: 1;
}
.ice-host-stats span {
    color: #64748b;
    font-size: .9rem;
}
.ice-host-leaderboard {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ice-host-leaderboard > li {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    padding: .7rem 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
    font-size: 1.1rem;
}
.ice-host-leaderboard img {
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    border-radius: 50%;
    background: #e5e7eb;
}
.ice-host-empty {
    color: #64748b;
}
@media (max-width: 900px) {
    .ice-host-screen { overflow: auto; }
    .ice-host-grid { grid-template-columns: 1fr; }
    .ice-host-hero { flex-direction: column; }
}


/* Pass 3 analytics / moderation */
.ksw-icebreakers-analytics .ice-analytics-summary .ice-stat {
    min-height: 6.2rem;
}
.ksw-icebreakers-analytics .table th {
    white-space: nowrap;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
}
.ksw-icebreakers-analytics .table td {
    vertical-align: middle;
}
.ice-table-filter {
    max-width: 18rem;
}
.ice-mini-avatar {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    object-fit: cover;
    background: #e5e7eb;
    flex: 0 0 auto;
}
.ice-host-intro-post {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .9rem;
    padding: .85rem;
    margin-bottom: .75rem;
    background: #fff;
}
.ice-host-intro-post.is-deleted {
    background: #f8fafc;
    color: #64748b;
}
.ice-feedback-summary {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .85rem;
    border-radius: .9rem;
    background: #f8fafc;
}
.ice-feedback-summary strong {
    display: grid;
    place-items: center;
    min-width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    font-size: 1.35rem;
}
.ice-feedback-summary span {
    color: #64748b;
    line-height: 1.25;
}
.ice-feedback-row,
.ice-activity-row {
    border-top: 1px solid rgba(15, 23, 42, .08);
    padding: .75rem 0;
}
.ice-feedback-row:first-child,
.ice-activity-row:first-child {
    border-top: 0;
    padding-top: 0;
}
.ice-feedback-row {
    display: grid;
    grid-template-columns: 3rem minmax(0,1fr);
    gap: .75rem;
}
.ice-feedback-row > strong {
    display: grid;
    place-items: center;
    align-self: start;
    border-radius: .75rem;
    background: #f8fafc;
    min-height: 2.4rem;
}
@media (max-width: 575.98px) {
    .ice-table-filter { max-width: none; width: 100%; }
    .ksw-icebreakers-analytics .card-header { align-items: stretch !important; }
}

/* Pass 4: prompt template and pattern-completion polish */
.ksw-icebreakers-templates .ice-template-card,
.ksw-icebreakers-manage .ice-template-import {
    border-radius: 16px;
}

.ksw-icebreakers-templates .ice-template-card-meta {
    display: block;
    color: var(--bs-secondary-color);
    margin-top: .1rem;
}

.ksw-icebreakers-manage .ice-template-import {
    background: linear-gradient(135deg, rgba(0,123,255,.06), rgba(255,255,255,.95));
}

.ice-pattern-status {
    border-radius: 999px;
    padding: .55rem .85rem;
    background: rgba(255,255,255,.82);
    color: #4b5563;
    font-weight: 700;
    font-size: .9rem;
}


/* Icebreakers Pass 5 UI polish */
.ksw-icebreakers-manage .badge-sm,
.ksw-icebreakers-lobby .badge-sm,
.ksw-icebreakers-templates .badge-sm,
.ice-fullscreen .badge-sm {
    font-size: 0.85rem;
    line-height: 1.15;
    padding: 0.32rem 0.55rem;
}

.ksw-icebreakers-manage .ice-game-settings-card .form-label {
    font-weight: 600;
}

.ksw-icebreakers-manage .ice-settings-toggles .form-check {
    align-items: flex-start !important;
    min-height: 100%;
}

.ksw-icebreakers-manage .ice-settings-toggles .form-check-label {
    margin-top: 0 !important;
}

.ksw-icebreakers-manage .ice-settings-toggles .text-muted {
    display: inline-block;
    margin-top: 0.15rem;
}

.ice-open-card-status,
.ksw-icebreakers-templates .ice-template-card-meta {
    color: var(--bs-secondary-color);
    white-space: nowrap;
}


/* Icebreakers Pass 6 manage tabs / pack imports */
.ksw-icebreakers-manage .ice-manage-tabs {
    margin-bottom: 1rem;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.ksw-icebreakers-manage .ice-manage-tabs .nav-link {
    border-radius: 0.65rem 0.65rem 0 0;
    font-weight: 600;
}

.ksw-icebreakers-manage .ice-manage-tab-content > .tab-pane {
    padding-top: 0;
}

.ksw-icebreakers-manage .ice-manage-summary .ice-stat {
    min-height: 5.75rem;
}

.ksw-icebreakers-manage .ice-card-admin-box {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 0.9rem;
    padding: 1rem;
    background: #fff;
    height: 100%;
}

.ksw-icebreakers-manage .ice-admin-table th {
    white-space: nowrap;
    color: #64748b;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-weight: 700;
}

.ksw-icebreakers-manage .ice-col-sort { width: 5rem; }
.ksw-icebreakers-manage .ice-col-type { width: 15rem; }
.ksw-icebreakers-manage .ice-col-goal,
.ksw-icebreakers-manage .ice-col-points { width: 5.5rem; }
.ksw-icebreakers-manage .ice-col-active { width: 6rem; }


.ksw-icebreakers-manage .ice-template-import {
    background: linear-gradient(135deg, rgba(0,123,255,.06), rgba(255,255,255,.98));
}

@media (max-width: 1100px) {
    .ksw-icebreakers-manage .ice-admin-table {
        min-width: 880px;
    }
}

@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-manage-tabs .nav-link {
        border-radius: 0.65rem;
    }
}

/* Icebreakers Pass 6: tabbed Manage screen and card-pack import polish */
.ksw-icebreakers-manage .ice-manage-tabs {
    gap: .35rem;
    border-bottom-color: rgba(15,23,42,.1);
}

.ksw-icebreakers-manage .ice-manage-tabs .nav-link {
    border-radius: .75rem .75rem 0 0;
    font-weight: 600;
    color: #475569;
}

.ksw-icebreakers-manage .ice-manage-tabs .nav-link.active {
    color: #111827;
    box-shadow: 0 -.15rem .8rem rgba(15,23,42,.04);
}

.ksw-icebreakers-manage .ice-manage-tab-content > .tab-pane {
    padding-top: .25rem;
}

.ksw-icebreakers-manage .ice-settings-section {
    padding: 1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: .9rem;
    background: #f8fafc;
}

.ksw-icebreakers-manage .ice-template-skip-select {
    width: auto;
    min-width: 10.25rem;
}

.ksw-icebreakers-manage .ice-prompt-table th,
.ksw-icebreakers-manage .ice-prompt-table td {
    vertical-align: top;
}

.ksw-icebreakers-manage .ice-sort-input {
    width: 5rem;
}

.ksw-icebreakers-manage .ice-number-input {
    width: 4.75rem;
}

.ksw-icebreakers-manage .ice-prompt-table-wrap {
    max-height: 44rem;
    overflow: auto;
}

.ksw-icebreakers-manage .ice-compact-table-wrap {
    max-height: 34rem;
    overflow: auto;
}

@media (max-width: 1100px) {
    .ksw-icebreakers-manage .ice-manage-tabs .nav-link {
        padding-left: .75rem;
        padding-right: .75rem;
    }
}

@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-manage-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: .25rem;
    }
    .ksw-icebreakers-manage .ice-manage-tabs .nav-link {
        white-space: nowrap;
    }
}

/* Icebreakers Pass 6 final Manage layout tuning */
.ksw-icebreakers-manage .ice-host-card-table {
    min-width: 980px;
}

.ksw-icebreakers-manage .ice-host-card-table th,
.ksw-icebreakers-manage .ice-host-card-table td {
    vertical-align: top;
}

.ksw-icebreakers-manage .ice-sort-col { width: 5.5rem; }
.ksw-icebreakers-manage .ice-numeric-col { width: 5.75rem; }
.ksw-icebreakers-manage .ice-active-col { width: 6rem; }

.ksw-icebreakers-manage .ice-template-import {
    background: linear-gradient(135deg, rgba(59,130,246,.06), rgba(255,255,255,.98));
}

.ksw-icebreakers-manage .ice-table-filter {
    max-width: 18rem;
}

    .ksw-icebreakers-manage .ice-host-card-table {
        min-width: 900px;
    }


/* Icebreakers Pass 7: compact Porto-style manage console and live controls */
.ksw-icebreakers-lobby .ice-lobby-actions .btn,
.ksw-icebreakers-lobby .ice-hosted-game-list .btn {
    align-self: flex-start;
    flex: 0 0 auto;
}

.ksw-icebreakers-lobby .ice-join-code-card {
    border-radius: 1rem;
}

.ksw-icebreakers-manage .ice-manage-tab-content > .tab-pane {
    padding-top: .25rem;
}

.ksw-icebreakers-manage .ice-settings-section {
    padding: 1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: .9rem;
    background: #f8fafc;
}

.ksw-icebreakers-manage .ice-game-settings-card .card-body {
    padding: 1.25rem;
}

.ksw-icebreakers-manage .ice-game-settings-card .form-label,
.ksw-icebreakers-manage .ice-settings-section .form-label {
    font-weight: 600;
}

.ksw-icebreakers-manage .ice-host-card-list {
    gap: .5rem;
}

.ksw-icebreakers-manage .ice-host-card-item {
    border-radius: .75rem !important;
    border: 1px solid rgba(15,23,42,.1) !important;
    background: #fff;
}

.ksw-icebreakers-manage .ice-host-card-handle {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--bs-secondary-color);
    cursor: grab;
    min-width: 2.1rem;
    padding: .35rem .25rem;
    font-size: 1.1rem;
    line-height: 1;
}
.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-manage .ice-host-card-handle:focus {
    color: var(--bs-secondary-color);
    background: transparent;
    box-shadow: none;
}

.ksw-icebreakers-manage .ice-host-card-chosen .ice-host-card-handle,
.ksw-icebreakers-manage .ice-host-card-drag .ice-host-card-handle {
    cursor: grabbing;
}

.ksw-icebreakers-manage .ice-host-card-ghost {
    opacity: .55;
    background: #eef2ff !important;
}

.ksw-icebreakers-manage .ice-host-card-drag {
    box-shadow: 0 .75rem 2rem rgba(15,23,42,.18);
}

.ksw-icebreakers-manage .ice-modal-host-card-form .form-label {
    font-weight: 600;
}








/* Icebreakers Pass 9 manage cleanup */
.ksw-icebreakers-manage .tabs > .tab-content {
    padding-top: 1rem;
}

.ksw-icebreakers-manage .ice-tab-section {
    margin-bottom: 1.5rem;
}

.ksw-icebreakers-manage .ice-host-card-handle,
.ksw-icebreakers-templates .ice-host-card-handle {
    appearance: none;
    -webkit-appearance: none;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #6c757d !important;
    cursor: grab;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: .25rem;
}

.ksw-icebreakers-manage .ice-host-card-handle:focus,
.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-templates .ice-host-card-handle:focus,
.ksw-icebreakers-templates .ice-host-card-handle:hover {
    background: transparent !important;
    color: #495057 !important;
}

.ksw-icebreakers-manage .ice-analytics-export-form {
    min-width: min(100%, 28rem);
}

.ksw-icebreakers-manage .ice-analytics-export-form .form-select,
.ksw-icebreakers-manage .ice-analytics-export-form .btn,
.ksw-icebreakers-analytics .ice-analytics-export-form .form-select,
.ksw-icebreakers-analytics .ice-analytics-export-form .btn {
    min-height: calc(2.25rem + 2px);
}


.ksw-icebreakers-manage .ice-tab-section {
    padding-top: 0;
}

.ksw-icebreakers-manage .ice-host-card-handle,
.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-manage .ice-host-card-handle:focus {
    background: transparent !important;
    box-shadow: none !important;
}

.ksw-icebreakers-manage .ice-host-card-handle {
    color: #6c757d !important;
}

.ksw-icebreakers-manage .ice-analytics-export-form .input-group {
    min-width: min(100%, 28rem);
}

.ksw-icebreakers-manage .ice-analytics-export-form .form-select,
.ksw-icebreakers-manage .ice-analytics-export-form .btn {
    min-height: 38px;
}


.ksw-icebreakers-manage .ice-host-card-handle,
.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-manage .ice-host-card-handle:focus,
.ksw-icebreakers-manage .ice-host-card-chosen .ice-host-card-handle,
.ksw-icebreakers-manage .ice-host-card-drag .ice-host-card-handle {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #6c757d !important;
}

.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-manage .ice-host-card-handle:focus {
    color: #495057 !important;
}

.ksw-icebreakers-manage .ice-analytics-export-form .input-group > .form-select,
.ksw-icebreakers-manage .ice-analytics-export-form .input-group > .btn,
.ksw-icebreakers-analytics .ice-analytics-export-form .input-group > .form-select,
.ksw-icebreakers-analytics .ice-analytics-export-form .input-group > .btn {
    min-height: calc(1.5em + .75rem + 2px);
}


/* Icebreakers Pass 11: UI/UX and live-management polish */
.ksw-icebreakers-manage .tabs > .tab-content {
    padding-top: .75rem;
}

.ksw-icebreakers-manage .ice-tab-section {
    margin-bottom: 1.25rem;
}

.ksw-icebreakers-manage .ice-settings-section {
    background: #fff;
    border-color: rgba(15, 23, 42, .08);
}

.ksw-icebreakers-manage .ice-manage-summary .ice-stat,
.ksw-icebreakers-manage .ice-preflight-stats .ice-stat,
.ksw-icebreakers-analytics .ice-analytics-summary .ice-stat {
    height: 100%;
    min-height: 5.4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ksw-icebreakers-manage .ice-host-card-item {
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.ksw-icebreakers-manage .ice-host-card-item:hover {
    border-color: rgba(59, 130, 246, .28) !important;
    box-shadow: 0 .4rem 1rem rgba(15, 23, 42, .06);
}

.ksw-icebreakers-manage .ice-host-card-handle,
.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-manage .ice-host-card-handle:focus,
.ksw-icebreakers-manage .ice-host-card-chosen .ice-host-card-handle,
.ksw-icebreakers-manage .ice-host-card-drag .ice-host-card-handle {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #6c757d !important;
}

.ksw-icebreakers-manage .ice-host-card-ghost {
    opacity: .6;
    background: #f8fafc !important;
}

.ksw-icebreakers-manage .ice-preflight-actions .form-check {
    margin-bottom: 0;
}


.ksw-icebreakers-manage .ice-analytics-export-form .input-group,
.ksw-icebreakers-analytics .ice-analytics-export-form .input-group {
    width: min(100%, 32rem);
}

.ksw-icebreakers-manage .ice-analytics-export-form .input-group > .form-select,
.ksw-icebreakers-manage .ice-analytics-export-form .input-group > .btn,
.ksw-icebreakers-analytics .ice-analytics-export-form .input-group > .form-select,
.ksw-icebreakers-analytics .ice-analytics-export-form .input-group > .btn {
    min-height: calc(1.5em + .75rem + 2px);
    white-space: nowrap;
}

.ice-answer-card input:disabled + label,
.ice-answer-card input:disabled,
.ice-custom-row input:disabled {
    cursor: not-allowed;
}

.ice-answer-card input:disabled + label,
.ice-custom-row input:disabled {
    opacity: .72;
}

@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-analytics-export-form,
    .ksw-icebreakers-analytics .ice-analytics-export-form {
        width: 100%;
    }

    .ksw-icebreakers-manage .ice-analytics-export-form .input-group,
    .ksw-icebreakers-analytics .ice-analytics-export-form .input-group {
        width: 100%;
    }
}

/* Icebreakers Pass 11: UI/UX and live-state cleanup */
.ksw-icebreakers-manage .ice-manage-summary .ice-stat,
.ksw-icebreakers-manage .ice-preflight-summary .ice-stat,
.ksw-icebreakers-analytics .ice-analytics-summary .ice-stat {
    height: 100%;
}

.ksw-icebreakers-manage .ice-manage-summary .ice-stat strong[data-ice-manage-state-label] {
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ksw-icebreakers-manage .ice-tab-section > h2:first-child,
.ksw-icebreakers-manage .ice-tab-section > .h5:first-child {
    margin-top: 0;
}

.ksw-icebreakers-manage .ice-preflight-actions {
    padding-top: .75rem;
    border-top: 1px solid rgba(15,23,42,.08);
}

.ksw-icebreakers-manage .ice-preflight-actions .form-check {
    margin-bottom: 0;
}

.ksw-icebreakers-manage .ice-host-card-item .btn-sm,
.ksw-icebreakers-templates .btn-sm {
    min-height: 2.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ksw-icebreakers-manage .ice-host-card-item .btn-sm i {
    pointer-events: none;
}

.ksw-icebreakers-manage .ice-host-card-item:hover {
    border-color: rgba(37,99,235,.25) !important;
    box-shadow: 0 .35rem 1rem rgba(15,23,42,.06);
}

.ksw-icebreakers-manage .ice-host-card-ghost {
    opacity: .72;
    background: #f8fafc !important;
}

.ksw-icebreakers-manage [data-ice-preflight-errors]:empty,
.ksw-icebreakers-manage [data-ice-preflight-warnings]:empty {
    display: none;
}

.ksw-icebreakers-manage .ice-analytics-export-form .input-group,
.ksw-icebreakers-analytics .ice-analytics-export-form .input-group {
    align-items: stretch;
}

.ksw-icebreakers-manage .ice-analytics-export-form .form-select,
.ksw-icebreakers-manage .ice-analytics-export-form .btn,
.ksw-icebreakers-analytics .ice-analytics-export-form .form-select,
.ksw-icebreakers-analytics .ice-analytics-export-form .btn {
    height: calc(2.5rem + 2px);
}

.ice-fullscreen .ice-side-panel {
    max-height: calc(100vh - 98px - env(safe-area-inset-top));
}

.ice-fullscreen .ice-current-card {
    scroll-padding-bottom: 1rem;
}

@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-analytics-export-form,
    .ksw-icebreakers-manage .ice-analytics-export-form .input-group {
        width: 100%;
    }
    .ksw-icebreakers-manage .ice-preflight-actions {
        align-items: stretch !important;
    }
    .ksw-icebreakers-manage .ice-preflight-actions > * {
        flex: 1 1 100%;
    }
    .ksw-icebreakers-manage .ice-preflight-actions .btn {
        width: 100%;
    }
}

/* Icebreakers Pass 12: AJAX moderation and analytics polish */
.ksw-icebreakers-manage .ice-list-filter {
    max-width: 18rem;
}

.ksw-icebreakers-manage [data-ice-custom-review-form].is-saving,
.ksw-icebreakers-manage [data-ice-player-row].is-saving,
.ksw-icebreakers-analytics [data-ice-connection-row].is-saving,
.ksw-icebreakers-analytics [data-ice-intro-post-row].is-saving {
    opacity: .65;
}

.ksw-icebreakers-analytics .ice-analytics-progress {
    display: grid;
    gap: .65rem;
    padding: 1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: .75rem;
    background: #fff;
}

.ksw-icebreakers-analytics .ice-progress-row {
    display: grid;
    grid-template-columns: minmax(8rem, 14rem) 1fr 4rem;
    align-items: center;
    gap: .75rem;
}

.ksw-icebreakers-analytics .ice-progress-row > span,
.ksw-icebreakers-analytics .ice-progress-row > strong {
    white-space: nowrap;
}

.ksw-icebreakers-analytics .ice-progress-track {
    position: relative;
    min-height: .65rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(15,23,42,.09);
}

.ksw-icebreakers-analytics .ice-progress-fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: inherit;
    background: var(--primary, #0d6efd);
}

@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-list-filter {
        max-width: none;
        width: 100%;
    }
    .ksw-icebreakers-analytics .ice-progress-row {
        grid-template-columns: 1fr auto;
    }
    .ksw-icebreakers-analytics .ice-progress-track {
        grid-column: 1 / -1;
    }
}

/* Icebreakers Pass 13 UI cleanup */
.ksw-icebreakers-manage .ice-host-card-handle,
.ksw-icebreakers-templates .ice-host-card-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--bs-secondary-color);
    cursor: grab;
    line-height: 1;
}
.ksw-icebreakers-manage .ice-host-card-handle:hover,
.ksw-icebreakers-manage .ice-host-card-handle:focus,
.ksw-icebreakers-templates .ice-host-card-handle:hover,
.ksw-icebreakers-templates .ice-host-card-handle:focus {
    background: transparent;
    color: var(--bs-secondary-color);
    box-shadow: none;
}
.ksw-icebreakers-manage .ice-host-card-item.sortable-ghost,
.ksw-icebreakers-templates .ice-host-card-item.sortable-ghost {
    opacity: .55;
}
.ice-modal-export-form .input-group > .form-select,
.ice-modal-export-form .input-group > .btn {
    min-height: 38px;
}

/* Icebreakers Pass 15: saved connection notes/favourites */
.ice-connection-card {
    align-items: flex-start;
}

.ice-connection-main {
    flex: 1 1 auto;
}

.ice-connection-card.is-favorite {
    background: rgba(37,99,235,.04);
    border-radius: .75rem;
    margin: .25rem 0;
    padding: .75rem;
    border-bottom-color: transparent;
}

.ice-connection-prompt,
.ice-connection-time,
.ice-connection-save-status {
    font-size: 1rem;
}

.ice-connection-notes {
    resize: vertical;
    min-height: 4.25rem;
}

.ice-connection-fav {
    min-width: 2.25rem;
}

/* Icebreakers Pass 15: player setup filtering */
.ice-setup-toolbar {
    display: flex;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.ice-setup-toolbar .btn-group {
    flex: 0 1 auto;
}
.ice-setup-toolbar .form-control {
    width: min(100%, 22rem);
}
@media (max-width: 575.98px) {
    .ice-setup-toolbar .btn-group,
    .ice-setup-toolbar .form-control {
        width: 100%;
    }
    .ice-setup-toolbar .btn-group .btn {
        flex: 1 1 auto;
        padding-left: .5rem;
        padding-right: .5rem;
    }
}


/* Icebreakers Pass 16: player help modal and deck-refresh polish */
.ice-help-steps {
    display: grid;
    gap: .9rem;
}

.ice-help-steps > div {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr);
    column-gap: .75rem;
    row-gap: .15rem;
    align-items: start;
}

.ice-help-steps i {
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    grid-row: span 2;
}

.ice-help-steps strong {
    display: block;
    color: #111827;
}

.ice-help-steps span {
    color: #6b7280;
}

.ice-fullscreen .ice-topbar-actions .btn {
    flex: 0 0 auto;
}

.ice-player-detail-modal .ice-player-detail-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}
/* Pass 19: host/player announcement surfaces */
.ice-player-announcement {
    margin: 0 0 1rem;
}
.ice-player-announcement .alert {
    border-radius: 1rem;
    box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.ice-player-announcement.has-stack .alert {
    position: relative;
    z-index: 1;
}
.ice-player-announcement.has-stack .alert::after {
    content: '';
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: -.42rem;
    height: .8rem;
    border-radius: 0 0 1rem 1rem;
    background: rgba(15,23,42,.12);
    box-shadow: 0 .35rem .8rem rgba(15,23,42,.1);
    z-index: -1;
}
.ice-announcement-stack-copy {
    margin-top: .35rem;
    font-size: .78rem;
    line-height: 1.25;
    opacity: .78;
}
.ice-host-announcement {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.25rem;
    align-items: center;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 1.25rem;
    padding: 1.25rem 1.5rem;
    margin: 0 0 1.5rem;
    color: #fff;
    backdrop-filter: blur(8px);
}
.ice-host-announcement h2 {
    margin: 0 0 .25rem;
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.5rem);
}
.ice-host-announcement p {
    margin: 0;
    color: rgba(255,255,255,.92);
    font-size: clamp(1.05rem, 1.8vw, 1.45rem);
}
.ice-host-announcement.has-stack::after {
    content: '';
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    bottom: -.55rem;
    height: .9rem;
    border-radius: 0 0 1.1rem 1.1rem;
    background: rgba(255,255,255,.13);
    box-shadow: 0 .35rem .9rem rgba(0,0,0,.12);
    z-index: -1;
}
.ice-host-announcement .ice-announcement-stack-copy {
    color: rgba(255,255,255,.78);
    font-size: clamp(.9rem, 1.25vw, 1.05rem);
}
.ice-host-announcement-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 6rem;
    border-radius: 999px;
    padding: .55rem .9rem;
    background: rgba(255,255,255,.2);
    color: #fff;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}
@media (max-width: 575.98px) {
    .ice-host-announcement {
        grid-template-columns: 1fr;
    }
}

/* Pass 21: native drag fallback polish for card lists */
.ice-host-card-item[draggable="true"] {
    cursor: grabbing;
}
.ice-host-card-item.ice-native-dragging {
    opacity: .72;
}
.ice-host-card-item.ice-host-card-chosen {
    box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.12);
}

/* Pass 23: player recap and printable signage */
.ksw-icebreakers-recap .ice-stat {
    height: 100%;
}
.ice-recap-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}
.ice-recap-card-list .list-group-item {
    align-items: flex-start;
}
.ice-signage-body {
    background: #f3f4f6;
    min-height: 100vh;
}
.ice-signage-page {
    min-height: 100vh;
    padding: 1.5rem;
}
.ice-signage-toolbar {
    display: flex;
    gap: .75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}
.ice-signage-sheet {
    box-sizing: border-box;
    width: min(100%, 8.5in);
    min-height: 11in;
    margin: 0 auto;
    background: #fff;
    border-radius: 1.25rem;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, .14);
    padding: .65in;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1.2rem;
}
.ice-signage-brand {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-weight: 700;
    color: #6b7280;
}
.ice-signage-sheet h1 {
    font-size: clamp(2.25rem, 6vw, 4.5rem);
    line-height: 1.05;
    margin: 0;
}
.ice-signage-description {
    font-size: clamp(1.15rem, 2.5vw, 1.55rem);
    color: #4b5563;
    max-width: 42rem;
    margin: 0;
}
.ice-signage-qr img {
    width: min(70vw, 4.8in);
    height: auto;
}
.ice-signage-code-label {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 700;
    color: #6b7280;
}
.ice-signage-code {
    font-size: clamp(3rem, 8vw, 5.5rem);
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
}
.ice-signage-url {
    overflow-wrap: anywhere;
    color: #4b5563;
}
.ice-signage-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    width: 100%;
    margin-top: .25rem;
}
.ice-signage-steps div {
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 1rem;
    padding: .85rem;
    display: flex;
    gap: .65rem;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
}
.ice-signage-steps i {
    font-size: 1.45rem;
    flex: 0 0 1.7rem;
    text-align: center;
}
.ice-signage-steps span {
    flex: 1 1 auto;
    min-width: 0;
}
@media (max-width: 767.98px) {
    .ice-signage-page {
        padding: .75rem;
    }
    .ice-signage-sheet {
        min-height: auto;
        padding: 1.5rem;
    }
    .ice-signage-steps {
        grid-template-columns: 1fr;
    }
}
@page {
    size: Letter portrait;
    margin: .25in;
}
@media print {
    .no-print {
        display: none !important;
    }
    html,
    body,
    .ice-signage-body {
        width: auto;
        min-height: auto;
        margin: 0;
        background: #fff;
    }
    .ice-signage-page {
        min-height: auto;
        padding: 0;
    }
    .ice-signage-sheet {
        box-sizing: border-box;
        width: 100%;
        height: 10.5in;
        min-height: 0;
        box-shadow: none;
        border-radius: 0;
        padding: .28in;
        gap: .52rem;
        page-break-after: avoid;
        overflow: hidden;
    }
    .ice-signage-sheet h1 {
        font-size: 2.6rem;
    }
    .ice-signage-description {
        font-size: .98rem;
    }
    .ice-signage-qr img {
        width: 4in;
    }
    .ice-signage-code {
        font-size: 3.25rem;
    }
    .ice-signage-steps {
        gap: .4rem;
    }
    .ice-signage-steps div {
        display: grid;
        grid-template-columns: 1.45rem minmax(0, 1fr);
        column-gap: .45rem;
        align-items: center;
        padding: .48rem;
        font-size: .88rem;
        line-height: 1.2;
    }
    .ice-signage-steps i {
        width: 1.45rem;
        font-size: 1.15rem;
        flex: none;
    }
}

/* Pass 24: template preview and recap feedback polish */
.ksw-icebreakers-templates .ice-template-prompt-text {
    font-weight: 700;
}
.ksw-icebreakers-recap .ice-recap-feedback-card textarea {
    min-height: 7rem;
}

/* Pass 26: mobile waiting-room nav and setup-card swiper */
.ice-main-with-nav {
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom));
}
.ice-play-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .25rem;
    padding: .55rem .7rem calc(.55rem + env(safe-area-inset-bottom));
    background: rgba(17, 24, 39, .96);
    box-shadow: 0 -.75rem 2rem rgba(0,0,0,.18);
}
.ice-play-nav-btn {
    border: 0;
    border-radius: .9rem;
    background: transparent;
    color: rgba(255,255,255,.68);
    min-height: 3.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .22rem;
    font-weight: 700;
}
.ice-play-nav-btn i {
    font-size: 1.1rem;
}
.ice-play-nav-btn span {
    font-size: .78rem;
    line-height: 1;
}
.ice-play-nav-btn.is-active,
.ice-play-nav-btn:focus,
.ice-play-nav-btn:hover {
    background: rgba(255,255,255,.14);
    color: #fff;
}
.ice-play-section {
    display: none;
}
.ice-play-section.is-active {
    display: block;
}
.ice-welcome-panel,
.ice-swiper-panel,
.ice-wall-panel,
.ice-settings-panel {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
.ice-welcome-top,
.ice-section-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.ice-welcome-top h1,
.ice-section-title-row h1,
.ice-swiper-panel h1,
.ice-settings-panel h1 {
    margin: 0;
    font-size: clamp(1.6rem, 6vw, 2.4rem);
    line-height: 1.05;
}
.ice-welcome-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}
.ice-welcome-progress {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}
.ice-welcome-progress h2,
.ice-settings-panel h2 {
    margin: 0 0 .25rem 0;
    font-size: 1.25rem;
}
.ice-welcome-progress p {
    margin: 0;
    color: #6b7280;
}
.ice-ring {
    --ice-progress: 0%;
    width: 5.75rem;
    height: 5.75rem;
    border-radius: 50%;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background: conic-gradient(var(--primary, #0088cc) var(--ice-progress), #e5e7eb 0);
    position: relative;
    overflow: hidden;
}
.ice-ring::after {
    content: '';
    position: absolute;
    inset: .42rem;
    border-radius: 50%;
    background: #fff;
}
.ice-ring strong,
.ice-ring span {
    position: relative;
    z-index: 1;
}
.ice-ring strong {
    font-size: 1.65rem;
    line-height: 1;
}
.ice-welcome-qr {
    text-align: center;
}
.ice-welcome-qr img {
    width: 7.75rem;
    height: 7.75rem;
}
.ice-mode-status-icon,
.ice-mode-card-icon {
    width: 5.75rem;
    height: 5.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: #eef6ff;
    color: var(--primary, #0088cc);
    font-size: 2rem;
}
.ice-welcome-mode-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    max-width: 18rem;
    padding: .8rem .9rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .85rem;
    background: #fff;
    box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .06);
}
.ice-welcome-mode-card .ice-mode-card-icon {
    width: 2.9rem;
    height: 2.9rem;
    font-size: 1.2rem;
}
.ice-swiper-counter {
    white-space: nowrap;
    color: #6b7280;
    font-weight: 700;
}
.ice-setup-swiper {
    min-height: 28rem;
    position: relative;
}
.ice-swipe-stack {
    position: relative;
    min-height: 28rem;
}
.ice-swipe-card {
    display: none;
    position: absolute;
    inset: 0;
    transition: transform .26s ease, opacity .26s ease;
    will-change: transform, opacity;
}
.ice-swipe-card.is-active,
.ice-swipe-card.is-next {
    display: block;
}
.ice-swipe-card.is-active {
    z-index: 3;
}
.ice-swipe-card.is-next {
    z-index: 2;
    transform: scale(.965) translateY(.7rem);
    opacity: .45;
    pointer-events: none;
}
.ice-swipe-card.is-swipe-right {
    transform: translateX(115%) rotate(5deg);
    opacity: 0;
}
.ice-swipe-card.is-swipe-left {
    transform: translateX(-115%) rotate(-5deg);
    opacity: 0;
}
.ice-swipe-card-inner {
    height: 100%;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 1.35rem;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #fff;
    box-shadow: 0 1rem 2rem rgba(15,23,42,.08);
}
.ice-swipe-card-inner h2 {
    font-size: clamp(1.55rem, 6.4vw, 2.45rem);
    line-height: 1.08;
    margin: .25rem 0 1rem 0;
}
.ice-swipe-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-top: 1rem;
}
.ice-swipe-complete {
    min-height: 24rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.ice-wall-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: start;
    margin-bottom: 1rem;
}
.ice-settings-qr-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}
@media (max-width: 575.98px) {
    .ice-main-with-nav {
        padding-bottom: calc(4.9rem + env(safe-area-inset-bottom));
    }
    .ice-welcome-grid,
    .ice-settings-qr-row {
        grid-template-columns: 1fr;
    }
    .ice-welcome-progress {
        justify-content: center;
        text-align: left;
    }
    .ice-welcome-qr img {
        width: 6.5rem;
        height: 6.5rem;
    }
    .ice-welcome-mode-card {
        margin: 0 auto;
        text-align: left;
    }
    .ice-setup-swiper,
    .ice-swipe-stack {
        min-height: 26rem;
    }
    .ice-swipe-card-inner {
        padding: 1rem;
    }
    .ice-wall-form {
        grid-template-columns: 1fr;
    }
}

/* Pass 26: safer one-page printable signage sizing */
@media print {
    .ice-signage-sheet {
        height: 10in;
        padding: .24in;
        gap: .42rem;
    }
    .ice-signage-qr img {
        width: 3.75in;
    }
    .ice-signage-sheet h1 {
        font-size: 2.35rem;
    }
    .ice-signage-code {
        font-size: 3rem;
    }
    .ice-signage-steps div {
        grid-template-columns: 1.35rem minmax(0, 1fr);
        column-gap: .4rem;
        padding: .42rem;
        align-items: center;
    }
    .ice-signage-steps span {
        display: block;
        min-width: 0;
    }
}


/* Pass 27 UI audit additions */
.ice-swiper-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .75rem;
}
.ice-swiper-stats span {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: .5rem;
    padding: .35rem .65rem;
    background: var(--bs-body-bg, #fff);
}
.ice-setup-assignment-review .ice-table-filter {
    max-width: 18rem;
}
@media (max-width: 575.98px) {
    .ice-setup-assignment-review .ice-table-filter {
        max-width: none;
        width: 100%;
    }
}

.ice-play-nav-btn {
    position: relative;
}
.ice-nav-badge {
    position: absolute;
    top: .35rem;
    right: 50%;
    transform: translateX(1.45rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .28rem;
    border-radius: 999px;
    background: #dc3545;
    color: #fff;
    box-shadow: 0 0 0 .15rem rgba(17,24,39,.96);
    font-size: .62rem !important;
    line-height: 1;
    font-weight: 800;
}
.ice-nav-badge.d-none {
    display: none !important;
}
.ice-custom-row [data-ice-custom-rejection] {
    flex-basis: 100%;
}

/* Icebreakers Pass 29: waiting-room setup, QR sizing, and host display polish */
.ice-setup-list {
    display: grid;
    gap: .85rem;
}
.ice-setup-list.d-none {
    display: none !important;
}
.ice-setup-list-card {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
}
.ice-welcome-qr img,
.ice-my-qr img,
.ice-host-qr img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
}
.ice-welcome-qr img {
    width: min(220px, 40vw);
    max-height: min(220px, 32vh);
}
.ice-settings-qr-row .ice-my-qr img,
.ice-side-panel .ice-my-qr img {
    width: min(260px, 56vw);
    max-height: min(260px, 38vh);
}
.ice-host-shell {
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.ice-host-hero,
.ice-host-announcement {
    flex: 0 0 auto;
}
.ice-host-grid {
    flex: 1 1 auto;
    min-height: 0;
}
.ice-host-live-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.ice-host-leaderboard-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding-right: .25rem;
}
.ice-host-leaderboard > li {
    transition: background-color .18s ease, transform .18s ease;
}
.ice-host-leaderboard .kswUserAdminMenuWrap,
.ice-host-leaderboard-avatar {
    width: 3rem;
    height: 3rem;
    flex: 0 0 3rem;
}
.ice-host-leaderboard .kswUserAdminMenuWrap img,
.ice-host-leaderboard-avatar {
    width: 3rem !important;
    height: 3rem !important;
    object-fit: cover;
    border-radius: 50%;
    background: #e5e7eb;
}
.ice-state-badge-clickable {
    border: 0;
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
    vertical-align: middle;
}
.ice-state-badge-clickable:hover,
.ice-state-badge-clickable:focus {
    text-decoration: none;
    filter: brightness(.95);
}
.ice-state-badge-clickable.disabled,
.ice-state-badge-clickable:disabled {
    pointer-events: none;
    opacity: .75;
}
.ice-dependent-options {
    margin-top: -.35rem;
    margin-left: 1.75rem;
    padding: .85rem .95rem .95rem;
    border-left: 3px solid rgba(13, 110, 253, .28);
    border-radius: .75rem;
    background: rgba(13, 110, 253, .035);
}
.ice-dependent-options .row {
    margin-left: 0;
    margin-right: 0;
}
@media (max-width: 575.98px) {
    .ice-dependent-options {
        margin-left: .75rem;
        padding: .75rem;
    }
}
@media (max-width: 575.98px) {
    .ice-welcome-qr img {
        width: min(176px, 44vw);
        max-height: 176px;
    }
    .ice-settings-qr-row .ice-my-qr img,
    .ice-side-panel .ice-my-qr img {
        width: min(190px, 48vw);
        max-height: 190px;
    }
}
@media (max-width: 900px) {
    .ice-host-screen { overflow: hidden; }
    .ice-host-shell { overflow: hidden; }
}

/* Pass 29 setup-card and live-display refinements */
.ice-join-qr img,
.ice-my-qr img,
.ice-welcome-qr img,
.ice-host-qr img,
.ice-signage-qr img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    width: 100%;
    height: auto;
}

.ice-welcome-qr img,
.ice-my-qr img {
    max-width: min(220px, 42vw);
    max-height: min(220px, 42vw);
}

.ice-setup-answer-question {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .01em;
    margin-bottom: .4rem;
}
.ice-setup-mode-row {
    display: flex;
    justify-content: flex-end;
}

.ice-setup-list {
    display: grid;
    gap: .85rem;
}

.ice-setup-list-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 .25rem .75rem rgba(0,0,0,.04);
}

.ice-user-menu-wrap,
.ice-user-avatar-menu {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}

.ice-wall-avatar,
.ice-user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
}

.ice-host-live-panel {
    min-height: 0;
}

.ice-host-leaderboard-wrap {
    min-height: 0;
    overflow: hidden;
}

.ice-host-leaderboard {
    max-height: min(46vh, 34rem);
    overflow: auto;
    padding-right: .25rem;
}

@media (max-width: 480px) {
    .ice-setup-mode-row {
        justify-content: stretch;
    }
    .ice-setup-mode-row .btn-group {
        width: 100%;
    }
    .ice-welcome-qr img,
    .ice-my-qr img {
        max-width: 150px;
        max-height: 150px;
    }
}

/* Pass 30: fullscreen player tabs, compact QR header, and card-flip picker */
.ice-fullscreen,
.ice-fullscreen .ice-app {
    height: 100vh;
    overflow: hidden;
}

.ice-main-with-nav {
    height: calc(100vh - 64px - env(safe-area-inset-top));
    max-height: calc(100vh - 64px - env(safe-area-inset-top));
    overflow: hidden;
    box-sizing: border-box;
    padding-bottom: calc(5.15rem + env(safe-area-inset-bottom));
}

.ice-main-with-nav > .ice-play-section.is-active {
    height: 100%;
    min-height: 0;
    overflow: auto;
}

.ice-play-section,
.ice-live-section {
    display: none;
    opacity: 0;
}

.ice-play-section.is-active,
.ice-live-section.is-active {
    display: block;
    opacity: 1;
}

.ice-live-shell,
.ice-live-section {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.ice-live-play-grid {
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.ice-live-player-strip {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .85rem;
    align-items: center;
    padding: .75rem;
}

.ice-live-qr-mini {
    width: clamp(104px, 26vw, 152px);
    aspect-ratio: 1 / 1;
    padding: .35rem;
    border-radius: .85rem;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ice-live-qr-mini img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.ice-live-player-summary {
    display: grid;
    gap: .35rem;
}

.ice-live-player-avatar {
    flex: 0 0 auto;
}

.ice-live-card-stage {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
    perspective: 1400px;
}

.ice-task-card-flip {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    transform-style: preserve-3d;
    transition: transform .32s ease;
}

.ice-task-card-flip.is-flipped {
    transform: rotateY(180deg);
}

.ice-task-card-face {
    position: absolute;
    inset: 0;
    min-height: 0;
    backface-visibility: hidden;
}

.ice-task-card-back {
    transform: rotateY(180deg);
}

.ice-current-card-live,
.ice-card-picker-panel,
.ice-live-list-panel {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.ice-current-card-live {
    justify-content: flex-start;
}

.ice-current-card-live h1 {
    font-size: clamp(2.1rem, 4vw, 3rem);
}

.ice-card-picker-panel,
.ice-live-list-panel {
    display: flex;
    flex-direction: column;
}

.ice-open-card-list-scroll,
.ice-live-scroll-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding-right: .25rem;
}

.ice-live-list-panel h1 {
    flex: 0 0 auto;
    margin: 0 0 1rem;
    font-size: clamp(1.7rem, 5vw, 2.45rem);
}

.ice-live-leaderboard-avatar,
.ice-leaderboard-list .ice-user-menu-wrap {
    flex: 0 0 auto;
}

.ice-code-summary {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
}

.ice-play-nav {
    grid-template-columns: repeat(auto-fit, minmax(4.6rem, 1fr));
}

.ice-more-menu .offcanvas-body {
    padding-top: .5rem;
}

@media (max-width: 575.98px) {
    .ice-main-with-nav {
        height: calc(100vh - 58px - env(safe-area-inset-top));
        max-height: calc(100vh - 58px - env(safe-area-inset-top));
        padding: .75rem .75rem calc(4.75rem + env(safe-area-inset-bottom));
    }
    .ice-live-player-strip {
        grid-template-columns: auto minmax(0, 1fr);
        gap: .65rem;
        padding: .65rem;
    }
    .ice-live-qr-mini {
        width: clamp(92px, 29vw, 122px);
        padding: .28rem;
    }
    .ice-live-player-summary .ice-player-code.compact-code {
        font-size: clamp(1.05rem, 5.3vw, 1.5rem);
        letter-spacing: .12em;
        margin-top: 0;
    }
    .ice-live-player-summary .ice-progress-line {
        font-size: .82rem;
        gap: .35rem;
    }
    .ice-current-card-live {
        padding: .9rem;
    }
    .ice-current-card-live h1 {
        font-size: clamp(1.75rem, 8vw, 2.7rem);
        margin-bottom: .75rem;
    }
    .ice-live-action-buttons .btn-lg {
        padding-top: .72rem;
        padding-bottom: .72rem;
        font-size: 1rem;
    }
    .ice-live-list-panel,
    .ice-card-picker-panel {
        padding: .9rem;
    }
}

@media (max-width: 420px) {
    .ice-live-qr-mini {
        width: 98px;
    }
    .ice-live-player-avatar {
        width: 38px !important;
        height: 38px !important;
    }
}

/* Pass 30: fullscreen player tab layout and compact live game screen */
.ice-fullscreen,
.ice-fullscreen .ice-app {
    height: 100dvh;
    overflow: hidden;
}

.ice-main-with-nav {
    height: calc(100dvh - 64px);
    min-height: 0;
    overflow: hidden;
    padding-bottom: calc(4.9rem + env(safe-area-inset-bottom));
}

.ice-play-section,
.ice-live-section {
    display: none;
    height: 100%;
    min-height: 0;
    opacity: 0;
}

.ice-play-section.is-active,
.ice-live-section.is-active {
    display: block;
    opacity: 1;
}

.ice-play-section.is-active {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.ice-live-shell {
    height: 100%;
    min-height: 0;
}

.ice-live-section.is-active {
    overflow: hidden;
}

.ice-live-play-grid {
    height: 100%;
    min-height: 0;
    max-width: 760px;
    margin: 0 auto;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: .75rem;
}

.ice-live-player-strip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .75rem;
    padding: .65rem .75rem;
}

.ice-live-qr-mini {
    width: min(8.25rem, 30vw);
    height: min(8.25rem, 30vw);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: .8rem;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    overflow: hidden;
}

.ice-live-qr-mini img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.ice-live-player-summary {
    display: grid;
    gap: .3rem;
}

.ice-live-player-summary .ice-player-code.compact-code {
    margin-top: 0;
    font-size: clamp(1.3rem, 7vw, 1.85rem);
}

.ice-live-player-avatar {
    flex: 0 0 auto;
}

.ice-live-card-stage {
    min-height: 0;
    perspective: 1200px;
}

.ice-task-card-flip {
    position: relative;
    height: 100%;
    min-height: 0;
    transform-style: preserve-3d;
    transition: transform .34s ease;
}

.ice-task-card-flip.is-flipped {
    transform: rotateY(180deg);
}

.ice-task-card-face {
    position: absolute;
    inset: 0;
    min-height: 0;
    display: flex;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.ice-task-card-front {
    transform: rotateY(0deg);
}

.ice-task-card-back {
    transform: rotateY(180deg);
}

.ice-current-card-live,
.ice-card-picker-panel {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.ice-card-picker-panel {
    display: flex;
    flex-direction: column;
}

.ice-open-card-list-scroll {
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: .15rem;
}

.ice-live-list-panel {
    height: 100%;
    min-height: 0;
    max-width: 760px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ice-live-list-panel > h1,
.ice-live-list-panel > .ice-section-title-row,
.ice-live-list-panel > .ice-wall-form {
    flex: 0 0 auto;
}

.ice-live-scroll-list,
.ice-player-leaderboard-list {
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.ice-more-menu .offcanvas-body .d-grid,
.ice-more-menu .ice-more-menu {
    gap: .75rem;
}

.ice-settings-code-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.ice-settings-code-row > div,
.ice-code-summary {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .9rem;
    padding: .85rem;
    background: #fff;
}

@media (max-width: 480px) {
    .ice-live-player-strip {
        grid-template-columns: auto minmax(0, 1fr);
        padding: .55rem;
    }
    .ice-live-qr-mini {
        width: min(6.8rem, 30vw);
        height: min(6.8rem, 30vw);
    }
    .ice-live-player-summary .ice-progress-line {
        font-size: .86rem;
        gap: .4rem;
    }
    .ice-current-card-live h1 {
        font-size: clamp(1.65rem, 8vw, 2.7rem);
    }
    .ice-settings-code-row {
        grid-template-columns: 1fr;
    }
}

/* Icebreakers Pass 31: player custom-card editor and scanner fallback */
.ice-custom-cards-panel {
    display: grid;
    gap: .85rem;
}
.ice-custom-cards-list {
    display: grid;
    gap: .65rem;
}
.ice-custom-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .85rem;
    background: #fff;
}
.ice-custom-card-main {
    min-width: 0;
    flex: 1 1 auto;
}
.ice-custom-card-main strong {
    display: block;
    overflow-wrap: anywhere;
}
.ice-custom-card-actions {
    display: inline-flex;
    gap: .35rem;
    flex: 0 0 auto;
}
.ice-scan-fallback {
    display: grid;
    gap: .5rem;
    margin-top: .85rem;
}
@media (max-width: 420px) {
    .ice-custom-card {
        align-items: stretch;
        flex-direction: column;
    }
    .ice-custom-card-actions {
        justify-content: flex-end;
    }
}


/* Icebreakers Pass 33: line-goal grid and clearer live goal status */
.ice-line-goal-summary {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .8rem .9rem;
    border: 1px solid rgba(37,99,235,.18);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(255,255,255,.92));
}
.ice-line-goal-summary-icon {
    flex: 0 0 auto;
    width: 2.3rem;
    height: 2.3rem;
    border-radius: .75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #2563eb;
    box-shadow: 0 .35rem .8rem rgba(37,99,235,.12);
}
.ice-line-goal-label {
    font-weight: 800;
    color: #111827;
    line-height: 1.15;
}
.ice-line-goal-copy {
    color: #4b5563;
    font-size: .92rem;
    line-height: 1.25;
}
.ice-goal-grid-panel {
    gap: .65rem;
}
.ice-goal-grid {
    --ice-goal-grid-size: 3;
    display: grid;
    grid-template-columns: repeat(var(--ice-goal-grid-size), minmax(0, 1fr));
    gap: .45rem;
    flex: 0 0 auto;
}
.ice-goal-cell {
    position: relative;
    aspect-ratio: 1 / 1;
    min-width: 0;
    border: 1px solid rgba(0,0,0,.1);
    border-radius: .9rem;
    padding: .48rem;
    background: #fff;
    color: #1f2937;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .22rem;
    box-shadow: 0 .25rem .8rem rgba(15,23,42,.05);
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
a.ice-goal-cell:hover {
    color: #111827;
    transform: translateY(-1px);
    border-color: #2563eb;
    box-shadow: 0 .45rem 1rem rgba(37,99,235,.14);
}
.ice-goal-cell-number {
    position: absolute;
    top: .38rem;
    left: .45rem;
    font-weight: 800;
    font-size: .72rem;
    color: #6b7280;
}
.ice-goal-cell-icon {
    font-size: 1.05rem;
    line-height: 1;
    color: #94a3b8;
}
.ice-goal-cell-text {
    width: 100%;
    font-size: clamp(.62rem, 1.55vw, .82rem);
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
.ice-goal-cell.is-complete {
    background: rgba(22,163,74,.1);
    border-color: rgba(22,163,74,.35);
}
.ice-goal-cell.is-complete .ice-goal-cell-icon,
.ice-goal-cell.is-complete .ice-goal-cell-number {
    color: #15803d;
}
.ice-goal-cell.is-current {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37,99,235,.15), 0 .45rem 1rem rgba(37,99,235,.12);
}
.ice-goal-cell.is-current .ice-goal-cell-icon {
    color: #2563eb;
}

.ice-goal-cell.is-free {
    background: rgba(37,99,235,.08);
    border-color: rgba(37,99,235,.28);
}
.ice-goal-cell.is-free .ice-goal-cell-icon,
.ice-goal-cell.is-free .ice-goal-cell-number {
    color: #2563eb;
}
.ice-goal-cell.is-free .ice-goal-cell-text {
    font-weight: 900;
    letter-spacing: .08em;
}
.ice-goal-legend .fa-star {
    color: #2563eb;
}
.ice-goal-cell.is-best-line:not(.is-winning-line) {
    border-color: rgba(245,158,11,.62);
}
.ice-goal-cell.is-winning-line {
    border-color: rgba(22,163,74,.75);
    box-shadow: 0 0 0 2px rgba(22,163,74,.16), 0 .45rem 1rem rgba(22,163,74,.12);
}
.ice-goal-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .75rem;
    color: #6b7280;
    font-size: .86rem;
    flex: 0 0 auto;
}
.ice-goal-legend span {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
}
.ice-goal-grid-panel .ice-open-card-list-scroll {
    flex: 1 1 auto;
}
@media (max-width: 480px) {
    .ice-line-goal-summary {
        align-items: flex-start;
        padding: .7rem;
        gap: .55rem;
    }
    .ice-line-goal-summary .btn {
        padding-left: .65rem;
        padding-right: .65rem;
    }
    .ice-goal-grid {
        gap: .32rem;
    }
    .ice-goal-cell {
        border-radius: .7rem;
        padding: .34rem;
    }
    .ice-goal-cell-text {
        -webkit-line-clamp: 2;
        font-size: clamp(.52rem, 2.2vw, .68rem);
    }
}

/* Icebreakers Pass 34: settings uses the same standard sub-tab treatment as Cards. */
.ice-settings-tab-content {
    min-height: 18rem;
}

/* Icebreakers Pass 34: keep player content above the fixed bottom nav. */
.ice-fullscreen {
    --ice-play-nav-height: calc(4.7rem + env(safe-area-inset-bottom));
}
.ice-fullscreen .ice-main-with-nav {
    height: calc(100vh - var(--ice-play-nav-height) - env(safe-area-inset-top));
    max-height: calc(100vh - var(--ice-play-nav-height) - env(safe-area-inset-top));
    padding-bottom: .75rem;
}
@supports (height: 100dvh) {
    .ice-fullscreen .ice-main-with-nav {
        height: calc(100dvh - var(--ice-play-nav-height) - env(safe-area-inset-top));
        max-height: calc(100dvh - var(--ice-play-nav-height) - env(safe-area-inset-top));
    }
}

/* Icebreakers Pass 286: compact Game Health cards stay readable when shown in setup details. */
.ice-game-health {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
    margin-bottom: 1rem;
}
@media (min-width: 768px) {
    .ice-game-health { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ice-health-card {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .85rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .25rem .75rem rgba(15,23,42,.04);
}
.ice-health-icon {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(108,117,125,.12);
    flex: 0 0 auto;
}
.ice-health-body { min-width: 0; }
.ice-health-title {
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .035em;
    color: var(--bs-secondary-color, #6c757d);
}
.ice-health-value {
    font-weight: 800;
    line-height: 1.18;
    margin-top: .15rem;
}
.ice-health-detail {
    color: var(--bs-secondary-color, #6c757d);
    font-size: .88rem;
    line-height: 1.25;
    margin-top: .18rem;
}
.ice-health-card.is-success { border-color: rgba(25,135,84,.28); }
.ice-health-card.is-success .ice-health-icon { color: var(--bs-success, #198754); background: rgba(25,135,84,.12); }
.ice-health-card.is-warning { border-color: rgba(255,193,7,.42); }
.ice-health-card.is-warning .ice-health-icon { color: #9a6a00; background: rgba(255,193,7,.16); }
.ice-health-card.is-danger { border-color: rgba(220,53,69,.34); }
.ice-health-card.is-danger .ice-health-icon { color: var(--bs-danger, #dc3545); background: rgba(220,53,69,.12); }
.ice-health-card.is-info { border-color: rgba(13,202,240,.34); }
.ice-health-card.is-info .ice-health-icon { color: var(--bs-info, #0dcaf0); background: rgba(13,202,240,.12); }


/* Icebreakers Pass 40: Manage state picker and stronger Final Deck status. */
.ice-deck-status {
    margin-top: .6rem;
    margin-bottom: .75rem;
}
.ice-deck-status a {
    font-weight: 700;
    white-space: nowrap;
}
.ice-state-modal .ice-state-choice-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
    align-items: stretch;
}
@media (min-width: 1200px) {
    .ice-state-modal .ice-state-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ice-state-modal .ice-state-choice {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-height: 0;
    border-radius: .9rem;
    border: 1px solid rgba(0,0,0,.08);
    padding: .8rem;
    cursor: pointer;
    background: #fff;
}
.ice-state-modal .ice-state-choice.is-selected {
    border-color: rgba(13,110,253,.38);
    background: rgba(13,110,253,.055);
}
.ice-state-modal .ice-state-choice-icon {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: .75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: rgba(13,110,253,.08);
}
.ice-state-modal .ice-state-choice-copy {
    min-width: 0;
    flex: 1 1 auto;
}


/* Icebreakers Pass 41: guided Settings presets. */
.ksw-icebreakers-manage .ice-settings-preset-panel {
    padding: 1rem;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(59,130,246,.06), rgba(255,255,255,.98));
}
.ksw-icebreakers-manage .ice-settings-preset-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.ksw-icebreakers-manage .ice-settings-preset-card {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    width: 100%;
    min-height: 9rem;
    padding: .9rem;
    border: 1px solid rgba(15,23,42,.12);
    border-radius: .95rem;
    background: rgba(255,255,255,.92);
    color: inherit;
    text-align: left;
    box-shadow: 0 .35rem .9rem rgba(15,23,42,.04);
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.ksw-icebreakers-manage .ice-settings-preset-card:hover,
.ksw-icebreakers-manage .ice-settings-preset-card:focus {
    border-color: rgba(13,110,253,.45);
    box-shadow: 0 .6rem 1.35rem rgba(15,23,42,.09);
    transform: translateY(-1px);
    outline: none;
}
.ksw-icebreakers-manage .ice-settings-preset-card.active,
.ksw-icebreakers-manage .ice-settings-preset-card.is-active {
    border-color: rgba(13,110,253,.75);
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.12), 0 .6rem 1.35rem rgba(15,23,42,.08);
}
.ksw-icebreakers-manage .ice-preset-title {
    font-weight: 700;
    color: #1f2937;
}
.ksw-icebreakers-manage .ice-preset-copy {
    color: #4b5563;
    line-height: 1.3;
}
.ksw-icebreakers-manage .ice-preset-meta {
    margin-top: auto;
    color: #6b7280;
    font-size: .85rem;
}
@media (max-width: 1199.98px) {
    .ksw-icebreakers-manage .ice-settings-preset-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-settings-preset-panel {
        padding: .85rem;
    }
    .ksw-icebreakers-manage .ice-settings-preset-grid {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-settings-preset-card {
        min-height: 0;
    }
}

.ice-fine-print {
    font-size: .875rem;
    line-height: 1.35;
}


/* Icebreakers Pass 42: bottom navigation defines the usable player viewport. */
.ice-fullscreen {
    --ice-viewport-height: 100vh;
    --ice-topbar-height: 64px;
    --ice-play-topbar-height: var(--ice-topbar-height);
    --ice-play-nav-height: calc(4.9rem + env(safe-area-inset-bottom));
    --ice-play-main-height: calc(var(--ice-viewport-height) - var(--ice-play-topbar-height) - var(--ice-play-nav-height));
}
@supports (height: 100dvh) {
    .ice-fullscreen {
        --ice-viewport-height: 100dvh;
    }
}
.ice-fullscreen,
.ice-fullscreen .ice-app {
    height: var(--ice-viewport-height);
    min-height: var(--ice-viewport-height);
    max-height: var(--ice-viewport-height);
    overflow: hidden;
}
.ice-fullscreen .ice-main-with-nav {
    flex: 0 0 var(--ice-play-main-height);
    height: var(--ice-play-main-height);
    min-height: 0;
    max-height: var(--ice-play-main-height);
    overflow: hidden;
    box-sizing: border-box;
    padding: .75rem 1rem;
    scroll-padding-bottom: .75rem;
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active,
.ice-fullscreen .ice-main-with-nav > .ice-live-shell,
.ice-fullscreen .ice-live-shell,
.ice-fullscreen .ice-live-section.is-active,
.ice-fullscreen .ice-live-play-grid,
.ice-fullscreen .ice-live-card-stage,
.ice-fullscreen .ice-task-card-flip,
.ice-fullscreen .ice-task-card-face {
    height: 100%;
    max-height: 100%;
    min-height: 0;
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active,
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel,
.ice-fullscreen .ice-live-scroll-list,
.ice-fullscreen .ice-open-card-list-scroll {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    overflow: auto;
}
.ice-fullscreen .ice-main-with-nav .ice-live-section.is-active,
.ice-fullscreen .ice-live-shell,
.ice-fullscreen .ice-live-play-grid {
    overflow: hidden;
}
.ice-fullscreen .ice-card-picker-panel,
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-live-list-panel {
    max-height: 100%;
    min-height: 0;
}
.ice-fullscreen .ice-play-nav {
    box-sizing: border-box;
    height: auto;
    min-height: 0;
}
.ice-play-nav-btn.active,
.ice-play-nav-btn.is-active,
.ice-play-nav-btn:focus,
.ice-play-nav-btn:hover {
    background: rgba(255,255,255,.14);
    color: #fff;
}
.ice-play-nav-btn:focus-visible {
    outline: 2px solid rgba(255,255,255,.75);
    outline-offset: 2px;
}
@media (max-width: 575.98px) {
    .ice-fullscreen .ice-main-with-nav {
        padding: .65rem .65rem .75rem;
    }
}/* Icebreakers Pass 43: live-run protection. */
.ksw-icebreakers-manage .ice-run-lock-alert,
.ksw-icebreakers-manage .ice-run-lock-banner,
.ksw-icebreakers-manage [data-ice-run-state-lock-banner] {
    border-radius: .95rem;
    border-style: dashed;
}
.ksw-icebreakers-manage .ice-run-state-locked {
    position: relative;
    opacity: .78;
}
.ksw-icebreakers-manage .ice-run-state-locked::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: .75rem;
    pointer-events: none;
    background: repeating-linear-gradient(135deg, rgba(255,193,7,.045), rgba(255,193,7,.045) 8px, rgba(255,255,255,0) 8px, rgba(255,255,255,0) 16px);
}
.ksw-icebreakers-manage .ice-run-state-locked .form-control,
.ksw-icebreakers-manage .ice-run-state-locked .form-select,
.ksw-icebreakers-manage .ice-run-state-locked .form-check-input,
.ksw-icebreakers-manage [data-ice-run-locked-field="y"],
.ksw-icebreakers-manage [data-ice-run-lock-action].disabled,
.ksw-icebreakers-manage [data-ice-run-state-action].ice-run-state-action-disabled,
.ksw-icebreakers-manage [data-ice-run-state-action][aria-disabled="true"],
.ksw-icebreakers-manage [data-ice-run-lock-action][aria-disabled="true"],
.ksw-icebreakers-manage .ice-settings-preset-card.disabled,
.ksw-icebreakers-manage [data-ice-settings-preset].disabled,
.ksw-icebreakers-manage .ice-sort-disabled .ice-host-card-handle,
.ksw-icebreakers-manage .ice-sortable-disabled .ice-host-card-handle {
    cursor: not-allowed;
}
.ksw-icebreakers-manage .ice-settings-preset-card:disabled,
.ksw-icebreakers-manage .ice-settings-preset-card.disabled,
.ksw-icebreakers-manage [data-ice-run-state-action].ice-run-state-action-disabled,
.ksw-icebreakers-manage [data-ice-run-state-action][aria-disabled="true"],
.ksw-icebreakers-manage [data-ice-run-lock-action][aria-disabled="true"],
.ksw-icebreakers-manage .ice-sort-disabled .ice-host-card-handle,
.ksw-icebreakers-manage .ice-sortable-disabled .ice-host-card-handle {
    opacity: .62;
}
.ksw-icebreakers-manage .ice-settings-preset-card:disabled,
.ksw-icebreakers-manage .ice-settings-preset-card.disabled {
    transform: none;
    box-shadow: none;
}

/* Icebreakers Pass 44: native advanced sections for dense Manage settings. */
.ksw-icebreakers-manage .ice-settings-advanced {
    border: 1px solid rgba(15,23,42,.1);
    border-radius: .9rem;
    background: rgba(255,255,255,.86);
    padding: 0;
}
.ksw-icebreakers-manage .ice-settings-advanced + .ice-settings-advanced {
    margin-top: .75rem;
}
.ksw-icebreakers-manage .ice-settings-advanced > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    cursor: pointer;
    padding: .85rem 1rem;
    font-weight: 700;
    list-style: none;
    position: relative;
}
.ksw-icebreakers-manage .ice-settings-advanced > summary::-webkit-details-marker {
    display: none;
}
.ksw-icebreakers-manage .ice-settings-advanced > summary::after {
    content: "\f0d7";
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome, sans-serif;
    font-weight: 900;
    color: var(--bs-secondary-color, #6c757d);
    transition: transform .15s ease;
}
.ksw-icebreakers-manage .ice-settings-advanced[open] > summary {
    border-bottom: 1px solid rgba(15,23,42,.08);
}
.ksw-icebreakers-manage .ice-settings-advanced[open] > summary::after {
    transform: rotate(180deg);
}
.ksw-icebreakers-manage .ice-settings-advanced > summary small {
    margin-left: auto;
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 500;
    text-align: right;
}
.ksw-icebreakers-manage .ice-settings-advanced > .row,
.ksw-icebreakers-manage .ice-settings-advanced > div {
    padding: 0 1rem 1rem;
}
.ksw-icebreakers-manage .ice-settings-advanced .ice-dependent-options {
    margin-left: .35rem;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-settings-advanced > summary {
        align-items: flex-start;
        flex-direction: column;
        gap: .2rem;
    }
    .ksw-icebreakers-manage .ice-settings-advanced > summary::after {
        position: absolute;
        right: 1rem;
        top: .9rem;
    }
    .ksw-icebreakers-manage .ice-settings-advanced > summary small {
        margin-left: 0;
        padding-right: 1.35rem;
        text-align: left;
    }
}


/* Icebreakers Pass 45: keep player modals and overlays inside the usable area above the bottom nav. */
.ice-fullscreen .modal {
    --ice-modal-safe-bottom: var(--ice-play-nav-height, calc(4.9rem + env(safe-area-inset-bottom)));
    --ice-modal-safe-top: env(safe-area-inset-top);
}
.ice-fullscreen .modal-dialog {
    margin-top: max(.5rem, var(--ice-modal-safe-top));
    margin-bottom: calc(var(--ice-modal-safe-bottom) + .65rem);
    max-height: calc(var(--ice-viewport-height, 100vh) - var(--ice-modal-safe-bottom) - var(--ice-modal-safe-top) - 1.15rem);
}
.ice-fullscreen .modal-content {
    max-height: inherit;
    overflow: hidden;
}
.ice-fullscreen .modal-body {
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 575.98px) {
    .ice-fullscreen .modal-fullscreen-sm-down {
        height: calc(var(--ice-viewport-height, 100vh) - var(--ice-play-nav-height, 4.9rem));
        max-height: calc(var(--ice-viewport-height, 100vh) - var(--ice-play-nav-height, 4.9rem));
        margin-bottom: var(--ice-play-nav-height, 4.9rem);
    }
}
.ice-fullscreen .ice-more-menu.offcanvas,
.ice-fullscreen .offcanvas.ice-more-menu {
    bottom: var(--ice-play-nav-height, calc(4.9rem + env(safe-area-inset-bottom)));
    max-height: calc(var(--ice-viewport-height, 100vh) - var(--ice-play-nav-height, 4.9rem));
}
.ice-fullscreen #wndSendMessage .modal-body,
.ice-fullscreen #iceManualCodeModal .modal-body,
.ice-fullscreen #iceScanModal .modal-body {
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
}
@media (max-width: 575.98px) {
    .ice-fullscreen .modal-dialog:not(.modal-fullscreen-sm-down) {
        margin-left: .65rem;
        margin-right: .65rem;
    }
}

/* Pass 45 Final Deck live-preview cleanup */
.ksw-icebreakers-manage .ice-final-deck-panel .ice-table-filter,
.ksw-icebreakers-manage .ice-setup-assignment-review .ice-table-filter {
    max-width: 18rem;
}

.ksw-icebreakers-manage .ice-source-card-pool {
    border: 1px solid rgba(108, 117, 125, .25);
    border-radius: .75rem;
    padding: .85rem 1rem;
    background: #fff;
}

.ksw-icebreakers-manage .ice-source-card-pool > summary {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    font-weight: 700;
    list-style: none;
}

.ksw-icebreakers-manage .ice-source-card-pool > summary::-webkit-details-marker {
    display: none;
}

.ksw-icebreakers-manage .ice-source-card-pool > summary::after {
    content: "\f0d7";
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free";
    font-weight: 900;
    color: var(--bs-secondary-color);
    transition: transform .15s ease;
}

.ksw-icebreakers-manage .ice-source-card-pool[open] > summary::after {
    transform: rotate(180deg);
}

.ksw-icebreakers-manage .ice-source-card-pool > summary > span:last-child {
    color: var(--bs-secondary-color);
    font-weight: 500;
}

.ksw-icebreakers-manage .ice-mini-progress {
    height: .45rem;
    min-width: 7rem;
    background: rgba(13, 110, 253, .12);
}

/* Icebreakers Pass 46: resilient user menus and Activity live-sync polish. */
.ice-user-menu-wrap {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    vertical-align: middle;
}
.ice-user-menu-wrap > a {
    display: inline-flex !important;
    align-items: center;
    text-decoration: none;
    border-radius: 999px;
}
.ice-user-menu-wrap .dropdown-menu,
.ice-user-menu-wrap .ksw-user-admin-menu {
    max-width: min(24rem, calc(100vw - 1.5rem));
    white-space: normal;
}
.ice-host-screen .ice-user-menu-wrap .dropdown-menu,
.ice-host-screen .ice-user-menu-wrap .ksw-user-admin-menu {
    font-size: .95rem;
    text-align: left;
}
.ksw-icebreakers-manage .ice-activity-toolbar {
    padding: .85rem 1rem;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: .95rem;
    background: rgba(255,255,255,.86);
}
.ksw-icebreakers-manage .ice-activity-sync {
    transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.ksw-icebreakers-manage .ice-activity-sync.ice-activity-sync-changed {
    background-color: rgba(25,135,84,.12) !important;
    border-color: rgba(25,135,84,.35) !important;
    color: #146c43 !important;
    box-shadow: 0 0 0 .18rem rgba(25,135,84,.08);
}
.ksw-icebreakers-manage .ice-activity-row-new,
.ksw-icebreakers-manage .ice-activity-row-new > td {
    animation: iceActivityRowPulse 1.25s ease-out 1;
}
@keyframes iceActivityRowPulse {
    0% { background-color: rgba(13,110,253,.16); }
    100% { background-color: transparent; }
}

/* Icebreakers Pass 48: Manage > Preflight is now a normal subtab panel. */
.ksw-icebreakers-manage .ice-preflight-panel > .tabs {
    margin-top: .5rem;
}
.ksw-icebreakers-manage .ice-preflight-tab-content {
    border: 1px solid rgba(15, 23, 42, .1);
    border-top: 0;
    border-radius: 0 0 .85rem .85rem;
    background: rgba(255,255,255,.92);
    padding: 1rem;
}
.ksw-icebreakers-manage .ice-preflight-section-heading {
    padding-bottom: .75rem;
    margin-bottom: .85rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-preflight-tab-content {
        padding: .85rem;
    }
}

/* Icebreakers Pass 48: Preflight action map and cleaner subpanels. */
.ksw-icebreakers-manage .ice-preflight-tab-content {
    padding-top: .9rem;
}
.ksw-icebreakers-manage .ice-preflight-section-heading {
    margin-bottom: .75rem;
}
.ksw-icebreakers-manage .ice-preflight-next-steps {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(13, 110, 253, .055), rgba(255,255,255,.96));
    padding: 1rem;
    margin-bottom: 1rem;
}
.ksw-icebreakers-manage .ice-preflight-step-list {
    gap: .5rem;
}
.ksw-icebreakers-manage .ice-preflight-step {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    border-radius: .85rem !important;
    border: 1px solid rgba(15, 23, 42, .08) !important;
    box-shadow: 0 .25rem .75rem rgba(15, 23, 42, .035);
}
.ksw-icebreakers-manage .ice-preflight-step-icon {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: rgba(108, 117, 125, .12);
    color: var(--bs-secondary-color);
}
.ksw-icebreakers-manage .ice-preflight-step-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: .12rem;
}
.ksw-icebreakers-manage .ice-preflight-step-copy > span {
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1.3;
}
.ksw-icebreakers-manage .ice-preflight-step-arrow {
    margin-left: auto;
    color: var(--bs-secondary-color, #6c757d);
}
.ksw-icebreakers-manage .ice-preflight-step.is-success .ice-preflight-step-icon { color: var(--bs-success, #198754); background: rgba(25,135,84,.12); }
.ksw-icebreakers-manage .ice-preflight-step.is-warning .ice-preflight-step-icon { color: #9a6a00; background: rgba(255,193,7,.16); }
.ksw-icebreakers-manage .ice-preflight-step.is-danger .ice-preflight-step-icon { color: var(--bs-danger, #dc3545); background: rgba(220,53,69,.12); }
.ksw-icebreakers-manage .ice-preflight-step.is-info .ice-preflight-step-icon { color: var(--bs-info, #0dcaf0); background: rgba(13,202,240,.12); }
.ksw-icebreakers-manage .ice-preflight-issues .alert:last-child {
    margin-bottom: 0;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-preflight-next-steps {
        padding: .85rem;
    }
    .ksw-icebreakers-manage .ice-preflight-step {
        gap: .55rem;
    }
}

/* Icebreakers Pass 49: Manage workflow and Game Health action center. */
.ksw-icebreakers-manage .ice-manage-workflow {
    margin: 0 0 1rem;
    padding: 1rem;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(13,110,253,.055), rgba(255,255,255,.96));
    box-shadow: 0 .35rem 1.1rem rgba(15,23,42,.045);
}
.ksw-icebreakers-manage .ice-workflow-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: .85rem;
}
.ksw-icebreakers-manage .ice-workflow-badges,
.ksw-icebreakers-manage .ice-workflow-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
    justify-content: flex-end;
}
.ksw-icebreakers-manage .ice-workflow-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .6rem;
    list-style: none;
    padding: 0;
    margin: 0 0 .85rem;
}
.ksw-icebreakers-manage .ice-workflow-step {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    min-height: 4.6rem;
    padding: .75rem;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: .9rem;
    background: rgba(255,255,255,.92);
}
.ksw-icebreakers-manage .ice-workflow-step::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -.62rem;
    width: .62rem;
    border-top: 2px solid rgba(15,23,42,.12);
}
.ksw-icebreakers-manage .ice-workflow-step:last-child::after { display: none; }
.ksw-icebreakers-manage .ice-workflow-step-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: rgba(108,117,125,.14);
    color: #6b7280;
}
.ksw-icebreakers-manage .ice-workflow-step-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.ksw-icebreakers-manage .ice-workflow-step-copy strong {
    line-height: 1.15;
}
.ksw-icebreakers-manage .ice-workflow-step-copy small {
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1.25;
}
.ksw-icebreakers-manage .ice-workflow-step.is-done {
    border-color: rgba(25,135,84,.28);
    background: rgba(25,135,84,.045);
}
.ksw-icebreakers-manage .ice-workflow-step.is-done .ice-workflow-step-icon {
    background: rgba(25,135,84,.13);
    color: var(--bs-success, #198754);
}
.ksw-icebreakers-manage .ice-workflow-step.is-current {
    border-color: rgba(13,110,253,.45);
    background: rgba(13,110,253,.06);
    box-shadow: 0 0 0 .18rem rgba(13,110,253,.08);
}
.ksw-icebreakers-manage .ice-workflow-step.is-current .ice-workflow-step-icon {
    background: rgba(13,110,253,.14);
    color: var(--bs-primary, #0d6efd);
}
.ksw-icebreakers-manage .ice-workflow-step.is-blocked {
    border-color: rgba(220,53,69,.32);
    background: rgba(220,53,69,.045);
}
.ksw-icebreakers-manage .ice-workflow-step.is-blocked .ice-workflow-step-icon {
    background: rgba(220,53,69,.13);
    color: var(--bs-danger, #dc3545);
}
.ksw-icebreakers-manage .ice-workflow-next {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .85rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: .9rem;
    background: rgba(255,255,255,.92);
}
.ksw-icebreakers-manage .ice-workflow-next-copy {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.ksw-icebreakers-manage .ice-workflow-next-copy span {
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1.3;
}
.ksw-icebreakers-manage .ice-workflow-next.is-danger { border-color: rgba(220,53,69,.28); }
.ksw-icebreakers-manage .ice-workflow-next.is-warning { border-color: rgba(255,193,7,.42); }
.ksw-icebreakers-manage .ice-workflow-next.is-success { border-color: rgba(25,135,84,.28); }
@media (max-width: 991.98px) {
    .ksw-icebreakers-manage .ice-workflow-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ksw-icebreakers-manage .ice-workflow-step::after { display: none; }
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-workflow-head,
    .ksw-icebreakers-manage .ice-workflow-next {
        flex-direction: column;
        align-items: stretch;
    }
    .ksw-icebreakers-manage .ice-workflow-badges,
    .ksw-icebreakers-manage .ice-workflow-actions {
        justify-content: flex-start;
    }
    .ksw-icebreakers-manage .ice-workflow-steps {
        grid-template-columns: 1fr;
    }
}

.ksw-icebreakers .ice-submission-examples,
.ksw-icebreakers-manage .ice-submission-examples {
    display: grid;
    gap: .35rem;
    padding: .65rem .75rem;
    border: 1px dashed rgba(13,110,253,.28);
    border-radius: .75rem;
    background: rgba(13,110,253,.04);
    color: var(--bs-secondary-color, #6c757d);
    font-size: .9rem;
    line-height: 1.35;
}
.ksw-icebreakers .ice-submission-examples strong,
.ksw-icebreakers-manage .ice-submission-examples strong {
    color: var(--bs-body-color, #212529);
}

/* Icebreakers Pass 50: player viewport, Bingo summary strip, feedback stars, and cleaner settings layout. */
.ice-fullscreen .ice-live-play-grid {
    box-sizing: border-box;
    padding-bottom: .85rem;
}
.ice-fullscreen .ice-live-card-stage {
    margin-bottom: .35rem;
    touch-action: pan-y;
    pointer-events: auto;
}
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel,
.ice-fullscreen .ice-live-list-panel,
.ice-fullscreen .ice-live-scroll-list,
.ice-fullscreen .ice-open-card-list-scroll {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    pointer-events: auto;
    overscroll-behavior: auto;
}
.ice-current-card .lead,
.ice-current-card-live .lead {
    font-size: clamp(1.05rem, 2vw, 1.5rem);
}
.ice-current-card h1,
.ice-current-card-live h1 {
    font-size: clamp(2.1rem, 4vw, 3rem);
    line-height: 1.04;
    letter-spacing: -.025em;
}
.ice-live-player-strip {
    grid-template-columns: auto minmax(0, 1fr);
}
.ice-live-player-strip.has-line-goal,
.ice-live-player-strip.ice-live-player-strip-has-goal {
    grid-template-columns: auto minmax(0, 1fr) minmax(15rem, .95fr);
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    align-items: stretch;
}
.ice-live-goal-column {
    min-width: 0;
    display: flex;
}
.ice-line-goal-summary-strip {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: .65rem .75rem;
    align-items: center;
}
.ice-line-goal-summary-strip .ice-line-goal-summary-icon {
    width: 2rem;
    height: 2rem;
}
.ice-line-goal-summary-strip .ice-line-goal-copy {
    font-size: .86rem;
    line-height: 1.25;
}
.ice-player-announcement .btn-close,
.ice-host-announcement-close {
    flex: 0 0 auto;
    margin-top: .1rem;
    opacity: .78;
}
.ice-player-announcement .btn-close:hover,
.ice-host-announcement-close:hover,
.ice-player-announcement .btn-close:focus,
.ice-host-announcement-close:focus {
    opacity: 1;
}
.ice-connections-settings {
    flex: 0 0 auto;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .9rem;
    background: #fff;
    padding: .75rem .85rem;
}
.ice-star-rating {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    flex-direction: row;
}
.ice-star-button {
    appearance: none;
    border: 0;
    background: transparent;
    color: #adb5bd;
    font-size: clamp(1.65rem, 4vw, 2.25rem);
    line-height: 1;
    padding: .1rem .14rem;
    cursor: pointer;
    transition: transform .12s ease, color .12s ease;
}
.ice-star-button:hover,
.ice-star-button:focus-visible {
    transform: translateY(-1px) scale(1.04);
    outline: none;
}
.ice-star-button.is-selected,
.ice-star-button.is-hover {
    color: #f5b301;
}
.ice-feedback-form [data-ice-feedback-status] {
    min-height: 1.25em;
}
.ice-feedback-form.is-saving [data-ice-feedback-status]::before {
    content: '';
    display: inline-block;
    width: .65rem;
    height: .65rem;
    margin-right: .35rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: ice-spin .7s linear infinite;
}
@keyframes ice-spin { to { transform: rotate(360deg); } }
.ice-setup-answer-question {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .01em;
}
.ksw-icebreakers-manage #iceSettingsFeatures .ice-settings-toggles > [class*="col-"],
.ksw-icebreakers-manage .ice-settings-single-column > [class*="col-"] {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
}
.ksw-icebreakers-manage #iceSettingsBefore .ice-settings-toggles > [class*="col-"]:not(.col-lg-6) {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
}
@media (max-width: 991.98px) {
    .ice-live-player-strip.has-line-goal,
    .ice-live-player-strip.ice-live-player-strip-has-goal {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .ice-live-player-strip.has-line-goal .ice-live-goal-column,
    .ice-live-player-strip.ice-live-player-strip-has-goal .ice-live-goal-column {
        grid-column: 1 / -1;
        min-height: 0;
    }
}
@media (max-width: 575.98px) {
    .ice-current-card h1,
    .ice-current-card-live h1 {
        font-size: clamp(1.85rem, 8vw, 2.65rem);
    }
    .ice-fullscreen .ice-live-play-grid {
        padding-bottom: .7rem;
    }
    .ice-line-goal-summary-strip {
        height: auto;
    }
}

/* Pass 50 polish: JS-driven hover state for feedback stars. */
.ice-star-button.is-hover,
.ice-star-button.is-selected {
    color: #f5b301;
}

/* Pass 51: responsive Manage tables.  These keep host Activity, Final Deck,
   waiting-room review, and player-detail tables readable on phones without
   rewriting every server-rendered table into separate list markup. */
.ksw-icebreakers-manage table.ice-responsive-table td[data-ice-table-label]::before {
    display: none;
}

@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-responsive-table-wrap,
    .ksw-icebreakers-manage .table-responsive:has(table.ice-responsive-table) {
        overflow: visible;
    }
    .ksw-icebreakers-manage table.ice-responsive-table {
        display: block;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0 .75rem;
        margin-bottom: 0;
    }
    .ksw-icebreakers-manage table.ice-responsive-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody,
    .ksw-icebreakers-manage table.ice-responsive-table tr,
    .ksw-icebreakers-manage table.ice-responsive-table td {
        display: block;
        width: 100%;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody tr {
        background: var(--card-bg, #fff);
        border: 1px solid rgba(0,0,0,.1);
        border-radius: .85rem;
        box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .05);
        padding: .65rem .75rem;
        margin-bottom: .75rem;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody td {
        border: 0 !important;
        padding: .42rem 0 !important;
        min-height: 1.75rem;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody td[data-ice-table-label] {
        display: grid;
        grid-template-columns: minmax(6.75rem, 32%) minmax(0, 1fr);
        gap: .65rem;
        align-items: start;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody td[data-ice-table-label]::before {
        content: attr(data-ice-table-label);
        display: block;
        color: var(--bs-secondary-color);
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .02em;
        line-height: 1.25;
        text-transform: uppercase;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody td[data-ice-table-label="Actions"] {
        display: block;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody td[data-ice-table-label="Actions"]::before {
        margin-bottom: .35rem;
    }
    .ksw-icebreakers-manage table.ice-responsive-table tbody td .btn,
    .ksw-icebreakers-manage table.ice-responsive-table tbody td .form-select,
    .ksw-icebreakers-manage table.ice-responsive-table tbody td .form-control {
        max-width: 100%;
    }
}

@media (max-width: 420px) {
    .ksw-icebreakers-manage table.ice-responsive-table tbody td[data-ice-table-label] {
        grid-template-columns: 1fr;
        gap: .2rem;
    }
}

/* Pass 51: Manage Activity uses responsive list cards instead of dense tables. */
.ksw-icebreakers-manage .ice-activity-list {
    border-radius: 1rem;
    overflow: clip;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
}
.ksw-icebreakers-manage .ice-activity-card {
    border-left: 0;
    border-right: 0;
    padding: .95rem 1rem;
}
.ksw-icebreakers-manage .ice-activity-card:first-child {
    border-top: 0;
}
.ksw-icebreakers-manage .ice-activity-card:last-child {
    border-bottom: 0;
}
.ksw-icebreakers-manage .ice-activity-card.is-muted {
    background: rgba(108, 117, 125, .08);
}
.ksw-icebreakers-manage .ice-activity-card-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .85rem 1rem;
    align-items: start;
}
.ksw-icebreakers-manage .ice-activity-card-copy {
    min-width: 0;
}
.ksw-icebreakers-manage .ice-activity-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem .5rem;
    line-height: 1.25;
}
.ksw-icebreakers-manage .ice-activity-title-row strong {
    min-width: 0;
    overflow-wrap: anywhere;
}
.ksw-icebreakers-manage .ice-activity-body {
    margin-top: .38rem;
    overflow-wrap: anywhere;
    line-height: 1.38;
}
.ksw-icebreakers-manage .ice-activity-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem .75rem;
    margin-top: .45rem;
    color: #64748b;
    font-size: .875rem;
    line-height: 1.3;
}
.ksw-icebreakers-manage .ice-activity-meta > span {
    position: relative;
    max-width: 100%;
    overflow-wrap: anywhere;
}
.ksw-icebreakers-manage .ice-activity-meta > span + span::before {
    content: "";
    position: absolute;
    left: -.42rem;
    top: 50%;
    width: .18rem;
    height: .18rem;
    border-radius: 50%;
    background: currentColor;
    opacity: .5;
    transform: translateY(-50%);
}
.ksw-icebreakers-manage .ice-activity-card-actions {
    display: flex;
    justify-content: flex-end;
    min-width: min(100%, 12rem);
}
.ksw-icebreakers-manage .ice-activity-card-actions .form-select {
    width: auto;
    min-width: 8.5rem;
}
.ksw-icebreakers-manage .ice-rating-stars-inline {
    display: inline-flex;
    align-items: center;
    gap: .12rem;
    color: #adb5bd;
}
.ksw-icebreakers-manage .ice-rating-stars-inline .is-filled {
    color: #f4b400;
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-activity-card-main {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-activity-card-actions {
        justify-content: flex-start;
        min-width: 0;
    }
    .ksw-icebreakers-manage .ice-activity-card-actions form,
    .ksw-icebreakers-manage .ice-activity-card-actions .btn,
    .ksw-icebreakers-manage .ice-activity-card-actions .form-select {
        width: 100%;
    }
    .ksw-icebreakers-manage .ice-activity-card-actions form.d-flex {
        align-items: stretch;
    }
}
.ksw-icebreakers-manage .ice-activity-card.ice-activity-row-new {
    animation: iceActivityRowPulse 1.25s ease-out 1;
}

/* Icebreakers Pass 53: presets only belong in the create-game flow. */
.ksw-icebreakers-manage .ice-create-preset-panel .ice-settings-preset-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ksw-icebreakers-manage .ice-create-preset-card {
    cursor: pointer;
    min-height: 8rem;
}
.ksw-icebreakers-manage .ice-create-preset-card .form-check-input {
    margin: 0 0 .15rem 0;
}
.ksw-icebreakers-manage .ice-create-preset-card[aria-checked="true"] .ice-preset-meta,
.ksw-icebreakers-manage .ice-create-preset-card.is-active .ice-preset-meta {
    color: #0d6efd;
    font-weight: 700;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-create-preset-panel .ice-settings-preset-grid {
        grid-template-columns: 1fr;
    }
}

/* Icebreakers Pass 54: clearer player readiness checklist. */
.ice-readiness-checklist {
    display: grid;
    gap: .65rem;
    margin: 1rem 0 0;
}
.ice-readiness-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .75rem .85rem;
    border: 1px solid #e5e7eb;
    border-radius: .85rem;
    background: #fff;
}
.ice-readiness-item.is-complete {
    border-color: rgba(25, 135, 84, .28);
    background: rgba(25, 135, 84, .04);
}
.ice-readiness-item.needs-work {
    border-color: rgba(255, 193, 7, .35);
    background: rgba(255, 193, 7, .06);
}
.ice-readiness-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: #f3f4f6;
    color: #4b5563;
}
.ice-readiness-item.is-complete .ice-readiness-icon {
    background: rgba(25, 135, 84, .12);
    color: #198754;
}
.ice-readiness-item.needs-work .ice-readiness-icon {
    background: rgba(255, 193, 7, .16);
    color: #8a6d00;
}
.ice-readiness-title {
    font-weight: 700;
    line-height: 1.2;
}
.ice-readiness-detail {
    color: #6b7280;
    font-size: .94rem;
    line-height: 1.35;
    margin-top: .12rem;
}
.ice-readiness-notices {
    padding: .65rem .85rem;
    border: 1px solid #e5e7eb;
    border-radius: .85rem;
    background: #f8fafc;
    color: #4b5563;
    font-size: .94rem;
    display: grid;
    gap: .25rem;
}
@media (max-width: 575.98px) {
    .ice-readiness-item {
        align-items: flex-start;
    }
    .ice-readiness-item .badge {
        margin-top: .1rem;
    }
}

/* Pass 54: Manage Players uses responsive player cards instead of a dense table. */
.ksw-icebreakers-manage .ice-player-list {
    border-radius: 1rem;
    overflow: visible;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
}
.ksw-icebreakers-manage .ice-player-card {
    border-left: 0;
    border-right: 0;
    padding: 1rem;
}
.ksw-icebreakers-manage .ice-player-card:first-child {
    border-top: 0;
}
.ksw-icebreakers-manage .ice-player-card:last-child {
    border-bottom: 0;
}
.ksw-icebreakers-manage .ice-player-card-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(8rem, auto);
    gap: .85rem 1rem;
    align-items: center;
}
.ksw-icebreakers-manage .ice-player-card-person {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.ksw-icebreakers-manage .ice-player-card-status,
.ksw-icebreakers-manage .ice-player-card-progress {
    min-width: 0;
}
.ksw-icebreakers-manage .ice-player-card-progress {
    font-weight: 600;
    color: #334155;
    white-space: nowrap;
}
@media (max-width: 1199.98px) {
    .ksw-icebreakers-manage .ice-player-card-main {
        grid-template-columns: minmax(0, 1fr) minmax(11rem, auto);
    }
    .ksw-icebreakers-manage .ice-player-card-status,
    .ksw-icebreakers-manage .ice-player-card-progress {
        grid-column: 1 / 2;
    }
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-player-card-main {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-player-card-status,
    .ksw-icebreakers-manage .ice-player-card-progress {
        grid-column: auto;
        grid-row: auto;
    }
}

/* Pass 54: non-intrusive network/save indicator for Icebreakers AJAX. */
.ice-network-status {
    position: fixed;
    left: 50%;
    bottom: calc(var(--ice-play-nav-height, 0px) + env(safe-area-inset-bottom, 0px) + .85rem);
    transform: translateX(-50%);
    z-index: 1085;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    max-width: min(92vw, 28rem);
    padding: .5rem .75rem;
    border-radius: 999px;
    color: #fff;
    background: rgba(15, 23, 42, .92);
    box-shadow: 0 .5rem 1.5rem rgba(15, 23, 42, .22);
    font-size: .9rem;
    line-height: 1.25;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .16s ease, visibility .16s ease;
}
.ice-network-status.is-visible {
    opacity: 1;
    visibility: visible;
}
.ice-network-status.is-warning {
    background: rgba(180, 83, 9, .96);
}
.ice-network-status.is-danger {
    background: rgba(185, 28, 28, .96);
}
.ice-network-status .spinner-border {
    width: .9rem;
    height: .9rem;
    border-width: .14rem;
}
/* Pass 55: player viewport/scroll polish, compact QR, menu isolation, and delivery checkbox UI. */
.ice-fullscreen {
    -webkit-user-select: text;
    user-select: text;
}
.ice-fullscreen button,
.ice-fullscreen .btn,
.ice-fullscreen nav,
.ice-fullscreen [role="button"],
.ice-fullscreen img,
.ice-play-nav,
.ice-play-nav * {
    -webkit-user-select: none;
    user-select: none;
}
.ice-fullscreen .ice-main-with-nav {
    padding-bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
}
.ice-fullscreen .ice-player-announcement {
    margin-bottom: .75rem;
}
.ice-fullscreen .ice-live-play-grid {
    padding-bottom: .9rem;
}
.ice-fullscreen .ice-live-card-stage {
    margin-bottom: .75rem;
    overflow: visible;
    touch-action: auto;
    pointer-events: auto;
}
.ice-fullscreen .ice-current-card,
.ice-fullscreen .ice-current-card-live {
    justify-content: flex-start;
    -webkit-user-select: text;
    user-select: text;
    touch-action: auto;
    overscroll-behavior: contain;
}
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel,
.ice-fullscreen .ice-live-list-panel,
.ice-fullscreen .ice-live-scroll-list,
.ice-fullscreen .ice-open-card-list-scroll {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: auto;
    pointer-events: auto;
}
.ice-current-card h1,
.ice-current-card-live h1 {
    font-size: clamp(2.1rem, 4vw, 3rem);
    line-height: 1.04;
}
@media (min-width: 700px) and (max-width: 900px) {
    .ice-current-card h1,
    .ice-current-card-live h1 {
        font-size: clamp(2rem, 4.15vw, 2.75rem);
    }
}
.ice-live-qr-mini {
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
}
.ice-live-qr-mini img {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    display: block;
}
.ice-goal-cell .ice-goal-cell-text {
    font-size: clamp(.78rem, 1.2vw, .98rem);
    line-height: 1.15;
}
.ice-goal-cell.is-current .ice-goal-cell-text,
.ice-goal-cell.is-best-line .ice-goal-cell-text {
    font-size: clamp(.86rem, 1.35vw, 1.05rem);
    font-weight: 800;
}
.ice-delivery-one-at-a-time-options {
    margin-left: 1.45rem;
    padding: .75rem .85rem;
    border-left: 3px solid rgba(13,110,253,.25);
    background: rgba(13,110,253,.04);
    border-radius: .75rem;
}
@media (max-width: 575.98px) {
    .ice-delivery-one-at-a-time-options {
        margin-left: .35rem;
    }
}

/* Pass 56: inline player action status so AJAX saves have visible feedback beyond modal/toast fallbacks. */
.ice-action-status {
    margin: 0 0 .75rem;
    padding: .55rem .75rem;
    border-radius: .75rem;
    font-weight: 600;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}
.ice-fullscreen .ice-action-status {
    position: sticky;
    top: .5rem;
    z-index: 30;
}
.ice-action-status.d-none {
    display: none !important;
}

/* Pass 56: make waiting-room assignment coverage easier to scan than dense tables. */
.ice-waiting-room-review-list {
    max-height: 36rem;
    overflow: auto;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
}
.ice-waiting-room-review-list .list-group-item {
    border-left: 0;
    border-right: 0;
}
.ice-waiting-room-review-list .list-group-item:first-child {
    border-top: 0;
}
.ice-waiting-room-review-list .list-group-item:last-child {
    border-bottom: 0;
}
.ice-waiting-room-review-item {
    padding: .8rem .9rem;
}


/* Icebreakers Pass 62: release-stabilization cleanup. */
.ksw-icebreakers-manage .ice-settings-section {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.ice-custom-card-actions .btn {
    pointer-events: auto;
    position: relative;
    z-index: 2;
}

.ksw-icebreakers-manage .ice-activity-card-main {
    grid-template-columns: minmax(0, 1fr) max-content;
}
.ksw-icebreakers-manage .ice-activity-card-actions {
    min-width: 0 !important;
    max-width: 100%;
    justify-content: flex-end;
}
.ksw-icebreakers-manage .ice-activity-card-actions .btn {
    white-space: nowrap;
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-activity-card-main {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-activity-card-actions {
        justify-content: flex-start;
        width: 100%;
    }
}


/* Icebreakers Pass 60: stabilization polish for player viewport, host display, and cleaner Manage UI. */
.ice-fullscreen .ice-main-with-nav {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding-bottom: calc(.9rem + env(safe-area-inset-bottom, 0px));
}
.ice-fullscreen .ice-main-with-nav > .ice-alert,
.ice-fullscreen .ice-main-with-nav > .ice-action-status,
.ice-fullscreen .ice-main-with-nav > .ice-player-announcement {
    flex: 0 0 auto;
}
.ice-fullscreen .ice-player-announcement {
    margin: 0 !important;
}
.ice-fullscreen .ice-main-with-nav > .ice-live-shell,
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    flex: 1 1 auto;
    height: auto !important;
    max-height: none !important;
    min-height: 0;
}
.ice-fullscreen .ice-live-shell,
.ice-fullscreen .ice-live-section.is-active,
.ice-fullscreen .ice-live-play-grid {
    min-height: 0;
}
.ice-fullscreen .ice-live-card-stage {
    min-height: 0;
    margin-bottom: .9rem;
    overflow: hidden;
}
.ice-fullscreen .ice-task-card-flip,
.ice-fullscreen .ice-task-card-face {
    min-height: 0;
}
.ice-fullscreen .ice-task-card-face {
    overflow: hidden;
}
.ice-fullscreen .ice-current-card,
.ice-fullscreen .ice-current-card-live {
    justify-content: flex-start !important;
    align-items: stretch;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: auto;
    overscroll-behavior: contain;
}
.ice-fullscreen .ice-current-card-live > * {
    flex: 0 0 auto;
}
.ice-fullscreen .ice-main,
.ice-fullscreen .ice-panel,
.ice-fullscreen .ice-current-card,
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel,
.ice-fullscreen .ice-live-list-panel,
.ice-fullscreen .ice-live-scroll-list,
.ice-fullscreen .ice-open-card-list-scroll,
.ice-fullscreen .ice-player-announcement {
    -webkit-user-select: text;
    user-select: text;
}
.ice-fullscreen .ice-player-announcement .btn-close,
.ice-fullscreen .ice-live-action-buttons,
.ice-fullscreen .ice-live-action-buttons *,
.ice-fullscreen .ice-play-nav,
.ice-fullscreen .ice-play-nav * {
    -webkit-user-select: none;
    user-select: none;
}

.ksw-icebreakers-manage .ice-dependent-options {
    margin-top: 0 !important;
    margin-left: 2rem !important;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-dependent-options {
        margin-left: 1rem !important;
    }
}

.ksw-icebreakers-manage .ice-player-detail-modal .tab-content {
    border: 1px solid rgba(15,23,42,.08);
    border-top: 0;
    border-radius: 0 0 .85rem .85rem;
    padding: 1rem;
    background: #fff;
}

.ksw-icebreakers-manage .ice-activity-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}
.ksw-icebreakers-manage .ice-activity-card-actions form {
    margin: 0;
}

.ice-host-screen {
    min-height: 100dvh;
    overflow: auto;
}
.ice-host-shell {
    min-height: 100dvh;
    height: auto;
    overflow: visible;
    padding: clamp(.85rem, 2vw, 1.75rem);
}
.ice-host-hero {
    margin-bottom: clamp(.75rem, 1.6vh, 1.4rem);
}
.ice-host-hero h1 {
    font-size: clamp(2rem, 4.8vw, 4.35rem);
}
.ice-host-hero p {
    font-size: clamp(.98rem, 1.35vw, 1.25rem);
}
.ice-host-grid {
    grid-template-columns: minmax(18rem, .9fr) minmax(22rem, 1.1fr);
    align-items: stretch;
}
.ice-host-qr-panel,
.ice-host-live-panel {
    padding: clamp(.9rem, 1.8vw, 1.5rem);
}
.ice-host-qr-panel h2,
.ice-host-live-panel h2 {
    font-size: clamp(1.55rem, 3vw, 2.5rem);
    line-height: 1;
    margin-bottom: clamp(.55rem, 1.3vh, 1rem);
}
.ice-host-qr {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 0;
}
.ice-host-qr img {
    width: min(100%, clamp(12rem, 42vh, 30rem)) !important;
    max-width: 100% !important;
    height: auto !important;
    display: block;
    margin-inline: auto;
}
.ice-host-code {
    font-size: clamp(1.45rem, 4vw, 3.8rem);
    margin-top: clamp(.35rem, 1vh, .7rem);
}
.ice-host-link {
    font-size: clamp(.72rem, .95vw, .95rem);
}
.ice-host-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.35rem, 1vw, .65rem);
    margin-bottom: clamp(.55rem, 1.3vh, 1rem);
}
.ice-host-stats div {
    padding: clamp(.45rem, 1.2vw, .85rem) clamp(.35rem, 1vw, .7rem);
    border-radius: .85rem;
}
.ice-host-stats strong {
    font-size: clamp(1.25rem, 2.9vw, 2.3rem);
}
.ice-host-stats span {
    font-size: clamp(.68rem, 1vw, .85rem);
}
.ice-host-live-panel {
    min-height: clamp(16rem, 42vh, 42rem);
}
.ice-host-leaderboard-wrap {
    min-height: clamp(10rem, 28vh, 24rem);
    overflow: auto;
}
.ice-host-leaderboard {
    max-height: none;
}
.ice-host-leaderboard > li {
    grid-template-columns: clamp(2.3rem, 6vw, 3rem) minmax(0, 1fr) auto;
    gap: clamp(.45rem, 1.5vw, .8rem);
    padding: clamp(.45rem, 1vh, .7rem) 0;
    font-size: clamp(.92rem, 1.8vw, 1.1rem);
}
.ice-host-leaderboard .kswUserAdminMenuWrap,
.ice-host-leaderboard-avatar,
.ice-host-leaderboard .kswUserAdminMenuWrap img {
    width: clamp(2.3rem, 6vw, 3rem) !important;
    height: clamp(2.3rem, 6vw, 3rem) !important;
    flex-basis: clamp(2.3rem, 6vw, 3rem) !important;
}
@media (max-width: 900px) {
    .ice-host-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(15rem, 1fr);
        gap: clamp(.75rem, 1.6vh, 1.1rem);
    }
    .ice-host-hero {
        gap: .75rem;
    }
    .ice-host-hero h1 {
        font-size: clamp(2rem, 9vw, 3.2rem);
        line-height: .98;
    }
    .ice-host-hero p {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .ice-host-state {
        padding: .5rem .8rem;
    }
    .ice-host-qr-panel {
        padding: clamp(.75rem, 2.5vw, 1rem);
    }
    .ice-host-qr img {
        width: min(100%, clamp(10rem, 30vh, 16rem)) !important;
    }
    .ice-host-link {
        display: none;
    }
    .ice-host-live-panel {
        min-height: clamp(17rem, 40vh, 28rem);
    }
    .ice-host-leaderboard-wrap {
        min-height: clamp(10rem, 28vh, 18rem);
    }
}
@media (max-width: 430px) {
    .ice-host-shell {
        padding: .85rem;
    }
    .ice-host-hero h1 {
        font-size: clamp(2rem, 8.8vw, 2.65rem);
    }
    .ice-host-hero p {
        -webkit-line-clamp: 2;
    }
    .ice-host-qr-panel h2,
    .ice-host-live-panel h2 {
        font-size: clamp(1.45rem, 7vw, 2.1rem);
    }
    .ice-host-qr img {
        width: min(100%, clamp(9.5rem, 26vh, 14rem)) !important;
    }
    .ice-host-code {
        font-size: clamp(1.35rem, 7vw, 2.1rem);
    }
    .ice-host-stats {
        gap: .35rem;
    }
    .ice-host-stats div {
        padding: .45rem .25rem;
        border-radius: .75rem;
    }
    .ice-host-stats strong {
        font-size: clamp(1.15rem, 6vw, 1.75rem);
    }
    .ice-host-stats span {
        font-size: .68rem;
    }
}
@media (max-height: 760px) and (max-width: 900px) {
    .ice-host-hero p,
    .ice-host-link {
        display: none;
    }
    .ice-host-qr img {
        width: min(100%, clamp(8.5rem, 24vh, 13rem)) !important;
    }
    .ice-host-live-panel {
        min-height: clamp(15rem, 42vh, 24rem);
    }
}

/* Pass 60 release-stabilization overrides */
.ksw-icebreakers-manage .ice-dependent-options {
    margin-top: 0 !important;
    margin-left: 2rem !important;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-dependent-options {
        margin-left: 1rem !important;
    }
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active,
.ice-fullscreen .ice-main-with-nav > .ice-live-shell {
    flex: 1 1 auto;
    height: auto !important;
    max-height: none !important;
    min-height: 0;
}
.ice-fullscreen .ice-main-with-nav > .ice-panel {
    max-height: var(--ice-play-content-height, var(--ice-play-main-height, none));
    overflow: auto;
}
.ice-fullscreen .ice-player-announcement {
    flex: 0 0 auto;
    margin: 0 !important;
}
.ice-fullscreen .ice-player-announcement.d-none {
    display: none !important;
}
.ice-fullscreen .ice-live-card-stage {
    min-height: 0;
    overflow: visible;
    padding-bottom: clamp(.5rem, 1.5vh, 1rem);
}
.ice-fullscreen .ice-task-card-face {
    overflow: hidden;
}
.ice-fullscreen .ice-current-card,
.ice-fullscreen .ice-current-card-live {
    justify-content: flex-start !important;
    min-height: 0;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior: contain;
}
.ice-fullscreen .ice-panel,
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel,
.ice-fullscreen .ice-live-list-panel,
.ice-fullscreen .ice-welcome-panel,
.ice-fullscreen .ice-player-announcement {
    -webkit-user-select: text;
    user-select: text;
}
.ice-fullscreen button,
.ice-fullscreen .btn,
.ice-fullscreen .ice-play-nav,
.ice-fullscreen .ice-topbar {
    -webkit-user-select: none;
    user-select: none;
}

.ksw-icebreakers-manage .ice-activity-card-main {
    grid-template-columns: minmax(0, 1fr) minmax(0, max-content);
    align-items: start;
}
.ksw-icebreakers-manage .ice-activity-card-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    min-width: 0;
}
.ksw-icebreakers-manage .ice-activity-card-actions form {
    margin: 0;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-activity-card-main {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-activity-card-actions {
        justify-content: flex-start;
    }
}
body.ice-host-screen {
    min-height: 100svh;
    overflow: auto;
}
body.ice-host-screen .ice-host-shell {
    min-height: 100svh;
    height: auto;
    display: flex;
    flex-direction: column;
    overflow: visible;
    padding: clamp(.85rem, 2.2vw, 2rem);
}
body.ice-host-screen .ice-host-grid {
    flex: 1 1 auto;
    min-height: 0;
    grid-template-columns: minmax(16rem, .92fr) minmax(18rem, 1.08fr);
    align-items: stretch;
}
body.ice-host-screen .ice-host-qr-panel,
body.ice-host-screen .ice-host-live-panel {
    min-height: 0;
    padding: clamp(.85rem, 2vw, 1.65rem);
}
body.ice-host-screen .ice-host-qr-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
}
body.ice-host-screen .ice-host-qr {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 0;
    margin: 0;
}
body.ice-host-screen .ice-host-qr img {
    width: min(100%, 46svh, 34rem) !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: min(46svh, 34rem) !important;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}
body.ice-host-screen .ice-host-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
    margin-bottom: .75rem;
}
body.ice-host-screen .ice-host-stats div {
    min-width: 0;
    padding: clamp(.45rem, 1.3vw, .85rem);
    border-radius: .9rem;
}
body.ice-host-screen .ice-host-stats strong {
    font-size: clamp(1.25rem, 3vw, 2.2rem);
    line-height: 1;
}
body.ice-host-screen .ice-host-stats span {
    font-size: clamp(.68rem, 1.4vw, .85rem);
    line-height: 1.15;
}
body.ice-host-screen .ice-host-live-panel h2 {
    font-size: clamp(1.5rem, 3.5vw, 2.5rem);
    margin-bottom: .5rem;
}
body.ice-host-screen .ice-host-leaderboard-wrap {
    flex: 1 1 auto;
    min-height: clamp(12rem, 34svh, 28rem);
    overflow: auto;
}
@media (min-width: 901px) {
    body.ice-host-screen {
        overflow: hidden;
    }
    body.ice-host-screen .ice-host-shell {
        height: 100svh;
        overflow: hidden;
    }
}
@media (max-width: 900px) {
    body.ice-host-screen .ice-host-grid {
        display: flex;
        flex-direction: column;
        gap: clamp(.75rem, 1.8vh, 1.15rem);
    }
    body.ice-host-screen .ice-host-hero h1 {
        font-size: clamp(2rem, 9vw, 3rem);
    }
    body.ice-host-screen .ice-host-hero p {
        font-size: clamp(1rem, 4.4vw, 1.12rem);
    }
    body.ice-host-screen .ice-host-qr img {
        width: min(100%, 58vw, 18rem) !important;
        max-height: none !important;
    }
    body.ice-host-screen .ice-host-live-panel {
        min-height: clamp(18rem, 42svh, 32rem);
    }
    body.ice-host-screen .ice-host-leaderboard-wrap {
        min-height: clamp(12rem, 36svh, 24rem);
    }
}
@media (max-width: 420px) {
    body.ice-host-screen .ice-host-stats {
        gap: .4rem;
    }
    body.ice-host-screen .ice-host-stats div {
        padding: .45rem .25rem;
    }
    body.ice-host-screen .ice-host-stats strong {
        font-size: 1.45rem;
    }
    body.ice-host-screen .ice-host-stats span {
        font-size: .72rem;
    }
    body.ice-host-screen .ice-host-qr img {
        width: min(100%, 62vw, 15rem) !important;
    }
}
body.ice-host-screen .ice-host-qr img {
    padding: 0 !important;
    margin: 0 !important;
}

.ice-player-detail-modal .ice-player-detail-tab-content {
    border: 1px solid rgba(15, 23, 42, .08);
    border-top: 0;
    border-radius: 0 0 .85rem .85rem;
    padding: 1rem;
    background: #fff;
}




/* Icebreakers Pass 66: stop fixed bottom nav height feedback loops on standalone player pages. */
.ice-fullscreen .ice-play-nav {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(8.5rem, 24dvh);
    overflow: hidden;
}
.ice-fullscreen .ice-play-nav-btn {
    flex: 1 1 auto;
}

/* Icebreakers Pass 69: clearer Bingo-card affordance and live-status refresh hooks. */
.ice-view-bingo-card-btn {
    white-space: nowrap;
}
.ice-goal-cell.is-best-line:not(.is-winning-line) {
    background: rgba(245,158,11,.08);
    box-shadow: 0 0 0 2px rgba(245,158,11,.12), 0 .35rem .9rem rgba(245,158,11,.08);
}
.ice-goal-cell.is-best-line:not(.is-winning-line) .ice-goal-cell-icon,
.ice-goal-cell.is-best-line:not(.is-winning-line) .ice-goal-cell-number {
    color: #b45309;
}
.ice-goal-legend .fa-star-half-stroke {
    color: #b45309;
}
@media (max-width: 575.98px) {
    .ice-line-goal-summary-strip .ice-view-bingo-card-btn {
        width: 100%;
        justify-content: center;
        margin-left: 0 !important;
    }
}

/* Pass 77: stacked announcements and counted Wall unread badges */
.ice-player-announcement,
.ice-host-announcement {
    position: relative;
}
.ice-player-announcement.has-stack::before,
.ice-player-announcement.has-stack::after,
.ice-host-announcement.has-stack::before,
.ice-host-announcement.has-stack::after {
    content: "";
    position: absolute;
    border-radius: 1rem;
    pointer-events: none;
}
.ice-player-announcement.has-stack::before {
    left: .85rem;
    right: .85rem;
    bottom: -.45rem;
    height: 1rem;
    background: rgba(255,255,255,.75);
    box-shadow: 0 10px 24px rgba(0,0,0,.08);
    z-index: 0;
}
.ice-player-announcement.has-stack::after {
    left: 1.45rem;
    right: 1.45rem;
    bottom: -.8rem;
    height: 1rem;
    background: rgba(255,255,255,.45);
    box-shadow: 0 12px 26px rgba(0,0,0,.06);
    z-index: -1;
}
.ice-player-announcement.has-stack .alert {
    position: relative;
    z-index: 1;
}
.ice-host-announcement.has-stack::before {
    left: 1rem;
    right: 1rem;
    bottom: -.55rem;
    height: 1.1rem;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.12);
    z-index: -1;
}
.ice-host-announcement.has-stack::after {
    left: 1.8rem;
    right: 1.8rem;
    bottom: -.95rem;
    height: 1.1rem;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.08);
    z-index: -2;
}
.ice-announcement-stack-copy {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .4rem;
    padding: .18rem .55rem;
    border-radius: 999px;
    background: rgba(0,0,0,.08);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .01em;
}
.ice-host-announcement .ice-announcement-stack-copy {
    background: rgba(255,255,255,.16);
    color: rgba(255,255,255,.9);
}
.ice-announcement-stack-copy::before {
    content: "";
    width: .42rem;
    height: .42rem;
    border-radius: 50%;
    background: currentColor;
    opacity: .55;
}
.ice-nav-badge {
    min-width: 1.15rem !important;
    width: auto !important;
    height: 1.15rem !important;
    padding: 0 .28rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
}
.ice-nav-badge.d-none {
    display: none !important;
}

.ice-host-announcement.has-stack {
    z-index: 1;
}
.ice-nav-badge {
    z-index: 2;
}

/* Pass 78: announcement ordering, Wall report triage, and player QR sharing */
.ksw-icebreakers-manage .ice-announcement-card.has-sort-handle .ice-activity-card-main {
    grid-template-columns: auto minmax(0, 1fr) auto;
}
.ksw-icebreakers-manage .ice-activity-card.is-reported {
    box-shadow: inset .25rem 0 0 rgba(255, 193, 7, .85);
}
.ksw-icebreakers-manage [data-ice-wall-report-dismiss],
.ksw-icebreakers-manage [data-ice-connection-report-dismiss] {
    font-weight: 700;
    text-decoration: none;
}
.ice-player-share-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
}
.ice-player-share-qr {
    flex: 0 0 auto;
    width: 7.75rem;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ice-player-share-qr img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
@media (max-width: 575.98px) {
    .ice-player-share-card {
        align-items: flex-start;
    }
    .ice-player-share-qr {
        width: 6.5rem;
    }
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-announcement-card.has-sort-handle .ice-activity-card-main {
        grid-template-columns: 1fr;
    }
}

/* Pass 79: host display responsiveness, clearer announcement stack, and Safari one-page signage print. */
body.ice-host-screen .ice-host-hero h1 {
    color: #fff !important;
}
body.ice-host-screen .ice-host-grid {
    min-height: 0;
}
body.ice-host-screen .ice-host-qr-panel {
    gap: clamp(.35rem, 1.2svh, .9rem);
    justify-content: center;
    min-height: 0;
}
body.ice-host-screen .ice-host-qr-panel h2,
body.ice-host-screen .ice-host-link {
    flex: 0 1 auto;
    min-height: 0;
}
body.ice-host-screen .ice-host-qr {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
}
body.ice-host-screen .ice-host-qr img {
    width: min(100%, 40svh, 30rem) !important;
    max-height: min(40svh, 100%) !important;
}
body.ice-host-screen .ice-host-code {
    font-size: clamp(1.25rem, 7svh, 3.75rem);
    line-height: 1;
    overflow-wrap: anywhere;
}
@media (min-width: 901px) and (max-height: 760px) {
    body.ice-host-screen .ice-host-shell {
        padding-block: clamp(.55rem, 1.4svh, 1rem);
    }
    body.ice-host-screen .ice-host-grid {
        gap: clamp(.6rem, 1.4svh, 1rem);
    }
    body.ice-host-screen .ice-host-qr-panel,
    body.ice-host-screen .ice-host-live-panel {
        padding: clamp(.55rem, 1.5svh, 1rem);
    }
    body.ice-host-screen .ice-host-qr img {
        width: min(100%, 34svh, 23rem) !important;
        max-height: 34svh !important;
    }
    body.ice-host-screen .ice-host-code {
        font-size: clamp(1.15rem, 5.8svh, 2.75rem);
    }
}
.ice-player-announcement.has-stack::before,
.ice-player-announcement.has-stack::after,
.ice-host-announcement.has-stack::before,
.ice-host-announcement.has-stack::after {
    height: auto !important;
    border-radius: 1rem;
    box-shadow: 0 .85rem 1.6rem rgba(15, 23, 42, .12);
}
.ice-player-announcement.has-stack::before {
    left: 16px;
    right: -16px;
    top: 16px;
    bottom: -16px;
    background: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, .45);
    opacity: .95;
    z-index: 0;
}
.ice-player-announcement.has-stack::after {
    display: none;
}
.ice-player-announcement.has-stack .alert {
    position: relative;
    z-index: 1;
}
.ice-host-announcement.has-stack::before {
    left: 18px;
    right: -18px;
    top: 18px;
    bottom: -18px;
    background: rgba(226, 232, 240, .32);
    border: 1px solid rgba(226, 232, 240, .35);
    opacity: 1;
    z-index: -1;
}
.ice-host-announcement.has-stack::after {
    display: none;
}
@media print {
    html,
    body {
        height: auto !important;
        overflow: hidden !important;
    }
    .ice-signage-body,
    .ice-signage-page {
        min-height: 0 !important;
        height: auto !important;
        overflow: hidden !important;
    }
    .ice-signage-page {
        padding: 0 !important;
        margin: 0 !important;
    }
    .ice-signage-sheet {
        width: 100% !important;
        height: 9.55in !important;
        max-height: 9.55in !important;
        min-height: 0 !important;
        padding: .24in !important;
        break-after: avoid !important;
        page-break-after: avoid !important;
        page-break-inside: avoid !important;
    }
    .ice-signage-sheet h1 {
        font-size: 2.05rem !important;
        line-height: 1.05 !important;
        margin-bottom: .14in !important;
    }
    .ice-signage-description {
        font-size: .86rem !important;
        margin-bottom: .18in !important;
    }
    .ice-signage-qr img {
        width: 3.35in !important;
        max-height: 3.35in !important;
    }
    .ice-signage-code {
        font-size: 2.55rem !important;
        line-height: 1 !important;
    }
    .ice-signage-url {
        font-size: .72rem !important;
    }
    .ice-signage-steps {
        gap: .28rem !important;
        margin-top: .16in !important;
    }
    .ice-signage-steps div {
        padding: .3rem !important;
        font-size: .78rem !important;
    }
}

/* Pass 79: responsive host display, clearer announcement stack, and one-page signage printing. */
.ice-host-hero h1 {
    color: #fff;
}
.ice-host-screen {
    min-height: 100svh;
    overflow: auto;
}
.ice-host-shell {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    gap: clamp(.75rem, 1.5vw, 1.5rem);
    padding: clamp(.75rem, 1.6vw, 1.75rem);
}
.ice-host-hero,
.ice-host-announcement {
    margin-bottom: 0;
    flex: 0 0 auto;
}
.ice-host-grid {
    flex: 1 1 auto;
    min-height: 0;
    grid-template-columns: minmax(280px, 1fr) minmax(280px, .95fr);
    align-items: stretch;
}
.ice-host-qr-panel,
.ice-host-live-panel {
    min-width: 0;
    overflow: hidden;
}
.ice-host-qr-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: clamp(.35rem, 1vh, .85rem);
}
.ice-host-qr {
    max-width: 100%;
    max-height: min(48vh, 520px);
    display: flex;
    justify-content: center;
    align-items: center;
}
.ice-host-qr img,
.ice-host-qr .ice-host-qr-img {
    width: min(100%, 54vmin, 48vh, 520px) !important;
    max-width: 100% !important;
    max-height: min(48vh, 520px) !important;
    height: auto !important;
    object-fit: contain;
}
.ice-host-code {
    max-width: 100%;
    margin-top: 0;
    overflow-wrap: anywhere;
    letter-spacing: clamp(.08em, .8vw, .18em);
}
.ice-host-link {
    max-width: 100%;
}
@media (max-height: 780px) and (min-width: 901px) {
    .ice-host-shell {
        gap: .65rem;
        padding: .75rem;
    }
    .ice-host-hero h1 {
        font-size: clamp(1.85rem, 4vw, 3.4rem);
    }
    .ice-host-hero p {
        font-size: clamp(.9rem, 1.15vw, 1.05rem);
    }
    .ice-host-announcement {
        padding: .8rem 1rem;
        gap: .8rem;
    }
    .ice-host-announcement h2 {
        font-size: clamp(1.2rem, 2.2vw, 1.8rem);
    }
    .ice-host-announcement p {
        font-size: clamp(.92rem, 1.35vw, 1.1rem);
    }
    .ice-host-qr-panel,
    .ice-host-live-panel {
        padding: clamp(.75rem, 1.2vw, 1.25rem);
    }
    .ice-host-qr,
    .ice-host-qr img,
    .ice-host-qr .ice-host-qr-img {
        max-height: min(40vh, 440px) !important;
    }
    .ice-host-qr img,
    .ice-host-qr .ice-host-qr-img {
        width: min(100%, 45vmin, 40vh, 440px) !important;
    }
    .ice-host-code {
        font-size: clamp(1.55rem, 4vw, 3.5rem);
    }
}
@media (max-height: 620px) and (min-width: 901px) {
    .ice-host-qr,
    .ice-host-qr img,
    .ice-host-qr .ice-host-qr-img {
        max-height: min(32vh, 340px) !important;
    }
    .ice-host-qr img,
    .ice-host-qr .ice-host-qr-img {
        width: min(100%, 36vmin, 32vh, 340px) !important;
    }
    .ice-host-code {
        font-size: clamp(1.35rem, 3.2vw, 2.6rem);
    }
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack {
    position: relative;
    overflow: visible;
    isolation: isolate;
}
.ice-player-announcement.has-stack .alert::after,
.ice-host-announcement.has-stack::after {
    display: none;
}
.ice-player-announcement.has-stack .alert::before,
.ice-host-announcement.has-stack::before {
    content: '';
    position: absolute;
    inset: 14px -14px -14px 14px;
    border-radius: inherit;
    background: #e5e7eb;
    border: 1px solid rgba(15,23,42,.1);
    box-shadow: 0 .75rem 1.5rem rgba(15,23,42,.12);
    z-index: -1;
}
.ice-host-announcement.has-stack::before {
    background: rgba(203,213,225,.9);
    border-color: rgba(255,255,255,.22);
    box-shadow: 0 1rem 2rem rgba(0,0,0,.18);
}
@page {
    size: Letter portrait;
    margin: .3in;
}
@media print {
    html,
    body,
    .ice-signage-body {
        min-height: 0 !important;
        height: auto !important;
        overflow: visible !important;
        background: var(--bs-body-bg, #fff) !important;
    }
    .ice-signage-page {
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
        break-after: avoid;
        page-break-after: avoid;
    }
    .ice-signage-sheet {
        width: 100% !important;
        height: 9.85in !important;
        max-height: 9.85in !important;
        min-height: 0 !important;
        padding: .22in !important;
        gap: .35rem !important;
        overflow: hidden !important;
        break-inside: avoid;
        page-break-inside: avoid;
        break-after: avoid;
        page-break-after: avoid;
    }
    .ice-signage-sheet h1 {
        font-size: 2.35rem !important;
        line-height: 1.02 !important;
    }
    .ice-signage-description {
        font-size: .9rem !important;
        line-height: 1.2 !important;
    }
    .ice-signage-qr img {
        width: 3.55in !important;
        max-width: 100% !important;
        max-height: 3.55in !important;
        object-fit: contain;
    }
    .ice-signage-code {
        font-size: 2.9rem !important;
    }
    .ice-signage-url {
        font-size: .78rem !important;
        line-height: 1.15 !important;
    }
    .ice-signage-steps {
        gap: .32rem !important;
    }
    .ice-signage-steps div {
        padding: .36rem !important;
        font-size: .8rem !important;
        line-height: 1.15 !important;
    }
}
.ice-player-announcement.has-stack .alert::after {
    display: none !important;
}

/* Pass 81: keep stacked announcement hint cards behind the active announcement. */
.ice-player-announcement.has-stack,
.ice-host-announcement.has-stack {
    position: relative;
    overflow: visible;
    isolation: isolate;
}
.ice-player-announcement.has-stack::before,
.ice-player-announcement.has-stack::after,
.ice-player-announcement.has-stack .alert::before,
.ice-player-announcement.has-stack .alert::after,
.ice-host-announcement.has-stack::before,
.ice-host-announcement.has-stack::after {
    display: none !important;
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack > * {
    position: relative;
    z-index: 2;
}
.ice-player-announcement.has-stack::before,
.ice-host-announcement.has-stack::before {
    content: '' !important;
    display: block !important;
    position: absolute;
    inset: 8px -8px -8px 8px;
    border-radius: 1rem;
    pointer-events: none;
    background: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, .45);
    box-shadow: 0 .55rem 1.1rem rgba(15, 23, 42, .10);
    z-index: 0;
}
.ice-host-announcement.has-stack::before {
    background: rgba(203,213,225,.85);
    border-color: rgba(255,255,255,.22);
    box-shadow: 0 .65rem 1.3rem rgba(0,0,0,.16);
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack {
    transform: translateZ(0);
}

/* Pass 81: Host cards should read as one list-group, not separate cards. */
.ksw-icebreakers-manage .ice-host-card-list {
    gap: 0 !important;
}
.ksw-icebreakers-manage .ice-host-card-item {
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.ksw-icebreakers-manage .ice-host-card-list .ice-host-card-item:first-child {
    border-top-left-radius: .5rem !important;
    border-top-right-radius: .5rem !important;
}
.ksw-icebreakers-manage .ice-host-card-list .ice-host-card-item:last-child {
    border-bottom-left-radius: .5rem !important;
    border-bottom-right-radius: .5rem !important;
}
.ksw-icebreakers-manage .ice-host-card-item:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* Pass 81 follow-up: host announcement stack card must sit behind the announcement panel itself. */
.ice-host-announcement.has-stack {
    z-index: 1;
}
.ice-host-announcement.has-stack::before {
    z-index: -1 !important;
}

/* Pass 82: setup review and stacked announcement polish. */
.ice-swipe-card-inner {
    justify-content: flex-start !important;
}
.ice-swipe-footer {
    grid-template-columns: 1fr !important;
}
.ice-player-announcement.has-stack::before,
.ice-host-announcement.has-stack::before {
    inset: 4px -4px -4px 4px !important;
    z-index: 0 !important;
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack > * {
    z-index: 2 !important;
}
.ice-intro-post.is-reported {
    border-color: rgba(245, 158, 11, .45);
    background: rgba(255, 251, 235, .72);
}
.ksw-icebreakers-manage .ice-create-preset-card .form-check-input.visually-hidden {
    position: absolute !important;
}

/* Pass 82: setup review cards should start at the top, not vertically center content. */
.ice-swipe-card-inner {
    justify-content: flex-start !important;
}
.ice-swipe-footer {
    grid-template-columns: 1fr !important;
}

/* Pass 82: keep stacked announcement hint cards behind with a smaller offset. */
.ice-player-announcement.has-stack,
.ice-host-announcement.has-stack {
    position: relative;
    overflow: visible;
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack > * {
    position: relative;
    z-index: 2 !important;
}
.ice-player-announcement.has-stack::before,
.ice-host-announcement.has-stack::before {
    content: '' !important;
    display: block !important;
    position: absolute;
    inset: 4px -4px -4px 4px !important;
    border-radius: 1rem;
    pointer-events: none;
    background: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, .45);
    box-shadow: 0 .35rem .8rem rgba(15, 23, 42, .10);
    z-index: 1 !important;
}
.ice-player-announcement.has-stack .alert::before,
.ice-player-announcement.has-stack .alert::after,
.ice-player-announcement.has-stack::after,
.ice-host-announcement.has-stack::after {
    display: none !important;
}

/* Pass 82: create-game preset cards hide the underlying radio inputs. */
.ksw-icebreakers-manage .ice-create-preset-card .form-check-input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
}

/* Pass 83: focused UI cleanup for announcements, signage, and zero-count tab badges. */
.ice-host-announcement {
    padding-right: 3.25rem;
}
.ice-host-announcement-close {
    position: absolute !important;
    top: .8rem;
    right: .8rem;
    z-index: 4 !important;
    margin: 0 !important;
    filter: invert(1) grayscale(100%) brightness(2);
}
.ice-player-announcement.has-stack,
.ice-host-announcement.has-stack {
    position: relative;
    overflow: visible;
    isolation: isolate;
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack > * {
    position: relative;
    z-index: 1 !important;
}
.ice-player-announcement.has-stack::before,
.ice-host-announcement.has-stack::before {
    content: '' !important;
    display: block !important;
    position: absolute;
    inset: 3px -3px -3px 3px !important;
    border-radius: 1rem;
    pointer-events: none;
    background: #e5e7eb;
    border: 1px solid rgba(148, 163, 184, .45);
    box-shadow: 0 .3rem .75rem rgba(15, 23, 42, .10);
    z-index: -1 !important;
}
.ice-host-announcement.has-stack::before {
    background: rgba(203,213,225,.82);
    border-color: rgba(255,255,255,.22);
    box-shadow: 0 .45rem 1rem rgba(0,0,0,.14);
}
.ice-player-announcement.has-stack::after,
.ice-player-announcement.has-stack .alert::before,
.ice-player-announcement.has-stack .alert::after,
.ice-host-announcement.has-stack::after {
    display: none !important;
}
.ice-signage-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    border-radius: 999px;
    padding: .45rem 1.15rem;
    background: #111827;
    color: #fff;
    font-weight: 900;
    font-size: clamp(1.25rem, 3vw, 2.15rem);
    line-height: 1.1;
    letter-spacing: .02em;
    text-transform: uppercase;
    box-shadow: 0 .65rem 1.4rem rgba(17,24,39,.18);
}
@media print {
    .ice-signage-cta {
        font-size: 1.25rem !important;
        padding: .26rem .75rem !important;
        box-shadow: none !important;
    }
}

/* Pass 84: final announcement stacking override.  The hint card must sit behind the active card, not on top of it. */
.ice-player-announcement.has-stack,
.ice-host-announcement.has-stack {
    position: relative !important;
    overflow: visible !important;
    isolation: isolate !important;
    z-index: 0 !important;
}
.ice-player-announcement.has-stack::after,
.ice-player-announcement.has-stack .alert::before,
.ice-player-announcement.has-stack .alert::after,
.ice-host-announcement.has-stack::after {
    display: none !important;
}
.ice-player-announcement.has-stack::before,
.ice-host-announcement.has-stack::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 5px -5px -5px 5px !important;
    border-radius: 1rem !important;
    pointer-events: none !important;
    background: #e5e7eb !important;
    border: 1px solid rgba(148, 163, 184, .45) !important;
    box-shadow: 0 .4rem .9rem rgba(15, 23, 42, .10) !important;
    z-index: -1 !important;
}
.ice-host-announcement.has-stack::before {
    background: rgba(203,213,225,.86) !important;
    border-color: rgba(255,255,255,.24) !important;
    box-shadow: 0 .45rem 1rem rgba(0,0,0,.16) !important;
}
.ice-player-announcement.has-stack .alert,
.ice-host-announcement.has-stack > * {
    position: relative !important;
    z-index: 1 !important;
}
.ice-host-announcement-close {
    position: absolute !important;
    top: .75rem !important;
    right: .75rem !important;
    z-index: 3 !important;
    margin: 0 !important;
}

/* Icebreakers Pass 87: contextual Wall report badge for host/admin player view */
.ice-nav-badge-report {
    background: #ffc107 !important;
    color: #111827 !important;
    transform: translateX(2.45rem);
}

.ksw-icebreakers-manage .ice-inline-number{width:6rem;max-width:8rem;display:inline-block;}

/* Icebreakers Pass 95: settings sub-section and connection detail polish. */
.ksw-icebreakers-manage .ice-dependent-options {
    margin: .35rem 1rem 0 2rem !important;
    padding: .95rem 1rem !important;
    border: 1px solid rgba(15,23,42,.1) !important;
    border-radius: .85rem !important;
    background: var(--bs-body-bg, #fff) !important;
    box-shadow: 0 .35rem 1rem rgba(15,23,42,.06) !important;
}
.ksw-icebreakers-manage .ice-settings-subcard {
    max-width: calc(100% - 2rem);
}
.ksw-icebreakers-manage .heading.heading-border.heading-bottom-border {
    margin: .25rem 0 .75rem;
}
.ksw-icebreakers-manage .heading.heading-border.heading-bottom-border h4 {
    margin-bottom: .35rem;
}
.ice-connection-answer,
.ice-connection-answer-note,
.ice-current-card-flow {
    font-size: .92rem;
    line-height: 1.35;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-dependent-options {
        margin-left: 1rem !important;
        margin-right: .25rem !important;
    }
    .ksw-icebreakers-manage .ice-settings-subcard {
        max-width: calc(100% - 1rem);
    }
}

/* Icebreakers Pass 99: Match The Room answer recap rows. */
.ice-same-card-answer-list {
    display: grid;
    gap: .75rem;
}
.ice-same-card-answer-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 16px;
    background: rgba(255, 255, 255, .86);
}
.ice-fullscreen .ice-same-card-answer-row {
    background: rgba(255, 255, 255, .94);
}
.ice-same-card-answer-row:last-child {
    margin-bottom: 0;
}

/* Icebreakers Pass 100: keep player recap and live-card panels scrollable inside the usable viewport. */
.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-action-status,
.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-player-announcement {
    flex: 0 0 auto;
}
.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-recap {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scroll-padding-bottom: 1rem;
}
.ice-fullscreen .ice-live-card-stage,
.ice-fullscreen .ice-task-card-flip,
.ice-fullscreen .ice-task-card-face {
    min-height: 0;
    overflow: hidden;
}
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel {
    max-height: 100%;
    overflow-y: auto !important;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scroll-padding-bottom: 1rem;
}
.ice-fullscreen .ice-current-card-live .ice-live-action-buttons {
    flex: 0 0 auto;
    padding-bottom: .25rem;
}
@media (max-width: 575.98px) {
    .ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) {
        padding: .65rem;
    }
    .ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-recap {
        border-radius: .9rem;
        padding: .85rem;
    }
}

/* Icebreakers Pass 103: final viewport constraints for ended recap and live action panels. */
.ice-html-fullscreen,
.ice-html-fullscreen body.ice-fullscreen,
body.ice-fullscreen {
    height: var(--ice-viewport-height, 100vh);
    min-height: var(--ice-viewport-height, 100vh);
    max-height: var(--ice-viewport-height, 100vh);
    overflow: hidden;
}
@supports (height: 100dvh) {
    .ice-html-fullscreen,
    .ice-html-fullscreen body.ice-fullscreen,
    body.ice-fullscreen {
        height: var(--ice-viewport-height, 100dvh);
        min-height: var(--ice-viewport-height, 100dvh);
        max-height: var(--ice-viewport-height, 100dvh);
    }
}
body.ice-fullscreen .ice-app {
    height: var(--ice-viewport-height, 100vh);
    min-height: 0;
    max-height: var(--ice-viewport-height, 100vh);
    overflow: hidden;
}
body.ice-fullscreen .ice-topbar {
    flex: 0 0 auto;
}
body.ice-fullscreen .ice-main:not(.ice-main-with-nav) {
    flex: 0 0 var(--ice-plain-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-topbar-height, 64px)));
    height: var(--ice-plain-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-topbar-height, 64px)));
    max-height: var(--ice-plain-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-topbar-height, 64px)));
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
body.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-action-status,
body.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-player-announcement,
body.ice-fullscreen.ice-state-paused .ice-main:not(.ice-main-with-nav) > .ice-action-status,
body.ice-fullscreen.ice-state-paused .ice-main:not(.ice-main-with-nav) > .ice-player-announcement {
    flex: 0 0 auto;
}
body.ice-fullscreen.ice-state-ended .ice-main:not(.ice-main-with-nav) > .ice-recap,
body.ice-fullscreen.ice-state-paused .ice-main:not(.ice-main-with-nav) > .ice-center-panel {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-y: auto !important;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scroll-padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
body.ice-fullscreen .ice-main-with-nav {
    flex: 0 0 var(--ice-play-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-topbar-height, 64px) - var(--ice-play-nav-height, 78px)));
    height: var(--ice-play-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-topbar-height, 64px) - var(--ice-play-nav-height, 78px))) !important;
    max-height: var(--ice-play-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-topbar-height, 64px) - var(--ice-play-nav-height, 78px))) !important;
    min-height: 0;
    overflow: hidden;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active,
body.ice-fullscreen .ice-main-with-nav > .ice-live-shell {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100% !important;
    overflow: hidden;
}
body.ice-fullscreen .ice-live-section.is-active,
body.ice-fullscreen .ice-live-play-grid,
body.ice-fullscreen .ice-live-card-stage,
body.ice-fullscreen .ice-task-card-flip,
body.ice-fullscreen .ice-task-card-face {
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}
body.ice-fullscreen .ice-live-card-stage {
    flex: 1 1 0;
    height: auto;
    padding-bottom: 0;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel {
    height: 100%;
    max-height: 100% !important;
    min-height: 0;
    overflow-y: auto !important;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    scroll-padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
body.ice-fullscreen .ice-card-picker-panel .ice-open-card-list-scroll,
body.ice-fullscreen .ice-live-list-panel .ice-live-scroll-list {
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Pass 105: keep fullscreen live, picker, Match The Room, and recap panels reachable without page zooming. */
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel,
body.ice-fullscreen.ice-state-ended .ice-recap {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
body.ice-fullscreen .ice-current-card-live > :last-child,
body.ice-fullscreen .ice-card-picker-panel > :last-child,
body.ice-fullscreen.ice-state-ended .ice-recap > :last-child {
    margin-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
body.ice-fullscreen .ice-live-action-buttons,
body.ice-fullscreen .ice-open-card-actions,
body.ice-fullscreen .ice-same-card-actions {
    flex-shrink: 0;
}
.ice-fullscreen .ice-live-card,
.ice-fullscreen .ice-recap,
.ice-fullscreen .ice-card-picker,
.ice-fullscreen .ice-same-card-answer-list,
.ice-fullscreen .ice-connection-list {
    overscroll-behavior: contain;
}
.ice-fullscreen .ice-recap .ice-connection-list,
.ice-fullscreen .ice-recap .ice-same-card-answer-list {
    min-height: 0;
}

/* Icebreakers Pass 105: extra fullscreen scroll containment after dynamic card/recap content changes. */
body.ice-fullscreen .ice-main,
body.ice-fullscreen .ice-play-section,
body.ice-fullscreen .ice-live-shell,
body.ice-fullscreen .ice-live-play-grid,
body.ice-fullscreen .ice-live-card-stage,
body.ice-fullscreen .ice-task-card-flip,
body.ice-fullscreen .ice-task-card-face {
    min-height: 0 !important;
}
body.ice-fullscreen .ice-action-status,
body.ice-fullscreen .ice-player-announcement {
    flex: 0 0 auto;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel,
body.ice-fullscreen .ice-recap,
body.ice-fullscreen .ice-center-panel {
    scrollbar-gutter: stable both-edges;
}
body.ice-fullscreen .ice-current-card-live .ice-live-action-buttons,
body.ice-fullscreen .ice-current-card-live form,
body.ice-fullscreen .ice-recap .ice-feedback-form {
    margin-bottom: max(.75rem, env(safe-area-inset-bottom, 0px));
}

/* Pass 105 final fullscreen scroll guards. Keep overflowing player content inside the app viewport instead of behind browser chrome/bottom nav. */
body.ice-fullscreen .ice-main:not(.ice-main-with-nav) {
    height: var(--ice-plain-main-height, var(--ice-viewport-height, 100vh)) !important;
    max-height: var(--ice-plain-main-height, var(--ice-viewport-height, 100vh)) !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
}
body.ice-fullscreen .ice-main:not(.ice-main-with-nav) > .ice-panel,
body.ice-fullscreen .ice-main:not(.ice-main-with-nav) > .ice-recap {
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: var(--ice-plain-content-height, var(--ice-plain-main-height, 100vh)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen .ice-main-with-nav {
    height: var(--ice-play-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-play-topbar-height, 64px) - var(--ice-play-nav-height, 5rem))) !important;
    max-height: var(--ice-play-main-height, calc(var(--ice-viewport-height, 100vh) - var(--ice-play-topbar-height, 64px) - var(--ice-play-nav-height, 5rem))) !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
}
body.ice-fullscreen .ice-main-with-nav > .ice-live-shell,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: var(--ice-play-content-height, var(--ice-play-main-height, 100vh)) !important;
    overflow: hidden !important;
}
body.ice-fullscreen .ice-live-section.is-active,
body.ice-fullscreen .ice-live-play-grid,
body.ice-fullscreen .ice-live-card-stage,
body.ice-fullscreen .ice-task-card-flip,
body.ice-fullscreen .ice-task-card-face {
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}
body.ice-fullscreen .ice-current-card,
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel,
body.ice-fullscreen .ice-live-list-panel,
body.ice-fullscreen .ice-live-scroll-list,
body.ice-fullscreen .ice-open-card-list-scroll,
body.ice-fullscreen .ice-recap .ice-connection-list,
body.ice-fullscreen .ice-recap .ice-same-card-answer-list {
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
}
body.ice-fullscreen .ice-live-action-buttons {
    flex: 0 0 auto;
}



/* Pass 106 host-display completion and signage polling */
.ice-host-complete {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(.8rem, 2vw, 1.35rem);
    padding: clamp(.9rem, 2vw, 1.4rem);
    margin-bottom: clamp(.75rem, 1.8vh, 1.25rem);
    border-radius: 1.35rem;
    background: linear-gradient(135deg, rgba(250, 204, 21, .98), rgba(249, 115, 22, .95));
    color: #111827;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .22);
}
.ice-host-complete.d-none { display: none !important; }
.ice-host-complete-icon {
    width: clamp(3rem, 7vw, 4.5rem);
    height: clamp(3rem, 7vw, 4.5rem);
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .72);
    color: #7c2d12;
    font-size: clamp(1.55rem, 3.5vw, 2.45rem);
}
.ice-host-complete h2 {
    margin: 0;
    color: inherit;
    font-size: clamp(1.65rem, 4vw, 3.2rem);
    line-height: 1;
}
.ice-host-complete p {
    margin: .3rem 0 0;
    max-width: 62rem;
    color: rgba(17, 24, 39, .84);
    font-size: clamp(.95rem, 1.55vw, 1.25rem);
}
.ice-host-complete-actions {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.ice-host-state[data-ice-state="ended"],
.ice-signage-runtime[data-ice-state="ended"] {
    background: rgba(16,185,129,.14);
    color: #065f46;
    border-color: rgba(16,185,129,.35);
}
.ice-host-state[data-ice-state="live"],
.ice-signage-runtime[data-ice-state="live"] {
    background: rgba(59,130,246,.14);
    color: #1e3a8a;
    border-color: rgba(59,130,246,.35);
}
.ice-host-state[data-ice-state="paused"],
.ice-signage-runtime[data-ice-state="paused"] {
    background: rgba(245,158,11,.16);
    color: #78350f;
    border-color: rgba(245,158,11,.38);
}
body.ice-host-ended .ice-host-grid { grid-template-columns: minmax(0, 1fr); }
body.ice-host-ended .ice-host-qr-panel { display: none !important; }
body.ice-host-ended .ice-host-live-panel { min-height: 0; }
.ice-signage-runtime {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    border: 1px solid rgba(15,23,42,.12);
    border-radius: 999px;
    padding: .45rem .85rem;
    font-size: .95rem;
    font-weight: 700;
    color: #334155;
    background: rgba(248,250,252,.95);
    max-width: 100%;
    flex-wrap: wrap;
}
.ice-signage-runtime-dot {
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    background: currentColor;
    opacity: .78;
    flex: 0 0 auto;
}
.ice-signage-runtime-detail {
    font-weight: 500;
    color: inherit;
    opacity: .78;
}
@media (max-width: 900px) {
    .ice-host-complete { grid-template-columns: auto minmax(0, 1fr); }
    .ice-host-complete-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 575.98px) {
    .ice-host-complete { grid-template-columns: 1fr; }
    .ice-host-complete-icon { display: none; }
    .ice-signage-runtime { border-radius: .9rem; font-size: .85rem; gap: .4rem; padding: .42rem .65rem; }
}
@media (max-height: 680px) and (min-width: 901px) {
    body.ice-host-screen .ice-host-shell { overflow: auto; }
    body.ice-host-screen .ice-host-live-panel { min-height: 0; }
}
.ice-fullscreen #iceResultModal .modal-body,
.ice-fullscreen #iceManualCodeModal .modal-body,
.ice-fullscreen #iceScanModal .modal-body {
    max-height: calc(var(--ice-viewport-height, 100vh) - var(--ice-play-nav-height, 4.9rem) - 5.5rem);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
.ice-fullscreen #iceResultModal .modal-dialog,
.ice-fullscreen #iceManualCodeModal .modal-dialog,
.ice-fullscreen #iceScanModal .modal-dialog {
    max-height: calc(var(--ice-viewport-height, 100vh) - var(--ice-play-nav-height, 4.9rem) - 1rem);
}

/* Icebreakers Pass 112: mode cards and pack compatibility notes. */
.ksw-icebreakers-manage .ice-game-mode-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ksw-icebreakers-manage .ice-game-mode-card {
    cursor: pointer;
    min-height: 8.5rem;
}
.ksw-icebreakers-manage .ice-game-mode-card[disabled],
.ksw-icebreakers-manage .ice-game-mode-card[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .65;
}
.ice-duel-opponent {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    align-self: flex-start;
    padding: .4rem .65rem;
    border: 1px solid rgba(13,110,253,.18);
    border-radius: 999px;
    background: rgba(13,110,253,.06);
    color: #1f2937;
    font-size: .92rem;
}
@media (max-width: 991.98px) {
    .ksw-icebreakers-manage .ice-game-mode-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-game-mode-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Icebreakers Pass 115: mode-card help, card-picker visibility fallback, and template preview polish. */
.ksw-icebreakers-manage .ice-game-mode-card {
    position: relative;
    padding-right: 2.4rem;
}
.ksw-icebreakers-manage .ice-game-mode-help {
    position: absolute;
    top: .55rem;
    right: .55rem;
    width: 1.55rem;
    height: 1.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    opacity: .78;
    cursor: help;
}
.ksw-icebreakers-manage .ice-game-mode-help:hover,
.ksw-icebreakers-manage .ice-game-mode-help:focus {
    opacity: 1;
    background: rgba(255,255,255,.18);
    outline: none;
}
.ice-template-preview-card,
.ice-template-first-preview {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .75rem;
    padding: .85rem;
    background: rgba(0,0,0,.025);
}
.ice-task-card-flip.is-flipped {
    transform: none !important;
}
.ice-task-card-flip.is-flipped .ice-task-card-front {
    display: none !important;
    pointer-events: none;
}
.ice-task-card-flip.is-flipped .ice-task-card-back {
    display: flex !important;
    transform: none !important;
    pointer-events: auto;
}
.ice-task-card-flip:not(.is-flipped) .ice-task-card-front {
    display: flex !important;
    pointer-events: auto;
}
.ice-task-card-flip:not(.is-flipped) .ice-task-card-back {
    display: none !important;
    pointer-events: none;
}

/* Pass 116: host-paced trivia controls */
.ice-host-trivia-panel {
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 24px;
    padding: 1.25rem;
    color: #fff;
    margin-bottom: 1.25rem;
    backdrop-filter: blur(8px);
}
.ice-host-trivia-panel h2 { color: #fff; margin-bottom: .35rem; }
.ice-host-trivia-actions { display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; min-width: 220px; }
.ice-host-trivia-stats { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: flex-end; color: rgba(255,255,255,.82); font-size: .95rem; }
@media (max-width: 767px) {
    .ice-host-trivia-actions { align-items: stretch; width: 100%; }
    .ice-host-trivia-stats { justify-content: flex-start; }
}

/* Pass 118: structured trivia choices */
.ice-trivia-option { white-space: normal; line-height: 1.25; }
.ice-trivia-option input[type="radio"] { transform: translateY(-1px); }
.ice-trivia-answer-form .ice-trivia-option { display: block; }


/* Pass 125: immutable game mode display with hidden inapplicable mode sections. */
.ksw-icebreakers-manage .ice-current-game-mode-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 760px;
}
.ksw-icebreakers-manage .ice-game-mode-card-readonly {
    cursor: default;
}
.ksw-icebreakers-manage .ice-not-applicable[aria-hidden="true"] {
    display: none !important;
}

/* Pass 123: player-page scroll containment repair.
   Keep the fullscreen app pinned, but make every active play/live tab an actual scroll container. */
.ice-fullscreen .ice-app {
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.ice-fullscreen .ice-topbar {
    flex: 0 0 auto;
}
.ice-fullscreen .ice-main-with-nav {
    flex: 0 0 var(--ice-play-main-height);
    height: var(--ice-play-main-height);
    max-height: var(--ice-play-main-height);
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: contain;
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section,
.ice-fullscreen .ice-live-shell,
.ice-fullscreen .ice-live-section {
    min-height: 0;
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    display: block;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: .75rem;
}
.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-panel {
    max-height: none;
}
.ice-fullscreen .ice-live-section.is-active:not([data-ice-live-section="play"]) {
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: .75rem;
}
.ice-fullscreen .ice-live-list-panel {
    height: 100%;
    max-height: 100%;
    min-height: 0;
}
.ice-fullscreen .ice-live-list-panel > .ice-live-scroll-list,
.ice-fullscreen .ice-wall-panel > [data-ice-wall-posts-wrap],
.ice-fullscreen [data-ice-play-section="wall"].is-active [data-ice-wall-posts-wrap] {
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.ice-fullscreen [data-ice-play-section="wall"].is-active .ice-wall-panel {
    display: flex;
    flex-direction: column;
    min-height: min(100%, 18rem);
}
.ice-fullscreen [data-ice-play-section="wall"].is-active .ice-wall-form {
    flex: 0 0 auto;
}
.ice-fullscreen [data-ice-play-section="wall"].is-active [data-ice-wall-posts-wrap] {
    flex: 1 1 auto;
}
.ice-fullscreen .ice-current-card-live,
.ice-fullscreen .ice-card-picker-panel {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}


/* Pass 123: restore scrolling for every play.php tab/panel. Later fullscreen guards had re-hidden active tab overflow. */
body.ice-fullscreen .ice-main-with-nav {
    overflow: hidden !important;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    display: block;
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: var(--ice-play-content-height, var(--ice-play-main-height, 100vh)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    scrollbar-gutter: stable both-edges;
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
body.ice-fullscreen .ice-main-with-nav > .ice-live-shell {
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: var(--ice-play-content-height, var(--ice-play-main-height, 100vh)) !important;
    overflow: hidden !important;
}
body.ice-fullscreen .ice-live-section.is-active {
    display: block;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    scrollbar-gutter: stable both-edges;
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
body.ice-fullscreen .ice-live-section.is-active > .ice-panel,
body.ice-fullscreen .ice-play-section.is-active > .ice-panel,
body.ice-fullscreen .ice-live-list-panel,
body.ice-fullscreen .ice-wall-panel,
body.ice-fullscreen .ice-welcome-panel,
body.ice-fullscreen .ice-connections-panel {
    min-height: 0 !important;
    max-height: none !important;
}
body.ice-fullscreen .ice-live-list-panel .ice-live-scroll-list,
body.ice-fullscreen .ice-wall-panel [data-ice-wall-posts-wrap],
body.ice-fullscreen .ice-connections-panel .ice-live-scroll-list {
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel {
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
}
body.ice-fullscreen .ice-play-section.is-active > :last-child,
body.ice-fullscreen .ice-live-section.is-active > :last-child {
    margin-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}

.ice-trivia-authoring[aria-hidden="true"],
.ice-trivia-authoring.ice-trivia-authoring-disabled[aria-hidden="true"] {
    display: none !important;
}

/* Icebreakers Pass 133: mode-aware player chrome for non-scan live modes. */
.ice-live-mode-badge {
    background: rgba(13, 110, 253, .08) !important;
    color: #0d6efd;
    font-size: clamp(2.2rem, 8vw, 4rem);
    border: 1px solid rgba(13, 110, 253, .18);
}
.ice-live-mode-badge i {
    line-height: 1;
}

/* Icebreakers Pass 144: Match The Room profile QR, result feedback, and live-card spacing polish. */
.ice-profile-qr-link {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    overflow: hidden;
}
.ice-live-profile-qr-mini {
    background: #fff !important;
    padding: .25rem;
}
.ice-player-profile-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
}
.ice-player-profile-card-identity {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}
.ice-player-profile-card-qr {
    width: min(34vw, 132px);
    height: min(34vw, 132px);
    min-width: 104px;
    min-height: 104px;
    padding: .3rem;
    border-radius: .8rem;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .08);
}
.ice-mode-status-avatar {
    overflow: visible;
    background: transparent;
    border: 0;
    width: auto;
    height: auto;
    min-width: 0;
}
.ice-same-card-progress-badges {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}
.ice-same-card-answer-row {
    gap: .9rem;
}
.ice-same-card-peer-copy {
    color: #0d6efd;
    font-size: .85rem;
    font-weight: 600;
}
.ice-same-card-result-card {
    margin: .75rem 0;
    padding: .85rem;
    border-radius: .75rem;
    background: rgba(0, 0, 0, .035);
}
.ice-same-card-result.is-good .ice-result-icon {
    color: #198754;
}
.ice-same-card-result.is-miss .ice-result-icon {
    color: var(--bs-secondary-color);
}
body.ice-fullscreen .ice-live-play-grid {
    gap: .55rem !important;
    padding-bottom: .3rem !important;
}
body.ice-fullscreen .ice-live-card-stage {
    margin-bottom: 0 !important;
}
body.ice-fullscreen .ice-live-section.is-active {
    padding-bottom: .35rem !important;
}
body.ice-fullscreen .ice-play-section.is-active > :last-child,
body.ice-fullscreen .ice-live-section.is-active > :last-child {
    margin-bottom: .35rem !important;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel {
    padding-bottom: .75rem !important;
}
body.ice-fullscreen .ice-current-card-live > :last-child {
    margin-bottom: .25rem !important;
}
body.ice-fullscreen .ice-current-card h1,
body.ice-fullscreen [data-ice-current-card-title] {
    font-size: clamp(1.45rem, 5vw, 2.05rem) !important;
    line-height: 1.12 !important;
}
@media (max-width: 575.98px) {
    .ice-player-profile-card {
        align-items: stretch;
        flex-direction: column;
    }
    .ice-player-profile-card-qr {
        width: min(58vw, 190px);
        height: min(58vw, 190px);
        align-self: center;
    }
}

/* Pass 144 follow-up: waiting-room QR cards and shared-answer strip polish. */
.ice-player-game-qr-card {
    margin-bottom: .75rem;
}
.ice-player-game-card-qr img,
.ice-player-profile-card-qr img {
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    max-width: none !important;
}
body.ice-fullscreen .ice-live-player-strip + .ice-live-card-stage {
    margin-top: .55rem !important;
}
body.ice-fullscreen .ice-live-card-stage {
    padding-bottom: .25rem !important;
}
body.ice-fullscreen .ice-current-card-live h1,
body.ice-fullscreen .ice-current-card-live [data-ice-current-card-title] {
    font-size: clamp(1.4rem, 4.25vw, 2rem) !important;
}
.ice-welcome-grid > .ice-player-profile-card {
    order: -1;
}


/* Pass 145: final live-card viewport tightening after profile QR/result polish. */
body.ice-fullscreen .ice-live-play-grid {
    gap: .55rem !important;
    padding-bottom: .55rem !important;
}
body.ice-fullscreen .ice-live-player-strip + .ice-live-card-stage {
    margin-top: 0 !important;
}
body.ice-fullscreen .ice-live-card-stage {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
body.ice-fullscreen .ice-live-section.is-active {
    padding-bottom: 0 !important;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel {
    padding-bottom: .55rem !important;
}
body.ice-fullscreen .ice-current-card h1,
body.ice-fullscreen .ice-current-card-live h1,
body.ice-fullscreen [data-ice-current-card-title] {
    font-size: clamp(1.28rem, 4vw, 1.95rem) !important;
    line-height: 1.12 !important;
}
@media (max-width: 575.98px) {
    body.ice-fullscreen .ice-current-card h1,
    body.ice-fullscreen .ice-current-card-live h1,
    body.ice-fullscreen [data-ice-current-card-title] {
        font-size: clamp(1.18rem, 6.5vw, 1.72rem) !important;
    }
}
.ice-profile-qr-link {
    cursor: pointer;
}
.ice-profile-qr-link:focus-visible {
    outline: 3px solid rgba(13, 110, 253, .55);
    outline-offset: 3px;
    border-radius: .75rem;
}

/* Pass 148: live/recap UI scoring polish. */
.ice-live-progress-badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
}
.ice-live-progress-badge {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    line-height: 1.15;
    padding: .42rem .58rem;
    border-radius: 999px;
    white-space: nowrap;
}
.ice-live-progress-badge-label {
    opacity: .78;
    font-weight: 600;
}
.ice-live-answer-result {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .85rem;
    padding: .85rem 1rem;
    background: rgba(248,249,250,.95);
}
.ice-live-result-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 999px;
    padding: .45rem .75rem;
    background: rgba(248,249,250,.95);
    color: var(--bs-secondary-color);
    font-size: .9rem;
    line-height: 1.2;
}
.ice-live-result-pill.is-success {
    border-color: rgba(25,135,84,.25);
    background: rgba(25,135,84,.08);
    color: #146c43;
}
.ice-live-result-pill.is-neutral {
    border-color: rgba(108,117,125,.24);
    background: rgba(108,117,125,.08);
    color: var(--bs-secondary-color);
}
.ice-live-answer-result.is-correct {
    border-color: rgba(25,135,84,.25);
    background: rgba(25,135,84,.08);
}
.ice-live-answer-result.is-missed {
    border-color: rgba(108,117,125,.24);
    background: rgba(108,117,125,.08);
}
.ice-live-answer-result.is-skipped {
    border-color: rgba(255,193,7,.34);
    background: rgba(255,193,7,.11);
}
.ice-trivia-result.is-good .ice-result-icon {
    color: #198754;
}
.ice-trivia-result.is-miss .ice-result-icon {
    color: var(--bs-secondary-color);
}
.ice-trivia-result.is-skip .ice-result-icon {
    color: #856404;
}
body.ice-fullscreen .ice-progress-line {
    gap: .35rem;
}
body.ice-fullscreen .ice-live-card-stage {
    gap: .5rem;
}
body.ice-fullscreen .ice-current-card-live {
    padding-top: .65rem !important;
}
@media (max-width: 575.98px) {
    .ice-live-progress-badge {
        padding: .36rem .5rem;
        font-size: .74rem;
    }
}

/* Pass 148: mode-wide live progress and recap polish. */
.ice-live-progress-badges,
.ice-same-card-progress-badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
}
.ice-live-progress-badges .badge,
.ice-same-card-progress-badges .badge {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    line-height: 1.15;
    max-width: 100%;
    white-space: normal;
}
.ice-recap-mode-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(255,255,255,.92));
}
.ice-recap-mode-summary-badges {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .45rem;
}
.ice-play-ended-panel .ice-ended-leaderboard-list > li {
    border-radius: .85rem;
    margin-bottom: .35rem;
    padding: .55rem .65rem;
    border: 1px solid rgba(0,0,0,.06);
    background: rgba(255,255,255,.72);
}
.ice-play-ended-panel .ice-ended-leaderboard-list > li.is-current-player {
    border-color: rgba(13,110,253,.35);
    background: rgba(13,110,253,.08);
}
.ice-ended-rank {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    background: rgba(13,110,253,.1);
    color: var(--primary, #0d6efd);
    flex: 0 0 auto;
}
@media (max-width: 575.98px) {
    .ice-recap-mode-summary {
        align-items: flex-start;
        flex-direction: column;
    }
    .ice-recap-mode-summary-badges {
        justify-content: flex-start;
    }
}
.ice-live-leaderboard-score {
    align-self: center;
    justify-self: end;
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    line-height: 1.05;
    flex: 0 0 auto;
    min-width: 3.25rem;
    text-align: right;
    font-weight: 800;
}
.ice-live-leaderboard-score .ice-score-unit {
    color: rgba(33,37,41,.68);
    font-weight: 700;
    font-size: .72rem;
    line-height: 1;
}

/* Pass 148 follow-up: live leaderboard rank/current-player polish. */
.ice-leaderboard-list > li.is-current-player {
    border-color: rgba(13, 110, 253, .35);
    background: rgba(13, 110, 253, .07);
}
.ice-live-rank {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    font-weight: 700;
    background: rgba(13, 110, 253, .1);
    color: var(--primary, #0d6efd);
}
.ice-live-rank,
.ice-ended-rank {
    align-self: center;
    line-height: 1;
}
.ice-live-answer-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}
.ice-live-answer-result-copy {
    min-width: 0;
}

/* Pass 148 follow-up: no-card live state and leaderboard badges. */
.ice-live-card-stage [data-ice-current-card-empty]:not(.d-none) {
    max-width: 44rem;
    margin-left: auto;
    margin-right: auto;
}
.ice-live-card-stage [data-ice-current-card-actions]:not(.d-none) {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
}
.ice-live-leaderboard-badges {
    display: inline-flex;
    align-items: flex-end;
    justify-content: flex-end;
    flex-direction: column;
    gap: .25rem;
    flex: 0 0 auto;
}
@media (max-width: 575.98px) {
    .ice-live-leaderboard-badges .badge {
        font-size: .72rem;
    }
}

/* Pass 149: Match The Room action buttons and live leaderboard badge cleanup. */
body.ice-fullscreen .ice-live-action-buttons.ice-same-card-choice-grid,
.ice-live-action-buttons.ice-same-card-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr));
    gap: .65rem;
    width: 100%;
    max-width: 42rem !important;
}
.ice-live-action-buttons.ice-same-card-choice-grid .btn {
    width: 100%;
    min-width: 0;
    white-space: normal;
    text-align: center;
}
.ice-live-leaderboard-main {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    align-items: flex-start;
}
.ice-live-leaderboard-name {
    font-weight: 600;
    line-height: 1.15;
}
.ice-live-leaderboard-badges {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .3rem;
    min-width: 0;
}
.ice-leaderboard-list > li {
    align-items: center;
}
.ice-live-leaderboard-badges .badge {
    line-height: 1.1;
    white-space: nowrap;
}
@media (max-width: 575.98px) {
    body.ice-fullscreen .ice-live-action-buttons.ice-same-card-choice-grid,
    .ice-live-action-buttons.ice-same-card-choice-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.75rem), 1fr));
        gap: .55rem;
    }
    .ice-live-leaderboard-badges .badge {
        font-size: .72rem;
        padding-inline: .42rem;
    }
}

/* Pass 149 follow-up: live leaderboard has rank + avatar + player body. */
.ice-live-scroll-list.ice-leaderboard-list > li {
    grid-template-columns: auto 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    border-radius: .85rem;
    padding: .65rem;
    margin-bottom: .45rem;
    border: 1px solid rgba(0,0,0,.06);
    background: rgba(255,255,255,.72);
}
.ice-live-scroll-list.ice-leaderboard-list .ice-user-menu-wrap,
.ice-live-scroll-list.ice-leaderboard-list .ice-user-avatar {
    align-self: center;
}
@media (max-width: 575.98px) {
    .ice-live-scroll-list.ice-leaderboard-list > li {
        grid-template-columns: auto 38px minmax(0, 1fr) auto;
        gap: .55rem;
        padding: .6rem;
    }
}
.ice-ended-leaderboard-list > li {
    grid-template-columns: auto 34px minmax(0, 1fr) auto;
    align-items: center;
}

/* Pass 149 follow-up: rank/avatar/name grid alignment for live and ended leaderboards. */
.ice-leaderboard-list > li.ice-live-leaderboard-row,
.ice-ended-leaderboard-list > li.ice-ended-leaderboard-row {
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
}
.ice-leaderboard-list > li.ice-live-leaderboard-row .ice-user-menu-wrap,
.ice-ended-leaderboard-list > li.ice-ended-leaderboard-row .ice-user-menu-wrap {
    min-width: 0;
}
.ice-ended-leaderboard-list .ice-live-leaderboard-badges {
    margin-top: .2rem;
}

/* Pass 150: Manage reset modal option cards. */
.ice-reset-option-card {
    border: 1px solid rgba(0,0,0,.1);
    border-radius: .85rem;
    padding: .85rem .9rem;
    background: rgba(255,255,255,.75);
    min-height: 0;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.ice-reset-option-card.is-selected {
    border-color: rgba(28,95,168,.55);
    background: rgba(28,95,168,.06);
    box-shadow: 0 .25rem .9rem rgba(28,95,168,.12);
}
.ice-reset-option-card .form-check {
    margin-bottom: 0 !important;
}
.ice-reset-option-card .form-check-label {
    line-height: 1.25;
}
.ice-reset-option-card .form-check-label .text-muted {
    display: inline-block;
    margin-top: .2rem;
    font-size: .86rem;
}

/* Pass 151: waiting-room profile-card simplification and modal/import polish. */
.ice-welcome-profile-grid,
.ice-welcome-grid-profile-only {
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
}
.ice-welcome-profile-grid > .ice-player-profile-card,
.ice-welcome-grid-profile-only > .ice-player-profile-card {
    order: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin-bottom: 0 !important;
}

/* Pass 160: standard account badges next to Icebreakers display names. */
.ice-player-name-with-badges {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    min-width: 0;
    max-width: 100%;
    vertical-align: middle;
}
.ice-player-name-with-badges .ice-player-name-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ice-player-name-badges {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    flex: 0 0 auto;
}
.ice-player-name-badges .badge,
.ice-player-name-badges a {
    flex: 0 0 auto;
}
.ice-host-leaderboard > li {
    align-items: center;
}
.ice-host-leaderboard strong {
    justify-self: end;
    align-self: center;
    white-space: nowrap;
}

.ice-hide-taken-cards .ice-open-card.is-complete,
.ice-hide-taken-cards .ice-open-card.is-failed,
.ice-hide-taken-cards .ice-open-card.is-taken {
    display: none !important;
}

/* Pass 164: short-viewport live-card scroll and host leaderboard rank alignment. */
body.ice-fullscreen .ice-current-card-live {
    justify-content: flex-start !important;
    align-items: stretch !important;
    overflow-y: auto !important;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-padding-top: .75rem;
}
body.ice-fullscreen .ice-current-card-live > * {
    flex-shrink: 0;
}
.ice-host-leaderboard > li {
    grid-template-columns: 2.25rem clamp(2.3rem, 6vw, 3rem) minmax(0, 1fr) auto !important;
    align-items: center !important;
}
.ice-host-rank {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    align-self: center;
    font-weight: 800;
    line-height: 1;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.32);
}
.ice-live-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
@media (max-height: 540px) {
    body.ice-fullscreen.ice-state-live .ice-topbar {
        display: none !important;
    }
    body.ice-fullscreen.ice-state-live {
        --ice-topbar-height: 0px;
        --ice-play-topbar-height: 0px;
    }
}

.ice-pack-checkbox-list {
    max-height: 18rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.ice-pack-checkbox-row {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    cursor: pointer;
}
.ice-pack-checkbox-row:hover {
    background: rgba(13,110,253,.06);
}
.ice-pack-checkbox-main {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.ice-pack-checkbox-title {
    font-weight: 700;
    line-height: 1.2;
}
.ice-pack-checkbox-meta {
    color: var(--bs-secondary-color, #6c757d);
    font-size: .875rem;
    line-height: 1.25;
}

/* Pass 389: paginated Word Stories create picker with full-width responsive, lazy pack images. */
.ksw-icebreakers-manage .ice-create-word-story-pack-shell.is-loading {
    opacity: .72;
    pointer-events: none;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-grid .ice-create-story-pack-card {
    min-height: 100%;
    position: relative;
    overflow: hidden;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-media {
    width: 100%;
    margin-inline: 0;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-thumb {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(13, 110, 253, .08), rgba(108, 117, 125, .08));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.4);
}
.ksw-icebreakers-manage .ice-create-word-story-pack-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--bs-secondary-color, #6c757d);
    font-size: clamp(5rem, 34vw, 8.5rem);
    line-height: 1;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-fallback .fas,
.ksw-icebreakers-manage .ice-create-word-story-pack-fallback .fa-solid {
    line-height: 1;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    transition: opacity .16s ease;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-image.is-loaded {
    opacity: 1;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-image.is-broken {
    display: none;
}
.ksw-icebreakers-manage .ice-create-word-story-pack-rating {
    top: .35rem !important;
    right: .35rem !important;
    left: auto !important;
    z-index: 2;
    transform: none !important;
    box-shadow: 0 .2rem .45rem rgba(15,23,42,.18);
}
.ksw-icebreakers-manage .ice-create-story-pack-card .ice-pack-checkbox-meta {
    display: block;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-create-word-story-pack-fallback {
        font-size: clamp(4.75rem, 38vw, 8rem);
    }
}

/* Pass 170: host display Main/Play tabs for host-paced and shared-answer controls. */
.ice-host-shell.has-host-tabs {
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
}
.ice-host-shell.has-host-tabs .ice-host-tab-panel {
    display: none;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
}
.ice-host-shell.has-host-tabs .ice-host-tab-panel.is-active {
    display: flex;
}
.ice-host-shell.has-host-tabs .ice-host-main-panel .ice-host-grid {
    flex: 1 1 auto;
    min-height: 0;
}
.ice-host-shell.has-host-tabs .ice-host-play-panel {
    justify-content: flex-start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-right: .25rem;
}
.ice-host-bottom-tabs {
    position: fixed;
    left: 50%;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    z-index: 1040;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem;
    border-radius: 999px;
    background: rgba(15,23,42,.92);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.35);
    backdrop-filter: blur(12px);
}
.ice-host-tab-btn {
    border: 0;
    border-radius: 999px;
    padding: .7rem 1.05rem;
    background: transparent;
    color: rgba(255,255,255,.72);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    font-weight: 800;
    line-height: 1;
}
.ice-host-tab-btn:hover,
.ice-host-tab-btn:focus {
    color: #fff;
    outline: 0;
}
.ice-host-tab-btn.is-active {
    color: #0f172a;
    background: #fff;
}
@media (max-width: 575.98px) {
    .ice-host-bottom-tabs {
        width: calc(100% - 1.5rem);
        justify-content: stretch;
        border-radius: 1rem;
    }
    .ice-host-tab-btn {
        flex: 1 1 0;
    }
}


/* Pass 183: cleaner live Scan & Match card progress. */
.ice-current-card-counter {
    align-self: flex-end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: rgba(13, 110, 253, .12);
    color: #0d6efd;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}
.ice-current-card-counter.d-none {
    display: none !important;
}
body.ice-fullscreen .ice-current-card-counter {
    margin-bottom: .15rem;
}

/* Pass 185: compact Scan & Match live-card action row. */
.ice-live-action-buttons.ice-scan-card-actions {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: .45rem !important;
    width: 100%;
}
.ice-live-action-buttons.ice-scan-card-actions .btn {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding-left: .45rem;
    padding-right: .45rem;
}
.ice-live-action-buttons.ice-scan-card-actions .btn i {
    flex: 0 0 auto;
    margin-right: 0 !important;
}
.ice-live-action-buttons.ice-scan-card-actions .btn span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 575.98px) {
    .ice-live-action-buttons.ice-scan-card-actions {
        gap: .32rem !important;
    }
    .ice-live-action-buttons.ice-scan-card-actions .btn-lg {
        font-size: .9rem;
        padding-top: .62rem;
        padding-bottom: .62rem;
        padding-left: .32rem;
        padding-right: .32rem;
    }
}
@media (max-width: 360px) {
    .ice-live-action-buttons.ice-scan-card-actions {
        gap: .24rem !important;
    }
    .ice-live-action-buttons.ice-scan-card-actions .btn-lg {
        font-size: .84rem;
    }
}

/* Pass 186: compact status/play UI and safer wrapping. */
.ice-wrap-anywhere {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.ice-fullscreen {
    --ice-topbar-height: 56px;
    --ice-play-nav-height: calc(4.4rem + env(safe-area-inset-bottom));
}
.ice-topbar {
    min-height: 56px;
    padding-top: calc(.45rem + env(safe-area-inset-top));
    padding-bottom: .45rem;
}
.ice-topbar-title .fw-bold {
    max-width: 72vw;
}
body.ice-fullscreen .ice-main-with-nav,
.ice-fullscreen .ice-main-with-nav {
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
}
.ice-live-play-grid {
    gap: .4rem;
}
.ice-live-player-strip {
    gap: .55rem;
    padding: .55rem;
}
.ice-live-player-code-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .15rem;
}
.ice-live-player-rank-badge {
    line-height: 1.1;
}
.ice-current-card-heading-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .35rem;
}
.ice-current-card-heading-row [data-ice-current-card-kicker] {
    min-width: 0;
    margin-bottom: 0 !important;
}
.ice-current-card-flow {
    display: none !important;
}
.ice-current-card-counter {
    align-self: center;
    flex: 0 0 auto;
    min-width: 0;
    padding: .28rem .55rem;
    font-size: .92rem;
}
.ice-live-leaderboard-name,
.ice-host-leaderboard-name,
.ice-recap-leaderboard-name {
    white-space: normal;
}
.ice-live-leaderboard-score strong,
.ice-host-leaderboard-points,
.ice-recap-leaderboard-points {
    font-size: 1.35rem;
    line-height: 1;
}
.ice-host-status-badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
}
.ice-host-qr-panel {
    padding: clamp(.55rem, 1.2vw, 1rem) !important;
    gap: clamp(.15rem, .6vh, .45rem) !important;
}
.ice-host-qr {
    width: 100%;
    max-height: min(56vh, 620px) !important;
}
.ice-host-qr img,
.ice-host-qr .ice-host-qr-img {
    width: min(100%, 62vmin, 56vh, 620px) !important;
    max-height: min(56vh, 620px) !important;
}
.ksw-icebreakers-manage .ice-settings-subcard,
.ksw-icebreakers-manage .ice-dependent-options.card,
.ksw-icebreakers-manage .card[data-ice-task-unique-suboption] {
    margin-top: .75rem;
}
@media (max-width: 575.98px) {
    .ice-fullscreen {
        --ice-topbar-height: 52px;
        --ice-play-nav-height: calc(4.1rem + env(safe-area-inset-bottom));
    }
    .ice-topbar {
        min-height: 52px;
        gap: .5rem;
        padding-left: .65rem;
        padding-right: .65rem;
    }
    .ice-live-player-strip {
        padding: .45rem;
    }
    .ice-current-card-counter {
        font-size: .86rem;
        padding: .24rem .46rem;
    }
}

/* Pass 188: Prediction Ladder answer layout and busy-state affordance. */
body.ice-fullscreen .ice-live-action-buttons.ice-prediction-ladder-choice-grid,
.ice-live-action-buttons.ice-prediction-ladder-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 44rem !important;
}
.ice-live-action-buttons.ice-prediction-ladder-choice-grid [data-ice-same-card-answer="skip"] {
    grid-column: 1 / -1;
}
.ice-live-action-buttons [data-ice-busy-disabled="y"] {
    pointer-events: none;
}

/* Icebreakers Pass 189: Manage production UI tightening. */
.ksw-icebreakers-manage .ice-manage-header-actions .dropdown-item {
    display: flex;
    align-items: center;
    gap: .35rem;
}
.ksw-icebreakers-manage .ice-manage-header-actions .dropdown-item i {
    width: 1.15rem;
    text-align: center;
}
.ksw-icebreakers-manage .ice-manage-header-actions .dropdown-menu form {
    margin: 0;
}
.ksw-icebreakers-manage .ice-win-target-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ksw-icebreakers-manage .ice-win-target-card {
    min-height: 0;
    cursor: pointer;
}
.ksw-icebreakers-manage .btn-check:checked + .ice-win-target-card {
    border-color: rgba(13,110,253,.75);
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.12), 0 .6rem 1.35rem rgba(15,23,42,.08);
}
.ksw-icebreakers-manage .btn-check:disabled + .ice-win-target-card {
    opacity: .58;
    cursor: not-allowed;
    box-shadow: none;
}
@media (max-width: 991.98px) {
    .ksw-icebreakers-manage .ice-win-target-card-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-manage-header-actions {
        width: 100%;
    }
    .ksw-icebreakers-manage .ice-manage-header-actions > .btn,
    .ksw-icebreakers-manage .ice-manage-header-actions > .dropdown {
        flex: 1 1 calc(50% - .5rem);
    }
    .ksw-icebreakers-manage .ice-manage-header-actions > .dropdown > .btn {
        width: 100%;
    }
}
.ksw-icebreakers-manage .nav-tabs.nav-tabs-sm {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}
.ksw-icebreakers-manage .nav-tabs.nav-tabs-sm .nav-link {
    white-space: nowrap;
}


/* Icebreakers Pass 190: Play/Prediction Ladder polish and safer dropdown overflow. */
.ice-player-code.compact-code.ice-player-mode-code,
.ice-live-player-summary .ice-player-code.compact-code.ice-player-mode-code {
    font-size: clamp(.92rem, 3.8vw, 1.15rem);
    letter-spacing: .02em;
    line-height: 1.05;
}
.ice-live-qr-mini[role="button"],
.ice-live-qr-mini-button {
    border: 0;
    background: #fff;
    color: inherit;
    cursor: pointer;
}
.ice-live-qr-mini[role="button"]:focus-visible,
.ice-live-qr-mini-button:focus-visible {
    outline: 2px solid rgba(13,110,253,.55);
    outline-offset: 2px;
}
.ice-player-name-with-badges {
    flex-wrap: wrap;
    align-items: flex-start;
    white-space: normal;
    row-gap: .12rem;
}
.ice-player-name-with-badges .ice-player-name-text {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}
.ice-player-name-badges {
    flex-basis: 100%;
}
.ice-live-player-strip .ice-player-name-with-badges {
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
}
.ice-live-player-strip .ice-player-name-with-badges .ice-player-name-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ice-live-player-strip .ice-player-name-badges {
    flex-basis: auto;
}
.ice-dropdown-open-overflow {
    overflow: visible !important;
}
.ksw-icebreakers-manage .ice-player-list.ice-dropdown-open-overflow,
.ksw-icebreakers-manage .ice-player-card.ice-dropdown-open-overflow,
.ksw-icebreakers-manage [data-ice-players-panel].ice-dropdown-open-overflow,
.ksw-icebreakers-manage .ice-tab-section.ice-dropdown-open-overflow {
    overflow: visible !important;
}
.ice-state-modal .ice-state-choice {
    height: auto;
    overflow: visible;
    white-space: normal;
}
.ice-state-modal .ice-state-choice-copy,
.ice-state-modal .ice-state-choice-copy * {
    white-space: normal;
    overflow-wrap: anywhere;
}
.ice-user-menu-wrap .dropdown-menu,
.ice-user-menu-wrap .ksw-user-admin-menu,
.kswUserAdminMenuWrap .dropdown-menu,
.kswUserAdminMenuWrap .ksw-user-admin-menu {
    z-index: 1085;
}

/* Pass 191: compact production UI for lobby, packs, source cards, and duel team management. */
.ice-lobby-search .input-group-text {
    min-width: 2.75rem;
    justify-content: center;
}
.ice-pack-accordion {
    display: grid;
    gap: .65rem;
}
.ice-pack-accordion .accordion-item {
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: .85rem;
    overflow: hidden;
}
.ice-pack-accordion .accordion-button {
    gap: .65rem;
    align-items: center;
}
.ice-pack-accordion-heading {
    display: grid;
    gap: .35rem;
    min-width: 0;
}
.ice-pack-accordion-title {
    font-weight: 700;
    overflow-wrap: anywhere;
}
.ice-pack-accordion-meta {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
}
.ice-source-card-pool > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    cursor: pointer;
    list-style: none;
}
.ice-source-card-pool > summary::-webkit-details-marker {
    display: none;
}
.ice-source-card-pool > summary::after {
    content: "▾";
    flex: 0 0 auto;
    margin-left: auto;
    transition: transform .18s ease;
}
.ice-source-card-pool[open] > summary::after {
    transform: rotate(180deg);
}
.ice-source-card-pool > summary > span:last-child {
    text-align: right;
}
.ksw-icebreakers-manage .ice-duel-team-list {
    gap: .75rem;
    border: 0;
    background: transparent;
    overflow: visible;
}
.ksw-icebreakers-manage .ice-duel-team-card {
    border: 1px solid rgba(15, 23, 42, .1) !important;
    border-radius: 1rem !important;
    padding: .9rem;
    background: #fff;
}
.ksw-icebreakers-manage .ice-duel-team-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    margin-bottom: .75rem;
}
.ksw-icebreakers-manage .ice-duel-team-card-badges,
.ksw-icebreakers-manage .ice-duel-team-player-stats {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.ksw-icebreakers-manage .ice-duel-team-members {
    display: grid;
    gap: .65rem;
}
.ksw-icebreakers-manage .ice-duel-team-player {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .75rem;
    background: rgba(248, 250, 252, .85);
}
.ksw-icebreakers-manage .ice-duel-team-player-main {
    display: flex;
    align-items: center;
    gap: .6rem;
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-duel-team-player {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-duel-team-player-stats {
        justify-content: flex-start;
    }
    .ice-source-card-pool > summary {
        align-items: flex-start;
    }
    .ice-source-card-pool > summary > span:last-child {
        text-align: left;
    }
}

/* Icebreakers Pass 191: lobby search, pack accordions, compact duel/team management. */
.ksw-icebreakers-lobby .ice-lobby-search {
    max-width: 42rem;
}
.ksw-icebreakers-packs .ice-pack-accordion {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.ksw-icebreakers-packs .ice-pack-accordion-item {
    border: 1px solid rgba(108, 117, 125, .25);
    border-radius: .75rem;
    overflow: hidden;
}
.ksw-icebreakers-packs .ice-pack-accordion-item + .ice-pack-accordion-item {
    border-top: 1px solid rgba(108, 117, 125, .25);
}
.ksw-icebreakers-packs .ice-pack-accordion-button {
    gap: .75rem;
    align-items: center;
}
.ksw-icebreakers-packs .ice-pack-accordion-heading {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.ksw-icebreakers-packs .ice-pack-accordion-title {
    font-weight: 700;
    overflow-wrap: anywhere;
}
.ksw-icebreakers-packs .ice-pack-accordion-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
}
.ksw-icebreakers-manage .ice-player-card-progress,
.ksw-icebreakers-manage .ice-duel-team-player-stats,
.ksw-icebreakers-manage .ice-duel-team-card-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .25rem;
}
.ksw-icebreakers-manage .ice-duel-team-list {
    gap: .75rem;
}
.ksw-icebreakers-manage .ice-duel-team-list .list-group-item {
    border-radius: .75rem;
    border: 1px solid rgba(108, 117, 125, .25);
}
.ksw-icebreakers-manage .ice-duel-team-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: .75rem;
}
.ksw-icebreakers-manage .ice-duel-team-members {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: .5rem;
}
.ksw-icebreakers-manage .ice-duel-team-player {
    border: 1px solid rgba(108, 117, 125, .18);
    border-radius: .65rem;
    padding: .6rem;
    background: rgba(248, 249, 250, .72);
}
.ksw-icebreakers-manage .ice-duel-team-player-main {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.ksw-icebreakers-manage .ice-duel-assignment-card {
    border-radius: .75rem;
}
.ksw-icebreakers-manage .ice-source-card-pool > summary {
    align-items: center;
}
.ksw-icebreakers-manage .ice-source-card-pool > summary span {
    min-width: 0;
}
.ksw-icebreakers-manage .ice-source-card-pool > summary > span:last-child {
    display: block;
    margin-top: .15rem;
}
.ksw-icebreakers-manage .ice-source-card-pool > summary::after {
    margin-left: auto;
    flex: 0 0 auto;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-player-card-main,
    .ksw-icebreakers-manage .ice-duel-team-card-header {
        flex-direction: column;
        align-items: stretch;
    }
    .ksw-icebreakers-manage .ice-player-card-progress,
    .ksw-icebreakers-manage .ice-duel-team-player-stats,
    .ksw-icebreakers-manage .ice-duel-team-card-badges {
        justify-content: flex-start;
    }
}
.ksw-icebreakers-manage .ice-duel-assignment-list {
    gap: .6rem;
    border: 0;
    background: transparent;
}
.ksw-icebreakers-manage .ice-duel-assignment-card {
    border: 1px solid rgba(15, 23, 42, .1) !important;
    border-radius: .85rem !important;
}
.ksw-icebreakers-manage .ice-player-card-progress {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    white-space: normal;
}
@media (max-width: 767.98px) {
    .ksw-icebreakers-manage .ice-player-card-progress {
        justify-content: flex-start;
    }
}

/* Pass 192: mobile text-scaling navigation and card-picker stability. */
body.ice-fullscreen .ice-play-nav,
.ice-fullscreen .ice-play-nav,
.ice-play-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    max-height: none !important;
    overflow: visible !important;
}
.ice-play-nav-btn,
.ice-fullscreen .ice-play-nav-btn {
    flex: 0 0 auto !important;
    min-width: 4.25rem;
    max-width: none;
    padding-left: .55rem;
    padding-right: .55rem;
    white-space: nowrap;
    overflow: visible;
}
.ice-play-nav-btn .ice-play-nav-label {
    display: block;
    max-width: 100%;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
}
.ice-play-nav [data-ice-nav-main-item].ice-nav-overflow-hidden {
    display: none !important;
}
.ice-play-nav-more-wrap {
    flex: 0 0 auto;
    min-width: 0;
}
.ice-play-nav-more-btn.is-active,
.ice-play-nav-more-wrap .ice-play-nav-more-btn.is-active {
    background: rgba(255,255,255,.14);
    color: #fff;
}
.ice-play-nav-more-menu {
    min-width: min(18rem, calc(100vw - 1rem));
    max-width: calc(100vw - 1rem);
    margin-bottom: .45rem;
    border-radius: .85rem;
    box-shadow: 0 .8rem 2.2rem rgba(15,23,42,.24);
}
.ice-play-nav-more-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: .55rem;
    white-space: normal;
    line-height: 1.15;
    padding-top: .55rem;
    padding-bottom: .55rem;
}
.ice-play-nav-more-menu .dropdown-item i {
    width: 1.25rem;
    text-align: center;
    flex: 0 0 auto;
}
.ice-play-nav-more-menu .dropdown-item .ice-nav-badge {
    position: static;
    margin-left: auto;
}
.ice-card-picker-header {
    display: grid;
    gap: .55rem;
    flex: 0 0 auto;
    min-width: 0;
}
.ice-card-picker-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    min-width: 0;
}
.ice-card-picker-title {
    min-width: 0;
    font-size: clamp(1.45rem, 5.3vw, 2.15rem);
    line-height: 1.05;
    letter-spacing: -.035em;
}
.ice-card-picker-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    flex: 0 0 auto;
    min-width: max-content;
    white-space: nowrap;
    line-height: 1.1;
    padding: .55rem .8rem;
}
.ice-card-picker-hide-switch {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
}
.ice-card-picker-hide-switch .form-check-input {
    flex: 0 0 auto;
    margin-left: 0;
    margin-top: 0;
}
.ice-card-picker-hide-switch .form-check-label {
    min-width: 0;
    white-space: nowrap;
    font-size: clamp(.95rem, 3.9vw, 1.08rem);
    line-height: 1.15;
}
body.ice-fullscreen .ice-card-picker-panel {
    display: flex !important;
    flex-direction: column;
    gap: 0;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}
body.ice-fullscreen .ice-card-picker-panel .ice-open-card-list-scroll {
    flex: 0 1 auto;
    min-height: 0;
    overflow-y: auto !important;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
}
@media (max-width: 575.98px) {
    .ice-play-nav {
        gap: .25rem;
        padding-left: .45rem;
        padding-right: .45rem;
    }
    .ice-play-nav-btn,
    .ice-fullscreen .ice-play-nav-btn {
        min-width: 3.85rem;
        padding-left: .45rem;
        padding-right: .45rem;
    }
    .ice-card-picker-panel {
        padding: .75rem !important;
    }
    .ice-card-picker-title {
        font-size: clamp(1.35rem, 7vw, 1.9rem);
    }
    .ice-card-picker-back {
        padding: .5rem .68rem;
    }
    .ice-card-picker-hide-switch .form-check-label {
        font-size: .98rem;
    }
    .ice-open-card {
        align-items: flex-start;
        padding: .65rem .72rem;
    }
    .ice-open-card-status {
        white-space: nowrap;
        align-self: flex-start;
    }
}
.ice-play-nav-more-btn.dropdown-toggle::after { display: none; }
.ice-play-nav-more-menu .dropdown-item .ice-nav-badge { transform: none; top: auto; right: auto; }

/* Pass 193: keep waiting-room QR/profile cards compact and horizontal on text-scaled mobile screens. */
.ice-player-share-card,
.ice-player-game-qr-card {
    justify-content: flex-start;
    align-items: center;
}
.ice-player-share-card .ice-player-profile-card-qr,
.ice-player-game-qr-card .ice-player-profile-card-qr {
    order: 0;
    flex: 0 0 clamp(104px, 30vw, 152px);
    width: clamp(104px, 30vw, 152px);
    height: clamp(104px, 30vw, 152px);
    min-width: 0;
    min-height: 0;
}
.ice-player-share-card .ice-player-profile-card-identity,
.ice-player-game-qr-card .ice-player-profile-card-identity {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
}
.ice-player-profile-card-copy {
    min-width: 0;
    max-width: 100%;
}
@media (max-width: 575.98px) {
    .ice-player-share-card,
    .ice-player-game-qr-card {
        flex-direction: row !important;
        align-items: center !important;
        gap: .8rem;
        padding: .75rem;
    }
    .ice-player-share-card .ice-player-profile-card-qr,
    .ice-player-game-qr-card .ice-player-profile-card-qr {
        flex-basis: clamp(92px, 29vw, 128px);
        width: clamp(92px, 29vw, 128px);
        height: clamp(92px, 29vw, 128px);
        align-self: center;
    }
    .ice-player-share-card .ice-player-profile-card-identity,
    .ice-player-game-qr-card .ice-player-profile-card-identity {
        align-items: center;
        gap: .55rem;
    }
}
@media (max-width: 380px) {
    .ice-player-share-card,
    .ice-player-game-qr-card {
        gap: .65rem;
        padding: .65rem;
    }
    .ice-player-share-card .ice-player-profile-card-qr,
    .ice-player-game-qr-card .ice-player-profile-card-qr {
        flex-basis: 88px;
        width: 88px;
        height: 88px;
    }
}


/* Pass 194: keep duel opponent badges inline when there is room. */
.ice-duel-opponent {
    max-width: 100%;
    flex-wrap: nowrap;
    white-space: nowrap;
}
.ice-duel-opponent-label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex: 0 0 auto;
}
.ice-duel-opponent > strong {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: 100%;
    flex: 1 1 auto;
    overflow: hidden;
}
.ice-duel-opponent .ice-player-name-with-badges {
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
    min-width: 0;
    max-width: 100%;
}
.ice-duel-opponent .ice-player-name-with-badges .ice-player-name-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ice-duel-opponent .ice-player-name-badges {
    flex-basis: auto;
    flex-wrap: nowrap;
}

/* Pass 195: unified identity rows, overflow menus, and live-stage sizing. */
.ice-player-identity-line {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    max-width: 100%;
}
.ice-player-identity-avatar {
    flex: 0 0 auto;
    line-height: 0;
}
.ice-player-identity-copy {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
}
.ice-player-identity-name .ice-player-name-with-badges,
.ice-live-player-strip .ice-player-name-with-badges {
    flex-wrap: wrap;
    align-items: flex-start;
    white-space: normal;
    row-gap: .12rem;
}
.ice-player-identity-name .ice-player-name-with-badges .ice-player-name-text,
.ice-live-player-strip .ice-player-name-with-badges .ice-player-name-text {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}
.ice-player-identity-name .ice-player-name-badges,
.ice-live-player-strip .ice-player-name-badges {
    flex-basis: 100%;
}
.ice-live-player-identity {
    align-items: flex-start;
}
.ice-live-player-copy {
    padding-top: .05rem;
}
.ice-live-player-strip .ice-live-player-name {
    line-height: 1.15;
}

.ice-duel-opponent {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    flex: 0 1 auto;
    align-self: flex-start;
    flex-wrap: nowrap;
    white-space: nowrap;
}
.ice-duel-opponent > strong {
    display: inline-flex;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
    max-width: none;
    overflow: visible;
}
.ice-duel-opponent .ice-player-name-with-badges {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
    width: auto;
    max-width: none;
    min-width: 0;
}
.ice-duel-opponent .ice-player-name-with-badges .ice-player-name-text {
    flex: 0 1 auto;
    min-width: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
    overflow-wrap: normal;
}
.ice-duel-opponent .ice-player-name-badges {
    flex: 0 0 auto;
    flex-basis: auto;
    flex-wrap: nowrap;
}
@media (max-width: 575.98px) {
    .ice-duel-opponent {
        max-width: 100%;
    }
    .ice-duel-opponent > strong {
        max-width: calc(100vw - 9rem);
        overflow: hidden;
    }
    .ice-duel-opponent .ice-player-name-with-badges {
        max-width: 100%;
    }
    .ice-duel-opponent .ice-player-name-with-badges .ice-player-name-text {
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

body.ice-fullscreen .ice-play-nav,
.ice-fullscreen .ice-play-nav,
.ice-play-nav {
    justify-content: stretch !important;
}
.ice-play-nav > .ice-play-nav-btn:not(.ice-nav-overflow-hidden),
.ice-play-nav > .ice-play-nav-more-wrap:not(.d-none) {
    flex: 1 1 0 !important;
}
.ice-play-nav > .ice-play-nav-more-wrap:not(.d-none) > .ice-play-nav-more-btn {
    width: 100%;
}
.ice-play-nav.ice-nav-measuring > .ice-play-nav-btn,
.ice-play-nav.ice-nav-measuring > .ice-play-nav-more-wrap {
    flex: 0 0 auto !important;
}
.ice-play-nav.ice-nav-measuring > .ice-play-nav-more-wrap > .ice-play-nav-more-btn {
    width: auto;
}

.ice-topbar {
    min-width: 0;
}
.ice-topbar-title {
    flex: 1 1 auto;
    min-width: 0;
}
.ice-topbar-title .fw-bold {
    max-width: none;
}
.ice-topbar-actions {
    min-width: 0;
}
.ice-topbar-overflow-hidden {
    display: none !important;
}
.ice-host-control-menu[data-ice-topbar-more-wrap] {
    flex: 0 0 auto;
}
.ice-host-control-menu[data-ice-topbar-more-wrap] > .btn,
.ice-host-control-menu[data-ice-topbar-more-wrap] > button {
    white-space: nowrap;
}

body.ice-fullscreen .ice-live-play-grid {
    height: 100%;
    min-height: 0;
}
body.ice-fullscreen .ice-live-card-stage {
    flex: 1 1 auto;
    height: var(--ice-live-card-stage-height, auto) !important;
    min-height: min(100%, var(--ice-live-card-stage-height, 16rem));
    max-height: var(--ice-live-card-stage-height, none);
}
body.ice-fullscreen .ice-task-card-flip,
body.ice-fullscreen .ice-task-card-face,
body.ice-fullscreen .ice-current-card-live {
    min-height: 0;
}

/* Pass 196: keep the live-card stage using the full playable area on short/wide viewports. */
body.ice-fullscreen .ice-live-section[data-ice-live-section="play"].is-active {
    overflow: hidden !important;
}
body.ice-fullscreen .ice-live-section[data-ice-live-section="play"].is-active > .ice-live-play-grid {
    height: 100% !important;
    min-height: 0 !important;
}
body.ice-fullscreen .ice-live-card-stage {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: var(--ice-live-card-stage-height, 100%) !important;
    min-height: min(100%, var(--ice-live-card-stage-height, 12rem));
    max-height: var(--ice-live-card-stage-height, 100%);
}
body.ice-fullscreen .ice-live-card-stage > .ice-task-card-flip,
body.ice-fullscreen .ice-live-card-stage .ice-task-card-face {
    flex: 1 1 auto;
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
}
body.ice-fullscreen .ice-live-card-stage .ice-current-card-live,
body.ice-fullscreen .ice-live-card-stage .ice-card-picker-panel,
body.ice-fullscreen .ice-live-card-stage .ice-live-list-panel {
    flex: 1 1 auto;
    width: 100%;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
}
@media (min-width: 768px) and (max-height: 640px) {
    body.ice-fullscreen .ice-main-with-nav {
        padding-top: .5rem;
        padding-bottom: .5rem;
    }
    body.ice-fullscreen .ice-live-play-grid {
        gap: .45rem !important;
        padding-bottom: 0 !important;
    }
    body.ice-fullscreen .ice-live-player-strip {
        padding: .55rem .75rem;
        gap: .7rem;
    }
    body.ice-fullscreen .ice-live-qr-mini {
        width: clamp(5.75rem, 21vh, 8.25rem);
        height: clamp(5.75rem, 21vh, 8.25rem);
    }
    body.ice-fullscreen .ice-live-player-summary .ice-player-code.compact-code {
        font-size: clamp(1rem, 4.5vh, 1.45rem);
    }
    body.ice-fullscreen .ice-current-card-live,
    body.ice-fullscreen .ice-card-picker-panel {
        padding: .85rem 1rem !important;
    }
    body.ice-fullscreen .ice-current-card h1,
    body.ice-fullscreen .ice-current-card-live h1,
    body.ice-fullscreen [data-ice-current-card-title] {
        font-size: clamp(1.25rem, 5vh, 1.85rem) !important;
        line-height: 1.12 !important;
        margin-bottom: .65rem;
    }
    body.ice-fullscreen .ice-current-card .lead,
    body.ice-fullscreen .ice-current-card-live .lead {
        font-size: clamp(.98rem, 3.4vh, 1.25rem);
    }
}

/* Pass 197: duel pacing, responsive answer buttons, and unified QR/player strip layout. */
.ice-live-player-strip {
    align-items: stretch !important;
}
.ice-live-player-strip .ice-live-player-summary {
    align-self: center;
}
.ice-live-qr-mini,
.ice-player-share-card .ice-player-profile-card-qr,
.ice-player-game-qr-card .ice-player-profile-card-qr {
    padding: 0 !important;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #fff;
}
.ice-live-qr-mini {
    width: var(--ice-live-qr-size, clamp(104px, 24vw, 172px)) !important;
    height: var(--ice-live-qr-size, clamp(104px, 24vw, 172px)) !important;
    align-self: stretch;
    max-width: min(42vw, 260px);
    max-height: 260px;
}
.ice-live-qr-mini img,
.ice-live-qr-mini .ice-profile-qr-link,
.ice-player-share-card .ice-player-profile-card-qr img,
.ice-player-game-qr-card .ice-player-profile-card-qr img,
.ice-player-share-card .ice-profile-qr-link,
.ice-player-game-qr-card .ice-profile-qr-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover;
}
.ice-live-player-strip .ice-player-name-with-badges {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    white-space: normal !important;
    row-gap: .12rem;
}
.ice-live-player-strip .ice-player-name-with-badges .ice-player-name-text {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
}
.ice-live-player-strip .ice-player-name-badges {
    flex: 0 0 100% !important;
    margin-left: 0 !important;
}
.ice-duel-opponent {
    width: max-content !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
}
.ice-duel-opponent > strong,
.ice-duel-opponent .ice-player-name-with-badges {
    max-width: none !important;
}
.ice-live-action-buttons.ice-same-card-choice-grid,
body.ice-fullscreen .ice-live-action-buttons.ice-same-card-choice-grid,
.ice-live-action-buttons.ice-prediction-ladder-choice-grid,
body.ice-fullscreen .ice-live-action-buttons.ice-prediction-ladder-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 44rem !important;
}
.ice-live-action-buttons.ice-same-card-choice-grid .btn,
.ice-live-action-buttons.ice-prediction-ladder-choice-grid .btn {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center;
}
.ice-live-action-buttons.ice-same-card-choice-grid [data-ice-same-card-answer="skip"],
.ice-live-action-buttons.ice-prediction-ladder-choice-grid [data-ice-same-card-answer="skip"] {
    grid-column: 1 / -1 !important;
}
@media (max-width: 420px) {
    .ice-live-action-buttons.ice-same-card-choice-grid,
    body.ice-fullscreen .ice-live-action-buttons.ice-same-card-choice-grid,
    .ice-live-action-buttons.ice-prediction-ladder-choice-grid,
    body.ice-fullscreen .ice-live-action-buttons.ice-prediction-ladder-choice-grid {
        grid-template-columns: 1fr !important;
    }
}
@media (min-width: 768px) and (max-height: 640px) {
    body.ice-fullscreen .ice-live-qr-mini {
        width: var(--ice-live-qr-size, clamp(5.75rem, 21vh, 8.25rem)) !important;
        height: var(--ice-live-qr-size, clamp(5.75rem, 21vh, 8.25rem)) !important;
    }
}

/* Pass 197 refinement: keep live badges inline when they fit, then wrap aligned with the name. */
.ice-live-player-strip .ice-player-name-with-badges {
    column-gap: .35rem !important;
}
.ice-live-player-strip .ice-player-name-badges {
    flex: 0 0 auto !important;
    margin-left: 0 !important;
}
.ice-live-player-strip .ice-player-name-with-badges .ice-player-name-text {
    flex: 0 1 auto !important;
}
.ice-live-qr-mini img,
.ice-live-qr-mini .ice-profile-qr-link,
.ice-player-share-card .ice-player-profile-card-qr img,
.ice-player-game-qr-card .ice-player-profile-card-qr img,
.ice-player-share-card .ice-profile-qr-link,
.ice-player-game-qr-card .ice-profile-qr-link {
    object-fit: contain !important;
}


/* Pass 198: short-wide live-stage and poll-stable layout repair. */
body.ice-fullscreen .ice-live-shell {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
}
body.ice-fullscreen .ice-live-section[data-ice-live-section="play"].is-active {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
}
body.ice-fullscreen .ice-live-section[data-ice-live-section="play"].is-active > .ice-live-play-grid {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    flex: 1 1 auto !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    align-content: stretch !important;
}
body.ice-fullscreen .ice-live-card-stage {
    align-self: stretch !important;
    min-height: 0 !important;
    height: var(--ice-live-card-stage-height, 100%) !important;
    max-height: var(--ice-live-card-stage-height, 100%) !important;
    overflow: hidden !important;
}
body.ice-fullscreen .ice-live-card-stage > .ice-task-card-flip,
body.ice-fullscreen .ice-live-card-stage .ice-task-card-face,
body.ice-fullscreen .ice-live-card-stage .ice-current-card-live,
body.ice-fullscreen .ice-live-card-stage .ice-card-picker-panel,
body.ice-fullscreen .ice-live-card-stage .ice-live-list-panel {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
}
@media (min-width: 768px) and (max-height: 540px) {
    body.ice-fullscreen .ice-main-with-nav {
        padding-top: .35rem !important;
        padding-bottom: .35rem !important;
    }
    body.ice-fullscreen .ice-live-play-grid {
        gap: .4rem !important;
    }
    body.ice-fullscreen .ice-live-player-strip {
        padding: .45rem .65rem !important;
        gap: .55rem !important;
    }
    body.ice-fullscreen .ice-live-player-strip .ice-live-player-name {
        font-size: clamp(1rem, 3.4vh, 1.25rem) !important;
        line-height: 1.05 !important;
    }
    body.ice-fullscreen .ice-live-player-summary .ice-player-code.compact-code {
        font-size: clamp(1rem, 4.25vh, 1.35rem) !important;
    }
    body.ice-fullscreen .ice-current-card-live,
    body.ice-fullscreen .ice-card-picker-panel {
        padding: .7rem .9rem !important;
    }
    body.ice-fullscreen .ice-current-card-live h1,
    body.ice-fullscreen .ice-current-card-live [data-ice-current-card-title] {
        font-size: clamp(1.2rem, 6vh, 1.9rem) !important;
        line-height: 1.08 !important;
        margin-bottom: .4rem !important;
    }
    body.ice-fullscreen .ice-current-card-live .lead {
        font-size: clamp(.9rem, 3.8vh, 1.08rem) !important;
        margin-bottom: .4rem !important;
    }
}

/* Pass 202: Icon Bingo board */
.ice-road-bingo-panel {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    gap: clamp(.6rem, 1.5vw, 1rem);
}
.ice-road-bingo-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}
.ice-road-bingo-head h1 {
    margin-bottom: .25rem;
}
.ice-road-bingo-summary {
    display: flex;
    gap: .35rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    flex: 0 0 auto;
}
.ice-road-bingo-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(.3rem, .9vw, .55rem);
    flex: 1 1 auto;
    min-height: 0;
}
.ice-road-bingo-cell {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: clamp(4.2rem, 12vh, 7rem);
    padding: clamp(.35rem, 1vw, .65rem) .25rem;
    border: 2px solid rgba(37, 99, 235, .18);
    border-radius: 1rem;
    background: #fff;
    color: #1f2937;
    text-align: center;
    box-shadow: 0 .25rem .75rem rgba(15, 23, 42, .05);
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease, background .12s ease;
}
button.ice-road-bingo-cell:not(:disabled):hover,
button.ice-road-bingo-cell:not(:disabled):focus-visible {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, .6);
    box-shadow: 0 .35rem 1rem rgba(37, 99, 235, .14);
    outline: none;
}
.ice-road-bingo-cell.is-found {
    border-color: var(--ice-road-bingo-color, #2563eb);
    background: color-mix(in srgb, var(--ice-road-bingo-color, #2563eb) 11%, #fff);
}
.ice-road-bingo-cell.is-winning {
    border-color: #16a34a;
    background: rgba(22, 163, 74, .14);
}
.ice-road-bingo-cell.is-free {
    border-color: #f59e0b;
    background: rgba(245, 158, 11, .13);
}
.ice-road-bingo-cell:disabled,
.ice-road-bingo-cell[aria-disabled="true"] {
    cursor: default;
}
.ice-road-bingo-icon {
    font-size: clamp(1.05rem, 3.5vw, 1.85rem);
    line-height: 1;
    color: var(--ice-road-bingo-color, #2563eb);
    margin-bottom: .25rem;
}
.ice-road-bingo-label {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
    font-weight: 700;
    font-size: clamp(.62rem, 1.45vw, .88rem);
    line-height: 1.05;
}
.ice-road-bingo-claim {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    max-width: 100%;
    margin-top: .25rem;
    font-size: clamp(.58rem, 1.35vw, .78rem);
    line-height: 1;
    color: #6b7280;
    white-space: nowrap;
}
.ice-road-bingo-dot {
    width: .65em;
    height: .65em;
    border-radius: 50%;
    background: var(--ice-road-bingo-color, #2563eb);
    flex: 0 0 auto;
}
.ice-road-bingo-foot {
    font-size: .9rem;
}
@media (max-width: 575.98px) {
    .ice-road-bingo-panel { gap: .5rem; }
    .ice-road-bingo-head { flex-direction: column; gap: .35rem; }
    .ice-road-bingo-summary { justify-content: flex-start; }
    .ice-road-bingo-grid { gap: .25rem; }
    .ice-road-bingo-cell { border-radius: .75rem; min-height: 4.25rem; }
}
@media (min-width: 768px) and (max-height: 540px) {
    .ice-road-bingo-panel { gap: .35rem; }
    .ice-road-bingo-head h1 { font-size: clamp(1rem, 4.8vh, 1.6rem) !important; }
    .ice-road-bingo-head .lead { font-size: clamp(.78rem, 3vh, 1rem) !important; }
    .ice-road-bingo-cell { min-height: clamp(3.1rem, 12vh, 4.8rem); border-radius: .7rem; }
    .ice-road-bingo-label { -webkit-line-clamp: 3; font-size: clamp(.56rem, 2.2vh, .78rem); }
    .ice-road-bingo-foot { display: none; }
}


/* Pass 405: give concise Icon Bingo labels a little more room before clipping. */
@media (max-width: 575.98px) {
    .ice-road-bingo-icon { font-size: clamp(.95rem, 4.5vw, 1.35rem); margin-bottom: .18rem; }
    .ice-road-bingo-label { -webkit-line-clamp: 3; font-size: clamp(.56rem, 2.55vw, .76rem); line-height: 1.04; }
    .ice-road-bingo-claim { font-size: clamp(.52rem, 2.25vw, .68rem); margin-top: .18rem; }
}

/* Pass 203: Icon Bingo stabilization and mobile settings cleanup */
.ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .card-body {
    padding: clamp(.85rem, 2.5vw, 1.1rem);
}
.ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .row {
    align-items: stretch;
}
.ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .col-md-6 {
    min-width: 0;
}
.ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .form-check {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    margin-bottom: 0;
}
.ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .form-check-input {
    flex: 0 0 auto;
    margin-top: 0;
}
.ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .form-check-label {
    min-width: 0;
    line-height: 1.18;
    overflow-wrap: anywhere;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .row {
        --bs-gutter-y: .85rem;
    }
    .ksw-icebreakers-manage [data-ice-road-trip-bingo-options] .form-check {
        align-items: flex-start;
    }
    .ice-road-bingo-head h1 {
        font-size: clamp(1.35rem, 7vw, 2rem);
        line-height: 1.04;
    }
    .ice-road-bingo-head .lead {
        font-size: clamp(.95rem, 4.5vw, 1.15rem);
        line-height: 1.2;
        margin-bottom: 0;
    }
    .ice-road-bingo-foot {
        font-size: .82rem;
        line-height: 1.25;
    }
}

/* Icebreakers Pass 208: Icon Bingo offline queue state. */
.ice-road-bingo-cell.is-pending {
    outline: 2px dashed var(--ice-road-bingo-color, #2563eb);
    outline-offset: -4px;
}
.ice-road-bingo-cell.is-pending .ice-road-bingo-claim {
    font-style: italic;
}
.ice-road-bingo-cell.is-syncing {
    cursor: progress;
    pointer-events: none;
    overflow: hidden;
}
.ice-road-bingo-cell.is-syncing::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: inherit;
    background: rgba(255, 255, 255, .72);
    backdrop-filter: blur(1px);
}
.ice-road-bingo-cell.is-syncing::after {
    content: '';
    position: absolute;
    z-index: 5;
    top: 50%;
    left: 50%;
    width: 1.35rem;
    height: 1.35rem;
    margin-top: -.675rem;
    margin-left: -.675rem;
    border: 3px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: ice-spin .7s linear infinite;
}

/* Pass 211: compact lobby rows and invite controls */
.ksw-icebreakers-lobby .ice-lobby-list {
    border-radius: .85rem;
    overflow: clip;
}
.ksw-icebreakers-lobby .ice-lobby-game-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem .85rem;
}
.ksw-icebreakers-lobby .ice-lobby-row-main {
    flex: 1 1 auto;
    min-width: 0;
}
.ksw-icebreakers-lobby .ice-lobby-row-meta {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
    font-size: .875rem;
    line-height: 1.25;
}
.ksw-icebreakers-lobby .ice-lobby-row-host {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: .1rem 0 .3rem;
    min-width: 0;
}
.ksw-icebreakers-lobby .ice-lobby-host-label {
    flex: 0 0 auto;
    color: #64748b;
    font-size: .875rem;
}
.ksw-icebreakers-lobby .ice-lobby-host-identity {
    align-items: center;
    gap: .45rem;
    color: #64748b;
    font-size: .875rem;
}
.ksw-icebreakers-lobby .ice-lobby-host-identity .ice-player-identity-avatar {
    align-self: center;
}
.ksw-icebreakers-lobby .ice-lobby-host-identity .ice-lobby-host-name {
    font-weight: 600;
    line-height: 1.15;
}
.ksw-icebreakers-lobby .ice-lobby-host-identity .ice-player-name-with-badges {
    align-items: center;
}
.ksw-icebreakers-lobby .ice-lobby-row-desc {
    display: inline-block;
    max-width: min(38rem, 100%);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}
.ksw-icebreakers-lobby .ice-lobby-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    flex: 0 0 auto;
    flex-wrap: wrap;
}
.ksw-icebreakers-lobby .ice-lobby-row-actions .btn {
    white-space: nowrap;
}
[data-ice-invited-players] .list-group-item {
    border-left: 0;
    border-right: 0;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-lobby .ice-lobby-game-row {
        align-items: stretch;
        flex-direction: column;
        gap: .5rem;
    }
    .ksw-icebreakers-lobby .ice-lobby-row-actions {
        justify-content: flex-start;
    }
    .ksw-icebreakers-lobby .ice-lobby-row-actions .btn {
        flex: 1 1 auto;
    }
    .ksw-icebreakers-lobby .ice-lobby-row-desc {
        max-width: 100%;
        white-space: normal;
    }
}

/* Pass 213: Word Stories mode and pack tabs. */
.ice-pack-type-tabs .nav-link {
    border: 1px solid rgba(0,0,0,.1);
}
.ice-word-story-panel {
    display: grid;
    gap: 1rem;
}
.ice-word-story-head,
.ice-word-story-prompt-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}
.ice-word-story-summary {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}
.ice-word-story-prompt,
.ice-word-story-waiting,
.ice-word-story-complete {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    padding: 1rem;
    background: rgba(255,255,255,.82);
}
.ice-word-story-prompt .form-control {
    font-size: 1.15rem;
}
.ice-word-story-results {
    display: grid;
    gap: 1rem;
}
.ice-word-story-completed-story {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    padding: 1rem;
    background: rgba(255,255,255,.9);
}
.ice-word-story-completed-story h3 {
    font-size: 1.05rem;
    margin: 0 0 .65rem;
}
.ice-word-story-copy {
    font-size: 1.08rem;
    line-height: 1.75;
}
.ice-word-story-word {
    display: inline-block;
    border-radius: .35rem;
    padding: 0 .22rem;
    background: rgba(255,193,7,.26);
}
.ice-word-story-token-helper {
    border: 1px dashed rgba(0,0,0,.18);
    border-radius: .85rem;
    padding: .75rem;
    background: rgba(0,0,0,.025);
}
.ice-word-story-token-buttons {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}
.ice-word-story-token-buttons .btn {
    padding: .2rem .45rem;
}
.ice-leaderboard-list > li.is-player-list,
.ice-ended-leaderboard-list > li.is-player-list {
    grid-template-columns: auto minmax(0, 1fr) auto;
}
.ice-leaderboard-list > li.is-player-list .ice-live-leaderboard-score,
.ice-ended-leaderboard-list > li.is-player-list .ice-live-leaderboard-score {
    display: none;
}
.ice-live-word-count-badge {
    white-space: nowrap;
}
@media (max-width: 575.98px) {
    .ice-word-story-prompt,
    .ice-word-story-waiting,
    .ice-word-story-complete,
    .ice-word-story-completed-story {
        padding: .85rem;
    }
}

.ice-pack-list .list-group-item {
    padding: .75rem 1rem;
}
.ice-pack-row-icon {
    width: 96px;
    height: 96px;
    max-width: 96px;
    max-height: 96px;
    border-radius: .85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.04);
    font-size: 1.8rem;
}
.ice-pack-row-image {
    width: 96px;
    height: 96px;
    max-width: 96px;
    max-height: 96px;
    object-fit: cover;
    border-radius: .85rem;
    display: block;
}
.ice-pack-checkbox-image {
    width: 40px;
    height: 40px;
    min-width: 40px;
    object-fit: cover;
    border-radius: .55rem;
    display: block;
}
.ice-pack-icon-preview {
    width: 96px;
    height: 96px;
    max-width: 96px;
    max-height: 96px;
    border-radius: .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.04);
    border: 1px solid rgba(0,0,0,.08);
    overflow: hidden;
    font-size: 1.75rem;
}
.ice-pack-icon-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ice-pack-icon-dropzone {
    min-height: 8rem;
}
.ice-pack-icon-shell {
    width: 96px;
    height: 96px;
}
.ice-pack-icon-shell .ice-pack-icon-preview {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
}
.ice-pack-icon-dropzone-tile {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: .9rem;
    background: rgba(0,0,0,.45);
    opacity: 0;
    z-index: 2;
    transition: opacity .15s ease-in-out;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.ice-pack-icon-shell:hover .ice-pack-icon-dropzone-tile,
.ice-pack-icon-shell:focus-within .ice-pack-icon-dropzone-tile,
.ice-pack-icon-shell[data-has-icon="n"] .ice-pack-icon-dropzone-tile {
    opacity: 1;
}
.ice-pack-icon-shell[data-has-icon="n"] .ice-pack-icon-dropzone-tile {
    background: rgba(255,255,255,.72);
    border: 1px dashed rgba(0,0,0,.25);
}
.ice-pack-icon-dropzone-tile .dz-message {
    margin: 0;
    padding: .55rem;
    color: #fff;
    font-size: .78rem;
    line-height: 1.2;
    text-align: center;
}
.ice-pack-icon-shell[data-has-icon="n"] .ice-pack-icon-dropzone-tile .dz-message {
    color: #333;
}
.ice-pack-icon-dropzone-tile .dz-preview {
    display: none;
}
.ice-pack-icon-delete {
    z-index: 3;
    opacity: 0;
    transition: opacity .15s ease-in-out;
}
.ice-pack-icon-shell:hover .ice-pack-icon-delete,
.ice-pack-icon-shell:focus-within .ice-pack-icon-delete {
    opacity: 1;
}
@media (hover: none) {
    .ice-pack-icon-delete {
        opacity: 1;
    }
}
.ice-pack-row-main,
.ice-pack-row-title,
.ice-pack-row-desc,
.ice-pack-row-preview {
    min-width: 0;
}
.ice-pack-row-badges {
    max-width: 50%;
}
.ice-pack-row-actions .btn {
    white-space: nowrap;
}

.ice-pack-card-row-actions {
    align-self: flex-start;
}
@media (max-width: 575.98px) {
    .ice-pack-card-row-actions {
        width: 100%;
        justify-content: flex-end;
    }
}
.ice-pack-row.is-incompatible {
    background: rgba(255,193,7,.08);
}
.ice-pack-pagination .pagination,
.ice-create-word-story-pack-pagination .pagination {
    margin-bottom: 0;
}
.ice-word-story-template-editor textarea[data-ice-word-story-template-text] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
@media (max-width: 767.98px) {
    .ice-pack-row-badges {
        max-width: 100%;
        justify-content: flex-start !important;
    }
    .ice-pack-row-actions {
        width: 100%;
    }
}
.ice-word-story-body-editor {
    min-height: 18rem;
    line-height: 1.7;
    overflow: auto;
    white-space: pre-wrap;
}
.ice-word-story-body-editor:empty::before {
    content: attr(data-placeholder);
    color: var(--bs-secondary-color, #6c757d);
}
.ice-word-story-body-editor:focus {
    border-color: var(--bs-primary, #0088cc);
    box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
    outline: 0;
}

.ice-word-story-claim-card {
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1rem;
    background: var(--bs-body-bg);
    padding: clamp(1.1rem, 3vw, 1.75rem);
}
.ice-host-leaderboard > li.is-player-list {
    grid-template-columns: clamp(2.3rem, 6vw, 3rem) minmax(0, 1fr) !important;
}

.ice-word-story-token-chip {
    display: inline-flex;
    align-items: center;
    margin: 0 .12rem;
    vertical-align: baseline;
    cursor: default;
    user-select: none;
}
.ice-word-story-submit-status { min-height: 1.4rem; }
.ice-word-story-form.is-saving { opacity: .92; }
.ice-word-story-complete-title { margin-bottom: 1rem; }
.ice-player-share-mode-line { display: flex; align-items: center; gap: .35rem; min-width: 0; }
.ice-player-share-mode-line > strong { flex: 0 0 auto; }
.ice-player-share-mode-detail { display: inline-block; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.ice-pack-row-desc,
.ice-pack-row-preview { white-space: normal; }

.ice-word-story-strip-line {
    display: flex;
    align-items: baseline;
    gap: .35rem;
    min-width: 0;
    max-width: 100%;
}
.ice-word-story-strip-title {
    display: inline-block;
    min-width: 0;
    max-width: min(26rem, 55vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 400;
    vertical-align: bottom;
}

.ice-trivia-answer-form.is-saving {
    opacity: .92;
}
.ice-trivia-answer-form.is-saving .ice-trivia-option {
    pointer-events: none;
}

@media (max-width: 768px) {
    body.ice-fullscreen input,
    body.ice-fullscreen textarea,
    body.ice-fullscreen select,
    body.ice-fullscreen .form-control,
    body.ice-fullscreen .form-select,
    body.ice-fullscreen .form-control-sm,
    body.ice-fullscreen .form-select-sm,
    body.ice-fullscreen .input-group-sm > .form-control,
    body.ice-fullscreen .input-group-sm > .form-select,
    body.ice-fullscreen .input-group-lg > .form-control,
    body.ice-fullscreen .input-group-lg > .form-select {
        font-size: 16px !important;
    }
}

@media (max-width: 575.98px) {
    .ice-word-story-strip-line {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        line-height: 1.2;
    }
    .ice-word-story-strip-line > strong {
        line-height: 1.2;
    }
    .ice-word-story-strip-title {
        max-width: 100%;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        line-height: 1.2;
    }
}


/* Pass 229: compact Word Stories player rows and story heading cleanup. */
.ksw-icebreakers-manage .ice-player-card-main,
.ksw-icebreakers-manage .ice-player-card-person,
.ksw-icebreakers-manage .ice-player-card-identity {
    min-width: 0;
}
.ksw-icebreakers-manage .ice-player-card-person {
    flex: 1 1 auto;
}
.ksw-icebreakers-manage .ice-player-card-identity {
    flex: 1 1 auto;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player {
    padding-top: .65rem;
    padding-bottom: .65rem;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-main {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem .75rem;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-progress {
    align-self: center;
}
@media (max-width: 575.98px) {
    .ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-main {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-progress {
        justify-content: flex-start;
    }
}
.ice-word-story-game-title,
.ice-word-story-complete-title {
    font-size: 1.15rem;
    line-height: 1.3;
    font-weight: 700;
    overflow-wrap: anywhere;
}


/* Pass 230: mobile keyboard and Word Stories settings layout repair. */
@media (max-width: 768px) {
    html,
    body.ice-fullscreen,
    body.ice-fullscreen .ice-app {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
    body.ice-fullscreen input,
    body.ice-fullscreen textarea,
    body.ice-fullscreen select,
    body.ice-fullscreen button,
    body.ice-fullscreen .form-control,
    body.ice-fullscreen .form-select,
    body.ice-fullscreen .input-group-text,
    body.ice-fullscreen .btn {
        font-size: max(16px, 1rem) !important;
    }
}
/* Pass 231: Word Stories host/player UI, timer sub-option, and desktop play width corrections. */
:root {
    --ice-live-panel-max-width: 900px;
}
body.ice-host-screen .ice-host-leaderboard.is-word-story-player-list > li,
body.ice-host-screen .ice-host-leaderboard > li.is-player-list,
.ice-host-leaderboard > li.is-player-list {
    grid-template-columns: clamp(2.3rem, 6vw, 3rem) minmax(0, 1fr) !important;
}
body.ice-host-screen .ice-host-leaderboard.is-word-story-player-list .ice-host-rank,
body.ice-host-screen .ice-host-leaderboard.is-word-story-player-list .ice-host-leaderboard-points,
body.ice-host-screen .ice-host-leaderboard > li.is-player-list .ice-host-rank,
body.ice-host-screen .ice-host-leaderboard > li.is-player-list .ice-host-leaderboard-points,
.ice-host-leaderboard > li.is-player-list .ice-host-rank,
.ice-host-leaderboard > li.is-player-list .ice-host-leaderboard-points {
    display: none !important;
}
body.ice-fullscreen .ice-live-play-grid,
body.ice-fullscreen .ice-live-list-panel,
.ice-fullscreen .ice-welcome-panel,
.ice-fullscreen .ice-wall-panel,
.ice-fullscreen .ice-settings-panel {
    width: min(100%, var(--ice-live-panel-max-width));
    max-width: var(--ice-live-panel-max-width) !important;
}
body.ice-fullscreen .ice-live-player-strip,
body.ice-fullscreen .ice-live-card-stage,
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel {
    width: 100%;
}
.ksw-icebreakers-manage #iceSettingsFeatures .ice-settings-toggles > .ice-dependent-options.col-lg-6 {
    width: 50%;
    flex: 0 0 50%;
    max-width: 50%;
}
.ksw-icebreakers-manage [data-ice-word-story-timer-options].ice-dependent-options {
    position: static !important;
    clear: both !important;
    width: auto !important;
    max-width: 26rem !important;
    margin-top: -.35rem;
}
.ksw-icebreakers-manage [data-ice-word-story-timer-options] .input-group {
    max-width: none;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player {
    padding: .5rem .75rem;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .4rem .75rem;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-person {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-identity,
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-identity > .d-flex:first-child,
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-identity strong {
    min-width: 0;
    width: 100%;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-identity strong {
    display: block;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-name-with-badges {
    display: flex;
    align-items: center;
    gap: .35rem;
    width: 100%;
    max-width: 100%;
    flex-wrap: wrap;
    line-height: 1.15;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-name-text {
    flex: 1 1 auto;
    min-width: 8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-name-badges {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .15rem;
}
.ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-progress {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .25rem;
    align-self: center;
}
@media (max-width: 991.98px) {
    .ksw-icebreakers-manage #iceSettingsFeatures .ice-settings-toggles > .ice-dependent-options.col-lg-6 {
        width: 100%;
        flex-basis: 100%;
        max-width: 100%;
    }
}
@media (max-width: 575.98px) {
    :root {
        --ice-live-panel-max-width: 100%;
    }
    .ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-main {
        grid-template-columns: 1fr;
    }
    .ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-card-progress {
        justify-content: flex-start;
    }
    .ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-name-text {
        min-width: 0;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
    .ksw-icebreakers-manage .ice-player-card.is-word-story-player .ice-player-name-badges {
        margin-left: 0;
    }
    .ksw-icebreakers-manage [data-ice-word-story-timer-options].ice-dependent-options {
        max-width: calc(100% - .75rem) !important;
    }
}

/* Pass 233: fullscreen player viewport repair.
   Use one CSS grid for topbar, content, and bottom nav. The nav stays in normal flow
   instead of being fixed, so content cannot slide underneath it and short mobile
   viewports do not leave a false blank band between content and nav. */
@media (max-width: 768px) {
    body.ice-fullscreen input,
    body.ice-fullscreen textarea,
    body.ice-fullscreen select,
    body.ice-fullscreen .form-control,
    body.ice-fullscreen .form-select,
    body.ice-fullscreen .input-group-text {
        font-size: 16px !important;
        line-height: 1.35 !important;
    }
}
html.ice-html-fullscreen,
html.ice-html-fullscreen body.ice-fullscreen,
body.ice-fullscreen {
    height: var(--ice-viewport-height, 100vh) !important;
    min-height: var(--ice-viewport-height, 100vh) !important;
    max-height: var(--ice-viewport-height, 100vh) !important;
    overflow: hidden !important;
}
body.ice-fullscreen .ice-app {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    height: var(--ice-viewport-height, 100vh) !important;
    min-height: 0 !important;
    max-height: var(--ice-viewport-height, 100vh) !important;
    overflow: hidden !important;
}
@supports (height: 100dvh) {
    html.ice-html-fullscreen,
    html.ice-html-fullscreen body.ice-fullscreen,
    body.ice-fullscreen,
    body.ice-fullscreen .ice-app {
        height: var(--ice-viewport-height, 100dvh) !important;
        max-height: var(--ice-viewport-height, 100dvh) !important;
    }
    html.ice-html-fullscreen,
    html.ice-html-fullscreen body.ice-fullscreen,
    body.ice-fullscreen {
        min-height: var(--ice-viewport-height, 100dvh) !important;
    }
}
body.ice-fullscreen .ice-topbar {
    grid-row: 1 !important;
    flex: none !important;
    position: relative !important;
    top: auto !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
}
body.ice-fullscreen .ice-play-nav,
.ice-fullscreen .ice-play-nav,
.ice-play-nav {
    position: relative !important;
    grid-row: 3 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 10 !important;
    flex: none !important;
    transform: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    box-shadow: 0 -.45rem 1.1rem rgba(0,0,0,.16) !important;
}
body.ice-fullscreen .ice-main-with-nav,
.ice-fullscreen .ice-main-with-nav {
    grid-row: 2 !important;
    align-self: stretch !important;
    flex: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    padding: clamp(.35rem, 1.5vh, .85rem) 1rem clamp(.35rem, 1.2vh, .75rem) !important;
}
body.ice-fullscreen .ice-main-with-nav > .ice-alert,
body.ice-fullscreen .ice-main-with-nav > .ice-action-status,
body.ice-fullscreen .ice-main-with-nav > .ice-player-announcement {
    flex: 0 0 auto !important;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section,
body.ice-fullscreen .ice-live-section {
    display: none !important;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active,
body.ice-fullscreen .ice-main-with-nav > .ice-live-shell {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    display: flex !important;
    flex-direction: column !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-recap,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-center-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-live-list-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-settings-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-connections-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-wall-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-welcome-panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen .ice-live-shell {
    display: flex !important;
    flex-direction: column !important;
}
body.ice-fullscreen .ice-live-section.is-active {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    padding-bottom: 0 !important;
}
body.ice-fullscreen .ice-live-section.is-active:not([data-ice-live-section="play"]) > .ice-panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen .ice-live-play-grid {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
body.ice-fullscreen .ice-live-player-strip {
    flex: 0 0 auto !important;
}
body.ice-fullscreen .ice-live-card-stage {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
body.ice-fullscreen .ice-live-card-stage > .ice-task-card-flip,
body.ice-fullscreen .ice-live-card-stage .ice-task-card-face,
body.ice-fullscreen .ice-live-card-stage .ice-current-card-live,
body.ice-fullscreen .ice-live-card-stage .ice-card-picker-panel,
body.ice-fullscreen .ice-live-card-stage .ice-live-list-panel {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
}
body.ice-fullscreen .ice-task-card-flip,
body.ice-fullscreen .ice-task-card-face {
    overflow: hidden !important;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel,
body.ice-fullscreen .ice-live-list-panel,
body.ice-fullscreen .ice-welcome-panel,
body.ice-fullscreen .ice-wall-panel,
body.ice-fullscreen .ice-connections-panel,
body.ice-fullscreen .ice-settings-panel {
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen [data-ice-play-section="wall"].is-active .ice-wall-panel,
body.ice-fullscreen [data-ice-live-section="wall"].is-active .ice-wall-panel {
    display: flex !important;
    flex-direction: column !important;
}
body.ice-fullscreen .ice-wall-panel > [data-ice-wall-enabled-content] {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    min-height: 0 !important;
}
body.ice-fullscreen .ice-wall-form {
    flex: 0 0 auto !important;
}
body.ice-fullscreen [data-ice-wall-posts-wrap],
body.ice-fullscreen .ice-wall-panel [data-ice-wall-posts-wrap],
body.ice-fullscreen [data-ice-play-section="wall"].is-active [data-ice-wall-posts-wrap],
body.ice-fullscreen [data-ice-live-section="wall"].is-active [data-ice-wall-posts-wrap] {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > :last-child,
body.ice-fullscreen .ice-live-section.is-active > :last-child {
    margin-bottom: 0 !important;
}
@media (max-height: 430px) {
    body.ice-fullscreen .ice-topbar {
        padding-top: .35rem !important;
        padding-bottom: .35rem !important;
    }
    body.ice-fullscreen .ice-main-with-nav {
        padding: .35rem .7rem !important;
    }
    body.ice-fullscreen .ice-play-nav {
        gap: .2rem !important;
        padding: .32rem .45rem calc(.32rem + env(safe-area-inset-bottom, 0px)) !important;
    }
    body.ice-fullscreen .ice-play-nav-btn {
        min-height: 2.55rem !important;
        border-radius: .75rem !important;
        gap: .12rem !important;
        padding: .3rem .45rem !important;
    }
    body.ice-fullscreen .ice-play-nav-btn i {
        font-size: 1rem !important;
    }
    body.ice-fullscreen .ice-play-nav-btn span {
        font-size: .72rem !important;
    }
    body.ice-fullscreen .ice-panel,
    body.ice-fullscreen .ice-current-card-live,
    body.ice-fullscreen .ice-card-picker-panel,
    body.ice-fullscreen .ice-live-list-panel,
    body.ice-fullscreen .ice-wall-panel,
    body.ice-fullscreen .ice-welcome-panel {
        border-radius: .9rem !important;
        padding: .75rem !important;
    }
    body.ice-fullscreen .ice-section-title-row,
    body.ice-fullscreen .ice-welcome-top {
        margin-bottom: .55rem !important;
    }
    body.ice-fullscreen .ice-section-title-row h1,
    body.ice-fullscreen .ice-wall-panel h1,
    body.ice-fullscreen .ice-live-list-panel h1,
    body.ice-fullscreen .ice-welcome-panel h1 {
        font-size: clamp(1.35rem, 7vw, 1.9rem) !important;
        line-height: 1.08 !important;
    }
    body.ice-fullscreen .ice-wall-form {
        gap: .45rem !important;
    }
}
@media (max-height: 340px) {
    body.ice-fullscreen .ice-topbar {
        padding-left: .7rem !important;
        padding-right: .7rem !important;
    }
    body.ice-fullscreen .ice-topbar-actions {
        gap: .35rem !important;
    }
    body.ice-fullscreen .ice-topbar-actions .btn,
    body.ice-fullscreen .ice-topbar-actions .badge {
        padding: .28rem .5rem !important;
        font-size: .86rem !important;
    }
    body.ice-fullscreen .ice-play-nav {
        padding: .25rem .45rem calc(.25rem + env(safe-area-inset-bottom, 0px)) !important;
    }
    body.ice-fullscreen .ice-play-nav-btn {
        min-height: 2.2rem !important;
    }
    body.ice-fullscreen .ice-play-nav-btn i {
        font-size: .9rem !important;
    }
    body.ice-fullscreen .ice-play-nav-btn span {
        font-size: .66rem !important;
    }
    body.ice-fullscreen .ice-main-with-nav {
        padding-top: .25rem !important;
        padding-bottom: .25rem !important;
    }
    body.ice-fullscreen .ice-live-player-strip {
        padding: .35rem .5rem !important;
        gap: .45rem !important;
    }
    body.ice-fullscreen .ice-live-qr-mini {
        width: clamp(3.25rem, 18vh, 4.5rem) !important;
        height: clamp(3.25rem, 18vh, 4.5rem) !important;
    }
    body.ice-fullscreen .ice-live-player-strip .ice-live-player-name {
        font-size: clamp(1rem, 5.2vh, 1.25rem) !important;
        line-height: 1.05 !important;
    }
    body.ice-fullscreen .ice-live-player-summary .ice-progress-line,
    body.ice-fullscreen .ice-live-player-summary .ice-live-progress-badges {
        font-size: .82rem !important;
        line-height: 1.1 !important;
    }
}


/* Icebreakers Pass 234: anchor fullscreen gameplay to the visible viewport.
   iOS Safari scrolls the layout viewport when the keyboard opens. Keep the
   document itself fixed and let only the active Icebreakers panel scroll. */
html.ice-html-fullscreen,
html.ice-html-fullscreen body.ice-fullscreen {
    width: 100%;
    height: var(--ice-viewport-height, 100vh);
    min-height: var(--ice-viewport-height, 100vh);
    max-height: var(--ice-viewport-height, 100vh);
    overflow: hidden !important;
    overscroll-behavior: none;
}
body.ice-fullscreen {
    position: fixed;
    inset: 0;
    margin: 0;
    touch-action: manipulation;
}
body.ice-fullscreen .ice-app {
    position: fixed;
    top: var(--ice-visual-offset-top, 0px);
    left: var(--ice-visual-offset-left, 0px);
    width: var(--ice-visual-width, 100%);
    height: var(--ice-viewport-height, 100vh);
    min-height: 0;
    max-height: var(--ice-viewport-height, 100vh);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
}
body.ice-fullscreen .ice-topbar {
    grid-row: 1;
    min-height: 0;
}
body.ice-fullscreen .ice-main {
    grid-row: 2;
    min-height: 0;
    max-height: none;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen .ice-main-with-nav {
    height: auto !important;
    max-height: none !important;
    flex: initial;
    overflow: hidden;
    padding-bottom: .75rem;
}
body.ice-fullscreen .ice-play-nav {
    grid-row: 3;
    position: relative !important;
    left: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    flex: initial;
    min-height: 0;
    transform: none;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active,
body.ice-fullscreen .ice-main-with-nav > .ice-live-shell,
body.ice-fullscreen .ice-live-shell,
body.ice-fullscreen .ice-live-section.is-active {
    height: 100%;
    min-height: 0;
    max-height: 100%;
}
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-fullscreen .ice-live-shell,
body.ice-fullscreen .ice-live-section.is-active,
body.ice-fullscreen .ice-live-play-grid {
    overflow: hidden;
}
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-card-picker-panel,
body.ice-fullscreen .ice-live-list-panel,
body.ice-fullscreen .ice-live-scroll-list,
body.ice-fullscreen .ice-open-card-list-scroll {
    scroll-padding-bottom: 1rem;
}
@media (max-height: 440px) and (orientation: landscape), (max-height: 520px) {
    body.ice-fullscreen .ice-topbar {
        padding-top: max(.35rem, env(safe-area-inset-top));
        padding-bottom: .35rem;
    }
    body.ice-fullscreen .ice-main-with-nav {
        padding-top: .45rem;
        padding-bottom: .45rem;
    }
    body.ice-fullscreen .ice-play-nav {
        padding-top: .35rem;
        padding-bottom: calc(.35rem + env(safe-area-inset-bottom));
    }
    body.ice-fullscreen .ice-play-nav-btn {
        min-height: 2.65rem;
        border-radius: .75rem;
    }
    body.ice-fullscreen .ice-live-play-grid {
        gap: .45rem;
    }
    body.ice-fullscreen .ice-live-player-strip {
        padding: .45rem .55rem;
        gap: .55rem;
    }
    body.ice-fullscreen .ice-live-qr-mini {
        width: min(5.25rem, 24vw);
        height: min(5.25rem, 24vw);
    }
    body.ice-fullscreen .ice-current-card-live,
    body.ice-fullscreen .ice-card-picker-panel,
    body.ice-fullscreen .ice-live-list-panel {
        padding: .7rem;
    }
}


/* Pass 241: Icon Bingo silent mark/clear UX and concise mode badges. */
[data-ice-road-trip-bingo-goal="blackout"] .ice-road-bingo-cell.is-winning {
    border-color: var(--ice-road-bingo-color, #2563eb);
    background: color-mix(in srgb, var(--ice-road-bingo-color, #2563eb) 11%, #fff);
}
[data-ice-road-trip-bingo-goal="blackout"] .ice-road-bingo-cell.is-free.is-winning {
    border-color: #f59e0b;
    background: rgba(245, 158, 11, .13);
}
.ice-road-bingo-head .ice-current-card-heading-row {
    justify-content: flex-start;
    flex-wrap: wrap;
}
.ice-road-bingo-mode-badge {
    line-height: 1.1;
}

/* Pass 244: Wavelengths mode controls. */
.ice-wavelengths-vote-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .5rem;
}
@media (max-width: 575.98px) {
    .ice-wavelengths-vote-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Pass 245: Wavelengths production UX polish. */
.ice-wavelengths-panel .ice-wavelengths-round-card {
    border-radius: 1rem;
}
.ice-wavelengths-panel form.is-saving {
    opacity: .72;
    pointer-events: none;
}
.ice-wavelengths-vote-grid .btn {
    min-height: 2.75rem;
    font-weight: 700;
}

/* Pass 248: Wavelengths waiting/progress UX. */
.ice-wavelengths-panel[data-ice-wavelengths-phase-state] .ice-wavelengths-round-card {
    overflow: hidden;
}
.ice-wavelengths-wait-panel {
    border: 1px dashed rgba(13, 110, 253, .25);
    border-radius: .85rem;
    background: rgba(13, 110, 253, .035);
}
.ice-wavelengths-answer-list .list-group-item {
    overflow-wrap: anywhere;
}
.ice-wavelengths-panel .progress {
    height: .55rem;
    background: rgba(13, 110, 253, .12);
}

/* Pass 298: Wavelengths round and completed-game polish. */
.ice-wavelengths-round-badge {
    white-space: nowrap;
}
.ice-wavelengths-category {
    font-size: clamp(1.35rem, 3.4vw, 2.2rem);
    font-weight: 800;
    line-height: 1.08;
    overflow-wrap: anywhere;
}
.ice-wavelengths-answer-text {
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    font-weight: 600;
    color: var(--bs-secondary-color);
    overflow-wrap: anywhere;
}
.ice-wavelengths-complete-summary {
    max-width: 46rem;
    margin-left: auto;
    margin-right: auto;
}
.ice-wavelengths-complete-number {
    margin-bottom: 1rem;
}
.ice-wavelengths-complete-number span,
.ice-wavelengths-complete-grid span {
    display: block;
    color: var(--bs-secondary-color);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .035em;
}
.ice-wavelengths-complete-number strong {
    display: block;
    font-size: clamp(3rem, 12vw, 6rem);
    line-height: 1;
    font-weight: 900;
}
.ice-wavelengths-complete-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.ice-wavelengths-complete-grid > div {
    border: 1px solid rgba(108, 117, 125, .22);
    border-radius: .9rem;
    padding: .85rem;
    background: rgba(248, 249, 250, .88);
}
.ice-wavelengths-complete-grid strong {
    display: block;
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.1;
}
@media (max-width: 575.98px) {
    .ice-wavelengths-complete-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Pass 261: mobile-friendly readiness actions, QR helper copy, and bottom-nav sizing. */
.ice-readiness-body {
    min-width: 0;
}
.ice-readiness-action {
    margin-top: .55rem;
}
.ice-readiness-action .btn {
    white-space: normal;
    text-align: left;
}
.ice-readiness-item.is-optional {
    border-color: rgba(108, 117, 125, .28);
    background: rgba(108, 117, 125, .04);
}
.ice-readiness-item.is-optional .ice-readiness-icon {
    background: rgba(108, 117, 125, .12);
    color: var(--bs-secondary-color);
}
.ice-readiness-item.is-optional-progress {
    border-color: rgba(255, 193, 7, .35);
    background: rgba(255, 193, 7, .06);
}
.ice-readiness-item.is-optional-progress .ice-readiness-icon {
    background: rgba(255, 193, 7, .16);
    color: #8a6d00;
}
@media (max-width: 575.98px) {
    .ice-readiness-item {
        display: grid;
        grid-template-columns: 2rem minmax(0, 1fr);
    }
    .ice-readiness-action .btn {
        width: auto;
        max-width: 100%;
    }
}
.ice-player-game-qr-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    grid-column: 1 / -1;
    margin-top: .65rem;
}
.ice-custom-submissions-title-row {
    align-items: flex-start;
}
.ice-custom-add-wrap {
    flex: 0 0 auto;
}
@media (max-width: 767.98px) {
    .ice-custom-submissions-title-row {
        flex-direction: column;
        align-items: stretch;
    }
    .ice-custom-add-wrap {
        width: 100%;
    }
    .ice-custom-add-wrap .btn {
        width: 100%;
    }
}
.ice-game-code-button {
    font: inherit;
    line-height: 1;
    cursor: pointer;
}
body.ice-fullscreen .ice-play-nav,
.ice-fullscreen .ice-play-nav,
.ice-play-nav {
    justify-content: stretch !important;
    align-items: stretch !important;
}
.ice-play-nav-btn,
.ice-fullscreen .ice-play-nav-btn {
    min-width: 0 !important;
    width: 100%;
    max-width: none !important;
    overflow: hidden !important;
    border-radius: .9rem;
}
.ice-play-nav-btn .ice-play-nav-label,
.ice-play-nav-btn span:not(.ice-nav-badge) {
    min-width: 0;
    max-width: 100%;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.ice-play-nav > .ice-play-nav-btn:not(.ice-nav-overflow-hidden),
.ice-play-nav > .ice-play-nav-more-wrap:not(.d-none) {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}
.ice-play-nav > .ice-play-nav-more-wrap:not(.d-none) > .ice-play-nav-more-btn {
    width: 100%;
}
.ice-play-nav.ice-nav-measuring > .ice-play-nav-btn {
    width: auto !important;
}


/* Pass 262: compact QR margins, profile-card alignment, inline name badges, and responsive bottom nav polish. */
.ice-player-profile-card-qr {
    border-radius: .4rem !important;
}
.ice-player-identity-avatar {
    align-self: flex-start;
}
.ice-player-game-qr-card {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start !important;
}
.ice-player-game-qr-card .ice-player-profile-card-qr {
    grid-column: 1;
    grid-row: 1;
}
.ice-player-game-qr-card .ice-player-profile-card-identity {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: .65rem;
}
.ice-live-leaderboard-name .ice-player-name-with-badges,
.ice-leaderboard-list .ice-player-name-with-badges,
.ice-host-leaderboard-name .ice-player-name-with-badges {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    max-width: 100%;
    min-width: 0;
    vertical-align: middle;
}
.ice-live-leaderboard-name .ice-player-name-text,
.ice-leaderboard-list .ice-player-name-text,
.ice-host-leaderboard-name .ice-player-name-text {
    flex: 0 1 auto !important;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ice-live-leaderboard-name .ice-player-name-badges,
.ice-leaderboard-list .ice-player-name-badges,
.ice-host-leaderboard-name .ice-player-name-badges {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    min-width: max-content;
}
.ice-play-nav-btn,
.ice-fullscreen .ice-play-nav-btn {
    min-width: 0 !important;
}
.ice-play-nav > .ice-play-nav-btn:not(.ice-nav-overflow-hidden),
.ice-play-nav > .ice-play-nav-more-wrap:not(.d-none) {
    min-width: 0 !important;
}
.ice-play-nav-btn.is-active,
.ice-play-nav-btn.active {
    background-clip: border-box;
}


/* Pass 263: player QR/profile alignment and flexible account badge layout. */
.ice-player-game-qr-card {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start !important;
}
.ice-player-game-qr-card .ice-player-profile-card-qr {
    grid-column: 1;
    grid-row: 1 / span 2;
}
.ice-player-game-qr-card .ice-player-profile-card-identity {
    grid-column: 2;
    grid-row: 1;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    grid-column: 2;
    grid-row: 2;
    margin-top: .35rem;
}
.ice-player-identity-name,
.ice-live-leaderboard-name,
.ice-host-leaderboard-name {
    min-width: 0;
    max-width: 100%;
}
.ice-player-identity-name .ice-player-name-with-badges,
.ice-live-leaderboard-name .ice-player-name-with-badges,
.ice-leaderboard-list .ice-player-name-with-badges,
.ice-host-leaderboard-name .ice-player-name-with-badges {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    align-items: center !important;
    flex-wrap: wrap !important;
    column-gap: .25rem;
    row-gap: .1rem;
}
.ice-player-identity-name .ice-player-name-with-badges .ice-player-name-text,
.ice-live-leaderboard-name .ice-player-name-with-badges .ice-player-name-text,
.ice-leaderboard-list .ice-player-name-with-badges .ice-player-name-text,
.ice-host-leaderboard-name .ice-player-name-with-badges .ice-player-name-text {
    flex: 0 1 auto !important;
    min-width: 0;
    max-width: 100%;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.ice-player-identity-name .ice-player-name-badges,
.ice-live-leaderboard-name .ice-player-name-badges,
.ice-leaderboard-list .ice-player-name-badges,
.ice-host-leaderboard-name .ice-player-name-badges {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    min-width: max-content;
    max-width: 100%;
    white-space: nowrap !important;
    flex-wrap: nowrap !important;
}
@media (max-width: 500px) {
    .ice-player-game-qr-card .ice-player-profile-card-qr {
        grid-row: 1;
    }
    .ice-player-game-qr-card .ice-player-game-qr-copy {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: .65rem;
    }
}

/* Pass 264: global badge-line wrapping, QR identity alignment, and bottom nav fit fixes. */
.ice-player-name-with-badges {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    column-gap: .25rem;
    row-gap: .08rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.ice-player-name-with-badges .ice-player-name-text {
    flex: 0 1 auto !important;
    min-width: 0;
    max-width: 100%;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.ice-player-name-with-badges .ice-player-name-badges {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    flex-wrap: nowrap !important;
    min-width: max-content;
    max-width: 100%;
    white-space: nowrap !important;
}
.ice-intro-post .ice-player-name-with-badges,
.ice-live-leaderboard-name .ice-player-name-with-badges,
.ice-host-leaderboard-name .ice-player-name-with-badges,
.ice-player-identity-name .ice-player-name-with-badges {
    width: 100%;
}
.ice-intro-post > .min-width-0 > .d-flex > strong {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
}
.ice-user-menu-wrap,
.ice-user-avatar-menu,
.ice-player-identity-avatar {
    align-self: flex-start;
    align-items: flex-start;
}
.ice-player-profile-card-identity {
    align-items: flex-start;
}
.ice-player-game-qr-card .ice-player-profile-card-qr {
    grid-row: 1 / span 2;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    grid-column: 2;
    grid-row: 2;
    margin-top: .35rem;
}
@media (min-width: 501px) {
    .ice-player-game-qr-card .ice-player-profile-card-identity .ice-live-player-avatar,
    .ice-player-game-qr-card .ice-player-profile-card-identity .ice-user-avatar {
        width: clamp(48px, 12vw, 132px) !important;
        height: clamp(48px, 12vw, 132px) !important;
    }
    .ice-player-game-qr-card .ice-player-profile-card-identity .ice-player-identity-avatar {
        flex: 0 0 auto;
    }
}
@media (max-width: 500px) {
    .ice-player-game-qr-card .ice-player-profile-card-qr {
        grid-row: 1;
    }
    .ice-player-game-qr-card .ice-player-game-qr-copy {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: .65rem;
    }
}
.ice-join-game-code-large {
    font-size: clamp(1.65rem, 7vw, 2.4rem);
    letter-spacing: .12em;
    padding: .5rem .75rem;
}
.ice-play-nav.ice-nav-measuring > .ice-play-nav-btn,
.ice-play-nav.ice-nav-measuring > .ice-play-nav-more-wrap {
    flex: 0 0 auto !important;
    width: auto !important;
}

/* Pass 264: global player badge alignment, QR/player-card polish, and bottom-nav cleanup. */
.ice-player-name-with-badges {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    align-items: center !important;
    flex-wrap: wrap !important;
    column-gap: .25rem;
    row-gap: .1rem;
    vertical-align: middle;
}
.ice-player-name-with-badges .ice-player-name-text {
    flex: 0 1 auto !important;
    min-width: 0;
    max-width: 100%;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
}
.ice-player-name-with-badges .ice-player-name-badges {
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    min-width: max-content;
    max-width: 100%;
    white-space: nowrap !important;
    flex-wrap: nowrap !important;
}
.ice-intro-post,
.ice-connection-card,
.ice-player-identity-line {
    align-items: flex-start;
}
.ice-player-identity-avatar {
    align-self: flex-start;
}
@media (min-width: 501px) {
    .ice-player-game-qr-card .ice-player-identity-avatar > .ice-user-menu-wrap img,
    .ice-player-game-qr-card .ice-player-identity-avatar > img,
    .ice-player-share-card .ice-player-identity-avatar > .ice-user-menu-wrap img,
    .ice-player-share-card .ice-player-identity-avatar > img {
        width: clamp(48px, 10vw, 132px) !important;
        height: clamp(48px, 10vw, 132px) !important;
    }
}
.ice-join-game-code-large,
.ice-join-modal-code {
    font-size: clamp(2rem, 9vw, 3.35rem) !important;
    letter-spacing: .16em;
}
.ice-player-game-qr-card .ice-player-code {
    text-align: left;
}
.ice-play-nav-more-wrap.d-none {
    display: none !important;
}


/* Pass 265: Host display viewport lock and scrollable internals. */
body.ice-host-screen {
    height: 100svh !important;
    max-height: 100svh !important;
    min-height: 100svh !important;
    overflow: hidden !important;
}
body.ice-host-screen .ice-host-shell {
    height: 100svh !important;
    max-height: 100svh !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
body.ice-host-screen .ice-host-hero,
body.ice-host-screen .ice-host-announcement,
body.ice-host-screen .ice-host-complete,
body.ice-host-screen .ice-host-shared-panel,
body.ice-host-screen .ice-host-trivia-panel,
body.ice-host-screen .ice-host-word-story-panel,
body.ice-host-screen .ice-host-wavelengths-panel,
body.ice-host-screen .ice-host-bottom-tabs {
    flex: 0 0 auto;
}
body.ice-host-screen .ice-host-tab-panel.is-active,
body.ice-host-screen .ice-host-main-panel.is-active {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
body.ice-host-screen .ice-host-grid {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}
body.ice-host-screen .ice-host-qr-panel,
body.ice-host-screen .ice-host-live-panel {
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}
body.ice-host-screen .ice-host-live-panel {
    display: flex !important;
    flex-direction: column !important;
}
body.ice-host-screen .ice-host-leaderboard-wrap {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: auto !important;
    overscroll-behavior: contain;
}
@media (max-width: 900px) {
    body.ice-host-screen .ice-host-grid {
        display: flex !important;
        flex-direction: column !important;
    }
    body.ice-host-screen .ice-host-qr-panel {
        flex: 0 1 auto;
    }
    body.ice-host-screen .ice-host-live-panel {
        flex: 1 1 min(16rem, 45svh);
    }
}

/* Pass 277: keep live Cards tab scrollable when picker search/subtabs are present. */
.ice-live-list-panel > [data-ice-cards-subtab-panel],
.ice-open-card-picker-wrap {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.ice-live-list-panel > [data-ice-cards-subtab-panel].d-none {
    display: none !important;
}


/* Pass 281: place player QR blocks to the right of player identity in play-mode cards. */
.ice-player-share-card,
.ice-player-game-qr-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: start !important;
    justify-content: stretch !important;
}
.ice-player-share-card .ice-player-profile-card-identity,
.ice-player-game-qr-card .ice-player-profile-card-identity {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0;
}
.ice-player-share-card .ice-player-profile-card-qr,
.ice-player-game-qr-card .ice-player-profile-card-qr {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    justify-self: end !important;
    align-self: start !important;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    grid-column: 1 !important;
    grid-row: 2 !important;
    margin-top: .35rem;
}
@media (max-width: 500px) {
    .ice-player-share-card,
    .ice-player-game-qr-card {
        grid-template-columns: minmax(0, 1fr) clamp(88px, 29vw, 128px) !important;
    }
    .ice-player-game-qr-card .ice-player-game-qr-copy {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        margin-top: .65rem;
    }
}


/* Pass 281: keep the live player-strip QR to the right of the player identity. */
.ice-live-player-strip {
    grid-template-columns: minmax(0, 1fr) auto !important;
}
.ice-live-player-strip .ice-live-player-summary {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0;
}
.ice-live-player-strip .ice-live-qr-mini {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: stretch !important;
}
.ice-live-player-strip .ice-live-goal-column {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
}
@media (min-width: 992px) {
    .ice-live-player-strip.has-line-goal,
    .ice-live-player-strip.ice-live-player-strip-has-goal {
        grid-template-columns: minmax(0, 1fr) minmax(15rem, .95fr) auto !important;
    }
    .ice-live-player-strip.has-line-goal .ice-live-goal-column,
    .ice-live-player-strip.ice-live-player-strip-has-goal .ice-live-goal-column {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }
    .ice-live-player-strip.has-line-goal .ice-live-qr-mini,
    .ice-live-player-strip.ice-live-player-strip-has-goal .ice-live-qr-mini {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }
}

/* Pass 284: recap tables show the full player list without stretching the page forever. */
.ice-recap-leaderboard-scroll {
    max-height: 600px;
    overflow: auto;
}
.ice-recap-leaderboard-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bs-body-bg, #fff);
}

/* Pass 284: paused live play blocks replace the Play tab content while keeping other tabs available. */
.ice-paused-live-panel {
    align-self: center;
}


/* Pass 286: recap is now an ended-only page. */
.ice-recap-not-ended-panel {
    max-width: 760px;
    margin: 0 auto;
    padding: 3rem 1.5rem;
}
.ice-preflight-detail-modal .ice-stat {
    height: 100%;
}


/* Pass 297: player topbar site menu uses Bootstrap dropdowns and can scroll on short screens. */
.ice-site-menu .dropdown-menu {
    max-height: calc(100dvh - 4rem);
    overflow-y: auto;
}
.ice-site-menu .dropdown-item.text-danger,
.ice-site-menu .dropdown-item.text-danger i {
    color: var(--bs-danger) !important;
}
.ice-site-menu .dropdown-item .badge {
    vertical-align: middle;
}

/* Pass 298: Wavelengths play screen removes redundant copy while keeping the important values prominent. */
.ice-wavelengths-category {
    font-size: clamp(1.45rem, 3.5vw, 2.2rem);
    line-height: 1.15;
    font-weight: 800;
}
.ice-wavelengths-answer-text {
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    line-height: 1.25;
    font-weight: 600;
}
.ice-wavelengths-value-btn {
    min-height: 3rem;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .1rem;
    line-height: 1.05;
}
.ice-wavelengths-value-number {
    font-weight: 700;
}
.ice-wavelengths-value-hint {
    font-size: .78rem;
    opacity: .86;
    text-transform: lowercase;
}
.ice-wavelengths-complete-summary {
    max-width: 760px;
    margin: 0 auto 1.5rem;
}
.ice-wavelengths-complete-number {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 9rem;
    min-height: 9rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 50%;
    background: var(--bs-light);
    margin-bottom: 1rem;
}
.ice-wavelengths-complete-number span,
.ice-wavelengths-complete-grid span {
    color: var(--bs-secondary-color);
    font-weight: 600;
}
.ice-wavelengths-complete-number strong {
    font-size: clamp(3rem, 9vw, 5rem);
    line-height: 1;
}
.ice-wavelengths-complete-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.ice-wavelengths-complete-grid > div {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg);
    padding: .85rem;
    background: var(--bs-body-bg);
}
.ice-wavelengths-complete-grid strong {
    display: block;
    font-size: 1.35rem;
    margin-top: .15rem;
}
@media (max-width: 767.98px) {
    .ice-wavelengths-complete-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.ice-wavelengths-category-title {
    font-size: clamp(1.6rem, 4vw, 2.35rem);
    line-height: 1.12;
    font-weight: 800;
    overflow-wrap: anywhere;
}

/* Pass 299: Wavelengths waiting-room profile QR is informational, not gameplay-critical. */
.ice-player-share-card-compact-qr .ice-player-profile-card-qr {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    padding: .15rem;
    flex: 0 0 48px;
}
@media (max-width: 575.98px) {
    .ice-player-share-card-compact-qr {
        flex-direction: row;
        align-items: center;
    }
    .ice-player-share-card-compact-qr .ice-player-profile-card-qr {
        align-self: center;
        width: 48px;
        height: 48px;
    }
}

/* Pass 300: keep every live play mode scrollable instead of letting sparse/long panels trap content. */
body.ice-fullscreen .ice-main-with-nav,
body.ice-fullscreen .ice-main-with-nav .ice-live-section,
body.ice-fullscreen .ice-main-with-nav .ice-live-section.is-active,
body.ice-fullscreen .ice-live-card-stage,
body.ice-fullscreen .ice-live-play-grid,
body.ice-fullscreen .ice-current-card-live,
body.ice-fullscreen .ice-wavelengths-panel,
body.ice-fullscreen .ice-wavelengths-round-card {
    min-height: 0;
}
body.ice-fullscreen .ice-main-with-nav .ice-live-section.is-active,
body.ice-fullscreen .ice-live-card-stage {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    align-items: flex-start;
}
body.ice-fullscreen .ice-live-card-stage > * {
    flex-shrink: 0;
}

/* Pass 301: Wavelengths recap and answer commentary polish */
.ice-wavelengths-mystery-card-inner {
    border: 1px solid rgba(13,110,253,.2);
    border-radius: 1.25rem;
    padding: 2rem 1.5rem;
    background: linear-gradient(135deg, rgba(13,110,253,.12), rgba(32,201,151,.12));
    box-shadow: 0 .75rem 2rem rgba(13,110,253,.08);
}
.ice-wavelengths-mystery-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-primary);
    color: #fff;
    font-size: 1.5rem;
    margin-bottom: .75rem;
}
.ice-wavelengths-mystery-card h2 {
    font-weight: 700;
    color: var(--bs-primary);
}
.ice-wavelengths-mystery-card h2 span {
    font-size: 1.35em;
}
.ice-wavelengths-answer-list .ice-wavelengths-answer-item {
    border-left: .25rem solid rgba(13,110,253,.35);
}
.ice-wavelengths-answer-badges .badge {
    font-size: .92rem;
}
.ice-wavelengths-comments {
    border-radius: .75rem;
    background: rgba(0,0,0,.025);
    padding: .25rem .5rem;
}
.ice-wavelengths-comment {
    padding: .55rem 0;
}
.ice-wavelengths-comment + .ice-wavelengths-comment {
    border-top: 1px solid rgba(0,0,0,.08);
}
.ice-wavelengths-comment-avatar img,
.ice-wavelengths-comment-avatar .ice-avatar-img {
    width: 30px;
    height: 30px;
    object-fit: cover;
}
.ice-wavelengths-comment-time,
.ice-wavelengths-comment-status {
    font-size: .95rem;
}
.ice-wavelengths-comment-body {
    overflow-wrap: anywhere;
}


/* Pass 306: keep shared avatar dropdown menus visible in Manage player/activity lists. */
.ksw-icebreakers-manage .tabs.ice-dropdown-open-overflow,
.ksw-icebreakers-manage .tab-content.ice-dropdown-open-overflow,
.ksw-icebreakers-manage .tab-pane.ice-dropdown-open-overflow,
.ksw-icebreakers-manage .list-group.ice-dropdown-open-overflow,
.ksw-icebreakers-manage .ice-player-list.ice-dropdown-open-overflow,
.ksw-icebreakers-manage .ice-player-card.ice-dropdown-open-overflow,
.ksw-icebreakers-manage [data-ice-players-panel].ice-dropdown-open-overflow,
.ksw-icebreakers-manage .ice-tab-section.ice-dropdown-open-overflow {
    overflow: visible !important;
}

/* Pass 307: Wavelengths polish and comment identity alignment. */
.ice-wavelengths-complete-number {
    min-width: 10.25rem;
    min-height: 10.25rem;
    padding: 1rem;
    text-align: center;
}
.ice-wavelengths-complete-number > span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .05rem;
    line-height: 1.05;
    max-width: 7.25rem;
    text-align: center;
    overflow-wrap: normal;
}
.ice-wavelengths-complete-number > span > span {
    display: block;
}
.ice-wavelengths-comment {
    display: block;
    padding: .55rem 0;
}
.ice-wavelengths-comment .ice-player-identity-line {
    align-items: flex-start;
    gap: .55rem;
}
.ice-wavelengths-comment .ice-player-identity-copy {
    min-width: 0;
}
.ice-wavelengths-comment .ice-player-identity-name {
    line-height: 1.2;
}

/* Pass 307: Wavelengths complete-number label fits inside the score circle. */
.ice-wavelengths-complete-number > span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1.05;
    text-align: center;
    max-width: 7rem;
}
.ice-wavelengths-complete-number > span > span {
    display: block;
}
.ice-wavelengths-comment .ice-player-identity-line {
    align-items: flex-start;
}

/* Pass 308: Wavelengths answer comment layout. */
.ice-wavelengths-comment {
    position: relative;
    padding-right: clamp(5.75rem, 18vw, 8.5rem);
}
.ice-wavelengths-comment .ice-wavelengths-comment-time {
    position: absolute;
    top: .55rem;
    right: 0;
    text-align: right;
    white-space: nowrap;
    line-height: 1.2;
}
.ice-wavelengths-comment .ice-player-identity-line {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    flex-wrap: nowrap;
}
.ice-wavelengths-comment .ice-player-identity-avatar {
    flex: 0 0 auto;
}
.ice-wavelengths-comment .ice-wavelengths-comment-copy {
    min-width: 0;
    padding-top: .05rem;
}
@media (max-width: 420px) {
    .ice-wavelengths-comment {
        padding-right: 0;
    }
    .ice-wavelengths-comment .ice-wavelengths-comment-time {
        position: static;
        text-align: left;
        margin-bottom: .35rem;
    }
}


/* Pass 308: Wavelengths answer comments use a compact header with timestamp at top right. */
.ice-wavelengths-comment-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}
.ice-wavelengths-comment-head .ice-player-identity-line {
    flex: 1 1 auto;
    min-width: 0;
}
.ice-wavelengths-comment-time {
    flex: 0 0 auto;
    text-align: right;
    white-space: nowrap;
    line-height: 1.2;
    margin-top: .1rem;
}
.ice-wavelengths-comment-body {
    margin-left: 2.55rem;
    margin-top: .15rem;
}
@media (max-width: 420px) {
    .ice-wavelengths-comment-head {
        flex-direction: column;
        gap: .25rem;
    }
    .ice-wavelengths-comment-time {
        margin-left: 2.55rem;
        text-align: left;
    }
}

/* Pass 312: Match The Room result clarity and mobile card layout hardening. */
.ice-same-card-result-bars {
    display: grid;
    gap: .7rem;
    margin-top: .9rem;
    padding: .85rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius-lg);
    background: var(--bs-body-bg);
}
.ice-same-card-result-bars-title {
    font-weight: 700;
    color: var(--bs-body-color);
}
.ice-same-card-result-bar-row {
    display: grid;
    gap: .3rem;
}
.ice-same-card-result-bar-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    font-size: .95rem;
}
.ice-same-card-result-bar-label span {
    color: var(--bs-secondary-color);
    font-weight: 600;
    white-space: nowrap;
}
.ice-same-card-result-bar-track {
    width: 100%;
    height: .8rem;
    overflow: hidden;
    border-radius: 999px;
    background: var(--bs-tertiary-bg, rgba(15,23,42,.08));
}
.ice-same-card-result-bar-fill {
    height: 100%;
    min-width: .15rem;
    border-radius: inherit;
    transition: width .2s ease;
}
.ksw-icebreakers-manage [data-ice-custom-card-options].ice-settings-subcard {
    overflow: visible;
}
.ksw-icebreakers-manage [data-ice-custom-card-options] .form-check {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: flex-start !important;
    column-gap: .75rem;
    row-gap: .2rem;
    min-height: 0 !important;
    margin-bottom: 0;
    padding-left: 0 !important;
}
.ksw-icebreakers-manage [data-ice-custom-card-options] .form-check-input {
    float: none !important;
    grid-column: 1;
    margin-left: 0 !important;
    margin-top: .15rem !important;
}
.ksw-icebreakers-manage [data-ice-custom-card-options] .form-check-label {
    grid-column: 2;
    display: block !important;
    min-width: 0;
    line-height: 1.35 !important;
    margin: 0 !important;
}
.ksw-icebreakers-manage [data-ice-custom-card-options] .ice-fine-print {
    display: block !important;
    clear: both;
    margin-top: .55rem !important;
    line-height: 1.35;
    white-space: normal !important;
}
.ice-player-game-qr-card {
    grid-template-columns: minmax(0, 1fr) auto !important;
}
.ice-player-game-qr-card .ice-player-profile-card-identity,
.ice-player-game-qr-card .ice-player-game-qr-copy {
    min-width: 0;
    max-width: 100%;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
    align-self: start;
}
@media (max-width: 500px) {
    .ice-player-game-qr-card {
        grid-template-columns: minmax(0, 1fr) clamp(88px, 28vw, 118px) !important;
    }
    .ice-player-game-qr-card .ice-player-profile-card-qr {
        max-width: 118px;
        max-height: 118px;
    }
}

/* Pass 313: keep Match The Room countdown/result details easy to scan. */
.ice-same-card-auto-timer [data-ice-same-card-auto-seconds] {
    margin-left: .25rem;
}
.ice-same-card-result-bar-row.is-player-answer .ice-same-card-result-bar-label strong {
    display: inline-flex;
    align-items: center;
}

/* Pass 313: Match The Room result polish, timer spacing, and last-player exit/layout hardening. */
.ice-same-card-result-bar-row.is-player-answer .ice-same-card-result-bar-label strong {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.ksw-icebreakers-manage [data-ice-custom-card-options] > .row,
.ksw-icebreakers-manage [data-ice-custom-card-options] > .row > [class*="col-"] {
    min-height: 0 !important;
    align-items: start;
}
.ksw-icebreakers-manage [data-ice-custom-card-options] .form-check,
.ksw-icebreakers-manage [data-ice-custom-card-options] .form-switch {
    min-height: 0 !important;
    height: auto !important;
}
.ice-player-game-qr-card .ice-player-profile-card-qr {
    grid-row: 1 !important;
}
.ice-player-game-qr-card .ice-player-game-qr-copy {
    grid-row: 2 !important;
    grid-column: 1 !important;
    padding-right: .5rem;
}
@media (max-width: 500px) {
    .ice-player-game-qr-card .ice-player-profile-card-qr {
        grid-row: 1 !important;
    }
    .ice-player-game-qr-card .ice-player-game-qr-copy {
        grid-column: 1 / -1 !important;
        padding-right: 0;
    }
}

/* Pass 314: prediction-format controls and complete-screen scoring polish. */
.ice-settings-control-panel {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.ice-play-complete-score-summary {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(110px, 1fr));
    gap: .75rem;
    margin: .75rem auto 1.25rem;
    max-width: 360px;
    width: min(100%, 360px);
}
.ice-play-complete-score-item,
.ice-play-complete-score-summary > div {
    padding: .9rem 1rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(13,110,253,.12), rgba(25,135,84,.10));
    border: 1px solid rgba(13,110,253,.16);
    box-shadow: 0 .5rem 1.25rem rgba(15,23,42,.08);
}
.ice-play-complete-score-item span,
.ice-play-complete-score-summary > div > span {
    display: block;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}
.ice-play-complete-score-item strong,
.ice-play-complete-score-summary > div > strong {
    display: block;
    font-size: clamp(1.65rem, 5vw, 2.4rem);
    line-height: 1.05;
    color: var(--bs-body-color);
}
@media (max-width: 360px) {
    .ice-play-complete-score-summary {
        grid-template-columns: 1fr;
    }
}

/* Follow-up: keep waiting-room review cards readable and remove the ghosted stacked card. */
.ice-setup-swiper,
.ice-swipe-stack {
    min-height: 30rem;
}
.ice-swipe-card.is-next {
    display: none !important;
}
.ice-swipe-card-inner {
    overflow: hidden;
}
.ice-swipe-card-inner h2 {
    font-size: clamp(1.35rem, 4.2vw, 2rem) !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere;
    word-break: normal;
}
.ice-swipe-card-inner p,
.ice-setup-answer-question {
    overflow-wrap: anywhere;
}
@media (min-width: 768px) {
    .ice-swipe-card-inner h2 {
        font-size: clamp(1.45rem, 3.2vw, 2.05rem) !important;
    }
}
@media (max-width: 575.98px) {
    .ice-setup-swiper,
    .ice-swipe-stack {
        min-height: 28rem;
    }
    .ice-swipe-card-inner h2 {
        font-size: clamp(1.3rem, 8vw, 1.85rem) !important;
    }
}

/* Follow-up: keep every player tab panel on the same readable fullscreen width. */
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-swiper-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-welcome-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-live-list-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-card-picker-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-wall-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-connections-panel,
body.ice-fullscreen .ice-main-with-nav > .ice-play-section.is-active > .ice-settings-panel,
body.ice-fullscreen .ice-live-section.is-active > .ice-live-list-panel,
body.ice-fullscreen .ice-live-section.is-active > .ice-card-picker-panel,
body.ice-fullscreen .ice-live-section.is-active > .ice-wall-panel,
body.ice-fullscreen .ice-live-section.is-active > .ice-connections-panel,
body.ice-fullscreen .ice-live-card-stage > .ice-current-card-live,
body.ice-fullscreen .ice-live-card-stage > .ice-card-picker-panel,
body.ice-fullscreen .ice-live-card-stage > .ice-live-list-panel {
    width: min(100%, var(--ice-live-panel-max-width, 900px)) !important;
    max-width: var(--ice-live-panel-max-width, 900px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    box-sizing: border-box !important;
}

body.ice-fullscreen .ice-live-card-stage > .ice-task-card-flip {
    width: min(100%, var(--ice-live-panel-max-width, 900px)) !important;
    max-width: var(--ice-live-panel-max-width, 900px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: stretch !important;
}

/* Icebreakers public landing page. */
.ksw-ice-landing {
    overflow: hidden;
}
.ice-landing-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: 1.5rem;
    color: #fff;
    background:
        radial-gradient(circle at 12% 20%, rgba(255,255,255,.22), transparent 18rem),
        radial-gradient(circle at 88% 18%, rgba(96,165,250,.34), transparent 22rem),
        linear-gradient(135deg, #101827 0%, #172554 52%, #7f1d1d 100%);
    box-shadow: 0 1.25rem 3.5rem rgba(15,23,42,.22);
}
.ice-landing-hero h1 {
    font-size: clamp(2.2rem, 5vw, 4.75rem);
    line-height: .95;
    letter-spacing: -.055em;
    margin: 0 0 1rem;
    color: #fff;
}
.ice-landing-hero .lead {
    color: rgba(255,255,255,.88);
    font-size: clamp(1.08rem, 2vw, 1.35rem);
    max-width: 54rem;
}
.ice-landing-hero-note {
    color: rgba(255,255,255,.75);
    font-size: .98rem;
}
.ice-landing-hero-shot {
    position: relative;
    display: flex;
    justify-content: center;
}
.ice-landing-hero-shot:before {
    content: '';
    position: absolute;
    inset: 10% 0 -4% 0;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    filter: blur(2.25rem);
}
.ice-landing-hero-shot img,
.ice-landing-game-card > img {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 1.15rem;
    box-shadow: 0 1.15rem 3rem rgba(0,0,0,.28);
}
.ice-landing-hero-shot img {
    max-width: 420px;
    transform: rotate(1.5deg);
}
.ice-landing-feature-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.ice-landing-feature-strip > div,
.ice-landing-game-card,
.ice-landing-mini-feature,
.ice-landing-cta {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 .5rem 1.75rem rgba(15,23,42,.055);
}
.ice-landing-feature-strip > div {
    padding: 1.15rem;
}
.ice-landing-feature-strip strong {
    display: block;
    color: #111827;
    font-size: 1.04rem;
    margin-bottom: .2rem;
}
.ice-landing-feature-strip span {
    display: block;
    color: #64748b;
}
.ice-landing-game-card {
    overflow: hidden;
}
.ice-landing-game-card > img {
    width: 100%;
    max-height: 410px;
    object-fit: cover;
    object-position: top center;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.ice-landing-game-body {
    position: relative;
    padding: 1.35rem;
}
.ice-landing-game-icon,
.ice-landing-mini-feature > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .9rem;
    color: var(--primary, #0d6efd);
    background: color-mix(in srgb, var(--primary, #0d6efd) 12%, white);
    margin-bottom: .85rem;
}
.ice-landing-game-body h3,
.ice-landing-mini-feature h3 {
    font-size: 1.35rem;
    line-height: 1.15;
    margin: 0 0 .5rem;
    color: #111827;
}
.ice-landing-game-body p,
.ice-landing-mini-feature p {
    color: #64748b;
    margin: 0;
}
.ice-landing-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.ice-landing-mini-feature {
    padding: 1.25rem;
}
.ice-landing-cta {
    padding: clamp(1.5rem, 4vw, 3rem);
    background:
        radial-gradient(circle at top left, rgba(13,110,253,.10), transparent 18rem),
        #fff;
}
.ice-landing-cta .lead {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 991.98px) {
    .ice-landing-hero,
    .ice-landing-feature-strip,
    .ice-landing-feature-grid {
        grid-template-columns: 1fr;
    }
    .ice-landing-hero-shot img {
        max-width: min(100%, 360px);
        transform: none;
    }
}
@media (max-width: 575.98px) {
    .ice-landing-hero {
        padding: 1.35rem;
        border-radius: 1rem;
    }
    .ice-landing-hero h1 {
        font-size: 2.45rem;
    }
    .ice-landing-game-card > img {
        max-height: 340px;
    }
}

/* Final polish: Icon Bingo completed-wait uses the shared game-complete panel styles. */
.ice-road-bingo-panel.is-finished-wait {
    justify-content: center;
}
.ice-road-bingo-panel.is-finished-wait .ice-play-complete-panel {
    margin: auto;
    width: 100%;
}

/* Pass 392: polished three-step Create Game wizard. */
.ksw-icebreakers-manage [data-ice-create-stepper] .btn {
    min-height: 4.25rem;
}
.ksw-icebreakers-manage [data-ice-create-stepper] .badge {
    min-width: 1.75rem;
}
.ksw-icebreakers-manage .ice-create-wizard-step {
    position: relative;
}
.ksw-icebreakers-manage .ice-create-wizard-step .card {
    overflow: hidden;
}

/* Pass 393: Word Stories host display Play tab and final story reveal. */
body.ice-host-screen .ice-host-play-panel.is-active {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-right: .25rem;
}
.ice-host-word-story-play-panel {
    flex: 1 1 auto !important;
    min-height: 0;
}
.ice-host-word-story-word-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: .75rem;
    margin-top: 1rem;
}
.ice-host-word-story-word-card {
    background: rgba(255,255,255,.96);
    color: #111827;
    border-radius: 1rem;
    padding: .9rem 1rem;
    box-shadow: 0 .65rem 1.8rem rgba(0,0,0,.18);
    min-width: 0;
}
.ice-host-word-story-word-label {
    color: #64748b;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ice-host-word-story-word-answer {
    font-size: clamp(1.35rem, 2.8vw, 2.25rem);
    font-weight: 900;
    line-height: 1.05;
    margin-top: .25rem;
    overflow-wrap: anywhere;
}
.ice-host-word-story-word-player {
    color: #64748b;
    font-weight: 700;
    margin-top: .45rem;
}
.ice-host-word-story-empty {
    margin-top: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    background: rgba(255,255,255,.1);
    color: rgba(255,255,255,.78);
}
.ice-host-word-story-final-card {
    background: rgba(255,255,255,.98);
    color: #111827;
    border-radius: 1.4rem;
    padding: clamp(1rem, 2.4vw, 2rem);
    box-shadow: 0 1.4rem 4rem rgba(0,0,0,.28);
}
.ice-host-word-story-final-heading {
    display: flex;
    align-items: center;
    gap: clamp(.8rem, 2vw, 1.25rem);
    margin-bottom: clamp(1rem, 2vw, 1.5rem);
}
.ice-host-word-story-pack-icon {
    width: clamp(4.25rem, 12vw, 7rem);
    height: clamp(4.25rem, 12vw, 7rem);
    border-radius: 1.1rem;
    object-fit: cover;
    flex: 0 0 auto;
    background: #f1f5f9;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.08);
}
.ice-host-word-story-pack-icon.is-fallback {
    display: grid;
    place-items: center;
    color: #334155;
    font-size: clamp(2rem, 5vw, 3.4rem);
}
.ice-host-word-story-kicker {
    color: #64748b;
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.ice-host-word-story-final-heading h2 {
    color: #111827;
    font-size: clamp(2rem, 5vw, 4.25rem);
    line-height: .98;
    margin: .15rem 0 .35rem;
    letter-spacing: -.045em;
}
.ice-host-word-story-final-heading p {
    color: #64748b;
    font-weight: 700;
    margin: 0;
}
.ice-host-word-story-final-copy {
    font-size: clamp(1.1rem, 2vw, 1.6rem);
    line-height: 1.65;
}
.ice-host-word-story-final-copy .ice-word-story-results,
.ice-host-word-story-final-copy .ice-word-story-completed-story {
    margin: 0;
}
.ice-host-word-story-final-copy .ice-word-story-word {
    color: #111827;
    background: #fef3c7;
    border-radius: .45rem;
    padding: .05em .28em;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}
@media (max-width: 575.98px) {
    .ice-host-word-story-final-heading {
        align-items: flex-start;
    }
    .ice-host-word-story-pack-icon {
        width: 4rem;
        height: 4rem;
        border-radius: .9rem;
    }
}

/* Pass 394: Word Stories live waiting state, host active-prompt display, avatars, and contribution scrolling. */
.ice-word-story-waiting-card {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    background: #fff;
    padding: 1rem;
    box-shadow: 0 .35rem 1rem rgba(0,0,0,.06);
}
.ice-word-story-waiting-label {
    color: #6c757d;
    font-weight: 600;
    margin-bottom: .85rem;
}
.ice-word-story-waiting-person {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-width: 0;
}
.ice-word-story-waiting-avatar {
    width: 72px;
    height: 72px;
    border-radius: 999px;
    object-fit: cover;
    flex: 0 0 auto;
    background: rgba(0,0,0,.06);
}
.ice-word-story-waiting-name {
    font-size: 1.25rem;
    line-height: 1.15;
    font-weight: 800;
    color: #212529;
    overflow-wrap: anywhere;
}
.ice-word-story-waiting-prompt {
    font-size: 1.05rem;
    line-height: 1.2;
    color: #1c5fa8;
    font-weight: 700;
    margin-top: .2rem;
    overflow-wrap: anywhere;
}

body.ice-host-screen .ice-host-word-story-play-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    max-height: calc(100vh - 2rem);
    overflow: hidden;
}
body.ice-host-screen .ice-host-word-story-play-layout {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    gap: 1rem;
}
body.ice-host-screen .ice-host-word-story-play-heading,
body.ice-host-screen .ice-host-word-story-active-claims,
body.ice-host-screen .ice-host-word-story-remaining-note {
    flex: 0 0 auto;
}
body.ice-host-screen .ice-host-word-story-active-claims {
    display: grid;
    gap: .8rem;
}
body.ice-host-screen .ice-host-word-story-active-claim {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    padding: 1.15rem;
    border-radius: 1.25rem;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    min-width: 0;
}
body.ice-host-screen .ice-host-word-story-active-claim.is-featured {
    padding: 1.35rem;
}
body.ice-host-screen .ice-host-word-story-active-avatar {
    width: clamp(70px, 7vw, 112px);
    height: clamp(70px, 7vw, 112px);
    border-radius: 999px;
    object-fit: cover;
    flex: 0 0 auto;
    background: rgba(255,255,255,.25);
    box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.18);
}
body.ice-host-screen .ice-host-word-story-active-copy {
    min-width: 0;
}
body.ice-host-screen .ice-host-word-story-active-eyebrow {
    font-size: clamp(.75rem, 1.1vw, .95rem);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.68);
    font-weight: 800;
    margin-bottom: .25rem;
}
body.ice-host-screen .ice-host-word-story-active-name {
    font-size: clamp(1.35rem, 2.8vw, 2.7rem);
    line-height: 1.05;
    font-weight: 900;
    overflow-wrap: anywhere;
}
body.ice-host-screen .ice-host-word-story-active-prompt {
    font-size: clamp(1.75rem, 4.4vw, 4.75rem);
    line-height: 1.02;
    font-weight: 900;
    margin-top: .35rem;
    overflow-wrap: anywhere;
}
body.ice-host-screen .ice-host-word-story-active-timer {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin-top: .65rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    color: #212529;
    background: rgba(255,255,255,.9);
    font-weight: 800;
}
body.ice-host-screen .ice-host-word-story-contributions-wrap {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
body.ice-host-screen .ice-host-word-story-contributions-title {
    flex: 0 0 auto;
    color: rgba(255,255,255,.8);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
    font-weight: 800;
    margin-bottom: .55rem;
}
body.ice-host-screen .ice-host-word-story-contributions {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: .2rem .2rem 1.35rem;
    scroll-padding-bottom: 1.35rem;
    overscroll-behavior: contain;
    align-content: start;
}
body.ice-host-screen .ice-host-word-story-word-grid.ice-host-word-story-contributions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: .75rem;
}
body.ice-host-screen .ice-host-word-story-word-card {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    min-width: 0;
    margin: 0;
    padding: .85rem;
    border-radius: 1rem;
    background: rgba(255,255,255,.11);
    border: 1px solid rgba(255,255,255,.16);
    color: #fff;
    overflow-wrap: anywhere;
}
body.ice-host-screen .ice-host-word-story-word-card:last-child {
    margin-bottom: .85rem;
}
body.ice-host-screen .ice-host-word-story-word-avatar {
    width: 46px;
    height: 46px;
    border-radius: 999px;
    object-fit: cover;
    flex: 0 0 auto;
    background: rgba(255,255,255,.25);
}
body.ice-host-screen .ice-host-word-story-word-body {
    min-width: 0;
    flex: 1 1 auto;
}
body.ice-host-screen .ice-host-word-story-word-label {
    color: rgba(255,255,255,.62);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: 0;
    text-transform: none;
}
body.ice-host-screen .ice-host-word-story-word-answer {
    font-size: clamp(1.25rem, 2.2vw, 2rem);
    line-height: 1.1;
    font-weight: 900;
    margin-top: .18rem;
}
body.ice-host-screen .ice-host-word-story-word-player {
    color: rgba(255,255,255,.74);
    font-size: .9rem;
    margin-top: .3rem;
    line-height: 1.15;
}
body.ice-host-screen .ice-host-word-story-empty.is-waiting {
    flex: 0 0 auto;
}
@media (max-width: 575.98px) {
    .ice-word-story-waiting-person {
        align-items: flex-start;
    }
    .ice-word-story-waiting-avatar {
        width: 56px;
        height: 56px;
    }
}

/* Pass 395: Host Word Stories final-story viewport scrolling. */
body.ice-host-screen .ice-host-play-panel.is-active {
    overflow: hidden !important;
}
body.ice-host-screen .ice-host-play-panel.is-active > .ice-host-word-story-play-panel {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
}
body.ice-host-screen .ice-host-word-story-final-card {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow: hidden !important;
}
body.ice-host-screen .ice-host-word-story-final-heading {
    flex: 0 0 auto !important;
}
body.ice-host-screen .ice-host-word-story-final-copy {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: clamp(.35rem, 1vw, .85rem);
    padding-bottom: .5rem;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
body.ice-host-screen .ice-host-word-story-final-copy .ice-word-story-results,
body.ice-host-screen .ice-host-word-story-final-copy .ice-word-story-completed-story,
body.ice-host-screen .ice-host-word-story-final-copy .ice-word-story-copy {
    max-width: 100%;
    overflow-wrap: anywhere;
}
@media (max-height: 620px) {
    body.ice-host-screen .ice-host-word-story-final-card {
        padding: clamp(.75rem, 2vh, 1.15rem) !important;
    }
    body.ice-host-screen .ice-host-word-story-final-heading {
        gap: .75rem !important;
        margin-bottom: .75rem !important;
    }
    body.ice-host-screen .ice-host-word-story-final-heading h2 {
        font-size: clamp(1.45rem, 6vh, 2.5rem) !important;
    }
    body.ice-host-screen .ice-host-word-story-final-copy {
        font-size: clamp(1rem, 2.4vh, 1.25rem) !important;
        line-height: 1.5 !important;
    }
}

/* Pass 396: Word Stories player final view and live AJAX polish. */
.ice-play-word-story-complete-panel {
    text-align: left !important;
    padding: 0 !important;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-card {
    min-height: 0;
    overflow: visible;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-heading {
    align-items: center;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-heading h1 {
    color: #111827;
    font-size: clamp(2.05rem, 7vw, 4.25rem);
    line-height: .98;
    font-weight: 900;
    letter-spacing: -.045em;
    margin: .15rem 0 .35rem;
    overflow-wrap: anywhere;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-heading p {
    margin-bottom: 0;
}
.ice-play-word-story-complete-panel .ice-host-word-story-pack-icon {
    width: clamp(76px, 18vw, 132px);
    height: clamp(76px, 18vw, 132px);
}
.ice-play-word-story-complete-panel img.ice-host-word-story-pack-icon {
    object-fit: cover;
}
.ice-play-word-story-complete-panel .ice-host-word-story-pack-icon.is-fallback {
    display: grid;
    place-items: center;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-copy {
    max-height: none;
    overflow: visible;
    padding-right: 0;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-copy .ice-word-story-results,
.ice-play-word-story-complete-panel .ice-host-word-story-final-copy .ice-word-story-completed-story,
.ice-play-word-story-complete-panel .ice-host-word-story-final-copy .ice-word-story-copy {
    max-width: 100%;
    overflow-wrap: anywhere;
}
@media (max-width: 575.98px) {
    .ice-play-word-story-complete-panel .ice-host-word-story-final-heading {
        align-items: flex-start;
    }
    .ice-play-word-story-complete-panel .ice-host-word-story-final-copy {
        max-height: none;
    }
}

/* Pass 407: Word Stories player final-story uses the live card panel as its only scroller. */
.ice-play-word-story-complete-panel,
.ice-play-word-story-complete-panel .ice-host-word-story-final-card,
.ice-play-word-story-complete-panel .ice-host-word-story-final-copy,
.ice-play-word-story-complete-panel .ice-play-word-story-final-copy,
.ice-play-word-story-complete-panel .ice-word-story-results,
.ice-play-word-story-complete-panel .ice-word-story-completed-story,
.ice-play-word-story-complete-panel .ice-word-story-copy {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}
.ice-play-word-story-complete-panel .ice-host-word-story-final-copy,
.ice-play-word-story-complete-panel .ice-play-word-story-final-copy {
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    -webkit-overflow-scrolling: auto !important;
    overscroll-behavior: auto !important;
}

/* Pass 404: Word Stories recap final-card treatment. */
.ice-recap-word-story-section [data-ice-recap-word-story-wrap] {
    display: block;
}
.ice-recap-word-story-complete-panel {
    text-align: left;
}
.ice-recap-word-story-complete-panel .ice-host-word-story-final-card {
    box-shadow: 0 .9rem 2.5rem rgba(15,23,42,.14);
    border: 1px solid rgba(15,23,42,.08);
    overflow: visible;
}
.ice-recap-word-story-complete-panel .ice-host-word-story-final-heading h2 {
    font-size: clamp(1.75rem, 4.6vw, 3.6rem);
    font-weight: 900;
    overflow-wrap: anywhere;
}
.ice-recap-word-story-complete-panel .ice-host-word-story-pack-icon {
    width: clamp(4.5rem, 12vw, 6.75rem);
    height: clamp(4.5rem, 12vw, 6.75rem);
}
.ice-recap-word-story-complete-panel .ice-host-word-story-final-copy {
    max-height: none;
    overflow: visible;
}
.ice-recap-word-story-complete-panel .ice-host-word-story-final-copy .ice-word-story-results,
.ice-recap-word-story-complete-panel .ice-host-word-story-final-copy .ice-word-story-completed-story,
.ice-recap-word-story-complete-panel .ice-host-word-story-final-copy .ice-word-story-copy {
    max-width: 100%;
    overflow-wrap: anywhere;
}
@media (max-width: 575.98px) {
    .ice-recap-word-story-complete-panel .ice-host-word-story-final-heading {
        align-items: flex-start;
    }
}

/* Venue-scoped Icebreakers lobbies */
.ice-venue-lobby-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    margin-bottom: .25rem;
}
.ice-venue-lobby-brand img {
    max-height: 256px;
    max-width: 240px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.ice-venue-lobby-kicker {
    color: var(--bs-secondary-color);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ice-venue-lobby-name {
    font-size: clamp(1.5rem, 3vw, 2.35rem);
    font-weight: 800;
    line-height: 1.05;
    overflow-wrap: anywhere;
}
.ice-venue-admin-preview {
    display: flex;
    align-items: center;
    gap: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: .75rem;
    background: var(--bs-light-bg-subtle);
}
.ice-venue-admin-preview img,
.ice-manage-venue-logo {
    max-height: 64px;
    max-width: 140px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.ice-venue-qr-card img {
    max-width: 260px;
}
.ice-venue-mode-list {
    display: grid;
    gap: .75rem;
}
.ice-venue-mode-choice {
    border-bottom: 1px solid var(--bs-border-color);
    padding-bottom: .75rem;
}
.ice-venue-mode-choice:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.ice-weekday-btns {
    gap: .35rem;
}
.ice-weekday-btns .btn {
    border-radius: 999px !important;
}
.ice-venue-schedule-details {
    border-top: 1px solid var(--bs-border-color);
    padding-top: 1rem;
    margin-top: 1rem;
}
.ice-venue-schedule-summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
@media (max-width: 767.98px) {
    .ice-venue-lobby-brand {
        align-items: flex-start;
    }
    .ice-venue-lobby-brand img {
        max-height: 120px;
        max-width: 120px;
    }
}
