:root {
  --brand: #1d6b52;
  --brand-dark: #144d3b;
  --ink: #1b2430;
  --muted: #5b6675;
  --hairline: #e3e7ec;
  --bg: #f6f8f7;
}
body { font-family: Inter, system-ui, sans-serif; color: var(--ink); background: var(--bg); min-height: 100vh; display: flex; flex-direction: column; }
a { color: var(--brand); }
.site-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; border-bottom: 1px solid var(--hairline); background: #fff; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font-weight: 700; font-size: 1.1rem; }
.site-footer { margin-top: auto; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 18px 24px; font-size: .85rem; color: var(--muted); border-top: 1px solid var(--hairline); background: #fff; }
.site-footer nav { display: flex; gap: 18px; flex-wrap: wrap; }
.site-footer a { color: var(--muted); text-decoration: none; }
.site-footer a:hover { color: var(--brand); }

.login-wrap { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px 16px; }
.login-card { width: 100%; max-width: 380px; background: #fff; border: 1px solid var(--hairline); border-radius: 16px; padding: 36px 30px; text-align: center; box-shadow: 0 8px 30px rgba(20, 40, 30, .06); }
.login-card img { margin-bottom: 14px; }
.login-card h1 { font-size: 1.45rem; font-weight: 700; margin-bottom: 6px; }
.login-card p { color: var(--muted); font-size: .92rem; }
.login-card .gsi-slot { display: flex; justify-content: center; min-height: 44px; margin: 22px 0 8px; }
.login-card .small-note { font-size: .78rem; color: var(--muted); margin-top: 18px; }

.legal { max-width: 760px; margin: 0 auto; padding: 36px 20px 56px; line-height: 1.65; }
.legal h1 { font-size: 1.8rem; font-weight: 700; }
.legal h2 { font-size: 1.12rem; font-weight: 700; margin-top: 28px; }
