:root {
    --bg: #12141a;
    --panel: #1b1e26;
    --text: #e6e8ee;
    --muted: #9aa3b2;
    --accent: #4c8dff;
    --info: #9aa3b2;
    --success: #4ade80;
    --warn: #fbbf24;
    --error: #f87171;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    line-height: 1.5;
}

.page { max-width: 60rem; margin: 0 auto; padding: 2rem 1.25rem 4rem; }

h1 { margin: 0 0 .25rem; font-size: 1.6rem; }
.lede { margin: 0 0 1.5rem; color: var(--muted); }
.note { color: var(--muted); font-size: .85rem; margin: .75rem 0 1.5rem; }

.inputs { display: grid; gap: 1rem; }
.inputs label { display: grid; gap: .35rem; font-size: .85rem; color: var(--muted); }

input {
    background: var(--panel);
    border: 1px solid #2c313d;
    border-radius: .4rem;
    color: var(--text);
    font: inherit;
    padding: .6rem .7rem;
}

input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }

.actions { display: flex; gap: .75rem; flex-wrap: wrap; }

button {
    background: var(--accent);
    border: 0;
    border-radius: .4rem;
    color: #fff;
    cursor: pointer;
    font: inherit;
    padding: .6rem 1.1rem;
}

button.secondary { background: transparent; border: 1px solid #2c313d; color: var(--muted); }
button:disabled { opacity: .55; cursor: default; }

.log { background: var(--panel); border: 1px solid #2c313d; border-radius: .5rem; }

.log-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .6rem .8rem;
    border-bottom: 1px solid #2c313d;
    font-size: .85rem;
    color: var(--muted);
}

.log-entries {
    list-style: none;
    margin: 0;
    padding: .5rem;
    max-height: 32rem;
    overflow-y: auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .8rem;
}

.entry { padding: .2rem .3rem; display: grid; grid-template-columns: auto auto 1fr; gap: .6rem; }
.entry .at { color: #6b7280; }
.entry .level { font-weight: 600; }
.entry .message { word-break: break-word; }
.entry .detail { grid-column: 3; margin: .3rem 0 .5rem; white-space: pre-wrap; word-break: break-all; color: var(--muted); }

.entry.info .level { color: var(--info); }
.entry.success .level { color: var(--success); }
.entry.warn .level { color: var(--warn); }
.entry.error .level { color: var(--error); }

#blazor-error-ui {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    box-sizing: border-box;
    padding: .75rem 3rem .75rem 1.25rem;
    background: var(--error);
    color: #2a0d0d;
    font-size: .9rem;
}

#blazor-error-ui .reload {
    color: #2a0d0d;
    font-weight: 600;
    text-decoration: underline;
    margin-left: .5rem;
}

#blazor-error-ui .dismiss {
    position: absolute;
    right: 1rem;
    top: .6rem;
    cursor: pointer;
    color: #2a0d0d;
    font-weight: 600;
}
