/* ── TEMI CHIARI (10) ─────────────────────────────────────────────────────── */
.nyx-theme-verde     { --nyx-c:#2A5C43; --nyx-c2:#1a3d2c; --nyx-bg:#f7faf8; --nyx-card:#fff; --nyx-border:#d0e8db; --nyx-text:#1a2f26; --nyx-muted:#6b8f7e; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(42,92,67,.10); }
.nyx-theme-teal      { --nyx-c:#0d7377; --nyx-c2:#085c60; --nyx-bg:#f5fafa; --nyx-card:#fff; --nyx-border:#b2dfe1; --nyx-text:#0a2b2d; --nyx-muted:#5a9ea2; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(13,115,119,.10); }
.nyx-theme-blu       { --nyx-c:#1a56db; --nyx-c2:#1040b0; --nyx-bg:#f5f8ff; --nyx-card:#fff; --nyx-border:#bdd2f7; --nyx-text:#0f1e4a; --nyx-muted:#5c7ec7; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(26,86,219,.10); }
.nyx-theme-navy      { --nyx-c:#1e3a5f; --nyx-c2:#142a46; --nyx-bg:#f5f7fb; --nyx-card:#fff; --nyx-border:#c0cfe3; --nyx-text:#0e1d30; --nyx-muted:#5577a0; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(30,58,95,.10); }
.nyx-theme-viola     { --nyx-c:#6d28d9; --nyx-c2:#5218b0; --nyx-bg:#faf8ff; --nyx-card:#fff; --nyx-border:#d5c4f7; --nyx-text:#2e1065; --nyx-muted:#9370cc; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(109,40,217,.10); }
.nyx-theme-rosa      { --nyx-c:#db2777; --nyx-c2:#b01d5f; --nyx-bg:#fff5f9; --nyx-card:#fff; --nyx-border:#f7c0db; --nyx-text:#4a0826; --nyx-muted:#cc6699; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(219,39,119,.10); }
.nyx-theme-arancio   { --nyx-c:#ea580c; --nyx-c2:#c24508; --nyx-bg:#fff8f5; --nyx-card:#fff; --nyx-border:#fcd0b4; --nyx-text:#431400; --nyx-muted:#cc7044; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(234,88,12,.10); }
.nyx-theme-rosso     { --nyx-c:#dc2626; --nyx-c2:#b81c1c; --nyx-bg:#fff5f5; --nyx-card:#fff; --nyx-border:#f7c0c0; --nyx-text:#450a0a; --nyx-muted:#cc5555; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(220,38,38,.10); }
.nyx-theme-oro       { --nyx-c:#b45309; --nyx-c2:#8a3e06; --nyx-bg:#fffdf5; --nyx-card:#fff; --nyx-border:#f0dfa0; --nyx-text:#3a1a00; --nyx-muted:#b07830; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(180,83,9,.10); }
.nyx-theme-grigio    { --nyx-c:#4b5563; --nyx-c2:#374151; --nyx-bg:#f9fafb; --nyx-card:#fff; --nyx-border:#d1d5db; --nyx-text:#111827; --nyx-muted:#6b7280; --nyx-input:#fff; --nyx-shadow:0 2px 12px rgba(75,85,99,.10); }

/* ── TEMI SCURI (10) ─────────────────────────────────────────────────────── */
.nyx-theme-dark-verde  { --nyx-c:#4ade80; --nyx-c2:#22c55e; --nyx-bg:#0d1f18; --nyx-card:#122b20; --nyx-border:#1e4532; --nyx-text:#d1fae5; --nyx-muted:#6ee7a8; --nyx-input:#0d1f18; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-teal   { --nyx-c:#2dd4bf; --nyx-c2:#14b8a6; --nyx-bg:#0a1e1f; --nyx-card:#112728; --nyx-border:#1a3d40; --nyx-text:#ccfbf1; --nyx-muted:#5eead4; --nyx-input:#0a1e1f; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-blu    { --nyx-c:#60a5fa; --nyx-c2:#3b82f6; --nyx-bg:#0a0f1e; --nyx-card:#101728; --nyx-border:#1e2d50; --nyx-text:#dbeafe; --nyx-muted:#93c5fd; --nyx-input:#0a0f1e; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-navy   { --nyx-c:#7dd3fc; --nyx-c2:#38bdf8; --nyx-bg:#071120; --nyx-card:#0d1a2e; --nyx-border:#162540; --nyx-text:#e0f2fe; --nyx-muted:#7ec8e3; --nyx-input:#071120; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-viola  { --nyx-c:#a78bfa; --nyx-c2:#8b5cf6; --nyx-bg:#100820; --nyx-card:#18102e; --nyx-border:#2d1b55; --nyx-text:#ede9fe; --nyx-muted:#c4b5fd; --nyx-input:#100820; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-rosa   { --nyx-c:#f472b6; --nyx-c2:#ec4899; --nyx-bg:#1a0812; --nyx-card:#26101c; --nyx-border:#4a1a30; --nyx-text:#fce7f3; --nyx-muted:#f9a8d4; --nyx-input:#1a0812; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-arancio{ --nyx-c:#fb923c; --nyx-c2:#f97316; --nyx-bg:#1a0a03; --nyx-card:#261408; --nyx-border:#4a2010; --nyx-text:#ffedd5; --nyx-muted:#fdba74; --nyx-input:#1a0a03; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-rosso  { --nyx-c:#f87171; --nyx-c2:#ef4444; --nyx-bg:#1a0505; --nyx-card:#260d0d; --nyx-border:#4a1010; --nyx-text:#fee2e2; --nyx-muted:#fca5a5; --nyx-input:#1a0505; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-oro    { --nyx-c:#fbbf24; --nyx-c2:#f59e0b; --nyx-bg:#160e00; --nyx-card:#201600; --nyx-border:#3d2a00; --nyx-text:#fef3c7; --nyx-muted:#fcd34d; --nyx-input:#160e00; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }
.nyx-theme-dark-grigio { --nyx-c:#9ca3af; --nyx-c2:#6b7280; --nyx-bg:#111827; --nyx-card:#1f2937; --nyx-border:#374151; --nyx-text:#f9fafb; --nyx-muted:#9ca3af; --nyx-input:#111827; --nyx-shadow:0 2px 16px rgba(0,0,0,.5); }

/* ── RESET ───────────────────────────────────────────────────────────────── */
.nyx-rm *, .nyx-rm *::before, .nyx-rm *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── ROOT ────────────────────────────────────────────────────────────────── */
.nyx-rm {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 16px;
    color: var(--nyx-text);
    background: var(--nyx-bg);
    border-radius: 24px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 8px 40px rgba(0,0,0,.08);
}
.nyx-rm__inner {
    padding: 40px 32px;
    max-width: 880px;
    margin: 0 auto;
}
.nyx-rm__inner--results {
    padding: 40px 32px;
    max-width: 880px;
    margin: 0 auto;
}
@media (max-width: 600px) {
    .nyx-rm__inner, .nyx-rm__inner--results { padding: 28px 18px; }
}

/* ── STEP PROGRESS ────────────────────────────────────────────────────────── */
.nyx-rm__progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 36px;
}
.nyx-rm__progress-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    position: relative;
}
.nyx-rm__progress-step + .nyx-rm__progress-step::before {
    content: '';
    position: absolute;
    right: 100%;
    top: 18px;
    width: 48px;
    height: 2px;
    background: var(--nyx-border);
    transform: translateY(-50%);
}
.nyx-rm__progress-step--done + .nyx-rm__progress-step::before,
.nyx-rm__progress-step--active + .nyx-rm__progress-step::before {
    background: color-mix(in srgb, var(--nyx-c) 40%, var(--nyx-border));
}
.nyx-rm__progress-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid var(--nyx-border);
    background: var(--nyx-card);
    color: var(--nyx-muted);
    font-size: .85rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .25s;
}
.nyx-rm__progress-step--active .nyx-rm__progress-num {
    background: var(--nyx-c);
    border-color: var(--nyx-c);
    color: #fff;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--nyx-c) 35%, transparent);
}
.nyx-rm__progress-step--done .nyx-rm__progress-num {
    background: color-mix(in srgb, var(--nyx-c) 15%, transparent);
    border-color: color-mix(in srgb, var(--nyx-c) 40%, transparent);
    color: var(--nyx-c);
}
.nyx-rm__progress-label {
    font-size: .72rem;
    font-weight: 600;
    color: var(--nyx-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    white-space: nowrap;
}
.nyx-rm__progress-step--active .nyx-rm__progress-label { color: var(--nyx-c); }
@media (max-width: 480px) {
    .nyx-rm__progress-label { display: none; }
    .nyx-rm__progress-step + .nyx-rm__progress-step::before { width: 28px; }
}

/* ── HERO ─────────────────────────────────────────────────────────────────── */
.nyx-rm__hero { text-align: center; margin-bottom: 32px; }
.nyx-rm__title {
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 900;
    color: var(--nyx-c);
    letter-spacing: -.03em;
    line-height: 1.15;
}
.nyx-rm__subtitle {
    margin-top: 8px;
    color: var(--nyx-muted);
    font-size: 1rem;
    line-height: 1.5;
}

/* ── HERO FULLSCREEN SHORTCODE ─────────────────────────────────────────────── */
.nyx-rm--hero {
    background: transparent;
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
}
.nyx-rm__hero-section {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.nyx-rm__hero-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.nyx-rm__hero-content {
    width: 100%;
    max-width: 820px;
    text-align: center;
}
.nyx-rm__hero-title {
    font-size: clamp(2rem, 5vw, 3.75rem);
    font-weight: 900;
    color: #fff;
    text-shadow: 0 3px 16px rgba(0,0,0,.65);
    letter-spacing: -.04em;
    margin-bottom: 14px;
    line-height: 1.1;
}
.nyx-rm__hero-subtitle {
    font-size: clamp(1rem, 2vw, 1.3rem);
    color: rgba(255,255,255,.9);
    text-shadow: 0 1px 8px rgba(0,0,0,.5);
    margin-bottom: 40px;
    line-height: 1.5;
}

/* ── SEARCH FORM (standard) ──────────────────────────────────────────────── */
.nyx-rm__search-card {
    background: var(--nyx-card);
    border: 1.5px solid var(--nyx-border);
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 6px 28px rgba(0,0,0,.07);
}
.nyx-rm__search-form .nyx-rm__fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 16px;
    align-items: end;
}

/* ── SEARCH FORM (hero) ──────────────────────────────────────────────────── */
.nyx-rm__search-form--hero { margin: 0; }
.nyx-rm__fields--hero {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    justify-content: center;
    background: rgba(255,255,255,.13);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 20px 60px rgba(0,0,0,.3);
}
@media (max-width: 640px) {
    .nyx-rm__fields--hero { flex-direction: column; }
    .nyx-rm__field--glass, .nyx-rm__field--submit { width: 100%; }
}
.nyx-rm__field--glass { flex: 1 1 160px; min-width: 140px; }
.nyx-rm__field--glass label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    color: rgba(255,255,255,.92);
    text-transform: uppercase;
    letter-spacing: .09em;
    margin-bottom: 7px;
}
.nyx-rm__field--glass input[type=date] {
    width: 100%;
    padding: 11px 15px;
    border: 1.5px solid rgba(255,255,255,.38);
    border-radius: 13px;
    background: rgba(255,255,255,.2);
    color: #fff;
    font-size: .95rem;
    font-weight: 600;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    min-height: 46px;
}
.nyx-rm__field--glass input[type=date]:focus {
    outline: none;
    border-color: rgba(255,255,255,.72);
    background: rgba(255,255,255,.28);
}
.nyx-rm__field--glass input[type=date]::-webkit-calendar-picker-indicator { filter: invert(1); opacity: .8; }
.nyx-rm__counter--glass {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 46px;
    padding: 5px 6px;
    border: 1.5px solid rgba(255,255,255,.28);
    border-radius: 13px;
    background: rgba(255,255,255,.12);
}
.nyx-rm__counter--glass button {
    width: 32px; height: 32px; border-radius: 10px;
    border: 1.5px solid rgba(255,255,255,.45);
    background: rgba(255,255,255,.18);
    color: #fff; font-size: 1rem; cursor: pointer; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
}
.nyx-rm__counter--glass button:hover { background: rgba(255,255,255,.35); }
.nyx-rm__counter--glass input {
    width: 44px; text-align: center;
    border: none; background: transparent;
    color: #fff; font-size: 1rem; font-weight: 700;
}
.nyx-rm__field--submit { flex: 0 0 auto; display: flex; align-items: flex-end; }
.nyx-rm__btn--hero-search {
    min-height: 46px;
    padding: 0 28px;
    border-radius: 13px;
    font-size: 1rem;
    font-weight: 800;
    background: var(--nyx-c);
    color: #fff;
    border: none;
    cursor: pointer;
    transition: opacity .15s, transform .15s, box-shadow .15s;
    white-space: nowrap;
    box-shadow: 0 6px 24px rgba(0,0,0,.35);
    letter-spacing: .01em;
}
.nyx-rm__btn--hero-search:hover {
    opacity: .92;
    transform: translateY(-2px);
    box-shadow: 0 10px 32px rgba(0,0,0,.4);
}

/* ── STEP ─────────────────────────────────────────────────────────────────── */
.nyx-rm__step--hidden { display: none !important; }
.nyx-rm__section-title {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--nyx-text);
    margin-bottom: 20px;
    letter-spacing: -.01em;
}
.nyx-rm__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--nyx-muted);
    font-size: .875rem;
    font-weight: 600;
    margin-bottom: 20px;
    padding: 6px 12px 6px 8px;
    border-radius: 10px;
    transition: background .15s, color .15s;
}
.nyx-rm__back:hover {
    background: color-mix(in srgb, var(--nyx-c) 10%, transparent);
    color: var(--nyx-c);
}

/* ── FIELDS / FORM ────────────────────────────────────────────────────────── */
.nyx-rm__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 18px; }
.nyx-rm__fields--two { grid-template-columns: 1fr 1fr; }
@media (max-width: 520px) { .nyx-rm__fields, .nyx-rm__fields--two { grid-template-columns: 1fr; } }
.nyx-rm__field--full { grid-column: 1 / -1; }

.nyx-rm__field label {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--nyx-text) 70%, var(--nyx-muted));
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: 7px;
}
.nyx-rm__field input[type=text],
.nyx-rm__field input[type=email],
.nyx-rm__field input[type=tel],
.nyx-rm__field input[type=date],
.nyx-rm__field textarea {
    width: 100%;
    padding: 11px 15px;
    border: 1.5px solid var(--nyx-border);
    border-radius: 12px;
    background: var(--nyx-input);
    color: var(--nyx-text);
    font-size: .95rem;
    line-height: 1.5;
    transition: border-color .15s, box-shadow .15s;
    font-family: inherit;
}
.nyx-rm__field input:focus,
.nyx-rm__field textarea:focus {
    outline: none;
    border-color: var(--nyx-c);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--nyx-c) 18%, transparent);
}
.nyx-rm__field--check label {
    text-transform: none;
    font-size: .9rem;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--nyx-text);
}
.nyx-rm__field--check input[type=checkbox] {
    width: 20px; height: 20px;
    accent-color: var(--nyx-c);
    flex-shrink: 0;
    border-radius: 4px;
}
.nyx-rm__field--check a { color: var(--nyx-c); text-decoration: underline; }

