/**
 * Portal pages — dark theme overrides for schedule, news, theaters,
 * tickets, chat, errors and remaining home accents.
 * Loaded globally after portal-dark-theme.css.
 */

/* ========== Schedule ========== */
.schedule-page {
    background: var(--paper);
}

.schedule-hero__icon {
    background: rgba(197, 160, 89, 0.14);
    color: var(--gold);
    border: 1px solid rgba(197, 160, 89, 0.22);
}

.schedule-toolbar,
.schedule-week,
.schedule-table-wrap,
.schedule-card,
.schedule-empty,
.schedule-more {
    background: var(--surface) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
    color: var(--ink-soft);
}

.schedule-toolbar__search,
.schedule-toolbar__select select,
.schedule-toolbar__date input {
    background: #121212 !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    color: #fff !important;
}

.schedule-toolbar__search {
    color: var(--muted);
}

.schedule-toolbar__search input {
    color: #fff !important;
}

.schedule-toolbar__search:focus-within,
.schedule-toolbar__select select:focus,
.schedule-toolbar__date input:focus {
    border-color: var(--gold) !important;
    box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.12) !important;
}

.schedule-views {
    background: #121212 !important;
    border-color: rgba(197, 160, 89, 0.2) !important;
}

.schedule-views__btn {
    background: transparent;
    border-color: transparent;
    color: var(--ink-soft);
}

