/*
 * The sign-in and first-start pages in the Evil Genius look (brand guide 1.6): navy ground, a card,
 * frost text, teal for the buttons and focus, one orange element (the rule on top of the card), the
 * ™ lockup on dark in the header and the MindWorks lockup in the footer. Served by this computer
 * (no internet needed). Fonts: Plus Jakarta Sans for the title, JetBrains Mono for the small labels
 * (SIL Open Font License, /assets/fonts); body text in Calibri, the guide's fallback for General Sans.
 */
@font-face { font-family: "Plus Jakarta Sans"; font-weight: 800; font-display: swap; src: url("/assets/fonts/PlusJakartaSans-ExtraBold.ttf") format("truetype"); }
@font-face { font-family: "Plus Jakarta Sans"; font-weight: 700; font-display: swap; src: url("/assets/fonts/PlusJakartaSans-Bold.ttf") format("truetype"); }
@font-face { font-family: "JetBrains Mono"; font-weight: 400; font-display: swap; src: url("/assets/fonts/JetBrainsMono-Regular.ttf") format("truetype"); }

:root {
    color-scheme: dark;
    --navy: #080C14; --card: #111827; --field: #0B1220; --line: #1E293B;
    --frost: #E2E8F0; --slate: #8694A8; --teal: #30CECF; --gold: #B8964E; --orange: #F37020;
    --display: "Plus Jakarta Sans", "Trebuchet MS", system-ui, sans-serif;
    --body: Calibri, "Segoe UI", system-ui, sans-serif;
    --mono: "JetBrains Mono", Consolas, "Courier New", monospace;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font: 15px/1.6 var(--body); color: var(--frost); background: var(--navy); min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.auth-container { width: 100%; max-width: 440px; padding: 24px 16px; }
.auth-card { background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--orange); border-radius: 12px; padding: 36px 36px 28px; }
.auth-logo { margin-bottom: 26px; }
.auth-logo .auth-lockup { display: block; height: 48px; width: auto; margin-bottom: 22px; }
.auth-logo .auth-overline { font: 400 12px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; }
.auth-logo h1 { font: 800 26px/1.2 var(--display); letter-spacing: -.01em; color: var(--frost); margin-bottom: 4px; }
.auth-logo p { font-size: 14px; color: var(--slate); }
.auth-lead { font-size: 14px; color: var(--slate); margin-bottom: 18px; }
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 14px; font-weight: 600; color: var(--frost); margin-bottom: 6px; }
.form-group input { width: 100%; padding: 10px 12px; border: 1px solid #2A3750; border-radius: 8px; font: inherit; color: var(--frost); background: var(--field); }
.form-group input:focus, .btn-auth:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.form-hint { font-size: 13px; color: var(--slate); margin-top: 4px; }
.btn-auth { width: 100%; padding: 12px; background: var(--teal); color: var(--navy); border: 1px solid var(--teal); border-radius: 8px; font: 700 15px/1.2 var(--display); cursor: pointer; margin-top: 8px; }
.btn-auth:hover { filter: brightness(1.08); }
.btn-auth:disabled { opacity: 0.6; cursor: not-allowed; }
.auth-secondary .btn-auth { background: transparent; color: var(--teal); }
.auth-divider { display: flex; align-items: center; gap: 10px; margin: 24px 0 16px; color: var(--slate); font: 400 12px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; border-top: 1px solid var(--line); }
.auth-error { background: #2A1215; color: #FECACA; border: 1px solid #7F1D1D; border-radius: 8px; padding: 10px 14px; font-size: 14px; margin-top: 14px; display: none; }
.auth-error.visible { display: block; }
.setup-notice { background: var(--field); border: 1px solid var(--line); border-left: 3px solid var(--teal); border-radius: 8px; padding: 14px; margin-bottom: 20px; font-size: 14px; color: var(--frost); }
.setup-notice p + p { margin-top: 6px; }
.auth-footer { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 12px; color: var(--slate); }
[hidden] { display: none !important; }
