:root{--exp-green: #84bd00;--exp-green-600: #6fa000;--exp-green-050: #f2f8e3;--exp-ink: #0b0e14;--exp-slate: #3b4453;--exp-mist: #6b7686;--amelia-violet: #6d28d9;--amelia-violet-2: #9333ea;--amelia-violet-050: #f3eefe;--experis-blue: #1100ff;--experis-blue-deep: #0a0091;--experis-blue-tint: #4d6bff;--sh-purple: #a566e4;--sh-purple-deep: #4e0d90;--surface: #ffffff;--canvas: #f6f8fb;--border: #e4e9f0;--border-strong: #d4dae4;--console-bg: #0e1420;--console-panel: #141c2b;--console-text: #cdd6e4;--console-green: #9de24a;--console-cyan: #7cf0ff;--console-amber: #ffcf6b;--console-red: #ff8080;--console-violet: #c4a6ff;--ok: #2f9e44;--warn: #d9770699;--warn-solid: #b7791f;--danger: #d64545;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);--shadow-md: 0 4px 16px rgba(15, 23, 42, .08);--shadow-lg: 0 18px 48px rgba(11, 14, 20, .18);--radius: 14px;--radius-sm: 10px;--radius-lg: 22px;--font-ui: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--exp-ink);background:var(--canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,.u-head{font-family:var(--font-ui);letter-spacing:-.02em}a{color:var(--amelia-violet);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-ui);cursor:pointer}input,select,textarea{font-family:var(--font-body)}::selection{background:var(--exp-green);color:var(--exp-ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:700;font-size:14px;padding:11px 18px;line-height:1;transition:transform .05s ease,background .15s ease,box-shadow .15s ease,border-color .15s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--exp-green);color:var(--exp-ink);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--exp-green-600)}.btn-dark{background:var(--exp-ink);color:#fff}.btn-dark:hover:not(:disabled){background:#1a2130}.btn-brand{background:linear-gradient(100deg,var(--experis-blue) 0%,#6a1fd0 55%,var(--sh-purple) 100%);color:#fff;box-shadow:0 6px 18px #1100ff47}.btn-brand:hover:not(:disabled){filter:brightness(1.08)}.btn-brand .spin{border-color:#fff6;border-top-color:#fff}.btn-ghost{background:transparent;color:var(--exp-slate);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:#fff;border-color:var(--exp-mist)}.btn-lg{padding:14px 24px;font-size:15px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:7px}.field label{font-family:var(--font-ui);font-size:12.5px;font-weight:700;color:var(--exp-slate);letter-spacing:.01em}.field .hint{font-size:12px;color:var(--exp-mist)}.input{width:100%;background:#fff;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:12px 14px;font-size:14.5px;color:var(--exp-ink);transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder{color:#aab3c0}.input:focus{outline:none;border-color:var(--amelia-violet);box-shadow:0 0 0 4px var(--amelia-violet-050)}.input.error{border-color:var(--danger)}.field-err{color:var(--danger);font-size:12px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:26px}.eyebrow{font-family:var(--font-ui);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--amelia-violet)}.muted{color:var(--exp-mist)}.mono{font-family:var(--font-mono)}.divider{height:1px;background:var(--border);border:0}.spin{width:15px;height:15px;border:2px solid rgba(11,14,20,.25);border-top-color:var(--exp-ink);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.login{min-height:100%;display:grid;grid-template-columns:1.05fr .95fr}.login-hero{position:relative;background:radial-gradient(1200px 600px at 20% -10%,#1c2436,#0b0e14 55%);color:#fff;padding:56px 56px 40px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.login-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(620px 320px at 82% 112%,rgba(17,0,255,.28),transparent 60%),radial-gradient(520px 280px at 112% 8%,rgba(165,102,228,.28),transparent 62%);pointer-events:none}.login-hero>*{position:relative;z-index:1}.login-hero h1{font-size:40px;font-weight:800;line-height:1.08;margin-top:22px}.login-hero h1 .accent{background:linear-gradient(100deg,var(--experis-blue-tint) 0%,var(--sh-purple) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.login-hero p.lede{color:#aeb8c8;font-size:15.5px;max-width:440px;margin-top:16px;line-height:1.55}.login-hero .hero-points{display:flex;flex-direction:column;gap:12px;margin-top:30px}.login-hero .hero-point{display:flex;align-items:center;gap:12px;color:#cfd8e6;font-size:14px}.login-hero .hero-dot{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#84bd0024;color:var(--exp-green);flex-shrink:0}.login-hero .hero-foot{color:#6b7686;font-size:12px;letter-spacing:.04em}.login-hero .hero-copy{margin:auto 0}.login-form-wrap{display:grid;place-items:center;padding:40px;background:var(--surface)}.login-form{width:100%;max-width:380px}.login-form h2{font-size:24px;font-weight:800}.login-form .sub{color:var(--exp-mist);font-size:14px;margin-top:6px;margin-bottom:26px}.login-form .field+.field{margin-top:16px}.login-form .btn{margin-top:24px}.login-note{margin-top:20px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--amelia-violet-050);border:1px solid #e6dcff;font-size:12.5px;color:#5b3ba8}.login-note code{font-family:var(--font-mono);font-weight:600}.login-error{margin-top:16px;color:var(--danger);font-size:13px;font-weight:600}@media (max-width: 860px){.login{grid-template-columns:1fr}.login-hero{display:none}}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{height:64px;background:var(--exp-ink);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.topbar .brand{display:flex;align-items:center;gap:12px}.topbar .brand .wordmark{font-family:var(--font-ui);font-weight:800;font-size:17px;letter-spacing:-.01em}.topbar .brand .wordmark .thin{font-weight:500;color:#aeb8c8}.topbar .env-badge{font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--exp-green);border:1px solid rgba(132,189,0,.4);border-radius:999px;padding:3px 9px;margin-left:6px}.topbar .user{display:flex;align-items:center;gap:14px;font-size:13.5px;color:#cfd8e6}.topbar .avatar{width:30px;height:30px;border-radius:50%;background:var(--amelia-violet);color:#fff;display:grid;place-items:center;font-family:var(--font-ui);font-weight:700;font-size:13px}.link-btn{background:none;border:none;color:#aeb8c8;font-size:13px;font-weight:600}.link-btn:hover{color:#fff}.tabs{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;display:flex;gap:4px;position:sticky;top:64px;z-index:15}.tab{background:none;border:none;padding:15px 16px 13px;font-family:var(--font-ui);font-weight:700;font-size:14px;color:var(--exp-mist);border-bottom:2.5px solid transparent;display:flex;align-items:center;gap:8px}.tab:hover{color:var(--exp-slate)}.tab.active{color:var(--exp-ink);border-bottom-color:var(--exp-green)}.tab .tab-badge{background:var(--amelia-violet);color:#fff;border-radius:999px;font-size:10px;padding:1px 6px;font-weight:700}.main{flex:1;padding:32px 24px 60px}.container{max-width:1120px;margin:0 auto}.page-head{margin-bottom:24px}.page-head h2{font-size:22px;font-weight:800}.page-head p{color:var(--exp-mist);font-size:14px;margin-top:4px}.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:start}@media (max-width: 900px){.grid-2{grid-template-columns:1fr}}.grid-convo{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}@media (max-width: 1040px){.grid-convo{grid-template-columns:1fr}}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .col-span-2{grid-column:1 / -1}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}}.form-section-label{grid-column:1 / -1;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--exp-slate);margin:4px 0 -6px;display:flex;align-items:center;gap:10px}.form-section-label:after{content:"";flex:1;height:1px;background:var(--line, #e4e9f0)}.form-section-label:first-child{margin-top:0}label .opt{font-weight:500;font-size:11px;color:var(--exp-slate);text-transform:none;letter-spacing:0;opacity:.7}.form-actions{display:flex;align-items:center;gap:12px;margin-top:22px}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--exp-slate);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{width:16px;height:16px;accent-color:var(--amelia-violet)}.side-card h3{font-size:15px;font-weight:800;margin-bottom:4px}.side-card .step{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.side-card .step:first-of-type{border-top:none}.side-card .step .n{width:24px;height:24px;flex-shrink:0;border-radius:8px;background:var(--exp-green-050);color:var(--exp-green-600);display:grid;place-items:center;font-family:var(--font-ui);font-weight:800;font-size:12px}.side-card .step .t{font-size:13px;color:var(--exp-slate);line-height:1.45}.side-card .step .t b{color:var(--exp-ink)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:40px 24px;text-align:center;background:#fbfcfe;transition:all .15s ease;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--exp-green);background:var(--exp-green-050)}.dropzone .dz-icon{width:48px;height:48px;margin:0 auto 12px;border-radius:14px;background:var(--exp-ink);color:var(--exp-green);display:grid;place-items:center}.dropzone h3{font-size:16px;font-weight:800}.dropzone p{color:var(--exp-mist);font-size:13px;margin-top:4px}.dropzone .browse{color:var(--amelia-violet);font-weight:700}.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}table.tbl th{text-align:left;font-family:var(--font-ui);font-weight:700;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--exp-mist);background:#f8fafc;padding:11px 14px;border-bottom:1px solid var(--border);position:sticky;top:0}table.tbl td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--exp-slate);white-space:nowrap}table.tbl tr:last-child td{border-bottom:none}table.tbl tr.row-bad td{background:#fff5f5}table.tbl .cell-name{color:var(--exp-ink);font-weight:600}table.tbl .rownum{color:#aab3c0;font-variant-numeric:tabular-nums}.upload-summary{display:flex;gap:20px;flex-wrap:wrap;margin:16px 0}.stat{display:flex;flex-direction:column;gap:2px}.stat .v{font-family:var(--font-ui);font-size:22px;font-weight:800}.stat .l{font-size:12px;color:var(--exp-mist);font-weight:600}.stat.ok .v{color:var(--exp-green-600)}.stat.bad .v{color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.pill .dot{width:7px;height:7px;border-radius:50%}.pill.live .dot{animation:pulse 1.1s ease-in-out infinite}.pill-neutral{background:#f1f4f9;color:var(--exp-slate);border-color:var(--border)}.pill-neutral .dot{background:var(--exp-mist)}.pill-info{background:#eef4ff;color:#2f5fd0;border-color:#d7e4ff}.pill-info .dot{background:#2f5fd0}.pill-live{background:var(--amelia-violet-050);color:#6d28d9;border-color:#e2d6ff}.pill-live .dot{background:var(--amelia-violet)}.pill-ok{background:var(--exp-green-050);color:var(--exp-green-600);border-color:#dcecb5}.pill-ok .dot{background:var(--exp-green)}.pill-warn{background:#fff7e6;color:var(--warn-solid);border-color:#ffe6b3}.pill-warn .dot{background:var(--warn-solid)}.pill-danger{background:#fff0f0;color:var(--danger);border-color:#ffd6d6}.pill-danger .dot{background:var(--danger)}.console{background:var(--console-bg);border-radius:var(--radius);border:1px solid #1e2838;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-md)}.console-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--console-panel);border-bottom:1px solid #1e2838}.console-head .dots{display:flex;gap:6px}.console-head .dots i{width:11px;height:11px;border-radius:50%;display:inline-block}.console-head .title{color:#8895ab;font-family:var(--font-mono);font-size:12px;margin-left:10px}.console-head .tools{display:flex;align-items:center;gap:12px}.console-conn{font-family:var(--font-mono);font-size:11px;color:#6b7686;display:inline-flex;align-items:center;gap:6px}.console-conn .dot{width:7px;height:7px;border-radius:50%;background:#6b7686}.console-conn.up .dot{background:var(--console-green);animation:pulse 1.4s ease-in-out infinite}.console-conn.up{color:var(--console-green)}.console-clear{background:none;border:1px solid #2a3547;color:#8895ab;border-radius:8px;font-size:11px;padding:5px 10px;font-family:var(--font-mono)}.console-clear:hover{color:#cdd6e4;border-color:#3a475d}.console-body{flex:1;overflow-y:auto;padding:14px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.7}.console-body.tall{height:560px}.console-body.short{height:320px}.log-line{display:flex;gap:12px;padding:1px 0}.log-line .lt{color:#5a6678;flex-shrink:0}.log-line .lp{color:#7b88a0;flex-shrink:0;width:92px}.log-line .lm{color:var(--console-text);word-break:break-word}.log-line.l-success .lm{color:var(--console-green)}.log-line.l-info .lm{color:var(--console-text)}.log-line.l-warn .lm{color:var(--console-amber)}.log-line.l-error .lm{color:var(--console-red)}.log-line.l-amd .lm{color:var(--console-violet)}.console-empty{color:#5a6678;font-family:var(--font-mono);font-size:12.5px;padding:20px 0;text-align:center}.callgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:20px}.callcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;box-shadow:var(--shadow-sm)}.callcard .cc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.callcard .cc-name{font-family:var(--font-ui);font-weight:700;font-size:14px}.callcard .cc-meta{color:var(--exp-mist);font-size:12px;margin-top:5px}.callcard .cc-phone{font-family:var(--font-mono);font-size:12px;color:var(--exp-slate);margin-top:8px}.callcard .cc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:11.5px;color:var(--exp-mist)}.empty-state{text-align:center;padding:46px 20px;color:var(--exp-mist)}.empty-state .es-icon{width:54px;height:54px;margin:0 auto 14px;border-radius:16px;background:var(--exp-green-050);color:var(--exp-green-600);display:grid;place-items:center}.empty-state h3{color:var(--exp-slate);font-size:16px;font-weight:700}.empty-state p{font-size:13.5px;margin-top:5px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--exp-ink);color:#fff;padding:12px 20px;border-radius:999px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);z-index:50;display:flex;align-items:center;gap:10px}.toast .tdot{width:8px;height:8px;border-radius:50%;background:var(--exp-green)}.dialer-status{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-size:13px}.dialer-status .ds-dot{width:9px;height:9px;border-radius:50%;background:var(--exp-mist);flex-shrink:0}.dialer-status .ds-dot.on{background:var(--exp-green, #22c55e);animation:pulse 1.4s ease-in-out infinite}.dialer-status .ds-label{font-family:var(--font-ui);font-weight:700;color:var(--exp-slate);flex-shrink:0}.dialer-status .ds-active{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--sh-purple-deep);background:#a566e41f;border:1px solid rgba(165,102,228,.25);padding:2px 8px;border-radius:999px;flex-shrink:0}.dialer-status .ds-sep{width:1px;align-self:stretch;background:var(--border);margin:2px;flex-shrink:0}.dialer-status .ds-msg{font-family:var(--font-mono);font-size:12px;color:var(--exp-slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dialer-status .ds-msg.l-success{color:var(--exp-green-600, #16a34a)}.dialer-status .ds-msg.l-warn{color:#b45309}.dialer-status .ds-msg.l-error{color:#dc2626}.dialer-status .ds-msg.l-amd{color:var(--amelia-violet)}.convo{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden}.convo-head{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--border);background:linear-gradient(100deg,#1100ff0d,#a566e412)}.convo-title{font-family:var(--font-ui);font-weight:700;font-size:14px;color:var(--exp-ink);display:inline-flex;align-items:center;gap:9px}.convo-mic{font-size:14px;filter:saturate(.9)}.convo-status{font-family:var(--font-mono);font-size:11px;color:var(--exp-mist);display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.06em}.convo-status .dot{width:7px;height:7px;border-radius:50%;background:var(--exp-mist)}.convo-status.on{color:var(--sh-purple-deep)}.convo-status.on .dot{background:var(--sh-purple);animation:pulse 1.3s ease-in-out infinite}.convo-body{overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:radial-gradient(600px 300px at 100% 0%,rgba(165,102,228,.05),transparent 60%),radial-gradient(600px 300px at 0% 100%,rgba(17,0,255,.04),transparent 60%)}.convo-body.tall{height:460px}.convo-body.short{height:300px}.bubble-row{display:flex}.bubble-row.left{justify-content:flex-start}.bubble-row.right{justify-content:flex-end}.bubble{max-width:76%;padding:9px 13px 10px;border-radius:15px;box-shadow:var(--shadow-sm);animation:bubble-in .22s ease}.bubble-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}.bubble-meta .who{font-family:var(--font-ui);font-weight:700;font-size:11.5px;letter-spacing:.02em}.bubble-meta .when{font-family:var(--font-mono);font-size:10px;opacity:.6}.bubble-text{font-size:13.5px;line-height:1.5;word-break:break-word}.bubble.b-agent{background:var(--amelia-violet-050);border:1px solid rgba(109,40,217,.18);border-bottom-left-radius:5px;color:var(--exp-ink)}.bubble.b-agent .who{color:var(--amelia-violet)}.bubble.b-caller{background:#eef2ff;border:1px solid rgba(17,0,255,.16);border-bottom-right-radius:5px;color:var(--exp-ink)}.bubble.b-caller .who{color:var(--experis-blue-deep)}.bubble.b-system{background:var(--surface-2, #f4f6fa);border:1px dashed var(--border);color:var(--exp-mist)}.bubble.b-system .who{color:var(--exp-mist)}.bubble.partial{opacity:.82}.bubble.partial .bubble-text{color:var(--exp-slate);font-style:italic}.typing{display:inline-flex;align-items:center;gap:3px;margin-left:7px;vertical-align:middle}.typing i{width:5px;height:5px;border-radius:50%;background:var(--sh-purple);display:inline-block;animation:typing-bounce 1.25s infinite ease-in-out both}.typing i:nth-child(2){animation-delay:.16s}.typing i:nth-child(3){animation-delay:.32s}@keyframes typing-bounce{0%,75%,to{transform:translateY(0);opacity:.35}35%{transform:translateY(-3px);opacity:.95}}.convo-empty{margin:auto;text-align:center;max-width:340px;color:var(--exp-mist);font-size:13px;line-height:1.6}.convo-empty-icon{font-size:30px;margin-bottom:10px;opacity:.7}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