.schedule-views__btn.is-active,
.schedule-views__btn:hover {
    background: rgba(109, 14, 14, 0.28) !important;
    border-color: var(--maroon) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.schedule-week__nav {
    background: #121212;
    border-color: rgba(197, 160, 89, 0.2);
    color: var(--gold-soft);
}

.schedule-week__label {
    color: #fff;
}

.schedule-table thead th {
    background: #121212;
    color: var(--gold-soft);
    border-color: rgba(197, 160, 89, 0.14);
}

.schedule-table tbody td {
    border-color: rgba(197, 160, 89, 0.1);
    color: var(--ink-soft);
}

.schedule-table tbody tr:hover td {
    background: rgba(197, 160, 89, 0.06);
}

.schedule-show__title,
.schedule-theater strong,
.schedule-card__media h2,
.schedule-card__footer strong {
    color: #fff;
}

.schedule-book--ghost {
    background: transparent;
    border-color: rgba(197, 160, 89, 0.35);
    color: var(--gold-soft);
}

.schedule-more__btn--ghost {
    background: transparent;
    border-color: rgba(197, 160, 89, 0.35);
    color: var(--gold-soft);
}

/* ========== News ========== */
.news-page {
    background:
        radial-gradient(ellipse 70% 40% at 100% 0%, rgba(109, 14, 14, 0.15), transparent 50%),
        var(--paper) !important;
}

.news-page__bg {
    display: none;
}

.news-hero__bg {
    opacity: 0.32;
    filter: grayscale(0.15) brightness(0.75);
}

.news-hero h1 {
    color: #fff !important;
}

.news-hero p {
    color: var(--ink-soft);
}
.news-crumbs a {
    color: var(--gold-soft);
}

.news-featured__body h2,
.news-featured__body h2 a,
.news-card__body h3,
.news-card__body h3 a,
.news-popular h2,
.news-more__head h2,
.news-article h1,
.news-related h2 {
    color: #fff !important;
}

.news-featured,
.news-popular,
.news-more,
.news-empty,
.news-newsletter__inner {
    background: var(--surface) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}

.news-empty__icon {
    background: rgba(197, 160, 89, 0.12);
    color: var(--gold);
}

.news-empty h2 {
    color: #fff !important;
}

.news-empty p {
    color: var(--muted);
}

.news-empty__cta {
    box-shadow: 0 8px 20px rgba(109, 14, 14, 0.28);
}

.news-card {
    background: var(--surface) !important;
    border-color: rgba(197, 160, 89, 0.2) !important;
}

.news-card__body p,
.news-featured__body p,
.news-popular__copy small,
.news-more__copy small {
    color: var(--muted);
}

.news-filters__btn {
    background: #121212 !important;
    border-color: rgba(197, 160, 89, 0.2) !important;
    color: var(--ink-soft) !important;
}

.news-filters__btn.is-active,
.news-filters__btn:hover {
    background: rgba(109, 14, 14, 0.28) !important;
    border-color: var(--maroon) !important;
    color: #fff !important;
}

.news-popular__num {
    color: var(--gold-soft);
}

.news-popular__copy strong {
    color: #fff;
}

.news-popular__more {
    background: rgba(109, 14, 14, 0.22) !important;
    border: 1px solid rgba(197, 160, 89, 0.22);
    color: var(--gold-soft) !important;
}

.news-popular__more:hover {
    background: rgba(109, 14, 14, 0.35) !important;
    color: #fff !important;
}

.news-popular__thumb {
    background: #1a1a1a;
}

.news-tag {
    background: rgba(197, 160, 89, 0.14);
    color: var(--gold-soft);
    border: 1px solid rgba(197, 160, 89, 0.25);
}

.news-card__more,
.news-featured__cta,
.news-more__all {
    color: var(--gold-soft) !important;
}

.news-newsletter__field {
    background: #121212;
    border-color: rgba(197, 160, 89, 0.22);
}

.news-newsletter__field input {
    color: #fff;
}

.news-newsletter__icon {
    background: rgba(197, 160, 89, 0.14);
    color: var(--gold);
}

.news-article__body {
    color: var(--ink-soft);
}

.news-related {
    border-top-color: rgba(197, 160, 89, 0.16);
}

/* ========== Theater detail ========== */
.theater-show-page {
    background: var(--paper);
}

.theater-panel,
.theater-hall-card,
.theater-empty {
    background: var(--surface) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
    color: var(--ink-soft);
}

.theater-panel h2,
.theater-hall-card__body h3 {
    color: #fff;
}

.theater-panel > p,
.theater-hall-card__body p,
.theater-empty p {
    color: var(--muted);
}

.theater-panel--accent {
    background: linear-gradient(145deg, rgba(109, 14, 14, 0.28), rgba(197, 160, 89, 0.1)) !important;
    border-color: rgba(197, 160, 89, 0.28) !important;
}

.theater-panel--accent h2,
.theater-panel--accent p {
    color: #fff;
}

.theater-hall-card__plan--empty {
    background: #121212;
    color: var(--muted);
}

.theater-side-map {
    background: #121212;
    border-color: rgba(197, 160, 89, 0.18);
}

.theater-side-row a {
    color: var(--gold-soft);
}

.theater-panel__count {
    background: rgba(197, 160, 89, 0.14);
    color: var(--gold);
}

/* ========== Tickets ========== */
.tickets-page {
    background: var(--paper);
}

.tix-guest,
.tix-totals,
.tix-row {
    background: var(--surface) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    color: var(--ink-soft);
}

.tix-guest h2,
.tix-section__head h2 {
    color: #fff;
}

.tix-guest__grid div {
    background: #121212 !important;
    border-color: rgba(197, 160, 89, 0.16) !important;
}

.tix-guest__grid strong,
.tix-row__seat > strong,
.tix-row__details strong,
.tix-totals .is-sum {
    color: #fff;
}

.tix-totals .is-sum {
    background: linear-gradient(145deg, rgba(109, 14, 14, 0.28), rgba(197, 160, 89, 0.12)) !important;
    color: var(--gold) !important;
}

.tix-row__scan {
    background: #fff;
}

.tix-btn-light {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.tix-btn-light:hover {
    background: var(--gold);
    color: #0a0a0a;
}

/* ========== Chat widget ========== */
.portal-chat__panel {
    background: #161616 !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}

.portal-chat__messages {
    background:
        radial-gradient(circle at top left, rgba(197, 160, 89, 0.08), transparent 40%),
        #121212 !important;
}

.portal-chat__bubble.is-bot {
    background: #1f1f1f !important;
    color: var(--ink-soft) !important;
    border-color: rgba(197, 160, 89, 0.14) !important;
}

.portal-chat__bubble.is-user {
    background: linear-gradient(135deg, #6d0e0e, #4b0e0e) !important;
    color: #fff !important;
}

.portal-chat__bubble.is-error {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.28) !important;
    color: #fca5a5 !important;
}

.portal-chat__typing {
    color: var(--muted);
}

.portal-chat__form {
    background: #161616 !important;
    border-top-color: rgba(197, 160, 89, 0.14) !important;
}

.portal-chat__form input {
    background: #121212 !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    color: #fff !important;
}

.portal-chat__form input::placeholder {
    color: #777;
}

.portal-chat__link {
    color: var(--gold-soft);
}

/* ========== Error page ========== */
.portal-error-body {
    background:
        radial-gradient(1200px 600px at 85% -10%, rgba(197, 160, 89, 0.12), transparent 55%),
        radial-gradient(900px 520px at -10% 100%, rgba(109, 14, 14, 0.18), transparent 50%),
        var(--paper) !important;
}

.portal-error__grid {
    opacity: 0.18;
    background-image:
        linear-gradient(rgba(197, 160, 89, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(197, 160, 89, 0.06) 1px, transparent 1px);
}

.portal-error__logo strong {
    color: #fff;
}

.portal-error__logo em {
    color: var(--muted);
}

.portal-error__code {
    background: linear-gradient(180deg, rgba(197, 160, 89, 0.35), rgba(197, 160, 89, 0.08));
    -webkit-background-clip: text;
    background-clip: text;
}

.portal-error__icon {
    color: var(--gold);
    background: linear-gradient(145deg, rgba(197, 160, 89, 0.18), rgba(22, 22, 22, 0.9)) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.35) !important;
}

.portal-error__stage h1 {
    color: #fff !important;
}

.portal-error__lead {
    color: var(--ink-soft);
}

.portal-error__ghost {
    color: var(--gold-soft) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
}

.portal-error__ghost:hover {
    background: rgba(197, 160, 89, 0.14) !important;
    color: #fff !important;
}

.portal-error__tips {
    background: rgba(197, 160, 89, 0.08) !important;
    border-color: rgba(197, 160, 89, 0.18) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    color: var(--muted);
}

/* ========== Home remnants ========== */
.search-panel__field label,
.carousel__dots button {
    color: var(--ink-soft);
}

.show-card {
    background: var(--surface) !important;
}

.show-card__body h3 {
    color: #fff !important;
}

.show-card__meta,
.show-card__date {
    color: var(--muted) !important;
}

.news-band {
    background:
        radial-gradient(circle at 100% 0%, rgba(197, 160, 89, 0.1), transparent 40%),
        linear-gradient(180deg, #181818, #121212) !important;
}

.contact-panel {
    color: #fff;
}

.contact-panel p {
    color: rgba(255, 255, 255, 0.82);
}

/* ========== Shows listing extras ========== */
.shows-page,
.shows-toolbar-wrap {
    background: transparent;
}

.show-listing-card__excerpt,
.theater-listing-card__excerpt {
    color: var(--muted);
}

.show-listing-card__price,
.theater-listing-card__city {
    color: var(--gold-soft);
}

.shows-empty,
.theaters-empty {
    background: var(--surface) !important;
    border-color: rgba(197, 160, 89, 0.2) !important;
    color: var(--muted);
}

.shows-empty h2,
.theaters-empty h2 {
    color: #fff;
}

/* ========== Pagination ========== */
.portal-pager__meta {
    color: var(--muted);
}

.portal-pager__meta strong {
    color: #fff;
}

.portal-pager__list {
    background: linear-gradient(180deg, #1a1a1a 0%, #121212 100%) !important;
    border-color: rgba(197, 160, 89, 0.22) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.32);
}

.portal-pager__btn {
    color: var(--ink-soft);
}

.portal-pager__item:not(.is-disabled):not(.is-current) .portal-pager__btn:hover {
    background: rgba(197, 160, 89, 0.12);
    border-color: rgba(197, 160, 89, 0.28);
    color: var(--gold-soft);
}

.portal-pager__item.is-current .portal-pager__btn {
    background: var(--maroon) !important;
    border-color: var(--maroon) !important;
    color: #fff !important;
}

.pagination .page-link,
.pagination .page-item span {
    background: var(--surface);
    border-color: rgba(197, 160, 89, 0.2);
    color: var(--ink-soft);
}

.pagination .page-item.active .page-link {
    background: var(--maroon);
    border-color: var(--maroon);
    color: #fff;
}
