:root {
    --brand-primary: #335c67;
    --brand-primary-hover: #284850;
    --brand-accent: #335c67;
    --brand-accent-hover: #284850;
    --surface-base: #f5f7fb;
    --surface-card: #ffffff;
    --surface-muted: #eef3f6;
    --text-strong: #17212b;
    --text-muted: #5f6b7a;
    --border-soft: rgba(51, 92, 103, 0.14);
    --success-color: #1f9d74;
    --warning-color: #d9901a;
    --danger-color: #c64646;
    --info-color: #3578e5;
    --shadow-soft: 0 18px 50px rgba(23, 33, 43, 0.08);
    --shadow-card: 0 12px 30px rgba(23, 33, 43, 0.08);
    --radius-sm: 0.75rem;
    --radius-md: 1rem;
    --radius-lg: 1.5rem;
    --radius-pill: 999px;
    --content-width: 1320px;
    --motion-fast: 160ms;
    --motion-normal: 240ms;
    --motion-slow: 420ms;
}

.text-tertiary {
    color: var(--mud-palette-tertiary);
}

.text-secondary {
    color: var(--mud-palette-text-secondary);
}

.gap-3 {
    gap: 12px !important;
}

.gap-5 {
    gap: 20px !important;
}

.min-h-300 {
    min-height: 300px;
}

.w-350 {
    width: 350px;
}

.h-none {
    height: auto !important;
}

.max-width-100 {
    max-width: 100%;
}

.h-fit {
    height: fit-content;
}

.public-layout .festival-sponsored-box .festival-featured-tile {
    position: relative;
    display: flex;
    min-height: 14rem;
    align-items: stretch;
    justify-content: stretch;
    padding: 0.7rem;
}

.public-layout .festival-featured-tile__media {
    position: relative;
    display: grid;
    width: 100%;
    min-width: 0;
    min-height: 12rem;
    place-items: center;
    overflow: hidden;
    border-radius: var(--radius-md);
    background:
        linear-gradient(145deg, rgba(51, 92, 103, 0.16), rgba(255, 131, 77, 0.14)),
        var(--surface-muted);
}

.public-layout .festival-featured-tile__media::after {
    position: absolute;
    inset: auto 0 0;
    height: 46%;
    background: linear-gradient(transparent, rgba(23, 33, 43, 0.58));
    content: "";
    pointer-events: none;
}

.public-layout .festival-featured-tile__media img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 12rem;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.public-layout .festival-featured-tile__fallback {
    position: absolute;
    z-index: 0;
    max-width: calc(100% - 1.5rem);
    color: var(--brand-primary);
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
    text-align: center;
}

.public-layout .festival-sponsored-box .btn-view-festival {
    top: auto;
    right: 1.1rem;
    bottom: 1.1rem;
    left: 1.1rem;
    width: calc(100% - 2.2rem);
    min-height: 2.75rem;
    margin: 0;
    transform: none !important;
}

.public-layout .festival-sponsored-box .btn-view-festival:hover,
.public-layout .festival-sponsored-box .btn-view-festival:focus-visible {
    transform: translateY(-2px) !important;
}

.public-layout .home-hero.festival-header {
    height: auto;
    min-width: 0;
}

.public-layout .home-hero__content,
.public-layout .home-hero__copy,
.public-layout .home-hero h1 {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Shared mobile navigation and dialog safety overrides. Keep these last so
   legacy responsive rules cannot leave a desktop header in mobile mode. */
.page-usage-guide {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    width: min(100% - 2rem, var(--content-width));
    margin: 0.85rem auto 1.1rem;
    padding: 0.8rem 1rem;
    border: 1px solid rgba(51, 92, 103, 0.14);
    border-inline-start: 4px solid var(--brand-accent);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(241, 247, 248, 0.94));
    box-shadow: 0 10px 28px rgba(23, 33, 43, 0.07);
}

.page-usage-guide__icon {
    display: grid;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    color: var(--brand-primary);
    border-radius: 0.75rem;
    background: rgba(255, 131, 77, 0.15);
}

.page-usage-guide__content {
    min-width: 0;
    flex: 1 1 auto;
}

.page-usage-guide__title {
    color: var(--brand-primary);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.25;
}

.page-usage-guide__description {
    margin-top: 0.15rem;
    color: var(--text-muted, #617080);
    font-size: 0.8rem;
    line-height: 1.55;
}

.page-usage-guide__legend {
    flex: 0 0 auto;
    align-self: flex-start;
    color: #617080;
    font-size: 0.72rem;
    white-space: nowrap;
}

.page-usage-guide__legend span,
.mud-input-label .mud-input-required,
.mud-input-label .mud-input-required *,
.mud-input-control .mud-input-required,
.mud-input-control .mud-input-required *,
.mud-input-control.mud-input-required > .mud-input-control-input-container > .mud-input-label::after {
    color: #d92d20 !important;
    font-weight: 800;
}

.public-layout > .page-usage-guide {
    margin-top: 1rem;
}

@media (max-width: 767.98px) {
    .page-usage-guide {
        align-items: flex-start;
        width: min(100% - 1rem, var(--content-width));
        margin-block: 0.65rem 0.85rem;
        padding: 0.75rem;
    }

    .page-usage-guide__legend {
        display: none;
    }
}

.project-dashboard-card {
    cursor: pointer;
}

.project-dashboard-card:focus-visible,
.project-dashboard-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(23, 33, 43, 0.14);
}

.mud-dialog-container .mud-dialog {
    max-height: calc(100dvh - 1.5rem);
}

.mud-dialog-container .mud-dialog-content {
    max-height: calc(100dvh - 10rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

@media (min-width: 992px) {
    .public-layout .public-mobile-menu-button,
    .public-layout .public-brand--mobile {
        display: none !important;
    }

    .public-layout .public-desktop-nav {
        display: flex !important;
    }
}

@media (max-width: 991.98px) {
    .public-layout .public-brand--desktop,
    .public-layout .public-desktop-nav {
        display: none !important;
    }

    .public-layout .public-mobile-menu-button,
    .public-layout .public-brand--mobile {
        display: inline-flex !important;
    }

    .public-layout .public-header-row {
        min-height: 4.5rem;
        justify-content: space-between;
    }

    .public-layout .public-mobile-nav {
        max-height: calc(100dvh - 5.5rem);
        overflow-y: auto;
        padding-bottom: 2rem;
    }

    .main-layout .mud-appbar .mud-icon-button {
        flex: 0 0 auto;
    }

    .main-layout .main-drawer {
        max-width: min(88vw, 24rem);
    }
}

@media (max-width: 575.98px) {
    .public-layout .festival-sponsored-box .festival-featured-tile {
        min-height: 12rem;
    }

    .public-layout .festival-featured-tile__media,
    .public-layout .festival-featured-tile__media img {
        height: 10rem;
        min-height: 10rem;
    }
}

.site-page-heading {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    width: 100%;
    min-width: 0;
    margin-block: .25rem 1.15rem;
}

.site-page-heading__title,
.site-page-heading__description {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
}

.site-page-heading__title {
    margin: 0 !important;
    font-size: clamp(1.15rem, 1.6vw, 1.5rem) !important;
    line-height: 1.25 !important;
    font-weight: 800;
}

.site-page-heading__description {
    margin: 0 !important;
    color: var(--text-muted);
    font-size: clamp(.8rem, 1vw, .95rem);
    line-height: 1.5;
}

@media (max-width: 765px) {
    .festival-header {
        background-image: none;
    }
}

/* Project specification card.
   This replaces the legacy full-width tertiary/red panel with the same
   restrained card language used by the rest of the project detail page. */
.project-specification {
    margin-top: 1.5rem;
    padding: clamp(1.1rem, 3vw, 2rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 100% 0%, rgba(255, 131, 77, 0.14), transparent 18rem),
        linear-gradient(145deg, #ffffff, var(--surface-muted));
    color: var(--text-strong);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.project-specification .container {
    width: 100%;
    max-width: var(--content-width);
    padding-inline: 0;
}

.project-specification .light-title {
    margin: 0 0 1.25rem;
    padding-inline-start: .85rem;
    color: var(--brand-primary);
    border-inline-start: 4px solid var(--brand-accent);
}

.project-specification .project-detail {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
}

.submission-choice-guidance {
    border-color: rgba(53, 120, 229, 0.22);
    background: rgba(53, 120, 229, 0.06);
}

.submission-choice-guidance .mud-alert-message {
    min-width: 0;
}

.submission-choice-guidance .mud-typography {
    overflow-wrap: anywhere;
}

.project-specification .project-detail > .mud-grid-item {
    min-width: 0;
    width: auto;
    max-width: none;
    padding: 1rem;
    border: 1px solid rgba(51, 92, 103, 0.11);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.82);
}

.project-specification .project-detail h6,
.project-specification .project-detail .mud-typography-h6 {
    margin: 0 0 .45rem;
    color: var(--brand-primary);
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.35;
}

.project-specification .project-detail .mud-list {
    margin: 0 0 .9rem;
    padding: 0;
    background: transparent;
}

.project-specification .project-detail .mud-list-item {
    min-height: 1.9rem;
    padding: .2rem 0;
    color: var(--text-strong);
    overflow-wrap: anywhere;
}

.project-specification .project-detail .mud-list-item-icon {
    min-width: 1.6rem;
    color: var(--brand-accent);
}

.project-specification .project-detail svg {
    color: var(--brand-accent);
}

@media (max-width: 991.98px) {
    .project-specification .project-detail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Festival detail cards: compact, predictable rhythm on every breakpoint. */
.festival-detail-page {
    --festival-gap: clamp(0.9rem, 1.8vw, 1.5rem);
    padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

/* Admin festival cards must stay inside the MudTable cell. The card contains
   a responsive grid and an action footer; Bootstrap/MudBlazor row margins
   otherwise make it wider than the table and clip the controls and image. */
.admin-festival-table,
.admin-festival-table .mud-table-container,
.admin-festival-table .mud-table,
.admin-festival-table .mud-table-row,
.admin-festival-table .mud-table-cell {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.admin-festival-table .mud-table-container {
    overflow-x: hidden;
}

.admin-festival-table .mud-table-cell {
    padding: 0 !important;
    overflow: visible;
}

.admin-festival-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 1rem;
    overflow: hidden;
    box-sizing: border-box;
}

.admin-festival-card-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 !important;
    box-sizing: border-box;
}

.admin-festival-card-grid > .mud-grid-item,
.admin-festival-card .submit-content,
.admin-festival-card .admin-festival-details-grid {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.admin-festival-card .festival-image {
    min-width: 0;
    padding-inline: .75rem !important;
}

.admin-festival-card .festival-image img {
    display: block;
    width: min(100%, 220px);
    height: 200px;
    max-width: 100%;
    object-fit: cover;
    border-radius: 10px;
}

.admin-festival-card .admin-festival-details-grid {
    margin-inline: 0 !important;
}

.admin-festival-card .admin-festival-details-grid .mud-grid-item {
    min-width: 0;
    overflow-wrap: anywhere;
}

.admin-festival-card .admin-festival-details-grid .mud-typography,
.admin-festival-card .admin-festival-details-grid .mud-link {
    overflow-wrap: anywhere;
}

.admin-festival-footer {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: .75rem 1rem;
    box-sizing: border-box;
}

.admin-festival-actions {
    min-width: 0;
    gap: .45rem;
}

.admin-festival-actions .mud-button-group,
.admin-festival-actions form,
.admin-festival-actions .mud-menu {
    min-width: 0;
    max-width: 100%;
}

.admin-festival-actions .mud-button-group {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
}

.admin-festival-actions .mud-button-root,
.admin-festival-actions .mud-menu {
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .admin-festival-card-grid > .mud-grid-item {
        padding-inline: .75rem !important;
    }

    .admin-festival-card .festival-image img {
        width: min(100%, 260px);
        height: auto;
        aspect-ratio: 1 / 1;
    }

    .admin-festival-footer,
    .admin-festival-actions {
        justify-content: center !important;
    }

    .admin-festival-actions .mud-button-group {
        justify-content: center;
    }
}

.festival-detail-layout {
    row-gap: var(--festival-gap);
    margin-inline: calc(var(--festival-gap) * -0.5);
}

.festival-detail-layout > [class*="col-"] {
    padding-inline: calc(var(--festival-gap) * .5);
}

.festival-detail-main,
.festival-detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--festival-gap);
}

.festival-detail-main > .festival-detail-content {
    display: flex;
    flex-direction: column;
    gap: var(--festival-gap);
    min-width: 0;
}

.festival-section-wrapper {
    margin: 0;
}

.festival-section-card,
.festival-detail-main > .festival-detail-content > .mud-tabs,
.festival-detail-sidebar > .mud-paper,
.festival-detail-sidebar > .mud-card {
    width: 100%;
    margin: 0 !important;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
    background: rgba(255,255,255,.94);
}

.festival-detail-main > .festival-detail-content > .mud-tabs {
    padding: clamp(.75rem, 1.8vw, 1.35rem);
}

.festival-gallery-card,
.festival-organizers-card,
.festival-reviews-card,
.festival-files-card,
.festival-venues-card {
    overflow: hidden;
}

.festival-gallery-card .gallery-tab-slider,
.festival-organizers-card .gallery-tab-slider {
    margin: 0 !important;
    padding: .25rem 0 1rem !important;
}

.festival-gallery-card .gallery-slider,
.festival-organizers-card .gallery-slider {
    display: flex;
    align-items: stretch;
    gap: clamp(.65rem, 1.5vw, 1rem);
    padding: .25rem .25rem .5rem;
}

.festival-gallery-item {
    flex: 0 0 clamp(7.5rem, 16vw, 10.5rem);
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin: 0;
    text-align: center;
}

.festival-gallery-item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 12px;
    cursor: zoom-in;
    box-shadow: 0 8px 22px rgba(30,45,55,.12);
}

.festival-gallery-item figcaption {
    color: var(--text-muted, #65727b);
    font-size: .78rem;
    line-height: 1.35;
    min-height: 2.1em;
}

.festival-organizer-card {
    min-width: 10rem;
    padding: .5rem .75rem 1rem;
    background: transparent;
}

.festival-organizer-card .mud-avatar {
    margin: 0 auto .75rem;
    box-shadow: 0 8px 20px rgba(30,45,55,.14);
}

.festival-reviews-card .mud-grid {
    align-items: center;
    row-gap: .75rem;
    margin-bottom: .25rem;
}

.festival-files-card .mud-list-item {
    min-height: 3.25rem;
    padding-inline: .75rem;
}

@media (max-width: 991.98px) {
    .festival-detail-layout {
        margin-top: .75rem;
    }

    .festival-detail-main,
    .festival-detail-sidebar {
        gap: .9rem;
    }

    .festival-detail-sidebar {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .festival-detail-sidebar > * {
        min-width: 0;
    }
}

@media (max-width: 600px) {
    .festival-detail-page {
        padding-inline: .65rem;
    }

    .festival-detail-sidebar {
        display: flex;
    }

    .festival-detail-heading {
        padding: 1rem .8rem;
    }

    .festival-detail-main > .festival-detail-content > .mud-tabs {
        padding: .5rem;
    }

    .festival-detail-main > .festival-detail-content > .mud-tabs .mud-tabs-tabbar {
        overflow-x: auto;
        white-space: nowrap;
    }

    .festival-gallery-card,
    .festival-organizers-card,
    .festival-reviews-card,
    .festival-files-card,
    .festival-venues-card {
        border-radius: 14px;
    }

    .festival-gallery-item {
        flex-basis: 7.25rem;
    }

    .festival-reviews-card .mud-grid {
        margin-inline: 0;
    }
}

.festival-lists-toolbar,
.festival-list-create,
.festival-list-card,
.festival-list-festival-card {
    min-width: 0;
    overflow: hidden;
}

.festival-list-card .mud-card-content,
.festival-list-festival-card .mud-card-content {
    min-width: 0;
}

.festival-list-card .mud-typography,
.festival-list-festival-card .mud-typography {
    overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
    .project-specification {
        margin-inline: .5rem;
        padding: .85rem;
        border-radius: var(--radius-md);
    }

    .project-specification .project-detail {
        grid-template-columns: minmax(0, 1fr);
        gap: .7rem;
    }

    .project-specification .project-detail > .mud-grid-item {
        padding: .85rem;
    }
}

/* Project detail workflow surfaces. The server controls whether the
   artist-only or festival/reviewer-only panel is rendered. */
.project-work-overview,
.project-workflow-panel {
    width: 100%;
    margin: 1.25rem 0;
    padding: clamp(1rem, 2.5vw, 1.6rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-card);
    box-shadow: var(--shadow-card);
}

.project-work-overview__heading,
.project-workflow-panel__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.project-section-kicker {
    display: block;
    margin-bottom: .25rem;
    color: var(--brand-accent);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.project-work-overview__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: .85rem;
}

.project-work-overview__grid > div {
    min-width: 0;
    padding: .85rem;
    border-radius: var(--radius-md);
    background: var(--surface-muted);
}

.project-work-overview__grid span,
.project-workflow-row__content .mud-typography-body2 {
    overflow-wrap: anywhere;
}

.project-work-overview__grid span {
    display: block;
    margin-bottom: .25rem;
    color: var(--text-muted);
    font-size: .76rem;
}

.project-work-overview__grid strong {
    display: block;
    color: var(--text-strong);
    overflow-wrap: anywhere;
}

.project-work-overview__links {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1rem;
}

.project-work-overview__links a {
    max-width: 100%;
    padding: .45rem .75rem;
    border: 1px solid var(--border-soft);
    border-radius: 999px;
    color: var(--brand-primary);
    overflow-wrap: anywhere;
    text-decoration: none;
}

.project-work-overview__links a:hover {
    border-color: var(--brand-accent);
    color: var(--brand-accent-hover);
}

.project-workflow-panel--restricted {
    border-color: rgba(217, 144, 26, .25);
}

/* Judging workspaces: keep dense review data scannable on desktop and usable on touch screens. */
.judging-workbench-dialog .mud-dialog-content {
    padding: 0;
}

.judging-workbench-dialog__content {
    background: linear-gradient(180deg, #fbfcfc 0%, #f4f8f7 100%);
}

.judging-workbench__context,
.judging-workbench__summary,
.judging-workbench__section-heading,
.judging-workbench__criterion,
.judging-workbench__decision {
    display: flex;
    align-items: center;
}

.judging-workbench__context {
    gap: .85rem;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(51, 92, 103, .16);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .75);
}

.judging-workbench__context-icon {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 2.8rem;
    place-items: center;
    border-radius: .9rem;
    background: rgba(255, 112, 82, .14);
    color: var(--brand-accent);
}

.judging-workbench__summary {
    flex-wrap: wrap;
    gap: .65rem;
    margin-bottom: 1rem;
}

.judging-workbench__summary > div {
    min-width: 8rem;
    flex: 1 1 8rem;
    padding: .7rem .85rem;
    border-radius: var(--radius-md);
    background: #fff;
    box-shadow: 0 4px 16px rgba(28, 52, 60, .06);
}

.judging-workbench__summary span,
.judging-workbench__score-total span,
.judging-result-overview span {
    display: block;
    color: var(--text-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.judging-workbench__summary strong,
.judging-workbench__score-total strong,
.judging-result-overview strong {
    display: block;
    color: var(--text-strong);
    font-size: 1.05rem;
}

.judging-workbench__body {
    max-height: min(64vh, 680px);
    overflow-y: auto;
    padding-inline: .1rem;
}

.judging-workbench__section-heading {
    justify-content: space-between;
    gap: 1rem;
    margin: .25rem 0 .7rem;
}

.judging-workbench__criterion {
    justify-content: space-between;
    gap: .75rem;
    height: 100%;
    padding: .8rem .9rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: #fff;
}

.judging-workbench__criterion .mud-rating {
    flex: 0 0 auto;
}

.judging-workbench__decision {
    align-items: stretch;
    gap: 1rem;
    padding: .85rem;
    border-radius: var(--radius-md);
    background: rgba(51, 92, 103, .06);
}

.judging-workbench__score-total {
    min-width: 9rem;
    padding: .65rem .8rem;
    border-radius: var(--radius-md);
    background: #fff;
}

.judging-workbench__score-total strong {
    color: var(--brand-primary);
    font-size: 1.65rem;
}

.judging-workbench__score-total small {
    color: var(--text-muted);
    font-size: .72rem;
}

.judging-result-page,
.festival-result-workspace {
    padding-top: 1rem;
    padding-bottom: 2rem;
}

.judging-result-hero,
.festival-result-workspace__hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: clamp(1.1rem, 3vw, 1.7rem);
    border: 1px solid rgba(51, 92, 103, .14);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(51, 92, 103, .1), rgba(255, 112, 82, .08));
}

.judging-result-hero__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
}

.judging-result-overview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-card);
}

.judging-result-overview > div {
    min-width: 0;
    padding: .8rem;
    border-radius: .7rem;
    background: var(--surface-muted);
}

.judging-result-card {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-card);
}

.judging-result-card__heading {
    margin-bottom: .5rem;
}

.judging-result-score {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    height: 100%;
    padding: .7rem .8rem;
    border: 1px solid var(--border-soft);
    border-radius: .7rem;
    background: var(--surface-muted);
}

.judging-result-note {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.festival-result-workspace__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-card);
}

.festival-result-workspace__table {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.artist-results-panel__legend {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin: -.35rem 0 .7rem;
    color: var(--text-muted);
    font-size: .78rem;
}

.artist-results-panel__dot {
    display: inline-block;
    width: .55rem;
    height: .55rem;
    margin-right: .25rem;
    border-radius: 50%;
}

.artist-results-panel__dot--progress { background: var(--brand-primary); }
.artist-results-panel__dot--result { background: #1e9b72; }

.artist-results-panel__row {
    border-left: 3px solid transparent;
}

.artist-results-panel__row--progress { border-left-color: var(--brand-primary); }
.artist-results-panel__row--result { border-left-color: #1e9b72; }

.artist-results-panel__status {
    min-width: 9rem;
}

.artist-results-panel__result-label {
    display: block;
    margin-bottom: .2rem;
}

@media (max-width: 767.98px) {
    .judging-workbench__body { max-height: none; }

    .judging-workbench__decision,
    .festival-result-workspace__actions,
    .judging-result-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .judging-result-overview { grid-template-columns: 1fr; }

    .festival-result-workspace__actions .mud-stack {
        width: 100%;
        flex-wrap: wrap;
    }

    .festival-result-workspace__actions .mud-button-root { flex: 1 1 12rem; }

    .judging-workbench__criterion { align-items: flex-start; flex-direction: column; }
    .judging-workbench__criterion .mud-rating { align-self: flex-start; }
    .artist-results-panel__status { min-width: 0; }
}

.project-workflow-list {
    display: grid;
    gap: .65rem;
}

.project-workflow-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    padding: .8rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-muted);
}

.project-workflow-row__icon {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    border-radius: 50%;
    background: rgba(51, 92, 103, .12);
    color: var(--brand-primary);
}

.project-workflow-row__content {
    min-width: 0;
}

.project-workflow-row__status {
    display: grid;
    justify-items: end;
    gap: .2rem;
    min-width: 6.5rem;
}

@media (max-width: 575.98px) {
    .project-workflow-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .project-workflow-row__status {
        grid-column: 2;
        justify-items: start;
    }
}

/* Final public festival polish: stable sizing, safe wrapping and calm spacing. */
.public-layout .home-hero {
    min-height: clamp(25rem, 62vh, 38rem);
    max-height: 42rem;
    padding: clamp(2rem, 5vw, 4.5rem);
}

.public-layout .home-hero h1 {
    max-width: min(100%, 44rem);
    font-size: clamp(2.7rem, 6vw, 5.6rem);
    line-height: .98;
    overflow-wrap: anywhere;
}

.public-layout .home-hero__content {
    flex: 1 1 0;
    min-width: 0;
}

.public-layout .home-hero__visual {
    flex: 0 1 22rem;
}

.public-layout .festival-featured-tile {
    min-width: 0;
    overflow: hidden;
    text-decoration: none;
}

.public-layout .festival-sponsored-box .festival-featured-tile__media {
    min-height: 13rem;
}

.public-layout .festival-sponsored-box .festival-featured-tile__media img {
    height: 13rem;
    object-fit: cover;
    transition: transform var(--motion-normal) ease;
}

.public-layout .festival-sponsored-box .festival-featured-tile:hover img,
.public-layout .festival-sponsored-box .festival-featured-tile:focus-visible img {
    transform: scale(1.04);
}

.public-layout .festival-filter-panel,
.public-layout .festival-detail-heading,
.public-layout .festival-detail-content,
.public-layout .festival-detail-layout > [class*="col-"] {
    min-width: 0;
}

.public-layout .festival-filter-form {
    align-items: stretch;
}

.public-layout .festival-filter-form > .mud-grid-item {
    min-width: 0;
}

.public-layout .festival-filter-form .mud-input-control,
.public-layout .festival-filter-form .mud-picker,
.public-layout .festival-filter-form .mud-select {
    min-width: 0;
    width: 100%;
}

.public-layout .festival-filter-form .mud-input-slot,
.public-layout .festival-filter-form .mud-select-input {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-layout .festival-card {
    min-width: 0;
}

.public-layout .festival-card .mud-card-content,
.public-layout .festival-card .mud-card-actions {
    min-width: 0;
}

.public-layout .festival-card h5,
.public-layout .festival-card__meta {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
}

.public-layout .festival-detail-hero {
    position: relative;
    min-height: clamp(16rem, 38vw, 28rem);
    background: var(--surface-muted);
}

.public-layout .festival-detail-hero > img:first-child {
    display: block;
    width: 100%;
    height: clamp(16rem, 38vw, 28rem);
    object-fit: cover;
}

.public-layout .festival-detail-hero .festival-cover-description {
    position: absolute;
    inset: 0;
    padding: clamp(.75rem, 3vw, 2rem);
}

.public-layout .festival-detail-heading {
    overflow-wrap: anywhere;
}

.public-layout .festival-detail-heading .mud-typography-h1 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}

.public-layout .festival-detail-layout {
    margin-inline: 0;
}

.public-layout .festival-detail-content .mud-tab-panel,
.public-layout .festival-detail-content .rich-content-section,
.public-layout .festival-detail-content .read-more-shell {
    padding: clamp(.75rem, 2vw, 1.25rem);
}

.public-layout .festival-detail-content .gallery-slider,
.public-layout .festival-detail-content .mud-grid {
    min-width: 0;
}

.public-layout .festival-detail-content .gallery-slider img {
    width: 100%;
    max-width: 100%;
    height: 10rem;
    object-fit: cover;
}

.public-layout .festival-detail-layout .festival-side-card,
.public-layout .festival-detail-layout .mud-paper,
.public-layout .festival-detail-layout .mud-card {
    min-width: 0;
    overflow: hidden;
}

.public-layout .festival-timeline .mud-timeline-item-content {
    margin-inline-start: .25rem;
    padding: .8rem 1rem .8rem 1.2rem;
}

.public-layout .festival-timeline .mud-timeline-item-opposite {
    min-width: 0;
}

.public-layout .festival-timeline .timeline-entry {
    padding-inline-start: .35rem;
}

.public-layout .festival-detail-layout .contact-list,
.public-layout .festival-detail-layout .festival-categories-list {
    padding-inline: 1rem;
}

@media (max-width: 991.98px) {
    .public-layout .home-hero {
        max-height: none;
        min-height: auto;
    }

    .public-layout .home-hero__visual {
        flex-basis: 12rem;
        width: 12rem;
        align-self: center;
    }

    .public-layout .festival-detail-layout {
        margin-top: 1rem;
    }

    .public-layout .festival-detail-hero .festival-cover-description {
        padding: .75rem;
    }
}

@media (max-width: 575.98px) {
    .public-layout .home-hero h1 {
        font-size: clamp(2.25rem, 13vw, 3.6rem);
    }

    .public-layout .festival-detail-heading {
        padding: 1rem;
    }

    .public-layout .festival-detail-content .mud-tab {
        padding-inline: .7rem;
        font-size: .78rem;
    }
}

/* Home discovery refinement: sponsored placements, resilient cards and editorial feed */
.home-hero {
    color: var(--surface-card);
}

.festival-section-intro--sponsored {
    margin-top: clamp(1rem, 3vw, 2rem);
}

.festival-sponsored-box {
    position: relative;
}

.festival-featured-tile {
    min-width: 0;
}

.festival-featured-tile__media {
    isolation: isolate;
}

.festival-sponsored-badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    max-width: calc(100% - 1.5rem);
    padding: .3rem .55rem;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: var(--radius-pill);
    background: rgba(51, 92, 103, .86);
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.festival-sponsored-badge .mud-icon-root {
    color: #ffd166;
}

.festival-sponsored-empty {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    border: 1px dashed rgba(51, 92, 103, .28);
    border-radius: var(--radius-md);
    background: linear-gradient(110deg, rgba(51, 92, 103, .06), rgba(255, 131, 77, .08));
    color: var(--text-muted);
}

.festival-sponsored-empty > .mud-icon-root {
    flex: 0 0 auto;
    color: var(--brand-accent);
    font-size: 2rem;
}

.festival-sponsored-empty > div {
    display: grid;
    flex: 1 1 auto;
    gap: .15rem;
    min-width: 0;
}

.festival-sponsored-empty strong {
    color: var(--brand-primary);
}

.festival-sponsored-empty span {
    font-size: .86rem;
    line-height: 1.5;
}

.festival-card {
    min-width: 0;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    transition: transform var(--motion-fast) ease, box-shadow var(--motion-fast) ease, border-color var(--motion-fast) ease;
}

.festival-card.bg-Gold {
    border-color: rgba(205, 157, 44, .62);
    background:
        linear-gradient(145deg, rgba(255, 220, 102, .42), rgba(255, 243, 185, .78)),
        #fff;
}

.festival-card.bg-Gold .mud-card-actions {
    background: rgba(255, 224, 111, .22);
    border-top-color: rgba(180, 129, 21, .22);
}

.festival-card:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 131, 77, .5);
    box-shadow: 0 18px 38px rgba(23, 33, 43, .14);
}