/* ── COUNTER ──────────────────────────────────────────────────────────────── */
.nyx-rm__counter {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1.5px solid var(--nyx-border);
    border-radius: 12px;
    padding: 5px 6px;
    background: var(--nyx-input);
}
.nyx-rm__counter button {
    width: 34px; height: 34px;
    border-radius: 9px;
    border: 1px solid color-mix(in srgb, var(--nyx-border) 80%, transparent);
    background: color-mix(in srgb, var(--nyx-card) 90%, #fff 10%);
    color: var(--nyx-c);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s, color .15s;
    flex-shrink: 0;
}
.nyx-rm__counter button:hover { background: var(--nyx-c); color: #fff; border-color: transparent; }
.nyx-rm__counter input {
    flex: 1;
    text-align: center;
    border: none;
    background: transparent;
    color: var(--nyx-text);
    font-size: 1rem;
    font-weight: 700;
    width: 44px;
}

/* ── BUTTONS ──────────────────────────────────────────────────────────────── */
.nyx-rm__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 28px;
    border-radius: 13px;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .01em;
    border: none;
    cursor: pointer;
    transition: opacity .15s, transform .15s, box-shadow .15s;
    margin-top: 20px;
    text-decoration: none;
    font-family: inherit;
}
.nyx-rm__btn:hover { opacity: .9; transform: translateY(-1px); }
.nyx-rm__btn:active { transform: translateY(0) scale(.98); }
.nyx-rm__btn--primary {
    background: var(--nyx-c);
    color: #fff;
    box-shadow: 0 6px 20px color-mix(in srgb, var(--nyx-c) 30%, transparent);
}
.nyx-rm__btn--primary:hover {
    box-shadow: 0 10px 28px color-mix(in srgb, var(--nyx-c) 40%, transparent);
}
.nyx-rm__btn--secondary {
    background: transparent;
    border: 2px solid var(--nyx-c);
    color: var(--nyx-c);
}
.nyx-rm__btn--secondary:hover {
    background: color-mix(in srgb, var(--nyx-c) 8%, transparent);
}
.nyx-rm__btn--full { width: 100%; }
.nyx-rm__btn:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }

