:root{--bg: #0b0f14;--surface: #121821;--surface-2: #172030;--border: #222d3d;--border-strong: #2f3d52;--text: #e6edf6;--text-dim: #9aabc0;--text-faint: #6b7c93;--accent: #38bdf8;--accent-dim: #0e7490;--good: #34d399;--warn: #fbbf24;--bad: #f87171;--radius: 10px;--radius-sm: 6px;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Inter, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:16px}h3{font-size:13px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}a{color:var(--accent);text-decoration:none}code,.mono{font-family:var(--mono);font-size:.92em}.shell{display:grid;grid-template-columns:236px 1fr;height:100%}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;gap:4px}.brand{display:flex;align-items:baseline;gap:9px;padding:0 10px 18px}.brand .name{font-size:21px;font-weight:700;letter-spacing:-.03em}.brand .dot{color:var(--accent)}.brand .tag{font-size:11px;color:var(--text-faint)}.nav-group{margin-top:16px;padding:0 10px 6px}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-dim);font-weight:500;transition:background .12s,color .12s}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.nav-link .icon{width:16px;text-align:center;opacity:.9}.nav-badge{margin-left:auto;background:var(--accent);color:#05202b;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.sidebar-foot{margin-top:auto;padding:14px 10px 0;border-top:1px solid var(--border);color:var(--text-faint);font-size:12px}.main{overflow-y:auto}.topbar{display:flex;align-items:center;gap:16px;padding:22px 32px 18px;border-bottom:1px solid var(--border);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}.topbar .sub{color:var(--text-dim);font-size:13px}.topbar .spacer{flex:1}.content{padding:26px 32px 60px;max-width:1180px}.section{margin-bottom:30px}.section>h3{margin-bottom:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-head .spacer{flex:1}.card-body{padding:18px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.stat .value{font-size:30px;font-weight:650;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}.stat .value.accent{color:var(--accent)}.stat .value.good{color:var(--good)}.stat .value.warn{color:var(--warn)}.stat .value.bad{color:var(--bad)}.stat .foot{font-size:12px;color:var(--text-faint);margin-top:2px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);padding:10px 18px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:11px 18px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.num{font-variant-numeric:tabular-nums}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.empty{padding:40px 18px;text-align:center;color:var(--text-faint)}.empty .big{font-size:15px;color:var(--text-dim);margin-bottom:6px}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid transparent;white-space:nowrap}.pill.good{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.pill.bad{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}.pill.warn{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.pill.info{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.pill.mute{background:var(--surface-2);color:var(--text-faint);border-color:var(--border)}.dir{font-family:var(--mono);font-size:12px}button,.btn{font:inherit;font-weight:550;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);padding:7px 14px;cursor:pointer;transition:background .12s,border-color .12s}button:hover,.btn:hover{background:var(--border)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#04222e}button.primary:hover{background:#7dd3fc}button.ghost{background:transparent;border-color:transparent;color:var(--text-dim)}button.ghost:hover{background:var(--surface-2);color:var(--text)}button.danger{color:var(--bad)}button:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:8px;align-items:center}label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px;font-weight:500}input,select,textarea{font:inherit;width:100%;background:var(--bg);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:8px 11px}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:-1px;border-color:var(--accent)}.field{margin-bottom:14px}.field .hint{font-size:12px;color:var(--text-faint);margin-top:5px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.auth{min-height:100%;display:grid;place-items:center;padding:40px 20px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:32px}.auth .brand{justify-content:center;padding-bottom:8px}.auth-lede{text-align:center;color:var(--text-dim);margin:0 0 24px;font-size:13px}.notice{border-radius:var(--radius-sm);padding:10px 13px;font-size:13px;margin-bottom:14px;border:1px solid}.notice.error{background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:color-mix(in srgb,var(--bad) 35%,transparent);color:#fecaca}.notice.good{background:color-mix(in srgb,var(--good) 12%,transparent);border-color:color-mix(in srgb,var(--good) 35%,transparent);color:#bbf7d0}.notice.info{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:#bae6fd}.notice.warn{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:#fde68a}.telephony-down{position:sticky;top:0;z-index:50;padding:11px 18px;font-size:13px;line-height:1.55;color:#fde68a;background:color-mix(in srgb,var(--warn) 16%,var(--bg));border-bottom:1px solid color-mix(in srgb,var(--warn) 45%,transparent)}.telephony-down strong{color:var(--warn)}.telephony-down .hint{display:block;margin-top:4px;color:color-mix(in srgb,#fde68a 75%,var(--text-dim));font-size:12px}.telephony-down code{background:color-mix(in srgb,var(--warn) 10%,transparent);border-radius:3px;padding:1px 4px;font-size:11.5px}.search{flex:1;max-width:340px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-size:13px}.search::placeholder{color:var(--text-faint)}.icon-button{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);width:30px;height:26px;font-size:11px;line-height:1;cursor:pointer}.icon-button:hover{border-color:var(--accent);color:var(--accent)}.pill-button{background:none;border:none;padding:0;cursor:pointer}.pill-button:hover .pill{filter:brightness(1.25)}.link.danger{color:var(--bad)}textarea.code{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text-dim);padding:12px;font-size:11.5px;line-height:1.5;resize:vertical;tab-size:2}textarea.code:focus{outline:none;border-color:var(--accent);color:var(--text)}.save-bar{display:flex;flex-direction:column;gap:8px;margin-top:12px}.save-bar .buttons{display:flex;gap:8px}.save-bar .buttons .btn{flex:1}.save-bar input{width:100%;box-sizing:border-box;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-size:13px}.save-bar input::placeholder{color:var(--text-faint)}.versions{list-style:none;margin:0;padding:0}.versions li{padding:10px 18px;border-bottom:1px solid var(--border)}.versions li:last-child{border-bottom:none}.versions .line{display:flex;align-items:center;gap:8px}.versions .line .spacer{flex:1}.versions .num{font-size:12px}.versions .note{margin-top:3px;font-size:13px;color:var(--text-dim)}.add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.add-row input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-size:13px;min-width:150px}.add-row input::placeholder{color:var(--text-faint)}.add-row p{width:100%;margin:2px 0 0;font-size:12px}.audit{list-style:none;margin:0;padding:0}.audit li{padding:11px 18px;border-bottom:1px solid var(--border)}.audit li:last-child{border-bottom:none}.audit .line{display:flex;align-items:baseline;gap:8px;font-size:13px}.audit .line .spacer{flex:1}.audit .who{color:var(--accent)}.audit .what{color:var(--text)}.audit .subject{color:var(--text-dim)}.audit .num{font-size:12px;white-space:nowrap}.audit .detail{margin-top:3px;font-size:11.5px;color:var(--text-faint)}.cell-input{background:var(--surface-2);border:1px solid var(--accent);border-radius:4px;color:var(--text);padding:3px 6px;font-size:13px;width:84px;text-align:right;font-variant-numeric:tabular-nums}.window-buttons{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.section-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.section-head h3{margin:0}.section-head button{margin-left:auto}.add-row select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-size:13px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);padding:6px 12px;font-size:13px;cursor:pointer}.tab:hover{color:var(--text);border-color:var(--border-strong, var(--border))}.tab.active{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--text)}.flow-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}.flow-canvas{background:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0) 0 0 / 22px 22px,var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.flow-node rect{transition:stroke .12s}.flow-node:hover rect{stroke:var(--accent);cursor:pointer}.flow-node .kind{font-size:10px;letter-spacing:.08em;text-transform:uppercase}.flow-node .title{font-size:12.5px;font-weight:600}.flow-node .detail{font-size:11px}.flow-edge-label{font-size:10px;fill:var(--text-faint);font-family:var(--mono)}.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.legend-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-faint)}.legend-swatch{width:10px;height:10px;border-radius:3px}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px}.kv dt{color:var(--text-faint)}.kv dd{margin:0}.credential{background:var(--bg);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:14px;margin-top:6px}.credential .row{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.credential .row .k{color:var(--text-faint);font-size:12px}.credential .row .v{font-family:var(--mono);font-size:13px}.spinner{color:var(--text-faint);padding:40px;text-align:center}
