:root {
    --summary-header-bg: #f8f9fa;
}

.summary-table th {
    background-color: var(--summary-header-bg);
    font-weight: 600;
    white-space: nowrap;
}

.summary-table .total-row {
    font-weight: 700;
    border-top: 2px solid #dee2e6;
}

.card-header.section-header {
    background-color: #e9ecef;
    font-weight: 600;
}

.hours-badge {
    font-size: 1rem;
    min-width: 4rem;
    text-align: right;
}

.quick-entry-card {
    border-left: 4px solid #0d6efd;
}

/* Entry form steps */
.step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: #0d6efd;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    margin-right: 0.4rem;
    flex-shrink: 0;
}

.step-label {
    display: flex;
    align-items: center;
    margin-bottom: 0.5rem;
}

/* Project buttons */
#projectButtons {
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

#projectButtons::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}

.project-btn {
    text-align: left;
    min-width: 110px;
    max-width: 200px;
    line-height: 1.25;
    padding: 0.35rem 0.65rem;
    flex-shrink: 0;
}

.project-btn .proj-customer {
    font-size: 0.68rem;
    opacity: 0.65;
    display: block;
    line-height: 1;
    margin-bottom: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.project-btn .proj-name {
    font-weight: 600;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Date buttons */
.date-btn {
    text-align: center;
    padding: 0.3rem 0.5rem;
    line-height: 1.2;
}

.date-btn.is-today {
    border-width: 2px;
    border-style: solid !important;
}

.date-btn.btn-outline-secondary.is-today {
    border-color: #0d6efd;
    color: #0d6efd;
}

/* Hours buttons */
.hours-btn {
    min-width: 3rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* Entry summary bar */
#entrySummary {
    font-size: 0.82rem;
    background: #f0f4ff;
    border: 1px solid #c8d8ff;
    border-radius: 0.375rem;
    padding: 0.35rem 0.75rem;
    color: #3a5fc0;
}

#entrySummary .summary-sep {
    color: #aab8d8;
    margin: 0 0.35rem;
}

/* Small button variant */
.btn-xs {
    padding: 0.1rem 0.35rem;
    font-size: 0.75rem;
    line-height: 1.4;
}

.footer {
    margin-top: auto;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.container {
    flex: 1;
}
