* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; background: #1a1d23; color: #e4e6eb; }

.app-layout { display: flex; min-height: 100vh; }
.sidebar {
    width: 240px; background: #252830; padding: 1rem 0; display: flex; flex-direction: column;
    border-right: 1px solid #3a3f4b;
}
.sidebar-header { padding: 0 1rem 1rem; border-bottom: 1px solid #3a3f4b; }
.sidebar-brand { font-size: 1.25rem; font-weight: 700; color: #6ee7b7; text-decoration: none; }
.sidebar-nav { flex: 1; padding: 1rem 0; }
.nav-link { display: block; padding: 0.6rem 1rem; color: #a0aec0; text-decoration: none; transition: background .2s; }
.nav-link:hover { background: #2d323e; color: #e4e6eb; }
.sidebar-footer { padding: 1rem; border-top: 1px solid #3a3f4b; font-size: 0.85rem; }
.user-email { color: #718096; display: block; margin-bottom: 0.5rem; }

.main-content { flex: 1; padding: 1.5rem; }
.main-content.standalone { max-width: 480px; margin: 0 auto; padding-top: 3rem; }

.auth-box {
    background: #252830; padding: 2rem; border-radius: 8px; border: 1px solid #3a3f4b;
}
.auth-box h1 { margin-top: 0; color: #6ee7b7; }
.auth-form .form-group { margin-bottom: 1rem; }
.auth-form label { display: block; margin-bottom: 0.3rem; color: #a0aec0; }
.auth-form input {
    width: 100%; padding: 0.5rem 0.75rem; border: 1px solid #3a3f4b; border-radius: 4px;
    background: #1a1d23; color: #e4e6eb; font-size: 1rem;
}
.btn { display: inline-block; padding: 0.5rem 1rem; border-radius: 4px; border: none; cursor: pointer; font-size: 1rem; text-decoration: none; }
.btn-primary { background: #6ee7b7; color: #1a1d23; }
.btn-primary:hover { background: #5dd9a8; }
.alert { padding: 0.75rem; border-radius: 4px; margin-bottom: 1rem; }
.alert-error { background: #742a2a; color: #feb2b2; }
.alert-success { background: #22543d; color: #9ae6b4; }
.auth-links { margin-top: 1rem; font-size: 0.9rem; }
.auth-links a { color: #6ee7b7; }
.standalone-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 1rem; }
.text-success { color: #9ae6b4; }
.text-error { color: #feb2b2; }
.welcome-card, .page-home, .page-perfil { background: #252830; padding: 1.5rem; border-radius: 8px; border: 1px solid #3a3f4b; }
.welcome-card h2, .page-home h2, .page-perfil h2 { margin-top: 0; color: #6ee7b7; }
#session-blocked { position: fixed; top: 0; left: 0; right: 0; background: #742a2a; color: #feb2b2; padding: 1rem; text-align: center; z-index: 9999; }
