* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: #f4f5f7; color: #1f2328; }

.auth-body { display: flex; align-items: center; justify-content: center; min-height: 100vh; }
.auth-card { background: #fff; padding: 2.5rem; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); width: 100%; max-width: 360px; }
.auth-card h1 { font-size: 1.25rem; margin-bottom: 1.5rem; }
.auth-card label { display: block; font-size: 0.85rem; margin: 0.75rem 0 0.25rem; }
.auth-card input[type="email"], .auth-card input[type="password"] { width: 100%; padding: 0.5rem; border: 1px solid #d0d5dd; border-radius: 6px; }
.checkbox-label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; }
.auth-card button { margin-top: 1.25rem; width: 100%; padding: 0.6rem; background: #1f2937; color: #fff; border: none; border-radius: 6px; cursor: pointer; }

.alert { padding: 0.6rem 0.8rem; border-radius: 6px; font-size: 0.85rem; margin-bottom: 0.75rem; }
.alert-error { background: #fdecea; color: #b3261e; }
.alert-success { background: #e6f4ea; color: #1e7b34; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 220px; background: #1f2937; color: #fff; padding: 1rem; }
.sidebar-brand { font-weight: 600; margin-bottom: 1.5rem; }
.sidebar-nav { display: flex; flex-direction: column; gap: 0.25rem; }
.nav-link { color: #c9d1d9; text-decoration: none; padding: 0.5rem 0.6rem; border-radius: 6px; font-size: 0.9rem; }
.nav-link:hover, .nav-link.active { background: #374151; color: #fff; }

.main { flex: 1; display: flex; flex-direction: column; }
.topbar { background: #fff; padding: 0.75rem 1.5rem; border-bottom: 1px solid #e5e7eb; display: flex; justify-content: flex-end; }
.topbar-user { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9rem; }
.inline-form { display: inline; }
.link-button { background: none; border: none; color: #6b7280; cursor: pointer; font-size: 0.85rem; text-decoration: underline; }

.content { padding: 2rem; }