/* Tender Grids/Lists Base */
.tenders-grid, .bids-grid, .tenders-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

/* Status badges for tender cards */
.status-badge {
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.status-expired {
    background-color: #fff3cd;
    color: #856404;
    border: 1px solid #ffeaa7;
}

.status-closed {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.status-awarded {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

/* Tender Detail Page Styles */
.tender-detail-container {
    max-width: 1200px;
    margin: 0 auto;
    padding-bottom: 5rem; /* Add space for fixed actions bar */
    overflow-x: hidden; /* From general overflow rules */
}

/* Tender header on detail page */
.tender-header {
    margin-bottom: 2rem;
    padding: 0;
    border: none;
    background: transparent;
    margin-top: 2rem;
}

.tender-header h1 {
    font-size: 2.5rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
}

.tender-author {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #eee;
}

.tender-author-avatar {
    width: 48px;
    height: 48px;
    background: #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 500;
    color: #666;
    text-transform: uppercase;
}

.tender-author-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.tender-author-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: #000;
}

.tender-author-meta {
    font-size: 0.75rem;
    color: #666;
}

/* Remove countdown styles */
#tender-countdown-container,
#tender-countdown {
    display: none;
}

.tender-status-badge { /* This is specific to how status is shown on tender detail, not the badge itself */
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}
/* Actual .status-[type] badges are in components.css */

/* Tender header actions (fixed bar) */
.tender-header-actions {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid #eee;
    padding: 1rem 0;
    z-index: 100;
    display: flex;
    justify-content: center;
}

.tender-header-actions .btn {
    min-width: 160px;
    padding: 0.875rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    text-align: center;
}

.tender-header-actions-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
}

.action-text {
    font-size: 0.875rem;
    color: #666;
    margin-right: auto;
}

/* Tender content layout */
.tender-content-wrapper {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
}

.content-card {
    background-color: #fff;
    border-radius: 0;
    border: 1px solid #e9ecef;
    /* box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); */
    margin-bottom: 2rem;
    overflow: hidden;
}

/* .card-body is general, but used here. Assuming it's in dashboard.css or base.css */
/* If .card-body specific to tender-detail is needed, it would go here. */

/* Tender details specifics */
.tender-budget {
    margin-bottom: 2rem;
}

.budget-amount {
    font-size: 2rem;
    font-weight: bold;
    color: #212529;
}

.tender-description, .tender-requirements {
    margin-bottom: 2rem;
}

.h2 { /* General utility, but heavily used in tender details */
    display: block;
    font-size: 1.5rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    margin-bottom: 1rem;
}

.h3,
.tender-description h3, 
.tender-requirements h3, 
.tender-budget h3, 
.tender-issue-type h3, 
.tender-reason h3,
.info-item h3 { /* General utility, but heavily used in tender details */
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #666;
    margin-bottom: 0.75rem;
}

/* Add some spacing between info items */
.info-item {
    margin-bottom: 1.5rem;
}

/* Make the last info item not have a margin bottom */
.info-item:last-child {
    margin-bottom: 0;
}

/* Attachments */
.attachment-item {
    display: flex;
    align-items: center;
    padding: 0.75rem;
    background-color: #f8f9fa;
    border-radius: 0;
    margin-bottom: 0.5rem;
    transition: background-color 0.2s;
}

.attachment-item:hover {
    background-color: #e9ecef;
}

.attachment-item i.fas {
    font-size: 1.2rem;
    margin-right: 0.75rem;
    color: #6c757d;
}

.attachment-name {
    flex: 1;
    font-weight: 500;
}

.attachment-size {
    color: #6c757d;
    margin-right: 1rem;
    font-size: 0.9rem;
}

.attachment-download {
    color: #007bff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: 0;
    transition: background-color 0.2s;
}

.attachment-download:hover {
    background-color: rgb(0 123 255 / 10%);
    text-decoration: none;
}

.attachment-download i {
    margin-right: 0.25rem;
}

/* Bid form placeholder - actual form styles in forms.css */
#bid-form .form-group {
    margin-bottom: 1.5rem;
}

/* Sidebar styles for tender detail */
.tender-detail-container .stat-item { /* Qualify stat-item for tender detail page */
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #e9ecef;
}

.tender-detail-container .stat-item:last-child {
    border-bottom: none;
}

.tender-detail-container .stat-label {
    color: #6c757d;
}

.tender-detail-container .stat-value {
    font-weight: bold;
    color: #212529;
}

/* Client profile in sidebar */
.client-profile {
    display: flex;
    align-items: center;
    margin-bottom: 1.5rem;
}

.client-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background-color: #000;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: bold;
    margin-right: 1rem;
}

.client-details h3 {
    margin: 0;
    font-size: 1.2rem;
}

.client-details p {
    margin: 0.25rem 0 0;
    color: #6c757d;
}

.client-stats {
    margin-bottom: 1.5rem;
}

.client-actions {
    text-align: center;
}

