/* =========================================================
   Angler.org UI Foundation
   Stand: 20260726-ui-foundation-v8

   Ziel:
   - gemeinsame Design-Tokens
   - wiederverwendbare UI-Komponenten
   - keine erzwungene Migration bestehender Spezialkomponenten
   ========================================================= */

:root {
    /* ---------- Farben / Oberflächen ---------- */
    --ui-bg: var(--primary-bg-color, #111111);
    --ui-surface-1: var(--secondary-bg-color, #222222);
    --ui-surface-2: #282828;
    --ui-surface-3: #303030;
    --ui-surface-hover: #383838;
    --ui-surface-active: #404040;
    --ui-control-bg: #202020;

    --ui-text: var(--text-color, #ffffff);
    --ui-text-muted: var(--text-muted-color, #cccccc);
    --ui-text-subtle: #9b9b9b;

    --ui-border: rgba(255, 255, 255, .14);
    --ui-border-strong: rgba(255, 255, 255, .24);
    --ui-divider: rgba(255, 255, 255, .10);

    --ui-accent: var(--accent-color, #e9a624);
    --ui-accent-hover: #f0b43a;
    --ui-accent-contrast: #111111;

    --ui-success: #3fb950;
    --ui-warning: #e9a624;
    --ui-danger: #e05252;
    --ui-info: #5ca7ff;

    /* ---------- Abstände ---------- */
    --ui-space-1: 4px;
    --ui-space-2: 8px;
    --ui-space-3: 12px;
    --ui-space-4: 16px;
    --ui-space-5: 20px;
    --ui-space-6: 24px;
    --ui-space-8: 32px;

    /* ---------- Radien ---------- */
    --ui-radius-xs: 4px;
    --ui-radius-sm: 6px;
    --ui-radius-md: 10px;
    --ui-radius-lg: 14px;
    --ui-radius-xl: 18px;
    --ui-radius-pill: 999px;

    /* ---------- Größen ---------- */
    --ui-control-height-sm: 34px;
    --ui-control-height: 42px;
    --ui-control-height-lg: 48px;
    --ui-icon-size: 18px;
    --ui-touch-target: 44px;

    /* ---------- Typografie ---------- */
    --ui-font-size-xs: 12px;
    --ui-font-size-sm: 14px;
    --ui-font-size-md: 16px;
    --ui-font-size-lg: 18px;
    --ui-font-weight-normal: 400;
    --ui-font-weight-medium: 600;
    --ui-font-weight-bold: 700;

    /* ---------- Effekte ---------- */
    --ui-focus-ring: 0 0 0 3px rgba(233, 166, 36, .22);
    --ui-shadow-card: 0 8px 24px rgba(0, 0, 0, .18);
    --ui-shadow-layer: 0 18px 56px rgba(0, 0, 0, .42);
    --ui-backdrop: rgba(0, 0, 0, .62);

    --ui-transition-fast: 140ms ease;
    --ui-transition-normal: 200ms ease;

    /* ---------- Layer ---------- */
    --ui-z-dropdown: 1400;
    --ui-z-drawer: 2400;
    --ui-z-modal: 2600;
    --ui-z-toast: 3200;

    /* ---------- Brücke zu bestehenden Global-Tokens ---------- */
    --card-radius-global: var(--ui-radius-lg);
    --form-control-height: var(--ui-control-height);
    --form-control-radius: var(--ui-radius-md);
    --form-control-padding-x: var(--ui-space-3);
    --form-control-bg: var(--ui-control-bg);
    --form-control-border: var(--ui-border);
    --form-control-text: var(--ui-text);
    --form-control-placeholder: var(--ui-text-subtle);
    --form-control-focus-shadow: var(--ui-focus-ring);
    --checkbox-border: var(--ui-border-strong);
    --checkbox-focus-shadow: var(--ui-focus-ring);
}

body.light-mode {
    /* Die UI-Foundation verwendet im Lightmode bewusst eigene, sehr helle
       Oberflächen und übernimmt nicht mehr die dunkleren Legacy-Surfaces. */
    --ui-bg: #f6f6f6;
    --ui-surface-1: #fbfbfb;
    --ui-surface-2: #f4f4f4;
    --ui-surface-3: #ffffff;
    --ui-surface-hover: #f0f0f0;
    --ui-surface-active: #e8e8e8;
    --ui-control-bg: #ffffff;

    --ui-text: #202020;
    --ui-text-muted: #606060;
    --ui-text-subtle: #777777;

    --ui-border: rgba(0, 0, 0, .13);
    --ui-border-strong: rgba(0, 0, 0, .22);
    --ui-divider: rgba(0, 0, 0, .09);

    --ui-accent: var(--accent-color, #000000);
    --ui-accent-hover: #242424;
    --ui-accent-contrast: #ffffff;

    --ui-focus-ring: 0 0 0 3px rgba(0, 0, 0, .16);
    --ui-shadow-card: 0 6px 20px rgba(0, 0, 0, .07);
    --ui-shadow-layer: 0 18px 56px rgba(0, 0, 0, .16);
    --ui-backdrop: rgba(0, 0, 0, .44);
}

/* =========================================================
   Gemeinsame Basis
   ========================================================= */

.ui-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.ui-divider {
    width: 100%;
    height: 1px;
    border: 0;
    margin: var(--ui-space-4) 0;
    background: var(--ui-divider);
}

/* Einheitlicher Tastaturfokus für neue UI-Komponenten. */
:where(.ui-btn,
    .ui-icon-btn,
    .ui-chip,
    .ui-input,
    .ui-select,
    .ui-textarea,
    .ui-checkbox):focus-visible {
    outline: none;
    box-shadow: var(--ui-focus-ring);
}

/* =========================================================
   Buttons
   ========================================================= */

.ui-btn {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ui-space-2);
    min-width: 0;
    min-height: var(--ui-control-height);
    height: var(--ui-control-height);
    padding: 0 var(--ui-space-4);
    border: 1px solid var(--ui-border-strong);
    border-radius: var(--ui-radius-md);
    background: var(--ui-control-bg);
    color: var(--ui-text);
    font: inherit;
    font-size: var(--ui-font-size-sm);
    font-weight: var(--ui-font-weight-medium);
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    box-sizing: border-box;
    box-shadow: none;
    transition:
        background-color var(--ui-transition-fast),
        border-color var(--ui-transition-fast),
        color var(--ui-transition-fast),
        transform var(--ui-transition-fast),
        opacity var(--ui-transition-fast);
}

.ui-btn:hover:not(:disabled):not([aria-disabled="true"]) {
    background: var(--ui-surface-hover);
    border-color: var(--ui-border-strong);
    color: var(--ui-text);
    transform: translateY(-1px);
}

.ui-btn:active:not(:disabled):not([aria-disabled="true"]) {
    background: var(--ui-surface-active);
    transform: translateY(0);
}

.ui-btn:disabled,
.ui-btn[aria-disabled="true"] {
    opacity: .48;
    cursor: not-allowed;
    pointer-events: none;
}

.ui-btn--primary {
    border-color: var(--ui-border-strong);
    background: var(--ui-accent);
    color: var(--ui-accent-contrast);
}

.ui-btn--primary:hover:not(:disabled):not([aria-disabled="true"]) {
    border-color: var(--ui-border-strong);
    background: var(--ui-accent-hover);
    color: var(--ui-accent-contrast);
}

.ui-btn--secondary {
    border-color: var(--ui-border-strong);
    background: var(--ui-control-bg);
    color: var(--ui-text);
}

.ui-btn--ghost {
    background: transparent;
    color: var(--ui-text);
}

.ui-btn--danger {
    border-color: var(--ui-danger);
    background: var(--ui-danger);
    color: #ffffff;
}

.ui-btn--danger:hover:not(:disabled):not([aria-disabled="true"]) {
    border-color: #ef6666;
    background: #ef6666;
    color: #ffffff;
}

.ui-btn--sm {
    height: var(--ui-control-height-sm);
    min-height: var(--ui-control-height-sm);
    padding: 0 var(--ui-space-3);
    border-radius: var(--ui-radius-sm);
    font-size: var(--ui-font-size-xs);
}

.ui-btn--lg {
    height: var(--ui-control-height-lg);
    min-height: var(--ui-control-height-lg);
    padding: 0 var(--ui-space-5);
    font-size: var(--ui-font-size-md);
}

.ui-btn--block {
    width: 100%;
}

/*
 * Schutzschicht gegen ältere globale Button-Hover-Regeln aus index.css.
 * Migrierte ui-* Komponenten sollen ausschließlich ihre UI-Tokens verwenden.
 */
body.dark-mode button.ui-btn:hover:not(:disabled):not([aria-disabled="true"]),
body.dark-mode a.ui-btn:hover:not([aria-disabled="true"]),
body.dark-mode button.ui-icon-btn:hover:not(:disabled) {
    background: var(--ui-surface-hover);
    border-color: var(--ui-border-strong);
    color: var(--ui-text);
}

body.dark-mode button.ui-btn.ui-btn--primary:hover:not(:disabled):not([aria-disabled="true"]),
body.dark-mode a.ui-btn.ui-btn--primary:hover:not(:disabled):not([aria-disabled="true"]) {
    background: var(--ui-accent-hover);
    border-color: var(--ui-border-strong);
    color: var(--ui-accent-contrast);
}

.ui-icon-btn {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ui-control-height);
    min-width: var(--ui-control-height);
    height: var(--ui-control-height);
    padding: 0;
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-md);
    background: var(--ui-surface-2);
    color: var(--ui-text);
    text-decoration: none;
    cursor: pointer;
    transition:
        background-color var(--ui-transition-fast),
        border-color var(--ui-transition-fast),
        color var(--ui-transition-fast);
}

.ui-icon-btn:hover:not(:disabled) {
    background: var(--ui-surface-hover);
    border-color: var(--ui-border-strong);
    color: var(--ui-text);
}

/* =========================================================
   Formulare
   ========================================================= */

.ui-field {
    display: grid;
    gap: var(--ui-space-2);
    min-width: 0;
    margin: 0;
    font-size: inherit;
    font-weight: normal;
    line-height: normal;
    color: inherit;
}

.ui-field__label {
    margin: 0;
    color: var(--ui-text);
    font-size: var(--ui-font-size-sm);
    font-weight: var(--ui-font-weight-medium);
    line-height: 1.25;
}

.ui-field__hint {
    margin: 0;
    color: var(--ui-text-muted);
    font-size: var(--ui-font-size-xs);
    line-height: 1.4;
}

.ui-field__error {
    margin: 0;
    color: var(--ui-danger);
    font-size: var(--ui-font-size-xs);
    line-height: 1.4;
}

.ui-input,
.ui-select,
.ui-textarea {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: var(--ui-control-height);
    margin: 0;
    padding: 0 var(--ui-space-3);
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-md);
    background: var(--ui-control-bg);
    color: var(--ui-text);
    font: inherit;
    font-size: var(--ui-font-size-sm);
    line-height: 1.25;
    outline: none;
    box-shadow: none;
    color-scheme: dark;
    transition:
        background-color var(--ui-transition-fast),
        border-color var(--ui-transition-fast),
        box-shadow var(--ui-transition-fast),
        color var(--ui-transition-fast);
}

.ui-input,
.ui-select {
    height: var(--ui-control-height);
}

.ui-textarea {
    min-height: 104px;
    padding-top: var(--ui-space-3);
    padding-bottom: var(--ui-space-3);
    resize: vertical;
}

.ui-input::placeholder,
.ui-textarea::placeholder {
    color: var(--ui-text-subtle);
    opacity: 1;
}

.ui-input:hover:not(:disabled),
.ui-select:hover:not(:disabled),
.ui-textarea:hover:not(:disabled) {
    border-color: var(--ui-border-strong);
}

.ui-input:focus,
.ui-select:focus,
.ui-textarea:focus {
    border-color: var(--ui-accent);
    box-shadow: var(--ui-focus-ring);
}

.ui-input:disabled,
.ui-select:disabled,
.ui-textarea:disabled,
.ui-input[readonly],
.ui-textarea[readonly] {
    opacity: .58;
    cursor: not-allowed;
}

.ui-field.is-invalid .ui-input,
.ui-field.is-invalid .ui-select,
.ui-field.is-invalid .ui-textarea,
.ui-input[aria-invalid="true"],
.ui-select[aria-invalid="true"],
.ui-textarea[aria-invalid="true"] {
    border-color: var(--ui-danger);
}

.ui-check {
    display: inline-flex;
    align-items: center;
    gap: var(--ui-space-2);
    min-height: var(--ui-control-height-sm);
    margin: 0;
    color: var(--ui-text);
    font-size: var(--ui-font-size-sm);
    font-weight: var(--ui-font-weight-medium);
    cursor: pointer;
}

.ui-check>input[type="checkbox"] {
    margin: 0;
}

/* =========================================================
   Chips
   ========================================================= */

.ui-chip {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: var(--ui-control-height-sm);
    padding: 0 var(--ui-space-3);
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-pill);
    background: var(--ui-surface-2);
    color: var(--ui-text-muted);
    font: inherit;
    font-size: var(--ui-font-size-xs);
    font-weight: var(--ui-font-weight-medium);
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background-color var(--ui-transition-fast),
        border-color var(--ui-transition-fast),
        color var(--ui-transition-fast);
}

.ui-chip:hover:not(:disabled) {
    background: var(--ui-surface-hover);
    border-color: var(--ui-border-strong);
    color: var(--ui-text);
}

.ui-chip.is-active,
.ui-chip[aria-pressed="true"],
.ui-chip[aria-selected="true"] {
    border-color: var(--ui-accent);
    background: color-mix(in srgb, var(--ui-accent) 18%, var(--ui-surface-2));
    color: var(--ui-text);
}

body.dark-mode button.ui-chip:hover:not(:disabled) {
    background: var(--ui-surface-hover);
    border-color: var(--ui-border-strong);
    color: var(--ui-text);
}

body.dark-mode button.ui-chip.is-active:hover:not(:disabled),
body.dark-mode button.ui-chip[aria-pressed="true"]:hover:not(:disabled),
body.dark-mode button.ui-chip[aria-selected="true"]:hover:not(:disabled) {
    border-color: var(--ui-accent);
    background: color-mix(in srgb, var(--ui-accent) 18%, var(--ui-surface-2));
    color: var(--ui-text);
}

.ui-chip--success {
    border-color: color-mix(in srgb, var(--ui-success) 55%, transparent);
}

.ui-chip--warning {
    border-color: color-mix(in srgb, var(--ui-warning) 60%, transparent);
}

.ui-chip--danger {
    border-color: color-mix(in srgb, var(--ui-danger) 60%, transparent);
}

.ui-chip-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ui-space-2);
}

