:root {
    --ink: #18212f;
    --muted: #667085;
    --brand: #0f766e;
    --brand-dark: #115e59;
    --surface: #ffffff;
    --line: #e6e9ef;
    --page: #f6f8fb;
    --green: #19a974;
    --blue: #2477f2;
    --red: #d92d20;
    --accent: #4f46e5;
    --accent-soft: #eef2ff;
    --gray: #98a2b3;
    --admin-bg: #f3f6fb;
    --admin-dark: #111827;
    --admin-dark-2: #1f2937;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--page); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
.app-header { position: sticky; top: 0; z-index: 20; min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 18px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; color: var(--brand); }
.brand i { font-size: 1.35rem; }
.brand-stack { display: grid; gap: 2px; min-width: 0; }
.location-trigger { display: inline-flex; align-items: center; gap: 5px; width: fit-content; border: 0; background: transparent; color: var(--muted); padding: 0; font-size: .82rem; font-weight: 750; }
.location-trigger i:first-child { color: var(--brand); }
.location-picker { position: sticky; top: 70px; z-index: 19; background: #fff; border-bottom: 1px solid var(--line); padding: 10px 14px; box-shadow: 0 8px 22px rgba(16,24,40,.06); }
.location-picker-inner { width: min(1180px, 100%); margin: 0 auto; display: grid; gap: 8px; }
.desktop-nav { display: none; align-items: center; gap: 18px; color: var(--muted); font-weight: 600; }
.mobile-header-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.header-attend-link { width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: 50%; background: #ecfdf5; color: var(--brand); border: 1px solid #ccfbf1; box-shadow: 0 8px 20px rgba(16,24,40,.05); }
.header-attend-link i { font-size: 1.18rem; line-height: 1; }
.desktop-logout { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 999px; background: #fff1f2; color: #be123c !important; font-weight: 850; }
.app-main { width: min(1180px, 100%); margin: 0 auto; padding: 18px 14px 88px; }
.hero-band { display: grid; gap: 14px; padding: 18px 0; }
.search-shell { display: grid; gap: 10px; grid-template-columns: 1fr; background: var(--surface); border: 1px solid var(--line); padding: 12px; border-radius: 8px; box-shadow: 0 10px 28px rgba(16,24,40,.06); }
.btn-brand { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 700; }
.btn-brand:hover { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; }
.library-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
.library-card { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 10px 28px rgba(16,24,40,.05); }
.library-card .thumb { min-height: 150px; background: linear-gradient(120deg, #0f766e, #4f46e5); }
.library-thumb { background-size: cover !important; background-position: center !important; }
.photo-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.photo-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.photo-card img { width: 100%; height: 150px; object-fit: cover; display: block; }
.photo-card-body { padding: 12px; display: grid; gap: 4px; }
.photo-card-body span { color: var(--muted); font-size: .9rem; }
.library-card .body { padding: 14px; }
.meta { color: var(--muted); font-size: .92rem; }
.seat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(54px, 1fr)); gap: 10px; }
.seat { min-height: 48px; border: 0; border-radius: 8px; color: #fff; font-weight: 800; touch-action: manipulation; }
.seat.available { background: var(--green); }
.seat.booked { background: var(--red); }
.seat.selected { background: var(--blue); }
.seat.maintenance, .seat.held { background: var(--gray); }
.seat-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; color: var(--muted); font-size: .9rem; }
.seat-legend span { display: inline-flex; align-items: center; gap: 6px; }
.seat-legend b { width: 14px; height: 14px; display: inline-block; border-radius: 4px; }
.seat-legend .available { background: var(--green); }
.seat-legend .booked { background: var(--red); }
.seat-legend .selected { background: var(--blue); }
.seat-legend .maintenance { background: var(--gray); }
.seat-hero { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 14px; padding: 18px; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #172033, #2477f2 58%, #19a974); box-shadow: 0 18px 40px rgba(16,24,40,.12); }
.seat-hero h1 { margin: 0; font-size: clamp(1.45rem, 7vw, 2.25rem); font-weight: 900; }
.seat-hero p { margin: 6px 0 0; color: rgba(255,255,255,.82); max-width: 720px; }
.seat-hero > i { font-size: 2.4rem; opacity: .86; }
.seat-filter-card { margin-bottom: 14px; padding: 14px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.06); }
.seat-filter-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.seat-filter-head h2 { margin: 0; font-size: 1.1rem; font-weight: 950; }
.seat-filter-head small { display: inline-flex; width: fit-content; margin-top: 4px; padding: 4px 8px; border-radius: 999px; background: #ecfdf5; color: var(--brand); font-size: .72rem; font-weight: 850; }
.seat-refresh-btn { min-height: 38px; padding: 6px 12px; font-size: .82rem; font-weight: 850; }
.seat-conflict-alert { border-color: #fde68a; background: #fffbeb; color: #92400e; font-size: .9rem; }
.seat-date-grid { display: grid; grid-template-columns: 1.05fr 1.35fr 1fr 1fr; gap: 10px; }
.seat-date-grid label { display: grid; gap: 6px; min-width: 0; }
.seat-date-grid label > span { color: var(--muted); font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.seat-date-grid .plan-select { font-weight: 850; color: var(--ink); }
.seat-date-grid .readonly-date { background: #f8fafc; color: #475569; font-weight: 850; }
.seat-summary-strip { display: grid; grid-template-columns: 1.55fr repeat(4, 1fr); gap: 8px; margin-top: 12px; }
.seat-summary-strip > div { min-height: 58px; display: grid; align-content: center; padding: 9px 10px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--line); }
.seat-summary-strip strong { font-size: 1.12rem; font-weight: 950; color: var(--ink); }
.seat-summary-strip span { color: var(--muted); font-size: .75rem; font-weight: 850; }
.range-pill { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; background: #ecfdf5 !important; border-color: #ccfbf1 !important; }
.range-pill i { color: var(--brand); font-size: 1.2rem; }
.seat-map-shell { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 14px; box-shadow: 0 10px 30px rgba(16,24,40,.06); overflow-x: auto; }
.seat-stage { width: min(520px, 100%); margin: 0 auto 18px; padding: 10px 14px; text-align: center; color: var(--muted); font-weight: 850; background: #eef2f7; border: 1px solid var(--line); border-radius: 0 0 28px 28px; }
.seat-row { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: center; margin-bottom: 10px; min-width: 360px; }
.seat-row-label { color: var(--muted); font-size: .8rem; font-weight: 850; text-align: right; }
.seat-row-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(58px, 1fr)); gap: 9px; align-items: center; }
.seat-tile { min-height: 56px; display: grid; place-items: center; gap: 2px; border: 0; border-radius: 8px; color: #fff; font-weight: 850; line-height: 1; box-shadow: inset 0 -3px 0 rgba(0,0,0,.12); transition: transform .14s ease, box-shadow .14s ease; }
.seat-tile i { font-size: 1rem; }
.seat-tile span { font-size: .8rem; }
.seat-tile.available { background: var(--green); }
.seat-tile.booked { background: var(--red); opacity: .75; }
.seat-tile.renewalreserved { background: #f59e0b; opacity: .78; }
.seat-tile.selected { background: var(--blue); box-shadow: 0 0 0 3px rgba(36,119,242,.18), inset 0 -3px 0 rgba(0,0,0,.12); }
.seat-tile.maintenance, .seat-tile.held { background: var(--gray); opacity: .72; }
.seat-tile:not(.booked):not(.renewalreserved):not(.maintenance):not(.held):hover { transform: translateY(-2px); box-shadow: 0 10px 18px rgba(16,24,40,.14); color: #fff; }
.stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.stat-card, .panel { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 16px; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.stat-card strong { display: block; font-size: clamp(1.35rem, 5vw, 2rem); }
.bottom-nav { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; height: 60px; display: grid; grid-template-columns: repeat(5, 20%); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(16,24,40,.06); }
.bottom-nav a { width: 100%; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: var(--muted); font-size: .58rem; line-height: 1; font-weight: 750; overflow: hidden; }
.bottom-nav i { font-size: .95rem; line-height: 1; }
.bottom-nav span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bottom-nav a:hover { color: var(--brand); }
.dashboard-body { margin: 0; background: var(--admin-bg); }
.dashboard-body > form { min-height: 100vh; }
.side-nav { position: sticky; top: 0; z-index: 20; display: flex; gap: 8px; overflow-x: auto; padding: 10px; background: #101828; color: #fff; }
.side-nav a { white-space: nowrap; padding: 10px 12px; border-radius: 8px; color: rgba(255,255,255,.86); }
.side-nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.side-nav .brand { color: #fff; }
.side-nav.owner { background: #12312b; }
.dashboard-main { padding: 16px; }
.table-responsive { border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.form-control, .form-select, .btn { min-height: 44px; border-radius: 8px; }
.map-box { min-height: 320px; border-radius: 8px; border: 1px solid var(--line); background: #eef2f7; }
.nearby-finder { display: grid; gap: 12px; margin-bottom: 16px; }
.nearby-copy { padding: 18px; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #142033 0%, #115e59 66%, #4338ca 100%); box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.nearby-copy h1 { margin: 0; font-size: clamp(1.65rem, 8vw, 2.75rem); line-height: 1.05; font-weight: 950; }
.nearby-copy p { margin: 8px 0 0; color: rgba(255,255,255,.78); }
.nearby-copy .eyebrow { color: #99f6e4; }
.nearby-actions { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; margin-top: 16px; }
.nearby-actions .btn-brand { grid-column: 1 / -1; }
.nearby-actions .form-select, .nearby-actions .btn { border-color: rgba(255,255,255,.22); }
.nearby-actions .form-select { background-color: rgba(255,255,255,.95); font-weight: 850; }
.nearby-status { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: rgba(255,255,255,.74); font-size: .88rem; font-weight: 750; }
.nearby-map-card { position: relative; overflow: hidden; min-height: 250px; border: 1px solid var(--line); border-radius: 8px; background: #dfe7f0; box-shadow: 0 12px 30px rgba(16,24,40,.08); }
.nearby-map { position: absolute; inset: 0; }
.map-floating-label { position: absolute; left: 12px; top: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 8px 10px; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--ink); font-weight: 850; box-shadow: 0 8px 20px rgba(16,24,40,.12); }
.nearby-map-message { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; padding: 10px 12px; border-radius: 8px; background: #fff7ed; border: 1px solid #fed7aa; color: #7c2d12; font-weight: 750; box-shadow: 0 8px 20px rgba(16,24,40,.08); }
.nearby-list { display: grid; gap: 10px; }
.nearby-result { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.nearby-result a { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; color: var(--ink); }
.nearby-photo { width: 96px; height: 84px; border-radius: 8px; background: linear-gradient(135deg, #0f766e, #4f46e5); background-size: cover; background-position: center; }
.nearby-info h3 { margin: 0 0 5px; font-size: 1rem; font-weight: 900; }
.nearby-info p, .nearby-info span { display: block; margin: 0; color: var(--muted); font-size: .86rem; font-weight: 700; }
.nearby-info span { margin-top: 5px; color: var(--brand); }
.nearby-open { color: var(--muted); }
.admin-brand { align-items: center; padding: 8px 10px 18px; border-bottom: 1px solid rgba(255,255,255,.1); margin-bottom: 4px; min-width: 0; }
.admin-brand span:last-child { display: grid; line-height: 1.15; }
.admin-brand strong { white-space: normal; overflow-wrap: anywhere; }
.admin-brand small { color: rgba(255,255,255,.58); font-size: .75rem; font-weight: 600; }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; background: linear-gradient(135deg, var(--brand), var(--accent)); border-radius: 8px; color: #fff; }
.nav-section { display: none; color: rgba(255,255,255,.42); font-size: .72rem; font-weight: 800; letter-spacing: 0; text-transform: uppercase; padding: 16px 12px 4px; }
.admin-nav a:not(.brand) { display: inline-flex; align-items: center; gap: 10px; font-weight: 650; }
.admin-nav a i { width: 20px; text-align: center; font-size: 1rem; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.admin-topbar h1 { margin: 0; font-size: clamp(1.25rem, 4vw, 1.8rem); font-weight: 800; }
.topbar-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
.sidebar-toggle { width: 44px; height: 44px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-size: 1.35rem; box-shadow: 0 8px 20px rgba(16,24,40,.05); }
.eyebrow { display: inline-block; color: var(--brand); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0; margin-bottom: 4px; }
.admin-user { display: flex; align-items: center; gap: 10px; color: var(--muted); font-weight: 700; }
.admin-hero { display: grid; gap: 16px; align-items: center; margin-bottom: 16px; padding: 18px; color: #fff; border-radius: 8px; background: linear-gradient(135deg, #0b1720 0%, #134e4a 58%, #4f46e5 100%); box-shadow: 0 18px 40px rgba(17,24,39,.16); }
.admin-hero h2 { margin: 0; font-weight: 850; font-size: clamp(1.45rem, 6vw, 2.35rem); }
.admin-hero p { margin: 8px 0 0; color: rgba(255,255,255,.78); max-width: 680px; }
.admin-hero .eyebrow { color: #99f6e4; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.setup-panel { display: grid; gap: 16px; margin-bottom: 16px; padding: 18px; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; }
.setup-panel h2 { margin: 0; font-size: 1.2rem; font-weight: 800; }
.setup-panel p { margin: 6px 0 0; color: #7c2d12; }
.setup-steps { display: grid; gap: 8px; }
.setup-steps a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; background: #fff; border: 1px solid #fed7aa; font-weight: 700; color: #7c2d12; }
.admin-stats .stat-card { position: relative; overflow: hidden; display: grid; gap: 4px; color: var(--ink); text-decoration: none; min-height: 144px; }
.admin-stats .stat-card i { position: absolute; right: 14px; top: 14px; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; background: rgba(15,118,110,.1); color: var(--brand); font-size: 1.25rem; }
.admin-stats .stat-card span { color: var(--muted); font-weight: 800; }
.admin-stats .stat-card small { color: var(--muted); }
.dashboard-grid { display: grid; gap: 14px; margin-top: 14px; grid-template-columns: 1fr; }
.panel-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.panel-title h3 { margin: 0; font-size: 1rem; font-weight: 850; }
.panel-title a { color: var(--brand); font-weight: 800; }
.compact-table { max-height: 360px; overflow: auto; }
.compact-table .table { min-width: 680px; font-size: .9rem; }
.empty-state { display: grid; place-items: center; gap: 6px; min-height: 180px; color: var(--muted); text-align: center; padding: 24px; }
.empty-state i { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: #f2f4f7; color: var(--brand); font-size: 1.4rem; }
.empty-state strong { color: var(--ink); }
.module-header { display: grid; gap: 14px; margin-bottom: 16px; padding: 18px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.04); }
.module-header h2 { margin: 0; font-size: clamp(1.25rem, 5vw, 1.85rem); font-weight: 850; }
.module-header p { margin: 6px 0 0; color: var(--muted); max-width: 760px; }
.module-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.module-grid { display: grid; gap: 12px; grid-template-columns: 1fr; margin-bottom: 16px; }
.module-card { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 14px; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.module-card i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; background: #ecfdf5; color: var(--brand); font-size: 1.25rem; flex: 0 0 auto; }
.module-card strong { display: block; margin-bottom: 3px; }
.module-card span { color: var(--muted); font-size: .92rem; }
.nearby-hero { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 14px; padding: 20px; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #0f172a, #0f766e); }
.nearby-hero h1 { margin: 0; font-size: clamp(1.55rem, 7vw, 2.35rem); font-weight: 850; }
.nearby-hero p { margin: 6px 0 0; color: rgba(255,255,255,.8); }
.nearby-hero > i { font-size: 2.5rem; opacity: .86; }
.auth-wrap { min-height: calc(100vh - 120px); display: grid; gap: 18px; align-items: center; padding: 12px 0; }
.auth-visual { display: none; color: #fff; border-radius: 8px; padding: 28px; background: linear-gradient(135deg, #111827, #134e4a 58%, #4f46e5); box-shadow: 0 18px 42px rgba(17,24,39,.18); }
.auth-visual h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 900; max-width: 560px; }
.auth-visual p { color: rgba(255,255,255,.78); margin: 12px 0 0; max-width: 520px; }
.auth-points { display: grid; gap: 10px; margin-top: 24px; }
.auth-points span { display: inline-flex; align-items: center; gap: 8px; font-weight: 750; }
.auth-card { width: min(460px, 100%); margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 22px; box-shadow: 0 18px 42px rgba(16,24,40,.1); }
.auth-card h2 { margin: 8px 0 4px; font-weight: 850; }
.auth-logo { width: 54px; height: 54px; display: inline-grid; place-items: center; border-radius: 8px; background: #ecfdf5; color: var(--brand); font-size: 1.8rem; }
.auth-divider { display: flex; align-items: center; gap: 12px; color: var(--muted); font-weight: 700; margin: 18px 0; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.student-auth { align-items: stretch; }
.student-auth-visual { position: relative; overflow: hidden; }
.student-auth-visual::after { content: ""; position: absolute; right: -80px; bottom: -80px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.08); }
.login-preview-card { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 26px 0; padding: 16px; border-radius: 8px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(12px); }
.login-preview-card span, .login-preview-card small { display: block; color: rgba(255,255,255,.68); font-weight: 750; }
.login-preview-card strong { display: block; margin: 4px 0; font-size: 1.35rem; font-weight: 950; }
.login-preview-card i { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: var(--brand); font-size: 1.65rem; flex: 0 0 auto; }
.student-login-card { align-self: center; }
.login-card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.login-card-head h2 { margin: 0; font-size: 1.65rem; }
.login-input { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; overflow: hidden; }
.login-input i { color: var(--brand); text-align: center; font-size: 1.1rem; }
.login-input .form-control { border: 0; background: #fff; border-radius: 0; box-shadow: none; }
.login-links { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; font-weight: 800; font-size: .92rem; }
.login-links a:last-child { color: var(--brand); }
.student-login-body { background: #101828; }
.student-login-body .app-header, .student-login-body .bottom-nav { display: none; }
.student-login-body .app-main { width: 100%; max-width: none; min-height: 100vh; padding: 0; }
.login-screen { position: relative; min-height: 100vh; padding: 12px; background: linear-gradient(145deg, #101828 0%, #142033 45%, #0f766e 145%); color: #fff; }
.login-brandbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: min(1180px, 100%); margin: 0 auto 10px; }
.login-brandbar a:first-child { display: inline-flex; align-items: center; gap: 9px; font-size: 1.05rem; font-weight: 950; color: #fff; }
.login-brandbar a:first-child i { color: #5eead4; font-size: 1.35rem; }
.login-brandbar a:last-child { padding: 9px 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.88); font-weight: 850; font-size: .86rem; }
.login-layout { position: relative; z-index: 2; width: min(1180px, 100%); margin: 0 auto; display: grid; gap: 12px; align-items: stretch; }
.login-showcase { position: relative; overflow: hidden; min-height: 220px; display: grid; align-content: end; gap: 10px; padding: 16px; border-radius: 8px; background: linear-gradient(135deg, rgba(79,70,229,.92), rgba(15,118,110,.88)), url("https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1200&q=80"); background-size: cover; background-position: center; box-shadow: 0 18px 44px rgba(0,0,0,.24); }
.login-showcase h1 { max-width: 720px; margin: 0; font-size: clamp(1.65rem, 7vw, 3.45rem); line-height: 1.04; font-weight: 950; }
.login-showcase p { max-width: 560px; margin: 0; color: rgba(255,255,255,.78); font-weight: 700; }
.login-showcase .eyebrow { color: #ccfbf1; }
.login-showcase-panel { display: none; gap: 12px; width: min(420px, 100%); padding: 12px; border-radius: 8px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(16px); box-shadow: 0 16px 44px rgba(0,0,0,.18); }
.showcase-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.showcase-row > i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.18); color: #ccfbf1; font-size: 1.25rem; }
.showcase-row strong, .showcase-row span { display: block; }
.showcase-row strong { font-weight: 950; }
.showcase-row span { color: rgba(255,255,255,.68); font-size: .86rem; }
.showcase-row b { padding: 6px 9px; border-radius: 999px; background: #dcfce7; color: #166534; font-size: .75rem; }
.showcase-seat-map { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; padding: 10px; border-radius: 8px; background: rgba(255,255,255,.12); }
.showcase-seat-map span { aspect-ratio: 1; border-radius: 8px; background: #5eead4; box-shadow: inset 0 -3px 0 rgba(0,0,0,.12); }
.showcase-seat-map .taken { background: rgba(255,255,255,.28); }
.showcase-seat-map .active { background: #facc15; box-shadow: 0 0 0 4px rgba(250,204,21,.16), inset 0 -3px 0 rgba(0,0,0,.16); }
.showcase-bottom { display: flex; flex-wrap: wrap; gap: 8px; color: rgba(255,255,255,.82); font-size: .86rem; font-weight: 850; }
.showcase-bottom span { display: inline-flex; align-items: center; gap: 6px; }
.login-trust-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.login-trust-row span { display: grid; place-items: center; gap: 4px; min-height: 58px; padding: 7px; border-radius: 8px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.14); text-align: center; color: rgba(255,255,255,.84); font-size: .72rem; font-weight: 850; }
.login-trust-row i { color: #5eead4; font-size: 1.2rem; }
.login-panel { padding: 16px; border-radius: 8px; background: #fff; color: var(--ink); border: 1px solid rgba(255,255,255,.28); box-shadow: 0 18px 44px rgba(0,0,0,.22); }
.login-panel .auth-logo { background: linear-gradient(135deg, #ecfdf5, #eef2ff); }
.login-main-btn { min-height: 50px; font-size: 1rem; box-shadow: 0 12px 24px rgba(15,118,110,.22); }
.google-login-btn { min-height: 48px; font-weight: 850; }
.login-mobile-animation { position: absolute; z-index: 1; left: 8px; right: 8px; bottom: 10px; display: grid; place-items: end center; height: 206px; margin: 0 auto; width: min(340px, calc(100% - 16px)); pointer-events: none; }
.login-flow-card { position: relative; width: min(304px, 100%); padding: 16px; border-radius: 8px; background: linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.07)); border: 1px solid rgba(255,255,255,.16); box-shadow: 0 20px 50px rgba(0,0,0,.18); backdrop-filter: blur(14px); overflow: hidden; }
.login-flow-card::before { content: ""; position: absolute; inset: -60px 24px auto; height: 120px; border-radius: 50%; background: rgba(94,234,212,.22); filter: blur(18px); animation: flowGlow 4s ease-in-out infinite; }
.flow-head { position: relative; z-index: 1; display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.flow-head span { color: rgba(255,255,255,.66); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.flow-head strong { color: #fff; font-size: .95rem; font-weight: 950; white-space: nowrap; }
.flow-track { position: absolute; z-index: 0; left: 36px; right: 36px; top: 77px; height: 3px; border-radius: 999px; background: rgba(255,255,255,.18); overflow: hidden; }
.flow-track b { display: block; width: 42%; height: 100%; border-radius: inherit; background: #5eead4; box-shadow: 0 0 14px rgba(94,234,212,.85); animation: flowMove 2.6s ease-in-out infinite; }
.flow-steps { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.flow-steps div { display: grid; justify-items: center; gap: 7px; color: rgba(255,255,255,.82); font-size: .74rem; font-weight: 850; }
.flow-steps i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--brand); font-size: 1.15rem; box-shadow: 0 10px 24px rgba(0,0,0,.18); animation: flowPop 2.6s ease-in-out infinite; }
.flow-steps div:nth-child(2) i { animation-delay: .28s; }
.flow-steps div:nth-child(3) i { animation-delay: .56s; }
.flow-mini-pass { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 15px; padding: 9px 10px; border-radius: 999px; background: rgba(255,255,255,.12); color: rgba(255,255,255,.82); font-size: .78rem; font-weight: 850; }
.flow-mini-pass i { color: #5eead4; }
@keyframes flowMove { 0%, 100% { transform: translateX(-22%); } 50% { transform: translateX(160%); } }
@keyframes flowPop { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes flowGlow { 0%, 100% { opacity: .55; transform: translateX(-20px); } 50% { opacity: 1; transform: translateX(20px); } }
.register-screen { background: linear-gradient(145deg, #101828 0%, #0f172a 45%, #134e4a 140%); }
.register-layout { align-items: center; }
.register-showcase { min-height: 190px; background: linear-gradient(135deg, rgba(15,23,42,.92), rgba(15,118,110,.86)), url("https://images.unsplash.com/photo-1519389950473-47ba0277781c?auto=format&fit=crop&w=1200&q=80"); background-size: cover; background-position: center; }
.register-panel { align-self: center; }
.admin-auth-screen { background: linear-gradient(145deg, #101828 0%, #172033 50%, #312e81 145%); }
.owner-auth-screen { background: linear-gradient(145deg, #101828 0%, #14313b 48%, #0f766e 145%); }
.admin-auth-showcase { min-height: 190px; background: linear-gradient(135deg, rgba(17,24,39,.9), rgba(79,70,229,.82)), url("https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=1200&q=80"); background-size: cover; background-position: center; }
.owner-auth-showcase { min-height: 190px; background: linear-gradient(135deg, rgba(15,23,42,.9), rgba(15,118,110,.84)), url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1200&q=80"); background-size: cover; background-position: center; }
.console-auth-note { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; padding: 10px 12px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--line); color: var(--muted); font-size: .86rem; font-weight: 750; }
.console-auth-note i { color: var(--brand); margin-top: 1px; }
@media (max-width: 767.98px) {
    body { font-size: 14px; }
    .seat-hero h1,
    .nearby-copy h1,
    .nearby-hero h1,
    .admin-hero h2,
    .module-header h2,
    .auth-visual h1,
    .login-showcase h1,
    .student-hero h1,
    .home-greeting h1,
    .app-page-head h1,
    .checkout-hero h1,
    .wallet-hero h1,
    .profile-hero h1,
    .success-card h1,
    .detail-overlay h1 { font-size: clamp(1.25rem, 6vw, 1.72rem); line-height: 1.12; }
    .stat-card strong,
    .student-hero-panel strong,
    .referral-card strong { font-size: clamp(1.2rem, 5vw, 1.65rem); }
    .module-header,
    .admin-hero,
    .app-page-head,
    .seat-hero,
    .wallet-hero,
    .profile-hero,
    .checkout-hero { padding: 14px; }
    .seat-filter-head { align-items: stretch; }
    .seat-filter-head .btn { white-space: nowrap; }
    .seat-date-grid { grid-template-columns: 1fr; }
    .seat-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .seat-summary-strip .range-pill { grid-column: 1 / -1; }
    .login-screen { padding: 8px; }
    .login-brandbar { margin-bottom: 6px; }
    .login-brandbar a:last-child { padding: 7px 10px; font-size: .78rem; }
    .login-layout { gap: 8px; }
    .login-showcase { min-height: 102px; padding: 12px; align-content: center; }
    .login-showcase h1 { font-size: 1.32rem; max-width: 300px; }
    .login-showcase p, .login-trust-row, .login-showcase-panel { display: none; }
    .login-panel { padding: 12px; }
    .login-card-head { gap: 10px; }
    .login-card-head h2 { font-size: 1.35rem; }
    .login-panel .auth-logo { width: 46px; height: 46px; font-size: 1.45rem; }
    .login-panel .form-label { margin-top: 10px !important; margin-bottom: 5px; font-size: .88rem; }
    .login-input { grid-template-columns: 38px minmax(0, 1fr); }
    .login-input .form-control { min-height: 42px; font-size: .95rem; }
    .login-main-btn { min-height: 44px; margin-top: 14px !important; }
    .google-login-btn { min-height: 42px; }
    .auth-divider { margin: 9px 0; }
    .login-links { margin-top: 10px; font-size: .82rem; }
}
.student-hero { display: grid; gap: 16px; margin-bottom: 16px; padding: 18px; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #0f172a 0%, #134e4a 54%, #4f46e5 100%); box-shadow: 0 18px 44px rgba(17,24,39,.18); overflow: hidden; }
.student-hero h1 { margin: 0; font-size: clamp(2rem, 10vw, 4rem); font-weight: 950; line-height: 1.02; max-width: 760px; }
.student-hero p { margin: 12px 0 0; color: rgba(255,255,255,.78); max-width: 640px; }
.student-hero .eyebrow { color: #99f6e4; }
.student-search { display: grid; gap: 10px; margin-top: 18px; padding: 10px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 8px; backdrop-filter: blur(10px); }
.student-hero-panel { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 8px; padding: 18px; min-width: 220px; }
.student-hero-panel .meta { color: rgba(255,255,255,.72); }
.student-hero-panel strong { display: block; font-size: 1.8rem; font-weight: 900; }
.quick-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.quick-actions a { min-height: 82px; display: grid; place-items: center; gap: 6px; background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-weight: 800; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.quick-actions i { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; color: var(--brand); background: #ecfdf5; font-size: 1.25rem; }
.banner-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 1fr); gap: 12px; overflow-x: auto; margin-bottom: 18px; padding-bottom: 4px; }
.home-banner-carousel { margin: 4px -14px 16px; padding: 0 14px; overflow: hidden; }
.home-banner-carousel .carousel-inner { overflow: visible; border-radius: 8px; }
.home-banner-carousel .carousel-item { min-height: 132px; transition: transform .45s ease, opacity .45s ease; }
.banner-card { position: relative; min-height: 150px; overflow: hidden; border-radius: 8px; background: #111827; color: #fff; }
.home-banner-carousel .banner-card { display: block; min-height: 132px; border-radius: 8px; box-shadow: 0 12px 26px rgba(16,24,40,.12); }
.banner-card img { width: 100%; height: 100%; min-height: 150px; object-fit: cover; display: block; opacity: .82; }
.home-banner-carousel .banner-card img { min-height: 132px; height: 132px; opacity: .9; }
.banner-card div { position: absolute; left: 14px; bottom: 14px; display: grid; gap: 2px; text-shadow: 0 2px 10px rgba(0,0,0,.4); }
.banner-card small { color: #99f6e4; font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.banner-card strong { font-size: 1.1rem; }
.banner-card span { color: rgba(255,255,255,.8); font-weight: 700; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 18px 0 12px; }
.section-heading h2 { margin: 0; font-size: 1.35rem; font-weight: 900; }
.section-heading a { color: var(--brand); font-weight: 850; }
.modern-library-card .thumb { min-height: 180px; }
.rating-pill { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 8px; border-radius: 999px; background: #fff8e6; color: #9a6500; font-weight: 850; font-size: .8rem; }
.facility-mini { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 12px; }
.facility-mini span { padding: 5px 8px; border-radius: 999px; background: #f2f4f7; color: var(--muted); font-size: .78rem; font-weight: 750; }
.splash-screen { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; align-content: center; gap: 12px; background: radial-gradient(circle at 50% 0%, #3d4659 0%, #151b29 42%, #090d16 100%); color: #fff; transition: opacity .45s ease, visibility .45s ease; }
.splash-screen.hide { opacity: 0; visibility: hidden; pointer-events: none; }
.splash-logo { width: 82px; height: 82px; display: grid; place-items: center; border-radius: 24px; background: linear-gradient(135deg, #0f766e, #4f46e5); box-shadow: 0 20px 60px rgba(15,118,110,.34); font-size: 2.6rem; animation: splashPulse 1.2s ease-in-out infinite alternate; }
.splash-screen h1 { margin: 8px 0 0; font-size: 2rem; font-weight: 950; }
.splash-screen p { margin: 0; color: rgba(255,255,255,.68); font-weight: 700; }
.splash-loader { width: 180px; height: 4px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.12); margin-top: 8px; }
.splash-loader span { display: block; width: 45%; height: 100%; border-radius: inherit; background: #2dd4bf; animation: splashLoad 1s ease-in-out infinite; }
@keyframes splashPulse { from { transform: translateY(0) scale(1); } to { transform: translateY(-6px) scale(1.03); } }
@keyframes splashLoad { 0% { transform: translateX(-120%); } 100% { transform: translateX(240%); } }
.bms-top-search { display: grid; gap: 10px; align-items: center; margin: -6px 0 10px; padding: 10px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.06); }
.bms-location { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-weight: 850; }
.bms-location i:first-child { color: var(--brand); }
.bms-searchbox { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px; border-radius: 8px; background: #f6f8fb; color: var(--muted); font-weight: 700; }
.bms-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: max-content; gap: 8px; overflow-x: auto; margin-bottom: 14px; padding-bottom: 4px; scrollbar-width: none; }
.bms-tabs::-webkit-scrollbar { display: none; }
.bms-tabs a { padding: 9px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--muted); font-weight: 850; box-shadow: 0 6px 18px rgba(16,24,40,.04); }
.bms-tabs a:first-child { background: #ecfdf5; color: var(--brand); border-color: #ccfbf1; }
.modern-library-card { transition: transform .16s ease, box-shadow .16s ease; }
.modern-library-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(16,24,40,.11); }
.app-home-card { margin-bottom: 14px; padding: 16px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.06); }
.home-greeting { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.home-greeting h1 { margin: 0; font-size: clamp(1.45rem, 7vw, 2.1rem); font-weight: 950; color: var(--ink); }
.wallet-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 10px; border-radius: 999px; background: #ecfdf5; color: var(--brand); font-weight: 850; white-space: nowrap; }
.wallet-chip a { color: var(--brand); }
.app-searchbar { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; padding: 10px; border-radius: 8px; background: #f6f8fb; border: 1px solid var(--line); }
.app-searchbar > i { color: var(--brand); font-size: 1.2rem; padding-left: 4px; }
.app-searchbar input[type="text"] { width: 100%; min-height: 42px; border: 0; background: #fff; border-radius: 8px; padding: 0 12px; outline: 0; }
.app-searchbar input[type="submit"] { grid-column: 1 / -1; min-height: 42px; border: 0; border-radius: 8px; background: var(--brand); color: #fff; font-weight: 850; }
.home-mini-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.home-mini-actions a { display: grid; place-items: center; gap: 5px; min-height: 70px; border-radius: 8px; background: #fff; border: 1px solid var(--line); color: var(--ink); font-weight: 800; }
.home-mini-actions i { color: var(--brand); font-size: 1.35rem; }
.bms-discovery { margin-bottom: 14px; padding: 0; background: transparent; }
.bms-discovery-search { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 10px; box-shadow: 0 8px 22px rgba(16,24,40,.05); }
.bms-discovery-search > i { color: var(--brand); font-size: 1.2rem; padding-left: 4px; }
.bms-discovery-search input[type="text"] { min-height: 42px; width: 100%; border: 0; outline: 0; background: #f6f8fb; border-radius: 8px; padding: 0 12px; }
.bms-discovery-search input[type="submit"] { grid-column: 1 / -1; min-height: 42px; border: 0; border-radius: 8px; background: var(--brand); color: #fff; font-weight: 850; }
.bms-service-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0 2px; }
.bms-service-row a { display: grid; place-items: center; gap: 5px; padding: 10px 4px; color: var(--ink); font-size: .82rem; font-weight: 800; }
.bms-service-row i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff; border: 1px solid var(--line); color: var(--brand); font-size: 1.2rem; box-shadow: 0 6px 18px rgba(16,24,40,.04); }
.bms-card-row { display: grid; grid-auto-flow: column; grid-auto-columns: 172px; gap: 14px; overflow-x: auto; padding: 2px 2px 12px; margin-bottom: 10px; scrollbar-width: none; }
.bms-card-row::-webkit-scrollbar { display: none; }
.bms-library-tile a { display: block; color: var(--ink); }
.bms-library-tile .poster { position: relative; height: 238px; overflow: hidden; border-radius: 8px; background: linear-gradient(135deg, #0f766e, #4f46e5); background-size: cover; background-position: center; box-shadow: 0 10px 24px rgba(16,24,40,.12); }
.bms-library-tile .poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(15,23,42,.48)); }
.bms-library-tile .poster span { position: absolute; z-index: 1; left: 10px; bottom: 10px; padding: 5px 8px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--brand); font-size: .72rem; font-weight: 950; }
.bms-library-tile h3 { margin: 10px 0 3px; font-size: .98rem; font-weight: 900; line-height: 1.2; }
.bms-library-tile p { margin: 0; color: var(--muted); font-size: .86rem; }
.home-scroll-prompt { display: flex; align-items: center; gap: 10px; margin: 2px 0 8px; padding: 10px 12px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 22px rgba(16,24,40,.04); }
.home-scroll-prompt i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #ecfdf5; color: var(--brand); font-size: 1.35rem; }
.home-scroll-prompt strong, .home-scroll-prompt span { display: block; }
.home-scroll-prompt strong { font-size: .92rem; font-weight: 950; }
.home-scroll-prompt span { color: var(--muted); font-size: .8rem; font-weight: 750; }
.home-library-list { display: grid; gap: 10px; padding-bottom: 88px; }
.home-library-row { border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.05); overflow: hidden; }
.home-library-row a { display: grid; grid-template-columns: 82px minmax(0, 1fr) 18px; gap: 10px; align-items: center; padding: 9px; color: var(--ink); }
.row-cover { width: 82px; height: 86px; border-radius: 8px; background: linear-gradient(135deg, #0f766e, #4f46e5); background-size: cover; background-position: center; box-shadow: inset 0 -22px 30px rgba(15,23,42,.18); }
.row-info { min-width: 0; }
.row-info strong, .row-info span, .row-info small { display: block; }
.row-info strong { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: .94rem; font-weight: 950; line-height: 1.18; }
.row-info span { margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-info span, .row-info small { color: var(--muted); font-size: .78rem; font-weight: 750; }
.row-info div { display: flex; gap: 5px; flex-wrap: nowrap; margin-top: 7px; overflow: hidden; }
.row-info em { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: #f2f4f7; color: var(--muted); font-style: normal; font-size: .66rem; font-weight: 850; }
.home-library-row > a > i { color: var(--muted); }
.app-page-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 18px; border-radius: 8px; background: linear-gradient(135deg, #0f172a, #134e4a); color: #fff; box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.app-page-head h1 { margin: 0; font-size: clamp(1.5rem, 7vw, 2.4rem); font-weight: 950; }
.app-page-head p { margin: 6px 0 0; color: rgba(255,255,255,.76); }
.app-page-head .eyebrow { color: #99f6e4; }
.app-page-head > i { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.12); font-size: 1.65rem; flex: 0 0 auto; }
.checkout-shell { display: grid; gap: 14px; }
.checkout-card { padding: 18px; border-radius: 8px; background: #0f172a; color: #fff; box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.checkout-card h2 { margin: 0 0 14px; font-size: 1.1rem; font-weight: 900; }
.summary-line { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.12); }
.summary-line span { color: rgba(255,255,255,.68); }
.checkout-hero { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 18px; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #172033, #115e59 62%, #4f46e5); box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.checkout-hero h1 { margin: 0; font-size: clamp(1.55rem, 7vw, 2.5rem); font-weight: 950; }
.checkout-hero p { margin: 6px 0 0; color: rgba(255,255,255,.76); }
.checkout-hero .eyebrow { color: #99f6e4; }
.checkout-hero > i { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.12); font-size: 1.7rem; flex: 0 0 auto; }
.modern-checkout .checkout-card { display: grid; align-content: start; gap: 8px; background: linear-gradient(135deg, #0f172a, #134e4a); }
.modern-checkout .checkout-card h2 { margin: 0; font-size: 1.35rem; }
.modern-checkout .checkout-card p { margin: 0 0 8px; color: rgba(255,255,255,.76); font-weight: 700; }
.checkout-pay-panel { padding: 16px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.06); }
.coupon-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.price-box { display: grid; gap: 2px; margin-top: 14px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.price-box > div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 12px; background: #fff; border-top: 1px solid var(--line); }
.price-box > div:first-child { border-top: 0; }
.price-box span { color: var(--muted); font-weight: 750; }
.price-box strong { white-space: nowrap; }
.price-box .price-total { background: #f0fdfa; }
.price-box .price-total span, .price-box .price-total strong { color: var(--brand); font-weight: 950; }
.wallet-pay-card { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 13px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--line); }
.wallet-pay-card i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; background: #ecfdf5; color: var(--brand); font-size: 1.3rem; }
.wallet-pay-card span, .wallet-pay-card strong { display: block; }
.wallet-pay-card span { color: var(--muted); font-size: .86rem; font-weight: 750; }
.wallet-pay-card strong { font-size: 1.2rem; font-weight: 950; }
.wallet-warning { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; margin-top: 12px; padding: 12px; border-radius: 8px; background: #fff7ed; border: 1px solid #fed7aa; color: #7c2d12; }
.wallet-warning > i { font-size: 1.25rem; }
.wallet-warning strong, .wallet-warning span { display: block; }
.wallet-warning span { font-size: .86rem; }
.checkout-pay-panel .btn-brand:disabled { background: #98a2b3; border-color: #98a2b3; cursor: not-allowed; }
.wallet-offer-banner { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 8px; background: linear-gradient(135deg, #ecfdf5, #eef2ff); border: 1px solid var(--line); }
.wallet-offer-banner i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: var(--brand); font-size: 1.35rem; box-shadow: 0 8px 20px rgba(16,24,40,.06); }
.wallet-offer-banner strong, .wallet-offer-banner span { display: block; }
.wallet-offer-banner strong { font-weight: 950; }
.wallet-offer-banner span { color: var(--muted); font-size: .88rem; font-weight: 750; }
.recharge-input-wrap { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; overflow: hidden; }
.recharge-input-wrap span { text-align: center; color: var(--brand); font-weight: 950; }
.recharge-input-wrap .form-control { border: 0; border-left: 1px solid var(--line); border-radius: 0; min-height: 48px; font-weight: 900; }
.quick-amount-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.quick-amount-row button { min-height: 40px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-weight: 900; }
.quick-amount-row button:active { background: #ecfdf5; color: var(--brand); border-color: #99f6e4; }
.qr-print-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.library-print-qr { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.library-print-qr img { width: 160px; height: 160px; object-fit: contain; border: 1px solid var(--line); border-radius: 8px; padding: 8px; background: #fff; }
.library-print-qr strong, .library-print-qr span, .library-print-qr small { display: block; }
.library-print-qr span, .library-print-qr small { color: var(--muted); font-size: .86rem; }
.library-print-qr small { overflow-wrap: anywhere; }
.self-qr-video { width: 100%; max-height: 280px; object-fit: cover; border-radius: 8px; margin-top: 10px; background: #0f172a; }
.self-attendance-success { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; padding: 14px; border-radius: 8px; background: #ecfdf5; border: 1px solid #ccfbf1; color: var(--brand); }
.self-attendance-success i { font-size: 1.8rem; }
.self-attendance-success strong, .self-attendance-success span { display: block; }
.self-token-state { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 12px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--line); color: var(--muted); font-weight: 750; }
.self-token-state i { color: var(--brand); font-size: 1.2rem; }
.self-action-card { margin-top: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.self-action-card > span { display: block; margin-bottom: 9px; color: var(--muted); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.self-action-toggle { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 4px; border-radius: 8px; background: #f1f5f9; }
.self-action-toggle button { min-height: 46px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font-weight: 950; }
.self-action-toggle button i { margin-right: 5px; }
.self-action-toggle button.active { background: #fff; color: var(--brand); box-shadow: 0 8px 18px rgba(16,24,40,.08); }
@media print {
    .side-nav, .admin-topbar, .module-header, .panel:not(:first-of-type), .library-print-qr .btn { display: none !important; }
    .dashboard-body > form { display: block !important; }
    .dashboard-main { padding: 0 !important; }
    .library-print-qr { break-inside: avoid; box-shadow: none; }
}
.wallet-hero { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 20px; border-radius: 8px; background: linear-gradient(135deg, #134e4a, #4f46e5); color: #fff; box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.wallet-hero h1 { margin: 0; font-size: clamp(2rem, 10vw, 3.2rem); font-weight: 950; }
.wallet-hero p { margin: 6px 0 0; color: rgba(255,255,255,.76); }
.wallet-hero .eyebrow { color: #ccfbf1; }
.wallet-hero > i { font-size: 2.6rem; opacity: .82; }
.profile-hero { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 18px; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #172033, #115e59 62%, #4f46e5); box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.profile-hero h1 { margin: 0; font-size: clamp(1.6rem, 8vw, 2.7rem); font-weight: 950; }
.profile-hero p { margin: 6px 0 0; color: rgba(255,255,255,.76); }
.profile-hero .eyebrow { color: #99f6e4; }
.profile-hero > i { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.12); font-size: 1.75rem; flex: 0 0 auto; }
.profile-shell { display: grid; gap: 14px; }
.profile-summary, .profile-editor { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 16px; box-shadow: 0 10px 28px rgba(16,24,40,.05); }
.profile-summary { display: grid; justify-items: center; text-align: center; gap: 8px; }
.profile-avatar { width: 86px; height: 86px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #ecfdf5, #eef2ff); border: 1px solid var(--line); }
.profile-avatar i { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--brand); font-size: 2rem; box-shadow: 0 10px 24px rgba(16,24,40,.08); }
.profile-summary strong { font-size: 1.2rem; font-weight: 950; }
.profile-summary > span { color: var(--muted); font-weight: 750; }
.profile-shortcuts { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; }
.profile-shortcuts a { display: grid; place-items: center; gap: 4px; min-height: 72px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--line); color: var(--ink); font-size: .78rem; font-weight: 850; }
.profile-shortcuts i { color: var(--brand); font-size: 1.25rem; }
.profile-logout { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 8px; border-radius: 8px; background: #fff1f2; border: 1px solid #ffe4e6; color: #be123c; font-weight: 900; }
.profile-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.referral-input { font-weight: 900; letter-spacing: .04em; color: var(--brand); }
.success-card { min-height: 70vh; display: grid; place-items: center; align-content: center; gap: 12px; text-align: center; padding: 24px; }
.success-icon { width: 90px; height: 90px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(135deg, #0f766e, #4f46e5); font-size: 3rem; box-shadow: 0 18px 42px rgba(15,118,110,.25); }
.success-card h1 { margin: 0; font-size: clamp(1.8rem, 8vw, 3rem); font-weight: 950; }
.success-card p { max-width: 560px; color: var(--muted); }
.wallet-history-list { display: grid; gap: 10px; }
.wallet-history-item { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.wallet-history-item strong, .wallet-history-item span, .wallet-history-item small { display: block; }
.wallet-history-item span, .wallet-history-item small { color: var(--muted); font-size: .86rem; }
.wallet-amount { text-align: right; color: var(--brand); font-weight: 900; white-space: nowrap; }
.wallet-amount span { color: var(--muted); font-size: .78rem; font-weight: 750; }
.google-lead-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.google-lead-card { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.05); }
.google-lead-card label { display: flex; align-items: center; gap: 8px; padding: 10px 12px; margin: 0; color: var(--brand); font-weight: 900; border-bottom: 1px solid var(--line); background: #f8fafc; cursor: pointer; }
.google-lead-card input { width: 18px; height: 18px; accent-color: var(--brand); }
.lead-photo { min-height: 128px; background: linear-gradient(135deg, #0f766e, #4f46e5); background-size: cover; background-position: center; }
.lead-body { display: grid; gap: 5px; padding: 12px; }
.lead-body strong { font-size: 1rem; font-weight: 950; }
.lead-body span, .lead-body small { color: var(--muted); font-size: .86rem; font-weight: 750; }
.lead-body em { width: fit-content; padding: 4px 8px; border-radius: 999px; background: #ecfdf5; color: var(--brand); font-style: normal; font-size: .74rem; font-weight: 900; }
.google-saved-list { display: grid; gap: 10px; }
.google-saved-card { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 22px rgba(16,24,40,.04); }
.saved-cover { width: 86px; height: 76px; border-radius: 8px; background: linear-gradient(135deg, #0f766e, #4f46e5); background-size: cover; background-position: center; }
.google-saved-card strong, .google-saved-card span, .google-saved-card small { display: block; }
.google-saved-card span, .google-saved-card small { color: var(--muted); font-size: .84rem; }
.saved-actions { display: grid; gap: 6px; justify-items: stretch; }
@media (max-width: 575.98px) {
    .google-saved-card { grid-template-columns: 72px minmax(0, 1fr); }
    .saved-cover { width: 72px; height: 68px; }
    .saved-actions { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ticket-list { display: grid; gap: 14px; }
.booking-ticket { position: relative; display: grid; gap: 14px; padding: 16px; border-radius: 8px; background: #fff; border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.06); overflow: hidden; }
.booking-ticket::before, .booking-ticket::after { content: ""; position: absolute; top: 50%; width: 28px; height: 28px; border-radius: 50%; background: var(--page); border: 1px solid var(--line); transform: translateY(-50%); }
.booking-ticket::before { left: -15px; }
.booking-ticket::after { right: -15px; }
.ticket-status { display: inline-flex; width: fit-content; padding: 5px 9px; border-radius: 999px; background: #ecfdf5; color: var(--brand); font-size: .75rem; font-weight: 900; }
.ticket-main h2 { margin: 8px 0 4px; font-size: 1.25rem; font-weight: 950; }
.ticket-main p { color: var(--muted); margin-bottom: 12px; }
.ticket-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ticket-meta span { display: grid; padding: 9px; border-radius: 8px; background: #f8fafc; color: var(--ink); font-weight: 850; }
.ticket-meta strong { color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.ticket-cancel-note { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 9px 10px; border-radius: 8px; font-size: .82rem; font-weight: 850; }
.ticket-cancel-note.can { background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.ticket-cancel-note.closed { background: #f1f5f9; color: var(--muted); border: 1px solid var(--line); }
.ticket-renew-note { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 9px 10px; border-radius: 8px; font-size: .82rem; font-weight: 850; background: #eef2ff; color: #3730a3; border: 1px solid #c7d2fe; }
.ticket-renew-note.can { background: #ecfdf5; color: var(--brand); border-color: #bbf7d0; }
.ticket-qr { display: grid; place-items: center; gap: 6px; padding: 12px; border-radius: 8px; background: #f8fafc; }
.ticket-qr img { width: 150px; height: 150px; object-fit: contain; background: #fff; border-radius: 8px; padding: 6px; border: 1px solid var(--line); }
.ticket-qr small { color: var(--muted); font-weight: 850; }
.referral-card { margin-bottom: 14px; padding: 20px; border-radius: 8px; background: linear-gradient(135deg, #0f172a, #134e4a); color: #fff; box-shadow: 0 14px 34px rgba(16,24,40,.14); }
.referral-card .eyebrow { color: #99f6e4; }
.referral-card strong { display: block; margin: 4px 0 8px; font-size: clamp(2rem, 10vw, 3.2rem); font-weight: 950; letter-spacing: .08em; }
.referral-card p { color: rgba(255,255,255,.76); }
.referral-card .form-control { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.18); color: #fff; }
.search-appbar { position: sticky; top: 82px; z-index: 12; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin: -4px 0 10px; padding: 10px; border-radius: 8px; background: rgba(255,255,255,.96); border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(16,24,40,.08); backdrop-filter: blur(10px); }
.search-main-input { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border-radius: 8px; background: #f6f8fb; }
.search-main-input i { color: var(--brand); font-size: 1.1rem; }
.search-main-input input { width: 100%; border: 0; outline: 0; background: transparent; font-weight: 700; }
.filter-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(116px, max-content); gap: 8px; overflow-x: auto; margin-bottom: 14px; padding-bottom: 4px; }
.filter-input, .filter-chip { min-height: 40px; border-radius: 999px; border: 1px solid var(--line); background: #fff; padding: 0 14px; color: var(--ink); font-weight: 750; }
.filter-chip { display: inline-flex; align-items: center; gap: 6px; }
.search-results-list { display: grid; gap: 12px; }
.search-result-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.search-result-card a { display: grid; grid-template-columns: 108px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; color: var(--ink); }
.result-photo { width: 108px; height: 96px; border-radius: 8px; background: linear-gradient(135deg, #0f766e, #4f46e5); background-size: cover; background-position: center; }
.result-body h3 { margin: 0 0 4px; font-size: 1rem; font-weight: 900; }
.result-body p, .result-body span { display: block; margin: 0; color: var(--muted); font-size: .86rem; }
.result-body .facility-mini { margin: 8px 0 0; }
.result-body .facility-mini em { font-style: normal; padding: 4px 7px; border-radius: 999px; background: #f2f4f7; color: var(--muted); font-size: .72rem; font-weight: 800; }
.result-arrow { color: var(--muted); }
.detail-hero { position: relative; min-height: 420px; overflow: hidden; border-radius: 8px; background: #0f172a; box-shadow: 0 14px 34px rgba(16,24,40,.12); }
.detail-cover { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(15,118,110,.94), rgba(79,70,229,.9)), url("https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1200&q=80"); background-size: cover; background-position: center; }
.detail-cover.has-cover { background-size: cover; background-position: center; }
.detail-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,23,42,.1), rgba(15,23,42,.82)); }
.detail-photo-carousel { position: absolute; inset: 0; z-index: 1; }
.detail-photo-carousel .carousel-inner, .detail-photo-carousel .carousel-item, .detail-slide { height: 100%; }
.detail-slide { position: relative; background-size: cover; background-position: center; }
.detail-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,23,42,.08), rgba(15,23,42,.82)); }
.detail-slide-caption { position: absolute; right: 14px; bottom: 14px; z-index: 2; max-width: 46%; padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--ink); font-size: .78rem; font-weight: 850; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.detail-photo-carousel .carousel-control-prev, .detail-photo-carousel .carousel-control-next { width: 46px; z-index: 3; opacity: .9; }
.detail-overlay { position: absolute; z-index: 4; left: 18px; right: 18px; bottom: 18px; color: #fff; display: grid; gap: 6px; justify-items: start; }
.detail-overlay h1 { margin: 10px 0 6px; font-size: clamp(1.8rem, 8vw, 3.2rem); font-weight: 950; }
.detail-overlay p { margin: 0; color: rgba(255,255,255,.82); font-weight: 700; }
.detail-top-cta { margin-top: 8px; min-width: 180px; box-shadow: 0 12px 26px rgba(0,0,0,.18); }
.detail-info-card { display: grid; gap: 8px; margin: 10px 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.04); }
.detail-info-card div { display: flex; gap: 10px; align-items: flex-start; color: var(--muted); font-weight: 700; font-size: .94rem; }
.detail-info-card i { color: var(--brand); font-size: 1.15rem; margin-top: 2px; }
.detail-section { margin: 16px 0; }
.detail-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.detail-chip-row span { display: inline-flex; align-items: center; gap: 6px; padding: 9px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--ink); font-weight: 800; }
.detail-chip-row i { color: var(--brand); }
.detail-grid { display: grid; gap: 12px; }
.detail-list-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.detail-list-row:first-of-type { border-top: 0; }
.detail-list-row span { color: var(--muted); font-weight: 750; }
.pricing-list { display: grid; gap: 9px; }
.pricing-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; }
.pricing-row strong, .pricing-row span, .pricing-row em, .pricing-row b { display: block; }
.pricing-row span { color: var(--muted); font-size: .82rem; font-weight: 750; }
.pricing-row em { font-style: normal; color: var(--muted); font-size: .78rem; font-weight: 800; text-align: right; }
.pricing-row b { color: var(--brand); font-size: 1rem; white-space: nowrap; }
.compact-map-panel .panel-title { margin-bottom: 0; }
.compact-map-panel .collapse.show { margin-top: 12px; }
.compact-map { min-height: 220px; }
.sticky-book-bar { position: sticky; bottom: 74px; z-index: 10; margin: 14px 0; padding: 10px; border-radius: 8px; background: rgba(255,255,255,.94); border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(16,24,40,.12); backdrop-filter: blur(10px); }
.cash-pay-note { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: 8px; background: #fff7ed; border: 1px solid #fed7aa; color: #7c2d12; font-size: .86rem; font-weight: 750; }
.cash-pay-note i { margin-top: 1px; }
.ticket-renew-note.cash { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.cash-pending-qr { width: 150px; height: 150px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; border-radius: 8px; background: #fff7ed; border: 1px dashed #fb923c; color: #9a3412; padding: 12px; }
.cash-pending-qr i { font-size: 2rem; }
.cash-pending-qr span { font-size: .82rem; font-weight: 900; }
.cash-approval-list { display: grid; gap: 12px; }
.cash-approval-card { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.05); }
.cash-approval-card h3 { margin: 8px 0 4px; font-size: 1.08rem; font-weight: 950; }
.cash-approval-card p { color: var(--muted); margin-bottom: 12px; }
.cash-approval-side { display: grid; gap: 8px; align-content: start; padding: 12px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--line); }
.cash-approval-side strong { color: var(--brand); font-size: 1.25rem; font-weight: 950; }
.cash-approval-side small { color: var(--muted); font-weight: 850; }

/* Balanced type scale across student, admin, and owner panels. */
body { font-size: 15px; line-height: 1.48; }
h1, h2, h3, h4, h5, h6 { letter-spacing: 0; line-height: 1.16; }
.seat-hero h1,
.nearby-copy h1,
.nearby-hero h1,
.admin-hero h2,
.module-header h2,
.auth-visual h1,
.login-showcase h1,
.student-hero h1,
.home-greeting h1,
.app-page-head h1,
.checkout-hero h1,
.wallet-hero h1,
.profile-hero h1,
.success-card h1,
.detail-overlay h1 { font-size: clamp(1.35rem, 4vw, 2.25rem); }
.student-hero h1,
.login-showcase h1,
.auth-visual h1 { max-width: 680px; }
.student-hero-panel strong,
.stat-card strong,
.wallet-hero h1,
.referral-card strong { font-size: clamp(1.35rem, 3.2vw, 2.15rem); }
.admin-topbar h1 { font-size: clamp(1.12rem, 2.5vw, 1.45rem); }
.ticket-main h2,
.checkout-card h2,
.panel-title h3,
.section-heading h2,
.seat-filter-head h2 { font-size: clamp(1rem, 2.6vw, 1.22rem); }
.login-card-head h2 { font-size: clamp(1.25rem, 3vw, 1.5rem); }
.lead-body strong,
.nearby-info h3,
.result-body h3,
.bms-library-tile h3,
.row-info strong { font-size: .95rem; }
.table,
.form-control,
.form-select,
.btn,
.module-card span,
.meta { font-size: .92rem; }
@media (min-width: 768px) {
    .desktop-nav { display: flex; }
    .mobile-header-actions { display: none; }
    .app-main { padding: 24px 24px 40px; }
    .bottom-nav { display: none; }
    .search-shell { grid-template-columns: 1.2fr 1fr 1fr auto; align-items: end; }
    .library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .dashboard-body > form { display: grid; grid-template-columns: 280px minmax(0, 1fr); min-height: 100vh; }
    .side-nav { height: 100vh; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto; padding: 18px 12px; }
    .dashboard-main { padding: 24px; min-width: 0; }
    .nav-section { display: block; }
    .admin-hero { grid-template-columns: 1fr auto; padding: 24px; }
    .setup-panel { grid-template-columns: 1fr 1.1fr; align-items: center; }
    .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .full-span { grid-column: 1 / -1; }
    .admin-shell.sidebar-collapsed > form { grid-template-columns: 84px minmax(0, 1fr); }
    .admin-shell.sidebar-collapsed .side-nav { align-items: stretch; padding: 18px 10px; }
    .admin-shell.sidebar-collapsed .admin-brand span:last-child,
    .admin-shell.sidebar-collapsed .nav-section,
    .admin-shell.sidebar-collapsed .admin-nav a span { display: none; }
    .admin-shell.sidebar-collapsed .admin-nav a:not(.brand) { justify-content: center; padding: 12px; }
    .admin-shell.sidebar-collapsed .admin-brand { justify-content: center; padding: 8px 0 18px; }
    .admin-shell.sidebar-collapsed .brand-mark { width: 44px; height: 44px; }
    .module-header { grid-template-columns: 1fr auto; align-items: center; padding: 22px; }
    .module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nearby-finder { grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); align-items: stretch; }
    .nearby-copy { min-height: 360px; display: grid; align-content: center; padding: 28px; }
    .nearby-actions { grid-template-columns: 110px minmax(0, 1fr) 116px; }
    .nearby-actions .btn-brand { grid-column: auto; }
    .nearby-map-card { min-height: 360px; }
    .nearby-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .auth-wrap { grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr); }
    .auth-visual { display: block; min-height: 560px; }
    .login-screen { padding: 18px; overflow: hidden; }
    .login-brandbar { margin-bottom: 14px; }
    .login-layout { grid-template-columns: minmax(0, 1.16fr) minmax(380px, .84fr); min-height: calc(100vh - 72px); }
    .login-mobile-animation { display: none; }
    .login-showcase { min-height: auto; padding: 26px; }
    .login-showcase-panel { display: grid; }
    .login-panel { align-self: center; padding: 24px; }
    .student-hero { grid-template-columns: minmax(0, 1fr) 260px; align-items: end; padding: 28px; }
    .student-search { grid-template-columns: minmax(0, 1fr) 220px 54px 120px; align-items: center; }
    .banner-strip { grid-auto-columns: minmax(420px, 1fr); }
    .location-picker-inner { grid-template-columns: auto minmax(0, 360px) auto; align-items: center; }
    .bms-top-search { grid-template-columns: minmax(0, 1fr) auto; padding: 12px 14px; }
    .app-searchbar { grid-template-columns: auto minmax(0, 1fr) 180px 74px; }
    .app-searchbar input[type="submit"] { grid-column: auto; }
    .bms-discovery-search { grid-template-columns: auto minmax(0, 1fr) 104px; }
    .bms-discovery-search input[type="submit"] { grid-column: auto; }
    .bms-card-row { grid-auto-columns: 210px; }
    .bms-library-tile .poster { height: 290px; }
    .checkout-shell { grid-template-columns: 320px minmax(0, 1fr); align-items: start; }
    .profile-shell { grid-template-columns: 280px minmax(0, 1fr); align-items: start; }
    .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sticky-book-bar { bottom: 18px; }
    .detail-hero { min-height: 500px; }
    .detail-info-card { grid-template-columns: 240px minmax(0, 1fr); align-items: center; }
    .booking-ticket { grid-template-columns: minmax(0, 1fr) 190px; align-items: center; }
    .cash-approval-card { grid-template-columns: minmax(0, 1fr) 220px; align-items: start; }
}
