.telephony-modal{
  background:transparent;
  backdrop-filter:none;
  pointer-events:none;
  z-index:10020;
}
.telephony-modal[aria-hidden="false"]{display:block!important}
.telephony-modal .telephony-card{
  position:fixed;
  left:24px;
  top:80px;
  pointer-events:auto;
}
.telephony-card.is-dragging{
  cursor:grabbing;
}
.telephony-title[data-role="telephony-drag"]{
  cursor:grab;
  user-select:none;
}
.telephony-drag{
  width:18px;
  height:18px;
  border-radius:6px;
  border:1px solid var(--border);
  background:color-mix(in oklab, var(--surface), var(--bg) 35%);
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:9px;
  letter-spacing:1px;
}
.telephony-drag::before{content:":::";}
.telephony-modal .modal-card{
  padding:18px;
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--border);
  box-shadow:0 18px 32px rgba(0,0,0,.2);
}
.telephony-card{
  border:1px solid var(--border);
  box-shadow:0 14px 28px rgba(0,0,0,.12);
}
.telephony-head{
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:6px;
  border-bottom:1px solid var(--border);
}
.telephony-title{
  display:flex;
  gap:12px;
  align-items:center;
}
.telephony-title__icon{
  width:42px;
  height:42px;
  border-radius:12px;
  background:linear-gradient(135deg, var(--primary), color-mix(in oklab, var(--primary), var(--accent) 55%));
  display:grid;
  place-items:center;
  color:var(--primary-contrast);
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}
.telephony-subtitle{
  font-size:13px;
  color:var(--muted);
  letter-spacing:.01em;
}
.telephony-head__actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.telephony-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:999px;
  background:color-mix(in oklab, var(--primary), transparent 80%);
  color:var(--primary);
  font-weight:600;
  font-size:13px;
}
.telephony-status[data-tone="ok"]{background:color-mix(in oklab, var(--accent), transparent 80%); color:var(--accent);}
.telephony-status[data-tone="warn"]{background:rgba(234,179,8,.15); color:#b45309;}
.telephony-status[data-tone="fail"]{background:rgba(248,113,113,.14); color:#b91c1c;}
.telephony-layout{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
  margin-top:14px;
}
.telephony-pane{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
.telephony-pane--lookup{
  background:color-mix(in oklab, var(--surface), var(--bg) 45%);
}
.telephony-pane--lookup .telephony-section + .telephony-section{
  margin-top:12px;
}
.telephony-label{
  display:block;
  color:var(--muted);
  font-size:13px;
  margin-bottom:6px;
}
.telephony-number-wrap{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.telephony-number-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
}
.telephony-number-row__actions{
  display:flex;
  gap:8px;
}
.telephony-number{
  width:100%;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px 14px;
  font-size:22px;
  font-family:"SFMono-Regular","Consolas","Monaco",monospace;
  color:var(--text);
}
.telephony-number:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.18);
}
.telephony-number-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.telephony-chip{
  border-radius:999px;
  padding:6px 10px;
  border:1px solid var(--border);
  background:color-mix(in oklab, var(--surface), var(--bg) 30%);
  color:var(--text);
  font-size:12px;
  cursor:pointer;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.telephony-chip--active{
  background:color-mix(in oklab, var(--primary), transparent 78%);
  border-color:color-mix(in oklab, var(--primary), transparent 55%);
  color:var(--primary);
  box-shadow:0 6px 14px rgba(0,0,0,.08);
}
.telephony-chip:hover{border-color:var(--primary); box-shadow:0 4px 10px rgba(0,0,0,.08);}
.telephony-chip--ghost{
  background:transparent;
}
.telephony-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:6px 0 10px 0;
}
.telephony-recent{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  min-height:28px;
  margin:4px 0 8px 0;
}
.telephony-recent .telephony-chip{
  background:color-mix(in oklab, var(--primary), transparent 82%);
  border-color:color-mix(in oklab, var(--primary), transparent 70%);
  color:var(--primary);
}
.telephony-pad{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  margin:6px 0 10px 0;
}
.telephony-pad__btn{
  background:color-mix(in oklab, var(--surface), var(--bg) 35%);
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 10px;
  color:var(--text);
  font-size:20px;
  font-weight:600;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  transition:transform .08s ease, box-shadow .12s ease, border-color .12s ease;
}
.telephony-pad__btn small{
  font-size:11px;
  opacity:.7;
  letter-spacing:.08em;
}
.telephony-pad__btn:hover{
  transform:translateY(-1px);
  border-color:var(--primary);
  box-shadow:0 8px 16px rgba(0,0,0,.15);
}
.telephony-fields{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:6px;
}
.telephony-field label{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-bottom:6px;
}
.telephony-input{
  width:100%;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  padding:10px 11px;
}
.telephony-input:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.18);
}
textarea.telephony-input{
  resize:vertical;
  min-height:56px;
}
.telephony-sip-status{
  margin-top:6px;
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--muted);
}
.telephony-sip-status__dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:#9ca3af;
}
.telephony-sip-status[data-state="online"]{
  color:var(--accent);
}
.telephony-sip-status[data-state="online"] .telephony-sip-status__dot{
  background:var(--accent);
  box-shadow:0 0 0 3px rgba(34,197,94,.18);
}
.telephony-sip-status[data-state="offline"]{
  color:#b91c1c;
}
.telephony-sip-status[data-state="offline"] .telephony-sip-status__dot{
  background:#ef4444;
  box-shadow:0 0 0 3px rgba(239,68,68,.18);
}
.telephony-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:12px;
}
.telephony-action{
  padding:10px 14px;
  border-radius:12px;
  border:1px solid transparent;
}
.telephony-action--call{
  min-width:120px;
  background:linear-gradient(135deg, var(--primary), color-mix(in oklab, var(--primary), var(--accent) 40%));
  color:var(--primary-contrast);
  box-shadow:0 10px 18px rgba(0,0,0,.12);
}
.telephony-action--hold{
  background:color-mix(in oklab, var(--surface), var(--bg) 20%);
  border-color:var(--border);
}
.telephony-action--transfer{
  background:color-mix(in oklab, var(--surface), var(--bg) 20%);
  border-color:var(--border);
}
.telephony-action--hangup{
  background:linear-gradient(135deg, #ef4444, #dc2626);
  color:#fff;
  box-shadow:0 10px 18px rgba(239,68,68,.22);
}
.telephony-hint{
  margin-top:8px;
  font-size:12px;
  color:var(--muted);
}
.telephony-softphone{
  margin-top:12px;
  padding:10px;
  border-radius:12px;
  border:1px solid var(--border);
  background:color-mix(in oklab, var(--surface), var(--bg) 35%);
}
.telephony-softphone__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.telephony-softphone__title{
  font-weight:600;
  color:var(--text);
}
.telephony-softphone__note{
  font-size:12px;
  color:var(--muted);
}
.telephony-softphone__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  background:color-mix(in oklab, var(--border), transparent 70%);
  color:var(--muted);
  font-weight:600;
  font-size:12px;
}
.telephony-softphone__status[data-tone="ok"]{
  background:color-mix(in oklab, var(--accent), transparent 80%);
  color:var(--accent);
}
.telephony-softphone__status[data-tone="warn"]{
  background:rgba(234,179,8,.15);
  color:#b45309;
}
.telephony-softphone__status[data-tone="fail"]{
  background:rgba(248,113,113,.14);
  color:#b91c1c;
}
.telephony-softphone__grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.telephony-softphone__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:8px;
}
.telephony-softphone__toggle{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--muted);
}
.telephony-softphone__call{
  display:flex;
  gap:8px;
  margin-top:8px;
}
.telephony-softphone__btn{
  padding:8px 12px;
  border-radius:10px;
}
.telephony-softphone audio{
  display:none;
}
.telephony-section{
  border-radius:12px;
  padding:10px;
  background:color-mix(in oklab, var(--surface), var(--bg) 40%);
  border:1px solid var(--border);
}
.telephony-section + .telephony-section{margin-top:12px;}
.telephony-section__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.telephony-section__title{
  font-weight:600;
  color:var(--text);
}
.telephony-section__note{
  font-size:12px;
  color:var(--muted);
}
.telephony-search{
  display:flex;
  gap:8px;
  margin-bottom:8px;
}
.telephony-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:50px;
  max-height:420px;
  overflow:auto;
}
.telephony-blocklist-actions{
  align-items:center;
  flex-wrap:wrap;
}
.telephony-blocklist-status{
  font-size:12px;
  color:var(--muted);
  min-height:16px;
  margin-bottom:6px;
}
.telephony-blocklist-status[data-tone="ok"]{color:var(--accent);}
.telephony-blocklist-status[data-tone="warn"]{color:#b45309;}
.telephony-blocklist-status[data-tone="fail"]{color:#b91c1c;}
.telephony-blocklist-item{
  align-items:center;
}
.telephony-blocklist-number{
  font-weight:600;
  color:var(--text);
}
.telephony-blocklist-norm{
  font-size:11.5px;
  color:var(--muted);
}
.telephony-tabs{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.telephony-tab{
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:var(--text);
  border-radius:10px;
  padding:6px 10px;
  font-size:12px;
  cursor:pointer;
}
.telephony-tab--active{
  background:rgba(26,192,255,.16);
  border-color:rgba(26,192,255,.5);
  color:#8be0ff;
}
.telephony-hit{
  border:1px solid var(--border);
  border-radius:12px;
  padding:8px 10px;
  background:var(--surface);
  display:flex;
  align-items:flex-start;
  gap:10px;
  justify-content:space-between;
}
.telephony-hit__body{
  display:grid;
  gap:2px;
  min-width:0;
}
.telephony-hit__title{
  font-weight:600;
  color:var(--text);
  line-height:1.25;
}
.telephony-hit__meta{
  font-size:11.5px;
  color:var(--muted);
}
.telephony-hit__actions{
  display:flex;
  gap:6px;
  align-items:center;
}
.telephony-hit__btn{
  border:1px solid var(--border);
  background:color-mix(in oklab, var(--surface), var(--bg) 30%);
  color:var(--text);
  padding:6px 10px;
  min-height:34px;
  border-radius:10px;
  cursor:pointer;
  font-size:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  box-shadow:none;
  transition:border-color .12s ease, box-shadow .12s ease, transform .08s ease, background-color .12s ease;
}
.telephony-hit__btn:hover{
  background:color-mix(in oklab, var(--surface), var(--bg) 20%);
  border-color:color-mix(in oklab, var(--primary), transparent 45%);
  color:var(--primary);
  box-shadow:0 6px 14px rgba(0,0,0,.08);
  transform:translateY(-1px);
}
.telephony-hit__btn:active{
  background:color-mix(in oklab, var(--surface), var(--bg) 15%);
  color:var(--primary);
  transform:translateY(0);
  box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.telephony-hit__btn:disabled,
.telephony-hit__btn[aria-disabled="true"]{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.telephony-hit__btn--icon{
  width:34px;
  padding:0;
}
.telephony-hit__btn--icon svg{
  width:16px;
  height:16px;
  flex:0 0 auto;
}
.telephony-hit__link{
  font-size:12px;
  color:var(--text);
  text-decoration:underline;
}
.telephony-empty{
  font-size:12px;
  color:var(--muted);
}
.telephony-trigger{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:linear-gradient(135deg, var(--primary), color-mix(in oklab, var(--primary), var(--accent) 30%));
  color:var(--primary-contrast);
  box-shadow:0 10px 20px rgba(0,0,0,.18);
  transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.telephony-trigger[data-provider-state="online"]{
  border-color:rgba(22,163,74,.45);
  background:linear-gradient(135deg, #15803d, #16a34a);
}
.telephony-trigger[data-provider-state="starting"]{
  border-color:rgba(217,119,6,.45);
  background:linear-gradient(135deg, #b45309, #d97706);
}
.telephony-trigger[data-provider-state="offline"]{
  border-color:rgba(220,38,38,.45);
  background:linear-gradient(135deg, #b91c1c, #dc2626);
}
.telephony-trigger[data-provider-state="unknown"]{
  border-color:rgba(107,114,128,.45);
  background:linear-gradient(135deg, #4b5563, #6b7280);
}
.telephony-trigger svg{
  width:18px;
  height:18px;
}
.telephony-trigger__label{
  font-weight:600;
}
.telephony-trigger:active{transform:translateY(1px);}
.telephony-trigger--alert::after{
  content:"";
  position:absolute;
  top:6px;
  right:6px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--err, #dc2626);
  box-shadow:0 0 0 0 rgba(220,38,38,.4);
  animation:telephony-alert-pulse 1s ease-in-out infinite;
}

@keyframes telephony-alert-pulse{
  0%{transform:scale(1); box-shadow:0 0 0 0 rgba(220,38,38,.35);}
  50%{transform:scale(1.05); box-shadow:0 0 0 6px rgba(220,38,38,.12);}
  100%{transform:scale(1); box-shadow:0 0 0 0 rgba(220,38,38,0);}
}

@media (max-width: 1100px){
  .telephony-layout{grid-template-columns:1fr;}
  .telephony-fields{grid-template-columns:1fr;}
  .telephony-head{flex-direction:column; align-items:flex-start;}
  .telephony-softphone__grid{grid-template-columns:1fr;}
}
