:root{color-scheme:dark;--bg: #0b0f16;--surface: #11161f;--surface-2: #161d29;--surface-3: #1c2432;--border: #1e2734;--border-strong: #2c3849;--text: #e9eef6;--muted: #8b97a8;--faint: #5d6a7d;--accent: #3987e5;--accent-soft: rgba(57, 135, 229, .13);--green: #3fb950;--green-soft: rgba(63, 185, 80, .13);--yellow: #d29922;--yellow-soft: rgba(210, 153, 34, .13);--red: #f85149;--red-soft: rgba(248, 81, 73, .12);--purple: #d2a8ff;--purple-soft: rgba(210, 168, 255, .12);--radius: 12px;--radius-sm: 8px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:radial-gradient(1100px 460px at 75% -12%,rgba(57,135,229,.07),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#3987e547}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;z-index:20;display:flex;flex-direction:column;background:#11161fdb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-right:1px solid var(--border);padding:20px 12px 14px}.side-brand{display:flex;align-items:center;gap:10px;padding:0 8px}.side-logo{width:32px;height:32px;border-radius:9px;flex-shrink:0;background:linear-gradient(135deg,#3987e5,#1f6feb);display:grid;place-items:center;font-weight:700;font-size:.95rem;color:#fff;box-shadow:0 4px 14px #3987e547}.side-brand-name{font-weight:700;font-size:.82rem;letter-spacing:.14em}.side-brand-sub{font-size:.68rem;color:var(--faint);letter-spacing:.04em}.side-nav{flex:1;display:flex;flex-direction:column;gap:3px;margin-top:22px}.side-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:none;border-radius:var(--radius-sm);background:none;color:var(--muted);font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;text-align:left;transition:background .14s ease,color .14s ease}.side-item svg{width:16px;height:16px;flex-shrink:0}.side-item:hover{color:var(--text);background:var(--surface-2)}.side-item.active{color:var(--text);background:var(--accent-soft)}.side-item.active svg{color:var(--accent)}.side-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--border);padding:12px 6px 0}.side-user{display:flex;align-items:center;gap:9px;font-size:.8rem;color:var(--muted);min-width:0}.side-user b{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:26px;height:26px;border-radius:50%;flex-shrink:0;background:var(--surface-3);border:1px solid var(--border-strong);display:grid;place-items:center;font-size:.72rem;font-weight:700;color:var(--accent)}.main{margin-left:224px;padding:30px 34px 60px}.main-inner{max-width:1240px;margin:0 auto}.page-head{margin-bottom:24px}.page-head h1{margin:0;font-size:1.32rem;font-weight:650;letter-spacing:-.015em}.page-head p{margin:5px 0 0;color:var(--muted);font-size:.84rem}@media (max-width: 880px){.side-brand-sub{display:none}.sidebar{position:static;width:auto;flex-direction:row;align-items:center;gap:8px;padding:10px 12px;border-right:none;border-bottom:1px solid var(--border)}.side-nav{flex-direction:row;margin:0;overflow-x:auto}.side-item{padding:8px 10px}.side-item .label{display:none}.side-foot{border-top:none;padding:0}.side-user .label{display:none}.main{margin-left:0;padding:20px 16px 48px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.card h2{margin:0 0 14px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 900px){.grid{grid-template-columns:1fr}}table{width:100%;border-collapse:collapse;font-size:.83rem}th{text-align:left;padding:8px 10px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);border-bottom:1px solid var(--border);white-space:nowrap}td{padding:9px 10px;border-bottom:1px solid var(--border)}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s ease}tbody tr:hover{background:#ffffff06}.table-wrap{overflow-x:auto}.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:-.01em}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:.83rem;font-weight:500;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .06s ease}.spacer{flex:1}.btn svg{width:15px;height:15px;flex-shrink:0}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:#238636;color:#fff}.btn.primary:hover:not(:disabled){background:#2ea043}.btn.ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn.ghost:hover:not(:disabled){background:var(--surface-2)}.btn.danger-solid{background:#da3633;color:#fff}.btn.danger-solid:hover:not(:disabled){background:#e5534b}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:transparent;color:var(--faint);cursor:pointer;transition:background .13s ease,color .13s ease}.icon-btn svg{width:15px;height:15px}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn.play:hover{color:var(--green)}.icon-btn.danger:hover{color:var(--red)}.input,.textarea{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:.85rem;padding:9px 12px;outline:none;width:100%;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3987e529}.input::placeholder,.textarea::placeholder{color:var(--faint)}.textarea{resize:vertical;min-height:120px;font-family:var(--mono);font-size:.78rem;line-height:1.5}.w-220{width:220px}.w-88{width:88px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.nodot:before{display:none}.badge.green{color:var(--green);background:var(--green-soft);border-color:#3fb95038}.badge.blue{color:var(--accent);background:var(--accent-soft);border-color:#3987e540}.badge.yellow{color:var(--yellow);background:var(--yellow-soft);border-color:#d2992238}.badge.red{color:var(--red);background:var(--red-soft);border-color:#f8514938}.badge.gray{color:var(--muted);background:#8b97a817;border-color:#8b97a82e}.badge.pulse:before{animation:blip 1.3s ease-in-out infinite}@keyframes blip{0%,to{opacity:1}50%{opacity:.25}}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}@media (max-width: 900px){.tiles{grid-template-columns:repeat(2,1fr)}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.tile-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.tile-icon svg{width:17px;height:17px}.tile.tone-blue .tile-icon{background:var(--accent-soft);color:var(--accent)}.tile.tone-green .tile-icon{background:var(--green-soft);color:var(--green)}.tile.tone-purple .tile-icon{background:var(--purple-soft);color:var(--purple)}.tile.tone-yellow .tile-icon{background:var(--yellow-soft);color:var(--yellow)}.tile-value{font-size:1.65rem;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile-label{color:var(--muted);font-size:.76rem;margin-top:3px}.call-panel{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:20px}.call-status{font-size:.82rem;color:var(--muted);padding-bottom:9px}.conn-chip{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--red);padding-bottom:9px}.conn-chip.on{color:var(--green)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.conn-chip.on .dot{box-shadow:0 0 0 3px #3fb95026}.feed{max-height:460px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.feed-row{display:flex;align-items:baseline;gap:10px;padding:5px 8px;border-radius:6px;font-size:.78rem}.feed-row:hover{background:#ffffff06}.feed-time{font-family:var(--mono);font-size:.69rem;color:var(--faint);flex-shrink:0}.feed-type{font-size:.66rem;font-weight:600;letter-spacing:.02em;padding:1px 7px;border-radius:5px;flex-shrink:0;background:#8b97a817;color:var(--muted)}.feed-detail{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:.72rem}.ev-dtmf .feed-type{background:var(--purple-soft);color:var(--purple)}.ev-answered .feed-type{background:var(--yellow-soft);color:var(--yellow)}.ev-destroyed .feed-type{background:#8b97a817;color:var(--faint)}.ev-collection_end .feed-type,.ev-enrollment .feed-type,.ev-card_ok .feed-type,.ev-expiry_ok .feed-type,.ev-pin_ok .feed-type{background:var(--accent-soft);color:var(--accent)}.ev-card_bad .feed-type,.ev-expiry_bad .feed-type,.ev-card_rejected .feed-type,.ev-expiry_rejected .feed-type,.ev-enroll_aborted .feed-type{background:var(--red-soft);color:var(--red)}.ev-phase .feed-type{background:var(--green-soft);color:var(--green)}.queue-stats{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:.78rem;color:var(--muted)}.queue-stats span{display:flex;align-items:center;gap:7px}.qdot{width:7px;height:7px;border-radius:50%;display:inline-block}.q-pending{background:var(--muted)}.q-dialing{background:var(--accent)}.q-done{background:var(--green)}.q-failed{background:var(--red)}.qdot.gray{background:var(--muted)}.qdot.yellow{background:var(--yellow)}.qdot.blue{background:var(--accent)}.qdot.green{background:var(--green)}.qdot.red{background:var(--red)}.muted{color:var(--muted);font-size:.85rem}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.toolbar.end{align-items:flex-end;margin-bottom:0}.player{margin-top:14px}.player audio{width:100%;height:40px}.form{display:flex;flex-direction:column;gap:10px;max-width:340px}.kv-list{max-width:460px}.kv{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.84rem}.kv:last-child{border-bottom:none}.kv span{color:var(--muted)}.kv b{font-weight:600}.kv b.ok{color:var(--green)}.switch-wrap{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch{position:relative;width:40px;height:23px;border-radius:999px;border:none;background:var(--border-strong);padding:0;cursor:pointer;transition:background .18s ease;flex-shrink:0}.switch.on{background:#238636}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch-thumb{position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform .18s ease;box-shadow:0 1px 3px #00000059}.switch.on .switch-thumb{transform:translate(17px)}.switch-label{font-size:.85rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#04070cb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fade-in .15s ease;padding:16px}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;padding:22px;width:420px;max-width:100%;box-shadow:0 24px 64px #0000008c;animation:rise-in .18s ease}.modal-title{font-size:1rem;font-weight:600;margin-bottom:8px}.modal-body{font-size:.85rem;color:var(--muted);white-space:pre-line;line-height:1.55}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{background:var(--surface);border:1px solid var(--border-strong);border-left:3px solid var(--green);border-radius:10px;padding:11px 15px;font-size:.82rem;min-width:220px;max-width:380px;box-shadow:0 12px 32px #00000073;animation:rise-in .18s ease}.toast.err{border-left-color:var(--red)}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}.modal.wide{width:680px;max-height:84vh;display:flex;flex-direction:column}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.detail-head .modal-title{margin:0;display:flex;align-items:center;gap:10px}.detail-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-top:12px}.detail-creds{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:.9rem;margin-top:8px}.modal-scroll{overflow-y:auto;margin-top:8px;flex:1;min-height:140px}.row-actions{display:flex;gap:2px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(640px 320px at 50% 18%,rgba(57,135,229,.13),transparent 70%),radial-gradient(520px 280px at 68% 85%,rgba(63,185,80,.07),transparent 70%),var(--bg);padding:20px}.login-card{position:relative;width:348px;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;padding:34px 28px 28px;display:flex;flex-direction:column;gap:12px;overflow:hidden;box-shadow:0 24px 64px #0006}.login-logo{width:40px;height:40px;border-radius:11px;margin:0 auto;background:linear-gradient(135deg,#3987e5,#1f6feb);display:grid;place-items:center;font-weight:700;color:#fff;font-size:1.05rem;box-shadow:0 6px 18px #3987e559}.login-card .glow{position:absolute;inset:-60% -60% auto;height:150px;background:radial-gradient(closest-side,rgba(57,135,229,.22),transparent);pointer-events:none}.login-card .brand{font-size:1.05rem;font-weight:700;letter-spacing:.18em;text-align:center}.login-card .tagline{text-align:center;color:var(--muted);font-size:.74rem;letter-spacing:.06em;margin-bottom:10px}.login-card input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:11px 13px;font:inherit;font-size:.88rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3987e529}.login-card button{margin-top:6px;height:40px;background:#238636;border:none;border-radius:var(--radius-sm);color:#fff;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s ease}.login-card button:hover:not(:disabled){background:#2ea043}.login-card button:disabled{opacity:.5;cursor:default}.login-card .error{color:var(--red);font-size:.78rem;text-align:center}
