/* Request System Web Interface Styles */

/* ============================================================================
   DISPLAY REQUEST ROWS (detail view label-value pairs)
   ============================================================================ */

.display-request-block {
    margin-bottom: 1rem;
}

.display-request-row {
    display: flex;
    align-items: center;
    padding: 0.625rem 0;
    border-bottom: 1px solid var(--color-primary-medium, #252a33);
}

.display-request-row:last-child {
    border-bottom: none;
}

.display-request-row label {
    flex: 0 0 120px;
    font-weight: 500;
    margin-bottom: 0;
    padding-right: 0.75rem;
    color: var(--color-primary, #a4bcdb);
    min-width: 110px;
}

.display-request-selection {
    flex: 1;
    min-width: 0;
}

.display-request-controls {
    flex: 0 0 auto;
    margin-left: 0.75rem;
}

.display-request-controls .btn-group {
    margin-right: 0.25rem;
}

.display-request-controls .btn-group:last-child {
    margin-right: 0;
}

.display-request-controls .btn {
    margin-left: 0.25rem;
}

.display-request-controls .btn:first-child {
    margin-left: 0;
}

/* ============================================================================
   ACTION BUTTONS
   ============================================================================ */

.action-buttons-spaced {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

/* ============================================================================
   REQUEST LIST ITEMS
   ============================================================================ */

.request-item {
    border: 2px solid var(--color-primary);
    border-radius: var(--border-radius, 8px);
    padding: 0.75rem;
}

/* Status-colored left border */
.request-item.open {
    border-left-color: #28a745 !important;
}

.request-item.assigned {
    border-left-color: #007bff !important;
}

.request-item.claimed {
    border-left-color: #ffc107 !important;
}

.request-item.in_progress {
    border-left-color: #fd7e14 !important;
}

.request-item.closed {
    border-left-color: #6c757d !important;
}

.request-item.archived {
    border-left-color: #6f42c1 !important;
}

.request-meta .badge {
    margin-right: 0.5rem;
}

.request-info {
    font-size: 0.9rem;
}

/* Slide-in animation for new requests */
@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.request-item.new {
    animation: slideIn 0.3s ease;
}

/* ============================================================================
   REQUEST DESCRIPTION BOX
   ============================================================================ */

.request-description {
    background-color: var(--color-primary-medium, #252a33);
    border-radius: var(--border-radius, 8px);
    padding: 1rem;
    line-height: 1.6;
}

/* ============================================================================
   PRIORITY COLORS (both .bg-* and .badge-* for Bootstrap 4 compat)
   ============================================================================ */

.bg-critical,
.badge-critical {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.bg-high,
.badge-high {
    background-color: #fd7e14 !important;
    color: #fff !important;
}

.bg-normal,
.badge-normal {
    background-color: #28a745 !important;
    color: #fff !important;
}

.bg-low,
.badge-low {
    background-color: #17a2b8 !important;
    color: #fff !important;
}

.bg-very-low,
.badge-very-low {
    background-color: #6c757d !important;
    color: #fff !important;
}

/* ============================================================================
   STATUS COLORS
   ============================================================================ */

.bg-open,
.badge-open {
    background-color: #28a745 !important;
    color: #fff !important;
}

.bg-assigned,
.badge-assigned {
    background-color: #007bff !important;
    color: #fff !important;
}

.bg-claimed,
.badge-claimed {
    background-color: #ffc107 !important;
    color: #212529 !important;
}

.bg-in-progress,
.badge-in-progress {
    background-color: #fd7e14 !important;
    color: #fff !important;
}

.bg-on-hold,
.badge-on-hold {
    background-color: #6f42c1 !important;
    color: #fff !important;
}

.bg-completed,
.badge-completed {
    background-color: #20c997 !important;
    color: #fff !important;
}

.bg-closed,
.badge-closed {
    background-color: #6c757d !important;
    color: #fff !important;
}

.bg-rejected,
.badge-rejected {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.bg-cancelled,
.badge-cancelled {
    background-color: #6c757d !important;
    color: #fff !important;
}

/* ============================================================================
   QUEUE COLORS
   ============================================================================ */

.bg-general,
.badge-general {
    background-color: #6c757d !important;
    color: #fff !important;
}

.bg-bugs,
.badge-bugs {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.bg-typos,
.badge-typos {
    background-color: #17a2b8 !important;
    color: #fff !important;
}

.bg-storyteller,
.badge-storyteller {
    background-color: #6f42c1 !important;
    color: #fff !important;
}

.bg-build,
.badge-build {
    background-color: #fd7e14 !important;
    color: #fff !important;
}

.bg-code,
.badge-code {
    background-color: #e83e8c !important;
    color: #fff !important;
}

.bg-character-applications,
.badge-character-applications {
    background-color: #20c997 !important;
    color: #fff !important;
}

/* ============================================================================
   COMMENT STYLING
   ============================================================================ */

.comment {
    background-color: var(--color-primary-dark, #1a1d24);
    border: 2px solid var(--color-primary, #a4bcdb);
    border-radius: var(--border-radius, 8px);
    padding: 1rem;
}

.comment-portrait {
    flex-shrink: 0;
    margin-right: 1rem;
}

.comment-body {
    min-width: 0;
}

.comment-header {
    margin-bottom: 0.5rem;
}

.comment-type-label .badge {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.35em 0.6em;
}

.comment-type-label .badge i {
    margin-right: 0.25rem;
}

.comment-text {
    margin-top: 0.5rem;
    line-height: 1.6;
}

.comment-text p {
    margin-bottom: 0.5rem;
}

.comment-text p:last-child {
    margin-bottom: 0;
}

/* Roll output - MUSH terminal style background */
.roll-output {
    background-color: #000;
    border: 1px solid var(--color-primary-medium, #252a33);
    border-radius: var(--border-radius-sm, 4px);
    padding: 0.75rem 1rem;
    font-family: 'Courier New', monospace;
    font-size: 0.9em;
    line-height: 1.6;
    white-space: pre-wrap;
}

/* ============================================================================
   INPUT / TEXTAREA STYLING
   ============================================================================ */

#comments-content textarea.form-control,
.card-body textarea.form-control {
    min-height: 120px;
    resize: vertical;
}

#comments-content .form-label,
.card-body .form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--color-primary, #a4bcdb);
}

#id_search {
    border-radius: var(--border-radius, 8px);
}

/* Select2 participant selects (used in modals) */
.participant-select {
    width: 100%;
}

/* ============================================================================
   EMPTY & LOADING STATES
   ============================================================================ */

.empty-state-message {
    padding: 2rem;
    text-align: center;
    color: var(--color-primary, #a4bcdb);
    font-style: italic;
}

.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* ============================================================================
   MODAL STYLING
   ============================================================================ */

.modal-content {
    border: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* ============================================================================
   TOOLTIP
   ============================================================================ */

.tooltip {
    font-size: 0.875rem;
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */

@media (max-width: 768px) {
    .display-request-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .display-request-row label {
        flex: none;
        margin-bottom: 0.5rem;
    }

    .display-request-controls {
        margin-left: 0;
        margin-top: 0.5rem;
        width: 100%;
    }

    .request-item .row {
        flex-direction: column;
    }

    .request-item .col-md-4 {
        margin-top: 1rem;
    }

    .request-meta .badge {
        display: block;
        margin-bottom: 0.25rem;
    }
}