.dispatcher-contact-launch { min-width:44px; min-height:44px; flex-shrink:0; }
.dispatcher-contact-launch .ui-icon { width:22px; height:22px; }
.dispatcher-contact-dialog { width:min(580px, calc(100vw - 24px)); max-height:calc(100dvh - 32px); margin:auto; padding:0; border:1px solid var(--border); border-radius:18px; background:var(--surface); color:var(--text); box-shadow:0 24px 90px #07152e42; overflow:hidden; }
.dispatcher-contact-dialog[open] { display:flex; flex-direction:column; }
.dispatcher-contact-dialog::backdrop { background:#08152d99; backdrop-filter:blur(3px); }
.dispatcher-contact-dialog [hidden] { display:none !important; }
.dispatcher-contact-modal-open { overflow:hidden; }
.dispatcher-contact-dialog-heading { display:flex; align-items:center; gap:14px; padding:24px; border-bottom:1px solid var(--border); flex-shrink:0; }
.dispatcher-contact-dialog-heading>div { min-width:0; flex:1; }
.dispatcher-contact-dialog-heading h2 { margin:0; font-size:21px; line-height:1.3; overflow-wrap:anywhere; }
.dispatcher-contact-dialog-heading p { margin:7px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.dispatcher-contact-heading-icon { width:46px; height:46px; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:14px; background:var(--ust-brand-100); color:var(--primary); }
.dispatcher-contact-heading-icon .ui-icon { width:24px; height:24px; }
.dispatcher-contact-close { display:flex; align-items:center; justify-content:center; align-self:flex-start; flex-shrink:0; width:44px; height:44px; min-height:44px; padding:0; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--muted); line-height:1; cursor:pointer; }
.dispatcher-contact-close .ui-icon { width:24px; height:24px; }
.dispatcher-contact-close:hover { background:var(--surface-2); color:var(--text); }
.dispatcher-contact-dialog-body { min-height:132px; min-width:0; overflow-y:auto; overscroll-behavior:contain; padding:20px 24px; }
.dispatcher-contact-list { display:grid; gap:10px; padding:0; margin:0; list-style:none; }
.dispatcher-contact-card { display:flex; gap:13px; align-items:center; min-width:0; padding:16px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.dispatcher-contact-avatar { display:flex; align-items:center; justify-content:center; width:42px; height:42px; flex-shrink:0; border-radius:50%; background:var(--surface-2); color:var(--muted); font-size:15px; font-weight:600; }
.dispatcher-contact-avatar .ui-icon { width:20px; height:20px; }
.dispatcher-contact-copy { flex:1; min-width:0; }
.dispatcher-contact-copy h2,.dispatcher-contact-copy h3 { margin:0 0 4px; font-size:16px; line-height:1.45; overflow-wrap:anywhere; font-weight:600; }
.dispatcher-contact-phone { display:inline-flex; align-items:center; min-height:44px; color:var(--accent); font-size:15px; line-height:1.4; text-decoration:none; overflow-wrap:anywhere; }
a.dispatcher-contact-phone:hover { text-decoration:underline; }
.dispatcher-contact-call { display:inline-flex; justify-content:center; align-items:center; gap:7px; flex-shrink:0; min-width:44px; min-height:44px; padding:10px 12px; border-radius:10px; background:var(--primary); color:#fff; text-decoration:none; font-size:13px; font-weight:600; }
.dispatcher-contact-call:hover { background:var(--primary-strong); color:#fff; }
.dispatcher-contact-call .ui-icon { width:18px; height:18px; filter:brightness(0) invert(1); }
.dispatcher-contact-state { margin:0; padding:20px 8px; text-align:center; color:var(--muted); line-height:1.6; font-size:15px; }
.dispatcher-contact-state h2 { margin:16px 0 8px; color:var(--text); font-size:20px; }
.dispatcher-contact-state p { max-width:370px; margin:8px auto 0; }
.dispatcher-contact-state[data-state="loading"]::before { content:""; display:block; width:24px; height:24px; margin:0 auto 14px; border:3px solid var(--border); border-top-color:var(--primary); border-radius:50%; animation:dispatcher-contact-spin .8s linear infinite; }
.dispatcher-contact-retry { display:flex; margin:0 auto 12px; }
.dispatcher-contact-dialog-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 24px; border-top:1px solid var(--border); background:var(--surface-2); color:var(--muted); font-size:12px; line-height:1.5; flex-shrink:0; }
.dispatcher-contact-dialog-footer a { color:var(--accent); flex-shrink:0; min-height:44px; display:inline-flex; align-items:center; }
.dispatcher-contact-directory { max-width:800px; }
.dispatcher-contact-note { margin:12px 0; font-size:13px; line-height:1.6; color:var(--muted); overflow-wrap:anywhere; }
.dispatcher-contact-section-heading { display:flex; gap:14px; align-items:center; margin-bottom:22px; }
.dispatcher-contact-section-heading h2 { margin:0 0 6px; }
.dispatcher-contact-section-heading p { margin:0; color:var(--muted); line-height:1.5; }
.dispatcher-contact-form { display:grid; gap:18px; min-width:0; }
.dispatcher-contact-form>input[type="hidden"] { display:none; }
.dispatcher-contact-form>label,.dispatcher-contact-fields>label { display:grid; gap:8px; min-width:0; font-size:14px; font-weight:500; }
.dispatcher-contact-form input:not([type="hidden"]):not([type="checkbox"]) { box-sizing:border-box; width:100%; min-width:0; min-height:44px; margin:0; }
.dispatcher-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; min-width:0; }
.dispatcher-contact-form .dispatcher-contact-note { margin:-5px 0 0; }
.dispatcher-contact-form-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:16px; border-top:1px solid var(--border); }
.dispatcher-contact-form .dispatcher-contact-visibility { display:flex; align-items:flex-start; gap:11px; min-height:44px; min-width:0; margin:0; cursor:pointer; }
.dispatcher-contact-visibility input[type="checkbox"] { appearance:auto; width:20px; height:20px; min-height:20px; flex:0 0 20px; margin:2px 0 0; accent-color:var(--primary); }
.dispatcher-contact-visibility strong { display:block; color:var(--text); font-size:14px; font-weight:500; line-height:1.5; }
.dispatcher-contact-visibility small { display:block; margin-top:3px; color:var(--muted); font-size:12px; line-height:1.5; font-weight:400; }
.dispatcher-contact-form-footer button { flex-shrink:0; min-height:44px; }
.dispatcher-contact-profile [hidden] { display:none !important; }
.dispatcher-contact-phone-field { display:grid; align-content:start; gap:10px; min-width:0; }
.dispatcher-contact-phone-field>label,.dispatcher-contact-code-row>label { display:grid; gap:8px; min-width:0; font-size:14px; font-weight:500; }
.dispatcher-contact-form .dispatcher-contact-use-profile { justify-self:start; min-height:44px; max-width:100%; white-space:normal; text-align:left; font-size:12px; padding:10px 12px; }
.dispatcher-contact-verification { padding:18px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); min-width:0; }
.dispatcher-contact-verification-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; min-width:0; }
.dispatcher-contact-verification-heading>div { min-width:0; }
.dispatcher-contact-verification h3 { margin:0 0 6px; font-size:14px; line-height:1.5; font-weight:600; }
.dispatcher-contact-verification [data-contact-verification-status] { margin:0; color:var(--muted); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.dispatcher-contact-verification [data-contact-send-code] { flex-shrink:0; min-height:44px; }
.dispatcher-contact-verification[data-state="verified"] { border-color:var(--ust-status-success-text, #26824d); }
.dispatcher-contact-verification[data-state="verified"] h3 { color:var(--ust-status-success-text, #26824d); }
.dispatcher-contact-sms-timing { margin:12px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.dispatcher-contact-code-row { display:grid; grid-template-columns:minmax(130px, 190px) auto; align-items:end; justify-content:start; gap:12px; margin-top:18px; padding-top:18px; border-top:1px solid var(--border); }
.dispatcher-contact-code-row .dispatcher-contact-note { grid-column:1 / -1; margin:0; }
.dispatcher-contact-code-row input { letter-spacing:.2em; font-size:18px; }
.dispatcher-contact-code-row input::placeholder { letter-spacing:normal; font-size:14px; }
.dispatcher-contact-code-row button { min-height:44px; }
.dispatcher-contact-profile :is(button,input):disabled { cursor:not-allowed; opacity:.55; }
.dispatcher-contact-profile .dispatcher-contact-visibility:has(input:disabled) { cursor:not-allowed; }
.dispatcher-contact-admin-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:24px; align-items:start; }
.dispatcher-contact-admin-list,.dispatcher-contact-create { min-width:0; }
.dispatcher-contact-list-heading { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.dispatcher-contact-list-heading h2 { margin:0; }
.dispatcher-contact-count { display:inline-flex; align-items:center; justify-content:center; min-width:29px; min-height:29px; border-radius:8px; background:var(--surface-2); color:var(--muted); font-size:13px; font-weight:600; }
.dispatcher-contact-editor { padding:20px 0; border-top:1px solid var(--border); }
.dispatcher-contact-editor:first-of-type { border-top:0; padding-top:0; }
.dispatcher-contact-editor:last-child { padding-bottom:0; }
.dispatcher-contact-editor>header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px; }
.dispatcher-contact-editor>header>div { min-width:0; }
.dispatcher-contact-editor h3 { margin:0 0 6px; font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.dispatcher-contact-editor header p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.dispatcher-contact-badge { display:inline-block; max-width:100%; padding:5px 9px; border-radius:6px; background:var(--surface-2); color:var(--muted); font-size:11px; line-height:1.45; text-align:center; flex-shrink:0; }
.dispatcher-contact-badge.is-visible { background:var(--ust-status-success-background); color:var(--ust-status-success-text); }
.dispatcher-contact-create>h2 { margin:16px 0 12px; }
.dispatcher-contact-create>.dispatcher-contact-note:first-of-type { margin-bottom:22px; }
.dispatcher-contact-create .primary-button { justify-content:center; min-height:44px; }
.dispatcher-contact-create>.dispatcher-contact-note:last-child { margin:18px 0 0; }
.dispatcher-contact-dialog :is(a,button):focus-visible,.dispatcher-contact-form :is(input,button):focus-visible,.dispatcher-contact-directory a:focus-visible,.dispatcher-contact-launch:focus-visible { outline:3px solid var(--ust-focus-ring); outline-offset:3px; }
:root[data-theme="dark"] :is(.dispatcher-contact-launch,.dispatcher-contact-heading-icon,.dispatcher-contact-avatar,.dispatcher-contact-close) .ui-icon { filter:brightness(0) invert(1); }
:root[data-theme="dark"] .dispatcher-contact-heading-icon { background:#153d66; }
@keyframes dispatcher-contact-spin { to { transform:rotate(360deg); } }
@media(min-width:1200px) { .dispatcher-contact-create { position:sticky; top:100px; } }
@media(max-width:1199px) { .dispatcher-contact-admin-layout { grid-template-columns:minmax(0,1fr); } .dispatcher-contact-create { max-width:none; } }
@media(max-width:600px) {
    .dispatcher-contact-verification { padding:15px; }
    .dispatcher-contact-verification-heading { flex-direction:column; align-items:stretch; gap:12px; }
    .dispatcher-contact-code-row { grid-template-columns:minmax(0,1fr); }
    .dispatcher-contact-code-row button { width:100%; }
    .dispatcher-contact-form input:not([type="hidden"]):not([type="checkbox"]) { font-size:16px; }
    .dispatcher-contact-dialog { max-height:calc(100dvh - 24px); border-radius:14px; }
    .dispatcher-contact-dialog-heading { gap:10px; padding:18px 16px; }
    .dispatcher-contact-dialog-heading>.dispatcher-contact-heading-icon { display:none; }
    .dispatcher-contact-dialog-heading h2 { font-size:19px; }
    .dispatcher-contact-dialog-body { padding:14px; }
    .dispatcher-contact-card { gap:10px; padding:13px; }
    .dispatcher-contact-avatar { width:34px; height:34px; font-size:13px; }
    .dispatcher-contact-call { padding:10px; }
    .dispatcher-contact-call>span { display:none; }
    .dispatcher-contact-copy h2,.dispatcher-contact-copy h3 { font-size:15px; }
    .dispatcher-contact-phone { min-height:44px; font-size:14px; }
    .dispatcher-contact-dialog-footer { padding:10px 16px; gap:10px; }
    .dispatcher-contact-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
    .dispatcher-contact-form-footer { align-items:stretch; flex-direction:column; gap:16px; }
    .dispatcher-contact-editor>header { flex-direction:column; }
    .dispatcher-contact-section-heading { align-items:flex-start; }
    .dispatcher-contact-section-heading>.dispatcher-contact-heading-icon { display:none; }
    .dispatcher-contact-admin-layout { gap:18px; }
}
@media(prefers-reduced-motion:reduce) { .dispatcher-contact-state[data-state="loading"]::before { animation:none; } }
@media(max-width:360px) { .dispatcher-contact-card .dispatcher-contact-avatar { display:none; } }