/* ── SEARCH SUBMIT (standard) ────────────────────────────────────────────── */
.nyx-rm__search-form > .nyx-rm__btn--primary {
    margin-top: 20px;
    min-height: 50px;
    border-radius: 13px;
    font-size: 1rem;
    letter-spacing: .02em;
}

/* ── GALLERY ──────────────────────────────────────────────────────────────── */
.nyx-rm__gallery {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 16px 16px 0 0;
    background: var(--nyx-border);
}
.nyx-rm__gallery--single { }
.nyx-rm__gallery-img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0;
    transition: opacity .4s ease;
}
.nyx-rm__gallery-img--active { opacity: 1; }
.nyx-rm__gallery--single .nyx-rm__gallery-img { position: static; opacity: 1; display: block; }
.nyx-rm__gallery-btn {
    position: absolute; top: 50%; transform: translateY(-50%);
    background: rgba(0,0,0,.48); color: #fff; border: none; cursor: pointer;
    width: 38px; height: 38px; border-radius: 50%; font-size: 1.5rem;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s; z-index: 2;
    backdrop-filter: blur(4px);
}
.nyx-rm__gallery-btn:hover { background: rgba(0,0,0,.72); }
.nyx-rm__gallery-btn--prev { left: 10px; }
.nyx-rm__gallery-btn--next { right: 10px; }
.nyx-rm__gallery-dots {
    position: absolute; bottom: 10px; left: 0; right: 0;
    display: flex; justify-content: center; gap: 6px; z-index: 2;
}
.nyx-rm__gallery-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,.5); cursor: pointer;
    transition: background .2s, transform .2s;
    border: none;
}
.nyx-rm__gallery-dot--active {
    background: #fff; transform: scale(1.3);
}