/* =========================================================
   Cards / Panels
   ========================================================= */

.ui-card {
    min-width: 0;
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-lg);
    background: var(--ui-surface-1);
    color: var(--ui-text);
    box-shadow: var(--ui-shadow-card);
}

.ui-card--flat {
    box-shadow: none;
}

.ui-card__header,
.ui-card__body,
.ui-card__footer {
    padding: var(--ui-space-4);
}

.ui-card__header {
    border-bottom: 1px solid var(--ui-divider);
}

.ui-card__footer {
    border-top: 1px solid var(--ui-divider);
}

.ui-card__title {
    margin: 0;
    color: var(--ui-text);
    font-size: var(--ui-font-size-lg);
    font-weight: var(--ui-font-weight-bold);
    line-height: 1.25;
}

.ui-card__subtitle {
    margin: var(--ui-space-1) 0 0;
    color: var(--ui-text-muted);
    font-size: var(--ui-font-size-sm);
    line-height: 1.4;
}

/* =========================================================
   Modal
   ========================================================= */

.ui-modal {
    position: fixed;
    inset: 0;
    z-index: var(--ui-z-modal);
    display: grid;
    place-items: center;
    padding:
        max(var(--ui-space-4), env(safe-area-inset-top, 0px)) max(var(--ui-space-4), env(safe-area-inset-right, 0px)) max(var(--ui-space-4), env(safe-area-inset-bottom, 0px)) max(var(--ui-space-4), env(safe-area-inset-left, 0px));
    background: var(--ui-backdrop);
    overscroll-behavior: contain;
}

