/* Request System Web Interface Styles */
/* Following Ares/City of Glass design patterns */

/* Ares-style inline controls layout */
.display-request-block {
    margin-bottom: 1rem;
}

.display-request-row {
    display: flex;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

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

.display-request-row label {
    flex: 0 0 120px;
    font-weight: 600;
    margin-bottom: 0;
    padding-right: 0.75rem;
}

.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;
}

/* Ares-style action buttons with spacing */
.action-buttons-spaced {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

/* Responsive adjustments */
@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 {
    transition: all 0.2s ease;
}

.request-item:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transform: translateY(-1px);
}

.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;
}

.request-description {
    /* background-color: #f8f9fa; -- Commented out to allow dark theme styling */
    padding: 1rem;
    border-radius: var(--border-radius);
}

.comment {
    /* background-color: #f8f9fa; -- Commented out to allow dark theme styling */
}

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

/* Priority colors (Bootstrap 4 compatible - both .bg-* and .badge-*) */
.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 (Bootstrap 4 compatible - both .bg-* and .badge-*) */
.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 (Bootstrap 4 compatible - both .bg-* and .badge-*) */
.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;
}

/* Form styling */
.form-control:focus {
    border-color: #007bff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

/* Button styling — scoped to request items to avoid clobbering
   absolutely-positioned buttons (e.g. .flatpage-edit-btn) elsewhere. */
.request-item .btn {
    transition: all 0.2s ease;
}

.request-item .btn:hover {
    transform: translateY(-1px);
}

.card-header {
    /* background-color: #f8f9fa; -- Commented out to allow dark theme card header background */
}

/* Responsive design */
@media (max-width: 768px) {
    .request-item .row {
        flex-direction: column;
    }

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

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

/* Loading states */
.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* Empty state */
.empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: #6c757d;
}

.empty-state i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

/* 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;
}

/* Tooltip styling */
.tooltip {
    font-size: 0.875rem;
}

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

.modal-header {}

.modal-footer {}

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

/* Comment container - themed border, proper padding */
.comment {
    background-color: var(--color-primary-dark, #1a1d24);
    border: 2px solid var(--color-primary-medium, #252a33);
    border-radius: var(--border-radius, 8px);
    padding: 1rem;
}

/* Portrait spacing */
.comment-portrait {
    flex-shrink: 0;
    margin-right: 1rem;
}

/* Comment body - contains header and text */
.comment-body {
    min-width: 0; /* Prevent flex overflow */
}

/* Comment header - type label left, meta right */
.comment-header {
    margin-bottom: 0.5rem;
}

/* Type label badge styling */
.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 - proper line height and spacing */
.comment-text {
    line-height: 1.6;
}

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

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

/* ============================================================================
   INPUT/TEXTAREA STYLING (matches chargen patterns)
   ============================================================================ */

/* Comment textarea - larger, proper styling */
#comments-content textarea.form-control,
.card-body textarea.form-control {
    min-height: 120px;
    resize: vertical;
}

/* Form labels in request views */
#comments-content .form-label,
.card-body .form-label {
    font-weight: 500;
    margin-bottom: 0.5rem;
    color: var(--color-primary, #a4bcdb);
}

/* Search input specific styling */
#id_search {
    border-radius: var(--border-radius, 8px);
}

/* ============================================================================
   DISPLAY REQUEST ROW REFINEMENTS
   ============================================================================ */

/* Consistent row padding and border */
.display-request-row {
    border-bottom: 1px solid var(--color-primary-medium, #252a33);
    padding: 0.625rem 0;
}

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

/* Label styling - fixed width, right-aligned */
.display-request-row label {
    color: var(--color-primary, #a4bcdb);
    font-weight: 500;
    min-width: 110px;
}

/* Control buttons spacing */
.display-request-controls .btn {
    margin-left: 0.25rem;
}

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

/* ============================================================================
   CARD REFINEMENTS FOR REQUESTS
   ============================================================================ */

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

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