:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#302638;background:#f4f1f7;line-height:1.5}*{box-sizing:border-box}body{margin:0;padding:28px 16px}.shell{max-width:680px;margin:auto;background:#fff;border:1px solid #e2d9e9;border-radius:20px;overflow:hidden;box-shadow:0 16px 60px #3421420d}header{background:#332b3e;color:#fff;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}header img{width:138px;height:65px;object-fit:contain}header div{display:flex;flex-direction:column;text-align:right;font-size:12px}header strong{font-size:17px}section{padding:28px}h1{font-size:30px;line-height:1.2;margin:14px 0 18px}h2{font-size:23px;margin:10px 0}p{color:#6a5f75}.eyebrow{font-size:11px;letter-spacing:1px;font-weight:700;color:#75538c}form{display:grid;gap:16px;margin-top:22px}label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:#594267}input,textarea,button,a.primary{font:inherit;border-radius:9px}input,textarea{border:1px solid #cfc0dc;padding:12px;width:100%;font-size:17px;color:#302638;background:#fff}textarea{resize:vertical;min-height:90px}input[type=number]{font-size:28px;font-weight:700;width:150px}button,a.primary{padding:12px 16px;min-height:46px;border:1px solid #d9cce3;background:#fff;color:#58386d;cursor:pointer;text-align:center;text-decoration:none}button:disabled{opacity:.55;cursor:wait}.primary{background:#65457f!important;color:#fff!important;border-color:#65457f!important;font-weight:650}button.link{border:0;background:transparent;text-decoration:underline;padding-left:0}#status{margin:0 28px 22px;padding:12px;border-radius:8px}#status:empty{display:none}#status.error{background:#fff0f1;color:#9d263c}#status.success{background:#eaf5ed;color:#24693c}.dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f5f1f8;border-radius:12px;padding:16px;margin:20px 0}.dates span{font-size:12px;color:#6d5d79;display:block}.dates strong{font-size:16px}.family{padding:14px 16px;border-left:3px solid #7d5a95;background:#faf8fc}.family p{margin:4px 0;font-size:14px}.current{font-size:15px;padding:12px 0;color:#4a3659}.closed{padding:14px;background:#fff3dc;border-radius:9px;color:#765019}.email-box{margin:22px 0;padding:16px;background:#f8f5fb;border:1px solid #e4dbea;border-radius:10px}.email-box strong{overflow-wrap:anywhere}.email-box form{margin-top:12px}.email-box button.link{min-height:40px}.form-actions{display:flex;flex-wrap:wrap;gap:10px}footer{border-top:1px solid #eee7f3;padding:20px 28px;font-size:12px;color:#7b6f85}dialog{border:1px solid #d8c9e3;border-radius:16px;padding:28px;width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;color:#302638}dialog::backdrop{background:#20162980}.close{float:right;font-size:22px;width:44px;padding:4px}a.primary{display:block;margin:18px 0}dialog [data-close]:last-child{width:100%}[hidden]{display:none!important}:focus-visible{outline:3px solid #aa7cc8;outline-offset:2px}@media(max-width:480px){body{padding:10px 8px}.shell{border-radius:15px}header,section{padding:20px}header img{width:112px;height:54px}header strong{font-size:14px}h1{font-size:26px}.dates{grid-template-columns:1fr}.form-actions button{flex:1}#status{margin:0 20px 18px}footer{padding:18px 20px}}

.payment-state{padding:18px;background:#f7f3fa;border:1px solid #e2d9e9;border-radius:12px;margin:24px 0}.payment-state h2{font-size:18px}.payment-state small{font-size:11px;color:#7c6a88}.payment-state summary{min-height:44px;cursor:pointer;color:#62407a}

.zero-options{padding:18px 0;margin-top:24px;border-top:1px solid #e2d9e9}.zero-options h2{font-size:20px}.zero-options>button{display:block;width:100%;text-align:left;margin-top:10px;white-space:normal;line-height:1.45;min-height:54px}.zero-options>button[aria-pressed=true]{background:#f1e9f7;border:2px solid #65457f;font-weight:650}.zero-current{padding:14px;border-left:3px solid #65457f;background:#f6f0fa;color:#503960}#zero-confirm .form-actions{display:flex;flex-direction:row;gap:10px}#zero-confirm .form-actions button{flex:1}#zero-confirm p{overflow-wrap:anywhere}

#access-form{gap:12px}#access-form>label{margin-bottom:-6px}.document-entry{position:relative;min-width:0}.document-entry>input{padding-right:58px;min-height:52px}.document-entry>.document-visibility{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:8px;border:0;background:transparent;color:#65457f;border-radius:7px}.document-visibility:hover{background:#f1eaf7}.document-visibility .visibility-slash{display:none}.document-visibility[aria-pressed=true] .visibility-slash{display:block}.document-entry>input::-ms-reveal,.document-entry>input::-ms-clear{display:none}

.ticket-quantities{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px}.ticket-quantities label{padding:14px;border:1px solid #e2d9e9;background:#faf8fc;border-radius:10px;overflow-wrap:anywhere}.ticket-quantities input[type=number]{width:100%;max-width:160px}.ticket-payment{border-top:1px solid #d9cce3;padding:12px 0}.ticket-payment h3{font-size:17px;margin:6px 0;color:#65457f}.reservation-confirm{margin-top:24px;padding-top:18px;border-top:1px solid #e2d9e9}.reservation-confirm button{width:100%}.reservation-confirm p{font-size:14px}

.zero-options{padding:14px 0;margin-top:16px}.zero-options h2{font-size:15px;margin:0 0 10px}.zero-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.zero-buttons>button{min-width:0;min-height:52px;padding:9px 8px;text-align:center;line-height:1.3;font-size:13px;white-space:normal;overflow-wrap:anywhere}.zero-buttons>button[aria-pressed=true]{background:#f1e9f7;border:2px solid #65457f;font-weight:650}@media(max-width:480px){.zero-buttons{gap:6px}.zero-buttons>button{font-size:12px;padding:8px 5px;min-height:62px}}

.review-address{padding:16px;background:#f6f1fa;border:1px solid #e4d7ed;border-radius:9px;font-size:19px;font-weight:650;color:#5b3b72;overflow-wrap:anywhere}#email-confirm .form-actions{display:grid;grid-template-columns:1fr}
