
:root {
    color-scheme: dark;
    --bg: #090909;
    --surface: #121212;
    --surface-light: #191919;
    --gold: #d6b568;
    --gold-light: #f2d99a;
    --text: #f5f1e8;
    --muted: #a7a195;
    --border: rgba(214, 181, 104, 0.2);
    --success: #75c99a;
    --danger: #e88989;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--text);
    background: radial-gradient(ellipse at 50% 0%, rgba(214, 181, 104, 0.09), transparent 48%),
        var(--bg);
    font-family: "Kalameh", Tahoma, Arial, sans-serif;
    line-height: 1.8;
}

button,
input {
    font: inherit;
}

button {
    -webkit-tap-highlight-color: transparent;
}

.reservation-page {
    width: min(100% - 32px, 760px);
    margin-inline: auto;
    padding-block: 64px;
}

.page-header {
    margin-bottom: 36px;
    text-align: center;
}

.brand-mark {
    display: inline-block;
    padding: 5px 16px;
    border: 1px solid var(--border);
    border-radius: 100px;
    color: var(--gold-light);
    font-size: 12px;
    letter-spacing: 1px;
    position: relative;
}

.brand-mark::after {
    content: "";
    width: inherit;
    height: inherit;
    background-color: #0d0d0d;
    border-radius: 100px;
    position: absolute;
    inset: 0;
    z-index: -1;
    animation: aim_scale_1 2s infinite;
}

@keyframes aim_scale_1 {
    from {
        
        opacity: 1;
    }

    to {
        
        opacity: 0;
    }
}

.brand-mark::before {
    content: "";
    width: inherit;
    height: inherit;
    background-color: #c6a354;
    border-radius: 100px;
    position: absolute;
    inset: 0;
    z-index: -1;
    animation: aim_scale_2 2s infinite;
}

@keyframes aim_scale_2 {
    from {
        
        opacity: 1;
    }

    to {
        
        opacity: 0;
    }
}

.page-header h1 {
    margin: 18px 0 8px;
    font-size: clamp(28px, 5vw, 42px);
    font-weight: 800;
    letter-spacing: -1px;
}

.page-header p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.reservation-card {
    margin-bottom: 22px;
    padding: clamp(20px, 4vw, 32px);
    border: 1px solid var(--border);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(25, 25, 25, 0.97), rgba(15, 15, 15, 0.97));
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.2);
}

.section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.section-heading h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.section-number {
    color: var(--gold);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
}

.status-message {
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 13px;
}

.dates-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 22px;
}

.date-option,
.slot-option {
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--text);
    background: var(--surface-light);
    cursor: pointer;
    transition:border-color 180ms ease,background 180ms ease,color 180ms ease;
}

.date-option {
    padding: 9px 16px;
    font-size: 13px;
}

.date-option:hover,
.slot-option:not(:disabled):hover {
    border-color: var(--gold);
    
}

.date-option.is-selected,
.slot-option.is-selected {
    border-color: var(--gold);
    color: var(--gold-light);
    background: rgba(214, 181, 104, 0.12);
    box-shadow: inset 0 0 0 1px rgba(214, 181, 104, 0.12);
}

.slots-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.slot-option {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 14px;
    text-align: right;
}

.slot-option>span {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.slot-option strong {
    font-size: 16px;
    font-weight: 700;
}

.slot-option span span {
    color: var(--muted);
    font-size: 11px;
}

.slot-option:disabled {
    border-color: rgba(255, 255, 255, 0.06);
    color: #777;
    background: #111;
    cursor: not-allowed;
    opacity: 0.65;
}

.slot-option:disabled span span {
    color: var(--danger);
}

.capacity-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 22px;
    padding: 14px 16px;
    border: 1px solid rgba(117, 201, 154, 0.2);
    border-radius: 12px;
    background: rgba(117, 201, 154, 0.06);
    color: var(--muted);
    font-size: 13px;
}

.capacity-info strong {
    color: var(--success);
    font-size: 20px;
}

.form-group {
    display: grid;
    gap: 8px;
    margin-bottom: 20px;
}

.form-group label {
    color: #ded8cb;
    font-size: 13px;
}

.form-group input {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    outline: none;
    color: var(--text);
    background: #0d0d0d;
    transition:border-color 180ms ease,box-shadow 180ms ease;
}

.form-group input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(214, 181, 104, 0.09);
}

#submitReservation {
    width: 100%;
    min-height: 52px;
    margin-top: 4px;
    border: 1px solid var(--gold);
    border-radius: 12px;
    color: #17120a;
    background: linear-gradient(110deg, #b99448, #f2d99a, #c6a354);
    font-weight: 800;
    cursor: pointer;
    transition:filter 180ms ease,opacity 180ms ease;
}

#submitReservation:not(:disabled):hover {
    filter: brightness(1.08);
    
}

#submitReservation:disabled {
    border-color: #49412f;
    color: #8b8067;
    background: #29251d;
    cursor: not-allowed;
    opacity: 0.75;
}

button:focus-visible {
    outline: 2px solid var(--gold-light);
    outline-offset: 3px;
}

[hidden] {
    display: none !important;
}

@media (max-width: 480px) {
    .reservation-page {
        width: min(100% - 22px, 760px);
        padding-block: 36px;
    }

    .page-header {
        margin-bottom: 26px;
    }

    .reservation-card {
        padding: 20px 16px;
        border-radius: 17px;
    }

    .section-heading h2 {
        font-size: 16px;
    }

    .dates-container {
        gap: 8px;
    }

    .date-option {
        flex: 1 1 calc(50% - 8px);
        padding-inline: 8px;
    }

    .slots-container {
        grid-template-columns: 1fr;
    }

    .slot-option {
        min-height: 60px;
    }
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.form-group select,
.form-group textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    outline: none;
    color: var(--text);
    background: #0d0d0d;
    font: inherit;
    transition:border-color 180ms ease,box-shadow 180ms ease;
}

