.login-container{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b)}.login-box{background:#1e293b;padding:2rem;border-radius:12px;box-shadow:0 20px 25px -5px #0000004d;border:1px solid #334155;width:90%;max-width:400px}.login-box h1{text-align:center;margin-bottom:1.5rem;color:#f1f5f9;font-size:2rem}.login-box form{display:flex;flex-direction:column;gap:1rem}.login-box input{padding:.75rem;border:1px solid #475569;background:#0f172a;color:#e2e8f0;border-radius:6px;font-size:1rem;transition:border-color .2s}.login-box input:focus{outline:none;border-color:#3b82f6}.login-box input::placeholder{color:#64748b}.login-box button{padding:.75rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background .2s;font-weight:500}.login-box button:hover:not(:disabled){background:#2563eb}.login-box button:disabled{opacity:.6;cursor:not-allowed}.error{color:#f87171;font-size:.875rem;text-align:center;background:#7f1d1d;padding:.5rem;border-radius:6px}.operator-container{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:#0f172a}.status-bar{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;background:#1e293b;color:#e2e8f0;height:50px;flex-shrink:0;border-bottom:1px solid #334155}.status-indicator{width:12px;height:12px;border-radius:50%;background:#ef4444;box-shadow:0 0 8px #ef444480}.status-indicator.connected{background:#10b981;box-shadow:0 0 8px #10b98180}.match-name{flex:1;font-size:.875rem;color:#cbd5e1}.match-selector{padding:.5rem;background:#0f172a;color:#e2e8f0;border:1px solid #475569;border-radius:6px;font-size:.875rem;cursor:pointer;transition:border-color .2s}.match-selector:focus{outline:none;border-color:#3b82f6}.match-selector option{background:#1e293b;color:#e2e8f0}.error-banner{background:#7f1d1d;color:#fecaca;padding:.75rem;text-align:center;font-weight:500;position:absolute;top:50px;left:0;right:0;z-index:1000;animation:slideDown .3s ease;border-bottom:1px solid #991b1b}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.no-match{flex:1;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:1.25rem}.match-info{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#cbd5e1}.match-info h2{font-size:2rem;margin-bottom:1rem;color:#f1f5f9}.match-info .status-badge{display:inline-block;padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600;margin-bottom:1.5rem}.match-info .status-badge.scheduled{background:#1e40af;color:#dbeafe}.match-info .status-badge.finished{background:#475569;color:#cbd5e1}.match-info p{font-size:1.125rem;margin:.5rem 0;color:#94a3b8}.no-actions-container{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.no-actions-message{text-align:center;max-width:400px}.no-actions-message h3{font-size:1.5rem;color:#f1f5f9;margin-bottom:1rem}.no-actions-message p{font-size:1rem;color:#94a3b8;margin:.5rem 0;line-height:1.6}.buttons-container{flex:1;display:flex;overflow:hidden}.buttons-container.buttons-split{flex-direction:column}.buttons-container.buttons-grid{flex-wrap:wrap;align-content:flex-start}.buttons-container.buttons-list{flex-direction:column;overflow-y:auto}.no-actions{color:#9ca3af;font-size:1.25rem}.control-button{border:none;font-size:3rem;font-weight:700;color:#fff;cursor:pointer;transition:filter .15s ease,transform .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;position:relative}.control-button:active{filter:brightness(.7);transform:scale(.98)}.buttons-split .control-button{flex:1;width:100%}.buttons-grid .control-button{flex:1 1 50%;min-height:50%}.buttons-list .control-button{flex-shrink:0;height:120px;width:100%;font-size:2rem}.control-button *{pointer-events:none}.operator-container{overscroll-behavior-y:contain}.buttons-container *{touch-action:manipulation}.admin-container{width:100vw;height:100vh;display:flex;flex-direction:column;background:#0f172a;overflow:hidden}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#1e293b;border-bottom:1px solid #334155}.admin-header h1{font-size:1.5rem;color:#f1f5f9}.admin-tabs{display:flex;background:#1e293b;border-bottom:1px solid #334155}.admin-tabs button{padding:1rem 2rem;border:none;background:none;cursor:pointer;font-size:1rem;color:#94a3b8;border-bottom:2px solid transparent;transition:all .2s}.admin-tabs button.active{color:#3b82f6;border-bottom-color:#3b82f6}.admin-tabs button:hover{color:#cbd5e1}.admin-content{flex:1;padding:2rem;overflow-y:auto}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.content-header h2{font-size:1.25rem;color:#f1f5f9}.btn-primary{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;transition:background .2s;font-weight:500}.btn-primary:hover{background:#2563eb}.btn-secondary{padding:.5rem 1rem;background:#475569;color:#e2e8f0;border:none;border-radius:6px;cursor:pointer;font-size:.875rem}.btn-secondary:hover{background:#64748b}.btn-danger{padding:.5rem 1rem;background:#dc2626;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.data-table{width:100%;background:#1e293b;border-radius:8px;overflow:hidden;box-shadow:0 4px 6px #0000004d;border:1px solid #334155}.data-table th,.data-table td{padding:1rem;text-align:left}.data-table th{background:#0f172a;font-weight:600;color:#cbd5e1;font-size:.875rem;text-transform:uppercase}.data-table tbody tr{border-top:1px solid #334155;transition:background .2s}.data-table tbody tr:hover{background:#334155}.data-table td{color:#e2e8f0}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.role-badge.admin{background:#fbbf24;color:#78350f}.role-badge.operator{background:#3b82f6;color:#dbeafe}.role-badge.receiver{background:#10b981;color:#d1fae5}.delay-input{width:100px;padding:.5rem;border:1px solid #475569;background:#0f172a;color:#e2e8f0;border-radius:4px;font-size:.875rem}.delay-input:focus{outline:none;border-color:#3b82f6}.matches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.match-card{background:#1e293b;padding:1.5rem;border-radius:8px;box-shadow:0 4px 6px #0000004d;border:1px solid #334155;transition:transform .2s,border-color .2s}.match-header h3{font-size:1.125rem;color:#f1f5f9}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.scheduled{background:#1e40af;color:#dbeafe}.status-badge.active{background:#047857;color:#d1fae5}.status-badge.finished{background:#475569;color:#cbd5e1}.match-details{margin-bottom:1rem}.match-details p{margin:.5rem 0;font-size:.875rem;color:#94a3b8}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#1e293b;padding:2rem;border-radius:12px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;border:1px solid #334155;box-shadow:0 20px 25px -5px #00000080}.modal h2{margin-bottom:1.5rem;color:#f1f5f9}.modal form{display:flex;flex-direction:column;gap:1rem}.modal input,.modal select{padding:.75rem;border:1px solid #475569;background:#0f172a;color:#e2e8f0;border-radius:6px;font-size:1rem}.modal input:focus,.modal select:focus{outline:none;border-color:#3b82f6}.modal label{font-weight:500;color:#cbd5e1;font-size:.875rem}.checkbox-group{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto;padding:.5rem;border:1px solid #334155;background:#0f172a;border-radius:6px}.checkbox-group label{display:flex;align-items:center;gap:.5rem;font-weight:400;color:#e2e8f0}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.modal-actions button{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.875rem}.modal-actions button[type=button]{background:#475569;color:#e2e8f0}.modal-actions button[type=button]:hover{background:#64748b}.actions-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;min-height:60px;max-height:200px;overflow-y:auto;padding:.5rem;border:1px solid #334155;background:#0f172a;border-radius:6px}.no-actions-placeholder{display:flex;align-items:center;justify-content:center;height:60px;color:#64748b;font-size:.875rem;font-style:italic}.no-actions-placeholder p{margin:0}.action-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#1e293b;border-radius:6px;border:1px solid #334155}.action-color-preview{width:24px;height:24px;border-radius:4px;flex-shrink:0}.action-label{flex:1;font-size:.875rem;color:#e2e8f0}.btn-remove-action{width:24px;height:24px;padding:0;background:#dc2626;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s}.btn-remove-action:hover{background:#b91c1c}.add-action-form{display:flex;gap:.5rem;margin-bottom:1rem}.action-name-input{flex:1;padding:.5rem;border:1px solid #475569;background:#0f172a;color:#e2e8f0;border-radius:6px;font-size:.875rem}.action-name-input:focus{outline:none;border-color:#3b82f6}.action-color-select{padding:.5rem;border:1px solid #475569;background:#0f172a;color:#e2e8f0;border-radius:6px;font-size:.875rem}.action-color-select:focus{outline:none;border-color:#3b82f6}.btn-add-action{padding:.5rem 1rem;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;white-space:nowrap;font-weight:500;transition:background .2s}.btn-add-action:hover{background:#059669}.receiver-container{width:100vw;height:100vh;display:flex;flex-direction:column;background:#0f172a;color:#e2e8f0}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#1e293b;border-bottom:1px solid #334155}.user-info{font-size:.875rem;color:#94a3b8}.logout-btn{padding:.5rem 1rem;background:#475569;color:#e2e8f0;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;transition:background .2s}.logout-btn:hover{background:#64748b}.receiver-content{flex:1;padding:2rem;overflow-y:auto;max-width:1200px;margin:0 auto;width:100%}.receiver-content h2{font-size:1.875rem;margin-bottom:.5rem;color:#f1f5f9}.info-text{color:#94a3b8;margin-bottom:2rem}.loading{flex:1;display:flex;align-items:center;justify-content:center;color:#94a3b8}.no-matches{text-align:center;padding:3rem;background:#1e293b;border-radius:12px;border:1px solid #334155}.no-matches p{margin:.5rem 0;color:#94a3b8}.no-matches .hint{font-size:.875rem;color:#64748b}.matches-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.match-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:1.5rem;transition:transform .2s,border-color .2s}.match-card:hover{transform:translateY(-2px);border-color:#475569}.match-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.match-header h3{font-size:1.25rem;color:#f1f5f9;margin:0}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:#10b981;color:#064e3b}.status-badge.scheduled{background:#3b82f6;color:#1e3a8a}.status-badge.finished{background:#64748b;color:#1e293b}.match-details{color:#94a3b8;font-size:.875rem}.match-details p{margin:.5rem 0}.actions-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.action-chip{padding:.25rem .75rem;border-radius:6px;font-size:.75rem;font-weight:500;color:#fff}.desktop-hint{background:linear-gradient(135deg,#1e293b,#334155);border:1px solid #475569;border-radius:12px;padding:2rem;margin-top:2rem}.desktop-hint h3{font-size:1.5rem;margin-bottom:1rem;color:#f1f5f9}.desktop-hint p{color:#cbd5e1;margin:.75rem 0;line-height:1.6}.desktop-hint ul{margin:1rem 0;padding-left:1.5rem;color:#94a3b8}.desktop-hint li{margin:.5rem 0;line-height:1.6}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:#0f172a;color:#e2e8f0}#root{width:100vw;height:100vh;overflow:hidden}
