:root { --bg: #0b0f14; --panel: #111821; --grid: #1c2a39; --text: #d6e3f0; --accent: #48d1b8; --muted: #7f93aa; } * { box-sizing: border-box; } body { margin: 0; font-family: "IBM Plex Sans", "Segoe UI", sans-serif; background: radial-gradient(circle at 20% 20%, #14202e, #0b0f14 60%); color: var(--text); height: 100vh; display: flex; flex-direction: column; } header, footer { padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; background: linear-gradient(90deg, #0f1824, #0b0f14); border-bottom: 1px solid #0f2233; } footer { border-top: 1px solid #0f2233; border-bottom: none; } .title { font-weight: 600; letter-spacing: 0.02em; } .meta { font-size: 0.9rem; color: var(--muted); } main { flex: 1; display: grid; grid-template-rows: 1fr 1.2fr; gap: 12px; padding: 12px; } .panel { background: var(--panel); border: 1px solid #13263b; border-radius: 10px; padding: 8px; position: relative; } canvas { width: 100%; height: 100%; border-radius: 6px; background: #06090d; } #status { color: var(--muted); } @media (max-width: 820px) { main { grid-template-rows: 1fr 1fr; } }