.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(214, 181, 104, 0.09);
}

.form-group-wide {
    grid-column: 1 / -1;
}

.optional,
.form-note {
    color: var(--muted);
    font-size: 11px;
}

.form-note {
    margin: 12px 0 0;
    text-align: center;
}

.is-warning {
    color: var(--gold-light);
    border-right: 3px solid var(--gold);
    padding-right: 12px;
}

.confirmation-card {
    border-color: rgba(117, 201, 154, 0.28);
}

.confirmation-card p {
    color: var(--text);
}

.arrival-note {
    color: var(--gold-light) !important;
    font-weight: 700;
}

.reservation-code {
    color: var(--gold-light) !important;
    font-size: 20px;
    font-weight: 800;
}

.secondary-button {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--gold);
    border-radius: 12px;
    color: var(--gold-light);
    background: transparent;
    font: inherit;
    cursor: pointer;
}

@media (max-width: 520px) {
    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-group-wide {
        grid-column: auto;
    }
}


.modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px;
    background: rgba(0, 0, 0, 0.82);
    backdrop-filter: blur(6px);
}

.modal-overlay[hidden] {
    display: none !important;
}

.modal-box {
    position: relative;
    flex: 0 0 auto;
    width: min(100%, 420px);
    max-height: calc(100% - 40px);
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #d6b568 #121212;
    padding: 58px 24px 26px;
    margin: auto;
    text-align: center;
    background: linear-gradient(145deg, #191919, #0c0c0c);
    border: 1px solid #d6b568;
    border-radius: 22px;
    box-shadow: 0 20px 70px rgba(0, 0, 0, .65);
    animation: modalAppear .22s ease-out;
}

.modal-close {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    line-height: 1;
    border: 1px solid #49412f;
    border-radius: 50%;
    background: #121212;
    color: #f2d99a;
    font-family: "Kalameh", Tahoma, Arial, sans-serif;
    font-size: 27px;
    cursor: pointer;
}

.modal-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 14px;
    border: 1px solid rgba(214, 181, 104, .45);
    border-radius: 50%;
    color: #f2d99a;
    font-size: 26px;
}

.modal-box h2 {
    margin: 0 0 12px;
    color: #f2d99a;
    font-size: 23px;
}

.modal-box p {
    color: #e4dfd3;
    line-height: 2;
    font-size: 14px;
}

.modal-phone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 18px 0;
    color: #f2d99a;
    font-size: 21px;
    font-weight: bold;
    direction: ltr;
    text-decoration: none;
}

.modal-phone:hover {
    color: #fff0bf;
}

.modal-phone svg {
    width: 25px;
    height: 25px;
    flex-shrink: 0;
}

.modal-phone span::after {
    content: "     کلیک کنید";
}

.modal-hint {
    margin: 14px 0 20px;
    padding: 12px;
    border: 1px solid rgba(214, 181, 104, .22);
    border-radius: 10px;
    background: rgba(214, 181, 104, .06);
}

.modal-confirm {
    width: 100%;
    min-height: 48px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(110deg, #b99448, #f2d99a);
    color: #17120a;
    font: inherit;
    font-weight: bold;
    cursor: pointer;
}

@keyframes modalAppear {
    from {
        opacity: 0;
        
    }

    to {
        opacity: 1;
        
    }
}

@media (prefers-reduced-motion: reduce) {
    .modal-box {
        animation: none;
    }
}

/* کشویی بازه‌های رزرو */
.segmentation-accordion {
    width: 100%;
    display: block;
    box-sizing: border-box;
    grid-column: 1 / -1;
    margin: 0 0 14px;
    margin-bottom: 14px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: linear-gradient(135deg, #191919, #101010);
    transition:border-color 180ms ease;
}

.segmentation-accordion[open] {
    border-color: rgba(214, 181, 104, 0.65);
}

.segmentation-summary {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    box-sizing: border-box;
    padding: 18px;
    cursor: pointer;
    list-style: none;
}

.segmentation-summary::-webkit-details-marker {
    display: none;
}

.segmentation-summary::before {
    content: "＋";
    color: var(--gold);
    font-size: 20px;
    order: 3;
}

.segmentation-accordion[open]>.segmentation-summary::before {
    content: "−";
}

.segmentation-heading {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 4px;
}

.segmentation-title {
    color: var(--gold-light);
    font-size: 15px;
    font-weight: 800;
}

.segmentation-range {
    color: var(--muted);
    font-size: 11px;
}

.segmentation-status {
    flex-shrink: 0;
    padding: 4px 9px;
    border: 1px solid var(--border);
    border-radius: 20px;
    color: var(--muted);
    font-size: 10px;
}

.segmentation-status.is-open {
    color: var(--success);
    border-color: rgba(117, 201, 154, 0.3);
    background: rgba(117, 201, 154, 0.06);
}

.segmentation-dates {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(110px, 1fr));
    gap: 10px;
    box-sizing: border-box;
    margin: 0;
    padding: 0 16px 16px;
    animation: segmentationReveal 180ms ease-out;
}

.segmentation-summary[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.65;
}

@keyframes segmentationReveal {
    from {
        opacity: 0;
        
    }

    to {
        opacity: 1;
        
    }
}

@media (max-width: 480px) {
    .segmentation-summary {
        padding: 14px 12px;
        gap: 8px;
    }

    .segmentation-title {
        font-size: 13px;
    }

    .segmentation-status {
        padding: 3px 6px;
        font-size: 9px;
    }

    .segmentation-dates {
        padding-inline: 10px;
    }
}

/* هم‌ترازی و تیترهای بخش‌های رزرو */
.section-heading {
    justify-content: center;
    text-align: center;
    position: relative;
}
.section-heading h2 { text-align: center; }
.section-heading .section-number { position: absolute; inset-inline-end: 0; }
.subsection-heading { margin: 6px 0 14px; padding-top: 16px; border-top: 1px solid var(--border); }
.subsection-heading h2 { color: var(--gold-light); font-size: 16px; }
.dates-container { justify-content: center; }
.date-option, .slot-option { text-align: center; justify-content: center; }
.slot-option > span { align-items: center; text-align: center; }

/* یکدست‌سازی کنترل‌های فرم در مرورگرهای مختلف */
button{appearance:none;background-image:none}
textarea{resize:none}
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}


