/* UnsealPDF: navy / ivory / teal. System fonts only (no third-party requests). */
:root {
  --navy-900:#0E1F3D; --navy-700:#33496B; --ivory-50:#FBF8F1; --ivory-100:#F3EEDF; --ivory-200:#E8E1CD;
  --teal-700:#0A6466; --teal-600:#0C7C7E; --teal-300:#5FD0CF; --teal-200:#7FD8D6;
  --muted:#566074; --danger:#9B1C1C; --ok:#0A6466; --warn-bg:#FFF1CC; --warn-text:#7A4B00; --danger-bg:#FBE9E7;
  --bg:var(--ivory-50); --surface:#FFFFFF; --surface-2:var(--ivory-100); --ink:var(--navy-900); --ink-2:var(--navy-700);
  --link:var(--teal-700); --line:#D9D2BD; --btn-bg:var(--teal-700); --btn-ink:#FFFFFF; --focus:#0B57D0;
  --display:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif;
  --ui:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --radius:12px; --shadow:0 1px 2px rgba(14,31,61,.06),0 8px 24px rgba(14,31,61,.06);
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#0A1730; --surface:#12264A; --surface-2:#0E1F3D; --ink:#FBF8F1; --ink-2:#C3CAD8; --muted:#C3CAD8; --link:#5FD0CF; --line:#2A4068;
    --btn-bg:#7FD8D6; --btn-ink:#0E1F3D; --warn-bg:#3A2D08; --warn-text:#FFE2A0; --danger:#FFB4AB; --danger-bg:#3A1512; --ok:#5FD0CF; --focus:#9CC2FF; --shadow:none; }
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.55 var(--ui); }
h1,h2,h3 { font-family:var(--display); line-height:1.15; letter-spacing:-.01em; margin:0 0 .5em; }
h1 { font-size:clamp(2rem,6vw,3.4rem); } h2 { font-size:clamp(1.5rem,3.6vw,2.1rem); } h3 { font-size:1.2rem; }
p { margin:0 0 1em; max-width:68ch; } ul,ol { padding-left:1.25em; margin:0 0 1em; } li { margin:.25em 0; max-width:68ch; }
a { color:var(--link); text-underline-offset:.18em; } a:hover { text-decoration-thickness:2px; }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; border-radius:4px; }
.skip { position:absolute; left:-999px; top:0; background:var(--ink); color:var(--bg); padding:.75rem 1rem; z-index:10; } .skip:focus { left:8px; top:8px; }
.wrap { width:min(1120px,100% - 32px); margin-inline:auto; }
.narrow { width:min(760px,100% - 32px); margin-inline:auto; }
.vh { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* header / footer */
.site-header { border-bottom:1px solid var(--line); background:var(--bg); }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; padding:12px 0; }
.brand { display:inline-flex; min-height:44px; align-items:center; } .brand img { height:34px; width:auto; display:block; }
.brand .dark { display:none; } @media (prefers-color-scheme: dark) { .brand .light { display:none; } .brand .dark { display:block; } }
nav ul { list-style:none; display:flex; gap:4px 18px; padding:0; margin:0; flex-wrap:wrap; } nav li { margin:0; }
nav a { display:inline-flex; align-items:center; min-height:44px; padding:0 4px; color:var(--ink); text-decoration:none; font-weight:500; } nav a:hover { color:var(--link); text-decoration:underline; }
.preview-banner { background:var(--warn-bg); color:var(--warn-text); font-size:.9rem; padding:8px 0; border-bottom:1px solid var(--line); } .preview-banner p { margin:0; max-width:none; }
.site-footer { border-top:1px solid var(--line); margin-top:72px; padding:32px 0 48px; color:var(--muted); font-size:.92rem; background:var(--surface-2); }
.site-footer .cols { display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); } .site-footer a { color:var(--link); }
.placeholder { background:var(--warn-bg); color:var(--warn-text); padding:0 .35em; border-radius:4px; }

/* hero + task entry */
.hero { padding:40px 0 24px; } .hero-grid { display:grid; gap:20px; grid-template-columns:1fr; align-items:start; }
.hero-grid > * { min-width:0; } .hero-copy h1 { margin-bottom:.4em; } .hero-ticks { margin:0; }
@media (min-width:900px) { .hero-grid { grid-template-columns:1.05fr 1fr; grid-template-areas:"copy app" "ticks app"; grid-template-rows:auto 1fr; gap:24px 48px; } .hero { padding:56px 0 32px; }
  .hero-copy { grid-area:copy; } .app-card { grid-area:app; } .hero-ticks { grid-area:ticks; align-self:start; } }
.lede { font-size:1.15rem; color:var(--ink-2); }
.ticks { list-style:none; padding:0; display:grid; gap:6px; margin:16px 0 0; } .ticks li { padding-left:28px; position:relative; margin:0; }
.ticks li::before { content:""; position:absolute; left:0; top:.35em; width:18px; height:18px; border-radius:50%; background:var(--teal-700); mask:none; }
.ticks li::after { content:""; position:absolute; left:6px; top:.55em; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow); }
.app-card { padding:20px; } @media (min-width:600px) { .app-card { padding:28px; } }
.dropzone { display:block; border:2px dashed var(--ink-2); border-radius:var(--radius); padding:36px 16px; text-align:center; cursor:pointer; background:var(--surface-2); transition:background .15s,border-color .15s; }
.dropzone:hover,.dropzone.over,.dropzone:focus-within { border-color:var(--link); background:color-mix(in srgb,var(--teal-300) 14%,var(--surface-2)); }
.dropzone:focus-within { outline:3px solid var(--focus); outline-offset:2px; }
.dropzone strong { display:block; font:700 1.2rem var(--display); margin-bottom:4px; } .dropzone span { color:var(--muted); font-size:.95rem; }
.dropzone input { position:absolute; width:1px; height:1px; opacity:0; }
.fine { font-size:.88rem; color:var(--muted); margin-top:12px; max-width:none; }

