:root{--bg: #f4f5f7;--panel: #ffffff;--ink: #1c2b2e;--primary: #0f4c5c;--primary-dark: #0b3541;--accent: #c4622d;--muted: #6b767c;--line: #e2e5e9;--ok: #1e8e5a;--danger: #c0392b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--ink)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--primary-dark),var(--primary))}.login-card{background:var(--panel);border-radius:14px;padding:40px 36px;width:380px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;gap:16px}.login-logo{font-size:28px;font-weight:800;color:var(--primary-dark)}.login-logo span{color:var(--accent)}.login-sub{color:var(--muted);font-size:14px;margin-top:-10px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.login-card input{padding:11px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px}.login-card input:focus{outline:2px solid var(--primary);border-color:transparent}.login-card button{padding:12px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:default}.login-error{background:#fdecea;color:var(--danger);padding:10px 12px;border-radius:8px;font-size:13px}.mfa-note{font-size:13px;color:var(--muted)}.mfa-qr{display:block;width:180px;height:180px;margin:4px auto;background:#fff;border-radius:8px;padding:6px}.mfa-manual-label{font-size:12px;color:var(--muted);margin:8px 0 2px}.mfa-manual{display:block;font-size:13px;letter-spacing:1px;word-break:break-all;background:#ffffff0f;padding:8px 10px;border-radius:6px;-webkit-user-select:all;user-select:all}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:28px;padding:0 24px;height:58px;background:var(--primary-dark);color:#fff}.brand{font-weight:800;font-size:18px}.brand span{color:var(--accent)}.app-header nav{display:flex;gap:4px;flex:1}.app-header nav button{background:none;border:none;color:#ffffffbf;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;border-radius:6px}.app-header nav button.active,.app-header nav button:hover{background:#ffffff1f;color:#fff}.header-right{display:flex;align-items:center;gap:14px;font-size:13px}.presence-btn{border:1px solid rgba(255,255,255,.35);background:none;color:#fff;padding:6px 12px;border-radius:999px;cursor:pointer;font-size:12px;font-weight:700}.presence-btn.busy{opacity:.75}.logout{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:12px}.banner-error{background:#fdecea;color:var(--danger);padding:10px 24px;font-size:13px;cursor:pointer}.app-main{flex:1;padding:24px;max-width:1200px;width:100%;margin:0 auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}.panel h2{font-size:18px;margin-bottom:16px}.panel h3{font-size:15px;margin-bottom:12px}.muted{color:var(--muted);font-size:14px}.dialer-layout{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}.dialer-panel{display:flex;flex-direction:column;gap:16px}.phone-status{font-size:13px;font-weight:600;color:var(--muted)}.number-input{font-size:22px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;text-align:center;letter-spacing:1px}.number-input:focus{outline:2px solid var(--primary);border-color:transparent}.dialpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.dial-key{aspect-ratio:1.6;border:1px solid var(--line);background:#fafbfc;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.dial-key:hover{background:#eef2f4}.dial-key:active{background:#dde7ea}.dial-key-main{font-size:20px;font-weight:700}.dial-key-sub{font-size:9px;color:var(--muted);letter-spacing:2px}.call-actions{display:flex;gap:10px}.call-actions button{flex:1;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;color:#fff}.btn-call{background:var(--ok)}.btn-call:disabled{opacity:.5;cursor:default}.btn-hangup{background:var(--danger)}.btn-mute{background:var(--muted)}.call-state{text-align:center;font-size:14px;color:var(--muted);min-height:20px}.incoming-popup{position:fixed;top:74px;right:24px;z-index:50;width:300px;background:var(--panel);border:2px solid var(--ok);border-radius:14px;padding:20px;text-align:center;box-shadow:0 12px 40px #0003;animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 12px 40px #1e8e5a73}}.incoming-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.incoming-number{font-size:22px;font-weight:800;margin:8px 0 16px}.incoming-actions{display:flex;gap:10px}.incoming-actions button{flex:1;padding:12px;border:none;border-radius:8px;font-weight:700;cursor:pointer;color:#fff}.btn-accept{background:var(--ok)}.btn-reject{background:var(--danger)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:var(--muted);font-size:12px;padding:8px;border-bottom:2px solid var(--line)}.table td{padding:10px 8px;border-bottom:1px solid var(--line)}.status-pill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;background:#eef2f4}.status-pill.completed{background:#e3f5ec;color:var(--ok)}.status-pill.missed,.status-pill.failed{background:#fdecea;color:var(--danger)}.status-pill.voicemail{background:#fff4e5;color:var(--accent)}.rec-player{height:32px;width:200px}.search-input{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:8px;margin-bottom:14px;font-size:14px}.contact-add{display:flex;gap:10px;margin-top:14px}.contact-add input{flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px}.btn-small{padding:7px 14px;border:none;border-radius:7px;background:var(--primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.team-list{list-style:none;display:flex;flex-direction:column;gap:8px}.team-list li{display:flex;align-items:center;gap:10px;font-size:14px}.team-name{font-weight:600}.team-role{color:var(--muted);font-size:12px;margin-left:auto}@media (max-width: 900px){.dialer-layout{grid-template-columns:1fr}.app-header{gap:12px;padding:0 12px}.user-name{display:none}}
