:root {
    --sidebar-width: 250px;
    --sidebar-bg: #1a1f2e;
    --sidebar-hover: #252b3b;
    --sidebar-active: #2d6af2;
    --sidebar-text: #a8b2c1;
    --body-bg: #f4f6f9;
    --card-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

* { box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: var(--body-bg); margin: 0; }

.sidebar {
    width: var(--sidebar-width); min-height: 100vh; background: var(--sidebar-bg);
    display: flex; flex-direction: column; position: fixed; left: 0; top: 0; bottom: 0; z-index: 1000; overflow-y: auto;
}
.sidebar-header { padding: 1.5rem 1.25rem; font-size: 1.2rem; font-weight: 700; color: #fff; display: flex; align-items: center; gap: 0.75rem; border-bottom: 1px solid rgba(255,255,255,0.08); }
.sidebar-header i { font-size: 1.4rem; color: var(--sidebar-active); }
.sidebar-nav { flex: 1; padding: 1rem 0; }
.sidebar-nav .nav-link { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 1.25rem; color: var(--sidebar-text); text-decoration: none; font-size: 0.88rem; transition: all 0.15s; border-left: 3px solid transparent; }
.sidebar-nav .nav-link:hover { background: var(--sidebar-hover); color: #fff; }
.sidebar-nav .nav-link.active { background: rgba(45,106,242,0.1); color: #fff; border-left-color: var(--sidebar-active); }
.sidebar-nav .nav-link i { font-size: 1.05rem; width: 20px; text-align: center; }
.nav-section-title { padding: 1.2rem 1.25rem 0.4rem; font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #5a6478; }
.sidebar-footer { padding: 1rem 1.25rem; border-top: 1px solid rgba(255,255,255,0.08); }
.user-info { display: flex; align-items: center; gap: 0.5rem; color: var(--sidebar-text); font-size: 0.85rem; }

.main-content { margin-left: var(--sidebar-width); flex: 1; min-height: 100vh; }
.page-header { margin-bottom: 1.5rem; }
.page-header h2 { font-weight: 700; font-size: 1.5rem; color: #1a1f2e; margin-bottom: 0.25rem; }
.page-header h2 i { margin-right: 0.5rem; color: var(--sidebar-active); }

.card { border: none; border-radius: 12px; box-shadow: var(--card-shadow); background: #fff; }
.card-header { background: #fff; border-bottom: 1px solid #eef0f5; padding: 1rem 1.25rem; font-weight: 600; }

.stat-card { background: #fff; border-radius: 12px; padding: 1.5rem; box-shadow: var(--card-shadow); text-align: center; transition: transform 0.15s; }
.stat-card:hover { transform: translateY(-2px); }
.stat-icon { font-size: 2.5rem; margin-bottom: 0.5rem; }
.stat-number { font-size: 2rem; font-weight: 700; color: #1a1f2e; }
.stat-label { font-size: 0.85rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.5rem; }

.login-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #1a1f2e 0%, #2d3748 100%); padding: 2rem; }
.login-card { background: #fff; border-radius: 16px; padding: 2.5rem; width: 100%; max-width: 420px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.login-header { text-align: center; margin-bottom: 2rem; }
.login-icon { font-size: 3rem; color: var(--sidebar-active); margin-bottom: 0.75rem; }
.login-header h1 { font-size: 1.5rem; font-weight: 700; color: #1a1f2e; margin-bottom: 0.25rem; }
.login-header p { color: #6b7280; font-size: 0.9rem; }
.login-footer { text-align: center; margin-top: 1.5rem; color: #9ca3af; }

.table { margin-bottom: 0; }
.table thead th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; border-bottom: 2px solid #e5e7eb; padding: 0.75rem 1rem; }
.table td { padding: 0.6rem 1rem; vertical-align: middle; }
.table-hover tbody tr:hover { background: #f8fafc; }

.alert { border: none; border-radius: 8px; font-size: 0.9rem; }
.btn { border-radius: 8px; font-weight: 500; }
.btn-primary { background: var(--sidebar-active); border-color: var(--sidebar-active); }
.btn-primary:hover { background: #1d5ae0; border-color: #1d5ae0; }
.badge { font-weight: 500; padding: 0.4em 0.7em; border-radius: 6px; }

.nav-tabs .nav-link { font-weight: 500; color: #6b7280; }
.nav-tabs .nav-link.active { color: var(--sidebar-active); border-color: var(--sidebar-active); border-bottom-color: #fff; }

.list-group-item.active { background: var(--sidebar-active); border-color: var(--sidebar-active); }

@media (max-width: 768px) {
    .sidebar { position: relative; width: 100%; min-height: auto; flex-direction: row; flex-wrap: wrap; }
    .sidebar-nav { display: flex; flex-wrap: wrap; padding: 0.5rem; }
    .sidebar-nav .nav-link { padding: 0.5rem 0.75rem; border-left: none; }
    .nav-section-title, .sidebar-footer { display: none; }
    .main-content { margin-left: 0; }
}


/* Google Sign-In Button */
.btn-google {
    background: #fff;
    color: #3c4043;
    border: 1px solid #dadce0;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    transition: box-shadow 0.2s, background 0.2s;
}
.btn-google:hover {
    background: #f7f8f8;
    box-shadow: 0 1px 3px rgba(60,64,67,0.3);
    color: #3c4043;
    border-color: #dadce0;
}
.google-icon { flex-shrink: 0; }

.divider {
    display: flex;
    align-items: center;
    margin: 1.25rem 0;
    color: #9ca3af;
    font-size: 0.8rem;
}
.divider::before, .divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e5e7eb;
}
.divider span { padding: 0 0.75rem; }
