/* DJ Request Pro — Midnight Aurora application shell. */
.portal-admin {
    color-scheme: dark;
    --admin-canvas: var(--color-background, #061321);
    --admin-canvas-deep: var(--color-live-background, #04101C);
    --admin-sidebar: var(--color-sidebar, #071725);
    --admin-panel: var(--color-surface, #0D1C2A);
    --admin-panel-raised: var(--color-live-surface, #132536);
    --admin-panel-soft: color-mix(in srgb, var(--color-surface, #0D1C2A) 82%, var(--color-foreground, #F4F7F8));
    --admin-line: var(--color-border, rgb(151 178 198 / 0.2));
    --admin-line-strong: color-mix(in srgb, var(--color-primary, #35D6A0) 42%, transparent);
    --admin-text: var(--color-foreground, #F4F7F8);
    --admin-muted: var(--color-muted-foreground, #A8B6C1);
    --admin-green: var(--color-primary, #35D6A0);
    --admin-nav-accent: var(--admin-green);
    --admin-green-deep: #087454;
    --admin-blue: var(--color-accent, #43A8FF);
    --admin-warning: #f5c451;
    --admin-danger: #fb7185;
    min-height: 100vh;
    color: var(--admin-text);
    background:
        radial-gradient(circle at 82% -8%, rgb(53 214 160 / 0.12), transparent 30rem),
        radial-gradient(circle at -4% 34%, rgb(67 168 255 / 0.07), transparent 28rem),
        var(--admin-canvas);
}

.portal-admin > .background {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(180deg, rgb(255 255 255 / 0.012), transparent 24rem);
}

.portal-admin .topbar {
    position: sticky;
    top: 0;
    z-index: 70;
    min-height: 72px;
    padding: 0 clamp(1rem, 3vw, 2.5rem);
    color: var(--admin-text);
    background: rgb(4 16 28 / 0.9);
    border-bottom: 1px solid var(--admin-line);
    backdrop-filter: blur(20px);
}

.portal-admin .topbar .brand-logo {
    width: clamp(10rem, 15vw, 13.5rem);
    max-height: 46px;
}

.portal-admin .app-current-user {
    min-height: 44px;
    padding: 0.65rem 0.85rem;
    color: var(--admin-text);
    background: var(--admin-panel);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .topbar-user-dropdown {
    color: var(--admin-text);
    background: var(--admin-panel-raised);
    border-color: var(--admin-line);
    box-shadow: 0 20px 52px rgb(0 0 0 / 0.38);
}

.portal-admin .topbar-user-action {
    min-height: 44px;
    color: var(--admin-text);
    background: transparent;
}

.portal-admin .topbar-user-action:hover,
.portal-admin .topbar-user-action:focus-visible {
    background: rgb(53 214 160 / 0.1);
}

.portal-admin > .container {
    width: calc(100% - clamp(1.5rem, 3vw, 3rem));
    max-width: none;
    margin: 0 auto;
    padding: 1.25rem 0 3rem;
}

.portal-admin .admin-product-shell {
    display: grid;
    grid-template-columns: clamp(232px, 15vw, 248px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.portal-admin .admin-main,
.portal-admin .admin-main > .admin-section.active,
.portal-admin .admin-sidebar {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.portal-admin .admin-mobile-menu-close {
    display: none;
}

.portal-admin .support-mode-banner,
.portal-admin .admin-mobile-topbar,
.portal-admin .admin-mobile-menu-scrim {
    grid-column: 1 / -1;
}

.portal-admin .admin-sidebar {
    position: sticky;
    top: 92px;
    min-height: calc(100dvh - 116px);
    max-height: none;
    padding: 0.85rem;
    overflow-y: visible;
    color: var(--admin-text);
    background:
        linear-gradient(180deg, rgb(53 214 160 / 0.035), transparent 16rem),
        var(--admin-sidebar);
    border: 1px solid var(--admin-line);
    border-radius: 14px;
    box-shadow: none;
    scrollbar-color: rgb(168 182 193 / 0.3) transparent;
}

@media (min-width: 1280px) {
    .portal-admin .admin-sidebar {
        max-height: calc(100dvh - 116px);
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }
}

.portal-admin .admin-sidebar-heading {
    margin: 0;
}

.portal-admin .admin-menu-home {
    min-height: 0;
    padding: 1rem 0.65rem 0.2rem;
    color: var(--admin-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: default;
}

.portal-admin .admin-workspace-context {
    display: grid;
    gap: 0.45rem;
    padding: 0.55rem 0.6rem 0.85rem;
    border-bottom: 1px solid var(--admin-line);
}

.portal-admin .admin-sidebar-workspace {
    padding-top: 0.35rem;
}

.portal-admin .admin-sidebar-workspace .admin-workspace-context {
    padding-top: 0.2rem;
}

.portal-admin .admin-nav-primary-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    min-height: var(--uiux-control-h);
    margin-top: 0.25rem;
    padding: 0.45rem 0.7rem;
    color: var(--action-primary-text);
    font-weight: 700;
    background: var(--action-primary-gradient);
    border: 1px solid transparent;
    border-radius: 9px;
    cursor: pointer;
}

.portal-admin .admin-nav-primary-action:hover,
.portal-admin .admin-nav-primary-action:focus-visible {
    color: var(--action-primary-text);
    background: var(--action-primary-gradient-hover);
    box-shadow: none;
}

.portal-admin .admin-nav-primary-action.hidden {
    display: none;
}

.portal-admin .client-workspace-switcher select {
    width: 100%;
    min-height: 44px;
    color: var(--admin-text);
    background: var(--admin-panel);
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}

.portal-admin .admin-menu {
    gap: 0.2rem;
    margin-top: 0.35rem;
}

.portal-admin .admin-sidebar-workspace .admin-menu {
    margin-top: 0.1rem;
}

.portal-admin .admin-sidebar-footer {
    display: grid;
    gap: 0.2rem;
    margin-top: auto;
    padding-top: 0.8rem;
    border-top: 1px solid var(--admin-line);
}

.portal-admin .admin-sidebar-version {
    padding: 0.35rem 0.65rem;
    color: var(--admin-muted);
    font-size: 0.72rem;
}

.portal-admin .admin-sidebar-utility {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    min-height: 44px;
    padding: 0.65rem;
    color: var(--admin-muted);
    font-size: 0.875rem;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    background: transparent;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
}

.portal-admin .admin-sidebar-utility:is(:hover, :focus-visible) {
    color: var(--admin-text);
    background: rgb(255 255 255 / 0.06);
}

.portal-admin .admin-sidebar-utility svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.portal-admin .admin-sidebar-logout:is(:hover, :focus-visible) {
    color: #fecaca;
    background: rgb(239 68 68 / 0.1);
}

.portal-admin .admin-nav-group {
    display: grid;
    gap: 0.2rem;
}

.portal-admin .admin-system-nav-group {
    display: grid;
    gap: 0.2rem;
    padding: 0.35rem 0;
}

.portal-admin .admin-nav-section-label,
.portal-admin .admin-system-nav-group-title,
.portal-admin .admin-workspace-context-label {
    display: block;
    padding: 0.65rem 0.65rem 0.3rem;
    color: #7890a4;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.portal-admin .admin-nav-section-label:not(:first-child) {
    margin-top: 0.45rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--admin-line);
}

.portal-admin .admin-nav-btn,
.portal-admin .admin-submenu-btn {
    display: flex;
    align-items: center;
    gap: 0.68rem;
    width: 100%;
    min-height: 44px;
    padding: 0.62rem 0.68rem;
    color: #c4d0da;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 9px;
    box-shadow: none;
}

.portal-admin .admin-nav-icon {
    display: grid;
    flex: 0 0 1.15rem;
    place-items: center;
    color: #7890a4;
}

.portal-admin .admin-nav-icon svg {
    width: 1.05rem;
    height: 1.05rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.portal-admin .admin-nav-btn:hover,
.portal-admin .admin-nav-btn:focus-visible,
.portal-admin .admin-submenu-btn:hover,
.portal-admin .admin-submenu-btn:focus-visible {
    color: var(--admin-text);
    background: rgb(255 255 255 / 0.045);
    border-color: var(--admin-line);
}

.portal-admin .admin-nav-btn.active,
.portal-admin .admin-submenu-btn.active {
    color: var(--admin-text);
    background: linear-gradient(110deg, rgb(53 214 160 / 0.16), rgb(53 214 160 / 0.06));
    border-color: color-mix(in srgb, var(--admin-nav-accent) 42%, transparent);
    box-shadow: inset 3px 0 0 var(--admin-nav-accent);
}

.portal-admin .admin-nav-btn.active .admin-nav-icon {
    color: var(--admin-nav-accent);
}

/* A group toggle provides context; the selected destination is its active child. */
.portal-admin .admin-nav-group-toggle.active {
    color: var(--admin-text);
    background: rgb(255 255 255 / 0.035);
    border-color: var(--admin-line);
    box-shadow: none;
}

.portal-admin .admin-nav-group-toggle.active .admin-nav-icon,
.portal-admin .admin-nav-group-toggle.active .admin-nav-arrow {
    color: var(--admin-nav-accent);
}

.portal-admin .admin-nav-count {
    margin-left: auto;
    color: #042217;
    background: var(--admin-nav-accent);
}

.portal-admin .admin-submenu {
    gap: 0.2rem;
    padding: 0.25rem 0 0.25rem 1rem;
    border-left: 1px solid var(--admin-line);
}

.portal-admin .admin-submenu-btn {
    min-height: 40px;
    color: var(--admin-muted);
    background: transparent;
}

.portal-admin .admin-main {
    min-width: 0;
}

/* Brand belongs to the persistent product shell, not to a repeated page banner. */
.portal-admin .page-brand-center {
    display: none;
}

.portal-admin .admin-context-bar,
.portal-admin .company-switcher {
    min-height: 76px;
    margin-bottom: 1rem;
    padding: 0.8rem 1rem;
    color: var(--admin-text);
    background: rgb(13 28 42 / 0.82);
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    box-shadow: none;
    backdrop-filter: blur(14px);
}

.portal-admin .company-switcher label {
    color: var(--admin-muted);
}

.portal-admin input,
.portal-admin textarea,
.portal-admin select {
    min-height: 44px;
    color: var(--admin-text);
    background: var(--admin-canvas-deep);
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}

.portal-admin input::placeholder,
.portal-admin textarea::placeholder {
    color: #71879a;
}

.portal-admin .admin-main .card,
.portal-admin .admin-main .hero,
.portal-admin .system-registration-dialog,
.portal-admin .modal-card,
.portal-admin .client-panel,
.portal-admin .advanced-settings-card,
.portal-admin .workspace-profile-card {
    color: var(--admin-text);
    background: var(--admin-panel);
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    box-shadow: none;
}

.portal-admin .system-dashboard-hero {
    position: relative;
    min-height: 164px;
    padding: clamp(1.35rem, 3vw, 2.1rem);
    overflow: hidden;
    background:
        linear-gradient(110deg, rgb(13 28 42 / 0.98) 0%, rgb(13 28 42 / 0.9) 58%, rgb(8 116 84 / 0.2) 100%),
        var(--admin-panel);
    border-color: var(--admin-line-strong);
}

.portal-admin .system-dashboard-hero::after {
    position: absolute;
    top: -8rem;
    right: -5rem;
    width: 24rem;
    height: 24rem;
    content: "";
    pointer-events: none;
    background: radial-gradient(circle, rgb(53 214 160 / 0.15), transparent 68%);
}

.portal-admin .system-dashboard-hero > * {
    position: relative;
    z-index: 1;
}

.portal-admin .system-dashboard-hero h2 {
    max-width: 16ch;
    margin: 0.35rem 0 0.45rem;
    color: var(--admin-text);
    font-size: clamp(2rem, 4vw, 3.35rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.portal-admin .system-dashboard-hero p {
    max-width: 48rem;
    margin: 0;
    color: var(--admin-muted);
    font-size: 0.98rem;
}

.portal-admin .ops-eyebrow,
.portal-admin .section-kicker {
    color: var(--admin-green);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.portal-admin .system-dashboard-hero-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.2rem;
    color: var(--admin-muted);
    font-size: 0.78rem;
}

.portal-admin .system-dashboard-live-state {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: #8ce8c5;
    font-weight: 750;
}

.portal-admin .system-dashboard-live-state i {
    width: 0.52rem;
    height: 0.52rem;
    background: var(--admin-green);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgb(53 214 160 / 0.1);
}

.portal-admin .system-dashboard-live-state.is-warning {
    color: var(--admin-warning);
}

.portal-admin .system-dashboard-live-state.is-warning i {
    background: var(--admin-warning);
    box-shadow: 0 0 0 5px rgb(245 196 81 / 0.1);
}

.portal-admin .system-dashboard-live-state.is-checking i {
    animation: admin-health-pulse 1.4s ease-in-out infinite;
}

@keyframes admin-health-pulse {
    50% { opacity: 0.42; }
}

.portal-admin .support-cockpit-message {
    min-height: 1.25rem;
    margin: 0.75rem 0;
    color: var(--admin-muted);
    font-size: 0.78rem;
}

.portal-admin .support-status-strip,
.portal-admin .system-kpi-strip,
.portal-admin .metrics-grid,
.portal-admin .organization-kpi-grid,
.portal-admin .support-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.portal-admin .dashboard-kpi-strip {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.portal-admin .support-status-card,
.portal-admin .system-kpi-strip > *,
.portal-admin .metrics-grid > *,
.portal-admin .organization-kpi-grid > *,
.portal-admin .support-kpi-grid > * {
    position: relative;
    min-width: 0;
    min-height: 112px;
    padding: 1rem;
    color: var(--admin-text);
    background: linear-gradient(145deg, var(--admin-panel-raised), var(--admin-panel));
    border: 1px solid var(--admin-line);
    border-left-width: 1px;
    border-radius: 11px;
    box-shadow: none;
}

.portal-admin .support-status-card::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    content: "";
    background: var(--admin-green);
    opacity: 0.62;
}

.portal-admin .support-status-card > span,
.portal-admin .support-status-card > small {
    color: var(--admin-muted);
}

.portal-admin .support-status-card > strong {
    color: var(--admin-text);
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    letter-spacing: -0.035em;
}

.portal-admin .support-status-card.support-tone-warning::after {
    background: var(--admin-warning);
}

.portal-admin .support-status-card.support-tone-critical::after {
    background: var(--admin-danger);
}

.portal-admin .system-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(22rem, 0.85fr);
    gap: 0.9rem;
}

.portal-admin .system-dashboard-panel {
    min-width: 0;
    margin: 0;
    padding: 1.1rem;
    color: var(--admin-text);
    background: var(--admin-panel);
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    box-shadow: none;
    transition: border-color 180ms ease, transform 180ms ease;
}

.portal-admin .system-dashboard-panel:hover {
    background: var(--admin-panel);
    border-color: rgb(151 178 198 / 0.32);
    transform: translateY(-1px);
}

.portal-admin .system-dashboard-panel-wide {
    grid-column: 1 / -1;
}

.portal-admin .support-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.9rem;
    margin-bottom: 0.9rem;
    border-bottom: 1px solid var(--admin-line);
}

.portal-admin .support-panel-head h3,
.portal-admin .client-panel h3,
.portal-admin .advanced-settings-card h3 {
    margin: 0.28rem 0 0;
    color: var(--admin-text);
    font-size: 1.12rem;
    letter-spacing: -0.02em;
}

.portal-admin .support-panel-head p,
.portal-admin .client-panel p,
.portal-admin .muted,
.portal-admin .advanced-card-hint,
.portal-admin .system-result-count,
.portal-admin .field-helper {
    color: var(--admin-muted);
}

.portal-admin .support-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .support-table,
.portal-admin table {
    width: 100%;
    color: var(--admin-text);
    border-collapse: collapse;
}

.portal-admin .support-table th,
.portal-admin table th {
    padding: 0.72rem 0.78rem;
    color: #8398aa;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: left;
    text-transform: uppercase;
    background: var(--admin-canvas-deep);
    border-bottom: 1px solid var(--admin-line);
}

.portal-admin .support-table td,
.portal-admin table td {
    padding: 0.82rem 0.78rem;
    color: #d8e1e8;
    background: transparent;
    border-bottom: 1px solid var(--admin-line);
}

.portal-admin .support-table tbody tr:last-child td,
.portal-admin table tbody tr:last-child td {
    border-bottom: 0;
}

.portal-admin .support-table tbody tr:hover,
.portal-admin table tbody tr:hover {
    background: rgb(53 214 160 / 0.045);
}

.portal-admin .support-table small,
.portal-admin .support-compact-list small,
.portal-admin .support-detail-list dt,
.portal-admin .support-activity-list small {
    display: block;
    margin-top: 0.18rem;
    color: var(--admin-muted);
}

.portal-admin .support-inline-status,
.portal-admin .system-status-chip {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0.24rem 0.5rem;
    font-size: 0.7rem;
    font-style: normal;
    font-weight: 800;
    background: rgb(53 214 160 / 0.08);
    border: 1px solid currentColor;
    border-radius: 999px;
}

.portal-admin .support-tone-ok {
    color: #61e5b5 !important;
    border-color: rgb(53 214 160 / 0.52) !important;
}

.portal-admin .support-tone-warning {
    color: var(--admin-warning) !important;
    border-color: rgb(245 196 81 / 0.48) !important;
}

.portal-admin .support-tone-critical {
    color: var(--admin-danger) !important;
    border-color: rgb(251 113 133 / 0.48) !important;
}

.portal-admin .support-detail-list,
.portal-admin .support-security-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.portal-admin .support-detail-list > div,
.portal-admin .support-security-summary > span {
    min-height: 76px;
    padding: 0.78rem;
    color: var(--admin-muted);
    background: var(--admin-canvas-deep);
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}

.portal-admin .support-detail-list dd,
.portal-admin .support-security-summary strong {
    display: block;
    margin: 0.24rem 0 0;
    color: var(--admin-text);
    font-size: 1.35rem;
    font-weight: 800;
}

.portal-admin .support-compact-list,
.portal-admin .support-alert-list,
.portal-admin .support-activity-list {
    display: grid;
    gap: 0.5rem;
}

.portal-admin .support-compact-list li,
.portal-admin .support-alert-list li,
.portal-admin .support-activity-list li,
.portal-admin .activity-row,
.portal-admin .system-feature-row {
    margin: 0;
    color: var(--admin-text);
    background: var(--admin-canvas-deep);
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}

.portal-admin .support-compact-list li,
.portal-admin .support-activity-list li {
    min-height: 58px;
    padding: 0.68rem 0.75rem;
}

.portal-admin .support-activity-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
}

.portal-admin .support-activity-list time {
    color: #7890a4;
    font-size: 0.7rem;
    white-space: nowrap;
}

.portal-admin .support-activity-marker {
    width: 0.48rem;
    height: 0.48rem;
    background: currentColor;
    border-radius: 50%;
}

.portal-admin .support-alert {
    display: grid;
    gap: 0.25rem;
    padding: 0.8rem;
    border-left-width: 3px !important;
}

.portal-admin .support-empty {
    min-height: 80px;
    padding: 1rem;
    color: var(--admin-muted);
    background: var(--admin-canvas-deep);
    border: 1px dashed var(--admin-line);
    border-radius: 9px;
}

.portal-admin .admin-main button:not(.admin-nav-btn):not(.admin-submenu-btn):not(.admin-menu-home):not(.admin-logout):not(.hero-toggle-btn):not(.guest-tab-btn):not(.dj-tab-btn):not(.dj-icon-btn):not(.hero-qr-btn):not(.qr-studio-step-button),
.portal-admin .admin-main .admin-link-btn,
.portal-admin .admin-main .admin-compact-btn,
.portal-admin .company-create-button {
    min-height: var(--uiux-control-h);
    padding: 0.45rem 0.7rem;
    color: var(--admin-text);
    font-weight: 700;
    background: rgb(255 255 255 / 0.035);
    border: 1px solid var(--admin-line);
    border-radius: 9px;
    box-shadow: none;
}

@media (max-width: 760px) {
    .portal-admin .admin-nav-primary-action,
    .portal-admin .admin-main .app-btn,
    .portal-admin .admin-main .admin-link-btn,
    .portal-admin .admin-main .admin-compact-btn,
    .portal-admin .company-create-button {
        min-height: var(--uiux-control-h-touch);
    }
}

.portal-admin .admin-main button:hover,
.portal-admin .admin-main .admin-link-btn:hover {
    filter: brightness(1.06);
}

.portal-admin .admin-main :is(.app-btn-primary, .ui-button-primary, .workspace-dashboard-create),
.portal-admin .admin-main [data-dashboard-action="create"],
.portal-admin .admin-main form button[type="submit"]:not(.app-btn-secondary):not(.app-btn-success):not(.app-btn-warning):not(.app-btn-danger):not(.admin-compact-warning):not(.admin-compact-danger):not(.danger):not(.workspace-mini-btn):not(.qr-studio-step-button) {
    color: var(--action-primary-text);
    background: var(--action-primary-gradient);
    border-color: transparent;
}

.portal-admin .admin-main :is(.app-btn-primary, .ui-button-primary, .workspace-dashboard-create):hover,
.portal-admin .admin-main :is(.app-btn-primary, .ui-button-primary, .workspace-dashboard-create):focus-visible,
.portal-admin .admin-main [data-dashboard-action="create"]:hover,
.portal-admin .admin-main [data-dashboard-action="create"]:focus-visible,
.portal-admin .admin-main form button[type="submit"]:not(.app-btn-secondary):not(.app-btn-success):not(.app-btn-warning):not(.app-btn-danger):not(.admin-compact-warning):not(.admin-compact-danger):not(.danger):not(.workspace-mini-btn):not(.qr-studio-step-button):hover,
.portal-admin .admin-main form button[type="submit"]:not(.app-btn-secondary):not(.app-btn-success):not(.app-btn-warning):not(.app-btn-danger):not(.admin-compact-warning):not(.admin-compact-danger):not(.danger):not(.workspace-mini-btn):not(.qr-studio-step-button):focus-visible {
    color: var(--action-primary-text);
    background: var(--action-primary-gradient-hover);
    filter: none;
}

.portal-admin .admin-main :is(.app-btn-success, .btn-success) {
    color: #ffffff;
    background: var(--action-success);
    border-color: var(--action-success);
}

.portal-admin .admin-main :is(.app-btn-danger, .btn-danger, .admin-compact-danger, .danger, .workspace-mini-danger) {
    color: #ffe8ee;
    background: linear-gradient(180deg, rgb(95 41 55 / 0.96), rgb(64 30 41 / 0.96));
    border-color: rgb(214 87 113 / 0.72);
}

.portal-admin .admin-main :is(.app-btn-warning, .btn-warning, .admin-compact-warning) {
    color: #fff2c2;
    background: rgb(132 96 24 / 0.42);
    border-color: rgb(242 189 75 / 0.62);
}

.portal-admin .admin-main :is(.app-btn-secondary, .workspace-mini-btn, .account-access-tab, .advanced-tab-btn),
.portal-admin #refresh-admin-overview {
    color: var(--admin-text) !important;
    background: rgb(255 255 255 / 0.035) !important;
    border-color: var(--admin-line) !important;
}

.portal-admin #refresh-admin-overview:hover,
.portal-admin #refresh-admin-overview:focus-visible {
    background: rgb(53 214 160 / 0.09) !important;
    border-color: var(--admin-line-strong) !important;
}

.portal-admin :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--admin-green);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgb(53 214 160 / 0.14);
}

.portal-admin .admin-boot-screen {
    background: var(--admin-canvas);
}

.portal-admin .admin-boot-card {
    color: var(--admin-text);
    background: var(--admin-panel);
    border: 1px solid var(--admin-line);
    box-shadow: 0 28px 70px rgb(0 0 0 / 0.38);
}

@media (min-width: 1920px) {
    .portal-admin > .container {
        width: calc(100% - 4rem);
    }
}

@media (max-width: 1439px) {
    .portal-admin > .container {
        width: calc(100% - 2rem);
    }

    .portal-admin .admin-product-shell {
        grid-template-columns: clamp(232px, 18vw, 248px) minmax(0, 1fr);
        gap: 1rem;
    }
}

@media (max-width: 1180px) {
    .portal-admin > .container {
        width: calc(100% - 1.5rem);
    }

    .portal-admin .admin-product-shell {
        grid-template-columns: 224px minmax(0, 1fr);
        gap: 1rem;
    }

    .portal-admin .support-status-strip,
    .portal-admin .system-kpi-strip,
    .portal-admin .metrics-grid,
    .portal-admin .organization-kpi-grid,
    .portal-admin .support-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1279px) {
    .portal-admin > .container {
        width: 100%;
        padding: 0.85rem 0.85rem 2rem;
    }

    .portal-admin .admin-product-shell {
        grid-template-columns: 1fr;
    }

    .portal-admin .admin-mobile-topbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 56px;
        padding: 0.5rem 0.65rem;
        color: var(--admin-text);
        background: var(--admin-panel);
        border: 1px solid var(--admin-line);
        border-radius: 11px;
    }

    .portal-admin .admin-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 90;
        width: min(420px, 88vw);
        height: 100dvh;
        min-height: 0;
        max-height: none;
        padding-top: 4rem;
        overflow-y: auto;
        border-radius: 0 14px 14px 0;
        box-shadow: 24px 0 72px rgb(0 0 0 / 0.5);
    }

    .portal-admin .admin-mobile-menu-close {
        position: absolute;
        top: 0.85rem;
        right: 0.85rem;
        z-index: 2;
        display: inline-grid;
        place-items: center;
        width: 44px;
        height: 44px;
        padding: 0;
        color: var(--admin-text);
        background: rgb(6 16 26 / 0.86);
        border: 1px solid var(--admin-line-strong);
        border-radius: 10px;
        cursor: pointer;
    }

    .portal-admin .admin-mobile-menu-close svg {
        width: 1.25rem;
        height: 1.25rem;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-width: 1.8;
    }

    .portal-admin .admin-mobile-menu-scrim:not(.hidden) {
        position: fixed;
        inset: 0;
        z-index: 85;
        display: block;
        background: rgb(0 0 0 / 0.62);
        border: 0;
    }

    .portal-admin .system-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .portal-admin .system-dashboard-panel-wide {
        grid-column: auto;
    }
}

@media (max-width: 640px) {
    .portal-admin .topbar {
        min-height: 60px;
        padding: 0 0.85rem;
    }

    .portal-admin .topbar .brand-logo {
        width: 9.5rem;
    }

    .portal-admin .system-dashboard-hero {
        min-height: 0;
        padding: 1.25rem;
    }

    .portal-admin .system-dashboard-hero h2 {
        font-size: clamp(2rem, 12vw, 2.7rem);
    }

    .portal-admin .system-dashboard-hero-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.5rem;
    }

    .portal-admin .support-status-strip,
    .portal-admin .system-kpi-strip,
    .portal-admin .metrics-grid,
    .portal-admin .organization-kpi-grid,
    .portal-admin .support-kpi-grid,
    .portal-admin .support-detail-list,
    .portal-admin .support-security-summary {
        grid-template-columns: 1fr;
    }

    .portal-admin .support-status-card {
        min-height: 96px;
    }

    .portal-admin .support-panel-head {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-admin .support-panel-head button {
        align-self: flex-start;
    }

    .portal-admin .support-table thead {
        display: none;
    }

    .portal-admin .support-table,
    .portal-admin .support-table tbody,
    .portal-admin .support-table tr,
    .portal-admin .support-table td {
        display: block;
        width: 100%;
    }

    .portal-admin .support-table tr {
        padding: 0.7rem;
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .support-table td {
        display: grid;
        grid-template-columns: minmax(7rem, 0.42fr) minmax(0, 1fr);
        gap: 0.7rem;
        padding: 0.42rem 0;
        border: 0;
    }

    .portal-admin .support-table td::before {
        color: #7890a4;
        font-size: 0.66rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        content: attr(data-label);
        text-transform: uppercase;
    }

    .portal-admin .support-activity-list li {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .portal-admin .support-activity-list time {
        grid-column: 2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-admin *,
    .portal-admin *::before,
    .portal-admin *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Workspace dashboard — event-first Midnight Aurora cockpit. */
.portal-admin {
    background:
        radial-gradient(ellipse at 76% 2%, rgb(23 166 125 / 0.2), transparent 36rem),
        radial-gradient(ellipse at 48% 32%, rgb(24 106 135 / 0.12), transparent 44rem),
        radial-gradient(circle at 4% 68%, rgb(67 168 255 / 0.07), transparent 28rem),
        var(--admin-canvas);
}

.portal-admin .admin-mobile-menu-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #031b14;
    background: var(--admin-nav-accent);
    border-color: color-mix(in srgb, var(--admin-nav-accent) 80%, white);
}

.portal-admin .admin-mobile-menu-btn:hover,
.portal-admin .admin-mobile-menu-btn:focus-visible {
    color: #031b14;
    background: color-mix(in srgb, var(--admin-nav-accent) 88%, white);
}

.portal-admin .admin-mobile-menu-btn svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 1.8;
}

.portal-admin .workspace-dashboard-head {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    min-height: 174px;
    padding: clamp(1.4rem, 3vw, 2.25rem);
    margin-bottom: 0.85rem;
    overflow: hidden;
    background:
        linear-gradient(112deg, rgb(13 28 42 / 0.96) 0%, rgb(13 28 42 / 0.9) 54%, rgb(9 98 76 / 0.28) 100%),
        var(--admin-panel);
    border: 1px solid var(--admin-line-strong);
    border-radius: 12px;
}

.portal-admin .workspace-dashboard-head::after {
    position: absolute;
    top: -11rem;
    right: -4rem;
    width: 32rem;
    height: 32rem;
    content: "";
    pointer-events: none;
    background:
        radial-gradient(ellipse at 50% 50%, rgb(53 214 160 / 0.22), transparent 58%),
        radial-gradient(ellipse at 30% 60%, rgb(67 168 255 / 0.12), transparent 65%);
    filter: blur(4px);
}

.portal-admin .workspace-dashboard-heading,
.portal-admin .workspace-dashboard-head-actions {
    position: relative;
    z-index: 1;
}

.portal-admin .workspace-dashboard-heading {
    max-width: 52rem;
}

.portal-admin .workspace-dashboard-context {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    color: var(--admin-muted);
    font-size: 0.78rem;
}

.portal-admin .workspace-dashboard-live-state {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #a9bac7;
    font-weight: 600;
}

.portal-admin .workspace-dashboard-live-state i {
    width: 0.55rem;
    height: 0.55rem;
    background: #7890a4;
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgb(120 144 164 / 0.1);
}

.portal-admin .workspace-dashboard-live-state.is-live {
    color: #83e8c2;
}

.portal-admin .workspace-dashboard-live-state.is-live i {
    background: var(--admin-green);
    box-shadow: 0 0 0 5px rgb(53 214 160 / 0.12);
}

.portal-admin .workspace-dashboard-update-status {
    padding-left: 0.75rem;
    border-left: 1px solid var(--admin-line);
}

.portal-admin .workspace-dashboard-head h2 {
    max-width: 12ch;
    margin: 0;
    color: var(--admin-text);
    font-size: clamp(2.5rem, 5vw, 4.4rem);
    line-height: 0.95;
    letter-spacing: -0.055em;
}

.portal-admin .workspace-dashboard-head p {
    max-width: 48rem;
    margin: 0.8rem 0 0;
    color: var(--admin-muted);
    font-size: clamp(0.92rem, 1.3vw, 1.04rem);
}

.portal-admin .workspace-dashboard-head-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.portal-admin .workspace-dashboard-create svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2;
}

.portal-admin .dashboard-kpi-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 0.85rem;
    overflow: hidden;
    background: rgb(7 23 37 / 0.76);
    border: 1px solid var(--admin-line);
    border-radius: 12px;
}

.portal-admin .dashboard-kpi-card {
    display: grid;
    align-content: center;
    min-height: 104px;
    padding: 1rem 1.15rem;
    margin: 0;
    background: transparent;
    border: 0;
    border-right: 1px solid var(--admin-line);
    border-radius: 0;
}

.portal-admin .dashboard-kpi-card:last-child {
    border-right: 0;
}

.portal-admin .dashboard-kpi-card::after {
    display: none;
}

.portal-admin .dashboard-kpi-card span,
.portal-admin .dashboard-kpi-card small {
    color: var(--admin-muted);
    font-size: 0.74rem;
    font-weight: 600;
    text-transform: none;
}

.portal-admin .dashboard-kpi-card strong {
    display: block;
    margin: 0.2rem 0 0.12rem;
    color: var(--admin-text);
    font-size: clamp(1.55rem, 2.8vw, 2.35rem);
    line-height: 1;
    letter-spacing: -0.04em;
}

.portal-admin .dashboard-kpi-live strong {
    color: var(--admin-green);
}

.portal-admin .workspace-dashboard-cockpit {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(310px, 0.65fr);
    gap: 0.85rem;
}

.portal-admin .workspace-dashboard-primary,
.portal-admin .workspace-dashboard-rail {
    display: grid;
    align-content: start;
    gap: 0.85rem;
    min-width: 0;
}

.portal-admin .workspace-event-stage,
.portal-admin .workspace-dashboard-panel {
    position: relative;
    min-width: 0;
    overflow: hidden;
    color: var(--admin-text);
    background: rgb(13 28 42 / 0.9);
    border: 1px solid var(--admin-line);
    border-radius: 12px;
}

.portal-admin .workspace-event-stage {
    min-height: 300px;
    padding: clamp(1.35rem, 3vw, 2rem);
    background:
        linear-gradient(118deg, rgb(13 28 42 / 0.98), rgb(13 28 42 / 0.9) 56%, rgb(17 73 72 / 0.52)),
        var(--admin-panel);
    border-color: var(--admin-line-strong);
}

.portal-admin .workspace-event-stage-glow {
    position: absolute;
    inset: -40% -22% auto 44%;
    height: 24rem;
    pointer-events: none;
    background: radial-gradient(ellipse, rgb(53 214 160 / 0.18), transparent 68%);
}

.portal-admin .workspace-event-stage-topline,
.portal-admin .workspace-event-stage-main,
.portal-admin .workspace-event-stage-actions {
    position: relative;
    z-index: 1;
}

.portal-admin .workspace-event-stage-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--admin-muted);
    font-size: 0.78rem;
}

.portal-admin .workspace-event-status {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #83e8c2;
    font-weight: 600;
}

.portal-admin .workspace-event-status i {
    width: 0.55rem;
    height: 0.55rem;
    background: var(--admin-green);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgb(53 214 160 / 0.12);
}

.portal-admin .workspace-event-stage-main {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    min-height: 150px;
    padding: 2.15rem 0 1.35rem;
}

.portal-admin .workspace-event-code {
    color: var(--admin-green);
    font-size: 0.78rem;
    font-weight: 600;
}

.portal-admin .workspace-event-stage h3 {
    max-width: 16ch;
    margin: 0.4rem 0 0.55rem;
    color: var(--admin-text);
    font-size: clamp(2rem, 4vw, 3.35rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}

.portal-admin .workspace-event-stage p {
    margin: 0;
    color: var(--admin-muted);
}

.portal-admin .workspace-event-stage-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(84px, 1fr));
    min-width: min(100%, 320px);
    background: rgb(4 16 28 / 0.54);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .workspace-event-stage-metrics span {
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem;
    border-right: 1px solid var(--admin-line);
}

.portal-admin .workspace-event-stage-metrics span:last-child {
    border-right: 0;
}

.portal-admin .workspace-event-stage-metrics strong {
    color: var(--admin-text);
    font-size: 1.05rem;
}

.portal-admin .workspace-event-stage-metrics small {
    color: var(--admin-muted);
    font-size: 0.7rem;
}

.portal-admin .workspace-event-stage-actions {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.portal-admin .workspace-event-stage-empty {
    display: grid;
    place-items: center;
}

.portal-admin .workspace-dashboard-panel {
    padding: 1.15rem;
}

.portal-admin .workspace-dashboard-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.9rem;
    margin-bottom: 0.35rem;
    border-bottom: 1px solid var(--admin-line);
}

.portal-admin .workspace-dashboard-panel-head h3 {
    margin: 0;
    color: var(--admin-text);
    font-size: 1.05rem;
}

.portal-admin .workspace-dashboard-panel-head p {
    margin: 0.18rem 0 0;
    color: var(--admin-muted);
    font-size: 0.78rem;
}

.portal-admin .workspace-text-action {
    min-height: 36px !important;
    padding: 0.35rem 0.55rem !important;
    color: #83e8c2 !important;
    font-size: 0.76rem;
    background: transparent !important;
    border: 0 !important;
}

.portal-admin .workspace-schedule-list,
.portal-admin .workspace-activity-list {
    display: grid;
}

.portal-admin .workspace-schedule-event,
.portal-admin .workspace-activity-row {
    display: grid;
    width: 100%;
    min-height: 72px;
    padding: 0.75rem 0.15rem;
    color: var(--admin-text);
    text-align: left;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--admin-line);
    border-radius: 0;
    cursor: pointer;
    transition: background-color 180ms ease, color 180ms ease;
}

.portal-admin .workspace-schedule-event {
    grid-template-columns: minmax(104px, 0.35fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
}

.portal-admin .workspace-schedule-event:last-child,
.portal-admin .workspace-activity-row:last-child {
    border-bottom: 0;
}

.portal-admin .workspace-schedule-event:hover,
.portal-admin .workspace-schedule-event:focus-visible,
.portal-admin .workspace-activity-row:hover,
.portal-admin .workspace-activity-row:focus-visible {
    background: rgb(53 214 160 / 0.055);
}

.portal-admin .workspace-schedule-time {
    color: var(--admin-muted);
    font-size: 0.76rem;
}

.portal-admin .workspace-schedule-copy,
.portal-admin .workspace-schedule-side,
.portal-admin .workspace-activity-row > span {
    display: grid;
    min-width: 0;
    gap: 0.2rem;
}

.portal-admin .workspace-schedule-copy strong,
.portal-admin .workspace-schedule-copy small,
.portal-admin .workspace-activity-row strong,
.portal-admin .workspace-activity-row small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-admin .workspace-schedule-copy small,
.portal-admin .workspace-schedule-side small,
.portal-admin .workspace-activity-row small {
    color: var(--admin-muted);
    font-size: 0.74rem;
}

.portal-admin .workspace-schedule-side {
    justify-items: end;
}

.portal-admin .workspace-dashboard-quick-actions {
    background:
        linear-gradient(145deg, rgb(53 214 160 / 0.075), transparent 62%),
        var(--admin-panel);
}

.portal-admin .workspace-quick-action-list {
    display: grid;
}

.portal-admin .workspace-quick-action-list button {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 0.1rem 0.75rem;
    width: 100%;
    min-height: 68px;
    padding: 0.65rem 0;
    color: var(--admin-text) !important;
    text-align: left;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--admin-line) !important;
    border-radius: 0 !important;
}

.portal-admin .workspace-quick-action-list button:last-child {
    border-bottom: 0 !important;
}

.portal-admin .workspace-quick-action-list button > span {
    display: grid;
    grid-row: 1 / 3;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--admin-green);
    background: rgb(53 214 160 / 0.08);
    border: 1px solid rgb(53 214 160 / 0.2);
    border-radius: 9px;
}

.portal-admin .workspace-quick-action-list svg,
.portal-admin .workspace-dashboard-empty-icon svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.portal-admin .workspace-quick-action-list b {
    align-self: end;
    font-size: 0.88rem;
}

.portal-admin .workspace-quick-action-list small {
    align-self: start;
    color: var(--admin-muted);
    font-size: 0.72rem;
}

/* The legacy admin button normalization in site.css intentionally has very
   high specificity. Keep cockpit actions as two-row grid items. */
#admin-shell#admin-shell .admin-main .workspace-quick-action-list button {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-rows: auto auto;
    justify-content: stretch !important;
    width: 100% !important;
    min-height: 68px !important;
    height: auto !important;
    max-height: none !important;
    padding: 0.65rem 0 !important;
    white-space: normal !important;
}

#admin-shell#admin-shell .admin-main .workspace-quick-action-list button > span {
    grid-column: 1;
    grid-row: 1 / 3;
}

#admin-shell#admin-shell .admin-main .workspace-quick-action-list button > b {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

#admin-shell#admin-shell .admin-main .workspace-quick-action-list button > small {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    overflow-wrap: anywhere;
}

.portal-admin .workspace-activity-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
}

.portal-admin .workspace-activity-row b {
    color: #83e8c2;
    font-size: 0.84rem;
    white-space: nowrap;
}

.portal-admin .workspace-dashboard-empty {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 1rem;
    color: var(--admin-muted);
    background: rgb(4 16 28 / 0.34);
    border: 1px dashed var(--admin-line);
    border-radius: 10px;
}

.portal-admin .workspace-dashboard-empty-icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--admin-green);
    background: rgb(53 214 160 / 0.08);
    border: 1px solid rgb(53 214 160 / 0.2);
    border-radius: 9px;
}

