:root { --bg: #0f1714; --bg-2: #16211d; --panel: rgba(244, 240, 232, 0.93); --panel-2: rgba(255, 252, 246, 0.98); --ink: #18211e; --muted: #60716a; --line: rgba(24, 33, 30, 0.14); --accent: #1f7a5a; --accent-2: #0f5b84; --warn: #b36a0c; --critical: #b64328; --ok: #1f7a5a; --shadow: 0 24px 60px rgba(0, 0, 0, 0.28); --radius: 20px; --radius-sm: 14px; --mono: "IBM Plex Mono", "SFMono-Regular", "Menlo", monospace; --sans: "IBM Plex Sans", "Avenir Next", "Segoe UI", sans-serif; } * { box-sizing: border-box; } html, body { margin: 0; min-height: 100%; font-family: var(--sans); background: radial-gradient(circle at top left, rgba(31, 122, 90, 0.28), transparent 32%), radial-gradient(circle at top right, rgba(15, 91, 132, 0.22), transparent 28%), linear-gradient(180deg, #09100e 0%, #101815 55%, #0a100f 100%); color: #f7f4ec; } body::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px); background-size: 32px 32px; mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.78), transparent 100%); } a { color: inherit; } button, input, select { font: inherit; } .shell { width: 100%; margin: 0; padding: 18px 14px 36px; } .status-bar { position: sticky; top: 14px; z-index: 20; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); padding: 18px; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 24px; background: rgba(8, 12, 11, 0.84); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.26); backdrop-filter: blur(14px); } .status-tile { min-width: 0; min-height: 92px; padding: 12px 14px; border-radius: 18px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); } .status-label, .eyebrow { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(247, 244, 236, 0.72); } .status-value, .metric-value { margin-top: 10px; font-size: 1.22rem; font-weight: 700; } .status-subtle, .muted { margin-top: 6px; color: rgba(247, 244, 236, 0.66); font-size: 0.88rem; } .app-grid { margin-top: 20px; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; } .side-nav { padding: 16px; border-radius: var(--radius); background: rgba(8, 12, 11, 0.78); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: var(--shadow); height: fit-content; } .nav-title { margin: 0 0 14px; font-size: 1rem; font-weight: 700; } .nav-stack { display: grid; gap: 10px; } .nav-button, .button { border: 0; border-radius: 14px; padding: 12px 14px; text-align: left; color: inherit; background: rgba(255, 255, 255, 0.06); cursor: pointer; transition: transform 160ms ease, background 160ms ease; } .nav-button:hover, .button:hover { transform: translateY(-1px); background: rgba(255, 255, 255, 0.1); } .nav-button.active { background: linear-gradient(135deg, rgba(31, 122, 90, 0.88), rgba(15, 91, 132, 0.88)); box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24); } .content { display: grid; gap: 18px; } .banner { padding: 14px 18px; border-radius: 18px; background: rgba(8, 12, 11, 0.78); border: 1px solid rgba(255, 255, 255, 0.1); } .banner + .banner { margin-top: 12px; } .banner.ok { border-color: rgba(31, 122, 90, 0.48); } .banner.error { border-color: rgba(182, 67, 40, 0.58); } .panel { padding: 20px; border-radius: var(--radius); background: var(--panel); color: var(--ink); box-shadow: var(--shadow); border: 1px solid rgba(255, 255, 255, 0.12); } .panel h2, .panel h3 { margin: 0; } .panel-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; } .panel-subtitle { margin-top: 8px; color: var(--muted); } .metric-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } .metric-stack { display: grid; gap: 14px; grid-template-columns: 1fr; } .metric-card { min-width: 0; padding: 16px; border-radius: 18px; background: var(--panel-2); border: 1px solid var(--line); } .metric-card.hero { background: linear-gradient(135deg, rgba(31, 122, 90, 0.16), rgba(15, 91, 132, 0.12)); } .metric-meta { margin-top: 8px; color: var(--muted); font-size: 0.9rem; } .value-positive { color: var(--ok); } .value-negative { color: var(--critical); } .section-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); } .stack-grid { display: grid; gap: 18px; grid-template-columns: 1fr; } .strategy-layout { display: grid; gap: 18px; grid-template-columns: minmax(0, 1.75fr) minmax(320px, 0.85fr); align-items: start; } .strategy-side-panel { height: 100%; } .two-column-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); margin-top: 14px; } .competitiveness-snapshot-note { margin-bottom: 14px; } .competitiveness-table-stack { margin-top: 14px; } .competitiveness-table { table-layout: fixed; min-width: 1040px; } .competitiveness-table tbody tr { height: 64px; } .competitiveness-detail-table tbody tr { height: 88px; } .competitiveness-table td { overflow: hidden; } .competitiveness-placeholder-row td { height: inherit; color: var(--muted); } .competitiveness-error-text { display: -webkit-box; max-height: 60px; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } .checkbox-row { display: inline-flex; align-items: center; gap: 8px; min-width: 0; } .timing-waterfall-table { min-width: 720px; } .storage-retention-table td { white-space: nowrap; } .table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 18px; background: rgba(255, 255, 255, 0.52); } table { width: 100%; border-collapse: collapse; min-width: 620px; } table.pair-compact-table, table.decision-table { min-width: 0; } table.pair-compact-table, table.decision-table { table-layout: fixed; } table.pair-compact-table td:nth-child(2), table.pair-compact-table th:nth-child(2) { width: 24%; } th, td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; } th { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); background: rgba(255, 255, 255, 0.72); } tr:last-child td { border-bottom: 0; } .mono { font-family: var(--mono); } .truncate-line, .truncate-cell { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } pre { margin: 0; white-space: pre-wrap; word-break: break-word; font: inherit; } table.decision-table td:nth-child(2), table.decision-table th:nth-child(2) { width: 180px; white-space: nowrap; } table.decision-table td:nth-child(3), table.decision-table th:nth-child(3) { width: 28%; } table.lifecycle-table td:nth-child(5), table.lifecycle-table th:nth-child(5) { width: 34%; } .pills, .button-row, .form-row { display: flex; flex-wrap: wrap; gap: 10px; } .pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 11px; border-radius: 999px; background: rgba(24, 33, 30, 0.08); color: var(--ink); font-size: 0.82rem; } .pill.severity-critical, .pill.bad { background: rgba(182, 67, 40, 0.12); color: var(--critical); } .pill.severity-warning, .pill.warn { background: rgba(179, 106, 12, 0.12); color: var(--warn); } .pill.severity-info, .pill.good { background: rgba(31, 122, 90, 0.12); color: var(--ok); } .button { background: rgba(24, 33, 30, 0.92); color: #f7f4ec; } .button.secondary { background: rgba(24, 33, 30, 0.08); color: var(--ink); border: 1px solid var(--line); } .button[disabled] { opacity: 0.45; cursor: default; transform: none; } .button-row { margin-top: 12px; } .trace-row { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 6px; } .trace-row:last-child { margin-bottom: 0; } .trace-id { flex: 1; min-width: 0; overflow-wrap: anywhere; } .trace-copy-button { padding: 4px 8px; font-size: 0.75rem; line-height: 1.2; } .form-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin-top: 14px; } .field { display: grid; gap: 6px; } .field label { font-size: 0.84rem; color: var(--muted); } .field input, .field select { width: 100%; padding: 11px 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.82); color: var(--ink); } .split { display: grid; gap: 18px; grid-template-columns: 1.3fr 0.9fr; } .service-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } .service-card { padding: 16px; border-radius: 18px; background: var(--panel-2); border: 1px solid var(--line); } .service-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; } .service-detail { margin-top: 12px; display: grid; gap: 8px; color: var(--muted); } .pagination { margin-top: 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; } .empty { padding: 18px; border-radius: 18px; background: rgba(255, 255, 255, 0.56); color: var(--muted); } @media (max-width: 1100px) { .app-grid, .split, .strategy-layout, .two-column-grid { grid-template-columns: 1fr; } .side-nav { position: static; } } @media (max-width: 720px) { .shell { padding: 10px 8px 36px; } .status-bar { position: static; top: auto; z-index: auto; border-radius: 20px; } .panel, .side-nav { padding: 16px; } table { min-width: 540px; } } .quote-lifecycle-table, .successful-trades-table { min-width: 1180px; table-layout: fixed; } .quote-lifecycle-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; } .quote-lifecycle-snapshot-note { margin-bottom: 12px; } .toggle-field { display: inline-flex; align-items: center; gap: 8px; min-height: 43px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(24, 33, 30, 0.08); color: var(--ink); cursor: pointer; } .toggle-field input { width: 16px; height: 16px; accent-color: var(--accent); } .quote-lifecycle-table th:nth-child(1), .quote-lifecycle-table td:nth-child(1) { width: 150px; } .quote-lifecycle-table tbody tr.quote-lifecycle-row, .quote-lifecycle-table tbody tr.quote-lifecycle-placeholder-row { height: 112px; } .quote-lifecycle-table td { overflow: hidden; } .quote-lifecycle-table .trace-row { align-items: center; min-width: 0; } .quote-lifecycle-table .trace-id { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .quote-lifecycle-table .pill { width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .quote-lifecycle-placeholder-row td { color: var(--muted); } .quote-lifecycle-cell { display: grid; gap: 4px; min-width: 0; } .lifecycle-line { min-height: 1.35em; } .lifecycle-clamp-one { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .lifecycle-clamp-two { display: -webkit-box; max-height: 2.7em; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .quote-age { font-variant-numeric: tabular-nums; } .quote-row-flash td { animation: quote-row-flash-cell 1800ms ease-out; } @keyframes quote-row-flash-cell { 0% { background: rgba(31, 122, 90, 0.24); box-shadow: inset 4px 0 0 rgba(31, 122, 90, 0.72); } 100% { background: transparent; box-shadow: inset 0 0 0 rgba(31, 122, 90, 0); } } .quote-lifecycle-table th:nth-child(2), .quote-lifecycle-table td:nth-child(2) { width: 260px; } .quote-lifecycle-table th:nth-child(3), .quote-lifecycle-table td:nth-child(3) { width: 210px; } .quote-lifecycle-table th:nth-child(4), .quote-lifecycle-table td:nth-child(4) { width: 140px; } .quote-lifecycle-table th:nth-child(5), .quote-lifecycle-table td:nth-child(5) { width: 150px; } .quote-lifecycle-table th:nth-child(7), .quote-lifecycle-table td:nth-child(7) { width: 140px; } .quote-lifecycle-table th:nth-child(8), .quote-lifecycle-table td:nth-child(8), .successful-trades-table th:nth-child(7), .successful-trades-table td:nth-child(7) { width: 150px; } .successful-trades-table { min-width: 1040px; } .successful-trades-table th:nth-child(1), .successful-trades-table td:nth-child(1) { width: 150px; } .successful-trades-table th:nth-child(2), .successful-trades-table td:nth-child(2) { width: 260px; } .successful-trades-table th:nth-child(3), .successful-trades-table td:nth-child(3), .successful-trades-table th:nth-child(4), .successful-trades-table td:nth-child(4) { width: 140px; } .lifecycle-expanded-row td { background: rgba(24, 33, 30, 0.05); } .lifecycle-detail-panel { display: grid; gap: 14px; } .lifecycle-stage-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .lifecycle-stage-card { min-width: 0; padding: 14px; border-radius: 16px; background: var(--panel-2); border: 1px solid var(--line); } .stage-title { font-weight: 700; } .stage-meta, .stage-status, .stage-body { margin-top: 6px; color: var(--muted); } .stage-status { color: var(--ink); } .trace-block { padding: 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.48); border: 1px solid var(--line); }