.festival-card h5 {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--brand-primary);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    line-height: 1.25;
    overflow-wrap: anywhere;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.festival-card__meta {
    display: flex;
    min-height: 2.45rem;
    align-items: flex-start;
    gap: .25rem;
    margin-bottom: 0;
    color: var(--text-muted);
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.festival-card__meta .mud-icon-root {
    flex: 0 0 auto;
    margin-top: .1rem;
    color: var(--brand-accent);
}

.festival-card__fee {
    min-height: 2.4rem;
    align-items: end;
}

.festival-card__fee .mud-typography {
    color: var(--brand-primary);
    overflow-wrap: anywhere;
}

.festival-filter-form .mud-input-control,
.festival-filter-form .mud-select,
.festival-filter-form .mud-picker {
    min-width: 0;
}

.home-news-section {
    margin-top: clamp(3rem, 7vw, 6rem);
    padding-top: clamp(1.5rem, 4vw, 2.5rem);
    border-top: 1px solid var(--border-soft);
}

.home-news-section__link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--brand-primary);
    font-size: .86rem;
    font-weight: 800;
    text-decoration: none;
}

.home-news-section__link:hover,
.home-news-section__link:focus-visible {
    color: var(--brand-accent-hover);
    text-decoration: underline;
}

.home-news-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 1rem;
}

.home-news-lead,
.home-news-item {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-card);
    box-shadow: var(--shadow-soft);
}

.home-news-lead a,
.home-news-item a {
    color: inherit;
    text-decoration: none;
}

.home-news-lead a {
    position: relative;
    display: block;
    min-height: 19rem;
}

.home-news-lead img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 19rem;
    object-fit: cover;
}

.home-news-lead__overlay {
    position: absolute;
    inset: auto 0 0;
    display: grid;
    gap: .35rem;
    padding: 1.25rem;
    background: linear-gradient(transparent, rgba(23, 33, 43, .88));
    color: #fff;
}