/* Bid Process Header / Steps */
.bid-process-header {
    display: flex;
    justify-content: space-between;
    margin: 2rem 0 4rem;
    position: relative;
    padding: 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.bid-process-header::before {
    content: '';
    position: absolute;
    top: 2rem;
    left: 3rem;
    right: 3rem;
    height: 3px;
    background-color: #e9ecef;
    z-index: 1;
}

.bid-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
    flex: 1;
    max-width: 200px;
}

.bid-step .step-icon {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    background: white;
    border: 3px solid #dee2e6;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    transition: all 0.3s ease;
}

.bid-step .step-icon i {
    font-size: 1.5rem;
    color: #6c757d;
    transition: all 0.3s ease;
}

.bid-step .step-content {
    text-align: center;
    padding: 0 0.5rem;
}

.bid-step .step-content h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #6c757d;
}

.bid-step .step-content p {
    margin: 0.25rem 0 0;
    font-size: 0.9rem;
    color: #6c757d;
}

.bid-step.active .step-icon {
    background: black;
    border-color: black;
}

.bid-step.active .step-icon i {
    color: white;
}

.bid-step.active .step-content h3,
.bid-step.active .step-content p {
    color: black;
}

.bid-step.completed .step-icon {
    background: #28a745;
    border-color: #28a745;
}

.bid-step.completed .step-icon i {
    color: white;
}

/* Bid CTA styles */
.bid-cta {
    margin-bottom: 2rem;
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
}

.bid-cta .card-body { /* Assuming .card-body from dashboard.css */
    padding: 2rem;
}

.bid-cta h3 {
    margin-bottom: 1rem;
    color: #000;
}

.bid-cta p {
    color: #6c757d;
    margin-bottom: 1.5rem;
}

.bid-cta .btn-lg {
    padding: 1rem 2rem;
    font-size: 1.1rem;
}

.bid-cta .btn i {
    margin-right: 0.5rem;
}

/* Bid substep styling */
.bid-substep {
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 0;
    padding: 2rem;
    margin-bottom: 2rem;
}

.bid-substep:last-of-type {
    margin-bottom: 3rem;
}

.bid-substep h3 {
    margin-top: 0;
    margin-bottom: 1.5rem;
    color: #212529;
}

/* Tender Card Styles (for listings) */
.tenders-container { /* From Browse Tenders Page */
    max-width: 1200px;
    margin: 0 auto 4rem;
    overflow-x: hidden; /* From general overflow rules */
}

.page-description { /* From Browse Tenders Page & Vendor Directory */
    color: #6c757d; /* Using vendor directory version as it's simpler */
    margin-bottom: 2rem;
    font-size: 1rem; /* From browse tenders */
}

/* Refined Filter Controls for Tender Listings */
.tenders-container .filter-controls {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 2.5rem;
    background: transparent;
    padding: 0;
    border: none;
}

