Chatty / static /css /auth.css
findEthics
Fix mobile header layout and change buttons to text
f998846
Raw
History Blame Contribute Delete
8.66 kB
/* Authentication-specific styles */
/* Header navigation */
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
}
.header-left {
flex: 1;
}
.logo-link {
color: white;
text-decoration: none;
transition: opacity 0.2s ease;
}
.logo-link:hover {
opacity: 0.8;
}
.header-nav {
display: flex;
align-items: center;
gap: 0.75rem;
}
.user-info {
font-size: 0.8rem;
opacity: 0.9;
margin-right: 0.5rem;
}
.nav-button {
background-color: transparent;
color: white;
border: 2px solid white;
padding: 0.375rem 0.75rem;
border-radius: 1rem;
text-decoration: none;
font-size: 0.8rem;
cursor: pointer;
font-family: inherit;
white-space: nowrap;
display: inline-flex;
align-items: center;
justify-content: center;
}
/* Button styles for mobile */
@media (max-width: 768px) {
.nav-button {
padding: 0.375rem 0.75rem;
min-width: auto;
min-height: 32px;
font-size: 0.8rem;
}
}
.nav-button:hover {
background-color: white;
color: black;
}
.logout-form {
margin: 0;
display: inline;
}
.logout-button {
background-color: transparent;
border: 2px solid white;
}
/* Desktop header navigation */
@media (min-width: 769px) {
.header-nav {
gap: 1rem;
}
.user-info {
font-size: 0.9rem;
margin-right: 0.75rem;
}
.nav-button {
padding: 0.5rem 1rem;
font-size: 0.9rem;
}
}
/* Flash messages */
.flash-messages {
padding: 0.75rem;
background-color: white;
}
.flash-message {
padding: 0.75rem 1rem;
border-radius: 1rem;
margin-bottom: 0.5rem;
border: 2px solid;
font-size: 0.9rem;
}
.flash-message:last-child {
margin-bottom: 0;
}
.flash-success {
background-color: #f0f9ff;
border-color: #0ea5e9;
color: #0c4a6e;
}
.flash-error {
background-color: #fef2f2;
border-color: #ef4444;
color: #991b1b;
}
.flash-info {
background-color: #f8fafc;
border-color: #64748b;
color: #334155;
}
/* Desktop flash messages */
@media (min-width: 769px) {
.flash-messages {
padding: 1rem 2rem;
}
.flash-message {
font-size: 1rem;
margin-bottom: 0.75rem;
}
}
/* Authentication forms */
.auth-container {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
background-color: white;
}
.auth-form-wrapper {
width: 100%;
max-width: 400px;
background-color: white;
border: 2px solid black;
border-radius: 1.5rem;
padding: 2rem;
}
.auth-form h2 {
text-align: center;
margin-bottom: 1.5rem;
font-size: 1.5rem;
color: black;
font-weight: 600;
}
.form-group {
margin-bottom: 1rem;
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
color: black;
font-size: 0.9rem;
}
.form-group input {
width: 100%;
padding: 0.75rem 1rem;
border: 2px solid black;
border-radius: 1.5rem;
font-size: 1rem;
background-color: white;
color: black;
font-family: inherit;
-webkit-appearance: none;
appearance: none;
}
.form-group input:focus {
outline: none;
border-color: black;
border-width: 3px;
}
.form-group input:invalid {
border-color: #ef4444;
}
.form-error {
color: #ef4444;
font-size: 0.8rem;
margin-top: 0.25rem;
display: none;
}
.form-error.show {
display: block;
}
.auth-button {
width: 100%;
padding: 0.875rem 1rem;
background-color: black;
color: white;
border: 2px solid black;
border-radius: 2rem;
font-size: 1rem;
font-weight: 500;
cursor: pointer;
margin-bottom: 1rem;
font-family: inherit;
}
.auth-button:hover {
background-color: white;
color: black;
}
/* Active state removed for minimal design */
.auth-button:disabled {
background-color: white;
color: black;
opacity: 0.5;
cursor: not-allowed;
}
.auth-links {
text-align: center;
margin-top: 1rem;
}
.auth-links a {
color: black;
text-decoration: underline;
font-size: 0.9rem;
}
.auth-links a:hover {
opacity: 0.7;
}
/* Desktop auth forms */
@media (min-width: 769px) {
.auth-container {
padding: 2rem;
}
.auth-form-wrapper {
max-width: 450px;
padding: 2.5rem;
}
.auth-form h2 {
font-size: 1.75rem;
margin-bottom: 2rem;
}
.form-group {
margin-bottom: 1.25rem;
}
.form-group label {
font-size: 1rem;
}
.auth-button {
padding: 1rem;
font-size: 1.1rem;
}
.auth-links a {
font-size: 1rem;
}
}
/* Mobile optimizations */
@media (max-width: 768px) {
.user-info {
font-size: 0.7rem;
margin-right: 0.25rem;
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.auth-form-wrapper {
padding: 1.5rem;
margin: 0.5rem;
border-radius: 0.75rem;
}
.auth-form h2 {
font-size: 1.25rem;
margin-bottom: 1.25rem;
}
/* Prevent zoom on input focus */
.form-group input {
font-size: 16px !important;
}
}
/* Chat-specific main content (when extending base) */
.chat-container {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
min-height: 0;
}
/* Loading indicator adjustments for auth pages */
.auth-container .loading-indicator {
position: absolute;
bottom: 2rem;
}
/* Responsive navigation for very small screens */
@media (max-width: 480px) {
.header-content {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.5rem;
}
.header-left {
flex: 0 0 auto;
}
.header-nav {
justify-content: flex-end;
gap: 0.5rem;
}
.user-info {
max-width: 150px;
}
}
/* High contrast mode support */
@media (prefers-contrast: high) {
.nav-button {
border-width: 2px;
}
.form-group input {
border-width: 3px;
}
.auth-button {
border-width: 3px;
}
}
/* Spinner for form buttons */
/* Spinner removed - using text instead */
/* Spin animation removed for minimal design */
/* Reduced motion support - animations already removed *//*
Error pages */
.error-container {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 2rem;
background-color: white;
}
.error-content {
text-align: center;
max-width: 500px;
width: 100%;
}
.error-code {
font-size: 6rem;
font-weight: 700;
color: black;
margin: 0;
line-height: 1;
}
.error-title {
font-size: 2rem;
font-weight: 600;
color: black;
margin: 1rem 0;
}
.error-message {
font-size: 1.1rem;
color: #4a5568;
margin: 1.5rem 0 2rem 0;
line-height: 1.6;
}
.error-actions {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.error-button {
padding: 0.75rem 1.5rem;
background-color: black;
color: white;
border: 2px solid black;
border-radius: 2rem;
text-decoration: none;
font-size: 1rem;
font-weight: 500;
cursor: pointer;
font-family: inherit;
display: inline-block;
}
.error-button:hover {
background-color: white;
color: black;
}
.error-button.secondary {
background-color: white;
color: black;
border-color: #d1d5db;
}
.error-button.secondary:hover {
background-color: #f9fafb;
border-color: black;
}
/* Mobile error pages */
@media (max-width: 768px) {
.error-container {
padding: 1rem;
}
.error-code {
font-size: 4rem;
}
.error-title {
font-size: 1.5rem;
}
.error-message {
font-size: 1rem;
margin: 1rem 0 1.5rem 0;
}
.error-actions {
flex-direction: column;
align-items: center;
}
.error-button {
width: 100%;
max-width: 200px;
}
}
/* Session expiry notification */
.session-expiry-warning {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #fbbf24;
color: #92400e;
padding: 0.75rem;
text-align: center;
font-weight: 500;
z-index: 1000;
border-bottom: 2px solid #f59e0b;
}
.session-expiry-warning button {
background: none;
border: none;
color: #92400e;
font-weight: 600;
cursor: pointer;
margin-left: 1rem;
text-decoration: underline;
}