/* SANITIZE brand system — source of truth: brand guide 2026-08-27.
   Fonts are self-hosted in the web image; there are no runtime font/CDN requests. */
@font-face { font-family:"Inter Variable"; font-style:normal; font-display:swap; font-weight:100 900; src:url("/fonts/inter-latin-wght-normal.woff2") format("woff2-variations"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Inter Variable"; font-style:normal; font-display:swap; font-weight:100 900; src:url("/fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Sora Variable"; font-style:normal; font-display:swap; font-weight:100 800; src:url("/fonts/sora-latin-wght-normal.woff2") format("woff2-variations"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Sora Variable"; font-style:normal; font-display:swap; font-weight:100 800; src:url("/fonts/sora-latin-ext-wght-normal.woff2") format("woff2-variations"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  --brand-navy:#0B1D34;
  --brand-emerald:#10B981;
  --brand-offwhite:#F7F9FB;
  --brand-gray:#E5E7EB;
  --brand-charcoal:#1F2937;
  --brand-blue:#2563EB;
  --brand-blue-strong:#1E40AF;
  --ink:var(--brand-navy); --ink-2:var(--brand-charcoal); --muted:#64748B;
  --paper:var(--brand-offwhite); --surface:#fff; --surface-2:#FBFCFE;
  --line:var(--brand-gray); --line-strong:#CBD5E1;
  --accent:var(--brand-emerald); --accent-text:#047857; --accent-strong:#047857; --accent-soft:#ECFDF5; --accent-faint:#F0FDF9;
  --success:#059669; --action:var(--brand-blue); --action-strong:var(--brand-blue-strong);
  --shadow-sm:0 1px 2px rgba(11,29,52,.035),0 8px 24px rgba(11,29,52,.045);
  --shadow-lg:0 24px 64px rgba(11,29,52,.09);
  font-family:"Inter Variable",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
body,button,input,textarea,select { font-family:"Inter Variable",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
h1,h2,h3,.brand,.brand-wordmark,.metric-card strong,.pro-price-card strong { font-family:"Sora Variable","Inter Variable",ui-sans-serif,system-ui,sans-serif; }
h1,h2 { font-weight:650; letter-spacing:-.035em; }
h3 { font-weight:620; letter-spacing:-.018em; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline-color:#1D4ED8; }
.public-page,.app-page,.pro-app-page { background:var(--brand-offwhite); }
.brand { color:var(--brand-navy); font-weight:700; gap:0; letter-spacing:0; }
.brand-mark { width:34px; height:31px; border:0; border-radius:0; background:transparent url("/assets/brand/sanitize-symbol.png") center/contain no-repeat; box-shadow:none; color:transparent !important; font-size:0; }
.eyebrow { color:var(--accent-text); }
.primary-action,.primary-button,.premium-primary { color:#fff; background:linear-gradient(135deg,var(--brand-blue),var(--brand-blue-strong)); border-color:transparent; box-shadow:0 10px 24px rgba(30,64,175,.18); }
.primary-action:hover,.primary-button:hover:not(:disabled),.premium-primary:hover:not(:disabled) { background:linear-gradient(135deg,#1D4ED8,#1E3A8A); box-shadow:0 14px 30px rgba(30,64,175,.24); }
.secondary-action,.secondary-button { color:#1D4ED8; border-color:#93C5FD; background:#fff; }
.secondary-action:hover,.secondary-button:hover:not(:disabled) { color:#1E40AF; border-color:#2563EB; background:#EFF6FF; }
.quiet-button { border-color:var(--brand-gray); background:#fff; color:var(--brand-charcoal); }
.panel,.public-sanitizer-card,.metric-card,.pro-price-card { border-color:var(--brand-gray); box-shadow:var(--shadow-sm); }
.quota-pill,.module-status.ready { color:#047857; border-color:#A7F3D0; background:#ECFDF5; }
.signal-dot { background:var(--brand-emerald); box-shadow:0 0 0 4px rgba(16,185,129,.12); }
.status-toast[data-type="ok"],.module-status.ready { color:#047857; }
.pro-sidebar { background:linear-gradient(180deg,#081A30 0%,var(--brand-navy) 54%,#07182B 100%); box-shadow:12px 0 34px rgba(11,29,52,.10); }
.pro-sidebar-brand .brand-mark { width:38px; height:34px; border:0; background:transparent url("/assets/brand/sanitize-symbol.png") center/contain no-repeat; box-shadow:none; }
.pro-nav-item { color:#C7D3E2; }
.pro-nav-item:hover:not(:disabled) { color:#fff; background:#153E5A; }
.pro-nav-item.active { color:#fff; background:#17466A; box-shadow:inset 3px 0 0 var(--brand-emerald),inset 0 0 0 1px rgba(92,164,255,.16); }
.pro-nav-item.active .pro-nav-icon { color:#6EE7B7; }
.pro-topbar { border-bottom-color:var(--brand-gray); background:rgba(247,249,251,.94); }
.pro-content { background:var(--brand-offwhite); }
.public-drop,.file-zone,.private-reader-drop { border-color:#BFDBFE; background:#FCFDFF; }
.public-drop:hover,.public-drop.dragging,.file-zone:hover,.private-reader-drop:hover { border-color:var(--brand-blue); background:#F5F9FF; }
.public-drop-icon,.entry-icon,.output-file-icon,.empty-state-icon,.module-icon { color:#047857; background:#ECFDF5; }
.public-result,.public-privacy-strip { border-color:#A7F3D0; background:#F0FDF9; }
.cta-premium,.public-upsell { background:radial-gradient(circle at 90% -10%,rgba(16,185,129,.32),transparent 40%),var(--brand-navy); }
.danger-action { color:#B42318 !important; border-color:#FECACA !important; background:#FFFBFB !important; }
.admin-main .metric-card { border-top:3px solid var(--brand-blue); }
.admin-main .metric-card:nth-child(2n) { border-top-color:var(--brand-emerald); }
@media (max-width:720px) { h1 { letter-spacing:-.028em; } }


/* Canonical brand lockup + CTA geometry — 2026-08-29 */
.brand-logo { display:block; width:178px; max-width:100%; height:auto; object-fit:contain; }
.site-header .brand-logo { width:184px; }
.footer-brand .brand-logo { width:172px; }
.pro-sidebar-brand {
  display:flex; align-items:center; justify-content:center;
  width:100%; min-height:62px; margin:0 0 14px; padding:8px 10px;
  border:1px solid rgba(255,255,255,.18); border-radius:12px; color:var(--brand-navy);
  background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.pro-sidebar-brand .brand-logo { width:min(170px,100%); max-width:100%; height:auto; }
.login-shell .brand-logo,.billing-shell .brand-logo { width:184px; }

.primary-action,.secondary-action {
  min-height:52px; padding:0 20px; border-radius:11px;
  line-height:1.2; text-align:center; white-space:normal;
}
.cta-pair {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  width:min(100%,560px); gap:12px; align-items:stretch;
}
.cta-pair > .primary-action,.cta-pair > .secondary-action {
  width:100%; min-width:0; min-height:52px; margin:0;
}
.public-sanitize-actions-wide { align-items:stretch; }
.public-sanitize-actions-wide .primary-action,
.public-sanitize-actions-wide .secondary-action { height:52px; min-height:52px; }
.primary-button,.secondary-button,.quiet-button { box-sizing:border-box; margin:0; line-height:1.2; }

@media (max-width:620px) {
  .site-header .brand-logo { width:164px; }
  .cta-pair { grid-template-columns:1fr; width:100%; }
  .cta-pair > .primary-action,.cta-pair > .secondary-action { width:100%; }
}


/* Conversion and brand geometry — consistent actionable controls. */
.hero-actions.cta-pair > .primary-action,
.hero-actions.cta-pair > .secondary-action,
.home-hero-actions > .primary-action,
.home-hero-actions > .secondary-action { min-height:52px; }
.plan-card .primary-action,
.plan-card .secondary-action { min-height:52px; }
.plan-card.pro .primary-action { color:#fff; background:linear-gradient(135deg,var(--brand-blue),var(--brand-blue-strong)); box-shadow:0 10px 24px rgba(30,64,175,.18); }
.login-form-side .primary-button,
.login-form-side .secondary-button,
.billing-panel .primary-button,
.billing-panel .secondary-button { min-height:52px; }
@media (max-width:820px) {
  .pro-sidebar-brand { width:auto; min-height:54px; padding:6px 9px; }
  .pro-sidebar-brand .brand-logo { width:150px; }
}

/* Visual alignment review — 2026-09-21.
   Keep geometry here with the canonical CTA rules, after the base responsive CSS. */
.home-hero-actions.cta-pair { margin-inline:auto; }
.home-hero-copy h1 { line-height:1.06; text-wrap:balance; }
.public-sanitizer-wide-head { align-items:start; }
.public-sanitizer-wide-head h2 { line-height:1.12; text-wrap:balance; }
.public-sanitizer-wide-head .quota-pill { margin-top:4px; max-width:100%; }
.primary-action,.secondary-action { padding-block:12px; font-size:.9rem; border:1px solid transparent; }
.secondary-action { border-color:#93C5FD; }
.primary-action > span[aria-hidden],.secondary-action > span[aria-hidden] { flex-shrink:0; }
.public-sanitize-actions-wide .primary-action,
.public-sanitize-actions-wide .secondary-action { height:auto; }
.public-drop-wide { min-width:0; margin-top:0; }
.public-drop-wide strong { white-space:normal; overflow-wrap:anywhere; }
.public-result-placeholder { min-height:0; }
.public-result-checks span::before { flex-shrink:0; }
.plan-card { display:flex; flex-direction:column; }
.plan-list { flex:1; align-content:start; }
.plan-card > .primary-action,.plan-card > .secondary-action { width:100%; font-size:.9rem; }
.cta-premium { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.7fr); align-items:center; }
.cta-premium h2 { line-height:1.15; }
.cta-premium .hero-actions { margin-top:0; width:100%; }
.cta-premium .secondary-action.light-outline { color:#fff; border-color:rgba(255,255,255,.5); background:transparent; }
.cta-premium .secondary-action.light-outline:hover { background:rgba(255,255,255,.1); }

@media (max-width:980px) {
  .public-result-placeholder { min-height:270px; }
}
@media (max-width:820px) {
  .nav-links { margin-left:0; justify-content:flex-start; }
  .cta-premium { grid-template-columns:1fr; gap:24px; }
  .cta-premium .hero-actions { max-width:560px; }
}
/* Apply the mobile layout below 601px as well as to small tablets. */
@media (max-width:700px) {
  .home-hero { padding:48px 0 34px; text-align:left; }
  .home-hero-copy .eyebrow { justify-content:flex-start; }
  .home-hero-copy h1 { margin-left:0; font-size:clamp(2.35rem,10vw,4.35rem); line-height:1.08; text-wrap:initial; }
  .home-hero-copy .lead { margin-left:0; }
  .home-hero-actions.cta-pair { margin-inline:0; }
  .home-hero-actions,.home-assurances { justify-content:flex-start; }
  .public-sanitizer-wide { padding:20px 17px; border-radius:20px; }
  .public-sanitizer-wide-head { grid-template-columns:minmax(0,1fr); gap:14px; }
  .public-sanitizer-wide-head .quota-pill { justify-self:start; margin-top:0; }
  .public-sanitizer-wide-head h2 { font-size:clamp(1.65rem,6.5vw,2.3rem); }
  .public-drop-wide { min-height:210px; padding:28px 18px; }
  .public-sanitize-actions-wide { grid-template-columns:minmax(0,1fr); }
  .public-upsell-wide .public-upsell-grid { grid-template-columns:1fr; }
  .public-privacy-strip { align-items:flex-start; min-height:0; }
  .public-sanitizer-input { padding:16px; }
}

/* Desktop composition: readable headings and shared column alignment. */
@media (min-width:821px) {
  .home-hero { padding:64px 0 48px; }
  .home-hero-copy { width:min(1100px,100%); }
  .home-hero-copy h1 { max-width:1060px; font-size:clamp(3rem,4.5vw,4.75rem); line-height:1.1; letter-spacing:-.045em; }
  .home-hero-copy .lead { max-width:780px; }
  .section-heading { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:start; gap:48px; }
  .section-heading > p { padding-top:30px; }
  .section-heading h2,.integration-copy h2,.security-band h2 { font-size:clamp(2rem,3vw,3rem); line-height:1.14; letter-spacing:-.035em; text-wrap:balance; }
  .public-sanitizer-wide-head { grid-template-columns:minmax(0,1fr) minmax(180px,240px); gap:32px; }
  .public-sanitizer-wide-head h2 { font-size:clamp(2rem,2.8vw,2.75rem); }
  .integration-showcase { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; align-items:start; margin-bottom:48px; }
  .pro-feature-grid { margin-top:30px; align-self:stretch; grid-auto-rows:1fr; }
  .pro-feature-grid > div { display:flex; flex-direction:column; justify-content:center; padding:24px; }
  .pro-feature-grid strong { font-size:1rem; }
  .pro-feature-grid span { font-size:.85rem; }
  .plan-comparison { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:0; }
  .plan-card { padding:30px; min-width:0; }
  .plan-card h3 { line-height:1.3; text-wrap:balance; }
  .plan-card p,.plan-list li { font-size:.85rem; }
  .plan-list { gap:12px; }
  .plan-card > .primary-action,.plan-card > .secondary-action { margin-top:auto; }
  .security-band { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:48px; }
  .cta-premium { grid-template-columns:minmax(0,1fr) minmax(260px,320px); gap:48px; }
  .cta-premium h2 { font-size:clamp(2rem,3vw,3rem); text-wrap:balance; }
  .cta-premium .cta-pair { grid-template-columns:1fr; }
  .format-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (min-width:1101px) {
  .format-grid { grid-template-columns:repeat(7,minmax(0,1fr)); }
}

/* CRM workspace polish — keep the private product calm and structured. */
.pro-topbar { padding:32px clamp(20px,4vw,56px) 26px; }
.pro-topbar > div:first-child { max-width:760px; }
.pro-topbar h1 { font-size:clamp(2rem,3.4vw,3.25rem); line-height:1.08; }
.pro-top-actions a { border:1px solid var(--brand-gray); border-radius:999px; padding:9px 13px; background:#fff; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.pro-top-actions a:hover { border-color:#93C5FD; box-shadow:0 6px 16px rgba(30,64,175,.10); transform:translateY(-1px); }
.workspace-view,.admin-content { padding-top:8px; }
.workflow-guide { margin-bottom:24px; }
.pro-entry-card,.panel { border-radius:20px; }
.pro-entry-card { box-shadow:0 12px 34px rgba(11,29,52,.055); }
.file-zone { transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease; }
.file-zone:focus-within { border-color:var(--brand-blue); box-shadow:0 0 0 4px rgba(37,99,235,.10); background:#fff; }
.history-item,.preset-card,.report-card,.settings-card { border-radius:16px; border-color:#DCE3EA; box-shadow:0 7px 20px rgba(11,29,52,.04); transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.history-item:hover,.preset-card:hover,.report-card:hover,.settings-card:hover { border-color:#BFDBFE; box-shadow:0 12px 28px rgba(30,64,175,.09); transform:translateY(-1px); }
.admin-dashboard-head { align-items:end; margin-bottom:24px; }
.admin-dashboard-head h2 { font-size:clamp(1.7rem,2.8vw,2.6rem); line-height:1.12; }
.admin-dashboard-metrics .metric-card { min-height:112px; border-radius:16px; }
.admin-users-panel,.admin-create-panel,.admin-health-panel { box-shadow:0 12px 34px rgba(11,29,52,.045); }
.admin-table tbody tr { transition:background .15s ease; }
.admin-table tbody tr:hover { background:#F8FBFF; }
.admin-search:focus,.admin-plan-row input:focus,.admin-form input:focus,.admin-form select:focus { border-color:var(--brand-blue); box-shadow:0 0 0 3px rgba(37,99,235,.10); outline:0; }
.admin-dialog { border:1px solid #DCE3EA; border-radius:20px; box-shadow:0 30px 80px rgba(11,29,52,.22); }
@media (max-width:820px) {
  .pro-topbar { padding-inline:20px; }
  .pro-top-actions { flex-wrap:wrap; }
  .admin-dashboard-head { align-items:start; gap:18px; }
}
@media (max-width:560px) {
  .pro-topbar { padding:24px 16px 20px; }
  .pro-top-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .pro-top-actions a { text-align:center; }
  .admin-dashboard-head .secondary-button { width:100%; }
}

/* CRM navigation, identity and dashboard finish — 2026-09-24. */
.pro-sidebar-brand { flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; padding:9px 12px 14px; border-color:transparent; background:transparent; box-shadow:none; text-decoration:none; }
.pro-sidebar-brand .brand-logo { display:block; width:min(170px,100%); max-width:100%; height:auto; }
.pro-nav-item,.pro-nav-item:hover,.pro-nav-item:focus-visible,.pro-nav-item:active { text-decoration:none; }
.pro-nav-item { grid-template-columns:22px minmax(0,1fr); column-gap:9px; row-gap:2px; min-height:44px; padding-block:7px; }
.pro-nav-item > span:not(.pro-nav-icon) { min-width:0; line-height:1.32; overflow-wrap:normal; word-break:normal; }
.pro-nav-item small { grid-column:2; justify-self:start; margin-top:1px; }
body.sidebar-collapsed .pro-sidebar-brand { align-items:center; padding:8px 0; }
.admin-insights { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(210px,.72fr); gap:16px; margin:0 0 20px; }
.admin-insight-card { min-width:0; padding:20px; border:1px solid #DCE3EA; border-radius:17px; background:#fff; box-shadow:0 8px 24px rgba(11,29,52,.045); }
.admin-insight-card h2 { margin:3px 0 15px; font-size:1.05rem; line-height:1.25; }
.admin-breakdown { display:grid; gap:12px; }
.admin-breakdown-row { display:grid; gap:6px; }
.admin-breakdown-label { display:flex; justify-content:space-between; gap:12px; color:#516577; font-size:.75rem; }
.admin-breakdown-label strong { color:#132D43; font-variant-numeric:tabular-nums; }
.admin-breakdown-track { height:7px; overflow:hidden; border-radius:99px; background:#EAF0F5; }
.admin-breakdown-track span { display:block; height:100%; min-width:0; border-radius:inherit; background:linear-gradient(90deg,#2563EB,#10B981); transition:width .35s ease; }
.admin-quick-actions { display:flex; flex-direction:column; gap:9px; }
.admin-quick-actions h2 { margin-bottom:4px; }
.admin-quick-actions a { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 11px; border:1px solid #E3E9EF; border-radius:10px; color:#1E40AF; background:#FBFCFE; font-size:.76rem; font-weight:700; text-decoration:none; transition:border-color .15s ease,background .15s ease; }
.admin-quick-actions a:hover { border-color:#93C5FD; background:#EFF6FF; }
@media (max-width:1100px) { .admin-insights { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-quick-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; } .admin-quick-actions h2 { grid-column:1/-1; } }
@media (max-width:700px) { .admin-insights { grid-template-columns:minmax(0,1fr); } .admin-quick-actions { grid-column:auto; display:flex; align-items:stretch; } }
.sidebar-brand-wordmark { color:#F8FAFC; font-family:"Sora Variable","Inter Variable",sans-serif; font-size:1.08rem; font-weight:750; letter-spacing:.13em; line-height:1.2; }
.sidebar-brand-tagline { color:#8FB2BF; font-size:.43rem; font-weight:700; letter-spacing:.045em; white-space:nowrap; }
body.sidebar-collapsed .sidebar-brand-wordmark { font-size:1.35rem; letter-spacing:0; }
body.sidebar-collapsed .sidebar-brand-tagline { display:none; }