.ui-modal[hidden] {
    display: none !important;
}

.ui-modal__dialog {
    width: min(100%, 720px);
    max-height: min(88dvh, 900px);
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--ui-border-strong);
    border-radius: var(--ui-radius-xl);
    background: var(--ui-surface-1);
    color: var(--ui-text);
    box-shadow: var(--ui-shadow-layer);
}

.ui-modal__header,
.ui-modal__footer {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--ui-space-3);
    padding: var(--ui-space-4);
}

.ui-modal__header {
    justify-content: space-between;
    border-bottom: 1px solid var(--ui-divider);
}

.ui-modal__footer {
    justify-content: flex-end;
    border-top: 1px solid var(--ui-divider);
}

.ui-modal__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: var(--ui-space-4);
    overscroll-behavior: contain;
}

.ui-modal__title {
    margin: 0;
    color: var(--ui-text);
    font-size: var(--ui-font-size-lg);
    font-weight: var(--ui-font-weight-bold);
}

/* =========================================================
   Drawer
   ========================================================= */

.ui-drawer {
    position: fixed;
    inset: 0;
    z-index: var(--ui-z-drawer);
    display: block;
    pointer-events: none;
}

.ui-drawer[hidden] {
    display: none !important;
}

.ui-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: var(--ui-backdrop);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--ui-transition-normal);
}