.home-news-kicker,
.home-news-item small {
    color: var(--brand-accent);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.home-news-lead__overlay strong {
    max-width: 38rem;
    font-size: clamp(1.2rem, 2.5vw, 2rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.home-news-read {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: .8rem;
    font-weight: 700;
}

.home-news-list {
    display: grid;
    grid-template-rows: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.home-news-item a {
    display: grid;
    grid-template-columns: minmax(6rem, 34%) minmax(0, 1fr);
    height: 100%;
}

.home-news-item img {
    width: 100%;
    height: 100%;
    min-height: 6rem;
    object-fit: cover;
}

.home-news-item a > span {
    display: grid;
    align-content: center;
    gap: .2rem;
    min-width: 0;
    padding: .8rem 1rem;
}

.home-news-item strong {
    display: -webkit-box;
    overflow: hidden;
    color: var(--brand-primary);
    font-size: .93rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.home-news-item em {
    color: var(--text-muted);
    font-size: .72rem;
    font-style: normal;
}

@media (max-width: 767.98px) {
    .festival-sponsored-empty {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .festival-sponsored-empty .mud-button-root {
        width: 100%;
    }

    .home-news-grid {
        grid-template-columns: 1fr;
    }

    .home-news-list {
        grid-template-rows: none;
    }

    .home-news-item {
        min-height: 7rem;
    }
}

/* Unified table system
   Tables keep their readable minimum width inside a scroll container instead
   of pushing cards and pages outside the viewport. Long identifiers, emails,
   URLs and translated labels are allowed to wrap safely. */
:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table, .mud-simple-table) {
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md, .75rem);
    overflow: hidden;
    background: var(--surface-card);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-container, .mud-simple-table-container) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-root, .mud-simple-table table) {
    width: 100%;
    min-width: 44rem;
    border-collapse: separate;
    border-spacing: 0;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-head .mud-table-cell, .mud-table-cell, .mud-simple-table th, .mud-simple-table td) {
    max-width: 22rem;
    padding: .7rem .85rem;
    border-bottom: 1px solid color-mix(in srgb, var(--border-soft) 78%, transparent);
    color: var(--text-strong);
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-head .mud-table-cell, .mud-simple-table th) {
    position: sticky;
    top: 0;
    z-index: 1;
    min-height: 3rem;
    background: var(--surface-subtle, #f1f5f6);
    color: var(--brand-primary, #335c67);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: none;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-row:last-child .mud-table-cell, .mud-simple-table tbody tr:last-child td) {
    border-bottom: 0;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-body .mud-table-row:nth-child(even), .mud-simple-table tbody tr:nth-child(even)) {
    background: color-mix(in srgb, var(--surface-card) 92%, var(--brand-primary) 8%);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-row:hover, .mud-simple-table tbody tr:hover) {
    background: color-mix(in srgb, var(--surface-card) 86%, var(--brand-accent, #e6a23c) 14%);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-cell > *, .mud-simple-table td > *) {
    max-width: 100%;
    min-width: 0;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-cell .mud-chip, .mud-table-cell .mud-button-root, .mud-table-cell .mud-button-group) {
    max-width: 100%;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-cell .mud-chip-content, .mud-table-cell .mud-button-label) {
    overflow-wrap: anywhere;
    white-space: normal;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-pagination, .mud-table-toolbar) {
    flex-wrap: wrap;
    min-width: 0;
    gap: .5rem;
    border-top: 1px solid var(--border-soft);
    background: var(--surface-card);
}

@media (max-width: 767.98px) {
    :where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
        :where(.mud-table-root, .mud-simple-table table) {
        min-width: 36rem;
    }

    :where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
        :where(.mud-table-head .mud-table-cell, .mud-table-cell, .mud-simple-table th, .mud-simple-table td) {
        max-width: 16rem;
        padding: .6rem .65rem;
        font-size: .82rem;
    }

    :where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
        :where(.mud-table-pagination .mud-table-pagination-information, .mud-table-pagination .mud-table-pagination-actions) {
        margin-inline: 0;
    }
}

/* Phase 3 responsive workspace contract. */
.phase3-page-shell {
    width: min(100%, var(--content-width));
    margin-inline: auto;
    min-width: 0;
}

.phase3-table-shell {
    min-width: 0;
    overflow-x: auto;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-card);
    box-shadow: var(--shadow-card);
}

.phase3-state {
    display: grid;
    min-height: 12rem;
    place-items: center;
    gap: .6rem;
    padding: 2rem 1rem;
    color: var(--text-muted);
    text-align: center;
}

.phase3-state__title {
    color: var(--text-strong);
    font-weight: 800;
}

.phase3-state__description {
    max-width: 42rem;
    line-height: 1.55;
}

.phase4-product-preview {
    border-color: rgba(51, 92, 103, .18) !important;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(241,247,248,.96));
}

.phase4-preview-placeholder {
    display: grid;
    min-height: 12rem;
    place-items: center;
    align-content: center;
    gap: .45rem;
    border: 1px dashed var(--border-soft);
    border-radius: var(--radius-md);
    color: var(--text-muted);
    background: var(--surface-muted);
}

.phase5-guide-card {
    border-color: rgba(191, 142, 42, .28) !important;
    background: linear-gradient(145deg, rgba(255, 250, 235, .96), rgba(255,255,255,.98));
}

.phase6-gold-status-card {
    border: 1px solid rgba(191, 142, 42, .3);
    background: linear-gradient(145deg, rgba(255, 250, 235, .95), rgba(255,255,255,.98));
}

.mud-dialog-container .mud-dialog {
    width: min(calc(100vw - 1.5rem), 44rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-card);
    color: var(--text-strong);
    box-shadow: 0 24px 70px rgba(23, 33, 43, .22);
}

.mud-dialog-container .mud-dialog-title {
    padding: 1.15rem 1.35rem .85rem;
    border-bottom: 1px solid var(--border-soft);
    color: var(--brand-primary);
    font-weight: 800;
}

.mud-dialog-container .mud-dialog-content {
    padding: 1.1rem 1.35rem;
    color: var(--text-strong);
}

.mud-dialog-container .mud-dialog-actions {
    gap: .55rem;
    padding: .85rem 1.35rem 1.1rem;
    border-top: 1px solid var(--border-soft);
}

.mud-dialog-container :where(.mud-input-control, .mud-select, .mud-autocomplete) {
    margin-block: .4rem;
}

.mud-dialog-container :where(.mud-input-slot, .mud-select-input) {
    color: var(--text-strong) !important;
}

.mud-dialog-container :where(.mud-input-label, .mud-input-helper-text) {
    color: var(--text-muted);
}

.mud-dialog-container :where(.mud-button-root) {
    min-height: 2.55rem;
    border-radius: .75rem;
    font-weight: 700;
}

.mud-table-container {
    min-width: 0;
    overflow: auto;
}

@media (max-width: 767.98px) {
    .mud-dialog-container .mud-dialog {
        width: calc(100vw - 1rem);
        border-radius: 1rem;
    }

    .mud-dialog-container .mud-dialog-title,
    .mud-dialog-container .mud-dialog-content,
    .mud-dialog-container .mud-dialog-actions {
        padding-inline: .9rem;
    }

    .phase3-table-shell {
        border-inline: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .phase3-page-shell {
        padding-inline: .25rem;
    }
}

/* Shared dialog/form readability contract. Dialogs use the same warm surface
   palette as cards, while labels, inputs and actions remain high contrast. */
:where(.mud-dialog-container, .mud-overlay) .mud-dialog {
    background: var(--surface-card, #fffdfa);
    color: var(--text-strong, #17212b);
    border: 1px solid var(--border-soft, #d9e1e4);
    border-radius: var(--radius-md, 14px);
    overflow: hidden;
}

:where(.mud-dialog-container, .mud-overlay) .mud-dialog-title,
:where(.mud-dialog-container, .mud-overlay) .mud-dialog-actions {
    background: linear-gradient(135deg, rgba(51, 92, 103, .10), rgba(255, 131, 77, .10));
    color: var(--text-strong, #17212b);
}

:where(.mud-dialog-container, .mud-overlay) .mud-dialog-content {
    background: var(--surface-card, #fffdfa);
    color: var(--text-strong, #17212b);
}

:where(.mud-dialog-container, .mud-overlay) .mud-input-filled,
:where(.mud-dialog-container, .mud-overlay) .mud-input.mud-input-filled,
:where(.mud-dialog-container, .mud-overlay) .mud-select .mud-input-control {
    background: rgba(51, 92, 103, .07);
    border-radius: var(--radius-sm, 10px);
}

:where(.mud-dialog-container, .mud-overlay) .mud-input-filled:hover,
:where(.mud-dialog-container, .mud-overlay) .mud-input-filled:focus-within {
    background: rgba(51, 92, 103, .12);
}

:where(.mud-dialog-container, .mud-overlay) .mud-input-label,
:where(.mud-dialog-container, .mud-overlay) .mud-input-slot,
:where(.mud-dialog-container, .mud-overlay) .mud-select-input,
:where(.mud-dialog-container, .mud-overlay) .mud-input-helper-text {
    color: var(--text-strong, #17212b) !important;
}

.wizard-navigation-buttons {
    gap: .5rem;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
}

.wizard-navigation-buttons .mud-button-root {
    min-height: 2.75rem;
    min-width: 7.25rem;
    padding-inline: 1rem;
    font-size: .9rem;
    font-weight: 700;
}

.wizard-navigation-buttons .wizard-nav-button {
    flex: 1 1 0;
}

.payment-information-card {
    min-height: 100%;
}

.settlement-guide {
    border-color: rgba(51, 92, 103, .35);
    background: rgba(51, 92, 103, .06);
}

.file-upload-field {
    min-height: 8rem;
    padding: .9rem 1rem;
    border: 1px dashed var(--brand-primary, #335c67);
    border-radius: var(--radius-sm, 10px);
    background: rgba(51, 92, 103, .06);
}

.file-upload-field__label {
    display: block;
    color: var(--text-muted, #617080);
    font-weight: 700;
    margin-bottom: .45rem;
}

.file-upload-field__name {
    display: flex;
    align-items: center;
    gap: .35rem;
    min-height: 2rem;
    color: var(--text-strong, #17212b);
    overflow-wrap: anywhere;
}

.file-upload-field__action {
    margin-top: .65rem;
}

.file-format-note {
    display: block;
    color: var(--text-muted, #617080);
    font-weight: 700;
}

.file-format-value {
    min-height: 3.25rem;
    display: flex;
    align-items: center;
    padding: .75rem 1rem;
    border: 1px solid var(--border-soft, #d9e1e4);
    border-radius: var(--radius-sm, 10px);
    background: rgba(51, 92, 103, .07);
    color: var(--text-strong, #17212b);
    font-weight: 700;
}

.compact-checkbox-grid {
    row-gap: .1rem !important;
    column-gap: .35rem !important;
}

.compact-checkbox-grid .mud-grid-item {
    padding-top: .1rem;
    padding-bottom: .1rem;
}

.compact-checkbox-grid .mud-checkbox {
    min-height: 1.8rem;
}

.mobile-release-button {
    margin-top: .25rem;
    font-weight: 700;
}

/* Apply the readability contract to every MudDialog, including dialogs that
   do not provide a custom wrapper class, and to inline form/dialog patterns. */
:where(.mud-dialog, .inline-form-dialog) {
    color: var(--text-strong, #17212b);
}

:where(.mud-dialog, .inline-form-dialog) :where(.mud-input-control, .mud-select, .mud-autocomplete, .mud-picker) {
    min-width: 0;
    margin-block: .45rem;
}

:where(.mud-dialog, .inline-form-dialog) :where(.mud-input, .mud-input-root, .mud-input-slot, .mud-select-input) {
    color: var(--text-strong, #17212b) !important;
}

:where(.mud-dialog, .inline-form-dialog) :where(.mud-input-filled, .mud-input.mud-input-filled, .mud-input-root.mud-input-filled) {
    background-color: rgba(51, 92, 103, .08) !important;
    border-radius: var(--radius-sm, 10px);
}

:where(.mud-dialog, .inline-form-dialog) :where(.mud-input-filled:hover, .mud-input.mud-input-filled:hover, .mud-input-root.mud-input-filled:hover) {
    background-color: rgba(51, 92, 103, .14) !important;
}

:where(.mud-dialog, .inline-form-dialog) .mud-input-label {
    color: var(--text-muted, #617080) !important;
    font-weight: 700;
}

:where(.mud-dialog, .inline-form-dialog) .mud-input-helper-text {
    color: var(--text-muted, #617080) !important;
}

:where(.mud-dialog, .inline-form-dialog) .mud-button-root {
    min-height: 2.6rem;
    font-weight: 700;
}

@media (max-width: 767.98px) {
.wizard-navigation-buttons {
        width: 100%;
        flex-wrap: nowrap;
    }

    .wizard-navigation-buttons .mud-button-root {
        flex: 1 1 0;
        min-width: 0;
    }
}

@media (max-width: 575.98px) {
    .festival-card .mud-card-actions {
        flex-wrap: wrap;
        gap: .55rem;
    }

    .festival-card .mud-card-actions > div,
    .festival-card .mud-card-actions .mud-button-root {
        min-width: 0;
        width: 100%;
    }

    .home-news-lead a,
    .home-news-lead img {
        min-height: 15rem;
    }
}

/* Festival browser stability: cards, filters and long content must remain usable
   when names, categories or deadlines are much longer than the demo data. */
.festival-featured-tile {
    color: inherit;
    text-decoration: none;
}

.festival-featured-tile:hover,
.festival-featured-tile:focus-visible {
    color: inherit;
    text-decoration: none;
}

.festival-featured-tile .btn-view-festival {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow-wrap: anywhere;
    text-align: center;
}

.festival-filter-heading,
.festival-results-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
}

.festival-filter-heading > *,
.festival-results-heading > * {
    min-width: 0;
}

.festival-filter-form {
    margin-top: 20px;
    font-size: 10px !important;
    align-items: stretch;
}

.festival-filter-form .mud-input-control,
.festival-filter-form .mud-picker .mud-input-control,
.festival-filter-form .mud-select,
.festival-filter-form .mud-switch {
    max-width: 100%;
}

.festival-filter-form .mud-input-slot,
.festival-filter-form .mud-select-input,
.festival-filter-form .mud-input {
    min-width: 0;
    overflow-wrap: anywhere;
}

.festival-filter-form .competition-selector .mud-input-control,
.festival-filter-form .competition-selector .mud-input,
.festival-filter-form .competition-selector .mud-input-slot {
    background: var(--surface-card) !important;
    color: var(--text-strong) !important;
}

.festival-filter-form p,
.festival-filter-form .mud-typography {
    margin: 0;
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.festival-card h5,
.festival-card p {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.festival-card .mud-card-content {
    min-width: 0;
}

.festival-card .mud-card-actions {
    flex-wrap: wrap;
}

.festival-rating-panel {
    display: grid;
    gap: 0.45rem;
    justify-items: center;
    max-width: 100%;
    padding: 0.5rem 0.75rem;
}

.festival-rating-summary,
.festival-rating-action {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.festival-rating-average {
    color: var(--text-strong);
    font-weight: 800;
}

.festival-rating-average small,
.festival-rating-votes,
.festival-rating-voted {
    color: var(--text-muted);
    font-size: 0.8rem;
}

.rich-content-section,
.festival-detail-text,
.news-desc {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.home-hero {
    min-height: clamp(34rem, 72vh, 48rem);
    padding-block: clamp(3rem, 7vw, 6rem);
}

.home-hero h1 {
    overflow: visible;
    line-height: 1.02;
    overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
    .festival-filter-heading,
    .festival-results-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-hero {
        min-height: auto;
    }
}

/* Public festival tiles and hero safety rules apply at every breakpoint. */
.public-layout .festival-sponsored-box .festival-featured-tile {
    position: relative;
    display: flex;
    min-height: 14rem;
    align-items: stretch;
    justify-content: stretch;
    padding: 0.7rem;
}

.public-layout .festival-featured-tile__media {
    position: relative;
    display: grid;
    width: 100%;
    min-width: 0;
    min-height: 12rem;
    place-items: center;
    overflow: hidden;
    border-radius: var(--radius-md);
    background:
        linear-gradient(145deg, rgba(51, 92, 103, 0.16), rgba(255, 131, 77, 0.14)),
        var(--surface-muted);
}

.public-layout .festival-featured-tile__media::after {
    position: absolute;
    inset: auto 0 0;
    height: 46%;
    background: linear-gradient(transparent, rgba(23, 33, 43, 0.58));
    content: "";
    pointer-events: none;
}

.public-layout .festival-featured-tile__media img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 12rem;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.public-layout .festival-featured-tile__fallback {
    position: absolute;
    z-index: 0;
    max-width: calc(100% - 1.5rem);
    color: var(--brand-primary);
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
    text-align: center;
}

.public-layout .festival-sponsored-box .btn-view-festival {
    top: auto;
    right: 1.1rem;
    bottom: 1.1rem;
    left: 1.1rem;
    width: calc(100% - 2.2rem);
    min-height: 2.75rem;
    margin: 0;
    transform: none !important;
}

.public-layout .festival-sponsored-box .btn-view-festival:hover,
.public-layout .festival-sponsored-box .btn-view-festival:focus-visible {
    transform: translateY(-2px) !important;
}

.public-layout .home-hero.festival-header {
    height: auto;
    min-width: 0;
}

.public-layout .home-hero__content,
.public-layout .home-hero__copy,
.public-layout .home-hero h1 {
    min-width: 0;
    overflow-wrap: anywhere;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Open Sans", "Segoe UI", sans-serif;
    background: linear-gradient(180deg, #fbfcfe 0%, #f4f7fb 100%);
    color: var(--text-strong);
    min-width: 320px;
    text-rendering: optimizeLegibility;
}

a {
    color: inherit;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.16em;
}

a:hover {
    color: var(--brand-primary-hover);
}

:focus-visible {
    outline: 3px solid rgba(255, 131, 77, 0.35);
    outline-offset: 2px;
}

.mud-button-root,
.mud-chip,
.mud-card,
.mud-paper,
.mud-alert,
.mud-input-control,
.festival-card,
.festival-sponsored-box .img-box img,
.side-menu,
.site-header,
.footer .footer-footer {
    transition: transform var(--motion-normal) ease, box-shadow var(--motion-normal) ease, background-color var(--motion-normal) ease, border-color var(--motion-normal) ease, color var(--motion-normal) ease;
}

.mud-button-root {
    border-radius: var(--radius-pill) !important;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.mud-button-root:hover:not(.mud-disabled),
.mud-chip:hover:not(.mud-disabled) {
    transform: translateY(-1px);
}

.mud-button-root:active:not(.mud-disabled),
.mud-chip:active:not(.mud-disabled) {
    transform: translateY(0);
}

/* Global form readability: keep floating labels and values on separate lines. */
:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input-filled, .mud-input.mud-input-filled, .mud-input-root.mud-input-filled) {
    min-height: 3.35rem;
}

:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input-filled .mud-input-slot, .mud-input.mud-input-filled .mud-input-slot,
        .mud-input-root.mud-input-filled .mud-input-slot, .mud-select-input) {
    min-height: 2.05rem;
    padding-top: .7rem;
    padding-bottom: .35rem;
    line-height: 1.35;
}

:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input-filled .mud-input-label, .mud-input.mud-input-filled .mud-input-label,
        .mud-input-root.mud-input-filled .mud-input-label) {
    line-height: 1.15;
    white-space: normal;
}

.wizard-navigation-buttons {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    padding: .35rem;
    border: 1px solid var(--border-soft);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 8px 22px rgba(23, 33, 43, .08);
}

.wizard-navigation-buttons .mud-button-root {
    border-radius: .75rem;
}

/* Keep calendar dialogs inside the viewport on desktop and mobile. */
.mud-picker-dialog,
.mud-picker-container,
.mud-picker-calendar-container {
    width: min(100%, 24rem);
    max-width: calc(100vw - 1rem);
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 1rem;
}

.mud-picker-dialog .mud-picker-calendar-container,
.mud-picker-dialog .mud-calendar {
    min-width: 0;
    max-width: 100%;
}

.mud-picker-calendar-container .mud-calendar-month,
.mud-picker-calendar-container .mud-calendar-table {
    width: 100%;
    table-layout: fixed;
}

.mud-picker-calendar-container .mud-calendar-day {
    min-width: 0;
}

/* Date/time pickers must never use their intrinsic desktop width.  The
   popup is constrained to the viewport and the calendar grid scales with it. */
.mud-popover.mud-picker-popover,
.mud-picker-popover,
.mud-picker-dialog,
.mud-picker-container {
    width: min(24rem, calc(100vw - 1rem)) !important;
    max-width: calc(100vw - 1rem) !important;
    min-width: 0 !important;
    box-sizing: border-box;
}

.mud-picker-popover .mud-picker-calendar-container,
.mud-picker-dialog .mud-picker-calendar-container,
.mud-picker-container .mud-picker-calendar-container,
.mud-picker-popover .mud-calendar,
.mud-picker-dialog .mud-calendar {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
}

.mud-picker-popover .mud-calendar-month,
.mud-picker-popover .mud-calendar-table,
.mud-picker-dialog .mud-calendar-month,
.mud-picker-dialog .mud-calendar-table {
    width: 100% !important;
    table-layout: fixed !important;
}

.mud-picker-popover .mud-calendar-day,
.mud-picker-dialog .mud-calendar-day {
    min-width: 0 !important;
    width: auto !important;
    padding-inline: .1rem;
}

@media (max-width: 767.98px) {
    .wizard-navigation-buttons {
        width: 100%;
        display: flex;
        flex-wrap: nowrap;
        gap: .5rem;
    }

    .wizard-navigation-buttons .mud-button-root {
        min-width: 0;
        width: 100%;
    }

    .wizard-navigation-buttons .mud-button-root {
        flex: 1 1 0;
    }

    .wizard-navigation-buttons .wizard-nav-button {
        font-size: 0;
        padding-inline: .5rem;
    }

    .wizard-navigation-buttons .wizard-nav-button .mud-icon-root {
        margin: 0;
        font-size: 1.35rem;
    }

    .mud-picker-dialog,
    .mud-picker-container,
    .mud-picker-calendar-container {
        width: calc(100vw - 1rem);
        max-height: calc(100dvh - 1rem);
    }

    .mud-picker-dialog .mud-picker-calendar-container {
        overflow-y: auto;
    }
}

/* Select, autocomplete and menu popovers share one high-contrast surface.
   This prevents inherited page backgrounds from making options unreadable. */
:where(.mud-popover, .mud-menu, .mud-list) {
    background: var(--surface-card, #ffffff) !important;
    color: var(--text-strong, #17212b);
    border: 1px solid var(--border-soft, rgba(51, 92, 103, 0.14));
}

:where(.mud-popover, .mud-menu) .mud-list-item,
:where(.mud-popover, .mud-menu) .mud-button-root {
    min-height: 2.5rem;
    color: var(--text-strong, #17212b);
}

:where(.mud-popover, .mud-menu) .mud-list-item:hover,
:where(.mud-popover, .mud-menu) .mud-list-item:focus-visible,
:where(.mud-popover, .mud-menu) .mud-button-root:hover,
:where(.mud-popover, .mud-menu) .mud-button-root:focus-visible {
    background: rgba(51, 92, 103, 0.09);
    color: var(--brand-primary-hover, #284850);
}

/* Shared content spacing and wrapping rules */
.mud-card,
.mud-paper,
.mud-alert,
.mud-expansion-panel,
.mud-dialog-content,
.mud-table-container,
.mud-simple-table-container {
    min-width: 0;
}

.mud-card-content,
.mud-card-actions,
.mud-paper,
.mud-alert,
.mud-expansion-panel-content,
.mud-dialog-content {
    overflow-wrap: anywhere;
}

.mud-card-content > .mud-typography,
.mud-paper > .mud-typography,
.mud-alert .mud-alert-message,
.mud-expansion-panel-content > .mud-typography,
.mud-dialog-content > .mud-typography {
    max-width: 100%;
    margin-block: .35rem;
    line-height: 1.65;
}

.mud-card-content > :first-child,
.mud-paper > :first-child,
.mud-dialog-content > :first-child {
    margin-top: 0;
}

.mud-card-content > :last-child,
.mud-paper > :last-child,
.mud-dialog-content > :last-child {
    margin-bottom: 0;
}

.mud-card-content p,
.mud-paper p,
.mud-alert p,
.mud-dialog-content p,
.faq-answer {
    margin: .65rem 0;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.mud-card-content ul,
.mud-card-content ol,
.mud-paper ul,
.mud-paper ol,
.mud-dialog-content ul,
.mud-dialog-content ol {
    margin-block: .75rem;
    padding-inline-start: 1.5rem;
}

.mud-card-content li,
.mud-paper li,
.mud-dialog-content li {
    margin-block: .35rem;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.mud-card-content table,
.mud-paper table,
.mud-dialog-content table {
    max-width: 100%;
    min-width: 34rem;
}

/* Project media viewer */
.project-media-viewer {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(238, 243, 246, .78));
    box-shadow: var(--shadow-card);
}

.project-not-found-card {
    max-width: 46rem;
    margin: clamp(2rem, 8vw, 6rem) auto;
    text-align: center;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(238, 243, 246, .82));
    box-shadow: var(--shadow-card);
}

.project-not-found-card .mud-card-content {
    display: grid;
    justify-items: center;
    gap: 1rem;
    padding: clamp(1.5rem, 5vw, 3rem);
}

.project-media-viewer--loading {
    padding: clamp(.75rem, 2vw, 1.5rem);
}

.project-media-viewer__header {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-soft);
    background: linear-gradient(120deg, rgba(51, 92, 103, .08), rgba(255, 131, 77, .08));
}

.project-media-viewer__content {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.project-media-block {
    min-width: 0;
    padding: clamp(.85rem, 2vw, 1.25rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .84);
}

.project-media-block__heading {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    margin-bottom: .85rem;
}

.project-media-block__heading .mud-typography {
    min-width: 0;
    overflow-wrap: anywhere;
}

.project-media-block__description {
    margin-top: .8rem;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.project-media-video,
.project-media-audio,
.project-media-document {
    display: block;
    width: 100%;
    max-width: 100%;
    border-radius: var(--radius-sm);
}

.project-media-video {
    max-height: min(70vh, 42rem);
    background: #101820;
}

.project-media-audio {
    min-height: 3.25rem;
}

.project-media-document {
    min-height: min(70vh, 48rem);
    border: 1px solid var(--border-soft);
    background: var(--surface-muted);
}

.project-image-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    gap: .85rem;
}

.project-image-gallery__item {
    display: grid;
    align-content: start;
    gap: .55rem;
    min-width: 0;
    padding: .55rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: #fff;
    color: inherit;
    text-decoration: none;
}

.project-image-gallery__item:hover {
    border-color: rgba(255, 131, 77, .55);
    box-shadow: 0 8px 20px rgba(23, 33, 43, .08);
}

.project-image-gallery__item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    border-radius: .5rem;
    background: var(--surface-muted);
}

.project-image-gallery__item span {
    padding-inline: .25rem;
    color: var(--text-muted);
    font-size: .82rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.project-media-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    max-width: 100%;
    min-height: 2.75rem;
    padding: .65rem 1rem;
    border-radius: var(--radius-pill);
    background: var(--brand-primary);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.project-media-download:hover {
    background: var(--brand-primary-hover);
    color: #fff;
}

.project-media-fallback {
    display: grid;
    place-items: center;
    gap: .65rem;
    min-height: 12rem;
    padding: 1rem;
    text-align: center;
}

.project-external-files {
    display: grid;
    gap: .65rem;
}

.project-external-file {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    color: inherit;
    text-decoration: none;
}

.project-external-file:hover {
    border-color: rgba(255, 131, 77, .55);
    background: rgba(255, 131, 77, .06);
}

.project-external-file__icon {
    display: grid;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 50%;
    background: rgba(51, 92, 103, .1);
    color: var(--brand-primary);
}

.project-external-file__body {
    display: grid;
    flex: 1 1 auto;
    min-width: 0;
    gap: .15rem;
}

.project-external-file__body strong,
.project-external-file__body small {
    overflow-wrap: anywhere;
}

.project-external-file__body small {
    color: var(--text-muted);
    line-height: 1.5;
}

.mud-chip,
.mud-badge,
.mud-button-root,
.mud-nav-link,
.mud-tab,
.mud-input-slot,
.mud-select-input {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.mud-card-header,
.mud-card-actions,
.mud-dialog-title,
.mud-dialog-actions,
.mud-expansion-panel-header {
    min-width: 0;
    gap: .65rem;
    padding-inline: clamp(.85rem, 2vw, 1.5rem);
}

.mud-card-header-content,
.mud-card-header-actions,
.mud-dialog-title .mud-typography,
.mud-expansion-panel-header .mud-typography {
    min-width: 0;
    overflow-wrap: anywhere;
}

.dashboard-page-shell > .mud-grid,
.dashboard-page-shell .mud-grid-item {
    min-width: 0;
}

.dashboard-page-shell .mud-paper.mud-theme-white {
    min-height: 100%;
    align-items: center;
    gap: .75rem;
    padding: .85rem 1rem;
}

.dashboard-page-shell .mud-paper.mud-theme-white > .mud-icon-root {
    flex: 0 0 auto;
    margin-inline: 0 .25rem !important;
}

.dashboard-page-shell .mud-paper.mud-theme-white > div {
    min-width: 0;
}

.dashboard-page-shell .mud-paper.mud-theme-white .mud-typography {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.main-layout {
    min-height: 100vh;
    background:
        radial-gradient(circle at 7% 2%, rgba(255, 131, 77, 0.07), transparent 24rem),
        radial-gradient(circle at 93% 12%, rgba(51, 92, 103, 0.08), transparent 28rem);
}

.main-header {
    min-height: 4.25rem;
    padding-block: 5px;
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid var(--border-soft);
    box-shadow: 0 8px 24px rgba(23, 33, 43, 0.05);
    position: relative;
    z-index: 20;
}

.main-header .mud-image {
    max-width: 9.5rem;
    max-height: 3.25rem;
    object-fit: contain;
}

.main-header .menu-items,
.main-header .account-items {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.main-header .menu-items .mud-button-root,
.main-header .account-items .mud-button-root {
    min-height: 2.5rem;
}

.main-header .btn-login {
    border: 1px solid var(--border-soft);
}

.main-drawer {
    border-inline-end: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, 0.97);
}

.side-menu-bac {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(23, 33, 43, 0.38);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--motion-normal) ease;
}

.side-menu-bac.show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.side-menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1001;
    transform: translateX(105%);
    visibility: hidden;
    pointer-events: none;
    overflow-y: auto;
    transition: transform var(--motion-slow) cubic-bezier(0.22, 1, 0.36, 1);
}

.side-menu.show {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
}

.mud-main-content {
    overflow-x: clip;
}

.mud-main-content > .container,
.mud-main-content .container {
    width: min(100%, var(--content-width));
}

.section-heading,
.sponsored-festival-title {
    color: var(--brand-primary);
    font-weight: 800;
    letter-spacing: -0.025em;
}

.section-heading::after,
.sponsored-festival-title::after {
    content: "";
    display: block;
    width: 3rem;
    height: 0.2rem;
    margin-top: 0.55rem;
    border-radius: var(--radius-pill);
    background: linear-gradient(90deg, var(--brand-accent), rgba(255, 131, 77, 0.15));
}

.festival-key-search-box {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: var(--radius-lg);
    background:
        linear-gradient(135deg, rgba(51, 92, 103, 0.96), rgba(40, 72, 80, 0.93)),
        var(--brand-primary);
    box-shadow: var(--shadow-soft);
}

.festival-key-search-box::before,
.festival-key-search-box::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
}

.festival-key-search-box::before {
    width: 16rem;
    height: 16rem;
    top: -9rem;
    right: -4rem;
    background: rgba(255, 131, 77, 0.22);
}

.festival-key-search-box::after {
    width: 12rem;
    height: 12rem;
    bottom: -8rem;
    left: 12%;
    background: rgba(255, 255, 255, 0.08);
}

.festival-key-search-box .mud-input-control,
.festival-key-search-box .mud-button-root {
    position: relative;
    z-index: 1;
}

.festival-browser-page {
    padding-block: clamp(1.25rem, 3vw, 2.75rem) clamp(3rem, 7vw, 6rem);
}

.festival-hero {
    min-height: clamp(14rem, 30vw, 23rem);
    margin: 0 auto;
    padding: clamp(3rem, 8vw, 7rem) 1rem clamp(2.25rem, 6vw, 5rem);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(115deg, rgba(51, 92, 103, 0.96), rgba(40, 72, 80, 0.88)),
        radial-gradient(circle at 80% 15%, rgba(255, 131, 77, 0.36), transparent 25rem);
    color: #fff;
    text-align: center;
}

.festival-hero::before,
.festival-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    pointer-events: none;
}

.festival-hero::before {
    width: 26rem;
    height: 26rem;
    top: -19rem;
    right: 8%;
}

.festival-hero::after {
    width: 18rem;
    height: 18rem;
    bottom: -13rem;
    left: 12%;
}

.festival-hero h1 {
    max-width: 48rem;
    margin: 0 auto;
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 4.25rem);
    font-weight: 800;
    line-height: 1.03;
    text-wrap: balance;
}

.festival-browser-page > .festival-key-search-box {
    max-width: 56rem;
    margin: clamp(-3rem, -5vw, -2rem) auto 2.5rem;
    padding: 1.5rem;
    box-shadow: 0 20px 55px rgba(23, 33, 43, 0.16);
}

.desktop-account-menu-button {
    display: inline-flex !important;
    border: 1px solid var(--border-soft) !important;
    border-radius: .6rem !important;
    background: rgba(255, 255, 255, .9) !important;
}

.account-profile-option {
    display: block;
    margin: .28rem .5rem;
    border-radius: .8rem;
    transition: background-color .16s ease, box-shadow .16s ease;
}

.account-profile-option .mud-card {
    min-height: 4.3rem;
    border: 1px solid transparent;
    border-radius: .8rem !important;
    background: transparent !important;
}

.account-profile-option--active {
    background: rgba(34, 111, 91, .1);
    box-shadow: inset 0 0 0 1px rgba(34, 111, 91, .22);
}

.account-profile-option--active .mud-card {
    border-color: rgba(34, 111, 91, .45);
    background: linear-gradient(135deg, rgba(230, 247, 239, .95), rgba(255, 255, 255, .96)) !important;
}

.account-profile-option--active .mud-typography-body2 {
    color: #155e4b;
    font-weight: 800;
}

.account-profile-option--active .mud-typography-caption::after {
    display: inline-block;
    margin-inline-start: .35rem;
    color: #16825e;
    font-weight: 800;
    content: "Active";
}

.festival-discovery-search {
    margin: 1.5rem auto 2rem;
    max-width: 1180px;
}

.festival-discovery-search__input {
    width: 100%;
}

.festival-discovery-search__input .mud-input-outlined-border {
    border-radius: 14px;
}

.festival-category-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: center;
    margin-top: 1rem;
}

.festival-category-pills .mud-button-root {
    border-radius: 999px;
    min-height: 38px;
    padding-inline: 1.15rem;
    text-transform: none;
}

@media (max-width: 600px) {
    .festival-category-pills {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .35rem;
    }

    .festival-category-pills .mud-button-root {
        flex: 0 0 auto;
    }
}

.festival-browser-page > .festival-key-search-box--below-filter {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: min(100%, 56rem);
    max-width: 56rem;
    margin: 2rem auto 2.5rem;
}

.festival-browser-page > .festival-key-search-box--below-filter > .mud-grid-item {
    width: min(100%, 34rem);
    max-width: 100%;
    padding-inline: 0 !important;
    margin-inline: auto;
}

.festival-browser-page > .festival-key-search-box .mud-input-control {
    background: rgba(255, 255, 255, 0.98);
    border-radius: var(--radius-pill);
}

.festival-section-intro,
.festival-results-heading,
.festival-filter-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

.festival-section-intro {
    margin-bottom: 1rem;
}

.festival-eyebrow {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--brand-accent);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.festival-section-intro h2,
.festival-results-heading h2,
.festival-filter-heading h2 {
    margin: 0;
    color: var(--brand-primary);
    font-size: clamp(1.45rem, 2.5vw, 2.15rem);
    font-weight: 800;
    letter-spacing: -0.035em;
}

.festival-section-intro .sponsored-festival-title::after {
    display: none;
}

.festival-section-note,
.festival-results-hint {
    max-width: 22rem;
    color: var(--text-muted);
    font-size: 0.86rem;
    line-height: 1.5;
    text-align: end;
}

.festival-sponsored-box {
    margin-top: 20px;
    margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.festival-sponsored-box .img-box {
    min-height: 12rem;
    padding: 0.7rem;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-card);
    box-shadow: var(--shadow-card);
}

.festival-sponsored-box .img-box::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 45%;
    background: linear-gradient(transparent, rgba(23, 33, 43, 0.48));
    pointer-events: none;
}

.festival-sponsored-box .img-box img {
    width: 100%;
    height: 12rem;
    object-fit: cover;
}

.festival-sponsored-box .btn-view-festival {
    position: absolute;
    z-index: 1;
    right: 1.1rem;
    bottom: 1rem;
    left: 1.1rem;
    border-color: rgba(255, 255, 255, 0.75) !important;
    background: rgba(255, 255, 255, 0.94);
    color: var(--brand-primary);
}

.festival-filter-panel {
    margin-top: 1rem;
    padding: clamp(1rem, 3vw, 1.75rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.76);
    box-shadow: var(--shadow-soft);
}

.festival-filter-heading {
    align-items: center;
    padding-bottom: 1.15rem;
    margin-bottom: 1.15rem;
    border-bottom: 1px solid var(--border-soft);
}

.festival-filter-heading h2 {
    font-size: 1.35rem;
}

.festival-filter-count {
    color: var(--brand-primary);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.festival-filter-count span {
    color: var(--text-muted);
    font-weight: 600;
}

.festival-results-heading {
    align-items: center;
    margin-top: clamp(2.5rem, 6vw, 4.5rem);
}

.festival-results-heading h2 {
    font-size: 1.65rem;
}

.festival-results-grid {
    margin-top: 1.25rem !important;
}

.festival-cards,
.festival-sponsored-box {
    align-items: stretch;
}

.festival-card {
    height: 100%;
    background: rgba(255, 255, 255, 0.92);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.festival-card .mud-card-content {
    flex: 1 1 auto;
    padding: clamp(1rem, 2vw, 1.35rem);
}

.festival-card .mud-card-actions {
    padding: 0.9rem 1.1rem 1.15rem;
    border-top: 1px solid var(--border-soft);
    background: rgba(238, 243, 246, 0.38);
}

.festival-card .mud-card-actions .mud-button-root {
    min-height: 2.55rem;
    flex: 1 1 0;
}

.festival-card .mud-card-actions .mud-button-filled {
    box-shadow: 0 8px 16px rgba(51, 92, 103, 0.18);
}

.festival-card:focus-within {
    border-color: rgba(255, 131, 77, 0.65);
    box-shadow: 0 0 0 4px rgba(255, 131, 77, 0.12), var(--shadow-card);
}

.festival-card img {
    object-fit: cover;
    transition: transform var(--motion-slow) ease;
}

.festival-card:hover img {
    transform: scale(1.035);
}

.festival-detail-page {
    padding-block: 1rem 3rem;
}

.festival-detail-hero {
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
}

.festival-detail-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(23, 33, 43, 0.58));
    pointer-events: none;
}

.festival-detail-hero .festival-cover-description {
    position: relative;
    z-index: 1;
}

.festival-detail-layout {
    position: relative;
    margin-top: -1.4rem;
    z-index: 2;
}

.festival-detail-heading {
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-card);
    backdrop-filter: blur(12px);
}

.festival-detail-heading .mud-typography-h1 {
    font-size: clamp(1.75rem, 3.5vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}

.festival-detail-content > .mud-tabs,
.festival-detail-content > div > .mud-paper,
.festival-detail-content > div > .mud-card,
.festival-detail-layout .side-box,
.festival-detail-layout .mud-paper {
    border-radius: var(--radius-md);
}

.festival-detail-content > .mud-tabs {
    padding: 0.5rem;
    border: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, 0.78);
    box-shadow: var(--shadow-card);
}

.festival-detail-content .mud-tab {
    border-radius: var(--radius-pill);
    font-weight: 700;
}

.festival-detail-content .mud-tab-slider {
    border-radius: var(--radius-pill);
}

.festival-product-section {
    padding: 2.5rem 0 4rem;
    background:
        linear-gradient(135deg, rgba(51, 92, 103, 0.98), rgba(40, 72, 80, 0.94)),
        var(--brand-primary);
}

.festival-product-section > .mud-typography {
    width: min(100% - 2rem, var(--content-width));
    margin-inline: auto;
    font-size: 1.5rem;
    font-weight: 800;
}

.footer {
    height: 350px;
    margin-top: clamp(3rem, 8vw, 7rem);
    background: linear-gradient(180deg, rgba(238, 243, 246, 0.3), rgba(238, 243, 246, 0.8));
}

.footer .festivals-footer-box img {
    max-width: 8rem;
    max-height: 4rem;
    object-fit: contain;
    filter: grayscale(0.2);
    opacity: 0.86;
    transition: transform var(--motion-normal) ease, opacity var(--motion-normal) ease, filter var(--motion-normal) ease;
}

.footer .festivals-footer-box a:hover img {
    transform: translateY(-3px);
    filter: grayscale(0);
    opacity: 1;
}

.footer .footer-footer {
    min-height: 4.5rem;
    align-items: center;
    gap: 0.75rem;
}

.footer .footer-footer > img {
    width: 9rem;
    height: auto;
    object-fit: contain;
}

.loading-progress {
    position: relative;
    display: block;
    width: 8rem;
    height: 8rem;
    margin: 20vh auto 1rem auto;
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent)) !important;
}

.mud-paper,
.mud-card,
.festival-card,
.festival-tabs .tab-pane,
.news-desc {
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-card);
}

.mud-paper,
.mud-card {
    border-radius: var(--radius-md) !important;
}

.mud-input > input,
.mud-input-slot,
.mud-select-input {
    color: var(--text-strong);
}

.mud-input-outlined-border,
.mud-input-filled {
    border-radius: var(--radius-sm) !important;
}

.mud-input-control {
    border-radius: var(--radius-sm);
}

.mud-alert {
    border-radius: var(--radius-sm) !important;
}

.auth-page {
    min-height: calc(100vh - 180px);
    align-items: center;
}

.auth-card {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(12px);
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-soft);
}

.auth-form-title {
    font-weight: 800;
    letter-spacing: -0.02em;
}

.auth-form-subtitle {
    color: var(--text-muted);
}

.site-header {
    backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, 0.85);
    border-bottom: 1px solid rgba(51, 92, 103, 0.1);
}

.main-header {
    padding-inline: clamp(0.75rem, 2vw, 1.5rem);
}

@media (max-width: 500px) {
    .main-header {
        padding-block: 10px;
    }
}

.public-header-container {
    max-width: var(--content-width);
}

.public-header-row {
    min-height: 4.25rem;
    align-items: center;
    gap: 0.7rem;
}

.public-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: var(--text-strong);
    text-decoration: none;
    flex-shrink: 0;
}

.public-brand img {
    width: clamp(7.75rem, 14vw, 10.5rem);
    height: auto;
    max-height: 3.25rem;
    object-fit: contain;
}

.public-brand span {
    max-width: 8rem;
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.02em;
}

.public-brand--drawer {
    padding: 1rem 1rem 0.5rem;
    flex-direction: column;
    align-items: flex-start;
}

.public-brand--drawer img {
    width: 10rem;
}

.public-brand--mobile {
    margin-inline-start: auto;
}

.public-nav,
.public-mobile-nav {
    flex: 1 1 auto;
}

.public-nav ul,
.public-mobile-nav ul {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.public-nav ul {
    justify-content: center;
}

.public-nav li,
.public-mobile-nav li {
    display: flex;
}

.public-nav-link,
.public-nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.5rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: 0.87rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, transform var(--motion-fast) ease;
}

.public-nav-link:hover,
.public-nav-link:focus-visible {
    color: var(--brand-primary);
    background: rgba(51, 92, 103, 0.07);
    border-color: rgba(51, 92, 103, 0.1);
    transform: translateY(-1px);
}

.public-nav-link--button {
    appearance: none;
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.public-nav-link--login {
    color: var(--brand-primary);
}

.public-nav-cta {
    color: #fff;
    background: var(--brand-primary);
    box-shadow: 0 8px 18px rgba(51, 92, 103, 0.2);
}

.public-nav-cta:hover,
.public-nav-cta:focus-visible {
    color: #fff;
    background: var(--brand-primary-hover);
    transform: translateY(-1px);
}

.public-header-auth {
    align-items: center;
    gap: 0.35rem;
}

.public-mobile-nav {
    padding: 1.25rem 1rem;
}

.public-mobile-nav ul {
    align-items: stretch;
    flex-direction: column;
    gap: 0.45rem;
}

.public-mobile-nav .public-nav-link,
.public-mobile-nav .public-nav-cta {
    width: 100%;
    justify-content: flex-start;
    min-height: 3rem;
    padding-inline: 1rem;
}

.public-mobile-nav .public-nav-cta {
    justify-content: center;
}

.main-header .menu ul,
.side-menu .menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.main-header .menu ul {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.side-menu {
    width: min(88vw, 360px);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 60px rgba(23, 33, 43, 0.18);
}

.side-menu .logo,
.site-header .logo {
    display: inline-flex;
    align-items: center;
}

.side-menu-close {
    position: absolute !important;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 2;
}

.side-menu-toggle {
    position: relative;
    z-index: 22;
    flex: 0 0 auto;
    border-radius: var(--radius-pill);
    color: var(--brand-primary) !important;
    background: rgba(51, 92, 103, 0.07);
}

.side-menu-toggle:hover,
.side-menu-toggle:focus-visible {
    background: rgba(255, 131, 77, 0.16);
}

.festival-header h1,
.news-title,
.festival-meta-box h1 {
    letter-spacing: -0.03em;
    line-height: 1.05;
}

.festival-sponsored-box .img-box img,
.festival-cards .festival-card img,
.news-top img {
    border-radius: var(--radius-md);
}

.festival-cards .festival-card,
.festival-browser-container .festival-card {
    border-radius: var(--radius-md);
    overflow: hidden;
}

.festival-cards .festival-card:hover,
.festival-browser-container .festival-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(23, 33, 43, 0.14);
    border-color: rgba(255, 131, 77, 0.45);
}

.festival-filter-form .mud-input-control,
.festival-filter-form .mud-picker .mud-input-control {
    box-shadow: none !important;
    border: 1px solid var(--border-soft);
}

.festival-filter-form .mud-grid-item {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-top: 10px !important;
}

/* Keep every data table inside its card and let phones scroll the table,
   instead of pushing the whole page outside the viewport. */
.default-table {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-soft);
}

.default-table .mud-table-container {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
}

.default-table .mud-table-head .mud-table-cell {
    background: var(--surface-muted);
    color: var(--brand-primary);
    font-weight: 800;
    white-space: nowrap;
}

.default-table .mud-table-row:hover {
    background: rgba(51, 92, 103, .045);
}

.default-table .mud-table-cell {
    max-width: 24rem;
    overflow-wrap: anywhere;
    vertical-align: middle;
}

@media (max-width: 767.98px) {
    .festival-filter-form {
        margin-inline: -.35rem;
    }

    .festival-filter-form > .mud-grid-item {
        padding-inline: .35rem !important;
    }

    .festival-filter-form .mud-typography-subtitle1 {
        min-height: 2.2rem;
        font-size: .78rem;
        line-height: 1.2;
    }

    .festival-filter-form .open-only-box .mud-paper {
        min-height: 5.1rem;
        padding: .55rem !important;
        gap: .25rem !important;
    }

    .default-table .mud-table-cell {
        min-width: 8rem;
    }

    .default-table .mud-table-cell[data-label="Actions"] {
        min-width: 7rem;
    }

    .submit-card {
        min-width: 0;
        overflow: hidden;
    }
}

.festival-filter-form p,
.festival-filter-form .mud-typography {
    color: var(--text-muted);
    font-weight: 600;
}

/* Final admin festival table overrides.  These intentionally come after the
   generic .default-table rules so a card row can use the full available
   width, including its action footer. */
.default-table.admin-festival-table .mud-table-container {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible;
}

.default-table.admin-festival-table .mud-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed;
}

.default-table.admin-festival-table .mud-table-root {
    display: table;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}

.default-table.admin-festival-table .mud-table-row,
.default-table.admin-festival-table .mud-table-cell {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

.default-table.admin-festival-table .mud-table-cell {
    padding: 0 !important;
    overflow: visible !important;
}

.default-table.admin-festival-table .admin-festival-card {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible;
}

.default-table.admin-festival-table .admin-festival-card-grid,
.default-table.admin-festival-table .admin-festival-card-grid > .mud-grid-item {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.default-table.admin-festival-table .admin-festival-card-grid > .mud-grid-item:nth-child(2) {
    width: 75% !important;
    max-width: 75% !important;
    flex-basis: 75% !important;
}

.default-table.admin-festival-table .admin-festival-card .submit-content {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: 0 0 auto;
}

.default-table.admin-festival-table .admin-festival-footer {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative;
    z-index: 2;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.default-table.admin-festival-table .admin-festival-actions {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
}

.default-table.admin-festival-table .admin-festival-actions .mud-button-group {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
    gap: .25rem;
}

.default-table.admin-festival-table .admin-festival-actions > .mud-menu {
    flex: 0 0 auto;
}

@media (max-width: 767.98px) {
    .default-table.admin-festival-table .admin-festival-card-grid > .mud-grid-item:nth-child(2) {
        width: 100% !important;
        max-width: 100% !important;
        flex-basis: 100% !important;
    }

    .default-table.admin-festival-table .admin-festival-actions {
        justify-content: center;
        align-items: stretch;
    }

    .default-table.admin-festival-table .admin-festival-actions .mud-button-group,
    .default-table.admin-festival-table .admin-festival-actions > .mud-menu {
        width: 100%;
        justify-content: center;
    }
}

/* Every authenticated page must remain bounded by the viewport when the
   navigation drawer is opened. Tables scroll inside their own container;
   cards and dashboard grids wrap instead of widening the whole document. */
.main-layout .mud-main-content,
.main-layout .hs-page-content,
.main-layout .hs-page-content > * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.main-layout .hs-page-content,
.dashboard-page-shell {
    overflow-x: hidden;
}

.dashboard-page-shell > .mud-grid,
.dashboard-page-shell > .mud-grid > .mud-grid-item,
.dashboard-page-shell .mud-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.dashboard-page-shell > .mud-grid {
    margin-inline: 0 !important;
}

.dashboard-page-shell > .dashboard-summary-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.dashboard-page-shell > .dashboard-summary-grid > .mud-grid-item {
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
}

@media (max-width: 1550px) {
    .dashboard-page-shell > .dashboard-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .dashboard-page-shell > .dashboard-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .dashboard-page-shell > .dashboard-summary-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.dashboard-page-shell .mud-paper,
.dashboard-page-shell .mud-card,
.dashboard-page-shell .mud-simple-table-container,
.dashboard-page-shell .mud-table-container {
    min-width: 0;
    max-width: 100%;
}

.pagination ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    padding: 0;
    margin: 2rem 0 0;
    list-style: none;
}

.pagination button {
    min-width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--border-soft);
    background: var(--surface-card);
    border-radius: 999px;
    color: var(--text-strong);
    font-weight: 700;
}

.pagination button:hover,
.pagination button.current {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.footer .footer-footer {
    border-top: 1px solid var(--border-soft);
    border-bottom: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, 0.82);
}

.overlay-gallery-box {
    justify-content: center;
    padding: 50px 50px 16px 50px;
    position: relative;
    border: 2px solid #777777;
    background: rgba(255, 255, 255, 0.98);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
}

.overlay-gallery-box img {
    max-width: 100%;
    max-height: 70vh;
}

@media (max-width: 765px) {
    .overlay-gallery-box {
        padding: 30px 30px 16px 30px;
    }
}

@media (max-width: 991.98px) {
    .auth-page {
        min-height: auto;
    }

    .festival-filter-form {
        padding-inline: 0.25rem;
    }

    .main-header {
        min-height: 3.75rem;
    }

    .public-header-row {
        min-height: 3.75rem;
        position: relative;
        z-index: 21;
    }

    .public-brand span {
        display: none;
    }

    .footer .menu-items {
        width: 100%;
        justify-content: center;
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }
}

@media (max-width: 767.98px) {
    .public-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .public-toolbar__search,
    .public-toolbar .mud-input-control {
        width: 100%;
        min-width: 0;
    }

    .festival-header {
        padding: 2rem 0 1rem;
    }

    .festival-header h1,
    .news-title {
        font-size: clamp(2rem, 7vw, 2.7rem) !important;
    }

    .mud-main-content {
        padding-inline: 0.75rem !important;
    }

    .festival-key-search-box {
        border-radius: var(--radius-md);
    }

    .festival-section-intro,
    .festival-results-heading,
    .festival-filter-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .festival-section-note,
    .festival-results-hint {
        max-width: none;
        text-align: start;
    }

    .festival-filter-panel {
        border-radius: var(--radius-md);
    }

    .festival-detail-page {
        padding-inline: 0.25rem;
    }

    .festival-detail-layout {
        margin-top: 0.75rem;
    }

    .festival-detail-heading {
        padding: 1rem;
    }

    .footer .footer-footer {
        justify-content: center;
        padding-block: 1rem;
    }

    .footer .footer-footer .menu-items {
        order: 3;
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }
}

@media (max-width: 991.98px) {
    .public-layout .side-menu-toggle {
        display: inline-flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .public-layout .side-menu {
        z-index: 1001;
    }

    .public-layout .side-menu-bac {
        z-index: 1000;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Public marketplace and dashboard layer */
.public-content-page {
    padding: clamp(2rem, 5vw, 4.5rem) 0 5rem;
}

.public-page-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    min-height: 16rem;
    margin-bottom: 2rem;
    padding: clamp(1.5rem, 4vw, 3.5rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 85% 12%, rgba(255, 131, 77, 0.18), transparent 14rem),
        linear-gradient(135deg, rgba(51, 92, 103, 0.98), rgba(40, 72, 80, 0.94));
    color: #fff;
    box-shadow: var(--shadow-soft);
    overflow: hidden;
}

.public-page-hero h1 {
    max-width: 46rem;
    margin: .6rem 0;
    color: #fff;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.public-page-hero__copy {
    max-width: 42rem;
    color: rgba(255, 255, 255, .82);
    font-size: 1.05rem;
}

.public-page-hero__icon {
    display: grid;
    flex: 0 0 5rem;
    place-items: center;
    width: 5rem;
    height: 5rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 1.5rem;
    color: var(--brand-accent);
    background: rgba(255,255,255,.1);
}

.public-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin: 2rem 0 1.5rem;
}

.public-toolbar__search,
.public-toolbar .mud-input-control {
    width: min(100%, 28rem);
    min-width: min(100%, 18rem);
}

.public-toolbar .mud-input-control {
    margin-top: 0;
}

.public-toolbar .mud-input-outlined {
    min-height: 3rem;
    border-radius: .9rem;
    background: var(--surface-card);
}

.public-toolbar .mud-input-outlined-border {
    border-color: var(--border-soft);
}

.public-toolbar .mud-input-control:hover .mud-input-outlined-border {
    border-color: var(--brand-primary);
}

.festival-filter-panel .mud-input-control,
.festival-filter-panel .mud-select,
.festival-filter-panel .mud-picker {
    width: 100%;
}

.festival-filter-panel .mud-input-outlined,
.festival-filter-panel .mud-select .mud-input {
    min-height: 2.85rem;
    border-radius: .75rem;
    background: rgba(255,255,255,.92);
}

.festival-filter-panel .mud-input-label {
    color: var(--text-muted);
    font-weight: 700;
}

.festival-filter-panel .mud-grid-item > .mud-typography-subtitle1 {
    margin-bottom: .45rem;
    color: var(--brand-primary);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

/* The festival browser filter uses an explicit layout so MudBlazor's
   responsive flex grid cannot stretch controls or push them out of alignment. */
.festival-filter-form {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem 1.15rem !important;
    margin-top: 1.25rem;
    padding: 0 !important;
}

.festival-filter-form > .mud-grid-item {
    display: flex;
    min-width: 0;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    flex: none !important;
}

.festival-filter-form > .mud-grid-item:nth-last-child(-n + 2) {
    grid-column: span 2;
}

.festival-filter-form > .mud-grid-item.festival-filter-range {
    grid-column: span 2;
}

.festival-filter-form > .mud-grid-item > .mud-input-control,
.festival-filter-form > .mud-grid-item > .mud-select,
.festival-filter-form > .mud-grid-item > .mud-picker,
.festival-filter-form > .mud-grid-item > .festival-filter-switch,
.festival-filter-form > .mud-grid-item > .mud-paper {
    width: 100%;
    min-width: 0;
}

.festival-filter-form > .mud-grid-item > p,
.festival-filter-form > .mud-grid-item > .mud-typography-subtitle1 {
    flex: 0 0 auto;
    margin: 0 0 .45rem;
    color: var(--brand-primary);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.festival-filter-form > .mud-grid-item:not(.open-only-box) {
    flex-direction: column;
    justify-content: flex-start;
}

.festival-filter-form .open-only-box {
    align-items: stretch;
    align-content: initial !important;
    flex-direction: column;
    gap: 0 !important;
}

.festival-filter-form .open-only-box > .mud-paper {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 2.85rem;
    padding: .2rem .7rem;
    border: 1px solid var(--border-soft);
    border-radius: .75rem;
    background: var(--surface-card) !important;
    box-shadow: none;
}

.festival-filter-form .open-only-box > .mud-paper > p {
    margin: 0;
    color: var(--text-strong);
    font-size: .95rem;
    font-weight: 600;
}

.festival-filter-form .open-only-box .mud-switch {
    margin-inline-start: auto;
}
.festival-filter-form .approved-only-box > .mud-paper { min-height: 2.85rem; }
.festival-filter-form .mud-select-input,
.festival-filter-form .competition-selector .mud-select-input {
    color: var(--text-strong) !important;
    opacity: 1 !important;
    white-space: normal;
    overflow-wrap: anywhere;
}

.festival-filter-form .mud-input-control,
.festival-filter-form .mud-select,
.festival-filter-form .mud-picker {
    margin: 0;
}

.festival-filter-form .slider {
    width: 100%;
    margin: 1.45rem 0 .55rem;
}

.festival-filter-form .noUi-connect {
    background: var(--brand-primary);
}

.festival-filter-form .noUi-handle {
    border-color: var(--brand-primary);
    box-shadow: 0 2px 7px rgba(51, 92, 103, .22);
}

.festival-filter-form .noUi-tooltip {
    border: 0;
    border-radius: .4rem;
    background: var(--brand-primary);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
}

.festival-browser-page .festival-filter-panel {
    width: min(100%, 72rem);
    margin-inline: auto;
    padding: clamp(1.1rem, 2vw, 1.75rem);
    border: 1px solid var(--border-soft);
    border-radius: 1.25rem;
    background: color-mix(in srgb, var(--surface-card) 94%, transparent);
    box-shadow: 0 14px 36px rgba(32, 65, 76, .08);
}

.festival-browser-page > .festival-key-search-box--below-filter {
    width: min(100%, 44rem) !important;
    max-width: 44rem !important;
    margin: 1.25rem auto 2rem !important;
    padding: 0 !important;
}

.festival-browser-page > .festival-key-search-box--below-filter > .mud-grid-item {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

.festival-browser-page > .festival-key-search-box--below-filter .mud-input-control {
    width: 100%;
    margin-inline: auto;
}

#components-reconnect-modal {
    display: none;
}

#components-reconnect-modal.components-reconnect-show {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(23, 33, 43, .16) !important;
    backdrop-filter: blur(1px);
    opacity: 1 !important;
}

.hs-reconnect-modal__card {
    display: grid;
    gap: .55rem;
    width: min(100%, 27rem);
    padding: 1.5rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: var(--radius-lg);
    background: var(--surface-card);
    box-shadow: var(--shadow-card);
    color: var(--text-strong);
    text-align: center;
}

.hs-reconnect-modal__title {
    color: var(--brand-primary);
    font-size: 1.15rem;
    font-weight: 800;
}

.hs-reconnect-modal__message {
    color: var(--text-muted);
}

.hs-reconnect-modal__reload {
    display: none;
    justify-self: center;
    margin-top: .5rem;
    padding: .65rem 1rem;
    border: 0;
    border-radius: 999px;
    background: var(--brand-primary);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

#components-reconnect-modal.components-reconnect-failed .hs-reconnect-modal__reload,
#components-reconnect-modal.components-reconnect-rejected .hs-reconnect-modal__reload {
    display: inline-flex;
}

@media (max-width: 991.98px) {
    .festival-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .festival-filter-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .festival-filter-form > .mud-grid-item:nth-last-child(-n + 2) {
        grid-column: span 1;
    }

    .festival-filter-form > .mud-grid-item.festival-filter-range {
        grid-column: span 1;
    }
}

.mud-table-toolbar .mud-input-control {
    width: min(100%, 24rem);
    margin: 0;
}

.mud-table-toolbar .mud-input {
    min-height: 2.75rem;
    border-radius: .75rem;
}

.mud-table-toolbar .mud-input-adornment {
    color: var(--brand-primary);
}

.mud-table-toolbar {
    flex-wrap: wrap;
    gap: .75rem;
    min-height: 4rem;
    padding: .75rem 1rem;
}

.public-text-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: 1rem;
    color: var(--brand-primary);
    font-weight: 800;
    text-decoration: none;
}

.news-featured-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    overflow: hidden;
    margin-bottom: 2rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--surface-card);
    box-shadow: var(--shadow-card);
}

.news-featured-card > img {
    width: 100%;
    height: 100%;
    min-height: 18rem;
    object-fit: cover;
}

.news-featured-card__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.news-featured-card__content h3 {
    margin: .75rem 0;
    font-size: clamp(1.6rem, 3vw, 2.5rem);
    line-height: 1.08;
}

.news-featured-card__content h3 a,
.editorial-card a {
    color: inherit;
    text-decoration: none;
}

.editorial-card,
.marketplace-product-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 22px rgba(23,33,43,.05);
}

.editorial-card:hover,
.marketplace-product-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card);
    border-color: rgba(255, 131, 77, .45);
}

.editorial-card__image {
    display: block;
    overflow: hidden;
    background: var(--surface-muted);
}

.editorial-card__image img {
    width: 100%;
    height: 13rem;
    object-fit: cover;
    transition: transform var(--motion-slow) ease;
}

.editorial-card:hover .editorial-card__image img {
    transform: scale(1.04);
}

.news-advanced-search,
.news-article-search {
    border-color: var(--border-soft);
    background: color-mix(in srgb, var(--surface-card) 94%, var(--brand-primary));
}

.news-article-card {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

.news-article-title {
    max-width: 22ch;
    margin-bottom: 1rem;
    color: var(--brand-primary);
    font-weight: 850;
    line-height: 1.08;
}

.news-article-image {
    display: block;
    width: 100%;
    max-height: 34rem;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.news-article-card .mud-card-content p,
.news-article-card .mud-card-content li {
    max-width: 75ch;
    color: var(--text-main);
    font-size: 1.05rem;
    line-height: 1.85;
}

.marketplace-product-card__image {
    display: grid;
    place-items: center;
    min-height: 13rem;
    background: linear-gradient(145deg, var(--surface-muted), #fff);
}

.marketplace-product-card__image img {
    max-width: 90%;
    object-fit: contain;
}

.product-card-description {
    display: -webkit-box;
    min-height: 2.8rem;
    overflow: hidden;
    color: var(--text-muted);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.public-empty-state {
    display: grid;
    place-items: center;
    gap: .5rem;
    min-height: 17rem;
    padding: 2rem;
    text-align: center;
    border: 1px dashed var(--border-soft);
    border-radius: var(--radius-lg);
    color: var(--text-muted);
    background: rgba(255,255,255,.6);
}

.ticket-market-grid .ticket {
    height: 100%;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-card);
    box-shadow: 0 8px 22px rgba(23,33,43,.05);
}

.ticket-market-grid .ticket:hover {
    box-shadow: var(--shadow-card);
}

.advertise-layout {
    align-items: stretch;
}

.advertise-benefits,
.advertise-form-card {
    height: 100%;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

.advertise-benefits {
    background: linear-gradient(160deg, rgba(51,92,103,.98), rgba(40,72,80,.95));
    color: #fff;
}

.advertise-benefit {
    display: flex;
    gap: .85rem;
    padding: 1rem 0;
    border-top: 1px solid rgba(255,255,255,.16);
}

.advertise-benefit .mud-icon-root {
    color: var(--brand-accent);
}

.advertise-benefit .mud-typography-body2 {
    color: rgba(255,255,255,.72);
}

.advertise-upload-section {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-soft);
}

.advertise-submit {
    min-width: 14rem;
}

.dashboard-page-shell {
    padding-bottom: 3rem;
}

.dashboard-page-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: linear-gradient(120deg, rgba(51,92,103,.08), rgba(255,131,77,.08));
}

.dashboard-page-intro .mud-icon-root {
    color: var(--brand-primary);
    font-size: 2.8rem;
}

.dashboard-page-intro > div {
    min-width: 0;
}

.dashboard-page-intro .mud-typography-body2,
.dashboard-page-intro .mud-typography-h3 {
    overflow-wrap: anywhere;
}

.festival-filter-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .5rem;
    min-width: 0;
}

.festival-filter-toolbar .mud-chip,
.festival-filter-toolbar .mud-button-root {
    max-width: 100%;
}

.festival-filter-toolbar .mud-chip-content {
    overflow-wrap: anywhere;
}

.dashboard-page-shell .mud-paper,
.dashboard-page-shell .mud-card {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 22px rgba(23,33,43,.05);
}

/* Festival promotion kit */
.social-promotion-kit {
    margin-top: 1.5rem;
    border: 1px solid rgba(24, 124, 123, .16);
    border-radius: 22px;
    background: linear-gradient(135deg, #fffdf8 0%, #f2faf8 100%);
}

.social-promotion-kit__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.social-promotion-card {
    height: 100%;
    border-radius: 18px;
    background: rgba(255,255,255,.84);
}

.promotion-options {
    align-items: stretch;
}

.promotion-options > * {
    flex: 1 1 0;
    min-width: 0;
}

.promotion-button-preview {
    min-height: 82px;
    display: grid;
    place-items: center;
    padding: 1rem;
    border-radius: 16px;
    background: #edf4f2;
}

.promotion-button {
    display: inline-block;
    border-radius: 999px;
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease;
}

.promotion-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(16,42,54,.18);
}

.promotion-button--small { padding: 9px 16px; font-size: 13px; }
.promotion-button--medium { padding: 12px 20px; font-size: 14px; }
.promotion-button--large { padding: 15px 24px; font-size: 16px; }
.promotion-button--square,
.promotion-button--circle { white-space: normal; overflow-wrap: anywhere; }
.promotion-button--square.promotion-button--small { width: 88px; height: 88px; padding: 10px; display: inline-grid; place-items: center; text-align: center; border-radius: 14px; }
.promotion-button--square.promotion-button--medium { width: 112px; height: 112px; padding: 12px; display: inline-grid; place-items: center; text-align: center; border-radius: 16px; }
.promotion-button--square.promotion-button--large { width: 140px; height: 140px; padding: 14px; display: inline-grid; place-items: center; text-align: center; border-radius: 18px; }
.promotion-button--circle.promotion-button--small { width: 96px; height: 96px; padding: 10px; display: inline-grid; place-items: center; text-align: center; border-radius: 50%; }
.promotion-button--circle.promotion-button--medium { width: 128px; height: 128px; padding: 14px; display: inline-grid; place-items: center; text-align: center; border-radius: 50%; }
.promotion-button--circle.promotion-button--large { width: 156px; height: 156px; padding: 16px; display: inline-grid; place-items: center; text-align: center; border-radius: 50%; }
.promotion-button--teal { background: #187c7b; }
.promotion-button--coral { background: #ed785f; }
.promotion-button--dark { background: #102a36; }
.promotion-button--gold { background: #c88b45; }

.social-poster-preview {
    position: relative;
    min-height: 320px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    padding: 1.25rem;
    border-radius: 18px;
    color: #fff;
    isolation: isolate;
}

.social-poster-preview::before {
    content: "";
    position: absolute;
    width: 260px;
    height: 260px;
    right: -70px;
    top: -80px;
    border-radius: 50%;
    background: rgba(255,255,255,.13);
    z-index: -1;
}

.social-poster-preview--film { background: linear-gradient(145deg,#071f2b,#1d5661 65%,#f0ad62); }
.social-poster-preview--music { background: linear-gradient(145deg,#28133f,#714a9b 65%,#f4b86a); }
.social-poster-preview--visual { background: linear-gradient(145deg,#183b39,#317c71 65%,#f5c36a); }
.social-poster-preview--literary { background: linear-gradient(145deg,#3b2024,#8f4d46 65%,#f3c47b); }
.social-poster-preview--performing { background: linear-gradient(145deg,#26203f,#63548e 65%,#f2b36d); }

.social-poster-preview img {
    width: 78px;
    height: 78px;
    flex: 0 0 78px;
    object-fit: contain;
    padding: 10px;
    border-radius: 14px;
    background: rgba(255,255,255,.94);
}

.social-poster-preview__copy {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    min-width: 0;
}

.social-poster-preview__copy span {
    color: #f5c36a;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.social-poster-preview__copy strong {
    overflow-wrap: anywhere;
    font-size: clamp(1.25rem, 3vw, 2rem);
    line-height: 1.08;
}

.social-poster-preview__copy small {
    color: rgba(255,255,255,.84);
}

.social-poster-preview__copy em {
    margin-top: .5rem;
    font-style: normal;
    font-size: .9rem;
}

.social-poster-preview__brand {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: rgba(255,255,255,.92);
    font-size: .8rem;
    font-weight: 800;
}

.social-poster-preview__brand img {
    width: 28px;
    height: 28px;
    padding: 3px;
    border-radius: 6px;
    object-fit: contain;
    background: rgba(255,255,255,.94);
}

@media (max-width: 600px) {
    .social-promotion-kit__heading { align-items: flex-start; }
    .promotion-options { flex-direction: column !important; }
    .social-poster-preview { min-height: 280px; }
}

/* Shared workspace pattern for long forms and role dashboards */
.workspace-form-shell {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .84);
    box-shadow: var(--shadow-card);
}

.workspace-form-card {
    min-width: 0;
    overflow: visible;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--shadow-card);
}

.workspace-form-card .mud-card-header {
    padding: clamp(1rem, 3vw, 1.75rem);
    border-bottom: 1px solid var(--border-soft);
    background: linear-gradient(135deg, rgba(51, 92, 103, .06), rgba(255, 131, 77, .06));
}

.workspace-form-card .mud-card-content,
.workspace-form-shell .mud-card-content {
    min-width: 0;
}

.workspace-form-card .mud-input-control,
.workspace-form-shell .mud-input-control {
    min-width: 0;
    max-width: 100%;
}

.workspace-form-card .mud-input-slot,
.workspace-form-shell .mud-input-slot,
.workspace-form-card .mud-select-input,
.workspace-form-shell .mud-select-input {
    overflow-wrap: anywhere;
}

.workspace-form-card .mud-input-outlined-border,
.workspace-form-shell .mud-input-outlined-border {
    border-radius: var(--radius-sm);
}

.workspace-form-card .mud-divider,
.workspace-form-shell .mud-divider {
    margin-block: 1.25rem;
    opacity: .75;
}

.workspace-action-bar {
    position: sticky;
    bottom: 0;
    z-index: 8;
    gap: .5rem;
    margin-top: 1.25rem;
    padding: .75rem clamp(.75rem, 2vw, 1.5rem);
    border-top: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 -10px 24px rgba(23, 33, 43, .06);
    backdrop-filter: blur(12px);
}

.workspace-action-bar .mud-button-group,
.workspace-action-bar .mud-button-root {
    min-width: 0;
}

.workspace-tabs {
    max-width: 100%;
}

.workspace-tabs .mud-tabs-tabbar {
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
    width: 100%;
}

.workspace-tabs .mud-tabs-tabbar-content {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

/* Form readability and compact option controls */
:where(.workspace-form-card, .workspace-form-shell, .festival-editor-card) {
    color: var(--text-strong, #17212b);
}

:where(.workspace-form-card, .workspace-form-shell, .festival-editor-card) .mud-card-header,
:where(.workspace-form-card, .workspace-form-shell, .festival-editor-card) .mud-card-content {
    color: var(--text-strong, #17212b);
}

:where(.workspace-form-card, .workspace-form-shell, .festival-editor-card) .mud-input-label,
:where(.workspace-form-card, .workspace-form-shell, .festival-editor-card) .mud-input-slot,
:where(.workspace-form-card, .workspace-form-shell, .festival-editor-card) .mud-typography {
    color: var(--text-strong, #17212b);
}

.required-field-mark {
    color: #d92d20;
    font-weight: 800;
    margin-inline-start: .2rem;
}

.compact-option-stack {
    gap: .15rem !important;
    padding: .45rem .65rem;
}

.compact-option-stack .mud-checkbox {
    min-height: 2rem;
    margin: 0 !important;
}

.compact-option-stack .mud-checkbox-content {
    padding-inline-start: .25rem;
}

.festival-category-table {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .96);
}

.festival-category-table .mud-table-head .mud-table-cell {
    color: var(--text-strong, #17212b);
    font-weight: 700;
    background: rgba(51, 92, 103, .08);
}

.festival-category-table .mud-table-row {
    background: #fff;
}

.festival-category-table .mud-table-cell {
    color: var(--text-strong, #17212b);
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: anywhere;
}

.festival-category-table .mud-chip {
    max-width: 100%;
}

.festival-category-table .mud-chip-content {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Keep the public header within the viewport at every desktop width. */
.public-layout .public-header-row {
    display: flex;
    flex-wrap: nowrap !important;
    min-width: 0;
    overflow: hidden;
}

.public-layout .public-header-row > .public-brand--desktop {
    flex: 0 1 clamp(12rem, 18vw, 17rem);
    min-width: 10.5rem;
}

.public-layout .public-header-row > .public-desktop-nav {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.public-layout .public-desktop-nav ul {
    justify-content: flex-end;
    flex-wrap: nowrap;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.public-layout .public-desktop-nav ul::-webkit-scrollbar {
    display: none;
}

.public-layout .public-desktop-nav .public-nav-link,
.public-layout .public-desktop-nav .public-nav-cta {
    white-space: nowrap;
    padding-inline: clamp(.45rem, .8vw, .8rem);
}

.public-layout .public-header-actions {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: max-content;
    gap: .25rem;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .public-layout .public-brand--desktop span {
        display: none;
    }

    .public-layout .public-header-row > .mud-spacer {
        flex: 0 0 .25rem;
        min-width: .25rem;
    }

    .public-layout .public-desktop-nav .public-nav-link,
    .public-layout .public-desktop-nav .public-nav-cta {
        font-size: .78rem;
        padding-inline: .4rem;
    }
}

.workspace-tabs .mud-tab {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.workspace-tabs .mud-tabs-tabbar-content > .mud-tab {
    flex: 1 1 0;
}

@media (max-width: 900px) {
    .workspace-tabs .mud-tabs-tabbar-content {
        flex-wrap: nowrap;
        width: max-content;
    }

    .workspace-tabs .mud-tabs-tabbar-content > .mud-tab {
        flex: 0 0 auto;
        min-width: 8.5rem;
    }
}

/* Selects and autocompletes render their menu in the global popover provider.
   The menu must be above the modal surface and its overlay, otherwise it looks
   as if the options were rendered behind the dialog. */
.mud-popover-provider,
.mud-popover,
.dialog-select-popover {
    z-index: 1500 !important;
}

.mud-popover-provider .mud-list,
.mud-popover .mud-list {
    background: var(--surface-card, #ffffff) !important;
    color: var(--text-strong, #17212b) !important;
}

.mud-popover-provider .mud-list-item,
.mud-popover .mud-list-item {
    color: var(--text-strong, #17212b) !important;
}

.dashboard-profile-card {
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
    padding: clamp(1rem, 3vw, 1.75rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 90% 10%, rgba(255, 131, 77, .14), transparent 14rem),
        linear-gradient(135deg, rgba(51, 92, 103, .08), rgba(255, 255, 255, .92));
    box-shadow: var(--shadow-card);
}

.dashboard-profile-card .mud-typography {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.dashboard-section-card {
    overflow: hidden;
}

.dashboard-page-shell .mud-grid {
    min-width: 0;
}

.dashboard-page-shell .mud-grid-item {
    min-width: 0;
}

.dashboard-page-shell .mud-simple-table-container,
.dashboard-page-shell .mud-table-container {
    max-width: 100%;
    overflow-x: auto;
}

.dashboard-page-shell table {
    min-width: 38rem;
}

.referee-dashboard-shell > .mud-item > .mud-paper,
.referee-dashboard-shell > .mud-item > .mud-card {
    height: 100%;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-card);
}

.user-dashboard-shell .dashboard-section-card,
.referee-dashboard-shell .mud-card,
.referee-dashboard-shell .mud-paper {
    min-width: 0;
}

.user-dashboard-shell .mud-simple-table-container,
.referee-dashboard-shell .mud-simple-table-container {
    padding-inline: .25rem;
}

.main-drawer {
    z-index: 1100;
}

.main-drawer .mud-nav-menu {
    min-height: 100%;
    padding: .75rem;
}

.main-drawer .mud-nav-link,
.main-drawer .mud-button-root {
    min-height: 2.8rem;
    margin-block: .18rem;
    border-radius: var(--radius-sm);
    overflow-wrap: anywhere;
}

.cart-page-shell {
    min-width: 0;
}

.artist-next-actions-card {
    border: 1px solid rgba(40, 99, 152, .14);
    background: linear-gradient(135deg, rgba(248, 251, 255, .98), rgba(255, 255, 255, .98));
}

.artist-next-actions-list {
    border-top: 1px solid rgba(40, 99, 152, .1);
}

.artist-next-action-item {
    border-bottom: 1px solid rgba(40, 99, 152, .08);
    padding-inline: 0;
}

 .artist-next-action-item:last-child {
    border-bottom: 0;
}

.payment-result-page-shell {
    min-width: 0;
}

.payment-result-card {
    margin-block: 1.5rem;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    overflow: hidden;
}

.payment-result-hero {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.payment-result-hero .mud-typography {
    overflow-wrap: anywhere;
}

.payment-result-icon {
    display: grid;
    flex: 0 0 3.25rem;
    width: 3.25rem;
    height: 3.25rem;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-success, #177245) 12%, transparent);
}

.payment-result-reference {
    min-width: 0;
    margin-top: 1.5rem;
    padding: 1rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--surface-muted, #f7f8fa);
}

.payment-reference-value {
    margin-top: .25rem;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: var(--font-mono, ui-monospace, monospace);
}

.payment-next-steps {
    padding-block: .5rem;
}

.payment-next-steps .mud-list-item {
    min-height: 2.75rem;
}

.payment-next-steps .mud-list-item-text {
    overflow-wrap: anywhere;
}

.payment-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: flex-end;
    margin-top: 1.5rem;
}

@media (max-width: 767.98px) {
    .dashboard-page-intro {
        align-items: flex-start;
        margin-top: .5rem;
        padding: 1rem;
    }

    .dashboard-page-intro .mud-typography-h3 {
        font-size: clamp(1.35rem, 6vw, 1.8rem);
        line-height: 1.15;
    }

    .dashboard-page-intro .mud-icon-root {
        flex: 0 0 auto;
        font-size: 2.1rem;
    }

    .festival-filter-toolbar {
        align-items: flex-start;
        justify-content: flex-start;
        width: 100%;
        margin-top: .35rem;
    }
}

.cart-summary-card,
.cart-festival-group {
    min-width: 0;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .9);
    box-shadow: var(--shadow-card);
}

.cart-summary-card {
    position: sticky;
    top: 1rem;
    overflow: hidden;
}

.cart-summary-card .mud-stack {
    min-width: 0;
}

.cart-summary-card .mud-typography,
.cart-festival-group .mud-typography {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.cart-festival-group {
    align-items: flex-start;
    padding: clamp(.75rem, 2vw, 1.25rem);
}

.cart-festival-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    min-width: 0;
    margin-bottom: 1rem;
}

.cart-festival-group > .mud-image,
.cart-festival-header > .mud-image {
    flex: 0 0 auto;
    border-radius: var(--radius-sm);
    object-fit: cover;
}

.cart-festival-context {
    min-width: 0;
    flex: 1 1 auto;
}

.cart-festival-name,
.cart-festival-categories,
.cart-item-title,
.cart-item-meta {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.cart-festival-categories {
    margin-top: .15rem;
}

.cart-items-table-wrap {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
}

.cart-items-table-wrap > .mud-table-container {
    max-width: 100%;
}

.cart-items-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

.cart-items-table .cart-item-type-cell {
    width: 7rem;
}

.cart-items-table .cart-item-price-cell {
    width: 7rem;
    text-align: end;
}

.cart-items-table .cart-item-action-cell {
    width: 3.5rem;
    text-align: center;
}

.cart-item-meta {
    display: block;
    margin-top: .2rem;
    color: var(--text-muted);
}

.cart-discounted-price {
    display: inline-block;
    margin-inline-start: .35rem;
    color: var(--color-success, #177245);
    font-weight: 700;
}

.cart-festival-status {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .75rem;
}

.cart-festival-group > .mud-grid {
    min-width: 0;
    flex: 1 1 auto;
}

.cart-items-table td,
.cart-items-table th {
    overflow-wrap: anywhere;
    word-break: break-word;
    vertical-align: middle;
}

@media (max-width: 767.98px) {
    .public-page-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-page-hero__icon {
        display: none;
    }

    .public-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .public-toolbar__search,
    .public-toolbar .mud-input-control {
        width: 100%;
    }

    .news-featured-card {
        grid-template-columns: 1fr;
    }

    .news-featured-card > img {
        min-height: 13rem;
        max-height: 16rem;
    }

    .advertise-submit {
        width: 100%;
    }
}

/* HiSubmit visual system: editorial public shell + focused workspace */
.public-layout {
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 0%, rgba(255, 131, 77, 0.11), transparent 28rem),
        radial-gradient(circle at 94% 8%, rgba(51, 92, 103, 0.12), transparent 30rem),
        var(--surface-base);
}

.home-hero {
    position: relative;
    display: flex;
    width: min(100% - 2rem, var(--content-width));
    min-height: min(34rem, 72vh);
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin: clamp(1.5rem, 4vw, 3.5rem) auto 0;
    padding: clamp(2rem, 6vw, 5.5rem);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 2rem;
    background:
        linear-gradient(120deg, rgba(51, 92, 103, 0.98), rgba(40, 72, 80, 0.94)),
        var(--brand-primary);
    box-shadow: 0 28px 65px rgba(51, 92, 103, 0.22);
    color: #fff;
}

.home-hero::before {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px),
        linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px);
    background-size: 4rem 4rem;
    mask-image: linear-gradient(90deg, #000, transparent 78%);
    content: "";
    opacity: 0.25;
}

.home-hero__content,
.home-hero__visual {
    position: relative;
    z-index: 1;
}

.home-hero__content {
    max-width: 48rem;
}

.home-hero .festival-eyebrow {
    color: #fff !important;
    opacity: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .28);
}

.home-hero h1 {
    max-width: 46rem;
    margin: 0.7rem 0 0;
    color: #fff;
    font-size: clamp(2.5rem, 7vw, 6.25rem);
    font-weight: 800;
    letter-spacing: -0.065em;
    line-height: 0.94;
}

.home-hero__copy {
    max-width: 36rem;
    margin: 1.35rem 0 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.75;
}

.home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 2rem;
}

.home-hero__primary,
.home-hero__secondary {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.2rem;
    border-radius: var(--radius-pill);
    font-size: 0.9rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform var(--motion-fast) ease, background-color var(--motion-fast) ease, color var(--motion-fast) ease;
}

.home-hero__primary {
    background: var(--brand-accent);
    color: #fff;
    box-shadow: 0 12px 25px rgba(255, 131, 77, 0.28);
}

.home-hero__secondary {
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
}

.home-hero__primary:hover,
.home-hero__secondary:hover,
.home-hero__primary:focus-visible,
.home-hero__secondary:focus-visible {
    color: #fff;
    transform: translateY(-2px);
}

.home-hero__primary:hover,
.home-hero__primary:focus-visible {
    background: var(--brand-accent-hover);
}

.home-hero__secondary:hover,
.home-hero__secondary:focus-visible {
    background: rgba(255, 255, 255, 0.12);
}

.home-hero__visual {
    display: grid;
    width: min(33vw, 22rem);
    min-width: 13rem;
    aspect-ratio: 1;
    place-items: center;
}

.home-hero__visual > .mud-icon-root {
    z-index: 2;
    color: var(--brand-accent);
    font-size: clamp(4rem, 9vw, 7rem) !important;
    filter: drop-shadow(0 0 2rem rgba(255, 131, 77, 0.5));
}

.home-hero__orb {
    position: absolute;
    display: block;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
}

.home-hero__orb--large {
    width: 100%;
    height: 100%;
    box-shadow: 0 0 0 2rem rgba(255, 255, 255, 0.04), 0 0 0 4rem rgba(255, 255, 255, 0.03);
}

.home-hero__orb--small {
    width: 45%;
    height: 45%;
    background: radial-gradient(circle at 35% 25%, rgba(255, 131, 77, 0.75), rgba(255, 131, 77, 0.05) 70%);
    box-shadow: 0 0 3rem rgba(255, 131, 77, 0.24);
}

.public-layout .mud-main-content {
    padding-top: 0 !important;
}

.public-announcement {
    position: relative;
    z-index: 21;
    background: var(--brand-primary);
    color: rgba(255, 255, 255, 0.86);
}

.public-announcement__inner {
    display: flex;
    width: min(100% - 2rem, var(--content-width));
    min-height: 2.35rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-inline: auto;
    font-size: 0.78rem;
    font-weight: 700;
}

.public-announcement span,
.public-announcement a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.public-announcement a {
    color: #fff;
    text-decoration: none;
    transition: color var(--motion-fast) ease, transform var(--motion-fast) ease;
}

.public-announcement a:hover,
.public-announcement a:focus-visible {
    color: var(--brand-accent);
    transform: translateX(2px);
}

.public-layout .site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    box-shadow: 0 10px 32px rgba(23, 33, 43, 0.08);
}

.public-layout .public-header-row {
    min-height: 5rem;
}

.public-layout .public-nav-link--featured {
    color: var(--brand-primary);
    background: rgba(255, 131, 77, 0.11);
    border-color: rgba(255, 131, 77, 0.18);
}

.public-layout .public-nav-link--featured:hover,
.public-layout .public-nav-link--featured:focus-visible {
    color: var(--brand-primary-hover);
    background: rgba(255, 131, 77, 0.2);
    border-color: rgba(255, 131, 77, 0.35);
}

.public-layout .public-content-page {
    padding-top: clamp(1.25rem, 3vw, 2.75rem);
}

.public-layout .public-page-hero {
    position: relative;
    overflow: hidden;
    margin-bottom: clamp(1.5rem, 4vw, 3rem);
    padding: clamp(1.5rem, 4vw, 3.5rem);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 2rem;
    background:
        linear-gradient(120deg, rgba(51, 92, 103, 0.98), rgba(40, 72, 80, 0.94)),
        var(--brand-primary);
    box-shadow: 0 24px 55px rgba(51, 92, 103, 0.2);
    color: #fff;
}

.public-layout .public-page-hero::after {
    position: absolute;
    right: -5rem;
    bottom: -7rem;
    width: 19rem;
    height: 19rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    content: "";
    box-shadow:
        0 0 0 2.5rem rgba(255, 255, 255, 0.04),
        0 0 0 5rem rgba(255, 255, 255, 0.03);
}

.public-layout .public-page-hero > * {
    position: relative;
    z-index: 1;
}

.public-layout .public-page-hero .mud-typography,
.public-layout .public-page-hero .text-muted {
    color: rgba(255, 255, 255, 0.78) !important;
}

.public-layout .public-page-hero .mud-typography-h1 {
    max-width: 43rem;
    margin-top: 0.45rem;
    color: #fff !important;
    font-size: clamp(2.15rem, 5vw, 4.5rem);
    font-weight: 800;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.public-layout .public-page-hero__copy {
    max-width: 42rem;
    margin-top: 1rem;
    font-size: 1.05rem;
    line-height: 1.75;
}

.public-layout .public-page-hero__icon {
    color: var(--brand-accent);
    filter: drop-shadow(0 0 1.5rem rgba(255, 131, 77, 0.45));
    font-size: clamp(4rem, 10vw, 8rem) !important;
}

.public-layout .public-toolbar {
    margin-bottom: 1.5rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 10px 30px rgba(23, 33, 43, 0.05);
    backdrop-filter: blur(12px);
}

.public-layout .public-toolbar .mud-input-control {
    min-width: min(100%, 22rem);
}

.public-layout .public-empty-state {
    min-height: 15rem;
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.8);
    box-shadow: var(--shadow-card);
}

.public-footer {
    position: relative;
    overflow: hidden;
    margin-top: clamp(4rem, 9vw, 9rem);
    background:
        linear-gradient(135deg, rgba(51, 92, 103, 0.98), rgba(40, 72, 80, 0.96)),
        var(--brand-primary);
    color: #fff;
}

.public-footer::before {
    position: absolute;
    top: -8rem;
    right: -5rem;
    width: 20rem;
    height: 20rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 3rem rgba(255, 255, 255, 0.035), 0 0 0 6rem rgba(255, 255, 255, 0.025);
}

.public-footer__intro {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding-top: clamp(2.5rem, 6vw, 5rem);
    padding-bottom: 1rem;
}

.public-footer__intro .mud-typography-h5 {
    color: #fff;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}

.public-footer__intro .mud-typography-body2 {
    max-width: 35rem;
    margin-top: 0.5rem;
    color: rgba(255, 255, 255, 0.7);
}

.public-footer__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.public-footer__links a {
    padding: 0.6rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--radius-pill);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) ease;
}

.public-footer__links a:hover,
.public-footer__links a:focus-visible {
    background: var(--brand-accent);
    color: #fff;
    transform: translateY(-2px);
}

.public-footer .festivals-footer-box {
    position: relative;
    z-index: 1;
    margin-inline: auto;
    width: min(100% - 2rem, var(--content-width));
}

.public-footer .festivals-footer-box img {
    filter: grayscale(1) brightness(0) invert(1);
    opacity: 0.62;
}

.public-footer .festivals-footer-box a:hover img {
    filter: none;
    opacity: 1;
}

.public-footer .footer-footer {
    position: relative;
    z-index: 1;
    width: min(100% - 2rem, var(--content-width));
    margin-inline: auto;
    border-color: rgba(255, 255, 255, 0.16);
    background: transparent;
}

.public-footer .footer-footer .mud-icon-button,
.public-footer .footer-footer .mud-button-root {
    color: rgba(255, 255, 255, 0.82);
}

.public-footer > .w-100 {
    position: relative;
    z-index: 1;
    color: rgba(255, 255, 255, 0.68);
}

.public-footer > .w-100 .mud-icon-root {
    color: var(--brand-accent);
}

.main-layout {
    background:
        radial-gradient(circle at 4% 0%, rgba(255, 131, 77, 0.08), transparent 24rem),
        radial-gradient(circle at 96% 12%, rgba(51, 92, 103, 0.08), transparent 28rem),
        var(--surface-base);
}

.main-layout .main-header {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: 4.75rem;
    backdrop-filter: blur(18px);
}

.main-layout .main-header .menu-items .mud-button-root {
    color: var(--text-muted);
}

.main-layout .main-header .menu-items .mud-button-root:hover,
.main-layout .main-header .menu-items .mud-button-root:focus-visible {
    color: var(--brand-primary);
    background: rgba(51, 92, 103, 0.07);
}

.main-layout .main-drawer {
    box-shadow: 12px 0 35px rgba(23, 33, 43, 0.05);
}

.main-layout .mud-main-content {
    min-height: calc(100vh - 4.75rem);
}

.main-layout .mud-main-content > .min-vh-100 {
    width: min(100%, var(--content-width));
    margin-inline: auto;
}

.main-layout .footer {
    margin-top: 4rem;
}

@media (max-width: 767.98px) {
    .public-announcement__inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.15rem;
        padding-block: 0.55rem;
    }

    .home-hero {
        min-height: auto;
        align-items: flex-start;
        flex-direction: column;
        border-radius: 1.35rem;
        padding: 2rem 1.35rem;
    }

    .home-hero h1 {
        font-size: clamp(2.6rem, 14vw, 4rem);
    }

    .home-hero__visual {
        align-self: center;
        width: 11rem;
        min-width: 0;
        margin-top: 1rem;
    }

    .public-layout .public-header-row {
        min-height: 4.2rem;
    }

    .public-layout .public-page-hero {
        border-radius: 1.35rem;
        padding: 1.5rem;
    }

    .public-layout .public-page-hero .mud-typography-h1 {
        font-size: clamp(2.2rem, 12vw, 3.25rem);
    }

    .public-footer__intro {
        align-items: flex-start;
        flex-direction: column;
        padding-top: 2.75rem;
    }

    .public-footer__links {
        justify-content: flex-start;
    }

    .public-footer .footer-footer {
        width: calc(100% - 1.5rem);
    }
}

/* Content resilience: long editorial text, dense deadlines and commerce cards */
.festival-detail-content .mud-tabs-tabbar {
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
}

.festival-detail-content .mud-tabs-tabbar-content {
    min-width: max-content;
}

.festival-detail-content .mud-tab {
    flex: 0 0 auto;
    white-space: nowrap;
}

.festival-detail-text,
.festival-detail-text .mud-tab-panel,
.rich-content-section,
.read-more-shell {
    min-width: 0;
    max-width: 100%;
}

.festival-detail-text .mud-tab-panel {
    overflow-wrap: anywhere;
    word-break: normal;
}

.festival-detail-text p,
.rich-content-section p,
.rich-content-section li,
.read-more-content {
    line-height: 1.8;
    overflow-wrap: anywhere;
    word-break: normal;
}

.festival-detail-text img,
.rich-content-section img,
.read-more-content img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-sm);
}

.festival-detail-text table,
.rich-content-section table,
.read-more-content table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
}

.read-more-shell {
    position: relative;
}

.read-more-content {
    max-height: none;
    transition: max-height var(--motion-normal) ease;
}

.read-more-content.is-collapsed {
    max-height: 15rem;
    overflow: hidden;
    mask-image: linear-gradient(to bottom, #000 78%, transparent 100%);
}

.read-more-content.is-expanded {
    max-height: none;
}

.read-more-toggle {
    min-height: 2.2rem;
    margin-top: .35rem;
    padding-inline: .35rem;
    font-weight: 800;
}

.festival-side-card {
    min-width: 0;
    overflow: hidden;
}

.festival-categories-list {
    margin: 0;
    padding-inline-start: 1.3rem;
}

.festival-categories-list li {
    min-width: 0;
    gap: .25rem;
    overflow-wrap: anywhere;
}

.festival-categories-list li p {
    line-height: 1.45;
}

.festival-categories-list .fees {
    max-width: 100%;
    align-items: flex-end;
}

.festival-categories-list .fees span {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: end;
}

.festival-timeline {
    max-width: 100%;
    margin: 0;
    padding: .5rem .75rem 1rem;
    overflow: hidden;
}

.festival-timeline-card {
    padding-inline: .5rem;
}

.festival-dashboard-timeline {
    min-width: 0;
}

.timeline-heading {
    padding: .25rem .75rem .75rem;
}

.festival-timeline-item {
    min-width: 0;
    width: 100%;
}

.festival-timeline .mud-timeline-item-content {
    min-width: 0;
    width: 100%;
    max-width: 100%;
    padding: .65rem .85rem .65rem 1rem;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, .82);
    overflow-wrap: anywhere;
}

.festival-timeline-item--current .mud-timeline-item-content {
    border-color: rgba(255, 131, 77, .38);
    background: linear-gradient(135deg, rgba(255, 131, 77, .1), rgba(255, 255, 255, .92));
}

.timeline-entry {
    display: grid;
    gap: .22rem;
    min-width: 0;
    padding-inline-start: .2rem;
}

.timeline-entry .mud-typography {
    margin: 0;
}

.timeline-entry__date,
.timeline-entry__name {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
}

.timeline-entry__date {
    font-weight: 700;
}

.festival-timeline .mud-typography {
    line-height: 1.45;
    overflow-wrap: anywhere;
}

@media (max-width: 600px) {
    .festival-timeline-card {
        padding-inline: .25rem;
    }

    .festival-timeline {
        padding-inline: .25rem;
    }

    .festival-timeline .mud-timeline-item-content {
        padding-inline: .7rem;
    }
}

.marketplace-product-card__title {
    min-height: 3.3rem;
    overflow-wrap: anywhere;
}

.marketplace-product-card__title a {
    display: -webkit-box;
    overflow: hidden;
    color: inherit;
    line-height: 1.4;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.marketplace-product-card__actions {
    display: flex;
    align-items: stretch;
    gap: .35rem;
    min-height: 3.4rem;
    margin-top: auto;
}

.marketplace-product-card__actions .mud-button-root {
    min-width: 0;
    flex: 1 1 0;
    white-space: normal;
}

.ticket-list {
    margin: 0;
}

.ticket-list > .mud-grid-item {
    min-width: 0;
}

.ticket-market-grid .ticket {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
}

.ticket-market-grid .ticket .mud-card-content {
    flex: 1 1 auto;
}

.ticket-market-grid .ticket .mud-grid-item {
    min-width: 0;
}

.ticket-market-grid .ticket .mud-typography {
    overflow-wrap: anywhere;
    word-break: normal;
}

.ticket-market-grid .ticket-card__actions {
    margin-top: auto;
    padding: .5rem .75rem .75rem;
}

.ticket-market-grid .ticket-card__actions .mud-button-root {
    min-height: 2.6rem;
}

/* Ticket offers: clear purchase information with a responsive, compact layout. */
.ticket-offer-card { overflow: hidden; border: 1px solid rgba(31,78,91,.14); border-radius: 1.15rem; background: #fff; box-shadow: 0 .7rem 1.8rem rgba(31,60,67,.08); }
.ticket-offer-card__layout { display: grid; grid-template-columns: minmax(15rem,.78fr) minmax(0,1.55fr); min-width: 0; }
.ticket-offer-card__summary { display: flex; min-width: 0; flex-direction: column; gap: .7rem; padding: 1.4rem 1.5rem; color: #fff; background: linear-gradient(145deg,#214f5c,#123541); }
.ticket-offer-card__badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.ticket-offer-card__chip { border-radius: 999px; font-weight: 750; }
.ticket-offer-card__summary .ticket-offer-card__chip.mud-chip-outlined { color: rgba(255,255,255,.9); border-color: rgba(255,255,255,.35); }
.ticket-offer-card__eyebrow { margin-top: .3rem; color: rgba(255,255,255,.72); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; overflow-wrap: anywhere; }
.ticket-offer-card__title { color: #fff; font-weight: 850; line-height: 1.2; overflow-wrap: anywhere; }
.ticket-offer-card__price { margin-top: auto; padding-top: .7rem; border-top: 1px solid rgba(255,255,255,.18); }
.ticket-offer-card__price .mud-typography-caption { color: rgba(255,255,255,.7); }
.ticket-offer-card__price .mud-typography-h4 { color: #ffd166; font-weight: 850; }
.ticket-offer-card__availability { display: flex; align-items: center; gap: .45rem; color: #d8f3dc; font-size: .88rem; font-weight: 750; }
.ticket-offer-card__details { display: flex; min-width: 0; flex-direction: column; gap: 1rem; padding: 1.4rem 1.5rem 1.15rem; }
.ticket-offer-card__header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid rgba(31,78,91,.1); }
.ticket-offer-card__header .mud-typography-h6 { color: #203846; font-weight: 800; }
.ticket-offer-card__festival { max-width: 52%; color: #55717a; overflow-wrap: anywhere; text-align: right; }
.ticket-offer-card__stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.ticket-offer-card__stat, .ticket-offer-card__venue { display: flex; min-width: 0; align-items: flex-start; gap: .65rem; padding: .75rem; border: 1px solid rgba(31,78,91,.1); border-radius: .75rem; background: #f7fbfa; }
.ticket-offer-card__stat > .mud-icon-root, .ticket-offer-card__venue > .mud-icon-root { flex: 0 0 auto; color: #1f6970; }
.ticket-offer-card__stat .mud-typography-caption, .ticket-offer-card__venue .mud-typography-caption { color: #668087; font-weight: 700; }
.ticket-offer-card__stat .mud-typography-body2, .ticket-offer-card__venue .mud-typography-body2 { color: #203846; font-weight: 750; overflow-wrap: anywhere; }
.ticket-offer-card__description { color: #536b72; line-height: 1.55; overflow-wrap: anywhere; }
.ticket-offer-card__venue { background: #fff; }
.ticket-offer-card__venue .mud-link { color: #1f6970; font-weight: 750; overflow-wrap: anywhere; }
.ticket-offer-card__actions { margin-top: auto; padding: .2rem 0 0; }
.ticket-offer-card__actions .mud-button-root { min-height: 2.8rem; border-radius: .8rem; font-weight: 800; text-transform: none; }
@media (max-width: 700px) {
    .ticket-offer-card__layout { grid-template-columns: 1fr; }
    .ticket-offer-card__summary { padding: 1.15rem 1.2rem; }
    .ticket-offer-card__details { padding: 1.15rem 1.2rem 1rem; }
    .ticket-offer-card__header { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .ticket-offer-card__festival { max-width: none; text-align: left; }
}
@media (max-width: 430px) {
    .ticket-offer-card__stats { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .festival-detail-content > .mud-tabs {
        padding: .25rem;
    }

    .festival-detail-content .mud-tabs-tabbar {
        margin-inline: -.25rem;
        padding-inline: .25rem;
    }

    .festival-detail-content .mud-tab {
        min-width: max-content;
        padding-inline: .7rem;
    }

    .festival-categories-list {
        padding-inline-start: 1rem;
    }

    .festival-categories-list li {
        align-items: flex-start;
    }

    .festival-categories-list .fees,
    .festival-categories-list .fees span {
        width: 100%;
        align-items: flex-start;
        text-align: start;
    }

    .marketplace-product-card__actions {
        flex-wrap: wrap;
    }

    .marketplace-product-card__actions .mud-button-root {
        flex-basis: 100%;
    }

    .workspace-form-card {
        border-radius: var(--radius-md);
    }

    .workspace-action-bar {
        align-items: stretch;
        flex-direction: column;
        padding-inline: .5rem;
    }

    .workspace-action-bar .mud-button-group {
        display: flex;
        width: 100%;
        flex-direction: column;
        gap: .35rem;
    }

    .workspace-action-bar .mud-button-root {
        width: 100%;
        min-height: 2.75rem;
    }

    .dashboard-profile-card {
        align-items: stretch;
    }

    .dashboard-profile-card .mud-avatar {
        margin-inline: auto;
    }

    .dashboard-page-shell table {
        min-width: 32rem;
    }

    .cart-summary-card {
        position: static;
    }

    .payment-result-hero {
        flex-direction: column;
    }

    .payment-result-actions {
        flex-direction: column;
    }

    .payment-result-actions .mud-button-root {
        width: 100%;
    }

    .cart-festival-group {
        flex-direction: column;
    }

    .cart-festival-header {
        width: 100%;
    }

    .cart-festival-header > .mud-image {
        width: 5.5rem !important;
        height: 5.5rem !important;
    }

    .cart-festival-group > .mud-grid {
        width: 100%;
    }

    .cart-items-table {
        min-width: 0;
    }

    .cart-items-table .cart-item-type-cell {
        width: 5.5rem;
    }

    .cart-items-table .cart-item-price-cell {
        width: 5.5rem;
    }

    .mud-card-content,
    .mud-paper,
    .mud-alert,
    .mud-dialog-content {
        padding-inline: clamp(.75rem, 3vw, 1.25rem);
    }

    .mud-card-header,
    .mud-card-actions,
    .mud-dialog-title,
    .mud-dialog-actions,
    .mud-expansion-panel-header {
        padding-inline: .75rem;
    }

    .mud-card-content table,
    .mud-paper table,
    .mud-dialog-content table {
        min-width: 30rem;
    }

    .dashboard-page-shell .mud-paper.mud-theme-white {
        align-items: flex-start;
        padding: .8rem;
    }

    .project-media-viewer__header {
        padding-inline: .75rem;
    }

    .project-media-block {
        padding: .75rem;
    }

    .project-media-document {
        min-height: 32rem;
    }

    .festival-timeline .mud-timeline-item-content {
        padding: .65rem .7rem .65rem .85rem;
    }

}

@media (max-width: 575.98px) {
    .public-layout .festival-sponsored-box .festival-featured-tile {
        min-height: 12rem;
    }

    .public-layout .festival-featured-tile__media,
    .public-layout .festival-featured-tile__media img {
        height: 10rem;
        min-height: 10rem;
    }
}

/* End-of-file responsive contract. */
.main-mobile-header-row,
.main-desktop-header-row,
.public-header-row,
.festival-mobile-header-row,
.festival-desktop-header-row {
    min-width: 0;
    align-items: center;
    flex-wrap: nowrap !important;
}

.public-layout .public-header-row > * {
    width: auto;
    max-width: none;
    flex-shrink: 0;
}

.public-layout .public-header-row > .public-nav {
    flex: 1 1 auto;
    min-width: 0;
}

.public-layout .public-header-row > .mud-spacer {
    flex: 1 1 auto;
    min-width: 1rem;
}

@media (min-width: 992px) {
    .main-layout .main-mobile-header-row,
    .public-layout .public-mobile-menu-button,
    .public-layout .public-brand--mobile,
    .festival-main-appbar .festival-mobile-header-row {
        display: none !important;
    }

    .main-layout .main-desktop-header-row,
    .public-layout .public-brand--desktop,
    .public-layout .public-desktop-nav,
    .festival-main-appbar .festival-desktop-header-row {
        display: flex !important;
    }

    .main-layout .main-desktop-header-row,
    .public-layout .public-desktop-nav,
    .festival-main-appbar .festival-desktop-header-row {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .main-layout .main-mobile-header-row,
    .public-layout .public-mobile-menu-button,
    .public-layout .public-brand--mobile,
    .festival-main-appbar .festival-mobile-header-row {
        display: flex !important;
    }

    .main-layout .main-desktop-header-row,
    .public-layout .public-brand--desktop,
    .public-layout .public-desktop-nav,
    .festival-main-appbar .festival-desktop-header-row {
        display: none !important;
    }
}

.project-specification .project-detail {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.project-specification .project-detail > .mud-grid-item {
    min-width: 0;
    width: auto;
    max-width: none;
    padding: 1rem;
    border: 1px solid rgba(51, 92, 103, .12);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .84);
}

/* Finance workspace: calm ledger surfaces with the HiSubmit teal/coral palette. */
.settlement-page-shell {
    border: 1px solid rgba(51, 92, 103, .12);
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 95% 0%, rgba(255, 121, 84, .10), transparent 28%),
        linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,248,249,.96));
}

.settlement-card {
    border-color: rgba(51, 92, 103, .13) !important;
    border-radius: 1.1rem !important;
    background: rgba(255,255,255,.88) !important;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.settlement-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 121, 84, .42) !important;
    box-shadow: 0 .8rem 2rem rgba(31, 54, 63, .10);
}

.settlement-comparison-card {
    border-radius: 1.1rem;
    border: 1px solid rgba(255, 121, 84, .25);
    background: linear-gradient(135deg, rgba(255, 247, 242, .98), rgba(237, 246, 247, .95));
}

.project-specification .project-detail h6,
.project-specification .project-detail .mud-typography-h6,
.project-specification .project-detail .mud-list-item {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
    .project-specification .project-detail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .project-specification {
        margin-inline: .5rem;
        padding: .85rem;
        border-radius: var(--radius-md);
    }

    .project-specification .project-detail {
        grid-template-columns: 1fr;
    }
}

/* Final global form rhythm and contrast contract.
   Keep this block at the actual end so legacy page-specific rules cannot
   reintroduce clipped text, low contrast, or inconsistent control spacing. */
:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell) {
    color: var(--text-strong);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-card, .mud-paper, .mud-dialog, .mud-alert, .mud-expansion-panel) {
    color: var(--text-strong);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-card-header, .mud-card-content, .mud-dialog-content, .mud-alert, .mud-expansion-panel-content) {
    padding-block: clamp(.75rem, 1.7vw, 1.25rem);
    padding-inline: clamp(.85rem, 2vw, 1.5rem);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-card-header, .mud-card-content, .mud-dialog-content, .mud-alert, .mud-expansion-panel-content)
    :where(.mud-typography, label, p, li, td, th) {
    color: var(--text-strong);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-input-label, .mud-input-slot, .mud-select-input, .mud-input-helper-text) {
    color: var(--text-strong);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-input-control, .mud-select, .mud-autocomplete, .mud-picker) {
    margin-block: .35rem;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-input-slot, .mud-select-input) {
    min-height: 1.45rem;
    padding-inline: .15rem;
    overflow-wrap: anywhere;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-button-root, .mud-icon-button, .mud-chip, .mud-tab) {
    line-height: 1.25;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-button-root, .mud-chip) {
    white-space: normal;
    overflow-wrap: anywhere;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-grid-item, .mud-table-cell, .mud-list-item, .mud-form) {
    min-width: 0;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-checkbox, .mud-switch) {
    margin: 0;
    min-height: 2rem;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-checkbox-content, .mud-switch-label) {
    padding-inline-start: .3rem;
    color: var(--text-strong);
    line-height: 1.4;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table, .mud-simple-table) {
    border-color: var(--border-soft);
    background: var(--surface-card);
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-head .mud-table-cell, .mud-table-cell) {
    padding: .7rem .8rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-divider) {
    margin-block: 1rem;
    border-color: var(--border-soft);
}

@media (max-width: 767.98px) {
    :where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
        :where(.mud-card-header, .mud-card-content, .mud-dialog-content, .mud-alert) {
        padding-inline: .85rem;
    }

    :where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
        :where(.mud-button-group, .mud-button-root) {
        gap: .35rem;
    }
}

/* Final table overrides: keep long cell content inside the table viewport. */
:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-container, .mud-simple-table-container) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-cell, .mud-simple-table td, .mud-simple-table th) {
    max-width: 24rem;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    vertical-align: middle;
}

:where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
    :where(.mud-table-cell > *, .mud-simple-table td > *) {
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    :where(.main-layout, .public-layout, .festival-main-layout, .dashboard-page-shell)
        :where(.mud-table-root, .mud-simple-table table) {
        min-width: 36rem;
    }
}

/* Final shell contract.
   style.css remains available for legacy widgets and page-specific visuals.
   These selectors are the single source of truth for application shell geometry,
   content width and overflow across authenticated, festival and public layouts. */
.hs-app-shell,
.hs-public-shell {
    min-width: 0;
    min-height: 100vh;
}

.hs-app-shell > .mud-main-content,
.hs-public-shell > .hs-public-content {
    min-width: 0;
    width: 100%;
}

.hs-page-content,
.hs-public-content {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.main-layout .hs-page-content {
    width: min(100%, var(--content-width));
    margin-inline: auto;
}

.festival-main-layout {
    background: var(--surface-base);
}

.festival-main-layout > .mud-main-content {
    min-height: calc(100vh - var(--hs-header-height));
    overflow-x: clip;
}

.festival-main-layout .hs-page-content {
    width: min(100%, var(--content-width));
    margin-inline: auto;
}

.festival-main-layout .festival-main-appbar {
    position: sticky;
    top: 0;
    z-index: var(--hs-z-header);
}

.public-layout .hs-public-content {
    overflow-x: clip;
}

/* Shared page alignment and control contrast.
   Keep page shells inside the viewport when a persistent drawer is present,
   and make every MudBlazor input readable against the application surface. */
:where(.main-layout, .festival-main-layout) .mud-main-content,
:where(.main-layout, .festival-main-layout) .hs-page-content,
:where(.public-layout) .hs-public-content {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: clip;
}

:where(.main-layout, .festival-main-layout) .mud-container,
:where(.public-layout) .mud-container {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input-control, .mud-select, .mud-autocomplete, .mud-picker, .mud-field) {
    min-width: 0;
    max-width: 100%;
}

:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input.mud-input-filled, .mud-input-root.mud-input-filled, .mud-select .mud-input-control) {
    background: #eef4f5 !important;
    border: 1px solid #c5d4d8;
    border-radius: 10px;
    color: #17212b !important;
}

:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input.mud-input-filled:hover, .mud-input-root.mud-input-filled:hover,
        .mud-input.mud-input-filled:focus-within, .mud-input-root.mud-input-filled:focus-within,
        .mud-select .mud-input-control:focus-within) {
    background: #e6f0f1 !important;
    border-color: #335c67;
}

:where(.main-layout, .festival-main-layout, .public-layout)
    :where(.mud-input-label, .mud-input-slot, .mud-select-input, .mud-input-helper-text) {
    color: #17212b !important;
}

.news-editor-card {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.news-editor-card .mud-card-content,
.news-editor-card .mud-grid,
.news-editor-card .mud-grid-item,
.news-editor-content,
.news-editor-field {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.news-editor-field .ql-toolbar,
.news-editor-field .ql-container {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.news-editor-field .ql-toolbar {
    overflow-x: auto;
    scrollbar-width: thin;
}

.news-editor-field .ql-toolbar .ql-formats {
    flex: 0 0 auto;
}

.news-editor-field .ql-container {
    overflow: hidden;
}

.news-editor-field .ql-editor {
    min-height: 20rem;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 767.98px) {
    .main-layout .hs-page-content,
    .festival-main-layout .hs-page-content,
    .public-layout .hs-public-content {
        width: 100%;
    }

    .news-editor-content {
        padding-inline: .75rem !important;
    }
}

.cookie-consent {
    position: fixed;
    z-index: 1600;
    inset-inline: 1rem;
    bottom: 1rem;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.cookie-consent__card {
    display: flex;
    width: min(100%, 68rem);
    gap: 1rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(51, 92, 103, .22);
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 1.5rem 4rem rgba(23, 33, 43, .22);
    pointer-events: auto;
}

.cookie-consent__icon {
    display: grid;
    flex: 0 0 2.8rem;
    width: 2.8rem;
    height: 2.8rem;
    place-items: center;
    border-radius: .9rem;
    color: #335c67;
    background: #e7f1f2;
}

.cookie-consent__content {
    flex: 1 1 auto;
    min-width: 0;
}

.cookie-consent__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.cookie-consent__eyebrow,
.legal-hero .festival-eyebrow {
    display: block;
    color: #335c67;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.cookie-consent h2 {
    margin: .2rem 0 0;
    color: #17212b;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    line-height: 1.3;
}

.cookie-consent p {
    max-width: 56rem;
    margin: .55rem 0 0;
    color: #52636a;
    font-size: .9rem;
    line-height: 1.6;
}

.cookie-consent__policy-link {
    flex: 0 0 auto;
    color: #335c67;
    font-size: .82rem;
    font-weight: 700;
}

.cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .6rem;
    margin-top: 1rem;
}

.cookie-consent__button {
    min-height: 2.55rem;
    padding: .6rem 1rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font: inherit;
    font-size: .84rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.cookie-consent__button:hover,
.cookie-consent__button:focus-visible {
    transform: translateY(-1px);
}

.cookie-consent__button--quiet {
    color: #335c67;
    background: transparent;
}

.cookie-consent__button--outline {
    color: #335c67;
    border-color: #b9cdd1;
    background: #fff;
}

.cookie-consent__button--primary {
    color: #fff;
    background: #335c67;
    box-shadow: 0 .45rem 1rem rgba(51, 92, 103, .2);
}

.cookie-consent__preferences {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.cookie-consent__option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    min-height: 4.4rem;
    padding: .75rem .85rem;
    border: 1px solid #d7e2e4;
    border-radius: .8rem;
    background: #f7fafb;
    cursor: pointer;
}

.cookie-consent__option strong,
.cookie-consent__option small {
    display: block;
}

.cookie-consent__option strong {
    color: #17212b;
    font-size: .86rem;
}

.cookie-consent__option small {
    margin-top: .2rem;
    color: #63757b;
    font-size: .72rem;
    line-height: 1.4;
}

.cookie-consent__option input {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    accent-color: #335c67;
}

.cookie-consent__option--locked {
    cursor: not-allowed;
    opacity: .82;
}

.cookie-policy-page .legal-hero {
    margin-bottom: 1rem;
    padding: 2rem;
    border-radius: 1.25rem;
    color: #fff;
    background: linear-gradient(135deg, #335c67, #173b46);
    box-shadow: 0 1rem 2.5rem rgba(51, 92, 103, .18);
}

.cookie-policy-page .legal-hero .festival-eyebrow,
.cookie-policy-page .legal-hero .mud-typography,
.cookie-policy-page .legal-hero .mud-typography-caption {
    color: #fff !important;
}

.cookie-policy-table {
    overflow: hidden;
    border: 1px solid #d7e2e4;
    border-radius: .9rem;
}

.cookie-policy-row {
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr) 7rem;
    gap: 1rem;
    align-items: start;
    padding: .85rem 1rem;
    border-top: 1px solid #e4ecee;
    color: #40535a;
    font-size: .86rem;
    line-height: 1.5;
}

.cookie-policy-row:first-child {
    border-top: 0;
}

.cookie-policy-row--head {
    color: #173b46;
    background: #eef5f6;
    font-weight: 800;
}

.cookie-policy-row strong {
    color: #17212b;
}

.cookie-policy-row em {
    color: #335c67;
    font-style: normal;
    font-weight: 700;
}

@media (max-width: 700px) {
    .cookie-consent {
        inset-inline: .65rem;
        bottom: .65rem;
    }

    .cookie-consent__card {
        display: block;
        padding: 1rem;
    }

    .cookie-consent__icon {
        display: none;
    }

    .cookie-consent__heading {
        display: block;
    }

    .cookie-consent__policy-link {
        display: inline-block;
        margin-top: .5rem;
    }

    .cookie-consent__preferences {
        grid-template-columns: 1fr;
    }

    .cookie-consent__actions {
        justify-content: stretch;
    }

    .cookie-consent__button {
        flex: 1 1 100%;
    }

    .cookie-policy-page .legal-hero {
        padding: 1.35rem;
    }

    .cookie-policy-row {
        grid-template-columns: 1fr;
        gap: .15rem;
    }

    .cookie-policy-row--head {
        display: none;
    }
}

/* Compact floating cookie prompt */
.cookie-consent {
    inset-inline: auto 1.25rem;
    bottom: 1.25rem;
    width: min(24rem, calc(100vw - 2.5rem));
    justify-content: flex-end;
}

.cookie-consent__card {
    display: block;
    width: 100%;
    padding: 1.1rem;
    border-radius: 1rem;
}

.cookie-consent__icon {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    margin-bottom: .7rem;
}

.cookie-consent__heading {
    display: block;
}

.cookie-consent__policy-link {
    display: inline-block;
    margin-top: .45rem;
}

.cookie-consent p {
    margin-top: .65rem;
    font-size: .82rem;
    line-height: 1.5;
}

.cookie-consent__preferences {
    grid-template-columns: 1fr;
    gap: .5rem;
    margin-top: .8rem;
}

.cookie-consent__option {
    min-height: 3.6rem;
    padding: .65rem .7rem;
}

.cookie-consent__option small {
    font-size: .68rem;
}

.cookie-consent__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .45rem;
    margin-top: .85rem;
}

.cookie-consent__button {
    min-height: 2.35rem;
    padding: .5rem .55rem;
    font-size: .75rem;
}

.cookie-consent__button--primary {
    grid-column: span 2;
}

@media (max-width: 700px) {
    .cookie-consent {
        inset-inline: .65rem;
        bottom: .65rem;
        width: auto;
    }

    .cookie-consent__card {
        padding: .9rem;
    }

    .cookie-consent__icon {
        display: none;
    }

    .cookie-consent__button {
        flex: initial;
    }
}

/* HiSubmit visual system refresh (2026-09-06)
   This final layer keeps the existing component and route structure while
   giving public, dashboard and festival surfaces one consistent visual rhythm. */
:root {
    --brand-primary: #214b59;
    --brand-primary-hover: #163640;
    --brand-accent: #f07f5a;
    --brand-accent-hover: #d96543;
    --surface-base: #f7f6f2;
    --surface-card: #ffffff;
    --surface-muted: #edf2f1;
    --text-strong: #17262b;
    --text-muted: #65757b;
    --border-soft: rgba(33, 75, 89, .14);
    --shadow-soft: 0 1.25rem 3.5rem rgba(23, 38, 43, .09);
    --shadow-card: 0 .65rem 1.8rem rgba(23, 38, 43, .07);
    --radius-sm: .65rem;
    --radius-md: 1rem;
    --radius-lg: 1.5rem;
}

html {
    scroll-behavior: smooth;
}

body {
    min-width: 0;
    background:
        radial-gradient(circle at 8% 0%, rgba(240, 127, 90, .08), transparent 28rem),
        radial-gradient(circle at 92% 8%, rgba(33, 75, 89, .07), transparent 30rem),
        var(--surface-base);
    color: var(--text-strong);
    font-family: "Open Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-rendering: optimizeLegibility;
}

body,
.mud-typography,
.mud-input,
.mud-button-root,
.mud-table,
.mud-dialog {
    letter-spacing: .005em;
}

h1, h2, h3, h4, h5, h6,
.mud-typography-h1,
.mud-typography-h2,
.mud-typography-h3,
.mud-typography-h4,
.mud-typography-h5,
.mud-typography-h6 {
    color: var(--text-strong);
    letter-spacing: -.025em;
    line-height: 1.15;
}

a {
    color: var(--brand-primary);
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[role="link"]:focus-visible,
.mud-button-root:focus-visible,
.mud-icon-button:focus-visible,
.mud-input-control:focus-within {
    outline: 3px solid rgba(240, 127, 90, .42);
    outline-offset: 3px;
}

.hs-public-shell,
.hs-app-shell,
.public-layout,
.main-layout,
.festival-main-layout {
    min-width: 0;
    min-height: 100vh;
    background: transparent;
}

.hs-page-content,
.hs-public-content {
    width: min(100%, var(--content-width));
    min-width: 0;
    margin-inline: auto;
}

.hs-page-content {
    padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

.public-announcement {
    background: var(--brand-primary);
    color: #fff;
}

.public-announcement__inner {
    width: min(100% - 2rem, var(--content-width));
    min-height: 2.35rem;
    margin-inline: auto;
    padding: .45rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: .76rem;
    line-height: 1.35;
}

.public-announcement__inner > span,
.public-announcement__inner > a {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
}

.public-announcement__inner a {
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.public-announcement__inner a:hover {
    color: #ffd5c8;
}

.hs-public-header,
.main-header,
.festival-main-appbar {
    border-bottom: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, .9) !important;
    box-shadow: 0 .5rem 1.8rem rgba(23, 38, 43, .06) !important;
    backdrop-filter: blur(18px);
}

.public-header-row,
.main-desktop-header-row,
.main-mobile-header-row,
.festival-desktop-header-row,
.festival-mobile-header-row {
    min-width: 0;
}

.public-brand,
.public-brand--desktop,
.public-brand--mobile {
    min-width: 0;
}

.public-brand span {
    color: var(--brand-primary);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
}

.public-nav-link,
.menu-items .mud-button-root {
    border-radius: var(--radius-pill);
    color: var(--text-strong) !important;
    font-size: .82rem;
    font-weight: 700;
    transition: background var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) ease;
}

.public-nav-link:hover,
.public-nav-link:focus-visible,
.menu-items .mud-button-root:hover,
.menu-items .mud-button-root:focus-visible {
    color: var(--brand-primary) !important;
    background: rgba(33, 75, 89, .08);
    transform: translateY(-1px);
}

.public-nav-link--featured,
.public-nav-cta {
    background: rgba(240, 127, 90, .12);
    color: var(--brand-accent-hover) !important;
}

.public-nav-cta {
    border: 1px solid rgba(240, 127, 90, .35);
    border-radius: var(--radius-pill);
    padding: .62rem 1rem;
    font-weight: 800;
}

.page-usage-guide {
    border-inline-start-color: var(--brand-accent);
    background: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(242, 247, 246, .96));
    box-shadow: var(--shadow-card);
}

.page-usage-guide__icon {
    color: var(--brand-accent-hover);
    background: rgba(240, 127, 90, .15);
}

.page-usage-guide__title {
    color: var(--brand-primary);
}

.mud-button-root {
    min-height: 2.65rem;
    border-radius: .72rem;
    font-weight: 700;
    text-transform: none;
    transition: transform var(--motion-fast) ease, box-shadow var(--motion-fast) ease, background var(--motion-fast) ease;
}

.mud-button-root:hover:not(:disabled) {
    transform: translateY(-1px);
}

.mud-button-filled.mud-button-filled-primary,
.mud-button-filled.mud-button-filled-tertiary {
    box-shadow: 0 .45rem 1rem rgba(33, 75, 89, .18);
}

.mud-paper,
.mud-card {
    border-color: var(--border-soft);
    border-radius: var(--radius-md);
}

.public-layout .mud-card,
.hs-page-content > .mud-paper,
.dashboard-page-shell .mud-paper,
.dashboard-page-shell .mud-card,
.festival-main-layout .mud-paper,
.festival-main-layout .mud-card {
    box-shadow: var(--shadow-card);
}

.mud-input-control,
.mud-select,
.mud-picker {
    min-width: 0;
}

.mud-input-outlined-border {
    border-color: var(--border-soft) !important;
}

.mud-input-control:hover .mud-input-outlined-border,
.mud-input-control:focus-within .mud-input-outlined-border {
    border-color: var(--brand-primary) !important;
}

.mud-input-label,
.festival-filter-form p,
.dashboard-page-shell label {
    color: var(--text-muted);
    font-weight: 700;
}

.mud-table-container,
.mud-simple-table-container {
    min-width: 0;
    max-width: 100%;
    border-radius: var(--radius-sm);
}

.mud-table thead th {
    color: var(--brand-primary);
    background: var(--surface-muted);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.mud-table tbody tr {
    transition: background var(--motion-fast) ease;
}

.mud-table tbody tr:hover {
    background: rgba(33, 75, 89, .045);
}

.festival-card,
.project-dashboard-card,
.dashboard-section-card {
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-card);
    transition: transform var(--motion-normal) ease, box-shadow var(--motion-normal) ease, border-color var(--motion-normal) ease;
}

.festival-card:hover,
.festival-card:focus-within,
.project-dashboard-card:hover,
.project-dashboard-card:focus-visible,
.dashboard-section-card:hover {
    border-color: rgba(240, 127, 90, .46);
    box-shadow: var(--shadow-soft);
    transform: translateY(-3px);
}

.festival-results-heading,
.festival-filter-heading,
.festival-section-intro {
    gap: 1rem;
}

.festival-results-heading h2,
.festival-filter-heading h2,
.festival-section-intro h2 {
    color: var(--brand-primary);
}

.home-hero {
    background:
        radial-gradient(circle at 78% 25%, rgba(240, 127, 90, .26), transparent 18rem),
        linear-gradient(135deg, #173b46, #214b59 58%, #356b76);
}

.home-hero__primary,
.home-hero__secondary {
    min-height: 2.8rem;
    border-radius: var(--radius-pill);
    font-weight: 800;
}

.home-hero__primary {
    background: var(--brand-accent);
    box-shadow: 0 .7rem 1.4rem rgba(240, 127, 90, .24);
}

.home-hero__primary:hover,
.home-hero__primary:focus-visible {
    background: var(--brand-accent-hover);
}

/* Homepage layout refinement: existing discovery content only. */
.festival-browser-page {
    width: min(100% - 2rem, var(--content-width));
    margin: 0 auto;
    padding-top: clamp(1.5rem, 4vw, 3.25rem);
}

.festival-discovery-search {
    position: relative;
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid rgba(51, 92, 103, .13);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 1.1rem 2.8rem rgba(23, 33, 43, .08);
    backdrop-filter: blur(14px);
}

.festival-discovery-search__input {
    margin: 0;
}

.festival-discovery-search__input .mud-input-control-input-container {
    min-height: 3.35rem;
    border-radius: var(--radius-md);
    background: var(--surface-card);
}

.festival-discovery-search__input .mud-input-outlined-border {
    border-color: rgba(51, 92, 103, .2);
}

.festival-discovery-search__input .mud-input-control:focus-within .mud-input-outlined-border {
    border-color: var(--brand-accent);
    border-width: 2px;
}

.festival-category-pills {
    display: flex;
    gap: .55rem;
    overflow-x: auto;
    padding-bottom: .1rem;
    scrollbar-width: thin;
}

.festival-category-pills .mud-button-root {
    min-width: max-content;
    min-height: 2.45rem;
    border-radius: var(--radius-pill);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .01em;
}

.festival-section-intro,
.festival-filter-heading,
.festival-results-heading {
    align-items: end;
    gap: 1rem;
}

.festival-section-intro {
    margin-top: clamp(2.75rem, 6vw, 5rem);
}

.festival-section-intro--sponsored {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-soft);
}

.festival-section-note,
.festival-results-hint {
    max-width: 28rem;
    color: var(--text-muted);
    font-size: .9rem;
    line-height: 1.55;
}

.festival-featured-tile {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--surface-card);
    box-shadow: var(--shadow-soft);
    transition: transform var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.festival-featured-tile:hover,
.festival-featured-tile:focus-visible {
    transform: translateY(-.3rem);
    box-shadow: 0 1.25rem 2.4rem rgba(23, 33, 43, .16);
}

.festival-featured-tile__media {
    display: grid;
    min-height: 10.5rem;
    place-items: center;
    padding: 1.25rem;
    background: linear-gradient(135deg, rgba(51, 92, 103, .06), rgba(255, 131, 77, .12));
}

.festival-featured-tile__media img {
    max-width: 100%;
    max-height: 8rem;
    object-fit: contain;
}

.festival-filter-panel {
    margin-top: clamp(3rem, 7vw, 5.5rem);
    padding: clamp(1.25rem, 3vw, 2.25rem);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(246, 249, 249, .88));
    box-shadow: 0 1.1rem 2.8rem rgba(23, 33, 43, .06);
}

.festival-filter-heading {
    padding-bottom: 1.15rem;
    border-bottom: 1px solid var(--border-soft);
}

.festival-filter-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
}

.festival-filter-count {
    color: var(--brand-primary);
    font-size: 1.05rem;
    font-weight: 800;
}

.festival-filter-count span {
    color: var(--text-muted);
    font-size: .78rem;
    font-weight: 600;
}

.festival-filter-form {
    margin-top: .1rem;
}

.festival-filter-form .mud-typography-subtitle1 {
    margin-bottom: .45rem;
    color: var(--brand-primary);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .025em;
}

.festival-filter-form .mud-input-control-input-container,
.festival-filter-form .mud-picker {
    background: var(--surface-card);
}

.festival-filter-range {
    padding-top: 1.15rem;
    border-top: 1px solid var(--border-soft);
}

.festival-results-heading {
    margin-top: clamp(3rem, 7vw, 5.5rem);
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--border-soft);
}

.festival-results-grid {
    margin-top: 1.35rem !important;
}

.festival-results-grid > .mud-grid-item {
    display: flex;
}

.festival-results-grid .festival-card {
    display: flex;
    width: 100%;
    flex-direction: column;
    overflow: hidden;
    background: var(--surface-card);
}

.festival-results-grid .festival-card .mud-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1.25rem;
}

.festival-results-grid .festival-card .mud-card-content > .d-relative {
    margin: -1.25rem -1.25rem 1.2rem;
    padding: 1rem;
    background: linear-gradient(145deg, rgba(51, 92, 103, .045), rgba(255, 131, 77, .075));
}

.festival-results-grid .festival-card .mud-card-actions {
    margin-top: auto !important;
    padding: .85rem 1.15rem 1.05rem;
    border-top: 1px solid var(--border-soft);
    background: rgba(51, 92, 103, .025);
}

.festival-results-grid .festival-card:focus-visible {
    outline: 3px solid rgba(255, 131, 77, .48);
    outline-offset: 3px;
}

@media (max-width: 767.98px) {
    .festival-browser-page {
        width: min(100% - 1.25rem, var(--content-width));
        padding-top: 1.25rem;
    }

    .festival-discovery-search,
    .festival-filter-panel {
        padding: 1rem;
        border-radius: var(--radius-md);
    }

    .festival-section-intro,
    .festival-filter-heading,
    .festival-results-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .festival-filter-toolbar {
        justify-content: flex-start;
    }

    .festival-filter-range {
        padding-inline: .75rem !important;
    }

    .festival-results-grid .festival-card .mud-card-actions {
        flex-wrap: wrap;
    }

    .festival-results-grid .festival-card .mud-card-actions > div,
    .festival-results-grid .festival-card .mud-card-actions .mud-button-root {
        flex: 1 1 100%;
    }
}

.side-menu {
    background: var(--surface-card);
    box-shadow: 1rem 0 3rem rgba(23, 38, 43, .18);
}

.side-menu-bac {
    background: rgba(23, 38, 43, .48);
    backdrop-filter: blur(3px);
}

.main-drawer,
.festival-mobile-drawer {
    border-inline-end: 1px solid var(--border-soft);
    background: var(--surface-card);
    box-shadow: 1rem 0 3rem rgba(23, 38, 43, .14);
}

.main-drawer .mud-nav-link,
.festival-mobile-drawer .mud-nav-link {
    min-height: 2.7rem;
    margin: .18rem .55rem;
    border-radius: .7rem;
}

.main-drawer .mud-nav-link:hover,
.main-drawer .mud-nav-link.active,
.festival-mobile-drawer .mud-nav-link:hover,
.festival-mobile-drawer .mud-nav-link.active {
    color: var(--brand-primary);
    background: rgba(33, 75, 89, .08);
}

@media (max-width: 767.98px) {
    body {
        background: var(--surface-base);
    }

    .public-announcement__inner {
        width: min(100% - 1rem, var(--content-width));
        align-items: flex-start;
        flex-direction: column;
        gap: .2rem;
        padding-block: .55rem;
    }

    .hs-page-content {
        padding-inline: .5rem;
    }

    .public-nav-link,
    .public-nav-cta {
        min-height: 2.8rem;
    }

    .festival-results-heading,
    .festival-filter-heading,
    .festival-section-intro {
        align-items: flex-start;
        flex-direction: column;
    }

    .festival-filter-toolbar {
        width: 100%;
        justify-content: space-between;
    }

    .mud-button-root {
        min-height: 2.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Shared layout safety: cards, dialogs and action groups must remain usable
   when labels wrap, the viewport is narrow, or browser zoom is enabled. */
.mud-card,
.mud-paper,
.mud-dialog,
.mud-table-container {
    min-width: 0;
}

.mud-card-content,
.mud-dialog-content,
.mud-grid-item,
.mud-input-control,
.mud-typography {
    max-width: 100%;
}

.mud-dialog-actions {
    flex-wrap: wrap;
    gap: .55rem;
}

.mud-dialog-actions .mud-button,
.mud-dialog-actions .mud-button-group,
.mud-button-group {
    max-width: 100%;
}

.mud-button-group {
    flex-wrap: wrap;
}

.mud-button-root {
    white-space: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 599.98px) {
    .mud-dialog {
        margin: .5rem;
        width: calc(100% - 1rem);
    }

    .mud-dialog-actions {
        justify-content: stretch;
    }

    .mud-dialog-actions .mud-button,
    .mud-dialog-actions .mud-button-group {
        flex: 1 1 100%;
    }

    .mud-button-group .mud-button-root {
        flex: 1 1 100%;
    }
}

/* Artist-first home canvas: uses the existing homepage structure and artboard. */
.public-layout {
    background:
        radial-gradient(circle at 7% 18%, rgba(255, 115, 91, .19), transparent 20rem),
        radial-gradient(circle at 91% 36%, rgba(93, 63, 211, .13), transparent 23rem),
        linear-gradient(180deg, #fbf7f3 0, #fffdfb 35rem, #f5f2fa 100%);
}

.public-layout .home-hero.festival-header {
    width: min(100% - 2rem, 88rem);
    min-height: clamp(31rem, 47vw, 42rem);
    margin: clamp(1rem, 3vw, 2.5rem) auto 0;
    padding: clamp(2rem, 6vw, 6.5rem);
    border: 0;
    border-radius: 2.25rem;
    background:
        linear-gradient(108deg, rgba(36, 19, 69, .97) 0 45%, rgba(59, 35, 104, .9) 66%, rgba(245, 93, 85, .78) 100%),
        url('/img/vector/artboard.png') center/cover no-repeat;
    box-shadow: 0 2.3rem 5.5rem rgba(51, 24, 85, .25);
}

.public-layout .home-hero::before {
    background:
        linear-gradient(120deg, transparent 0 52%, rgba(255, 255, 255, .09) 52% 53%, transparent 53% 100%),
        radial-gradient(circle at 84% 33%, rgba(255, 213, 112, .72) 0 1.1rem, transparent 1.15rem),
        radial-gradient(circle at 77% 64%, rgba(255, 255, 255, .3) 0 .4rem, transparent .45rem);
    background-size: auto, auto, 3.2rem 3.2rem;
    mask-image: none;
    opacity: .95;
}

.public-layout .home-hero::after {
    position: absolute;
    right: clamp(1.5rem, 8vw, 8rem);
    bottom: clamp(1.5rem, 6vw, 5rem);
    width: clamp(7rem, 14vw, 12rem);
    height: clamp(7rem, 14vw, 12rem);
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 47% 53% 65% 35% / 38% 42% 58% 62%;
    box-shadow: 1.2rem -1.2rem 0 rgba(255, 184, 108, .24), -2rem 2rem 0 rgba(255, 255, 255, .08);
    content: '';
    transform: rotate(18deg);
}

.public-layout .home-hero__content {
    max-width: 42rem;
}

.public-layout .home-hero .festival-eyebrow {
    display: inline-flex;
    width: fit-content;
    padding: .5rem .8rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .1);
    color: #ffe1a8 !important;
    font-size: .7rem;
    letter-spacing: .14em;
}

.public-layout .home-hero h1 {
    max-width: 38rem;
    margin-top: 1.1rem;
    color: #fff8ef;
    font-size: clamp(3.1rem, 7vw, 6.9rem);
    font-weight: 900;
    letter-spacing: -.075em;
    line-height: .88;
    text-shadow: 0 .35rem 1.3rem rgba(24, 10, 49, .28);
}

.public-layout .home-hero__copy {
    max-width: 32rem;
    color: rgba(255, 248, 239, .86);
    font-size: clamp(1rem, 1.4vw, 1.17rem);
}

.public-layout .home-hero__primary,
.public-layout .home-hero__secondary {
    min-height: 3.25rem;
    padding-inline: 1.4rem;
    border-radius: .85rem;
    font-size: .84rem;
    letter-spacing: .02em;
}

.public-layout .home-hero__primary {
    background: #ffd570;
    color: #321d55;
    box-shadow: .5rem .5rem 0 rgba(255, 255, 255, .2);
}

.public-layout .home-hero__primary:hover,
.public-layout .home-hero__primary:focus-visible {
    background: #fff0be;
    color: #321d55;
    transform: translate(.16rem, .16rem);
    box-shadow: .22rem .22rem 0 rgba(255, 255, 255, .2);
}

.public-layout .home-hero__secondary {
    border-color: rgba(255, 255, 255, .5);
    background: rgba(38, 20, 70, .18);
}

.public-layout .home-hero__visual {
    width: min(29vw, 21rem);
    min-width: 12rem;
}

.public-layout .home-hero__visual > .mud-icon-root {
    color: #ffd570;
    font-size: clamp(5.5rem, 11vw, 9rem) !important;
    filter: drop-shadow(.65rem .65rem 0 rgba(247, 101, 88, .65));
}

.public-layout .home-hero__orb--large {
    border: .65rem solid rgba(255, 255, 255, .16);
    box-shadow: 0 0 0 1.4rem rgba(255, 213, 112, .14), 0 0 0 3rem rgba(255, 255, 255, .06);
}

.public-layout .home-hero__orb--small {
    background: #f76558;
    box-shadow: .8rem .8rem 0 rgba(255, 213, 112, .8);
}

.public-layout .festival-browser-page {
    width: min(100% - 2rem, 80rem);
    padding-bottom: clamp(4rem, 10vw, 8rem);
}

.public-layout .festival-discovery-search {
    margin-top: -2.8rem;
    padding: clamp(1rem, 2.5vw, 1.35rem);
    border: 1px solid rgba(61, 32, 100, .15);
    border-radius: 1.25rem;
    background: rgba(255, 254, 251, .93);
    box-shadow: 0 1.6rem 3.5rem rgba(46, 26, 76, .18);
}

.public-layout .festival-discovery-search__input .mud-input-control-input-container {
    min-height: 3.7rem;
    border-radius: .85rem;
}

.public-layout .festival-category-pills {
    justify-content: flex-start;
}

.public-layout .festival-category-pills .mud-button-root {
    border-color: rgba(61, 32, 100, .2);
    color: #42266d;
}

.public-layout .festival-category-pills .mud-button-filled {
    border-color: #402268;
    background: #402268;
    color: #fff8ef;
}

.public-layout .festival-section-intro,
.public-layout .festival-results-heading {
    position: relative;
    padding-bottom: 1.15rem;
    border-bottom: 2px solid rgba(61, 32, 100, .1);
}

.public-layout .festival-section-intro::after,
.public-layout .festival-results-heading::after {
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 5.5rem;
    height: 2px;
    background: linear-gradient(90deg, #f76558, #ffd570);
    content: '';
}

.public-layout .festival-section-intro h2,
.public-layout .festival-results-heading h2,
.public-layout .festival-filter-heading h2 {
    color: #322052;
    font-size: clamp(1.8rem, 3.5vw, 2.7rem);
}

.public-layout .festival-sponsored-box .festival-featured-tile {
    min-height: 15rem;
    border: 0;
    border-radius: 1.1rem;
    box-shadow: 0 1rem 2.4rem rgba(52, 29, 84, .14);
}

.public-layout .festival-sponsored-box .festival-featured-tile:nth-child(2n) {
    transform: translateY(1.25rem);
}

.public-layout .festival-sponsored-box .festival-featured-tile__media {
    min-height: 15rem;
    padding: 1.4rem;
    background: linear-gradient(145deg, #f7d4bd, #fff7df 52%, #d9d0f0);
}

.public-layout .festival-sponsored-box .festival-featured-tile:nth-child(2n) .festival-featured-tile__media {
    background: linear-gradient(145deg, #d5d0ef, #fae4dc 55%, #ffe9a8);
}

.public-layout .festival-sponsored-box .festival-featured-tile__media img {
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 .7rem 1rem rgba(48, 27, 79, .18));
}

.public-layout .festival-sponsored-box .festival-featured-tile:hover {
    transform: translateY(-.45rem) rotate(-.5deg);
}

.public-layout .festival-sponsored-box .festival-featured-tile:nth-child(2n):hover {
    transform: translateY(.8rem) rotate(.5deg);
}

.public-layout .festival-filter-panel {
    border: 0;
    border-radius: 1.4rem;
    background: #332053;
    box-shadow: 0 1.6rem 3.6rem rgba(46, 26, 76, .2);
}

.public-layout .festival-filter-heading {
    border-bottom-color: rgba(255, 255, 255, .16);
}

.public-layout .festival-filter-heading h2,
.public-layout .festival-filter-heading .festival-eyebrow,
.public-layout .festival-filter-count {
    color: #fff8ef !important;
}

.public-layout .festival-filter-count span,
.public-layout .festival-filter-panel .mud-typography-subtitle1 {
    color: rgba(255, 248, 239, .72) !important;
}

.public-layout .festival-filter-panel .mud-input-control-input-container,
.public-layout .festival-filter-panel .mud-picker {
    border-radius: .7rem;
    background: #fffdf9;
}

.public-layout .festival-filter-panel .competition-selector.mud-input-control.mud-select {
    background: #f76558 !important;
}

.public-layout .festival-filter-panel .mud-chip {
    border-color: rgba(255, 213, 112, .65);
    color: #ffe6a4;
}

.public-layout .festival-filter-panel .mud-button-root {
    color: #ffe6a4;
}

.public-layout .festival-filter-range {
    border-top-color: rgba(255, 255, 255, .14);
}

.public-layout .festival-results-grid > .mud-grid-item:nth-child(3n + 2) {
    padding-top: 1.5rem;
}

.public-layout .festival-results-grid .festival-card {
    border: 0;
    border-radius: 1.15rem;
    box-shadow: 0 .9rem 2.1rem rgba(48, 27, 79, .11);
}

.public-layout .festival-results-grid .festival-card .mud-card-content > .d-relative {
    height: 15rem !important;
    margin: -1.25rem -1.25rem 1.35rem;
    background: linear-gradient(145deg, #f7d4bd, #fff6e2 55%, #d8d0ee);
}

.public-layout .festival-results-grid > .mud-grid-item:nth-child(3n + 2) .festival-card .mud-card-content > .d-relative {
    background: linear-gradient(145deg, #d8d0ee, #f8dfde 56%, #ffe7a7);
}

.public-layout .festival-results-grid > .mud-grid-item:nth-child(3n) .festival-card .mud-card-content > .d-relative {
    background: linear-gradient(145deg, #ffe0a5, #f9ece6 52%, #c9dfe1);
}

.public-layout .festival-results-grid .festival-card h5 {
    color: #332053;
    font-size: 1.28rem;
}

.public-layout .festival-results-grid .festival-card .mud-card-actions {
    background: #fff9f3;
}

.public-layout .festival-results-grid .festival-card .mud-button-filled {
    background: #f76558;
}

.public-layout .festival-results-grid .festival-card:hover {
    border-color: transparent;
    box-shadow: 0 1.7rem 3.1rem rgba(48, 27, 79, .2);
    transform: translateY(-.5rem) rotate(-.35deg);
}

.public-layout .home-news-section {
    margin-top: clamp(5rem, 10vw, 9rem);
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 0;
    border-radius: 1.6rem;
    background: #efe8f7;
}

.public-layout .home-news-lead,
.public-layout .home-news-item {
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 .9rem 1.8rem rgba(48, 27, 79, .1);
}

@media (max-width: 767.98px) {
    .public-layout .home-hero.festival-header {
        width: min(100% - 1rem, 88rem);
        min-height: 33rem;
        border-radius: 1.25rem;
        padding: 2rem 1.35rem;
    }

    .public-layout .home-hero h1 {
        font-size: clamp(3.1rem, 16vw, 4.9rem);
    }

    .public-layout .home-hero__visual {
        align-self: flex-end;
        margin-right: 1.5rem;
    }

    .public-layout .festival-browser-page {
        width: min(100% - 1rem, 80rem);
    }

    .public-layout .festival-discovery-search {
        margin-top: -1.25rem;
    }

    .public-layout .festival-sponsored-box .festival-featured-tile:nth-child(2n),
    .public-layout .festival-results-grid > .mud-grid-item:nth-child(3n + 2) {
        padding-top: 0;
        transform: none;
    }

    .public-layout .home-news-section {
        border-radius: 1.1rem;
        padding: 1rem;
    }
}
.faq-box .left .mud-paper { margin-right: 0; min-height: 0; padding: 6px 10px; }
.faq-box .left .mud-paper > div { margin: 0 !important; }
.faq-box .left .mud-paper button { display: block; width: 100%; padding: 0; border: 0; background: transparent; }
.faq-box .left .left-item { min-height: 48px; margin: 0 !important; padding: 5px 0; align-items: center; flex-wrap: nowrap; }
.faq-box .left .left-item .mud-avatar { flex: 0 0 20px; }
.faq-box .left .left-item .mud-typography { min-width: 0; overflow-wrap: anywhere; }

/* Final public-filter overrides: selected values stay readable and the three
   availability switches use one compact, equal-height treatment. */
.public-layout .festival-filter-form .mud-select-input,
.public-layout .festival-filter-form .competition-selector .mud-select-input {
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    color: var(--text-strong) !important;
    font-weight: 600;
    line-height: 1.25rem !important;
    text-align: start;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.public-layout .festival-filter-form > .mud-grid-item.festival-filter-toggle {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    align-self: end;
    min-height: 2.85rem;
    margin-top: 1.7rem;
    padding: .2rem .75rem !important;
    border: 1px solid var(--border-soft);
    border-radius: .75rem;
    background: rgba(255,255,255,.94);
    box-shadow: 0 1px 0 rgba(32,65,76,.03);
}

.public-layout .festival-filter-form > .mud-grid-item.festival-filter-toggle > span {
    min-width: 0;
    overflow: hidden;
    color: var(--text-strong);
    font-size: .9rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-layout .festival-filter-form > .mud-grid-item.festival-filter-toggle .mud-switch {
    flex: 0 0 auto;
    margin: 0 0 0 .65rem;
}

/* Side-card lists use an intentional gutter rather than browser-default list
   spacing, so markers, icons and long content remain aligned. */
.public-layout .festival-detail-sidebar .contact-list {
    margin: .8rem 0 0 !important;
    padding-inline-start: 1.55rem !important;
}

.public-layout .festival-detail-sidebar .contact-list li {
    min-width: 0;
    margin: 0 0 .5rem !important;
    padding-inline-start: .15rem;
    line-height: 1.35;
}

.public-layout .festival-detail-sidebar .contact-list li:last-child {
    margin-bottom: 0 !important;
}

.public-layout .festival-detail-sidebar .contact-list li > a,
.public-layout .festival-detail-sidebar .contact-list li > span {
    display: inline-flex;
    align-items: flex-start;
    gap: .38rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* MudTimeline normally allocates a percentage-width divider.  In narrow cards
   that moves the line and dots away from the content.  A fixed track keeps
   every dot directly on the connector, regardless of title length. */
.festival-timeline {
    position: relative;
    padding: .45rem .4rem .9rem !important;
}

.festival-timeline::before {
    position: absolute;
    z-index: 0;
    top: 1.35rem;
    bottom: 1.35rem;
    left: 1.9rem;
    width: 2px;
    background: var(--border-soft);
    content: "";
}

.festival-timeline .mud-timeline-item {
    display: grid !important;
    grid-template-columns: 3rem minmax(0, 1fr) !important;
    column-gap: .35rem;
    min-width: 0;
    padding: 0 0 .7rem !important;
}

.festival-timeline .mud-timeline-item-content {
    grid-column: 2;
    grid-row: 1;
    margin: 0 !important;
}

.festival-timeline .mud-timeline-item-divider {
    display: flex !important;
    grid-column: 1;
    grid-row: 1;
    z-index: 1;
    width: auto !important;
    min-width: 0 !important;
    align-items: flex-start;
    justify-content: center;
    padding-top: .8rem;
}

.festival-timeline .mud-timeline-item-dot {
    margin: 0 !important;
}

.festival-timeline .mud-timeline-item:last-child {
    padding-bottom: 0 !important;
}

/* Every multiline Mud input receives a visible, accessible green boundary. */
.mud-input-root:has(textarea) {
    border: 1px solid rgba(37, 137, 103, .62) !important;
    border-radius: .65rem !important;
    background: linear-gradient(135deg, rgba(226, 250, 239, .78), rgba(255,255,255,.98)) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.55), 0 0 0 3px rgba(37, 137, 103, .06);
}

.mud-input-control:focus-within .mud-input-root:has(textarea) {
    border-color: #16825e !important;
    box-shadow: 0 0 0 3px rgba(22, 130, 94, .18) !important;
}

@media (max-width: 767.98px) {
    .public-layout .festival-filter-form > .mud-grid-item.festival-filter-toggle {
        margin-top: 1.5rem;
    }

    .festival-timeline::before { left: 1.7rem; }
    .festival-timeline .mud-timeline-item { grid-template-columns: 2.65rem minmax(0, 1fr) !important; }
}

/* Festival discovery filter — a self-contained editorial layout.  It does not
   inherit the legacy MudGrid filter rules above. */
.public-layout .festival-discovery-filter {
    margin: clamp(2rem, 5vw, 4rem) 0;
    padding: clamp(1.25rem, 3.2vw, 2.5rem);
    border: 1px solid rgba(63, 38, 102, .14);
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 96% 0, rgba(255, 197, 110, .23), transparent 25rem),
        linear-gradient(135deg, #f8f5fc, #fffdf9 54%, #f2f8f6);
    box-shadow: 0 1.25rem 3.5rem rgba(47, 31, 79, .08);
}

.public-layout .festival-discovery-filter__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding-bottom: 1.35rem;
    border-bottom: 1px solid rgba(63, 38, 102, .13);
}

.public-layout .festival-discovery-filter__header h2 {
    max-width: 42rem;
    margin: .25rem 0 .35rem;
    color: #332053;
    font-size: clamp(1.75rem, 3vw, 2.6rem);
    letter-spacing: -.045em;
}

.public-layout .festival-discovery-filter__header p {
    max-width: 40rem;
    margin: 0;
    color: #5b6471;
    font-size: .98rem;
    line-height: 1.55;
}

.public-layout .festival-discovery-filter__summary {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .55rem;
    padding-top: .45rem;
}

.public-layout .festival-discovery-filter__summary strong {
    color: #332053;
    font-size: 1.35rem;
}

.public-layout .festival-discovery-filter__summary > span {
    margin-right: .45rem;
    color: #6f6980;
    font-size: .84rem;
    font-weight: 700;
}

.public-layout .festival-discovery-filter__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    padding-top: 1.35rem;
}

.public-layout .festival-discovery-filter__field {
    min-width: 0;
}

.public-layout .festival-discovery-filter__field > label {
    display: block;
    margin: 0 0 .45rem;
    color: #4c3a68;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.public-layout .festival-discovery-filter__field .mud-input-control,
.public-layout .festival-discovery-filter__field .mud-picker,
.public-layout .festival-discovery-filter__field .mud-select {
    width: 100%;
    margin: 0;
}

.public-layout .festival-discovery-filter__field .mud-input-outlined,
.public-layout .festival-discovery-filter__field .mud-input-control-input-container {
    min-height: 3.1rem;
    border-radius: .8rem;
    background: rgba(255,255,255,.88);
}

.public-layout .festival-discovery-filter__field .mud-select-input,
.public-layout .festival-discovery-filter__field .mud-input-slot {
    min-width: 0 !important;
    overflow: hidden !important;
    color: #25333d !important;
    font-weight: 650;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.public-layout .festival-discovery-filter__availability,
.public-layout .festival-discovery-filter__ranges {
    grid-column: 1 / -1;
    border: 1px solid rgba(63, 38, 102, .12);
    border-radius: 1rem;
    background: rgba(255,255,255,.62);
}

.public-layout .festival-discovery-filter__availability {
    display: grid;
    grid-template-columns: 1.35fr repeat(3, minmax(9rem, 1fr));
    align-items: stretch;
    overflow: hidden;
}

.public-layout .festival-discovery-filter__availability > div,
.public-layout .festival-discovery-filter__availability > label {
    display: flex;
    min-width: 0;
    align-items: center;
}

.public-layout .festival-discovery-filter__availability > div {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .18rem;
    padding: 1rem 1.1rem;
    background: rgba(66, 42, 106, .055);
}

.public-layout .festival-discovery-filter__availability strong,
.public-layout .festival-discovery-filter__range strong {
    color: #342155;
    font-size: .93rem;
}

.public-layout .festival-discovery-filter__availability span,
.public-layout .festival-discovery-filter__range span {
    color: #6f6980;
    font-size: .78rem;
    line-height: 1.35;
}

.public-layout .festival-discovery-filter__availability > label {
    justify-content: space-between;
    gap: .6rem;
    padding: .75rem 1rem;
    border-left: 1px solid rgba(63, 38, 102, .1);
    color: #34414a;
    font-size: .88rem;
    font-weight: 700;
}

.public-layout .festival-discovery-filter__availability .mud-switch {
    flex: 0 0 auto;
    margin: 0;
}

.public-layout .festival-discovery-filter__ranges {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
}

.public-layout .festival-discovery-filter__range {
    min-width: 0;
    padding: 1rem 1.15rem .55rem;
}

.public-layout .festival-discovery-filter__range + .festival-discovery-filter__range {
    border-left: 1px solid rgba(63, 38, 102, .1);
}

.public-layout .festival-discovery-filter__range > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
}

.public-layout .festival-discovery-filter__range .slider {
    width: 100%;
    margin: 1.55rem 0 .65rem;
}

.public-layout .festival-discovery-filter__range .noUi-connect { background: #3c886f; }
.public-layout .festival-discovery-filter__range .noUi-handle { border-color: #3c886f; }
.public-layout .festival-discovery-filter__range .noUi-tooltip { background: #332053; }

@media (max-width: 1000px) {
    .public-layout .festival-discovery-filter__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-layout .festival-discovery-filter__availability { grid-template-columns: 1fr 1fr; }
    .public-layout .festival-discovery-filter__availability > div { grid-column: 1 / -1; }
    .public-layout .festival-discovery-filter__availability > label:nth-of-type(1) { border-left: 0; }
}

@media (max-width: 640px) {
    .public-layout .festival-discovery-filter { margin: 1.4rem 0 2.5rem; padding: 1.1rem; border-radius: 1.1rem; }
    .public-layout .festival-discovery-filter__header { flex-direction: column; gap: .7rem; }
    .public-layout .festival-discovery-filter__summary { justify-content: flex-start; padding-top: 0; }
    .public-layout .festival-discovery-filter__grid { grid-template-columns: 1fr; gap: .85rem; }
    .public-layout .festival-discovery-filter__availability,
    .public-layout .festival-discovery-filter__ranges { grid-template-columns: 1fr; }
    .public-layout .festival-discovery-filter__availability > label { border-top: 1px solid rgba(63, 38, 102, .1); border-left: 0; }
    .public-layout .festival-discovery-filter__range + .festival-discovery-filter__range { border-top: 1px solid rgba(63, 38, 102, .1); border-left: 0; }
    .public-layout .festival-discovery-filter__range > div { align-items: flex-start; flex-direction: column; gap: .15rem; }
}

/* Festival date timelines use their own fixed marker track rather than the
   percentage-based MudTimeline layout. This keeps the connector and dots
   aligned even when a title or a date is long. */
.festival-timeline-card,
.festival-dashboard-timeline {
    min-width: 0;
    padding: 1rem !important;
    overflow: hidden;
}

.festival-timeline-card__header {
    display: grid;
    gap: .1rem;
    margin-bottom: .85rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--border-soft);
}

.festival-timeline-card__header .mud-typography-h6 {
    color: #203846;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
}

.festival-dashboard-timeline__header { margin-inline: .1rem; }

.festival-timeline-list,
.festival-dashboard-timeline-list {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.festival-timeline-list__item {
    position: relative;
    display: grid;
    grid-template-columns: 1.15rem minmax(0, 1fr);
    column-gap: .65rem;
    min-width: 0;
}

.festival-timeline-list__item:not(:last-child)::after {
    position: absolute;
    top: 1.15rem;
    bottom: -.45rem;
    left: .525rem;
    width: 2px;
    background: #dce4e1;
    content: "";
}

.festival-timeline-list__marker {
    z-index: 1;
    display: block;
    width: .78rem;
    height: .78rem;
    margin-top: .72rem;
    border: 2px solid #6b8580;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 3px #fff;
}

.festival-timeline-list__content {
    display: grid;
    gap: .12rem;
    min-width: 0;
    padding: .55rem .65rem;
    border: 1px solid rgba(64, 91, 86, .16);
    border-radius: .7rem;
    background: rgba(255, 255, 255, .86);
}

.festival-timeline-list__date,
.festival-timeline-list__name {
    min-width: 0;
    overflow-wrap: anywhere;
}

.festival-timeline-list__date {
    color: #526b67;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.3;
}

.festival-timeline-list__name {
    color: #203846;
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.3;
}

.festival-timeline-list__item--current .festival-timeline-list__marker {
    border-color: #e94a3f;
    background: #e94a3f;
}

.festival-timeline-list__item--current .festival-timeline-list__content {
    border-color: rgba(233, 74, 63, .35);
    background: #fff7f4;
}

.festival-timeline-list__item--current .festival-timeline-list__date,
.festival-timeline-list__item--current .festival-timeline-list__name { color: #c83e35; }

.festival-timeline-empty { padding: .25rem .1rem .55rem; }

/* Organizer cards no longer rely on the legacy Slick carousel: every person
   remains visible, legible and naturally responsive. */
.festival-organizers-card__header {
    display: grid;
    gap: .15rem;
    margin-bottom: 1rem;
    text-align: left;
}

.festival-organizers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: .75rem;
}

.festival-organizer-card {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    padding: .7rem;
    border: 1px solid rgba(64, 91, 86, .16);
    border-radius: .8rem;
    background: rgba(255, 255, 255, .72);
    text-align: left;
}

.festival-organizer-card__avatar {
    flex: 0 0 auto;
    width: 3.2rem !important;
    height: 3.2rem !important;
}

.festival-organizer-card__details {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.festival-organizer-card__details .mud-typography {
    overflow-wrap: anywhere;
    line-height: 1.3;
}

/* Public festival detail: editorial opportunity page.
   The existing data and actions remain intact; these rules give them a clearer
   decision-making order for artists on every viewport. */
.public-layout .festival-detail-page {
    max-width: 1390px;
    padding-top: clamp(1.25rem, 3vw, 3rem);
    padding-bottom: clamp(2rem, 5vw, 4.5rem);
}

.festival-detail-masthead {
    position: relative;
    display: grid;
    min-height: clamp(26rem, 52vw, 35rem);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 1.75rem;
    background: #203f49;
    box-shadow: 0 1.2rem 3.5rem rgba(22, 49, 60, .16);
    isolation: isolate;
}

.festival-detail-masthead__media,
.festival-detail-masthead__scrim {
    position: absolute;
    inset: 0;
}

.festival-detail-masthead__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.012);
}

.festival-detail-masthead__scrim {
    background:
        linear-gradient(90deg, rgba(16, 43, 56, .96) 0%, rgba(23, 61, 72, .85) 46%, rgba(25, 50, 62, .30) 100%),
        linear-gradient(0deg, rgba(11, 30, 42, .45), transparent 60%);
    z-index: 1;
}

.festival-detail-masthead__content {
    z-index: 2;
    display: flex;
    width: min(100%, 58rem);
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(1.25rem, 3.8vw, 3.5rem);
    color: #fff;
}

.festival-detail-masthead__topline,
.festival-detail-masthead__identity,
.festival-detail-masthead__tools,
.festival-detail-masthead__actions,
.festival-detail-masthead__tags {
    display: flex;
    align-items: center;
}

.festival-detail-masthead__topline {
    justify-content: space-between;
    gap: 1rem;
}

.festival-detail-masthead__eyebrow,
.festival-detail-introduction__eyebrow {
    font-size: .73rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.festival-detail-masthead__eyebrow {
    padding: .45rem .7rem;
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 999px;
    background: rgba(255, 255, 255, .10);
    color: #fff4df;
}

.festival-detail-masthead__tools {
    gap: .35rem;
}

.festival-detail-masthead__tools .mud-icon-button {
    width: 2.6rem;
    height: 2.6rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    backdrop-filter: blur(8px);
}

.festival-detail-masthead__identity {
    align-items: flex-end;
    gap: clamp(.9rem, 2vw, 1.4rem);
    margin-top: auto;
}

.festival-detail-masthead__logo {
    width: clamp(4.5rem, 9vw, 7rem);
    height: clamp(4.5rem, 9vw, 7rem);
    flex: 0 0 auto;
    border: 3px solid rgba(255, 255, 255, .85);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .75rem 1.6rem rgba(0, 0, 0, .22);
    object-fit: cover;
}

.festival-detail-masthead h1 {
    max-width: 16ch;
    margin: 0;
    color: #fffaf1;
    font-size: clamp(2.3rem, 5vw, 4.8rem);
    font-weight: 900;
    line-height: .98;
    letter-spacing: -.045em;
    overflow-wrap: anywhere;
}

.festival-detail-masthead__tags {
    flex-wrap: wrap;
    gap: .42rem;
    margin-top: .9rem;
}

.festival-detail-masthead__tags span {
    padding: .33rem .62rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-size: .76rem;
    font-weight: 700;
    line-height: 1.2;
}

.festival-detail-masthead__history {
    max-width: 56rem;
    margin: 1.15rem 0 0;
    color: rgba(255, 255, 255, .86);
    font-size: .92rem;
    line-height: 1.45;
}

.festival-detail-masthead__actions {
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1.35rem;
}

.festival-detail-masthead__actions .mud-button-root {
    min-height: 2.9rem;
    padding-inline: 1rem;
    font-weight: 800;
}

.festival-detail-masthead__actions .mud-button-outlined {
    border-color: rgba(255, 255, 255, .68);
    color: #fff;
}

.festival-detail-overview {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    width: min(94%, 74rem);
    margin: -1.6rem auto 1.75rem;
    overflow: hidden;
    border: 1px solid rgba(55, 84, 83, .15);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 .8rem 2.4rem rgba(23, 53, 65, .13);
}

.festival-detail-overview__item {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: .7rem;
    padding: 1rem 1.05rem;
}

.festival-detail-overview__item + .festival-detail-overview__item {
    border-left: 1px solid rgba(55, 84, 83, .12);
}

.festival-detail-overview__item > .mud-icon-root {
    margin-top: .08rem;
    color: #e95a43;
}

.festival-detail-overview__item div {
    display: grid;
    min-width: 0;
    gap: .12rem;
}

.festival-detail-overview__item span {
    color: #6f7c7b;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.festival-detail-overview__item strong {
    color: #203846;
    font-size: .88rem;
    line-height: 1.33;
    overflow-wrap: anywhere;
}

.festival-detail-introduction {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.15rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(52, 84, 83, .14);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(247, 251, 249, .95), rgba(255, 248, 244, .84));
}

.festival-detail-introduction > div:first-child {
    min-width: 0;
}

.festival-detail-introduction__eyebrow {
    color: #d85b45;
}

.festival-detail-introduction .mud-typography-h4 {
    margin: .28rem 0 .35rem;
    color: #203846;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    font-weight: 850;
}

.festival-detail-introduction .mud-typography-body1 {
    max-width: 42rem;
    font-size: .93rem;
    line-height: 1.5;
}

.festival-detail-introduction .festival-rating-panel {
    flex: 0 0 auto;
    min-width: 13rem;
    margin: 0;
    padding: .7rem .8rem;
    border: 1px solid rgba(52, 84, 83, .14);
    border-radius: .8rem;
    background: #fff;
}

.festival-detail-introduction .festival-rating-summary,
.festival-detail-introduction .festival-rating-action {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.festival-detail-introduction .festival-rating-summary {
    flex-wrap: wrap;
}

.festival-detail-introduction .festival-rating-average {
    color: #203846;
    font-size: .84rem;
    font-weight: 800;
}

.festival-detail-introduction .festival-rating-votes,
.festival-detail-introduction .festival-rating-voted {
    color: #687877;
    font-size: .73rem;
}

.festival-detail-introduction .festival-rating-action {
    margin-top: .3rem;
}

.festival-detail-page .festival-detail-main > .festival-detail-content > .mud-tabs {
    border: 1px solid rgba(52, 84, 83, .13);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .88);
    box-shadow: none;
}

.festival-detail-page .festival-detail-content .mud-tabs-toolbar {
    padding-inline: .7rem;
    border-bottom: 1px solid rgba(52, 84, 83, .11);
}

.festival-detail-page .festival-detail-content .mud-tab {
    min-height: 3.15rem;
    font-size: .84rem;
    font-weight: 800;
}

.festival-detail-page .festival-detail-content .mud-tab-panel {
    padding: 1.2rem clamp(1rem, 2.5vw, 1.55rem);
}

.festival-detail-page .festival-section-card,
.festival-detail-page .festival-section-wrapper > .mud-paper {
    border: 1px solid rgba(52, 84, 83, .13);
    border-radius: 1rem;
    box-shadow: none;
}

/* Submission dialog: guide the artist from a work to a valid entry option
   without hiding the existing category, fee and cart workflow. */
.festival-submission-dialog {
    overflow: hidden;
    border: 1px solid rgba(58, 88, 88, .16);
    border-radius: 1.25rem !important;
    box-shadow: 0 1.4rem 4rem rgba(13, 36, 46, .28);
}

.festival-submission-dialog .mud-dialog-title {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(58, 88, 88, .12);
    background: linear-gradient(110deg, #f4faf8, #fff4ef);
}

.festival-submission-dialog__title {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.festival-submission-dialog__title > .mud-icon-root {
    width: 2.35rem;
    height: 2.35rem;
    padding: .5rem;
    border-radius: .75rem;
    background: rgba(231, 84, 63, .12);
}

.festival-submission-dialog__title .mud-typography-h6 {
    color: #203846;
    font-weight: 850;
    line-height: 1.2;
}

.festival-submission-dialog__title .mud-typography-caption {
    display: block;
    margin-top: .12rem;
    color: #657675;
}

.festival-submission-dialog__content {
    padding: 0 !important;
}

.festival-submission-dialog__body {
    max-height: min(66vh, 42rem);
    padding: 1.15rem 1.25rem 1.3rem !important;
    overflow: auto;
}

.festival-submission-dialog__intro {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(56, 92, 90, .14);
    border-radius: .9rem;
    background: linear-gradient(135deg, rgba(239, 248, 246, .86), rgba(255, 251, 247, .84));
}

.festival-submission-dialog__step {
    display: block;
    margin-bottom: .28rem;
    color: #d85741;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.festival-submission-dialog__intro .mud-typography-h6,
.festival-submission-dialog__options-heading .mud-typography-h6 {
    color: #203846;
    font-weight: 850;
}

.festival-submission-dialog__intro .mud-typography-body2 {
    margin-top: .35rem;
    color: #526b67;
    line-height: 1.5;
}

.festival-submission-dialog__project {
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
}

.festival-submission-dialog__project .mud-input-control {
    margin: 0;
}

.festival-submission-dialog__project .mud-input-outlined-border {
    border-color: rgba(52, 93, 88, .30);
}

.festival-submission-dialog__duplicate-warning {
    margin: 0;
    border-color: rgba(225, 147, 31, .46);
    background: #fffaf0;
}

.festival-submission-dialog__duplicate-warning .mud-typography-subtitle2 {
    color: #8b5b08;
    font-weight: 800;
}

.festival-submission-dialog__duplicate-warning .mud-typography-body2 {
    margin-top: .22rem;
    color: #755d34;
    line-height: 1.45;
}

.festival-submission-dialog__options {
    margin-top: 1.2rem;
}

.festival-submission-dialog__options-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 .65rem;
}

.festival-submission-dialog__options-heading > div {
    min-width: 0;
}

.festival-submission-dialog__options-heading .mud-typography-caption {
    max-width: 18rem;
    text-align: right;
    line-height: 1.35;
}

.festival-submission-dialog__table {
    overflow: hidden;
    border: 1px solid rgba(52, 84, 83, .16);
    border-radius: .9rem;
}

.festival-submission-dialog__table .mud-table-head {
    background: #edf4f2;
}

.festival-submission-dialog__table .mud-table-cell {
    padding: .75rem .65rem;
    vertical-align: middle;
}

.festival-submission-dialog__table .mud-table-head .mud-table-cell {
    color: #39504e;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.festival-submission-dialog__table .mud-table-row:hover {
    background: rgba(236, 247, 244, .55);
}

.festival-submission-dialog__fee-list {
    display: grid;
    gap: .32rem;
    min-width: 8.5rem;
}

.festival-submission-dialog__fee {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .34rem .5rem;
    border: 1px solid rgba(50, 83, 81, .15);
    border-radius: .45rem;
    background: #fff;
    color: #5c6e6d;
    font-size: .76rem;
    line-height: 1.2;
}

.festival-submission-dialog__fee strong {
    color: #203846;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.festival-submission-dialog__fee.is-selected {
    border-color: rgba(224, 84, 62, .42);
    background: #fff5f0;
}

.festival-submission-dialog__fee.is-selected::before {
    width: .45rem;
    height: .45rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #e95742;
    box-shadow: 0 0 0 2px rgba(233, 87, 66, .14);
    content: "";
}

.festival-submission-dialog__fee.is-selected span {
    margin-right: auto;
    color: #a84032;
    font-weight: 800;
}

.festival-submission-dialog__summary {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    margin-top: .85rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(52, 84, 83, .13);
    border-radius: .85rem;
    background: #f8fbfa;
}

.festival-submission-dialog__summary > div {
    display: grid;
    min-width: 5rem;
    gap: .08rem;
}

.festival-submission-dialog__summary span {
    color: #71807f;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.festival-submission-dialog__summary strong {
    color: #203846;
    font-size: .9rem;
}

.festival-submission-dialog__summary .mud-button-root {
    min-height: 2.65rem;
    margin-left: .2rem;
    padding-inline: 1rem;
    font-weight: 800;
}

.festival-submission-dialog__empty {
    margin-top: 1rem;
}

.festival-submission-dialog__actions {
    min-height: 4.25rem;
    padding: .7rem 1.25rem;
    border-top: 1px solid rgba(52, 84, 83, .12);
    background: #fafcfb;
}

.festival-submission-dialog__actions .mud-button-root {
    font-weight: 800;
}

@media (max-width: 991.98px) {
    .festival-detail-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .festival-detail-overview__item:nth-child(odd) {
        border-left: 0;
    }

    .festival-detail-overview__item:nth-child(n + 3) {
        border-top: 1px solid rgba(55, 84, 83, .12);
    }
}

@media (max-width: 767.98px) {
    .festival-detail-masthead {
        min-height: 29rem;
        border-radius: 1.2rem;
    }

    .festival-detail-masthead__scrim {
        background: linear-gradient(0deg, rgba(16, 43, 56, .97), rgba(20, 53, 65, .62) 72%, rgba(20, 53, 65, .46));
    }

    .festival-detail-masthead__content {
        padding: 1.1rem;
    }

    .festival-detail-masthead__identity {
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
    }

    .festival-detail-masthead h1 {
        max-width: none;
        font-size: clamp(2.2rem, 12vw, 3.45rem);
    }

    .festival-detail-masthead__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .festival-detail-masthead__actions .mud-button-root {
        width: 100%;
    }

    .festival-detail-overview {
        width: calc(100% - 1rem);
        margin-top: -1rem;
        margin-bottom: 1rem;
        border-radius: .85rem;
    }

    .festival-detail-overview__item {
        gap: .5rem;
        padding: .8rem;
    }

    .festival-detail-overview__item span {
        font-size: .64rem;
    }

    .festival-detail-overview__item strong {
        font-size: .78rem;
    }

    .festival-detail-introduction {
        align-items: stretch;
        flex-direction: column;
        gap: .9rem;
        padding: 1rem;
    }

    .festival-detail-introduction .festival-rating-panel {
        width: 100%;
    }

    .festival-submission-dialog__body {
        max-height: 67vh;
        padding: 1rem !important;
    }

    .festival-submission-dialog__options-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .35rem;
    }

    .festival-submission-dialog__options-heading .mud-typography-caption {
        max-width: none;
        text-align: left;
    }

    .festival-submission-dialog__summary {
        align-items: stretch;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: .65rem 1rem;
    }

    .festival-submission-dialog__summary .mud-button-root {
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 600px) {
    .festival-timeline-card,
    .festival-dashboard-timeline { padding: .8rem !important; }

    .festival-timeline-list__item { column-gap: .55rem; }
    .festival-organizers-grid { grid-template-columns: 1fr; }
}

/* Project genre/language entries: keep the next entry distinct from the chips.
   This component is shared by every project specification form. */
.chipset-text-field {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: .55rem;
    width: 100%;
    padding: .35rem;
    border: 1px solid rgba(48, 129, 104, .3);
    border-radius: .8rem;
    background: linear-gradient(135deg, rgba(235, 248, 242, .92), rgba(255, 255, 255, .98));
}

.chipset-text-field__chips {
    display: flex;
    flex: 0 1 auto;
    min-height: 3.1rem;
    align-items: center;
}

.chipset-text-field__chip-set .mud-chip {
    margin: .18rem;
    color: #1f5b4c;
    background: #dff2e9;
    font-weight: 700;
}

.chipset-text-field__entry {
    flex: 1 1 15rem;
    min-width: min(100%, 13rem);
}

.chipset-text-field__entry .mud-input-control {
    margin: 0;
}

.chipset-text-field__entry .mud-input-outlined {
    background: #ffffff;
    border-radius: .6rem;
}

.chipset-text-field__entry .mud-input-outlined-border {
    border-color: rgba(47, 126, 102, .56);
}

.chipset-text-field__entry .mud-input:focus-within .mud-input-outlined-border {
    border-color: #26765f;
    border-width: 2px;
}

/* The calendar header transition has a fixed 23px height in MudBlazor.
   A global text rhythm previously clipped month names inside that transition. */
:where(.mud-picker-popover, .mud-picker-dialog, .mud-picker-container)
    .mud-picker-calendar-header-switch .mud-picker-calendar-header-transition {
    height: 2rem;
    min-height: 2rem;
    overflow: visible;
}

:where(.mud-picker-popover, .mud-picker-dialog, .mud-picker-container)
    .mud-picker-calendar-header-switch .mud-picker-calendar-header-transition .mud-typography {
    display: block;
    line-height: 1.25 !important;
    white-space: nowrap;
    overflow: visible;
}

/* Festival lists: collection discovery, creation and owner management. */
.festival-lists-hero,
.festival-list-detail-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    border: 1px solid rgba(45, 91, 84, .16);
    border-radius: 1.25rem;
    background: linear-gradient(120deg, #eaf5f1, #fff6ef);
}

.festival-lists-hero > div,
.festival-list-detail-hero__content { min-width: 0; }
.festival-lists-hero .mud-typography-h2,
.festival-list-detail-hero .mud-typography-h2 { margin: .2rem 0 .45rem; color: #203846; font-weight: 850; }
.festival-lists-hero .mud-typography-body1,
.festival-list-detail-hero .mud-typography-body1 { max-width: 46rem; color: #5c706d; }

.festival-lists-search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0 1.15rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(45, 91, 84, .14);
    border-radius: 1rem;
    background: #fff;
}

.festival-lists-search .mud-input-control { width: min(100%, 38rem); margin: 0; }
.festival-lists-search .mud-typography { flex: 0 0 auto; color: #617574; }

.festival-list-editor {
    margin: 1rem 0 1.35rem;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid rgba(45, 122, 99, .28);
    border-radius: 1.15rem;
    background: linear-gradient(135deg, #f5fbf8, #fff);
}

.festival-list-editor__heading,
.festival-list-editor__footer,
.festival-list-detail-heading,
.festival-list-picker-dialog__heading,
.festival-list-picker-dialog__list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.festival-list-editor__heading { align-items: flex-start; margin-bottom: 1rem; }
.festival-list-editor__heading .mud-typography-h5 { color: #203846; font-weight: 800; }
.festival-list-editor__heading .mud-typography-body2 { color: #667876; }
.festival-list-editor__footer { flex-wrap: wrap; margin-top: 1rem; }
.required-mark { color: #d8533f; }

.festival-lists-empty {
    display: grid;
    justify-items: center;
    gap: .45rem;
    margin: 2rem 0;
    padding: 2.5rem 1rem;
    border: 1px dashed rgba(45, 91, 84, .25);
    border-radius: 1rem;
    text-align: center;
}
.festival-lists-empty .mud-icon-root { color: #d85b45; font-size: 2.2rem; }

.festival-list-card,
.festival-list-festival-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(45, 91, 84, .14);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .6rem 1.4rem rgba(25, 58, 63, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}
.festival-list-card:hover,
.festival-list-festival-card:hover { transform: translateY(-3px); box-shadow: 0 1rem 2rem rgba(25, 58, 63, .12); }
.festival-list-card__image { display: grid; height: 11rem; place-items: center; overflow: hidden; background: linear-gradient(135deg, #295b61, #d96b55); color: #fff8ee; text-decoration: none; }
.festival-list-card__image img { width: 100%; height: 100%; object-fit: cover; }
.festival-list-card__image span { padding: 1rem; font-size: 1.1rem; font-weight: 800; text-align: center; }
.festival-list-card .mud-card-content { padding: 1rem 1rem .55rem; }
.festival-list-card__meta,
.festival-list-detail-hero__facts { display: flex; flex-wrap: wrap; gap: .45rem .8rem; color: #6a7c7a; font-size: .72rem; }
.festival-list-card__meta span + span::before,
.festival-list-detail-hero__facts span + span::before { margin-right: .8rem; color: #bdc9c6; content: "•"; }
.festival-list-card .mud-typography-h6 { margin-top: .45rem; color: #203846; font-weight: 800; }
.festival-list-card__description { display: -webkit-box; overflow: hidden; margin-top: .45rem; color: #5c706d; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.festival-list-card__actions { justify-content: space-between; padding: .3rem .65rem .65rem; }

.festival-list-detail-hero { align-items: stretch; margin-bottom: 1.2rem; }
.festival-list-detail-hero__image { width: min(30%, 15rem); min-height: 11rem; flex: 0 0 auto; overflow: hidden; border-radius: .9rem; background: #2d6164; }
.festival-list-detail-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.festival-list-detail-hero__content { flex: 1 1 auto; }
.festival-list-detail-hero > .mud-button-root { align-self: flex-start; }
.festival-list-detail-heading { margin: 1.4rem 0 .8rem; }
.festival-list-detail-heading .mud-typography-h5 { color: #203846; font-weight: 800; }
.festival-list-detail-heading .mud-typography-body2 { color: #667876; }
.festival-list-festival-card__image { display: grid; height: 10rem; place-items: center; overflow: hidden; background: linear-gradient(135deg, #244f56, #789c93); color: #fff8ee; text-decoration: none; }
.festival-list-festival-card__image img { width: 100%; height: 100%; object-fit: cover; }
.festival-list-festival-card__image span { padding: 1rem; font-size: 1.05rem; font-weight: 800; text-align: center; }
.festival-list-festival-card .mud-typography-h6 { color: #203846; font-weight: 800; }

/* Financial centre: all monetary totals stay separated by currency. */
.financial-center-page { max-width: 1440px; }
.financial-center-hero { display:flex; gap:1.5rem; align-items:center; justify-content:space-between; padding:2rem; border:1px solid rgba(45,91,84,.14); border-radius:1.25rem; background:linear-gradient(115deg,#173f48 0%,#285e64 56%,#6f9b90 140%); color:#fff; box-shadow:0 1rem 2.5rem rgba(22,61,68,.14); }
.financial-center-hero--festival { background:linear-gradient(115deg,#422658,#5c4277 55%,#aa7259 150%); }
.financial-center-hero--admin { background:linear-gradient(115deg,#203846,#315b58 55%,#c06c55 150%); }
.financial-center-hero .mud-typography { color:inherit; }
.financial-center-hero .mud-typography-body1 { max-width:50rem; opacity:.85; }
.financial-center-filter { margin:1.25rem 0; padding:1rem; border:1px solid rgba(45,91,84,.14); border-radius:1rem; background:#fff; }
.financial-center-kpis { margin-bottom:1.25rem; }
.financial-center-tabs { background:#fff; border:1px solid rgba(45,91,84,.14); border-radius:1.15rem; overflow:hidden; }
.financial-center-tabs .mud-tabs-toolbar { padding:.55rem .7rem 0; background:linear-gradient(110deg,#fbfdfc,#f5f1f8); border-bottom:1px solid rgba(45,91,84,.12); }
.financial-center-tabs .mud-tab { min-height:3.35rem; font-weight:750; }
.financial-center-tab-panel { padding:1.25rem; }
.financial-report-grid { margin:0 0 1.25rem; }
.financial-chart-card { height:100%; min-height:21rem; padding:1.3rem; border:1px solid rgba(45,91,84,.14); border-radius:1rem; background:linear-gradient(145deg,#fff,#f8fbfa); }
.financial-chart-card .mud-typography-h6 { color:#203846; font-weight:800; }
.financial-chart-card .mud-chart { margin-top:.5rem; }

/* Side programs: public discovery, registration and festival management. */
.side-programs-page,.side-program-detail-page { padding:2.25rem 0 4rem; background:linear-gradient(180deg,#f8f6fb 0,#fff 36rem); }
.side-programs-hero,.side-program-detail-hero { display:flex; gap:2rem; justify-content:space-between; align-items:center; padding:2.25rem; border:1px solid rgba(78,47,101,.18); border-radius:1.5rem; background:radial-gradient(circle at 92% 8%,rgba(236,162,112,.3),transparent 28%),linear-gradient(120deg,#302043,#51356d 55%,#76608f); color:#fff; box-shadow:0 1.25rem 2.5rem rgba(54,31,70,.16); }
.side-programs-hero .mud-typography,.side-program-detail-hero .mud-typography { color:inherit; }
.side-programs-hero .mud-typography-body1,.side-program-detail-hero__copy { max-width:48rem; margin-top:.8rem; opacity:.86; }
.side-programs-hero__facts { display:flex; gap:1rem; align-items:center; }
.side-programs-hero__facts>div { display:grid; min-width:5.7rem; padding:.6rem .9rem; border:1px solid rgba(255,255,255,.24); border-radius:.85rem; background:rgba(255,255,255,.08); text-align:center; }
.side-programs-hero__facts strong { font-size:1.35rem; line-height:1.25; }.side-programs-hero__facts span { font-size:.72rem; opacity:.8; }
.side-programs-explorer { margin:1.4rem 0 1.65rem; padding:1rem; border:1px solid rgba(78,47,101,.14); border-radius:1rem; background:#fff; box-shadow:0 .75rem 1.75rem rgba(51,35,64,.06); }
.side-programs-grid { margin-top:.2rem; }.side-program-card-link { display:block; height:100%; color:inherit; text-decoration:none; }.side-program-card { overflow:hidden; border:1px solid rgba(63,77,89,.16); border-radius:1.1rem; background:#fff; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }.side-program-card-link:hover .side-program-card { transform:translateY(-5px); border-color:rgba(107,75,137,.48); box-shadow:0 1.1rem 2rem rgba(50,31,65,.16); }
.side-program-card .mud-card-content { display:flex; min-height:17.8rem; flex-direction:column; padding:1.3rem; }.side-program-card__topline { display:flex; min-height:2rem; gap:.45rem; align-items:start; justify-content:space-between; }.side-program-card__title { margin:1rem 0 .2rem; color:#203846; font-weight:850; }.side-program-card__festival { color:#805e4d; font-weight:750; }.side-program-card__description { display:-webkit-box; overflow:hidden; margin-top:.85rem; color:#52626b; -webkit-box-orient:vertical; -webkit-line-clamp:3; }.side-program-card__meta { display:grid; gap:.45rem; margin-top:auto; padding-top:1.2rem; color:#56636b; font-size:.79rem; }.side-program-card__meta span { display:flex; gap:.42rem; align-items:center; }.side-program-card__meta .mud-icon-root { font-size:1rem; color:#795596; }.side-program-card__actions { display:flex; min-height:3.9rem; align-items:center; justify-content:space-between; padding:.75rem 1.3rem; border-top:1px solid rgba(63,77,89,.12); color:#51356d; }.side-program-card__actions strong { color:#d45f48; font-size:1.05rem; }.side-program-card__actions span { display:flex; gap:.25rem; align-items:center; font-size:.83rem; font-weight:800; }
.side-programs-empty { margin-top:2rem; }
.side-program-detail-hero { align-items:stretch; }.side-program-detail-hero__price { display:flex; min-width:12rem; flex-direction:column; justify-content:center; padding:1.35rem; border:1px solid rgba(255,255,255,.25); border-radius:1rem; background:rgba(255,255,255,.1); color:#fff; }.side-program-detail-hero__price .mud-typography { color:inherit; }.side-program-detail-panel,.side-program-registration-panel { height:100%; padding:1.5rem; border:1px solid rgba(63,77,89,.15); border-radius:1.1rem; background:#fff; box-shadow:0 .9rem 1.9rem rgba(51,35,64,.06); }.side-program-detail-panel .mud-typography-h5,.side-program-registration-panel .mud-typography-h5 { color:#203846; font-weight:850; }.side-program-detail-facts { display:grid; gap:1rem; margin-top:1.35rem; }.side-program-detail-facts>div { display:flex; gap:.85rem; align-items:flex-start; }.side-program-detail-facts>.mud-icon-root,.side-program-detail-facts>div>.mud-icon-root { margin-top:.15rem; color:#7a5499; }.side-program-detail-facts span { display:grid; gap:.14rem; color:#596770; }.side-program-detail-facts strong { color:#233f48; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; }.side-program-registration-panel { border-top:4px solid #d96850; }.side-program-registration-panel .muted { color:#839197; font-weight:400; }
.phase3-page-shell .side-program-management-card { overflow:hidden; border:1px solid rgba(63,77,89,.14); border-radius:1rem; background:#fff; }.side-program-management-card .mud-card-content { padding:1.25rem; }.side-program-management-card__metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin-top:1rem; padding-top:1rem; border-top:1px solid rgba(63,77,89,.1); }.side-program-management-card__metrics span { color:#697980; font-size:.74rem; }.side-program-management-card__metrics strong { display:block; margin-top:.1rem; color:#203846; font-size:1.05rem; }
@media (max-width:767.98px) { .side-programs-page,.side-program-detail-page { padding-top:1.25rem; }.side-programs-hero,.side-program-detail-hero { flex-direction:column; padding:1.45rem; }.side-programs-hero__facts { width:100%; flex-wrap:wrap; }.side-programs-hero__facts .mud-button-root { width:100%; }.side-program-detail-hero__price { min-width:0; }.side-program-card .mud-card-content { min-height:16rem; }.side-program-detail-panel,.side-program-registration-panel { padding:1.15rem; } }

/* Adaptive project view: sections remain stable when media, private data or review tools are absent. */
.project-access-gate { max-width:35rem; margin:5rem auto; padding:2.25rem; border:1px solid rgba(81,53,109,.22); border-radius:1.25rem; background:linear-gradient(145deg,#fff,#f8f4fb); box-shadow:0 1.2rem 2.8rem rgba(51,35,64,.1); text-align:center; }.project-access-gate .mud-typography-body1 { margin-top:.8rem; color:#657078; }.project-access-gate .mud-input-control { text-align:left; }.project-summary-media { display:flex; min-height:12rem; gap:1rem; align-items:center; justify-content:center; padding:2rem; border:1px dashed rgba(81,53,109,.34); border-radius:1.2rem; background:linear-gradient(135deg,#f7f4fa,#fff); color:#50616a; }.project-summary-media .mud-icon-root { color:#805d9c; font-size:2.3rem; }.project-sharing-settings { border:1px solid rgba(45,91,84,.17); border-radius:1rem; background:linear-gradient(145deg,#fbfffd,#f4f8f7); }.project-sharing-settings .mud-typography-h6 { color:#203846; font-weight:800; }.project-sharing-settings .mud-radio { margin:.3rem 0; }
.project-view-hero { display:flex; gap:1.5rem; align-items:stretch; justify-content:space-between; margin:1.15rem 0 1.5rem; padding:1.6rem; border:1px solid rgba(39,70,77,.14); border-radius:1.25rem; background:radial-gradient(circle at 88% 4%,rgba(226,151,102,.2),transparent 24%),linear-gradient(120deg,#fff,#f4f8f7); box-shadow:0 .9rem 2rem rgba(35,61,64,.07); }.project-view-hero__identity{min-width:0}.project-view-hero__eyebrow{display:flex;gap:.4rem;align-items:center;color:#795596;font-size:.78rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.project-view-hero__eyebrow .mud-icon-root{font-size:1rem}.project-view-hero .mud-typography-h2{margin:.55rem 0 .2rem;color:#203846;font-weight:900}.project-view-hero__review{width:min(100%,21rem);flex:0 0 21rem}.project-review-console{height:100%;padding:1rem;border:1px solid rgba(120,83,151,.28);border-radius:1rem;background:linear-gradient(145deg,#fcfaff,#f5f0f9)}.project-review-console__heading{display:flex;align-items:center;justify-content:space-between;color:#51356d}.project-review-console__heading div{display:grid;gap:.15rem}.project-review-console__heading span{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.project-review-console__heading strong{color:#203846;font-size:.95rem}.project-review-console__heading>.mud-icon-root{padding:.45rem;border-radius:.65rem;background:rgba(121,84,153,.12)}.project-review-console__status{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .75rem;margin-top:.9rem;padding:.8rem 0;border-top:1px solid rgba(81,53,109,.13);border-bottom:1px solid rgba(81,53,109,.13);font-size:.77rem}.project-review-console__status span{color:#68737a}.project-review-console__status strong{overflow:hidden;color:#203846;text-align:right;text-overflow:ellipsis;white-space:nowrap}@media(max-width:960px){.project-view-hero{flex-direction:column}.project-view-hero__review{width:100%;flex-basis:auto}}@media(max-width:600px){.project-view-hero{margin-top:.6rem;padding:1.15rem}.project-view-hero .mud-typography-h2{font-size:2rem}}
.financial-kpi-card { height:100%; min-height:8.5rem; padding:1.2rem; border:1px solid rgba(45,91,84,.14); border-radius:1rem; background:linear-gradient(145deg,#fff,#f4faf8); }
.financial-kpi-card--alert { border-color:rgba(217,107,85,.36); background:linear-gradient(145deg,#fff9f5,#fff); }
.financial-kpi-card .mud-typography-h5 { margin:.25rem 0 .45rem; color:#1d4b52; font-weight:800; }
.financial-ledger-panel { overflow:hidden; border:1px solid rgba(45,91,84,.14); border-radius:1rem; background:#fff; }
.financial-ledger-panel__heading { display:flex; gap:1rem; align-items:flex-start; justify-content:space-between; padding:1.35rem 1.35rem 1rem; border-bottom:1px solid rgba(45,91,84,.12); }
.financial-ledger-panel__heading .mud-typography-h5 { color:#203846; font-weight:800; }
.financial-reference { display:inline-block; max-width:14rem; overflow:hidden; color:#52706e; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.74rem; text-overflow:ellipsis; vertical-align:bottom; white-space:nowrap; }
.financial-ledger-table .mud-table-head { background:#eef6f4; }
.financial-ledger-table .mud-table-cell { white-space:nowrap; }
@media (max-width:767.98px) { .financial-center-hero,.financial-ledger-panel__heading { align-items:stretch; flex-direction:column; } .financial-center-hero .mud-button-root { width:100%; } .financial-ledger-table .mud-table-cell { white-space:normal; } }

.festival-list-picker-dialog__heading { align-items: flex-start; }
.festival-list-picker-dialog__heading > .mud-icon-root { width: 2.5rem; height: 2.5rem; padding: .55rem; border-radius: .75rem; background: rgba(217, 91, 69, .12); color: #d95b45; }
.festival-list-picker-dialog__lists { overflow: hidden; border: 1px solid rgba(45, 91, 84, .14); border-radius: .75rem; }
.festival-list-picker-dialog__list { padding: .7rem .8rem; background: #fff; }
.festival-list-picker-dialog__list + .festival-list-picker-dialog__list { border-top: 1px solid rgba(45, 91, 84, .1); }

@media (max-width: 767.98px) {
    .festival-lists-hero,
    .festival-list-detail-hero,
    .festival-lists-search,
    .festival-list-detail-heading { align-items: stretch; flex-direction: column; }
    .festival-lists-search .mud-input-control { width: 100%; }
    .festival-list-detail-hero__image { width: 100%; min-height: 12rem; }
    .festival-list-detail-hero > .mud-button-root { align-self: stretch; }
    .festival-list-editor__heading { flex-direction: column; }
}

/* Submission intelligence: one shared, readable language for artist and festival workspaces. */
.submission-insights { overflow: hidden; }
.submission-insights__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.submission-insights__metric { display: grid; min-height: 7rem; grid-template-columns: auto 1fr; grid-template-rows: 1fr auto; gap: .1rem .55rem; align-items: center; padding: .85rem; border: 1px solid rgba(35, 77, 80, .12); border-radius: .85rem; background: linear-gradient(145deg, #fff, #f4f8f7); }
.submission-insights__metric .mud-icon-root { grid-row: span 2; }
.submission-insights__metric span { color: #637775; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.submission-insights__metric strong { color: #1d3841; font-size: 1.45rem; line-height: 1; }
.submission-insights__statuses { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.submission-country-map { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid rgba(35, 77, 80, .12); }
.submission-country-map__canvas { min-height: 11rem; margin-top: .8rem; overflow: hidden; border: 1px solid rgba(35, 77, 80, .12); border-radius: .95rem; background: radial-gradient(circle at 65% 25%, rgba(234, 135, 96, .13), transparent 27%), linear-gradient(135deg, #f9fbfa, #eef5f3); }
.submission-country-map__canvas svg { display: block; width: 100%; height: auto; min-height: 11rem; }
.submission-country-map__land { fill: #dfe9e6; stroke: #c8d8d4; stroke-width: 3; }
.submission-country-map__point { fill: #1f7772; fill-opacity: var(--map-intensity); stroke: #fff; stroke-width: 3; cursor: help; transition: r .18s ease, fill-opacity .18s ease; }
.submission-country-map__point:hover, .submission-country-map__point:focus { fill-opacity: 1; r: 20px; outline: none; }
.submission-country-map__countries { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.submission-country-map__country { display: inline-flex; gap: .4rem; align-items: center; padding: .32rem .52rem; border: 1px solid rgba(31, 119, 114, calc(.15 + var(--map-intensity) * .45)); border-radius: 999px; background: rgba(31, 119, 114, calc(.04 + var(--map-intensity) * .16)); color: #284747; font-size: .76rem; cursor: help; }
.submission-country-map__country strong { color: #155b57; }
.project-submission-snapshot { height: 100%; border: 1px solid rgba(35, 77, 80, .12); border-radius: .85rem; background: linear-gradient(145deg, #fff, #f6f9f8); }
.project-submission-snapshot__numbers { display: flex; flex-wrap: wrap; gap: .35rem .7rem; margin: .85rem 0 .45rem; color: #657a77; font-size: .74rem; }
.project-submission-snapshot__numbers strong { color: #1d6662; font-size: .9rem; }

@media (max-width: 599.98px) {
    .submission-insights__header { align-items: stretch; flex-direction: column; }
    .submission-insights__header .mud-button-root { align-self: flex-start; }
    .submission-country-map__canvas { min-height: 8.5rem; }
    .submission-country-map__canvas svg { min-height: 8.5rem; }
}
.profile-hub{padding-top:2rem;padding-bottom:3rem}.profile-hub__hero{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem;border:1px solid rgba(31,78,91,.15);border-radius:24px;background:linear-gradient(120deg,#fff,#eff8f6);box-shadow:0 14px 38px rgba(27,53,64,.08)}.profile-hub__identity{display:flex;align-items:center;gap:1.25rem;min-width:0}.profile-hub__avatar .mud-avatar{width:96px!important;height:96px!important;font-size:2rem}.profile-hub__photo-actions{display:flex;gap:.5rem;flex-wrap:wrap}.profile-hub__panel{height:100%;border-radius:20px!important;background:#fff}.profile-hub .mud-list-item{border-radius:12px;margin:.2rem 0}.profile-hub .mud-list-item:hover{background:#eef8f6}@media(max-width:600px){.profile-hub__hero{padding:1.25rem;align-items:flex-start;flex-direction:column}.profile-hub__identity{align-items:flex-start}.profile-hub__photo-actions{width:100%}.profile-hub__photo-actions .mud-button{flex:1}}

/* Notification centre: concise, actionable updates across all workspaces. */
.notification-menu-shell .mud-menu{min-width:0}.notification-menu{width:min(25rem,calc(100vw - 2rem));overflow:hidden;border:1px solid rgba(31,78,91,.15);border-radius:1rem;background:#fff;box-shadow:0 1.25rem 3rem rgba(24,52,60,.2)}.notification-menu__header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.1rem 1.15rem .95rem;border-bottom:1px solid rgba(31,78,91,.1);background:linear-gradient(135deg,#f7fbfa,#eff7f5)}.notification-menu__header .mud-typography-h6{color:#203846;font-weight:850}.notification-menu__header .mud-typography-caption{color:#697d80}.notification-menu__header>.mud-icon-root{padding:.48rem;border-radius:.65rem;background:rgba(31,105,112,.12);color:#1f6970}.notification-menu__items{max-height:27rem;overflow-y:auto}.notification-menu__item{display:flex!important;min-height:5.25rem;padding:.8rem 1rem!important;border-radius:0!important;color:#203846!important;text-align:left!important;text-transform:none!important}.notification-menu__item+.notification-menu__item{border-top:1px solid rgba(31,78,91,.08)}.notification-menu__item:hover{background:#f7fbfa!important}.notification-menu__icon{display:grid;flex:0 0 2.35rem;width:2.35rem;height:2.35rem;place-items:center;margin:.05rem .75rem 0 0;border-radius:.7rem}.notification-menu__icon .mud-icon-root{font-size:1.2rem}.notification-menu__icon--default{background:#f1ebf7;color:#704f8e}.notification-menu__icon--success{background:#e6f5ee;color:#21815e}.notification-menu__icon--info{background:#e7f3f5;color:#247281}.notification-menu__icon--alert{background:#fff0e9;color:#ca603f}.notification-menu__copy{display:grid;min-width:0;flex:1;gap:.3rem}.notification-menu__copy strong{display:-webkit-box;overflow:hidden;color:#29444b;font-size:.84rem;font-weight:760;line-height:1.35;text-align:left;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}.notification-menu__copy small{color:#748286;font-size:.7rem;text-align:left}.notification-menu__arrow{align-self:center;margin-left:.5rem;color:#94a2a5;font-size:1.15rem!important}.notification-menu__empty{display:grid;justify-items:center;gap:.6rem;padding:2.3rem 1.25rem;color:#718084;font-size:.86rem;text-align:center}.notification-menu__empty .mud-icon-root{padding:.7rem;border-radius:50%;background:#f0f5f4;color:#78908d;font-size:1.6rem}.notification-menu__footer{display:flex;justify-content:center;padding:.65rem;border-top:1px solid rgba(31,78,91,.1);background:#fbfdfc}.notification-menu__footer .mud-button-root{text-transform:none;font-weight:800}
.notification-inbox{padding-top:2rem;padding-bottom:3.5rem}.notification-inbox__hero{display:flex;gap:1.5rem;align-items:center;justify-content:space-between;margin-bottom:1.35rem;padding:1.7rem 1.85rem;border:1px solid rgba(31,78,91,.15);border-radius:1.25rem;background:radial-gradient(circle at 90% 10%,rgba(217,91,69,.18),transparent 21%),linear-gradient(120deg,#fff,#eef8f6);box-shadow:0 .9rem 2rem rgba(31,60,67,.07)}.notification-inbox__hero--festival{background:radial-gradient(circle at 90% 10%,rgba(118,91,144,.18),transparent 21%),linear-gradient(120deg,#fff,#f4f1f9)}.notification-inbox__hero--admin{background:radial-gradient(circle at 90% 10%,rgba(208,120,78,.2),transparent 21%),linear-gradient(120deg,#fff,#fbf5ef)}.notification-inbox__eyebrow{display:flex;gap:.4rem;align-items:center;color:#1f6970;font-size:.76rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.notification-inbox__eyebrow .mud-icon-root{font-size:1rem}.notification-inbox__hero .mud-typography-h3{margin:.45rem 0;color:#203846;font-weight:900}.notification-inbox__hero .mud-typography-body1{max-width:42rem;color:#60747a}.notification-inbox__count{display:grid;min-width:6.5rem;justify-items:center;padding:1rem;border:1px solid rgba(31,105,112,.16);border-radius:1rem;background:rgba(255,255,255,.72)}.notification-inbox__count strong{color:#1f6970;font-size:2rem;line-height:1}.notification-inbox__count span{margin-top:.3rem;color:#718286;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.notification-inbox__table{overflow:hidden;border:1px solid rgba(31,78,91,.14);border-radius:1.1rem;background:#fff;box-shadow:0 .8rem 1.8rem rgba(31,60,67,.06)}.notification-inbox__table .mud-table-toolbar{min-height:5rem;padding:1rem 1.25rem;border-bottom:1px solid rgba(31,78,91,.1)}.notification-inbox__table .mud-table-toolbar .mud-typography-h6{color:#203846;font-weight:850}.notification-inbox__search{min-width:15rem}.notification-inbox__table .mud-table-head{background:#f1f7f5}.notification-inbox__table .mud-table-cell{padding-top:1rem;padding-bottom:1rem;color:#425a61}.notification-inbox__table .mud-table-cell:first-child{color:#203846;font-weight:700}.notification-inbox__no-records{display:grid;justify-items:center;gap:.65rem;padding:3rem;color:#768589;text-align:center}.notification-inbox__no-records .mud-icon-root{padding:.7rem;border-radius:50%;background:#eef5f3;color:#738a87;font-size:1.55rem}@media(max-width:700px){.notification-inbox{padding-top:1.1rem}.notification-inbox__hero{align-items:flex-start;flex-direction:column;padding:1.3rem}.notification-inbox__count{min-width:0;grid-template-columns:auto auto;gap:.5rem;align-items:center}.notification-inbox__count span{margin:0}.notification-inbox__search{min-width:0;width:100%}.notification-inbox__table .mud-table-toolbar{align-items:stretch;flex-direction:column}.notification-inbox__table .mud-table-cell{white-space:normal}}
/* Festival content hub: concise previews with dedicated filtered destinations. */
.marketplace-festival-filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.1rem 0 1.4rem;padding:.75rem;border:1px solid rgba(31,78,91,.12);border-radius:.9rem;background:#fff}.marketplace-festival-filters .mud-button-root{text-transform:none;font-weight:750}.marketplace-festival-section{margin:1.5rem 0 2rem;padding:1.15rem;border:1px solid rgba(31,78,91,.13);border-radius:1.15rem;background:linear-gradient(145deg,#fff,#f7fbfa);box-shadow:0 .7rem 1.5rem rgba(31,60,67,.05)}.marketplace-festival-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.2rem .2rem .9rem;border-bottom:1px solid rgba(31,78,91,.1)}.marketplace-festival-section__header .mud-typography-h5{color:#203846;font-weight:850}.marketplace-festival-section__eyebrow{display:block;margin-bottom:.25rem;color:#1f6970;font-size:.68rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.marketplace-festival-section .store-grid{margin-top:0}.marketplace-festival-section .ticket-list{margin:0}.marketplace-festival-section__header .mud-button-root{text-transform:none;font-weight:800}@media(max-width:650px){.marketplace-festival-section{padding:.8rem}.marketplace-festival-section__header{align-items:stretch;flex-direction:column}.marketplace-festival-section__header .mud-button-root{align-self:flex-start}.marketplace-festival-filters{overflow-x:auto;flex-wrap:nowrap}.marketplace-festival-filters .mud-button-root{white-space:nowrap}}
.festival-content-section__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.festival-content-section__heading .mud-typography-h5{color:#203846;font-weight:850}.festival-content-section__footer{display:flex;justify-content:center;margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgba(31,78,91,.1)}.festival-linked-programs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.festival-linked-program-card{display:flex;min-height:9.8rem;flex-direction:column;gap:.35rem;padding:1rem;border:1px solid rgba(31,78,91,.14);border-radius:.9rem;background:linear-gradient(145deg,#fff,#f5faf8);color:#203846;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.festival-linked-program-card:hover{transform:translateY(-3px);box-shadow:0 .75rem 1.35rem rgba(31,60,67,.1)}.festival-linked-program-card__type{color:#1f6970;font-size:.68rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.festival-linked-program-card strong{font-size:.92rem;line-height:1.3}.festival-linked-program-card small{color:#6d7c80;font-size:.72rem}.festival-linked-program-card__cta{display:flex;gap:.2rem;align-items:center;margin-top:auto;color:#d15e47;font-size:.75rem;font-weight:800}.festival-linked-program-card__cta .mud-icon-root{font-size:.9rem}.festival-product-section__heading{display:flex;align-items:center;justify-content:space-between;max-width:75rem;margin:0 auto;padding:1.1rem 0 .25rem}.festival-product-section__heading .mud-typography-h6{font-weight:850}.festival-product-section__heading .mud-button-root{border-color:rgba(255,255,255,.4)}@media(max-width:900px){.festival-linked-programs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.festival-content-section__heading,.festival-product-section__heading{align-items:stretch;flex-direction:column}.festival-content-section__heading .mud-button-root,.festival-product-section__heading .mud-button-root{align-self:flex-start}.festival-linked-programs-grid{grid-template-columns:1fr}}
