Files
balanceboard/templates/base.html
chelsea cb894b2159 BalanceBoard - Clean release
- Docker deployment ready
- Content aggregation and filtering
- User authentication
- Polling service for updates

🤖 Generated with Claude Code
2025-10-11 21:24:21 +00:00

252 lines
6.3 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}BalanceBoard{% endblock %}</title>
<link rel="stylesheet" href="{{ url_for('serve_theme', filename='modern-card-ui/styles.css') }}">
<style>
/* Auth pages styling */
.auth-container {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: var(--background-color);
padding: 24px;
}
.auth-card {
background: var(--surface-color);
border-radius: 16px;
box-shadow: 0 4px 12px var(--surface-elevation-2);
padding: 48px;
max-width: 450px;
width: 100%;
border-top: 4px solid var(--primary-color);
}
.auth-logo {
text-align: center;
margin-bottom: 32px;
}
.auth-logo img {
width: 80px;
height: 80px;
border-radius: 50%;
}
.auth-logo h1 {
margin-top: 16px;
font-size: 1.75rem;
color: var(--text-primary);
}
.auth-logo h1 .balance {
color: var(--primary-color);
}
.auth-form .form-group {
margin-bottom: 20px;
}
.auth-form label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: var(--text-primary);
font-size: 0.95rem;
}
.auth-form input {
width: 100%;
padding: 12px 16px;
border: 2px solid var(--border-color);
border-radius: 8px;
font-size: 1rem;
transition: all 0.2s ease;
box-sizing: border-box;
}
.auth-form input:focus {
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(77, 182, 172, 0.1);
}
.auth-form .checkbox-group {
display: flex;
align-items: center;
gap: 8px;
}
.auth-form .checkbox-group input[type="checkbox"] {
width: auto;
}
.auth-form button {
width: 100%;
padding: 14px;
background: var(--primary-color);
color: white;
border: none;
border-radius: 8px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.2s ease;
}
.auth-form button:hover {
background: var(--primary-hover);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(77, 182, 172, 0.3);
}
.auth-footer {
text-align: center;
margin-top: 24px;
padding-top: 24px;
border-top: 1px solid var(--divider-color);
}
.auth-footer a {
color: var(--primary-color);
text-decoration: none;
font-weight: 500;
}
.auth-footer a:hover {
text-decoration: underline;
}
.flash-messages {
margin-bottom: 24px;
}
.flash-message {
padding: 12px 16px;
border-radius: 8px;
margin-bottom: 12px;
font-size: 0.95rem;
}
.flash-message.success {
background: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
}
.flash-message.error {
background: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
.flash-message.info {
background: #d1ecf1;
color: #0c5460;
border: 1px solid #bee5eb;
}
.divider {
text-align: center;
margin: 24px 0;
position: relative;
}
.divider::before {
content: '';
position: absolute;
left: 0;
top: 50%;
width: 100%;
height: 1px;
background: var(--divider-color);
}
.divider span {
background: var(--surface-color);
padding: 0 16px;
position: relative;
color: var(--text-secondary);
font-size: 0.9rem;
}
/* Social Authentication Styles */
.social-auth-separator {
text-align: center;
margin: 24px 0 20px 0;
position: relative;
}
.social-auth-separator::before {
content: '';
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 1px;
background: var(--border-color);
}
.social-auth-separator span {
background: var(--surface-color);
padding: 0 16px;
position: relative;
color: var(--text-secondary);
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.social-auth-buttons {
margin-bottom: 24px;
}
.social-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
width: 100%;
padding: 12px 16px;
border: 1px solid var(--border-color);
border-radius: 8px;
background: var(--surface-color);
color: var(--text-primary);
text-decoration: none;
font-weight: 500;
transition: all 0.2s ease;
margin-bottom: 8px;
}
.social-btn:hover {
background: var(--surface-elevation-1);
border-color: var(--primary-color);
transform: translateY(-1px);
box-shadow: 0 2px 8px var(--surface-elevation-2);
}
.auth0-btn {
border-color: #eb5424;
color: #eb5424;
}
.auth0-btn:hover {
background: #eb5424;
color: white;
}
.social-btn svg {
flex-shrink: 0;
}
</style>
{% block extra_css %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>