:root{--bg:#e9eaec;--card:#fff;--ink:#1a1a1a;--mute:#6b6f76;--line:#d4d6da;--brand:#f37021;--black:#121212;
--ok:#15803d;--okbg:#dcfce7;--miss:#b91c1c;--missbg:#fee2e2;--busy:#b45309;--busybg:#fef3c7;
--vm:#6d28d9;--vmbg:#ede9fe;--fail:#4b5563;--failbg:#e5e7eb}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,Segoe UI,Arial,sans-serif}
header{background:var(--black);color:#fff;padding:14px 24px;border-bottom:4px solid var(--brand);display:flex;align-items:center;gap:18px;flex-wrap:wrap}
header img{height:54px;display:block}
header h1{margin:0;font-size:22px} header p{margin:2px 0 0;color:#b8bcc2;font-size:14px}
header .grow{flex:1}
header .btn{background:transparent;color:#fff;border-color:#555}
main{max-width:1200px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
button,select,input{font:inherit;color:inherit}
.btn{border:1px solid var(--line);background:var(--card);padding:8px 14px;border-radius:8px;cursor:pointer}
.btn:hover{border-color:var(--brand)}
.btn:disabled{opacity:.5;cursor:default}
.btn.on,.btn.primary{background:var(--brand);border-color:var(--brand);color:#000;font-weight:600}
.btn.danger{color:var(--miss)} .btn.danger:hover{border-color:var(--miss)}
.btn.small{padding:4px 10px;font-size:13px}
input[type=date],input[type=search],input[type=text],input[type=password],input[type=url],select{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:8px}
input[type=search]{min-width:230px;flex:1}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--brand);border-radius:12px;padding:12px 14px}
.stat b{display:block;font-size:28px;line-height:1.2} .stat span{color:var(--mute);font-size:13px}
.stat.ok{border-left-color:var(--ok)} .stat.miss{border-left-color:var(--miss)}
.stat.busy{border-left-color:var(--busy)} .stat.vm{border-left-color:var(--vm)}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
.charts h3,.card h3{margin:0 0 10px;font-size:15px}
.bars{display:flex;align-items:flex-end;gap:3px;height:140px;border-bottom:1px solid var(--line)}
.col{flex:1;display:flex;flex-direction:column-reverse;min-width:3px}
.col i{display:block;width:100%}
.lbls{display:flex;gap:3px;font-size:11px;color:var(--mute);margin-top:3px}
.lbls div{flex:1;text-align:center;overflow:hidden}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--mute)}
.dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--black);padding:9px 8px;border-bottom:3px solid var(--brand);white-space:nowrap}
th.sort{cursor:pointer}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
tr.row{cursor:pointer} tr.row:hover td{background:var(--bg)}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:600;font-size:13px}
.s-Answered,.s-on{background:var(--okbg);color:var(--ok)} .s-Missed,.s-off{background:var(--missbg);color:var(--miss)}
.s-Busy{background:var(--busybg);color:var(--busy)} .s-Voicemail{background:var(--vmbg);color:var(--vm)}
.s-Failed,.s-Unknown{background:var(--failbg);color:var(--fail)}
.dir{font-weight:600;white-space:nowrap}
.msg{padding:14px;border-radius:10px;margin-bottom:16px}
.msg.err{background:var(--missbg);color:var(--miss)} .msg.warn{background:var(--busybg);color:var(--busy)} .msg.ok{background:var(--okbg);color:var(--ok)}
.pager{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:12px}
.empty{text-align:center;color:var(--mute);padding:30px}
.spin{text-align:center;padding:40px;color:var(--mute)}
.mute{color:var(--mute)} .small{font-size:13px}
.who small{display:block;color:var(--mute)}
.num{cursor:copy;border-bottom:1px dotted var(--mute)} .num.edit{cursor:pointer;border-bottom-color:var(--brand)}
.detail td{background:var(--bg);font-size:14px} .detail dl{display:grid;grid-template-columns:150px 1fr;gap:4px 12px;margin:6px 0}
.detail dt{color:var(--mute)} .detail dd{margin:0}
.tabs{display:flex;gap:6px;margin-bottom:16px}
/* login + modal + forms */
.login{max-width:380px;margin:60px auto}
.login h2{margin-top:0}
label{display:block;font-size:13px;color:var(--mute);margin:12px 0 4px}
.login input,.form input,.form select{width:100%}
.login .btn{width:100%;margin-top:18px;padding:10px}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;overflow:auto;z-index:10}
.modal{background:var(--card);border-radius:14px;padding:22px;width:100%;max-width:520px;border-top:5px solid var(--brand)}
.modal h3{margin:0 0 6px;font-size:18px}
.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check{display:flex;gap:8px;align-items:center;margin-top:14px;color:var(--ink);font-size:14px} .check input{width:auto}
.hint{font-size:12px;color:var(--mute);margin-top:3px}
.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0}
.usage-grid div{background:var(--bg);border-radius:8px;padding:8px 10px;font-size:13px;color:var(--mute)}
.usage-grid b{display:block;color:var(--ink);font-size:17px}
.spark{display:flex;align-items:flex-end;gap:2px;height:40px}
.spark i{flex:1;background:var(--brand);min-height:1px;border-radius:1px}
.branch{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
@media print{header,.bar,.pager,.noprint{display:none!important} body{background:#fff}}
@media(max-width:700px){.hide-sm{display:none}.row2{grid-template-columns:1fr}}
