:root {
    --bg: #f5f7fb;
    --surface: #ffffff;
    --text: #111827;
    --muted: #6b7280;
    --border: #e5e7eb;
    --brand: #2563eb;
    --brand-strong: #1d4ed8;
    --brand-soft: #eff6ff;
    --danger: #b91c1c;
    --danger-soft: #fef2f2;
    --success: #15803d;
    --success-soft: #ecfdf3;
    --warning: #9a3412;
    --warning-soft: #fff7ed;
    --neutral-soft: #f8fafc;
    --focus-ring: #93c5fd;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    font-family: Inter, Segoe UI, Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
}

h1,
h2,
h3 {
    margin: 0 0 0.75rem;
}

p {
    margin: 0.4rem 0 0.8rem;
}

button,
.btn {
    appearance: none;
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: 6px;
    padding: 0.55rem 0.8rem;
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    font: inherit;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

button:hover,
.btn:hover {
    border-color: #c5cedd;
}

button:focus-visible,
.btn:focus-visible,
a:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--focus-ring);
    outline-offset: 2px;
}

button:disabled,
.btn[disabled],
.btn.is-disabled,
a.btn[aria-disabled="true"] {
    opacity: 0.6;
    cursor: not-allowed;
    pointer-events: none;
}

pre {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
