/* Shared screen presentation. Print documents deliberately keep their existing styles. */
@media screen {
  :root { --ink:#172b4d; --muted:#53637a; --blue:#2563eb; --blue-dark:#1d4ed8; --bg:#f7f8fb; --line:#dfe6ef; --shadow:0 6px 20px rgba(23,43,77,.05); --radius:12px; }
  body:has(.shell), body.auth-page, body.marketing-page { font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:15px; line-height:1.55; }
  .shell .main { min-width:0; padding:28px; }
  .shell .main .topbar { gap:20px; align-items:flex-start; flex-wrap:wrap; margin-bottom:24px; }
  .shell .main .topbar h1 { font-size:30px; line-height:1.2; letter-spacing:-.7px; margin:4px 0 8px; }
  .shell .main .panel, .shell .main .content-card, .shell .main .metric { border-radius:12px; border:1px solid var(--line); box-shadow:var(--shadow); }
  .shell .main .panel-header { padding:20px; gap:16px; flex-wrap:wrap; }
  .shell .main .panel-header h2 { font-size:19px; margin:0; }
  .shell .main .metric strong { color:var(--ink); font-size:26px; }
  .shell .main .metric-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); }
  .shell .main .form-grid > label { min-width:0; }
  .shell .main :is(input,select,textarea) { max-width:100%; }
  .shell .main .eyebrow { font-size:12px; letter-spacing:.08em; }
  .shell .sidebar .nav-item { min-height:44px; border-radius:8px; padding:10px 12px; font-size:14px; text-decoration:none; }
  .shell .sidebar nav a:not(.nav-item) { display:flex; min-height:44px; border-radius:8px; padding:10px 12px; font-size:14px; color:#eef4ff; text-decoration:none; }
  .shell .sidebar .nav-item.active { background:#284a7f; color:#fff; }
  .shell .sidebar :is(a,button):focus-visible { outline:3px solid #93c5fd; outline-offset:3px; }
  .shell .sidebar .brand { gap:12px; }
  .shell .sidebar .nav-group-title { color:#b8c7df; font-size:11px; letter-spacing:.08em; text-transform:uppercase; margin:16px 12px 4px; }
  .shell .main :is(input,select):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]) { min-height:44px; font-size:15px; border-radius:8px; }
  .shell .main textarea { font-size:15px; min-height:88px; border-radius:8px; }
  .shell .main :is(.primary-button,.secondary-button), body.auth-page :is(.primary-button,.secondary-button), body.marketing-page :is(.primary-button,.secondary-button) { min-height:44px; padding:10px 16px; border-radius:8px; font-size:15px; line-height:1.4; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
  .shell .main a.primary-button:visited, body.auth-page a.primary-button:visited, body.marketing-page a.primary-button:visited { color:#fff; }
  .shell .main a.secondary-button:visited, body.auth-page a.secondary-button:visited, body.marketing-page a.secondary-button:visited { color:var(--ink); }
  .shell .main .topbar .primary-button ~ .primary-button { background:#fff; border-color:var(--line); color:var(--ink); }
  .shell .main :is(a,button,input,select,textarea):focus-visible, body.auth-page :is(a,button,input,select,textarea):focus-visible, body.marketing-page :is(a,button,input,select,textarea):focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
  .shell .main .table-wrap { overflow-x:auto; overscroll-behavior-inline:contain; }
  .shell .main table { font-size:14px; line-height:1.45; }
  .shell .main table :is(th,td), .shell .main table { font-family:inherit; }
  .shell .main table th { font-size:12px; font-weight:650; letter-spacing:.025em; background:#f5f7fb; color:#53637a; }
  .shell .main table td, .shell .main table th { padding:12px 14px; }
  .shell .main table td small { font-size:12px; }
  .shell .main .status { font-size:12px; font-weight:650; padding:4px 9px; }
  .shell .main :is(.empty-state,.form-error,.form-success,.form-note) { border-radius:8px; padding:14px 16px; line-height:1.5; }
  .shell .main :is(.form-error,.form-success) { font-size:14px; }
  .shell .main :is(.tabs,.page-tabs,.filter-tabs) { gap:8px; flex-wrap:wrap; }
  .shell .main .settings-section { padding:20px; }
  .shell .main[data-page-pattern=scan] input:not([type=hidden]) { min-height:56px; font-size:22px; }
  .shell .main[data-page-pattern=scan] :is(.form-error,.form-success) { font-size:20px; padding:20px; }
  .shell .main[data-page-pattern=settings] .form-grid { max-width:1160px; }
  .shell .ui-onboarding { margin-bottom:20px; padding:16px 20px; background:#fff; border:1px solid var(--line); border-left:3px solid #f59e0b; border-radius:10px; }
  .shell .ui-onboarding header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
  .shell .ui-onboarding h2 { margin:0; font-size:17px; }
  .shell .ui-onboarding ul { display:flex; flex-wrap:wrap; gap:12px 24px; list-style:none; padding:0; margin:12px 0 0; }
  .shell .ui-onboarding li { display:flex; align-items:center; gap:6px; }
  .shell .ui-onboarding li label { min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .shell .ui-onboarding a { color:#1d4ed8; font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
  .shell .ui-onboarding button { min-height:44px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:8px 12px; color:var(--ink); }
  .shell dialog { max-height:calc(100dvh - 24px); overflow-y:auto; border-radius:12px; }
  body:has(.shell) > dialog { max-height:calc(100dvh - 24px); overflow-y:auto; border-radius:12px; }
  body:has(.shell) > dialog :is(.primary-button,.secondary-button) { min-height:44px; padding:10px 16px; text-decoration:none; }
  body:has(.shell) > dialog table { font-size:14px; }
  body.standalone-app { margin:0; background:#f7f8fb; color:#172b4d; font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
  body.standalone-app, body.standalone-app * { box-sizing:border-box; }
  body.standalone-app > main { max-width:1160px; width:calc(100% - 32px); margin:32px auto; padding:24px; background:#fff; border:1px solid var(--line); border-radius:12px; }
  body.standalone-form > main { max-width:780px; }
  body.standalone-app h1 { font-size:30px; line-height:1.25; }
  body.standalone-app button { min-height:44px; border-radius:8px; background:#2563eb; color:#fff; padding:10px 16px; font:inherit; }
  body.standalone-app :is(input,select):not([type=hidden]):not([type=checkbox]):not([type=radio]) { min-height:44px; font:inherit; border:1px solid var(--line); border-radius:8px; padding:10px; }
  body.standalone-app .table-wrap { overflow-x:auto; }
  body.standalone-app table { font-size:14px; min-width:600px; }
  body.standalone-app :is(a,button,input,select):focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
  body.auth-page { background:#f7f8fb; padding:24px; }
  body.auth-page .auth-card { border-radius:16px; padding:32px; box-shadow:var(--shadow); border:1px solid var(--line); }
  body.auth-page .auth-card h1 { font-size:30px; line-height:1.25; letter-spacing:-.6px; }
  body.auth-page .auth-card h2 { font-size:23px; line-height:1.3; }
  body.auth-page .auth-card :is(input,select):not([type=checkbox]):not([type=radio]):not([type=hidden]) { min-height:44px; font-size:15px; }
  body.auth-page .auth-card label { font-size:15px; }
  body.auth-page .auth-card .auth-copy { font-size:16px; }
  body.auth-page .auth-login-shell { grid-template-columns:minmax(0,.7fr) minmax(0,1fr); max-width:960px; gap:32px; }
  body.auth-page .auth-hero-panel { padding:24px; align-self:center; background:transparent; border:0; box-shadow:none; color:var(--ink); }
  body.auth-page .auth-hero-panel h1 { font-size:30px; line-height:1.25; }
  body.auth-page .auth-hero-panel p { color:var(--muted); font-size:16px; }
  body.auth-page .auth-hero-panel .eyebrow { color:#1d4ed8; }
  body.auth-page.auth-login-page .auth-topbar { background:transparent; border:0; padding:12px 0; }
  body.auth-page .auth-login-links { display:flex; flex-wrap:wrap; gap:8px 16px; border-top:1px solid var(--line); padding-top:16px; }
  body.auth-page .auth-login-links a { min-height:44px; display:inline-flex; align-items:center; color:#1d4ed8; text-decoration:none; }
  body.auth-page .registration-auth-card { width:min(960px,100%); }
  body.auth-page fieldset.registration-section { margin:0 0 24px; padding:20px; border:1px solid var(--line); border-radius:12px; min-width:0; }
  body.auth-page fieldset.registration-section legend { padding:0 8px; font-size:18px; font-weight:700; color:var(--ink); }
  .public-phone { display:grid; grid-template-columns:minmax(120px,.8fr) minmax(140px,1fr); gap:12px; }
  .public-phone label { min-width:0; }
  body.terms-page { display:block; padding:0; }
  body.terms-page .terms-card { max-width:880px; width:calc(100% - 40px); margin:32px auto; }
  body.terms-page .terms-section { line-height:1.75; font-size:16px; }
  body.terms-page .terms-section h2 { font-size:22px; margin-top:28px; }
  body.marketing-page { background:#f7f8fb; }
  body.marketing-page .marketing-header, .public-header { max-width:1240px; margin:auto; padding:20px 24px; gap:24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; background:transparent; border:0; }
  .public-header .marketing-brand { display:flex; gap:10px; align-items:center; text-decoration:none; font-size:24px; color:var(--ink); }
  .public-header .marketing-brand img { width:40px; height:40px; }
  .public-header nav { display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
  .public-header nav a:not(.primary-button) { color:#34445c; text-decoration:none; font-size:15px; min-height:44px; display:inline-flex; align-items:center; }
  body.marketing-page .marketing-shell, body.marketing-page .marketing-section, body.marketing-page .blog-shell { max-width:1200px; width:calc(100% - 48px); margin:auto; }
  body.marketing-page .marketing-hero { padding:48px 0 56px; background:transparent; }
  body.marketing-page .marketing-hero-grid { display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); gap:40px; align-items:center; }
  body.marketing-page .marketing-hero-copy { max-width:none; width:100%; }
  body.marketing-page .marketing-hero h1 { color:#172b4d; font-size:52px; line-height:1.12; letter-spacing:-1.8px; max-width:540px; margin:0 0 20px; }
  body.marketing-page .primary-button { background:#2563eb; border-color:#2563eb; color:#fff; }
  body.marketing-page .primary-button:hover { background:#1d4ed8; border-color:#1d4ed8; }
  body.marketing-page .marketing-lede { font-size:18px; line-height:1.6; color:var(--muted); }
  body.marketing-page .marketing-kicker { color:#1d4ed8; font-size:12px; letter-spacing:.08em; }
  body.marketing-page .marketing-section { padding:56px 0; }
  body.marketing-page .marketing-section h2 { font-size:32px; line-height:1.25; letter-spacing:-.6px; }
  body.marketing-page .marketing-proof-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
  body.marketing-page .marketing-proof-grid article { background:#fff; padding:24px; border:1px solid var(--line); border-radius:12px; }
  body.marketing-page .marketing-proof-grid h2 { font-size:20px; }
  body.marketing-page .marketing-proof-grid p { font-size:15px; color:var(--muted); }
  body.marketing-page .product-demo { border:1px solid var(--line); border-radius:16px; background:white; padding:20px; box-shadow:0 18px 44px rgba(23,43,77,.09); font-size:14px; overflow:hidden; }
  body.marketing-page .product-demo .demo-header { display:flex; justify-content:space-between; gap:16px; margin-bottom:20px; }
  body.marketing-page .product-demo .demo-label { color:#53637a; font-size:12px; }
  body.marketing-page .product-demo .demo-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:16px 0; }
  body.marketing-page .product-demo .demo-metrics div { border:1px solid var(--line); border-radius:10px; padding:12px; }
  body.marketing-page .product-demo .demo-metrics strong { display:block; font-size:23px; }
  body.marketing-page .product-demo table { width:100%; border-collapse:collapse; font-size:13px; }
  body.marketing-page .product-demo :is(th,td) { padding:12px 8px; border-bottom:1px solid var(--line); text-align:left; }
  body.marketing-page .product-demo .demo-status { color:#166534; background:#edf8ef; border-radius:20px; padding:4px 8px; white-space:nowrap; }
  body.marketing-page .product-sections { display:grid; gap:48px; }
  body.marketing-page .product-section { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
  body.marketing-page .product-section img { width:100%; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); }
  body.marketing-page .audience-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  body.marketing-page .audience-grid article { background:white; border:1px solid var(--line); border-radius:12px; padding:28px; }
  body.marketing-page .blog-index-hero h1 { font-size:40px; line-height:1.2; max-width:780px; }
  body.marketing-page .blog-article { max-width:780px; margin:auto; padding:32px; background:white; border:1px solid var(--line); border-radius:12px; }
  body.marketing-page .blog-article h1 { font-size:36px; line-height:1.25; }
  body.marketing-page .blog-article :is(p,li) { font-size:16px; line-height:1.75; }
  body.marketing-page .blog-article h2 { font-size:24px; margin-top:32px; }
  .public-footer { max-width:1240px; margin:48px auto 0; padding:40px 24px; border-top:1px solid var(--line); display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; font-size:14px; }
  .public-footer nav { display:flex; flex-direction:column; gap:10px; }
  .public-footer a { color:#34445c; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
  .resource-toc { margin:24px 0; padding:16px; background:#f7f9fc; border:1px solid var(--line); border-radius:8px; }
  .resource-toc nav { display:grid; gap:8px; margin-top:12px; }
  .resource-toc nav a { min-height:44px; display:flex; align-items:center; color:#1d4ed8; }
  .public-footer .marketing-brand { display:flex; align-items:center; gap:10px; font-size:22px; }
  .public-footer .marketing-brand img { width:36px; height:36px; }
  .resource-filter { display:flex; gap:16px; flex-wrap:wrap; margin:24px 0; }
  .resource-filter label { display:grid; gap:6px; font-size:14px; }
  .resource-filter :is(input,select) { min-height:44px; min-width:240px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; }
  @media (max-width:900px) {
    .shell .main { padding:20px; }
    body.marketing-page .marketing-hero-grid, body.marketing-page .product-section { grid-template-columns:1fr; }
    body.marketing-page .marketing-hero h1 { font-size:40px; max-width:680px; }
    body.marketing-page .marketing-proof-grid { grid-template-columns:1fr; }
    body.auth-page .auth-login-shell { grid-template-columns:1fr; max-width:520px; }
    body.auth-page .auth-hero-panel { display:none; }
    .public-footer { grid-template-columns:1fr 1fr; }
  }
  @media (max-width:600px) {
    .shell .main { padding:16px; }
    .shell .main .topbar h1 { font-size:26px; }
    .shell .main .panel-header { padding:16px; }
    .shell .main table td,.shell .main table th { padding:10px; }
    body.auth-page { padding:16px; }
    body.auth-page .auth-card { padding:24px; }
    .public-phone { grid-template-columns:1fr; }
    body.marketing-page .marketing-shell,body.marketing-page .marketing-section,body.marketing-page .blog-shell { width:calc(100% - 32px); }
    body.marketing-page .marketing-hero h1 { font-size:34px; letter-spacing:-1px; }
    body.marketing-page .marketing-section h2 { font-size:27px; }
    body.marketing-page .audience-grid { grid-template-columns:1fr; }
    body.marketing-page .blog-article { padding:20px; }
    body.marketing-page .blog-article h1 { font-size:30px; }
    .public-header { padding:16px; gap:12px; }
    .public-header .marketing-nav-links { order:3; width:100%; gap:16px; }
    .public-footer { padding:28px 16px; gap:24px; }
  }
  @media (prefers-reduced-motion:reduce) { .shell *, body.auth-page *, body.marketing-page * { scroll-behavior:auto; transition:none; } }

/* Preserve the established registration entry presentation. */
.registration-entry {
  background: #f7f8fb;
  color: #172b4d;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

.registration-entry .entry-header {
  background: #fff;
  border-bottom: 1px solid #e4e9f1;
}

.registration-entry .entry-header-inner {
  max-width: 1098px;
  min-height: 88px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.registration-entry .entry-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 24px;
  font-weight: 750;
  letter-spacing: -0.6px;
}

.registration-entry .entry-brand img {
  display: block;
  width: 40px;
  height: 40px;
}

.registration-entry .entry-login {
  margin: 0;
  color: #53637a;
  font-size: 14px;
}

.registration-entry .entry-login a,
.registration-entry .entry-login a:visited {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-left: 4px;
  padding: 0 4px;
  color: #1d4ed8;
  font-weight: 650;
  text-decoration: none;
  border-radius: 6px;
}

.registration-entry .entry-login a:hover {
  color: #172b4d;
}

.registration-entry .entry-main {
  width: min(1050px, calc(100% - 48px));
  margin: 0 auto;
  padding: 52px 0 48px;
}

.registration-entry .entry-intro {
  margin-bottom: 32px;
  text-align: center;
}

.registration-entry .entry-intro h1 {
  margin: 0;
  color: #172b4d;
  font-size: clamp(30px, 3.5vw, 40px);
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -1.1px;
}

.registration-entry .entry-intro p {
  margin: 12px 0 0;
  color: #53637a;
  font-size: 16px;
}

.registration-entry .entry-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

.registration-entry .entry-options-single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 513px;
  margin: 0 auto;
}

.registration-entry .entry-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 32px;
  background: #fff;
  border: 1px solid #dfe6ef;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(23, 43, 77, 0.04);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.registration-entry .entry-card:hover {
  border-color: #bdcceb;
  box-shadow: 0 10px 24px rgba(23, 43, 77, 0.07);
}

.registration-entry .entry-card-type {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
  color: #53637a;
  font-size: 14px;
  font-weight: 650;
}

.registration-entry .entry-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  background: #eff4ff;
  border: 1px solid #e0e9ff;
  border-radius: 12px;
  color: #2563eb;
}

.registration-entry .entry-icon svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.registration-entry .entry-card h2 {
  margin: 0 0 12px;
  color: #172b4d;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.45px;
}

.registration-entry .entry-description {
  margin: 0;
  color: #53637a;
  font-size: 16px;
}

.registration-entry .entry-features {
  display: grid;
  gap: 12px;
  margin: 24px 0 28px;
  padding: 0;
  color: #34445c;
  list-style: none;
}

.registration-entry .entry-features li {
  position: relative;
  padding-left: 24px;
}

.registration-entry .entry-features li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 8px;
  width: 7px;
  height: 11px;
  border: solid #2563eb;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.registration-entry .entry-button,
.registration-entry .entry-button:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: auto;
  padding: 10px 18px;
  background: #2563eb;
  color: #fff;
  border: 1px solid #2563eb;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease;
}

.registration-entry .entry-button:hover {
  background: #1d4ed8;
  border-color: #1d4ed8;
  color: #fff;
  text-decoration: none;
}

.registration-entry a:focus-visible {
  outline: 3px solid #1d4ed8;
  outline-offset: 4px;
}

@media (max-width: 760px) {
  .registration-entry .entry-options { grid-template-columns: minmax(0, 1fr); }
  .registration-entry .entry-main { padding-top: 36px; }
}

@media (max-width: 480px) {
  .registration-entry .entry-header-inner { padding: 16px 20px; gap: 16px; }
  .registration-entry .entry-brand { font-size: 21px; gap: 6px; }
  .registration-entry .entry-login { max-width: 154px; text-align: right; line-height: 1.4; }
  .registration-entry .entry-login a { margin-left: 0; }
  .registration-entry .entry-main { width: calc(100% - 32px); padding: 32px 0; }
  .registration-entry .entry-intro { margin-bottom: 24px; }
  .registration-entry .entry-card { padding: 28px; }
  .registration-entry .entry-card h2 { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .registration-entry .entry-card,
  .registration-entry .entry-button { transition: none; }
}

}
