:root {
    --itlab-bg: #f5f7fb;
    --itlab-card: #ffffff;
    --itlab-text: #172033;
    --itlab-muted: #6b7280;
    --itlab-border: #e5e7eb;
    --itlab-primary: #2563eb;
    --itlab-primary-dark: #1d4ed8;
    --itlab-sidebar: #0f172a;
    --itlab-sidebar-text: #e5e7eb;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--itlab-bg);
    color: var(--itlab-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a { color: var(--itlab-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

.itlab-shell { min-height: 100vh; display: grid; grid-template-columns: 280px 1fr; }
.itlab-sidebar { background: var(--itlab-sidebar); color: var(--itlab-sidebar-text); padding: 24px 18px; }
.itlab-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 30px; }
.itlab-logo-mark { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.1); font-weight: 800; }
.itlab-logo-title { font-weight: 800; }
.itlab-logo-subtitle { color: #94a3b8; font-size: 13px; margin-top: 2px; }
.itlab-menu { display: grid; gap: 8px; }
.itlab-menu a { color: var(--itlab-sidebar-text); padding: 11px 12px; border-radius: 12px; background: rgba(255,255,255,.04); }
.itlab-menu a:hover { background: rgba(255,255,255,.1); text-decoration: none; }
.itlab-menu-section { margin: 18px 8px 6px; color: #94a3b8; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }

.itlab-main { min-width: 0; }
.itlab-topbar { min-height: 76px; background: rgba(255,255,255,.88); backdrop-filter: blur(12px); border-bottom: 1px solid var(--itlab-border); display: flex; align-items: center; justify-content: space-between; padding: 16px 28px; position: sticky; top: 0; z-index: 10; }
.itlab-page-title { font-size: 20px; font-weight: 800; }
.itlab-muted { color: var(--itlab-muted); }
.itlab-userbox { display: flex; align-items: center; gap: 10px; }
.itlab-role { padding: 4px 8px; border-radius: 999px; background: #eef2ff; color: #3730a3; font-size: 12px; }
.itlab-content { padding: 28px; max-width: 1180px; }
.itlab-auth-card, .card, .question { background: var(--itlab-card); border: 1px solid var(--itlab-border); border-radius: 18px; padding: 22px; box-shadow: 0 12px 30px rgba(15, 23, 42, .05); margin-bottom: 18px; }
.itlab-auth-card { max-width: 620px; }
.itlab-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.btn, .btn-primary, .btn-secondary, .btn-sm { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 12px; padding: 10px 14px; cursor: pointer; font-weight: 700; text-decoration: none; }
.btn-primary { background: var(--itlab-primary); color: #fff; }
.btn-primary:hover { background: var(--itlab-primary-dark); color: #fff; text-decoration: none; }
.btn-secondary { background: #e5e7eb; color: #111827; }
.btn-secondary:hover { background: #d1d5db; text-decoration: none; }
.btn-sm { padding: 6px 10px; font-size: 13px; }
.itlab-link-button { background: transparent; border: 0; color: var(--itlab-primary); cursor: pointer; padding: 0; font-weight: 700; }

.form-control, input[type="text"], input[type="password"], input[type="email"], textarea, select { width: 100%; border: 1px solid var(--itlab-border); border-radius: 12px; padding: 10px 12px; background: #fff; }
.help-block, .error-summary { color: #dc2626; }
.table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 14px; overflow: hidden; }
.table th, .table td { border-bottom: 1px solid var(--itlab-border); padding: 12px; text-align: left; }
.table th { background: #f9fafb; }
.alert { margin: 18px 28px 0; padding: 12px 14px; border-radius: 12px; background: #eef2ff; border: 1px solid #c7d2fe; }
.alert-success { background: #ecfdf5; border-color: #a7f3d0; }
.alert-error, .alert-danger { background: #fef2f2; border-color: #fecaca; }

@media (max-width: 900px) {
    .itlab-shell { grid-template-columns: 1fr; }
    .itlab-sidebar { position: static; }
    .itlab-topbar { position: static; align-items: flex-start; flex-direction: column; gap: 12px; }
    .itlab-grid-2 { grid-template-columns: 1fr; }
}
.itlab-stat { font-size: 34px; font-weight: 800; margin: 8px 0 14px; }
