| :root { |
| color-scheme: dark; |
| font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; |
| background: |
| radial-gradient(circle at top left, rgba(53, 84, 200, 0.18), transparent 35%), |
| radial-gradient(circle at 80% 20%, rgba(255, 77, 109, 0.14), transparent 28%), |
| linear-gradient(180deg, #050816 0%, #08101d 50%, #03060f 100%); |
| color: #e5eefc; |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| html, |
| body, |
| #root { |
| margin: 0; |
| min-height: 100%; |
| background: transparent; |
| } |
|
|
| body { |
| min-height: 100vh; |
| } |
|
|
| button, |
| input, |
| select, |
| textarea { |
| font: inherit; |
| } |
|
|
| .app-shell { |
| position: relative; |
| min-height: 100vh; |
| padding: 28px; |
| overflow: hidden; |
| } |
|
|
| .background-orb { |
| position: absolute; |
| border-radius: 999px; |
| filter: blur(70px); |
| opacity: 0.32; |
| pointer-events: none; |
| } |
|
|
| .orb-one { |
| top: -140px; |
| right: -120px; |
| width: 360px; |
| height: 360px; |
| background: rgba(120, 119, 255, 0.36); |
| } |
|
|
| .orb-two { |
| bottom: -120px; |
| left: -100px; |
| width: 320px; |
| height: 320px; |
| background: rgba(255, 90, 145, 0.22); |
| } |
|
|
| .hero-bar, |
| .panel, |
| .decision-graph-card { |
| position: relative; |
| backdrop-filter: blur(18px); |
| background: rgba(10, 16, 28, 0.72); |
| border: 1px solid rgba(148, 163, 184, 0.14); |
| box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35); |
| } |
|
|
| .hero-bar { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: 20px 24px; |
| border-radius: 24px; |
| margin-bottom: 22px; |
| } |
|
|
| .eyebrow { |
| margin: 0 0 8px; |
| text-transform: uppercase; |
| letter-spacing: 0.24em; |
| font-size: 12px; |
| color: #8fb8ff; |
| } |
|
|
| .hero-bar h1 { |
| margin: 0; |
| font-size: clamp(2rem, 4vw, 3.5rem); |
| letter-spacing: -0.04em; |
| } |
|
|
| .hero-copy { |
| margin: 10px 0 0; |
| max-width: 760px; |
| color: rgba(226, 236, 255, 0.72); |
| } |
|
|
| .status-pill { |
| display: inline-flex; |
| align-items: center; |
| gap: 10px; |
| padding: 12px 16px; |
| border-radius: 999px; |
| border: 1px solid rgba(148, 163, 184, 0.18); |
| background: rgba(15, 23, 42, 0.72); |
| color: #e2ebff; |
| } |
|
|
| .status-pill.online .status-dot { |
| background: #22c55e; |
| box-shadow: 0 0 0 8px rgba(34, 197, 94, 0.12); |
| } |
|
|
| .status-pill.offline .status-dot { |
| background: #ff4d6d; |
| box-shadow: 0 0 0 8px rgba(255, 77, 109, 0.12); |
| } |
|
|
| .status-dot { |
| width: 10px; |
| height: 10px; |
| border-radius: 999px; |
| } |
|
|
| .mission-grid { |
| display: grid; |
| grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.6fr) minmax(300px, 0.72fr); |
| gap: 22px; |
| align-items: start; |
| } |
|
|
| .left-rail, |
| .center-rail, |
| .right-rail { |
| display: grid; |
| gap: 22px; |
| } |
|
|
| .left-rail, |
| .right-rail { |
| position: sticky; |
| top: 24px; |
| } |
|
|
| .decision-graph-card, |
| .panel { |
| border-radius: 24px; |
| overflow: hidden; |
| } |
|
|
| .card-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: flex-start; |
| gap: 18px; |
| padding: 22px 24px 0; |
| } |
|
|
| .card-header h2 { |
| margin: 0; |
| font-size: 1.25rem; |
| } |
|
|
| .card-header p { |
| margin: 8px 0 0; |
| color: rgba(218, 229, 251, 0.68); |
| font-size: 14px; |
| } |
|
|
| .decision-graph-svg { |
| width: 100%; |
| display: block; |
| min-height: 620px; |
| padding: 8px 10px 0; |
| } |
|
|
| .tree-footer { |
| display: flex; |
| justify-content: space-between; |
| gap: 14px; |
| padding: 0 24px 22px; |
| color: rgba(216, 228, 255, 0.72); |
| font-size: 13px; |
| } |
|
|
| .legend-dot { |
| display: inline-block; |
| width: 10px; |
| height: 10px; |
| border-radius: 999px; |
| margin-right: 8px; |
| } |
|
|
| .legend-dot.unlocked { |
| background: #4ade80; |
| } |
|
|
| .legend-dot.locked { |
| background: #8b1d2d; |
| } |
|
|
| .chart-panel, |
| .feed-panel { |
| padding-bottom: 22px; |
| } |
|
|
| .metric-group { |
| display: flex; |
| gap: 14px; |
| } |
|
|
| .metric { |
| min-width: 92px; |
| padding: 12px 14px; |
| border-radius: 16px; |
| background: rgba(17, 24, 39, 0.8); |
| border: 1px solid rgba(148, 163, 184, 0.12); |
| } |
|
|
| .metric-label { |
| display: block; |
| font-size: 12px; |
| color: rgba(203, 213, 225, 0.7); |
| margin-bottom: 6px; |
| } |
|
|
| .metric strong { |
| font-size: 1.35rem; |
| } |
|
|
| .trust-panel { |
| overflow: hidden; |
| } |
|
|
| .trust-header { |
| align-items: center; |
| } |
|
|
| .trust-readout { |
| display: flex; |
| align-items: baseline; |
| gap: 8px; |
| padding: 14px 16px; |
| border-radius: 18px; |
| background: rgba(15, 23, 42, 0.78); |
| border: 1px solid rgba(148, 163, 184, 0.12); |
| min-width: 108px; |
| justify-content: center; |
| } |
|
|
| .trust-readout span { |
| font-size: 2rem; |
| font-weight: 800; |
| line-height: 1; |
| } |
|
|
| .trust-readout small { |
| color: rgba(203, 213, 225, 0.7); |
| } |
|
|
| .trust-readout.stable span { |
| color: #4ade80; |
| } |
|
|
| .trust-readout.warning span { |
| color: #ff8fa0; |
| } |
|
|
| .gauge-shell { |
| padding: 8px 24px 18px; |
| } |
|
|
| .gauge-track { |
| position: relative; |
| height: 26px; |
| border-radius: 999px; |
| background: linear-gradient(90deg, rgba(15, 23, 42, 0.95), rgba(17, 24, 39, 0.85)); |
| overflow: hidden; |
| border: 1px solid rgba(148, 163, 184, 0.16); |
| } |
|
|
| .gauge-fill { |
| position: absolute; |
| inset: 0 auto 0 0; |
| border-radius: 999px; |
| background: linear-gradient(90deg, #4ade80 0%, #facc15 52%, #ff4d6d 100%); |
| box-shadow: 0 0 22px rgba(255, 77, 109, 0.25); |
| transition: width 240ms ease, filter 240ms ease, box-shadow 240ms ease; |
| } |
|
|
| .trust-flash { |
| animation: trust-flash 750ms ease-in-out infinite; |
| } |
|
|
| .trust-flash .gauge-fill { |
| filter: saturate(1.4) brightness(1.1); |
| box-shadow: 0 0 32px rgba(255, 77, 109, 0.55); |
| } |
|
|
| .gauge-meta { |
| display: flex; |
| justify-content: space-between; |
| gap: 12px; |
| margin-top: 12px; |
| color: rgba(220, 230, 248, 0.75); |
| font-size: 13px; |
| } |
|
|
| .gauge-meta strong { |
| color: #ffb3c1; |
| letter-spacing: 0.08em; |
| } |
|
|
| .ticker-panel { |
| overflow: hidden; |
| } |
|
|
| .terminal-chip { |
| background: rgba(34, 197, 94, 0.12); |
| color: #8bf5b0; |
| border-color: rgba(74, 222, 128, 0.2); |
| } |
|
|
| .terminal-window { |
| position: relative; |
| margin: 18px 18px 0; |
| min-height: 420px; |
| padding: 18px 18px 22px; |
| border-radius: 18px; |
| background: |
| linear-gradient(180deg, rgba(2, 6, 23, 0.98), rgba(3, 10, 16, 0.95)), |
| radial-gradient(circle at top, rgba(34, 197, 94, 0.08), transparent 36%); |
| border: 1px solid rgba(74, 222, 128, 0.22); |
| box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.05); |
| overflow: hidden; |
| } |
|
|
| .terminal-window::before { |
| content: ''; |
| position: absolute; |
| inset: 0; |
| background-image: linear-gradient(rgba(74, 222, 128, 0.05) 1px, transparent 1px); |
| background-size: 100% 22px; |
| pointer-events: none; |
| opacity: 0.25; |
| } |
|
|
| .terminal-scanline { |
| position: absolute; |
| left: 0; |
| right: 0; |
| top: 0; |
| height: 2px; |
| background: linear-gradient(90deg, transparent, rgba(74, 222, 128, 0.9), transparent); |
| box-shadow: 0 0 18px rgba(74, 222, 128, 0.55); |
| animation: terminal-scan 4.5s linear infinite; |
| } |
|
|
| .terminal-line { |
| position: relative; |
| display: flex; |
| gap: 10px; |
| margin-bottom: 10px; |
| color: #8ef5a7; |
| font-family: 'IBM Plex Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; |
| font-size: 13px; |
| line-height: 1.55; |
| text-shadow: 0 0 12px rgba(74, 222, 128, 0.18); |
| z-index: 1; |
| } |
|
|
| .terminal-line.muted { |
| color: rgba(142, 245, 167, 0.65); |
| } |
|
|
| .terminal-prompt { |
| color: #4ade80; |
| } |
|
|
| .ticker-note { |
| margin: 16px 18px 0; |
| padding: 14px 16px 18px; |
| border-radius: 18px; |
| background: rgba(15, 23, 42, 0.78); |
| border: 1px solid rgba(148, 163, 184, 0.12); |
| } |
|
|
| .ticker-label { |
| display: inline-block; |
| margin-bottom: 8px; |
| text-transform: uppercase; |
| font-size: 11px; |
| letter-spacing: 0.18em; |
| color: rgba(168, 230, 173, 0.76); |
| } |
|
|
| .ticker-note p { |
| margin: 0; |
| color: #e3ffe6; |
| line-height: 1.6; |
| } |
|
|
| .chart-frame { |
| padding: 12px 16px 0; |
| } |
|
|
| .feed-list, |
| .option-list { |
| padding: 16px 18px 0; |
| display: grid; |
| gap: 12px; |
| } |
|
|
| .flash-row { |
| padding: 14px 16px; |
| border-radius: 18px; |
| border: 1px solid rgba(148, 163, 184, 0.12); |
| background: rgba(15, 23, 42, 0.72); |
| animation: pulse-soft 2.5s ease-in-out infinite; |
| } |
|
|
| .flash-row.safe { |
| box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.16); |
| } |
|
|
| .flash-row.danger { |
| box-shadow: inset 0 0 0 1px rgba(255, 77, 109, 0.2); |
| } |
|
|
| .flash-row-top { |
| display: flex; |
| justify-content: space-between; |
| gap: 10px; |
| margin-bottom: 8px; |
| font-size: 12px; |
| letter-spacing: 0.08em; |
| text-transform: uppercase; |
| } |
|
|
| .flash-level { |
| color: #a5b4fc; |
| } |
|
|
| .flash-row.safe .flash-label { |
| color: #b7f7c8; |
| } |
|
|
| .flash-row.danger .flash-label { |
| color: #ffb3c1; |
| } |
|
|
| .empty-state { |
| padding: 24px 16px; |
| color: rgba(203, 213, 225, 0.68); |
| border: 1px dashed rgba(148, 163, 184, 0.16); |
| border-radius: 18px; |
| } |
|
|
| .pulse-chip { |
| padding: 10px 12px; |
| border-radius: 999px; |
| background: rgba(76, 201, 240, 0.12); |
| color: #bae6fd; |
| border: 1px solid rgba(125, 211, 252, 0.18); |
| } |
|
|
| .option-row { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| padding: 14px 16px; |
| border-radius: 18px; |
| background: rgba(15, 23, 42, 0.78); |
| border: 1px solid rgba(148, 163, 184, 0.12); |
| } |
|
|
| .option-row.enabled strong { |
| color: #4ade80; |
| } |
|
|
| .option-row.disabled strong { |
| color: #fb7185; |
| } |
|
|
| .footer-bar { |
| display: flex; |
| justify-content: space-between; |
| gap: 12px; |
| padding: 20px 8px 0; |
| color: rgba(203, 213, 225, 0.72); |
| font-size: 13px; |
| } |
|
|
| @keyframes pulse-soft { |
| 0%, |
| 100% { |
| transform: translateY(0); |
| opacity: 0.96; |
| } |
| 50% { |
| transform: translateY(-1px); |
| opacity: 1; |
| } |
| } |
|
|
| @keyframes terminal-scan { |
| 0% { |
| transform: translateY(0); |
| } |
| 100% { |
| transform: translateY(420px); |
| } |
| } |
|
|
| @keyframes trust-flash { |
| 0%, |
| 100% { |
| transform: translateX(0); |
| box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35); |
| } |
| 50% { |
| transform: translateX(2px); |
| box-shadow: 0 24px 80px rgba(255, 77, 109, 0.16); |
| } |
| } |
|
|
| @media (max-width: 1200px) { |
| .mission-grid { |
| grid-template-columns: 1fr; |
| } |
|
|
| .left-rail, |
| .right-rail { |
| grid-template-columns: repeat(2, minmax(0, 1fr)); |
| position: static; |
| } |
|
|
| .center-rail { |
| order: -1; |
| } |
| } |
|
|
| @media (max-width: 800px) { |
| .app-shell { |
| padding: 18px; |
| } |
|
|
| .hero-bar, |
| .card-header, |
| .tree-footer, |
| .footer-bar { |
| flex-direction: column; |
| align-items: flex-start; |
| } |
|
|
| .left-rail, |
| .right-rail { |
| grid-template-columns: 1fr; |
| } |
|
|
| .terminal-window { |
| min-height: 300px; |
| } |
| } |
|
|