/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4
   TernX sign-in · official navy/gold reversed wordmark · single primary action. */
@font-face { font-family:'Noto Sans JP'; font-style:normal; font-weight:400 700; font-display:swap; src:url('/fonts/noto-sans-jp.woff2') format('woff2'); }
:root {
  color-scheme:light;
  --font-body:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --color-brand:#001e45;
  --color-gold:#be9b3d;
  --color-white:#fff;
  --color-page:#f3f4f6;
  --color-paper:#fff;
  --color-ink:#001e45;
  --color-muted:#69737e;
  --color-focus:#3374b3;
  --color-shadow:rgba(0,30,69,.08);
  --color-google-paper:#fff;
  --color-google-ink:#1f1f1f;
  --color-google-border:#747775;
  --color-google-hover:#f2f4f7;
}
:root[data-theme='dark'] {
  color-scheme:dark;
  --color-page:#1f1f1f;
  --color-paper:#2d2e31;
  --color-ink:#e3e3e3;
  --color-muted:#b3b7bc;
  --color-focus:#a8c7fa;
  --color-shadow:rgba(0,0,0,.16);
}
* { box-sizing:border-box; }
html,body { min-width:320px; margin:0; overflow-x:clip; }
body { min-height:100svh; padding:40px 24px; display:grid; place-items:center; background:var(--color-page); color:var(--color-ink); font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
.login-shell { width:min(100%,800px); min-height:420px; display:grid; grid-template-columns:280px minmax(0,1fr); border-radius:12px; background:var(--color-paper); box-shadow:0 16px 64px var(--color-shadow); overflow:clip; }
.brand-panel { background:var(--color-brand); display:flex; align-items:center; justify-content:center; padding:48px 32px; }
.login-brand { width:150px; display:flex; flex-direction:column; align-items:center; }
.login-brand img { display:block; width:150px; height:auto; }
.login-brand span { color:var(--color-white); font-size:10px; font-weight:500; letter-spacing:.28em; margin-top:10px; padding-left:.28em; }
.login-panel { display:flex; align-items:center; padding:64px 56px; min-width:0; }
.login-content { width:100%; }
.login-product { font-size:12px; font-weight:500; letter-spacing:.03em; color:var(--color-muted); margin:0 0 10px; }
h1 { font-size:23px; font-weight:700; letter-spacing:.015em; line-height:1.6; margin:0 0 36px; font-style:normal; }
.google-signin { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:48px; padding:12px; border:1px solid var(--color-google-border); border-radius:6px; color:var(--color-google-ink); background:var(--color-google-paper); text-decoration:none; font-size:14px; font-weight:500; line-height:20px; white-space:nowrap; -webkit-tap-highlight-color:transparent; transition:background-color 120ms ease; }
.google-signin img { flex-shrink:0; width:20px; height:20px; object-fit:contain; }
.google-signin:focus-visible { outline:3px solid var(--color-focus); outline-offset:4px; }
.google-signin:active { background:var(--color-google-hover); }
.login-access { display:flex; align-items:center; justify-content:center; gap:6px; margin:18px 0 0; color:var(--color-muted); font-size:10px; line-height:1.8; }
.login-access svg { flex-shrink:0; }
@media(hover:hover) { .google-signin:hover { background:var(--color-google-hover); } }
@media(max-width:640px) {
  body { padding:28px 20px; }
  .login-shell { max-width:400px; min-height:0; grid-template-columns:minmax(0,1fr); }
  .brand-panel { min-height:160px; padding:38px 24px; }
  .login-brand,.login-brand img { width:120px; }
  .login-brand span { font-size:9px; margin-top:8px; }
  .login-panel { padding:38px 28px 42px; }
  h1 { font-size:21px; margin-bottom:28px; }
  .login-product { font-size:11px; }
}
@media(max-width:360px) { body { padding:20px 16px; }.login-panel { padding:32px 24px 36px; }h1 { font-size:19px; }.login-access { font-size:9px; } }
@media(prefers-reduced-motion:reduce) { .google-signin { transition:none; } }