.ui-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    width: min(92vw, 440px);
    min-width: 0;
    overflow: hidden;
    border-left: 1px solid var(--ui-border-strong);
    background: var(--ui-surface-1);
    color: var(--ui-text);
    box-shadow: var(--ui-shadow-layer);
    transform: translate3d(100%, 0, 0);
    transition: transform var(--ui-transition-normal);
    padding-right: env(safe-area-inset-right, 0px);
}

.ui-drawer.is-open {
    pointer-events: auto;
}

.ui-drawer.is-open .ui-drawer__backdrop {
    opacity: 1;
    pointer-events: auto;
}

.ui-drawer.is-open .ui-drawer__panel {
    transform: translate3d(0, 0, 0);
}

.ui-drawer__header,
.ui-drawer__footer {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--ui-space-3);
    padding: var(--ui-space-4);
}

.ui-drawer__header {
    justify-content: space-between;
    border-bottom: 1px solid var(--ui-divider);
}

.ui-drawer__footer {
    justify-content: flex-end;
    border-top: 1px solid var(--ui-divider);
}

.ui-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: var(--ui-space-4);
    overscroll-behavior: contain;
}

.ui-drawer--left .ui-drawer__panel {
    left: 0;
    right: auto;
    border-right: 1px solid var(--ui-border-strong);
    border-left: 0;
    transform: translate3d(-100%, 0, 0);
    padding-right: 0;
    padding-left: env(safe-area-inset-left, 0px);
}

