﻿.funky-error-wrapper {
    max-width: 600px;
    margin: 0 auto;
    padding: 40px;
    border-radius: 20px;
    text-align: center;
}

.funky-emoji {
    font-size: 4rem;
    margin-bottom: 20px;
}

.funky-error-wrapper h2 {
    font-size: 1.75rem;
    margin-bottom: 15px;
    color: #222;
}

.funky-error-wrapper p {
    font-size: 1.1rem;
    color: #444;
}

.content-with-mobile-menu {
    padding-bottom: 16px;
    padding-top: 16px;
}

@media (max-width: 959.98px) {
    .content-with-mobile-menu {
        padding-bottom: calc(80px + env(safe-area-inset-bottom));
    }
}

.skeleton-overlay {
    position: absolute;
    width: 100%;
    transition: opacity 250ms ease, max-height 250ms ease, margin-bottom 250ms ease;
    overflow: hidden;
    opacity: 1;
    z-index:1001;
    left:0px;
}

.skeleton-content {
    padding: 0 1rem;
    height:100%;
}

.fade-in {
    opacity: 1;
    pointer-events: auto;
}

.fade-out {
    opacity: 0;
    pointer-events: none;
}

.mud-drawer-content {
    border-radius: var(--mud-default-borderradius) !important;
    background: linear-gradient(#fff, #f0f1f3);
    box-shadow: -5px -5px 8px -4px rgba(0, 0, 0, .15) !important;
}

@media (max-width: 959.98px) {
    .no-padding-sm {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

.bottom-nav-selected {
    background-color: var(--wa-color-yellow-95);
    border-radius:10px;
}

.bottom-nav-item {
    color: var(--wa-color-yellow-60);
}

.mud-nav-item .mud-icon-root.mud-svg-icon {
    fill: var(--wa-color-yellow-60)!important;
}

.mud-list-item-clickable {
    color: var(--wa-color-yellow-60) !important;
}

.mud-avatar-filled {
    color: var(--wa-color-yellow-60) !important;
}

.bottom-nav-text {
    color: var(--wa-color-yellow-60)!important;
}

.event-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(var(--min-column-size, 20ch), 100%), 1fr));
}

@media (max-width: 600px) {
    .event-grid {
        grid-template-columns: 100%;
    }
}

wa-card {
    border-width: 2px;
    border-color: rgba(128, 128, 128, 0.2)!important;
    border-radius: 10px;
    /*box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important;*/
    max-width:60ch;
}

@media (max-width: 600px) {
    wa-card {
        min-width:100%;
    }
}

wa-card::part(body) {
    padding: 24px!important;
}

wa-card .form-control{
    padding: 15px 20px 15px 20px;
    text-align:start!important;
}

.bg-yellow-soft {
    background: linear-gradient(to bottom, #fff5cc 10%, #fffef7 90%);
}

.qr-box {
    border: 5px solid var(--wa-color-yellow-80);
}

wa-qr-code{
    --size:100%!important;
}

wa-tab[active] {
    border-bottom: 2px solid var(--wa-color-yellow-70) !important;
}

.media-carousel-image {
    max-height: calc(100vh - 60px); /* Adjust depending on button strip height */
    object-fit: contain;
}

.lg-container{
    z-index:1100;
}

.lg-toolbar {
    padding-top: 0.75rem;
    padding-right: 0.5rem;
}

.lg-icon {
    background-color: var(--wa-color-yellow-80) !important;
    text-decoration: none !important;
    box-shadow: 0 0.25rem 0 0 #26314f;
    border: solid 0.125rem #26314f !important;
    border-radius: var(--bs-border-radius-lg) !important;
    color: var(--text-color) !important;
}

    .lg-icon:hover {
        background-color: var(--wa-color-yellow-70) !important;
        box-shadow: var(--wa-shadow-offset-x-s) var(--wa-shadow-offset-y-s) var(--wa-shadow-blur-s) var(--wa-shadow-spread-s) var(--border-color) !important;
    }

.event-token-editor {
    max-width: 720px;
}

/* --- Layout wrappers --- */
.token-group {
    display: block; /* contains the input + collapsed button */
}

.token-input {
    flex: 1 1 auto;
}

    /* --- Input styling / attach look --- */
    .token-input::part(input),
    .token-input::part(root) {
        border-top-right-radius: 10px !important;
        border-bottom-right-radius: 10px !important;
    }

    .token-input::part(input) {
        padding-right: 0;
    }

/* --- Primary action button inside suffix (desktop) --- */
.token-primary-btn {
    padding: 0 14px;
    border: 1px solid var(--wa-color-border, #d0d5dd);
    border-left: 0;
    background: var(--wa-color-primary, #1a73e8);
    color: #fff;
    font-weight: 600;
    border-top-right-radius: 999px;
    border-bottom-right-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    height: 100%;
    width: auto; /* prevent slot overflow */
    font-size: 1rem;
    margin-right: -2px;
}

    .token-primary-btn:disabled {
        opacity: 0.6;
        cursor: not-allowed;
    }

/* --- Collapsed primary button (mobile) --- */
/* Hidden by default; use strong selector to beat .wa-button defaults */
.token-group .token-primary-btn-collapsed.wa-button {
    display: none !important;
    width: 100%;
    margin-top: 8px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    padding: 10px 14px;
    height:40px;
}

/* --- Copy button in suffix --- */
.token-copy-btn {
    --wa-button-border-radius: 0;
    --wa-button-bg: var(--wa-color-surface, #fff);
    --wa-button-color: var(--wa-color-text, #111827);
    --wa-button-border-color: var(--wa-color-border, #d0d5dd);
    border-left: 0 !important;
    flex: 0 0 auto; /* don't stretch in suffix */
}

/* --- Collapse behavior: viewport-based fallback --- */
@media (max-width: 640px) {
    /* Hide suffix primary; show collapsed full-width one */
    .token-group .token-primary-btn.wa-button {
        display: none !important;
    }

    .token-group .token-primary-btn-collapsed.wa-button {
        display: inline-flex !important;
    }
}

/* --- Helper / preview text --- */
.token-helper {
    margin-top: 6px;
    font-size: .9rem;
    color: var(--wa-color-text-muted, #6b7280);
}

    .token-helper.success {
        color: #16a34a;
    }

    .token-helper.error {
        color: #dc2626;
    }

.token-preview {
    margin-top: 2px;
    opacity: .85;
    word-break: break-all;
    font-size: .85rem;
}

/* --- Minimal spinner --- */
.spinner {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff; /* uses currentColor if you prefer */
    border-radius: 50%;
    display: inline-block;
    animation: spin .7s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.drawer-back-link {
    font-weight: bold;
    opacity: 0.85;
    color: var(--wa-color-text-link);
}

    .drawer-back-link:hover {
        opacity: 1;
        text-decoration: underline;
    }

.dashboard-card {
    max-width: 60ch;
}
