body.counter-mode{overflow: hidden;max-width: 100%;height: 100vh;margin: 0;padding: 0}body:not(.counter-mode){overflow-x: hidden;max-width: 100%}.seat-map-container{position: relative;overflow: hidden;background: #f5f5f5;border-radius: 0;box-shadow: none;height: 100%;min-height: 360px;display: flex;flex-direction: column}.seat-map-wrapper{position: relative;overflow: hidden;flex: 1;min-height: 320px;padding: 20px;direction: ltr;background: #f5f5f5;touch-action: pan-x pan-y pinch-zoom}.zoom-controls{position: absolute;top: 20px;right: 20px;z-index: 100;display: flex;flex-direction: column;gap: 10px;background: transparent;padding: 0}.zoom-btn{width: 44px;height: 44px;position: relative;top: 1rem;border: 1px solid #d1d5db;background: #ffffff;color: #374151;border-radius: 50%;cursor: pointer;font-size: 20px;display: flex;align-items: center;justify-content: center;transition: all 0.2s ease;box-shadow: 0 2px 4px rgba(0,0,0,0.1)}.zoom-btn:hover{background: #f9fafb;border-color: #9ca3af;transform: scale(1.05)}.zoom-btn:active{transform: scale(0.95)}.seat-map{direction: ltr;padding: 0;background: transparent;border-radius: 0;text-align: center;transition: transform 0.3s ease;transform-origin: top center;position: relative;top: 0;left: 57%;transform: translate(-50%, -50%)}@media (max-width: 991.98px){.seat-map{top: 3rem;left: 80%}}.seat-map-canvas{width: 100%;aspect-ratio: 4 / 3;background: #f5f5f5;border-radius: 0;border: none;box-shadow: none;position: relative;overflow: visible;cursor: grab;touch-action: none}.seat-map-canvas:active{cursor: grabbing}.seat-map-canvas svg{width: 55%;height: 100%;display: block}@media (max-width: 991.98px){.seat-map-canvas svg{width: 52%}}.seat-svg-stage-label{font-family: 'IRANSans', 'IRANYekan', sans-serif;font-size: 40rem;font-weight: 600;fill: #6b7280;letter-spacing: 2px}.seat-svg-block{fill: rgba(59, 130, 246, 0.12);stroke: rgba(37, 99, 235, 0.4);stroke-width: 2}.seat-svg-block-label{font-family: 'IRANSans', 'IRANYekan', sans-serif;font-size: 12rem;font-weight: 700;fill: #6b7280;text-anchor: middle;dominant-baseline: middle;pointer-events: none}.seat-map.layout-linear{display: flex;flex-direction: column;align-items: center;left: 50%;transform: translate(-50%, -50%)}.seat-map.layout-linear .seat-map-canvas{width: 100%}.seat-map.layout-linear .seat-map-canvas svg{margin-left: auto;margin-right: auto;display: block;width: 90%}.seat-map.layout-linear .seat-row{transform: none;width: 100%;background: transparent;border-radius: 0;box-shadow: none;padding: 0;margin-bottom: 12px}.seat-map.layout-semicircular, .seat-map.layout-stadium, .seat-map.layout-theater, .seat-map.layout-circular{display: flex;flex-direction: column;align-items: center}.seat-map.layout-semicircular .tier-section, .seat-map.layout-circular .tier-section{margin-bottom: 30px}.seat-map.layout-stadium .tier-section{margin-bottom: 40px;width: 100%}.seat-map.layout-theater .tier-section{margin-bottom: 35px;width: 100%}.seat-row{display: flex;align-items: center;justify-content: center;margin: 0 auto 12px;gap: 4px;padding: 8px 14px;border-radius: 999px;background: rgba(255, 255, 255, 0.85);box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);width: var(--row-width, 100%);transform: translateX(var(--row-shift, 0%)) rotate(var(--row-angle, 0deg));transform-origin: center;transition: width 0.3s ease, transform 0.3s ease}.seat-row:first-child{margin-bottom: 25%}.seat-row:nth-child(2){margin-bottom: 25%}.seat-row-left{justify-content: flex-start}.seat-row-right{justify-content: flex-end}.seat-row-center{justify-content: center}.seat-row-block{background: transparent;box-shadow: none;padding: 0;border-radius: 0;transform: none;width: 100%}.screen{width: 70%;margin: 0 auto 40px;padding: 15px;background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);color: #fff;border-radius: 8px;font-weight: bold;font-size: 5rem;box-shadow: 0 4px 15px rgba(0,0,0,0.2)}.seat{height: 2%;margin: 200px;background: #10b981;border: 1.5px solid #059669;border-radius: 6px;cursor: pointer;display: flex;align-items: center;justify-content: center;font-size: 4rem;font-weight: 600;color: #fff;transition: all 0.2s ease;position: relative;user-select: none}.seat.seat-dot:not(rect):not(circle){width: auto;height: auto;border: none;border-radius: 50%;background: none;color: transparent;font-size: 4rem}.seat-dot{fill: #10b981;stroke: #059669;stroke-width: 1.5;cursor: pointer;transition: transform 0.2s ease, fill 0.2s ease, stroke 0.2s ease, opacity 0.2s ease;width: auto;height: auto;max-width: none;max-height: none}.seat rect, .seat-dot rect{margin: 0;display: block}.seat-dot:hover:not(.occupied):not(.reserved):not(.selected):not(.sold){fill: #059669;stroke: #047857;opacity: 0.9}.seat-dot.occupied, .seat-dot.sold{fill: #ef4444;stroke: #dc2626;cursor: default;opacity: 0.8;pointer-events: none}.seat-dot.reserved{fill: #f59e0b;stroke: #d97706;cursor: not-allowed;opacity: 0.9}.seat-dot.selected{fill: #3b82f6;stroke: #2563eb;filter: drop-shadow(0 2px 6px rgba(59,130,246,0.4));opacity: 1}.seat-group.selected .seat-dot{fill: #3b82f6;stroke: #2563eb;filter: drop-shadow(0 2px 6px rgba(59,130,246,0.4));opacity: 1}.seat-group.capacity-full .seat, .seat-group.capacity-full .seat-dot{fill: #f59e0b;stroke: #d97706;cursor: not-allowed;opacity: 0.8}.seat-svg-label{font-size: 4rem;font-weight: 700;fill: #ffffff;font-family: IRANSans, sans-serif;pointer-events: none;user-select: none;text-anchor: middle;dominant-baseline: central;alignment-baseline: central}.seat-dot.selected + .seat-svg-label, .seat-group.selected .seat-svg-label{fill: #ffffff}.seat-dot.sold + .seat-svg-label, .seat-group.sold .seat-svg-label{fill: #ffffff}.seat-dot.reserved + .seat-svg-label, .seat-group.reserved .seat-svg-label{fill: #ffffff}.seat:not(.seat-dot):hover:not(.occupied):not(.reserved):not(.selected):not(.sold){background: #059669;transform: scale(1.1);box-shadow: 0 2px 8px rgba(5, 150, 105, 0.4)}.seat:not(.seat-dot).occupied, .seat:not(.seat-dot).sold{background: #ef4444;border-color: #dc2626;cursor: default;opacity: 0.8;pointer-events: none}.seat:not(.seat-dot).reserved{background: #f59e0b;border-color: #d97706;cursor: not-allowed;opacity: 0.9}.seat:not(.seat-dot).selected{background: #3b82f6;border-color: #2563eb;box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);animation: none;transform: none}.seat-label{width: 35%;height: 35%;margin: 10%;display: flex;align-items: center;justify-content: center;font-weight: bold;font-size: 4rem;color: #666}.section-block{width: 100%;padding: 20px;border-radius: 16px;border: 2px dashed rgba(102, 126, 234, 0.4);background: rgba(255, 255, 255, 0.9);text-align: center;cursor: pointer;transition: transform 0.2s ease, box-shadow 0.2s ease}.section-block:hover{transform: translateY(-4px);box-shadow: 0 12px 24px rgba(15, 23, 42, 0.15)}.section-block-title{font-weight: 700;color: #1f2937;margin-bottom: 8px}.section-block-meta{display: block;font-size: 0.9rem;color: #4b5563}.section-block-price{display: inline-flex;margin-top: 10px;padding: 6px 12px;border-radius: 999px;background: #eef2ff;color: #3730a3;font-weight: 600}.section-block-area{fill: transparent;stroke: rgba(37, 99, 235, 0.35);stroke-width: 2;cursor: pointer;transition: fill 0.2s ease, stroke 0.2s ease}.section-block-area:hover{fill: rgba(59, 130, 246, 0.25);stroke: rgba(37, 99, 235, 0.55)}.simple-seat-list{display: none}.simple-seat-list.active{display: block}#seat-map-visual.hidden{display: none}.seat-view-toggle .view-toggle-btn{min-width: 130px;font-weight: 600;border-radius: 999px}.seat-view-toggle .view-toggle-btn.active{background: #111827;color: #fff;border-color: #111827}.block-selection-panel{position: fixed;inset: 0;background: rgba(15, 23, 42, 0.45);display: flex;align-items: flex-end;justify-content: center;opacity: 0;visibility: hidden;transition: opacity 0.2s ease;z-index: 10000}.block-selection-panel.active{opacity: 1;visibility: visible}.block-selection-content{width: 100%;max-width: 420px;background: #fff;border-radius: 24px 24px 0 0;padding: 32px 24px 24px 24px;box-shadow: 0 -10px 30px rgba(0,0,0,0.15);position: relative;max-height: 85vh;overflow-y: auto}.block-selection-close{border: none;background: transparent;font-size: 1.5rem;position: absolute;top: 12px;left: 20px;cursor: pointer;color: #6b7280}.block-quantity-group{display: flex;align-items: center;justify-content: center;gap: 12px;margin-top: 1rem}.block-quantity-input{width: 80px;height: 48px;border: 1px solid #d1d5db;border-radius: 12px;text-align: center;font-size: 1.2rem;-moz-appearance:textfield;appearance:textfield}.block-quantity-input::-webkit-outer-spin-button,.block-quantity-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0;display:none}.block-qty-btn{width: 48px;height: 48px;border-radius: 12px;border: none;background: #e5e7eb;font-size: 1.25rem;font-weight: 600;cursor: pointer}.section-block-area{stroke-width: 2;cursor: pointer;transition: fill 0.2s ease, stroke 0.2s ease, opacity 0.2s ease}.section-block-area:hover{fill: rgba(16, 185, 129, 0.25);stroke: #059669;opacity: 0.9}.section-block-area.selected{fill: rgba(59, 130, 246, 0.25);stroke: #3b82f6}.section-block-area.reserved{fill: #f59e0ba3;stroke: #f59e0b;cursor: not-allowed}.section-block-area.sold{fill: #dc2626d1;stroke: #ef4444;cursor: not-allowed}.section-block-area.occupied{fill: rgba(239, 68, 68, 0.15);stroke: #ef4444;cursor: not-allowed}.seat-tooltip{position: fixed;top: 0;left: 0;padding: 12px 16px;background: rgba(15, 23, 42, 0.95);color: #fff;border-radius: 12px;box-shadow: 0 15px 30px rgba(0,0,0,0.25);pointer-events: none;opacity: 0;visibility: hidden;transition: opacity 0.2s ease, visibility 0.2s ease;z-index: 9999;max-width: 220px;font-size: 0.9rem}.seat-tooltip.visible{opacity: 1;visibility: visible}.seat-tooltip-title{font-weight: 700;margin-bottom: 4px}.seat-tooltip-meta{font-size: 0.85rem;color: #d1d5db}.seat-tooltip-price{margin-top: 6px;font-weight: 600;color: #60a5fa}.tier-section{margin-bottom: 50px;padding: 20px;background: #fff;border-radius: 10px;box-shadow: 0 2px 8px rgba(0,0,0,0.05)}.tier-title{border-bottom: 3px solid #667eea;padding-bottom: 15px;margin-bottom: 25px;color: #333;font-size: 18px;font-weight: 700}.legend{display: flex;align-items: center;gap: 15px;padding: 8px 16px;border-radius: 8px;box-shadow: 0 2px 4px rgba(0,0,0,0.1)}.legend.map-view-only{display: none}.legend.map-view-only.show{display: flex;justify-content: center}.legend-item{display: flex;align-items: center;gap: 6px;font-size: 10px;color: #374151}.legend-color{width: 20px;height: 20px;border-radius: 50%;flex-shrink: 0}.legend-color.available{background: #10b981}.legend-color.selected{background: #3b82f6}.legend-color.reserved{background: #f59e0b}.legend-color.sold{background: #dc2626}#selected-seats-list{max-height: 400px;overflow-y: auto}#confirm-selection-btn:disabled{opacity: 0.5;cursor: not-allowed}.tier-without-seats{margin-bottom: 20px;padding: 20px;background: #fff;border-radius: 10px;box-shadow: 0 2px 8px rgba(0,0,0,0.05)}.tier-without-seats-title{font-size: 18px;font-weight: 700;color: #333;margin-bottom: 15px}.tier-without-seats-controls{display: flex;align-items: center;gap: 15px}.quantity-input-group{display: flex;align-items: center;gap: 10px}.quantity-btn{width: 40px;height: 40px;border: 1px solid #ddd;background: #f8f9fa;border-radius: 6px;cursor: pointer;font-size: 18px;display: flex;align-items: center;justify-content: center;transition: all 0.2s ease}.quantity-btn:hover{background: #e9ecef;border-color: #667eea}.quantity-input{width: 80px;height: 40px;text-align: center;border: 1px solid #ddd;border-radius: 6px;font-size: 16px}.mobile-seat-actions{display: none;margin-top: 15px;gap: 10px}.mobile-seat-action{flex: 1;border: 1px solid #e5e7eb;border-radius: 999px;padding: 10px 14px;font-weight: 600;background: #fff;color: #111827;box-shadow: 0 6px 12px rgba(15,23,42,0.08)}.mobile-seat-action.active{background: #111827;color: #fff;border-color: #111827}@media (max-width: 768px){.booking-wizard-container{flex-direction: column;gap: 1rem;padding: 1rem}.booking-steps{display: none}.seat-map-wrapper{max-height: none;padding: 15px}.seat-map{padding: 20px 10px 40px}.seat{font-size: 0.7rem}.seat-label{display: none}.seat-map-container{margin-bottom: 10px}.seat-tooltip{font-size: 0.8rem;padding: 10px 12px}}.booking-wizard-container{display: flex;align-items: flex-start;gap: 2rem;padding: 1rem;flex-direction: row-reverse;justify-content: space-between;background: #bccefb;flex-shrink: 0}.booking-steps{display: flex;justify-content: space-between;align-items: flex-start;padding: 1rem 0;position: relative;flex: 1;max-width: 600px}.step-item{display: flex;flex-direction: column;align-items: center;flex: 1;position: relative;z-index: 1}.step-number{width: 40px;height: 40px;border-radius: 50%;background: #e9ecef;color: #666;display: flex;align-items: center;justify-content: center;font-weight: bold;margin-bottom: 0.5rem;position: relative;z-index: 3;border: none;box-sizing: border-box;font-size: 1rem}.step-item.active .step-number, .step-item.completed .step-number{background: #2c3e50;color: #fff;border: none}.step-item.active .step-number{border: 3px solid #fff}.step-item.completed .step-label{color: #2c3e50;font-weight: 600}.booking-steps::before{content: '';position: absolute;top: calc(1rem + 20px - 1px);right: 3rem;left: 3rem;height: 2px;background: #e9ecef;z-index: 0}.booking-steps::after{content: '';position: absolute;top: calc(1rem + 20px - 1px);right: calc(-7% + 20%);width: calc(45% - 40px);height: 2px;background: #2c3e50;z-index: 0}.step-label{font-size: 0.85rem;color: #666;text-align: center;margin-top: 0.25rem}.step-item.active .step-label{color: #2c3e50;font-weight: 600}.concert-info-title{font-size: 1.5rem;font-weight: 700;color: #333;margin-bottom: 1.25rem;line-height: 1.3}.concert-info-item{display: flex;align-items: flex-start;gap: 0.75rem;margin-bottom: 0}@media (max-width:991.98px){.concert-info-item:nth-child(2){display: none}}.concert-info-icon{width: 20px;height: 20px;flex-shrink: 0;margin-top: 2px}.concert-info-icon svg{width: 100%;height: 100%;fill: var(--bs-primary)}.concert-info-text{font-size: 0.95rem;color: #555;line-height: 1.5}@media (max-width: 991.98px){.booking-wizard-container{flex-direction: column;gap: 1.5rem}.booking-steps{display: none;max-width: 100%}.concert-info-card{width: 100%;min-width: auto}}.fixed-selection-box{position: fixed;bottom: 0;left: 0;right: 0;background: #fff;border-top: 2px solid #e5e7eb;box-shadow: 0 -4px 6px rgba(0, 0, 0, 0.1);padding: 1rem;z-index: 1000}.selection-info{display: flex;flex-direction: column;gap: 0.25rem;align-items: flex-start}.selection-count, .selection-total{font-size: 0.95rem;white-space: nowrap;line-height: 1.4}.selection-count strong, .selection-total strong{color: #2563eb;font-weight: 600}.reservation-timer-box{background: #fff3cd;border: 1px solid #ffc107;color: #333;padding: 0.5rem 0.75rem;border-radius: 6px;text-align: center;box-shadow: 0 2px 4px rgba(0,0,0,0.1);min-width: 100px}.reservation-timer-box .timer-value{font-size: 1.1rem;font-weight: bold;font-family: 'Courier New', monospace;letter-spacing: 1px;color: #f59e0b;margin-bottom: 0.15rem}.reservation-timer-box .timer-label{font-size: 0.7rem;color: #666;margin-top: 0.15rem}.cart-popup{position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 2000;display: none}.cart-popup[aria-hidden="false"]{display: block}.cart-popup-overlay{position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: rgba(0, 0, 0, 0.5)}.cart-popup-content{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);background: #fff;border-radius: 8px;box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);width: 90%;max-width: 500px;max-height: 80vh;display: flex;flex-direction: column}.cart-popup-header{display: flex;justify-content: space-between;align-items: center;padding: 1rem;border-bottom: 1px solid #e5e7eb}.cart-popup-header h5{margin: 0;font-size: 1.25rem}.cart-popup-close{background: none;border: none;font-size: 1.5rem;line-height: 1;cursor: pointer;color: #6b7280;padding: 0;width: 30px;height: 30px;display: flex;align-items: center;justify-content: center}.cart-popup-close:hover{color: #111827}.cart-popup-body{padding: 1rem;overflow-y: auto;flex: 1}.cart-popup-footer{padding: 1rem;border-top: 1px solid #e5e7eb}.cart-table-header{display: grid;grid-template-columns: 1fr 0.8fr 0.8fr 1.2fr 0.5fr;gap: 0.5rem;padding: 0.75rem;background: #f3f4f6;border-bottom: 2px solid #e5e7eb;font-weight: 600;font-size: 0.9rem;color: #374151}.cart-seat-item{display: grid;grid-template-columns: 1fr 0.8fr 0.8fr 1.2fr 0.5fr;gap: 0.5rem;align-items: center;padding: 0.75rem;border-bottom: 1px solid #e5e7eb}.cart-seat-item:last-child{border-bottom: none}.cart-seat-item-cell{display: flex;align-items: center;font-size: 0.9rem}.cart-seat-item-remove{background: none;border: none;color: #ef4444;cursor: pointer;padding: 0.25rem;display: flex;align-items: center;justify-content: center;transition: color 0.2s}.cart-seat-item-remove:hover{color: #dc2626}.cart-seat-item-remove svg{width: 18px;height: 18px}@media (max-width: 768px){.fixed-selection-box{padding: 0.75rem}.selection-info{font-size: 10.875rem;flex-direction: column;gap: 0.25rem}.selection-count, .selection-total{white-space: nowrap;line-height: 1.4}.cart-popup-content{width: 95%;max-height: 85vh}.mobile-cart-fixed{display: none}}.inactivity-overlay{font-family: inherit}.inactivity-modal-btn:hover{background: #1d4ed8 !important}.inactivity-modal-btn:focus{outline: 2px solid #2563eb;outline-offset: 2px}