:root{--bg: #0b0e14;--bg-raised: #121722;--bg-panel: #10151f;--bg-input: #0c1119;--bg-hover: #171d2b;--line: #212838;--line-soft: #1a2030;--text: #e6eaf2;--text-dim: #8b95ab;--text-faint: #5b6478;--accent: #ff2d78;--accent-dim: #a01a4c;--ok: #2ecc8f;--warn: #ffb020;--danger: #ff4d4f;--live: #35c1ff;--radius: 8px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, monospace;--sidebar-w: 208px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:1.3rem}h2{font-size:.95rem}h3{font-size:.85rem}h4{font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}p{margin:0 0 .5rem}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--bg-raised);color:var(--text);border-radius:var(--radius);padding:.45rem .8rem;transition:border-color .12s,background .12s,opacity .12s}button:hover:not(:disabled){border-color:#38425c;background:var(--bg-hover)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:#f48;border-color:#f48}button.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}button.ghost{background:transparent;border-color:transparent;color:var(--text-dim)}button.ghost:hover{color:var(--text);background:var(--bg-hover)}button.link{background:none;border:none;padding:0;color:var(--live);text-align:left;border-radius:0}button.link:hover{background:none;text-decoration:underline}button.link.strong{color:var(--text);font-weight:600}button.toggle.on{background:var(--warn);border-color:var(--warn);color:#1a1200;font-weight:600}input,select,textarea{font:inherit;background:var(--bg-input);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);padding:.45rem .6rem;width:100%}textarea{resize:vertical;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-dim);outline-offset:1px}input[type=checkbox]{width:auto;accent-color:var(--accent)}select{cursor:pointer}.muted{color:var(--text-dim)}.small{font-size:.8rem}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.strong{font-weight:600}.error,.danger-text{color:var(--danger)}.grow{flex:1}code{font-family:var(--mono);font-size:.85em}.brand{display:flex;align-items:center;gap:.7rem}.brand h1{font-size:1.25rem}.brand p{margin:0;color:var(--text-dim);font-size:.8rem}.brand-sm strong{font-size:.95rem}.brand-mark{width:22px;height:22px;border-radius:6px;flex:none;background:linear-gradient(135deg,var(--accent),#7b2dff);box-shadow:0 0 18px #ff2d7859}.signin{min-height:100%;display:grid;place-items:center;position:relative;overflow:hidden}.signin-art{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.signin-glow{position:absolute;top:-25%;left:50%;transform:translate(-50%);width:720px;height:720px;border-radius:50%;background:radial-gradient(circle,rgba(255,45,120,.16),transparent 62%)}.signin-card{position:relative;width:min(360px,92vw);background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;padding:1.75rem;display:flex;flex-direction:column;gap:.9rem}.signin-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-dim)}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100%}.sidebar{background:var(--bg-raised);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:1rem .7rem;gap:1.25rem;min-height:0}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{display:flex;align-items:center;gap:.65rem;background:none;border:none;border-radius:6px;padding:.5rem .65rem;color:var(--text-dim);text-align:left;width:100%;font-size:.88rem}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:#ff2d781f;color:var(--text);font-weight:600}.nav-item.active .icon{color:var(--accent)}.icon{width:17px;height:17px;flex:none}.sidebar-foot{display:flex;flex-direction:column;gap:.6rem;font-size:.8rem}.sys-health{display:flex;gap:.75rem}.health{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-faint);font-size:.75rem}.health-dot{width:6px;height:6px;border-radius:50%;background:var(--danger)}.health.up .health-dot{background:var(--ok)}.who-name{font-weight:600;color:var(--text)}.who-role{color:var(--text-faint);text-transform:capitalize;font-size:.75rem}.content{overflow-y:auto;min-height:0}.page{padding:1.25rem 1.5rem 3rem;max-width:1800px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.page-head p{margin:0;font-size:.85rem}.page-actions{display:flex;align-items:center;gap:.6rem}.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1.1rem}.tile{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .9rem}.tile-label{font-size:.72rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em}.tile-value{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:.15rem}.tile-sub{font-size:.75rem;color:var(--text-dim)}.tile.tone-ok .tile-value{color:var(--ok)}.tile.tone-warn .tile-value{color:var(--warn)}.tile.tone-danger .tile-value{color:var(--danger)}.tile.tone-live .tile-value{color:var(--live)}.panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;margin-bottom:1.1rem;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;border-bottom:1px solid var(--line-soft)}.panel-body{padding:.9rem}.panel-body>:last-child{margin-bottom:0}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;align-items:start}.dash-grid .panel{margin-bottom:0}.dash-grid .span-2{grid-column:1 / -1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th{text-align:left;font-weight:600;color:var(--text-faint);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding:.4rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:.5rem .6rem;border-bottom:1px solid var(--line-soft);vertical-align:top}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg-hover)}tr.row-danger td{background:#ff4d4f0f}.row-actions{white-space:nowrap;text-align:right}.empty{padding:2rem 1rem;text-align:center}.empty p{margin:0 0 .3rem}.pager{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.8rem;font-size:.82rem}.filter-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem;flex-wrap:wrap}.filter-bar input,.filter-bar select{width:auto;min-width:140px}.filter-bar input.grow{flex:1;min-width:200px}.filter-bar input[type=date]{min-width:130px}.range-picker{display:flex;align-items:center;gap:.4rem}.range-picker input{width:auto}.tabs{display:flex;gap:2px;margin-bottom:1rem;border-bottom:1px solid var(--line)}.tab{background:none;border:none;border-radius:0;border-bottom:2px solid transparent;color:var(--text-dim);padding:.5rem .9rem;text-transform:capitalize}.tab:hover{background:none;color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.badge{display:inline-block;padding:.1rem .45rem;border-radius:4px;font-size:.72rem;font-weight:600;letter-spacing:.02em;background:var(--bg-hover);color:var(--text-dim);border:1px solid var(--line);white-space:nowrap}.badge-ok{color:var(--ok);border-color:#2ecc8f59;background:#2ecc8f1a}.badge-warn{color:var(--warn);border-color:#ffb02059;background:#ffb0201a}.badge-danger{color:var(--danger);border-color:#ff4d4f66;background:#ff4d4f1a}.badge-live{color:var(--live);border-color:#35c1ff59;background:#35c1ff1a}.pill-toggle{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.25rem .7rem;font-size:.75rem;font-weight:600;color:var(--text-dim)}.pill-toggle .pill-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.pill-toggle.on{color:var(--ok);border-color:#2ecc8f66;background:#2ecc8f1a}.pill-toggle.on .pill-dot{animation:pulse 2s ease-in-out infinite}.notice{display:flex;align-items:center;gap:.8rem;padding:.55rem .9rem;border-radius:var(--radius);margin-bottom:.9rem;font-size:.85rem;border:1px solid transparent}.notice span{flex:1}.notice button{border:none;background:none;color:inherit;padding:0 .3rem;font-size:1.1rem}.notice-error{background:#ff4d4f1f;color:#ffb4b5;border-color:#ff4d4f40}.notice-warn{background:#ffb0201f;color:#ffdb9e;border-color:#ffb02040}.notice-success{background:#2ecc8f1f;color:#a7ebd0;border-color:#2ecc8f40}.notice-info{background:#35c1ff1a;color:#b9e4ff;border-color:#35c1ff38}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060bb8;display:grid;place-items:center;padding:2rem 1rem;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bg-raised);border:1px solid var(--line);border-radius:12px;width:min(560px,100%);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #0000008c}.modal-wide{width:min(940px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;border-bottom:1px solid var(--line-soft)}.modal-body{padding:1.1rem;overflow-y:auto}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.2rem;padding-top:.9rem;border-top:1px solid var(--line-soft)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-size:.78rem;color:var(--text-dim);text-transform:capitalize}.field-hint{font-size:.73rem;color:var(--text-faint)}.form-section{margin:1.3rem 0 .7rem;padding-bottom:.35rem;border-bottom:1px solid var(--line-soft);display:flex;align-items:baseline;gap:.6rem}.form-section-note{font-weight:400;font-size:.75rem;color:var(--text-faint)}.check-row{display:flex;gap:1.2rem;margin:.8rem 0;flex-wrap:wrap}.check-row.wrap{flex-direction:column;gap:.5rem}.check-row label{display:flex;align-items:center;gap:.45rem;font-size:.85rem;cursor:pointer}.inline-form{display:flex;gap:.5rem;margin-bottom:.9rem;align-items:center}.inline-form input,.inline-form select{width:auto;flex:1}.chip{padding:.25rem .6rem;font-size:.78rem;border-radius:999px;background:var(--bg-input);color:var(--text-dim)}.chip.on{background:#ff2d7824;border-color:var(--accent);color:var(--text)}.chip-row,.weekday-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.kv{display:grid;gap:.35rem 1rem;margin:0 0 .8rem}.kv>div{display:grid;grid-template-columns:120px 1fr;gap:.6rem}.kv.wide>div{grid-template-columns:160px 1fr}.kv dt{color:var(--text-faint);font-size:.8rem}.kv dd{margin:0;font-size:.85rem}.code-block{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem;font-family:var(--mono);font-size:.75rem;overflow-x:auto;white-space:pre;margin:0 0 .8rem;color:#c9d4e6}.code-block.hash{white-space:break-spaces;word-break:break-all}.scroll-box{max-height:300px;overflow-y:auto;border:1px solid var(--line-soft);border-radius:var(--radius)}.steps{display:flex;gap:.5rem;list-style:none;padding:0;margin:0 0 1.1rem;font-size:.78rem}.steps li{flex:1;padding:.4rem .6rem;border-radius:var(--radius);background:var(--bg-input);color:var(--text-faint);text-align:center;border:1px solid var(--line)}.steps li.on{border-color:var(--accent);color:var(--text);background:#ff2d781a}.steps li.done{color:var(--ok);border-color:#2ecc8f4d}.dropzone{border:2px dashed var(--line);border-radius:10px;padding:2.2rem 1rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:.35rem;transition:border-color .12s,background .12s}.dropzone:hover{border-color:var(--accent);background:#ff2d780a}.mapping-grid{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.6rem}.mapping-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:.7rem;align-items:center}.mapping-label{font-size:.82rem}.mapping-label .req{color:var(--accent)}.mapping-sample{font-family:var(--mono);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-table{margin:.8rem 0}.preview-table summary{cursor:pointer;font-size:.82rem;color:var(--text-dim)}.preview-table table{font-size:.75rem;margin-top:.5rem}.running{text-align:center;padding:2.5rem 1rem}.spinner{width:30px;height:30px;margin:0 auto 1rem;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chart{display:flex;flex-direction:column;gap:.4rem}.chart-svg{width:100%;height:200px;display:block}.chart-grid{stroke:var(--line-soft);stroke-width:1}.chart-axis{display:flex;justify-content:space-between;font-size:.68rem;color:var(--text-faint);font-family:var(--mono)}.chart-axis span{flex:1;text-align:center;overflow:hidden}.chart-legend{display:flex;gap:1rem;font-size:.75rem;color:var(--text-dim)}.chart-legend span{display:inline-flex;align-items:center;gap:.35rem}.chart-legend i{width:9px;height:9px;border-radius:2px}.bar-cell{position:relative;min-width:90px;height:16px;background:var(--bg-input);border-radius:3px;overflow:hidden}.bar-fill{position:absolute;inset:0 auto 0 0;background:#ff2d7859}.bar-text{position:relative;font-size:.72rem;padding-left:.35rem;line-height:16px}.mini-stats{display:flex;gap:1rem;font-size:.8rem;color:var(--text-dim);margin-bottom:.6rem}.mini-stats b{color:var(--text)}.agent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.agent-list li{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;align-items:center;font-size:.85rem}.agent-name{font-weight:600}.dialer-status{display:flex;align-items:center;gap:.9rem}.state-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .8rem;border-radius:999px;border:1px solid var(--line);font-weight:600;font-size:.85rem}.state-dot{width:9px;height:9px;border-radius:50%;background:currentColor}.state-ready{color:var(--ok);border-color:#2ecc8f66;background:#2ecc8f14}.state-talking{color:var(--live);border-color:#35c1ff66;background:#35c1ff14}.state-reserved,.state-ringing{color:var(--warn);border-color:#ffb02066;background:#ffb02014}.state-wrap{color:var(--accent);border-color:#ff2d7866;background:#ff2d7814}.state-paused,.state-logged_out{color:var(--text-dim)}.state-reserved .state-dot,.state-ringing .state-dot{animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.indicator{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-faint)}.indicator-dot{width:7px;height:7px;border-radius:50%;background:var(--danger)}.indicator.up .indicator-dot{background:var(--ok)}.dialer-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(320px,1.1fr) minmax(300px,1fr);gap:1rem;align-items:start}.dialer-grid .panel{margin-bottom:0}.idle{display:grid;place-items:center;min-height:180px}.live-call{display:flex;flex-direction:column;gap:1rem}.call-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.call-number{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.call-name{color:var(--text-dim)}.call-timer{font-family:var(--mono);font-size:1.25rem;color:var(--live);font-variant-numeric:tabular-nums}.call-actions{display:flex;gap:.6rem}.call-actions button{flex:1;padding:.7rem}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.keypad button{font-family:var(--mono);font-size:1rem;padding:.55rem}.dial-panel{display:flex;flex-direction:column;gap:.7rem}.manual-dial{display:flex;gap:.5rem}.manual-dial input{font-family:var(--mono)}.results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;max-height:260px;overflow-y:auto}.results button{width:100%;text-align:left;display:flex;flex-direction:column;gap:.1rem}.result-name{font-weight:600;font-size:.85rem}.result-meta{font-size:.75rem;color:var(--text-faint);font-family:var(--mono)}.pause-menu{position:relative}.pause-menu summary{list-style:none;cursor:pointer;padding:.45rem .8rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);font-size:.85rem}.pause-menu summary::-webkit-details-marker{display:none}.pause-menu ul{position:absolute;right:0;z-index:10;margin:.3rem 0 0;padding:.3rem;list-style:none;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);min-width:150px;box-shadow:0 12px 32px #00000080}.pause-menu li button{width:100%;text-align:left;border:none;background:none}.disposition-panel{display:flex;flex-direction:column;gap:.7rem}.disposition-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem}.disposition{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.65rem;text-align:left}.disposition-code{font-family:var(--mono);font-size:.68rem;color:var(--text-faint);letter-spacing:.06em}.disposition-label{font-weight:600;font-size:.85rem}.disposition.contact{border-color:#2ecc8f59}.disposition.dnc{border-color:#ff4d4f80;background:#ff4d4f14}.lead-workspace{display:flex;flex-direction:column;gap:.8rem}.lead-workspace h4{margin-top:.3rem}.script{background:var(--bg-input);border-left:3px solid var(--accent);padding:.7rem .9rem;border-radius:0 var(--radius) var(--radius) 0}.script h4{margin-bottom:.3rem}.script p{margin:0;font-size:.9rem;line-height:1.5}.lead-meta{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:.85rem;margin-bottom:.8rem}.lead-meta b{color:var(--text-faint);font-weight:500;margin-right:.35rem;font-size:.78rem}.campaign-list{list-style:none;margin:0 0 .9rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.campaign{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.8rem;text-align:left;background:var(--bg-input)}.campaign.selected{border-color:var(--accent);background:#ff2d781a}.campaign-name{font-weight:600;flex:1}@media(prefers-reduced-motion:reduce){*,.state-dot,.pill-dot,.spinner{animation:none!important;transition:none!important}}@media(max-width:1400px){.dialer-grid{grid-template-columns:1fr 1fr}.dialer-lead{grid-column:1 / -1}}@media(max-width:1100px){.dash-grid,.dialer-grid{grid-template-columns:1fr}}@media(max-width:800px){.shell{grid-template-columns:64px 1fr}.nav-item span,.sidebar .brand strong,.who,.sys-health{display:none}.nav-item{justify-content:center}}
