:root {
    --primary: #4f46e5;
}

body {
    background-color: #f5f7fb;
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}

/* Navbar */
.navbar {
    background: linear-gradient(135deg, #0901a2 0%, #0562b4 100%);
}
.navbar-brand { font-size: 1.3rem; }

/* Stat cards */
.stat-card {
    border-radius: 14px;
    transition: transform .15s ease;
}
.stat-card:hover { transform: translateY(-3px); }

.stat-icon {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bg-primary-soft { background-color: #eef2ff; }
.bg-success-soft { background-color: #ecfdf5; }
.bg-warning-soft { background-color: #fffbeb; }

/* Cards */
.card { border-radius: 14px; }
.card-header { border-radius: 14px 14px 0 0 !important; }

/* Table */
.table > :not(caption) > * > * { padding: .75rem .8rem; }
.badge-status { font-size: .8rem; padding: .4em .7em; border-radius: 8px; }

/* Upcoming items */
.upcoming-item {
    background: #f8fafc;
    border-left: 4px solid #4f46e5;
    border-radius: 8px;
    padding: 10px 14px;
    transition: background .15s;
}
.upcoming-item:hover { background: #eef2ff; }

/* Buttons */
.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
}
.btn-primary:hover {
    background: #4338ca;
    border-color: #4338ca;
}
.btn-sm { font-size: .85rem; }

/* Weekly Schedule Table */
.weekly-schedule th, .weekly-schedule td {
    vertical-align: middle;
    font-size: 0.85rem;
    padding: .6rem .5rem;
}
.weekly-schedule th {
    background-color: #f8fafc;
    font-weight: 600;
}
.weekly-schedule td.is-today {
    background-color: #eff6ff;
}
.weekly-schedule td.is-today span {
    color: #2563eb;
    font-weight: bold;
}
.weekly-schedule td.slot-booked {
    background-color: #fee2e2;
    color: #b91c1c;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .2s;
}
.weekly-schedule td.slot-booked:hover {
    background-color: #fecaca;
}
.weekly-schedule td.slot-empty {
    background-color: #ffffff;
    color: #cbd5e1;
}

/* Làm mờ nút Thêm khi bị disable */
#btnAddMeeting:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
