:root{--bg: #0f1217;--panel: #171c24;--panel2: #1e242e;--border: #2a323d;--text: #e6e9ee;--muted: #8b95a3;--accent: #4f9cff;--ok: #2ecc71;--warn: #f0a73a;--bad: #ff5d5d;--mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}.app{max-width:1100px;margin:0 auto;padding:0 20px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:24px;position:sticky;top:0;background:var(--bg);z-index:5}.brand{display:flex;align-items:center;gap:12px}.logo{font-size:28px}.brand h1{margin:0;font-size:18px}.tagline{margin:2px 0 0;color:var(--muted);font-size:12px}.tabs{display:flex;gap:6px}.tab{background:transparent;border:1px solid var(--border);color:var(--muted);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span2{grid-column:1 / -1}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px 20px}.card h2{margin:0 0 4px;font-size:15px}.card h3{margin:18px 0 6px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.card-head{display:flex;align-items:center;justify-content:space-between}.callout{background:var(--panel2);border-color:var(--warn)}label{display:block;margin:12px 0 4px;font-size:12px;color:var(--muted)}input,select,textarea{width:100%;background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px;font-size:13px;font-family:inherit}textarea{resize:vertical}input.mono,.mono{font-family:var(--mono)}.row{display:flex;gap:8px;align-items:center;margin-top:14px}.row input{flex:1}button{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.link{background:none;border:none;color:var(--accent);padding:2px 4px}button.link.danger,.danger-text{color:var(--bad)}.muted{color:var(--muted)}.small{font-size:12px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.pill.ok{background:#2ecc7126;color:var(--ok)}.pill.bad{background:#ff5d5d26;color:var(--bad)}.pill.warn{background:#f0a73a26;color:var(--warn)}.pill.muted{background:#8b95a326;color:var(--muted)}.integration-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.integration-row:last-of-type{border-bottom:none}.integration-row p{margin:2px 0 0;font-size:12px}.maptable{width:100%;border-collapse:collapse;margin-top:8px}.maptable th{text-align:left;font-size:11px;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border);text-transform:uppercase}.maptable td{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}.maptable .addrow td{background:var(--panel2)}.maptable .addrow input,.maptable .addrow select{margin-bottom:4px}.row-disabled{opacity:.5}.breaker-cell{display:inline-flex;align-items:center;gap:8px}.ellipsis{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eventlog{list-style:none;margin:0;padding:0;max-height:360px;overflow-y:auto}.ev{display:flex;gap:10px;align-items:baseline;padding:6px 4px;border-bottom:1px solid var(--border);font-size:13px}.ev-time{color:var(--muted);font-family:var(--mono);font-size:11px;min-width:72px}.ev-tag{font-family:var(--mono);font-size:11px;min-width:64px}.tag-teams_inbound,.tag-teams_outbound{color:#7aa2ff}.tag-sms_inbound,.tag-sms_outbound{color:#5ed1a0}.tag-error{color:var(--bad)}.tag-info{color:var(--muted)}.ev-text{color:var(--muted);font-style:italic}.outbox{list-style:none;margin:0;padding:0}.outbox li{display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--panel2);border-radius:8px;margin-bottom:6px}@media (max-width: 760px){.grid{grid-template-columns:1fr}.topbar{flex-direction:column;gap:12px;align-items:flex-start}}
