/* Shared brand, accessible controls and motion policy for every public surface. */
:root {
  color-scheme: light;
  --l25-ink: #20354a;
  --l25-copy: #526474;
  --l25-emerald: #315f58;
  --l25-gold-text: #796018;
  --l25-paper: #fff;
  --l25-mist: #f5f7f7;
  --l25-line: #dce4e4;
  --l25-radius: 10px;
  --l25-focus: #315f58;
  --l25-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --l25-font-brand: Georgia, "Times New Roman", serif;
}
[hidden] { display: none !important; }
#appInitialLoader { display:none; }
.app-loading #appInitialLoader { display:grid; place-items:center; min-height:85vh; padding:24px; color:var(--l25-ink); font-size:17px; }
.app-loading :is(.landing,.auth-page,.dashboard) { display:none !important; }
html { scroll-padding-top: 24px; }
body { font-family: var(--l25-font); }
.l25-brand { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.l25-brand-emblem { display: block; width: 46px; height: 46px; flex: 0 0 auto; object-fit: contain; border-radius: 7px; }
.l25-brand-copy { display: flex; flex-direction: column; gap: 5px; }
.l25-brand-name { color: var(--l25-ink); font: 600 25px/.98 var(--l25-font-brand); letter-spacing: -.04em; }
.l25-brand-name > span { font-family: var(--l25-font-brand); font-weight: 400; color: #506a78; }
@media (max-width: 520px) {
  .l25-brand { gap: 7px; }
  .l25-brand-emblem { width: 36px; height: 40px; }
  .l25-brand-name { font-size: 21px; }
}
@media (max-width: 350px) {
  .l25-brand-name { font-size: 19px; }
  .l25-brand-emblem { width: 32px; }
}
button, input, textarea, select { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid var(--l25-focus); outline-offset: 3px; }
button.link { border: 0; padding: 0; background: transparent; font: inherit; cursor: pointer; }
.field-hint { margin: 8px 0 0; font-size: 13px; line-height: 1.6; color: var(--l25-copy); }
.mfa-code-label { display: block; text-align: left; margin: 16px 0 8px; font-size: 14px; font-weight: 600; }
.public-brand-emblem { object-fit: contain; border-radius: 6px; }
.public-menu-toggle { display: none; width: auto; margin: 0; border: 1px solid var(--l25-line); background: #fff; color: var(--l25-ink); border-radius: 8px; padding: 10px 14px; min-height: 44px; font-weight: 600; cursor: pointer; }
.public-menu-toggle span { margin-left: 10px; }
.evidence-file-label { display: inline-flex; position: relative; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; background: var(--l25-emerald); color: #fff; border-radius: 8px; cursor: pointer; }
.evidence-file-label:focus-within { outline: 3px solid var(--l25-focus); outline-offset: 3px; }
.evidence-file-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.evidence-file-input:disabled { cursor: wait; }
/* All essential content stays visible when motion is disabled or JS is unavailable. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; filter: none !important; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
}
