:root {
color-scheme: dark;
--bg: #071018;
--panel: rgba(13, 20, 34, 0.94);
--panel-2: rgba(16, 26, 42, 0.98);
--line: #203048;
--line-2: rgba(120, 161, 201, 0.16);
--text: #e6eef8;
--muted: #8ea2be;
--accent: #4fd1c5;
--accent-2: #7dd3fc;
--warn: #f59e0b;
--danger: #fb7185;
--ok: #34d399;
}
* { box-sizing: border-box; }
body {
margin: 0;
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
background:
radial-gradient(1200px 700px at 20% -5%, rgba(61, 148, 255, 0.18), transparent 60%),
radial-gradient(900px 600px at 100% 0%, rgba(79, 209, 197, 0.16), transparent 58%),
linear-gradient(180deg, #050a12 0%, #09131f 100%);
color: var(--text);
}
.app-shell {
max-width: 1580px;
margin: 0 auto;
padding: 20px;
}
.hero {
display: flex;
justify-content: space-between;
gap: 18px;
align-items: flex-start;
margin-bottom: 16px;
}
.hero h1 {
margin: 0;
font-size: 1.65rem;
}
.meta {
margin: 6px 0 0;
color: var(--muted);
font-size: 0.92rem;
}
.hero-stats {
display: grid;
grid-template-columns: repeat(3, minmax(100px, 1fr));
gap: 10px;
}
.stat-card {
border: 1px solid var(--line);
background: var(--panel);
border-radius: 14px;
padding: 10px 12px;
text-align: right;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}
.stat-card strong {
display: block;
font-size: 1.15rem;
}
.stat-card span {
color: var(--muted);
text-transform: uppercase;
font-size: 0.72rem;
letter-spacing: 0.06em;
}
.tool-row,
.filters {
display: grid;
gap: 10px;
margin-bottom: 12px;
}
.tool-row {
grid-template-columns: minmax(280px, 1fr) repeat(3, auto);
}
.filters {
grid-template-columns: repeat(5, minmax(130px, 1fr));
}
.search-wrap input,
.filters select,
.tool-row button {
width: 100%;
border: 1px solid var(--line);
background: var(--panel);
color: var(--text);
border-radius: 12px;
padding: 11px 13px;
font-size: 0.96rem;
}
.tool-row button {
cursor: pointer;
transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease;
}
.tool-row button:hover {
transform: translateY(-1px);
border-color: var(--accent);
background: rgba(22, 35, 54, 0.98);
}
.search-wrap input:focus,
.filters select:focus {
outline: none;
border-color: var(--accent);
box-shadow: 0 0 0 2px rgba(79, 209, 197, 0.16);
}
.cards {
display: grid;
grid-template-columns: repeat(5, minmax(120px, 1fr));
gap: 10px;
margin-bottom: 14px;
}
.metric {
border: 1px solid var(--line-2);
background: linear-gradient(180deg, rgba(15, 25, 41, 0.98), rgba(10, 18, 30, 0.96));
border-radius: 14px;
padding: 12px;
}
.metric strong {
display: block;
font-size: 1.28rem;
}
.metric span {
display: block;
margin-top: 6px;
color: var(--muted);
font-size: 0.78rem;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.layout {
display: grid;
grid-template-columns: minmax(320px, 0.95fr) minmax(420px, 1.4fr);
gap: 14px;
min-height: calc(100vh - 300px);
}
.list-pane,
.detail-pane {
border: 1px solid var(--line);
border-radius: 18px;
background: linear-gradient(180deg, var(--panel), var(--panel-2));
box-shadow: 0 18px 45px rgba(0, 0, 0, 0.22);
overflow: hidden;
min-width: 0;
}
.summary {
padding: 14px 16px;
color: var(--muted);
border-bottom: 1px solid var(--line);
}
.result-list {
max-height: calc(100vh - 390px);
overflow: auto;
}
.result-item {
width: 100%;
text-align: left;
border: 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
background: transparent;
color: inherit;
padding: 14px 16px;
cursor: pointer;
}
.result-item:hover,
.result-item.active {
background: rgba(79, 209, 197, 0.09);
}
.result-title {
font-weight: 600;
margin-bottom: 8px;
}
.badge-row,
.chip-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.badge,
.chip {
display: inline-flex;
align-items: center;
padding: 3px 8px;
border-radius: 999px;
font-size: 0.74rem;
border: 1px solid var(--line);
color: var(--muted);
background: rgba(255, 255, 255, 0.03);
}
.badge.ok { color: var(--ok); border-color: rgba(52, 211, 153, 0.25); }
.badge.warn { color: var(--warn); border-color: rgba(245, 158, 11, 0.25); }
.badge.danger { color: var(--danger); border-color: rgba(251, 113, 133, 0.25); }
.result-preview {
margin-top: 10px;
color: var(--muted);
font-size: 0.88rem;
line-height: 1.45;
}
.detail-head {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: flex-start;
padding: 16px 18px 10px;
border-bottom: 1px solid var(--line);
}
.detail-head h2 {
margin: 0;
font-size: 1.2rem;
}
.detail-head button {
border: 1px solid var(--line);
background: var(--panel);
color: var(--text);
border-radius: 10px;
padding: 8px 10px;
cursor: pointer;
}
.detail-meta,
.detail-preview {
color: var(--muted);
}
.detail-meta {
margin: 6px 0 0;
}
.detail-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
padding: 14px 18px 4px;
}
.detail-cell {
border: 1px solid rgba(255, 255, 255, 0.04);
border-radius: 10px;
background: rgba(255, 255, 255, 0.02);
padding: 8px 10px;
}
.detail-cell strong {
display: block;
font-size: 0.74rem;
color: var(--muted);
text-transform: uppercase;
letter-spacing: 0.06em;
margin-bottom: 4px;
}
.detail-cell span {
display: block;
word-break: break-word;
line-height: 1.45;
}
.detail-preview,
.chip-row,
.detail-content,
.assumptions {
margin-left: 18px;
margin-right: 18px;
}
.detail-content {
white-space: pre-wrap;
word-break: break-word;
padding: 16px;
border: 1px solid rgba(255, 255, 255, 0.04);
border-radius: 14px;
background: rgba(4, 10, 18, 0.78);
min-height: 280px;
max-height: calc(100vh - 520px);
overflow: auto;
}
.assumptions {
margin-bottom: 16px;
}
.assumptions summary {
cursor: pointer;
color: var(--muted);
}
.empty-state {
padding: 18px;
color: var(--muted);
}
@media (max-width: 1100px) {
.tool-row { grid-template-columns: 1fr 1fr; }
.filters { grid-template-columns: repeat(2, 1fr); }
.cards { grid-template-columns: repeat(2, 1fr); }
.layout { grid-template-columns: 1fr; }
.result-list { max-height: none; }
.detail-content { max-height: none; }
}