/* What every page built on the shared theme needs: reset, the sign-in card,
   the one-column layout of server-rendered pages. Public — no admin rules. */

/* ============================================================ reset ===== */
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--surface-page); color: var(--ink-primary);
  font: 400 var(--fs-body)/18px var(--ff-sans);
  font-feature-settings: 'calt' 1;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
::selection { background: rgba(15,122,90,.18); color: var(--ink-primary); }
:focus:not(:focus-visible) { outline: none; }
a { color: var(--accent-ink); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
svg { display: block; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}



/* ============================================================ sign-in === */
.signin { text-align: center; padding: 96px var(--sp-24); }
.signin h2 { margin: 0 0 var(--sp-6); font: 600 var(--fs-display)/26px var(--ff-sans);
             letter-spacing: -.02em; }
.signin p { margin: 0 0 var(--sp-24); font: 400 var(--fs-body)/19px var(--ff-sans);
            color: var(--ink-secondary); }
.signin a {
  display: inline-flex; align-items: center; justify-content: center;
  height: 38px; padding: 0 var(--sp-16);
  background: var(--accent); color: #fff;
  border: 1px solid var(--accent); border-radius: var(--r-8);
  font: 500 var(--fs-md)/1 var(--ff-sans); text-decoration: none;
}
.signin .signin__note { color: var(--danger); }
.signin a:hover { background: var(--accent-hover); border-color: var(--accent-hover); text-decoration: none; }

/* Server-rendered pages without the sidebar (main._bare_shell): one column. */
body.bare .app { grid-template-columns: minmax(0, 1fr); }
