/* Generated by scripts/build-ui-css.mjs. Edit assets/css/ui-components.css. */
/* Shared components. These classes own their appearance; utility classes may
 * handle composition. Never use an interaction hook as an appearance selector. */
.oz-ui-page { background: rgb(var(--oz-base)); color: rgb(var(--oz-text)); font-family: Inter, system-ui, sans-serif; }
.oz-ui-card { min-width: 0; padding: var(--oz-space-6); background: rgb(var(--oz-raised)); border: 1px solid rgb(var(--oz-border)); border-radius: var(--oz-radius-lg); box-shadow: var(--oz-shadow); }
.oz-ui-heading { margin: 0; color: rgb(var(--oz-ink)); font-weight: 700; letter-spacing: -.025em; }
.oz-ui-muted { color: rgb(var(--oz-ui-muted)); }
.oz-ui-subtle { color: rgb(var(--oz-ui-subtle)); }
.oz-ui-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--oz-space-2); min-height: 40px; padding: 9px 16px; border: 1px solid transparent; border-radius: var(--oz-radius-md); background: rgb(var(--oz-accent)); color: rgb(var(--oz-accent-ink)); font: 650 14px/1.3 Inter, system-ui, sans-serif; text-decoration: none; cursor: pointer; transition: background-color .15s, border-color .15s; }
.oz-ui-button:hover { background: rgb(var(--oz-accent-hover)); }
.oz-ui-button--secondary { background: rgb(var(--oz-elevated)); border-color: rgb(var(--oz-border)); color: rgb(var(--oz-text)); }
.oz-ui-button--secondary:hover { background: rgb(var(--oz-surface)); border-color: rgb(var(--oz-ui-muted)); }
.oz-ui-button--quiet { background: transparent; color: rgb(var(--oz-ui-muted)); }
.oz-ui-button--quiet:hover { background: rgb(var(--oz-elevated)); color: rgb(var(--oz-ink)); }
.oz-ui-button--compact { min-height: 32px; padding: 5px 10px; font-size: 12px; }
.oz-ui-button:disabled { opacity: .5; cursor: not-allowed; }
.oz-ui-button:focus-visible, .oz-ui-input:focus-visible, .oz-ui-link:focus-visible, .oz-ui-checkbox:focus-visible { outline: 2px solid rgb(var(--oz-accent-text)); outline-offset: 3px; }
.oz-ui-field { min-width: 0; display: grid; gap: 7px; }
.oz-ui-label { color: rgb(var(--oz-ui-muted)); font-size: 12px; font-weight: 600; }
.oz-ui-input { width: 100%; box-sizing: border-box; min-height: 42px; padding: 10px 12px; border: 1px solid rgb(var(--oz-border)); border-radius: var(--oz-radius-md); background: rgb(var(--oz-surface)); color: rgb(var(--oz-ink)); font: inherit; font-size: 14px; }
.oz-ui-input::placeholder { color: rgb(var(--oz-ui-subtle)); opacity: 1; }
.oz-ui-input:focus { border-color: rgb(var(--oz-accent-text)); }
.oz-ui-checkbox { accent-color: rgb(var(--oz-accent)); }
.oz-ui-link { color: rgb(var(--oz-accent-text)); text-underline-offset: 3px; }
.oz-ui-link:hover { text-decoration: underline; }
.oz-ui-notice { padding: 12px 14px; border: 1px solid rgb(var(--oz-border)); border-radius: var(--oz-radius-md); background: rgb(var(--oz-surface)); color: rgb(var(--oz-ui-muted)); font-size: 13px; line-height: 1.55; }
.oz-ui-notice--error { background: rgb(var(--oz-negative-bg)); border-color: rgb(var(--oz-negative) / .4); color: rgb(var(--oz-negative)); }
.oz-ui-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-radius: var(--oz-radius-sm); background: rgb(var(--oz-elevated)); color: rgb(var(--oz-ui-muted)); font-size: 12px; font-weight: 650; white-space: nowrap; }
.oz-ui-badge--positive { background: rgb(var(--oz-positive-bg)); color: rgb(var(--oz-positive)); }
.oz-ui-badge--negative { background: rgb(var(--oz-negative-bg)); color: rgb(var(--oz-negative)); }
.oz-ui-badge--warning { background: rgb(var(--oz-warning-bg)); color: rgb(var(--oz-warning)); }
.oz-ui-table-scroll { overflow-x: auto; border: 1px solid rgb(var(--oz-border)); border-radius: var(--oz-radius-md); }
.oz-ui-table { width: 100%; border-collapse: collapse; font-size: 13px; text-align: left; white-space: nowrap; }
.oz-ui-table th { padding: 10px 14px; background: rgb(var(--oz-surface)); color: rgb(var(--oz-ui-muted)); font-size: 11px; font-weight: 650; }
.oz-ui-table td { padding: 12px 14px; border-top: 1px solid rgb(var(--oz-border)); }
.oz-ui-table tbody tr:hover { background: rgb(var(--oz-elevated)); }
.oz-ui-table .oz-ui-odds { font-variant-numeric: tabular-nums; font-weight: 650; }
.oz-ui-table .oz-ui-odds--best { color: rgb(var(--oz-positive)); background: rgb(var(--oz-positive-bg)); }
.oz-ui-dialog { box-sizing: border-box; width: min(480px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: 24px; border: 1px solid rgb(var(--oz-border)); border-radius: var(--oz-radius-lg); background: rgb(var(--oz-raised)); color: rgb(var(--oz-text)); box-shadow: var(--oz-shadow); }
.oz-ui-dialog::backdrop { background: var(--oz-overlay); }
.oz-ui-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
@media (prefers-reduced-motion: reduce) { .oz-ui-button { transition: none; } }
