.customer-portal{max-width:1540px;margin:auto;padding:36px 4% 52px;color:var(--foreground,#202d32)}.portal-actions,.portal-tabs{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.portal-footer a{color:inherit}.portal-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:24px}.portal-card{border:1px solid #dce1df;border-radius:18px;background:#fff;padding:28px;margin-bottom:24px;box-shadow:0 4px 20px #152e3110;overflow-wrap:anywhere}.portal-card h2{font-size:1.5rem;margin:0 0 14px}.portal-card p{line-height:1.65}.portal-form{display:grid;gap:18px;max-width:600px}.portal-form label{display:grid;gap:7px;font-weight:600}.portal-form input:not([type=checkbox]){width:100%;border:1px solid #8b9a9c;border-radius:8px;padding:12px;background:white;color:#182c31;font:inherit;min-height:46px}.portal-form fieldset{border:1px solid #dce1df;border-radius:8px;padding:16px}.portal-check{display:flex!important;align-items:flex-start;gap:10px!important;font-weight:400!important;line-height:1.5;margin:10px 0}.portal-check input{width:18px;height:18px;flex-shrink:0;margin-top:3px}.portal-muted{color:#52656a;font-size:.92rem}.portal-tabs{margin:0 0 24px;gap:8px}.portal-tabs button{border:1px solid #9bacae;background:white;color:#23444b;padding:12px 18px;border-radius:24px;font:inherit;cursor:pointer}.portal-tabs button[aria-pressed=true]{background:#23444b;color:white}.portal-actions{margin:20px 0}.portal-tickets{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin:24px 0}.portal-ticket{border:1px dashed #9daeb1;border-radius:12px;padding:20px;text-align:center;break-inside:avoid}.portal-ticket svg{margin:12px auto}.portal-refund{padding:20px;border:2px solid #ba6b35;border-radius:12px;background:#fff9f3}.portal-footer{display:flex;gap:24px;padding:28px 0;flex-wrap:wrap}.portal-card details{margin:24px 0;border-top:1px solid #dce1df;padding-top:18px}.portal-card summary{cursor:pointer;font-weight:600}.customer-portal :focus-visible{outline:3px solid #bc662b;outline-offset:3px}.customer-portal button:disabled{opacity:.55;cursor:wait}.customer-portal a.primary-button,.customer-portal a.secondary-button{display:inline-block;text-decoration:none}.customer-portal .primary-button,.customer-portal .secondary-button{min-height:44px}.portal-ticket h3{margin:0}.portal-ticket .portal-check{text-align:left}@media (max-width:600px){.customer-portal{padding:25px 4%}.portal-card{padding:20px}.portal-actions>*{width:100%;text-align:center}}@media print{.no-print,.portal-footer,.portal-header{display:none!important}.customer-portal{padding:0;max-width:none}.portal-card{box-shadow:none;border:0;padding:0}.customer-portal .season-heading{padding:0}.customer-portal .season-heading h1{font-size:24px}.portal-tickets{grid-template-columns:repeat(2,1fr)}.portal-ticket{break-inside:avoid}.portal-ticket svg{display:block!important}}.terminal-operations>article{border-top:1px solid #dce1df;padding:22px 0}.portal-ticket p{margin:8px 0;line-height:1.4}.portal-ticket h3{font-size:1.2rem;line-height:1.35}.portal-ticket h4{margin:12px 0 6px;font-size:1rem}.portal-ticket-brand{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.portal-ticket-test{font-size:.7rem;font-weight:700}@media print{.theatre-app:has(.portal-booking-detail),body:has(.portal-booking-detail){background:#fff!important;color:#000!important;position:static!important}.portal-booking-detail,.portal-booking-detail *{visibility:visible!important;color:#000!important;background-color:#fff!important;text-shadow:none!important;box-shadow:none!important}.portal-booking-detail{position:absolute!important;inset:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important}.portal-booking-detail .no-print,.portal-booking-detail>:not(.portal-tickets){display:none!important}.portal-booking-detail .portal-tickets{display:block!important;margin:0!important}.portal-booking-detail .portal-ticket{break-inside:avoid!important;page-break-inside:avoid!important;border:1px solid #000;border-radius:0;margin:0 0 14pt!important;padding:12pt!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.portal-booking-detail .portal-ticket p{margin:4pt 0!important;font-size:10pt;line-height:1.25}.portal-booking-detail .portal-ticket h3{font-size:14pt;line-height:1.2;margin:2pt 0!important}.portal-booking-detail .portal-ticket h4{font-size:11pt;margin:6pt 0!important}.portal-booking-detail .portal-ticket .portal-muted,.portal-booking-detail .portal-ticket .portal-ticket-brand{font-size:8pt}.portal-booking-detail .portal-ticket .portal-ticket-test{font-size:7pt}.portal-booking-detail .portal-ticket svg{display:block!important;width:100pt!important;height:100pt!important;margin:6pt auto!important;background:#fff!important}}.terminal-operations h3{font-size:1.15rem;margin-bottom:10px}.terminal-operations button{border:1px solid #8b9a9c;border-radius:8px;background:#fff;color:#23444b;padding:10px 16px;min-height:44px;margin:8px 12px 8px 0;font:inherit;font-weight:600;cursor:pointer}.terminal-operations output{display:block;margin:10px 0;color:#23444b;font-weight:600}.terminal-operations fieldset{border:1px solid #dce1df;border-radius:12px;padding:20px;margin-top:20px}.terminal-operations legend{font-weight:700;padding:0 8px}.terminal-operations label{display:block;margin:14px 0;line-height:1.5}.terminal-operations input:not([type=checkbox]),.terminal-operations select{display:block;width:100%;max-width:640px;margin-top:6px;border:1px solid #8b9a9c;border-radius:8px;padding:12px;background:#fff;color:#182c31;font:inherit;min-height:46px}.terminal-operations input[type=checkbox]{margin-right:10px;width:18px;height:18px}