* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: flex;
flex-direction: column;
height: 100vh;
}
main {
flex: 1;
}
html, body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background-color: var(--bg-main);
color: var(--text-main);
}
.debug-banner {
background: linear-gradient(90deg, #b91c1c, #ef4444);
color: #fff;
text-align: center;
padding: 0.5rem;
font-weight: 600;
letter-spacing: 0.05em;
}
header {
position: relative;
height: 260px;
background: var(--bg-header);
overflow: hidden;
border-bottom: 1px solid #1f2937;
}
header img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.35;
filter: contrast(1.05) saturate(1.1);
}
header::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(
to bottom,
rgba(15, 18, 22, 0.4),
rgba(15, 18, 22, 0.95)
);
}
.content {
max-width: 90%;
margin: -5rem auto 3rem auto;
background: var(--bg-card);
padding: 2rem 2.5rem;
border-radius: 2rem;
box-shadow:
0 10px 30px rgba(0, 0, 0, 0.6),
inset 0 1px 0 rgba(255, 255, 255, 0.03);
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
}
.content h1 {
font-size: 2rem;
margin-bottom: 1rem;
color: var(--accent);
}
.content p {
margin-bottom: 0.6rem;
color: var(--text-muted);
font-size: 0.95rem;
}
.content p strong {
color: var(--text-main);
}
.flash-messages {
display: flex;
flex-direction: column;
margin: 0.5rem;
}
[class^="message-"] {
margin-top: 1rem;
border-radius: 8px;
font-weight: 600;
font-size: 0.7rem;
background: #1f2937;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.message-Error {
color: #fecaca;
border-left: 4px solid #ef4444;
background: linear-gradient(
90deg,
rgba(239, 68, 68, 0.15),
#1f2937 40%
);
}
.message-Success {
color: #bbf7d0;
border-left: 4px solid #22c55e;
background: linear-gradient(
90deg,
rgba(34, 197, 94, 0.15),
#1f2937 40%
);
}
.message-Info {
color: #bfdbfe;
border-left: 4px solid #3b82f6;
background: linear-gradient(
90deg,
rgba(59, 130, 246, 0.15),
#1f2937 40%
);
}
.message-Warning {
color: #fde68a;
border-left: 4px solid #f59e0b;
background: linear-gradient(
90deg,
rgba(245, 158, 11, 0.15),
#1f2937 40%
);
}
footer {
background: var(--bg-footer);
border-top: 1px solid #1f2937;
padding: 1.5rem 1rem;
text-align: center;
}
footer a {
color: var(--text-muted);
text-decoration: none;
margin: 0 0.8rem;
font-size: 0.9rem;
transition: color 0.2s ease;
}
footer a:hover {
color: var(--accent);
}
footer p {
margin-top: 0.8rem;
font-size: 0.8rem;
color: #6b7280;
}
@media (max-width: 768px) {
header {
height: 200px;
}
.content {
margin: -3rem auto 2rem auto;
padding: 1.5rem;
}
.content h1 {
font-size: 1.6rem;
}
.content p {
font-size: 0.9rem;
}
footer a {
margin: 0 0.5rem;
font-size: 0.85rem;
}
}
@media (max-width: 480px) {
header {
height: 150px;
}
.debug-banner {
font-size: 0.85rem;
padding: 0.4rem;
}
.content {
margin: 2rem;
border-radius: 0.75rem;
}
.content h1 {
font-size: 1.4rem;
margin-bottom: 0.75rem;
}
.content p {
font-size: 0.85rem;
margin-bottom: 0.5rem;
}
[class^="message-"] {
font-size: 0.85rem;
padding: 0.6rem 0.8rem;
}
footer {
padding: 1rem 0.5rem;
}
footer a {
display: inline-block;
margin: 0.3rem 0.4rem;
font-size: 0.8rem;
}
footer p {
margin-top: 0.6rem;
font-size: 0.75rem;
}
}
.field-hints {
font-size: 0.85rem;
color: #6c757d;
margin-top: 0.3rem;
}
@media (max-width: 360px) {
.content h1 {
font-size: 1rem;
}
.content {
padding: 0.75rem;
}
footer a {
display: block;
margin: 0.4rem 0;
}
}