/* =============================================================================
   Graphic House - Dashboard
   Stat cards, date card, urgent card, dark headers
   ============================================================================= */

/* =============================================================================
   Stat Cards
   ============================================================================= */
.stat-card {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    border-left: 4px solid var(--gh-gray-400);
}

.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px var(--gh-shadow-color);
}

.stat-card .stat-icon {
    font-size: 2.5rem;
    color: var(--gh-muted-color);
}

.stat-card .stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--gh-body-color);
}

.stat-card .stat-label {
    font-size: 0.875rem;
    color: var(--gh-muted-color);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Highlight card - uses primary color */
.stat-card-highlight {
    border-left-color: var(--gh-primary);
}

.stat-card-highlight .stat-icon,
.stat-card-highlight .stat-icon-sm {
    color: var(--gh-primary);
}

/* =============================================================================
   Small Stat Cards
   ============================================================================= */
.stat-value-sm {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gh-body-color);
    line-height: 1.2;
}

.stat-label-sm {
    font-size: 0.75rem;
    color: var(--gh-muted-color);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.stat-icon-sm {
    font-size: 1.75rem;
    color: var(--gh-muted-color);
}

/* =============================================================================
   Date Card
   ============================================================================= */
.stat-card-date {
    background: linear-gradient(135deg, var(--gh-gray-900) 0%, var(--gh-gray-800) 100%);
    border: 2px solid var(--gh-primary);
    border-radius: 8px;
}

.stat-card-date .card-body {
    color: var(--gh-white);
}

.stat-card-date .text-muted {
    color: var(--gh-gray-400) !important;
}

.stat-card-date .date-day {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--gh-primary-light);
    line-height: 1;
}

/* =============================================================================
   Urgent Card
   ============================================================================= */
.card-urgent {
    border: 1px solid var(--gh-primary);
}

.card-header-urgent {
    background-color: var(--gh-primary);
    color: var(--gh-white);
    border-bottom: none;
}

.badge-urgent {
    background-color: var(--gh-primary-dark);
    color: var(--gh-white);
}

/* Urgent panel items - prevent horizontal overflow */
.card-urgent .list-group-item {
    flex-wrap: nowrap;
    overflow: hidden;
    gap: 0.25rem;
}

.card-urgent .list-group-item > div:first-child {
    min-width: 0;
    flex-shrink: 1;
}

.card-urgent .list-group-item > div:last-child {
    flex-shrink: 0;
}

/* Badge date in urgent panel - always readable */
.card-urgent .badge-urgent.deadline-hover {
    font-size: 0.7rem;
    padding: 3px 6px;
    white-space: nowrap;
    color: var(--gh-white) !important;
}

/* Status select in urgent panel - compact */
.card-urgent .badge-status-select {
    min-width: 90px;
    font-size: 0.65rem !important;
    padding: 2px 14px 2px 4px !important;
    background-size: 12px;
}

/* =============================================================================
   Dark Header
   ============================================================================= */
.card-header-dark {
    background: linear-gradient(135deg, var(--gh-gray-900) 0%, var(--gh-gray-800) 100%);
    color: var(--gh-white);
    border-bottom: 2px solid var(--gh-primary);
}

.card-header-dark h5,
.card-header-dark h6 {
    color: var(--gh-white);
}

/* =============================================================================
   Scrollable Dashboard Lists
   ============================================================================= */
.dashboard-scroll-list {
    max-height: 255px;
    overflow-y: auto;
    overflow-x: hidden;
}

.dashboard-scroll-list::-webkit-scrollbar {
    width: 6px;
}

.dashboard-scroll-list::-webkit-scrollbar-track {
    background: var(--gh-scrollbar-track);
}

.dashboard-scroll-list::-webkit-scrollbar-thumb {
    background-color: var(--gh-scrollbar-thumb);
    border-radius: 3px;
}

.dashboard-scroll-list::-webkit-scrollbar-thumb:hover {
    background-color: var(--gh-scrollbar-thumb-hover);
}

.dashboard-scroll-loader {
    display: flex;
    justify-content: center;
    padding: 8px 0;
}

/* =============================================================================
   Dark Mode - Dashboard
   ============================================================================= */
[data-bs-theme="dark"] .stat-card {
    border-left-color: var(--gh-section-border);
}

[data-bs-theme="dark"] .stat-card-highlight {
    border-left-color: var(--gh-primary);
}

[data-bs-theme="dark"] .card-header-dark {
    background: linear-gradient(135deg, #0d0f10 0%, #181b1e 100%);
}

[data-bs-theme="dark"] .stat-card-date {
    background: linear-gradient(135deg, #0d0f10 0%, #181b1e 100%);
}

/* =============================================================================
   Calendar Modal
   ============================================================================= */
.stat-card-date {
    cursor: pointer;
}

.stat-card-date:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px var(--gh-shadow-color);
}

#cal-table {
    table-layout: fixed;
}

.cal-cell {
    height: 72px;
    vertical-align: top;
    padding: 4px !important;
    position: relative;
    transition: background-color .15s;
}

.cal-cell.cal-empty {
    background-color: var(--gh-gray-100);
}

.cal-cell.cal-has-orders:hover {
    background-color: var(--gh-primary-light);
}

.cal-cell.cal-today {
    border: 2px solid var(--gh-primary) !important;
}

.cal-cell.cal-today .cal-day-num {
    font-weight: 700;
    color: var(--gh-primary);
}

.cal-cell.cal-past .cal-day-num {
    color: var(--gh-muted-color);
}

.cal-day-num {
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 2px;
}

.cal-dots {
    display: flex;
    justify-content: center;
    gap: 2px;
    flex-wrap: wrap;
    margin-top: 2px;
    max-width: calc(5 * 10px + 4 * 2px); /* max 5 dots per row */
    margin-left: auto;
    margin-right: auto;
}

.cal-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.cal-dots-more {
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--gh-muted-color);
    line-height: 10px;
    white-space: nowrap;
}

.cal-legend .cal-dot {
    vertical-align: middle;
    margin-right: 3px;
}

#cal-day-detail {
    max-height: 250px;
    overflow-y: auto;
}

/* Dark mode: calendar */
[data-bs-theme="dark"] .cal-cell.cal-empty {
    background-color: var(--gh-gray-900);
}

[data-bs-theme="dark"] .cal-cell.cal-has-orders:hover {
    background-color: var(--gh-gray-800);
}

/* =============================================================================
   Responsive
   ============================================================================= */
@media (max-width: 768px) {
    .stat-card .stat-value {
        font-size: 1.5rem;
    }

    .stat-card .stat-icon {
        font-size: 2rem;
    }
}
