:root{--red:#d83b1f;--orange:#f47a22;--cream:#fff8ee;--paper:#fffdf8;--ink:#2f1712;--muted:#806c65;--line:#eadfd6;--green:#26845c}
*{box-sizing:border-box}
body{margin:0;background:#f1e9df;color:var(--ink);font-family:'DM Sans',sans-serif}
h1{font-family:'Fraunces',serif;font-weight:800}
.rf-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 5vw;background:rgba(255,253,248,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.rf-brand{text-decoration:none;color:var(--ink)}
.rf-brand strong{font-family:'Fraunces',serif;font-size:22px}
.rf-brand small{display:block;font-size:8px;letter-spacing:3px;font-weight:800;color:var(--red)}
.rf-back-link{color:var(--muted);text-decoration:none;font-weight:700;font-size:13px}
.rf-main{max-width:760px;margin:0 auto;padding:26px 5vw 90px}
.rf-main.rf-main--map{max-width:min(1240px,94vw)}
.rf-loading{text-align:center;color:var(--muted);padding:60px 0;font-weight:700}
.rf-disabled,.rf-cancel{background:white;border:1px solid var(--line);border-radius:20px;padding:30px}
.rf-disabled h1,.rf-cancel h1{font-size:32px;margin:0 0 12px}
.rf-disabled p{color:var(--muted);line-height:1.55;margin:0}

.rf-steps{display:flex;gap:8px;margin-bottom:22px}
.rf-steps span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:white;border:1px solid var(--line);font-weight:800;font-size:13px;color:var(--muted)}
.rf-steps span.active{background:var(--red);border-color:var(--red);color:white}
.rf-steps span.done{background:var(--ink);border-color:var(--ink);color:white}

.rf-step{display:none}
.rf-step.active{display:block;animation:rf-in .2s ease}
@keyframes rf-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rf-step h1{font-size:30px;margin:0 0 18px}
.rf-back{border:0;background:none;color:var(--muted);font-weight:800;font-size:13px;padding:0;margin-bottom:12px;cursor:pointer}

.rf-field{display:block;margin:0 0 16px}
.rf-field span{display:block;font-size:12px;font-weight:800;margin-bottom:6px}
.rf-field input,.rf-field select,.rf-field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;font:inherit;background:white;color:var(--ink)}
.rf-field textarea{resize:vertical}
.rf-note{color:var(--muted);font-size:13px;margin:4px 0 16px}
.rf-error{color:#b0301c;font-size:13px;font-weight:700;margin:0 0 14px}
.rf-summary{color:var(--muted);font-weight:700;font-size:13px;margin:-6px 0 18px}

.rf-primary{width:100%;border:0;border-radius:99px;background:var(--red);color:white;font-weight:800;font-size:15px;padding:15px;cursor:pointer}
.rf-primary:disabled{opacity:.5;cursor:default}
.rf-primary-link{display:inline-block;text-align:center;text-decoration:none;width:100%;border-radius:99px;background:var(--red);color:white;font-weight:800;padding:15px;margin-top:10px}
.rf-ghost{background:var(--cream);color:var(--ink);border:1px solid var(--line)}
.rf-danger{width:100%;border:0;border-radius:99px;background:#b0301c;color:white;font-weight:800;font-size:15px;padding:15px;cursor:pointer;margin-bottom:8px}

.rf-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.rf-room-card{border:1px solid var(--line);background:white;border-radius:16px;padding:18px 16px;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.rf-room-card:hover{border-color:var(--red)}
.rf-room-card strong{display:block;font-size:16px;margin-bottom:4px}
.rf-room-card small{color:var(--muted);font-size:12px;font-weight:700}
.rf-room-card.rf-room-empty{opacity:.55;cursor:default}

.rf-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted);font-weight:700;margin-bottom:12px}
.rf-legend span{display:flex;align-items:center;gap:6px}
.rf-dot{width:12px;height:12px;border-radius:4px;display:inline-block}
.rf-dot.rf-free{background:#e3f3ea;border:1px solid var(--green)}
.rf-dot.rf-taken{background:#fbe4df;border:1px solid var(--red)}
.rf-dot.rf-small{background:#efe9e0;border:1px solid var(--line)}

.rf-canvas-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#f3ece1;max-height:70vh}
.rf-canvas{position:relative;background-color:#faf6ef;background-image:linear-gradient(rgba(120,90,40,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(120,90,40,.07) 1px,transparent 1px);background-size:20px 20px}
.rf-obj{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;font-weight:700;color:#5b6b7a;background:#e9eef3;border:1px dashed #9fb2c4;border-radius:6px;overflow:hidden;pointer-events:none}
.rf-obj[data-type="pult"]{background:#f3e2c8;border-style:solid;border-color:#caa46a;color:#6a4a15}
.rf-table{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:11px;font-weight:800;text-align:center;border:2px solid var(--green);background:#e3f3ea;color:#15532f;cursor:pointer;padding:2px;overflow:hidden}
.rf-table.shape-kor{border-radius:50%}
.rf-table.shape-negyzet,.rf-table.shape-teglalap{border-radius:8px}
.rf-table small{font-weight:700;font-size:9px;opacity:.85}
.rf-table.rf-table-taken{border-color:var(--red);background:#fbe4df;color:#8a2c1c;cursor:not-allowed}
.rf-table.rf-table-small{border-color:var(--line);background:#efe9e0;color:var(--muted);cursor:not-allowed}
.rf-table.rf-table-selected{outline:3px solid var(--ink);outline-offset:2px}

.rf-recap{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:18px;font-size:14px;line-height:1.7}
.rf-recap b{font-weight:800}

#rfStepDone{text-align:center}
.rf-done-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#e7f5ed;color:var(--green);font-size:30px;margin:6px auto 16px}
.rf-done-icon.rf-pending{background:#fff0d6;color:#9a5b12}
#rfStepDone p{color:var(--muted);line-height:1.55}

.rf-cancel-done{background:#e7f5ed;color:#15532f;border-radius:12px;padding:14px;font-weight:700;margin-top:14px}

.rf-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:12px 18px;border-radius:99px;font-size:13px;opacity:0;pointer-events:none;transition:.25s;z-index:60}
.rf-toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:560px){
  .rf-main{padding:20px 16px 80px}
  .rf-step h1{font-size:25px}
}
.rf-obj[data-type="fal"]{background:#8a7256;border:0;border-radius:3px;color:transparent}
.rf-login-form{margin:18px 0 12px}
#rfLoginRequired .rf-field span{color:var(--ink)}
