@charset "UTF-8";.seat-element{cursor:pointer;transition:all .2s ease;stroke:#374151;stroke-width:0}.seat-element:hover{stroke-width:0;filter:brightness(1.1)}.seat-element:focus{outline:2px solid #3b82f6;outline-offset:2px}.seat-element defs pattern{pointer-events:none}.seat-element.available{fill:#22c55e;stroke:#16a34a;stroke-width:0}.seat-element.available:hover{fill:#16a34a;stroke:#15803d;stroke-width:0}.seat-element.selected{fill:url(#selectedPattern);stroke:#1e40af;stroke-width:0;stroke-dasharray:none;animation:selectedPulse 2s infinite;filter:drop-shadow(0 0 3px #3b82f6)}.seat-element.blocked{fill:url(#blockedPattern);stroke:#d97706;stroke-width:0;stroke-dasharray:4 2;cursor:not-allowed;opacity:.9}.seat-element.reserved{fill:url(#reservedPattern);stroke:#dc2626;stroke-width:0;stroke-dasharray:2 2;cursor:not-allowed;opacity:.95}.seat-element.sold{fill:url(#soldPattern);stroke:#374151;stroke-width:0;cursor:not-allowed;opacity:.8}.seat-element.inactive{fill:#d1d5db;stroke:#9ca3af;stroke-width:0;stroke-dasharray:6 3;cursor:default;opacity:.7}.seat-element.unavailable{fill:#e5e7eb;stroke:#6b7280;stroke-width:0;stroke-dasharray:3 3;cursor:not-allowed;opacity:.6}.seat-number{font-size:12px;font-weight:700;font-family:Arial,sans-serif;fill:#fff;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.5)}.accessibility-icon{font-size:8px;fill:#fff;font-family:Arial,sans-serif;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.8)}.infrastructure-element{cursor:default;opacity:.8}.infrastructure-element.stage{fill:#dc2626}.infrastructure-element.aisle{fill:#6b7280}.infrastructure-element.exit{fill:#f59e0b}.infrastructure-element.entrance{fill:#10b981}.infrastructure-element.bar{fill:#ec4899}.infrastructure-element.toilet{fill:#8b5cf6}.infrastructure-element.reception{fill:#06b6d4}.infrastructure-element.other{fill:#fbbf24}.infrastructure-label{font-size:14px;font-weight:700;font-family:Arial,sans-serif;fill:#fff;pointer-events:none;text-shadow:0 0 4px rgba(0,0,0,.9),0 0 2px rgb(0,0,0);dominant-baseline:central;text-anchor:middle;stroke:#00000080;stroke-width:.5px;paint-order:stroke fill}.level-label{font-size:10px;font-weight:500;font-family:Arial,sans-serif;fill:#374151;pointer-events:none;text-anchor:middle;opacity:.8}.seat-plan-container{position:relative;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.seat-plan-wrapper{border:1px solid #e5e7eb;border-radius:.5rem;background:#f9fafb;padding:1rem;margin-bottom:1rem;position:relative}.seat-plan-viewport{position:relative;overflow:hidden;min-height:400px;background:#fafafa;border:1px solid #e5e7eb;border-radius:.25rem;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.seat-plan-viewport:active{cursor:grabbing}#seat-plan-svg{width:100%;height:auto;max-height:500px;background:#fafafa;border:1px solid #e5e7eb;border-radius:.25rem;transition:transform .3s ease;transform-origin:center center}#seat-plan-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffbf;z-index:10}.seat-plan-loading-spinner{animation:spin 1s linear infinite}#seat-plan-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#6b7280;z-index:10}#seat-plan-error i{font-size:2rem;margin-bottom:.5rem;color:#ef4444}#seat-plan-error p{margin-bottom:1rem}#seat-plan-error button{background:#3b82f6;color:#fff;padding:.5rem 1rem;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .2s}#seat-plan-error button:hover{background:#2563eb}.seat-plan-controls{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.zoom-controls{display:flex;gap:.5rem}.zoom-controls button{padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;color:#374151;cursor:pointer;transition:all .2s ease;min-width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center}.zoom-controls button:hover{background:#f3f4f6;border-color:#9ca3af}.zoom-controls button:active{transform:scale(.95)}#zoom-reset{padding:.5rem .75rem;min-width:auto;font-size:.875rem}.view-controls{display:flex;gap:.5rem}.view-controls button{padding:.5rem .75rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;color:#374151;cursor:pointer;transition:all .2s ease}.view-controls button:hover{background:#f3f4f6;border-color:#9ca3af}#refresh-seats{padding:.25rem .75rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;color:#374151;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.25rem}#refresh-seats:hover{background:#f3f4f6;border-color:#9ca3af}#refresh-seats i{font-size:.75rem}.seat-legend{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.seat-legend h4{font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:#374151}.seat-legend .flex{display:flex;flex-wrap:wrap;gap:1rem;font-size:.875rem}.seat-legend-item{width:16px;height:16px;border-radius:4px;border:1px solid #d1d5db;flex-shrink:0}.seat-legend-item.seat-available{background-color:#22c55e;border:1px solid #16a34a}.seat-legend-item.seat-selected{background:radial-gradient(circle at center,#3b82f6 60%,#fff,#fff,#3b82f6 75%);border:2px solid #1e40af;position:relative}.seat-legend-item.seat-selected:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-conic-gradient(from 0deg,transparent 0deg 45deg,rgba(255,255,255,.3) 45deg 90deg);border-radius:inherit}.seat-legend-item.seat-blocked{background:repeating-linear-gradient(45deg,#f59e0b,#f59e0b 3px,#fff6 3px,#fff6 6px);border:1px dashed #d97706}.seat-legend-item.seat-reserved{background:repeating-linear-gradient(0deg,#ef4444,#ef4444 2px,#ffffff80 2px,#ffffff80 4px),repeating-linear-gradient(90deg,#ef4444,#ef4444 2px,#ffffff80 2px,#ffffff80 4px);border:1px dotted #dc2626}.seat-legend-item.seat-sold{background:#6b7280;border:1px solid #374151;position:relative}.seat-legend-item.seat-sold:before{content:"✕";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:10px;font-weight:700;text-shadow:0 0 2px rgba(0,0,0,.8)}.seat-legend-item.seat-inactive{background-color:#d1d5db;border:1px dashed #9ca3af}.seat-legend-item.seat-unavailable{background:repeating-radial-gradient(circle at center,#e5e7eb,#e5e7eb 1px,#6b72804d 1px,#6b72804d 3px);border:1px dotted #6b7280}.seat-legend-item.seat-accessible{background-color:#22c55e;position:relative}.seat-legend-item.seat-accessible:after{content:"♿";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;color:#fff;line-height:1}.seat-instructions{margin-top:1rem;padding:.75rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;color:#1e40af;font-size:.875rem}.seat-instructions i{margin-top:.125rem;flex-shrink:0}.seat-instructions p{font-weight:600;margin-bottom:.5rem}.seat-instructions ul{list-style-type:disc;list-style-position:inside;margin-left:1rem;line-height:1.5}.seat-instructions li{margin-bottom:.25rem}.selected-seat-item{display:block;justify-content:space-between;align-items:center;font-size:.875rem;padding:.25rem;border-bottom:1px solid #f3f4f6}.selected-seat-item:last-child{border-bottom:none}@keyframes selectedPulse{0%,to{opacity:1}50%{opacity:.8}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}@media (max-width: 768px){.seat-plan-container{padding:1rem}.seat-plan-wrapper{padding:.75rem;margin-bottom:.75rem}.seat-plan-viewport{min-height:300px}#seat-plan-svg{max-height:350px}.seat-plan-controls{flex-direction:column;gap:1rem;align-items:stretch}.zoom-controls,.view-controls{justify-content:center}.seat-legend .flex{gap:.5rem;font-size:.75rem}.seat-legend-item{width:14px;height:14px}.seat-instructions{font-size:.75rem;padding:.5rem}}@media (max-width: 480px){.seat-plan-viewport{min-height:250px}#seat-plan-svg{max-height:300px}.zoom-controls button,.view-controls button{padding:.375rem;font-size:.75rem;min-width:2rem;height:2rem}#zoom-reset{padding:.375rem .5rem}.seat-legend .flex{gap:.375rem}}@media (prefers-contrast: more){.seat-element{stroke-width:0}.seat-element.available{fill:#16a34a;stroke:#000}.seat-element.selected{fill:#1d4ed8;stroke:#000}.seat-element.blocked{fill:#d97706;stroke:#000}.seat-element.reserved{fill:#dc2626;stroke:#000}.seat-element.sold{fill:#4b5563;stroke:#000}.seat-element.unavailable{fill:#9ca3af;stroke:#000}}@media (prefers-reduced-motion: reduce){.seat-element,#seat-plan-svg,.zoom-controls button,.view-controls button,#refresh-seats{transition:none}@keyframes selectedPulse{0%,to{opacity:1}}.fade-in{animation:none}}@media print{.seat-plan-controls,.seat-instructions,#refresh-seats{display:none}.seat-plan-container{box-shadow:none;border:1px solid #000}#seat-plan-svg{border:1px solid #000;max-height:none}}.seat-element:focus,.zoom-controls button:focus,.view-controls button:focus,#refresh-seats:focus{outline:2px solid #3b82f6;outline-offset:2px}.quantity-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.quantity-modal-content{background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:400px;width:90%;max-height:90vh;overflow:hidden;position:relative;animation:modalSlideIn .3s ease-out}.quantity-modal-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between}.quantity-modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#111827}.quantity-modal-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:.375rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem}.quantity-modal-close:hover{color:#374151;background:#f3f4f6}.quantity-modal-body{padding:1.5rem;max-height:calc(90vh - 240px);overflow-y:auto;overflow-x:hidden}.quantity-modal-body::-webkit-scrollbar{width:6px}.quantity-modal-body::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.quantity-modal-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.quantity-modal-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}.quantity-modal-footer{padding:1rem 1.5rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end}.seat-info{margin:0 0 1.5rem;color:#374151}.seat-info strong{color:#111827;font-size:1.125rem}.capacity-info{color:#6b7280;font-size:.875rem}.quantity-controls{margin-bottom:1.5rem}.quantity-controls label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem}.quantity-input-group{display:flex;align-items:center;gap:.5rem}.quantity-btn{width:2.5rem;height:2.5rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:1.125rem;font-weight:600;color:#374151;-webkit-user-select:none;-moz-user-select:none;user-select:none}.quantity-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.quantity-btn:active:not(:disabled){transform:scale(.95)}.quantity-btn:disabled{opacity:.5;cursor:not-allowed;background-color:#f9fafb}.quantity-input{width:4rem;height:2.5rem;text-align:center;border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem;font-size:1rem;font-weight:500;color:#111827;background:#fff;transition:border-color .2s ease}.quantity-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.price-info{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:#f8fafc;border-radius:.5rem;border:1px solid #e2e8f0}.price-per-seat{color:#6b7280;font-size:.875rem}.total-price{color:#111827;font-size:1rem;font-weight:600}.total-price strong{color:#059669;font-size:1.125rem}.btn-secondary{padding:.75rem 1.5rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;color:#374151;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af;color:#111827}.btn-primary{padding:.75rem 1.5rem;border:1px solid #3b82f6;border-radius:.5rem;background:#3b82f6;color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn-primary:hover{background:#2563eb;border-color:#2563eb}.btn-primary:active{transform:translateY(1px)}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 768px){.quantity-modal-content{width:95%;margin:1rem}.quantity-modal-header,.quantity-modal-body,.quantity-modal-footer{padding-left:1rem;padding-right:1rem}.quantity-modal-footer{flex-direction:column;gap:.5rem}.btn-secondary,.btn-primary{width:100%}}@media (prefers-reduced-motion: reduce){.quantity-modal-content{animation:none}.quantity-btn{transition:none}}.hidden{display:none!important}.selected-seats-list{max-height:400px;overflow-y:auto;overflow-x:hidden;padding-right:.25rem;padding-top:12px}.selected-seats-list::-webkit-scrollbar{width:6px}.selected-seats-list::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.selected-seats-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.selected-seats-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.selected-seat-item{position:relative;border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem 1rem 1rem;margin-bottom:.75rem;background:#fff;transition:all .2s ease}.selected-seat-item:hover{border-color:#d1d5db;box-shadow:0 1px 3px #0000000d}.selected-seat-item:last-child{margin-bottom:0}.selected-seat-label{position:absolute;top:-10px;left:16px;background:#fff;padding:0 8px;font-size:11pt;font-weight:500;color:#111827;line-height:1}.seat-info-section{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.seat-info-row{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.seat-info-row .seat-info-label{color:#6b7280;font-size:.813rem}.seat-info-row .seat-info-value{color:#374151;font-weight:400}.seat-badges{display:flex;flex-wrap:wrap;gap:.375rem}.seat-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:500;padding:.25rem .5rem;border-radius:4px;line-height:1}.seat-badge.zone-badge{background-color:#3b82f6;color:#fff}.seat-badge.pool-badge{background-color:#8b5cf6;color:#fff}.seat-badge.discount-badge{background-color:#ef4444;color:#fff}.seat-badge.document-badge{background-color:#f59e0b;color:#fff}.seat-badge.level-badge{background-color:#06b6d4;color:#fff}.seat-badge.quantity-badge{background-color:#10b981;color:#fff}.seat-price-section{border-top:1px solid #f3f4f6;padding-top:.75rem;margin-top:.75rem}.seat-price-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem;font-size:.813rem}.seat-price-row:last-child{margin-bottom:0}.seat-price-row .seat-price-label{color:#6b7280}.seat-price-row .seat-price-value{color:#374151;font-weight:400}.seat-total-price{display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;margin-top:.5rem;border-top:1px solid #e5e7eb;font-size:.938rem}.seat-total-price .seat-total-label{color:#111827;font-weight:500}.seat-total-price .seat-total-value{color:#059669;font-weight:600;font-size:1rem}.ticket-type-selection-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f3f4f6}.ticket-type-selection-label{font-size:.813rem;color:#6b7280;margin-bottom:.5rem;display:block}.ticket-type-selector-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.ticket-type-selector-row:last-child{margin-bottom:0}.ticket-type-selector-row .ticket-type-person-label{font-size:.75rem;color:#6b7280;min-width:60px;flex-shrink:0}.ticket-type-selector-row .ticket-type-selector{flex:1;border:1px solid #d1d5db;border-radius:6px;padding:.5rem .75rem;font-size:.813rem;background:#fff;color:#374151;transition:all .2s ease}.ticket-type-selector-row .ticket-type-selector:hover{border-color:#9ca3af}.ticket-type-selector-row .ticket-type-selector:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.ticket-assignments{display:flex;flex-direction:column;gap:.5rem}@media (max-width: 768px){.selected-seats-list{max-height:300px}.selected-seat-item{padding:1rem .75rem .75rem}.selected-seat-label{font-size:10pt}.seat-info-row,.seat-price-row{font-size:.75rem}.seat-badge{font-size:9px;padding:.2rem .4rem}}@media (max-width: 480px){.selected-seats-list{max-height:250px}.selected-seat-item{padding:.875rem .625rem .625rem;margin-bottom:.5rem}}