/* ── ROOMS LIST ───────────────────────────────────────────────────────────── */
.nyx-rm__rooms {
    display: grid;
    gap: 20px;
}
.nyx-rm__room-card {
    background: var(--nyx-card);
    border: 1.5px solid var(--nyx-border);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--nyx-shadow);
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.nyx-rm__room-card:hover {
    border-color: color-mix(in srgb, var(--nyx-c) 50%, var(--nyx-border));
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
    transform: translateY(-2px);
}
.nyx-rm__room-card--unavailable {
    opacity: .45;
    pointer-events: none;
    filter: grayscale(.4);
}
.nyx-rm__room-body {
    padding: 20px 22px;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    align-items: flex-start;
}
@media (max-width: 520px) {
    .nyx-rm__room-body { flex-direction: column; }
    .nyx-rm__room-action { width: 100%; flex-direction: row; align-items: center; justify-content: space-between; }
}

.nyx-rm__room-info { flex: 1; min-width: 0; }
.nyx-rm__room-name {
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--nyx-text);
    margin-bottom: 10px;
    letter-spacing: -.01em;
}
.nyx-rm__room-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.nyx-rm__room-desc {
    font-size: .875rem;
    color: var(--nyx-muted);
    line-height: 1.55;
}
.nyx-rm__room-action {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
    flex-shrink: 0;
    padding-top: 2px;
}
.nyx-rm__room-price {
    font-size: 1.2rem;
    font-weight: 900;
    color: var(--nyx-c);
    text-align: right;
    line-height: 1.3;
}
.nyx-rm__room-price small {
    display: block;
    font-size: .72rem;
    font-weight: 500;
    color: var(--nyx-muted);
    margin-top: 2px;
}
.nyx-rm__tag {
    font-size: .72rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
    background: color-mix(in srgb, var(--nyx-c) 11%, transparent);
    color: var(--nyx-c);
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
}
.nyx-rm__choose-btn {
    padding: 10px 22px;
    background: var(--nyx-c);
    color: #fff;
    border: none;
    border-radius: 11px;
    font-weight: 700;
    cursor: pointer;
    font-size: .9rem;
    transition: opacity .15s, transform .1s, box-shadow .15s;
    white-space: nowrap;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--nyx-c) 28%, transparent);
}
.nyx-rm__choose-btn:hover {
    opacity: .9;
    transform: translateY(-1px);
    box-shadow: 0 7px 20px color-mix(in srgb, var(--nyx-c) 38%, transparent);
}
.nyx-rm__unavail {
    font-size: .82rem;
    color: var(--nyx-muted);
    font-style: italic;
}
.nyx-rm__no-rooms {
    text-align: center;
    padding: 60px 24px;
    color: var(--nyx-muted);
    font-size: .95rem;
}

