:root{--bg: #0f1419;--bg-raised: #171d26;--bg-input: #10151c;--border: #253040;--border-soft: #1d2733;--text: #dfe6ef;--text-dim: #8b9bb0;--text-faint: #5f7186;--accent: #4a9eff;--ok: #3fb950;--warn: #d29922;--error: #f85149;--radius: 6px;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;background:var(--bg-raised);border-right:1px solid var(--border);padding:20px 0}.brand{padding:0 20px 20px;border-bottom:1px solid var(--border-soft);margin-bottom:12px}.brand-mark{display:block;font-size:20px;font-weight:650;letter-spacing:.08em;color:var(--accent)}.brand-sub{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-top:2px}.sidebar nav{display:flex;flex-direction:column;flex:1}.nav-link{padding:9px 20px;color:var(--text-dim);text-decoration:none;font-size:13px;border-left:2px solid transparent}.nav-link:hover{color:var(--text);background:#ffffff08}.nav-link.active{color:var(--text);border-left-color:var(--accent);background:#4a9eff14}.sidebar-foot{padding:16px 20px 0;border-top:1px solid var(--border-soft);margin-top:12px;display:grid;gap:8px}.ae-badge{display:flex;justify-content:space-between;font-size:11px}.ae-badge .label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em}.ae-badge .value{font-family:var(--mono);color:var(--text-dim)}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg-raised)}.status-group{display:flex;gap:8px;flex-wrap:wrap}.content{padding:24px;max-width:1600px;width:100%}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);font-size:11px;background:var(--bg)}.pill-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em}.pill-state{font-weight:600}.pill-ok .pill-state{color:var(--ok)}.pill-warn .pill-state{color:var(--warn)}.pill-error .pill-state{color:var(--error)}.pill-idle .pill-state{color:var(--text-dim)}.live-dot{font-size:11px;color:var(--text-faint);display:flex;align-items:center;gap:6px;white-space:nowrap}.live-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-faint)}.live-dot.live:before{background:var(--ok)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header h1{margin:0;font-size:22px;font-weight:600}.subtitle{margin:4px 0 0;color:var(--text-dim);font-size:13px;max-width:80ch}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-soft)}.card-head h2{margin:0;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.card-body{padding:16px}.card-body>p:first-child{margin-top:0}.card-body>p:last-child{margin-bottom:0}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius);border-left-width:3px}.stat-ok{border-left-color:var(--ok)}.stat-warn{border-left-color:var(--warn)}.stat-error{border-left-color:var(--error)}.stat-idle{border-left-color:var(--border)}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.stat-value{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.stat-hint{font-size:11px;color:var(--text-dim)}.table-wrap{overflow-x:auto;margin:-16px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{position:sticky;top:0;text-align:left;padding:9px 12px;background:var(--bg);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);white-space:nowrap}tbody td{padding:8px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle}tbody tr:hover{background:#ffffff05}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:12px}.truncate{max-width:26ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-error{color:var(--error);font-weight:600}.row-deleted{opacity:.5;text-decoration:line-through}.actions{display:flex;gap:6px;white-space:nowrap}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.03em;border:1px solid}.badge-ok{color:var(--ok);border-color:#3fb95066;background:#3fb9501a}.badge-warn{color:var(--warn);border-color:#d2992266;background:#d299221a}.badge-error{color:var(--error);border-color:#f8514966;background:#f851491a}.badge-idle{color:var(--text-dim);border-color:var(--border);background:var(--bg)}.services{display:flex;gap:4px;flex-wrap:wrap}.tag{font-family:var(--mono);font-size:10px;padding:1px 5px;border-radius:3px;background:var(--bg);border:1px solid var(--border);color:var(--text-dim)}.btn{padding:5px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-small{padding:3px 8px;font-size:12px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#08111c;font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.1);color:#08111c}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.filter-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.filter-grid input,.filter-grid select{padding:6px 9px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-input);color:var(--text);font-family:inherit;font-size:13px;text-transform:none;letter-spacing:normal}.filter-grid input:focus,.filter-grid select:focus{outline:none;border-color:var(--accent)}.card-head select{padding:4px 8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-input);color:var(--text);font-family:inherit;font-size:12px}.filter-actions{display:flex;gap:8px}.toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-dim);cursor:pointer}.progress{position:relative;min-width:120px;height:18px;background:var(--bg);border:1px solid var(--border);border-radius:3px;overflow:hidden}.progress-bar{height:100%;background:#4a9eff59;transition:width .3s ease}.progress-warn .progress-bar{background:#d2992266}.progress-error .progress-bar{background:#f851496b}.progress-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text)}.notice{padding:14px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text-dim);font-size:13px;margin-bottom:16px}.notice-error{border-color:#f8514966;background:#f8514914;color:var(--error)}.echo-ok{color:var(--ok);font-size:12px;margin-left:8px}.echo-fail{color:var(--error);font-size:12px;margin-left:8px}.detail-list{display:grid;grid-template-columns:minmax(140px,max-content) 1fr;gap:8px 20px;margin:0}.detail-list dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.detail-list dd{margin:0;color:var(--text)}code{font-family:var(--mono);font-size:12px;padding:1px 5px;border-radius:3px;background:var(--bg);border:1px solid var(--border-soft)}.nav-section{padding:16px 20px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint)}.nav-link.muted{color:var(--text-faint)}.nav-link.muted:hover{color:var(--text-dim)}.topbar-error{font-size:11px;color:var(--warn);white-space:nowrap}.page-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.updated-at{font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums}.notice-ok{border-color:#3fb95066;background:#3fb95014;color:var(--text)}.notice-warn{border-color:#d2992273;background:#d2992214;color:var(--text)}.notice-info{border-color:#4a9eff59;background:#4a9eff0f;color:var(--text)}.warn-text{color:var(--warn)}.legend p{margin:0 0 8px}.legend ul{margin:0;padding-left:18px;display:grid;gap:6px}.legend li{color:var(--text-dim)}.legend strong{color:var(--text)}.perm{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px;font-weight:600;letter-spacing:.03em;border:1px solid}.perm-granted{color:var(--accent);border-color:#4a9eff66;background:#4a9eff1a}.perm-denied{color:var(--text-faint);border-color:var(--border-soft);background:transparent}.perm-alert{color:var(--warn);border-color:#d2992273;background:#d299221a}.ae-table .group-row th{position:static;padding-bottom:4px;border-bottom:none;color:var(--text-dim);font-size:10px}.ae-table .group-inbound{border-bottom:2px solid rgba(210,153,34,.5)!important}.ae-table .group-outbound{border-bottom:2px solid rgba(74,158,255,.5)!important}.ae-table .group-row+tr th{top:0}.row-muted td{opacity:.6}.table-footnote{margin:26px 0 0;font-size:12px;color:var(--text-faint)}.btn-danger{background:var(--error);border-color:var(--error);color:#150708;font-weight:600}.btn-danger:hover:not(:disabled){filter:brightness(1.1);color:#150708}.btn-danger-quiet:hover:not(:disabled){border-color:var(--error);color:var(--error)}.modal-backdrop{position:fixed;inset:0;background:#06090db8;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50}.modal{width:min(760px,100%);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 48px #00000080}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border-soft)}.modal-head h2{margin:0;font-size:15px;font-weight:600}.modal-head .subtitle{margin:4px 0 0;font-size:12px}.modal-body{padding:16px}.modal-body>.notice:first-child{margin-top:0}.modal-body p{color:var(--text-dim)}.modal-body p:last-child{margin-bottom:0}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-soft)}.change-list{margin:0 0 12px;padding-left:18px}.form-section{border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 14px 14px;margin:0 0 16px}.form-section:last-child{margin-bottom:0}.form-section>legend{padding:0 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.form-section-inbound{border-left:3px solid rgba(210,153,34,.6)}.form-section-outbound{border-left:3px solid rgba(74,158,255,.6)}.form-section-note{font-size:12px;color:var(--text-dim);margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.field-required{color:var(--accent)}.field input,.field select,.field textarea{padding:6px 9px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-input);color:var(--text);font-family:inherit;font-size:13px;width:100%}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field input:disabled{opacity:.5}.field-invalid input,.field-invalid textarea{border-color:var(--error)}.field-hint{font-size:11px;color:var(--text-faint)}.field-error{font-size:11px;color:var(--error)}.char-count{font-variant-numeric:tabular-nums}.check{display:flex;align-items:flex-start;gap:8px;padding:6px 0;cursor:pointer}.check input{margin-top:3px}.check-disabled{opacity:.55;cursor:not-allowed}.check-label{display:block;font-size:13px}.check-detail{display:block;font-size:11px;color:var(--text-faint)}.fixed-rule{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;margin:4px 0 10px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg)}.fixed-rule-mark{flex:none;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ok);border:1px solid rgba(63,185,80,.4);border-radius:3px;padding:1px 6px;margin-top:1px}.form-actions{display:flex;gap:8px;margin-bottom:24px}.hint{margin:14px 0 0;font-size:12px;line-height:1.6;color:var(--text-faint);max-width:78ch}.card-note{font-size:11px;color:var(--text-faint);max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-note code{color:var(--text-dim);background:var(--bg);border-radius:3px;padding:1px 5px}.row-selected td{background:#4a9eff12}.row-selected td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.row-error td{background:#ff6b6b14}.row-error td:first-child{box-shadow:inset 2px 0 0 var(--error)}.row-warn td{background:#ffbe5c12}.row-warn td:first-child{box-shadow:inset 2px 0 0 var(--warn)}.subhead{margin:22px 0 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.card-body .stat-row+.table-wrap,.card-body .stat-row+.progress{margin-top:18px}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px}.sidebar nav{flex-direction:row;flex-wrap:wrap}.nav-link{border-left:none;border-bottom:2px solid transparent}.nav-link.active{border-left:none;border-bottom-color:var(--accent)}.sidebar-foot{border-top:none;margin-top:0;padding-top:0}}.signin-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.signin-card{width:min(420px,100%);display:flex;flex-direction:column;gap:14px;padding:28px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius)}.signin-card .brand{padding:0 0 6px;border-bottom:1px solid var(--border-soft)}.signin-card .field input{width:100%;padding:9px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:var(--sans);font-size:14px}.signin-card .field input:focus{outline:none;border-color:var(--accent)}.signin-card .hint{margin:0}.signed-in{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border-soft)}.signed-in .label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.signed-in .value{font-size:13px;color:var(--text)}.signed-in .btn{align-self:flex-start;margin-top:4px}.table-wrap select{background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:4px 6px;font-family:var(--sans);font-size:13px}.detail-list select{margin:0}.link-button{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.link-button:hover strong,.link-button:focus-visible strong{text-decoration:underline}.link-button:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:2px}
