web/src/index.css
Rama main · réplica de lectura del repositorio original.
@import "tailwindcss";
:root {
--topbar-height: 52px;
--bg: #0B0B0B;
--surface: #111111;
--border: #222222;
--text: #E8E8E8;
--text-secondary: #c0c0c0;
--text-tertiary: #8a8a8a;
--muted: #666666;
--accent: #FF3333;
--success: #00CC44;
--danger: #FF4444;
--info: #3399FF;
--warning: #FF9900;
--ai-accent: #7c3aed;
--ai-accent-light: #a78bfa;
--ai-bg-mix: color-mix(in srgb, var(--ai-accent) 5%, transparent);
--ai-text: #d6d3d1;
--ai-text-muted: #9ca3af;
--ai-text-dim: #8b949e;
--ai-evidence-border: color-mix(in srgb, var(--ai-accent-light) 18%, transparent);
--ai-evidence-text: #a1a1aa;
--success-bg: color-mix(in srgb, var(--success) 8%, transparent);
--danger-bg: color-mix(in srgb, var(--danger) 8%, transparent);
--info-bg: color-mix(in srgb, var(--info) 8%, transparent);
--warning-bg: color-mix(in srgb, var(--warning) 8%, transparent);
--bottom-nav-height: 56px;
}
* {
box-sizing: border-box;
border-radius: 0 !important;
}
body {
background-color: var(--bg);
color: var(--text);
font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace;
font-size: 14px;
margin: 0;
}
@keyframes cursor-blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
.cursor-blink {
animation: cursor-blink 1s step-end infinite;
color: var(--accent);
margin-left: 2px;
}
@keyframes pulse-dot {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
@keyframes terminal-startup {
0% {
opacity: 0;
transform: translateY(8px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.terminal-startup {
animation: terminal-startup 0.3s ease-out;
}
@media (prefers-reduced-motion: reduce) {
.cursor-blink,
.terminal-startup,
.auth-card,
.pulse-dot,
.ws-status-dot {
animation: none !important;
transition: none !important;
}
}
/* Timeline row transitions */
.timeline-row {
transition: filter 0.2s ease;
border-bottom: 1px solid var(--border);
}
.timeline-row.dimmed {
filter: blur(2px);
pointer-events: none;
}
/* Tooltip portal */
.tooltip-portal {
position: fixed;
z-index: 9999;
background: var(--surface);
border: 1px solid var(--border);
color: var(--muted);
font-family: inherit;
font-size: 12px;
padding: 4px 8px;
pointer-events: none;
max-width: 400px;
white-space: pre-wrap;
}
/* Ghost card */
.timeline-row.ghost-card {
border: 1px dashed var(--accent);
opacity: 0.85;
}
.login-input:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 1px;
}
/* ─── Auth pages ────────────────────────────────────────────── */
.auth-page {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: var(--bg);
background-image:
linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px);
background-size: 28px 28px;
gap: 12px;
}
.auth-card {
width: 100%;
max-width: 340px;
border: 1px solid var(--border);
border-top: 2px solid var(--accent);
background: var(--bg);
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.7), 0 0 60px rgba(255, 51, 51, 0.05);
animation: terminal-startup 0.2s ease-out;
}
.auth-card-header {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-bottom: 1px solid var(--border);
background: var(--surface);
}
.auth-card-body {
padding: 20px 16px 18px;
}
.auth-title {
font-size: 11px;
letter-spacing: 0.1em;
color: var(--muted);
}
.auth-title-page {
color: var(--text);
font-size: 11px;
letter-spacing: 0.1em;
}
.auth-sep {
color: var(--border);
font-size: 12px;
}
.auth-field {
margin-bottom: 12px;
}
.auth-label {
display: block;
color: var(--muted);
font-size: 10px;
margin-bottom: 4px;
letter-spacing: 0.08em;
}
.auth-input {
width: 100%;
background: var(--surface);
border: 1px solid var(--border);
border-left: 2px solid transparent;
color: var(--text);
padding: 8px 10px;
font-family: inherit;
font-size: 13px;
outline: none;
transition: border-left-color 0.12s;
}
.auth-input:focus {
border-left-color: var(--accent);
}
.auth-input:focus-visible {
border-left-color: var(--accent);
box-shadow: 0 0 0 2px var(--accent);
}
.auth-input[readonly] {
color: var(--muted);
}
.auth-error {
display: flex;
align-items: flex-start;
gap: 7px;
color: var(--danger);
font-size: 11px;
margin-bottom: 12px;
padding: 8px 10px;
background: var(--danger-bg);
border-left: 2px solid var(--danger);
}
.auth-error-icon {
flex-shrink: 0;
margin-top: 1px;
}
.auth-btn-primary {
display: block;
width: 100%;
background: var(--accent);
color: #000;
border: none;
padding: 11px;
font-family: inherit;
font-size: 11px;
font-weight: bold;
letter-spacing: 0.14em;
cursor: pointer;
transition: filter 0.12s;
}
.auth-btn-primary:not(:disabled):hover {
filter: brightness(1.12);
}
.auth-btn-primary:disabled {
opacity: 0.45;
cursor: not-allowed;
}
.auth-btn-primary:focus,
.auth-btn-primary:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.auth-btn-oidc {
display: block;
width: 100%;
background: transparent;
border: 1px solid var(--border);
color: var(--muted);
padding: 10px;
font-family: inherit;
font-size: 11px;
letter-spacing: 0.1em;
text-align: center;
text-decoration: none;
cursor: pointer;
transition: border-color 0.12s, color 0.12s;
}
.auth-btn-oidc:hover {
border-color: #333;
color: var(--text);
}
.auth-btn-oidc:focus,
.auth-btn-oidc:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.auth-footer-link {
display: block;
color: var(--muted);
font-size: 11px;
text-align: center;
text-decoration: none;
letter-spacing: 0.04em;
transition: color 0.12s;
}
.auth-footer-link:hover {
color: var(--text);
}
.auth-footer-link:focus,
.auth-footer-link:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
.auth-tagline {
color: #888;
font-size: 10px;
letter-spacing: 0.14em;
text-align: center;
}
.auth-health-box {
border: 1px solid var(--border);
border-left: 2px solid #333;
padding: 10px 12px;
margin-bottom: 18px;
}
.auth-health-title {
color: var(--muted);
font-size: 9px;
letter-spacing: 0.14em;
margin-bottom: 8px;
}
.auth-health-row {
display: flex;
align-items: center;
gap: 8px;
font-size: 11px;
}
.auth-divider {
border: none;
border-top: 1px solid var(--border);
margin: 14px 0;
}
.auth-header-icon {
color: var(--accent);
flex-shrink: 0;
}
.auth-header-cursor {
font-size: 12px;
margin-left: auto;
}
.auth-health-loading {
color: var(--muted);
}
.auth-health-stack {
display: flex;
flex-direction: column;
gap: 5px;
}
.auth-setup-copy {
color: var(--muted);
font-size: 11px;
margin-top: 0;
margin-bottom: 18px;
line-height: 1.6;
}
.auth-field-last {
margin-bottom: 18px;
}
.auth-health-label {
color: var(--muted);
}
.auth-health-status {
margin-left: auto;
}
.nodes-table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
}
.nodes-table thead {
background: var(--surface);
}
.nodes-table th {
color: var(--muted);
font-size: 10px;
font-weight: 400;
letter-spacing: 0.12em;
text-align: left;
padding: 8px 14px;
border-bottom: 1px solid var(--border);
}
.nodes-table td {
padding: 12px 14px;
border-bottom: 1px solid var(--border);
font-size: 13px;
}
.nodes-status-dot {
display: inline-block;
width: 8px;
height: 8px;
}
.pulse-dot {
animation: pulse-dot 2s ease-in-out infinite;
}
.nodes-cell-truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.topbar-user-btn {
transition: color 0.15s, border-color 0.15s;
}
.topbar-user-btn:hover {
color: #ccc !important;
border-color: #2a2a2a !important;
}
.page-header {
padding: 24px 24px 18px;
border-bottom: 1px solid var(--border);
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.page-header-main {
display: flex;
flex-direction: column;
gap: 8px;
min-width: 0;
}
.page-header-title-row {
display: flex;
align-items: baseline;
gap: 14px;
flex-wrap: wrap;
min-width: 0;
}
.page-header-title {
font-size: 18px;
font-weight: 700;
letter-spacing: 0.12em;
color: #f0f0f0;
}
.page-header-title-actions {
display: flex;
align-items: baseline;
gap: 12px;
flex-wrap: wrap;
min-width: 0;
}
.page-header-subtitle {
font-size: 12px;
color: var(--muted);
letter-spacing: 0.08em;
}
.page-header-actions {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.stat-row {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin-bottom: 28px;
}
.stat-tile {
background: #0f0f0f;
border: 1px solid #1e1e1e;
padding: 16px 18px;
position: relative;
overflow: hidden;
}
.stat-tile-accent {
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 3px;
background: var(--stat-accent);
}
.stat-tile-value {
font-size: 30px;
font-weight: 700;
line-height: 1;
margin-bottom: 6px;
color: var(--stat-value-color);
letter-spacing: -0.02em;
}
.stat-tile-value,
.stat-tile-label {
overflow-wrap: anywhere;
}
.stat-tile-label {
font-size: 10px;
color: #666;
letter-spacing: 0.12em;
}
.dropdown-item {
display: block;
padding: 8px 16px;
font-size: 12px;
letter-spacing: 0.1em;
color: var(--muted);
text-decoration: none;
transition: color 0.12s, background 0.12s;
background: transparent;
cursor: pointer;
}
.dropdown-item:hover {
color: var(--text);
background: rgba(255, 255, 255, 0.04);
}
.dropdown-item-danger {
color: var(--danger);
}
.dropdown-item-danger:hover {
color: var(--danger);
background: rgba(255, 68, 68, 0.08);
}
.time-filter {
display: flex;
align-items: center;
gap: 8px;
padding: 12px 24px;
border-bottom: 1px solid #141414;
flex-wrap: wrap;
flex-shrink: 0;
}
.time-filter-label {
font-size: 10px;
color: #555;
letter-spacing: 0.12em;
}
.time-filter-button {
background: transparent;
border: 1px solid #222;
color: #555;
font-family: inherit;
font-size: 10px;
letter-spacing: 0.1em;
padding: 4px 10px;
cursor: pointer;
transition: background-color 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s, transform 0.15s, opacity 0.15s;
}
.time-filter-button-active {
border-color: var(--accent);
color: var(--accent);
background: rgba(255, 51, 51, 0.06);
}
.time-filter-input {
background: #0f0f0f;
border: 1px solid #222;
color: #888;
font-family: inherit;
font-size: 11px;
padding: 4px 8px;
width: 152px;
letter-spacing: 0.04em;
}
.time-filter-divider {
color: #2a2a2a;
font-size: 12px;
margin: 0 2px;
}
.time-filter-arrow {
color: #444;
font-size: 12px;
}
.event-chain-row {
outline: none;
}
.event-chain-row:focus-visible {
outline: 1px solid var(--accent);
outline-offset: -1px;
}
.event-chain-item {
border-bottom: 1px solid rgba(255, 255, 255, 0.025);
}
.event-chain-item:last-child {
border-bottom: 0;
}
.ai-entry-annotation {
margin: 2px 4px 6px 78px;
padding: 6px 8px;
border-left: 2px solid var(--ai-accent);
background: var(--ai-bg-mix);
color: var(--ai-text-muted);
line-height: 1.45;
}
.ai-entry-annotation-head {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 2px;
color: var(--ai-accent-light);
font-size: 9px;
letter-spacing: 0.12em;
}
.ai-entry-annotation-confidence {
color: var(--muted);
}
.ai-entry-annotation-title {
color: var(--ai-text);
font-size: 11px;
margin-bottom: 2px;
}
.ai-entry-annotation-detail {
color: var(--ai-text-dim);
font-size: 11px;
overflow-wrap: anywhere;
}
.ai-entry-annotation-evidence,
.ai-finding-evidence {
display: flex;
flex-wrap: wrap;
gap: 5px;
margin-top: 5px;
}
.ai-entry-annotation-evidence span,
.ai-finding-evidence span {
border: 1px solid var(--ai-evidence-border);
color: var(--ai-evidence-text);
padding: 2px 5px;
font-size: 10px;
overflow-wrap: anywhere;
max-width: 100%;
}
.ai-findings-panel {
border-top: 1px solid var(--border);
padding-top: 8px;
margin-bottom: 10px;
}
.ai-findings-header {
display: flex;
align-items: baseline;
gap: 10px;
flex-wrap: wrap;
color: var(--muted);
font-size: 11px;
letter-spacing: 0.1em;
margin-bottom: 7px;
}
.ai-findings-window {
color: var(--muted);
font-size: 10px;
letter-spacing: 0.04em;
}
.ai-findings-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 8px;
}
.ai-finding {
border: 1px solid rgba(255, 255, 255, 0.07);
border-left: 2px solid var(--ai-accent);
background: rgba(255, 255, 255, 0.018);
padding: 8px 10px;
min-width: 0;
}
.ai-finding-meta {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
color: var(--ai-accent-light);
font-size: 9px;
letter-spacing: 0.12em;
margin-bottom: 5px;
}
.ai-finding-title {
color: var(--text);
font-size: 12px;
margin-bottom: 4px;
overflow-wrap: anywhere;
}
.ai-finding-detail {
color: var(--ai-text-muted);
line-height: 1.5;
font-size: 11px;
overflow-wrap: anywhere;
}
.timeline-controls {
display: flex;
flex-direction: column;
gap: 12px;
}
.timeline-controls-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.timeline-controls-meta {
margin-left: auto;
display: flex;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
.timeline-filter-toggle {
display: none;
background: none;
border: 1px solid var(--border);
color: var(--muted);
font-family: inherit;
font-size: 11px;
letter-spacing: 0.08em;
padding: 4px 10px;
cursor: pointer;
}
.timeline-filter-panel {
display: flex;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
.timeline-filter-field {
min-width: 0;
}
.timeline-filter-search {
max-width: 220px;
}
.timeline-searchable-select {
min-width: 140px;
}
@media (min-width: 641px) {
.timeline-controls {
flex-direction: row;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
.timeline-controls-header {
order: 2;
margin-left: auto;
justify-content: flex-end;
}
.timeline-controls-meta {
margin-left: 0;
}
.timeline-filter-panel {
order: 1;
flex: 1 1 auto;
min-width: 0;
}
}
.incident-card-leading {
display: flex;
align-items: center;
gap: 8px;
flex: 1 1 320px;
min-width: 0;
}
.incident-card-summary {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.incident-card-badges {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
justify-content: flex-end;
}
.incident-card-time {
margin-left: auto;
}
.diff-modal-meta span {
min-width: 0;
overflow-wrap: anywhere;
}
.diff-grid {
min-width: 720px;
}
.nodes-mobile-list,
.oidc-provider-mobile-list {
display: none;
}
.admin-title-actions {
display: flex;
align-items: baseline;
gap: 14px;
flex-wrap: wrap;
min-width: 0;
}
.admin-group-list {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.admin-title-divider {
width: 1px;
height: 18px;
background: linear-gradient(180deg, transparent 0%, #5a5a5a 18%, #8a8a8a 50%, #5a5a5a 82%, transparent 100%);
align-self: center;
flex: 0 0 auto;
}
.admin-group-button {
background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01));
border: 1px solid transparent;
border-bottom: 2px solid transparent;
color: #f0f0f0;
cursor: pointer;
font-family: inherit;
font-size: 18px;
font-weight: 700;
letter-spacing: 0.12em;
line-height: 1;
padding: 8px 15px 10px;
transition: border-color 0.12s ease, background-color 0.12s ease, color 0.12s ease;
}
.admin-group-button:hover {
border-color: #2a2a2a;
color: var(--text);
}
.admin-group-button.active {
border-color: #2f2f2f;
border-bottom-color: var(--accent);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015));
color: var(--text);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.admin-group-button:focus-visible,
.admin-tab-button:focus-visible {
outline: 1px solid var(--accent);
outline-offset: 2px;
}
.admin-page-body {
max-width: 1280px;
margin: 0 auto;
padding: 24px;
}
.admin-shell {
display: grid;
gap: 16px;
}
.admin-tab-list {
display: flex;
align-items: stretch;
gap: 8px;
overflow-x: auto;
padding-bottom: 2px;
scrollbar-width: thin;
}
.admin-tab-button {
flex: 0 0 auto;
background: transparent;
border: 1px solid var(--border);
color: var(--muted);
cursor: pointer;
font-family: inherit;
font-size: 12px;
letter-spacing: 0.1em;
line-height: 1;
padding: 9px 12px;
text-align: left;
white-space: nowrap;
}
.admin-tab-button.active {
border-color: var(--accent);
color: var(--text);
}
.admin-shell-content {
min-width: 0;
}
.admin-tab-divider {
color: #5f5f5f;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.08em;
line-height: 1;
user-select: none;
}
.oidc-provider-table-wrap {
overflow-x: auto;
}
.oidc-provider-table {
min-width: 760px;
}
@media (min-width: 961px) {
.admin-shell {
grid-template-columns: 200px minmax(0, 1fr);
gap: 24px;
align-items: start;
}
.admin-tab-list {
display: grid;
gap: 0;
overflow: hidden;
border: 1px solid var(--border);
background:
linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px),
#101010;
background-size: 12px 12px, 12px 12px, auto;
}
.admin-tab-button {
position: relative;
width: 100%;
border: none;
border-bottom: 1px solid var(--border);
border-left: 2px solid transparent;
background: transparent;
color: var(--muted);
padding: 13px 14px 13px 16px;
}
.admin-tab-button:last-child {
border-bottom: none;
}
.admin-tab-button.active {
border-color: rgba(255, 51, 51, 0.18);
border-bottom-color: transparent;
border-left-color: var(--accent);
background: linear-gradient(90deg, rgba(255, 51, 51, 0.2), rgba(255, 51, 51, 0.05) 68%, transparent);
box-shadow: inset 0 0 0 1px rgba(255, 51, 51, 0.12);
color: var(--text);
font-weight: 700;
}
}
/* ─── Mobile layout (≤ 640px) ──────────────────────────────── */
/* Topbar: hide nav links on mobile */
@media (max-width: 640px) {
.mobile-hide-nav {
display: none;
}
.topbar-root {
gap: 10px;
padding-left: 16px;
padding-right: 16px;
}
.topbar-brand {
margin-right: 0 !important;
font-size: 13px;
letter-spacing: 0.16em;
}
.topbar-right {
gap: 12px;
min-width: 0;
justify-content: flex-end;
}
.topbar-status {
font-size: 10px !important;
gap: 6px !important;
}
.topbar-user-btn {
max-width: 128px;
padding-left: 0 !important;
padding-right: 0 !important;
}
.topbar-user-name {
display: inline-block;
max-width: 88px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
/* Shell: pad content above bottom nav + device safe area */
@media (max-width: 640px) {
.shell-main {
padding-bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px));
}
.page-header {
padding: 20px 16px 16px !important;
align-items: flex-start !important;
}
.page-header-title-row {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
.page-header-title-actions {
width: 100%;
gap: 10px;
}
.admin-title-actions {
gap: 10px;
}
.admin-title-divider {
width: 28px;
height: 1px;
}
.page-header-actions {
width: 100%;
}
.stat-row {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
gap: 8px !important;
}
.stat-tile {
padding: 14px 14px 12px !important;
}
.stat-tile-value {
font-size: 24px !important;
}
}
/* Bottom nav: visible on mobile only */
.bottom-nav {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px));
z-index: 50;
display: flex;
align-items: stretch;
background: #0D0D0D;
border-top: 1px solid #242424;
padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (min-width: 641px) {
.bottom-nav {
display: none;
}
}
.bottom-nav-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 3px;
font-size: 9px;
letter-spacing: 0.12em;
text-decoration: none;
color: #555;
border-top: 2px solid transparent;
transition: color 0.15s, border-color 0.15s;
}
.bottom-nav-item.active {
color: var(--accent);
border-top-color: var(--accent);
}
/* Timeline: hide row-mode column header on mobile */
@media (max-width: 640px) {
.timeline-header-row {
display: none !important;
}
}
/* Timeline: reflow rows from grid to stacked block on mobile */
@media (max-width: 640px) {
.time-filter {
padding: 12px 16px;
gap: 10px;
}
.time-filter-input {
width: calc(50% - 12px);
min-width: 0;
}
.timeline-controls {
gap: 10px;
}
.timeline-controls-header {
align-items: center;
}
.timeline-controls-meta {
margin-left: 0;
width: 100%;
justify-content: space-between;
gap: 10px;
}
.timeline-filter-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
}
.timeline-filter-panel {
display: none;
gap: 12px;
}
.timeline-filter-panel.is-open {
display: grid;
grid-template-columns: 1fr;
}
.timeline-filter-field {
display: grid !important;
gap: 6px;
}
.timeline-filter-field select,
.timeline-filter-search,
.timeline-searchable-select {
width: 100% !important;
max-width: none;
}
.timeline-filter-clear {
justify-self: start;
}
.timeline-row {
display: block !important;
padding: 10px 16px !important;
}
.tr-indicator {
display: none;
}
.tr-timestamp {
display: block;
margin-bottom: 3px;
white-space: normal !important;
}
.tr-node,
.tr-source {
display: inline !important;
white-space: normal !important;
overflow: visible !important;
text-overflow: clip !important;
}
.tr-source::before {
content: ' · ';
color: var(--muted);
}
.tr-service {
display: inline !important;
overflow: visible !important;
margin-left: 4px;
vertical-align: middle;
}
.tr-event {
display: block !important;
margin-top: 5px;
white-space: normal !important;
overflow: visible !important;
text-overflow: clip !important;
}
.tr-content {
display: block !important;
width: 100% !important;
overflow: visible !important;
margin-top: 2px;
}
.tr-content span:first-child {
white-space: normal !important;
}
.incidents-page-body,
.nodes-page-body,
.admin-page-body {
padding-left: 16px !important;
padding-right: 16px !important;
}
.incident-card-leading {
display: flex;
align-items: flex-start;
gap: 8px;
width: 100%;
min-width: 0;
}
.incident-card-summary {
min-width: 0;
white-space: normal;
overflow-wrap: anywhere;
}
.incident-card-badges {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
width: 100%;
padding-left: 20px;
}
.incident-card-time {
width: 100%;
padding-left: 20px;
white-space: normal !important;
line-height: 1.5;
}
.incident-card-title {
padding: 0 12px 10px 20px !important;
line-height: 1.5;
}
.event-chain-row {
display: block !important;
padding: 8px 4px !important;
}
.event-chain-row > span {
display: block;
margin-bottom: 4px;
}
.ai-entry-annotation {
margin: 2px 4px 8px 4px;
}
.ai-findings-grid {
grid-template-columns: 1fr;
}
.diff-modal {
padding: 10px !important;
}
.diff-modal-panel {
height: min(100%, 820px) !important;
}
.nodes-desktop-table {
display: none;
}
.nodes-mobile-list {
display: grid;
gap: 12px;
}
.nodes-mobile-card {
border: 1px solid var(--border);
padding: 14px;
}
.nodes-mobile-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
.nodes-mobile-name {
color: var(--text);
font-size: 14px;
overflow-wrap: anywhere;
}
.nodes-mobile-status {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 11px;
letter-spacing: 0.1em;
white-space: nowrap;
}
.nodes-mobile-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
margin-top: 14px;
}
.nodes-mobile-field {
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
}
.nodes-mobile-label {
color: var(--muted);
font-size: 10px;
letter-spacing: 0.12em;
}
.nodes-mobile-value {
color: var(--text);
font-size: 12px;
overflow-wrap: anywhere;
}
.nodes-table-scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.admin-tab-list {
gap: 8px 12px;
}
.admin-tab-button {
font-size: 16px !important;
}
.oidc-provider-table-wrap {
display: none;
}
.oidc-provider-mobile-list {
display: grid;
gap: 12px;
}
.oidc-provider-card {
border: 1px solid var(--border);
padding: 14px;
display: grid;
gap: 10px;
}
.oidc-provider-card-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
.oidc-provider-card-name {
color: var(--text);
font-size: 13px;
}
.oidc-provider-card-id,
.oidc-provider-card-value {
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
}
.oidc-provider-card-field {
display: grid;
gap: 4px;
}
.oidc-provider-card-label {
color: var(--muted);
font-size: 10px;
letter-spacing: 0.1em;
}
}