/* Shared shell — launcher + login. Monochrome, flat, light-default. */
:root {
  --bg: #fbfbfc; --surface: #ffffff; --surface-2: #fafafa; --hover: #f4f4f6;
  --border: #ececef; --border-strong: #dcdce0;
  --text: #18181b; --text-2: #5b5b64; --text-3: #9a9aa3;
  --accent: #1b1b1f; --accent-contrast: #ffffff; --accent-ring: rgba(0,0,0,.16);
  --r-sm: 6px; --r-md: 8px; --r-lg: 12px; --r-xl: 16px;
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, "Segoe UI", Roboto, system-ui, sans-serif;
  --shadow-sm: 0 1px 2px rgba(17,17,26,.04);
  --shadow-lg: 0 20px 52px rgba(17,17,26,.10);
}
[data-theme="dark"] {
  --bg: #0a0a0b; --surface: #141416; --surface-2: #1a1a1d; --hover: #1c1c20;
  --border: #26262b; --border-strong: #36363c;
  --text: #f4f4f5; --text-2: #a1a1aa; --text-3: #6e6e78;
  --accent: #f4f4f5; --accent-contrast: #18181b;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.5); --shadow-lg: 0 20px 52px rgba(0,0,0,.6);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body { font-family: var(--font); font-size: 14px; line-height: 1.5; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: none; color: inherit; }
input { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent-ring); outline-offset: 2px; border-radius: var(--r-sm); }

/* Mark (logo) */
.mark { width: 32px; height: 32px; border-radius: 8px; background: #0d0d0f; display: grid; place-items: center; overflow: hidden; flex: none; }
.mark img { width: 200%; height: 200%; object-fit: contain; }

/* Buttons & inputs */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 38px; padding: 0 16px; border-radius: var(--r-sm); font-size: 14px; font-weight: 540; background: var(--surface); color: var(--text); border: 1px solid var(--border-strong); transition: background 140ms ease; }
.btn:hover { background: var(--hover); }
.btn--primary { background: var(--accent); color: var(--accent-contrast); border-color: transparent; }
.btn--primary:hover { filter: brightness(1.1); }
.btn--ghost { background: transparent; border-color: transparent; }
.btn--block { width: 100%; }
.input { width: 100%; height: 40px; padding: 0 12px; background: var(--surface); color: var(--text); border: 1px solid var(--border-strong); border-radius: var(--r-sm); transition: border-color 140ms, box-shadow 140ms; }
.input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-ring); }
.field { display: flex; flex-direction: column; gap: 7px; }
.field label { font-size: 13px; font-weight: 540; color: var(--text-2); }

/* Toast */
.err { color: #b3261e; font-size: 13px; background: #fbe6e5; padding: 9px 12px; border-radius: var(--r-sm); }
[data-theme="dark"] .err { background: #2b1717; color: #f0a7a2; }
