/* «Чистый PDF» в языке J (ТЗ 2026-10-16-site-apple-redesign, раздел «Инструменты»): шапка, подвал, шрифт, токены и компоненты
   pf-* (капсулы, плашки, пейволл, ошибка, заголовок, значки) — platform.css (копия platform-ui); здесь только своё у «Чистого PDF». */
:root{--tl:#f2f5f8}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
body>main.wrap{width:100%}  /* body платформы — flex-колонка: без ширины контейнер сжался бы по контенту */
.pf-header section{margin-top:0}  /* колонки панели «Платформа» — не секции страницы */
h2{font-size:22px;letter-spacing:-.01em;margin-bottom:6px}
.sub{color:var(--mut);margin-bottom:18px}
section{margin-top:64px}
.hero{padding-top:var(--pf-gap-hero);max-width:760px}.hero h1{font-size:64px;line-height:1.02;letter-spacing:-.04em;font-weight:800;margin:22px 0 14px}
.hero-id{display:flex;align-items:center;gap:14px}
.lead{font-size:19px;color:var(--mut)}.lead.ink{color:var(--ink);font-weight:600}
.facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px}
.fact{display:flex;gap:14px;align-items:flex-start;padding:22px}.fact+.fact{box-shadow:inset 1px 0 0 var(--hair)}.fact b{display:block}.fact span{color:var(--mut)}
.fact .pf-gl{background:var(--tl);background:color-mix(in srgb,var(--c-tools) 12%,#fff)}
.facts.one{grid-template-columns:1fr}.facts.solo{grid-template-columns:1fr}  /* панель из одной гарантии — на всю ширину, поля 22 px как у .fact */.facts.one .fact{padding:12px 0}.facts.one .fact+.fact{box-shadow:inset 0 1px 0 var(--hair)}
.note{margin-top:28px;background:#fff;background:var(--mat-thick);box-shadow:inset 0 0 0 1px var(--hair);border-radius:var(--r-m);padding:14px 18px;color:var(--mut);font-size:14px}
.two{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:start;margin-top:var(--pf-gap-page)}
.two .pf-app-head{padding-bottom:14px}
.panel{background:#fff;background:var(--mat-thick);border-radius:var(--r-l);padding:24px;box-shadow:inset 0 1px 0 var(--edge),0 0 0 1px var(--hair),0 1px 2px rgba(24,35,31,.04)}
.panel h2{font-size:18px}
.pf-alert{margin-top:14px;margin-bottom:0}
.drop{display:block;border:1.5px dashed #c3ccd5;border-radius:var(--r-m);padding:26px 22px;text-align:center;color:var(--mut);background:rgba(255,255,255,.55);cursor:pointer}
.drop b{display:block;color:var(--ink);margin-bottom:2px;font-size:17px}.drop .pf-icon{margin:0 auto 12px}
.drop.big{margin-top:22px;padding:34px}.drop.over,.drop.done{border-style:solid;border-color:var(--c-tools);background:var(--tl)}
.inp{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 14px;font:15px Onest,sans-serif;background:#fff;color:var(--ink)}
.acts{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap;align-items:center}.acts form{display:contents}
.pages{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.mt14{margin-top:14px}.mt48{margin-top:48px}.mt56{margin-top:56px}
.h1e,.h1s{font-size:32px;line-height:1.1;letter-spacing:-.025em;font-weight:700;margin:var(--pf-gap-page) 0 6px}
.hint{color:var(--mut);font-size:13px;margin-top:10px;min-height:1em}
.privacy{font-size:13px;color:var(--mut);margin-top:12px}
.hidden{display:none !important}
.state{margin:var(--pf-gap-page) auto 0}.pf-pw .pf-alert{text-align:left;margin:4px 0 0}.pf-pw .acts{justify-content:center;margin-top:8px}.pf-pw .pf-cap{margin-top:0}
.pf-err .acts{margin-top:8px}
.lost-head{padding-top:var(--pf-gap-page)}
@media (max-width:900px){.hero h1{font-size:44px}.fact+.fact{box-shadow:inset 0 1px 0 var(--hair)}}
@media (max-width:720px){.wrap{padding:0 16px}.panel{padding:16px}.acts .pf-cap{width:100%}}

/* --- общее с соседями по разделу --- */
.mt20{margin-top:20px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pick{margin-top:12px}
.drop input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.drop{position:relative}
.pick{margin-top:12px}.fname{display:block;margin-top:8px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.fname:empty{display:none}[hidden]{display:none!important}
.hero .hero-id{display:flex;align-items:center;gap:14px}
.facts.four{grid-template-columns:repeat(4,1fr)}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-3px}
.law{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:14px 16px;border-radius:var(--r-m);background:#fff7e6;box-shadow:inset 0 0 0 1px #f3c88d;color:#7a3b05;font-size:14px}
.law .pf-gl{background:#fdecc8;color:#b45309}
.law b{color:#5c2c04}
.full{width:100%;justify-content:center}
.tip{font-size:12.5px;color:var(--mut);margin-top:8px}
.err{color:#b42318;font-weight:600}
.stepper{display:flex;gap:6px;margin:var(--pf-gap-page) 0 20px;flex-wrap:wrap}.stepper span{padding:6px 14px;border-radius:999px;background:rgba(24,35,31,.06);color:var(--mut);font-weight:600;font-size:13px}.stepper .on{background:var(--c-tools);color:#fff}.stepper .ok{background:var(--tl);color:var(--c-tools)}
.drop:focus-within{outline:2px solid var(--c-tools);outline-offset:2px}

/* «Чистый PDF» — макет ТЗ 2026-10-19-pdf-clean */
.chk{display:flex;gap:14px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line)}
.chk:last-child{border-bottom:0}
.chk .st{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;margin-top:1px}
.chk .st svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.st.f{background:#fdf3e7;color:#b45309}.st.n{background:#eef2f0;color:#8a9892}.st.d{background:#e1f3ea;color:#0b6e4f}.st.k{background:#eef1f4;color:#566476}
.chk .tx{flex:1;min-width:0}.chk .tx b{display:block;font-weight:600}.chk .tx span{color:var(--mut);font-size:13.5px}
.chk .tx code{font:12.5px ui-monospace,Menlo,monospace;background:#f2f5f8;border-radius:5px;padding:1px 6px;color:var(--ink-2)}
.chk .cnt{flex:none;font-weight:700;font-size:13px;white-space:nowrap}
.chk.off .tx b{color:var(--mut);font-weight:500}
.chk input{flex:none;width:18px;height:18px;margin-top:4px;accent-color:var(--c-tools)}
.det{margin-top:8px;border-radius:10px;background:#f6f8f9;box-shadow:inset 0 0 0 1px var(--hair);padding:8px 12px;font-size:13px}
.det div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.det div span:first-child{color:var(--mut)}
.det .kiri{color:#7a3b05}
.sumrow{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 4px}
.sumrow .s{flex:1;min-width:140px;background:#fff;border-radius:var(--r-m);box-shadow:inset 0 0 0 1px var(--hair);padding:14px 16px}
.sumrow .s b{display:block;font-size:26px;letter-spacing:-.02em}.sumrow .s span{color:var(--mut);font-size:13px}
.sumrow .s.w b{color:#b45309}.sumrow .s.ok b{color:#0b6e4f}
.preset{display:flex;flex-direction:column;gap:10px}
.pr{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:var(--r-s);background:#fff;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}
.pr.on{box-shadow:inset 0 0 0 2px var(--c-tools);background:#f7f9fb}
.pr input{margin-top:3px;accent-color:var(--c-tools);width:16px;height:16px;flex:none}
.pr b{display:block}.pr span{color:var(--mut);font-size:13px}
.sig{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:13px 15px;border-radius:var(--r-m);background:#fdecec;box-shadow:inset 0 0 0 1px #f0b4b4;color:#8a1c1c;font-size:14px}
.sig label{display:flex;gap:8px;margin-top:8px;color:var(--ink);font-weight:600}
.sig input{accent-color:#b42318;width:16px;height:16px;margin-top:2px}
.ok-hero{display:flex;gap:16px;align-items:center;border-radius:var(--r-l);padding:22px 24px;background:#eef7f2;box-shadow:inset 0 0 0 1px #bfe0cf;margin-top:6px}
.ok-hero .g{flex:none;width:56px;height:56px;border-radius:16px;background:#0b6e4f;color:#fff;display:grid;place-items:center}
.ok-hero .g svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ok-hero h2{font-size:22px;margin:0}.ok-hero p{color:var(--mut)}
.hash{font:12px/1.6 ui-monospace,Menlo,monospace;color:var(--ink-2);word-break:break-all}
.filehd{margin-top:var(--pf-gap-page);display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.filehd h1{font-size:30px;letter-spacing:-.02em}
.back{color:var(--mut);font-size:14px}
.r2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start;margin-top:18px}
@media (max-width:900px){.r2{grid-template-columns:1fr}.filehd h1{font-size:24px}}

/* состояния интерфейса, которых нет в макете */
.chk label.row{display:contents}
.chk input:disabled{opacity:.4}
.chk.locked input{pointer-events:none}
.sig.hidden{display:none}
.busy{color:var(--mut);font-size:14px;margin-top:10px}
@media (max-width:720px){.chk{gap:10px}.sumrow .s{min-width:120px}.filehd .acts{width:100%}}
@media (max-width:380px){.chk .cnt{font-size:12px}.ok-hero{padding:16px}}
.filehd .acts.nomt{margin:0}
.chk .tx .warn{display:block;color:#7a3b05;font-size:12.5px;margin-top:4px}
.pr.on{background:#f7f9fb}
@media (max-width:900px){.two,.facts,.facts.four{grid-template-columns:1fr}.facts.four .fact+.fact{box-shadow:inset 0 1px 0 var(--hair)}}
@media (max-width:720px){.hero h1{font-size:36px}.lead{font-size:17px}}