.tenders-container .filter-group label { /* Specific to tender listing filters */
    font-size: 0.75rem;
    font-weight: 500;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.tenders-container .form-control { /* Specific to tender listing filters */
    padding: 0.75rem;
    border: 1px solid #e0e0e0;
    font-size: 0.875rem;
    width: 100%;
    background: #fff;
    transition: all 0.2s;
    appearance: none;
}

.tenders-container .form-control:focus {
    outline: none;
    border-color: #000;
}

.tenders-container select.form-control {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
}

.tenders-container .search-input { /* Specific to tender listing filters */
    position: relative;
}

.tenders-container .search-input i {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #888;
    font-size: 0.875rem;
}

.tenders-container .search-input input {
    padding-left: 2.5rem;
}


.tender-card {
    display: grid;
    grid-template-columns: 128px 1fr 1fr 9rem;
    gap: 2rem;
    padding: 1.5rem;
    border: 1px solid #e9ecef;
    background: #fff;
    transition: all 0.2s;
    align-items: center;
    cursor: pointer;
    position: relative;
}

.tender-card:hover {
    /* transform: translateY(-1px); 
    box-shadow: 0 4px 12px rgba(0,0,0,0.05); */
}

/* Disable pointer cursor for closed tenders */
.tender-card.is-closed {
    cursor: default;
}

/* Prevent hover styles for closed tenders (if any are added) */
.tender-card.is-closed:hover {
    transform: none;
    box-shadow: none;
}

.tender-card-link {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.company-info { /* For tender card */
    display: flex;
    flex-direction: row; /* updated from column */
    align-items: center;
    gap: 1rem; /* updated */
    width: 100%;
}

.company-image { /* For tender card */
    width: 128px;
    height: 128px;
    min-width: 64px;
    border: none;
    background: #ccc;
    border-radius: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.company-name { /* For tender card */
    font-size: 0.8125rem;
    color: black;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: -0.01em;
}

.tender-info { /* For tender card */
    padding: 0;
    border: none;
    min-width: 0;
}

.tender-title { /* For tender card */
    font-size: 1.125rem;
    font-weight: 500;
    margin-bottom: 0;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: -0.02em;
    line-height: 1.3;
    min-width: -webkit-fill-available;
}

.tender-card .tender-meta { /* Scoping tender-meta within tender-card */
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    font-size: 0.875rem; /* from original tender-meta */
    color: #6c757d; /* from original tender-meta */
}

.tender-card .tender-meta i {
    font-size: 0.875rem;
    color: #888;
    width: 1em;
    text-align: center;
}

.tender-card .tender-meta-item i { /* From line 2408 */
    margin-right: 0.25rem;
}

.tender-actions { /* For tender card */
    display: flex;
    justify-content: flex-end;
    width: 100%;
    gap: 1rem;
}

.tender-actions .btn {
    margin-top: auto; 
    align-self: flex-start; 
    padding: 0.875rem 1.75rem; 
    font-size: 0.875rem; 
    font-weight: 500; 
    background: #000; 
    color: #fff; 
    border: none; 
    transition: transform 0.2s;
}
.tender-actions .btn:hover {
    transform: translateY(-1px);
}

/* Loading State for Tender Listings */
.tenders-container .loading {
    text-align: center;
    padding: 4rem 0;
    color: #888;
}

.tenders-container .spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 2px solid #eee;
    border-top-color: #888;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin-bottom: 1rem;
}

/* Empty State for Tender Listings */
.tenders-container .empty-state {
    text-align: center;
    padding: 4rem 2rem;
    background: #fff;
    border: 1px solid #eee; /* from original .empty-state in tender listings */
    color: #888;
}

.tenders-container .empty-state i {
    color: #ccc; /* from original .empty-state in tender listings */
    margin-bottom: 1rem;
    font-size: 2rem; /* from original .empty-state in tender listings */
    opacity: 50%; /* from original .empty-state in tender listings */
}

.tenders-container .empty-state h3 {
    font-size: 1.125rem; /* from original .empty-state in tender listings */
    font-weight: 500;
    color: #111;
    margin-bottom: 0.5rem;
}

.tenders-container .empty-state p {
    color: #666;
    margin-bottom: 0; /* from original .empty-state in tender listings */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .tender-header-actions-content {
        flex-direction: column;
        align-items: stretch;
        padding: 1rem;
    }
    .action-text {
        text-align: center;
        margin-bottom: 0.5rem;
    }
    .tender-header-actions .btn {
        width: 100%;
    }
    .tender-content-wrapper {
        grid-template-columns: 1fr;
    }
    .tender-header {
        flex-direction: column; /* Assuming this was intended if .tender-header could flex */
    }
    /* .tender-header-actions was a fixed bar, this targets its content already */

    .tender-meta { /* General tender-meta responsive */
        flex-direction: column;
        gap: 0.5rem;
    }

    .bid-process-header {
        flex-direction: column;
        gap: 2rem;
        padding: 0 1rem;
    }
    .bid-process-header::before {
        inset: 0 auto 0 2rem;
        width: 3px;
        height: auto;
    }
    .bid-step {
        flex-direction: row;
        width: 100%;
        max-width: none;
        gap: 1rem;
    }
    .bid-step .step-icon {
        margin-bottom: 0;
    }
    .bid-step .step-content {
        text-align: left;
    }
    .bid-cta .card-body {
        padding: 1.5rem;
    }
    .bid-cta .btn-lg {
        width: 100%;
        padding: 0.75rem 1.5rem;
    }

    /* Tender listings responsive */
    .tenders-container .filter-controls {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .tender-card {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .company-info { /* For tender card responsive */
        flex-direction: row;
        align-items: center;
    }
}

@keyframes spin { /* Ensure spin is defined */
    to { transform: rotate(360deg); }
} 

/* Client mode notice styling */
#client-mode-notice {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid #e9ecef;
    background: #fff;
    color: #333;
    border-radius: 0;
    margin: 1rem 0 1.5rem 0;
}
#client-mode-notice i {
    color: #6c757d;
}
#client-mode-notice p {
    margin: 0;
    flex: 1;
}
#client-mode-notice .btn-primary {
    padding: 0.75rem 1.25rem!important;
} 

/* Access requests rows */
.request-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #e9ecef;
}
.request-row:last-child { border-bottom: none; }
.request-info { display: flex; align-items: center; gap: 1rem; color: #6c757d; }
.request-info .vendor-link { color: #000; text-decoration: underline; }
.request-actions { display: flex; align-items: center; gap: 0.75rem; }

/* CTA button variant */
.cta-button { font-weight: 600; }
.cta-button.btn[disabled], .cta-button.btn:disabled { opacity: 0.5; cursor: not-allowed; } 

/* Info banner styling (shared) */
.info-banner {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid #e9ecef;
    background: #fff;
    color: #333;
    margin: 1rem 0 1.5rem 0;
}
.info-banner i { color: #6c757d; }
.info-banner p { margin: 0; flex: 1; }
.info-banner .btn { padding: 0.5rem 1rem; } 