/**
 * IP Penalties — admin SPA styles.
 *
 * Covers: IP chips, status badges, sub-view nav bar, IP link, IP posts view.
 *
 * Pure SCSS - NO CSS custom properties.
 * All colors use SCSS variables with explicit dark mode overrides.
 *
 * @package ForumPressZone
 */

@use 'abstracts/variables' as *;

// ---------------------------------------------------------------------------
// IP type chips (Ban / Mute)
// ---------------------------------------------------------------------------

.presszone-forum-ip-chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;

    &--ban {
        background: $presszone-forum-error-dim;
        color: $presszone-forum-error;
        border: 1px solid $presszone-forum-error;
    }

    &--mute {
        background: $presszone-forum-warning-dim;
        color: $presszone-forum-warning;
        border: 1px solid $presszone-forum-warning;
    }
}

body.dark-mode .presszone-forum-ip-chip {
    &--ban {
        background: $presszone-forum-error-dim-dark;
        color: $presszone-forum-error-dark;
        border-color: $presszone-forum-error-dark;
    }

    &--mute {
        background: $presszone-forum-warning-dim-dark;
        color: $presszone-forum-warning-dark;
        border-color: $presszone-forum-warning-dark;
    }
}

// ---------------------------------------------------------------------------
// IP status badges (Clean / Penalized / approved / pending / spam)
// ---------------------------------------------------------------------------

.presszone-forum-ip-status {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    text-transform: capitalize;
    white-space: nowrap;

    &--clean,
    &--approved {
        background: $presszone-forum-success-dim;
        color: $presszone-forum-success;
        border: 1px solid $presszone-forum-success;
    }

    &--penalized,
    &--spam {
        background: $presszone-forum-error-dim;
        color: $presszone-forum-error;
        border: 1px solid $presszone-forum-error;
    }

    &--pending {
        background: $presszone-forum-warning-dim;
        color: $presszone-forum-warning;
        border: 1px solid $presszone-forum-warning;
    }
}

body.dark-mode .presszone-forum-ip-status {
    &--clean,
    &--approved {
        background: $presszone-forum-success-dim-dark;
        color: $presszone-forum-success-dark;
        border-color: $presszone-forum-success-dark;
    }

    &--penalized,
    &--spam {
        background: $presszone-forum-error-dim-dark;
        color: $presszone-forum-error-dark;
        border-color: $presszone-forum-error-dark;
    }

    &--pending {
        background: $presszone-forum-warning-dim-dark;
        color: $presszone-forum-warning-dark;
        border-color: $presszone-forum-warning-dark;
    }
}

// ---------------------------------------------------------------------------
// IP tab sub-view navigation bar
// ---------------------------------------------------------------------------

.presszone-forum-ip-tab-nav {
    display: flex;
    gap: 4px;
    padding: 0 0 16px;
    border-bottom: 1px solid $presszone-forum-border;
    margin-bottom: 20px;
}

body.dark-mode .presszone-forum-ip-tab-nav {
    border-bottom-color: $presszone-forum-border-dark;
}

.presszone-forum-ip-tab-nav__item {
    padding: 6px 14px;
    border-radius: $presszone-forum-radius;
    border: 1px solid $presszone-forum-border;
    background: $presszone-forum-surface;
    color: $presszone-forum-text-muted;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;

    &:hover {
        background: $presszone-forum-surface-2;
        color: $presszone-forum-text;
    }

    &--active {
        background: $presszone-forum-primary-dim;
        color: $presszone-forum-primary;
        border-color: $presszone-forum-primary;
        font-weight: 600;
    }
}

body.dark-mode .presszone-forum-ip-tab-nav__item {
    border-color: $presszone-forum-border-dark;
    background: $presszone-forum-surface-dark;
    color: $presszone-forum-text-muted-dark;

    &:hover {
        background: $presszone-forum-surface-2-dark;
        color: $presszone-forum-text-dark;
    }

    &--active {
        background: $presszone-forum-primary-dim-dark;
        color: $presszone-forum-primary-dark;
        border-color: $presszone-forum-primary-dark;
    }
}

// ---------------------------------------------------------------------------
// IP link (clickable IP address)
// ---------------------------------------------------------------------------

.presszone-forum-ip-link {
    color: $presszone-forum-primary;
    text-decoration: none;
    font-family: monospace;
    font-size: 13px;

    &:hover {
        text-decoration: underline;
        color: $presszone-forum-primary;
    }

    &:focus-visible {
        outline: 2px solid $presszone-forum-primary;
        outline-offset: 2px;
        border-radius: 2px;
    }
}

body.dark-mode .presszone-forum-ip-link {
    color: $presszone-forum-primary-dark;

    &:hover {
        color: $presszone-forum-primary-dark;
    }

    &:focus-visible {
        outline-color: $presszone-forum-primary-dark;
    }
}

// ---------------------------------------------------------------------------
// IP code display (in IP posts view header)
// ---------------------------------------------------------------------------

.presszone-forum-ip-code {
    display: inline-block;
    padding: 2px 8px;
    background: $presszone-forum-surface-2;
    border: 1px solid $presszone-forum-border;
    border-radius: $presszone-forum-radius-sm;
    font-family: monospace;
    font-size: 14px;
    color: $presszone-forum-text;
}

body.dark-mode .presszone-forum-ip-code {
    background: $presszone-forum-surface-2-dark;
    border-color: $presszone-forum-border-dark;
    color: $presszone-forum-text-dark;
}

// ---------------------------------------------------------------------------
// IP posts view actions row
// ---------------------------------------------------------------------------

.presszone-forum-ip-posts__actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

// ---------------------------------------------------------------------------
// IP Penalty modal body
// ---------------------------------------------------------------------------

.presszone-forum-ip-penalty-modal__body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.presszone-forum-form-row {
    display: flex;
    gap: 16px;
    align-items: flex-start;

    > .presszone-forum-form-group {
        flex: 1;
        min-width: 0;
        margin-bottom: 0;
    }

    @media (max-width: 520px) {
        flex-direction: column;
    }
}

// ---------------------------------------------------------------------------
// Utility: truncate text with ellipsis
// ---------------------------------------------------------------------------

.presszone-forum-text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    max-width: 100%;
}

.presszone-forum-text-sm {
    font-size: 12px;
}
