*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;background:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.visual-tester{color:#fff;background:#000;flex-direction:column;height:100vh;display:flex}.tester-header{background:#111;border-bottom:2px solid #333;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.header-left h1{background:linear-gradient(45deg,#0f8,#0af);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:1.5rem}.connection-info{align-items:center;gap:1rem;font-size:.9rem;display:flex}.status-dot{background:#444;border-radius:50%;width:8px;height:8px}.status-dot.connected{background:#0f8;animation:2s infinite pulse}.status-dot.disconnected{background:#f44}.seat-count{color:#0f8;background:#333;border-radius:12px;padding:.25rem .5rem;font-weight:700}.header-tabs{gap:.5rem;display:flex}.tab-button{color:#ccc;cursor:pointer;background:#333;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.tab-button.active{color:#000;background:linear-gradient(45deg,#0f8,#0af);font-weight:700}.tab-button:hover:not(.active){color:#fff;background:#444}.tester-content{flex:1;overflow:hidden}.controls-only-layout{justify-content:center;height:100%;padding:1rem;display:flex;overflow-y:auto}.controls-only-layout .control-panel{width:100%;max-width:1200px}.visualizer-layout{grid-template-columns:1fr 350px;gap:1rem;height:100%;padding:1rem;display:grid}.stadium-container{background:#111;border:1px solid #333;border-radius:12px;position:relative;overflow:hidden}.control-container{background:#111;border:1px solid #333;border-radius:12px;overflow-y:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@media (width<=1200px){.visualizer-layout{grid-template-rows:1fr auto;grid-template-columns:1fr}.control-container{max-height:300px}}.connection-mode-selector{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-bottom:1rem;padding:1rem}.connection-mode-selector h4{color:#0f8;margin:0 0 1rem;font-size:1.1rem}.seat-count-selector{margin-bottom:1rem}.seat-count-selector label{color:#ccc;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.seat-count-select{color:#fff;background:#333;border:1px solid #555;border-radius:4px;padding:.5rem;font-size:.9rem}.mode-options{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.mode-option{cursor:pointer;background:#222;border:2px solid #333;border-radius:8px;padding:.75rem;transition:all .2s}.mode-option:hover{background:#2a2a2a;border-color:#555}.mode-option.selected{background:#2a2a2a;box-shadow:0 0 10px #2196f34d}.mode-header{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.mode-icon{font-size:1.2rem}.mode-name{color:#fff;font-size:.95rem;font-weight:700}.mode-description{color:#ccc;margin-bottom:.25rem;font-size:.8rem}.mode-specs{color:#888;font-family:monospace;font-size:.75rem}.start-connection-btn{color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-bottom:1rem;padding:.75rem 1rem;font-size:.95rem;font-weight:700;transition:all .2s;display:flex}.start-connection-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.start-connection-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-icon{font-size:1.1rem}.connection-tips{background:#111;border:1px solid #333;border-radius:6px;padding:.75rem}.connection-tips h5{color:#0af;margin:0 0 .5rem;font-size:.9rem}.connection-tips ul{color:#ccc;margin:0;padding-left:1rem;font-size:.8rem}.connection-tips li{margin-bottom:.25rem}.connection-tips strong{color:#fff}.connection-mode-active{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-bottom:1rem;padding:1rem}.active-mode{color:#0f8;align-items:center;gap:.5rem;font-weight:700;display:flex}.active-mode .mode-icon{font-size:1.2rem;animation:2s infinite pulse}.performance-monitor{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-bottom:1rem;padding:1rem}.performance-monitor h3{color:#0af;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.1rem;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-item{text-align:center;background:#222;border:1px solid #333;border-radius:6px;padding:.75rem}.stat-label{color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;font-size:.8rem}.stat-value{color:#0f8;margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.stat-value.grade{font-size:2rem}.stat-subtitle{color:#666;font-size:.7rem}.stat-progress{background:#333;border-radius:2px;width:100%;height:4px;margin-top:.25rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#0f8,#0af);border-radius:2px;height:100%;transition:width .3s}.benchmark-section{background:#111;border:1px solid #333;border-radius:6px;margin-bottom:1rem;padding:1rem}.benchmark-button{color:#fff;cursor:pointer;background:linear-gradient(45deg,#ff9800,#f57c00);border:none;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-bottom:1rem;padding:.75rem 1rem;font-weight:700;transition:all .2s;display:flex}.benchmark-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ff98004d}.benchmark-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.benchmark-results{background:#222;border-left:3px solid #0af;border-radius:4px;padding:.75rem}.result-item{color:#ccc;justify-content:space-between;align-items:center;margin-bottom:.25rem;font-size:.9rem;display:flex}.result-item:last-child{margin-bottom:0}.result-item strong{color:#fff}.performance-tips{background:#111;border:1px solid #333;border-radius:6px;padding:1rem}.performance-tips h4{color:#0af;margin:0 0 .75rem;font-size:.9rem}.performance-tips ul{margin:0;padding-left:1rem;list-style:none}.performance-tips li{color:#ccc;margin-bottom:.5rem;padding-left:.5rem;font-size:.8rem;position:relative}.performance-tips li:before{content:"•";color:#0af;font-weight:700;position:absolute;left:-.5rem}.performance-tips li:last-child{margin-bottom:0}.performance-tips strong{color:#fff}@media (width<=768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.result-item{flex-direction:column;align-items:flex-start;gap:.25rem}}.cluster-monitor{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-bottom:1rem;padding:1rem}.cluster-monitor h3{color:#0af;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.1rem;display:flex}.cluster-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.summary-item{text-align:center;background:#222;border:1px solid #333;border-radius:6px;padding:.75rem}.summary-label{color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;font-size:.8rem}.summary-value{color:#0f8;font-size:1.2rem;font-weight:700}.summary-value.efficiency{font-size:1.4rem}.efficiency-bar{margin-bottom:1.5rem}.efficiency-label{color:#ccc;margin-bottom:.5rem;font-size:.9rem}.progress-container{background:#333;border-radius:12px;height:24px;position:relative;overflow:hidden}.progress-fill{border-radius:12px;height:100%;transition:width .3s,background .3s}.progress-text{color:#fff;text-shadow:0 1px 2px #000c;font-size:.8rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rooms-grid{background:#111;border:1px solid #333;border-radius:6px;margin-bottom:1rem;padding:1rem}.rooms-header{margin-bottom:1rem}.rooms-header h4{color:#0f8;margin:0;font-size:.95rem}.rooms-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;display:grid}.room-item{background:#222;border:1px solid #333;border-radius:6px;padding:.75rem}.room-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.room-id{color:#0af;font-size:.85rem;font-weight:700}.room-fill{font-size:.8rem;font-weight:700}.room-progress{background:#333;border-radius:3px;height:6px;margin-bottom:.5rem;overflow:hidden}.room-progress-fill{border-radius:3px;height:100%;transition:width .3s,background .3s}.room-efficiency{color:#888;text-align:center;font-size:.75rem}.cluster-benefits{background:#111;border:1px solid #333;border-radius:6px;padding:1rem}.cluster-benefits h4{color:#0af;margin:0 0 .75rem;font-size:.9rem}.benefits-list{flex-direction:column;gap:.5rem;display:flex}.benefit-item{color:#ccc;align-items:flex-start;gap:.5rem;font-size:.8rem;display:flex}.benefit-item:before{content:"•";color:#0af;flex-shrink:0;font-weight:700}.benefit-item strong{color:#fff}@media (width<=768px){.cluster-summary{grid-template-columns:repeat(2,1fr)}.rooms-list{grid-template-columns:1fr}}.pattern-controller{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin-bottom:1rem;padding:1rem}.pattern-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.pattern-header h3{color:#f60;align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.pattern-actions{gap:.5rem;display:flex}.control-btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.control-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #0000004d}.control-btn.stop-all{color:#fff;background:#f44}.control-btn.stop-all:hover{background:#f66}.active-patterns{background:#111;border:1px solid #333;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.active-patterns h4{color:#0f8;margin:0 0 1rem;font-size:.95rem}.patterns-list{flex-direction:column;gap:.75rem;display:flex}.active-pattern-item{background:#222;border:1px solid #444;border-radius:6px;align-items:center;gap:1rem;padding:.75rem;display:flex}.pattern-info{flex:1;min-width:0}.pattern-name{color:#fff;margin-bottom:.25rem;font-size:.9rem;font-weight:700}.pattern-time{color:#888;font-size:.8rem}.pattern-progress-container{background:#333;border-radius:10px;flex:2;height:20px;margin:0 1rem;position:relative;overflow:hidden}.pattern-progress-bar{border-radius:10px;height:100%;transition:width .3s,background .3s}.progress-percentage{color:#fff;text-shadow:0 1px 2px #000c;font-size:.75rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stop-pattern-btn{color:#fff;cursor:pointer;background:#f44;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:36px;height:36px;padding:.5rem;font-size:1rem;transition:background .2s;display:flex}.stop-pattern-btn:hover{background:#f66}.pattern-presets{margin-bottom:1.5rem}.pattern-presets h4{color:#0af;margin:0 0 1rem;font-size:.95rem}.presets-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.preset-btn{color:#fff;cursor:pointer;text-align:center;background:#222;border:1px solid #444;border-radius:6px;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;transition:all .2s;display:flex}.preset-btn:hover{background:#333;border-color:#0af;transform:translateY(-2px)}.preset-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.preset-icon{margin-bottom:.25rem;font-size:1.2rem}.preset-name{color:#fff;font-size:.8rem;font-weight:500;line-height:1.2}.preset-duration{color:#888;margin-top:.25rem;font-size:.7rem}.pattern-info{background:#111;border:1px solid #333;border-radius:6px;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem;display:flex}.info-item strong{color:#fff;margin-right:.5rem}.info-item.warning{color:#fa0;align-items:center;gap:.5rem;display:flex}@media (width<=768px){.pattern-header{flex-direction:column;align-items:stretch;gap:1rem}.pattern-actions{justify-content:center}.presets-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.active-pattern-item{flex-direction:column;align-items:stretch;gap:.75rem}.pattern-progress-container{margin:0}.pattern-info{text-align:center;flex-direction:column;align-items:stretch}}@media (width<=480px){.presets-grid{grid-template-columns:repeat(2,1fr)}}.control-panel{flex-direction:column;gap:1.5rem;height:100%;padding:1rem;display:flex;overflow-y:auto}.panel-section{background:#1a1a1a;border:1px solid #333;border-radius:8px;padding:1rem}.panel-section h3{color:#0f8;border-bottom:1px solid #333;margin:0 0 1rem;padding-bottom:.5rem;font-size:1.1rem}.connection-stats{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.stat{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.stat-label{color:#ccc}.stat-value{font-weight:700}.stat-value.connected{color:#0f8}.stat-value.disconnected{color:#f44}.auto-connect-controls{gap:.5rem;display:flex}.control-btn{cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:6px;width:100%;padding:.6rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s}.control-btn.primary{color:#000;background:linear-gradient(45deg,#0f8,#0af)}.control-btn.secondary{color:#fff;background:#444;border:1px solid #666}.control-btn.danger{color:#fff;background:#f44}.control-btn.clear{color:#fff;background:#666}.control-btn.test-pattern{color:#ccc;text-transform:none;background:#333;border:1px solid #555;font-size:.8rem}.control-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.control-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.color-controls{flex-direction:column;gap:1rem;display:flex}.color-picker-group{align-items:center;gap:.5rem;display:flex}.color-picker{cursor:pointer;border:none;border-radius:4px;flex-shrink:0;width:50px;height:40px}.color-picker-group .control-btn{width:auto;min-width:100px}.predefined-colors{grid-template-columns:repeat(6,1fr);gap:.5rem;display:grid}.color-btn{cursor:pointer;border:2px solid #0000;border-radius:4px;width:100%;height:30px;transition:all .2s}.color-btn:hover:not(:disabled){border-color:#fff;transform:scale(1.1)}.color-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.pulse-description{color:#888;text-align:center;margin-bottom:1rem;font-size:.8rem}.pulse-colors{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.pulse-btn{cursor:pointer;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:100%;height:50px;font-weight:700;transition:all .3s;display:flex;position:relative}.pulse-btn:hover:not(:disabled){border-color:#fff;transform:scale(1.05);box-shadow:0 0 15px #ffffff4d}.pulse-btn:active:not(:disabled){animation:.6s ease-out pulse-flash}.pulse-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.pulse-key{color:#000;text-shadow:1px 1px 2px #fffc;text-align:center;background:#ffffffe6;border-radius:4px;min-width:1.5rem;padding:.2rem .4rem;font-size:1.2rem;font-weight:700}@keyframes pulse-flash{0%{box-shadow:0 0 5px #ffffff80}50%{transform:scale(1.1);box-shadow:0 0 30px #fffc,0 0 60px}to{transform:scale(1.05);box-shadow:0 0 5px #ffffff80}}.effects-grid{grid-template-columns:1fr;gap:.5rem;display:grid}.effect-btn{color:#fff;cursor:pointer;text-align:left;background:#333;border:1px solid #555;border-radius:6px;flex-direction:column;gap:.2rem;padding:.8rem;transition:all .2s;display:flex}.effect-btn:hover:not(:disabled){background:#444;border-color:#0f8}.effect-btn:disabled{opacity:.5;cursor:not-allowed}.effect-name{color:#0f8;font-size:.9rem;font-weight:700}.effect-details{color:#888;font-size:.8rem}.test-patterns{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.test-patterns .control-btn{padding:.5rem;font-size:.8rem}.performance-stats{flex-direction:column;gap:.5rem;display:flex}.performance-stats .stat-value{color:#0af}.control-panel::-webkit-scrollbar{width:6px}.control-panel::-webkit-scrollbar-track{background:#111}.control-panel::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.control-panel::-webkit-scrollbar-thumb:hover{background:#555}@media (width<=768px){.predefined-colors{grid-template-columns:repeat(4,1fr)}.pulse-colors{grid-template-columns:repeat(3,1fr)}.test-patterns{grid-template-columns:1fr}.color-picker-group{flex-direction:column;align-items:stretch}}.emoji-description{color:#ccc;margin:0 0 1rem;font-size:.9rem;line-height:1.4}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:.5rem;display:grid}.emoji-btn{aspect-ratio:1;cursor:pointer;-webkit-user-select:none;user-select:none;background:#333;border:2px solid #555;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;font-size:1.5rem;transition:all .2s;display:flex}.emoji-btn:hover:not(:disabled){background:#444;border-color:#0f8;transform:scale(1.1);box-shadow:0 0 10px #00ff884d}.emoji-btn:active:not(:disabled){background:#555;transform:scale(1.05)}.emoji-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale();transform:none}@media (width<=768px){.emoji-grid{grid-template-columns:repeat(6,1fr)}.emoji-btn{font-size:1.3rem}}@media (width<=480px){.emoji-grid{grid-template-columns:repeat(4,1fr)}.emoji-btn{padding:.4rem;font-size:1.2rem}}.stadium-configurator{height:100%;padding:1rem;overflow-y:auto}.configurator-header{border-bottom:2px solid #333;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.configurator-header h2{color:#0f8;margin:0;font-size:1.5rem}.header-actions{gap:.5rem;display:flex}.action-btn{cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s}.action-btn.primary{color:#000;background:linear-gradient(45deg,#0f8,#0af)}.action-btn.secondary{color:#fff;background:#444;border:1px solid #666}.action-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.configurator-content{flex-direction:column;gap:2rem;display:flex}.stadium-overview{grid-template-columns:1fr;gap:1rem;display:grid}.overview-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:1.5rem}.overview-card h3{color:#0f8;margin:0 0 1rem;font-size:1.2rem}.stadium-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-item{border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.stat-label{color:#ccc;font-size:.9rem}.stat-value{color:#0af;font-size:1rem;font-weight:700}.field-info{background:#222;border-left:4px solid #0f8;border-radius:8px;padding:1rem}.field-info h4{color:#0f8;margin:0 0 .5rem}.field-info p{color:#ccc;margin:.25rem 0;font-size:.9rem}.sections-grid h3{color:#0f8;margin:0 0 1rem;font-size:1.2rem}.sections-list{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1rem;display:grid}.section-card{cursor:pointer;background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:1rem;transition:all .2s}.section-card:hover{border-color:#0f8;transform:translateY(-2px);box-shadow:0 4px 20px #00ff881a}.section-card.selected{background:#222;border-color:#0f8;box-shadow:0 0 20px #0f83}.section-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-color{border:2px solid #fff;border-radius:4px;flex-shrink:0;width:20px;height:20px}.section-title h4{color:#fff;margin:0;font-size:1.1rem}.section-id{color:#888;font-size:.8rem}.section-details{flex-direction:column;gap:.3rem;display:flex}.detail-row{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.detail-row span:first-child{color:#ccc}.detail-row span:last-child{color:#fff;font-weight:500}.shape-badge{color:#0af!important;background:#333!important;border-radius:12px!important;padding:.2rem .5rem!important;font-size:.8rem!important}.seat-mapping-section{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:1.5rem}.section-header-with-toggle{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.section-header-with-toggle h3{color:#0f8;margin:0;font-size:1.2rem}.toggle-btn{color:#ccc;cursor:pointer;background:#333;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.9rem;transition:all .2s}.toggle-btn:hover{color:#fff;background:#444}.seat-list-container{margin-top:1rem}.seat-search{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.search-input{color:#fff;background:#222;border:1px solid #444;border-radius:6px;flex:1;min-width:250px;padding:.75rem;font-size:.9rem}.search-input:focus{border-color:#0f8;outline:none;box-shadow:0 0 10px #0f83}.search-info{color:#888;white-space:nowrap;font-size:.8rem}.seat-list{background:#222;border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;max-height:400px;padding:.5rem;display:grid;overflow-y:auto}.seat-item{background:#333;border-left:3px solid #0af;border-radius:6px;padding:.75rem;font-size:.8rem}.seat-number{color:#0f8;margin-bottom:.25rem;font-weight:700}.seat-position,.seat-pixel{color:#ccc;font-size:.75rem}.selected-section-detail{background:#1a1a1a;border:1px solid #333;border-left:4px solid #0f8;border-radius:12px;padding:1.5rem}.selected-section-detail h3{color:#0f8;margin:0 0 1.5rem;font-size:1.2rem}.section-visualization{grid-template-columns:auto 1fr;align-items:start;gap:2rem;display:grid}.section-preview{background:#111;border:1px solid #333;border-radius:8px;padding:1rem;position:relative}.section-rectangle{border:2px solid #666;border-radius:4px;position:relative}.section-grid{grid-template-columns:repeat(var(--seats-per-row,10), 1fr);gap:1px;padding:2px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.seat-dot{opacity:.7;background:#fff;border-radius:50%;width:3px;height:3px}.section-info{background:#222;border-radius:8px;padding:1rem}.section-info h4{color:#0af;margin:0 0 1rem}.info-list{flex-direction:column;gap:.5rem;display:flex}.info-item{color:#ccc;font-size:.9rem}.info-item strong{color:#fff}.stadium-configurator::-webkit-scrollbar{width:6px}.seat-list::-webkit-scrollbar{width:6px}.stadium-configurator::-webkit-scrollbar-track{background:#111}.seat-list::-webkit-scrollbar-track{background:#111}.stadium-configurator::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.seat-list::-webkit-scrollbar-thumb{background:#333;border-radius:3px}.stadium-configurator::-webkit-scrollbar-thumb:hover{background:#555}.seat-list::-webkit-scrollbar-thumb:hover{background:#555}@media (width<=1200px){.section-visualization{grid-template-columns:1fr;gap:1rem}}@media (width<=768px){.configurator-header{flex-direction:column;align-items:stretch;gap:1rem}.sections-list,.stadium-stats{grid-template-columns:1fr}.seat-search{flex-direction:column;align-items:stretch}.search-input{min-width:auto}}.stadium-visualizer{flex-direction:column;height:100%;display:flex;position:relative}.visualizer-controls{background:#1a1a1a;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:1rem;display:flex}.zoom-controls{align-items:center;gap:.5rem;display:flex}.zoom-controls button{color:#fff;cursor:pointer;background:#333;border:none;border-radius:4px;padding:.25rem .5rem;font-size:.8rem}.zoom-controls button:hover{background:#444}.zoom-controls span{color:#ccc;text-align:center;min-width:50px;font-size:.9rem}.stadium-info{color:#ccc;flex-direction:column;align-items:flex-end;font-size:.9rem;display:flex}.stadium-info span:first-child{color:#0f8;font-weight:700}canvas{background:#000;border:1px solid #333;flex:1}.seat-tooltip{color:#fff;pointer-events:none;z-index:1000;background:#000000e6;border:1px solid #0f8;border-radius:6px;max-width:200px;padding:.5rem;font-size:.8rem;position:absolute}.tooltip-content{flex-direction:column;gap:.2rem;display:flex}.tooltip-content strong{color:#0f8;font-size:.9rem}.legend{background:#000c;border:1px solid #333;border-radius:8px;flex-direction:column;gap:.5rem;padding:1rem;font-size:.8rem;display:flex;position:absolute;bottom:1rem;left:1rem}.legend-item{align-items:center;gap:.5rem;display:flex}.color-box{border-radius:2px;width:12px;height:12px}.color-box.border-only{background:0 0;border:1px solid #444}@media (width<=768px){.visualizer-controls{flex-direction:column;gap:.5rem;padding:.5rem}.stadium-info{align-items:center}.legend{flex-flow:wrap;justify-content:center;margin:.5rem;position:static}}
