/* Shared visual design for the auditorium overview and centre portal. */
body.centre-portal { --ink:#182d36; --muted:#60747c; --teal:#175d61; --orange:#a55b20; --line:#dce6e5; background:radial-gradient(ellipse at 0 0,#e1efed,transparent 48%),#f5f7f4; }
.centre-portal .wrap { max-width:1160px; padding:30px 24px 40px; }
.portal-masthead { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:24px; }
.portal-brand { display:flex; align-items:center; gap:12px; font-weight:800; letter-spacing:1.5px; }
.portal-monogram { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:#173e43; color:#f5d49c; font-size:21px; }
.portal-brand small { display:block; font-size:10px; letter-spacing:2px; color:var(--muted); font-weight:600; }
.portal-tag { font-size:12px; color:#52696d; border:1px solid #ccdcd7; border-radius:30px; padding:7px 13px; }
.centre-portal .hero { padding:46px 44px 68px; border-radius:26px; background:radial-gradient(ellipse at 95% 0,#337e75 0,transparent 60%),linear-gradient(120deg,#102f37,#1d5555); box-shadow:0 18px 40px #183d3912; }
.centre-portal .hero:before { background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px); background-size:48px 48px; opacity:1; }
.centre-portal .hero:after { content:''; position:absolute; width:300px; height:300px; right:-75px; bottom:-165px; border:1px solid #d8bb7840; border-radius:50%; box-shadow:0 0 0 35px #d8bb7810,0 0 0 70px #d8bb7808; pointer-events:none; }
.centre-portal .kicker { padding:0; border:0; border-radius:0; color:#f1d49d; font-size:11px; letter-spacing:2px; }
.centre-portal h1 { max-width:680px; font-size:clamp(30px,4.5vw,48px); line-height:1.12; letter-spacing:-1.5px; margin:20px 0 16px; }
.centre-portal .hero p { max-width:530px; font-size:16px; line-height:1.7; color:#d5e8e5; }
.centre-portal .toolbar { position:relative; margin:-30px 24px 30px; padding:24px; border-radius:18px; box-shadow:0 12px 32px #183d3910; gap:16px; }
.portal-search-heading { flex-basis:100%; }
.portal-search-heading label { display:block; font-size:17px; font-weight:750; }
.portal-search-heading span { display:block; color:var(--muted); font-size:12px; margin-top:4px; }
.centre-portal .toolbar form { flex-basis:100%; flex-wrap:wrap; }
.centre-portal .toolbar input[type=search] { flex:1 1 220px; min-height:50px; padding:13px 16px; background:#f7faf9; border-color:#c9dcd6; font-size:16px; border-radius:10px; }
.centre-portal .btn { background:#175d61; border-radius:10px; padding:12px 22px; justify-content:center; min-height:46px; transition:background .15s; }
.centre-portal .btn:hover { background:#103f43; }
.centre-portal .btn.ghost { background:#f4f7f5; color:#365c60; }
.centre-portal :is(a,button,input):focus-visible { outline:3px solid #b67827; outline-offset:3px; }
.centre-portal .legend { margin:0; gap:16px; }
.centre-portal .legend span { font-size:11px; font-weight:600; }
.centre-portal .wrap>h2 { font-size:23px; letter-spacing:-.5px; margin:30px 0 8px; }
.centre-portal .wrap>p { color:var(--muted); }
.centre-portal .lookup-card { padding:28px; margin:20px 0 32px; border-radius:20px; box-shadow:0 8px 30px #193d3810; border-top:4px solid #c5a368; }
.centre-portal .lookup-card h2 { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:23px; line-height:1.4; }
.centre-portal .pill { font-size:10px; padding:6px 12px; letter-spacing:.6px; }
.centre-portal .lookup-allotted { margin:22px 0 16px; padding:24px; border:0; border-radius:14px; background:linear-gradient(115deg,#154b50,#257066); }
.centre-portal .lookup-allotted-number { font-size:60px; color:#ffe0a9; }
.centre-portal .lookup-allotted-label { font-size:20px; }
.centre-portal .lookup-locations { gap:12px; }
.centre-portal .lookup-locations li { flex:1 1 220px; padding:16px 18px; border-radius:12px; background:#f1f7f5; border-color:#d4e5de; font-weight:650; font-size:17px; }
.centre-portal .lookup-locations strong { margin-bottom:6px; font-size:10px; letter-spacing:1px; text-transform:uppercase; }
.centre-portal .lookup-card>p { color:var(--muted); font-size:13px; }
.centre-portal .lookup-facts { padding:22px 0; margin:0; gap:20px; border-bottom:1px solid var(--line); }
.centre-portal .lookup-facts dt { font-size:11px; }
.centre-portal .lookup-facts dd { font-size:14px; }
.centre-portal .lookup-card h3 { font-size:16px; margin:22px 0 14px; }
.centre-portal .lookup-counts { padding:0; background:transparent; gap:10px; }
.centre-portal .lookup-counts span { padding:16px; background:#f4f7f5; border:1px solid #e3ebe5; border-radius:12px; font-size:12px; color:#536b6d; }
.centre-portal .lookup-counts b { color:#193e42; font-size:28px; margin-bottom:4px; }
.centre-portal .lookup-counts span:last-child { background:#fff7e9; border-color:#eedfc3; color:#79591f; }
.centre-portal .section-head { margin:24px 0 16px; }
.centre-portal .section-head h2 { white-space:normal; font-size:11px; letter-spacing:1.5px; }
.centre-portal .grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:12px; }
@media(max-width:1000px) {
 .centre-portal .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .centre-portal .grid { grid-template-columns:minmax(0,1fr); }
}
.centre-portal .tbl { border-radius:16px; box-shadow:0 6px 20px #193d3808; }
.centre-portal .tbl.is-match { box-shadow:0 0 0 1px #b9d4cd,0 6px 20px #193d3808; }
.centre-portal .tbl-head { padding:18px 20px; background:#f8faf8; }
.centre-portal .tbl-name { font-size:18px; }
.centre-portal .seats { padding:20px; gap:9px; }
.centre-portal .seat { width:40px; height:40px; border-radius:10px; font-size:14px; flex-shrink:0; }
.centre-portal .centers { padding:0 20px 20px; }
.centre-portal .c-row { padding:12px 0; }
.centre-portal .c-name { font-size:13px; }
.centre-portal .tbl .c-name { min-width:0; font-size:15px; line-height:1.4; }
.centre-portal .tbl .c-meta { font-size:13px; line-height:1.4; }
.centre-portal .tbl .c-row { padding:6px 0; }
.centre-portal .tbl .centers { padding-bottom:12px; }
.centre-portal .theatre { border-radius:18px; padding:22px; box-shadow:0 6px 20px #193d3808; }
.centre-portal .t-row { padding:14px; margin-bottom:12px; background:#f5f9f6; border:1px solid #dce9e1; border-radius:12px; }
.centre-portal .t-row.is-match { box-shadow:none; }
.centre-portal .t-letter { width:40px; height:40px; border-radius:10px; font-size:17px; }
.centre-portal .t-people-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.portal-welcome { text-align:center; padding:30px 20px 14px; }
.portal-welcome h2 { font-size:25px; letter-spacing:-.5px; margin:0 0 8px; }
.portal-welcome>p { color:var(--muted); margin:0 auto 26px; max-width:490px; }
.portal-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; text-align:left; }
.portal-step { padding:24px; border:1px solid #dfe8e0; border-radius:16px; background:#ffffffc9; }
.portal-step>b { display:grid; place-items:center; width:32px; height:32px; background:#e6f0e9; border-radius:10px; font-size:12px; color:#326557; margin-bottom:16px; }
.portal-step h3 { font-size:15px; margin:0 0 6px; }
.portal-step p { font-size:13px; line-height:1.7; color:var(--muted); margin:0; }
.centre-portal .foot { padding-top:22px; margin-top:32px; font-size:11px; }
@media(max-width:600px) {
 .centre-portal .wrap { padding:18px 14px 30px; }
 .portal-masthead { margin-bottom:18px; }
 .portal-tag { font-size:10px; padding:6px 9px; }
 .centre-portal .hero { padding:30px 24px 56px; border-radius:20px; }
 .centre-portal h1 { letter-spacing:-.8px; }
 .centre-portal .toolbar { margin:-25px 8px 24px; padding:18px; }
 .centre-portal .toolbar input[type=search] { flex-basis:100%; }
 .centre-portal .toolbar .btn { flex:1; }
 .centre-portal .lookup-card { padding:18px; }
 .centre-portal .lookup-card h2 { font-size:20px; }
 .centre-portal .lookup-allotted { padding:20px; gap:14px; }
 .centre-portal .lookup-allotted-number { font-size:50px; }
 .centre-portal .lookup-allotted-label { font-size:17px; }
 .centre-portal .lookup-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .portal-steps { grid-template-columns:1fr; }
 .portal-welcome { padding:16px 0; }
 .portal-step { padding:20px; }
 .centre-portal .theatre { padding:12px; }
 .centre-portal .t-row { padding:10px 6px; gap:8px; }
}

/* Overview statistics sit between the hero and search panel. */
.auditorium-overview .stats { position:relative; margin:-30px 24px 24px; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.auditorium-overview .stat { padding:20px 16px; border:1px solid #dce6e5; border-radius:16px; box-shadow:0 8px 24px #183d3910; }
.auditorium-overview .stat b { font-size:28px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.auditorium-overview .stat span { font-size:10px; margin-top:8px; line-height:1.5; }
.auditorium-overview .toolbar { margin:0 24px 30px; }
@media(max-width:900px) { .auditorium-overview .stats { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) {
 .auditorium-overview .stats { margin:-25px 8px 18px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .auditorium-overview .stat { padding:16px; }
 .auditorium-overview .toolbar { margin:0 8px 24px; }
}
/* Guest portal: seats and the offline ticket take priority. */
.centre-portal:not(.auditorium-overview) .toolbar .legend { display:none; }
.centre-portal:not(.auditorium-overview) .lookup-card { padding:20px; }
.centre-portal:not(.auditorium-overview) .lookup-locations { margin:14px 0; }
.centre-portal:not(.auditorium-overview) .lookup-locations li { font-size:20px; }
.centre-portal:not(.auditorium-overview) .lookup-allotted { padding:12px 16px; margin:12px 0; gap:12px; }
.centre-portal:not(.auditorium-overview) .lookup-allotted-number { font-size:34px; }
.centre-portal:not(.auditorium-overview) .lookup-allotted-label { font-size:16px; }
.centre-portal:not(.auditorium-overview) .lookup-card>form .btn { width:100%; font-size:16px; }
.guest-details { border-top:1px solid #dce7ea; margin-top:16px; padding-top:8px; }
.guest-details summary { cursor:pointer; color:#175d61; font-weight:700; padding:12px 0; }
.guest-details summary:focus-visible { outline:3px solid #b67827; outline-offset:3px; }
.guest-pending { margin-top:16px; padding:16px; background:#fff6e5; border:1px solid #eed7a8; border-radius:12px; }
.guest-pending p { font-size:14px; line-height:1.6; }
.guest-event-help { margin:24px 0; padding:22px; background:white; border:1px solid #dce7ea; border-radius:16px; scroll-margin-top:20px; }
.guest-event-help h2 { margin-top:0; font-size:21px; }
.guest-event-help p { line-height:1.6; }
.guest-help-actions { display:flex; flex-wrap:wrap; gap:10px; }
.guest-help-note { color:#60747c; font-size:13px; }
@media(max-width:600px) {
 .centre-portal:not(.auditorium-overview) .portal-masthead { margin-bottom:10px; }
 .centre-portal:not(.auditorium-overview) .portal-tag { display:none; }
 .centre-portal:not(.auditorium-overview) .hero { padding:18px; border-radius:14px; }
 .centre-portal:not(.auditorium-overview) h1 { font-size:27px; margin:10px 0; letter-spacing:-.6px; }
 .centre-portal:not(.auditorium-overview) .hero p { font-size:14px; line-height:1.5; }
 .centre-portal:not(.auditorium-overview) .toolbar { margin:12px 0 18px; padding:14px; gap:10px; }
 .centre-portal:not(.auditorium-overview) .portal-search-heading span { display:none; }
 .centre-portal:not(.auditorium-overview) .lookup-card { padding:16px; margin:14px 0; }
 .guest-help-actions { flex-direction:column; }
 .guest-event-help { padding:16px; }
}

/* Award show photo gallery placeholder. */
.guest-photos { border-top:3px solid #b67827; }
.guest-photos-status { display:inline-block; margin-bottom:14px; padding:6px 12px; border-radius:20px; background:#fff3dd; color:#795014; font-size:12px; font-weight:700; }
.guest-photos .guest-help-note { margin-bottom:0; }