/* مرحله نهم: کنترل‌های شیشه‌ای، فوکوس طلایی و اسکرول یکپارچه */
html { scrollbar-color: #8f7136 #101010; scrollbar-width: thin; scroll-behavior: smooth; }
* { scrollbar-width: thin; scrollbar-color: #8f7136 #101010; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: #101010; border-radius: 10px; }
*::-webkit-scrollbar-thumb { background: linear-gradient(180deg,#d6b568,#765a25); border: 2px solid #101010; border-radius: 10px; }
*::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg,#f2d99a,#a98237); }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  text-align: center !important; outline: none !important; border: 1px solid rgba(214,181,104,.28) !important;
  transition:border-color .28s ease,box-shadow .32s ease,background-color .32s ease !important;
  caret-color: var(--gold-light); appearance: none; -webkit-appearance: none;
}
input:not([type=checkbox]):not([type=radio]):hover, select:hover, textarea:hover {
  border-color: rgba(242,217,154,.78) !important;
  background-image: linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.13) 48%,rgba(242,217,154,0) 62%,transparent 100%) !important;
  background-size: 220% 100% !important; background-position: 100% 0; animation: inputGlassSweep .85s ease both;
  box-shadow: 0 5px 20px rgba(214,181,104,.08), inset 0 0 0 1px rgba(242,217,154,.035) !important;
}
input:not([type=checkbox]):not([type=radio]):focus, select:focus, textarea:focus {
  border-color: var(--gold-light) !important;
  box-shadow: 0 0 0 3px rgba(214,181,104,.14), 0 0 22px rgba(214,181,104,.10), inset 0 0 0 1px rgba(242,217,154,.1) !important;
}
select { background-image: none !important; }
textarea { resize: none !important; }
.reservation-page, .reservation-card, .form-grid { min-width: 0; max-width: 100%; }

@keyframes inputGlassSweep { from { background-position: 120% 0; } to { background-position: -120% 0; } }


/* Stage 14: unified Kalameh typography and animated glass sweep for public form */
:root { --project-font: "Kalameh", Tahoma, sans-serif; }
html, body, button, input, select, textarea, label { font-family: var(--project-font) !important; }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  text-align:center !important; outline:none !important; appearance:none; -webkit-appearance:none;
  border:1px solid rgba(214,181,104,.32); background-color:#151515; background-repeat:no-repeat;
  transition:border-color .25s ease,box-shadow .28s ease,background-color .25s ease;
}
select { background-image:linear-gradient(45deg,transparent 50%,#e6bd66 50%),linear-gradient(135deg,#e6bd66 50%,transparent 50%); background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%; background-size:6px 6px,6px 6px; padding-inline:30px 12px; }
input:not([type=checkbox]):not([type=radio]):hover, textarea:hover {
  background-image:linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.2) 48%,rgba(242,217,154,0) 62%,transparent 100%);
  background-size:240% 100%; background-position:120% 0; animation:publicGlassSweep .82s ease-in-out both;
  border-color:rgba(242,217,154,.8); box-shadow:0 5px 20px rgba(214,181,104,.09);
}
select:hover { background-image:linear-gradient(45deg,transparent 50%,#e6bd66 50%),linear-gradient(135deg,#e6bd66 50%,transparent 50%),linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.2) 48%,rgba(242,217,154,0) 62%,transparent 100%); background-size:6px 6px,6px 6px,240% 100%; background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%,120% 0; animation:publicSelectSweep .82s ease-in-out both; }
input:not([type=checkbox]):not([type=radio]):focus, select:focus, textarea:focus { border-color:#f2d99a; box-shadow:0 0 0 3px rgba(230,189,102,.15),0 0 22px rgba(230,189,102,.12); }
@keyframes publicGlassSweep { from{background-position:120% 0}to{background-position:-120% 0} }
@keyframes publicSelectSweep { from{background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%,120% 0}to{background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%,-120% 0} }

button, .modal-close { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; line-height:1.35; }
button svg, button i, button .icon { flex:0 0 auto; display:inline-grid; place-items:center; }
.modal-close { width:36px; height:36px; padding:0 !important; line-height:1 !important; }

/* Stage 16: refined online reservation form */
:root{--gold:#e2bb62;--gold-light:#ffe5a0;--text:#fffaf0;--muted:#c0b8a7;--border:rgba(226,187,98,.3)}
.reservation-card{border-color:rgba(226,187,98,.3);background:linear-gradient(145deg,rgba(28,27,23,.98),rgba(12,12,12,.98));box-shadow:0 20px 60px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.025)}
.section-heading h2{letter-spacing:.2px;text-wrap:balance}
.form-grid{gap:18px}
.form-group{min-width:0;position:relative}
.form-group label{display:block;margin-bottom:8px;color:#f2dfb1;letter-spacing:.15px}
.form-group input,.form-group select,.form-group textarea{width:100%;min-width:0;position:relative;isolation:isolate;border:1px solid #5c4a2b;border-radius:13px;background:linear-gradient(135deg,rgba(33,31,25,.96),rgba(14,14,14,.98));color:#fffaf0;padding:13px 15px;font:inherit;line-height:1.6;text-align:center;box-shadow:inset 0 1px rgba(255,255,255,.035);transition:border-color .28s ease,box-shadow .28s ease,background .28s ease}
.form-group input::placeholder,.form-group textarea::placeholder{color:#9f9787;opacity:1}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#d9b75f;background:linear-gradient(135deg,rgba(45,40,28,.98),rgba(18,17,14,.98));box-shadow:0 7px 22px #0005,inset 0 1px #ffffff08}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#ffe5a0;box-shadow:0 0 0 3px #e2bb6233,0 0 26px #e2bb621a;background:#19170f;}
.form-group input:not([type=checkbox])::after{content:""}
.form-group input,.form-group select,.form-group textarea{background-image:linear-gradient(115deg,transparent 0%,transparent 36%,rgba(255,255,255,.09) 48%,rgba(255,255,255,.015) 57%,transparent 70%);background-size:240% 100%;background-position:100% 0}
.form-group input:hover,.form-group select:hover,.form-group textarea:hover{animation:reservationGlassSweep16 .85s ease-out}
@keyframes reservationGlassSweep16{0%{background-position:100% 0}100%{background-position:-40% 0}}
.form-group select{appearance:none;-webkit-appearance:none;padding-inline-end:42px;background-image:linear-gradient(45deg,transparent 50%,#e7c56f 50%),linear-gradient(135deg,#e7c56f 50%,transparent 50%),linear-gradient(115deg,transparent 0%,transparent 36%,rgba(255,255,255,.09) 48%,rgba(255,255,255,.015) 57%,transparent 70%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,100% 0;background-size:6px 6px,6px 6px,240% 100%;background-repeat:no-repeat}
.form-group select:hover{background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,-40% 0}
.form-group select:focus{background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,-40% 0}
.form-group textarea{text-align:right;resize:vertical;min-height:100px}
#submitReservation{width:100%;min-height:54px;margin-top:20px;border:1px solid #ffe4a0;border-radius:14px;background:linear-gradient(120deg,#9a7028,#e5bd60 48%,#ffe8a8);color:#211707;font-weight:800;letter-spacing:.25px;box-shadow:0 9px 26px #d6aa4b25,inset 0 1px #fff9}
#submitReservation:disabled{filter:grayscale(.65);opacity:.52;box-shadow:none;cursor:not-allowed}
.form-note,.page-header p{letter-spacing:.1px;line-height:1.9;text-wrap:balance}
.status-message{text-align:center;letter-spacing:.1px}
@media(max-width:600px){.reservation-page{width:min(100% - 20px,760px);padding-block:28px}.reservation-card{padding:18px 14px;border-radius:18px}.section-heading{gap:10px;margin-bottom:18px}.form-grid{grid-template-columns:1fr;gap:14px}.form-group input,.form-group select,.form-group textarea{padding:12px}.page-header h1{letter-spacing:0;font-size:clamp(26px,8vw,36px)}}
@media(prefers-reduced-motion:reduce){.form-group input:hover,.form-group select:hover,.form-group textarea:hover{animation:none}}


/* Stage 17: stable rendering, RTL defaults, and unified interactions */
html,body{direction:rtl}
body{ text-align:right }
button,a{transition:color .22s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease,filter .25s ease!important}
button:not(:disabled):hover{box-shadow:0 7px 22px rgba(230,189,102,.16)!important;filter:brightness(1.035)}
button:not(:disabled):active{filter:brightness(.97)}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{direction:rtl;text-align:center!important;appearance:none!important;-webkit-appearance:none!important;background-image:none!important;padding-inline:12px!important;outline:none!important}
select{background-image:none!important;padding-inline:12px!important}
input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{display:none!important;-webkit-appearance:none!important}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):hover,select:hover,textarea:hover{background-image:linear-gradient(110deg,transparent 0%,rgba(242,217,154,0) 34%,rgba(242,217,154,.22) 48%,rgba(242,217,154,0) 62%,transparent 100%)!important;background-size:240% 100%;background-position:120% 0;background-repeat:no-repeat!important;animation:stage17GlassSweep .9s ease-in-out both!important;border-color:#f2d99a!important;box-shadow:0 5px 20px rgba(214,181,104,.12),inset 0 0 0 1px rgba(242,217,154,.05)!important}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,select:focus,textarea:focus{background-color:#17150f!important;border-color:#f2d99a!important;box-shadow:0 0 0 3px rgba(230,189,102,.16),0 0 22px rgba(230,189,102,.12)!important;outline:none!important}
@keyframes stage17GlassSweep{from{background-position:120% 0}to{background-position:-120% 0}}
[role=alert],.error,.form-message,.edit-feedback,.message,.success-toast,.admin-modal-box,.hint{direction:rtl;text-align:center}
.message,.form-message,.edit-feedback,.hint{margin-inline:auto}
.admin-modal-close,.toast-close,.modal-close,.close-button,.message-icon,.admin-modal-icon,.success-toast::before{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1!important}
.table-wrap,.table-shell,.table-shell *{min-width:0}
.tab-slider,.night-slider{transition:left .42s cubic-bezier(.22,.8,.25,1),top .42s cubic-bezier(.22,.8,.25,1),width .28s ease,height .28s ease!important}
.search-toggle-icon{display:inline-flex;align-items:center;justify-content:center}
.search-toggle-icon svg{display:block}
.night-arrow:disabled,.table-scroll-arrow:disabled{cursor:not-allowed!important;opacity:.3!important;filter:saturate(.45)!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.form-group input:focus,.form-group select:focus,.form-group textarea:focus{animation:none!important;background-position:0 0}.form-error,.error-message,[role=alert]{direction:rtl;text-align:center}

input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,select:focus,textarea:focus{animation:none!important;background-image:none!important;background-position:0 0}

/* RTL labels, centered compact actions, and non-moving focus state */
.field label,.edit-grid label,.search-field>span{direction:rtl;text-align:right!important;align-items:flex-start!important;justify-content:flex-start!important}
.section-heading,.section-heading h2,.section-number,.table-wrap th,.table-wrap td{text-align:center}

/* صفحهٔ خوشامدگویی تمام‌صفحه */
.welcome-screen { position:fixed; z-index:30000; inset:0; display:flex; align-items:center; justify-content:center; min-height:100svh; overflow:hidden; padding:28px 20px; color:#fff7e7; background:#080706; isolation:isolate; }
.welcome-backdrop { position:absolute; z-index:-2; inset:0; background-image:linear-gradient(135deg,rgba(7,6,5,.83),rgba(7,6,5,.5) 48%,rgba(7,6,5,.86)),url('../images/committee.jpg'); background-position:center center; background-size:cover; background-repeat:no-repeat; animation:welcomeImageReveal 1.1s ease both; }
.welcome-screen::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(ellipse at 50% 42%,rgba(230,189,102,.17),transparent 48%); pointer-events:none; }
.welcome-content { position:relative; width:min(100%,780px); padding:clamp(28px,6vw,64px) clamp(18px,5vw,48px); border:1px solid rgba(242,217,154,.34); border-radius:28px; background:linear-gradient(145deg,rgba(18,16,12,.72),rgba(7,7,7,.54)); box-shadow:0 25px 90px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.09); backdrop-filter:blur(7px); text-align:center; animation:welcomeContentIn .85s .12s ease both; }
.welcome-eyebrow { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:5px 16px; border:1px solid rgba(242,217,154,.35); border-radius:99px; color:#f2d99a; background:rgba(230,189,102,.08); font-size:clamp(11px,2vw,14px); }
.welcome-content h1 { margin:20px 0 12px; color:#f7dfaa; font-size:clamp(34px,7.5vw,70px); font-weight:900; line-height:1.35; text-shadow:0 4px 24px rgba(0,0,0,.65); }
.welcome-greeting { margin:0; font-size:clamp(23px,4.5vw,36px); font-weight:800; }
.welcome-description { margin:13px 0 28px; color:rgba(255,247,231,.78); font-size:clamp(13px,2.5vw,17px); }
.welcome-continue { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:54px; padding:13px 25px; border:1px solid #f2d99a; border-radius:13px; color:#17120a; background:linear-gradient(115deg,#b38b38,#f2d99a,#d2a849); font-size:16px; font-weight:900; box-shadow:0 12px 30px rgba(199,157,65,.2),inset 0 1px rgba(255,255,255,.65); }
.welcome-continue span { display:flex; align-items:center; justify-content:center; font-size:23px; line-height:1; transition:margin .2s ease; }
.welcome-continue:hover span { margin-inline-start:5px; }
.welcome-bottom-note { position:absolute; bottom:18px; left:0; right:0; color:rgba(255,247,231,.55); font-size:12px; letter-spacing:2px; text-align:center; }
.welcome-screen.is-leaving { animation:welcomeLeave .72s cubic-bezier(.7,0,.2,1) both; pointer-events:none; }
@keyframes welcomeImageReveal { from { opacity:.35; } to { opacity:1; } }
@keyframes welcomeContentIn { from { opacity:0; top:-18px; } to { opacity:1; top:0; } }
@keyframes welcomeLeave { 0% { left:0; opacity:1; } 58% { left:12%; opacity:.55; } 100% { left:100%; opacity:0; visibility:hidden; } }
.reservation-step:not([hidden]) { animation:stepReveal .5s ease both; }
@keyframes stepReveal { from { opacity:0; top:12px; } to { opacity:1; top:0; } }
.reservation-step { position:relative; }
#step2 .section-heading { margin-top:12px; }
.form-group label { display:flex; flex-direction:column; justify-content:center; gap:4px; width:100%; margin-bottom:8px; text-align:center; }
.section-heading { align-items:center; }
.section-heading h2 { text-align:center; }
@media(max-width:560px) { .welcome-content { border-radius:22px; } .welcome-continue { width:100%; } .welcome-bottom-note { bottom:10px; } }
@media(prefers-reduced-motion:reduce) { .welcome-backdrop,.welcome-content,.welcome-screen.is-leaving,.reservation-step:not([hidden]) { animation-duration:.01ms !important; } }

/* Stage 19: remove the accidental pre-focus and keep the glass sweep active on typing */
.form-group input:not([type=checkbox]):not([type=radio]):not([type=hidden]):hover,
.form-group input:not([type=checkbox]):not([type=radio]):not([type=hidden]):focus,
.form-group select:hover,.form-group textarea:hover,.form-group textarea:focus,
.form-group .custom-select-trigger:hover,.form-group .custom-select.is-open .custom-select-trigger,
.sougvare-glass-pass {
  background-image: linear-gradient(105deg,transparent 0%,transparent 36%,rgba(255,245,208,0) 43%,rgba(255,245,208,.24) 50%,rgba(255,245,208,0) 57%,transparent 65%,transparent 100%) !important;
  background-size:250% 100% !important;
  background-position:135% 0;
  background-repeat:no-repeat !important;
  animation:sougvareGlassPass .88s ease-in-out both !important;
}
.form-group select,.form-group .custom-select-trigger { background-image:none !important; }
.form-group select:hover,.form-group select:focus,.form-group .custom-select-trigger:hover,.form-group .custom-select.is-open .custom-select-trigger { background-image:linear-gradient(105deg,transparent 0%,transparent 36%,rgba(255,245,208,0) 43%,rgba(255,245,208,.24) 50%,rgba(255,245,208,0) 57%,transparent 65%,transparent 100%) !important; }
.form-group .custom-select-trigger.sougvare-glass-pass {background-image:linear-gradient(105deg,transparent 0%,transparent 36%,rgba(255,245,208,0) 43%,rgba(255,245,208,.24) 50%,rgba(255,245,208,0) 57%,transparent 65%,transparent 100%)!important;animation:sougvareGlassPass .88s ease-in-out both!important}

/* Stage 20: lock the welcome screen without scrollbar jumps; leave via compositor-friendly fade/clip */
html.welcome-open, body.welcome-open { overflow:hidden !important; scrollbar-gutter:stable; overscroll-behavior:none; }
.welcome-screen.is-leaving { animation:welcomeLeave .72s cubic-bezier(.22,.72,.22,1) both; pointer-events:none; }
@keyframes welcomeLeave { 0% { opacity:1; clip-path:inset(0 0 0 0); visibility:visible; } 55% { opacity:.62; clip-path:inset(0 0 0 18%); } 100% { opacity:0; clip-path:inset(0 0 0 100%); visibility:hidden; } }

.welcome-content,.welcome-bottom-note{z-index:2;}
.welcome-backdrop{z-index:-2;}
.welcome-screen::before{z-index:-1;}

/* Stage 21: consistent guest-count control and predictable section reveal */
.form-group .custom-select,
.form-group .custom-select-trigger { width:100%; min-width:0; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group .custom-select-trigger { min-height:54px; height:54px; box-sizing:border-box; }
.form-group label { min-height:24px; line-height:1.6; flex-direction:row; align-items:center; justify-content:center; }
.reservation-step:not([hidden]),
#step2:not([hidden]),
#step3:not([hidden]) { scroll-margin-top:18px; }

/* The welcome panel moves upward as a whole; no fade and no scrollbar-width change. */
html { scrollbar-gutter:auto !important; }
html.welcome-open, body.welcome-open { overflow:hidden !important; }
.welcome-screen { inset:0 0 auto !important; bottom:auto !important; width:100%; height:100vh; height:100dvh; min-height:100vh; }
.welcome-screen.is-leaving { animation:welcomeLeaveUp .58s cubic-bezier(.65,0,.35,1) both !important; }
@keyframes welcomeLeaveUp {
  from { top:0; visibility:visible; }
  to { top:-105vh; visibility:hidden; }
}


/* Stage 22: clearer responsive registration form and smooth, delay-free confirmation */
html { overflow-y: auto !important; scrollbar-gutter: auto !important; scroll-behavior: smooth; }
html.welcome-open, body.welcome-open { overflow: hidden !important; }
.form-group label { font-size: clamp(14px, 1.8vw, 16px) !important; font-weight: 700; line-height: 1.7; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select, .form-group textarea, .form-group .custom-select-trigger {
  font-size: clamp(16px, 2vw, 18px) !important;
  min-height: 54px;
  line-height: 1.65;
}
.form-group textarea { min-height: 96px; }
.form-note, .optional, .status-message { font-size: clamp(13px, 1.6vw, 15px); }
.date-option { font-size: clamp(14px, 1.7vw, 16px); }
.slot-option strong { font-size: clamp(17px, 2vw, 19px); }
.slot-option span span { font-size: clamp(13px, 1.6vw, 15px); }
#step2:not([hidden]), #step3:not([hidden]) { scroll-margin-top: 22px; }
.reservation-step:not([hidden]) { animation: none !important; }
.confirmation-card { opacity: 1; transition: opacity .22s ease; }
.confirmation-card.is-entering { opacity: 0; }
@media (max-width: 520px) {
  .form-group label { font-size: 15px !important; }
  .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .form-group select, .form-group textarea, .form-group .custom-select-trigger { font-size: 16px !important; min-height: 52px; }
  .date-option { min-height: 48px; }
  .section-heading h2 { font-size: 18px; }
}


/* Stage 27: stable date selection, visible welcome fade, and a compact first screen. */
.reservation-page.is-date-selection {
  min-height: 100dvh;
  padding-block: clamp(12px, 2.4vh, 24px);
}
.reservation-page.is-date-selection .page-header { margin-bottom: clamp(10px, 1.8vh, 18px); }
.reservation-page.is-date-selection .brand-mark { padding-block: 3px; }
.reservation-page.is-date-selection .page-header h1 { margin: 7px 0 3px; font-size: clamp(25px, 4.2vw, 36px); line-height: 1.35; }
.reservation-page.is-date-selection .page-header p { margin: 0; font-size: 13px; line-height: 1.6; }
.reservation-page.is-date-selection .reservation-card { margin-bottom: 0; padding: clamp(12px, 2.2vh, 20px) clamp(14px, 3vw, 24px); background: linear-gradient(145deg,rgba(25,25,25,.72),rgba(15,15,15,.62)); }
.reservation-page.is-date-selection .section-heading { margin-bottom: 10px; }
.reservation-page.is-date-selection .status-message { margin-bottom: 8px; }
.reservation-page.is-date-selection .segmentation-accordion { margin-bottom: 8px; background: linear-gradient(135deg,rgba(25,25,25,.72),rgba(16,16,16,.62)); }
.reservation-page.is-date-selection .segmentation-summary { padding-block: 10px; }
.reservation-page.is-date-selection .segmentation-dates { animation: none !important; }

/* Let the site's background remain visible through the date, session, and registration surfaces. */
.reservation-card { background: linear-gradient(145deg,rgba(25,25,25,.72),rgba(15,15,15,.62)) !important; }
.segmentation-accordion { background: linear-gradient(135deg,rgba(25,25,25,.70),rgba(16,16,16,.60)) !important; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select, .form-group textarea, .form-group .custom-select-trigger {
  background-color: rgba(13,13,13,.66) !important;
  backdrop-filter: blur(2px);
}
#step2 .slot-option { background-color: rgba(25,25,25,.62); }
#step2 .capacity-info { background-color: rgba(117,201,154,.09); }

/* Explicitly animate the greeting down gently and fade/slide the entire welcome screen upward. */
.welcome-content { animation: sougvareWelcomeContentIn 1.05s .08s cubic-bezier(.22,.75,.25,1) both !important; }
@keyframes sougvareWelcomeContentIn {
  from { opacity: 0; top: -24px; }
  to { opacity: 1; top: 0; }
}
.welcome-screen.is-leaving {
  animation: sougvareWelcomeFadeUp .82s cubic-bezier(.55,.05,.35,1) both !important;
  pointer-events: none !important;
}
@keyframes sougvareWelcomeFadeUp {
  0% { margin-top: 0; opacity: 1; visibility: visible; }
  100% { margin-top: -100vh; opacity: 0; visibility: hidden; }
}

@media (max-height: 760px) and (min-width: 481px) {
  .reservation-page.is-date-selection { padding-block: 10px; }
  .reservation-page.is-date-selection .page-header { margin-bottom: 8px; }
  .reservation-page.is-date-selection .page-header h1 { margin-block: 4px 2px; }
  .reservation-page.is-date-selection .reservation-card { padding-block: 10px; }
  .reservation-page.is-date-selection .segmentation-summary { padding-block: 8px; }
}
@media (max-width: 480px) {
  .reservation-page.is-date-selection { padding-block: 12px; }
  .reservation-page.is-date-selection .page-header { margin-bottom: 10px; }
  .reservation-page.is-date-selection .page-header h1 { font-size: clamp(24px,7vw,31px); }
  .reservation-page.is-date-selection .reservation-card { padding: 12px 10px; }
  .reservation-page.is-date-selection .segmentation-summary { padding: 9px 10px; }
}


/* Stage 28: normal document scrolling, a compact centered first step, and larger responsive typography. */
html {
  overflow-x: clip !important;
  overflow-y: auto !important;
  scrollbar-gutter: stable !important;
  scroll-behavior: smooth;
}
body { overflow-x: clip !important; }
/* The welcome layer itself must not clip content or create a nested scroll container. */
.welcome-screen { overflow: visible !important; }
html.welcome-open, body.welcome-open {
  overflow-x: clip !important;
  overflow-y: auto !important;
  scrollbar-gutter: stable !important;
  overscroll-behavior: auto !important;
}
.welcome-screen.is-leaving { overflow: visible !important; }
/* Center the initial date step in the available viewport without locking page scrolling. */
.reservation-page.is-date-selection {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: clamp(10px, 2vh, 20px);
  overflow: visible;
}
.reservation-page.is-date-selection .page-header { margin-bottom: clamp(8px, 1.4vh, 14px); }
.reservation-page.is-date-selection .page-header h1 { font-size: clamp(27px, 3.5vw, 36px); }
.reservation-page.is-date-selection .page-header p { font-size: clamp(14px, 1.5vw, 16px); }
.reservation-page.is-date-selection .reservation-card { width: 100%; }
.reservation-card { overflow: visible; }
.section-heading h2 { font-size: clamp(20px, 2.1vw, 24px); line-height: 1.5; }
.section-number { font-size: clamp(14px, 1.5vw, 16px); }
.form-group label { font-size: clamp(16px, 1.8vw, 19px) !important; line-height: 1.65; }
.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-group select, .form-group textarea, .form-group .custom-select-trigger {
  font-size: clamp(17px, 1.8vw, 20px) !important;
  min-height: 58px;
}
.date-option { font-size: clamp(15px, 1.7vw, 18px); min-height: 52px; }
.slot-option strong { font-size: clamp(19px, 2vw, 22px); }
.slot-option span span, .form-note, .optional, .status-message { font-size: clamp(14px, 1.5vw, 16px); }
@media (max-height: 700px) and (min-width: 600px) {
  .reservation-page.is-date-selection { padding-block: 8px; }
  .reservation-page.is-date-selection .page-header { margin-bottom: 8px; }
  .reservation-page.is-date-selection .page-header h1 { margin-block: 3px; font-size: clamp(25px, 3vw, 31px); }
  .reservation-page.is-date-selection .reservation-card { padding-block: 10px; }
  .reservation-page.is-date-selection .section-heading { margin-bottom: 7px; }
  .reservation-page.is-date-selection .segmentation-summary { padding-block: 7px; }
}
@media (max-width: 520px) {
  .reservation-page.is-date-selection { justify-content: flex-start; padding-block: 12px; }
  .section-heading h2 { font-size: 20px; }
  .form-group label { font-size: 16px !important; }
  .form-group input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .form-group select, .form-group textarea, .form-group .custom-select-trigger { font-size: 17px !important; min-height: 54px; }
  .date-option { font-size: 15px; }
}


/* Stage 29: final override for welcome screen scroll stability; page scroll remains reserved and dark. */
html.welcome-open { overflow-x:clip !important; overflow-y:scroll !important; scrollbar-gutter:stable !important; background:#090909 !important; }
body.welcome-open { overflow-x:clip !important; overflow-y:visible !important; position:relative !important; width:auto !important; background-color:#090909 !important; }
.welcome-screen { overflow:visible !important; }
.welcome-screen.is-leaving { animation:sougvareWelcomeExit .82s cubic-bezier(.22,.72,.22,1) both !important; }

/* Stage 31: hide the group-reservation modal's scrollbar while preserving wheel, touch and keyboard scrolling. */
.modal-box, .admin-modal-box {
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
.modal-box::-webkit-scrollbar, .admin-modal-box::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
.modal-overlay, .admin-modal-overlay { scrollbar-width:none !important; -ms-overflow-style:none !important; scrollbar-color:transparent transparent; }
.modal-overlay::-webkit-scrollbar, .admin-modal-overlay::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }

/* Keep the three registration steps flowing gently, without transform-based movement. */
.page-header { margin-bottom:18px; }
.reservation-step:not([hidden]) {
  animation: reservationStepSoftIn .58s cubic-bezier(.22,.72,.25,1) both !important;
  scroll-margin-top:18px;
}
@keyframes reservationStepSoftIn {
  from { opacity:0; top:10px; }
  to { opacity:1; top:0; }
}
.reservation-page.is-date-selection .page-header { margin-bottom:clamp(8px,1.4vh,14px); }
@media (prefers-reduced-motion:reduce) {
  .reservation-step:not([hidden]) { animation-duration:.01ms !important; }
}

/* Stage 32: compact equal status pills, scrollable hidden-scrollbar welcome overlay, and its own gold particles. */
.segmentation-status {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  gap:7px !important; flex:0 0 112px !important; width:112px !important; min-width:112px !important;
  min-height:32px !important; padding:5px 9px !important; white-space:nowrap !important;
  line-height:1.2 !important; box-sizing:border-box !important; text-align:center !important;
}
.segmentation-status-icon { display:block !important; flex:0 0 15px !important; width:15px !important; height:15px !important; margin:0 !important; }
.segmentation-status > span { display:block; flex:0 0 auto; line-height:1.2; }
@media(max-width:480px) {
  .segmentation-status { flex-basis:104px !important; width:104px !important; min-width:104px !important; min-height:30px !important; gap:6px !important; font-size:10px !important; }
  .segmentation-status-icon { flex-basis:14px !important; width:14px !important; height:14px !important; }
}
/* The overlay can scroll when its contents exceed the viewport, but its own scrollbar stays hidden. */
.welcome-screen {
  display:flex !important; align-items:center !important; justify-content:center !important;
  overflow-x:hidden !important; overflow-y:auto !important; scrollbar-width:none !important;
  -ms-overflow-style:none !important; overscroll-behavior:contain !important;
  padding:clamp(18px,4vh,34px) 20px !important;
}
.welcome-screen::-webkit-scrollbar { display:none !important; width:0 !important; height:0 !important; }
.welcome-content { z-index:2 !important; flex:0 0 auto !important; margin-block:auto !important; }
.welcome-bottom-note { z-index:3 !important; pointer-events:none; }
.welcome-particles { position:absolute !important; inset:0 !important; display:block !important; width:100% !important; height:100% !important; z-index:0 !important; pointer-events:none !important; opacity:.7 !important; }
.welcome-backdrop { z-index:-2 !important; }
.welcome-screen::before { z-index:-1 !important; }
/* Keep a stable dark page scrollbar gutter while the welcome overlay itself hides its own scrollbar. */
html, body { background-color:#090909 !important; }
html { overflow-y:scroll !important; scrollbar-gutter:stable !important; }
html::-webkit-scrollbar-track, body::-webkit-scrollbar-track { background:#090909 !important; }
/* Universal SVG/text alignment for session actions, status controls, and modal close buttons. */
button:has(> svg), a:has(> svg) { align-items:center !important; justify-content:center !important; gap:8px !important; }
button:has(> svg) > svg, a:has(> svg) > svg { display:block !important; flex:0 0 auto !important; align-self:center !important; margin:0 !important; }
.admin-modal-close,.toast-close,.modal-close,.close-button,.message-close,[aria-label*="بستن"] {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  text-align:center !important; vertical-align:middle !important; line-height:1 !important;
}
.admin-modal-close svg,.toast-close svg,.modal-close svg,.close-button svg { display:block !important; flex:0 0 auto !important; margin:0 !important; }


/* Stage 33: keep modal close glyphs optically centered across reservation views. */
button[aria-label*="بستن"], .message-close, .admin-modal-close, .toast-close, .modal-close, .close-button {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  align-self:center !important; vertical-align:middle !important; line-height:0 !important;
}
button[aria-label*="بستن"] > svg, .message-close > svg, .admin-modal-close > svg,
.toast-close > svg, .modal-close > svg, .close-button > svg {
  display:block !important; flex:0 0 18px !important; width:18px !important; height:18px !important; margin:auto !important;
}
.sougvare-design-preview .segmentation-status { min-width:104px; justify-content:center; }
.sougvare-design-preview .slot-option:disabled { opacity:.65; }
