*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background-color:#f0f2f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.App{margin:0 auto;max-width:900px;padding:20px}.App-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;display:flex;justify-content:space-between;margin-bottom:24px;padding:30px}.App-header h1{font-size:1.8rem;font-weight:600}.status-bar{align-items:center;display:flex;gap:16px}.status-indicator{font-size:1rem;font-weight:600}.status-indicator.online{color:#4ade80}.status-indicator.offline{color:#f87171}.call-status{background:#fff3;border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;padding:6px 16px}.App-main{display:flex;flex-direction:column;gap:20px}section{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:24px}section h2{color:#1f2937;font-size:1.2rem;font-weight:600;margin-bottom:16px}.button-row{flex-wrap:wrap;gap:16px}.button-row,.checkbox-label{align-items:center;display:flex}.checkbox-label{color:#6b7280;cursor:pointer;font-size:.9rem;gap:8px}.checkbox-label input{cursor:pointer;height:18px;width:18px}.config-info{background:#f3f4f6;border-radius:6px;margin-top:12px;padding:8px 12px}.config-info small{font-size:.85rem}.form-row{align-items:center;display:flex;gap:12px}.room-input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-size:1rem;padding:12px 16px;transition:border-color .2s}.room-input:focus{border-color:#667eea;outline:none}.help-text{color:#6b7280;font-size:.9rem;margin-top:8px}button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s}button:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#10b981}.btn-primary:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.btn-secondary{background:#6b7280}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-test{background:#8b5cf6;color:#fff;font-size:1.1rem;padding:16px;width:100%}.btn-test:hover:not(:disabled){background:#7c3aed}.btn-call{background:#10b981;color:#fff;min-width:100px}.btn-call:hover:not(:disabled){background:#059669}.btn-hangup{background:#ef4444;color:#fff;min-width:100px}.btn-hangup:hover:not(:disabled){background:#dc2626}.btn-clear{background:#0000;border:1px solid #e5e7eb;color:#6b7280;font-size:.9rem;margin-top:12px;padding:8px 16px}.btn-clear:hover{background:#f3f4f6}.logs-section{margin-top:8px}.logs-container{background:#1e1e1e;border-radius:8px;color:#d4d4d4;font-family:Courier New,monospace;font-size:.9rem;line-height:1.6;max-height:250px;overflow-y:auto;padding:16px}.log-entry{border-bottom:1px solid #333;padding:4px 0}.log-entry:last-child{border-bottom:none}.log-info{color:#d4d4d4}.log-warn{color:#fbbf24}.log-error{color:#f87171}.log-placeholder{color:#6b7280;font-style:italic;padding:20px;text-align:center}.subtitle{font-size:1rem;margin-top:4px;opacity:.9}.user-selection{gap:16px;margin-top:16px}.user-card,.user-selection{display:flex;flex-direction:column}.user-card{align-items:flex-start;background:#fff;border:2px solid #e5e7eb;border-left:6px solid;border-radius:12px;cursor:pointer;padding:20px;text-align:left;transition:all .2s;width:100%}.user-card:hover{border-color:#667eea;box-shadow:0 4px 12px #0000001a;transform:translateX(4px)}.user-name{color:#1f2937;font-size:1.3rem;font-weight:600;margin-bottom:4px}.user-role{font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.user-extension{background:#f3f4f6;border-radius:12px;color:#6b7280;font-size:.85rem;margin-bottom:8px;padding:4px 12px}.user-description{color:#6b7280;font-size:.9rem}.user-badge{border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;padding:6px 16px}.info-box{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:16px}.info-box p{color:#1e3a5f;margin-bottom:8px}.info-box ol{color:#334155;margin-bottom:12px;margin-left:20px}.info-box li{margin-bottom:4px}.info-box .note{color:#64748b;font-size:.9rem;font-style:italic}.button-stack{display:flex;flex-direction:column;gap:12px}.button-stack button{width:100%}.call-status-display{background:#f0fdf4;border-radius:8px;margin-bottom:.5rem;padding:1rem;text-align:center}.call-state-indicator{color:#15803d;font-size:1.1rem;font-weight:600}.call-state-indicator.ringing_incoming{animation:pulse-text 1.5s ease-in-out infinite;color:#d97706}.call-state-indicator.ringing_outgoing{color:#2563eb}.call-state-indicator.connected{color:#15803d}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.6}}@media (max-width:600px){.App{padding:12px}.App-header{gap:12px;padding:20px;text-align:center}.App-header,.form-row{flex-direction:column}.room-input,button{width:100%}.user-card{padding:16px}}.incoming-call-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.incoming-call-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:400px;padding:2rem;text-align:center;width:90%}.call-animation{align-items:center;display:flex;height:80px;justify-content:center;margin:0 auto 1.5rem;position:relative;width:80px}.pulse-ring{animation:pulse 1.5s ease-out infinite;background:#22c55e4d;border-radius:50%;height:100%;position:absolute;width:100%}.pulse-ring-delayed{animation-delay:.5s}.call-icon{animation:shake 1s ease-in-out infinite;font-size:2rem;z-index:1}.call-status-title{color:#1f2937;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.caller-info{margin-bottom:1.5rem}.caller-name{color:#111827;font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.caller-extension{color:#6b7280;font-size:1rem;margin:0 0 .25rem}.caller-uri{color:#9ca3af;font-size:.875rem;margin:0;word-break:break-all}.timeout-container{margin-bottom:1.5rem}.timeout-bar{background-color:#e5e7eb;border-radius:2px;height:4px;margin-bottom:.5rem;overflow:hidden;width:100%}.timeout-progress{background:linear-gradient(90deg,#22c55e,#16a34a);height:100%;transition:width 1s linear}.timeout-text{color:#6b7280;font-size:.875rem}.call-actions{display:flex;gap:1rem;justify-content:center}.btn-call-action{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:1rem;font-weight:600;gap:.5rem;min-width:120px;padding:1rem;transition:all .15s ease-in-out}.btn-call-action:hover:not(:disabled){transform:translateY(-2px)}.btn-call-action:disabled{cursor:not-allowed;opacity:.6}.btn-decline{background-color:#fee2e2;color:#dc2626}.btn-decline:hover:not(:disabled){background-color:#fecaca}.btn-accept{background-color:#dcfce7;color:#16a34a}.btn-accept:hover:not(:disabled){background-color:#bbf7d0}.btn-icon{font-size:1.5rem;line-height:1}.btn-text{font-size:.875rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}@keyframes shake{0%,to{transform:rotate(0deg)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@media (max-width:480px){.incoming-call-modal{margin:1rem;padding:1.5rem;width:calc(100% - 2rem)}.call-animation{height:60px;width:60px}.call-icon{font-size:1.5rem}.caller-name{font-size:1.25rem}.btn-call-action{min-width:100px;padding:.75rem}}.btn-call-action:focus{outline:2px solid currentColor;outline-offset:2px}.btn-call-action:focus-visible{outline:2px solid currentColor;outline-offset:2px}.connection-panel{margin-bottom:1.5rem}.connection-error{background-color:#fef2f2;border:1px solid #fca5a5;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.connection-error p{color:#b91c1c;font-size:.875rem;margin:0}.connection-error .error-hint{color:#991b1b;font-size:.75rem;margin-top:.25rem}.connection-actions{display:flex;flex-wrap:wrap;gap:.75rem}.connection-actions button{min-width:120px}.config-info{background-color:#f3f4f6;border-radius:4px;margin-top:1rem;padding:.5rem}.config-info small{color:#6b7280;font-size:.75rem}.btn-primary{background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.625rem 1.25rem;transition:background-color .15s ease-in-out}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.btn-secondary{background-color:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.625rem 1.25rem;transition:background-color .15s ease-in-out}.btn-secondary:hover:not(:disabled){background-color:#4b5563}.btn-secondary:disabled{background-color:#9ca3af;cursor:not-allowed}@media (max-width:480px){.connection-actions{flex-direction:column}.connection-actions button{width:100%}}.status-indicator{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem}.status-indicator,.status-main{align-items:center;display:flex}.status-main{font-weight:600;gap:.5rem}.status-icon,.status-label{font-size:.875rem}.status-connected{background-color:#f0fdf4;border-color:#bbf7d0}.status-connected .status-label{color:#15803d}.status-connecting{background-color:#fefce8;border-color:#fde047}.status-connecting .status-label{color:#a16207}.status-reconnecting{background-color:#fff7ed;border-color:#fdba74}.status-reconnecting .status-label{color:#c2410c}.status-failed{background-color:#fef2f2;border-color:#fca5a5}.status-failed .status-label{color:#b91c1c}.status-disconnected{background-color:#f9fafb;border-color:#d1d5db}.status-disconnected .status-label{color:#6b7280}.status-uptime{align-items:center;border-left:1px solid #e5e7eb;color:#6b7280;display:flex;font-size:.75rem;gap:.25rem;padding-left:1rem}.uptime-label{font-weight:500}.uptime-value{color:#374151;font-family:monospace}.status-call{align-items:center;border-left:1px solid #e5e7eb;color:#6b7280;display:flex;font-size:.75rem;gap:.25rem;padding-left:1rem}.call-label{font-weight:500}.call-value{color:#374151;font-weight:600}@media (max-width:480px){.status-indicator{align-items:flex-start;flex-direction:column;gap:.5rem}.status-call,.status-uptime{border-left:none;border-top:1px solid #e5e7eb;padding-left:0;padding-top:.5rem;width:100%}}.status-connecting .status-icon,.status-reconnecting .status-icon{animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}
/*# sourceMappingURL=main.b8d36cba.css.map*/