.rne-public { max-width:950px; margin:28px auto; color:#1c2f40; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.6; box-shadow:0 16px 40px #182b4414; border:1px solid #dce3eb; border-radius:20px; overflow:hidden; background:white }
.rne-public * { box-sizing:border-box }
.rne-hero { background:linear-gradient(125deg,#101f38,#263e59); padding:44px 25px; color:white; text-align:center }
.rne-hero span { color:#dabe82; letter-spacing:1.2px; font-size:11px; font-weight:600 }
.rne-hero h2 { color:#fff; font-size:clamp(27px,4vw,43px); margin:9px 0; font-weight:650; line-height:1.15 }
.rne-hero p { margin:0; color:#e6dbca }
.rne-panel { padding:clamp(18px,4vw,42px) }
.rne-panel h3 { font-size:21px; margin:12px 0 8px; color:#142943 }
.rne-panel p { margin:10px 0 18px }
.rne-panel label { display:block; font-size:14px; font-weight:600 }
.rne-panel input[type=text],.rne-panel input[type=email] { font:inherit; font-weight:400; width:100%; margin-top:6px; min-height:44px; border:1px solid #becbd7; border-radius:9px; padding:9px 12px; background:#fff; color:#102840 }
.rne-panel input:focus { outline:2px solid #b5975f; outline-offset:1px }
.rne-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:16px 0 }
.rne-pill { background:#f8f2e4; color:#725629; display:inline-block; padding:5px 12px; border-radius:30px; font-weight:700; font-size:13px }
.rne-hr { height:1px; background:#e2e9ee; margin:24px 0 }
.rne-companion { padding:16px; border:1px solid #d7e1ea; margin:10px 0; border-radius:12px; background:#f8fafc }
.rne-add,.rne-remove { color:#1a5377; background:transparent; border:1px solid #9bb4c7; font-weight:600; cursor:pointer; padding:10px 15px; border-radius:8px }
.rne-remove { padding:5px 10px; font-size:12px }
.rne-table-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); gap:12px; margin:18px 0 }
.rne-table-choice { position:relative; background:#f9fbfc; border:2px solid #d8e4eb; border-radius:15px; padding:18px 10px; min-height:128px; cursor:pointer; text-align:center; display:flex!important; flex-direction:column; justify-content:center; align-items:center; gap:1px }
.rne-table-choice input { position:absolute; left:10px; top:10px; accent-color:#1e668f }
.rne-table-choice:has(input:checked) { border-color:#236f9e; background:#eff7fc }
.rne-table-choice.rne-unavailable { opacity:.48; cursor:not-allowed }
.rne-table-choice .rne-table-name { font-size:15px; font-weight:700 }
.rne-table-choice strong { font-size:25px; line-height:1.3 }
.rne-table-choice small { color:#637489; font-size:11px }
.rne-price { display:flex; justify-content:space-between; align-items:center; background:#f0f4f8; border-radius:12px; padding:20px; gap:20px; margin:24px 0 }
.rne-price strong { font-size:26px; color:#102d47 }
.rne-billing[hidden] { display:none!important }
.rne-warning { border-left:4px solid #b9975e; border-radius:6px; background:#fcf7ee; margin:24px 0; padding:14px 16px; color:#624b26; font-size:14px }
.rne-consent { display:flex!important; gap:10px; align-items:flex-start; font-weight:400!important; margin:14px 0 }
.rne-consent input { margin-top:5px }
.rne-submit { width:100%; padding:16px 20px; background:#192e49; border:0; border-radius:10px; color:#fff; font-weight:700; cursor:pointer; font-size:16px }
.rne-submit:hover { background:#304e73 }
.rne-error { padding:14px; background:#fff1ef; color:#992c2b; border:1px solid #f5c5c0; border-radius:7px }
.rne-honeypot { position:absolute; left:-99999px; width:1px; height:1px; overflow:hidden }
@media(max-width:560px) { .rne-fields { grid-template-columns:1fr } .rne-panel { padding:20px 16px } .rne-price strong { font-size:21px } .rne-hero { padding:35px 12px } }
/* 0.2.4 – Áttekinthető teremrajz: kis, kör alakú jelölők, külön kiválasztási összegzés */
.rne-public .rne-map-intro { margin-bottom: 12px; }
.rne-public .rne-seat-picker { margin: 10px 0 22px; }
.rne-public .rne-plan-scroll { width:100%; overflow-x:auto; overflow-y:hidden; scrollbar-color:#aebfd0 #f0f4f7; border-radius:15px; }
.rne-public .rne-plan-scroll:focus-visible { outline:3px solid #2874b7; outline-offset:2px; }
.rne-public .rne-floorplan-surface { position:relative; isolation:isolate; width:100%; margin:0; overflow:hidden; border:1px solid #cad7e3; border-radius:14px; background:#f0f4f8; }
.rne-public .rne-floorplan-surface .rne-plan-image { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; z-index:0; }
.rne-public .rne-floorplan-surface .rne-plan-placeholder { position:absolute; top:12px; left:12px; right:12px; color:#52677d; font-size:12px; text-align:center; pointer-events:none; }
.rne-public .rne-floorplan-public-surface .rne-map-choice {
  position:absolute!important; z-index:2; left:50%; top:50%; transform:translate(-50%,-50%);
  box-sizing:border-box!important; display:flex!important; flex-direction:column!important; justify-content:center!important; align-items:center!important;
  width:56px!important; height:56px!important; min-width:0!important; max-width:none!important; min-height:0!important;
  margin:0!important; padding:2px!important; gap:1px!important; overflow:visible!important;
  background:rgba(255,255,255,.97)!important; border:2px solid #2d5877!important; border-radius:50%!important;
  box-shadow:0 2px 7px rgba(18,43,68,.30)!important; color:#193650!important;
  cursor:pointer!important; text-align:center!important; line-height:1.1!important; user-select:none;
  transition:background .15s,box-shadow .15s,transform .15s,border-color .15s;
}
.rne-public .rne-floorplan-public-surface .rne-map-choice .rne-marker-number { display:block; font-size:18px!important; font-weight:800!important; line-height:1.05!important; color:inherit!important; }
.rne-public .rne-floorplan-public-surface .rne-map-choice .rne-marker-seats { display:block; font-size:10px!important; font-weight:700!important; line-height:1.1!important; white-space:nowrap; color:inherit!important; }
.rne-public .rne-floorplan-public-surface .rne-map-choice input[type=radio] { position:absolute!important; opacity:0!important; width:1px!important; height:1px!important; clip-path:inset(50%); margin:0!important; padding:0!important; }
.rne-public .rne-floorplan-public-surface .rne-map-choice:hover:not(.rne-unavailable):not(.rne-vip-marker) { z-index:4; border-color:#0d66a1!important; box-shadow:0 3px 11px rgba(15,68,116,.42)!important; transform:translate(-50%,-50%) scale(1.06); }
.rne-public .rne-floorplan-public-surface .rne-map-choice.rne-chosen,
.rne-public .rne-floorplan-public-surface .rne-map-choice:has(input:checked) { z-index:5; background:#1d5e91!important; color:#fff!important; border-color:#fff!important; box-shadow:0 0 0 3px #246eab,0 4px 12px rgba(21,51,83,.4)!important; }
.rne-public .rne-floorplan-public-surface .rne-map-choice:focus-within { outline:3px solid #e5b34c!important; outline-offset:3px!important; z-index:6; }
.rne-public .rne-floorplan-public-surface .rne-map-choice.rne-unavailable { border-color:#aeb6bf!important; background:rgba(232,235,239,.95)!important; color:#66727f!important; opacity:.84!important; cursor:not-allowed!important; box-shadow:0 1px 3px rgba(18,43,68,.15)!important; }
.rne-public .rne-plan-note { padding:10px 14px; color:#634b20; background:#fff4df; border-radius:8px; }
.rne-public .rne-map-mobile-tip { display:none; }
.rne-public .rne-map-legend { display:flex; flex-wrap:wrap; gap:9px 19px; margin:12px 0 14px; font-size:12px; color:#486077; align-items:center; }
.rne-public .rne-map-legend span { display:inline-flex; align-items:center; gap:7px; }
.rne-public .rne-legend-dot { display:inline-block; width:13px; height:13px; border-radius:50%; border:2px solid #2d5877; background:#fff; flex:none; }
.rne-public .rne-legend-dot.rne-legend-selected { background:#1d5e91; border-color:#1d5e91; }
.rne-public .rne-legend-dot.rne-legend-full { background:#e2e5e9; border-color:#aeb6bf; }
.rne-public .rne-selection-panel { display:flex; align-items:center; gap:12px; padding:14px 17px; border:1px solid #cbd9e5; border-radius:12px; background:#f7fafc; min-height:74px; }
.rne-public .rne-selection-panel .rne-selection-icon { display:grid; place-items:center; flex:none; width:38px; height:38px; border-radius:50%; background:#e6edf3; color:#71889b; font-size:22px; font-weight:800; }
.rne-public .rne-selection-panel.rne-has-selection { background:#eff7fd; border-color:#89b4d6; }
.rne-public .rne-selection-panel.rne-has-selection .rne-selection-icon { background:#1d5e91; color:#fff; }
.rne-public .rne-selection-title { display:block; font-size:15px; color:#153249; }
.rne-public .rne-selection-detail { margin:3px 0 0!important; font-size:13px; color:#49647c; }
@media (max-width: 780px) {
  .rne-public .rne-plan-scroll .rne-floorplan-public-surface { width:max(100%,760px); min-width:760px; }
  .rne-public .rne-map-mobile-tip { display:block; margin:2px 0 8px; font-size:12px; color:#52677d; }
  .rne-public .rne-floorplan-public-surface .rne-map-choice { width:52px!important; height:52px!important; }
}
@media (prefers-reduced-motion: reduce) { .rne-public .rne-floorplan-public-surface .rne-map-choice { transition:none; } }

/* 0.2.1 – Jól látható étkezési és számlázási mezők: sablonfüggetlen stílus */
.rne-public .rne-register-form .rne-field { display:flex; flex-direction:column; min-width:0; gap:6px; }
.rne-public .rne-register-form .rne-field-full { grid-column:1 / -1; margin:16px 0 18px; }
.rne-public .rne-register-form .rne-field-label { display:block!important; margin:0!important; color:#152e49!important; font-size:14px!important; font-weight:700!important; line-height:1.5!important; cursor:text; }
.rne-public .rne-register-form .rne-required { color:#a32e22; }
.rne-public .rne-register-form .rne-field-hint { display:block; color:#4a6078; font-size:12px; line-height:1.45; }
.rne-public .rne-register-form input.rne-input {
  display:block!important; box-sizing:border-box!important;
  appearance:none; -webkit-appearance:none;
  width:100%!important; max-width:none!important; min-width:0!important;
  min-height:50px!important; height:auto!important;
  margin:0!important; padding:12px 14px!important;
  background-color:#ffffff!important; background-image:none!important;
  color:#152e49!important; -webkit-text-fill-color:#152e49;
  border:2px solid #9ab0c3!important; border-radius:10px!important;
  box-shadow:0 1px 3px rgba(12,38,66,.09)!important;
  opacity:1!important; visibility:visible!important;
  font-family:inherit!important; font-size:16px!important; font-weight:400!important;
  line-height:1.5!important; letter-spacing:normal!important;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.rne-public .rne-register-form input.rne-input::placeholder { color:#60758b!important; -webkit-text-fill-color:#60758b; opacity:1!important; }
.rne-public .rne-register-form input.rne-input:focus {
  outline:3px solid rgba(32,111,165,.28)!important; outline-offset:1px!important;
  border-color:#176ca5!important; box-shadow:0 0 0 4px rgba(32,111,165,.12)!important;
}
.rne-public .rne-register-form input.rne-input:read-only { background:#edf3f8!important; color:#41566d!important; }
.rne-public .rne-register-form .rne-billing:not([hidden]) {
  display:block; margin:24px 0; padding:22px;
  border:2px solid #b7ccdf; border-radius:14px; background:#f5f9fd;
}
.rne-public .rne-register-form .rne-billing h3 { margin:0 0 6px; color:#142943!important; }
.rne-public .rne-register-form .rne-billing-intro { color:#415970; margin:0 0 16px; font-size:14px; }
.rne-public .rne-register-form .rne-billing .rne-fields { margin:0; }
.rne-public .rne-register-form .rne-billing .rne-field-full { margin:0; }
@media(max-width:560px) {
  .rne-public .rne-register-form .rne-billing:not([hidden]) { padding:16px; }
}

/* 0.2.3 – Szerkeszthető regisztrációs tájékoztató */
.rne-public .rne-registration-notice p { margin: 0 0 12px; color: inherit; }
.rne-public .rne-registration-notice p:last-child { margin-bottom: 0; }
.rne-public .rne-registration-notice strong { color: inherit; }

/* 0.2.6 – VIP-asztalok a teremrajzon: ugyanakkora kör, de nincs foglalás vagy férőhelyadat. */
.rne-public .rne-floorplan-public-surface .rne-vip-marker {
  z-index:2; background:rgba(246,229,194,.97)!important;
  border-color:#98753e!important; color:#65471e!important;
  box-shadow:0 2px 7px rgba(80,53,13,.20)!important;
  cursor:not-allowed!important; pointer-events:auto;
}
.rne-public .rne-floorplan-public-surface .rne-vip-marker .rne-marker-number {
  font-size:13px!important; line-height:1.15!important; white-space:nowrap;
}
.rne-public .rne-floorplan-public-surface .rne-vip-marker .rne-marker-seats {
  font-size:9px!important; letter-spacing:-.2px;
}
.rne-public .rne-floorplan-public-surface .rne-vip-marker:hover {
  transform:translate(-50%,-50%)!important;
}
.rne-public .rne-legend-dot.rne-legend-vip {
  background:#f6e5c2; border-color:#98753e;
}
