.portal-header{min-height:83px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.portal-header .button{min-height:42px;padding:8px 13px}
.portal{max-width:960px;margin-block:44px 80px}
.portal h1{font-size:clamp(2.85rem,7vw,5.3rem);margin-block:5px 22px}
.portal h2{font-size:clamp(1.6rem,4vw,2.4rem);margin-bottom:12px}
.portal h3{font-size:1.4rem;margin-bottom:7px}
.portal-status{min-height:26px;margin-bottom:12px;color:var(--muted);font-weight:800}
.portal-status[data-error="true"]{color:#9b1d4e}
.portal-card{background:#fffdfa;border:2px solid var(--ink);border-radius:24px;padding:clamp(14px,3.6vw,29px);box-shadow:0 4px 0 var(--ink);margin-bottom:20px}
.portal-card.highlight{background:#fff0f6}
.portal-form{display:grid;gap:14px}
.portal-form label{font-size:.94rem;font-weight:900}
.portal-form label:not(.check-row){display:block}
.portal input:not([type="checkbox"]):not([type="radio"]),.portal select,.portal textarea{width:100%;min-height:44px;border:1px solid #ab9ab2;border-radius:10px;padding:8px 10px;background:white;display:block;font:inherit;margin-top:4px}
.portal textarea{min-height:112px;resize:vertical}
.portal .button:disabled{opacity:.55;transform:none;cursor:wait}
.portal-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.portal-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.portal fieldset{border:1px solid #d4c3d5;border-radius:14px;margin:0;padding:13px;min-width:0}
.portal legend{font-weight:950;padding-inline:6px}
.check-row,.pay-option{display:flex;align-items:flex-start;gap:8px}
.portal input[type="checkbox"],.portal input[type="radio"]{accent-color:var(--rose);margin-top:5px;min-width:16px;min-height:16px}
.pay-option{padding:9px 8px;margin:3px 0;border-radius:9px}
.pay-option:hover{background:#f9e8f2}
.portal-line{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-block:8px;border-bottom:1px solid var(--line)}
.portal-line strong{white-space:nowrap}
.portal a.text-link{text-decoration:underline;text-underline-offset:3px;color:var(--ocean)}
.portal details{padding-block:6px}
.portal summary{cursor:pointer;font-weight:850}
.policy-text{white-space:pre-wrap;padding-block:6px;font-size:.91rem}
.ticket-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px;margin-block:14px}
.ticket-qr{display:grid;justify-items:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:12px;text-align:center}
.ticket-qr svg{width:142px;height:142px}
.ticket-qr code{font-size:.72rem;overflow-wrap:anywhere}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-block:12px}
.admin-tabs .button[aria-pressed="true"]{background:var(--mint)}
.admin-order{padding-block:12px;border-bottom:1px solid var(--line)}
.admin-order .portal-actions{margin-top:7px}
.admin-order input{max-width:260px}
.admin-order code{overflow-wrap:anywhere}
.mfa-qr{width:174px;height:174px;border:1px solid var(--line);background:white}
@media(max-width:620px){.portal{margin-block:28px 50px}.portal-row{grid-template-columns:1fr}.portal-header .button{font-size:.76rem;min-height:36px}.portal-header .brand small{letter-spacing:.06em}}
