:root {
--w321sg-bg: #f3f1ec;
--w321sg-card: #ffffff;
--w321sg-text: #1f2328;
--w321sg-muted: #5b6168;
--w321sg-accent: #1d5c63;
--w321sg-accent-hover: #164a50;
--w321sg-error: #b42318;
--w321sg-border: #d6d3cc;
}
@media (prefers-color-scheme: dark) {
:root {
--w321sg-bg: #16191c;
--w321sg-card: #20252a;
--w321sg-text: #eceff1;
--w321sg-muted: #a7aeb5;
--w321sg-accent: #4fa3ab;
--w321sg-accent-hover: #6bb8bf;
--w321sg-error: #ff8a80;
--w321sg-border: #3a4148;
}
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body.w321sg-body {
background: var(--w321sg-bg);
color: var(--w321sg-text);
font: 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 24px 16px;
}
.w321sg-card {
background: var(--w321sg-card);
border: 1px solid var(--w321sg-border);
border-radius: 12px;
padding: 36px 32px;
width: 100%;
max-width: 420px;
text-align: center;
box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
}
.w321sg-logo { border-radius: 10px; margin-bottom: 8px; }
.w321sg-site { margin: 0 0 4px; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.w321sg-site a { color: var(--w321sg-muted); text-decoration: none; }
.w321sg-card h1 { margin: 0 0 12px; font-size: 26px; line-height: 1.2; }
.w321sg-message { margin: 0 0 24px; color: var(--w321sg-muted); }
.w321sg-form { text-align: left; }
.w321sg-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.w321sg-form input {
width: 100%;
font-size: 18px;
padding: 12px 14px;
border: 1px solid var(--w321sg-border);
border-radius: 8px;
background: var(--w321sg-card);
color: var(--w321sg-text);
}
.w321sg-form input:focus { outline: 3px solid var(--w321sg-accent); outline-offset: 1px; }
.w321sg-form button {
margin-top: 14px;
width: 100%;
font-size: 18px;
font-weight: 600;
padding: 12px;
border: 0;
border-radius: 8px;
background: var(--w321sg-accent);
color: #fff;
cursor: pointer;
}
.w321sg-form button:hover, .w321sg-form button:focus-visible { background: var(--w321sg-accent-hover); }
.w321sg-form button[disabled] { opacity: .7; cursor: wait; }
.w321sg-error { color: var(--w321sg-error); min-height: 1.5em; margin: 12px 0 0; font-weight: 600; }