* { font-family: 'Vazir', Tahoma, 'Segoe UI', Arial, sans-serif; }
:root {
    --brand: #ea580c;
    --brand-dark: #c2410c;
    --brand-soft: #fff7ed;
    --bg: #f7f4ef;
    --card: #ffffff;
    --text: #111827;
    --muted: #6b7280;
    --border: #f1e7db;
}
body { background: var(--bg); color: var(--text); transition: background .25s ease, color .25s ease; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #d6a57e; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #b87333; }
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.snap-scroll { scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.snap-item { scroll-snap-align: start; }
.site-header { backdrop-filter: blur(14px); }
.brand-mark { box-shadow: 0 10px 28px rgba(234, 88, 12, .25); }
.form-control { width: 100%; padding: 8px 10px; border: 1px solid #fed7aa; border-radius: 4px; font-size: 12px; background: #fffaf5; outline: none; }
.form-control:focus { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(234, 88, 12, .18); }
.filter-box { background: var(--card); padding: 10px 14px; border-radius: 4px; box-shadow: 0 1px 8px rgba(124,45,18,0.06); border: 1px solid var(--border); }
.event-card { position: relative; overflow: hidden; cursor: pointer; transition: all 0.25s ease; height: 100%; }
.event-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(124,45,18,0.14); }
.event-card:hover .card-overlay { transform: translateY(0); opacity: 1; }
.event-card:hover .card-image img { transform: scale(1.06); }
.card-image img { transition: transform 0.5s ease; background: #f3f4f6; }
.card-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(154, 52, 18, 0.98) 0%, rgba(234, 88, 12, 0.94) 70%, rgba(0,0,0,0.62) 100%); color: white; padding: 18px 12px 12px 12px; transform: translateY(100%); opacity: 0; transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); z-index: 10; min-height: 74%; }
.card-overlay.soldout-overlay { background: linear-gradient(to top, rgba(30, 30, 30, 0.98) 0%, rgba(50, 50, 50, 0.95) 70%, rgba(0,0,0,0.7) 100%); }
.event-card.show-overlay .card-overlay { transform: translateY(0); opacity: 1; }
.discount-badge { animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
.category-tab { border-bottom: 3px solid transparent; transition: all 0.3s; }
.category-tab.active { border-bottom-color: var(--brand); color: var(--brand); }
.hero-slider { position: relative; overflow: hidden; border-radius: 4px; height: 360px; box-shadow: 0 20px 50px rgba(124,45,18,.12); }
.hero-pattern { background-image: radial-gradient(circle at 25% 20%, rgba(255,255,255,.45), transparent 18%), radial-gradient(circle at 70% 70%, rgba(255,255,255,.32), transparent 22%), linear-gradient(135deg, rgba(255,255,255,.1) 25%, transparent 25%); background-size: 100% 100%, 100% 100%, 32px 32px; }
.slide { position: absolute; width: 100%; height: 100%; opacity: 0; transition: opacity 0.8s ease; }
.slide.active { opacity: 1; }
.slider-dot { width: 10px; height: 10px; border-radius: 3px; background: rgba(255,255,255,0.55); cursor: pointer; transition: all 0.3s; }
.slider-dot.active { background: white; width: 28px; border-radius: 3px; }
.sold-out-badge { background: #27272a; color: white; position: absolute; top: 8px; right: 8px; padding: 3px 10px; border-radius: 3px; font-size: 10px; font-weight: bold; z-index: 5; }
.stats-strip .stat-card { transition: transform .25s ease; }
.stats-strip .stat-card:hover { transform: translateY(-2px); }
@media (max-width: 768px) {
    .hero-slider { height: 280px; border-radius: 4px; }
    .tap-hint::after { content: '👆 جزئیات'; position: absolute; top: 8px; left: 8px; background: rgba(0,0,0,0.72); color: white; padding: 2px 8px; border-radius: 4px; font-size: 9px; z-index: 3; }
}
.line-clamp-1 { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

body.dark-theme {
    --bg: #0f1117;
    --card: #181b22;
    --text: #f9fafb;
    --muted: #a1a1aa;
    --border: #2a2f3a;
    background: var(--bg);
    color: var(--text);
}
body.dark-theme .site-header,
body.dark-theme .filter-section,
body.dark-theme .tabs-box,
body.dark-theme .event-card,
body.dark-theme .card-body,
body.dark-theme .stat-card { background: var(--card) !important; border-color: var(--border) !important; color: var(--text) !important; }
body.dark-theme .top-nav { background: #141821 !important; border-color: var(--border) !important; }
body.dark-theme .text-gray-900,
body.dark-theme .text-gray-800,
body.dark-theme .text-gray-700 { color: #f9fafb !important; }
body.dark-theme .text-gray-600,
body.dark-theme .text-gray-500,
body.dark-theme .text-gray-400 { color: #a1a1aa !important; }
body.dark-theme .search-input,
body.dark-theme .form-control { background: #11151d !important; border-color: #2a2f3a !important; color: #f9fafb !important; }
body.dark-theme .quick-filter { background: #24202a !important; color: #fed7aa !important; }
body.dark-theme .theme-toggle { background: #11151d !important; border-color: #2a2f3a !important; color: #fed7aa !important; }
body.dark-theme .filter-box { box-shadow: 0 1px 14px rgba(0,0,0,.25); }

/* V3 refinements */
.brand-logo { width: 150px; height: 80px; object-fit: contain; display: block; }
.site-header .container > .flex { min-height: 72px; }
@media (min-width: 768px) {
    .card-grid { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; gap: 10px !important; }
    .card-image img { height: 150px !important; }
    .event-card .card-body { padding: 9px !important; }
    .event-card h3 { font-size: 11px !important; }
    .event-card p, .event-card span, .event-card .card-overlay div { font-size: 9px !important; }
    .card-overlay { padding: 14px 10px 10px 10px; min-height: 78%; }
}
@media (min-width: 1280px) {
    .card-grid { grid-template-columns: repeat(8, minmax(0, 1fr)) !important; }
    .card-image img { height: 142px !important; }
}
@media (max-width: 640px) {
    .brand-logo { width: 118px; height: 64px; }
}
body.dark-theme .brand-logo { filter: drop-shadow(0 10px 18px rgba(234, 88, 12, .22)); }

/* V4 compact header and outlined category menu */
.site-header .container > .header-inner { min-height: 46px; }
.brand-link { width: 98px; height: 42px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.brand-logo { width: 96px !important; height: 42px !important; object-fit: contain; display: block; }
.login-btn { min-width: 98px; }
.top-nav { background: var(--card) !important; }
.nav-chip-row { gap: 7px !important; }
.nav-link { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; font-size: 11px; font-weight: 700; line-height: 1; color: #4b5563; border: 1px solid #eee2d8; border-radius: 3px; background: transparent; padding: 7px 10px; transition: all .2s ease; }
.nav-link:hover { color: var(--brand); border-color: #fdba74; background: transparent; }
.filter-section { padding-top: 6px !important; padding-bottom: 6px !important; }
.filter-box { padding: 8px 12px; border-radius: 4px; }
.quick-filter { background: transparent !important; border: 1px solid #eee2d8 !important; color: #4b5563 !important; padding: 5px 9px !important; }
.quick-filter:hover { border-color: #fdba74 !important; color: var(--brand) !important; background: transparent !important; }
body.dark-theme .nav-link,
body.dark-theme .quick-filter { border-color: #313744 !important; color: #d4d4d8 !important; background: transparent !important; }
body.dark-theme .nav-link:hover,
body.dark-theme .quick-filter:hover { border-color: #9a3412 !important; color: #fed7aa !important; }

@media (max-width: 768px) {
    .site-header .container { padding-top: 5px !important; padding-bottom: 5px !important; }
    .brand-link { width: 92px; height: 38px; }
    .brand-logo { width: 90px !important; height: 38px !important; }
    .login-btn { min-width: 92px; height: 34px; font-size: 10px; padding-inline: 8px; }
    .theme-toggle { width: 34px !important; height: 34px !important; }
    .top-nav .container { padding-left: 10px; padding-right: 10px; }
    .nav-link { font-size: 10px; padding: 6px 8px; }
    .hero-slider { width: 92%; height: 210px !important; margin-left: auto; margin-right: auto; border-radius: 4px; }
    main.container { padding-left: 10px; padding-right: 10px; }
}

@media (max-width: 420px) {
    .hero-slider { width: 90%; height: 190px !important; }
    .brand-link { width: 84px; }
    .brand-logo { width: 84px !important; }
    .login-btn { min-width: 84px; }
}

/* V5: single menu + sticky category tabs + poster-only cards */
html { scroll-behavior: smooth; scroll-padding-top: 118px; }
.site-header { border-bottom: 1px solid var(--border); }
.top-nav { display: none !important; }
.sticky-tabs { position: sticky; top: 56px; z-index: 45; backdrop-filter: blur(14px); background: rgba(255,255,255,.94) !important; }
.category-tab { border-bottom: 0 !important; transition: all .2s ease; background: transparent; }
.category-tab.active,
.category-tab:hover { border-color: #fdba74 !important; color: var(--brand) !important; background: #fff7ed; }
body.dark-theme .sticky-tabs { background: rgba(24,27,34,.94) !important; border-color: var(--border) !important; }
body.dark-theme .category-tab { border-color: #313744 !important; background: transparent; }
body.dark-theme .category-tab.active,
body.dark-theme .category-tab:hover { border-color: #9a3412 !important; color: #fed7aa !important; background: rgba(154,52,18,.12); }

.event-card { background: #111; }
.event-card .card-image { height: 100%; }
.event-card .card-image img { display: block; }
.event-card .card-overlay { min-height: 100%; padding: 18px 14px 14px 14px; background: linear-gradient(to top, rgba(124,45,18,.98) 0%, rgba(234,88,12,.86) 54%, rgba(0,0,0,.18) 100%); display: flex; flex-direction: column; justify-content: flex-end; }
.event-card .card-overlay h3 { font-size: 14px !important; }
.event-card .card-overlay p,
.event-card .card-overlay div { font-size: 10px !important; }

@media (min-width: 768px) {
    .card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 16px !important; }
    .card-image img { height: 250px !important; }
}
@media (min-width: 1024px) {
    .card-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
    .card-image img { height: 265px !important; }
}
@media (min-width: 1280px) {
    .card-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
    .card-image img { height: 280px !important; }
}
@media (max-width: 768px) {
    html { scroll-padding-top: 106px; }
    .sticky-tabs { top: 86px; border-radius: 4px; margin-bottom: 14px; }
}

/* V6: bigger logo, single tab menu, richer landing sections */
.site-header .container > .header-inner { min-height: 58px; }
.brand-link { width: 150px !important; height: 58px !important; }
.brand-logo { width: 150px !important; height: 58px !important; object-fit: contain; }
.login-btn { min-width: 112px; }
.filter-section .filter-box { padding: 8px 12px; }
.filter-section .grid { margin-bottom: 0 !important; }

.tabs-box { border-radius: 0 !important; box-shadow: 0 1px 10px rgba(124,45,18,.05); }
.sticky-tabs { top: 58px; }
.category-tabs-row { gap: 0 !important; }
.category-tab {
    position: relative;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #4b5563;
}
.category-tab + .category-tab::before {
    content: '';
    position: absolute;
    right: 0;
    top: 28%;
    width: 1px;
    height: 44%;
    background: #eadfd6;
}
.category-tab::after {
    content: '';
    position: absolute;
    right: 16px;
    left: 16px;
    bottom: 0;
    height: 2px;
    border-radius: 4px;
    background: transparent;
    transition: background .2s ease;
}
.category-tab.active::after,
.category-tab:hover::after { background: var(--brand); }
.category-tab.active,
.category-tab:hover { color: var(--brand) !important; background: transparent !important; }
body.dark-theme .category-tab { background: transparent !important; color: #d4d4d8; }
body.dark-theme .category-tab + .category-tab::before { background: #313744; }
body.dark-theme .category-tab.active,
body.dark-theme .category-tab:hover { background: transparent !important; color: #fed7aa !important; }
body.dark-theme .category-tab.active::after,
body.dark-theme .category-tab:hover::after { background: #fb923c; }

.creator-cta { background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 45%, #fed7aa 100%); box-shadow: 0 22px 70px rgba(234,88,12,.12); }
.profile-preview-card { transform: rotate(-1deg); }
.info-section { background: var(--card); border: 1px solid var(--border); border-radius: 4px; padding: 24px; box-shadow: 0 14px 40px rgba(124,45,18,.06); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.section-head h2 { font-size: 24px; font-weight: 900; color: var(--text); }
.section-head p { color: var(--muted); font-size: 13px; line-height: 1.9; max-width: 620px; }
.info-card { border: 1px solid var(--border); border-radius: 4px; padding: 18px; background: linear-gradient(180deg, rgba(255,247,237,.65), transparent); }
.info-card i { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; background: #fff7ed; color: var(--brand); margin-bottom: 12px; }
.info-card h3 { font-size: 14px; font-weight: 900; margin-bottom: 8px; }
.info-card p { font-size: 12px; color: var(--muted); line-height: 2; }
.team-section { background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%); }
.team-card { background: var(--card); border: 1px solid var(--border); border-radius: 4px; padding: 14px; text-align: center; }
.team-card img { width: 100%; height: 150px; object-fit: cover; border-radius: 4px; margin-bottom: 12px; }
.team-card h3 { font-weight: 900; font-size: 13px; }
.team-card p { font-size: 11px; color: var(--muted); margin-top: 4px; }
.article-card { background: var(--card); border: 1px solid var(--border); border-radius: 4px; overflow: hidden; box-shadow: 0 10px 30px rgba(124,45,18,.06); }
.article-card img { width: 100%; height: 170px; object-fit: cover; }
.article-card div { padding: 16px; }
.article-card span { color: var(--brand); font-size: 11px; font-weight: 900; }
.article-card h3 { font-weight: 900; font-size: 15px; line-height: 2; margin: 6px 0 12px; }
.article-card a { color: var(--brand); font-size: 12px; font-weight: 900; }
.join-world { color: white; background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.22), transparent 24%), linear-gradient(135deg, #9a3412 0%, #ea580c 52%, #f97316 100%); box-shadow: 0 24px 70px rgba(154,52,18,.24); }

body.dark-theme .creator-cta { background: linear-gradient(135deg, #1c1714 0%, #2a1b12 45%, #3a210f 100%); border-color: #3a2f26; }
body.dark-theme .creator-cta h2,
body.dark-theme .profile-preview-card h3 { color: #f9fafb !important; }
body.dark-theme .creator-cta p { color: #d4d4d8 !important; }
body.dark-theme .profile-preview-card { background: rgba(24,27,34,.84) !important; border-color: var(--border) !important; }
body.dark-theme .info-section,
body.dark-theme .team-card,
body.dark-theme .article-card { background: var(--card) !important; border-color: var(--border) !important; }
body.dark-theme .team-section { background: linear-gradient(135deg, #181b22 0%, #201912 100%) !important; }
body.dark-theme .info-card { background: #11151d; border-color: var(--border); }
body.dark-theme .info-card i { background: rgba(234,88,12,.14); color: #fed7aa; }

@media (max-width: 768px) {
    .site-header .container > .header-inner { min-height: 48px; }
    .brand-link { width: 132px !important; height: 48px !important; }
    .brand-logo { width: 132px !important; height: 48px !important; }
    .sticky-tabs { top: 92px; border-radius: 0 !important; }
    .category-tab { padding: 11px 14px !important; }
    .section-head { display: block; }
    .section-head h2 { font-size: 20px; margin-bottom: 6px; }
    .info-section { padding: 18px; border-radius: 4px; }
    .team-card img { height: 120px; }
    .article-card img { height: 150px; }
}

@media (max-width: 420px) {
    .brand-link { width: 120px !important; }
    .brand-logo { width: 120px !important; }
}


/* V7: tabs under filter, safe sticky offset, full-width creator CTA, no team section */
.sticky-tabs {
    top: 72px !important;
    z-index: 44;
    margin-top: 0 !important;
    margin-bottom: 18px !important;
}
.tabs-box {
    border-top: 1px solid var(--border) !important;
    border-bottom: 1px solid var(--border) !important;
}
.hero-slider { margin-top: 0; }
.creator-cta {
    width: 100vw;
    margin-right: calc(50% - 50vw) !important;
    margin-left: calc(50% - 50vw) !important;
    border-radius: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    margin-top: 48px !important;
    margin-bottom: 48px !important;
}
.creator-cta > .grid {
    max-width: 1280px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 24px;
    padding-left: 24px;
}
body.dark-theme .creator-cta {
    border: 0 !important;
}
@media (max-width: 768px) {
    .sticky-tabs {
        top: 104px !important;
        margin-bottom: 12px !important;
    }
    .creator-cta { margin-top: 34px !important; margin-bottom: 34px !important; }
    .creator-cta > .grid { padding-right: 16px; padding-left: 16px; }
}
@media (max-width: 420px) {
    .sticky-tabs { top: 100px !important; }
}


/* V8: reduce rounded corners across the whole UI for a more serious, less fantasy look */
:root { --radius-sm: 4px; }
.rounded-sm, .rounded, .rounded-md, .rounded-lg, .rounded-xl, .rounded-2xl, .rounded-3xl, .rounded-full { border-radius: 4px !important; }
.hero-slider, .filter-box, .event-card, .article-card, .info-section, .info-card, .profile-preview-card, .join-world, .site-header, .tabs-box, .form-control, .search-input, .theme-toggle, .login-btn, .slider-arrow { border-radius: 4px !important; }
.slider-dot { border-radius: 3px !important; }

/* V9: aligned tab bar, no slider arrows, full-width join section */
.tabs-box { overflow: visible !important; }
.sticky-tabs {
    top: 72px !important;
    width: 100%;
}
.category-tabs-row {
    padding-right: 0 !important;
    padding-left: 0 !important;
    justify-content: flex-start;
}
.category-tab:first-child { padding-right: 0 !important; }
.slider-arrow { display: none !important; }
.hero-slider { touch-action: pan-y; }
.join-world {
    width: 100vw;
    margin-right: calc(50% - 50vw) !important;
    margin-left: calc(50% - 50vw) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.join-world-inner {
    max-width: 1280px;
    margin-right: auto;
    margin-left: auto;
}
body.dark-theme .join-world { border-radius: 0 !important; }

@media (max-width: 768px) {
    .sticky-tabs { top: 104px !important; }
    .tabs-box .container { padding-right: 10px !important; padding-left: 10px !important; }
    .category-tab:first-child { padding-right: 0 !important; }
    .join-world-inner { padding-right: 16px !important; padding-left: 16px !important; }
}
@media (max-width: 420px) {
    .sticky-tabs { top: 100px !important; }
}

/* V10: softer radius, mobile-first header controls, full-width mobile slider, bottom web-app nav */
:root { --ui-radius: 14px; --ui-radius-lg: 18px; }
.rounded-sm, .rounded, .rounded-md, .rounded-lg, .rounded-xl, .rounded-2xl, .rounded-3xl, .rounded-full { border-radius: var(--ui-radius) !important; }
.hero-slider, .filter-box, .event-card, .article-card, .info-section, .info-card, .profile-preview-card, .site-header, .tabs-box, .form-control, .search-input, .theme-toggle, .login-btn, .hamburger-btn, .mobile-menu-panel, .mobile-webapp-nav { border-radius: var(--ui-radius) !important; }
.hero-slider { border-radius: var(--ui-radius-lg) !important; }
.slider-dot { border-radius: 999px !important; }

.site-header .container > .header-inner { min-height: 54px !important; }
.header-control {
    height: 44px !important;
    min-height: 44px !important;
    border-radius: 12px !important;
    border: 1px solid #eee2d8;
    box-shadow: 0 5px 16px rgba(124,45,18,.06);
}
.brand-link.header-control {
    width: 132px !important;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
}
.brand-logo { width: 112px !important; height: 38px !important; object-fit: contain; }
.theme-toggle, .hamburger-btn {
    width: 44px !important;
    background: #fffaf5 !important;
    color: #3f3f46 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all .2s ease;
}
.theme-toggle:hover, .hamburger-btn:hover { color: var(--brand) !important; border-color: #fdba74; }
.login-btn { width: 132px; padding: 0 14px !important; border-color: transparent !important; box-shadow: 0 7px 18px rgba(234,88,12,.22); }

.mobile-menu-panel a {
    display: block;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 800;
    color: #374151;
    border-bottom: 1px solid #f4e7da;
}
.mobile-menu-panel a:last-child { border-bottom: 0; }
.mobile-menu-panel a:hover { color: var(--brand); background: #fff7ed; }
body.dark-theme .mobile-menu-panel { background: var(--card) !important; border-color: var(--border) !important; }
body.dark-theme .mobile-menu-panel a { color: #e5e7eb; border-color: #2a2f3a; }
body.dark-theme .mobile-menu-panel a:hover { background: rgba(234,88,12,.12); color: #fed7aa; }
body.dark-theme .brand-link.header-control,
body.dark-theme .theme-toggle,
body.dark-theme .hamburger-btn { background: #11151d !important; border-color: #2a2f3a !important; color: #fed7aa !important; }

.mobile-webapp-nav {
    position: fixed;
    right: 10px;
    left: 10px;
    bottom: 10px;
    height: 58px;
    z-index: 80;
    background: rgba(255,255,255,.96);
    border: 1px solid #f1dfcf;
    box-shadow: 0 -10px 30px rgba(39, 20, 8, .13);
    backdrop-filter: blur(14px);
    display: flex;
    overflow: hidden;
}
.mobile-webapp-nav a {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: #52525b;
    font-size: 10px;
    font-weight: 800;
    position: relative;
}
.mobile-webapp-nav a + a::before {
    content: '';
    position: absolute;
    right: 0;
    top: 16%;
    width: 1px;
    height: 68%;
    background: #eadfd6;
}
.mobile-webapp-nav i { font-size: 15px; }
.mobile-webapp-nav a.active,
.mobile-webapp-nav a:hover { color: var(--brand); }
body.dark-theme .mobile-webapp-nav { background: rgba(24,27,34,.96); border-color: var(--border); }
body.dark-theme .mobile-webapp-nav a { color: #d4d4d8; }
body.dark-theme .mobile-webapp-nav a + a::before { background: #313744; }
body.dark-theme .mobile-webapp-nav a.active,
body.dark-theme .mobile-webapp-nav a:hover { color: #fed7aa; }

@media (max-width: 768px) {
    body { padding-bottom: 74px; }
    .site-header .container { padding-top: 8px !important; padding-bottom: 8px !important; }
    .header-inner { gap: 8px !important; }
    .brand-link.header-control { width: 82px !important; height: 44px !important; padding: 4px 7px !important; }
    .brand-logo { width: 68px !important; height: 34px !important; }
    .login-btn, .theme-toggle, .hamburger-btn { width: 44px !important; min-width: 44px !important; padding: 0 !important; }
    .login-btn i { margin-left: 0 !important; }
    .hero-slider {
        width: 100vw !important;
        margin-right: calc(50% - 50vw) !important;
        margin-left: calc(50% - 50vw) !important;
        height: 270px !important;
        border-radius: 0 !important;
    }
    .sticky-tabs { top: 118px !important; }
}
@media (max-width: 420px) {
    .brand-link.header-control { width: 76px !important; }
    .brand-logo { width: 62px !important; }
    .header-actions { gap: 6px !important; }
    .sticky-tabs { top: 116px !important; }
}


/* V11: slide mobile menu, install button inside menu, edge-stuck bottom nav, softer mobile radius */
.mobile-menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    z-index: 89;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}
.mobile-menu-overlay.open {
    opacity: 1;
    pointer-events: auto;
}
.mobile-menu-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: min(82vw, 310px);
    height: 100vh;
    z-index: 90;
    margin: 0 !important;
    padding: 12px;
    background: #fff;
    border-left: 1px solid #f1dfcf;
    box-shadow: -18px 0 45px rgba(15, 23, 42, .18);
    transform: translateX(110%);
    transition: transform .28s ease;
    overflow-y: auto;
}
.mobile-menu-panel.open { transform: translateX(0); }
.mobile-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 2px 12px;
    border-bottom: 1px solid #f4e7da;
    margin-bottom: 6px;
}
.mobile-menu-head img { width: 118px; height: 44px; object-fit: contain; }
.mobile-menu-head button {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #eee2d8;
    background: #fffaf5;
    color: #4b5563;
    border-radius: 8px;
}
.mobile-menu-panel a,
.mobile-menu-panel .install-app-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 8px;
    font-size: 12px;
    font-weight: 850;
    color: #374151;
    border-bottom: 1px solid #f4e7da;
    background: transparent;
    text-align: right;
}
.mobile-menu-panel a i,
.mobile-menu-panel .install-app-btn i { width: 18px; color: var(--brand); text-align: center; }
.mobile-menu-panel a:hover,
.mobile-menu-panel .install-app-btn:hover { color: var(--brand); background: #fff7ed; }
.mobile-menu-panel .install-app-btn {
    margin: 8px 0 4px;
    border: 1px solid #fdba74;
    background: #fff7ed;
    justify-content: center;
    border-radius: 8px;
    color: #c2410c;
}
body.mobile-menu-open { overflow: hidden; }
body.dark-theme .mobile-menu-overlay { background: rgba(0,0,0,.62); }
body.dark-theme .mobile-menu-panel { background: #11151d !important; border-color: #2a2f3a !important; }
body.dark-theme .mobile-menu-head { border-color: #2a2f3a; }
body.dark-theme .mobile-menu-head button,
body.dark-theme .mobile-menu-panel .install-app-btn { background: #181b22; border-color: #2a2f3a; color: #fed7aa; }
body.dark-theme .mobile-menu-panel a,
body.dark-theme .mobile-menu-panel .install-app-btn { border-color: #2a2f3a; color: #e5e7eb; }
body.dark-theme .mobile-menu-panel a:hover,
body.dark-theme .mobile-menu-panel .install-app-btn:hover { background: rgba(234,88,12,.12); color: #fed7aa; }

@media (max-width: 768px) {
    :root { --ui-radius: 10px; --ui-radius-lg: 14px; }
    .site-header,
    .site-header .header-control,
    .filter-box,
    .form-control,
    .search-input,
    .theme-toggle,
    .hamburger-btn { border-radius: 8px !important; }
    .mobile-menu-panel { border-radius: 0 !important; }
    .mobile-menu-panel .install-app-btn,
    .mobile-menu-head button { border-radius: 8px !important; }
    .login-btn { display: none !important; }
    .header-actions { flex-direction: row !important; }
    .mobile-webapp-nav {
        right: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        height: 60px !important;
        border-radius: 0 !important;
        border-right: 0 !important;
        border-left: 0 !important;
        border-bottom: 0 !important;
    }
    body { padding-bottom: 62px !important; }
}

/* V12: swapped mobile theme/menu order and internal portal scaffolding */
.mobile-menu-label {
    font-size: 10px;
    font-weight: 900;
    color: #9ca3af;
    padding: 12px 8px 5px;
    border-bottom: 1px solid #f4e7da;
}
body.dark-theme .mobile-menu-label { color: #71717a; border-color: #2a2f3a; }

.portal-page { min-height: 58vh; }
.portal-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 32px;
    border: 1px solid #fed7aa;
    border-radius: 16px;
    background: linear-gradient(135deg, #fff7ed 0%, #ffffff 55%, #ffedd5 100%);
    margin-bottom: 24px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .06);
}
.portal-hero h1,
.artist-cover h1 { font-size: 26px; font-weight: 950; color: #111827; margin: 10px 0 8px; }
.portal-hero p,
.artist-cover p,
.portal-card p,
.flow-step p,
.portal-panel p { color: #6b7280; font-size: 13px; line-height: 2; }
.portal-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(234, 88, 12, .1);
    color: #c2410c;
    font-size: 11px;
    font-weight: 900;
}
.portal-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 148px;
    padding: 12px 18px;
    border-radius: 12px;
    background: #ea580c;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 10px 20px rgba(234, 88, 12, .18);
}
.portal-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}
.portal-card,
.portal-panel,
.flow-step,
.artist-cover,
.artist-tabs-preview a,
.portal-entry-card,
.login-box {
    background: #fff;
    border: 1px solid #f3e5d8;
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .04);
}
.portal-card { padding: 18px; }
.portal-card i,
.portal-entry-card i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #fff7ed;
    color: #ea580c;
    margin-bottom: 12px;
}
.portal-card h3,
.flow-step h3 { font-size: 15px; font-weight: 950; color: #111827; margin-bottom: 8px; }
.stat-box strong { display: block; font-size: 25px; font-weight: 950; color: #ea580c; }
.stat-box span { font-size: 12px; color: #6b7280; font-weight: 850; }
.portal-panel { padding: 22px; }
.portal-panel h2 { font-size: 18px; font-weight: 950; color: #111827; margin-bottom: 14px; }
.module-list { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.module-list a {
    border: 1px dashed #fdba74;
    background: #fff7ed;
    color: #9a3412;
    padding: 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 900;
    display: flex;
    gap: 8px;
    align-items: center;
}
.producer-flow { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.flow-step { padding: 20px; position: relative; overflow: hidden; }
.flow-step span { display: block; color: #fb923c; font-size: 28px; font-weight: 950; margin-bottom: 12px; }
.artist-cover {
    padding: 28px;
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 22px;
    align-items: center;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #111827 0%, #1f2937 55%, #9a3412 100%);
}
.artist-cover h1,
.artist-cover strong,
.artist-cover p { color: #fff !important; }
.artist-avatar { width: 112px; height: 112px; border-radius: 24px; background: rgba(255,255,255,.14); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 42px; }
.artist-tabs-preview { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.artist-tabs-preview a { padding: 12px 16px; font-size: 12px; font-weight: 900; color: #374151; }
.login-gateway { display: grid; grid-template-columns: 390px 1fr; gap: 18px; align-items: stretch; }
.portal-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.portal-entry-card { padding: 22px; display: flex; flex-direction: column; justify-content: center; color: #111827; }
.portal-entry-card strong { font-size: 15px; font-weight: 950; margin-bottom: 8px; }
.portal-entry-card span { color: #6b7280; font-size: 12px; line-height: 1.8; }
body.dark-theme .portal-hero,
body.dark-theme .portal-card,
body.dark-theme .portal-panel,
body.dark-theme .flow-step,
body.dark-theme .artist-tabs-preview a,
body.dark-theme .portal-entry-card,
body.dark-theme .login-box {
    background: var(--card) !important;
    border-color: var(--border) !important;
    color: var(--text) !important;
}
body.dark-theme .portal-hero h1,
body.dark-theme .portal-card h3,
body.dark-theme .portal-panel h2,
body.dark-theme .flow-step h3,
body.dark-theme .portal-entry-card strong { color: #f9fafb !important; }
body.dark-theme .portal-hero p,
body.dark-theme .portal-card p,
body.dark-theme .flow-step p,
body.dark-theme .portal-panel p,
body.dark-theme .portal-entry-card span { color: #a1a1aa !important; }
body.dark-theme .module-list a { background: rgba(234,88,12,.1); border-color: #9a3412; color: #fed7aa; }

@media (max-width: 1024px) {
    .portal-grid,
    .producer-flow,
    .module-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .login-gateway { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .header-actions { direction: ltr; }
    .hamburger-btn { order: 1; }
    .theme-toggle { order: 2; }
    .portal-hero { display: block; padding: 22px; border-radius: 12px; }
    .portal-action { margin-top: 16px; width: 100%; }
    .portal-grid,
    .producer-flow,
    .module-list,
    .portal-entry-grid { grid-template-columns: 1fr; }
    .artist-cover { grid-template-columns: 1fr; padding: 22px; }
    .artist-avatar { width: 86px; height: 86px; border-radius: 18px; font-size: 32px; }
    .portal-hero h1,
    .artist-cover h1 { font-size: 22px; }
}

/* V13: admin control center and hall map builder */
.portal-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.portal-action i { margin-left: 7px; }
.secondary-action { background: #111827; box-shadow: 0 10px 20px rgba(17,24,39,.14); }
.admin-stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.admin-layout-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; margin-bottom: 24px; align-items: start; }
.panel-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.panel-kicker { display: block; color: #ea580c; font-size: 10px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 5px; }
.panel-save-btn, .panel-light-btn {
    min-height: 38px; padding: 0 14px; border-radius: 10px; border: 1px solid #fdba74; font-size: 12px; font-weight: 900; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap;
}
.panel-save-btn { background: #ea580c; color: #fff; border-color: #ea580c; }
.panel-light-btn { background: #fff7ed; color: #9a3412; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.admin-field { display: flex; flex-direction: column; gap: 8px; }
.admin-field > span { font-size: 12px; color: #374151; font-weight: 900; }
.wide-field { grid-column: 1 / -1; }
.file-drop-preview { min-height: 88px; border: 1px dashed #fdba74; background: #fff7ed; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 12px; }
.logo-preview-box img { width: 150px; height: 58px; object-fit: contain; }
.favicon-preview-box i { width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: #ea580c; color: #fff; font-size: 18px; }
.file-drop-preview small { font-size: 10px; color: #9a3412; font-weight: 800; }
.section-manager-list { display: grid; gap: 9px; }
.section-manager-item { display: grid; grid-template-columns: 24px 34px 1fr 86px 36px; gap: 8px; align-items: center; padding: 8px; border: 1px solid #f3e5d8; border-radius: 12px; background: #fffaf5; }
.section-manager-item > i { color: #ea580c; text-align: center; }
.section-manager-item small { color: #9ca3af; font-size: 10px; font-weight: 800; }
.section-manager-item button { color: #16a34a; font-size: 18px; }
.drag-handle { color: #cbd5e1; }
.admin-module-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.admin-module-grid a { border: 1px solid #f3e5d8; background: #fffaf5; border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 8px; color: #111827; min-height: 132px; }
.admin-module-grid i { width: 38px; height: 38px; border-radius: 12px; background: #ffedd5; color: #ea580c; display: inline-flex; align-items: center; justify-content: center; }
.admin-module-grid strong { font-size: 14px; font-weight: 950; }
.admin-module-grid span { font-size: 11px; color: #6b7280; line-height: 1.8; }
.hall-map-builder-panel { margin-top: 24px; border-color: #fdba74; background: linear-gradient(180deg, #ffffff 0%, #fff7ed 100%); }
.map-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.hall-builder-shell { display: grid; grid-template-columns: 280px 1fr; gap: 18px; align-items: stretch; }
.hall-builder-sidebar { border: 1px solid #f3e5d8; background: rgba(255,255,255,.7); border-radius: 14px; padding: 16px; display: grid; gap: 14px; }
.builder-toolbox { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.builder-toolbox button { border: 1px solid #fed7aa; background: #fff7ed; color: #9a3412; border-radius: 10px; padding: 10px 8px; font-size: 11px; font-weight: 900; display: flex; align-items: center; justify-content: center; gap: 6px; }
.seat-legend { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; font-size: 11px; color: #374151; font-weight: 850; }
.seat-legend span { display: flex; align-items: center; gap: 6px; }
.seat-legend b { width: 14px; height: 14px; display: inline-block; border-radius: 4px; border: 1px solid #d1d5db; }
.seat-free { background: #fff; }
.seat-vip { background: #fed7aa; border-color: #fb923c !important; }
.seat-sold { background: #111827; border-color: #111827 !important; }
.seat-disabled { background: #e5e7eb; }
.hall-canvas-wrap { background: #111827; border-radius: 16px; padding: 20px; overflow-x: auto; color: #fff; }
.stage-label { width: min(520px, 82%); margin: 0 auto 22px; text-align: center; padding: 12px; border-radius: 0 0 40px 40px; background: linear-gradient(90deg, #fb923c, #ea580c); font-size: 12px; font-weight: 950; letter-spacing: .12em; }
.hall-canvas { min-width: 680px; display: grid; gap: 10px; }
.seat-row { display: flex; align-items: center; justify-content: center; gap: 6px; }
.row-label { width: 28px; height: 28px; border-radius: 8px; background: rgba(255,255,255,.1); color: #fed7aa; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 950; margin-left: 8px; }
.seat { width: 30px; height: 30px; border-radius: 8px; background: #fff; color: #111827; font-size: 10px; font-weight: 900; border: 1px solid rgba(255,255,255,.3); transition: .2s; }
.seat:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(251,146,60,.22); }
.seat.vip { background: #fed7aa; color: #9a3412; border-color: #fb923c; }
.seat.sold { background: #374151; color: #9ca3af; cursor: not-allowed; }
.seat.disabled { background: #6b7280; color: #d1d5db; opacity: .55; }
.seat.aisle { margin-left: 18px; }
.canvas-note { margin-top: 16px; color: #d1d5db; font-size: 11px; line-height: 1.8; text-align: center; }
body.dark-theme .admin-field > span,
body.dark-theme .admin-module-grid strong,
body.dark-theme .section-manager-item input { color: #f9fafb !important; }
body.dark-theme .file-drop-preview,
body.dark-theme .section-manager-item,
body.dark-theme .admin-module-grid a,
body.dark-theme .hall-builder-sidebar { background: #181b22; border-color: #2a2f3a; }
body.dark-theme .admin-module-grid span,
body.dark-theme .seat-legend { color: #a1a1aa; }
body.dark-theme .hall-map-builder-panel { background: linear-gradient(180deg, #181b22 0%, #211b16 100%) !important; border-color: #2a2f3a !important; }
body.dark-theme .panel-light-btn,
body.dark-theme .builder-toolbox button { background: rgba(234,88,12,.12); border-color: #9a3412; color: #fed7aa; }
@media (max-width: 1180px) {
    .admin-layout-grid, .hall-builder-shell { grid-template-columns: 1fr; }
    .admin-module-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 768px) {
    .hamburger-btn { order: 1 !important; }
    .theme-toggle { order: 2 !important; }
    .admin-form-grid, .admin-module-grid { grid-template-columns: 1fr; }
    .panel-title-row, .portal-hero-actions, .map-actions { flex-direction: column; align-items: stretch; }
    .section-manager-item { grid-template-columns: 22px 28px 1fr 34px; }
    .section-manager-item small { display: none; }
    .hall-canvas-wrap { border-radius: 12px; padding: 14px; }
}

/* Admin/auth phase */
.admin-shell{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}.admin-sidebar{border-radius:14px;position:sticky;top:92px;overflow:hidden}.admin-nav-link{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;color:#374151;margin-bottom:3px;transition:.2s}.admin-nav-link:hover{background:#fff7ed;color:#ea580c}.admin-content{min-width:0}.admin-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.admin-stat-card{border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px}.admin-stat-card i{font-size:20px}.admin-stat-card span{font-size:12px;color:#6b7280}.admin-stat-card strong{font-size:24px;color:#111827}.admin-panel-card,.admin-hero{border-radius:14px}.admin-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-quick-grid a{border:1px solid #fed7aa;border-radius:12px;padding:12px;font-size:13px;font-weight:700;color:#9a3412;background:#fff7ed}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{border-bottom:1px solid #f3f4f6;padding:10px;text-align:right;white-space:nowrap}.admin-table th{color:#6b7280;font-size:12px}.admin-alert{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:12px;padding:12px;font-size:13px;font-weight:700}.admin-field{font-size:12px;font-weight:800;color:#4b5563}.admin-primary-btn{display:inline-flex;align-items:center;justify-content:center;background:#ea580c;color:white;border-radius:10px;padding:10px 16px;font-weight:900;font-size:13px}.admin-secondary-btn{display:inline-flex;align-items:center;justify-content:center;background:white;color:#9a3412;border:1px solid #fed7aa;border-radius:10px;padding:10px 16px;font-weight:900;font-size:13px}.hall-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #ffedd5;background:#fff7ed;border-radius:12px;padding:12px}.hall-stage{background:#111827;color:#fff;text-align:center;border-radius:14px 14px 4px 4px;padding:14px;font-weight:900;letter-spacing:8px}.hall-map-builder{border:1px dashed #fdba74;background:#fffaf5;border-radius:12px;padding:18px;overflow:auto;min-height:240px}.hall-row{display:flex;gap:6px;margin-bottom:8px;align-items:center;justify-content:center}.hall-row-label{width:32px;font-size:11px;color:#6b7280;font-weight:900}.seat{width:24px;height:24px;border-radius:7px;border:1px solid #d1d5db;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:9px;cursor:pointer;flex:0 0 auto}.seat.vip{background:#f97316;border-color:#ea580c;color:white}.seat.disabled{background:#374151;border-color:#111827;color:white;opacity:.65}.hall-legend{font-size:12px;color:#4b5563;display:flex;align-items:center;gap:5px}.hall-legend .seat{cursor:default;width:18px;height:18px}.dark-theme .admin-sidebar,.dark-theme .admin-panel-card,.dark-theme .admin-hero,.dark-theme .admin-stat-card,.dark-theme .admin-content form,.dark-theme .admin-content>div.bg-white{background:#111827!important;border-color:#1f2937!important;color:#f9fafb}.dark-theme .admin-stat-card strong,.dark-theme .admin-hero h1,.dark-theme .admin-panel-card h2,.dark-theme .admin-content h1{color:#fff}.dark-theme .admin-table th,.dark-theme .admin-table td{border-color:#1f2937}.dark-theme .hall-map-builder{background:#0b1220;border-color:#374151}.dark-theme .hall-toolbar{background:#0b1220;border-color:#374151}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:relative;top:auto}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-quick-grid{grid-template-columns:1fr}}

/* V16: make uploaded logo fill the reserved logo box */
.brand-link.header-control {
    padding: 0 !important;
    overflow: hidden !important;
}
.brand-link.header-control .brand-logo,
.brand-logo {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
}
.mobile-menu-head img {
    width: 112px !important;
    height: 46px !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
}
.logo-preview-box {
    overflow: hidden !important;
}
.logo-preview-box img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
}

/* V17: wider logo box, show full uploaded logo without cropping */
.brand-link.header-control {
    width: 178px !important;
    height: 48px !important;
    padding: 4px 10px !important;
    overflow: visible !important;
}
.brand-link.header-control .brand-logo,
.brand-logo {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
}
.mobile-menu-head img {
    width: 150px !important;
    height: 54px !important;
    object-fit: contain !important;
    object-position: center center !important;
}
.logo-preview-box img {
    object-fit: contain !important;
    object-position: center center !important;
}
@media (max-width: 768px) {
    .brand-link.header-control {
        width: 120px !important;
        height: 44px !important;
        padding: 3px 6px !important;
    }
    .brand-link.header-control .brand-logo,
    .brand-logo {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }
}
@media (max-width: 420px) {
    .brand-link.header-control {
        width: 112px !important;
        height: 44px !important;
    }
}
/* V18 portal/data modules */
.portal-row{border-bottom:1px solid rgba(249,115,22,.12);padding:10px 0;display:flex;flex-direction:column;gap:3px;font-size:13px}.portal-row:last-child{border-bottom:0}.portal-row span,.portal-row small{color:#6b7280}.dark-theme .portal-row{border-color:rgba(255,255,255,.09)}.dark-theme .portal-row span,.dark-theme .portal-row small{color:#9ca3af}.admin-field{font-size:12px;font-weight:800;color:#374151}.dark-theme .admin-field{color:#d1d5db}.form-control{width:100%;border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:10px 12px;font-size:13px;outline:none}.form-control:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.12)}.dark-theme .form-control{background:#111827;border-color:#374151;color:#f9fafb}.admin-primary-btn,.admin-secondary-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 16px;font-weight:900;font-size:13px}.admin-primary-btn{background:#ea580c;color:#fff}.admin-secondary-btn{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.dark-theme .admin-secondary-btn{background:#1f2937;border-color:#374151;color:#fed7aa}.admin-alert{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:800}.admin-table{width:100%;font-size:13px;border-collapse:collapse}.admin-table th,.admin-table td{border-bottom:1px solid #f1f5f9;padding:10px;text-align:right;white-space:nowrap}.admin-table th{color:#6b7280;font-size:12px}.dark-theme .admin-table th,.dark-theme .admin-table td{border-color:#1f2937}.dark-theme .admin-alert{background:#2b1607;border-color:#7c2d12;color:#fed7aa}


/* V19: اختصاصی‌سازی لاگین، پرتال‌ها و اصلاح نقشه سالن */
@media (max-width: 768px){
    .header-actions .theme-toggle{order:2}
    .header-actions .hamburger-btn{order:1}
}
.auth-page-shell{min-height:70vh;padding:42px 16px 56px;background:radial-gradient(circle at 10% 10%,rgba(249,115,22,.16),transparent 28%),linear-gradient(135deg,#fff7ed 0%,#fff 45%,#f8fafc 100%)}
.auth-card-wrap{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:1.15fr 390px;gap:18px;align-items:stretch}.auth-brand-panel,.auth-login-box,.auth-portal-grid a,.admin-glass-panel{border:1px solid rgba(249,115,22,.18);background:rgba(255,255,255,.88);box-shadow:0 18px 45px rgba(15,23,42,.08);border-radius:18px}.auth-brand-panel{padding:34px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#ea580c,#f59e0b 55%,#111827);color:#fff;position:relative;overflow:hidden}.auth-brand-panel:after{content:"";position:absolute;inset:auto -80px -100px auto;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.14)}.auth-kicker{font-size:12px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.auth-brand-panel h1{font-size:34px;font-weight:1000;margin:16px 0 12px}.auth-brand-panel p{font-size:14px;line-height:2;color:rgba(255,255,255,.85);max-width:620px}.auth-role-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.auth-role-strip span{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);padding:8px 12px;border-radius:12px;font-size:12px;font-weight:900}.auth-login-box{padding:26px;display:flex;flex-direction:column;gap:16px}.auth-login-box h2{font-size:22px;font-weight:1000;color:#111827}.auth-login-box p{font-size:12px;color:#6b7280}.auth-login-box label{font-size:12px;font-weight:900;color:#374151}.auth-submit-btn{background:#ea580c;color:#fff;padding:12px 16px;border-radius:12px;font-weight:1000;box-shadow:0 14px 24px rgba(234,88,12,.22)}.auth-demo-users{background:#fff7ed;border:1px dashed #fdba74;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:5px;font-size:12px;color:#9a3412}.auth-portal-grid{max-width:1040px;margin:18px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.auth-portal-grid a{padding:20px;color:#111827;display:flex;flex-direction:column;gap:8px}.auth-portal-grid i{color:#ea580c;font-size:24px}.auth-portal-grid strong{font-weight:1000}.auth-portal-grid span{font-size:12px;color:#6b7280;line-height:1.8}.custom-portal-skin .portal-hero{background:linear-gradient(135deg,#fff7ed,#fff 56%,#f8fafc);border:1px solid rgba(249,115,22,.18);box-shadow:0 18px 44px rgba(15,23,42,.06)}.custom-portal-skin .portal-card,.custom-portal-skin .portal-panel,.admin-portal-skin .admin-glass-panel{border-radius:18px;border-color:rgba(249,115,22,.18);box-shadow:0 14px 36px rgba(15,23,42,.06)}.hall-builder-form{padding:24px}.hall-builder-help{background:#fff7ed;border:1px dashed #fdba74;color:#9a3412;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:800}.hall-capacity-badge{margin-right:auto;background:#111827;color:#fff;border-radius:999px;padding:8px 12px;font-size:12px}.hall-map-builder{display:flex;flex-direction:column;gap:8px;overflow:auto;padding:18px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid #e5e7eb;border-radius:16px}.hall-row{display:flex;gap:6px;align-items:center;min-width:max-content}.hall-row-label{width:64px;font-size:12px;font-weight:950;color:#64748b}.seat{width:34px;height:34px;border-radius:9px;border:1px solid #d1d5db;background:#fff;color:#111827;font-size:11px;font-weight:950;display:inline-flex;align-items:center;justify-content:center}.seat.normal{background:#fff}.seat.vip{background:#f59e0b;color:#fff;border-color:#f59e0b}.seat.disabled{background:repeating-linear-gradient(45deg,#e5e7eb,#e5e7eb 5px,#f3f4f6 5px,#f3f4f6 10px);border-color:#cbd5e1;color:transparent;min-width:34px}.seat.disabled:after{content:"";width:14px;height:2px;background:#94a3b8;display:block}.dark-theme .auth-page-shell{background:radial-gradient(circle at 10% 10%,rgba(249,115,22,.18),transparent 28%),linear-gradient(135deg,#111827,#0f172a)}.dark-theme .auth-login-box,.dark-theme .auth-portal-grid a,.dark-theme .admin-glass-panel{background:#111827;border-color:#374151}.dark-theme .auth-login-box h2,.dark-theme .auth-login-box label,.dark-theme .auth-portal-grid a{color:#f9fafb}.dark-theme .auth-portal-grid span,.dark-theme .auth-login-box p{color:#9ca3af}.dark-theme .hall-map-builder{background:#0f172a;border-color:#374151}.dark-theme .seat.normal{background:#111827;color:#f9fafb;border-color:#374151}.dark-theme .hall-builder-help{background:#2b1607;border-color:#7c2d12;color:#fed7aa}
@media(max-width:900px){.auth-card-wrap{grid-template-columns:1fr}.auth-portal-grid{grid-template-columns:1fr}.auth-brand-panel h1{font-size:26px}.auth-page-shell{padding:22px 12px 80px}.hall-capacity-badge{margin-right:0}.hall-toolbar{align-items:flex-start}}

/* V23: keep mobile-only controls hidden on desktop */
@media (min-width: 769px) {
    #mobileMenuToggle,
    #mobileMenuOverlay,
    #mobileMenuPanel,
    .mobile-menu-overlay,
    .mobile-menu-panel,
    .mobile-webapp-nav {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
    body {
        padding-bottom: 0 !important;
    }
}

@media (max-width: 768px) {
    #mobileMenuToggle {
        display: inline-flex !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
    .mobile-webapp-nav {
        display: flex !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
    .mobile-menu-overlay,
    .mobile-menu-panel {
        display: block !important;
        visibility: visible !important;
    }
}

/* V24: fix mobile tab bar wrapping and restore local SVG icons rendering */
.whitespace-nowrap { white-space: nowrap !important; }
.category-tabs-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    min-height: 50px !important;
    scrollbar-width: none;
}
.category-tabs-row::-webkit-scrollbar { display: none; }
.category-tab {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    min-width: max-content !important;
    height: 50px !important;
    padding: 0 13px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    border-bottom: 2px solid transparent !important;
}
.category-tab + .category-tab { border-right: 1px solid #f2e4d8 !important; }
.category-tab.active { border-bottom-color: var(--brand) !important; }
body.dark-theme .category-tab + .category-tab { border-right-color: #2a2f3a !important; }

.mobile-webapp-nav {
    display: none;
    align-items: stretch !important;
}
.mobile-webapp-nav a {
    min-width: 0 !important;
    overflow: hidden !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}
.mobile-webapp-nav a span {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.2 !important;
}
.mobile-webapp-nav i,
.header-control i,
.mobile-menu-panel i,
.category-tab i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
}

@media (max-width: 768px) {
    .tabs-box { overflow: hidden !important; }
    .tabs-box .container { padding-right: 0 !important; padding-left: 0 !important; }
    .category-tabs-row { padding: 0 10px !important; }
    .category-tab { height: 48px !important; padding: 0 12px !important; font-size: 11px !important; }
    .mobile-webapp-nav { display: flex !important; }
}
@media (min-width: 769px) {
    .mobile-webapp-nav { display: none !important; }
}

/* V25: mobile cards visibility + modern auth tweaks */
@media (max-width: 767px) {
    .card-grid,
    .card-grid.md\:grid,
    .content-section .card-grid {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 12px !important;
        padding: 4px 2px 12px !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }
    .card-grid .snap-item {
        display: block !important;
        flex: 0 0 168px !important;
        min-width: 168px !important;
        width: 168px !important;
        scroll-snap-align: start;
    }
    .card-grid .event-card {
        display: block !important;
        min-height: 230px !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        background: #111 !important;
    }
    .card-grid .card-image,
    .card-grid .card-image img {
        display: block !important;
        width: 100% !important;
        height: 230px !important;
        object-fit: cover !important;
    }
    .content-section {
        overflow: visible !important;
    }
    .content-section > .flex.items-center.justify-between {
        padding: 0 2px !important;
    }
}

.auth-page-shell.modern-auth {
    min-height: calc(100vh - 90px);
    padding: 46px 16px 70px;
    background:
        radial-gradient(circle at 90% 10%, rgba(234,88,12,.22), transparent 28%),
        radial-gradient(circle at 12% 82%, rgba(245,158,11,.18), transparent 30%),
        linear-gradient(135deg, #fff7ed 0%, #ffffff 42%, #f8fafc 100%);
}
.modern-auth .auth-card-wrap {
    max-width: 1080px;
    grid-template-columns: 1.05fr 420px;
    gap: 20px;
}
.modern-auth .auth-brand-panel {
    min-height: 420px;
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(17,24,39,.92), rgba(154,52,18,.88)),
        linear-gradient(45deg, #ea580c, #f59e0b);
    box-shadow: 0 24px 70px rgba(124,45,18,.20);
}
.modern-auth .auth-brand-panel h1 {
    font-size: 38px;
    line-height: 1.45;
}
.modern-auth .auth-login-box {
    border-radius: 24px;
    padding: 30px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(16px);
}
.modern-auth .auth-submit-btn {
    border-radius: 14px;
    padding: 14px 18px;
}
.modern-auth .auth-portal-grid {
    max-width: 1080px;
}
.modern-auth .auth-portal-grid a {
    border-radius: 18px;
    flex-direction: row;
    align-items: center;
    gap: 12px;
}
.modern-auth .auth-portal-grid span { display: block; }
.auth-portal-grid .portal-copy { display:flex; flex-direction:column; gap:4px; }
@media (max-width: 900px) {
    .auth-page-shell.modern-auth {
        min-height: auto;
        padding: 16px 10px 78px;
    }
    .modern-auth .auth-card-wrap {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .modern-auth .auth-brand-panel {
        min-height: 156px;
        padding: 20px;
        border-radius: 16px;
    }
    .modern-auth .auth-brand-panel h1 {
        font-size: 22px;
        margin: 8px 0 4px;
    }
    .modern-auth .auth-brand-panel p,
    .modern-auth .auth-kicker,
    .modern-auth .auth-role-strip {
        display: none !important;
    }
    .modern-auth .auth-login-box {
        padding: 18px;
        border-radius: 16px;
        gap: 12px;
    }
    .modern-auth .auth-login-box h2 { font-size: 18px; }
    .modern-auth .auth-demo-users { display: none; }
    .modern-auth .auth-portal-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-top: 10px !important;
    }
    .modern-auth .auth-portal-grid a {
        padding: 10px 6px !important;
        min-height: 64px;
        border-radius: 14px;
        flex-direction: column !important;
        justify-content: center;
        text-align: center;
        gap: 5px;
    }
    .modern-auth .auth-portal-grid i {
        font-size: 18px !important;
        margin: 0 !important;
    }
    .modern-auth .auth-portal-grid strong {
        font-size: 11px;
        line-height: 1.5;
        white-space: nowrap;
    }
    .modern-auth .auth-portal-grid span,
    .modern-auth .auth-portal-grid .portal-caption {
        display: none !important;
    }
}
.dark-theme .auth-page-shell.modern-auth {
    background: radial-gradient(circle at 90% 10%, rgba(234,88,12,.18), transparent 28%), linear-gradient(135deg,#0f172a,#111827);
}

/* V26: creative backstage auth page + stronger mobile cards */
.creative-auth{
    min-height:calc(100vh - 78px);
    padding:44px 16px 78px;
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
    gap:22px;
    align-items:stretch;
    background:
        radial-gradient(circle at 86% 16%, rgba(234,88,12,.22), transparent 27%),
        radial-gradient(circle at 18% 88%, rgba(251,146,60,.22), transparent 32%),
        linear-gradient(135deg,#fffaf4 0%,#fff 48%,#f8fafc 100%);
}
.creative-auth .auth-stage,
.creative-auth .auth-console{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(154,52,18,.16);
    background:rgba(255,255,255,.78);
    box-shadow:0 28px 70px rgba(124,45,18,.10);
    border-radius:26px;
}
.creative-auth .auth-stage{
    min-height:540px;
    display:grid;
    grid-template-rows:1fr 260px;
    background:
        linear-gradient(180deg,rgba(17,24,39,.88),rgba(67,20,7,.88)),
        linear-gradient(135deg,#ea580c,#f59e0b);
    color:#fff;
}
.creative-auth .auth-stage:before{
    content:"";
    position:absolute;
    inset:0;
    background-image:linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
    background-size:34px 34px;
    mask-image:linear-gradient(to bottom,#000,transparent 86%);
}
.creative-auth .auth-stage-copy{
    position:relative;
    z-index:2;
    padding:54px 54px 10px;
    max-width:720px;
}
.creative-auth .auth-kicker{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:0 12px;
    border:1px solid rgba(255,255,255,.20);
    background:rgba(255,255,255,.10);
    border-radius:999px;
    font-size:11px;
    font-weight:1000;
    letter-spacing:.12em;
    color:rgba(255,255,255,.86);
}
.creative-auth .auth-stage h1{
    margin:18px 0 12px;
    font-size:50px;
    line-height:1.25;
    font-weight:1000;
    letter-spacing:-.04em;
}
.creative-auth .auth-stage p{
    max-width:610px;
    color:rgba(255,255,255,.82);
    font-size:15px;
    line-height:2.25;
    font-weight:700;
}
.creative-auth .auth-live-board{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:28px;
}
.creative-auth .auth-live-board span{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 13px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(0,0,0,.18);
    border-radius:14px;
    color:#fff;
    font-size:12px;
    font-weight:950;
}
.creative-auth .auth-stage-visual{
    position:relative;
    z-index:1;
    margin:0 44px 34px;
    border-top:1px solid rgba(255,255,255,.14);
}
.creative-auth .stage-light{
    position:absolute;
    bottom:8px;
    width:190px;
    height:190px;
    border-radius:50%;
    filter:blur(4px);
    opacity:.55;
    background:radial-gradient(circle,rgba(251,146,60,.85),transparent 68%);
}
.creative-auth .stage-light.one{right:8%;}
.creative-auth .stage-light.two{left:7%;background:radial-gradient(circle,rgba(255,255,255,.35),transparent 68%);}
.creative-auth .ticket-stack{
    position:absolute;
    inset:auto 50% 24px auto;
    transform:translateX(50%);
    width:360px;
    height:150px;
}
.creative-auth .ticket-stack span{
    position:absolute;
    inset:0;
    border:1px solid rgba(255,255,255,.24);
    background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.06));
    border-radius:22px;
    box-shadow:0 20px 40px rgba(0,0,0,.18);
}
.creative-auth .ticket-stack span:nth-child(1){transform:rotate(-8deg) translateY(6px)}
.creative-auth .ticket-stack span:nth-child(2){transform:rotate(4deg) translateY(14px)}
.creative-auth .ticket-stack span:nth-child(3){transform:rotate(0deg) translateY(26px)}
.creative-auth .ticket-stack span:before,
.creative-auth .ticket-stack span:after{
    content:"";position:absolute;top:50%;width:26px;height:26px;border-radius:50%;background:rgba(61,22,9,.88);transform:translateY(-50%);
}
.creative-auth .ticket-stack span:before{right:-13px}.creative-auth .ticket-stack span:after{left:-13px}
.creative-auth .auth-console{
    padding:22px;
    display:flex;
    flex-direction:column;
    gap:14px;
    justify-content:center;
}
.creative-auth .auth-ticket-form{
    position:relative;
    padding:26px;
    border:1px solid rgba(249,115,22,.22);
    background:#fff;
    border-radius:22px;
    box-shadow:0 18px 50px rgba(15,23,42,.07);
    display:flex;
    flex-direction:column;
    gap:15px;
}
.creative-auth .auth-ticket-form:before,
.creative-auth .auth-ticket-form:after{
    content:"";position:absolute;top:48%;width:24px;height:24px;border-radius:50%;background:#fff7ed;border:1px solid rgba(249,115,22,.18);
}
.creative-auth .auth-ticket-form:before{right:-13px}.creative-auth .auth-ticket-form:after{left:-13px}
.creative-auth .ticket-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:2px}
.creative-auth .ticket-head span{display:block;color:#ea580c;font-size:10px;font-weight:1000;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
.creative-auth .ticket-head h2{font-size:25px;font-weight:1000;color:#111827}
.creative-auth .ticket-head i{width:46px;height:46px;border-radius:14px;background:#fff7ed;color:#ea580c;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.creative-auth .auth-ticket-form label{font-size:12px;font-weight:950;color:#374151}
.creative-auth .auth-ticket-form .form-control{height:46px;border-radius:14px;background:#f8fafc;border-color:#e5e7eb;font-weight:800}
.creative-auth .auth-submit-btn{height:48px;border-radius:14px;background:linear-gradient(135deg,#ea580c,#f97316);color:#fff;font-weight:1000;display:inline-flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 16px 30px rgba(234,88,12,.24)}
.creative-auth .auth-demo-users{border-radius:15px;background:#fff7ed;border:1px dashed #fdba74;color:#9a3412;padding:12px 14px;display:grid;gap:5px;font-size:12px}
.creative-auth .auth-portal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;max-width:none}
.creative-auth .auth-portal-grid a{min-height:86px;border:1px solid rgba(249,115,22,.18);border-radius:18px;background:#fff;color:#111827;box-shadow:0 12px 30px rgba(15,23,42,.05);display:flex;align-items:center;gap:10px;padding:16px;text-align:right}
.creative-auth .auth-portal-grid i{width:38px;height:38px;border-radius:12px;background:#fff7ed;color:#ea580c;display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}
.creative-auth .auth-portal-grid strong{font-size:13px;font-weight:1000;color:#111827}
.creative-auth .auth-portal-grid span{font-size:11px;color:#6b7280;line-height:1.7}
.dark-theme .creative-auth{background:radial-gradient(circle at 88% 12%, rgba(234,88,12,.18), transparent 30%),linear-gradient(135deg,#0f172a,#111827)}
.dark-theme .creative-auth .auth-console,.dark-theme .creative-auth .auth-ticket-form,.dark-theme .creative-auth .auth-portal-grid a{background:#111827;border-color:#374151}
.dark-theme .creative-auth .auth-ticket-form:before,.dark-theme .creative-auth .auth-ticket-form:after{background:#0f172a;border-color:#374151}
.dark-theme .creative-auth .ticket-head h2,.dark-theme .creative-auth .auth-ticket-form label,.dark-theme .creative-auth .auth-portal-grid strong{color:#f9fafb}
.dark-theme .creative-auth .auth-portal-grid span{color:#9ca3af}
.dark-theme .creative-auth .auth-ticket-form .form-control{background:#0f172a;border-color:#374151;color:#f9fafb}
@media(max-width:980px){
    .creative-auth{grid-template-columns:1fr;padding:18px 10px 86px;gap:12px}
    .creative-auth .auth-stage{min-height:210px;grid-template-rows:1fr;display:block;border-radius:18px}
    .creative-auth .auth-stage-copy{padding:22px 20px}
    .creative-auth .auth-stage h1{font-size:25px;margin:10px 0 5px}
    .creative-auth .auth-stage p{font-size:12px;line-height:2;max-width:100%}
    .creative-auth .auth-live-board,.creative-auth .auth-stage-visual,.creative-auth .auth-kicker{display:none!important}
    .creative-auth .auth-console{border-radius:18px;padding:12px;gap:10px}
    .creative-auth .auth-ticket-form{border-radius:16px;padding:16px;gap:12px}
    .creative-auth .ticket-head h2{font-size:19px}
    .creative-auth .ticket-head i{width:38px;height:38px;border-radius:12px;font-size:16px}
    .creative-auth .auth-ticket-form .form-control{height:43px;border-radius:12px}
    .creative-auth .auth-submit-btn{height:44px;border-radius:12px}
    .creative-auth .auth-demo-users{display:none!important}
    .creative-auth .auth-portal-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
    .creative-auth .auth-portal-grid a{min-height:58px;border-radius:13px;flex-direction:column;justify-content:center;text-align:center;padding:8px 4px;gap:4px}
    .creative-auth .auth-portal-grid i{width:28px;height:28px;border-radius:9px;font-size:14px}
    .creative-auth .auth-portal-grid strong{font-size:11px;line-height:1.2;white-space:nowrap}
    .creative-auth .auth-portal-grid span,.creative-auth .auth-portal-grid .portal-caption{display:none!important}
}

@media(max-width:767px){
    .content-section .card-grid{min-height:242px!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;align-items:stretch!important;visibility:visible!important;opacity:1!important}
    .content-section .card-grid .snap-item{display:block!important;flex:0 0 176px!important;min-width:176px!important;width:176px!important;visibility:visible!important;opacity:1!important}
    .content-section .event-card{display:block!important;height:238px!important;min-height:238px!important;visibility:visible!important;opacity:1!important;background:#111!important}
    .content-section .event-card .card-image,.content-section .event-card .card-image img{display:block!important;height:238px!important;width:100%!important;visibility:visible!important;opacity:1!important;object-fit:cover!important}
}

/* V28: static ticket mascot on login */
.creative-auth .auth-console{
    overflow:visible !important;
}
.ticket-mascot-widget{
    position:absolute;
    top:-82px;
    left:22px;
    width:185px;
    height:218px;
    z-index:7;
    pointer-events:none;
}
.ticket-mascot-widget .mascot-figure{
    position:absolute;
    inset:30px 0 0;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    filter:drop-shadow(0 16px 24px rgba(124,45,18,.20));
    animation:mascotIdle 4.8s ease-in-out infinite;
}
.ticket-mascot-widget img{
    width:166px;
    height:auto;
    object-fit:contain;
    display:block;
    user-select:none;
}
.mascot-bubble{
    position:absolute;
    top:0;
    left:8px;
    max-width:235px;
    padding:8px 12px;
    border:1px solid rgba(249,115,22,.22);
    background:#fff;
    color:#9a3412;
    border-radius:16px 16px 6px 16px;
    box-shadow:0 12px 28px rgba(15,23,42,.10);
    font-size:11px;
    font-weight:950;
    line-height:1.7;
    white-space:nowrap;
}
.mascot-bubble:after{
    content:"";
    position:absolute;
    bottom:-7px;
    left:22px;
    width:12px;
    height:12px;
    background:#fff;
    border-left:1px solid rgba(249,115,22,.22);
    border-bottom:1px solid rgba(249,115,22,.22);
    transform:rotate(-45deg);
}
@keyframes mascotIdle{
    0%,100%{transform:translateY(0) rotate(0deg)}
    50%{transform:translateY(-5px) rotate(1.4deg)}
}
.dark-theme .mascot-bubble{
    background:#111827;
    color:#fed7aa;
    border-color:#374151;
}
.dark-theme .mascot-bubble:after{
    background:#111827;
    border-color:#374151;
}
@media(max-width:980px){
    .ticket-mascot-widget{
        position:relative;
        top:auto;
        left:auto;
        width:100%;
        height:128px;
        margin:-4px 0 -8px;
        display:flex;
        justify-content:flex-start;
        padding-right:10px;
    }
    .ticket-mascot-widget .mascot-figure{
        inset:18px auto 0 10px;
        width:112px;
        align-items:flex-end;
        justify-content:flex-start;
    }
    .ticket-mascot-widget img{width:112px;}
    .mascot-bubble{
        top:8px;
        right:116px;
        left:auto;
        max-width:240px;
        font-size:10px;
        border-radius:13px 13px 13px 5px;
    }
    .mascot-bubble:after{left:auto;right:18px;}
}

/* V29: desktop mascot moved to dark backstage panel + cleaner submit button */
.creative-auth .auth-stage .ticket-mascot-widget{
    position:absolute;
    left:58px;
    bottom:34px;
    top:auto;
    width:285px;
    height:290px;
    z-index:6;
    pointer-events:none;
}
.creative-auth .auth-stage .ticket-mascot-widget .mascot-figure{
    position:absolute;
    inset:auto 0 0 0;
    height:235px;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    filter:drop-shadow(0 24px 35px rgba(0,0,0,.38));
}
.creative-auth .auth-stage .ticket-mascot-widget img{
    width:238px;
    height:auto;
    object-fit:contain;
}
.creative-auth .auth-stage .mascot-bubble{
    top:8px;
    left:18px;
    right:auto;
    background:rgba(255,255,255,.94);
    color:#7c2d12;
    border-color:rgba(255,255,255,.42);
    box-shadow:0 18px 34px rgba(0,0,0,.22);
    font-size:12px;
    padding:10px 14px;
}
.creative-auth .auth-stage .mascot-bubble:after{
    background:rgba(255,255,255,.94);
    border-color:rgba(255,255,255,.42);
}
.creative-auth .auth-submit-btn{
    border:0!important;
    outline:0!important;
    -webkit-appearance:none;
    appearance:none;
}
.creative-auth .auth-submit-btn:focus{
    outline:0!important;
    box-shadow:0 16px 30px rgba(234,88,12,.24),0 0 0 3px rgba(249,115,22,.16);
}
@media(max-width:980px){
    .creative-auth .auth-stage .ticket-mascot-widget{
        display:none!important;
    }
}

/* V30: static desktop mascot near the backstage title, no bubble */
.creative-auth .ticket-mascot-widget .mascot-figure{
    animation:none!important;
    transform:none!important;
}
.creative-auth .mascot-bubble{
    display:none!important;
}
.creative-auth .auth-stage .ticket-mascot-widget{
    position:absolute!important;
    left:58px!important;
    top:86px!important;
    bottom:auto!important;
    width:270px!important;
    height:280px!important;
    z-index:5!important;
    pointer-events:none!important;
}
.creative-auth .auth-stage .ticket-mascot-widget .mascot-figure{
    position:absolute!important;
    inset:0!important;
    height:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    filter:drop-shadow(0 24px 35px rgba(0,0,0,.34))!important;
}
.creative-auth .auth-stage .ticket-mascot-widget img{
    width:245px!important;
    max-height:260px!important;
    height:auto!important;
    object-fit:contain!important;
}
@media(max-width:980px){
    .creative-auth .auth-stage .ticket-mascot-widget{display:none!important;}
}

/* V31 artistic login/register redesign */
.auth-art-page{
  min-height: calc(100vh - 96px);
  padding: 42px 16px 70px;
  background:
    radial-gradient(circle at 18% 12%, rgba(251,146,60,.22), transparent 34%),
    radial-gradient(circle at 88% 28%, rgba(124,45,18,.13), transparent 28%),
    linear-gradient(135deg,#fffaf4 0%,#fff 52%,#fff7ed 100%);
  overflow: hidden;
}
.dark-theme .auth-art-page{
  background:
    radial-gradient(circle at 18% 12%, rgba(249,115,22,.18), transparent 35%),
    radial-gradient(circle at 88% 28%, rgba(251,146,60,.10), transparent 30%),
    linear-gradient(135deg,#0f1117 0%,#17100d 60%,#0d1117 100%);
}
.auth-art-hero{
  width:min(1160px,100%);
  min-height:650px;
  margin:0 auto;
  position:relative;
  display:grid;
  grid-template-columns: 1fr 1.05fr;
  gap:22px;
  align-items:stretch;
}
.auth-art-backdrop{position:absolute;inset:18px -18px auto auto;height:620px;width:78%;pointer-events:none;opacity:.78;background:linear-gradient(120deg,rgba(45,22,16,.98),rgba(122,45,13,.92) 58%,rgba(234,88,12,.55));border-radius:34px;box-shadow:0 30px 90px rgba(124,45,18,.26);overflow:hidden;}
.auth-art-backdrop:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent 0%,#000 18%,#000 100%);}
.curtain-line{position:absolute;width:2px;height:110%;top:-5%;background:linear-gradient(transparent,rgba(255,255,255,.12),transparent);transform:rotate(8deg)}
.curtain-line.line-1{right:18%;}.curtain-line.line-2{right:38%;}.curtain-line.line-3{right:63%;}
.auth-art-mascot-card{
  position:relative;z-index:2;align-self:center;min-height:520px;padding:44px 34px;border:1px solid rgba(249,115,22,.18);border-radius:34px;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);box-shadow:0 24px 70px rgba(15,23,42,.10);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;
}
.dark-theme .auth-art-mascot-card{background:rgba(17,24,39,.76);border-color:rgba(251,146,60,.22);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.auth-art-mascot-card:before{content:"";position:absolute;inset:auto -90px -130px auto;width:300px;height:300px;border-radius:50%;background:rgba(249,115,22,.13)}
.auth-glow-ring{position:absolute;top:74px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(251,146,60,.24),transparent 68%);filter:blur(2px);}
.auth-art-mascot{position:relative;z-index:1;width:205px;max-width:64%;height:auto;filter:drop-shadow(0 22px 28px rgba(124,45,18,.22));}
.auth-art-mascot-card h1{position:relative;z-index:1;margin:20px 0 10px;font-size:clamp(24px,3.2vw,40px);line-height:1.35;font-weight:900;color:#1f2937;}
.dark-theme .auth-art-mascot-card h1{color:#fff7ed}
.auth-art-mascot-card p{position:relative;z-index:1;max-width:430px;color:#6b7280;line-height:2;font-size:14px;}
.dark-theme .auth-art-mascot-card p{color:#d1d5db}
.auth-art-actions{position:relative;z-index:2;margin-top:24px;display:grid;grid-template-columns:1fr 1fr;width:min(360px,100%);background:#fff;border:1px solid #fed7aa;border-radius:18px;padding:6px;box-shadow:0 14px 34px rgba(234,88,12,.12);}
.dark-theme .auth-art-actions{background:#111827;border-color:rgba(251,146,60,.28)}
.auth-mode-btn{border:0;background:transparent;color:#7c2d12;font-weight:900;border-radius:13px;padding:12px 18px;cursor:pointer;transition:.22s ease;}
.dark-theme .auth-mode-btn{color:#fed7aa}
.auth-mode-btn.is-active{background:linear-gradient(135deg,#f97316,#c2410c);color:white;box-shadow:0 10px 22px rgba(234,88,12,.28);transform:translateY(-1px)}
.auth-art-console{position:relative;z-index:3;align-self:center;padding:28px;margin-top:38px;min-height:560px;border:1px solid rgba(255,255,255,.18);border-radius:34px;background:rgba(31,17,12,.58);backdrop-filter:blur(8px);box-shadow:0 30px 80px rgba(67,20,7,.24);overflow:hidden;}
.auth-art-console:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 18% 0%,rgba(251,146,60,.22),transparent 28%),linear-gradient(rgba(255,255,255,.038) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.038) 1px,transparent 1px);background-size:auto,28px 28px,28px 28px;pointer-events:none;}
.auth-form-stage{position:absolute;inset:28px;opacity:0;transform:translateY(16px) scale(.98);pointer-events:none;transition:.28s ease;display:flex;flex-direction:column;justify-content:center;}
.auth-form-stage.is-active{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.auth-panel-head{margin-bottom:20px;color:white;}
.auth-panel-head span{display:inline-block;margin-bottom:10px;color:#fdba74;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:900;}
.auth-panel-head h2{font-size:clamp(26px,3vw,42px);font-weight:950;line-height:1.25;}
.auth-art-form{display:grid;gap:14px;}
.auth-art-form label{color:#ffedd5;font-size:12px;font-weight:800;display:grid;gap:8px;}
.auth-art-form .form-control{border-color:rgba(255,237,213,.22)!important;background:rgba(255,255,255,.92)!important;border-radius:16px!important;height:48px!important;box-shadow:none!important;}
.auth-art-form .form-control:focus{border-color:#fb923c!important;box-shadow:0 0 0 4px rgba(251,146,60,.18)!important;}
.auth-primary-action{height:50px;border:0!important;border-radius:16px;background:linear-gradient(135deg,#fb923c,#ea580c);color:white;font-size:15px;font-weight:950;cursor:pointer;box-shadow:0 14px 28px rgba(234,88,12,.28);transition:.2s ease;}
.auth-primary-action:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(234,88,12,.34)}
.auth-mini-strip{margin-top:14px;border:1px dashed rgba(253,186,116,.35);border-radius:18px;padding:13px 15px;color:#ffedd5;display:grid;gap:6px;font-size:11px;background:rgba(0,0,0,.14)}
.auth-role-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:2px;}
.auth-role-switch label{display:block;}
.auth-role-switch input{display:none;}
.auth-role-switch span{display:flex;align-items:center;justify-content:center;gap:8px;height:42px;border:1px solid rgba(255,237,213,.23);border-radius:15px;color:#ffedd5;background:rgba(255,255,255,.05);font-weight:900;cursor:pointer;transition:.2s ease;}
.auth-role-switch input:checked + span{background:#fff7ed;color:#c2410c;border-color:#fdba74;box-shadow:0 10px 22px rgba(251,146,60,.16)}
.auth-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.auth-terms-box{border:1px solid rgba(253,186,116,.33);border-radius:20px;padding:14px 16px;background:rgba(255,247,237,.08);color:#ffedd5;}
.auth-terms-box strong{display:block;margin-bottom:7px;font-size:13px;}
.auth-terms-box p{margin:0 0 10px;font-size:11px;line-height:1.85;color:#fed7aa;}
.auth-terms-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important;color:#fff!important;font-size:12px!important;}
.auth-terms-check input{width:16px;height:16px;accent-color:#f97316;}
@media (max-width: 900px){
  .auth-art-page{padding:16px 10px 84px;min-height:auto;}
  .auth-art-hero{display:flex;flex-direction:column;gap:12px;min-height:auto;}
  .auth-art-backdrop{display:none;}
  .auth-art-mascot-card{min-height:auto;padding:24px 16px;border-radius:22px;}
  .auth-art-mascot{width:120px;}
  .auth-glow-ring{top:30px;width:150px;height:150px;}
  .auth-art-mascot-card h1{font-size:22px;margin-top:12px;}
  .auth-art-mascot-card p{font-size:12px;line-height:1.8;}
  .auth-art-actions{margin-top:14px;border-radius:15px;}
  .auth-mode-btn{padding:10px 12px;border-radius:10px;}
  .auth-art-console{margin-top:0;padding:16px;min-height:0;border-radius:22px;background:linear-gradient(135deg,#2b1710,#7c2d12);}
  .auth-form-stage{position:relative;inset:auto;display:none;transform:none;opacity:1;}
  .auth-form-stage.is-active{display:flex;}
  .auth-panel-head{margin-bottom:14px;}
  .auth-panel-head h2{font-size:23px;}
  .auth-art-form .form-control{height:44px!important;border-radius:12px!important;}
  .auth-primary-action{height:46px;border-radius:12px;}
  .auth-two-cols{grid-template-columns:1fr;gap:10px;}
  .auth-mini-strip{font-size:10px;border-radius:13px;}
}


/* V32: cleaner search, softer tabs, logged-in header, auth layout fixes */
.filter-search-btn,
.filter-search-btn:focus,
.filter-search-btn:active {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
}
.filter-search-btn:focus-visible {
    box-shadow: 0 0 0 3px rgba(249,115,22,.16) !important;
}
.tabs-box {
    box-shadow: 0 1px 8px rgba(124,45,18,.035) !important;
    border-color: rgba(124,45,18,.08) !important;
}
.category-tabs-row {
    min-height: 42px !important;
}
.category-tab {
    height: 42px !important;
    padding: 0 14px !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    color: #4b5563 !important;
    border-bottom-width: 2px !important;
}
.category-tab + .category-tab {
    border-right: 1px solid rgba(124,45,18,.08) !important;
}
.category-tab.active {
    color: var(--brand) !important;
}
body.dark-theme .category-tab { color:#d1d5db !important; }
body.dark-theme .tabs-box { border-color: rgba(255,255,255,.08) !important; box-shadow:none !important; }
.login-btn span { max-width: 120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Auth redesign stabilization */
.auth-art-page { overflow: visible !important; }
.auth-art-console { box-sizing: border-box; }
.auth-register-stage {
    justify-content: flex-start !important;
    overflow-y: auto !important;
    padding-left: 6px;
}
.auth-register-stage .auth-panel-head { margin-bottom: 14px !important; }
.auth-register-stage .auth-art-form { padding-bottom: 8px; }
.auth-register-stage::-webkit-scrollbar { width: 5px; }
.auth-register-stage::-webkit-scrollbar-thumb { background: rgba(253,186,116,.42); border-radius: 99px; }
@media (min-width: 901px) {
    .auth-art-console { min-height: 640px !important; }
    .auth-register-stage { inset: 22px 28px !important; }
    .auth-register-stage .auth-panel-head h2 { font-size: 34px !important; line-height: 1.2 !important; }
    .auth-register-stage .auth-art-form { gap: 10px !important; }
    .auth-register-stage .auth-art-form .form-control { height: 43px !important; }
    .auth-register-stage .auth-terms-box { padding: 10px 13px !important; border-radius: 16px !important; }
    .auth-register-stage .auth-terms-box p { line-height: 1.65 !important; }
}
@media (max-width: 900px) {
    .category-tabs-row { min-height: 44px !important; }
    .category-tab { height: 44px !important; padding: 0 12px !important; font-size: 11px !important; }
    .auth-art-page { padding: 12px 8px 86px !important; }
    .auth-art-hero { width: 100% !important; }
    .auth-art-console {
        width: 100% !important;
        padding: 14px !important;
        border-radius: 18px !important;
        box-sizing: border-box !important;
    }
    .auth-form-stage.is-active {
        width: 100% !important;
        min-width: 0 !important;
    }
    .auth-art-form,
    .auth-art-form label,
    .auth-art-form .form-control,
    .auth-primary-action {
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .auth-login-stage .auth-panel-head h2 { font-size: 24px !important; }
    .auth-login-stage .auth-art-form .form-control { height: 48px !important; }
    .auth-primary-action { height: 48px !important; }
}


/* V33: remove decorative English labels and fit auth forms without scrolling */
.auth-panel-head span,
.creative-auth .auth-kicker,
.auth-kicker{
    display:none!important;
}
.auth-art-page{
    min-height:calc(100vh - 76px)!important;
    padding:24px 16px 32px!important;
}
.auth-art-hero{
    min-height:560px!important;
    align-items:center!important;
}
.auth-art-backdrop{
    height:535px!important;
    border-radius:28px!important;
}
.auth-art-mascot-card{
    min-height:470px!important;
    padding:30px 28px!important;
    border-radius:26px!important;
}
.auth-art-mascot{
    width:178px!important;
}
.auth-glow-ring{
    top:54px!important;
    width:205px!important;
    height:205px!important;
}
.auth-art-mascot-card h1{
    margin:14px 0 8px!important;
    font-size:clamp(22px,2.65vw,34px)!important;
    line-height:1.3!important;
}
.auth-art-mascot-card p{
    font-size:12px!important;
    line-height:1.85!important;
}
.auth-art-actions{
    margin-top:18px!important;
}
.auth-mode-btn{
    padding:10px 16px!important;
    font-size:13px!important;
}
.auth-art-console{
    min-height:500px!important;
    padding:22px!important;
    margin-top:16px!important;
    border-radius:28px!important;
}
.auth-form-stage{
    inset:22px!important;
    justify-content:center!important;
}
.auth-panel-head{
    margin-bottom:12px!important;
}
.auth-panel-head h2{
    font-size:clamp(22px,2.35vw,32px)!important;
    line-height:1.25!important;
}
.auth-art-form{
    gap:9px!important;
}
.auth-art-form label{
    gap:5px!important;
    font-size:11px!important;
}
.auth-art-form .form-control{
    height:39px!important;
    border-radius:12px!important;
    font-size:12px!important;
}
.auth-primary-action{
    height:42px!important;
    border-radius:12px!important;
    font-size:13px!important;
}
.auth-role-switch{
    gap:8px!important;
}
.auth-role-switch span{
    height:36px!important;
    border-radius:12px!important;
    font-size:11px!important;
}
.auth-two-cols{
    gap:8px!important;
}
.auth-terms-box{
    padding:10px 12px!important;
    border-radius:14px!important;
}
.auth-terms-box strong{
    font-size:11px!important;
    margin-bottom:4px!important;
}
.auth-terms-box p{
    font-size:10px!important;
    line-height:1.65!important;
    margin-bottom:6px!important;
}
.auth-terms-check{
    font-size:11px!important;
}
.auth-mini-strip{
    margin-top:9px!important;
    padding:9px 12px!important;
    border-radius:13px!important;
    font-size:10px!important;
    gap:3px!important;
}
@media (max-width:900px){
    .auth-art-page{
        padding:14px 10px 84px!important;
    }
    .auth-art-hero{
        min-height:auto!important;
    }
    .auth-art-mascot-card{
        padding:22px 16px!important;
        border-radius:22px!important;
    }
    .auth-art-console{
        min-height:0!important;
        margin-top:0!important;
        border-radius:20px!important;
    }
    .auth-form-stage{
        inset:auto!important;
    }
    .auth-panel-head h2{
        font-size:21px!important;
    }
}


/* V34: auth no-scroll, internal pages, 50 archive demo data */
.filter-search-btn{border:0!important;box-shadow:none!important;outline:0!important;}
.tabs-box{border-radius:0!important;margin-bottom:18px!important;}
.category-tabs-row{min-height:38px!important;}
.category-tab{height:38px!important;font-size:10.5px!important;padding:0 12px!important;}
@media (min-width:901px){
  .auth-art-page{height:calc(100vh - 76px)!important;min-height:560px!important;padding:14px 16px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
  .auth-art-hero{min-height:0!important;height:min(620px,calc(100vh - 108px))!important;width:min(1220px,100%)!important;align-items:center!important;grid-template-columns:1fr 1.03fr!important;}
  .auth-art-backdrop{height:100%!important;inset:0 -18px auto auto!important;}
  .auth-art-mascot-card{min-height:0!important;height:100%!important;padding:22px 28px!important;}
  .auth-art-mascot{width:150px!important;}
  .auth-glow-ring{top:44px!important;width:175px!important;height:175px!important;}
  .auth-art-mascot-card h1{font-size:30px!important;margin:10px 0 6px!important;line-height:1.25!important;}
  .auth-art-mascot-card p{font-size:11.5px!important;line-height:1.75!important;max-width:420px!important;}
  .auth-art-actions{margin-top:12px!important;width:min(320px,100%)!important;}
  .auth-mode-btn{padding:9px 13px!important;font-size:12px!important;}
  .auth-art-console{height:100%!important;min-height:0!important;margin-top:0!important;padding:18px!important;overflow:hidden!important;}
  .auth-form-stage{inset:18px!important;justify-content:center!important;overflow:visible!important;padding-left:0!important;}
  .auth-register-stage{overflow:visible!important;}
  .auth-panel-head{margin-bottom:8px!important;}
  .auth-panel-head h2{font-size:26px!important;line-height:1.2!important;}
  .auth-art-form{gap:7px!important;}
  .auth-art-form label{font-size:10.5px!important;gap:4px!important;}
  .auth-art-form .form-control{height:35px!important;font-size:11.5px!important;border-radius:10px!important;}
  .auth-role-switch span{height:32px!important;font-size:10.5px!important;border-radius:10px!important;}
  .auth-two-cols{gap:7px!important;}
  .auth-terms-box{padding:8px 10px!important;border-radius:12px!important;}
  .auth-terms-box strong{font-size:10.5px!important;margin-bottom:3px!important;}
  .auth-terms-box p{font-size:9.5px!important;line-height:1.5!important;margin-bottom:4px!important;}
  .auth-terms-check{font-size:10px!important;}
  .auth-terms-check input{width:13px!important;height:13px!important;}
  .auth-primary-action{height:37px!important;font-size:12px!important;border-radius:10px!important;}
  .auth-mini-strip{margin-top:7px!important;padding:7px 10px!important;font-size:9.5px!important;}
}
.internal-page{min-height:65vh;}
.internal-hero{background:linear-gradient(135deg,#fff7ed,#fff);border:1px solid #fed7aa;border-radius:20px;padding:24px;margin-bottom:18px;box-shadow:0 16px 40px rgba(124,45,18,.06)}
.internal-hero h1{font-size:26px;font-weight:1000;color:#111827;margin-bottom:8px}.internal-hero p{font-size:13px;color:#6b7280;line-height:1.9}
.internal-grid{display:grid;gap:14px}.internal-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.internal-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.internal-card{background:#fff;border:1px solid #f3e1d3;border-radius:18px;padding:16px;box-shadow:0 14px 34px rgba(15,23,42,.05)}
.internal-card img{width:100%;height:170px;object-fit:cover;border-radius:14px;margin-bottom:12px}.internal-card h2{font-size:16px;font-weight:1000;color:#111827;margin-bottom:6px}.internal-card p{font-size:12px;color:#6b7280;line-height:1.8}.internal-card span,.internal-card time{font-size:11px;color:#ea580c;font-weight:900}.internal-card a,.internal-card button{margin-top:12px;display:inline-flex;background:#ea580c;color:#fff;border:0;border-radius:12px;padding:9px 13px;font-size:12px;font-weight:900}.article-list,.ticket-list{display:grid;gap:12px}.ticket-row{display:grid;grid-template-columns:1fr 100px 100px 140px;align-items:center;gap:10px}.empty-state{text-align:center;padding:34px}.media-card{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:14px}.media-card img{height:120px;margin:0}.artist-card,.producer-card{text-align:center}.producer-card img,.artist-card img{height:190px}
.dark-theme .internal-hero{background:linear-gradient(135deg,#111827,#0f172a);border-color:#374151}.dark-theme .internal-hero h1,.dark-theme .internal-card h2{color:#f9fafb}.dark-theme .internal-hero p,.dark-theme .internal-card p{color:#9ca3af}.dark-theme .internal-card{background:#111827;border-color:#374151}
@media(max-width:900px){.internal-grid.three,.internal-grid.four{grid-template-columns:1fr 1fr}.media-card{grid-template-columns:90px 1fr}.media-card img{height:90px}.ticket-row{grid-template-columns:1fr}.internal-card img{height:140px}.internal-hero{padding:18px}.internal-hero h1{font-size:21px}}
/* V35 full event detail */
.event-detail-hero{display:grid;grid-template-columns:360px 1fr;border-radius:18px;margin-bottom:18px}.event-detail-poster{position:relative;background:#fff7ed}.event-detail-poster img{width:100%;height:100%;min-height:520px;object-fit:cover;display:block}.event-detail-poster span{position:absolute;top:14px;right:14px;background:#ea580c;color:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:950}.event-detail-info{padding:28px}.event-detail-kicker{display:inline-flex;align-items:center;gap:8px;background:#fff7ed;color:#c2410c;padding:7px 12px;border-radius:12px;font-size:12px;font-weight:950}.event-detail-info h1{font-size:34px;font-weight:1000;color:#111827;margin:18px 0 10px}.event-detail-info .lead{font-size:14px;line-height:2;color:#4b5563;margin-bottom:20px}.event-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-meta-grid div{border:1px solid #ffedd5;border-radius:14px;padding:12px;background:#fffaf5;display:grid;gap:5px}.event-meta-grid i{color:#ea580c}.event-meta-grid b{font-size:12px;color:#374151}.event-meta-grid span{font-size:12px;color:#6b7280}.event-cast-box{margin-top:16px;border-top:1px solid #f3f4f6;padding-top:16px}.event-cast-box h3,.booking-panel h2{font-size:16px;font-weight:1000;color:#111827;margin-bottom:10px}.event-cast-box p{font-size:13px;color:#4b5563;line-height:2}.booking-panel{border-radius:18px;padding:18px;display:grid;grid-template-columns:280px 1fr 260px;gap:18px;margin-bottom:28px}.session-list{display:grid;gap:10px}.session-option{border:1px solid #ffedd5;background:#fffaf5;border-radius:14px;padding:12px;display:grid;gap:8px;cursor:pointer}.session-option input{display:none}.session-option.is-selected{border-color:#ea580c;box-shadow:0 12px 24px rgba(234,88,12,.12)}.session-option span{font-size:12px;color:#4b5563;display:flex;gap:6px;align-items:center}.session-option strong{font-size:13px;color:#ea580c}.seat-map-preview{background:linear-gradient(180deg,#111827,#1f2937);border-radius:16px;padding:16px;overflow:auto}.stage-label{background:#f97316;color:#fff;text-align:center;border-radius:10px;padding:9px;font-size:13px;font-weight:1000;margin-bottom:14px}.seat-row-preview{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:7px;min-width:max-content}.row-name{width:30px;color:#f9fafb;font-size:11px;font-weight:950}.seat-pick{width:30px;height:30px;border-radius:8px;font-size:10px;font-weight:950;border:1px solid rgba(255,255,255,.18);background:#fff;color:#111827}.seat-pick.vip{background:#fdba74;color:#7c2d12}.seat-pick.sold{background:#374151;color:#9ca3af}.seat-pick.disabled{background:transparent;border-color:transparent;color:transparent;width:18px}.seat-pick.selected{outline:3px solid #22c55e;transform:translateY(-2px)}.seat-legend.clean{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.seat-legend.clean span{font-size:12px;color:#4b5563}.seat-legend.clean b{width:14px;height:14px;border-radius:4px;display:inline-block;margin-left:5px;border:1px solid #d1d5db}.seat-legend.clean b.normal{background:#fff}.seat-legend.clean b.vip{background:#fdba74}.seat-legend.clean b.sold{background:#374151}.seat-legend.clean b.disabled{background:#e5e7eb}.booking-summary{border:1px solid #ffedd5;background:#fff7ed;border-radius:16px;padding:16px;align-self:start;display:grid;gap:10px}.booking-summary p{font-size:13px;color:#4b5563}.booking-summary strong{color:#111827}.booking-summary small{font-size:11px;line-height:1.8;color:#9a3412}@media(max-width:900px){.event-detail-hero{grid-template-columns:1fr}.event-detail-poster img{min-height:auto;height:420px}.event-detail-info h1{font-size:24px}.event-meta-grid{grid-template-columns:1fr}.booking-panel{grid-template-columns:1fr}.seat-map-preview{padding:12px}.seat-pick{width:28px;height:28px}.seat-pick.disabled{width:14px}}
/* V36 complete admin CRM */
.admin-input{width:100%;border:1px solid #fed7aa;background:#fff;border-radius:10px;padding:10px 12px;margin-top:6px;font-size:13px;color:#111827;outline:none;transition:.2s}
.admin-input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.12)}
.admin-panel-card label{font-size:12px;font-weight:900;color:#374151;display:block}
.admin-nav-link{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;color:#374151;font-weight:800;transition:.2s}
.admin-nav-link:hover{background:#fff7ed;color:#ea580c}
.dark-theme .admin-input{background:#0f172a;border-color:#374151;color:#f9fafb}
.dark-theme .admin-panel-card label{color:#e5e7eb}
.dark-theme .admin-nav-link{color:#d1d5db}
.dark-theme .admin-nav-link:hover{background:#1f2937;color:#fb923c}

/* V38 - redesigned artist profile and event purchase flow */
.tiwall-like-event-page{background:#f6f6f6;min-height:100vh;padding-bottom:48px}.event-wide-cover{height:320px;background-size:cover;background-position:center;border-bottom:1px solid rgba(0,0,0,.06);display:flex;align-items:flex-end}.event-cover-inner{height:100%;display:flex;align-items:flex-end}.event-cover-text{color:#fff;max-width:720px;padding:0 0 42px}.event-cover-text span{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.2);padding:7px 12px;border-radius:14px;font-weight:800;font-size:12px}.event-cover-text h1{font-size:42px;line-height:1.35;font-weight:950;margin:16px 0 8px}.event-cover-text p{font-size:15px;line-height:2;color:rgba(255,255,255,.88)}.event-main-layout{display:grid;grid-template-columns:290px 1fr;gap:22px;margin-top:-64px;align-items:start}.event-buy-card{position:sticky;top:96px;background:#fff;border:1px solid #f2dfd2;border-radius:20px;padding:12px;box-shadow:0 20px 45px rgba(15,15,15,.10);z-index:4}.event-buy-card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:15px;background:#f8f0e9}.buy-ticket-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;background:#ea580c;color:#fff;padding:14px 18px;border-radius:14px;font-weight:950;box-shadow:0 14px 24px rgba(234,88,12,.20);border:0}.buy-ticket-btn:hover{background:#c2410c}.quick-buy-info{display:grid;gap:8px;margin-top:12px;font-size:12px;color:#6b5b53}.quick-buy-info span{display:flex;align-items:center;gap:7px;background:#fff7ed;border:1px solid #ffedd5;border-radius:12px;padding:8px 10px}.event-content-card{background:#fff;border:1px solid #f1ded2;border-radius:22px;padding:24px;box-shadow:0 15px 38px rgba(15,15,15,.07)}.event-title-row{display:flex;align-items:start;justify-content:space-between;gap:16px;border-bottom:1px solid #f1e3d9;padding-bottom:18px}.event-title-row small{color:#ea580c;font-weight:900}.event-title-row h2{font-size:28px;font-weight:950;margin:6px 0 0}.event-title-row b{background:#fff2e8;color:#c2410c;border:1px solid #fed7aa;border-radius:999px;padding:7px 12px;font-size:12px}.event-info-grid-rich{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.event-info-grid-rich div{background:#fafafa;border:1px solid #eee;border-radius:16px;padding:13px;display:grid;gap:5px}.event-info-grid-rich i{color:#ea580c}.event-info-grid-rich strong{font-size:12px;color:#444}.event-info-grid-rich span{font-size:12px;color:#666;line-height:1.7}.event-tabs-visual{display:flex;gap:8px;border-bottom:1px solid #eee;margin:8px 0 18px;overflow:auto}.event-tabs-visual a{padding:12px 10px;color:#555;font-weight:850;border-bottom:2px solid transparent;white-space:nowrap}.event-tabs-visual a:hover{color:#ea580c;border-bottom-color:#ea580c}.event-text-section{line-height:2;color:#333}.event-text-section h3{font-size:18px;font-weight:950;margin:18px 0 8px}.event-text-section p{color:#555}.booking-experience{margin-top:28px}.booking-head{display:flex;justify-content:space-between;align-items:center;background:#16110f;color:#fff;border-radius:22px 22px 0 0;padding:20px 24px}.booking-head h2{font-size:24px;font-weight:950}.booking-head p{color:#d9c9bd;font-size:13px;margin-top:4px}.booking-head span{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);padding:8px 12px;border-radius:999px;font-size:12px}.booking-grid-rich{display:grid;grid-template-columns:240px 1fr 260px;gap:18px;background:#fff;border:1px solid #f1ded2;border-top:0;border-radius:0 0 22px 22px;padding:18px;box-shadow:0 18px 45px rgba(15,15,15,.06)}.session-box-rich,.seat-map-card-rich,.checkout-side-rich{background:#fafafa;border:1px solid #eee;border-radius:18px;padding:16px}.session-box-rich h3,.checkout-side-rich h3{font-size:18px;font-weight:950;margin-bottom:12px}.session-pill{display:grid;grid-template-columns:1fr auto;gap:6px;background:#fff;border:1px solid #e9e9e9;border-radius:14px;padding:12px;margin-bottom:10px;cursor:pointer}.session-pill input{display:none}.session-pill span{font-size:12px;color:#666}.session-pill b{color:#111}.session-pill small{grid-column:1/-1;color:#ea580c;font-weight:850}.session-pill.is-selected{border-color:#ea580c;box-shadow:0 8px 22px rgba(234,88,12,.12);background:#fff7ed}.stage-label-rich{background:linear-gradient(90deg,#1f2937,#4b5563);color:#fff;border-radius:14px;text-align:center;padding:10px;font-weight:950;margin-bottom:14px}.seat-map-scroll{overflow:auto;padding-bottom:6px}.seat-row-rich{display:flex;align-items:center;gap:6px;margin-bottom:7px;min-width:max-content}.row-name-rich{width:34px;text-align:center;font-size:12px;color:#666;font-weight:950}.seat-pick-rich{width:34px;height:34px;border-radius:10px;border:1px solid #e5e7eb;background:#fff;font-size:11px;font-weight:850;color:#444;cursor:pointer}.seat-pick-rich.vip{background:#fff7ed;border-color:#fdba74;color:#c2410c}.seat-pick-rich.sold{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.seat-pick-rich.disabled{background:transparent;border-color:transparent;cursor:not-allowed}.seat-pick-rich.selected{background:#16a34a!important;color:#fff!important;border-color:#15803d!important;transform:translateY(-2px)}.seat-legend-rich{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;font-size:12px;color:#666}.seat-legend-rich span{display:inline-flex;align-items:center;gap:6px}.seat-legend-rich b{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid #ddd;background:#fff}.seat-legend-rich b.vip{background:#fff7ed;border-color:#fdba74}.seat-legend-rich b.sold{background:#e5e7eb}.seat-legend-rich b.disabled{background:transparent;border-color:transparent}.checkout-side-rich p{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed #e5e5e5;padding:10px 0;color:#555}.checkout-side-rich strong{color:#111}.checkout-side-rich small{display:block;color:#777;line-height:1.8;margin-top:10px}.buy-ticket-btn.final{margin-top:14px}.event-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px}.location-box-rich,.comments-box-rich{background:#fff;border:1px solid #f1ded2;border-radius:20px;padding:22px;box-shadow:0 12px 28px rgba(15,15,15,.05)}.location-box-rich h3,.comments-box-rich h3{font-size:20px;font-weight:950;margin-bottom:14px}.fake-map{height:150px;background:repeating-linear-gradient(45deg,#f3f4f6,#f3f4f6 10px,#fff 10px,#fff 20px);border:1px solid #e5e7eb;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#777;font-weight:900;margin-top:14px}.comment-item{display:grid;gap:5px;border-bottom:1px solid #eee;padding:11px 0}.comment-item b{color:#ea580c}.comment-item span{font-size:13px;color:#555;line-height:1.8}.comment-form{display:flex;gap:8px;margin-top:14px}.comment-form input{flex:1;border:1px solid #e5e7eb;border-radius:12px;padding:12px}.comment-form button{background:#ea580c;color:#fff;border:0;border-radius:12px;padding:0 18px;font-weight:900}

.artist-profile-page{background:#f6f6f6;padding-bottom:50px}.artist-hero-rich{background:radial-gradient(circle at 15% 10%,rgba(234,88,12,.24),transparent 28%),linear-gradient(135deg,#1c1411,#3a2117 55%,#7c2d12);color:#fff;padding:58px 0 40px}.artist-hero-inner-rich{display:grid;grid-template-columns:150px 1fr 260px;gap:24px;align-items:center}.artist-photo-rich{width:150px;height:150px;border-radius:36px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:54px;color:#fed7aa;box-shadow:0 24px 60px rgba(0,0,0,.25)}.artist-title-rich span{display:inline-block;color:#fed7aa;font-size:12px;font-weight:900;margin-bottom:8px}.artist-title-rich h1{font-size:38px;font-weight:950;margin-bottom:6px}.artist-title-rich strong{display:block;color:#fff7ed;margin-bottom:12px}.artist-title-rich p{color:#e7d7cc;line-height:2;max-width:680px}.artist-actions-rich{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.artist-actions-rich button,.artist-actions-rich a{background:#ea580c;color:#fff;border:0;border-radius:14px;padding:11px 16px;font-weight:900}.artist-actions-rich a{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18)}.artist-stats-rich{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.artist-stats-rich div{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:16px;text-align:center}.artist-stats-rich b{display:block;font-size:26px;color:#fff}.artist-stats-rich span{font-size:12px;color:#e7d7cc}.artist-nav-rich{display:flex;gap:12px;overflow:auto;background:#fff;border:1px solid #f1ded2;border-radius:0 0 18px 18px;padding:12px;margin-bottom:22px;box-shadow:0 10px 22px rgba(15,15,15,.05)}.artist-nav-rich a{white-space:nowrap;color:#555;font-weight:850;padding:8px 12px;border-left:1px solid #eee}.artist-content-grid{display:grid;grid-template-columns:1fr 330px;gap:18px;margin-bottom:22px}.artist-panel-rich{background:#fff;border:1px solid #f1ded2;border-radius:20px;padding:22px;box-shadow:0 12px 28px rgba(15,15,15,.05)}.artist-panel-rich h2,.artist-section-rich h2{font-size:22px;font-weight:950;margin-bottom:12px}.artist-panel-rich p{color:#555;line-height:2}.artist-tags-rich{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.artist-tags-rich span{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:850}.artist-section-rich{background:#fff;border:1px solid #f1ded2;border-radius:20px;padding:22px;margin-bottom:22px;box-shadow:0 12px 28px rgba(15,15,15,.05)}.section-title-rich{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-title-rich a{color:#ea580c;font-weight:900}.artist-event-strip{display:flex;gap:14px;overflow:auto;padding-bottom:8px}.artist-event-mini{min-width:160px;background:#fafafa;border:1px solid #eee;border-radius:16px;overflow:hidden;color:#111}.artist-event-mini img{width:100%;aspect-ratio:3/4;object-fit:cover}.artist-event-mini span{display:block;font-weight:900;padding:10px 10px 2px}.artist-event-mini small{display:block;color:#777;padding:0 10px 10px}.artist-gallery-rich{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.artist-gallery-rich img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px;border:1px solid #eee}.channel-line-rich{display:grid;gap:4px;border-top:1px solid #eee;padding:12px 0}.channel-line-rich b{color:#111}.channel-line-rich span{color:#666;font-size:13px}.artist-panel-rich button{background:#ea580c;color:#fff;border:0;border-radius:12px;padding:11px 18px;font-weight:900;margin-top:10px}.richer-artist-card{overflow:hidden}.richer-artist-card img{height:210px;object-fit:cover}.artist-card-body{padding:14px}.mini-stats{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.mini-stats b{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;border-radius:999px;padding:5px 8px;font-size:11px}

@media(max-width:900px){.event-wide-cover{height:250px}.event-main-layout{grid-template-columns:1fr;margin-top:-40px}.event-buy-card{position:relative;top:auto;display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center}.event-buy-card img{aspect-ratio:3/4}.quick-buy-info{grid-column:1/-1}.event-info-grid-rich{grid-template-columns:repeat(2,1fr)}.booking-head{display:grid;gap:10px}.booking-grid-rich{grid-template-columns:1fr}.event-bottom-grid{grid-template-columns:1fr}.event-cover-text h1{font-size:28px}.artist-hero-inner-rich{grid-template-columns:1fr;text-align:center}.artist-photo-rich{margin:auto}.artist-stats-rich{max-width:360px;margin:auto}.artist-content-grid{grid-template-columns:1fr}.artist-gallery-rich{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.event-cover-text{padding-bottom:28px}.event-wide-cover{height:230px}.event-content-card{padding:16px;border-radius:18px}.event-title-row{display:grid}.event-info-grid-rich{grid-template-columns:1fr}.event-buy-card{grid-template-columns:92px 1fr;border-radius:16px}.booking-head h2{font-size:20px}.booking-grid-rich{padding:12px}.seat-pick-rich{width:30px;height:30px;border-radius:8px}.artist-title-rich h1{font-size:28px}.artist-gallery-rich{grid-template-columns:repeat(2,1fr)}}

/* V43: full-image slider, no overlay text/poster, fixed image fit */
.hero-slider-image-only {
    height: 360px !important;
    background: #f97316;
    overflow: hidden;
}
.hero-slider-image-only .slide,
.hero-slider-image-only .hero-slide-full-image {
    width: 100%;
    height: 100%;
}
.hero-slider-image-only .hero-slide-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
    background: #f3f4f6;
}
.hero-slider-image-only .hero-slide-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-slider-image-only .hero-slide-placeholder i {
    font-size: 78px;
    color: rgba(255,255,255,.82);
}
@media (max-width: 768px) {
    .hero-slider-image-only {
        width: 94% !important;
        height: 190px !important;
        margin-right: auto !important;
        margin-left: auto !important;
        border-radius: 14px !important;
    }
    .hero-slider-image-only .slider-dot { width: 8px; height: 8px; }
    .hero-slider-image-only .slider-dot.active { width: 22px; }
}
@media (max-width: 420px) {
    .hero-slider-image-only {
        width: 92% !important;
        height: 174px !important;
    }
}

/* V44: real ticket reservation states */
.booking-message{display:flex;align-items:center;gap:8px;background:#fff;border-left:4px solid #ea580c;border-right:1px solid #f1ded2;border-top:1px solid #f1ded2;border-bottom:1px solid #f1ded2;padding:12px 16px;font-size:13px;font-weight:850;color:#7c2d12}.booking-message.error{background:#fff7ed;border-left-color:#dc2626;color:#991b1b}.booking-message.success{background:#f0fdf4;border-left-color:#16a34a;color:#166534}.booking-empty-state{background:#fff;border:1px dashed #fdba74;border-radius:14px;padding:14px;color:#9a3412;font-size:13px;line-height:1.8}.session-pill.is-disabled{opacity:.55;cursor:not-allowed}.buy-ticket-btn.final:disabled{background:#d1d5db;color:#6b7280;box-shadow:none;cursor:not-allowed}.ticket-row-enhanced code{direction:ltr;display:inline-flex;margin-top:7px;background:#111827;color:#fff;border-radius:9px;padding:5px 8px;font-size:11px;max-width:100%;overflow:auto}.dark-theme .booking-message{background:#111827;border-color:#374151}.dark-theme .booking-empty-state{background:#111827;border-color:#7c2d12;color:#fed7aa}.dark-theme .ticket-row-enhanced code{background:#020617;color:#e5e7eb}

/* V45: stepped multi-ticket booking flow */
.booking-step-page{padding-top:22px}.booking-step-hero{display:grid;gap:14px}.step-back-link{display:inline-flex;align-items:center;gap:8px;color:#6b5b53;font-weight:850;width:max-content}.step-back-link:hover{color:#ea580c}.booking-step-card{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;background:#fff;border:1px solid #f1ded2;border-radius:22px;padding:14px;box-shadow:0 16px 35px rgba(15,15,15,.06)}.booking-step-card img{width:96px;height:124px;object-fit:cover;border-radius:16px;background:#f8f0e9}.booking-step-card span{display:inline-flex;color:#ea580c;font-weight:950;font-size:12px;margin-bottom:4px}.booking-step-card h1{font-size:28px;font-weight:950;color:#111;margin:0}.booking-step-card p{font-size:15px;color:#444;font-weight:850;margin:4px 0}.booking-step-card small{display:inline-flex;gap:7px;align-items:center;color:#6b7280;font-size:12px}.booking-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.booking-steps b{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px;text-align:center;color:#777;font-size:13px}.booking-steps b.active{background:#fff7ed;border-color:#fdba74;color:#c2410c}.booking-steps b.done{background:#f0fdf4;border-color:#86efac;color:#166534}.session-select-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:#fff;border:1px solid #f1ded2;border-top:0;border-radius:0 0 22px 22px;padding:18px;box-shadow:0 18px 45px rgba(15,15,15,.06)}.session-select-card{background:#fafafa;border:1px solid #eee;border-radius:18px;padding:16px;display:grid;gap:14px}.session-select-card strong{font-size:16px;color:#111}.session-select-card b{display:block;font-size:26px;color:#ea580c;margin-top:4px}.session-select-card span{display:inline-flex;align-items:center;gap:7px;color:#666;font-size:12px;margin-top:8px}.session-price-box{display:grid;gap:6px;background:#fff;border:1px solid #eee;border-radius:14px;padding:10px}.session-price-box small{color:#555;font-weight:850}.session-select-card.is-disabled{opacity:.55}.seat-only-grid{grid-template-columns:1fr 300px}.selected-seat-list{display:flex;flex-wrap:wrap;gap:7px;background:#fff;border:1px dashed #fdba74;border-radius:14px;padding:10px;min-height:44px;color:#9a3412;font-size:12px;line-height:1.8}.selected-seat-list span{display:inline-flex;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:5px 8px;color:#9a3412;font-weight:850}.seat-legend-rich b.selected{background:#16a34a;border-color:#15803d}.multi-checkout{position:sticky;top:88px;align-self:start}
@media(max-width:1024px){.session-select-grid{grid-template-columns:repeat(2,1fr)}.seat-only-grid{grid-template-columns:1fr}.multi-checkout{position:static}}
@media(max-width:640px){.booking-step-card{grid-template-columns:76px 1fr;border-radius:18px}.booking-step-card img{width:76px;height:98px}.booking-step-card h1{font-size:22px}.booking-steps{grid-template-columns:1fr}.session-select-grid{grid-template-columns:1fr;padding:12px}.seat-only-grid{padding:12px}.selected-seat-list{font-size:11px}}

/* V46: mobile responsive seat map and two-layer home slider */
.hero-slider-two-layer {
    height: 390px !important;
    background: #111827;
    overflow: hidden;
    border-radius: 22px !important;
    isolation: isolate;
}
.hero-slider-two-layer .slide {
    overflow: hidden;
}
.hero-bg-image,
.hero-bg-gradient,
.hero-bg-dim {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.hero-bg-image {
    object-fit: cover;
    object-position: center center;
    transform: scale(1.02);
    filter: saturate(1.04);
}
.hero-bg-gradient { z-index: 0; }
.hero-bg-dim {
    z-index: 1;
    background: linear-gradient(90deg, rgba(17,24,39,.80) 0%, rgba(17,24,39,.45) 46%, rgba(17,24,39,.18) 100%);
}
.hero-slide-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    align-items: center;
    gap: 32px;
    padding: 34px 48px;
}
.hero-copy-box {
    max-width: 560px;
    color: #fff;
    text-shadow: 0 12px 28px rgba(0,0,0,.28);
}
.hero-copy-box h2 {
    font-size: 34px;
    line-height: 1.45;
    font-weight: 950;
    margin: 0 0 10px;
}
.hero-copy-box p {
    font-size: 15px;
    line-height: 2;
    color: rgba(255,255,255,.88);
    margin: 0 0 18px;
}
.hero-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    background: #fff;
    color: #c2410c;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 950;
    box-shadow: 0 14px 28px rgba(0,0,0,.18);
}
.hero-poster-frame {
    width: 220px;
    aspect-ratio: 3 / 4;
    border-radius: 22px;
    padding: 8px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(255,255,255,.62);
    box-shadow: 0 26px 60px rgba(0,0,0,.34), 0 0 0 1px rgba(255,255,255,.15) inset;
    backdrop-filter: blur(10px);
}
.hero-poster-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 16px;
    background: #f3f4f6;
}
.hero-poster-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ea580c;
    font-size: 54px;
}
.hero-slider-dots {
    position: absolute;
    z-index: 5;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    align-items: center;
}
.booking-grid-rich > *,
.seat-map-card-rich,
.seat-map-scroll {
    min-width: 0;
}
.seat-map-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding: 4px 0 10px;
    scrollbar-width: thin;
}
.seat-map-scroll::after {
    content: 'برای دیدن همه صندلی‌ها، نقشه را به چپ و راست بکشید';
    display: none;
    margin-top: 8px;
    color: #9a3412;
    font-size: 11px;
    font-weight: 850;
    text-align: center;
}
.seat-row-rich {
    width: max-content;
    min-width: max-content;
}
.seat-pick-rich {
    flex: 0 0 auto;
}
@media (max-width: 1024px) {
    .hero-slider-two-layer {
        height: 330px !important;
    }
    .hero-slide-content {
        grid-template-columns: minmax(0, 1fr) 180px;
        gap: 22px;
        padding: 28px 30px;
    }
    .hero-poster-frame { width: 180px; }
    .hero-copy-box h2 { font-size: 28px; }
}
@media (max-width: 768px) {
    .hero-slider-two-layer {
        width: 94% !important;
        height: 246px !important;
        margin-right: auto !important;
        margin-left: auto !important;
        border-radius: 18px !important;
    }
    .hero-slide-content {
        grid-template-columns: minmax(0, 1fr) 108px;
        gap: 14px;
        padding: 18px;
    }
    .hero-bg-dim {
        background: linear-gradient(90deg, rgba(17,24,39,.88) 0%, rgba(17,24,39,.54) 58%, rgba(17,24,39,.28) 100%);
    }
    .hero-copy-box h2 {
        font-size: 19px;
        line-height: 1.55;
        margin-bottom: 6px;
    }
    .hero-copy-box p {
        font-size: 11px;
        line-height: 1.8;
        max-height: 42px;
        overflow: hidden;
        margin-bottom: 10px;
    }
    .hero-action-btn {
        min-height: 34px;
        padding: 0 13px;
        font-size: 11px;
    }
    .hero-poster-frame {
        width: 108px;
        border-radius: 16px;
        padding: 5px;
    }
    .hero-poster-image { border-radius: 12px; }
    .hero-slider-dots { bottom: 10px; }
    .hero-slider-two-layer .slider-dot { width: 8px; height: 8px; }
    .hero-slider-two-layer .slider-dot.active { width: 22px; }

    .booking-step-page { padding-top: 12px; }
    .booking-step-hero,
    .booking-experience.container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    .booking-head {
        display: grid;
        gap: 10px;
        align-items: start;
        padding: 16px;
        border-radius: 18px 18px 0 0;
    }
    .booking-head span {
        width: max-content;
        max-width: 100%;
        white-space: normal;
        line-height: 1.8;
    }
    .seat-only-grid {
        grid-template-columns: 1fr !important;
        gap: 12px;
        padding: 10px !important;
        border-radius: 0 0 18px 18px;
    }
    .seat-map-card-rich,
    .checkout-side-rich {
        padding: 12px;
        border-radius: 16px;
    }
    .seat-map-scroll::after { display: block; }
    .seat-pick-rich {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px;
        border-radius: 8px !important;
        font-size: 10px;
    }
    .row-name-rich {
        width: 28px;
        min-width: 28px;
        font-size: 11px;
    }
    .seat-row-rich { gap: 5px; margin-bottom: 6px; }
    .stage-label-rich { padding: 9px; border-radius: 12px; font-size: 12px; }
    .seat-legend-rich { font-size: 11px; gap: 8px; }
    .multi-checkout {
        position: static !important;
        order: 2;
    }
    .checkout-side-rich p {
        font-size: 12px;
        padding: 8px 0;
    }
}
@media (max-width: 420px) {
    .hero-slider-two-layer {
        width: 92% !important;
        height: 218px !important;
    }
    .hero-slide-content {
        grid-template-columns: minmax(0, 1fr) 92px;
        gap: 10px;
        padding: 14px;
    }
    .hero-poster-frame { width: 92px; }
    .hero-copy-box h2 { font-size: 16px; }
    .hero-copy-box p { display: none; }
    .seat-pick-rich {
        width: 26px !important;
        height: 26px !important;
        min-width: 26px;
        font-size: 9px;
    }
    .row-name-rich {
        width: 24px;
        min-width: 24px;
    }
}

/* V47 payment flow and ticket QR display */
.portal-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 18px;
}
.portal-section-head p {
    color: #6b7280;
    font-size: 13px;
    line-height: 1.9;
    max-width: 620px;
}
.user-ticket-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}
.user-ticket-card {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 14px;
    padding: 12px;
    border: 1px solid #fed7aa;
    border-radius: 22px;
    background: linear-gradient(135deg, #fff7ed, #fff);
    box-shadow: 0 14px 34px rgba(154, 52, 18, .08);
}
.user-ticket-card.paid { border-color: #bbf7d0; background: linear-gradient(135deg, #f0fdf4, #fff); }
.user-ticket-poster {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 18px;
    min-height: 136px;
    background: #f3f4f6;
}
.user-ticket-poster img {
    width: 100%;
    height: 100%;
    min-height: 136px;
    object-fit: cover;
    display: block;
}
.user-ticket-poster span {
    position: absolute;
    right: 8px;
    left: 8px;
    bottom: 8px;
    border-radius: 999px;
    padding: 6px 8px;
    background: rgba(17, 24, 39, .78);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    text-align: center;
    backdrop-filter: blur(8px);
}
.user-ticket-body { min-width: 0; display: grid; gap: 6px; }
.user-ticket-body strong { font-size: 15px; color: #111827; line-height: 1.7; }
.user-ticket-body small { color: #6b7280; font-size: 12px; line-height: 1.7; }
.user-ticket-body code {
    direction: ltr;
    text-align: left;
    padding: 7px 9px;
    border-radius: 10px;
    background: #f3f4f6;
    color: #374151;
    font-size: 11px;
    overflow-wrap: anywhere;
}
.user-ticket-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.user-ticket-actions a {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}
.user-ticket-actions a.pay { background: #ea580c; }
.payment-page { min-height: 58vh; display: grid; place-items: center; }
.payment-state-card {
    width: min(620px, 100%);
    text-align: center;
    padding: 34px;
    border-radius: 28px;
    background: #fff;
    border: 1px solid #fed7aa;
    box-shadow: 0 28px 80px rgba(154, 52, 18, .12);
}
.payment-state-card > i { font-size: 44px; color: #ea580c; margin-bottom: 12px; }
.payment-state-card.success > i { color: #16a34a; }
.payment-state-card h1 { font-size: 24px; font-weight: 950; color: #111827; margin-bottom: 10px; }
.payment-state-card p { color: #6b7280; line-height: 2; }
.payment-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 22px; }
.outline-ticket-btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border-radius: 999px;
    border: 1px solid #fed7aa;
    color: #9a3412;
    background: #fff7ed;
    font-weight: 900;
}
.ticket-display-shell {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 24px;
    max-width: 1040px;
    margin: 0 auto;
    padding: 20px;
    border-radius: 34px;
    background: #fff;
    border: 1px solid #fed7aa;
    box-shadow: 0 30px 90px rgba(17, 24, 39, .10);
}
.ticket-display-shell.paid { border-color: #bbf7d0; }
.ticket-poster-panel {
    position: relative;
    min-height: 460px;
    border-radius: 28px;
    overflow: hidden;
    background: #111827;
}
.ticket-poster-panel img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; display: block; }
.ticket-poster-panel span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(17, 24, 39, .78);
    color: #fff;
    font-size: 13px;
    font-weight: 950;
    backdrop-filter: blur(10px);
}
.ticket-info-panel { padding: 10px 4px; display: flex; flex-direction: column; gap: 18px; }
.ticket-info-panel > small { color: #ea580c; font-weight: 950; letter-spacing: .08em; direction: ltr; text-align: left; }
.ticket-info-panel h1 { font-size: clamp(24px, 4vw, 40px); line-height: 1.5; font-weight: 950; color: #111827; }
.ticket-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ticket-info-grid div {
    padding: 14px;
    border-radius: 18px;
    background: #f9fafb;
    border: 1px solid #f3f4f6;
}
.ticket-info-grid b { display: block; color: #6b7280; font-size: 12px; margin-bottom: 6px; }
.ticket-info-grid span { display: block; color: #111827; font-size: 15px; font-weight: 900; overflow-wrap: anywhere; }
.ticket-qr-block {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 16px;
    align-items: center;
    padding: 16px;
    border-radius: 22px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}
.ticket-qr-block img { width: 170px; height: 170px; border-radius: 18px; background: #fff; padding: 8px; }
.ticket-qr-block code { display: block; direction: ltr; text-align: left; overflow-wrap: anywhere; margin: 8px 0; }
.ticket-qr-block p, .ticket-pending-note p { color: #4b5563; font-size: 13px; line-height: 1.9; }
.ticket-pending-note {
    display: grid;
    gap: 12px;
    padding: 18px;
    border-radius: 22px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
}
.ticket-pending-note i { color: #ea580c; font-size: 26px; }
.ticket-verify-card .verify-poster { width: 120px; height: 160px; border-radius: 18px; object-fit: cover; margin: 12px auto; box-shadow: 0 16px 40px rgba(0,0,0,.12); }
@media (max-width: 768px) {
    .portal-section-head { display: block; }
    .user-ticket-card { grid-template-columns: 82px 1fr; border-radius: 18px; }
    .user-ticket-poster, .user-ticket-poster img { min-height: 118px; }
    .ticket-display-shell { grid-template-columns: 1fr; border-radius: 24px; padding: 12px; }
    .ticket-poster-panel, .ticket-poster-panel img { min-height: 320px; }
    .ticket-info-grid { grid-template-columns: 1fr; }
    .ticket-qr-block { grid-template-columns: 1fr; text-align: center; }
    .ticket-qr-block img { margin: 0 auto; }
    .payment-state-card { padding: 24px 16px; border-radius: 22px; }
}

/* V48: compact horizontal rails for home event sections */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.home-rail-section {
    position: relative;
    overflow: visible !important;
    margin-bottom: 26px !important;
}

.section-rail-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    padding: 0 2px;
    margin-bottom: 12px;
}

.section-rail-head h2 {
    line-height: 1.5;
}

.section-rail-meta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

.section-rail-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(255,255,255,.70);
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
}

.home-event-rail {
    --rail-card-width: clamp(154px, 13.2vw, 188px);
    --rail-card-height: clamp(218px, 20vw, 258px);
    display: grid !important;
    grid-auto-flow: column !important;
    grid-template-rows: repeat(1, minmax(0, var(--rail-card-height))) !important;
    grid-auto-columns: var(--rail-card-width) !important;
    gap: 14px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    padding: 2px 2px 8px !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    max-width: 100% !important;
}

.home-event-rail::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

.home-event-rail .snap-item {
    display: block !important;
    min-width: 0 !important;
    width: var(--rail-card-width) !important;
    height: var(--rail-card-height) !important;
    scroll-snap-align: start;
}

.home-event-rail .event-card {
    width: 100% !important;
    height: var(--rail-card-height) !important;
    min-height: var(--rail-card-height) !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 22px rgba(124,45,18,.08);
}

.home-event-rail .card-image,
.home-event-rail .card-image img {
    width: 100% !important;
    height: var(--rail-card-height) !important;
    min-height: var(--rail-card-height) !important;
    object-fit: cover !important;
}

.home-event-rail .event-card .card-overlay {
    min-height: 100% !important;
    padding: 16px 12px 12px !important;
}

.home-event-rail .event-card .card-overlay h3 {
    font-size: 13px !important;
}

.home-event-rail .event-card .card-overlay p,
.home-event-rail .event-card .card-overlay div {
    font-size: 9.5px !important;
}

.home-event-rail.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
}

.home-event-rail.is-dragging .event-card,
.home-event-rail.is-dragging a {
    pointer-events: none;
}

body.dark-theme .section-rail-meta span {
    background: rgba(24,27,34,.72);
    border-color: var(--border);
    color: #d4d4d8;
}

@media (min-width: 1536px) {
    .home-event-rail {
        --rail-card-width: 190px;
        --rail-card-height: 268px;
    }
}

@media (max-width: 1024px) {
    .home-event-rail {
        --rail-card-width: 170px;
        --rail-card-height: 236px;
        gap: 12px !important;
    }
}

@media (max-width: 767px) {
    .home-rail-section {
        margin-bottom: 20px !important;
    }
    .section-rail-head {
        align-items: flex-start;
        margin-bottom: 10px;
    }
    .section-rail-meta span {
        display: none;
    }
    .home-event-rail {
        --rail-card-width: 166px;
        --rail-card-height: 230px;
        grid-template-rows: repeat(1, minmax(0, var(--rail-card-height))) !important;
        gap: 12px !important;
        padding-bottom: 4px !important;
    }
    .home-event-rail .event-card {
        border-radius: 12px !important;
    }
}

/* V49: single-row rails, full-width mobile slider, borderless poster overlay and buttons */
.home-event-rail {
    --rail-rows: 1 !important;
    grid-template-rows: repeat(1, minmax(0, var(--rail-card-height))) !important;
    padding-bottom: 6px !important;
}

.hero-poster-frame {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: 0 24px 55px rgba(0,0,0,.30) !important;
    backdrop-filter: none !important;
    overflow: hidden !important;
}
.hero-poster-image {
    border-radius: 20px !important;
}
.hero-poster-placeholder {
    background: rgba(255,255,255,.92) !important;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.btn,
a.btn,
[class$="-btn"],
a[class$="-btn"],
[class*="-btn "],
a[class*="-btn "],
.login-btn,
.theme-toggle,
.hamburger-btn,
.slider-arrow,
.hero-action-btn,
.buy-ticket-btn,
.admin-primary-btn,
.admin-secondary-btn,
.panel-save-btn,
.panel-light-btn,
.outline-ticket-btn,
.install-app-btn,
.mobile-menu-head button,
.builder-toolbox button,
.comment-form button,
.artist-actions-rich button,
.artist-actions-rich a,
.artist-panel-rich button {
    border: 0 !important;
    outline: none;
}
button:focus-visible,
a[class$="-btn"]:focus-visible,
.btn:focus-visible {
    outline: 2px solid rgba(249,115,22,.35);
    outline-offset: 2px;
}

@media (max-width: 768px) {
    .hero-slider-two-layer {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-right: calc(50% - 50vw) !important;
        margin-left: calc(50% - 50vw) !important;
        border-radius: 0 !important;
        height: 250px !important;
    }
    .hero-slider-two-layer .slide {
        border-radius: 0 !important;
    }
    .hero-slide-content {
        padding-right: max(16px, env(safe-area-inset-right)) !important;
        padding-left: max(16px, env(safe-area-inset-left)) !important;
    }
    .hero-poster-frame {
        box-shadow: 0 16px 34px rgba(0,0,0,.28) !important;
    }
    .hero-poster-image {
        border-radius: 15px !important;
    }
}

@media (max-width: 420px) {
    .hero-slider-two-layer {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-right: calc(50% - 50vw) !important;
        margin-left: calc(50% - 50vw) !important;
        height: 226px !important;
        border-radius: 0 !important;
    }
}

/* V50: real artist profiles and linked cast names */
.artist-directory-page .internal-hero { margin-bottom: 14px; }
.artist-directory-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    background: #fff;
    border-radius: 18px;
    padding: 14px 16px;
    margin-bottom: 18px;
    box-shadow: 0 10px 24px rgba(15,15,15,.05);
}
.artist-directory-toolbar div { display: flex; align-items: center; gap: 8px; color: #6b7280; font-size: 12px; }
.artist-directory-toolbar strong { color: #ea580c; font-size: 22px; font-weight: 1000; }
.artist-directory-toolbar a { background: #ea580c; color: #fff; border-radius: 14px; padding: 10px 14px; font-size: 12px; font-weight: 900; }
.directory-artist-card { text-align: right; padding: 0 !important; border: 0 !important; overflow: hidden; }
.artist-cover-link { display: block !important; position: relative; margin: 0 !important; padding: 0 !important; background: transparent !important; border-radius: 0 !important; }
.artist-card-cover { width: 100% !important; height: 150px !important; border-radius: 0 !important; margin: 0 !important; filter: saturate(1.05); }
.artist-avatar-float { position: absolute; right: 18px; bottom: -32px; width: 72px; height: 72px; border-radius: 22px; background: #fff; padding: 4px; box-shadow: 0 16px 30px rgba(15,15,15,.16); }
.artist-avatar-float img { width: 100% !important; height: 100% !important; border-radius: 18px !important; object-fit: cover; margin: 0 !important; }
.directory-artist-card .artist-card-body { padding: 42px 16px 16px; }
.directory-artist-card .artist-card-body h2 a { margin: 0 !important; padding: 0 !important; background: transparent !important; color: #111827 !important; font-size: 18px; font-weight: 1000; }
.directory-artist-card .artist-card-body small { display: block; color: #6b7280; line-height: 1.8; margin-top: 6px; }
.directory-artist-card .artist-card-body > a:last-child { border: 0 !important; }
.cast-profile-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #fff7ed;
    color: #c2410c !important;
    padding: 4px 8px;
    margin: 2px 1px;
    border-radius: 999px;
    font-weight: 900;
    line-height: 1.8;
    box-shadow: 0 8px 18px rgba(234,88,12,.10);
}
.cast-profile-link.compact { padding: 0; margin: 0; background: transparent; box-shadow: none; color: #ea580c !important; }
.event-cast-linked {
    color: #4b5563;
    line-height: 2.4;
    background: #fafafa;
    border-radius: 16px;
    padding: 14px;
}
.muted-cast { color: #9ca3af; }
.public-artist-hero { background-size: cover; background-position: center; }
.artist-photo-rich.real-photo { overflow: hidden; background: #fff; padding: 5px; }
.artist-photo-rich.real-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 30px; }
.artist-contact-panel a { color: #ea580c; font-weight: 900; }
.real-events-strip .artist-event-mini { min-width: 174px; }
.profile-public-link {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff7ed;
    border-radius: 14px;
    padding: 11px 13px;
    font-size: 12px;
}
.profile-public-link span { color: #9a3412; font-weight: 900; }
.profile-public-link a { color: #ea580c; direction: ltr; text-align: left; overflow-wrap: anywhere; }
.artist-profile-form .form-control { min-height: 42px; }

@media (max-width: 768px) {
    .artist-directory-toolbar { align-items: stretch; flex-direction: column; }
    .artist-directory-toolbar a { justify-content: center; text-align: center; }
    .artist-card-cover { height: 130px !important; }
    .artist-avatar-float { width: 62px; height: 62px; border-radius: 18px; bottom: -26px; }
    .artist-avatar-float img { border-radius: 14px !important; }
    .directory-artist-card .artist-card-body { padding-top: 34px; }
    .event-cast-linked { padding: 12px; line-height: 2.3; }
}

/* V51 repair: make cards behave as real links without changing visual design */
.clickable-event-card { cursor: pointer; }
.clickable-event-card:focus-visible { outline: 2px solid rgba(249,115,22,.55); outline-offset: 3px; }

/* V53 focused rebuild: artist intro + ticket reservation + education, without social-feed UI */
:root {
    --v53-line: #e8dfd8;
    --v53-soft: #faf7f4;
    --v53-ink: #22201f;
}
.focused-header { border-bottom: 1px solid var(--v53-line); box-shadow: 0 2px 16px rgba(17, 24, 39, .04); }
.focused-header .header-inner { min-height: 58px; }
.focused-header .search-input { border-radius: 2px !important; }
.desktop-main-nav { align-items: center; flex: 0 0 auto; border-inline: 1px solid var(--v53-line); margin-inline: 8px; }
.desktop-main-nav a { position: relative; display: inline-flex; align-items: center; height: 38px; padding: 0 14px; color: #3f3b39; font-size: 12px; font-weight: 900; white-space: nowrap; transition: color .2s ease, background .2s ease; }
.desktop-main-nav a + a { border-right: 1px solid var(--v53-line); }
.desktop-main-nav a:hover { color: var(--brand); background: #fff7ed; }
body.dark-theme .desktop-main-nav { border-color: var(--border); }
body.dark-theme .desktop-main-nav a { color: #e5e7eb; }
body.dark-theme .desktop-main-nav a + a { border-color: var(--border); }
body.dark-theme .desktop-main-nav a:hover { background: rgba(234,88,12,.12); color: #fed7aa; }

button, .button, .btn, .buy-ticket-btn, .admin-primary-btn, .portal-action, .artist-row-action,
.login-btn, .filter-search-btn, .artist-profile-actions a, .artist-profile-actions button,
.comment-form button, .mobile-menu-panel button, .mobile-webapp-nav a, .event-tabs-visual a,
a[class*="btn"], button[class*="btn"] {
    border-radius: 2px !important;
    border: 0 !important;
}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid rgba(234,88,12,.38); outline-offset: 2px; }

.category-tab { border-radius: 0 !important; }
.category-tab + .category-tab::before { height: 48% !important; top: 26% !important; }
.filter-box, .form-control, .info-section, .info-card, .article-card, .creator-cta, .join-world,
.portal-card, .internal-hero, .artist-directory-toolbar, .profile-preview-card { border-radius: 4px !important; }

/* Tiwall-inspired but original internal event layout */
.tiwall-like-event-page { background: #f5f3f0; }
.event-wide-cover { height: 292px; border-bottom: 1px solid var(--v53-line); }
.event-cover-text span { border-radius: 2px !important; border: 0; background: rgba(255,255,255,.18); }
.event-cover-text h1 { font-size: clamp(28px, 4vw, 40px); }
.event-main-layout { grid-template-columns: 276px 1fr; gap: 18px; margin-top: -54px; }
.event-buy-card, .event-content-card, .location-box-rich, .comments-box-rich,
.booking-step-card, .session-select-card, .seat-map-card-rich, .checkout-side-rich,
.booking-grid-rich, .session-select-grid, .clean-panel, .artist-section-rich, .artist-panel-rich {
    border-radius: 4px !important;
    box-shadow: 0 8px 26px rgba(17,24,39,.06) !important;
}
.event-buy-card { top: 86px; padding: 10px; }
.event-buy-card img, .booking-step-card img, .artist-event-mini img, .artist-gallery-rich img { border-radius: 3px !important; }
.buy-ticket-btn { box-shadow: none !important; min-height: 44px; }
.quick-buy-info span, .event-info-grid-rich div, .session-price-box, .selected-seat-list, .selected-seat-list span { border-radius: 3px !important; }
.event-title-row b, .artist-tags-rich span, .mini-stats b { border-radius: 2px !important; }
.event-tabs-visual { gap: 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.event-tabs-visual a { border-left: 1px solid #eee; padding-inline: 16px; }
.event-text-section .event-cast-linked { background: var(--v53-soft); border: 1px solid var(--v53-line); padding: 14px; border-radius: 3px; line-height: 2.1; }
.cast-profile-link { display: inline-flex; align-items: center; gap: 5px; color: var(--brand); font-weight: 900; margin: 0 2px; }
.purchase-guide-box .comment-item { grid-template-columns: 130px 1fr; align-items: start; }
.purchase-guide-box .comment-item b { color: #22201f; }

/* Booking pages */
.booking-step-page { background: #f5f3f0; }
.step-back-link { color: #4f4945; }
.booking-step-card { border-color: var(--v53-line); grid-template-columns: 88px 1fr; }
.booking-step-card img { width: 88px; height: 116px; }
.booking-steps { gap: 0; border: 1px solid var(--v53-line); background: #fff; }
.booking-steps b { border-radius: 0 !important; border: 0 !important; border-right: 1px solid var(--v53-line) !important; background: #fff; }
.booking-steps b:first-child { border-right: 0 !important; }
.booking-head { border-radius: 4px 4px 0 0 !important; background: #211a17; }
.booking-head span { border-radius: 2px !important; border: 0; }
.session-select-card { grid-template-columns: 1fr auto; align-items: center; background: #fff; }
.session-select-card .buy-ticket-btn { min-width: 140px; margin-top: 0; }
.session-price-box { min-width: 170px; }
.seat-pick-rich { border-radius: 2px !important; }
.stage-label-rich { border-radius: 2px !important; background: #27211f; }
.seat-legend-rich b { border-radius: 2px !important; }
.multi-checkout { top: 84px; }

/* Artists directory */
.compact-internal-hero { padding: 22px 24px; background: linear-gradient(135deg,#fff,#fff7ed); border: 1px solid var(--v53-line); }
.compact-internal-hero span { display: inline-block; color: var(--brand); font-weight: 950; font-size: 12px; margin-bottom: 6px; }
.compact-internal-hero h1 { font-size: 30px; font-weight: 950; margin-bottom: 8px; }
.compact-internal-hero p { color: #6b625c; line-height: 2; max-width: 780px; }
.focused-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; margin: 16px 0; background: #fff; border: 1px solid var(--v53-line); }
.focused-toolbar div { display: flex; gap: 8px; align-items: baseline; }
.focused-toolbar strong { color: var(--brand); font-size: 22px; }
.focused-toolbar span { color: #6b625c; font-size: 12px; }
.focused-toolbar a { background: var(--brand); color: #fff; padding: 10px 14px; font-weight: 900; font-size: 12px; border-radius: 2px; }
.artist-list-clean { display: grid; gap: 12px; }
.artist-row-card { display: grid; grid-template-columns: 156px 1fr; gap: 16px; background: #fff; border: 1px solid var(--v53-line); padding: 12px; border-radius: 4px; box-shadow: 0 8px 24px rgba(17,24,39,.04); }
.artist-row-cover img { width: 156px; height: 180px; object-fit: cover; border-radius: 3px; display: block; background: #f3f4f6; }
.artist-row-body { min-width: 0; }
.artist-row-title { display: flex; align-items: start; justify-content: space-between; gap: 12px; border-bottom: 1px solid #f0ebe7; padding-bottom: 10px; }
.artist-row-title h2 { font-size: 20px; font-weight: 950; color: #1f1a17; }
.artist-row-title p { color: var(--brand); font-size: 12px; font-weight: 900; margin-top: 4px; }
.artist-row-action { white-space: nowrap; background: #2b2521; color: #fff; padding: 9px 12px; font-size: 12px; font-weight: 900; }
.artist-row-meta { display: flex; flex-wrap: wrap; gap: 0; margin: 10px 0; border-block: 1px solid #f5efea; }
.artist-row-meta span { padding: 8px 12px; border-left: 1px solid #f0ebe7; color: #6b625c; font-size: 12px; }
.artist-row-meta i { color: var(--brand); margin-left: 5px; }
.artist-row-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.artist-row-tags span { background: #fff7ed; color: #9a3412; padding: 5px 8px; font-size: 11px; font-weight: 850; border: 1px solid #ffedd5; border-radius: 2px; }
.artist-row-body > p { color: #6b625c; line-height: 1.9; font-size: 13px; }

/* Artist profile */
.focused-artist-profile { background: #f5f3f0; }
.artist-profile-cover-clean { background-size: cover; background-position: center; color: #fff; padding: 42px 0 34px; border-bottom: 1px solid rgba(0,0,0,.08); }
.artist-profile-cover-inner { display: grid; grid-template-columns: 154px 1fr 250px; gap: 22px; align-items: center; }
.artist-profile-photo img { width: 154px; height: 154px; object-fit: cover; border: 4px solid rgba(255,255,255,.92); border-radius: 3px; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.artist-profile-heading span { color: #fed7aa; font-size: 12px; font-weight: 950; }
.artist-profile-heading h1 { font-size: clamp(30px, 4vw, 42px); font-weight: 950; margin: 6px 0; }
.artist-profile-heading strong { display: block; margin-bottom: 10px; color: #fff7ed; }
.artist-profile-heading p { color: #e8dcd4; line-height: 2; max-width: 760px; }
.artist-profile-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.artist-profile-actions a { background: #ea580c; color: #fff; padding: 10px 14px; font-size: 12px; font-weight: 950; }
.artist-profile-actions a + a { background: rgba(255,255,255,.12); }
.artist-facts-box { display: grid; gap: 8px; background: rgba(255,255,255,.12); padding: 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 3px; }
.artist-facts-box div { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: rgba(0,0,0,.12); padding: 10px; border-radius: 2px; }
.artist-facts-box b { font-size: 16px; }
.artist-facts-box span { color: #e8dcd4; font-size: 12px; }
.artist-nav-clean { display: flex; overflow: auto; gap: 0; background: #fff; border: 1px solid var(--v53-line); border-top: 0; margin-bottom: 18px; }
.artist-nav-clean a { padding: 12px 16px; color: #46413e; font-weight: 900; font-size: 12px; border-left: 1px solid var(--v53-line); white-space: nowrap; }
.artist-nav-clean a:hover { color: var(--brand); background: #fff7ed; }
.clean-panel { border-color: var(--v53-line) !important; }
.education-mini-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.education-mini-list article { background: #fafafa; border: 1px solid #eee; padding: 14px; display: grid; gap: 8px; }
.education-mini-list b { font-weight: 950; color: #24201e; }
.education-mini-list span { color: #6b625c; font-size: 12px; line-height: 1.8; }
.education-mini-list a { color: var(--brand); font-weight: 900; font-size: 12px; }
.artist-event-mini, .article-card, .team-card { border-radius: 4px !important; }
.artist-tags-rich span { border-radius: 2px !important; }

/* Remove feed/community cues from focused version */
.channel-line-rich, #artist-channel { display: none !important; }

@media (max-width: 1100px) {
    .desktop-main-nav { display: none !important; }
    .focused-header .header-search-wrap { max-width: none; }
}
@media (max-width: 900px) {
    .event-main-layout { grid-template-columns: 1fr; margin-top: -36px; }
    .event-buy-card { position: relative; top: auto; grid-template-columns: 96px 1fr; }
    .session-select-card { grid-template-columns: 1fr; }
    .session-select-card .buy-ticket-btn { width: 100%; }
    .artist-profile-cover-inner { grid-template-columns: 1fr; text-align: center; }
    .artist-profile-photo { margin: auto; }
    .artist-facts-box { max-width: 420px; margin: auto; width: 100%; }
    .artist-content-grid, .education-mini-list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .artist-row-card { grid-template-columns: 104px 1fr; gap: 10px; padding: 10px; }
    .artist-row-cover img { width: 104px; height: 132px; }
    .artist-row-title { display: grid; }
    .artist-row-title h2 { font-size: 16px; }
    .artist-row-action { width: max-content; padding: 8px 10px; }
    .artist-row-meta span { padding: 6px 8px; }
    .event-cover-text p { display: none; }
    .purchase-guide-box .comment-item { grid-template-columns: 1fr; }
    .booking-steps b { font-size: 12px; padding: 9px; }
}

/* V54: focused, active, non-rounded controls and internal artist/ticket polish */
button,
.btn,
.login-btn,
.buy-ticket-btn,
.hero-action-btn,
.admin-primary-btn,
.admin-secondary-btn,
.auth-submit-btn,
.auth-primary-action,
.panel-save-btn,
.panel-light-btn,
.portal-action,
.artist-row-action,
.artist-profile-actions a,
.event-tabs-visual a,
.section-rail-meta a,
.article-card a,
.internal-card a,
.internal-card button,
.filter-search-btn {
    border: 0 !important;
    border-radius: 4px !important;
    box-shadow: none;
}
button:disabled,
.buy-ticket-btn:disabled {
    cursor: not-allowed;
}
.hero-action-btn {
    background: #fff !important;
    color: #c2410c !important;
    min-height: 40px;
}
.hero-poster-frame {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 4px !important;
    box-shadow: 0 18px 42px rgba(0,0,0,.34) !important;
    backdrop-filter: none !important;
}
.hero-poster-image { border-radius: 4px !important; }
.desktop-main-nav {
    align-items: center;
    gap: 0;
    border: 1px solid #f1e7db;
    background: #fffaf7;
    padding: 0 6px;
    height: 38px;
}
.desktop-main-nav a {
    display: inline-flex;
    align-items: center;
    height: 100%;
    padding: 0 13px;
    color: #4b5563;
    font-size: 12px;
    font-weight: 900;
    border-left: 1px solid #f1e7db;
}
.desktop-main-nav a:last-child { border-left: 0; }
.desktop-main-nav a:hover { color: #ea580c; background: #fff7ed; }
.artist-row-card { transition: transform .18s ease, box-shadow .18s ease; }
.artist-row-card:hover { transform: translateY(-2px); box-shadow: 0 18px 36px rgba(124,45,18,.10); }
.artist-row-cover img,
.artist-profile-photo img,
.artist-event-mini img,
.artist-gallery-rich img,
.article-card img,
.internal-card img { background: #f3f4f6; }
.artist-row-action,
.artist-profile-actions a,
.education-mini-list a,
.section-title-rich a { text-decoration: none !important; }
.education-card-active { display:grid; grid-template-columns:160px 1fr; gap:14px; align-items:center; }
.education-card-active img { height:130px !important; margin:0 !important; border-radius:4px !important; }
.clickable-event-card a,
.artist-row-card a,
.session-select-card a,
.event-buy-card a,
.checkout-side-rich button { pointer-events:auto; }
.seat-pick-rich.selected { background:#16a34a !important; color:#fff !important; border-color:#15803d !important; }
@media(max-width:768px){
    .hero-slider-two-layer { width: 100vw !important; margin-right: calc(50% - 50vw) !important; margin-left: calc(50% - 50vw) !important; border-radius: 0 !important; }
    .hero-slide-content { grid-template-columns:1fr 104px !important; gap:14px !important; padding:20px 16px !important; }
    .hero-poster-frame { width:104px !important; }
    .hero-copy-box h2 { font-size:21px !important; }
    .hero-copy-box p { font-size:11px !important; line-height:1.8 !important; }
    .desktop-main-nav { display:none !important; }
    .education-card-active { grid-template-columns:1fr; }
    .education-card-active img { width:100%; height:180px !important; }
}

/* V55 final repair: reliable dark theme across every public/internal page */
html.dark-theme,
html.dark-theme body,
body.dark-theme {
    background: #0b0f16 !important;
    color: #e5e7eb !important;
    --bg: #0b0f16;
    --card: #111827;
    --text: #f9fafb;
    --muted: #a1a1aa;
    --border: #263142;
    --v53-line: #263142;
    --v53-soft: #151c28;
    --v53-ink: #f9fafb;
}
html.dark-theme main,
html.dark-theme .tiwall-like-event-page,
html.dark-theme .booking-step-page,
html.dark-theme .focused-artist-profile,
html.dark-theme .internal-page,
html.dark-theme .artist-directory-page,
body.dark-theme main,
body.dark-theme .tiwall-like-event-page,
body.dark-theme .booking-step-page,
body.dark-theme .focused-artist-profile,
body.dark-theme .internal-page,
body.dark-theme .artist-directory-page {
    background: #0b0f16 !important;
    color: #e5e7eb !important;
}
html.dark-theme .site-header,
html.dark-theme .focused-header,
html.dark-theme .filter-section,
html.dark-theme .filter-box,
html.dark-theme .tabs-box,
html.dark-theme .sticky-tabs,
html.dark-theme .content-section,
html.dark-theme .event-content-card,
html.dark-theme .event-buy-card,
html.dark-theme .location-box-rich,
html.dark-theme .comments-box-rich,
html.dark-theme .booking-step-card,
html.dark-theme .booking-steps,
html.dark-theme .session-select-grid,
html.dark-theme .session-select-card,
html.dark-theme .seat-map-card-rich,
html.dark-theme .checkout-side-rich,
html.dark-theme .session-box-rich,
html.dark-theme .clean-panel,
html.dark-theme .internal-card,
html.dark-theme .internal-hero,
html.dark-theme .artist-row-card,
html.dark-theme .focused-toolbar,
html.dark-theme .artist-nav-clean,
html.dark-theme .artist-section-rich,
html.dark-theme .artist-panel-rich,
html.dark-theme .education-mini-list article,
html.dark-theme .portal-card,
html.dark-theme .portal-panel,
html.dark-theme .portal-hero,
html.dark-theme .login-box,
html.dark-theme .admin-content,
html.dark-theme .admin-card,
html.dark-theme .admin-panel,
body.dark-theme .site-header,
body.dark-theme .focused-header,
body.dark-theme .filter-section,
body.dark-theme .filter-box,
body.dark-theme .tabs-box,
body.dark-theme .sticky-tabs,
body.dark-theme .content-section,
body.dark-theme .event-content-card,
body.dark-theme .event-buy-card,
body.dark-theme .location-box-rich,
body.dark-theme .comments-box-rich,
body.dark-theme .booking-step-card,
body.dark-theme .booking-steps,
body.dark-theme .session-select-grid,
body.dark-theme .session-select-card,
body.dark-theme .seat-map-card-rich,
body.dark-theme .checkout-side-rich,
body.dark-theme .session-box-rich,
body.dark-theme .clean-panel,
body.dark-theme .internal-card,
body.dark-theme .internal-hero,
body.dark-theme .artist-row-card,
body.dark-theme .focused-toolbar,
body.dark-theme .artist-nav-clean,
body.dark-theme .artist-section-rich,
body.dark-theme .artist-panel-rich,
body.dark-theme .education-mini-list article,
body.dark-theme .portal-card,
body.dark-theme .portal-panel,
body.dark-theme .portal-hero,
body.dark-theme .login-box,
body.dark-theme .admin-content,
body.dark-theme .admin-card,
body.dark-theme .admin-panel {
    background: #111827 !important;
    border-color: #263142 !important;
    color: #e5e7eb !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.22) !important;
}
html.dark-theme .desktop-main-nav,
body.dark-theme .desktop-main-nav {
    background: #151c28 !important;
    border-color: #263142 !important;
}
html.dark-theme .desktop-main-nav a,
body.dark-theme .desktop-main-nav a {
    color: #e5e7eb !important;
    border-color: #263142 !important;
}
html.dark-theme .desktop-main-nav a:hover,
body.dark-theme .desktop-main-nav a:hover {
    background: rgba(234,88,12,.14) !important;
    color: #fed7aa !important;
}
html.dark-theme .text-gray-900,
html.dark-theme .text-gray-800,
html.dark-theme .text-gray-700,
html.dark-theme h1,
html.dark-theme h2,
html.dark-theme h3,
html.dark-theme h4,
html.dark-theme strong,
html.dark-theme b,
html.dark-theme .artist-row-title h2,
html.dark-theme .compact-internal-hero h1,
html.dark-theme .event-title-row h2,
html.dark-theme .education-mini-list b,
body.dark-theme .text-gray-900,
body.dark-theme .text-gray-800,
body.dark-theme .text-gray-700,
body.dark-theme h1,
body.dark-theme h2,
body.dark-theme h3,
body.dark-theme h4,
body.dark-theme strong,
body.dark-theme b,
body.dark-theme .artist-row-title h2,
body.dark-theme .compact-internal-hero h1,
body.dark-theme .event-title-row h2,
body.dark-theme .education-mini-list b {
    color: #f9fafb !important;
}
html.dark-theme .text-gray-600,
html.dark-theme .text-gray-500,
html.dark-theme .text-gray-400,
html.dark-theme p,
html.dark-theme small,
html.dark-theme span,
html.dark-theme .event-text-section,
html.dark-theme .event-text-section p,
html.dark-theme .artist-row-body > p,
html.dark-theme .artist-row-meta span,
html.dark-theme .compact-internal-hero p,
html.dark-theme .focused-toolbar span,
html.dark-theme .education-mini-list span,
body.dark-theme .text-gray-600,
body.dark-theme .text-gray-500,
body.dark-theme .text-gray-400,
body.dark-theme p,
body.dark-theme small,
body.dark-theme span,
body.dark-theme .event-text-section,
body.dark-theme .event-text-section p,
body.dark-theme .artist-row-body > p,
body.dark-theme .artist-row-meta span,
body.dark-theme .compact-internal-hero p,
body.dark-theme .focused-toolbar span,
body.dark-theme .education-mini-list span {
    color: #a1a1aa !important;
}
html.dark-theme a,
body.dark-theme a { color: inherit; }
html.dark-theme a:hover,
body.dark-theme a:hover { color: #fed7aa; }
html.dark-theme .search-input,
html.dark-theme input,
html.dark-theme textarea,
html.dark-theme select,
html.dark-theme .form-control,
body.dark-theme .search-input,
body.dark-theme input,
body.dark-theme textarea,
body.dark-theme select,
body.dark-theme .form-control {
    background: #0f172a !important;
    border-color: #263142 !important;
    color: #f9fafb !important;
}
html.dark-theme .quick-buy-info span,
html.dark-theme .event-info-grid-rich div,
html.dark-theme .session-price-box,
html.dark-theme .selected-seat-list,
html.dark-theme .event-cast-linked,
html.dark-theme .artist-row-tags span,
html.dark-theme .artist-tags-rich span,
body.dark-theme .quick-buy-info span,
body.dark-theme .event-info-grid-rich div,
body.dark-theme .session-price-box,
body.dark-theme .selected-seat-list,
body.dark-theme .event-cast-linked,
body.dark-theme .artist-row-tags span,
body.dark-theme .artist-tags-rich span {
    background: #151c28 !important;
    border-color: #263142 !important;
    color: #fed7aa !important;
}
html.dark-theme .booking-head,
html.dark-theme .stage-label-rich,
body.dark-theme .booking-head,
body.dark-theme .stage-label-rich {
    background: #05070c !important;
    color: #fff !important;
}
html.dark-theme .fake-map,
body.dark-theme .fake-map {
    background: repeating-linear-gradient(45deg,#111827,#111827 10px,#0f172a 10px,#0f172a 20px) !important;
    border-color: #263142 !important;
    color: #a1a1aa !important;
}
html.dark-theme .seat-pick-rich,
body.dark-theme .seat-pick-rich {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #e5e7eb !important;
}
html.dark-theme .seat-pick-rich.vip,
body.dark-theme .seat-pick-rich.vip {
    background: #3a2416 !important;
    border-color: #9a3412 !important;
    color: #fed7aa !important;
}
html.dark-theme .seat-pick-rich.sold,
body.dark-theme .seat-pick-rich.sold {
    background: #263142 !important;
    color: #64748b !important;
}
html.dark-theme .mobile-menu-panel,
html.dark-theme .mobile-webapp-nav,
body.dark-theme .mobile-menu-panel,
body.dark-theme .mobile-webapp-nav {
    background: #111827 !important;
    border-color: #263142 !important;
}
html.dark-theme .mobile-menu-panel a,
html.dark-theme .mobile-webapp-nav a,
body.dark-theme .mobile-menu-panel a,
body.dark-theme .mobile-webapp-nav a {
    color: #e5e7eb !important;
    border-color: #263142 !important;
}
html.dark-theme .compact-internal-hero,
body.dark-theme .compact-internal-hero {
    background: linear-gradient(135deg,#111827,#151c28) !important;
}
html.dark-theme .artist-profile-cover-clean,
body.dark-theme .artist-profile-cover-clean {
    border-color: #263142 !important;
}
/* Keep every button/link-control flat and clickable. */
button,
a[class*="btn"],
[class*="-btn"],
.login-btn,
.buy-ticket-btn,
.hero-action-btn,
.artist-row-action,
.artist-profile-actions a,
.focused-toolbar a,
.internal-card a,
.education-mini-list a,
.section-rail-meta a,
.session-select-card a,
.checkout-side-rich button {
    border: 0 !important;
    border-radius: 4px !important;
    text-decoration: none !important;
}
.hero-action-btn,
.buy-ticket-btn,
.login-btn,
.artist-row-action,
.focused-toolbar a,
.internal-card a,
.checkout-side-rich button {
    pointer-events: auto !important;
}
.home-event-rail.drag-just-ended a,
.home-event-rail.drag-just-ended .event-card {
    pointer-events: none !important;
}

/* V56: profile image upload and softer button radius. */
:root { --button-radius-soft: 10px; }
button,
[type="button"],
[type="submit"],
[type="reset"],
a[class*="btn"],
[class*="-btn"],
.login-btn,
.buy-ticket-btn,
.hero-action-btn,
.admin-primary-btn,
.portal-action,
.artist-row-action,
.artist-profile-actions a,
.focused-toolbar a,
.internal-card a,
.education-mini-list a,
.section-rail-meta a,
.session-select-card a,
.checkout-side-rich button,
.user-ticket-actions a {
    border: 0 !important;
    border-radius: var(--button-radius-soft) !important;
    text-decoration: none !important;
}
.slider-dot { border-radius: 999px !important; }
.profile-upload-field { display: grid; gap: 8px; }
.profile-upload-field > span { font-size: 12px; font-weight: 900; color: #7c2d12; }
.profile-upload-preview { position: relative; min-height: 118px; border: 1px solid #f3e5d8; border-radius: 12px; overflow: hidden; background: #fff7ed; display: flex; align-items: center; justify-content: center; }
.profile-upload-preview img { width: 100%; height: 118px; object-fit: cover; display: block; }
.profile-upload-preview:not(.cover) img { width: 92px; height: 92px; border-radius: 18px; object-fit: cover; box-shadow: 0 10px 28px rgba(124,45,18,.16); }
.profile-upload-preview small { position: absolute; right: 10px; bottom: 10px; background: rgba(17,24,39,.72); color: #fff !important; padding: 4px 8px; border-radius: 8px; font-size: 10px; font-weight: 800; }
.profile-upload-field input[type="file"] { cursor: pointer; padding: 9px; }
body.dark-theme .profile-upload-field > span,
html.dark-theme .profile-upload-field > span { color: #fed7aa !important; }
body.dark-theme .profile-upload-preview,
html.dark-theme .profile-upload-preview { background: #0f172a; border-color: #263142; }
@media (max-width: 640px) {
    :root { --button-radius-soft: 9px; }
    .profile-upload-preview { min-height: 104px; }
    .profile-upload-preview img { height: 104px; }
    .profile-upload-preview:not(.cover) img { width: 82px; height: 82px; border-radius: 16px; }
}

/* V58: separated education and online watching flows */
.internal-listing-page { min-height: 72vh; }
.listing-mode-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.listing-mode-hero span { display: inline-flex; align-items: center; gap: 7px; color: #ea580c; font-weight: 900; font-size: 12px; }
.focused-toolbar a.active { background: #ea580c !important; color: #fff !important; }
.digital-product-page { background: #f8fafc; min-height: 80vh; }
.digital-hero,
.online-cinema-hero { background-size: cover; background-position: center; color: #fff; }
.digital-hero-inner,
.online-cinema-inner { min-height: 420px; display: grid; grid-template-columns: minmax(0,1fr) 320px; align-items: center; gap: 34px; padding-top: 34px; padding-bottom: 34px; }
.online-cinema-inner { grid-template-columns: 260px minmax(0,1fr); }
.digital-hero-copy h1,
.online-copy-block h1 { font-size: clamp(28px, 4vw, 54px); font-weight: 950; margin: 12px 0; letter-spacing: -1px; }
.digital-hero-copy p,
.online-copy-block p { max-width: 720px; line-height: 2.05; color: rgba(255,255,255,.84) !important; font-size: 14px; }
.digital-kicker { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 10px; padding: 8px 12px; color: #fed7aa !important; font-weight: 900; font-size: 12px; }
.digital-hero-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.digital-hero-meta span { display: inline-flex; align-items: center; gap: 7px; background: rgba(0,0,0,.32); color: #fff !important; border-radius: 10px; padding: 8px 11px; font-size: 12px; font-weight: 800; }
.step-back-link.light { color: rgba(255,255,255,.86) !important; margin-bottom: 12px; display: inline-flex; }
.digital-purchase-panel { background: rgba(255,255,255,.96); color: #111827; padding: 14px; border-radius: 16px; box-shadow: 0 24px 70px rgba(0,0,0,.28); display: grid; gap: 12px; }
.digital-purchase-panel img,
.online-poster-block img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 12px; display: block; }
.online-poster-block img { box-shadow: 0 24px 70px rgba(0,0,0,.38); }
.digital-price-row { display: flex; align-items: center; justify-content: space-between; background: #fff7ed; border-radius: 12px; padding: 11px 12px; }
.digital-price-row small { color: #9a3412 !important; font-weight: 900; }
.digital-price-row b { color: #111827; font-weight: 950; }
.digital-main-cta { width: 100%; min-height: 46px; display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; background: #ea580c !important; color: #fff !important; font-weight: 950 !important; }
.digital-safe-list { display: grid; gap: 8px; font-size: 12px; font-weight: 800; color: #374151; }
.digital-safe-list li { display: flex; align-items: center; gap: 7px; }
.digital-safe-list .fa-check { color: #16a34a; }
.digital-safe-list .fa-xmark { color: #dc2626; }
.digital-layout,
.online-layout,
.learning-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 18px; padding-top: 26px; padding-bottom: 36px; align-items: start; }
.digital-content-card,
.course-curriculum-card,
.secure-player-card,
.lesson-sidebar-card { background: #fff; border: 1px solid #f1e7df; border-radius: 16px; box-shadow: 0 14px 38px rgba(124,45,18,.06); padding: 18px; }
.digital-content-card h2,
.course-curriculum-card h2,
.lesson-sidebar-card h2 { color: #111827; font-size: 18px; font-weight: 950; margin-bottom: 12px; }
.digital-content-card p { color: #4b5563 !important; line-height: 2; font-size: 13px; }
.course-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.course-feature-grid div { background: #fff7ed; border-radius: 14px; padding: 14px; display: grid; gap: 7px; }
.course-feature-grid i { color: #ea580c; font-size: 18px; }
.course-feature-grid b { color: #111827; font-weight: 950; }
.course-feature-grid span { color: #6b7280 !important; font-size: 12px; line-height: 1.8; }
.lesson-row { display: grid; grid-template-columns: 38px minmax(0,1fr) 28px; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid #f1e7df; }
.lesson-row:last-child { border-bottom: 0; }
.lesson-row > span { width: 34px; height: 34px; border-radius: 10px; background: #fff7ed; color: #ea580c !important; display: inline-flex; align-items: center; justify-content: center; font-weight: 950; font-size: 12px; }
.lesson-row b { color: #111827; font-weight: 950; font-size: 13px; display: block; }
.lesson-row small { color: #6b7280 !important; font-size: 11px; }
.lesson-row i { color: #ea580c; }
.lesson-row.locked { opacity: .65; }
.learning-topbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 18px; }
.learning-topbar h1 { color: #111827; font-size: 22px; font-weight: 950; }
.learning-topbar p { color: #6b7280 !important; font-size: 12px; }
.secure-video-frame { position: relative; background: #05070c; border-radius: 16px; overflow: hidden; aspect-ratio: 16/9; }
.secure-video-frame video { width: 100%; height: 100%; display: block; object-fit: cover; background: #05070c; }
.secure-video-watermark { position: absolute; right: 12px; bottom: 12px; background: rgba(0,0,0,.62); color: #fff; font-weight: 900; font-size: 11px; padding: 7px 10px; border-radius: 10px; pointer-events: none; }
.lesson-current-info { padding-top: 16px; }
.lesson-current-info span { color: #ea580c !important; font-weight: 950; font-size: 12px; }
.lesson-current-info h2 { color: #111827; font-size: 20px; font-weight: 950; margin: 7px 0; }
.lesson-current-info p { color: #6b7280 !important; line-height: 2; font-size: 13px; }
.course-progress-box { background: #fff7ed; border-radius: 14px; padding: 12px; margin-top: 12px; display: grid; gap: 8px; }
.course-progress-box b { color: #111827; font-weight: 950; }
.course-progress-box > div { height: 8px; border-radius: 999px; background: #fed7aa; overflow: hidden; }
.course-progress-box > div span { display: block; height: 100%; background: #ea580c; border-radius: 999px; }
.course-progress-box small { color: #9a3412 !important; font-size: 11px; font-weight: 900; }
.watch-lesson-link { display: grid; grid-template-columns: 36px minmax(0,1fr) 26px; gap: 10px; align-items: center; padding: 11px; border-radius: 12px; color: inherit !important; }
.watch-lesson-link.active,
.watch-lesson-link:hover { background: #fff7ed; }
.watch-lesson-link > span { width: 32px; height: 32px; border-radius: 10px; background: #ea580c; color: #fff !important; display: inline-flex; align-items: center; justify-content: center; font-weight: 950; font-size: 12px; }
.watch-lesson-link b { color: #111827; font-size: 12px; font-weight: 950; display: block; }
.watch-lesson-link small { color: #6b7280 !important; font-size: 11px; }
.watch-lesson-link i { color: #ea580c; }
.secure-player-card.wide { grid-column: span 1; }
.online-buy-form { margin-top: 18px; max-width: 360px; }
.online-layout { grid-template-columns: minmax(0,1fr) 340px; }
.secure-video-frame.cinema { aspect-ratio: 16/8; }
html.dark-theme .digital-product-page,
body.dark-theme .digital-product-page,
html.dark-theme .learning-watch-page,
body.dark-theme .learning-watch-page { background: #080b12 !important; }
html.dark-theme .digital-purchase-panel,
html.dark-theme .digital-content-card,
html.dark-theme .course-curriculum-card,
html.dark-theme .secure-player-card,
html.dark-theme .lesson-sidebar-card,
body.dark-theme .digital-purchase-panel,
body.dark-theme .digital-content-card,
body.dark-theme .course-curriculum-card,
body.dark-theme .secure-player-card,
body.dark-theme .lesson-sidebar-card { background: #111827 !important; border-color: #263142 !important; color: #e5e7eb !important; }
html.dark-theme .digital-content-card h2,
html.dark-theme .course-curriculum-card h2,
html.dark-theme .lesson-sidebar-card h2,
html.dark-theme .lesson-current-info h2,
html.dark-theme .learning-topbar h1,
html.dark-theme .lesson-row b,
html.dark-theme .watch-lesson-link b,
html.dark-theme .digital-price-row b,
body.dark-theme .digital-content-card h2,
body.dark-theme .course-curriculum-card h2,
body.dark-theme .lesson-sidebar-card h2,
body.dark-theme .lesson-current-info h2,
body.dark-theme .learning-topbar h1,
body.dark-theme .lesson-row b,
body.dark-theme .watch-lesson-link b,
body.dark-theme .digital-price-row b { color: #f9fafb !important; }
html.dark-theme .course-feature-grid div,
html.dark-theme .digital-price-row,
html.dark-theme .lesson-row > span,
html.dark-theme .course-progress-box,
html.dark-theme .watch-lesson-link.active,
html.dark-theme .watch-lesson-link:hover,
body.dark-theme .course-feature-grid div,
body.dark-theme .digital-price-row,
body.dark-theme .lesson-row > span,
body.dark-theme .course-progress-box,
body.dark-theme .watch-lesson-link.active,
body.dark-theme .watch-lesson-link:hover { background: #151c28 !important; }
html.dark-theme .lesson-row,
body.dark-theme .lesson-row { border-color: #263142 !important; }
@media (max-width: 900px) {
    .digital-hero-inner,
    .online-cinema-inner,
    .digital-layout,
    .online-layout,
    .learning-layout { grid-template-columns: 1fr; }
    .online-cinema-inner { padding-top: 24px; }
    .online-poster-block { max-width: 220px; margin: 0 auto; }
    .digital-purchase-panel { max-width: 390px; width: 100%; margin: 0 auto; }
    .course-feature-grid { grid-template-columns: 1fr; }
    .learning-topbar { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 640px) {
    .digital-hero-inner,
    .online-cinema-inner { min-height: auto; padding-top: 22px; padding-bottom: 22px; }
    .digital-hero-copy h1,
    .online-copy-block h1 { font-size: 28px; }
    .digital-hero-meta { gap: 7px; }
    .digital-hero-meta span { font-size: 11px; padding: 7px 9px; }
    .digital-layout,
    .online-layout,
    .learning-layout { padding-top: 16px; }
    .secure-video-frame.cinema { aspect-ratio: 16/9; }
    .listing-mode-hero { align-items: flex-start; flex-direction: column; }
}

/* V59: separated admin and public UI for courses and online film. */
.admin-form-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #ffedd5;padding-bottom:14px}.admin-form-heading p{font-size:12px;color:#6b7280;line-height:1.9;margin-top:5px}.admin-type-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-type-card{border:1px solid #ffedd5;background:#fff7ed;border-radius:14px;padding:14px;cursor:pointer;display:grid;gap:7px;transition:.18s}.admin-type-card input{display:none}.admin-type-card i{color:#ea580c;font-size:20px}.admin-type-card b{color:#111827;font-weight:950}.admin-type-card span{font-size:12px;color:#6b7280;line-height:1.8}.admin-type-card.active{background:#ea580c;border-color:#ea580c;color:#fff;box-shadow:0 14px 28px rgba(234,88,12,.18)}.admin-type-card.active i,.admin-type-card.active b,.admin-type-card.active span{color:#fff!important}.media-admin-box,.admin-dynamic-panel{border:1px solid #ffedd5;background:#fff7ed;border-radius:14px;padding:14px}.admin-preview-poster{width:150px;height:210px;object-fit:cover;border-radius:12px;background:#fff;margin-bottom:10px}.admin-preview-wide{width:100%;height:150px;object-fit:cover;border-radius:12px;background:#fff;margin-bottom:10px}.admin-preview-empty{border:1px dashed #fdba74;background:#fff;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#c2410c;margin-bottom:10px}.admin-preview-empty.poster{width:150px;height:210px}.admin-preview-empty.wide{width:100%;height:150px}.admin-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #fed7aa;padding-bottom:12px;margin-bottom:14px}.admin-panel-title h2{font-size:18px;font-weight:950;color:#111827}.admin-panel-title p{font-size:12px;color:#6b7280;line-height:1.9}.course-lessons-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:780px;overflow:auto;padding-inline-end:4px}.lesson-admin-card{background:#fff;border:1px solid #fed7aa;border-radius:14px;padding:12px;display:grid;gap:9px}.lesson-admin-card h3{color:#ea580c;font-weight:950;font-size:14px}.monospace-ltr{direction:ltr;text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.course-academy-hero,.online-film-hero{background-size:cover;background-position:center;color:#fff}.course-academy-inner{min-height:440px;display:grid;grid-template-columns:minmax(0,1fr)330px;align-items:center;gap:34px;padding-top:34px;padding-bottom:34px}.course-badge,.film-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:8px 12px;color:#ccfbf1!important;font-weight:900;font-size:12px}.film-badge{color:#fecaca!important}.course-academy-copy h1,.online-film-copy h1{font-size:clamp(28px,4vw,54px);font-weight:950;margin:12px 0;letter-spacing:-1px}.course-academy-copy p,.online-film-copy p{max-width:720px;line-height:2.05;color:rgba(255,255,255,.84)!important;font-size:14px}.course-academy-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.course-academy-meta span{display:inline-flex;align-items:center;gap:7px;background:rgba(0,0,0,.32);color:#fff!important;border-radius:10px;padding:8px 11px;font-size:12px;font-weight:800}.course-enroll-card{background:rgba(255,255,255,.96);color:#111827;padding:14px;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.28);display:grid;gap:12px}.course-enroll-card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block}.course-detail-layout{display:grid;grid-template-columns:minmax(0,1fr)420px;gap:18px;padding-top:26px;padding-bottom:36px;align-items:start}.course-outline-card,.course-curriculum-list,.film-player-shell,.online-film-info-card{background:#fff;border:1px solid #f1e7df;border-radius:16px;box-shadow:0 14px 38px rgba(124,45,18,.06);padding:18px}.course-outline-card h2,.course-curriculum-list h2,.online-film-info-card h2{color:#111827;font-size:18px;font-weight:950;margin-bottom:12px}.course-outline-card p{color:#4b5563!important;line-height:2;font-size:13px}.course-syllabus-row{display:grid;grid-template-columns:72px 34px minmax(0,1fr)28px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f1e7df}.course-syllabus-row:last-child{border-bottom:0}.course-syllabus-row img{width:72px;height:46px;border-radius:10px;object-fit:cover;background:#111827}.course-syllabus-row>span{width:34px;height:34px;border-radius:10px;background:#ecfeff;color:#0f766e!important;display:inline-flex;align-items:center;justify-content:center;font-weight:950;font-size:12px}.course-syllabus-row b{color:#111827;font-weight:950;font-size:13px;display:block}.course-syllabus-row small{color:#6b7280!important;font-size:11px}.course-syllabus-row i{color:#0f766e}.course-classroom-page{background:#f8fafc;min-height:80vh}.course-video-frame iframe,.film-main-player iframe{width:100%;height:100%;border:0;display:block;background:#05070c}.secure-player-placeholder{width:100%;height:100%;background-size:cover;background-position:center;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:24px;gap:10px}.secure-player-placeholder i{font-size:52px;color:#fb923c}.secure-player-placeholder b{font-size:18px;font-weight:950}.secure-player-placeholder span{font-size:12px;color:rgba(255,255,255,.82)!important}.online-film-inner{min-height:440px;display:grid;grid-template-columns:270px minmax(0,1fr);align-items:center;gap:34px;padding-top:34px;padding-bottom:34px}.online-film-poster img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.38)}.online-film-layout{display:grid;grid-template-columns:minmax(0,1fr)320px;gap:18px;padding-top:26px;padding-bottom:36px;align-items:start}.film-main-player{aspect-ratio:16/8}.dark-theme .admin-form-heading,.dark-theme .admin-panel-title{border-color:#263142}.dark-theme .admin-type-card,.dark-theme .media-admin-box,.dark-theme .admin-dynamic-panel{background:#0f172a!important;border-color:#263142!important}.dark-theme .admin-type-card b,.dark-theme .admin-panel-title h2,.dark-theme .lesson-admin-card h3,.dark-theme .course-outline-card h2,.dark-theme .course-curriculum-list h2,.dark-theme .online-film-info-card h2,.dark-theme .course-syllabus-row b{color:#f9fafb!important}.dark-theme .admin-type-card span,.dark-theme .admin-form-heading p,.dark-theme .admin-panel-title p{color:#9ca3af!important}.dark-theme .lesson-admin-card,.dark-theme .course-outline-card,.dark-theme .course-curriculum-list,.dark-theme .film-player-shell,.dark-theme .online-film-info-card{background:#111827!important;border-color:#263142!important;color:#e5e7eb!important}.dark-theme .course-classroom-page,.dark-theme .course-detail-page,.dark-theme .online-film-page{background:#080b12!important}.dark-theme .course-syllabus-row{border-color:#263142}.dark-theme .course-syllabus-row>span{background:#123235!important;color:#67e8f9!important}@media(max-width:1000px){.admin-type-switch,.course-lessons-admin-grid{grid-template-columns:1fr}.course-academy-inner,.course-detail-layout,.online-film-inner,.online-film-layout{grid-template-columns:1fr}.online-film-poster{max-width:230px;margin:auto}.course-enroll-card{max-width:390px;margin:auto}.film-main-player{aspect-ratio:16/9}}@media(max-width:640px){.course-academy-inner,.online-film-inner{min-height:auto;padding-top:22px;padding-bottom:22px}.course-syllabus-row{grid-template-columns:58px 30px minmax(0,1fr)24px}.course-syllabus-row img{width:58px;height:42px}.admin-dynamic-panel{padding:10px}}

/* V61: structured cast, booking pricing, user tabs and professional ticket polish */
.event-cast-admin-box{background:rgba(249,250,251,.9);border:1px solid rgba(251,146,60,.18);padding:16px;border-radius:14px}
.admin-panel-title.compact{margin-bottom:12px}.admin-panel-title.compact h2{font-size:16px;font-weight:900}.admin-panel-title.compact p{font-size:12px;color:#6b7280;margin-top:4px}
.event-cast-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-cast-admin-row{display:grid;grid-template-columns:1fr 1.6fr auto;gap:10px;align-items:end;background:#fff;padding:12px;border:1px solid rgba(15,23,42,.06);border-radius:12px}.cast-feature-check{display:flex;gap:6px;align-items:center;font-size:12px;color:#374151;padding-bottom:11px}
.cast-linked-groups{display:grid;gap:10px}.cast-linked-row{display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid rgba(15,23,42,.07);padding:8px 0}.cast-linked-row:last-child{border-bottom:0}.cast-linked-row>b{min-width:90px;color:#374151;font-size:13px}.cast-linked-row>span{display:flex;flex-wrap:wrap;gap:8px}.real-cast-link{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:#fff7ed;border-radius:10px;text-decoration:none}.real-cast-link img{width:22px;height:22px;border-radius:50%;object-fit:cover}
.session-select-card .session-price-box{gap:4px}.session-select-card span{display:block;color:#6b7280;font-size:12px;margin-top:4px}.ticket-price-type-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f8fafc;padding:12px;border-radius:12px;margin:12px 0}.ticket-price-type-box small{grid-column:1/-1;color:#64748b;font-size:12px}.ticket-price-type-box label{font-size:12px;font-weight:800;color:#334155}
.user-portal-tabs{display:flex;gap:8px;overflow:auto;background:rgba(255,255,255,.78);border:1px solid rgba(251,146,60,.18);padding:8px;border-radius:14px;position:sticky;top:76px;z-index:5;backdrop-filter:blur(8px)}.user-portal-tabs button{white-space:nowrap;border:0;background:transparent;padding:10px 16px;border-radius:10px;font-weight:900;color:#475569;cursor:pointer}.user-portal-tabs button.active{background:#ea580c;color:#fff}.portal-tab-panel{display:none}.portal-tab-panel.active{display:block}.user-orders-table-wrap{overflow-x:auto}.user-orders-table{width:100%;border-collapse:collapse;font-size:13px}.user-orders-table th,.user-orders-table td{padding:12px;border-bottom:1px solid rgba(15,23,42,.08);text-align:right}.user-orders-table th{color:#64748b;font-size:12px}.pay-mini{display:inline-block;background:#ea580c;color:#fff;padding:7px 12px;border-radius:9px;font-weight:900;text-decoration:none}.artist-subtitle-line{font-size:15px;font-weight:950;margin:14px 0 10px;color:#111827}.artist-subtitle-line.past{margin-top:22px;color:#64748b}.artist-event-mini.past{filter:saturate(.86)}
.ticket-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ticket-toolbar a,.ticket-toolbar button{background:#111827;color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:900;cursor:pointer;text-decoration:none}.ticket-status-strip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;font-size:13px;font-weight:900;margin:8px 0 16px}.ticket-status-strip.valid{background:#dcfce7;color:#166534}.ticket-status-strip.used{background:#e0e7ff;color:#3730a3}.ticket-status-strip.pending{background:#ffedd5;color:#9a3412}.ticket-extra-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.ticket-extra-panels article{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:18px}.ticket-extra-panels h2{font-size:16px;font-weight:950;margin-bottom:10px}.ticket-extra-panels ul{padding-right:18px;list-style:disc;color:#475569;line-height:2}.ticket-display-shell.used{opacity:.92}.ticket-display-shell.used .ticket-poster-panel span{background:#4338ca}
html[data-theme="dark"] .event-cast-admin-box, html.dark .event-cast-admin-box, body.dark .event-cast-admin-box{background:rgba(15,23,42,.7);border-color:rgba(148,163,184,.2)}html[data-theme="dark"] .event-cast-admin-row, html.dark .event-cast-admin-row, body.dark .event-cast-admin-row, html[data-theme="dark"] .ticket-extra-panels article, html.dark .ticket-extra-panels article, body.dark .ticket-extra-panels article{background:#111827;border-color:rgba(148,163,184,.18)}html[data-theme="dark"] .user-portal-tabs, html.dark .user-portal-tabs, body.dark .user-portal-tabs{background:rgba(15,23,42,.82);border-color:rgba(148,163,184,.18)}html[data-theme="dark"] .ticket-price-type-box, html.dark .ticket-price-type-box, body.dark .ticket-price-type-box{background:#0f172a}html[data-theme="dark"] .real-cast-link, html.dark .real-cast-link, body.dark .real-cast-link{background:#1f2937;color:#f8fafc}
@media (max-width:768px){.event-cast-admin-grid{grid-template-columns:1fr}.event-cast-admin-row{grid-template-columns:1fr}.ticket-price-type-box{grid-template-columns:1fr}.ticket-extra-panels{grid-template-columns:1fr}.user-portal-tabs{top:0}.cast-linked-row{display:block}.cast-linked-row>b{display:block;margin-bottom:8px}}
@media print{.no-print,.site-header,.footer,.mobile-bottom-nav,.ticket-toolbar{display:none!important}.ticket-display-page{padding:0!important}.ticket-display-shell{box-shadow:none!important;border:1px solid #ddd!important}.ticket-extra-panels article{break-inside:avoid}}

/* V62: soften filter/search/input corners to match the updated button radius */
:root {
    --control-radius-soft: 10px;
}
.filter-box,
.filter-section .filter-box,
.focused-toolbar,
.artist-directory-toolbar,
.filter-section select,
.filter-section input,
.filter-section textarea,
.filter-section .form-control,
.filter-section .search-input,
.search-input,
.form-control,
select.form-control,
input.form-control,
textarea.form-control,
.quick-filter,
.filter-search-btn,
.ticket-price-type-box,
.ticket-price-type-box select,
.ticket-price-type-box input,
.selected-seat-list,
.session-price-box,
.profile-upload-preview,
.profile-upload-field input[type="file"] {
    border-radius: var(--control-radius-soft) !important;
}
button,
[type="button"],
[type="submit"],
[type="reset"],
a[class*="btn"],
[class*="-btn"],
.login-btn,
.buy-ticket-btn,
.hero-action-btn,
.admin-primary-btn,
.admin-secondary-btn,
.portal-action,
.artist-row-action,
.filter-search-btn,
.user-portal-tabs button,
.ticket-toolbar a,
.ticket-toolbar button,
.pay-mini {
    border-radius: var(--control-radius-soft) !important;
}
.filter-section .grid {
    align-items: stretch;
}
.filter-section .form-control,
.filter-section select,
.filter-section input,
.filter-search-btn,
.search-input {
    min-height: 38px;
}
.focused-header .search-input {
    border-radius: var(--control-radius-soft) !important;
}
@media (max-width: 640px) {
    :root { --control-radius-soft: 9px; }
    .filter-box,
    .focused-toolbar,
    .artist-directory-toolbar,
    .form-control,
    .search-input,
    .filter-search-btn,
    button,
    [type="button"],
    [type="submit"],
    a[class*="btn"],
    [class*="-btn"] {
        border-radius: var(--control-radius-soft) !important;
    }
}


/* V64: PWA install button and offline install feedback */
.mobile-menu-panel .install-app-btn {
    cursor: pointer;
    border-bottom: 1px solid #fdba74 !important;
}
.mobile-menu-panel .install-app-btn.installed,
.mobile-menu-panel .install-app-btn:disabled {
    opacity: .72;
    cursor: default;
}
.pwa-install-toast {
    position: fixed;
    right: 16px;
    bottom: 18px;
    max-width: min(420px, calc(100vw - 32px));
    background: #111827;
    color: #fff;
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 18px 45px rgba(0,0,0,.24);
    border-radius: var(--control-radius-soft, 10px);
    padding: 13px 16px;
    font-size: 12px;
    line-height: 1.9;
    z-index: 100000;
    transform: translateY(20px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}
.pwa-install-toast.show {
    transform: translateY(0);
    opacity: 1;
}
body.dark-theme .pwa-install-toast,
html.dark-theme .pwa-install-toast {
    background: #181b22;
    color: #f9fafb;
    border-color: #2a2f3a;
}
@media (max-width: 640px) {
    .pwa-install-toast {
        right: 10px;
        bottom: 12px;
        max-width: calc(100vw - 20px);
    }
}
