/* Linx UI palette. Source: www.linx.pm assets/site.css + assets/home.css,
   verified 12 September 2026. Shared by the companion, auth, and admin pages. */
:root {
  color-scheme: light;
  --ink: #1c302c;
  --ink-soft: #596660;
  --paper: #fcfbf8;
  --paper-deep: #f3f0e8;
  --surface: #fffefa;
  --forest: #185e51;
  --forest-deep: #073b34;
  --teal: #247867;
  --teal-soft: #8abbb0;
  --tint: #e7f1eb;
  --tint-soft: #f3f5f1;
  --line: #dddeda;
  --line-strong: #a6b3ab;
  --warning: #755217;
  --warning-bg: #f5e9d2;
  --error: #9f3c32;
  --error-bg: #faeeeb;
  --error-line: #d9ada5;
  --sans: 'Segoe UI', ui-sans-serif, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --serif: Iowan Old Style, Baskerville, 'Times New Roman', serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --radius: 6px;
  --radius-control: 4px;
  --shadow: 0 1px 3px rgba(28, 48, 44, .04);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.55; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font-family: inherit; line-height: 1.5; }
button, input:not([type='hidden']):not([type='checkbox']), select { min-height: 44px; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, input, select, textarea { transition: background-color 150ms ease, border-color 150ms ease; }
button, select, input, textarea { max-width: 100%; }
button { white-space: normal; }
button:disabled { cursor: default; }
a { color: var(--forest); text-underline-offset: 3px; }
a:hover { color: var(--teal); }
:is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
:is(input, select, textarea):focus { border-color: var(--teal) !important; }
input::placeholder, textarea::placeholder { color: var(--ink-soft); opacity: 1; }
::selection { background: var(--tint); color: var(--ink); }
img { max-width: 100%; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Interview companion: keep the existing four-step handhold. */
.nv-interview-page { line-height: 1.55; }
.nv-interview-brand { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.nv-interview-account { flex-wrap: wrap; }
.nv-interview-account > div { display: flex; flex-wrap: wrap; min-width: 0; }
.nv-interview-account select { min-width: 0; max-width: 320px; background: var(--surface); color: var(--ink); }
.nv-interview-account button { flex-shrink: 0; }
.nv-interview-stage { overflow-wrap: anywhere; }
.nv-interview-page .nv-primary:not(:disabled):hover { background: var(--teal) !important; }
.nv-interview-page .nv-secondary:hover { background: var(--tint) !important; border-color: var(--teal) !important; }
.nv-interview-page textarea:focus-visible { outline: 2px solid var(--teal) !important; outline-offset: 2px; }
.nv-interview-page input[readonly] { color: var(--ink-soft); }
.nv-interview-page li + li { margin-top: 8px; }
.nv-interview-page pre { scrollbar-width: thin; }
.nv-interview-page [download] { min-height: 44px; }
@media (max-width: 640px) {
  .nv-interview-page { padding: 22px 16px 48px !important; }
  .nv-interview-frame { max-width: 100% !important; }
  .nv-interview-brand { gap: 14px !important; flex-wrap: wrap; }
  .nv-interview-account { align-items: stretch !important; flex-flow: column nowrap; gap: 8px !important; }
  .nv-interview-account > * { width: 100%; min-width: 0; overflow-wrap: anywhere; }
  .nv-interview-account > div { gap: 8px; }
  .nv-interview-account select { flex: 1 1 170px; max-width: 100%; }
  .nv-interview-stage { padding: 22px 18px !important; }
  .nv-interview-intro { padding: 26px 0 30px !important; }
  .nv-interview-intro h1 { font-size: 34px !important; }
  .nv-interview-page input, .nv-interview-page select, .nv-interview-page textarea { font-size: 16px !important; }
}

/* Passwordless login and confirmation use the same quiet frame. */
input[type='checkbox'], input[type='radio'] { accent-color: var(--teal); }
.nv-auth { min-height: 100svh; padding: 40px 20px; display: grid; place-items: center; }
.nv-auth .card, .nv-auth main { width: min(480px, 100%); padding: 42px 38px 32px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.nv-auth .brand { display: flex; align-items: center; gap: 17px; margin-bottom: 42px; }
.nv-auth .logo-link, .nv-auth .logo { display: block; }
.nv-auth .logo { width: 96px; height: auto; mix-blend-mode: multiply; }
.nv-auth .brand-divider { width: 1px; height: 24px; background: var(--line); }
.nv-auth .brand-product { color: var(--forest); font-size: 14px; font-weight: 500; }
.nv-auth h1 { margin: 0 0 16px; color: var(--ink); font-family: var(--serif); font-size: 36px; font-weight: 400; line-height: 1.15; letter-spacing: -.025em; }
.nv-auth p { margin: 0 0 28px; color: var(--ink-soft); font-size: 15px; line-height: 1.65; }
.nv-auth label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 500; }
.nv-auth input { width: 100%; padding: 11px 13px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--surface); color: var(--ink); font-size: 16px; }
.nv-auth button { width: 100%; margin-top: 16px; padding: 12px 18px; border: 1px solid transparent; border-radius: var(--radius-control); background: var(--forest); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.nv-auth button:not(:disabled):hover { background: var(--teal); }
.nv-auth button:disabled { background: var(--ink-soft); cursor: default; }
.nv-auth .msg { margin-top: 18px; font-size: 14px; line-height: 1.6; color: var(--forest); overflow-wrap: anywhere; }
.nv-auth .msg:not(:empty) { padding: 12px 14px; border-left: 3px solid var(--teal); background: var(--tint); }
.nv-auth .msg--err { color: var(--error); }
.nv-auth .msg--err:not(:empty) { background: var(--error-bg); border-color: var(--error); }
.nv-auth .legal { margin: 30px 0 0; padding-top: 24px; border-top: 1px solid var(--line); text-align: center; font-size: 12px; }
.nv-auth .legal a { display: inline-block; padding-block: 5px; color: var(--ink-soft); text-decoration: none; }
.nv-auth .legal a:hover { color: var(--forest); text-decoration: underline; }
@media (max-width: 520px) {
  .nv-auth { padding: 24px 16px; }
  .nv-auth .card, .nv-auth main { padding: 30px 24px 26px; }
  .nv-auth .brand { margin-bottom: 32px; }
  .nv-auth h1 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  button, input, select, textarea, .nv-interview-stage { border: 1px solid ButtonText !important; }
}