.portal-admin .workspace-dashboard-empty strong {
    color: var(--admin-text);
}

.portal-admin .workspace-dashboard-empty p {
    margin: 0.2rem 0 0;
    color: var(--admin-muted);
    font-size: 0.8rem;
}

.portal-admin .workspace-dashboard-empty .app-btn {
    grid-column: 2;
    justify-self: start;
}

@media (max-width: 1180px) {
    .portal-admin .workspace-dashboard-cockpit {
        grid-template-columns: 1fr;
    }

    .portal-admin .workspace-dashboard-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .portal-admin .workspace-dashboard-head {
        align-items: flex-start;
        flex-direction: column;
        min-height: 0;
        padding: 1.25rem;
    }

    .portal-admin .workspace-dashboard-head h2 {
        font-size: clamp(2.4rem, 13vw, 3.5rem);
    }

    .portal-admin .workspace-dashboard-head-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .portal-admin .dashboard-kpi-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-columns: auto;
        overflow: visible;
    }

    .portal-admin .dashboard-kpi-card:nth-child(2) {
        border-right: 0;
    }

    .portal-admin .dashboard-kpi-card:nth-child(-n + 2) {
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .workspace-event-stage-main {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.25rem;
        padding-top: 1.6rem;
    }

    .portal-admin .workspace-event-stage-metrics {
        width: 100%;
        min-width: 0;
    }

    .portal-admin .workspace-dashboard-rail {
        grid-template-columns: 1fr;
    }

    .portal-admin .workspace-schedule-event {
        grid-template-columns: 1fr auto;
        gap: 0.35rem 0.75rem;
    }

    .portal-admin .workspace-schedule-time {
        grid-column: 1 / -1;
    }
}

