.three-de-reservation-portal {
    --rp-navy: #123b5d;
    --rp-navy-dark: #0a263d;
    --rp-teal: #159a9c;
    --rp-orange: #f15a24;
    --rp-orange-dark: #da4613;
    --rp-sand: #fff8ed;
    --rp-ink: #172a3a;
    --rp-muted: #647481;
    --rp-line: rgba(23,42,58,.13);
    --rp-green: #16704d;
    --rp-red: #9a2d25;
    width: min(1180px, calc(100% - 24px));
    margin: 10px auto 28px;
    color: var(--rp-ink);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.45;
}
.three-de-reservation-portal *, .three-de-reservation-portal *::before, .three-de-reservation-portal *::after { box-sizing: border-box; }
.three-de-reservation-portal [hidden] { display: none !important; }

.three-de-rp-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0,1fr) 160px;
    gap: 12px 24px;
    padding: 19px 27px 15px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(120deg, var(--rp-navy-dark), var(--rp-navy) 58%, #187b89);
    box-shadow: 0 18px 46px rgba(18,59,93,.18);
}
.three-de-rp-hero::after { content:""; position:absolute; width:280px; height:280px; right:-100px; top:-160px; border:1px solid rgba(255,255,255,.13); border-radius:50%; }
.three-de-rp-hero-copy, .three-de-rp-fee-badge, .three-de-rp-progress { position:relative; z-index:1; }
.three-de-rp-eyebrow { display:block; margin-bottom:4px; color:#ff9b71; font-size:9px; font-weight:900; letter-spacing:.14em; }
.three-de-rp-hero h1 { margin:0 0 4px !important; color:#fff !important; font-size:clamp(26px,3.5vw,36px) !important; line-height:1.05 !important; letter-spacing:-.035em; }
.three-de-rp-hero p { max-width:720px; margin:0 !important; color:rgba(255,255,255,.83); font-size:12px; }
.three-de-rp-trust { display:flex; flex-wrap:wrap; gap:5px 15px; margin-top:8px; color:rgba(255,255,255,.88); font-size:10px; }
.three-de-rp-fee-badge { align-self:start; padding:10px 13px; border-radius:12px; color:var(--rp-ink); text-align:center; background:#fff; box-shadow:0 10px 28px rgba(0,0,0,.15); }
.three-de-rp-fee-badge small { display:block; color:var(--rp-muted); font-size:9px; font-weight:900; letter-spacing:.09em; }
.three-de-rp-fee-badge strong { display:block; margin:0; color:var(--rp-navy); font-size:29px; line-height:1.05; }
.three-de-rp-fee-badge span { color:var(--rp-teal); font-size:10px; font-weight:850; }

.three-de-rp-progress { display:grid; grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:2px 0 0 !important; padding:0 !important; list-style:none !important; }
.three-de-rp-progress li { position:relative; display:flex; align-items:center; gap:7px; min-width:0; color:rgba(255,255,255,.47); font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.three-de-rp-progress li::before { content:""; position:absolute; z-index:-1; top:50%; right:9px; left:28px; height:1px; background:rgba(255,255,255,.2); }
.three-de-rp-progress li:last-child::before { display:none; }
.three-de-rp-progress li>span { display:inline-flex; align-items:center; justify-content:center; flex:0 0 22px; width:22px; height:22px; padding:0; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:inherit; line-height:1; background:#235b73; }
.three-de-rp-progress li strong { position:relative; z-index:1; padding-right:9px; color:inherit; background:#17465f; }
.three-de-rp-progress li.is-current { color:#fff; }
.three-de-rp-progress li.is-current>span { border-color:var(--rp-orange); background:var(--rp-orange); box-shadow:0 0 0 4px rgba(241,90,36,.16); }
.three-de-rp-progress li.is-complete { color:#c4eddd; }
.three-de-rp-progress li.is-complete>span { border-color:#44c28e; background:#16805a; font-size:0; }
.three-de-rp-progress li.is-complete>span::after { content:"✓"; font-size:11px; }

.three-de-rp-notice { display:flex; gap:9px; align-items:center; margin:10px 0; padding:9px 12px; border:1px solid rgba(21,154,156,.22); border-radius:11px; background:rgba(21,154,156,.05); }
.three-de-rp-notice>span { display:grid; place-items:center; flex:0 0 21px; width:21px; height:21px; border-radius:50%; color:#fff; background:var(--rp-navy); font-size:11px; font-weight:900; }
.three-de-rp-notice>div { display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 6px; }
.three-de-rp-notice strong { font-size:11px; }
.three-de-rp-notice p { margin:0 !important; color:var(--rp-muted); font-size:10px; }
.three-de-rp-cancelled { display:flex; align-items:center; gap:10px; margin:16px 0; padding:13px 16px; border:1px solid #e7b77b; border-radius:12px; color:#7f4a18; background:#fff8ec; }
.three-de-rp-cancelled strong { white-space:nowrap; }
.three-de-rp-cancelled span { font-size:12px; }

.three-de-rp-form { margin-top:10px; }
.three-de-rp-card, .three-de-rp-summary-card, .three-de-rp-help { border:1px solid var(--rp-line); border-radius:17px; background:#fff; box-shadow:0 9px 28px rgba(18,59,93,.06); }
.three-de-rp-card { margin:0 0 12px; padding:18px; }
.three-de-rp-verify { padding:17px 20px; }
.three-de-rp-card-heading { margin-bottom:11px; }
.three-de-rp-card-heading>span, .three-de-rp-certificate-summary span { display:block; margin-bottom:3px; color:var(--rp-orange); font-size:9px; font-weight:900; letter-spacing:.13em; }
.three-de-rp-card-heading h2 { margin:0 0 2px !important; color:var(--rp-ink) !important; font-size:19px !important; line-height:1.2 !important; }
.three-de-rp-card-heading p { margin:0 !important; color:var(--rp-muted); font-size:11px; }
.three-de-rp-code-row { display:grid; grid-template-columns:minmax(0,1fr) 210px; align-items:end; gap:11px; }
.three-de-rp-code-row label { display:grid; gap:6px; font-size:12px; font-weight:800; }

.three-de-rp-code-row input, .three-de-rp-field input, .three-de-rp-field select, .three-de-rp-field textarea {
    display:block;
    width:100% !important;
    min-height:40px;
    margin:0 !important;
    padding:10px 12px !important;
    border:1px solid #c9d6df !important;
    border-radius:9px !important;
    outline:0;
    color:var(--rp-ink) !important;
    background:#fff !important;
    box-shadow:none !important;
    font:500 14px/1.4 inherit !important;
    transition:border-color .18s, box-shadow .18s;
}
.three-de-rp-code-row input { min-height:44px; padding-left:14px !important; font-family:ui-monospace, SFMono-Regular, Menlo, monospace !important; font-size:15px !important; font-weight:800 !important; letter-spacing:.04em; text-transform:uppercase; }
.three-de-rp-field textarea { min-height:72px; resize:vertical; }
.three-de-rp-field input:focus, .three-de-rp-field select:focus, .three-de-rp-field textarea:focus, .three-de-rp-code-row input:focus { border-color:var(--rp-teal) !important; box-shadow:0 0 0 3px rgba(21,154,156,.13) !important; }
.three-de-rp-field input[readonly], .three-de-rp-field input:disabled { color:#5e7485 !important; background:#f2f6f8 !important; }
.three-de-rp-field { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:12px; font-weight:800; }
.three-de-rp-field.full { grid-column:1/-1; }
.three-de-rp-field b, .three-de-rp-check b { margin-left:3px; color:var(--rp-orange); }
.three-de-rp-field small { color:var(--rp-muted); font-size:10px; font-weight:500; line-height:1.35; }

.three-de-rp-code-row button, .three-de-rp-submit, .three-de-rp-payment-return>button { display:inline-flex !important; align-items:center; justify-content:center; gap:10px; min-height:44px; margin:0 !important; padding:10px 17px !important; border:0 !important; border-radius:9px !important; color:#fff !important; background:linear-gradient(135deg,var(--rp-orange),#f47a26) !important; box-shadow:0 9px 21px rgba(241,90,36,.23) !important; font:850 12px/1.2 inherit !important; text-decoration:none !important; cursor:pointer; transition:transform .16s,box-shadow .16s,opacity .16s; }
.three-de-rp-code-row button:hover, .three-de-rp-submit:hover, .three-de-rp-payment-return>button:hover { transform:translateY(-1px); box-shadow:0 13px 25px rgba(241,90,36,.3) !important; }
.three-de-rp-code-row button:disabled, .three-de-rp-submit:disabled, .three-de-rp-payment-return>button:disabled { opacity:.6; cursor:wait; transform:none; }
.three-de-rp-code-row i, .three-de-rp-submit i { font-style:normal; font-size:17px; }
.three-de-rp-status { margin-top:13px; padding:11px 13px; border-radius:9px; font-size:12px; font-weight:700; }
.three-de-rp-status[data-type="info"] { color:#17546d; background:#e8f4f8; }
.three-de-rp-status[data-type="success"] { color:#0b633f; background:#e5f6ed; }
.three-de-rp-status[data-type="error"] { color:#8b312b; background:#fde9e6; }

.three-de-rp-details { margin-top:10px; }
.three-de-rp-certificate-summary { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:10px; padding:9px 13px; border:1px solid #c9e6d8; border-radius:10px; background:#eef9f3; }
.three-de-rp-certificate-summary span { color:var(--rp-green); }
.three-de-rp-certificate-summary strong { color:#0d5439; font-size:16px; }
.three-de-rp-certificate-summary button { border:0; color:#526d7e; background:transparent; font:750 11px/1.2 inherit; text-decoration:underline; cursor:pointer; }
.three-de-rp-form-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:14px; align-items:start; }
.three-de-rp-form-main { min-width:0; }
.three-de-rp-section-title { display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; }
.three-de-rp-section-title>span { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:9px; color:var(--rp-navy); background:rgba(21,154,156,.14); font-size:10px; font-weight:900; }
.three-de-rp-section-title h2 { margin:0 0 2px !important; color:var(--rp-ink) !important; font-size:18px !important; line-height:1.2 !important; }
.three-de-rp-section-title p { margin:0 !important; color:var(--rp-muted); font-size:10px; }
.three-de-rp-grid { display:grid; gap:10px; margin-bottom:10px; }
.three-de-rp-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.three-de-rp-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.three-de-rp-date-panel { margin:2px 0 10px; padding:11px; border:1px solid var(--rp-line); border-radius:10px; background:rgba(21,154,156,.04); }
.three-de-rp-date-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.three-de-rp-date-heading strong { font-size:12px; }
.three-de-rp-date-heading span { padding:4px 7px; border-radius:999px; color:var(--rp-navy); background:#fff; font-size:9px; font-weight:850; }
.three-de-rp-date-panel .three-de-rp-grid { margin-bottom:0; }
.three-de-rp-rule-status { margin-top:10px; padding:9px 11px; border-radius:8px; font-size:11px; }
.three-de-rp-rule-status[data-type="success"] { border:1px solid #c7e8d7; color:var(--rp-green); background:#edf9f3; }
.three-de-rp-rule-status[data-type="warning"] { border:1px solid #f1d0a6; color:#9a5819; background:#fff7eb; }
.three-de-rp-rule-status[data-type="error"] { border:1px solid #efc4bf; color:var(--rp-red); background:#fff0ee; }
.three-de-rp-occupancy-note { align-self:end; min-height:67px; padding:10px 11px; border:1px solid var(--rp-line); border-radius:9px; background:#f8fafb; }
.three-de-rp-occupancy-note strong, .three-de-rp-occupancy-note span { display:block; }
.three-de-rp-occupancy-note strong { margin-bottom:2px; font-size:11px; }
.three-de-rp-occupancy-note span { color:var(--rp-muted); font-size:9px; line-height:1.35; }
.three-de-rp-person { margin-bottom:10px; padding:11px; border:1px solid var(--rp-line); border-radius:10px; }
.three-de-rp-person-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.three-de-rp-person-head strong { font-size:12px; }
.three-de-rp-person-head span { color:var(--rp-muted); font-size:9px; }
.three-de-rp-person .three-de-rp-grid { margin:0; }

.three-de-rp-policy-card { border-top:4px solid var(--rp-navy); }
.three-de-rp-policy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border:1px solid var(--rp-line); border-radius:11px; }
.three-de-rp-policy-grid>div { padding:9px 10px; border-right:1px solid var(--rp-line); border-bottom:1px solid var(--rp-line); }
.three-de-rp-policy-grid>div:nth-child(2n) { border-right:0; }
.three-de-rp-policy-grid>div:nth-last-child(-n+2) { border-bottom:0; }
.three-de-rp-policy-grid b, .three-de-rp-policy-grid span { display:block; }
.three-de-rp-policy-grid b { margin-bottom:2px; font-size:11px; }
.three-de-rp-policy-grid span { color:var(--rp-muted); font-size:10px; line-height:1.4; }
.three-de-rp-more { margin-top:8px; border:1px solid var(--rp-line); border-radius:9px; }
.three-de-rp-more summary { padding:8px 10px; color:var(--rp-navy); font-size:10px; font-weight:850; cursor:pointer; }
.three-de-rp-more p { margin:0 !important; padding:0 12px 11px; color:var(--rp-muted); font-size:10px; }
.three-de-rp-check { display:grid; grid-template-columns:17px minmax(0,1fr); gap:8px; margin-top:8px; padding:8px 10px; border:1px solid var(--rp-line); border-radius:8px; background:rgba(23,42,58,.02); cursor:pointer; }
.three-de-rp-check input { width:17px !important; height:17px !important; margin:1px 0 0 !important; accent-color:var(--rp-teal); }
.three-de-rp-check span { font-size:11px; }
.three-de-rp-form-error { margin:0 0 16px; padding:12px 14px; border:1px solid #edc1bd; border-radius:9px; color:var(--rp-red); background:#fff0ee; font-size:12px; font-weight:700; }

.three-de-rp-summary { position:sticky; top:22px; }
.three-de-rp-summary-card { padding:15px; }
.three-de-rp-summary-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:10px; }
.three-de-rp-summary-top>div { display:flex; flex-direction:column; }
.three-de-rp-summary-top small { color:var(--rp-muted); font-size:8px; font-weight:900; letter-spacing:.09em; }
.three-de-rp-summary-top strong { font-size:15px; }
.three-de-rp-summary-top>b { padding:5px 7px; border-radius:999px; color:var(--rp-navy); background:rgba(21,154,156,.14); font-size:8px; text-transform:uppercase; white-space:nowrap; }
.three-de-rp-summary dl { margin:0; }
.three-de-rp-summary dl>div { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px dashed var(--rp-line); font-size:10px; }
.three-de-rp-summary dt { color:var(--rp-muted); }
.three-de-rp-summary dd { max-width:185px; margin:0; font-weight:800; text-align:right; }
.three-de-rp-cost { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:13px; }
.three-de-rp-cost span, .three-de-rp-cost small { display:block; }
.three-de-rp-cost span { font-size:13px; font-weight:850; }
.three-de-rp-cost small { color:var(--rp-muted); font-size:9px; }
.three-de-rp-cost>strong { color:var(--rp-navy); font-size:26px; }
.three-de-rp-credit, .three-de-rp-later { margin-top:11px; padding:9px 10px; border-radius:8px; }
.three-de-rp-credit { border:1px solid #cae7d8; background:#edf9f3; }
.three-de-rp-later { border:1px solid var(--rp-line); background:#f8fafb; }
.three-de-rp-credit b, .three-de-rp-credit span, .three-de-rp-later b, .three-de-rp-later span { display:block; }
.three-de-rp-credit b, .three-de-rp-later b { margin-bottom:2px; font-size:10px; }
.three-de-rp-credit b { color:var(--rp-green); }
.three-de-rp-credit span, .three-de-rp-later span { color:var(--rp-muted); font-size:9px; line-height:1.35; }
.three-de-rp-submit { width:100%; margin-top:12px !important; }
.three-de-rp-secure { margin:8px 0 0 !important; color:var(--rp-muted); font-size:9px; text-align:center; }
.three-de-rp-help { margin-top:12px; padding:12px 13px; border-left:4px solid var(--rp-teal); }
.three-de-rp-help strong { font-size:11px; }
.three-de-rp-help p { margin:3px 0 0 !important; color:var(--rp-muted); font-size:9px; }
.three-de-rp-mobile-pay { display:none; }

.three-de-rp-payment-return { margin:18px auto 0; padding:38px 28px; border:1px solid #cae6d8; border-radius:20px; text-align:center; background:linear-gradient(180deg,#fff,#eff9f4); box-shadow:0 17px 42px rgba(18,59,93,.09); }
.three-de-rp-return-icon { position:relative; width:58px; height:58px; margin:0 auto 14px; border:5px solid #dce8ee; border-top-color:var(--rp-teal); border-radius:50%; animation:three-de-spin .9s linear infinite; }
.three-de-rp-return-icon span, .three-de-rp-return-icon i { display:none; }
.three-de-rp-payment-return[data-state="paid_pending_confirmation"] .three-de-rp-return-icon, .three-de-rp-payment-return[data-state="confirmed"] .three-de-rp-return-icon { border:0; background:var(--rp-green); animation:none; box-shadow:0 0 0 8px rgba(22,112,77,.1); }
.three-de-rp-payment-return[data-state="paid_pending_confirmation"] .three-de-rp-return-icon::after, .three-de-rp-payment-return[data-state="confirmed"] .three-de-rp-return-icon::after { content:"✓"; display:grid; place-items:center; height:100%; color:#fff; font-size:28px; }
.three-de-rp-payment-return[data-state="paid_needs_sync"] .three-de-rp-return-icon { border:0; background:#e5912b; animation:none; }
.three-de-rp-payment-return[data-state="paid_needs_sync"] .three-de-rp-return-icon::after { content:"!"; display:grid; place-items:center; height:100%; color:#fff; font-size:28px; font-weight:900; }
.three-de-rp-return-kicker { color:var(--rp-teal); font-size:9px; font-weight:900; letter-spacing:.14em; }
.three-de-rp-payment-return h2 { margin:6px 0 !important; color:var(--rp-ink) !important; font-size:29px !important; }
.three-de-rp-payment-return>p { max-width:650px; margin:0 auto 18px !important; color:var(--rp-muted); font-size:13px; }
.three-de-rp-reference { width:min(430px,100%); margin:0 auto 13px; padding:13px; border:1px dashed #a9cbbb; border-radius:11px; background:#fff; }
.three-de-rp-reference small, .three-de-rp-reference strong { display:block; }
.three-de-rp-reference small { color:var(--rp-muted); font-size:10px; }
.three-de-rp-reference strong { font-family:ui-monospace,monospace; font-size:18px; }
.three-de-rp-return-next { max-width:650px; margin:13px auto; padding:12px 14px; border-radius:10px; color:#315265; background:#edf4f7; }
.three-de-rp-return-next p { margin:3px 0 0 !important; font-size:11px; }
.three-de-rp-payment-return>button { min-height:42px; margin-top:10px !important; }
@keyframes three-de-spin { to { transform:rotate(360deg); } }

.three-de-rp-footer { margin-top:16px; color:var(--rp-muted); font-size:11px; text-align:center; }
.three-de-rp-footer a { color:var(--rp-navy); font-weight:850; }

@media(max-width:920px) {
    .three-de-rp-form-layout { grid-template-columns:1fr; }
    .three-de-rp-summary { position:static; }
    .three-de-rp-summary .three-de-rp-submit { display:none !important; }
    .three-de-rp-mobile-pay { display:block; margin:0 0 17px; padding:15px; border:1px solid var(--rp-line); border-radius:12px; background:#fff; }
    .three-de-rp-mobile-pay>div { display:flex; align-items:center; justify-content:space-between; }
    .three-de-rp-mobile-pay>div span { color:var(--rp-muted); font-size:11px; }
    .three-de-rp-mobile-pay>div strong { color:var(--rp-navy); font-size:22px; }
    .three-de-rp-mobile-pay p { margin:7px 0 0 !important; color:var(--rp-muted); font-size:9px; text-align:center; }
}
@media(max-width:680px) {
    .three-de-reservation-portal { width:min(100% - 14px,1180px); margin-top:7px; }
    .three-de-rp-hero { grid-template-columns:minmax(0,1fr) 105px; gap:12px; padding:20px 17px 16px; border-radius:16px; }
    .three-de-rp-hero h1 { font-size:26px !important; }
    .three-de-rp-hero p { font-size:11px; }
    .three-de-rp-trust { display:none; }
    .three-de-rp-fee-badge { padding:11px 7px; }
    .three-de-rp-fee-badge strong { font-size:27px; }
    .three-de-rp-fee-badge span { font-size:8px; }
    .three-de-rp-progress { gap:3px; }
    .three-de-rp-progress li { gap:4px; }
    .three-de-rp-progress li strong { padding-right:3px; font-size:7px; }
    .three-de-rp-progress li::before { left:23px; right:2px; }
    .three-de-rp-progress li>span { width:19px; height:19px; flex-basis:19px; font-size:8px; }
    .three-de-rp-cancelled { align-items:flex-start; flex-direction:column; }
    .three-de-rp-card, .three-de-rp-verify { padding:15px 13px; border-radius:13px; }
    .three-de-rp-code-row, .three-de-rp-grid.two, .three-de-rp-grid.three, .three-de-rp-policy-grid { grid-template-columns:1fr; }
    .three-de-rp-field.full { grid-column:auto; }
    .three-de-rp-policy-grid>div { border-right:0 !important; border-bottom:1px solid var(--rp-line) !important; }
    .three-de-rp-policy-grid>div:last-child { border-bottom:0 !important; }
    .three-de-rp-date-heading { align-items:flex-start; flex-direction:column; }
    .three-de-rp-certificate-summary { align-items:flex-start; }
    .three-de-rp-payment-return { padding:30px 17px; }
}
@media(prefers-reduced-motion:reduce) { .three-de-reservation-portal * { scroll-behavior:auto !important; transition:none !important; } .three-de-rp-return-icon { animation:none; } }
