/* ── Timesheet App — Custom styles ──────────────────────────────────────── */

/* Auth card */
.auth-card {
    width: 100%;
    max-width: 420px;
    padding: 2rem;
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 0.5rem 2rem rgba(0,0,0,.12);
}

/* Sidebar */
.sidebar .nav-link {
    color: #495057;
    border-radius: 0.4rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.9rem;
    transition: background .15s;
}
.sidebar .nav-link:hover,
.sidebar .nav-link.active {
    background: #e7f1ff;
    color: #0d6efd;
}
.sidebar .nav-link.active {
    font-weight: 600;
}
.sidebar .nav-link.text-muted {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    pointer-events: none;
}

/* Extra-small button helper */
.btn-xs {
    --bs-btn-padding-y: 0.15rem;
    --bs-btn-padding-x: 0.35rem;
    --bs-btn-font-size: 0.75rem;
    font-size: .75rem;
    padding: .15rem .35rem;
    border-radius: .25rem;
}

/* Table tweaks */
.table td, .table th { vertical-align: middle; }

/* Font-monospace for timer */
#timerDisplay, #navTimerDisplay, #dashTimerDisplay {
    letter-spacing: .05em;
}

/* Badge text contrast fix */
.badge {
    font-weight: 500;
}

/* Sticky bottom padding on mobile */
@media (max-width: 767px) {
    .sidebar { display: none; }
    main.col-md-9 { max-width: 100%; }
}

/* Card hover effect */
.hover-shadow:hover {
    box-shadow: 0 .25rem 1rem rgba(0,0,0,.1) !important;
}

/* Content max-width for readability */
.card { border-radius: .5rem; }

/* Improve select option readability */
select option { padding: 4px; }

/* Subtle animation on flash messages */
.alert { animation: fadeIn .3s ease; }
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}