/* Touch desktop-site fallback */
@media (hover: none) and (pointer: coarse) and (max-width: 1180px) {
    .portal-admin > .container {
        width: 100%;
        padding: 0.65rem clamp(0.6rem, 2.5vw, 1rem) 1.5rem;
    }

    .portal-admin .admin-product-shell {
        display: block;
        width: 100%;
        grid-template-columns: 1fr !important;
    }

    .portal-admin .admin-mobile-topbar {
        position: sticky;
        top: var(--admin-header-height);
        z-index: 65;
        display: flex;
        width: 100%;
    }

    .portal-admin .admin-sidebar {
        position: fixed;
        z-index: 1200;
        inset: var(--admin-header-height) auto 0 0;
        width: min(20rem, calc(100vw - 2.75rem));
        max-width: 100%;
        height: calc(100dvh - var(--admin-header-height));
        min-height: 0;
        max-height: none;
        margin: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: 0 14px 14px 0;
        transform: translateX(-105%);
        visibility: hidden;
        pointer-events: none;
        transition: transform 180ms ease, visibility 180ms ease;
    }

    .portal-admin #admin-shell.mobile-menu-open .admin-sidebar {
        transform: translateX(0);
        visibility: visible;
        pointer-events: auto;
    }

    .portal-admin .admin-mobile-menu-close {
        display: inline-grid;
    }

    .portal-admin .admin-mobile-menu-scrim:not(.hidden) {
        position: fixed;
        z-index: 1190;
        inset: var(--admin-header-height) 0 0;
        display: block;
        background: rgb(1 8 14 / 0.72);
        backdrop-filter: blur(3px);
        border: 0;
    }

    .portal-admin .admin-main {
        width: 100%;
        margin: 0;
    }

    .portal-admin .calendar-toolbar-actions {
        display: flex;
        flex-flow: row nowrap;
        gap: 0.4rem;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .portal-admin .calendar-toolbar-actions::-webkit-scrollbar {
        display: none;
    }

    .portal-admin .calendar-toolbar-actions .app-btn,
    .portal-admin .calendar-view-button {
        flex: 0 0 auto;
        width: auto !important;
        min-width: 0;
        min-height: var(--uiux-control-h-touch);
        padding: 0.55rem 0.75rem;
    }

    .portal-admin .calendar-view-switcher {
        width: fit-content;
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .portal-admin .workspace-calendar-scroll {
        overflow-x: hidden;
    }

    .portal-admin .workspace-calendar-scroll .calendar-grid {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        width: 100%;
        min-width: 100% !important;
    }

    .portal-admin .workspace-calendar-scroll .calendar-weekday {
        min-width: 0;
        padding-inline: 0.1rem;
        overflow: hidden;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .portal-admin .workspace-calendar-scroll .calendar-day {
        min-width: 0;
        overflow: hidden;
    }

    .portal-admin .calendar-day-summary {
        min-width: 0;
        min-height: 44px;
    }

    .portal-admin .calendar-week-grid {
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
    }

    .portal-admin .modal-backdrop {
        align-items: stretch;
        padding: 0;
        overflow: hidden;
    }

    .portal-admin .event-edit-modal-card,
    .portal-admin #playlist-picker-modal .modal-card,
    .portal-admin .qr-studio-card {
        display: grid;
        grid-template-rows: auto minmax(0, 1fr);
        width: 100%;
        max-width: 100%;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        overflow: hidden;
        border-radius: 0;
    }

    .portal-admin .event-edit-modal-card > form {
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
        min-height: 0;
        overflow: hidden;
    }

    .portal-admin .event-edit-modal-card .modal-card-body,
    .portal-admin #playlist-picker-modal .modal-card-body,
    .portal-admin .qr-studio-card > .modal-card-body {
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .portal-admin .qr-studio-card .qr-studio-layout,
    .portal-admin .qr-studio-card .qr-studio-editor-body,
    .portal-admin .qr-studio-card .qr-studio-preview {
        max-height: none;
        overflow: visible;
    }

    .portal-admin .event-form-grid,
    .portal-admin .event-form-grid-two,
    .portal-admin .source-mode-grid,
    .portal-admin .event-module-grid,
    .portal-admin .event-datetime-parts,
    .portal-admin .qr-studio-layout {
        grid-template-columns: 1fr !important;
    }

    .portal-admin .qr-studio-step-nav {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
        overflow: visible;
        border-right: 0;
    }
}

/* Organization billing workspace */
.portal-admin .organization-billing-shell {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
    padding: clamp(1rem, 2vw, 1.5rem);
    color: var(--admin-text);
    background:
        radial-gradient(circle at 92% 8%, rgb(49 211 161 / 0.12), transparent 34%),
        var(--admin-panel);
    border: 1px solid var(--admin-line);
    border-radius: 16px;
}

.portal-admin .organization-billing-head,
.portal-admin .billing-plan-title,
.portal-admin .billing-invoice-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.portal-admin .organization-billing-head h3,
.portal-admin .billing-invoices-panel h4 {
    margin: 0.2rem 0;
    color: var(--admin-text);
}

.portal-admin .organization-billing-head p,
.portal-admin .billing-action-card p,
.portal-admin .billing-invoices-panel p {
    margin: 0;
    color: var(--admin-muted);
}

.portal-admin .billing-sync-state {
    padding: 0.45rem 0.7rem;
    color: #a7f3d0;
    background: rgb(49 211 161 / 0.1);
    border: 1px solid rgb(49 211 161 / 0.3);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
}

.portal-admin .billing-sync-state[data-state="partial-error"],
.portal-admin .billing-sync-state[data-state="error"] {
    color: #fde68a;
    background: rgb(245 158 11 / 0.1);
    border-color: rgb(245 158 11 / 0.35);
}

.portal-admin .organization-billing-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    gap: 1rem;
}

.portal-admin .billing-plan-card,
.portal-admin .billing-action-card,
.portal-admin .billing-invoices-panel {
    padding: 1rem;
    background: color-mix(in srgb, var(--admin-panel-raised) 88%, transparent);
    border: 1px solid var(--admin-line);
    border-radius: 12px;
}

.portal-admin .billing-plan-title > span,
.portal-admin .billing-action-card > span {
    color: #62dfb5;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-admin .billing-plan-title > strong {
    margin-left: auto;
    font-size: clamp(1.8rem, 5vw, 3.5rem);
}

.portal-admin .billing-status-dot {
    width: 12px;
    height: 12px;
    background: var(--admin-green);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgb(49 211 161 / 0.12);
}

.portal-admin .billing-plan-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin: 1rem 0 0;
}

.portal-admin .billing-plan-details div {
    padding: 0.8rem;
    background: var(--admin-panel-strong);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .billing-plan-details dt {
    color: var(--admin-muted);
    font-size: 0.74rem;
}

.portal-admin .billing-plan-details dd {
    margin: 0.2rem 0 0;
    color: var(--admin-text);
    font-weight: 800;
}

.portal-admin .billing-action-stack {
    display: grid;
    gap: 0.75rem;
}

.portal-admin .billing-action-card {
    display: grid;
    gap: 0.55rem;
}

.portal-admin .billing-action-card-business {
    background: linear-gradient(135deg, rgb(49 211 161 / 0.08), var(--admin-panel-raised));
}

.portal-admin .billing-portal-link {
    padding: 0.75rem;
    color: #8de9ca;
    text-align: left;
    background: transparent;
    border: 1px dashed rgb(49 211 161 / 0.35);
    border-radius: 10px;
}

.portal-admin .billing-invoice-list {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.8rem;
}

.portal-admin .billing-invoice-row {
    padding: 0.75rem;
    background: var(--admin-panel-strong);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .billing-invoice-row span:first-child {
    display: grid;
}

.portal-admin .billing-invoice-row small {
    color: var(--admin-muted);
}

.portal-admin .billing-invoice-row a {
    color: #8de9ca;
}

@media (max-width: 900px) {
    .portal-admin .organization-billing-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .portal-admin .organization-billing-head,
    .portal-admin .billing-invoice-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-admin .billing-plan-details {
        grid-template-columns: 1fr;
    }
}

/* Event activation readiness — keep Live recovery close to the edited fields. */
.portal-admin .event-live-readiness {
    display: grid;
    gap: 0.75rem;
    grid-column: 1 / -1;
    margin-top: 0.85rem;
    padding: 1rem;
    color: var(--admin-text);
    background: rgb(6 19 31 / 0.72);
    border: 1px solid var(--admin-line-strong);
    border-radius: 12px;
}

.portal-admin .client-activation-panel {
    margin: 0 0 18px;
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--client-accent, #34d6ae) 44%, var(--client-border, #294254));
    border-radius: 18px;
    background:
        radial-gradient(circle at 92% 0%, rgba(52, 214, 174, .15), transparent 34%),
        linear-gradient(135deg, rgba(16, 37, 52, .98), rgba(10, 25, 38, .98));
    box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
}

.portal-admin .client-activation-panel.hidden {
    display: none;
}

.portal-admin .client-activation-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.portal-admin .client-activation-head h3 {
    margin: 4px 0 5px;
    color: var(--client-text, #f4f8fb);
    font-size: clamp(1.25rem, 2vw, 1.65rem);
}

.portal-admin .client-activation-head p,
.portal-admin .client-activation-copy small,
.portal-admin .client-activation-progress-copy span {
    color: var(--client-muted, #a9bac7);
}

.portal-admin .client-activation-progress-copy {
    display: grid;
    min-width: 110px;
    text-align: right;
}

.portal-admin .client-activation-progress-copy strong {
    color: var(--client-accent, #34d6ae);
    font-size: 1.55rem;
}

.portal-admin .client-activation-progress {
    height: 6px;
    margin: 18px 0;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(143, 167, 183, .18);
}

.portal-admin .client-activation-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #25c99b, #56e3bd);
    transition: width 260ms ease;
}

.portal-admin .client-activation-stepper {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-admin .client-activation-step {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 78px;
    padding: 12px;
    border: 1px solid rgba(126, 158, 178, .24);
    border-radius: 13px;
    background: rgba(5, 17, 27, .52);
}

.portal-admin .client-activation-step.is-completed {
    border-color: rgba(52, 214, 174, .42);
    background: rgba(24, 113, 88, .18);
}

.portal-admin .client-activation-step.is-skipped {
    opacity: .72;
}

.portal-admin .client-activation-index {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid rgba(52, 214, 174, .45);
    border-radius: 10px;
    color: #66e5c0;
    background: rgba(21, 91, 72, .24);
    font-weight: 800;
}

.portal-admin .client-activation-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.portal-admin .client-activation-copy strong {
    color: var(--client-text, #f4f8fb);
}

.portal-admin .client-activation-status {
    color: #7de5c6;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.portal-admin .client-activation-actions {
    grid-column: 2 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.portal-admin .client-activation-actions .app-btn {
    min-height: 34px;
    padding: 7px 11px;
}

.portal-admin .client-activation-skip {
    border: 0;
    color: var(--client-muted, #a9bac7);
    background: transparent;
    font: inherit;
    font-size: .78rem;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.portal-admin .client-activation-skip:hover,
.portal-admin .client-activation-skip:focus-visible {
    color: var(--client-text, #f4f8fb);
}

.portal-admin .event-card-readiness {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(245, 183, 66, .46);
    border-radius: 12px;
    background: rgba(97, 65, 10, .2);
}

.portal-admin .event-card-readiness > div {
    display: grid;
    gap: 3px;
}

.portal-admin .event-card-readiness strong {
    color: #ffd477;
}

.portal-admin .event-card-readiness span {
    color: var(--client-muted, #a9bac7);
    font-size: .84rem;
}

.portal-admin .event-module-center {
    display: grid;
    gap: 14px;
    margin-top: 16px;
    padding: 16px;
    border: 1px solid rgba(52, 214, 174, .28);
    border-radius: 14px;
    background: rgba(5, 18, 29, .62);
}

.portal-admin .event-module-center-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.portal-admin .event-module-center-head h3 {
    margin: 4px 0;
    color: var(--client-text, #f4f8fb);
}

.portal-admin .event-module-center-head p {
    max-width: 720px;
    margin: 0;
    color: var(--client-muted, #a9bac7);
    font-size: .84rem;
}

.portal-admin .event-module-center-status {
    flex: 0 0 auto;
    color: #75e4c2;
    font-size: .78rem;
    font-weight: 800;
}

.portal-admin .event-module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.portal-admin .event-module-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 104px;
    padding: 13px;
    border: 1px solid rgba(126, 158, 178, .22);
    border-radius: 12px;
    background: rgba(12, 31, 45, .8);
}

.portal-admin .event-module-card.is-enabled {
    border-color: rgba(52, 214, 174, .5);
    background: rgba(20, 96, 75, .2);
}

.portal-admin .locked-feature {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    border-style: dashed;
}

.portal-admin .locked-feature-icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--admin-muted);
    background: rgb(255 255 255 / 0.05);
    border-radius: 10px;
}

.portal-admin .locked-feature-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.portal-admin .locked-feature-plan {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 4px;
    padding: 3px 7px;
    color: #bfdbfe;
    font-size: 0.68rem;
    font-weight: 600;
    background: rgb(59 130 246 / 0.12);
    border-radius: 999px;
}

.portal-admin .played-notification-settings {
    display: block;
    grid-column: 1 / -1;
}

.portal-admin .played-notification-settings form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
}

.portal-admin .played-notification-form-copy,
.portal-admin .played-notification-wide,
.portal-admin .played-notification-preview,
.portal-admin .played-notification-status,
.portal-admin .played-notification-actions {
    grid-column: 1 / -1;
}

.portal-admin .played-notification-settings label > span {
    display: block;
    margin-bottom: 5px;
    color: var(--admin-muted);
    font-size: 0.78rem;
}

.portal-admin .played-notification-settings :is(input, select, textarea) {
    width: 100%;
    min-height: 44px;
}

.portal-admin .played-notification-settings textarea {
    min-height: 88px;
}

.portal-admin .played-notification-check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.portal-admin .played-notification-check input {
    width: 20px;
    min-height: 20px;
}

.portal-admin .played-notification-check.is-unavailable {
    color: var(--admin-muted);
}

.portal-admin .played-notification-delivery-status {
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    color: var(--admin-muted);
    background: rgba(8, 20, 31, 0.56);
    font-size: 0.82rem;
}

.portal-admin .played-notification-preview {
    padding: 14px;
    background: var(--admin-panel-raised);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .played-notification-preview :is(small, strong, p) {
    display: block;
    margin: 0;
}

.portal-admin .played-notification-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

#admin-shell#admin-shell .admin-main .locked-feature > button.app-btn,
#admin-shell#admin-shell .admin-main .played-notification-actions button.app-btn {
    height: var(--uiux-control-h) !important;
    min-height: var(--uiux-control-h) !important;
    max-height: var(--uiux-control-h) !important;
}

@media (max-width: 620px) {
    .portal-admin .played-notification-settings form {
        grid-template-columns: 1fr;
    }

    .portal-admin .locked-feature {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
    }

    #admin-shell#admin-shell .admin-main .locked-feature > button.app-btn {
        grid-column: 1 / -1;
        width: 100%;
        height: var(--uiux-control-h-touch) !important;
        min-height: var(--uiux-control-h-touch) !important;
        max-height: var(--uiux-control-h-touch) !important;
    }

    .portal-admin .played-notification-actions {
        flex-direction: column-reverse;
    }

    #admin-shell#admin-shell .admin-main .played-notification-actions button.app-btn {
        width: 100%;
        height: var(--uiux-control-h-touch) !important;
        min-height: var(--uiux-control-h-touch) !important;
        max-height: var(--uiux-control-h-touch) !important;
    }
}

.portal-admin .event-module-card strong,
.portal-admin .event-module-card p,
.portal-admin .event-module-card small {
    display: block;
}

.portal-admin .event-module-location {
    display: block;
    margin-top: 0.55rem;
    color: var(--admin-muted);
    font-size: 0.75rem;
    line-height: 1.45;
}

.portal-admin .event-module-card.is-planned {
    border-style: dashed;
    opacity: 0.82;
}

.portal-admin .event-module-card strong {
    color: var(--client-text, #f4f8fb);
}

.portal-admin .event-module-card p {
    margin: 4px 0;
    color: var(--client-muted, #a9bac7);
    font-size: .8rem;
}

.portal-admin .event-module-card small {
    color: #75e4c2;
    font-weight: 700;
}

.portal-admin .event-module-switch {
    position: relative;
    flex: 0 0 auto;
    width: 46px;
    height: 26px;
}

.portal-admin .event-module-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.portal-admin .event-module-switch i {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(150, 171, 185, .42);
    border-radius: 999px;
    background: #233748;
    cursor: pointer;
}

.portal-admin .event-module-switch i::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #c6d3dc;
    content: "";
    transition: transform 160ms ease;
}

.portal-admin .event-module-switch input:checked + i {
    border-color: #34d6ae;
    background: #148466;
}

.portal-admin .event-module-switch input:checked + i::after {
    transform: translateX(20px);
    background: white;
}

.portal-admin .event-module-switch input:focus-visible + i {
    outline: 3px solid rgba(74, 169, 255, .68);
    outline-offset: 3px;
}

.portal-admin .event-module-switch input:disabled + i {
    cursor: not-allowed;
    opacity: .42;
}

.portal-admin .event-module-loading,
.portal-admin .event-module-error {
    grid-column: 1 / -1;
    padding: 18px;
    border: 1px dashed rgba(126, 158, 178, .3);
    border-radius: 12px;
    color: var(--client-muted, #a9bac7);
}

@media (max-width: 1024px) {
    .portal-admin .client-activation-stepper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .portal-admin .client-activation-panel {
        padding: 17px;
        border-radius: 15px;
    }

    .portal-admin .client-activation-head {
        display: grid;
        gap: 10px;
    }

    .portal-admin .client-activation-progress-copy {
        grid-auto-flow: column;
        align-items: center;
        justify-content: space-between;
        min-width: 0;
        text-align: left;
    }

    .portal-admin .client-activation-stepper {
        grid-template-columns: 1fr;
    }

    .portal-admin .client-activation-step {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .portal-admin .client-activation-status {
        grid-column: 2;
    }

    .portal-admin .event-card-readiness {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-admin .event-card-readiness .app-btn {
        width: 100%;
    }

    .portal-admin .event-module-center-head {
        display: grid;
    }

    .portal-admin .event-module-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-admin .client-activation-progress span {
        transition: none;
    }

    .portal-admin .event-module-switch i::after {
        transition: none;
    }
}

.portal-admin .event-live-readiness.hidden {
    display: none;
}

/* QR Studio */
.portal-admin .qr-studio-card {
    width: min(1240px, calc(100vw - 1.5rem));
    max-height: calc(100dvh - 1.5rem);
    padding: 0;
    overflow: hidden;
    background: #081826;
    border-color: rgb(67 168 255 / 0.28);
}

.portal-admin .qr-studio-head {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.4rem;
    background: rgb(8 24 38 / 0.95);
    border-bottom: 1px solid var(--admin-line);
    backdrop-filter: blur(18px);
}

.portal-admin .qr-studio-head h2,
.portal-admin .qr-studio-preview-head h3 {
    margin: 0.2rem 0 0;
}

.portal-admin .qr-studio-head p {
    margin: 0.25rem 0 0;
}

.portal-admin .qr-studio-layout {
    display: grid;
    grid-template-columns: 196px minmax(360px, 1fr) 360px;
    min-height: min(590px, calc(100dvh - 106px));
    max-height: calc(100dvh - 106px);
}

.portal-admin .qr-studio-workspace {
    min-width: 0;
}

.portal-admin .qr-studio-step-nav {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 1rem 0.75rem;
    background: rgb(5 17 29 / 0.78);
    border-right: 1px solid var(--admin-line);
}

.portal-admin .qr-studio-step-button {
    display: grid;
    width: 100%;
    grid-template-columns: 2rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 0.65rem;
    row-gap: 0.08rem;
    min-height: 62px;
    padding: 0.7rem;
    font: inherit;
    text-align: left;
    color: var(--admin-text);
    cursor: pointer;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 10px;
    overflow: hidden;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.portal-admin .qr-studio-step-button:hover,
.portal-admin .qr-studio-step-button:focus-visible,
.portal-admin .qr-studio-step-button.is-active {
    background: rgb(53 214 160 / 0.08);
    border-color: rgb(53 214 160 / 0.34);
}

.portal-admin .qr-studio-step-button.is-active {
    box-shadow: inset 3px 0 0 var(--admin-green);
}

.portal-admin .qr-studio-step-button:focus-visible {
    outline: 3px solid rgb(67 168 255 / 0.5);
    outline-offset: 2px;
}

.portal-admin .qr-studio-step-nav span {
    display: grid;
    grid-row: 1 / span 2;
    width: 2rem;
    height: 2rem;
    place-items: center;
    color: #04101c;
    font-weight: 800;
    background: var(--admin-green);
    border-radius: 50%;
}

.portal-admin .qr-studio-step-button strong {
    display: block;
    min-width: 0;
    grid-column: 2;
    align-self: end;
    font-size: 0.82rem;
    line-height: 1.2;
}

.portal-admin .qr-studio-step-button small {
    display: block;
    min-width: 0;
    grid-column: 2;
    color: var(--admin-muted);
    font-size: 0.66rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.portal-admin .qr-studio-editor {
    display: flex;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    border-right: 1px solid var(--admin-line);
}

.portal-admin .qr-studio-editor-body {
    min-height: 0;
    padding: 1.25rem;
    overflow: auto;
}

.portal-admin .qr-studio-panel[hidden] {
    display: none;
}

.portal-admin .qr-studio-section {
    display: grid;
    gap: 0.8rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.portal-admin .qr-studio-section-copy {
    margin: -0.4rem 0 0.35rem;
    color: var(--admin-muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

.portal-admin .qr-studio-section legend {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.9rem;
    color: var(--admin-text);
    font-size: 0.92rem;
    font-weight: 700;
}

.portal-admin .qr-studio-section legend span {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    color: #04101c;
    background: var(--admin-green);
    border-radius: 50%;
}

.portal-admin .qr-studio-section-title {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.portal-admin .qr-studio-section-title > span {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 auto;
    place-items: center;
    color: #04101c;
    font-weight: 800;
    background: var(--admin-green);
    border-radius: 50%;
}

.portal-admin .qr-studio-section-title h3,
.portal-admin .qr-studio-section-title p {
    margin: 0;
}

.portal-admin .qr-studio-section-title p {
    margin-top: 0.25rem;
    color: var(--admin-muted);
    font-size: 0.8rem;
}

.portal-admin .qr-studio-section label:not(.qr-studio-format-option):not(.qr-studio-check) {
    display: grid;
    gap: 0.4rem;
    color: var(--admin-muted);
    font-size: 0.78rem;
    font-weight: 650;
}

.portal-admin .qr-studio-formats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.portal-admin .qr-studio-format-option {
    position: relative;
    min-width: 0;
}

.portal-admin .qr-studio-format-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.portal-admin .qr-studio-format-option span {
    display: grid;
    gap: 0.2rem;
    min-height: 64px;
    padding: 0.75rem;
    cursor: pointer;
    background: #061321;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .qr-studio-format-option small {
    color: var(--admin-muted);
}

.portal-admin .qr-studio-format-option input:checked + span {
    background: rgb(53 214 160 / 0.09);
    border-color: var(--admin-green);
    box-shadow: inset 3px 0 0 var(--admin-green);
}

.portal-admin .qr-studio-format-option input:focus-visible + span {
    outline: 3px solid rgb(67 168 255 / 0.55);
    outline-offset: 2px;
}

.portal-admin .qr-studio-colors {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.portal-admin .qr-studio-colors input[type="color"] {
    width: 100%;
    padding: 0.25rem;
}

.portal-admin .qr-studio-check {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 44px;
    color: var(--admin-text);
}

.portal-admin .qr-studio-check input {
    width: 1.2rem;
    min-height: 1.2rem;
}

.portal-admin .qr-studio-status {
    min-height: 1.4rem;
    margin: 0;
    color: var(--admin-muted);
    font-size: 0.8rem;
}

.portal-admin .qr-studio-editor-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: auto;
    padding: 0.85rem 1rem;
    background: rgb(8 24 38 / 0.96);
    border-top: 1px solid var(--admin-line);
}

.portal-admin .qr-studio-editor-actions,
.portal-admin .qr-studio-downloads {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.portal-admin .qr-studio-preview {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    min-width: 0;
    min-height: 0;
    padding: 1.1rem;
    overflow: auto;
    background:
        radial-gradient(circle at 75% 14%, rgb(53 214 160 / 0.12), transparent 36%),
        #061321;
}

.portal-admin .qr-studio-preview-shell {
    padding: 0.55rem;
    background: linear-gradient(145deg, rgb(53 214 160 / 0.08), rgb(47 139 211 / 0.06));
    border: 1px solid rgb(53 214 160 / 0.22);
    border-radius: 16px;
    box-shadow: 0 22px 60px rgb(0 0 0 / 0.2);
}

.portal-admin .qr-studio-preview-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.portal-admin .qr-studio-format-label {
    color: var(--admin-green);
    font-size: 0.78rem;
    font-weight: 700;
}

.portal-admin .qr-studio-preview-stage {
    position: relative;
    display: grid;
    height: clamp(290px, 42vh, 360px);
    min-height: 0;
    padding: 0.85rem;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, rgb(13 28 42 / 0.98), rgb(5 17 29 / 0.98));
    border: 1px solid var(--admin-line);
    border-radius: 12px;
}

.portal-admin .qr-studio-preview-stage img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 330px;
    border-radius: 12px;
    filter: drop-shadow(0 18px 28px rgb(0 0 0 / 0.34));
}

.portal-admin .qr-studio-loading {
    position: absolute;
    inset: 0;
    display: grid;
    padding: 1rem;
    place-items: center;
    color: var(--admin-muted);
    background: rgb(6 19 33 / 0.88);
}

.portal-admin .qr-studio-loading[hidden] {
    display: none;
}

.portal-admin .qr-studio-analytics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .qr-studio-export-panel {
    gap: 1.1rem;
}

.portal-admin .qr-studio-analytics div {
    display: grid;
    gap: 0.15rem;
    padding: 0.8rem;
}

.portal-admin .qr-studio-analytics div + div {
    border-left: 1px solid var(--admin-line);
}

.portal-admin .qr-studio-analytics strong {
    color: var(--admin-text);
    font-size: 1.25rem;
}

.portal-admin .qr-studio-analytics span,
.portal-admin .qr-studio-raw p {
    color: var(--admin-muted);
    font-size: 0.72rem;
}

.portal-admin .qr-studio-raw {
    padding-top: 0.9rem;
    border-top: 1px solid var(--admin-line);
}

.portal-admin .qr-studio-raw summary {
    min-height: 44px;
    color: var(--admin-text);
    cursor: pointer;
}

.portal-admin .qr-studio-raw div {
    display: flex;
    gap: 1rem;
}

.portal-admin .qr-studio-raw a {
    color: var(--admin-green);
}

@media (max-width: 1100px) {
    .portal-admin .qr-studio-layout {
        grid-template-columns: minmax(330px, 1fr) 340px;
    }

    .portal-admin .qr-studio-step-nav {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(4, minmax(145px, 1fr));
        overflow-x: auto;
        padding: 0.75rem 1rem;
        border-right: 0;
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .qr-studio-step-button {
        min-width: 145px;
    }
}

@media (max-width: 760px) {
    .portal-admin .qr-studio-card {
        width: 100vw;
        max-height: 100dvh;
        border-radius: 0;
    }

    .portal-admin .qr-studio-head {
        padding: 1rem;
    }

    .portal-admin .qr-studio-layout {
        grid-template-columns: 1fr;
        max-height: calc(100dvh - 92px);
        overflow: auto;
    }

    .portal-admin .qr-studio-step-nav {
        grid-column: auto;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.3rem;
        overflow-x: visible;
        padding: 0.55rem;
    }

    .portal-admin .qr-studio-step-button {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        min-width: 0;
        min-height: 62px;
        gap: 0.25rem;
        justify-items: center;
        padding: 0.45rem 0.25rem;
        text-align: center;
    }

    .portal-admin .qr-studio-step-button.is-active {
        box-shadow: inset 0 -3px 0 var(--admin-green);
    }

    .portal-admin .qr-studio-step-nav span {
        grid-row: auto;
        width: 1.65rem;
        height: 1.65rem;
        font-size: 0.76rem;
    }

    .portal-admin .qr-studio-step-button strong {
        grid-column: auto;
        align-self: auto;
        overflow: hidden;
        max-width: 100%;
        font-size: 0.68rem;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .portal-admin .qr-studio-step-button small {
        display: none;
        grid-column: auto;
    }

    .portal-admin .qr-studio-editor {
        border-right: 0;
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .qr-studio-editor-body {
        padding: 1rem;
        overflow: visible;
    }

    .portal-admin .qr-studio-editor-footer {
        position: sticky;
        bottom: 0;
        z-index: 2;
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-admin .qr-studio-editor-actions {
        width: 100%;
    }

    .portal-admin .qr-studio-editor-actions .app-btn {
        flex: 1 1 7rem;
    }

    .portal-admin .qr-studio-preview {
        position: static;
        padding: 1rem;
    }

    .portal-admin .qr-studio-preview-stage {
        height: 310px;
    }

    .portal-admin .qr-studio-downloads .app-btn {
        flex: 1 1 9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-admin .qr-studio-step-button,
    .portal-admin .qr-studio-preview-stage img {
        transition: none;
    }
}

@media (max-width: 480px) {
    .portal-admin .qr-studio-head p {
        display: none;
    }

    .portal-admin .qr-studio-formats,
    .portal-admin .qr-studio-colors {
        grid-template-columns: 1fr;
    }

    .portal-admin .qr-studio-analytics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portal-admin .qr-studio-analytics div:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--admin-line);
    }

    .portal-admin .qr-studio-analytics div:nth-child(4) {
        border-top: 1px solid var(--admin-line);
    }
}

.portal-admin .event-live-readiness.has-issues {
    border-color: color-mix(in srgb, var(--admin-warning) 55%, transparent);
    background: color-mix(in srgb, var(--admin-warning) 7%, var(--admin-panel));
}

.portal-admin .event-live-readiness.is-ready {
    background: color-mix(in srgb, var(--admin-green) 8%, var(--admin-panel));
}

.portal-admin .event-live-readiness-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.portal-admin .event-live-readiness-head > div {
    display: grid;
    gap: 0.2rem;
}

.portal-admin .event-live-readiness-kicker {
    color: var(--admin-green);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-admin .event-live-readiness-head strong {
    color: var(--admin-text);
    font-size: 1rem;
}

.portal-admin .event-live-readiness-summary {
    padding: 0.42rem 0.65rem;
    color: var(--admin-text);
    font-size: 0.75rem;
    font-weight: 800;
    background: rgb(255 255 255 / 0.04);
    border: 1px solid var(--admin-line);
    border-radius: 999px;
}

.portal-admin .event-live-readiness.has-issues .event-live-readiness-summary {
    color: var(--admin-warning);
    border-color: color-mix(in srgb, var(--admin-warning) 50%, transparent);
}

.portal-admin .event-live-readiness.is-ready .event-live-readiness-summary {
    color: #83e8c2;
    border-color: color-mix(in srgb, var(--admin-green) 55%, transparent);
}

.portal-admin .event-live-readiness > p {
    margin: 0;
    color: var(--admin-muted);
    font-size: 0.82rem;
}

.portal-admin .event-live-readiness-list {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-admin .event-live-readiness-action {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    min-height: 44px;
    padding: 0.55rem 0.7rem;
    color: var(--admin-text);
    text-align: left;
    background: rgb(4 16 28 / 0.64);
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}

.portal-admin .event-live-readiness-action:hover,
.portal-admin .event-live-readiness-action:focus-visible {
    color: var(--admin-text);
    background: rgb(245 196 81 / 0.09);
    border-color: color-mix(in srgb, var(--admin-warning) 60%, transparent);
}

.portal-admin .event-live-readiness-state {
    color: var(--admin-warning);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.portal-admin .event-live-readiness-complete {
    min-height: 44px;
    padding: 0.7rem;
    color: #a9f3d7;
    background: rgb(53 214 160 / 0.08);
    border: 1px solid rgb(53 214 160 / 0.24);
    border-radius: 9px;
}

.portal-admin [data-live-invalid="true"] {
    border-color: var(--admin-warning) !important;
    box-shadow: 0 0 0 3px rgb(245 196 81 / 0.12) !important;
}

.portal-admin .event-edit-status:not(:empty) {
    margin: 0.75rem 0 0;
    padding: 0.75rem;
    color: var(--admin-warning);
    background: rgb(245 196 81 / 0.08);
    border: 1px solid rgb(245 196 81 / 0.25);
    border-radius: 9px;
}

@media (max-width: 760px) {
    .portal-admin .event-live-readiness-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-admin .event-live-readiness-summary {
        white-space: normal;
    }

    .portal-admin .event-live-readiness-action {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
}

@media (max-width: 440px) {
    .portal-admin .workspace-dashboard-context {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.4rem;
    }

    .portal-admin .workspace-dashboard-update-status {
        padding-left: 0;
        border-left: 0;
    }

    .portal-admin .workspace-dashboard-head-actions .app-btn {
        flex: 1 1 100%;
    }

    .portal-admin .workspace-event-stage {
        padding: 1.05rem;
    }

    .portal-admin .workspace-event-stage-topline {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.35rem;
    }

    .portal-admin .workspace-event-stage-metrics {
        grid-template-columns: 1fr;
    }

    .portal-admin .workspace-event-stage-metrics span,
    .portal-admin .workspace-event-stage-metrics span:last-child {
        border-right: 0;
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .workspace-event-stage-metrics span:last-child {
        border-bottom: 0;
    }

    .portal-admin .workspace-dashboard-empty {
        grid-template-columns: 1fr;
    }

    .portal-admin .workspace-dashboard-empty .app-btn {
        grid-column: 1;
    }
}

/* Workspace events navigation and calendar readability */
.portal-admin .admin-nav-group-toggle .admin-nav-arrow {
    margin-left: auto;
    color: var(--admin-muted);
    font-size: 0.7rem;
}

.portal-admin .workspace-calendar-shell {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.portal-admin .workspace-calendar-shell > *,
.portal-admin .calendar-view-panel,
.portal-admin .calendar-command-card,
.portal-admin .calendar-month-card {
    min-width: 0;
}

.portal-admin .calendar-command-card,
.portal-admin .calendar-month-card {
    padding: clamp(1rem, 2vw, 1.4rem);
    background: linear-gradient(145deg, rgb(53 214 160 / 0.04), transparent 58%), var(--admin-panel);
    border-color: var(--admin-line);
}

.portal-admin .calendar-command-card .page-toolbar {
    align-items: flex-end;
}

.portal-admin .calendar-command-card .page-toolbar h2 {
    margin: 0.2rem 0 0.35rem;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
}

.portal-admin .calendar-command-card .page-toolbar p,
.portal-admin #calendar-status {
    color: var(--admin-muted);
    font-size: 0.88rem;
}

.portal-admin .calendar-toolbar-actions .app-btn {
    min-height: var(--uiux-control-h);
    padding-inline: 0.7rem;
}

.portal-admin .calendar-view-switcher {
    display: flex;
    gap: 0.35rem;
    width: fit-content;
    max-width: 100%;
    margin-top: 1rem;
    padding: 0.25rem;
    overflow-x: auto;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    background: var(--admin-canvas-deep);
    scroll-snap-type: x proximity;
}

.portal-admin .calendar-view-button {
    flex: 0 0 auto;
    min-width: 94px;
    min-height: var(--uiux-control-h);
    padding: 0.45rem 0.75rem;
    color: var(--admin-muted);
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
    scroll-snap-align: start;
}

.portal-admin .calendar-view-button:is(:hover, :focus-visible),
.portal-admin .calendar-view-button.active {
    color: var(--admin-text);
    border-color: var(--admin-line-strong);
    background: rgb(53 214 160 / 0.12);
}

.portal-admin .calendar-view-panel[hidden] {
    display: none !important;
}

.portal-admin .modal-card-body {
    min-width: 0;
    min-height: 0;
}

.portal-admin .calendar-period-summary,
.portal-admin .calendar-selected-day-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.portal-admin .calendar-period-summary {
    margin-top: 0.85rem;
}

.portal-admin .calendar-period-summary h3,
.portal-admin .calendar-selected-day-head h3 {
    margin: 0;
    text-transform: capitalize;
}

.portal-admin .calendar-selected-day {
    min-width: 0;
    padding: clamp(1rem, 2vw, 1.4rem);
    border-color: var(--admin-line);
}

.portal-admin .workspace-calendar-scroll {
    display: block;
    min-width: 0;
    max-width: 100%;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-color: var(--admin-line-strong) transparent;
    -webkit-overflow-scrolling: touch;
}

.portal-admin .calendar-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(150px, 1fr));
    min-width: 1050px;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    background: var(--admin-line);
}

.portal-admin .calendar-week-column {
    min-height: 300px;
    padding: 0.75rem;
    background: var(--admin-panel);
}

.portal-admin .calendar-week-column.is-today {
    background: rgb(53 214 160 / 0.07);
    box-shadow: inset 0 3px 0 var(--admin-accent);
}

.portal-admin .calendar-week-column > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    margin-bottom: 0.65rem;
    color: var(--admin-muted);
    text-transform: capitalize;
}

.portal-admin .calendar-week-column > header strong {
    color: var(--admin-text);
    font-size: 1.1rem;
}

.portal-admin .calendar-week-events,
.portal-admin .calendar-focused-events {
    display: grid;
    gap: 0.5rem;
}

.portal-admin .calendar-focused-view .event-head h3 {
    margin: 0.2rem 0 0;
    text-transform: capitalize;
}

.portal-admin .calendar-week-empty,
.portal-admin .calendar-empty-state {
    color: var(--admin-muted);
    font-size: 0.82rem;
}

.portal-admin .calendar-empty-state {
    display: grid;
    gap: 0.25rem;
    min-height: 132px;
    place-content: center;
    padding: 1rem;
    text-align: center;
    border: 1px dashed var(--admin-line-strong);
    border-radius: 10px;
}

.portal-admin .calendar-empty-state strong {
    color: var(--admin-text);
}

.portal-admin .workspace-calendar-scroll .calendar-grid {
    grid-template-columns: repeat(7, minmax(104px, 1fr));
    min-width: 760px;
    gap: 1px;
    overflow: hidden;
    background: var(--admin-line);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}

.portal-admin .workspace-calendar-scroll .calendar-weekday {
    min-height: 40px;
    padding: 0.8rem 0.65rem;
    color: var(--admin-muted);
    background: var(--admin-canvas-deep);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
}

.portal-admin .workspace-calendar-scroll .calendar-day {
    min-height: 132px;
    padding: 0.55rem;
    background: color-mix(in srgb, var(--admin-panel) 94%, var(--admin-canvas-deep));
    border: 0;
}

.portal-admin .workspace-calendar-scroll .calendar-day-empty {
    background: rgb(4 16 28 / 0.56);
    opacity: 1;
}

.portal-admin .workspace-calendar-scroll .calendar-day-number {
    color: var(--admin-text);
    font-size: 0.85rem;
}

.portal-admin .calendar-day-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
    min-height: 32px;
    padding: 0;
    color: inherit;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.portal-admin .calendar-day-summary:focus-visible,
.portal-admin .calendar-day-summary[aria-selected="true"] {
    outline: 2px solid var(--admin-accent);
    outline-offset: 2px;
    border-radius: 5px;
}

.portal-admin .calendar-day-markers {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 8px;
}

.portal-admin .calendar-day-markers i {
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: var(--admin-muted);
}

.portal-admin .calendar-day-markers i.calendar-event-active {
    background: var(--admin-accent);
}

.portal-admin .calendar-day-markers i.calendar-event-draft {
    background: var(--warning);
}

.portal-admin .calendar-day-markers i.calendar-event-planning {
    background: var(--admin-accent-2);
}

#admin-shell#admin-shell .admin-main .calendar-event-chip.calendar-event-timed,
#admin-shell#admin-shell .admin-main .calendar-event-chip.calendar-event-all-day {
    display: grid !important;
    grid-template-columns: 7px auto minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 0.3rem !important;
    width: 100% !important;
    min-height: 32px !important;
    height: auto !important;
    padding: 0.35rem 0.45rem !important;
    color: var(--admin-text) !important;
    background: rgb(4 16 28 / 0.72) !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

#admin-shell#admin-shell .admin-main .calendar-event-chip.calendar-event-all-day {
    grid-template-columns: minmax(0, 1fr) !important;
}

#admin-shell#admin-shell .admin-main .calendar-event-chip:hover,
#admin-shell#admin-shell .admin-main .calendar-event-chip:focus-visible {
    color: var(--admin-text) !important;
    background: rgb(53 214 160 / 0.1) !important;
    border-color: var(--admin-line-strong) !important;
}

.portal-admin .calendar-event-time {
    color: #b8c6d1 !important;
    font-size: 0.7rem !important;
}

.portal-admin .calendar-event-name {
    color: var(--admin-text);
}

.portal-admin .workspace-calendar-agenda-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem 0.1rem 0;
}

.portal-admin .workspace-calendar-agenda-head h3,
.portal-admin .workspace-calendar-agenda-head p {
    margin: 0;
}

.portal-admin .workspace-calendar-agenda-head h3 {
    margin-top: 0.2rem;
    color: var(--admin-text);
    font-size: 1.1rem;
}

.portal-admin .workspace-calendar-agenda-head p {
    color: var(--admin-muted);
    font-size: 0.8rem;
}

.portal-admin .calendar-list-item {
    min-height: 72px;
    color: var(--admin-text);
    background: var(--admin-panel);
    border-color: var(--admin-line);
}

/* Generic legacy admin buttons are green. Activity rows are data rows. */
#admin-shell#admin-shell .admin-main .workspace-activity-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 1rem !important;
    width: 100% !important;
    min-height: 72px !important;
    height: auto !important;
    padding: 0.75rem 0.15rem !important;
    color: var(--admin-text) !important;
    text-align: left !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--admin-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

#admin-shell#admin-shell .admin-main .workspace-activity-row:last-child {
    border-bottom: 0 !important;
}

#admin-shell#admin-shell .admin-main .workspace-activity-row:hover,
#admin-shell#admin-shell .admin-main .workspace-activity-row:focus-visible {
    color: var(--admin-text) !important;
    background: rgb(53 214 160 / 0.07) !important;
}

#admin-shell#admin-shell .admin-main .workspace-activity-row strong {
    color: var(--admin-text) !important;
}

#admin-shell#admin-shell .admin-main .workspace-activity-row small {
    color: var(--admin-muted) !important;
}

#admin-shell#admin-shell .admin-main .workspace-activity-row b {
    color: #83e8c2 !important;
}

/* Schedule rows are event data, not primary actions. Keep the surface readable and use color only for status. */
#admin-shell#admin-shell .admin-main .workspace-schedule-event {
    min-height: 72px !important;
    height: auto !important;
    padding: 0.75rem 0.8rem !important;
    color: var(--admin-text) !important;
    text-align: left !important;
    background: var(--admin-panel-raised) !important;
    border: 1px solid var(--admin-line) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event + .workspace-schedule-event {
    margin-top: 0.5rem;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event:hover,
#admin-shell#admin-shell .admin-main .workspace-schedule-event:focus-visible {
    color: var(--admin-text) !important;
    background: color-mix(in srgb, var(--admin-panel-raised) 90%, var(--admin-blue)) !important;
    border-color: color-mix(in srgb, var(--admin-blue) 48%, var(--admin-line)) !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event .workspace-schedule-copy strong {
    color: var(--admin-text) !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event .workspace-schedule-time,
#admin-shell#admin-shell .admin-main .workspace-schedule-event .workspace-schedule-copy small,
#admin-shell#admin-shell .admin-main .workspace-schedule-event .workspace-schedule-side small {
    color: var(--admin-muted) !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event-upcoming {
    background:
        linear-gradient(90deg, rgb(67 168 255 / 0.1), transparent 48%),
        var(--admin-panel-raised) !important;
    border-color: rgb(67 168 255 / 0.34) !important;
    box-shadow: inset 3px 0 0 var(--admin-blue) !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event-upcoming .ops-pill {
    color: #d8eeff !important;
    background: rgb(67 168 255 / 0.13) !important;
    border-color: rgb(67 168 255 / 0.48) !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event-active {
    box-shadow: inset 3px 0 0 var(--admin-green) !important;
}

#admin-shell#admin-shell .admin-main .workspace-schedule-event-draft {
    box-shadow: inset 3px 0 0 var(--admin-warning) !important;
}

@media (max-width: 760px) {
    .portal-admin .calendar-command-card .page-toolbar,
    .portal-admin .workspace-calendar-agenda-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-admin .calendar-toolbar-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .portal-admin .calendar-toolbar-actions .app-btn {
        width: 100%;
    }

    .portal-admin .workspace-calendar-scroll .calendar-grid {
        grid-template-columns: repeat(7, minmax(104px, 1fr)) !important;
    }

    .portal-admin .calendar-list {
        gap: 0.65rem;
        margin-top: 0;
    }

    .portal-admin .calendar-list-item {
        align-items: flex-start;
        flex-direction: column;
        min-height: 88px;
    }
}

/* Responsive reliability implementation v4.
   Real component selectors and one authoritative layout contract. */
.portal-admin {
    --admin-header-height: 72px;
    overflow-x: clip;
}

.portal-admin > .container,
.portal-admin .admin-product-shell,
.portal-admin .admin-main,
.portal-admin .admin-main > section,
.portal-admin .client-portal-card,
.portal-admin .events-summary-grid,
.portal-admin .event-card,
.portal-admin .calendar-command-card {
    min-width: 0;
    max-width: 100%;
}

.portal-admin .modal-backdrop {
    align-items: center;
    justify-content: center;
}

.portal-admin .system-data-table-card,
.portal-admin .system-data-table-wrap {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.portal-admin .system-data-table-wrap,
.portal-admin .admin-activity-log,
.portal-admin .workspace-list {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.portal-admin .event-edit-modal-card,
.portal-admin .qr-studio-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.portal-admin .event-edit-modal-card > form {
    min-height: 0;
    overflow: auto;
}

.portal-admin .event-edit-modal-card .modal-head,
.portal-admin .qr-studio-card .qr-studio-head {
    flex: 0 0 auto;
}

.portal-admin .event-edit-modal-card .event-form-actions {
    position: static;
}

.portal-admin .qr-studio-step-button > strong,
.portal-admin .qr-studio-step-button > small {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1279px) {
    .portal-admin > .container {
        width: 100%;
        padding: 0.85rem clamp(0.75rem, 2.4vw, 1.25rem) 2rem;
    }

    .portal-admin .admin-product-shell {
        display: block;
        width: 100%;
    }

    .portal-admin .admin-mobile-topbar {
        position: sticky;
        top: var(--admin-header-height);
        z-index: 65;
        display: flex;
        width: 100%;
    }

    .portal-admin .admin-sidebar {
        position: fixed;
        z-index: 1200;
        inset: var(--admin-header-height) auto 0 0;
        width: min(88vw, 320px);
        max-width: 100%;
        height: calc(100dvh - var(--admin-header-height));
        min-height: 0;
        max-height: none;
        margin: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: 0 14px 14px 0;
        transform: translateX(-105%);
        visibility: hidden;
        pointer-events: none;
        transition: transform 180ms ease, visibility 180ms ease;
    }

    .portal-admin #admin-shell.mobile-menu-open .admin-sidebar {
        transform: translateX(0);
        visibility: visible;
        pointer-events: auto;
    }

    .portal-admin .admin-mobile-menu-scrim {
        position: fixed;
        z-index: 1190;
        inset: var(--admin-header-height) 0 0;
        background: rgb(1 8 14 / 0.72);
        backdrop-filter: blur(3px);
    }

    .portal-admin .admin-main {
        width: 100%;
        margin: 0;
    }

    .portal-admin .qr-studio-card {
        width: min(70rem, calc(100vw - 1.5rem));
    }

    .portal-admin .qr-studio-layout {
        grid-template-columns: minmax(0, 1fr) minmax(18rem, 21rem);
    }

    .portal-admin .qr-studio-step-nav {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.5rem;
        width: 100%;
        padding: 0.75rem;
        overflow: visible;
        border-right: 0;
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .qr-studio-step-button {
        width: 100%;
        min-width: 0;
        min-height: 58px;
        padding: 0.55rem;
        border: 1px solid var(--admin-line);
    }

    .portal-admin .qr-studio-preview {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .portal-admin .qr-studio-preview-stage {
        height: clamp(260px, 36vh, 320px);
    }
}

@media (max-width: 1023px) {
    .portal-admin .modal-backdrop {
        align-items: stretch;
        padding: 0;
        overflow: hidden;
    }

    .portal-admin .event-edit-modal-card,
    .portal-admin #playlist-picker-modal .modal-card,
    .portal-admin .qr-studio-card {
        display: grid;
        grid-template-rows: auto minmax(0, 1fr);
        width: 100%;
        max-width: 100%;
        height: 100dvh;
        max-height: 100dvh;
        margin: 0;
        border-radius: 0;
        overflow: hidden;
    }

    .portal-admin .event-edit-modal-card .modal-head,
    .portal-admin .qr-studio-card .qr-studio-head {
        position: static;
        min-height: 64px;
        padding: 0.85rem 1rem;
        background: var(--admin-canvas-deep);
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .event-edit-modal-card > form {
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
        min-height: 0;
        padding: 0;
        overflow: hidden;
    }

    .portal-admin .event-edit-modal-card .modal-card-body,
    .portal-admin #playlist-picker-modal .modal-card-body,
    .portal-admin .qr-studio-card > .modal-card-body {
        min-height: 0;
        padding: 0.85rem;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .portal-admin .qr-studio-card .qr-studio-layout,
    .portal-admin .qr-studio-card .qr-studio-editor-body,
    .portal-admin .qr-studio-card .qr-studio-preview {
        max-height: none;
        overflow: visible;
    }

    .portal-admin .event-form-grid,
    .portal-admin .event-form-grid-two,
    .portal-admin .source-mode-grid,
    .portal-admin .event-module-grid,
    .portal-admin .event-datetime-parts {
        grid-template-columns: 1fr !important;
    }

    .portal-admin .event-edit-modal-card .event-form-actions {
        z-index: 2;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 0;
        padding: 0.75rem 0.85rem max(0.75rem, env(safe-area-inset-bottom));
        background: var(--admin-canvas-deep);
        border-top: 1px solid var(--admin-line);
    }

    .portal-admin .event-edit-modal-card .event-edit-status {
        grid-column: 1 / -1;
        margin: 0;
    }

    .portal-admin .event-edit-modal-card .event-form-actions button {
        width: 100%;
        min-height: 48px;
    }

    .portal-admin .calendar-command-card .page-toolbar {
        align-items: stretch;
    }

    .portal-admin .calendar-toolbar-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
    }

    .portal-admin .calendar-toolbar-actions #calendar-sync-now {
        grid-column: 1 / -1;
    }

    .portal-admin .calendar-view-switcher {
        width: 100%;
    }

    .portal-admin .calendar-view-button {
        flex: 1 0 92px;
    }

    .portal-admin .calendar-list-item {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.75rem;
        width: 100%;
    }
}

@media (max-width: 760px) {
    .portal-admin {
        --admin-header-height: 64px;
    }

    .portal-admin .topbar {
        min-height: var(--admin-header-height);
        padding-inline: 0.75rem;
    }

    .portal-admin .topbar .brand-logo {
        width: clamp(8.5rem, 42vw, 11rem);
    }

    .portal-admin .app-current-user {
        max-width: min(12.5rem, 48vw);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .portal-admin > .container {
        padding: 0.65rem 0.65rem calc(1.25rem + env(safe-area-inset-bottom));
    }

    .portal-admin .admin-mobile-topbar {
        top: var(--admin-header-height);
        gap: 0.5rem;
        padding: 0.55rem 0;
    }

    .portal-admin .admin-mobile-topbar > strong {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .portal-admin .page-toolbar,
    .portal-admin .client-page-hero,
    .portal-admin .client-dashboard-hero,
    .portal-admin .event-card-head,
    .portal-admin .event-card-actions,
    .portal-admin .calendar-toolbar-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-admin .page-toolbar .app-btn,
    .portal-admin .event-card-actions .app-btn,
    .portal-admin .calendar-toolbar-actions .app-btn {
        width: 100%;
        min-height: 44px;
    }

    .portal-admin .client-filter-bar {
        display: flex;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        gap: 0.5rem;
        padding-bottom: 0.25rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    .portal-admin .client-filter-bar > * {
        flex: 0 0 auto;
        min-height: 42px;
        scroll-snap-align: start;
    }

    .portal-admin .events-summary-grid,
    .portal-admin .event-form-grid,
    .portal-admin .event-form-grid-two,
    .portal-admin .source-mode-grid,
    .portal-admin .event-module-grid,
    .portal-admin .event-datetime-parts,
    .portal-admin .workspace-dashboard-stats,
    .portal-admin .workspace-settings-grid {
        grid-template-columns: 1fr !important;
    }

    .portal-admin .event-card,
    .portal-admin .event-form-section,
    .portal-admin .client-portal-card {
        padding: 1rem;
    }

    .portal-admin .calendar-list-item {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 0.9rem;
    }

    .portal-admin .event-edit-modal-card .modal-head h3,
    .portal-admin .qr-studio-card .qr-studio-head h2 {
        font-size: 1.1rem;
    }

    .portal-admin .qr-studio-head p {
        display: none;
    }

    .portal-admin .qr-studio-workspace,
    .portal-admin .qr-studio-layout {
        min-height: 0;
    }

    .portal-admin .qr-studio-workspace {
        padding: 0 !important;
    }

    .portal-admin .qr-studio-layout {
        display: grid;
        grid-template-columns: 1fr;
        max-height: none;
        overflow: visible;
    }

    .portal-admin .qr-studio-step-nav {
        position: sticky;
        top: 0;
        z-index: 4;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.4rem;
        padding: 0.55rem;
        background: var(--admin-canvas-deep);
    }

    .portal-admin .qr-studio-step-button {
        grid-template-columns: 1.7rem minmax(0, 1fr);
        grid-template-rows: auto auto;
        min-height: 52px;
        justify-items: start;
        gap: 0.05rem 0.5rem;
        padding: 0.45rem 0.55rem;
        text-align: left;
    }

    .portal-admin .qr-studio-step-nav span {
        grid-row: 1 / span 2;
        width: 1.7rem;
        height: 1.7rem;
    }

    .portal-admin .qr-studio-step-button strong,
    .portal-admin .qr-studio-step-button small {
        display: block;
        grid-column: 2;
        max-width: 100%;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
    }

    .portal-admin .qr-studio-step-button strong {
        font-size: 0.76rem;
    }

    .portal-admin .qr-studio-step-button small {
        font-size: 0.62rem;
    }

    .portal-admin .qr-studio-editor {
        border: 0;
        border-bottom: 1px solid var(--admin-line);
    }

    .portal-admin .qr-studio-editor-body {
        padding: 0.85rem;
        overflow: visible;
    }

    .portal-admin .qr-studio-editor-footer {
        position: static;
        align-items: stretch;
        flex-direction: column;
        padding: 0.75rem 0.85rem max(0.75rem, env(safe-area-inset-bottom));
    }

    .portal-admin .qr-studio-editor-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .portal-admin .qr-studio-editor-actions .app-btn {
        width: 100%;
        min-height: 44px;
    }

    .portal-admin .qr-studio-preview {
        max-width: 100%;
        padding: 0.85rem;
    }

    .portal-admin .qr-studio-preview-stage {
        height: clamp(250px, 42vh, 310px);
    }

    .portal-admin .qr-studio-preview-stage img {
        max-height: 280px;
    }
}

@media (max-width: 420px) {
    .portal-admin .qr-studio-step-button small {
        display: none;
    }

    .portal-admin .qr-studio-step-button {
        grid-template-rows: auto;
    }

    .portal-admin .qr-studio-step-nav span {
        grid-row: auto;
    }

    .portal-admin .qr-studio-formats,
    .portal-admin .qr-studio-colors,
    .portal-admin .qr-studio-editor-actions {
        grid-template-columns: 1fr;
    }
}

/* Mobile calendar compact controls */
@media (max-width: 760px) {
    .portal-admin .client-events-header {
        align-items: flex-start;
    }

    .portal-admin .client-events-header > .app-btn {
        width: auto !important;
        min-height: var(--uiux-control-h-touch);
        justify-self: flex-start;
        padding-inline: 0.8rem;
    }

    .portal-admin .client-filter-bar .app-btn {
        flex: 0 0 auto;
        width: auto !important;
        min-height: var(--uiux-control-h-touch);
        padding-inline: 0.75rem;
    }

    .portal-admin .calendar-command-card .page-toolbar {
        align-items: flex-start;
    }

    .portal-admin .calendar-toolbar-actions {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.4rem;
        width: 100%;
        max-width: 100%;
        padding-bottom: 0.2rem;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .portal-admin .calendar-toolbar-actions::-webkit-scrollbar {
        display: none;
    }

    .portal-admin .calendar-toolbar-actions #calendar-sync-now {
        grid-column: auto;
    }

    .portal-admin .calendar-toolbar-actions .app-btn {
        flex: 0 0 auto;
        width: auto !important;
        min-height: var(--uiux-control-h-touch);
        padding-inline: 0.75rem;
        scroll-snap-align: start;
    }

    .portal-admin .calendar-view-switcher {
        width: fit-content;
        max-width: 100%;
        margin-top: 0.65rem;
    }

    .portal-admin .calendar-view-button {
        flex: 0 0 auto;
        min-width: 0;
        min-height: var(--uiux-control-h-touch);
        padding: 0.55rem 0.75rem;
    }
}

/* Mobile month calendar: full week without page overflow */
@media (max-width: 760px) {
    .portal-admin .workspace-calendar-scroll {
        overflow-x: hidden;
    }

    .portal-admin .workspace-calendar-scroll .calendar-grid {
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        width: 100%;
        min-width: 100% !important;
    }

    .portal-admin .workspace-calendar-scroll .calendar-weekday {
        min-width: 0;
        min-height: 32px;
        padding: 0.45rem 0.1rem;
        overflow: hidden;
        font-size: 0.62rem;
        letter-spacing: 0.02em;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .portal-admin .workspace-calendar-scroll .calendar-day {
        min-width: 0;
        min-height: 44px;
        padding: 0;
        overflow: hidden;
    }

    .portal-admin .calendar-day-summary {
        min-width: 0;
        min-height: 44px;
        flex-direction: column;
        justify-content: center;
        gap: 0.2rem;
        padding: 0.35rem 0.15rem;
    }

    .portal-admin .workspace-calendar-scroll .calendar-day-number {
        font-size: 0.78rem;
    }

    .portal-admin .workspace-calendar-scroll .calendar-day-events {
        display: none;
    }

    .portal-admin .calendar-day-markers {
        display: flex;
    }

    .portal-admin .calendar-week-grid {
        grid-template-columns: minmax(0, 1fr);
        min-width: 0;
        gap: 0.5rem;
        overflow: visible;
        border: 0;
        background: transparent;
    }

    .portal-admin .calendar-week-column {
        min-height: 0;
        padding: 0.75rem;
        border: 1px solid var(--admin-line);
        border-radius: 10px;
    }

    .portal-admin .calendar-selected-day-head {
        align-items: flex-start;
    }

    .portal-admin .calendar-selected-day,
    .portal-admin .calendar-focused-view,
    .portal-admin .calendar-list-item {
        width: 100%;
        min-width: 0;
    }
}

/* Automatic refresh feedback and safe manual fallback */
.portal-admin .data-refresh-feedback,
.portal-admin .workspace-dashboard-context {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.portal-admin [data-refresh-state] {
    color: var(--admin-muted);
    font-size: 0.75rem;
}

.portal-admin [data-refresh-state][data-state="offline"],
.portal-admin [data-refresh-state][data-state="stale"] {
    color: #d6b26e;
}

.portal-admin [data-refresh-state][data-state="error"] {
    color: #e58b98;
}

.portal-admin .data-refresh-retry {
    min-height: 30px;
    padding: 0.25rem 0.65rem;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    background: transparent;
    color: var(--admin-text);
    font: inherit;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
}

.portal-admin .data-refresh-retry:hover,
.portal-admin .data-refresh-retry:focus-visible {
    border-color: var(--admin-accent);
    color: var(--admin-accent);
}