/* buttons + fields */
.btn { appearance:none; border:2px solid var(--btn-bg); background:var(--btn-bg); color:var(--btn-ink); font:600 1rem var(--ui); min-height:48px; padding:10px 20px; border-radius:10px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; }
.btn:hover { filter:brightness(1.07); } .btn[disabled],.btn[aria-disabled=true] { opacity:.55; cursor:not-allowed; filter:none; }
.btn.secondary { background:transparent; color:var(--ink); border-color:var(--ink-2); } .btn.quiet { background:none; border-color:transparent; color:var(--link); text-decoration:underline; padding-inline:8px; }
.btn.danger { background:transparent; border-color:var(--danger); color:var(--danger); }
.row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.field { display:grid; gap:6px; margin:12px 0; } .field label,.field .lbl { font-weight:600; }
input[type=password],input[type=text] { font:1rem var(--ui); min-height:48px; padding:8px 12px; border:2px solid var(--ink-2); border-radius:10px; background:var(--surface); color:var(--ink); width:100%; max-width:420px; }
.check { display:flex; gap:12px; align-items:flex-start; margin:14px 0; } .check input { width:24px; height:24px; margin:2px 0 0; flex:none; accent-color:var(--teal-700); } .check label { max-width:62ch; }
.pw-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

/* status + file cards */
.alert { border-radius:10px; padding:12px 14px; margin:12px 0; border:1px solid; max-width:none; } .alert p:last-child { margin-bottom:0; }
.alert.err { background:var(--danger-bg); color:var(--danger); border-color:var(--danger); } .alert.warn { background:var(--warn-bg); color:var(--warn-text); border-color:var(--warn-text); }
.alert.info { background:var(--surface-2); border-color:var(--line); color:var(--ink); } .alert.ok { background:color-mix(in srgb,var(--teal-300) 18%,var(--surface)); border-color:var(--teal-700); color:var(--ink); }
.files { display:grid; gap:14px; list-style:none; padding:0; margin:16px 0; }
.file { border:1px solid var(--line); border-radius:var(--radius); padding:16px; background:var(--surface); display:grid; gap:8px; }
.file h3 { margin:0; font-family:var(--ui); font-size:1rem; overflow-wrap:anywhere; } .file .meta { color:var(--muted); font-size:.9rem; }
.chip { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:2px 10px; font-size:.82rem; font-weight:600; border:1px solid var(--line); background:var(--surface-2); width:fit-content; }
.chip.good { border-color:var(--teal-700); color:var(--ok); } .chip.bad { border-color:var(--danger); color:var(--danger); } .chip.wait { color:var(--ink-2); }
.checks { list-style:none; padding:0; margin:8px 0; } .checks li { padding-left:26px; position:relative; margin:4px 0; } .checks li::before { position:absolute; left:0; font-weight:700; }
.checks li.pass::before { content:"✓"; color:var(--ok); } .checks li.fail::before { content:"✕"; color:var(--danger); } .checks li.info::before { content:"•"; color:var(--muted); }
.thumb { max-width:160px; border:1px solid var(--line); border-radius:6px; background:#fff; display:block; }
details { margin:8px 0; } summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-weight:600; color:var(--link); }
.quote { border:2px solid var(--teal-700); border-radius:var(--radius); padding:18px; background:var(--surface); margin:16px 0; }
.price { font:700 2.2rem var(--display); } .spinner { width:20px; height:20px; border:3px solid var(--line); border-top-color:var(--teal-700); border-radius:50%; animation:spin .9s linear infinite; display:inline-block; vertical-align:-4px; margin-right:8px; } @keyframes spin { to { transform:rotate(360deg); } }
.steps { counter-reset:s; list-style:none; padding:0; display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.steps li { counter-increment:s; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px 16px 16px 56px; position:relative; margin:0; max-width:none; }
.steps li::before { content:counter(s); position:absolute; left:14px; top:14px; width:30px; height:30px; border-radius:50%; background:var(--ink); color:var(--bg); display:grid; place-items:center; font-weight:700; }

/* sections */
section.block { padding:40px 0; } section.alt { background:var(--surface-2); border-block:1px solid var(--line); }
.locks { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.lock h3 { display:flex; gap:10px; align-items:center; } .lock .tag { font:700 .78rem var(--ui); border-radius:6px; padding:2px 8px; border:1px solid var(--line); background:var(--surface-2); text-transform:uppercase; letter-spacing:.04em; }
.lock.yes .tag { color:var(--ok); border-color:var(--teal-700); } .lock.no .tag { color:var(--danger); border-color:var(--danger); }
.table-wrap { overflow-x:auto; } table { border-collapse:collapse; width:100%; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
th,td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:top; } th { background:var(--surface-2); }
.prose h2 { margin-top:1.6em; } .prose h3 { margin-top:1.2em; font-family:var(--ui); } .draft { background:var(--warn-bg); color:var(--warn-text); padding:10px 14px; border-radius:8px; margin-bottom:24px; max-width:none; }
.prose table { margin-bottom:1em; }
@media (max-width:360px) { .btn { width:100%; } .price { font-size:1.9rem; } }

.page { padding-block:40px; } .mt { margin-top:16px; }
a.more { display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
nav a { min-width:44px; justify-content:center; }
