@import"https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.layout{min-height:100%;display:flex;flex-direction:column}.layout__header{height:var(--header-height);min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.layout__brand{display:flex;align-items:center;gap:10px}.layout__brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--color-brand);color:#fff;font-weight:700;font-size:15px}.layout__brand-name{font-weight:700;font-size:16px;letter-spacing:.02em;color:var(--color-text-primary)}.layout__module-badge{font-size:12.5px;color:var(--color-text-secondary);padding:3px 9px;border-radius:999px;background:var(--color-accent-bg);border:1px solid var(--color-border)}.layout__header-right{display:flex;align-items:center;gap:12px}.layout__env-badge{font-size:12px;color:var(--color-muted);padding:3px 8px;border-radius:999px;border:1px dashed var(--color-baseline)}.layout__body{flex:1;display:flex;min-height:0}.layout__sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-surface-raised);border-right:1px solid var(--color-border);padding:16px 10px;display:flex;flex-direction:column;gap:2px}.layout__nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text-secondary);font-size:14px;font-weight:500;transition:background-color .12s ease,color .12s ease}.layout__nav-item:hover{background:var(--color-page);color:var(--color-text-primary)}.layout__nav-item--active{background:var(--color-accent-bg);color:var(--color-brand-strong)}.layout__nav-icon{display:inline-flex;width:18px;height:18px;flex-shrink:0}.layout__content{flex:1;min-width:0;padding:24px 28px 40px;overflow-y:auto}.stat-tile{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-card);min-width:0}.stat-tile__label{font-size:12.5px;color:var(--color-text-secondary);font-weight:500}.stat-tile__value{font-size:26px;font-weight:700;line-height:1.1;color:var(--color-text-primary)}.stat-tile__value--risk{color:var(--color-risk-high)}.stat-tile__value--good{color:var(--color-good)}.stat-tile__hint{font-size:12px;color:var(--color-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}.badge__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.badge--outline{background:transparent;border:1px solid;font-weight:500}.status-page{display:flex;flex-direction:column;gap:20px}.status-page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.status-page__title{font-size:22px;font-weight:700}.status-page__subtitle{margin-top:4px;font-size:13.5px;color:var(--color-text-secondary)}.status-page__alert{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-md);background:var(--color-risk-high-bg);color:var(--color-risk-high);font-size:13px;font-weight:600}.status-page__kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.status-page__error{padding:12px 16px;border-radius:var(--radius-md);background:var(--color-risk-high-bg);color:var(--color-risk-high);font-size:13.5px}.status-page__empty{padding:32px;text-align:center;color:var(--color-muted);grid-column:1 / -1}.connector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.connector-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-top:3px solid var(--color-baseline);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:12px}.connector-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.connector-card__kind{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted)}.connector-card__name{font-size:15.5px;font-weight:700;margin-top:2px}.connector-card__facts{display:flex;flex-direction:column;gap:7px}.connector-card__fact{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12.5px}.connector-card__fact dt{color:var(--color-muted);flex-shrink:0}.connector-card__fact dd{margin:0;text-align:right;color:var(--color-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62%}.connector-card__endpoint{font-family:var(--font-mono);font-size:11.5px}.connector-card__last-message{font-weight:400}.connector-card__error-rate--bad{color:var(--color-risk-high);font-weight:700}.connector-card__actions{display:flex;gap:8px;padding-top:8px;border-top:1px solid var(--color-border)}.connector-card__btn{flex:1;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-page);color:var(--color-text-primary);font-size:12.5px;font-weight:600;cursor:pointer;transition:background-color .12s ease}.connector-card__btn:hover:not(:disabled){background:var(--color-accent-bg)}.connector-card__btn:disabled{opacity:.6;cursor:default}.connector-card__result{font-size:11.5px;color:var(--color-text-secondary);word-break:break-all}.log-page{display:flex;flex-direction:column;gap:20px;max-width:1320px}.log-page__head{display:flex;align-items:flex-start;justify-content:space-between}.log-page__title{font-size:22px;font-weight:700}.log-page__subtitle{margin-top:4px;font-size:13.5px;color:var(--color-text-secondary)}.log-page__filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.log-page__search{display:flex;align-items:center;gap:8px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;min-width:280px;color:var(--color-muted)}.log-page__search input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--color-text-primary);width:100%}.log-page__filters select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:8px 10px;font-size:13.5px;color:var(--color-text-primary)}.log-page__reset{border:none;background:transparent;color:var(--color-brand);font-size:13px;font-weight:600;cursor:pointer;padding:8px 4px}.log-page__table-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow-x:auto}.log-page__error{padding:14px 18px;color:var(--color-risk-high);font-size:13.5px}.log-table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}.log-table thead th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--color-gridline);background:var(--color-page);white-space:nowrap}.log-table tbody td{padding:10px 16px;border-bottom:1px solid var(--color-gridline);vertical-align:middle}.log-table__row:last-child td{border-bottom:none}.log-table__time{color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.log-table__connector{font-weight:600;color:var(--color-text-primary)}.log-table__format{font-size:11.5px;color:var(--color-muted);margin-top:1px}.log-table__direction{font-size:12px;font-weight:600;white-space:nowrap}.log-table__direction--out{color:var(--color-accent)}.log-table__direction--in{color:var(--series-2)}.log-table__ref{font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-secondary)}.log-table__nack-reason{font-size:11px;color:var(--color-risk-high);margin-top:3px;max-width:220px}.log-table__retry{font-size:11px;color:var(--color-muted);margin-top:2px}.log-table__empty{text-align:center;padding:36px 16px;color:var(--color-muted)}.log-page__pagination{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--color-text-secondary)}.log-page__pagination-buttons{display:flex;align-items:center;gap:12px}.log-page__pagination-buttons button{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;cursor:pointer;color:var(--color-text-primary)}.log-page__pagination-buttons button:disabled{opacity:.4;cursor:not-allowed}.audit-page{display:flex;flex-direction:column;gap:20px;max-width:1320px}.audit-page__head{display:flex;align-items:flex-start;justify-content:space-between}.audit-page__title{font-size:22px;font-weight:700}.audit-page__subtitle{margin-top:4px;font-size:13.5px;color:var(--color-text-secondary);max-width:900px}.audit-page__filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.audit-page__search{display:flex;align-items:center;gap:8px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;min-width:220px;color:var(--color-muted)}.audit-page__search input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--color-text-primary);width:100%}.audit-page__filters select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:8px 10px;font-size:13.5px;color:var(--color-text-primary)}.audit-page__date-field{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--color-text-secondary);white-space:nowrap}.audit-page__date-field input[type=date]{padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text-primary);font-size:12.5px}.audit-page__reset{border:none;background:transparent;color:var(--color-brand);font-size:13px;font-weight:600;cursor:pointer;padding:8px 4px}.audit-page__table-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;overflow-x:auto}.audit-page__error{padding:14px 18px;color:var(--color-risk-high);font-size:13.5px}.audit-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:700px}.audit-table thead th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--color-gridline);background:var(--color-page);white-space:nowrap}.audit-table tbody td{padding:10px 16px;border-bottom:1px solid var(--color-gridline);vertical-align:middle}.audit-table__row:hover{background:var(--color-accent-bg)}.audit-table__row:last-child td{border-bottom:none}.audit-table__ts{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--color-text-secondary);white-space:nowrap}.audit-table__actor{font-weight:600;color:var(--color-text-primary);white-space:nowrap}.audit-table__cell-muted{color:var(--color-text-secondary)}.audit-table__cell-dim{color:var(--color-muted)}.audit-table__empty{text-align:center;padding:36px 16px;color:var(--color-muted)}.audit-badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.audit-badge--neutral{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)}.audit-badge--brand{background:var(--color-accent-bg);color:var(--color-brand-strong)}.audit-badge--system{background:#1e63b41f;color:var(--series-2)}.audit-details-toggle{background:none;border:none;padding:0;font-size:12px;font-weight:600;color:var(--color-brand);cursor:pointer}.audit-details-toggle:hover{text-decoration:underline}.audit-table__details-row td{background:var(--color-page);padding:0}.audit-details-json{margin:0;padding:12px 16px;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.audit-page__pagination{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--color-text-secondary)}.audit-page__pagination-buttons{display:flex;align-items:center;gap:12px}.audit-page__pagination-buttons button{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;cursor:pointer;color:var(--color-text-primary)}.audit-page__pagination-buttons button:disabled{opacity:.4;cursor:not-allowed}.gateway-page{display:flex;flex-direction:column;gap:20px;max-width:1320px}.gateway-page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.gateway-page__title{font-size:22px;font-weight:700}.gateway-page__subtitle{margin-top:4px;font-size:13.5px;color:var(--color-text-secondary);max-width:900px}.gateway-page__kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.gateway-page__error{padding:12px 16px;border-radius:var(--radius-md);background:var(--color-risk-high-bg);color:var(--color-risk-high);font-size:13.5px}.gateway-page__loading{padding:24px;text-align:center;color:var(--color-muted);font-size:13.5px}.gateway-page__empty{padding:32px;text-align:center;color:var(--color-muted);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.gateway-section{display:flex;flex-direction:column;gap:10px}.gateway-section__title{margin:0;font-size:15px;font-weight:700;color:var(--color-text-primary)}.table-wrap{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;overflow-x:auto}.gateway-keys-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px}.gateway-keys-table th{text-align:left;padding:12px 16px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);border-bottom:1px solid var(--color-gridline);background:var(--color-page);white-space:nowrap}.gateway-keys-table td{padding:10px 16px;border-bottom:1px solid var(--color-gridline);vertical-align:middle}.gateway-keys-table tbody tr:last-child td{border-bottom:none}.gateway-keys-table tbody tr:hover{background:var(--color-accent-bg)}.gateway-keys-table__name{font-weight:600;color:var(--color-text-primary)}.gateway-keys-table__usage{color:var(--color-muted);font-size:12px}.cell-numeric{font-variant-numeric:tabular-nums}.cell-muted{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:12px}.scope-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}.scope-badge--read{background:#1e63b41f;color:var(--series-2)}.scope-badge--write{background:#2f8f4e24;color:var(--color-good)}.scope-badge--admin{background:var(--color-accent-bg);color:var(--color-brand-strong)}.status-pill{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}.status-pill--ok{background:#2f8f4e24;color:var(--color-good)}.status-pill--down{background:var(--color-risk-high-bg);color:var(--color-risk-high)}.security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.security-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:14px 16px;display:flex;flex-direction:column;gap:6px}.security-card__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted)}.security-card__value{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.security-card__hint{font-size:12px;color:var(--color-text-secondary)}.traffic-chart{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:12px 14px 6px}.chart-tooltip{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:8px 10px;font-size:12px;min-width:140px}.chart-tooltip__date{font-weight:700;color:var(--color-text-primary);margin-bottom:4px}.chart-tooltip__row{display:flex;justify-content:space-between;gap:12px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}:root{color-scheme:light;--color-page: #fbf7ee;--color-surface: #f4efe2;--color-surface-raised: #ffffff;--color-text-primary: #1a1512;--color-text-secondary: #5a5045;--color-muted: #857a6a;--color-gridline: #e5dece;--color-border: rgba(26, 21, 18, .1);--color-baseline: #d9d1be;--color-brand: #c42235;--color-brand-strong: #8f1322;--color-accent: #c42235;--color-accent-bg: #f6dcdf;--series-1: #c42235;--series-2: #1e63b4;--series-3: #d98a00;--series-4: #2f8f4e;--color-risk-high: #c42235;--color-risk-high-bg: #f6dcdf;--color-risk-mid: #d98a00;--color-risk-mid-bg: #fbeed0;--color-risk-low: #2f8f4e;--color-risk-low-bg: #e2f0e6;--color-good: #2f8f4e;--color-warning: #d98a00;--color-critical: #c42235;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--shadow-card: 0 1px 2px rgba(26, 21, 18, .05), 0 1px 8px rgba(26, 21, 18, .05);--font-sans: "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sidebar-width: 232px;--header-height: 62px}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--color-page: #14110e;--color-surface: #201b16;--color-surface-raised: #26201a;--color-text-primary: #f6efe2;--color-text-secondary: #cdbfaf;--color-muted: #9c8f7d;--color-gridline: #322b23;--color-border: rgba(246, 239, 226, .1);--color-baseline: #3e352b;--color-brand: #e0384c;--color-brand-strong: #f0a8b0;--color-accent: #e0384c;--color-accent-bg: #4a1620;--series-1: #e0384c;--series-2: #4d8fd6;--series-3: #e0a020;--series-4: #45a565;--color-risk-high: #e0384c;--color-risk-high-bg: #4a1620;--color-risk-mid: #e0a020;--color-risk-mid-bg: #3e2f10;--color-risk-low: #45a565;--color-risk-low-bg: #16301f;--color-good: #45a565;--color-warning: #e0a020;--color-critical: #e0384c;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 8px rgba(0, 0, 0, .4)}}:root[data-theme=dark]{color-scheme:dark;--color-page: #14110e;--color-surface: #201b16;--color-surface-raised: #26201a;--color-text-primary: #f6efe2;--color-text-secondary: #cdbfaf;--color-muted: #9c8f7d;--color-gridline: #322b23;--color-border: rgba(246, 239, 226, .1);--color-baseline: #3e352b;--color-brand: #e0384c;--color-brand-strong: #f0a8b0;--color-accent: #e0384c;--color-accent-bg: #4a1620;--series-1: #e0384c;--series-2: #4d8fd6;--series-3: #e0a020;--series-4: #45a565;--color-risk-high: #e0384c;--color-risk-high-bg: #4a1620;--color-risk-mid: #e0a020;--color-risk-mid-bg: #3e2f10;--color-risk-low: #45a565;--color-risk-low-bg: #16301f;--color-good: #45a565;--color-warning: #e0a020;--color-critical: #e0384c;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 8px rgba(0, 0, 0, .4)}:root[data-theme=light]{color-scheme:light;--color-page: #fbf7ee;--color-surface: #f4efe2;--color-surface-raised: #ffffff;--color-text-primary: #1a1512;--color-text-secondary: #5a5045;--color-muted: #857a6a;--color-gridline: #e5dece;--color-border: rgba(26, 21, 18, .1);--color-baseline: #d9d1be;--color-brand: #c42235;--color-brand-strong: #8f1322;--color-accent: #c42235;--color-accent-bg: #f6dcdf;--series-1: #c42235;--series-2: #1e63b4;--series-3: #d98a00;--series-4: #2f8f4e;--color-risk-high: #c42235;--color-risk-high-bg: #f6dcdf;--color-risk-mid: #d98a00;--color-risk-mid-bg: #fbeed0;--color-risk-low: #2f8f4e;--color-risk-low-bg: #e2f0e6;--color-good: #2f8f4e;--color-warning: #d98a00;--color-critical: #c42235;--shadow-card: 0 1px 2px rgba(26, 21, 18, .05), 0 1px 8px rgba(26, 21, 18, .05)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--color-page);color:var(--color-text-primary);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}button{font-family:inherit}a{color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-baseline);border-radius:999px}::-webkit-scrollbar-track{background:transparent}
