.rpmse-booking{--rpmse-bg:#fff;--rpmse-line:#e5e7eb;--rpmse-soft:#f8fafc;--rpmse-muted:#64748b;font-family:inherit;color:#111827;margin:28px 0;scroll-margin-top:90px}.rpmse-booking *{box-sizing:border-box}.rpmse-booking-shell{display:grid;grid-template-columns:230px minmax(0,1fr);border:1px solid var(--rpmse-line);border-radius:var(--rpmse-radius,18px);background:var(--rpmse-bg);box-shadow:0 18px 55px rgba(15,23,42,.08);overflow:hidden}.rpmse-booking-steps{background:#0f172a;color:#e5e7eb;padding:22px;display:flex;flex-direction:column;gap:10px}.rpmse-booking-steps button{appearance:none;border:0;background:transparent;color:inherit;text-align:left;padding:12px 10px;border-radius:14px;display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700}.rpmse-booking-steps button span{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.12);font-size:12px}.rpmse-booking-steps button.is-active{background:rgba(255,255,255,.12);color:#fff}.rpmse-booking-steps button.is-active span,.rpmse-booking-steps button.is-complete span{background:var(--rpmse-accent,#f59e0b);color:#111827}.rpmse-booking-main{padding:28px;min-width:0}.rpmse-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--rpmse-accent,#f59e0b);font-weight:800}.rpmse-booking__header h2{margin:.25rem 0 .5rem;font-size:clamp(24px,3vw,34px);line-height:1.1}.rpmse-booking__header p{color:var(--rpmse-muted);margin:0 0 14px}.rpmse-booking__facts{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 2px}.rpmse-booking__facts span{border:1px solid var(--rpmse-line);background:var(--rpmse-soft);padding:7px 11px;border-radius:999px;font-size:13px;font-weight:700}.rpmse-step{display:none;margin-top:22px}.rpmse-step.is-active{display:block}.rpmse-step h3{margin:0 0 14px;font-size:20px}.rpmse-step-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.rpmse-btn,.rpmse-btn-secondary{appearance:none;border:0;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.rpmse-btn{background:var(--rpmse-primary,#111827);color:#fff}.rpmse-btn:hover{color:#fff;filter:brightness(1.08)}.rpmse-btn-secondary{background:#eef2f7;color:#111827}.rpmse-service-summary{display:grid;gap:4px;border:1px solid var(--rpmse-line);background:var(--rpmse-soft);border-radius:16px;padding:16px}.rpmse-service-summary strong{font-size:18px}.rpmse-service-summary span{font-weight:800}.rpmse-service-summary small{color:var(--rpmse-muted)}.rpmse-extras-list{display:grid;gap:10px}.rpmse-extra-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--rpmse-line);padding:14px;border-radius:16px;background:#fff;cursor:pointer}.rpmse-extra-card:hover{border-color:var(--rpmse-accent,#f59e0b)}.rpmse-extra-card span{display:grid;gap:2px}.rpmse-extra-card small{color:var(--rpmse-muted)}.rpmse-extra-card em{font-style:normal;font-weight:800}.rpmse-booking__controls,.rpmse-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.rpmse-booking label{display:grid;gap:6px;font-weight:700}.rpmse-booking label span{font-size:13px;color:#334155}.rpmse-booking input,.rpmse-booking select,.rpmse-booking textarea{width:100%;border:1px solid var(--rpmse-line);border-radius:12px;padding:11px 12px;font:inherit;background:#fff}.rpmse-slots{display:flex;flex-wrap:wrap;gap:8px;min-height:48px;margin-top:14px}.rpmse-slot{border:1px solid var(--rpmse-line);background:#fff;border-radius:999px;padding:9px 13px;cursor:pointer;font-weight:800}.rpmse-slot.is-active{border-color:var(--rpmse-primary,#111827);background:var(--rpmse-primary,#111827);color:#fff}.rpmse-muted{color:var(--rpmse-muted);font-size:14px}.rpmse-confirm-box{border:1px solid var(--rpmse-line);border-radius:16px;background:var(--rpmse-soft);padding:14px;display:grid;gap:8px}.rpmse-confirm-row{display:grid;grid-template-columns:130px 1fr;gap:12px}.rpmse-confirm-row strong{color:#334155}.rpmse-response{margin-top:14px;font-weight:800}.rpmse-response--error{color:#b91c1c}.rpmse-response--success{color:#047857}.rpmse-response--loading{color:#0369a1}.rpmse-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.rpmse-service-card{border:1px solid var(--rpmse-line);border-radius:16px;padding:18px;background:#fff}.rpmse-service-card h3{margin-top:0}.rpmse-service-card__meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.rpmse-service-card__meta span{background:var(--rpmse-soft);border-radius:999px;padding:6px 9px;font-size:13px}.rpmse-notice{padding:12px;border:1px solid var(--rpmse-line);border-radius:12px;background:var(--rpmse-soft)}.rpmse-booking-template{display:block}.rpmse-booking--top_steps .rpmse-booking-shell,.rpmse-booking--compact .rpmse-booking-shell{grid-template-columns:1fr}.rpmse-booking--top_steps .rpmse-booking-steps,.rpmse-booking--compact .rpmse-booking-steps{flex-direction:row;overflow:auto}.rpmse-booking--compact .rpmse-booking-steps button{font-size:0}.rpmse-booking--compact .rpmse-booking-steps button span{font-size:12px}@media(max-width:760px){.rpmse-booking-shell{grid-template-columns:1fr}.rpmse-booking-steps{flex-direction:row;overflow-x:auto;padding:12px}.rpmse-booking-steps button{white-space:nowrap;font-size:13px}.rpmse-booking-main{padding:18px}.rpmse-booking__controls,.rpmse-form-grid{grid-template-columns:1fr}.rpmse-confirm-row{grid-template-columns:1fr}.rpmse-step-actions{justify-content:stretch}.rpmse-btn,.rpmse-btn-secondary{width:100%}}

.rpmse-realtime-note{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0 8px 8px 0;
  padding:7px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  background:rgba(16,185,129,.10);
  color:#047857;
}
.rpmse-booking--realtime-changed .rpmse-booking__header::after{
  content:'Actualizado en vivo';
  display:inline-flex;
  margin-top:10px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(245,158,11,.14);
  color:#92400e;
  font-size:12px;
  font-weight:700;
}

/* v0.9.3 participants/intake */
.rpmse-participants{margin:16px 0;padding:14px;border:1px solid rgba(0,0,0,.08);border-radius:var(--rpmse-radius,14px);background:rgba(0,0,0,.025)}
.rpmse-participants h4,.rpmse-intake-fields h4{margin:0 0 12px;font-size:1rem}
.rpmse-participant-row{padding:12px 0;border-top:1px solid rgba(0,0,0,.08)}
.rpmse-participant-row:first-of-type{border-top:0}
.rpmse-participant-row>strong{display:block;margin-bottom:8px}
.rpmse-intake-fields{margin:16px 0;padding:14px;border:1px solid rgba(0,0,0,.08);border-radius:var(--rpmse-radius,14px);background:#fff}

.rpmse-payment-result{display:grid;gap:8px;padding:18px;border:1px solid rgba(34,197,94,.28);border-radius:var(--rpmse-radius,18px);background:#f0fdf4;color:#14532d}.rpmse-payment-result strong{font-size:18px}.rpmse-payment-result span,.rpmse-payment-result small{display:block}.rpmse-payment-result .rpmse-btn--pay{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;margin-top:8px}.rpmse-payment-result__links{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.rpmse-payment-result__links a{font-weight:700;color:var(--rpmse-primary,#111827)}


/* v0.9.11 customer portal/payment completion */
.rpmse-customer-portal{max-width:980px;margin:32px auto;padding:0 16px}
.rpmse-customer-portal>h2{font-size:clamp(26px,4vw,40px);line-height:1.05;margin:0 0 20px;color:#0f172a}
.rpmse-portal-card{border:1px solid #e5e7eb;border-radius:22px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.08);padding:22px;margin:18px 0;overflow:hidden}
.rpmse-portal-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.rpmse-portal-card__head h3{margin:.2rem 0 0;font-size:clamp(20px,3vw,28px);line-height:1.1;color:#111827}
.rpmse-portal-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.rpmse-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;background:#f1f5f9;color:#334155}.rpmse-badge--approved,.rpmse-badge--payment-paid_woocommerce,.rpmse-badge--payment-paid_manual{background:#dcfce7;color:#166534}.rpmse-badge--pending_payment,.rpmse-badge--payment-pending_woocommerce,.rpmse-badge--payment-unpaid{background:#fef3c7;color:#92400e}.rpmse-badge--cancelled,.rpmse-badge--payment-failed_woocommerce,.rpmse-badge--payment-expired{background:#fee2e2;color:#991b1b}
.rpmse-portal-alert{display:grid;gap:3px;margin:12px 0 16px;border-radius:16px;padding:13px 14px}.rpmse-portal-alert strong{font-size:15px}.rpmse-portal-alert span{font-size:13px}.rpmse-portal-alert--payment{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.rpmse-portal-alert--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.rpmse-portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}.rpmse-portal-grid>div{border:1px solid #eef2f7;background:#f8fafc;border-radius:16px;padding:13px}.rpmse-portal-grid strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.rpmse-portal-grid span{display:block;margin-top:4px;font-weight:800;color:#111827}
.rpmse-portal-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}.rpmse-portal-actions .button,.rpmse-inline-action .button{border-radius:12px!important;padding:8px 14px!important;font-weight:800!important;text-decoration:none!important}.rpmse-portal-actions .button-primary,.rpmse-inline-action .button-primary,.rpmse-portal-action--primary{background:#111827!important;border-color:#111827!important;color:#fff!important}.rpmse-inline-action{display:inline-flex;margin:0}
.rpmse-portal-ticket{display:grid;justify-items:center;gap:10px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:18px;padding:18px;margin-top:16px;text-align:center}.rpmse-portal-ticket h4{margin:0;font-size:20px}.rpmse-portal-ticket img{width:min(260px,80vw);height:auto;background:#fff;border-radius:16px;padding:14px;box-shadow:0 12px 30px rgba(15,23,42,.12)}.rpmse-portal-details{margin-top:14px;border-top:1px solid #e5e7eb;padding-top:12px}
@media(max-width:680px){.rpmse-portal-card__head{display:grid}.rpmse-portal-badges{justify-content:flex-start}.rpmse-portal-actions .button,.rpmse-inline-action,.rpmse-inline-action .button{width:100%;justify-content:center;text-align:center}.rpmse-portal-grid{grid-template-columns:1fr}}

/* v0.9.13 portal payment status panel */
.rpmse-portal-payment-info{display:grid;gap:10px;margin:16px 0;border:1px solid #e5e7eb;border-radius:18px;background:#f8fafc;padding:15px}.rpmse-portal-payment-info>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.rpmse-portal-payment-info>div:first-child strong{font-size:16px;color:#111827}.rpmse-portal-payment-info>div:first-child span{font-weight:800;color:#334155}.rpmse-portal-payment-meta{display:grid;gap:5px;color:#475569;font-size:13px}.rpmse-portal-payment-cta{margin:4px 0 0}.rpmse-portal-payment-cta .button{width:auto}

/* v0.9.17 production canonical candidate */
.rpmse-payment-center{margin:12px 0;padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#f9fafb}
.rpmse-payment-center--paid{background:#ecfdf5;border-color:#bbf7d0}
.rpmse-payment-center--awaiting_confirmation,.rpmse-payment-center--proof_uploaded{background:#fffbeb;border-color:#fde68a}
.rpmse-payment-center--failed,.rpmse-payment-center--expired{background:#fef2f2;border-color:#fecaca}
.rpmse-proof-upload{margin-top:12px;padding:12px;border:1px dashed #d1d5db;border-radius:12px;background:#fff}
.rpmse-proof-form label{display:block;margin:10px 0}
.rpmse-proof-form input[type="text"],.rpmse-proof-form input[type="number"],.rpmse-proof-form textarea{width:100%;max-width:520px}


/* v0.9.18 — ticket/check-in production UX */
.rpmse-portal-ticket{margin-top:18px;padding:20px;border:1px solid rgba(15,23,42,.12);border-radius:18px;background:#fff;box-shadow:0 14px 30px rgba(15,23,42,.06)}
.rpmse-portal-ticket__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.rpmse-portal-ticket__head h4{margin:.15rem 0 0;font-size:1.25rem}
.rpmse-portal-ticket__qr{display:flex;justify-content:center;align-items:center;margin:18px auto;padding:18px;max-width:280px;border-radius:20px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid rgba(15,23,42,.08)}
.rpmse-portal-ticket__qr img{display:block;width:100%;height:auto;max-width:240px}
.rpmse-portal-ticket--locked{background:linear-gradient(180deg,#fff,#fff7ed)}
.rpmse-badge--ticket-active{background:#dcfce7;color:#166534}
.rpmse-badge--ticket-locked{background:#ffedd5;color:#9a3412}
.rpmse-muted{color:#64748b;font-size:.94rem}

/* v0.9.22 — portal calendar index + lightweight guests */
.rpmse-portal-index{display:grid;gap:18px}
.rpmse-portal-index__hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;border:1px solid #e5e7eb;border-radius:24px;background:linear-gradient(135deg,#fff,#f8fafc);padding:22px;box-shadow:0 18px 45px rgba(15,23,42,.07)}
.rpmse-portal-index__hero h2{margin:.25rem 0 .4rem;font-size:clamp(28px,4vw,42px);line-height:1.02;color:#0f172a}.rpmse-portal-index__hero p{margin:0;color:#64748b;max-width:620px}.rpmse-portal-index__stats{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.rpmse-portal-index__stats span{min-width:110px;display:grid;gap:2px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:12px 14px;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.rpmse-portal-index__stats strong{display:block;color:#111827;font-size:24px;line-height:1}.rpmse-portal-index__tools label{display:grid;gap:7px;font-weight:800;color:#334155}.rpmse-portal-index__tools input{width:100%;border:1px solid #e5e7eb;border-radius:16px;padding:13px 15px;font:inherit;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.rpmse-portal-calendar{border:1px solid #e5e7eb;border-radius:22px;background:#fff;padding:16px;box-shadow:0 16px 42px rgba(15,23,42,.06)}.rpmse-portal-calendar__head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.rpmse-portal-calendar__head strong{font-size:18px;color:#111827;text-transform:capitalize}.rpmse-portal-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.rpmse-portal-calendar__week{margin-bottom:8px;color:#64748b;font-size:12px;font-weight:900;text-align:center}.rpmse-portal-calendar__blank{min-height:44px}.rpmse-portal-calendar__day{min-height:48px;border:1px solid #eef2f7;border-radius:14px;background:#f8fafc;color:#111827;display:grid;place-items:center;position:relative;cursor:pointer;font-weight:900}.rpmse-portal-calendar__day:hover,.rpmse-portal-calendar__day.is-selected{border-color:#111827;background:#111827;color:#fff}.rpmse-portal-calendar__day.is-today{box-shadow:inset 0 0 0 2px #f59e0b}.rpmse-portal-calendar__day.has-bookings{background:#fff7ed;border-color:#fed7aa}.rpmse-portal-calendar__day.has-bookings.is-selected{background:#111827;border-color:#111827}.rpmse-portal-calendar__day em{position:absolute;right:6px;top:5px;min-width:18px;height:18px;border-radius:999px;background:#E74241;color:#fff;font-style:normal;font-size:11px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.rpmse-portal-list{display:grid;gap:10px}.rpmse-portal-list__head{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-top:6px}.rpmse-portal-list__head h3{margin:0;color:#111827}.rpmse-portal-list__head span{color:#64748b;font-size:14px}.rpmse-portal-row{display:grid;grid-template-columns:minmax(0,1.35fr) auto auto auto;gap:14px;align-items:center;border:1px solid #e5e7eb;border-radius:20px;background:#fff;padding:15px 16px;box-shadow:0 10px 28px rgba(15,23,42,.05)}.rpmse-portal-row[hidden]{display:none}.rpmse-portal-row h4{margin:.1rem 0 .2rem;font-size:17px;color:#111827}.rpmse-portal-row p{margin:0;color:#64748b}.rpmse-portal-row__meta{display:flex;gap:8px;flex-wrap:wrap}.rpmse-portal-row__meta span{border:1px solid #eef2f7;background:#f8fafc;border-radius:999px;padding:7px 10px;font-weight:800;color:#334155;font-size:13px}.rpmse-portal-row__actions .button{white-space:nowrap;border-radius:12px!important;font-weight:900!important}.rpmse-card-lite{border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:16px;margin-top:16px}.rpmse-card-lite h4{margin:.2rem 0 .4rem;font-size:20px;color:#111827}.rpmse-card-lite p{color:#64748b;margin:.25rem 0 12px}.rpmse-guest-list{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}.rpmse-guest-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #eef2f7;border-radius:14px;background:#f8fafc;padding:10px 12px}.rpmse-guest-list li span{font-size:13px;color:#64748b}.rpmse-guest-form .rpmse-form-grid{margin-bottom:10px}.rpmse-guest-form input{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;font:inherit;background:#fff}
@media(max-width:820px){.rpmse-portal-index__hero{grid-template-columns:1fr}.rpmse-portal-index__stats{justify-content:stretch}.rpmse-portal-index__stats span{flex:1}.rpmse-portal-row{grid-template-columns:1fr}.rpmse-portal-row__actions .button{width:100%;text-align:center}.rpmse-portal-list__head{display:grid}.rpmse-guest-list li{display:grid}.rpmse-portal-calendar__day{min-height:42px;border-radius:12px}}

/* v0.9.23 — service contract UX */
.rpmse-location-policy-note{border:1px solid rgba(17,24,39,.12);background:#f8fafc;border-radius:14px;padding:12px 14px;margin:12px 0;display:grid;gap:4px}
.rpmse-location-policy-note strong{color:#111827;font-size:14px}
.rpmse-location-policy-note span{color:#475569;font-size:13px;line-height:1.45}
.rpmse-location-policy-note--fixed{background:#ecfdf5;border-color:#bbf7d0}
.rpmse-terms-ack{display:flex!important;gap:10px;align-items:flex-start;margin:14px 0;padding:14px;border:1px solid rgba(245,158,11,.35);background:#fffbeb;border-radius:14px;color:#422006;line-height:1.45}
.rpmse-terms-ack input{margin-top:4px;flex:0 0 auto}
.rpmse-terms-ack span{font-size:13px}

/* v0.9.24 — Staff Operations Console */
.rpmse-staff-portal .rpmse-staff-hero{display:flex;flex-direction:column;gap:4px}
.rpmse-portal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.rpmse-portal-summary>div{background:#fff;border:1px solid rgba(17,24,39,.1);border-radius:var(--rpmse-radius,18px);padding:16px;box-shadow:0 10px 26px rgba(17,24,39,.06)}
.rpmse-portal-summary strong{display:block;font-size:24px;color:var(--rpmse-primary,#111827);line-height:1.1}
.rpmse-portal-summary span{display:block;font-size:13px;color:#6b7280;margin-top:6px}
.rpmse-staff-calendar .rpmse-calendar-appt{cursor:default}
.rpmse-staff-list{display:grid;gap:10px}
.rpmse-staff-reservation{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(17,24,39,.1);border-radius:14px;padding:14px;background:#fff}
.rpmse-staff-reservation div{display:flex;flex-direction:column;gap:3px}
.rpmse-staff-reservation span:not(.rpmse-badge),.rpmse-staff-reservation small{color:#6b7280}
@media (max-width: 780px){.rpmse-portal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.rpmse-staff-reservation{align-items:flex-start;flex-direction:column}}
@media (max-width: 520px){.rpmse-portal-summary{grid-template-columns:1fr}}

/* v0.9.25 — Invitations, RSVP & Access Flow Canon */
.rpmse-field-invalid input,.rpmse-field-invalid select,.rpmse-field-invalid textarea{border-color:#dc2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.rpmse-field-invalid span{color:#991b1b!important}
.rpmse-guest-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rpmse-guest-list li>div:first-child{display:grid;gap:3px}
.rpmse-guest-invitation h2{margin:.25rem 0 1rem;color:#111827;font-size:clamp(24px,4vw,36px)}
.rpmse-rsvp-form{display:grid;gap:12px;margin-top:16px}
.rpmse-rsvp-form label{display:grid;gap:6px;font-weight:800;color:#334155}
.rpmse-rsvp-form select,.rpmse-rsvp-form textarea{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:11px 12px;font:inherit;background:#fff}
@media(max-width:820px){.rpmse-guest-actions{justify-content:stretch}.rpmse-guest-actions .button{width:100%;text-align:center}}


/* v0.9.27 Event Holder Console */
.rpmse-holder-console{display:grid;gap:16px;background:linear-gradient(180deg,#fff,#f8fafc)}
.rpmse-holder-console__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.rpmse-holder-console__head h4{margin:.15rem 0 .35rem}.rpmse-holder-console__tabs{display:flex;gap:8px;flex-wrap:wrap}.rpmse-holder-console__tabs a{border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#334155;text-decoration:none;padding:8px 12px;font-weight:900}.rpmse-holder-console__tabs a.is-active{background:#111827;color:#fff;border-color:#111827}.rpmse-holder-console__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.rpmse-holder-console__metrics span{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.rpmse-holder-console__metrics strong{display:block;color:#111827;font-size:24px;line-height:1.1}.rpmse-holder-requests__split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(280px,1.1fr);gap:16px;align-items:start}.rpmse-holder-request-form{display:grid;gap:10px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:14px}.rpmse-holder-request-form label{display:grid;gap:6px;font-weight:800;color:#334155}.rpmse-holder-request-form input,.rpmse-holder-request-form select,.rpmse-holder-request-form textarea{width:100%;border:1px solid #dbe3ef;border-radius:12px;padding:10px 12px;font:inherit;background:#fff}.rpmse-holder-request-list{display:grid;gap:10px;list-style:none;margin:10px 0 0;padding:0}.rpmse-holder-request-list li{display:grid;gap:8px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:13px}.rpmse-holder-request-list li>div{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.rpmse-holder-request-list span:not(.rpmse-badge){color:#64748b;font-size:13px}.rpmse-holder-request-list p{margin:0;color:#475569}.rpmse-holder-history ol{position:relative;display:grid;gap:10px;list-style:none;margin:10px 0 0;padding:0}.rpmse-holder-history li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:11px 13px}.rpmse-holder-history time{color:#64748b;font-size:12px}.rpmse-holder-history strong{color:#111827}.rpmse-holder-history span{grid-column:2;color:#64748b;font-size:13px}.rpmse-badge--holder-state{background:#e0f2fe;color:#075985}.rpmse-badge--request-pending,.rpmse-badge--request-in_review{background:#fef3c7;color:#92400e}.rpmse-badge--request-approved,.rpmse-badge--request-resolved{background:#dcfce7;color:#166534}.rpmse-badge--request-rejected,.rpmse-badge--request-cancelled{background:#fee2e2;color:#991b1b}
@media(max-width:760px){.rpmse-holder-console__head,.rpmse-holder-requests__split{display:grid}.rpmse-holder-history li{grid-template-columns:1fr}.rpmse-holder-history span{grid-column:auto}}


/* v0.9.28 — Event capacity and invitation manager */
.rpmse-invitation-manager{display:grid;gap:14px;background:linear-gradient(180deg,#fff,#fbfdff)}
.rpmse-invitation-manager__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.rpmse-invitation-manager__head h4{margin:.15rem 0 .35rem}.rpmse-capacity-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px}.rpmse-capacity-strip span{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.rpmse-capacity-strip strong{display:block;color:#111827;font-size:22px;line-height:1.15}.rpmse-invitation-list{margin-top:0}.rpmse-invitation-list .rpmse-guest-actions .button{border-radius:12px!important;font-weight:900!important}.rpmse-guest-manager{border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;padding:14px}.rpmse-guest-manager h5{margin:.1rem 0 .3rem;color:#111827}.rpmse-guest-manager p{margin:.2rem 0 .8rem;color:#64748b}.rpmse-holder-console__metrics{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
@media(max-width:760px){.rpmse-invitation-manager__head{display:grid}.rpmse-invitation-manager__head .button{width:100%;text-align:center}.rpmse-capacity-strip{grid-template-columns:1fr 1fr}}


/* v0.9.29 — Package capacity and holder invitation UX cleanup */
.rpmse-attendance-contract{border:1px solid #dbe3ef;border-radius:14px;background:#f8fafc;padding:12px 14px;display:grid;gap:4px;align-self:stretch}
.rpmse-attendance-contract strong{color:#111827;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.rpmse-attendance-contract span{color:#111827;font-weight:900}.rpmse-attendance-contract small{color:#64748b;line-height:1.45}
.rpmse-invitation-manager__body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:16px;align-items:start}.rpmse-invitation-hero{border:1px solid #e5e7eb;border-radius:22px;background:linear-gradient(135deg,#111827,#334155);color:#fff;padding:18px;display:grid;gap:12px}.rpmse-invitation-hero span{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:11px;opacity:.72;font-weight:900}.rpmse-invitation-hero strong{font-size:clamp(28px,5vw,46px);line-height:1}.rpmse-invitation-hero small{display:block;color:#e2e8f0;margin-top:5px}.rpmse-invitation-hero p{color:#e2e8f0;margin:0;max-width:760px}.rpmse-invitation-progress{height:10px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}.rpmse-invitation-progress i{display:block;height:100%;border-radius:999px;background:#fed842}.rpmse-capacity-strip--clean{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.rpmse-rsvp-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.rpmse-rsvp-column{border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:12px;display:grid;gap:10px;align-content:start}.rpmse-rsvp-column__head{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}.rpmse-rsvp-column__head strong{color:#111827}.rpmse-rsvp-column__head span{background:#f1f5f9;border-radius:999px;padding:4px 9px;font-weight:900;color:#334155}.rpmse-rsvp-column__head small{grid-column:1 / -1;color:#64748b}.rpmse-rsvp-card{border:1px solid #eef2f7;border-radius:15px;background:#f8fafc;padding:11px;display:grid;gap:10px}.rpmse-rsvp-card strong{color:#111827}.rpmse-rsvp-card span,.rpmse-rsvp-card small{display:block;color:#64748b}.rpmse-rsvp-card--confirmed{background:#f0fdf4;border-color:#bbf7d0}.rpmse-rsvp-card--declined{background:#fff1f2;border-color:#fecdd3}.rpmse-invitation-aside{display:grid;gap:12px}.rpmse-invitation-aside .rpmse-guest-manager{position:sticky;top:18px}.rpmse-guest-manager .rpmse-form-grid{grid-template-columns:1fr}.rpmse-guest-manager .button{width:100%;text-align:center}.rpmse-invitation-manager--compact .rpmse-capacity-strip{display:none}
@media(max-width:980px){.rpmse-invitation-manager__body{grid-template-columns:1fr}.rpmse-rsvp-board{grid-template-columns:1fr}.rpmse-invitation-aside .rpmse-guest-manager{position:static}}
@media(max-width:760px){.rpmse-capacity-strip{grid-template-columns:1fr}.rpmse-invitation-hero strong{font-size:30px}}
/* v0.9.30 — Post-payment invitations */
.rpmse-bulk-guests{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px}.rpmse-bulk-guests summary{cursor:pointer;font-weight:900;color:#111827}.rpmse-bulk-guests textarea{width:100%;margin-top:10px}.rpmse-guest-actions form.rpmse-inline-action{display:inline-block;margin:0}.rpmse-invitation-manager__head small{display:block;margin-top:6px;color:#64748b;font-weight:800}

/* v0.9.31 — Access Pass Lifecycle */
.rpmse-access-pass-card,
.rpmse-access-pass-board{
  margin-top:18px;
  border:1px solid rgba(17,24,39,.10);
  border-radius:var(--rpmse-radius,18px);
  background:#fff;
  box-shadow:0 10px 28px rgba(17,24,39,.06);
  padding:18px;
}
.rpmse-access-pass-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;}
.rpmse-access-pass-card img{width:154px;max-width:34vw;border:1px solid rgba(17,24,39,.10);border-radius:14px;padding:8px;background:#fff;}
.rpmse-access-pass-card--pending{background:linear-gradient(180deg,#fff,#fff8e5);}
.rpmse-access-pass-card--active{background:linear-gradient(180deg,#fff,#f0fdf4);}
.rpmse-access-pass-card--used{background:linear-gradient(180deg,#fff,#eff6ff);}
.rpmse-access-pass-card--revoked{background:linear-gradient(180deg,#fff,#fef2f2);}
.rpmse-access-pass-board__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;}
.rpmse-access-pass-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px;}
.rpmse-access-pass-row{border-left:4px solid rgba(17,24,39,.14);}
.rpmse-access-pass-row--active{border-left-color:#16a34a;}
.rpmse-access-pass-row--used{border-left-color:#2563eb;}
.rpmse-access-pass-row--pending{border-left-color:#f59e0b;}
.rpmse-access-pass-row--revoked{border-left-color:#dc2626;}
@media (max-width:640px){.rpmse-access-pass-card{grid-template-columns:1fr}.rpmse-access-pass-card img{width:132px;max-width:100%;}}

/* v0.9.32 — Reusable UI component system */
.rpmse-ui-section{border:1px solid rgba(17,24,39,.10);border-radius:var(--rpmse-radius,18px);background:#fff;box-shadow:0 10px 28px rgba(17,24,39,.05);padding:18px;display:grid;gap:14px}
.rpmse-ui-section__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.rpmse-ui-section__head h4{margin:.15rem 0 .35rem}.rpmse-ui-section__head p{margin:0;color:#64748b}.rpmse-ui-section__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rpmse-ui-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:14px;box-shadow:0 8px 22px rgba(17,24,39,.04)}
.rpmse-ui-card__main{display:grid;gap:3px;min-width:0}.rpmse-ui-card__main h4{margin:0;color:#111827;font-size:16px}.rpmse-ui-card__main p{margin:0;color:#64748b}.rpmse-ui-card__meta{display:flex;gap:8px;flex-wrap:wrap;color:#64748b;font-size:13px}.rpmse-ui-card__meta span{display:inline-flex;gap:5px;align-items:center}.rpmse-ui-card__meta strong{color:#111827}.rpmse-ui-card__badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.rpmse-ui-card__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rpmse-ui-metric-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px}.rpmse-ui-metric{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:12px;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.rpmse-ui-metric strong{display:block;color:#111827;font-size:22px;line-height:1.15}.rpmse-ui-metric small{display:block;margin-top:4px;color:#94a3b8;font-size:11px;text-transform:none;letter-spacing:0;font-weight:700}
.rpmse-portal-row.rpmse-ui-card{grid-template-columns:minmax(0,1fr) minmax(180px,auto) minmax(160px,auto)}.rpmse-rsvp-card.rpmse-ui-card,.rpmse-access-pass-row.rpmse-ui-card{grid-template-columns:minmax(0,1fr);align-items:start}.rpmse-rsvp-card .rpmse-ui-card__actions,.rpmse-access-pass-row .rpmse-ui-card__actions{justify-content:flex-start}.rpmse-rsvp-card .rpmse-ui-card__meta{display:grid;gap:3px}.rpmse-rsvp-card .rpmse-ui-card__meta span{display:block}.rpmse-access-pass-row .rpmse-ui-card__meta{display:grid;gap:3px}.rpmse-access-pass-row .rpmse-ui-card__meta span{display:block}
@media(max-width:760px){.rpmse-ui-section__head,.rpmse-ui-card{grid-template-columns:1fr}.rpmse-ui-card__badges,.rpmse-ui-card__actions,.rpmse-ui-section__actions{justify-content:flex-start}.rpmse-ui-card__actions .button,.rpmse-ui-section__actions .button{width:100%;text-align:center}.rpmse-ui-metric-strip{grid-template-columns:1fr}}

/* v0.9.33 fixed package holder journey guard */
.rpmse-post-payment-invite-note{margin:16px 0;padding:14px 16px;border:1px solid rgba(237,56,69,.16);border-radius:var(--rpmse-radius,18px);background:rgba(254,216,66,.14);display:grid;gap:4px}
.rpmse-post-payment-invite-note strong{color:#111827}
.rpmse-post-payment-invite-note span{color:#4b5563}

/* v0.9.34 — Portal UI Shell, guest list analytics and reusable list/detail components */
.rpmse-invitation-manager__body--list{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:start}
.rpmse-invitation-list-pane,.rpmse-invitation-detail-pane{min-width:0}
.rpmse-ui-list{border:1px solid rgba(17,24,39,.10);border-radius:var(--rpmse-radius,18px);background:#fff;overflow:hidden;box-shadow:0 10px 26px rgba(17,24,39,.04)}
.rpmse-ui-list__head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px;border-bottom:1px solid #eef2f7;background:#fbfdff}.rpmse-ui-list__head h5{margin:.15rem 0 .25rem;color:#111827}.rpmse-ui-list__head p{margin:0;color:#64748b}.rpmse-ui-list__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rpmse-ui-list__body{max-height:520px;overflow:auto;display:grid;gap:0}.rpmse-ui-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid #eef2f7;background:#fff;text-decoration:none;color:inherit}.rpmse-ui-list-row:hover,.rpmse-ui-list-row.is-active{background:#f8fafc}.rpmse-ui-list-row:last-child{border-bottom:0}.rpmse-ui-list-row__main{display:grid;gap:3px;min-width:0}.rpmse-ui-list-row__main strong{color:#111827;font-size:15px}.rpmse-ui-list-row__main span{color:#64748b}.rpmse-ui-list-row__main small{color:#64748b;line-height:1.4}.rpmse-ui-list-row__badges,.rpmse-ui-list-row__actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.rpmse-ui-list-row__actions .button{white-space:nowrap}
.rpmse-ui-detail-panel{border:1px solid rgba(17,24,39,.10);border-radius:var(--rpmse-radius,18px);background:#fff;box-shadow:0 10px 26px rgba(17,24,39,.05);padding:16px;display:grid;gap:14px;position:sticky;top:18px}.rpmse-ui-detail-panel__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.rpmse-ui-detail-panel__head h5{margin:.15rem 0 .25rem;color:#111827}.rpmse-ui-detail-panel__head p{margin:0;color:#64748b}.rpmse-ui-detail-panel__badges,.rpmse-ui-detail-panel__actions{display:flex;gap:8px;flex-wrap:wrap}.rpmse-ui-detail-panel__actions .rpmse-inline-action{display:inline-block;margin:0}.rpmse-ui-facts{display:grid;gap:8px;margin:0}.rpmse-ui-facts div{display:grid;grid-template-columns:minmax(110px,.45fr) minmax(0,1fr);gap:10px;border:1px solid #eef2f7;border-radius:12px;background:#f8fafc;padding:10px}.rpmse-ui-facts dt{color:#64748b;font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.rpmse-ui-facts dd{margin:0;color:#111827;font-weight:800;overflow-wrap:anywhere}.rpmse-invitation-create-pane{margin-top:14px}.rpmse-invitation-create-pane .rpmse-guest-manager{border-style:solid;background:#fbfdff}.rpmse-rsvp-board{display:none}
@media(max-width:980px){.rpmse-invitation-manager__body--list{grid-template-columns:1fr}.rpmse-ui-detail-panel{position:static}.rpmse-ui-list-row{grid-template-columns:1fr}.rpmse-ui-list-row__badges,.rpmse-ui-list-row__actions{justify-content:flex-start}.rpmse-ui-list-row__actions .button{width:100%;text-align:center}.rpmse-ui-facts div{grid-template-columns:1fr}}

/* v0.9.35 — Narrative card system, compact invitation UX and safe inline forms */
.rpmse-ui-narrative-card{display:grid;grid-template-columns:minmax(84px,120px) 1fr;gap:16px;align-items:center;padding:18px;border:1px solid #e5e9f2;border-radius:22px;background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);box-shadow:0 10px 28px rgba(15,23,42,.06);margin:0 0 16px}
.rpmse-ui-narrative-card__media{display:flex;align-items:center;justify-content:center;min-height:82px;border-radius:20px;background:#0f172a;color:#fff;overflow:hidden}
.rpmse-ui-orb{display:flex;align-items:center;justify-content:center;width:74px;height:74px;border-radius:999px;background:#ffda44;color:#0f172a;font-weight:900;font-size:18px;letter-spacing:-.04em}
.rpmse-ui-narrative-card__body h4{margin:4px 0 6px;font-size:22px;line-height:1.1;color:#0f172a}
.rpmse-ui-narrative-card__body p{margin:0;color:#64748b;max-width:640px}.rpmse-ui-narrative-card__actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.rpmse-invitation-hero--compact{padding:14px 16px;display:grid;gap:10px}.rpmse-invitation-hero--compact p{display:none}.rpmse-invitation-hero--compact strong{font-size:28px}
.rpmse-invitation-detail-pane .rpmse-ui-detail-panel:has(.rpmse-muted){min-height:120px;align-items:center;justify-content:center;text-align:center}.rpmse-inline-action{display:inline-flex;margin:0}.rpmse-inline-action .button{margin:0}
.rpmse-create-invite-details{border:1px solid #e5e9f2;border-radius:18px;background:#fff;overflow:hidden}.rpmse-create-invite-details>summary{cursor:pointer;padding:14px 16px;font-weight:800;color:#0f172a;list-style:none}.rpmse-create-invite-details>summary::-webkit-details-marker{display:none}.rpmse-create-invite-details>summary:after{content:'+';float:right;color:#64748b}.rpmse-create-invite-details[open]>summary:after{content:'–'}.rpmse-create-invite-details>div,.rpmse-create-invite-details>form,.rpmse-create-invite-details>.rpmse-bulk-guests{margin:0 16px 16px}.rpmse-guest-manager>details{margin-top:0}
.rpmse-holder-console__head p,.rpmse-invitation-manager__head p,.rpmse-ui-list__head p,.rpmse-ui-detail-panel__head p{max-width:62ch}.rpmse-holder-console__metrics{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.rpmse-ui-list-row__main small{line-height:1.35}
@media(max-width:720px){.rpmse-ui-narrative-card{grid-template-columns:1fr}.rpmse-ui-narrative-card__media{min-height:64px}.rpmse-ui-orb{width:62px;height:62px}.rpmse-ui-narrative-card__body h4{font-size:19px}}

/* v0.9.36 — Guest event narrative, portal density and staff scanner canon */
.rpmse-density-modern.rpmse-card,.rpmse-density-modern .rpmse-card-lite{box-shadow:0 18px 54px rgba(15,23,42,.07);border-color:rgba(15,23,42,.06)}
.rpmse-holder-console.rpmse-card-lite{padding:0;border:0;background:transparent;box-shadow:none;display:grid;gap:18px}.rpmse-holder-console__head{padding:18px 0 2px;border:0}.rpmse-holder-console__metrics .rpmse-ui-metric,.rpmse-holder-console__metrics span{box-shadow:none;border-color:#edf2f7;background:#fbfdff}.rpmse-holder-console__tabs{border-bottom:1px solid #edf2f7;padding-bottom:8px;margin-bottom:2px}.rpmse-holder-console__tabs a{border:0;background:transparent}.rpmse-holder-console__tabs a.is-active{background:#0f172a;color:#fff}
.rpmse-invitation-manager.rpmse-card-lite{border-color:#edf2f7;box-shadow:0 12px 38px rgba(15,23,42,.05)}.rpmse-invitation-manager .rpmse-ui-list,.rpmse-invitation-manager .rpmse-ui-detail-panel,.rpmse-invitation-create-pane .rpmse-guest-manager{box-shadow:none;border-color:#edf2f7}.rpmse-invitation-hero--compact{background:#172336;border:0;border-radius:18px}.rpmse-invitation-hero--compact strong,.rpmse-invitation-hero--compact span,.rpmse-invitation-hero--compact small{color:#fff}.rpmse-invitation-hero--compact .rpmse-invitation-progress{background:rgba(255,255,255,.2)}.rpmse-invitation-hero--compact .rpmse-invitation-progress i{background:#ffda44}
.rpmse-guest-event{display:grid;gap:18px}.rpmse-guest-event-hero{margin:0}.rpmse-guest-event-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.rpmse-guest-event-facts article{border:1px solid #edf2f7;border-radius:16px;background:#fbfdff;padding:14px;display:grid;gap:5px}.rpmse-guest-event-facts span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#f59e0b}.rpmse-guest-event-facts strong{font-size:14px;line-height:1.45;color:#0f172a}.rpmse-guest-rsvp-panel{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-top:1px solid #edf2f7;padding-top:18px;margin-top:18px}.rpmse-guest-rsvp-panel h3{margin:.15rem 0}.rpmse-rsvp-form--modern{border:0;background:transparent;padding:0;box-shadow:none}.rpmse-rsvp-choice-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.rpmse-rsvp-choice-grid .button{border-radius:999px;padding:10px 16px}.rpmse-ticket-screen{max-width:760px;margin-inline:auto}.rpmse-ticket-screen .rpmse-access-pass-card{border:0;box-shadow:none;background:#fbfdff}.rpmse-ticket-screen .rpmse-access-pass-card img{width:220px;max-width:100%}.rpmse-portal-ticket__qr img{max-width:260px;width:100%;display:block;margin:12px auto;background:#fff;border-radius:18px;border:1px solid #edf2f7;padding:12px}
.rpmse-ui-narrative-card{box-shadow:0 18px 42px rgba(15,23,42,.06);border-color:#edf2f7}.rpmse-ui-narrative-card__media{background:#111827}.rpmse-portal-card .rpmse-portal-grid div{border-color:#edf2f7;background:#fbfdff}.rpmse-portal-payment-info{border-color:#edf2f7;box-shadow:none}.rpmse-portal-actions .button{border-radius:999px}.rpmse-portal-actions .button:not(.button-primary){background:transparent;color:#0f172a;border:0;box-shadow:none}
@media(max-width:760px){.rpmse-guest-rsvp-panel{display:grid}.rpmse-rsvp-choice-grid .button{width:100%;text-align:center}.rpmse-guest-event-facts{grid-template-columns:1fr}}

/* v0.9.37 — Human-facing guest invitation and visual language polish */
.rpmse-guest-invitation.rpmse-density-modern{max-width:860px;margin-inline:auto;background:#fff;border:0;box-shadow:0 24px 70px rgba(15,23,42,.08);padding:clamp(18px,3vw,34px)}
.rpmse-guest-event--human{display:grid;gap:22px}.rpmse-guest-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:22px;align-items:stretch;padding:0 0 18px;border-bottom:1px solid #edf2f7}.rpmse-guest-hero__copy h2{margin:.15rem 0 .65rem;font-size:clamp(32px,5vw,56px);line-height:.98;letter-spacing:-.045em;color:#07111f}.rpmse-guest-hero__copy p{margin:0;color:#475569;font-size:clamp(16px,2vw,19px);line-height:1.55;max-width:640px}.rpmse-guest-hero__actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}.rpmse-guest-hero__status{border-radius:28px;background:linear-gradient(160deg,#0b1220,#233148);color:#fff;padding:20px;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;box-shadow:0 18px 44px rgba(15,23,42,.18)}.rpmse-guest-hero__status span{font-size:28px;font-weight:950;line-height:1;text-transform:none}.rpmse-guest-hero__status small{color:#dbeafe;font-size:14px;line-height:1.45}.rpmse-guest-event-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rpmse-guest-event-card{display:flex;gap:12px;align-items:flex-start;background:#f8fafc;border:0;border-radius:22px;padding:16px}.rpmse-guest-event-card__icon{width:12px;height:12px;border-radius:999px;background:#fed842;margin-top:5px;box-shadow:0 0 0 7px rgba(254,216,66,.18);flex:0 0 auto}.rpmse-guest-event-card strong{display:block;color:#0f172a;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.rpmse-guest-event-card p{margin:0;color:#334155;font-size:15px;line-height:1.45}.rpmse-guest-note{padding:18px 0 0;border-top:1px solid #edf2f7}.rpmse-guest-note strong{display:block;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:#f59e0b;margin-bottom:6px}.rpmse-guest-note p{margin:0;color:#475569;line-height:1.55}.rpmse-guest-rsvp-panel{border-top:0;background:#f8fafc;border-radius:24px;padding:18px 20px;margin-top:4px}.rpmse-rsvp-choice-grid .button{box-shadow:none!important}.rpmse-rsvp-choice-grid .button:not(.button-primary){background:#eef2f7!important;color:#0f172a!important;border:0!important}.rpmse-rsvp-form--modern label span{font-weight:850;color:#334155}.rpmse-rsvp-form--modern textarea{border-radius:18px!important;background:#fff!important}.rpmse-ticket-screen{border:0;box-shadow:0 24px 70px rgba(15,23,42,.08)}.rpmse-ticket-screen .rpmse-portal-grid div{border:0;background:#f8fafc}.rpmse-density-modern .rpmse-portal-alert{box-shadow:none;border-width:1px}
@media(max-width:760px){.rpmse-guest-hero{grid-template-columns:1fr}.rpmse-guest-hero__status{min-height:auto;gap:18px}.rpmse-guest-event-cards{grid-template-columns:1fr}.rpmse-guest-invitation.rpmse-density-modern{padding:18px;border-radius:24px}.rpmse-guest-hero__copy h2{font-size:38px}}

/* v0.9.38 — Visual invitation map and unified portal navigation */
.rpmse-portal-nav--primary{margin-top:14px;margin-bottom:16px}
.rpmse-portal-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:8px;align-items:stretch;margin:18px 0 14px;padding:8px;background:#f6f7f9;border-radius:18px;border:1px solid rgba(17,24,39,.06)}
.rpmse-portal-nav a,.rpmse-portal-nav__utility{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:54px;padding:10px 12px;border-radius:14px;text-decoration:none;background:transparent;border:0;color:#111827;font-weight:700;line-height:1.1;box-shadow:none;cursor:pointer;text-align:left}
.rpmse-portal-nav a span{font-size:11px;color:#64748b;font-weight:600}.rpmse-portal-nav a.is-active{background:#0f172a;color:#fff}.rpmse-portal-nav a.is-active span{color:#cbd5e1}.rpmse-portal-nav__utility{background:#fff;border:1px solid rgba(17,24,39,.08);font-size:12px;white-space:nowrap}
.rpmse-holder-console--single{border:0;background:transparent;box-shadow:none;padding:0;margin-top:18px}.rpmse-holder-console--single>.rpmse-holder-console__head{border:0;background:transparent;padding:0 0 12px;margin:0}.rpmse-holder-console__metrics--quiet{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.rpmse-holder-overview-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.rpmse-holder-overview-actions .button{border-radius:999px}
.rpmse-location-preview{display:grid;grid-template-columns:minmax(260px,1.3fr) minmax(220px,.7fr);gap:0;overflow:hidden;border-radius:24px;background:#0f172a;margin:18px 0;color:#fff;min-height:260px;box-shadow:0 24px 60px rgba(15,23,42,.12)}
.rpmse-location-preview__map{min-height:260px;background:#e5e7eb;z-index:1}.rpmse-location-preview__body{display:flex;flex-direction:column;justify-content:center;gap:12px;padding:24px}.rpmse-location-preview__body .rpmse-kicker{color:#fbbf24}.rpmse-location-preview__body strong{font-size:22px;line-height:1.15;color:#fff}.rpmse-location-preview__body .button{align-self:flex-start;background:#fff;color:#0f172a;border:0;border-radius:999px}.rpmse-location-preview--text{display:block;background:#f8fafc;color:#111827;padding:18px;border:1px solid rgba(17,24,39,.08);box-shadow:none}.rpmse-location-preview--text strong{display:block;margin-top:4px}
.rpmse-guest-event--human .rpmse-guest-hero{border:0;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border-radius:28px;padding:30px;margin-bottom:18px}.rpmse-guest-event--human .rpmse-guest-hero h2,.rpmse-guest-event--human .rpmse-guest-hero p{color:#fff}.rpmse-guest-event--human .rpmse-guest-hero__status{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);color:#fff}.rpmse-guest-event--human .rpmse-guest-event-cards{border:0;background:transparent;box-shadow:none}.rpmse-guest-event--human .rpmse-guest-event-card{border:0;background:#f8fafc;border-radius:18px}
@media(max-width:900px){.rpmse-portal-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.rpmse-portal-nav__utility{grid-column:1/-1}.rpmse-location-preview{grid-template-columns:1fr}.rpmse-location-preview__map{min-height:220px}.rpmse-holder-console__metrics--quiet{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v0.9.39 — Event ownership and protected portal access */
.rpmse-owner-gate{
  margin-top:18px;
  padding:24px;
  border:1px solid rgba(15,23,42,.08);
  background:linear-gradient(135deg,#ffffff 0%,#f8fafc 100%);
  border-radius:22px;
  box-shadow:0 18px 42px rgba(15,23,42,.06);
}
.rpmse-owner-gate h4{margin:6px 0 8px;font-size:clamp(22px,3vw,32px);line-height:1.05;color:#07111f;}
.rpmse-owner-gate p{max-width:680px;color:#526174;}
.rpmse-owner-gate__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
.rpmse-portal-nav .rpmse-portal-nav__utility{white-space:nowrap;}
.rpmse-portal-card .rpmse-holder-console--single{border:0;box-shadow:none;background:transparent;padding:0;margin-top:18px;}
.rpmse-portal-card .rpmse-holder-console__head{border:0;background:transparent;padding:0 0 12px;}
.rpmse-invitation-manager--expanded{border:0;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.06);}
.rpmse-invitation-manager__body--list{align-items:start;}
@media (max-width: 760px){
  .rpmse-owner-gate{padding:18px;border-radius:18px;}
  .rpmse-owner-gate__actions .button{width:100%;text-align:center;}
}

/* v0.9.40 — Invitation CRM table + no-reload detail canon */
.rpmse-invitation-manager--expanded{
  gap:16px;
  padding:20px;
}
.rpmse-invitation-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:end;
  padding:0 0 4px;
}
.rpmse-invitation-toolbar h4{
  margin:4px 0 6px;
  color:#0f172a;
  font-size:clamp(22px,3vw,30px);
  line-height:1.1;
}
.rpmse-invitation-toolbar p{
  margin:0;
  color:#64748b;
  max-width:64ch;
}
.rpmse-invitation-toolbar__actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.rpmse-invitation-progress--thin{
  height:6px;
  border-radius:999px;
  background:#e9edf3;
  overflow:hidden;
}
.rpmse-invitation-progress--thin i{
  display:block;
  height:100%;
  border-radius:999px;
  background:#111827;
}
.rpmse-capacity-strip--minimal{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.rpmse-capacity-strip--minimal .rpmse-ui-metric,
.rpmse-capacity-strip--minimal span{
  border:0;
  background:#f8fafc;
  border-radius:14px;
  padding:12px 14px;
}
.rpmse-invitation-manager__body--list{
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:18px;
}
.rpmse-guest-crm-table{
  border:1px solid #eef2f7;
  border-radius:20px;
  overflow:hidden;
  background:#fff;
  box-shadow:none;
}
.rpmse-guest-crm-table .rpmse-ui-list__head{
  border-bottom:1px solid #eef2f7;
  padding:14px 16px;
  background:#fff;
}
.rpmse-guest-crm-table .rpmse-ui-list__head h5{
  margin:0 0 3px;
  font-size:16px;
}
.rpmse-guest-crm-table .rpmse-ui-list__head p{
  margin:0;
  color:#64748b;
  font-size:13px;
}
.rpmse-ui-list--table .rpmse-ui-list__table-head,
.rpmse-ui-list--table .rpmse-ui-list-row{
  display:grid;
  grid-template-columns:minmax(150px,1.25fr) minmax(78px,.55fr) minmax(90px,.65fr) minmax(110px,.75fr) minmax(150px,1fr) minmax(74px,.55fr) minmax(132px,.85fr) minmax(130px,.9fr);
  gap:8px;
  align-items:center;
}
.rpmse-ui-list--table .rpmse-ui-list__table-head{
  padding:10px 16px;
  background:#f8fafc;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
  border-bottom:1px solid #eef2f7;
}
.rpmse-ui-list--table .rpmse-ui-list__body{
  display:block;
}
.rpmse-ui-list--table .rpmse-ui-list-row{
  padding:12px 16px;
  border:0;
  border-bottom:1px solid #eef2f7;
  border-radius:0;
  background:#fff;
  cursor:pointer;
  transition:background .16s ease, box-shadow .16s ease;
}
.rpmse-ui-list--table .rpmse-ui-list-row:last-child{
  border-bottom:0;
}
.rpmse-ui-list--table .rpmse-ui-list-row:hover,
.rpmse-ui-list--table .rpmse-ui-list-row.is-active{
  background:#fbfdff;
  box-shadow:inset 3px 0 0 #111827;
}
.rpmse-ui-list-cell{
  min-width:0;
  color:#111827;
  font-size:13px;
  font-weight:700;
}
.rpmse-ui-list-cell__label{
  display:none;
}
.rpmse-ui-list-cell__value{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rpmse-cell-name .rpmse-ui-list-cell__value{
  font-size:14px;
  font-weight:900;
}
.rpmse-ui-list--table .rpmse-ui-list-row__actions{
  display:flex;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.rpmse-ui-list--table .rpmse-ui-list-row__actions .button{
  min-height:32px;
  padding:7px 10px!important;
  border-radius:10px!important;
  font-size:12px!important;
}
.rpmse-invitation-detail-pane .rpmse-ui-detail-panel{
  border:1px solid #eef2f7;
  border-radius:20px;
  box-shadow:none;
}
.rpmse-invitation-detail-pane.is-loading .rpmse-ui-detail-panel{
  opacity:.82;
}
.rpmse-invitation-create-pane .rpmse-guest-manager{
  border:1px solid #eef2f7;
  border-radius:18px;
  background:#fff;
  padding:12px 14px;
}
.rpmse-create-invite-details>summary,
.rpmse-bulk-guests>summary{
  cursor:pointer;
  font-weight:900;
  color:#111827;
}
@media(max-width:1120px){
  .rpmse-invitation-manager__body--list{grid-template-columns:1fr;}
  .rpmse-invitation-detail-pane .rpmse-ui-detail-panel{position:static;}
}
@media(max-width:820px){
  .rpmse-invitation-toolbar{grid-template-columns:1fr;align-items:start;}
  .rpmse-invitation-toolbar__actions{justify-content:flex-start;}
  .rpmse-capacity-strip--minimal{grid-template-columns:1fr 1fr;}
  .rpmse-ui-list--table .rpmse-ui-list__table-head{display:none;}
  .rpmse-ui-list--table .rpmse-ui-list-row{
    grid-template-columns:1fr;
    gap:8px;
    padding:14px;
    border-radius:16px;
    border:1px solid #eef2f7;
    margin:10px;
  }
  .rpmse-ui-list--table .rpmse-ui-list-row:hover,
  .rpmse-ui-list--table .rpmse-ui-list-row.is-active{box-shadow:inset 4px 0 0 #111827;}
  .rpmse-ui-list-cell{
    display:grid;
    grid-template-columns:105px minmax(0,1fr);
    gap:8px;
    align-items:center;
    font-size:13px;
  }
  .rpmse-ui-list-cell__label{
    display:block;
    color:#64748b;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
  }
  .rpmse-ui-list-cell__value{white-space:normal;}
  .rpmse-ui-list--table .rpmse-ui-list-row__actions{justify-content:flex-start;}
  .rpmse-ui-list--table .rpmse-ui-list-row__actions .button{width:auto;}
}

/* v0.9.41 — Guest Boarding Pass Hierarchy Canon */
.rpmse-guest-event--boarding-pass{display:grid;gap:18px;}
.rpmse-guest-boarding-pass{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,280px);gap:22px;align-items:stretch;border-radius:30px;background:linear-gradient(135deg,#0f172a,#172237);color:#fff;padding:28px;box-shadow:0 24px 70px rgba(15,23,42,.16);overflow:hidden;position:relative;}
.rpmse-guest-boarding-pass:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 10%,rgba(254,216,66,.20),transparent 34%),radial-gradient(circle at 88% 82%,rgba(255,255,255,.10),transparent 30%);pointer-events:none;}
.rpmse-guest-boarding-pass>*{position:relative;z-index:1;}
.rpmse-guest-boarding-pass .rpmse-kicker{color:#fed842;}
.rpmse-guest-boarding-pass h2{margin:.25rem 0 .35rem;color:#fff;font-size:clamp(34px,5vw,60px);line-height:.95;letter-spacing:-.045em;}
.rpmse-guest-boarding-pass__event{margin:0;color:#f8fafc;font-size:clamp(18px,2.2vw,25px);font-weight:850;line-height:1.1;}
.rpmse-guest-boarding-pass__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 0;padding:0;}
.rpmse-guest-boarding-pass__facts div{border-top:1px solid rgba(255,255,255,.16);padding-top:12px;min-width:0;}
.rpmse-guest-boarding-pass__facts dt{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:#fed842;margin:0 0 5px;}
.rpmse-guest-boarding-pass__facts dd{margin:0;color:#fff;font-weight:750;line-height:1.25;overflow-wrap:anywhere;}
.rpmse-guest-boarding-pass__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.rpmse-guest-boarding-pass__actions .button{border-radius:999px!important;border:0!important;box-shadow:none!important;}
.rpmse-guest-boarding-pass__actions .button:not(.button-primary){background:rgba(255,255,255,.12)!important;color:#fff!important;}
.rpmse-guest-boarding-pass__qr{display:grid;align-content:center;justify-items:center;text-align:center;gap:8px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:18px;backdrop-filter:blur(8px);}
.rpmse-guest-boarding-pass__qr img{width:min(190px,100%);background:#fff;border-radius:18px;padding:10px;border:1px solid rgba(255,255,255,.18);}
.rpmse-guest-boarding-pass__qr strong{color:#fff;font-size:15px;}
.rpmse-guest-boarding-pass__qr span{color:#dbeafe;font-size:13px;line-height:1.35;}
.rpmse-guest-boarding-pass__qr-placeholder{width:150px;aspect-ratio:1;display:grid;place-items:center;border-radius:22px;background:rgba(255,255,255,.12);border:1px dashed rgba(255,255,255,.34);color:#fed842;font-weight:950;text-transform:uppercase;letter-spacing:.06em;font-size:13px;}
.rpmse-guest-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.rpmse-ticket-screen--boarding-pass{max-width:980px;margin-inline:auto;}
.rpmse-ticket-screen--boarding-pass .rpmse-location-preview{margin-top:18px;}
.rpmse-guest-invitation .rpmse-access-pass-card{display:none;}
@media(max-width:860px){.rpmse-guest-boarding-pass{grid-template-columns:1fr;padding:22px;border-radius:26px}.rpmse-guest-boarding-pass__facts{grid-template-columns:1fr}.rpmse-guest-boarding-pass__qr{justify-items:start;text-align:left}.rpmse-guest-support-grid{grid-template-columns:1fr}}

/* v0.9.42 — Boarding Pass Map Integration Canon */
.rpmse-guest-boarding-pass__actions:empty{display:none;margin:0;}
.rpmse-guest-boarding-pass__route{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,1fr) minmax(230px,.55fr);overflow:hidden;min-height:220px;margin-top:2px;border:1px solid rgba(255,255,255,.16);border-top:1px dashed rgba(255,255,255,.28);border-radius:24px;background:rgba(255,255,255,.08);}
.rpmse-guest-boarding-pass__route-map{min-height:220px;background:#e5e7eb;z-index:1;}
.rpmse-guest-boarding-pass__route-map--text{display:grid;place-items:center;padding:18px;color:#0f172a;text-align:center;font-weight:800;}
.rpmse-guest-boarding-pass__route-body{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:24px;color:#fff;}
.rpmse-guest-boarding-pass__route-body strong{color:#fff;font-size:clamp(20px,2.4vw,28px);line-height:1.08;overflow-wrap:anywhere;}
.rpmse-guest-boarding-pass__route-body .button{border-radius:999px!important;border:0!important;background:#fff!important;color:#0f172a!important;box-shadow:none!important;}
.rpmse-guest-boarding-pass__route .leaflet-container{font-family:inherit;}
.rpmse-guest-boarding-pass__route .leaflet-control-attribution{font-size:10px;}
@media(max-width:860px){.rpmse-guest-boarding-pass__route{grid-template-columns:1fr;min-height:0}.rpmse-guest-boarding-pass__route-map{min-height:190px}.rpmse-guest-boarding-pass__route-body{padding:18px}}


/* v0.9.43 — Compact Boarding Pass Focus Canon
   UI-only refinement. Keeps QR, RSVP, guest keys, check-in, map, WooCommerce and REST contracts intact. */
.rpmse-guest-event--boarding-pass{
  gap:14px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass{
  grid-template-columns:minmax(0,1fr) minmax(190px,235px);
  gap:16px;
  padding:24px;
  border-radius:26px;
  box-shadow:0 20px 52px rgba(15,23,42,.14);
}
.rpmse-density-modern .rpmse-guest-boarding-pass:before{
  background:radial-gradient(circle at 14% 12%,rgba(254,216,66,.14),transparent 30%),linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,0));
}
.rpmse-density-modern .rpmse-guest-boarding-pass h2{
  font-size:clamp(34px,4.2vw,48px);
  line-height:1;
  margin:.2rem 0 .3rem;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__event{
  font-size:clamp(17px,2vw,23px);
  max-width:780px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__facts{
  gap:8px;
  margin:18px 0 0;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__facts div{
  padding-top:10px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__facts dd{
  font-size:15px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__actions{
  margin-top:18px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__actions .button.button-primary{
  background:#fed842!important;
  color:#0f172a!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__qr{
  padding:14px;
  border-radius:22px;
  align-content:center;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__qr img{
  width:min(158px,100%);
  border-radius:16px;
  padding:9px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__qr-placeholder{
  width:132px;
  border-radius:18px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__route{
  grid-template-columns:minmax(260px,1.35fr) minmax(210px,.65fr);
  min-height:156px;
  margin-top:0;
  border-radius:22px;
  border-color:rgba(255,255,255,.13);
  border-top:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.065);
}
.rpmse-density-modern .rpmse-guest-boarding-pass__route-map{
  min-height:156px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__route-body{
  gap:10px;
  padding:18px 20px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass__route-body strong{
  font-size:clamp(18px,2.1vw,24px);
}
.rpmse-density-modern .rpmse-guest-boarding-pass__route-body .button{
  padding:8px 14px!important;
  line-height:1.1!important;
}
.rpmse-density-modern .rpmse-guest-support-grid{
  gap:10px;
}
.rpmse-density-modern .rpmse-guest-event-card{
  box-shadow:none!important;
  border:1px solid #e8edf4!important;
  background:#f8fafc!important;
  border-radius:18px!important;
  padding:13px 15px!important;
}
.rpmse-density-modern .rpmse-guest-event-card p{
  margin:.25rem 0 0;
}
.rpmse-density-modern .rpmse-guest-rsvp-panel{
  box-shadow:none!important;
  border-color:#e8edf4!important;
}
.rpmse-ticket-screen--boarding-pass .rpmse-guest-boarding-pass{
  max-width:900px;
  margin-inline:auto;
}
@media(max-width:860px){
  .rpmse-density-modern .rpmse-guest-boarding-pass{
    grid-template-columns:1fr;
    padding:20px;
    border-radius:24px;
  }
  .rpmse-density-modern .rpmse-guest-boarding-pass__facts{
    grid-template-columns:1fr;
  }
  .rpmse-density-modern .rpmse-guest-boarding-pass__qr{
    justify-items:center;
    text-align:center;
  }
  .rpmse-density-modern .rpmse-guest-boarding-pass__route{
    grid-template-columns:1fr;
    min-height:0;
  }
  .rpmse-density-modern .rpmse-guest-boarding-pass__route-map{
    min-height:148px;
  }
  .rpmse-density-modern .rpmse-guest-boarding-pass__route-body{
    padding:15px 16px;
  }
}

/* v0.9.45 — Ticket Visual Skill Map Contrast Canon
   The route map, QR panel and text contrast are governed by the same service-level visual skill. */
.rpmse-density-modern .rpmse-guest-boarding-pass--single{
  --rpmse-ticket-accent:#fed842;
  --rpmse-ticket-bg:#111827;
  --rpmse-ticket-panel:#202b3f;
  --rpmse-ticket-text:#fff;
  --rpmse-ticket-muted:#dbeafe;
  --rpmse-ticket-action-bg:#fff;
  --rpmse-ticket-action-text:#0f172a;
  --rpmse-ticket-map-overlay:#fed842;
  --rpmse-ticket-map-overlay-opacity:.12;
  --rpmse-ticket-map-filter:saturate(.82) contrast(1.04) brightness(.96);
  background:linear-gradient(135deg,var(--rpmse-ticket-bg),#182235);
  color:var(--rpmse-ticket-text);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-kicker,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__facts dt{
  color:var(--rpmse-ticket-accent);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single h2,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__event,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__facts dd,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-body,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-body strong,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__qr strong{
  color:var(--rpmse-ticket-text)!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__qr span{color:var(--rpmse-ticket-muted)!important;}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__qr,
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route{
  background:var(--rpmse-ticket-panel);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__actions{display:none!important;}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-map{
  position:relative;
  overflow:hidden;
  background:var(--rpmse-ticket-panel);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-map .leaflet-tile-pane{
  filter:var(--rpmse-ticket-map-filter);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-map:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:400;
  pointer-events:none;
  background:var(--rpmse-ticket-map-overlay);
  opacity:var(--rpmse-ticket-map-overlay-opacity);
  mix-blend-mode:multiply;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-map--text{
  color:var(--rpmse-ticket-text)!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--single .rpmse-guest-boarding-pass__route-body .button{
  background:var(--rpmse-ticket-action-bg)!important;
  color:var(--rpmse-ticket-action-text)!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-light_clean{
  --rpmse-ticket-accent:#d69e12;
  --rpmse-ticket-bg:#f8fafc;
  --rpmse-ticket-panel:#ffffff;
  --rpmse-ticket-text:#0f172a;
  --rpmse-ticket-muted:#475569;
  --rpmse-ticket-action-bg:#0f172a;
  --rpmse-ticket-action-text:#ffffff;
  --rpmse-ticket-map-overlay:#d69e12;
  --rpmse-ticket-map-overlay-opacity:.08;
  --rpmse-ticket-map-filter:saturate(.66) contrast(.98) brightness(1.02);
  color:#0f172a;
  border:1px solid #e8edf4;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-warm_event{
  --rpmse-ticket-accent:#f59e0b;
  --rpmse-ticket-bg:#23130a;
  --rpmse-ticket-panel:#3a2415;
  --rpmse-ticket-text:#fff7ed;
  --rpmse-ticket-muted:#fed7aa;
  --rpmse-ticket-action-bg:#fff7ed;
  --rpmse-ticket-action-text:#23130a;
  --rpmse-ticket-map-overlay:#f59e0b;
  --rpmse-ticket-map-overlay-opacity:.18;
  --rpmse-ticket-map-filter:sepia(.32) saturate(.86) contrast(1.04) brightness(.94);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-dark_premium{
  --rpmse-ticket-accent:#d6c37a;
  --rpmse-ticket-bg:#05070b;
  --rpmse-ticket-panel:#10151f;
  --rpmse-ticket-text:#ffffff;
  --rpmse-ticket-muted:#cbd5e1;
  --rpmse-ticket-action-bg:#f8fafc;
  --rpmse-ticket-action-text:#05070b;
  --rpmse-ticket-map-overlay:#d6c37a;
  --rpmse-ticket-map-overlay-opacity:.22;
  --rpmse-ticket-map-filter:grayscale(.35) saturate(.72) contrast(1.1) brightness(.78);
}
.rpmse-guest-terms{
  border:1px solid #e8edf4;
  border-radius:18px;
  background:#fff;
  padding:0;
  overflow:hidden;
}
.rpmse-guest-terms summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  padding:14px 16px;
  font-weight:900;
  color:#0f172a;
}
.rpmse-guest-terms summary::-webkit-details-marker{display:none;}
.rpmse-guest-terms summary small{font-weight:700;color:#64748b;}
.rpmse-guest-terms p{margin:0;padding:0 16px 14px;color:#475569;line-height:1.5;}
.rpmse-guest-terms > small{display:block;padding:0 16px 14px;color:#94a3b8;font-weight:700;}
.rpmse-guest-rsvp-actions{
  border:1px solid #e8edf4;
  background:#fff;
  border-radius:20px;
  padding:16px;
  display:grid;
  grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.rpmse-guest-rsvp-actions > div strong{display:block;color:#0f172a;font-size:20px;margin-top:4px;}
.rpmse-guest-rsvp-actions .rpmse-rsvp-form--modern{margin:0;}
.rpmse-guest-rsvp-actions .rpmse-rsvp-choice-grid{margin:0 0 10px;justify-content:flex-start;}
.rpmse-guest-rsvp-actions .rpmse-rsvp-choice-grid .button[value="cancelled"]{background:#fee2e2!important;color:#991b1b!important;border:0!important;font-weight:900;}
.rpmse-guest-rsvp-actions textarea{min-height:74px;}
@media(max-width:760px){
  .rpmse-guest-rsvp-actions{grid-template-columns:1fr;}
}

/* v0.9.49 — Ticket Design System & Access Credentials Canon
   Adds a clean event-pass visual skill inspired by physical/digital access tickets.
   QR remains the primary credential; NFC is an optional staff-side enhancement only. */
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean{
  --rpmse-ticket-header:#07151b;
  --rpmse-ticket-accent:#12a37f;
  --rpmse-ticket-bg:#f7f8f4;
  --rpmse-ticket-panel:#ffffff;
  --rpmse-ticket-text:#101820;
  --rpmse-ticket-muted:#5f6975;
  --rpmse-ticket-action-bg:#07151b;
  --rpmse-ticket-action-text:#ffffff;
  --rpmse-ticket-map-overlay:#12a37f;
  --rpmse-ticket-map-overlay-opacity:.04;
  --rpmse-ticket-map-filter:saturate(.72) contrast(1.02) brightness(1.04);
  grid-template-columns:minmax(0,1fr) minmax(220px,300px);
  gap:0;
  padding:0;
  border:1px solid #d9dedc;
  border-radius:28px;
  background:var(--rpmse-ticket-bg)!important;
  color:var(--rpmse-ticket-text)!important;
  box-shadow:0 28px 70px rgba(16,24,32,.12);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean:before{display:none;}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__main{
  padding:28px 30px 0;
  background:var(--rpmse-ticket-header);
  color:#fff;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-kicker,
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts dt{
  color:var(--rpmse-ticket-accent)!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean h2,
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__event{
  color:#fff!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean h2{
  font-size:clamp(34px,4.8vw,54px);
  letter-spacing:-.035em;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__event{
  max-width:720px;
  margin-bottom:18px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin:22px -30px 0;
  padding:18px 30px;
  background:var(--rpmse-ticket-panel);
  border-top:1px solid rgba(255,255,255,.16);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts div{
  border-top:0;
  padding:0 18px 0 0;
  border-right:1px solid #d9dedc;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts div:last-child{border-right:0;}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts dd{
  color:var(--rpmse-ticket-text)!important;
  font-size:16px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__qr{
  margin:18px;
  background:var(--rpmse-ticket-panel)!important;
  border:1px solid #d9dedc;
  border-radius:22px;
  color:var(--rpmse-ticket-text)!important;
  box-shadow:0 10px 34px rgba(16,24,32,.08);
  backdrop-filter:none;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__qr img{
  width:min(200px,100%);
  border-radius:12px;
  border:0;
  padding:8px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__qr strong{
  color:var(--rpmse-ticket-text)!important;
  font-size:16px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__qr span,
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__credential-note{
  color:var(--rpmse-ticket-muted)!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__credential-note{
  display:block;
  font-size:11px;
  line-height:1.35;
  max-width:210px;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__route{
  grid-column:1/-1;
  grid-template-columns:minmax(280px,1fr) minmax(220px,300px);
  min-height:160px;
  margin:0;
  border:0;
  border-top:1px dashed #aeb8b4;
  border-radius:0;
  background:var(--rpmse-ticket-panel)!important;
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__route-map{min-height:160px;background:#eef1ed!important;}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__route-body{
  padding:22px;
  color:var(--rpmse-ticket-text)!important;
  background:var(--rpmse-ticket-panel);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__route-body strong{
  color:var(--rpmse-ticket-text)!important;
  font-size:clamp(18px,2vw,24px);
}
.rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__route-body .button{
  background:var(--rpmse-ticket-action-bg)!important;
  color:var(--rpmse-ticket-action-text)!important;
  border-radius:999px!important;
}
@media(max-width:860px){
  .rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean{grid-template-columns:1fr;border-radius:22px;}
  .rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__main{padding:24px 22px 0;}
  .rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts{grid-template-columns:1fr;margin:20px -22px 0;padding:14px 22px;gap:12px;}
  .rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts div{border-right:0;border-bottom:1px solid #d9dedc;padding:0 0 12px;}
  .rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__facts div:last-child{border-bottom:0;padding-bottom:0;}
  .rpmse-density-modern .rpmse-guest-boarding-pass--skill-event_pass_clean .rpmse-guest-boarding-pass__route{grid-template-columns:1fr;}
}
.rpmse-staff-checkin .rpmse-nfc-status{margin:.55rem 0;color:#64748b;font-weight:700;}
.rpmse-staff-checkin .rpmse-nfc-scan[disabled]{opacity:.55;cursor:not-allowed;}


/* v0.9.51 — NFC access validation console */
.rpmse-staff-checkin{border:1px solid rgba(15,23,42,.1);border-radius:22px;background:#fff;padding:20px;box-shadow:0 16px 44px rgba(15,23,42,.08)}
.rpmse-staff-checkin input.rpmse-checkin-token{width:100%;max-width:720px;margin:.8rem 0;padding:13px 14px;border:1px solid rgba(15,23,42,.16);border-radius:14px;font-weight:700;letter-spacing:.01em}
.rpmse-checkin-console__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:.4rem 0 .6rem}
.rpmse-staff-checkin .rpmse-nfc-status{margin:.55rem 0;color:#64748b;font-weight:700}.rpmse-staff-checkin .rpmse-nfc-status[data-state="success"]{color:#087443}.rpmse-staff-checkin .rpmse-nfc-status[data-state="error"]{color:#b42318}.rpmse-staff-checkin .rpmse-nfc-status[data-state="loading"]{color:#1d4ed8}.rpmse-staff-checkin .rpmse-nfc-scan[disabled]{opacity:.55;cursor:not-allowed}.rpmse-staff-checkin .rpmse-checkin-result{min-height:72px;border-radius:16px;background:#0f172a;color:#e2e8f0;padding:14px;overflow:auto}.rpmse-staff-checkin .rpmse-checkin-result[data-state="checked_in"]{background:#064e3b}.rpmse-staff-checkin .rpmse-checkin-result[data-state="duplicate"]{background:#78350f}.rpmse-staff-checkin .rpmse-checkin-result[data-state="error"]{background:#7f1d1d}

/* v0.9.52 — QR Staff Validation Gate */
.rpmse-access-gate,
.rpmse-access-validation{
  max-width: 760px;
  margin: 0 auto 24px;
}
.rpmse-access-gate form,
.rpmse-access-validation__form{
  margin-top: 18px;
}
.rpmse-access-validation__head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:18px;
}
.rpmse-access-validation__head h2{
  margin:.2rem 0 .1rem;
  font-size:clamp(28px,4vw,48px);
  line-height:1;
}
.rpmse-access-validation__facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
.rpmse-access-validation__facts div{
  background:#f7f8fb;
  border:1px solid #edf0f4;
  border-radius:16px;
  padding:12px;
}
.rpmse-access-validation__facts dt{
  margin:0 0 6px;
  font-size:11px;
  line-height:1.1;
  color:#5d6675;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:800;
}
.rpmse-access-validation__facts dd{
  margin:0;
  color:#0f172a;
  font-weight:800;
  overflow-wrap:anywhere;
}
.rpmse-access-validation__form{
  display:grid;
  gap:12px;
  grid-template-columns:1fr auto;
  align-items:end;
  border-top:1px solid #edf0f4;
  padding-top:16px;
}
.rpmse-access-validation__form label span{
  display:block;
  margin:0 0 6px;
  font-weight:700;
}
.rpmse-access-validation--used,
.rpmse-access-validation--duplicate{
  border-color:#d9f4e4;
  box-shadow:0 22px 60px rgba(15,23,42,.08);
}
@media (max-width: 760px){
  .rpmse-access-validation__head{display:block;}
  .rpmse-access-validation__facts{grid-template-columns:1fr 1fr;}
  .rpmse-access-validation__form{grid-template-columns:1fr;}
}
@media (max-width: 480px){
  .rpmse-access-validation__facts{grid-template-columns:1fr;}
}

/* v0.9.59 — Visual Token Isolation for Terms
   Terms/conditions no longer inherit ticket colors implicitly. */
.rpmse-guest-terms{
  background:var(--rpmse-terms-bg,#fff);
  border-color:var(--rpmse-terms-accent,#e8edf4);
  color:var(--rpmse-terms-text,#0f172a);
}
.rpmse-guest-terms summary{
  background:var(--rpmse-terms-panel,#fff);
  color:var(--rpmse-terms-text,#0f172a);
}
.rpmse-guest-terms summary span{color:var(--rpmse-terms-text,#0f172a);}
.rpmse-guest-terms summary small{color:var(--rpmse-terms-muted,#64748b);}
.rpmse-guest-terms p{color:var(--rpmse-terms-text,#475569);}
.rpmse-guest-terms > small{color:var(--rpmse-terms-muted,#94a3b8);}

/* v0.9.62 — Public Services Calendar & Map Surface Canon */
.rpmse-public-surface{margin:24px 0;padding:0;color:#111827;}
.rpmse-public-surface__head{margin-bottom:18px;display:grid;gap:6px;}
.rpmse-public-surface__head h2{margin:0;font-size:clamp(1.5rem,2.5vw,2.4rem);line-height:1.05;color:#111827;}
.rpmse-public-surface__head p{margin:0;max-width:760px;color:#4b5563;}
.rpmse-public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
.rpmse-public-card{background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:var(--rpmse-radius,18px);padding:18px;box-shadow:0 14px 38px rgba(15,23,42,.07);display:flex;flex-direction:column;gap:10px;}
.rpmse-public-card h3{margin:0;color:#111827;font-size:1.12rem;line-height:1.2;}
.rpmse-public-card p{margin:0;color:#4b5563;}
.rpmse-public-card__meta{display:grid;gap:4px;color:#6b7280;font-size:.92rem;margin-top:auto;}
.rpmse-public-calendar-list{display:grid;gap:16px;}
.rpmse-public-day{background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:var(--rpmse-radius,18px);padding:16px;box-shadow:0 14px 38px rgba(15,23,42,.06);}
.rpmse-public-day h3{margin:0 0 12px;color:#111827;}
.rpmse-public-event-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-top:1px solid rgba(17,24,39,.08);}
.rpmse-public-event-row:first-of-type{border-top:0;}
.rpmse-public-event-row strong{display:block;color:#111827;}
.rpmse-public-event-row span{display:block;color:#6b7280;font-size:.92rem;}
.rpmse-public-map-shell{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,.82fr);gap:18px;align-items:start;}
.rpmse-public-map-placeholder{min-height:340px;border-radius:var(--rpmse-radius,18px);border:1px dashed rgba(17,24,39,.25);background:linear-gradient(135deg,rgba(17,24,39,.06),rgba(245,158,11,.08));display:grid;place-content:center;text-align:center;padding:24px;color:#111827;}
.rpmse-public-map-placeholder strong{font-size:1.25rem;display:block;}
.rpmse-public-map-placeholder span{color:#6b7280;}
.rpmse-public-map-list{display:grid;gap:14px;max-height:580px;overflow:auto;padding-right:4px;}
.rpmse-public-contract{margin-top:18px;background:#f9fafb;border:1px solid rgba(17,24,39,.12);border-radius:12px;padding:12px;}
.rpmse-public-contract pre{white-space:pre-wrap;overflow:auto;max-height:420px;}
@media (max-width:780px){.rpmse-public-map-shell{grid-template-columns:1fr}.rpmse-public-event-row{align-items:flex-start;flex-direction:column}.rpmse-public-map-list{max-height:none;}}

/* v0.9.64 Role Portals */
.rpmse-role-portal .rpmse-role-hero { display: grid; gap: 10px; }
.rpmse-role-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.rpmse-role-list { display: grid; gap: 12px; }
.rpmse-role-card { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 14px; border: 1px solid rgba(17,24,39,.12); border-radius: var(--rpmse-radius, 18px); background: #fff; }
.rpmse-role-card strong { display: block; color: #111827; }
.rpmse-role-card small { display: block; color: #6b7280; margin-top: 3px; }
.rpmse-role-card p { margin: 6px 0 0; color: #374151; }
.rpmse-role-action-form { display: flex; align-items: center; gap: 8px; margin: 0; }
.rpmse-role-action-form input[type="text"] { min-width: 180px; max-width: 260px; }
@media (max-width: 720px) {
  .rpmse-role-card { grid-template-columns: 1fr; align-items: stretch; }
  .rpmse-role-action-form { align-items: stretch; flex-direction: column; }
  .rpmse-role-action-form input[type="text"] { min-width: 0; max-width: none; width: 100%; }
}

/* v0.9.66 — unified role portal role switch */
.rpmse-role-switch{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(15,23,42,.10)}
.rpmse-role-switch a{display:inline-flex;align-items:center;border:1px solid rgba(15,23,42,.14);border-radius:999px;padding:.35rem .7rem;text-decoration:none;background:#fff;color:#1f2937;font-size:.9rem;font-weight:700}
.rpmse-role-switch a.is-active{background:#111827;color:#fff;border-color:#111827}
.rpmse-role-card small{display:block;margin:.2rem 0 .35rem;color:#64748b}


/* v0.9.69 — Unified Account Workspace & Staff Visual Parity */
.rpmse-account-shell{border:1px solid rgba(15,23,42,.08);border-radius:28px;background:linear-gradient(135deg,#ffffff 0%,#f8fafc 58%,#fff7ed 100%);box-shadow:0 24px 70px rgba(15,23,42,.08);padding:22px;margin:0 0 18px;display:grid;gap:16px}
.rpmse-account-shell__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.rpmse-account-shell__head h2{margin:.2rem 0 .45rem;font-size:clamp(28px,4vw,44px);line-height:1.02;letter-spacing:-.035em;color:#0f172a}
.rpmse-account-shell__head p{margin:0;color:#475569;max-width:760px;font-size:15px;line-height:1.55}
.rpmse-account-shell__roles{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:360px}
.rpmse-account-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:8px;background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.06);border-radius:20px}
.rpmse-account-tabs a{display:flex;flex-direction:column;gap:3px;text-decoration:none;border-radius:16px;padding:13px 14px;color:#0f172a;background:transparent;border:1px solid transparent;transition:.15s ease}
.rpmse-account-tabs a strong{font-size:15px;line-height:1.1}.rpmse-account-tabs a span{font-size:12px;color:#64748b;font-weight:700}
.rpmse-account-tabs a:hover{background:#fff;border-color:rgba(15,23,42,.08);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.rpmse-account-tabs a.is-active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 14px 32px rgba(15,23,42,.14)}
.rpmse-account-tabs a.is-active span{color:#cbd5e1}.rpmse-person-workspace .rpmse-portal-index__hero,.rpmse-staff-portal .rpmse-portal-index__hero{margin-top:0}
.rpmse-staff-portal{max-width:980px;margin:0 auto;padding:0 16px}.rpmse-staff-portal .rpmse-card{border-radius:22px;box-shadow:0 18px 50px rgba(15,23,42,.07);border-color:#edf2f7}.rpmse-staff-portal .rpmse-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.rpmse-staff-reservation{border-radius:20px;border-color:#edf2f7;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.rpmse-role-portal{max-width:980px;margin:0 auto;padding:0 16px}.rpmse-role-portal .rpmse-role-hero{border-radius:28px;background:linear-gradient(135deg,#0f172a,#263449);color:#fff;box-shadow:0 24px 70px rgba(15,23,42,.16);border:0}.rpmse-role-portal .rpmse-role-hero h2{color:#fff}.rpmse-role-portal .rpmse-role-hero p{color:#dbeafe}.rpmse-role-portal .rpmse-role-hero .rpmse-kicker{color:#fed842}.rpmse-role-portal .rpmse-role-hero .rpmse-badge{background:rgba(255,255,255,.12);color:#fff}.rpmse-role-portal .rpmse-role-switch{border-top-color:rgba(255,255,255,.18)}.rpmse-role-portal .rpmse-role-switch .rpmse-muted{color:#dbeafe}.rpmse-role-portal .rpmse-role-switch a{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.20);color:#fff}.rpmse-role-portal .rpmse-role-switch a.is-active{background:#fff;color:#0f172a;border-color:#fff}.rpmse-role-card{border-radius:20px;border-color:#edf2f7;box-shadow:0 10px 28px rgba(15,23,42,.05)}
@media(max-width:760px){.rpmse-account-shell__head{grid-template-columns:1fr}.rpmse-account-shell__roles{justify-content:flex-start}.rpmse-account-tabs{grid-template-columns:1fr}.rpmse-staff-portal,.rpmse-role-portal{padding:0}.rpmse-staff-portal .rpmse-calendar-head{display:grid}}

/* v0.9.70 — account workspace/staff parity density tuning */
.rpmse-account-shell,.rpmse-staff-portal .rpmse-card,.rpmse-role-portal .rpmse-card{box-shadow:0 16px 44px rgba(15,23,42,.06)}
.rpmse-account-shell .rpmse-card,.rpmse-staff-portal .rpmse-card .rpmse-card,.rpmse-role-portal .rpmse-card .rpmse-card{box-shadow:none}
.rpmse-staff-portal .rpmse-calendar-cell,.rpmse-role-portal .rpmse-ui-card{box-shadow:none}

/* v0.9.72 — Service UI System / promoted rails. Flat surfaces: header + horizontal track + reusable cards. */
.rpmse-service-rail,.rpmse-service-axis{margin:28px 0;padding:0;border:0;background:transparent;color:var(--rpmse-text,#111827)}
.rpmse-service-rail__head,.rpmse-service-axis__head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 14px}
.rpmse-service-rail__head h3,.rpmse-service-axis__head h3{margin:.15rem 0 .25rem;font-size:clamp(22px,3vw,32px);line-height:1.08}
.rpmse-service-rail__head p,.rpmse-service-axis__head p{margin:0;color:var(--rpmse-muted,#64748b);max-width:760px}
.rpmse-service-rail__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(245px,320px);gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 2px 12px;scroll-snap-type:x proximity}
.rpmse-service-rail__track>.rpmse-ui-card{scroll-snap-align:start;min-height:100%;box-shadow:0 12px 32px rgba(15,23,42,.08)}
.rpmse-service-component-card{border:1px solid var(--rpmse-line,#e5e7eb);border-radius:var(--rpmse-radius,18px);background:#fff;padding:18px;display:grid;gap:12px;align-content:start}
.rpmse-service-component-card .rpmse-ui-card__main{display:grid;gap:6px}
.rpmse-service-component-card h4{font-size:18px;line-height:1.18;margin:0}
.rpmse-service-component-card p{margin:0;color:var(--rpmse-muted,#64748b)}
.rpmse-service-component-card .rpmse-ui-card__meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.rpmse-service-component-card .rpmse-ui-card__meta span{font-size:12px;font-weight:800;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:999px;padding:6px 9px;background:var(--rpmse-soft,#f8fafc)}
.rpmse-service-component-card .rpmse-ui-card__badges{display:flex;flex-wrap:wrap;gap:7px}
.rpmse-service-component-card .rpmse-ui-card__actions{align-self:end;margin-top:2px}
.rpmse-service-axis__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.rpmse-service-axis__item{box-shadow:none;border:1px solid var(--rpmse-line,#e5e7eb)}
@media(max-width:760px){.rpmse-service-rail__head{display:block}.rpmse-service-rail__track{grid-auto-columns:minmax(78%,1fr)}}

/* v0.9.73 — Public Service Explorer & Directory Search Canon.
   Flat search + map/list surface for /servicios/. Reuses RPMSE cards, buttons and badges. */
.rpmse-service-explorer{margin:28px 0;color:var(--rpmse-text,#111827)}
.rpmse-service-explorer__hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;margin:0 0 16px}
.rpmse-service-explorer__hero h2{margin:.12rem 0 .35rem;font-size:clamp(28px,4vw,48px);line-height:1.02;letter-spacing:-.035em;color:#0f172a}
.rpmse-service-explorer__hero p{margin:0;max-width:840px;color:var(--rpmse-muted,#64748b);line-height:1.55}
.rpmse-service-explorer__count{display:grid;place-items:center;min-width:112px;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:20px;background:#fff;padding:12px;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.rpmse-service-explorer__count strong{font-size:28px;line-height:1;color:#0f172a}.rpmse-service-explorer__count span{font-size:12px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.rpmse-service-explorer__filters{display:grid;gap:12px;margin:0 0 18px;padding:14px;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.05)}
.rpmse-service-explorer__filters label{display:grid;gap:5px;margin:0;color:#0f172a;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.rpmse-service-explorer__filters input,.rpmse-service-explorer__filters select{width:100%;min-height:42px;border:1px solid #d7dee8;border-radius:14px;padding:8px 11px;background:#fff;color:#111827;font-size:14px;text-transform:none;letter-spacing:0;font-weight:600}
.rpmse-service-explorer__search{grid-column:1/-1}.rpmse-service-explorer__selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.rpmse-service-explorer__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rpmse-service-explorer__chips{display:flex;gap:8px;flex-wrap:wrap;padding-top:2px}.rpmse-service-explorer__chips a{display:inline-flex;align-items:center;border:1px solid var(--rpmse-line,#e5e7eb);background:#f8fafc;border-radius:999px;padding:7px 10px;text-decoration:none;color:#0f172a;font-size:12px;font-weight:900}
.rpmse-service-explorer__layout{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1fr);gap:18px;align-items:start}.rpmse-service-explorer__map{position:sticky;top:96px;min-height:380px;border:1px dashed rgba(15,23,42,.22);border-radius:24px;background:linear-gradient(135deg,rgba(15,23,42,.055),rgba(235,70,74,.08));display:grid;place-content:center;text-align:center;padding:22px;color:#0f172a}.rpmse-service-explorer__map strong{font-size:22px;display:block}.rpmse-service-explorer__map span{display:block;color:#475569;font-weight:800;margin-top:6px}.rpmse-service-explorer__map small{display:block;max-width:320px;color:#64748b;margin-top:8px;line-height:1.45}.rpmse-service-explorer__results{display:grid;gap:12px}.rpmse-service-explorer-card{box-shadow:0 10px 28px rgba(15,23,42,.055);border-color:var(--rpmse-line,#e5e7eb)}.rpmse-service-explorer-card .rpmse-ui-card__meta{display:flex;flex-wrap:wrap;gap:7px}.rpmse-service-explorer-card .rpmse-ui-card__meta span{font-size:12px;font-weight:800;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:999px;padding:6px 9px;background:#f8fafc}.rpmse-service-explorer-card .rpmse-ui-card__badges{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:860px){.rpmse-service-explorer__hero,.rpmse-service-explorer__layout{grid-template-columns:1fr}.rpmse-service-explorer__count{place-items:start;min-width:0}.rpmse-service-explorer__map{position:relative;top:auto;min-height:220px}}

/* v0.9.74 — service calendar / announcement cards. Reuses RPMSE public surfaces without nested card stacks. */
.rpmse-service-calendar{margin:28px 0;color:var(--rpmse-text,#111827)}
.rpmse-service-calendar__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 16px;border-bottom:1px solid var(--rpmse-line,#e5e7eb);padding-bottom:14px}
.rpmse-service-calendar__head h2{margin:.1rem 0 .25rem;font-size:clamp(26px,4vw,44px);line-height:1.04;letter-spacing:-.035em;color:#0f172a}.rpmse-service-calendar__head p{margin:0;color:#64748b;max-width:840px}.rpmse-service-calendar__head>strong{display:grid;place-items:center;min-width:58px;height:58px;border-radius:18px;background:#0f172a;color:#fff;font-size:22px}
.rpmse-service-calendar__agenda{display:grid;gap:18px}.rpmse-service-calendar__day{display:grid;gap:10px}.rpmse-service-calendar__day h3{margin:0;color:#0f172a;font-size:16px;text-transform:uppercase;letter-spacing:.06em}.rpmse-service-calendar__items{display:grid;gap:10px}
.rpmse-service-calendar-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:stretch;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:20px;background:#fff;padding:10px;box-shadow:0 10px 26px rgba(15,23,42,.045)}
.rpmse-service-calendar-card__media{border-radius:15px;overflow:hidden;background:#f1f5f9;min-height:104px}.rpmse-service-calendar-card__media img{width:100%;height:100%;object-fit:cover;display:block}.rpmse-service-calendar-card__body{display:grid;gap:7px;align-content:center}.rpmse-service-calendar-card__body h4{margin:0;color:#0f172a;font-size:18px;line-height:1.15}.rpmse-service-calendar-card__body p{margin:0;color:#64748b;line-height:1.45}.rpmse-service-calendar-card__badges{display:flex;gap:6px;flex-wrap:wrap}.rpmse-service-calendar-card__meta{display:flex;gap:7px;flex-wrap:wrap}.rpmse-service-calendar-card__meta span{font-size:12px;font-weight:800;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:999px;padding:5px 8px;background:#f8fafc;color:#334155}.rpmse-badge--accent{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.rpmse-service-explorer__calendar-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:22px;background:#fff;padding:12px;margin:0 0 18px;box-shadow:0 10px 24px rgba(15,23,42,.045)}
.rpmse-service-explorer__calendar-strip>div:first-child{display:grid;gap:2px;min-width:150px}.rpmse-service-explorer__calendar-strip strong{color:#0f172a}.rpmse-service-explorer__calendar-items{display:flex;gap:8px;overflow:auto;padding-bottom:2px}.rpmse-service-explorer__calendar-item{min-width:170px;display:grid;gap:3px;text-decoration:none;border:1px solid var(--rpmse-line,#e5e7eb);border-radius:16px;background:#f8fafc;padding:9px;color:#0f172a}.rpmse-service-explorer__calendar-item span{font-size:11px;font-weight:900;color:#eb464a;text-transform:uppercase;letter-spacing:.05em}.rpmse-service-explorer__calendar-item strong{font-size:13px;line-height:1.2}.rpmse-service-explorer__calendar-item em{font-size:11px;color:#64748b;font-style:normal}
@media(max-width:720px){.rpmse-service-calendar__head,.rpmse-service-explorer__calendar-strip{display:grid}.rpmse-service-calendar-card{grid-template-columns:1fr}.rpmse-service-calendar-card__media{min-height:160px}}

/* v0.9.78 — public service submit consumer UX. Flat, client-facing RPM visual language. */
.rpmse-service-submit{max-width:1040px;margin:0 auto;padding:clamp(18px,3vw,34px);background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:22px;box-shadow:0 18px 45px rgba(15,23,42,.06)}
.rpmse-service-submit__head{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}.rpmse-service-submit__head h2{margin:0;font-size:clamp(28px,4vw,44px);line-height:1.02}.rpmse-service-submit__head p{margin:0;color:#64748b;max-width:760px}
.rpmse-service-submit__form{display:flex;flex-direction:column;gap:20px}.rpmse-service-submit__section{border-top:1px solid rgba(15,23,42,.08);padding-top:18px}.rpmse-service-submit__section h3{margin:0 0 12px;font-size:18px;letter-spacing:0;text-transform:none;color:#0f172a}
.rpmse-service-submit__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rpmse-service-submit__wide{grid-column:1/-1}.rpmse-service-submit label span{display:block;margin-bottom:6px;font-weight:700;color:#334155}.rpmse-service-submit input,.rpmse-service-submit select,.rpmse-service-submit textarea{width:100%;box-sizing:border-box;border:1px solid rgba(15,23,42,.14);border-radius:14px;padding:12px 13px;background:#fff;color:#0f172a}.rpmse-service-submit textarea{resize:vertical}.rpmse-service-submit__terms{align-items:flex-start}.rpmse-hp{position:absolute!important;left:-9999px!important;opacity:0!important}.rpmse-notice--success{border-color:rgba(22,163,74,.24);background:#f0fdf4;color:#166534}.rpmse-notice--error{border-color:rgba(220,38,38,.24);background:#fef2f2;color:#991b1b}
@media(max-width:720px){.rpmse-service-submit__grid{grid-template-columns:1fr}.rpmse-service-submit{border-radius:18px;padding:18px}}

/* v0.9.75 — Front service submission media + map picker polish */
.rpmse-service-submit__head small{display:block;color:#64748b;font-weight:700;line-height:1.45;max-width:780px}
.rpmse-service-submit__section--location{display:grid;gap:14px}
.rpmse-service-submit__mapwrap{display:grid;gap:10px}
.rpmse-service-submit__map{height:320px;min-height:320px;border-radius:20px;border:1px solid rgba(15,23,42,.10);overflow:hidden;background:#eef2f7}
.rpmse-service-submit__map-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#f8fafc;color:#475569;font-size:13px}
.rpmse-service-submit__upload{display:block;border:1px dashed rgba(15,23,42,.22);border-radius:18px;padding:16px;background:#f8fafc}
.rpmse-service-submit__upload input{border:0!important;background:transparent!important;padding:6px 0 0!important;border-radius:0!important}
@media(max-width:720px){.rpmse-service-submit__map{height:260px;min-height:260px}.rpmse-service-submit__map-actions{align-items:flex-start}}

/* v0.9.76 — Service submit friction polish */
.rpmse-service-submit__submit-note{margin:-4px 0 0;color:#64748b;font-size:13px;line-height:1.5}
.rpmse-service-submit .rpmse-field-hint{display:block;margin-top:6px;color:#64748b;font-size:12px;line-height:1.35;font-weight:600}
.rpmse-service-submit .rpmse-field-invalid span{color:#b91c1c}
.rpmse-service-submit .rpmse-field-invalid input,.rpmse-service-submit .rpmse-field-invalid textarea{border-color:rgba(220,38,38,.72);box-shadow:0 0 0 3px rgba(220,38,38,.08)}
.rpmse-service-submit__upload{position:relative;cursor:pointer;display:grid!important;gap:8px;transition:border-color .18s ease,background .18s ease}
.rpmse-service-submit__upload:hover{border-color:rgba(235,70,74,.48);background:#fff7f7}
.rpmse-service-submit__upload strong{display:inline-flex;width:max-content;align-items:center;justify-content:center;border-radius:999px;padding:9px 14px;background:#0f172a;color:#fff;font-size:13px;line-height:1}
.rpmse-service-submit__upload small{display:block;color:#64748b;font-size:12px;line-height:1.45;font-weight:600}
.rpmse-service-submit__upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.rpmse-service-submit [data-rpmse-service-submit-button][disabled]{opacity:.68;cursor:wait}
@media(max-width:720px){.rpmse-service-submit__upload strong{width:100%;box-sizing:border-box}}


/* v0.9.78 — keep public submit human-facing and less protocol-like. */
.rpmse-service-submit__head .rpmse-kicker{color:#eb464a;letter-spacing:.08em;text-transform:uppercase;font-weight:800;font-size:11px}
.rpmse-service-submit__head small{font-weight:600;color:#475569}
.rpmse-service-submit__section{scroll-margin-top:90px}
.rpmse-service-submit__section .rpmse-muted{font-size:13px;line-height:1.5}
.rpmse-service-submit__submit-note{padding-top:4px;border-top:1px solid rgba(15,23,42,.06)}
.rpmse-service-submit .rpmse-btn{min-height:46px;font-weight:800}

/* v0.9.103 — Servicios: media + CTA contract parity for public explorer cards. */
.rpmse-ui-card__media{min-width:0;overflow:hidden;border-radius:14px;background:#f8fafc;align-self:stretch}
.rpmse-ui-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.rpmse-service-explorer-card{grid-template-columns:minmax(118px,152px) minmax(240px,1fr) minmax(112px,auto) auto;align-items:stretch;padding:0;overflow:hidden}
.rpmse-service-explorer-card .rpmse-ui-card__media{border-radius:18px 0 0 18px;min-height:166px;background:linear-gradient(135deg,rgba(235,70,74,.08),rgba(15,23,42,.04));display:block}
.rpmse-service-explorer-card .rpmse-ui-card__main{padding:16px 0 16px 16px;align-content:center;min-width:0}
.rpmse-service-explorer-card .rpmse-ui-card__main h4{font-size:18px;line-height:1.12;max-width:34ch}
.rpmse-service-explorer-card .rpmse-ui-card__main p{font-size:14px;line-height:1.45;max-width:48ch}
.rpmse-service-explorer-card .rpmse-ui-card__meta{margin-top:8px}
.rpmse-service-explorer-card .rpmse-ui-card__badges{align-content:center;align-items:center;justify-content:flex-start;padding:16px 0;max-width:190px}
.rpmse-service-explorer-card .rpmse-ui-card__actions{align-content:center;align-items:center;padding:16px 16px 16px 0;white-space:nowrap}
.rpmse-service-explorer-card .rpmse-ui-card__actions .rpmse-btn{white-space:nowrap}
@media(max-width:980px){.rpmse-service-explorer-card{grid-template-columns:112px minmax(0,1fr);padding:0}.rpmse-service-explorer-card .rpmse-ui-card__media{grid-row:1 / span 3;min-height:100%;border-radius:18px 0 0 18px}.rpmse-service-explorer-card .rpmse-ui-card__main{padding:14px 14px 4px}.rpmse-service-explorer-card .rpmse-ui-card__badges{padding:4px 14px;max-width:none}.rpmse-service-explorer-card .rpmse-ui-card__actions{padding:8px 14px 14px;justify-content:flex-start}.rpmse-service-explorer-card .rpmse-ui-card__actions .rpmse-btn{width:auto}}
@media(max-width:640px){.rpmse-service-explorer-card{grid-template-columns:1fr}.rpmse-service-explorer-card .rpmse-ui-card__media{grid-row:auto;height:190px;border-radius:18px 18px 0 0}.rpmse-service-explorer-card .rpmse-ui-card__main{padding:14px 14px 4px}.rpmse-service-explorer-card .rpmse-ui-card__badges{padding:6px 14px}.rpmse-service-explorer-card .rpmse-ui-card__actions{padding:8px 14px 14px}.rpmse-service-explorer-card .rpmse-ui-card__actions .rpmse-btn{width:100%;justify-content:center}}

/* v0.9.119 — Public service surfaces visual normalization.
   Scope: existing service public surfaces only. No data, CTA, booking,
   rail synchronization, map, checkout or schema behavior is changed. */
.rpmse-service-rail,
.rpmse-service-axis,
.rpmse-service-explorer{
  --rpmse-surface-bg:#fff;
  --rpmse-surface-soft:#f8fafc;
  --rpmse-surface-line:rgba(15,23,42,.10);
  --rpmse-surface-text:#0f172a;
  --rpmse-surface-muted:#64748b;
  --rpmse-service-radius:22px;
  --rpmse-service-shadow:0 14px 34px rgba(15,23,42,.065);
  --rpmse-service-shadow-hover:0 18px 42px rgba(15,23,42,.10);
}
.rpmse-service-rail__head,
.rpmse-service-axis__head,
.rpmse-service-explorer__hero{
  margin-bottom:clamp(14px,2vw,20px);
}
.rpmse-service-rail__head h3,
.rpmse-service-axis__head h3,
.rpmse-service-explorer__hero h2{
  letter-spacing:-.035em;
  text-wrap:balance;
}
.rpmse-service-rail__head p,
.rpmse-service-axis__head p,
.rpmse-service-explorer__hero p{
  color:var(--rpmse-surface-muted);
  line-height:1.55;
}
.rpmse-service-rail__track{
  grid-auto-columns:minmax(270px,335px);
  gap:clamp(12px,2vw,18px);
  padding:4px 4px 16px;
  scrollbar-width:thin;
}
.rpmse-service-rail__track>.rpmse-ui-card,
.rpmse-service-component-card,
.rpmse-service-explorer-card{
  border-color:var(--rpmse-surface-line);
  border-radius:var(--rpmse-service-radius);
  background:var(--rpmse-surface-bg);
  box-shadow:var(--rpmse-service-shadow);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.rpmse-service-rail__track>.rpmse-ui-card:hover,
.rpmse-service-component-card:hover,
.rpmse-service-explorer-card:hover{
  transform:translateY(-1px);
  box-shadow:var(--rpmse-service-shadow-hover);
  border-color:rgba(15,23,42,.16);
}
.rpmse-service-component-card .rpmse-ui-card__main h4,
.rpmse-service-explorer-card .rpmse-ui-card__main h4{
  color:var(--rpmse-surface-text);
  font-weight:850;
  letter-spacing:-.02em;
  text-wrap:balance;
}
.rpmse-service-component-card .rpmse-ui-card__main p,
.rpmse-service-explorer-card .rpmse-ui-card__main p{
  color:var(--rpmse-surface-muted);
  line-height:1.5;
}
.rpmse-service-component-card .rpmse-kicker,
.rpmse-service-explorer-card .rpmse-kicker{
  color:#eb464a;
  font-size:11px;
  font-weight:900;
  letter-spacing:.075em;
}
.rpmse-service-component-card .rpmse-ui-card__meta span,
.rpmse-service-explorer-card .rpmse-ui-card__meta span{
  background:var(--rpmse-surface-soft);
  border-color:var(--rpmse-surface-line);
  color:#334155;
  line-height:1.15;
}
.rpmse-service-component-card .rpmse-badge,
.rpmse-service-explorer-card .rpmse-badge{
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  box-shadow:0 5px 16px rgba(15,23,42,.045);
}
.rpmse-service-component-card .rpmse-ui-card__actions .rpmse-btn,
.rpmse-service-explorer-card .rpmse-ui-card__actions .rpmse-btn,
.rpmse-service-explorer__actions .rpmse-btn{
  min-height:42px;
  border-radius:999px;
  padding:10px 16px;
  font-size:13px;
  font-weight:900;
  line-height:1;
}
.rpmse-service-explorer__filters,
.rpmse-service-explorer__calendar-strip,
.rpmse-service-explorer__count,
.rpmse-service-explorer__map{
  border-color:var(--rpmse-surface-line);
  box-shadow:var(--rpmse-service-shadow);
}
.rpmse-service-explorer__chips a{
  border-color:var(--rpmse-surface-line);
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.rpmse-service-explorer__chips a:hover{
  background:#fff;
  border-color:rgba(235,70,74,.28);
  transform:translateY(-1px);
}
.rpmse-service-explorer-card .rpmse-ui-card__media{
  background:linear-gradient(135deg,rgba(235,70,74,.10),rgba(15,23,42,.045));
}
.rpmse-service-explorer-card .rpmse-ui-card__media img{
  transition:transform .22s ease;
}
.rpmse-service-explorer-card:hover .rpmse-ui-card__media img{
  transform:scale(1.025);
}
@media(max-width:760px){
  .rpmse-service-rail__track{
    grid-auto-columns:minmax(84%,1fr);
    padding-left:2px;
    padding-right:14px;
  }
  .rpmse-service-rail__track>.rpmse-ui-card,
  .rpmse-service-component-card,
  .rpmse-service-explorer-card{
    border-radius:20px;
  }
  .rpmse-service-component-card .rpmse-ui-card__actions .rpmse-btn,
  .rpmse-service-explorer-card .rpmse-ui-card__actions .rpmse-btn{
    width:100%;
    justify-content:center;
  }
  .rpmse-service-explorer__filters{
    padding:12px;
    border-radius:20px;
  }
}
@media(max-width:640px){
  .rpmse-service-explorer-card .rpmse-ui-card__media{
    height:176px;
  }
  .rpmse-service-explorer-card .rpmse-ui-card__main h4{
    font-size:19px;
    line-height:1.12;
  }
}


/* v0.9.121 — Public services existing surface readability. Uses existing public fields only. */
.rpmse-public-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:26px}
.rpmse-public-card__body{display:grid;gap:8px}
.rpmse-public-card__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:2px 0 0}
.rpmse-public-card__facts span{display:grid;gap:2px;padding:9px 10px;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#f8fafc;min-width:0}
.rpmse-public-card__facts small{font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#64748b;font-weight:800}
.rpmse-public-card__facts strong{font-size:13px;line-height:1.25;color:#111827;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpmse-public-event-row__meta{display:block;margin-top:3px;color:#64748b;font-size:12px;line-height:1.35;font-weight:650}
@media(max-width:640px){.rpmse-public-card__facts{grid-template-columns:1fr}.rpmse-public-card__facts strong{white-space:normal}.rpmse-public-card .rpmse-btn{width:100%;justify-content:center}.rpmse-public-event-row .rpmse-btn{width:100%;justify-content:center}}

/* v0.9.122 — Existing public schedule/availability presentation. No booking rewrite. */
.rpmse-public-card__meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.rpmse-public-card__meta span{
  display:grid;
  gap:2px;
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  background:#fff;
}
.rpmse-public-card__meta small{
  color:#64748b;
  font-size:10px;
  line-height:1;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.rpmse-public-card__meta strong{
  color:#111827;
  font-size:13px;
  line-height:1.25;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rpmse-public-event-row__body{
  display:grid;
  gap:3px;
  min-width:0;
}
.rpmse-public-event-row__time{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:5px 9px;
  border-radius:999px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  color:#0f172a;
  font-size:12px;
  font-weight:900;
  line-height:1;
}
.rpmse-service-calendar-card__meta span:first-child{
  background:#fff;
  color:#0f172a;
  border-color:rgba(15,23,42,.12);
}
@media(max-width:640px){
  .rpmse-public-card__meta{grid-template-columns:1fr}
  .rpmse-public-card__meta strong{white-space:normal}
  .rpmse-public-event-row__time{width:fit-content}
}

/* v0.9.123 — Existing provider/contact surface normalization. No schema change. */
.rpmse-public-card__contact{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  color:#0f172a;
}
.rpmse-public-card__contact small{
  color:#64748b;
  font-size:10px;
  line-height:1;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.rpmse-public-card__contact strong{
  color:#111827;
  font-size:13px;
  line-height:1.25;
  font-weight:850;
  text-align:right;
}
@media(max-width:640px){
  .rpmse-public-card__contact{align-items:flex-start;flex-direction:column;gap:4px}
  .rpmse-public-card__contact strong{text-align:left}
}

/* v0.9.124 — Existing public empty-state and surface copy clarity. No flow change. */
.rpmse-public-empty{
  display:grid;
  gap:6px;
  padding:18px 20px;
  border-radius:18px;
  border:1px dashed rgba(15,23,42,.16);
  background:#f8fafc;
  color:#0f172a;
}
.rpmse-public-empty strong{
  font-size:15px;
  line-height:1.25;
  font-weight:900;
}
.rpmse-public-empty span{
  color:#64748b;
  font-size:13px;
  line-height:1.45;
  font-weight:650;
}

/* v0.9.125 — Public service surfaces regression sweep. No feature or flow change. */
.rpmse-public-surface,
.rpmse-public-surface *{
  box-sizing:border-box;
}
.rpmse-public-surface,
.rpmse-public-grid,
.rpmse-public-card,
.rpmse-public-day,
.rpmse-public-map-shell,
.rpmse-public-map-list,
.rpmse-public-event-row,
.rpmse-public-event-row__body{
  min-width:0;
}
.rpmse-public-card h3,
.rpmse-public-card p,
.rpmse-public-card__facts strong,
.rpmse-public-card__meta strong,
.rpmse-public-card__contact strong,
.rpmse-public-event-row strong,
.rpmse-public-event-row__meta{
  overflow-wrap:anywhere;
}
.rpmse-public-card .rpmse-btn,
.rpmse-public-event-row .rpmse-btn{
  max-width:100%;
  white-space:normal;
  text-align:center;
}
.rpmse-public-card .rpmse-btn{
  align-self:flex-start;
}
.rpmse-public-card__facts,
.rpmse-public-card__meta{
  min-width:0;
  align-items:stretch;
}
.rpmse-public-card__facts span,
.rpmse-public-card__meta span{
  min-width:0;
}
.rpmse-public-card__contact{
  min-width:0;
}
.rpmse-public-event-row__body strong{
  line-height:1.2;
}
.rpmse-public-event-row__time{
  overflow:hidden;
  text-overflow:ellipsis;
}
.rpmse-public-map-list .rpmse-public-card{
  box-shadow:0 10px 28px rgba(15,23,42,.055);
}
@media(max-width:780px){
  .rpmse-public-event-row{
    gap:10px;
  }
  .rpmse-public-event-row .rpmse-btn{
    align-self:stretch;
  }
  .rpmse-public-map-list{
    padding-right:0;
    overflow:visible;
  }
}
@media(max-width:640px){
  .rpmse-public-surface__head h2{
    line-height:1.08;
  }
  .rpmse-public-card{
    padding:16px;
  }
  .rpmse-public-empty{
    padding:16px;
  }
}

/* v0.9.129 — Public card text-first media baseline. No layout rewrite.
   Services public cards keep the readable text-first/card style from v0.9.125.
   Media is not injected as a background/underlay in this surface because it can
   reduce legibility and degrade the production experience. */
.rpmse-public-surface .rpmse-public-card{
  background:#fff;
  isolation:isolate;
}
.rpmse-public-surface .rpmse-public-card > :not(.rpmse-public-card__media){
  position:relative;
  z-index:1;
}
.rpmse-public-surface .rpmse-public-card__media{
  display:none !important;
}

/* v0.9.130 — Service explorer filter readability. No query, data or flow change.
   Scoped to the existing explorer filter surface. Keeps the current form, quick
   filters and GET parameters intact while improving legibility and mobile use. */
.rpmse-service-explorer__filters{
  align-items:stretch;
}
.rpmse-service-explorer__filters label span{
  line-height:1.1;
}
.rpmse-service-explorer__filters input,
.rpmse-service-explorer__filters select{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  line-height:1.25;
}
.rpmse-service-explorer__selects{
  align-items:end;
}
.rpmse-service-explorer__actions{
  align-items:center;
}
.rpmse-service-explorer__actions .rpmse-btn{
  min-height:42px;
  white-space:nowrap;
}
.rpmse-service-explorer__chips{
  align-items:center;
  min-width:0;
}
.rpmse-service-explorer__chips a{
  min-height:34px;
  max-width:100%;
  white-space:nowrap;
  line-height:1;
}
.rpmse-service-explorer__chips a:focus-visible,
.rpmse-service-explorer__filters input:focus-visible,
.rpmse-service-explorer__filters select:focus-visible,
.rpmse-service-explorer__actions .rpmse-btn:focus-visible{
  outline:3px solid rgba(235,70,74,.22);
  outline-offset:2px;
}
@media(max-width:760px){
  .rpmse-service-explorer__filters{
    gap:10px;
  }
  .rpmse-service-explorer__selects{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .rpmse-service-explorer__actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .rpmse-service-explorer__actions .rpmse-btn{
    width:100%;
    justify-content:center;
  }
  .rpmse-service-explorer__chips{
    flex-wrap:nowrap;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    padding:2px 2px 8px;
    scrollbar-width:thin;
  }
  .rpmse-service-explorer__chips a{
    flex:0 0 auto;
  }
}
@media(max-width:460px){
  .rpmse-service-explorer__selects,
  .rpmse-service-explorer__actions{
    grid-template-columns:1fr;
  }
}


/* v0.9.131 — Home service rail mobile stability. No sync, query or flow change.
   Scoped to the existing home service rail only. Keeps the current rail data,
   editorial selection, card markup, CTA behavior and public contracts intact. */
.rpmse-service-rail__track{
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  scroll-padding-inline:4px;
}
.rpmse-service-rail__track > .rpmse-ui-card,
.rpmse-service-rail__track > .rpmse-service-component-card{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.rpmse-service-rail__track .rpmse-ui-card__main,
.rpmse-service-rail__track .rpmse-ui-card__meta,
.rpmse-service-rail__track .rpmse-ui-card__badges,
.rpmse-service-rail__track .rpmse-ui-card__actions{
  min-width:0;
  max-width:100%;
}
.rpmse-service-rail__track .rpmse-ui-card__main h4,
.rpmse-service-rail__track .rpmse-ui-card__main p{
  overflow-wrap:break-word;
  word-break:normal;
}
.rpmse-service-rail__track .rpmse-ui-card__meta span,
.rpmse-service-rail__track .rpmse-badge{
  max-width:100%;
}
.rpmse-service-rail__track .rpmse-ui-card__actions .rpmse-btn{
  max-width:100%;
  text-align:center;
}
@media(max-width:760px){
  .rpmse-service-rail__head,
  .rpmse-service-axis__head{
    gap:8px;
  }
  .rpmse-service-rail__track{
    grid-auto-columns:minmax(78vw,86vw);
    gap:12px;
    padding:4px 14px 16px 2px;
    scroll-snap-type:x proximity;
  }
  .rpmse-service-rail__track > .rpmse-ui-card,
  .rpmse-service-rail__track > .rpmse-service-component-card{
    scroll-snap-align:start;
  }
  .rpmse-service-rail__track .rpmse-ui-card__actions .rpmse-btn{
    width:100%;
    justify-content:center;
  }
}
@media(max-width:420px){
  .rpmse-service-rail__track{
    grid-auto-columns:minmax(82vw,90vw);
  }
}

/* v0.9.134 — Public surface accessibility focus states. No DOM, query, flow or contract change.
   Scoped to existing public service surfaces, service rail and explorer controls. */
.rpmse-public-surface a:focus-visible,
.rpmse-public-surface button:focus-visible,
.rpmse-public-surface summary:focus-visible,
.rpmse-service-rail a:focus-visible,
.rpmse-service-rail button:focus-visible,
.rpmse-service-explorer a:focus-visible,
.rpmse-service-explorer button:focus-visible,
.rpmse-service-explorer input:focus-visible,
.rpmse-service-explorer select:focus-visible{
  outline:3px solid rgba(235,70,74,.32);
  outline-offset:3px;
  box-shadow:0 0 0 4px rgba(235,70,74,.10);
}
.rpmse-public-surface .rpmse-btn,
.rpmse-public-card .rpmse-btn,
.rpmse-public-event-row .rpmse-btn,
.rpmse-service-rail .rpmse-btn{
  min-height:42px;
  touch-action:manipulation;
}
.rpmse-public-card a,
.rpmse-public-event-row a,
.rpmse-service-rail a{
  text-decoration-thickness:max(1px,.08em);
  text-underline-offset:.18em;
}
.rpmse-public-card .rpmse-btn:hover,
.rpmse-public-event-row .rpmse-btn:hover,
.rpmse-service-rail .rpmse-btn:hover{
  filter:brightness(.98);
}
@media (prefers-reduced-motion: reduce){
  .rpmse-public-surface *,
  .rpmse-service-rail *,
  .rpmse-service-explorer *{
    scroll-behavior:auto !important;
  }
}


/* v0.9.135 — Service explorer real-user decision clarity. No query or destination change.
   Uses existing explorer filters and result cards to make the user task clearer:
   understand active filters, recover from no results, and compare price/place/availability. */
.rpmse-service-explorer__results-context{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 12px;
  margin:-4px 0 16px;
  padding:10px 12px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:#fff;
  color:#0f172a;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.rpmse-service-explorer__results-context strong{
  font-size:14px;
  line-height:1.25;
  font-weight:900;
}
.rpmse-service-explorer__results-context span{
  color:#64748b;
  font-size:13px;
  line-height:1.35;
  font-weight:650;
}
.rpmse-service-explorer-card .rpmse-ui-card__meta span{
  display:grid;
  gap:2px;
  align-items:start;
  max-width:100%;
}
.rpmse-service-explorer-card .rpmse-ui-card__meta span > strong{
  color:#0f172a;
  font-size:12px;
  line-height:1.2;
  font-weight:900;
}
.rpmse-service-explorer__no-results{
  display:grid;
  gap:8px;
  padding:18px;
  border-radius:20px;
  border:1px dashed rgba(15,23,42,.18);
  background:#f8fafc;
}
.rpmse-service-explorer__no-results strong{
  color:#0f172a;
  font-size:16px;
  line-height:1.25;
  font-weight:900;
}
.rpmse-service-explorer__no-results span{
  color:#64748b;
  font-size:14px;
  line-height:1.45;
  font-weight:650;
}
.rpmse-service-explorer__no-results-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:2px;
}
.rpmse-service-explorer__no-results-actions a:not(.rpmse-btn){
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 11px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  background:#fff;
  color:#0f172a;
  text-decoration:none;
  font-size:12px;
  line-height:1;
  font-weight:900;
}
@media(max-width:640px){
  .rpmse-service-explorer__results-context{
    display:grid;
    margin-top:0;
  }
  .rpmse-service-explorer__no-results-actions{
    display:grid;
  }
  .rpmse-service-explorer__no-results-actions .rpmse-btn,
  .rpmse-service-explorer__no-results-actions a:not(.rpmse-btn){
    width:100%;
    justify-content:center;
    box-sizing:border-box;
  }
}
