body { background: #0f1420; color: #e9eef8; font-family: system-ui, Arial, sans-serif; margin: 0; } header { align-items: center; background: #121a2a; border-bottom: 1px solid #27324a; display: flex; justify-content: space-between; padding: 12px 16px; flex-wrap: wrap; gap: 8px; } h1 { font-size: 18px; margin: 0; } main { display: grid; gap: 12px; grid-template-columns: 1fr; padding: 12px; max-width: 1200px; margin: 0 auto; } .panel { background: #111827; border: 1px solid #27324a; border-radius: 8px; } .panel h2 { color: #a3b5d9; font-size: 14px; margin: 0; padding: 12px 12px 0; } .panel .content { padding: 12px; } .panel.log, .panel.state { grid-column: 1 / -1; } #log { background: #0b1020; color: #e9eef8; max-height: 50vh; min-height: 240px; overflow: auto; white-space: pre-wrap; } .row { display: flex; flex-wrap: wrap; gap: 8px; } /* Stack action buttons on small screens */ .actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } button { background: #1f2a44; border: 1px solid #2c3a5e; border-radius: 6px; color: #e9eef8; cursor: pointer; padding: 10px 12px; } button:hover { background: #263356; } button:disabled { cursor: not-allowed; opacity: 0.5; } .hidden { display: none; visibility: hidden; } .muted { color: #a3b5d9; } .sep { background: #27324a; height: 1px; margin: 8px 0; } .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; } .kv { display: flex; gap: 8px; justify-content: space-between; margin: 2px 0; } .kv .label { color: #a3b5d9; } @media (min-width: 700px) { main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 16px; } #log { max-height: 60vh; } .actions { display: flex; flex-wrap: wrap; } } @media (min-width: 1024px) { main { grid-template-columns: 320px 1fr; } } /* Back to Top */ #backToTop { position: fixed; right: 16px; bottom: 16px; z-index: 1000; background: #1f2a44; border: 1px solid #2c3a5e; color: #e9eef8; border-radius: 999px; padding: 10px 14px; box-shadow: 0 6px 16px rgba(0,0,0,0.35); opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .2s ease, transform .2s ease; } #backToTop:hover { background: #263356; } #backToTop.show { opacity: 1; pointer-events: auto; transform: translateY(0); }