/* ── SUMMARY ──────────────────────────────────────────────────────────────── */
.nyx-rm__summary {
    background: color-mix(in srgb, var(--nyx-c) 6%, var(--nyx-card) 94%);
    border: 1.5px solid color-mix(in srgb, var(--nyx-c) 22%, var(--nyx-border));
    border-radius: 16px;
    padding: 18px 22px;
    margin-bottom: 24px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 14px;
}
.nyx-rm__summary-label {
    font-size: .72rem;
    color: var(--nyx-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
}
.nyx-rm__summary-value {
    font-weight: 700;
    color: var(--nyx-text);
    font-size: .95rem;
    margin-top: 3px;
}

/* ── PRICE BOX ────────────────────────────────────────────────────────────── */
.nyx-rm__price-box {
    background: color-mix(in srgb, var(--nyx-c) 6%, transparent);
    border: 1.5px solid color-mix(in srgb, var(--nyx-c) 20%, transparent);
    border-radius: 16px;
    padding: 18px 22px;
    margin-bottom: 10px;
}
.nyx-rm__price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .9rem;
    color: var(--nyx-text);
    padding: 4px 0;
}
.nyx-rm__price-row--deposit {
    color: var(--nyx-muted);
    font-size: .85rem;
    font-style: italic;
}
.nyx-rm__price-row--total {
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--nyx-c);
    border-top: 1.5px solid color-mix(in srgb, var(--nyx-c) 20%, var(--nyx-border));
    margin-top: 8px;
    padding-top: 12px;
}

