:root { font-family: "IBM Plex Sans", "Segoe UI", sans-serif; color: #111827; background: radial-gradient(circle at top, #f7f8fb 0%, #eef2ff 45%, #f8fafc 100%); } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; } #root { min-height: 100vh; } .app { width: min(960px, 94vw); margin: 0 auto; padding: 1.5rem 0 3rem; } .card { background: #ffffff; border: 1px solid #dbe3f4; border-radius: 14px; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08); padding: 1rem; margin-top: 1rem; } .row { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; } .col { display: flex; flex-direction: column; gap: 0.5rem; } input, select, textarea { border: 1px solid #c8d2ea; border-radius: 10px; padding: 0.6rem 0.8rem; font: inherit; } textarea { min-height: 120px; resize: vertical; } button { border: none; border-radius: 10px; padding: 0.6rem 0.9rem; font-weight: 600; cursor: pointer; background: #1d4ed8; color: #ffffff; } button.secondary { background: #475569; } button.warn { background: #b91c1c; } button.ghost { background: #e2e8f0; color: #0f172a; } button:disabled { cursor: not-allowed; opacity: 0.6; } .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; } .alert { border-radius: 10px; padding: 0.7rem 0.9rem; border: 1px solid #fecaca; background: #fef2f2; color: #7f1d1d; } .muted { color: #475569; } .badge { display: inline-block; border-radius: 999px; background: #e2e8f0; color: #0f172a; padding: 0.2rem 0.6rem; font-size: 0.78rem; font-weight: 600; } .tabs { display: flex; gap: 0.5rem; flex-wrap: wrap; } .tabs button { background: #dbeafe; color: #1e3a8a; } .tabs button.active { background: #1d4ed8; color: #ffffff; } .spacer { flex: 1; } pre { margin: 0; background: #0f172a; color: #e2e8f0; border-radius: 10px; padding: 0.8rem; overflow: auto; max-height: 360px; }