/* Global dismissible app labels — compact full-width top overlay; solid fill, no chrome. */

.app-label-host {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 400;
    width: 100%;
    pointer-events: none;
    padding-top: env(safe-area-inset-top, 0px);
}

.app-label-host[hidden],
.app-label-host:not(.is-visible) {
    display: none !important;
}

.app-label {
    --app-label-bg: #5a6570;
    --app-label-fg: #f4f6f7;
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: 0.35rem 0.5rem;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0.12rem 0.2rem 0.12rem 0.75rem;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: var(--app-label-bg);
    color: var(--app-label-fg);
    font-family: var(--font-sans);
    animation: app-label-in 0.18s ease-out;
}

@keyframes app-label-in {
    from {
        opacity: 0;
        transform: translateY(-100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Same muted solid family — slight shifts, nothing loud */
.app-label--info {
    --app-label-bg: #5a6570;
}

.app-label--success {
    --app-label-bg: #4f6b5c;
}

.app-label--warning {
    --app-label-bg: #6b6358;
}

.app-label--error {
    --app-label-bg: #6b5558;
}

.app-label__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.7rem;
}

.app-label__text {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--app-label-fg);
}

.app-label__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 0.65rem;
    margin: 0;
}

.app-label__action {
    appearance: none;
    border: none;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 0.6875rem;
    font-weight: 700;
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    touch-action: manipulation;
    white-space: nowrap;
}

.app-label__action:hover {
    opacity: 0.88;
}

.app-label__close {
    flex: 0 0 auto;
    width: 28px;
    height: 22px;
    margin: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: color-mix(in srgb, var(--app-label-fg) 78%, transparent);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    touch-action: manipulation;
}

.app-label__close:hover {
    background: color-mix(in srgb, #ffffff 12%, transparent);
    color: #ffffff;
}

.app-label__close:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 1px;
}

@media (max-width: 600px) {
    .app-label {
        padding: 0.1rem 0.15rem 0.1rem 0.65rem;
    }

    .app-label__text,
    .app-label__action {
        font-size: 0.65rem;
    }
}

body.guest-mode .guest-banner {
    display: none !important;
}
