:root{
  --paper:#F3F5F8;--sheet:#FFFFFF;--ink:#1B2A41;--ink2:#3E4C63;--muted:#66728A;--rule:#D9DEE6;--rule-dark:#9AA6B8;
  --red:#C8102E;--red-soft:#FCEBEE;--amber:#9A6200;--amber-hl:#FFE38A;--amber-soft:#FFF6D9;--green:#1F7A52;--green-soft:#E5F3EC;
  --serif:"Source Serif 4",Georgia,serif;--sans:"Public Sans",system-ui,sans-serif;--r:6px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{font-family:var(--sans);font-weight:800;letter-spacing:-.022em;line-height:1.12;margin:0 0 .5em}
h1{font-size:clamp(2.2rem,4.6vw,3.5rem)}h2{font-size:clamp(1.45rem,2.6vw,1.9rem)}h3{font-size:1.1rem;letter-spacing:-.01em}
p{margin:0 0 1em}mark{background:var(--amber-hl);padding:0 2px}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.narrow{max-width:780px}.pad{padding-top:48px;padding-bottom:72px}
.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.86em;word-break:break-all}.mt{margin-top:48px}
.lead{font-size:1.15rem;color:var(--ink2);max-width:36em}
.section-lead{font-size:1.06rem;color:var(--ink2);max-width:42em}
/* top */
.top{background:var(--sheet);border-bottom:1px solid var(--rule)}
.top-in{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.15rem;letter-spacing:-.02em}
.top nav{display:flex;gap:24px;align-items:center}.top nav a:not(.btn){text-decoration:none;color:var(--ink2);font-weight:500;font-size:.95rem}
.top nav a:not(.btn):hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.top nav a:not(.btn){display:none}}
/* buttons and inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:10px 18px;font:700 .95rem var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:#0f1a2b}.btn:disabled{opacity:.6;cursor:progress}
.btn-red{background:var(--red);border-color:var(--red)}.btn-red:hover{background:#a50d26}
.btn-ghost{background:transparent;color:var(--ink)}.btn-ghost:hover{background:var(--sheet)}
.btn-sm{padding:6px 12px;font-size:.85rem}.btn-lg{padding:14px 24px;font-size:1.02rem}.btn-block{width:100%}
.danger{color:var(--red);border-color:var(--rule)}
.input{width:100%;border:1.5px solid var(--rule-dark);background:var(--sheet);border-radius:var(--r);padding:10px 12px;font:inherit;font-size:.95rem;color:var(--ink)}
.input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(27,42,65,.15)}
textarea.input{resize:vertical;font-family:var(--serif)}
label{display:block;font-size:.85rem;font-weight:600;color:var(--ink2)}label .input{margin-top:5px}label .muted{font-weight:400}
.banner{background:var(--sheet);border:1px solid var(--rule);border-left:4px solid var(--ink);padding:12px 16px;margin:16px 0;border-radius:var(--r)}
.banner.ok{border-left-color:var(--green)}.banner.err{border-left-color:var(--red)}
.hint{font-size:.84rem;color:var(--muted);margin-top:12px}
/* hero */
.hero{background:var(--sheet);border-bottom:1px solid var(--rule);padding:56px 0 72px}
.hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:56px;align-items:start}
@media(max-width:980px){.hero-in{grid-template-columns:1fr;gap:40px}}
.hero h1{max-width:12em}
/* upload */
.upload{margin-top:28px;display:flex;flex-direction:column;gap:14px}
.drop{position:relative;display:flex;flex-direction:column;gap:6px;border:2px dashed var(--rule-dark);border-radius:var(--r);padding:22px 20px;background:var(--paper);cursor:pointer}
.drop:hover,.drop.over{border-color:var(--ink);background:#fff}
.drop.has-files{border-style:solid;border-color:var(--green);background:var(--green-soft)}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop-main{display:flex;flex-direction:column}.drop-main b{font-size:1.05rem}
.drop-files{font-size:.88rem;color:var(--green);font-weight:600;word-break:break-word}
.drop:focus-within{outline:3px solid var(--ink);outline-offset:2px}
.paste summary{cursor:pointer;font-size:.9rem;color:var(--ink2);font-weight:600}.paste textarea{margin-top:8px}
.row3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px}@media(max-width:620px){.row3{grid-template-columns:1fr}}
.lang{max-width:260px}
/* specimen: the annotated contract */
.specimen{margin:0;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0;background:#fff;border:1px solid var(--rule);box-shadow:0 1px 0 var(--rule),0 24px 48px -28px rgba(27,42,65,.35);border-radius:3px}
.sheet{padding:30px 28px;font:16px/1.75 var(--serif);color:#22262d;border-right:1px solid var(--rule)}
.sheet p{margin:0 0 .8em}.sheet .clause-no{font-weight:600;margin-top:1.1em;font-size:.95rem}.sheet .clause-no:first-child{margin-top:0}
.mk{position:relative;text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.mk::after{content:attr(data-n);display:inline-block;line-height:1.35;position:relative;top:-.55em;margin-left:2px;font:700 .68rem var(--sans);padding:0 4px;border-radius:9px;color:#fff}
.mk-high{text-decoration-color:var(--red);text-decoration-style:wavy;background:var(--red-soft)}.mk-high::after{background:var(--red)}
.mk-med{text-decoration-color:var(--amber);background:var(--amber-soft)}.mk-med::after{background:var(--amber)}
.mk-ok{text-decoration-color:var(--green);background:var(--green-soft)}.mk-ok::after{background:var(--green)}
.notes{list-style:none;margin:0;padding:30px 22px;display:flex;flex-direction:column;gap:18px;counter-reset:n;background:#FBFCFD}
.note{counter-increment:n;position:relative;padding-left:30px;font-size:.88rem;line-height:1.5}
.note::before{content:counter(n);position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 .72rem var(--sans);color:#fff}
.note b{display:block;margin-bottom:2px;font-size:.93rem}.note span{color:var(--ink2)}
.note-high::before{background:var(--red)}.note-high b{color:var(--red)}
.note-med::before{background:var(--amber)}.note-med b{color:var(--amber)}
.note-ok::before{background:var(--green)}.note-ok b{color:var(--green)}
@media(max-width:620px){.specimen{grid-template-columns:1fr}.sheet{border-right:0;border-bottom:1px solid var(--rule)}}
@media(prefers-reduced-motion:no-preference){
  .mk{animation:mark .9s ease-out both}.mk-high{animation-delay:.4s}.mk-med{animation-delay:1s}.mk-ok{animation-delay:1.6s}
  .note{animation:fade .6s ease-out both}.note-high{animation-delay:.9s}.note-med{animation-delay:1.5s}.note-ok{animation-delay:2.1s}
}
@keyframes mark{from{text-decoration-color:transparent;background-color:transparent}}
@keyframes fade{from{opacity:0;transform:translateX(-6px)}}
/* bands */
.band{padding:80px 0}.band.alt{background:#fff;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:28px}@media(max-width:860px){.cols3{grid-template-columns:1fr;gap:24px}}
.cols3 h3{padding-top:14px;border-top:3px solid var(--ink)}.cols3 p{color:var(--ink2)}
.steps{list-style:none;counter-reset:s;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr}}@media(max-width:520px){.steps{grid-template-columns:1fr}}
.steps li{counter-increment:s;display:flex;flex-direction:column;gap:4px}
.steps li::before{content:counter(s);font:800 2rem/1 var(--sans);color:var(--rule-dark);margin-bottom:6px}
.steps span{color:var(--ink2);font-size:.95rem}
/* pricing */
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.pricing.two{grid-template-columns:repeat(2,minmax(0,280px))}
@media(max-width:820px){.pricing,.pricing.two{grid-template-columns:1fr}}
.price{display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--rule);border-radius:var(--r);padding:24px}
.price.best{border-color:var(--ink)}.price h3{margin-bottom:6px}
.amount{font:800 2.2rem/1.1 var(--sans);margin:0 0 4px}.per{color:var(--muted);font-size:.9rem;flex:1}
.price .checks{margin:6px 0 18px;font-size:.92rem;flex:1}
.includes{margin-top:32px;max-width:640px}
.checks{list-style:none;padding:0;margin:0}.checks li{position:relative;padding:4px 0 4px 24px}
.checks li::before{content:"";position:absolute;left:2px;top:12px;width:11px;height:6px;border-left:2.5px solid var(--green);border-bottom:2.5px solid var(--green);transform:rotate(-45deg)}
/* faq */
.faq details{border-bottom:1px solid var(--rule);padding:14px 0}.faq summary{cursor:pointer;font-weight:700;list-style-position:outside}
.faq p{margin:10px 0 0;color:var(--ink2)}
/* workspace */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.copyable{cursor:copy;text-decoration:underline dotted}
.doclist{list-style:none;padding:0;margin:24px 0;border-top:1px solid var(--rule)}
.doclist a{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:16px 4px;border-bottom:1px solid var(--rule);text-decoration:none}
.doclist a:hover{background:#fff}.doc-title{font-weight:700}.doclist .muted{grid-column:1}.doclist .risk-tag{grid-column:2;grid-row:1/3;align-self:center}
.risk-tag{font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:3px;background:var(--paper);border:1px solid var(--rule)}
.r-high.risk-tag{background:var(--red-soft);color:var(--red);border-color:transparent}.r-medium.risk-tag{background:var(--amber-soft);color:var(--amber);border-color:transparent}
.r-low.risk-tag{background:var(--green-soft);color:var(--green);border-color:transparent}.r-err{color:var(--red)}
.empty{padding:40px 0}
/* document */
.doc-wrap{max-width:860px}.crumbs{font-size:.9rem;margin-bottom:20px}.crumbs a{color:var(--muted)}
.working{padding:40px 0}.pen{width:64px;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--red) 0 40%,var(--rule) 40%);background-size:200% 100%;margin-bottom:24px}
@media(prefers-reduced-motion:no-preference){.pen{animation:write 1.6s linear infinite}}
@keyframes write{from{background-position:100% 0}to{background-position:-100% 0}}
.report-head{background:#fff;border:1px solid var(--rule);border-top:6px solid var(--ink);padding:28px;border-radius:var(--r)}
.report-head h1{font-size:clamp(1.7rem,3.2vw,2.4rem)}
.meter{margin:18px 0 20px;max-width:420px}
.meter-bar{position:relative;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--green),#E3B23C 50%,var(--red))}
.meter-bar i{position:absolute;top:-5px;width:4px;height:20px;margin-left:-2px;background:var(--ink);border-radius:2px;box-shadow:0 0 0 2px #fff}
.meter-scale{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);margin-top:4px}
.summary{font-size:1.08rem;color:var(--ink2);margin:0}
.counts{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0 0;font-size:.88rem;font-weight:700}
.c-high{color:var(--red)}.c-medium{color:var(--amber)}.c-low{color:var(--muted)}
.sec{margin-top:44px}.sec>h2{padding-bottom:10px;border-bottom:2px solid var(--ink)}
.terms{display:grid;grid-template-columns:minmax(120px,200px) 1fr;margin:0;background:#fff;border:1px solid var(--rule);border-radius:var(--r)}
.terms dt,.terms dd{margin:0;padding:10px 16px;border-bottom:1px solid var(--rule)}.terms dt{font-weight:700;color:var(--ink2);font-size:.92rem}
.terms dt:last-of-type,.terms dd:last-of-type{border-bottom:0}
@media(max-width:560px){.terms{grid-template-columns:1fr}.terms dt{border-bottom:0;padding-bottom:0}}
.flag{background:#fff;border:1px solid var(--rule);border-left:5px solid var(--muted);border-radius:var(--r);padding:20px 22px;margin-top:16px}
.f-high{border-left-color:var(--red)}.f-medium{border-left-color:var(--amber)}.f-low{border-left-color:var(--rule-dark)}
.flag header{display:flex;gap:12px;align-items:baseline;font-size:.82rem;font-weight:700;margin-bottom:6px}
.f-high .sev{color:var(--red)}.f-medium .sev{color:var(--amber)}.f-low .sev{color:var(--muted)}.ref{color:var(--muted);font-weight:500}
.quote{margin:12px 0;padding:10px 16px;font:1rem/1.7 var(--serif);color:#22262d;background:var(--paper);border-left:3px solid var(--rule-dark)}
.f-high .quote{text-decoration:underline wavy var(--red);text-decoration-thickness:1px;text-underline-offset:5px}
.quote.sm{font-size:.92rem;margin:8px 0}
.explain{display:grid;grid-template-columns:130px 1fr;gap:8px 16px;margin:14px 0 0}.explain dt{font-weight:700;font-size:.88rem;color:var(--ink2)}.explain dd{margin:0}
.explain .ask{font-family:var(--serif);background:var(--green-soft);padding:8px 12px;border-radius:var(--r)}
@media(max-width:560px){.explain{grid-template-columns:1fr}.explain dd{margin-bottom:6px}}
.locked-line{color:var(--muted);margin:0;font-size:.92rem}
.unlock{margin-top:24px;background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:26px}
.unlock .checks{margin-bottom:20px}
.dash{padding-left:20px}.dash li{margin:6px 0}.dash li::marker{color:var(--red)}.dash.ok li::marker{color:var(--green)}
.qs li{margin:8px 0}
.letter{background:#fff;border:1px solid var(--rule);padding:24px 28px;font:1rem/1.75 var(--serif);border-radius:var(--r);margin-bottom:12px}
.qa-item{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:16px 20px;margin:12px 0}
.qa-q{font-weight:700;margin-bottom:6px}
.ask-form{display:flex;gap:10px;margin-top:14px}.ask-form .input{flex:1}
@media(max-width:560px){.ask-form{flex-direction:column}}
.doc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:44px}
/* seo + prose */
.seo-in{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:56px;align-items:start}
@media(max-width:980px){.seo-in{grid-template-columns:1fr}}
.seo-side{position:sticky;top:20px;background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:24px}
.seo-side .upload{margin-top:12px}.seo-side .row3{grid-template-columns:1fr}
.prose{max-width:42em}.prose h2{margin-top:1.6em}.prose li{margin:6px 0}
.guide-list{list-style:none;padding:0}.guide-list li{display:flex;flex-direction:column;padding:14px 0;border-bottom:1px solid var(--rule)}.guide-list a{font-weight:700}
/* footer */
.foot{border-top:1px solid var(--rule);background:#fff;padding:40px 0;margin-top:0}
.foot-in{display:grid;grid-template-columns:1fr auto;gap:16px 40px}.foot-in>p{grid-column:1/-1;margin:0}
.foot-links{display:flex;gap:20px;flex-wrap:wrap}.foot-links a{color:var(--ink2)}
@media(max-width:640px){.foot-in{grid-template-columns:1fr}}
/* print: just the report */
@media print{.top,.foot,.crumbs,.doc-actions,.ask-form,.unlock,.banner,button{display:none!important}body{background:#fff}.flag,.report-head{break-inside:avoid}}
