*{box-sizing:border-box}body{margin:0;font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1d2430;background:#f3f5f8}
.banner{background:#b45309;color:#fff;text-align:center;font-weight:700;font-size:12px;padding:4px 8px;letter-spacing:.3px;position:sticky;top:0;z-index:20}
header{display:flex;align-items:center;gap:16px;background:#14213d;color:#fff;padding:8px 16px;flex-wrap:wrap;position:sticky;top:22px;z-index:19}
.brand{font-weight:800;font-size:16px}.brand span{font-weight:400;opacity:.7}
nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}nav a{color:#cfd8ea;text-decoration:none;padding:6px 10px;border-radius:6px}nav a.on,nav a:hover{background:#2b3d66;color:#fff}
.who{font-size:12px;opacity:.9}button.link{background:none;border:0;color:#9ecbff;cursor:pointer;padding:0}
main{padding:16px;max-width:1400px;margin:0 auto}
h1{font-size:20px;margin:4px 0 12px}h2{font-size:16px;margin:18px 0 8px}h3{font-size:14px;margin:12px 0 6px}
.card{background:#fff;border:1px solid #dde3ec;border-radius:10px;padding:12px;margin-bottom:12px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grow{flex:1}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #c6cfdb;border-radius:7px;background:#fff;max-width:100%}textarea{width:100%;min-height:70px}
button,.btn{font:inherit;padding:7px 12px;border-radius:7px;border:1px solid #2f5bd3;background:#2f5bd3;color:#fff;cursor:pointer}
button.sec{background:#fff;color:#2f5bd3}button.sm{padding:3px 8px;font-size:12px}button:disabled{opacity:.5}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid #eef1f5;vertical-align:top}th{font-size:12px;color:#5b6576;font-weight:600;background:#f8fafc;position:sticky;top:0}
tr.click{cursor:pointer}tr.click:hover{background:#f3f7ff}.tablewrap{overflow:auto;max-height:70vh}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;background:#eef1f5;white-space:nowrap}
.st-new{background:#fee2e2;color:#991b1b}.st-contacted{background:#e0f2fe;color:#075985}.st-appointment{background:#ede9fe;color:#5b21b6}.st-shown{background:#fef3c7;color:#92400e}.st-sold{background:#dcfce7;color:#166534}.st-lost{background:#e5e7eb;color:#4b5563}
.loc{font-weight:700;font-size:11px;padding:1px 6px;border-radius:4px;color:#fff}.loc-FM{background:#c8102e}.loc-WC{background:#7c3aed}.loc-HL{background:#0f766e}.loc-LC{background:#1d4ed8}
.timer{font-variant-numeric:tabular-nums;font-weight:700}.late{color:#b91c1c}.ok{color:#15803d}.muted{color:#6b7280;font-size:12px}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.kpi{background:#fff;border:1px solid #dde3ec;border-radius:10px;padding:10px}.kpi b{display:block;font-size:22px}.kpi span{font-size:12px;color:#5b6576}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.bars{display:flex;align-items:flex-end;gap:3px;height:160px;padding-top:10px;overflow-x:auto}.bar{display:flex;flex-direction:column-reverse;min-width:18px;flex:1}.bar div{width:100%}.bar small{font-size:9px;color:#6b7280;text-align:center;writing-mode:vertical-rl;transform:rotate(180deg);height:34px}
.legend{display:flex;gap:10px;font-size:12px;flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
.hbar{height:10px;background:#2f5bd3;border-radius:3px}
.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:3px solid #dde3ec;padding:4px 10px;margin-left:4px}.timeline li.t-call_in_answered,.timeline li.t-call_out_connected{border-color:#16a34a}.timeline li.t-call_in_missed,.timeline li.t-call_out_attempt{border-color:#dc2626}.timeline li.t-stage{border-color:#7c3aed}.timeline li.t-duplicate{border-color:#f59e0b}
.stagebar{display:flex;gap:4px;flex-wrap:wrap}.stagebar button{background:#fff;color:#1d2430;border-color:#c6cfdb}.stagebar button.on{background:#14213d;color:#fff}
.login{max-width:360px;margin:60px auto}.login input{width:100%;margin-bottom:8px}
pre{background:#0f172a;color:#e2e8f0;padding:10px;border-radius:8px;overflow:auto;font-size:12px;max-height:340px}
.err{color:#b91c1c}.toast{position:fixed;bottom:16px;right:16px;background:#14213d;color:#fff;padding:10px 14px;border-radius:8px;z-index:50}
@media(max-width:700px){main{padding:10px}header{top:22px;gap:6px}.hide-m{display:none}td,th{padding:5px}nav a{padding:5px 7px}}
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:10px 0 8px;border-bottom:2px solid #dde3ec}.tabs a{padding:6px 10px;text-decoration:none;color:#2f5bd3;border-radius:6px 6px 0 0}.tabs a.on{background:#14213d;color:#fff}
.sheet{max-height:72vh}table.grid{font-size:12.5px;width:max-content;min-width:100%}table.grid td,table.grid th{border:1px solid #e3e8ef;padding:3px 6px;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}
table.grid th{position:sticky;top:0;z-index:2;background:#eef2f7}table.grid th.pend{background:#fff7ed;color:#9a3412}table.grid th small{color:#7c3aed;font-weight:400}
table.grid td.ed{cursor:cell}table.grid td.ed:hover{outline:2px solid #93c5fd;outline-offset:-2px}table.grid td.rd{color:#4b5563}table.grid td.t-money,table.grid td.t-num{text-align:right;font-variant-numeric:tabular-nums}
table.grid td input,table.grid td select{padding:2px 4px;font-size:12px;width:100%;min-width:90px}table.grid .cc{position:sticky;left:0;background:inherit;z-index:1;min-width:70px}table.grid th.cc{z-index:3}
.csel{width:58px;font-size:11px;padding:1px 2px}.cdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:3px;border:1px solid #9ca3af}
.pill.tag{background:#e0e7ff;color:#3730a3;font-size:11px}a.lk{color:#2f5bd3}a.btn{text-decoration:none;display:inline-block}label.btn{display:inline-block}
.kpi.good{border-left:4px solid #16a34a}.kpi.warn{border-left:4px solid #f59e0b}.kpi.bad{border-left:4px solid #dc2626}.kpi small{color:#6b7280;font-size:11px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.formgrid label{font-size:12px;color:#5b6576;display:flex;flex-direction:column;gap:2px}.formgrid .span2{grid-column:span 2}
@media(max-width:700px){.formgrid{grid-template-columns:1fr}.formgrid .span2{grid-column:span 1}.kpis{grid-template-columns:repeat(2,1fr)}.kpi b{font-size:18px}}