/* ── CONFIRM ──────────────────────────────────────────────────────────────── */
#nyx-step-confirm { text-align: center; padding: 28px 0; }
.nyx-rm__confirm-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}
.nyx-rm__confirm-icon {
    width: 72px; height: 72px;
    background: var(--nyx-c);
    color: #fff;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.2rem;
    margin: 0 auto 20px;
    box-shadow: 0 8px 28px color-mix(in srgb, var(--nyx-c) 35%, transparent);
    animation: nyx-pop .4s cubic-bezier(.22,.68,0,1.2) both;
}
@keyframes nyx-pop {
    from { transform: scale(0); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.nyx-rm__confirm-title {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--nyx-text);
    margin-bottom: 8px;
    letter-spacing: -.01em;
}
.nyx-rm__confirm-msg {
    color: var(--nyx-muted);
    margin: 0 auto 28px;
    line-height: 1.6;
    max-width: 480px;
    font-size: .95rem;
}

/* ── LOADER ───────────────────────────────────────────────────────────────── */
.nyx-rm__loader {
    position: absolute; inset: 0;
    background: color-mix(in srgb, var(--nyx-bg) 70%, transparent);
    display: flex; align-items: center; justify-content: center;
    border-radius: inherit;
    z-index: 100;
    backdrop-filter: blur(4px);
}
.nyx-rm__loader--hidden { display: none !important; }
.nyx-rm__spinner {
    width: 40px; height: 40px;
    border: 4px solid color-mix(in srgb, var(--nyx-c) 22%, transparent);
    border-top-color: var(--nyx-c);
    border-radius: 50%;
    animation: nyx-spin .7s linear infinite;
}
@keyframes nyx-spin { to { transform: rotate(360deg); } }

/* ── ERROR ────────────────────────────────────────────────────────────────── */
.nyx-rm__error {
    background: #fef2f2;
    border: 1.5px solid #fca5a5;
    color: #b91c1c;
    padding: 13px 18px;
    border-radius: 12px;
    margin-top: 14px;
    font-size: .9rem;
    line-height: 1.5;
}
.nyx-rm__error--hidden { display: none !important; }

/* ── DIVIDER ──────────────────────────────────────────────────────────────── */
.nyx-rm__divider {
    height: 1px;
    background: var(--nyx-border);
    margin: 28px 0;
}