.ui-drawer--left.is-open .ui-drawer__panel {
    transform: translate3d(0, 0, 0);
}

.ui-drawer--bottom .ui-drawer__panel {
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-height: min(82dvh, 760px);
    border-top: 1px solid var(--ui-border-strong);
    border-left: 0;
    border-radius: var(--ui-radius-xl) var(--ui-radius-xl) 0 0;
    transform: translate3d(0, 100%, 0);
    padding-right: env(safe-area-inset-right, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    padding-left: env(safe-area-inset-left, 0px);
}

.ui-drawer--bottom.is-open .ui-drawer__panel {
    transform: translate3d(0, 0, 0);
}

/* =========================================================
   Legacy-Brücke: vorhandene globale Basiskomponenten
   bekommen dieselben Grundmaße, ohne Seitenspezial-CSS zu ersetzen.
   ========================================================= */

:where(button.btn-modern, a.btn-modern) {
    border-radius: var(--ui-radius-md);
}

:where(.btn-inline, .btn-inline-slim, .btn-inline-neutral, button.btn-small) {
    min-height: var(--ui-control-height-sm);
    border-radius: var(--ui-radius-sm);
}

:where(.btn-inline-neutral, button.btn-small) {
    border-color: var(--ui-border);
    background: var(--ui-surface-3);
    color: var(--ui-text-muted);
}

:where(.btn-inline-neutral, button.btn-small):hover:not(:disabled) {
    border-color: var(--ui-border-strong);
    background: var(--ui-surface-hover);
    color: var(--ui-text);
}

/* =========================================================
   Touch / Reduced Motion
   ========================================================= */

@media (hover: none) and (pointer: coarse) {

    .ui-btn,
    .ui-icon-btn,
    .ui-chip {
        min-height: var(--ui-touch-target);
    }

    .ui-icon-btn {
        width: var(--ui-touch-target);
        min-width: var(--ui-touch-target);
        height: var(--ui-touch-target);
    }
}

@media (max-width: 640px) {
    .ui-modal {
        padding:
            max(var(--ui-space-2), env(safe-area-inset-top, 0px)) max(var(--ui-space-2), env(safe-area-inset-right, 0px)) max(var(--ui-space-2), env(safe-area-inset-bottom, 0px)) max(var(--ui-space-2), env(safe-area-inset-left, 0px));
    }

    .ui-modal__dialog {
        max-height: calc(100dvh - 2 * var(--ui-space-2));
        border-radius: var(--ui-radius-lg);
    }
}

@media (prefers-reduced-motion: reduce) {

    .ui-btn,
    .ui-icon-btn,
    .ui-chip,
    .ui-input,
    .ui-select,
    .ui-textarea,
    .ui-drawer__backdrop,
    .ui-drawer__panel {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* =========================================================
   UI Foundation v6 - Legacy-Isolation
   Die ui-* Komponenten müssen gegen alte, global geladene
   Seiten-CSS mit Typselektoren (input[type=...], label, button)
   stabil bleiben. Seitenspezifische Klassen mit höherer
   Spezifität können diese Basis weiterhin gezielt überschreiben.
   ========================================================= */
html body label.ui-field {
    display: grid;
    gap: var(--ui-space-2);
    min-width: 0;
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: normal;
    line-height: normal;
    color: inherit;
}

html body .ui-input,
html body .ui-select,
html body .ui-textarea {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding-left: var(--ui-space-3);
    padding-right: var(--ui-space-3);
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-md);
    background: var(--ui-control-bg);
    background-color: var(--ui-control-bg);
    color: var(--ui-text);
    font-family: inherit;
    font-size: var(--ui-font-size-sm);
    font-weight: normal;
    line-height: 1.25;
    box-sizing: border-box;
}

html body .ui-input,
html body .ui-select {
    height: var(--ui-control-height);
    min-height: var(--ui-control-height);
    padding-top: 0;
    padding-bottom: 0;
}

html body button.ui-btn,
html body a.ui-btn {
    height: var(--ui-control-height);
    min-height: var(--ui-control-height);
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-width: 1px;
    border-style: solid;
    border-color: var(--ui-border-strong);
    border-radius: var(--ui-radius-md);
    box-sizing: border-box;
}

html body button.ui-btn.ui-btn--primary,
html body a.ui-btn.ui-btn--primary {
    border-color: var(--ui-border-strong);
}

html body button.ui-btn.ui-btn--danger,
html body a.ui-btn.ui-btn--danger {
    border-color: var(--ui-danger);
}