:root{--bg: #f4f6f9;--panel: #ffffff;--ink: #1d2733;--muted: #6b7684;--line: #dde3ea;--brand: #0b5cad;--brand-ink: #ffffff;--ok: #1f8a4c;--warn: #b7791f;--bad: #c0392b;--busy: #6c3fb5;font-family:system-ui,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}code{font-family:ui-monospace,monospace;direction:ltr;unicode-bidi:embed}button{font:inherit;padding:8px 14px;border-radius:6px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);cursor:pointer}button:disabled{opacity:.6}button.link{background:none;border:none;color:var(--brand);padding:4px 8px}button.danger{background:none;color:var(--bad);border-color:var(--bad);padding:4px 10px}input,select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;min-width:0}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.shell{display:flex;min-height:100vh}aside{width:220px;background:#0f2236;color:#cfd8e3;flex-shrink:0}aside .brand{font-weight:700;font-size:20px;padding:18px 20px;color:#fff}aside nav{display:flex;flex-direction:column}aside nav a{color:#cfd8e3;text-decoration:none;padding:10px 20px}aside nav a.active,aside nav a:hover{background:#18334f;color:#fff}.main{flex:1;min-width:0}.topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.spacer{flex:1}.page{padding:20px}.page-head{display:flex;justify-content:space-between;align-items:center}h1{font-size:22px;margin:0 0 12px}h2{font-size:16px;margin:18px 0 10px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.inline-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}.inline-form h2{width:100%;margin:0}.table-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:start;white-space:nowrap}th{background:#eef2f7;font-weight:600;font-size:13px}.muted{color:var(--muted)}.error{color:var(--bad);background:#fdecea;border-radius:6px;padding:8px 12px;width:100%}.notice{background:#fff8e1;border:1px solid #f0d58c;border-radius:8px;padding:12px;margin-bottom:16px;position:relative}.notice .link{position:absolute;inset-inline-end:6px;top:6px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column}.tile b{font-size:28px}.ext-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.ext{background:var(--panel);border:1px solid var(--line);border-inline-start:4px solid var(--muted);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:4px}.ext-online{border-inline-start-color:var(--ok)}.ext-in_use{border-inline-start-color:var(--busy)}.ext-ringing{border-inline-start-color:var(--warn)}.ext-offline{border-inline-start-color:var(--bad)}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:10px;background:#eef2f7;width:fit-content}.badge-online{background:#e3f4ea;color:var(--ok)}.badge-offline{background:#fdecea;color:var(--bad)}.badge-in_use{background:#efe8fa;color:var(--busy)}.badge-ringing{background:#fff3dc;color:var(--warn)}.live{font-size:13px}.live.on{color:var(--ok)}.live.off{color:var(--bad)}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:min(360px,100%);display:flex;flex-direction:column;gap:14px}@media (max-width: 720px){.shell{flex-direction:column}aside{width:100%}aside nav{flex-direction:row;overflow-x:auto}aside nav a{white-space:nowrap}}fieldset.checks{border:1px solid var(--line);border-radius:6px;padding:6px 10px;display:flex;flex-wrap:wrap;gap:6px 14px}fieldset.checks legend{font-size:13px;color:var(--muted)}label.check{flex-direction:row;align-items:center;gap:6px;color:var(--ink)}.nested{margin-top:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;align-items:end;margin-bottom:16px}.form-grid h2,.form-grid .wide,.form-grid .error{grid-column:1 / -1}.form-grid h2,.form-grid h3{margin:0}h3{font-size:14px;margin:6px 0}.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}.rule{border:1px dashed var(--line);border-radius:8px;padding:8px}.days{display:inline-flex;gap:8px;flex-wrap:wrap}.dest-picker{display:inline-flex;flex-wrap:wrap;gap:6px}.card{margin-bottom:16px}ul.flow,ul.flow ul{list-style:none;margin:0;padding-inline-start:22px;border-inline-start:2px solid var(--line)}ul.flow{border:none;padding:0}ul.flow li{margin:8px 0}.node{display:inline-block;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:#fff}.node b{color:var(--brand);margin-inline-end:6px}.node.missing{border-color:var(--bad);color:var(--bad)}.node-did{background:#eef5ff}.node-ivr{background:#fff8e1}.node-condition{background:#f3ecfd}.node-hangup{background:#fdecea}.edge{font-size:12px;color:var(--muted);margin-inline-end:6px}.badge-idle{background:#e3f4ea;color:var(--ok)}.badge-paused{background:#fff3dc;color:var(--warn)}.badge-busy,.badge-unavailable{background:#fdecea;color:var(--bad)}
