/*
 * Oniklift admin — secondary (outline) action buttons for changelist rows.
 *
 * Rendered by the per-row @admin.display columns (Bearbeiten, Löschen,
 * Dokumente verwalten, Einladung verwalten).  Style: accent border + accent
 * text on the normal (transparent) row background — a "secondary" button that
 * reads as clickable without competing with primary add/save buttons.
 *
 * Colours come from Unfold's palette CSS variables (var(--color-primary-*),
 * var(--color-red-*)) so the buttons follow the brand ramp and adapt to the
 * light/dark toggle (Unfold sets a `.dark` class on <html>).  Injected via
 * UNFOLD["STYLES"] in config/settings/base.py.
 */

.oniklift-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 2px 6px 2px 0;
    padding: 3px 10px;
    font-size: 0.75rem;
    line-height: 1.1rem;
    font-weight: 500;
    white-space: nowrap;
    border-radius: 6px;
    border: 1px solid var(--color-primary-600);
    color: var(--color-primary-600);
    background-color: transparent;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.oniklift-btn:hover {
    background-color: var(--color-primary-50);
    border-color: var(--color-primary-700);
    color: var(--color-primary-700);
}

.oniklift-btn:focus-visible {
    outline: 2px solid var(--color-primary-400);
    outline-offset: 1px;
}

/* Destructive variant — delete actions (Löschen). */
.oniklift-btn--danger {
    border-color: var(--color-red-600);
    color: var(--color-red-600);
}

.oniklift-btn--danger:hover {
    background-color: var(--color-red-50);
    border-color: var(--color-red-700);
    color: var(--color-red-700);
}

/* Dark mode — brighten border/text, use a translucent hover fill so the
   accent still reads on the dark row background. */
.dark .oniklift-btn {
    border-color: var(--color-primary-500);
    color: var(--color-primary-400);
}

.dark .oniklift-btn:hover {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: var(--color-primary-400);
    color: var(--color-primary-300);
}

.dark .oniklift-btn--danger {
    border-color: var(--color-red-600);
    color: var(--color-red-500);
}

.dark .oniklift-btn--danger:hover {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: var(--color-red-500);
    color: var(--color-red-400);
}

/* ---------------------------------------------------------------------------
 * Lift image widget — changelist thumbnail + hidden crop fields
 * ------------------------------------------------------------------------ */

/* The crop box is stored in four HiddenInputs that must live in the "Bild"
 * fieldset (the admin only renders — and only assigns — fields listed in a
 * fieldset).  Unfold's fieldset_row_field.html emits a label row unconditionally,
 * with no has_visible_field guard, so without this each one would show up as an
 * empty row.  Hidden inputs inside display:none still submit. */
.field-crop_x,
.field-crop_y,
.field-crop_width,
.field-crop_height {
    display: none !important;
}

.oniklift-thumb {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--color-base-200);
    background-color: var(--color-base-50);
}

.oniklift-thumb--empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-base-400);
    font-size: 0.875rem;
}

.dark .oniklift-thumb {
    border-color: var(--color-base-700);
    background-color: var(--color-base-800);
}
