*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;background:#f5f5f5;color:#333}.layout{min-height:100vh}header{background:#1a1a2e;color:#fff;padding:0 1rem}header nav{display:flex;align-items:center;max-width:1200px;margin:0 auto;height:56px}.nav-brand a{color:#fff;text-decoration:none;font-weight:700;font-size:1.1rem}.nav-links{display:flex;list-style:none;margin-left:2rem;gap:1rem}.nav-links a{color:#ccc;text-decoration:none}.nav-links a:hover{color:#fff}.btn-logout{margin-left:auto;background:transparent;border:1px solid #666;color:#ccc;padding:.4rem .8rem;cursor:pointer}.btn-logout:hover{background:#333}main{max-width:1200px;margin:0 auto;padding:1.5rem}h1{font-size:1.5rem;margin-bottom:.5rem}h2{font-size:1.2rem;margin:1.5rem 0 .75rem;border-bottom:1px solid #ddd;padding-bottom:.25rem}h3{font-size:1rem;margin:1rem 0 .5rem}.subtitle{color:#666;margin-bottom:1rem}.page-header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.page-header h1{margin-bottom:0}.header-actions{display:flex;gap:.5rem;margin-left:auto}button,.btn{background:#4a4a8a;color:#fff;border:none;padding:.5rem 1rem;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:#5a5a9a}button:disabled{background:#999;cursor:not-allowed}.btn-small{padding:.25rem .5rem;font-size:.85rem;margin-right:.25rem}.btn-danger{background:#c44}.btn-danger:hover{background:#d55}.login-form,.dynamic-form{max-width:400px;background:#fff;padding:1.5rem;border:1px solid #ddd}.field-container{margin-bottom:1rem}.field-container label{display:block;font-weight:500;margin-bottom:.25rem}.field-checkbox{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:.5rem}.field-checkbox label{margin-bottom:0}.required{color:#c44;margin-left:.25rem}input,select,textarea{width:100%;padding:.5rem;border:1px solid #ccc;font-size:1rem}input[type=checkbox]{width:auto}textarea{resize:vertical;min-height:80px}select[multiple]{min-height:100px}.form-actions{display:flex;gap:.5rem;margin-top:1rem}table{width:100%;border-collapse:collapse;background:#fff;margin:.5rem 0}th,td{padding:.5rem;text-align:left;border-bottom:1px solid #eee}th{background:#f9f9f9;font-weight:600}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:3px;font-size:.8rem;font-weight:500}.status-badge.checking{background:#eee;color:#666}.status-badge.ok{background:#d4edda;color:#155724}.status-badge.error{background:#f8d7da;color:#721c24}.action-badge{display:inline-block;padding:.2rem .5rem;border-radius:3px;font-size:.75rem;font-weight:500;text-transform:uppercase}.action-badge.create{background:#d4edda;color:#155724}.action-badge.update{background:#fff3cd;color:#856404}.action-badge.delete{background:#f8d7da;color:#721c24}.error-box{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:.75rem;margin:.5rem 0}.success-box{background:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:.75rem;margin:.5rem 0}.error{color:#c44}.success{color:#2a2}.json-viewer{background:#1e1e1e;color:#d4d4d4;padding:1rem;margin:.5rem 0;overflow-x:auto}.json-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.json-header h4{color:#9cdcfe;margin:0}.json-viewer pre{margin:0;font-family:Fira Code,Consolas,monospace;font-size:.85rem;white-space:pre-wrap;word-break:break-all}.token-input{background:#fff;padding:1rem;border:1px solid #ddd}.token-info p{margin:.25rem 0}.token-actions,.token-manual{display:flex;gap:.5rem;margin-top:.75rem}.token-manual input{flex:1}dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;background:#fff;padding:1rem;border:1px solid #ddd}dt{font-weight:600;color:#666}dd{margin:0}code{background:#f4f4f4;padding:.1rem .3rem;font-family:Fira Code,Consolas,monospace;font-size:.9em}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.timeline-list{list-style:none}.timeline-entry{padding:.75rem;background:#fff;border:1px solid #ddd;margin-bottom:.5rem}.timeline-entry .timestamp{color:#666;font-size:.85rem;margin-left:.5rem}.page-actions{display:flex;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ddd}section{margin-bottom:1.5rem}.section-header{display:flex;align-items:center;gap:1rem}.section-header h2{margin:0;border:none}.api-status table{margin-top:.5rem}.api-details{background:#fff;padding:1rem;border:1px solid #ddd;margin-top:.5rem}.quick-links ul{list-style:none;background:#fff;padding:1rem;border:1px solid #ddd}.quick-links li{margin:.25rem 0}.response-section{margin-top:1rem}.login-page{max-width:500px;margin:2rem auto;padding:0 1rem}.login-page .subtitle{color:#666;margin-bottom:1.5rem}.context-selection{background:#fff;padding:1.5rem;border:1px solid #ddd}.context-group{margin-bottom:1rem}.context-group h4{margin:0 0 .5rem;color:#333}.tenant-list{list-style:none;padding:0;margin:0}.tenant-list li{margin-bottom:.5rem}.tenant-button{width:100%;text-align:left;padding:.75rem 1rem;background:#f5f5f5;border:1px solid #ddd;cursor:pointer}.tenant-button:hover{background:#e5e5e5;border-color:#4a4a8a}.context-info{background:#f0f4ff;padding:.75rem 1rem;margin-bottom:1rem;border-left:3px solid #4a4a8a}.context-info p{margin:.25rem 0}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover{background:#e5e5e5}.debug-section{margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}.debug-content{margin-top:1rem}.phone-status-badge{display:flex;align-items:center;gap:.3rem;margin-left:auto;margin-right:.75rem;font-size:.8rem;color:#ccc}.phone-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.phone-status-label{font-weight:500}.phone-widget{position:fixed;bottom:20px;right:20px;z-index:1000}.phone-fab{width:52px;height:52px;border-radius:50%;background:#1a1a2e;color:#fff;border:2px solid #999;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;box-shadow:0 2px 8px #0000004d;padding:0}.phone-fab:hover{background:#2a2a4e}.phone-fab-dot{position:absolute;top:4px;right:4px;width:10px;height:10px;border-radius:50%;border:2px solid #1a1a2e}.phone-panel{position:absolute;bottom:62px;right:0;width:300px;background:#fff;border:1px solid #ddd;box-shadow:0 4px 16px #00000026;border-radius:8px;overflow:hidden}.phone-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem .8rem;background:#1a1a2e;color:#fff;font-weight:600;font-size:.9rem}.phone-panel-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:0;line-height:1}.phone-panel-close:hover{opacity:.7}.phone-panel-offline,.phone-panel-connecting{padding:1rem;text-align:center;color:#666;font-size:.9rem}.phone-panel-offline button{margin-top:.5rem;padding:.4rem 1rem;font-size:.85rem}.phone-tabs{display:flex;border-bottom:1px solid #eee}.phone-tab{flex:1;padding:.5rem;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:.85rem;color:#666}.phone-tab.active{color:#4a4a8a;border-bottom-color:#4a4a8a}.phone-tab:hover{background:#f9f9f9}.dialpad-view{padding:.75rem}.dialpad-input-row{display:flex;gap:.25rem;margin-bottom:.5rem}.dialpad-input{flex:1;text-align:center;font-size:1.1rem;letter-spacing:.1em;padding:.4rem;border:1px solid #ddd;border-radius:4px}.dialpad-backspace{background:#f5f5f5;border:1px solid #ddd;padding:0 .6rem;cursor:pointer;font-size:1rem;border-radius:4px;color:#333}.dialpad-backspace:hover{background:#e5e5e5}.dtmf-pad{display:flex;flex-direction:column;gap:4px}.dtmf-row{display:flex;gap:4px;justify-content:center}.dtmf-key{width:60px;height:44px;border:1px solid #ddd;background:#f9f9f9;font-size:1.1rem;font-weight:600;cursor:pointer;border-radius:4px;color:#333;padding:0}.dtmf-key:hover{background:#e5e5e5}.dtmf-key:active{background:#d5d5d5}.dialpad-call-btn{width:100%;margin-top:.5rem;padding:.6rem;background:#4caf50;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer}.dialpad-call-btn:hover{background:#43a047}.dialpad-call-btn:disabled{background:#ccc;cursor:not-allowed}.active-call-view{padding:.75rem}.call-info{text-align:center;margin-bottom:.75rem}.call-remote{font-weight:600;font-size:1rem;margin-bottom:.25rem}.call-state{color:#666;font-size:.85rem}.call-timer{font-size:1.2rem;font-weight:600;color:#4a4a8a;margin-top:.25rem}.call-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:.5rem}.call-ctrl-btn{padding:.5rem;font-size:.8rem;border:1px solid #ddd;background:#f5f5f5;cursor:pointer;border-radius:4px;color:#333}.call-ctrl-btn:hover{background:#e5e5e5}.call-ctrl-btn.active{background:#4a4a8a;color:#fff;border-color:#4a4a8a}.call-dtmf-section{margin:.5rem 0}.call-hangup-btn{width:100%;padding:.6rem;background:#f44336;color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:.5rem}.call-hangup-btn:hover{background:#d32f2f}.incoming-call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:2000;display:flex;align-items:center;justify-content:center}.incoming-call-card{background:#fff;border-radius:12px;padding:2rem;text-align:center;min-width:300px;box-shadow:0 8px 32px #0000004d;animation:incoming-pulse 2s ease-in-out infinite}@keyframes incoming-pulse{0%,to{box-shadow:0 8px 32px #0000004d}50%{box-shadow:0 8px 32px #4caf5080}}.incoming-call-ring{width:60px;height:60px;border-radius:50%;background:#4caf50;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;animation:ring-shake .5s ease-in-out infinite}@keyframes ring-shake{0%,to{transform:rotate(0)}25%{transform:rotate(15deg)}75%{transform:rotate(-15deg)}}.incoming-call-ring:after{content:"";width:30px;height:30px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.incoming-call-label{color:#666;font-size:.9rem;margin-bottom:.25rem}.incoming-call-caller{font-size:1.3rem;font-weight:600;margin-bottom:1.5rem}.incoming-call-actions{display:flex;gap:1rem;justify-content:center}.incoming-accept-btn{padding:.75rem 2rem;background:#4caf50;color:#fff;border:none;border-radius:24px;font-size:1rem;font-weight:600;cursor:pointer}.incoming-accept-btn:hover{background:#43a047}.incoming-decline-btn{padding:.75rem 2rem;background:#f44336;color:#fff;border:none;border-radius:24px;font-size:1rem;font-weight:600;cursor:pointer}.incoming-decline-btn:hover{background:#d32f2f}.transfer-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1500;display:flex;align-items:center;justify-content:center}.transfer-modal{background:#fff;border-radius:8px;padding:1.5rem;min-width:300px;box-shadow:0 4px 16px #0003}.transfer-modal h3{margin:0 0 1rem}.transfer-input{width:100%;padding:.5rem;margin-bottom:1rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.transfer-actions{display:flex;gap:.5rem}.transfer-blind-btn{flex:1;padding:.5rem;background:#4a4a8a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.transfer-blind-btn:hover{background:#5a5a9a}.transfer-blind-btn:disabled{background:#ccc;cursor:not-allowed}.transfer-cancel-btn{padding:.5rem 1rem;background:#f5f5f5;color:#333;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem}.transfer-cancel-btn:hover{background:#e5e5e5}.call-history-view{padding:.5rem}.call-history-header{display:flex;justify-content:space-between;align-items:center;padding:.25rem .25rem .5rem;font-weight:600;font-size:.85rem}.call-history-empty{padding:1.5rem;text-align:center;color:#999;font-size:.9rem}.call-history-list{list-style:none;padding:0;margin:0;max-height:280px;overflow-y:auto}.call-history-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .25rem;border-bottom:1px solid #f0f0f0;cursor:pointer;font-size:.85rem}.call-history-item:hover{background:#f9f9f9}.call-direction{font-size:1rem}.call-direction.outgoing{color:#4a4a8a}.call-direction.incoming{color:#4caf50}.call-history-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-history-meta{display:flex;gap:.4rem;color:#999;font-size:.75rem}.call-status-missed{color:#f44336}.call-status-answered{color:#4caf50}.call-status-declined{color:#ff9800}
