/* =========================================================
   CIRCE
   /public/assets/fonts/circe/
   ========================================================= */

@font-face {
    font-family: 'Circe';
    src: url('/assets/fonts/circe/Circe-Thin.eot');
    src:
        url('/assets/fonts/circe/Circe-Thin.eot?#iefix') format('embedded-opentype'),
        url('/assets/fonts/circe/Circe-Thin.woff2') format('woff2'),
        url('/assets/fonts/circe/Circe-Thin.woff') format('woff'),
        url('/assets/fonts/circe/Circe-Thin.ttf') format('truetype');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Circe';
    src: url('/assets/fonts/circe/Circe-ExtraLight.eot');
    src:
        url('/assets/fonts/circe/Circe-ExtraLight.eot?#iefix') format('embedded-opentype'),
        url('/assets/fonts/circe/Circe-ExtraLight.woff2') format('woff2'),
        url('/assets/fonts/circe/Circe-ExtraLight.woff') format('woff'),
        url('/assets/fonts/circe/Circe-ExtraLight.ttf') format('truetype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Circe';
    src: url('/assets/fonts/circe/Circe-Light.eot');
    src:
        url('/assets/fonts/circe/Circe-Light.eot?#iefix') format('embedded-opentype'),
        url('/assets/fonts/circe/Circe-Light.woff2') format('woff2'),
        url('/assets/fonts/circe/Circe-Light.woff') format('woff'),
        url('/assets/fonts/circe/Circe-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Circe';
    src: url('/assets/fonts/circe/Circe-Regular.eot');
    src:
        url('/assets/fonts/circe/Circe-Regular.eot?#iefix') format('embedded-opentype'),
        url('/assets/fonts/circe/Circe-Regular.woff2') format('woff2'),
        url('/assets/fonts/circe/Circe-Regular.woff') format('woff'),
        url('/assets/fonts/circe/Circe-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Circe';
    src: url('/assets/fonts/circe/Circe-Bold.eot');
    src:
        url('/assets/fonts/circe/Circe-Bold.eot?#iefix') format('embedded-opentype'),
        url('/assets/fonts/circe/Circe-Bold.woff2') format('woff2'),
        url('/assets/fonts/circe/Circe-Bold.woff') format('woff'),
        url('/assets/fonts/circe/Circe-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


/* =========================================================
   GLOBAL
   ========================================================= */

:root{
  --blue:#00A0E3;
  --blue-dark:#0086bf;
  --red:#E31E24;
  --ink:#2B2A29;
  --text:#404040;
  --muted:#8a8a8a;
  --line:#dedede;
  --soft:#f5f5f5;
  --paper:#fff;
  --warning:#d58b14;
  --font:'Circe',sans-serif;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  font-family:var(--font);
}

html,
body,
textarea,
input,
button,
select,
option{
  font-family:'Circe',sans-serif;
}

body{
  margin:0;
  background:#fff;
  color:var(--text);
  font-size:16px;
  line-height:1.45;
  font-family:'Circe',sans-serif;
}

/* Принудительно используем Circe во всём интерфейсе */
body,
body div,
body span,
body p,
body a,
body label,
body small,
body strong,
body b,
body em,
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body li,
body td,
body th,
body input,
body textarea,
body select,
body button{
  font-family:'Circe',sans-serif;
}

a{color:inherit}

.header{background:#fff;border-bottom:1px solid #ececec}

.header-inner{
  max-width:1180px;
  margin:auto;
  min-height:118px;
  padding:16px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
}

.brand{
  width:220px;
  flex:0 0 220px;
  display:block;
  text-decoration:none;
}

.brand img{
  display:block;
  width:100%;
  height:auto;
  max-height:88px;
  object-fit:contain;
  object-position:left center;
}

.contacts{
  margin-left:auto;
  display:flex;
  gap:54px;
  align-items:center;
}

.contact{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  min-width:250px;
}

.contact span{
  font-size:12px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:.02em;
}

.contact b{
  font-size:21px;
  line-height:1.2;
  color:#111;
  margin:3px 0 2px;
}

.contact small{
  font-size:13px;
  color:#9a9a9a;
}

.subnav{
  background:#f7f7f7;
  border-top:1px solid #eee;
}

.subnav-inner{
  max-width:1180px;
  margin:auto;
  padding:10px 20px;
  display:flex;
  justify-content:space-between;
  color:#6d6d6d;
  font-size:13px;
}

.subnav a{
  text-decoration:none;
  color:var(--blue);
  font-weight:700;
}

main{
  max-width:1180px;
  margin:auto;
  padding:32px 20px 70px;
}

.hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:56px;
  align-items:center;
  padding:48px 0 56px;
  border-bottom:1px solid var(--line);
}

.ey{
  font-size:13px;
  font-weight:700;
  letter-spacing:.07em;
  color:var(--blue);
  margin-bottom:14px;
}

h1,h2,h3{
  color:var(--ink);
}

h1{
  font-size:46px;
  line-height:1.08;
  margin:0 0 20px;
  font-weight:700;
  letter-spacing:-.02em;
}

h1 em{
  font-style:normal;
  color:var(--blue);
}

.hero-copy p{
  font-size:18px;
  line-height:1.6;
  color:#6c6c6c;
  margin:0;
  max-width:680px;
}

.scan-panel{
  background:var(--soft);
  border:1px solid #dcdcdc;
  padding:28px;
}

.scan-panel h2{
  font-size:23px;
  margin:0 0 8px;
}

.scan-panel p{
  font-size:14px;
  color:#777;
  margin:0 0 18px;
  line-height:1.45;
}

.scan-form{
  display:grid;
  gap:10px;
}

input{
  font-family:'Circe',sans-serif;
}

.scan-form input,
.lead-form input{
  width:100%;
  height:50px;
  border:1px solid #cdcdcd;
  background:#fff;
  padding:0 15px;
  font-size:16px;
  outline:none;
  border-radius:0;
}

.scan-form input:focus,
.lead-form input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 2px rgba(0,160,227,.09);
}

.btn{
  height:50px;
  border:0;
  background:var(--blue);
  color:#fff;
  font-family:'Circe',sans-serif;
  font-size:16px;
  font-weight:700;
  padding:0 24px;
  cursor:pointer;
  border-radius:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

.btn:hover{
  background:var(--blue-dark);
}

.btn:disabled{
  opacity:.55;
  cursor:wait;
}

.btn.secondary{
  background:#fff;
  color:var(--blue);
  border:1px solid var(--blue);
}

.btn.secondary:hover{
  background:#eef9fe;
}

.micro{
  font-size:12px;
  color:#999;
  margin-top:11px;
}

.hidden{
  display:none!important;
}

.progress{
  margin:22px 0;
  border:1px solid var(--line);
  background:#f8f8f8;
  padding:20px;
  display:flex;
  gap:16px;
  align-items:center;
}

.spinner{
  width:30px;
  height:30px;
  border:3px solid #ddd;
  border-top-color:var(--blue);
  border-radius:50%;
  animation:spin .75s linear infinite;
  flex:none;
}

@keyframes spin{
  to{transform:rotate(360deg)}
}

.progress-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.progress-copy span{
  font-size:14px;
  color:#777;
}

.result-head{
  margin-top:28px;
  border:1px solid var(--line);
  background:#fff;
  padding:26px;
}

.result-grid{
  display:grid;
  grid-template-columns:100px 1fr auto;
  gap:24px;
  align-items:center;
}

.score{
  width:94px;
  height:94px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:conic-gradient(var(--blue) calc(var(--score)*1%),#e7e7e7 0);
  position:relative;
}

.score:after{
  content:"";
  position:absolute;
  inset:8px;
  background:white;
  border-radius:50%;
}

.score b{
  position:relative;
  z-index:1;
  font-size:28px;
  color:var(--ink);
}

.result-head h2{
  font-size:26px;
  margin:0 0 5px;
}

.target{
  font-size:13px;
  color:#777;
  word-break:break-all;
}

.badges{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}

.badge{
  padding:6px 10px;
  font-size:12px;
  font-weight:700;
  background:#eee;
}

.badge.high{
  background:#fde7e8;
  color:#a3171b;
}

.badge.medium{
  background:#fff0d5;
  color:#8d5d07;
}

.badge.low{
  background:#e8f6fc;
  color:#0878a8;
}

.result-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:190px;
}

.result-actions .btn{
  height:42px;
  font-size:14px;
}

.pdf-status{
  font-size:11px;
  color:#888;
  text-align:center;
  min-height:16px;
}

.note{
  font-size:12px;
  color:#888;
  margin-top:17px;
  border-top:1px solid #eee;
  padding-top:13px;
}

.issues{
  display:grid;
  gap:10px;
  margin-top:12px;
}

.issue{
  border:1px solid var(--line);
  border-left:5px solid #aaa;
  background:#fff;
  padding:20px;
}

.issue.high{
  border-left-color:var(--red);
}

.issue.medium{
  border-left-color:var(--warning);
}

.issue.low{
  border-left-color:var(--blue);
}

.issue .cat{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#888;
  font-weight:700;
  margin-bottom:6px;
}

.issue h3{
  font-size:19px;
  margin:0 0 7px;
}

.issue .url{
  display:block;
  font-size:13px;
  color:var(--blue);
  word-break:break-all;
  margin:8px 0 12px;
}

.issue p{
  margin:9px 0;
  line-height:1.55;
}

.issue .advice{
  background:#f6f6f6;
  padding:12px 14px;
  border-left:2px solid #d8d8d8;
}

.law{
  font-size:12px;
  color:#888;
  margin-top:8px;
}

.leadbox{
  margin-top:28px;
  background:#f4f4f4;
  border-top:4px solid var(--blue);
  padding:30px;
}

.leadbox-grid{
  display:grid;
  grid-template-columns:1fr 430px;
  gap:38px;
  align-items:start;
}

.leadbox h2{
  font-size:29px;
  margin:0 0 10px;
}

.leadbox p{
  margin:0;
  color:#6e6e6e;
  line-height:1.55;
}

.summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:24px;
}

.sum{
  background:#fff;
  border:1px solid #dedede;
  padding:15px;
}

.sum b{
  display:block;
  font-size:28px;
  line-height:1;
  margin-bottom:6px;
}

.sum span{
  font-size:12px;
  color:#777;
}

.sum.high b{color:var(--red)}
.sum.medium b{color:var(--warning)}
.sum.low b{color:var(--blue)}

.lead-form{
  display:grid;
  gap:10px;
  background:#fff;
  border:1px solid #ddd;
  padding:20px;
}

.lead-form h3{
  font-size:20px;
  margin:0 0 3px;
}

.lead-form .btn{
  width:100%;
}

.consent{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:11px;
  color:#777;
  line-height:1.35;
}

.consent input{
  width:15px;
  height:15px;
  margin:1px 0 0;
  flex:none;
}

.consent a{
  color:var(--blue);
}

.form-msg{
  font-size:13px;
  padding:10px 12px;
  display:none;
}

.form-msg.ok{
  display:block;
  background:#e7f6ed;
  color:#23734b;
}

.form-msg.err{
  display:block;
  background:#fde8e8;
  color:#991b1f;
}

.features{
  padding:58px 0 15px;
}

.features h2{
  font-size:32px;
  margin:0 0 24px;
}

.cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.cards article{
  padding:22px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  min-height:170px;
}

.cards article>b{
  font-size:12px;
  color:var(--blue);
}

.cards h3{
  font-size:19px;
  margin:28px 0 7px;
}

.cards p{
  font-size:14px;
  color:#777;
  line-height:1.5;
  margin:0;
}

.footer{
  background:#3f3f3f;
  color:#ddd;
  margin-top:20px;
}

.footer-inner{
  max-width:1180px;
  margin:auto;
  padding:28px 20px;
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center;
}

.footer a{
  color:white;
  text-decoration:none;
}

.footer small{
  color:#aaa;
}

.error{
  margin-top:18px;
  background:#fdecec;
  border:1px solid #e7bbbb;
  color:#8d181c;
  padding:16px;
}

.pdf-report{
  position:fixed;
  left:-10000px;
  top:0;
  width:794px;
  background:#fff;
  color:#2B2A29;
  font-family:'Circe',sans-serif;
  padding:38px;
  z-index:-1;
}

.pdf-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:3px solid var(--blue);
  padding-bottom:18px;
  margin-bottom:22px;
}

.pdf-head img{
  width:165px;
  height:auto;
}

.pdf-head div{
  text-align:right;
  font-size:12px;
  color:#777;
}

.pdf-report h1{
  font-size:30px;
  margin:0 0 8px;
}

.pdf-meta{
  font-size:13px;
  color:#666;
  margin-bottom:18px;
}

.pdf-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:16px 0 22px;
}

.pdf-summary div{
  padding:12px;
  border:1px solid #ddd;
}

.pdf-summary b{
  display:block;
  font-size:22px;
}

.pdf-issue{
  border:1px solid #ddd;
  border-left:6px solid #aaa;
  padding:15px;
  margin:0 0 10px;
  break-inside:avoid;
}

.pdf-issue.high{
  border-left-color:var(--red);
}

.pdf-issue.medium{
  border-left-color:var(--warning);
}

.pdf-issue.low{
  border-left-color:var(--blue);
}

.pdf-issue h3{
  font-size:16px;
  margin:4px 0 7px;
}

.pdf-issue .url{
  font-size:11px;
  color:#0878a8;
  word-break:break-all;
}

.pdf-issue p{
  font-size:12px;
  line-height:1.45;
  margin:7px 0;
}

.pdf-issue .advice{
  background:#f5f5f5;
  padding:9px;
}

.pdf-foot{
  font-size:10px;
  color:#888;
  margin-top:18px;
  border-top:1px solid #ddd;
  padding-top:10px;
}

@media(max-width:950px){
  .header-inner{align-items:flex-start}
  .contacts{gap:20px;flex-wrap:wrap}
  .contact{min-width:210px}
  .hero{grid-template-columns:1fr;gap:28px}
  .scan-panel{max-width:670px}
  .leadbox-grid{grid-template-columns:1fr}
  .result-grid{grid-template-columns:100px 1fr}
  .result-actions{grid-column:1/-1;flex-direction:row}
  .cards{grid-template-columns:1fr 1fr}
}

@media(max-width:640px){
  body{font-size:15px}
  .header-inner{display:block;padding:14px}
  .brand{width:185px;margin-bottom:15px}
  .contacts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .contact{min-width:0}
  .contact b{font-size:16px}
  .contact span{font-size:10px}
  .contact small{white-space:normal}
  .subnav-inner{padding:8px 14px}
  main{padding:20px 13px 45px}
  .hero{padding:24px 0 36px}
  .hero-copy p{font-size:16px}
  .scan-panel{padding:19px}
  h1{font-size:34px}
  .result-grid{grid-template-columns:82px 1fr;gap:15px}
  .score{width:76px;height:76px}
  .score b{font-size:22px}
  .result-actions{flex-direction:column}
  .summary{grid-template-columns:1fr 1fr 1fr}
  .sum{padding:11px}
  .sum b{font-size:23px}
  .sum span{font-size:10px}
  .leadbox{padding:20px}
  .cards{grid-template-columns:1fr}
  .footer-inner{flex-direction:column;align-items:flex-start}
  .footer small{line-height:1.4}
}


/* =========================================================
   v4: основная проверка и технические проблемы разделены
   ========================================================= */

.badge.tech{
  background:#efefef;
  color:#555;
}

.audit-section{
  margin-top:28px;
}

.section-title{
  border-bottom:1px solid var(--line);
  padding:0 0 14px;
  margin-bottom:12px;
}

.section-title .ey{
  margin-bottom:6px;
}

.section-title h2{
  font-size:28px;
  margin:0 0 5px;
}

.section-title p{
  margin:0;
  color:#777;
  font-size:14px;
}

.technical-section{
  margin-top:36px;
}

.technical-list{
  display:grid;
  gap:10px;
}

.tech-issue{
  border:1px solid var(--line);
  border-left:5px solid var(--warning);
  background:#fff;
  padding:20px;
}

.tech-issue .cat{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#888;
  font-weight:700;
  margin-bottom:6px;
}

.tech-issue h3{
  font-size:19px;
  margin:0 0 7px;
  color:var(--ink);
}

.tech-issue .url{
  display:block;
  font-size:13px;
  color:var(--blue);
  word-break:break-all;
  margin:8px 0 12px;
}

.tech-issue p{
  margin:9px 0;
  line-height:1.55;
}

.tech-issue .advice{
  background:#f6f6f6;
  padding:12px 14px;
  border-left:2px solid #d8d8d8;
}

.tech-sources{
  background:#fafafa;
  border:1px solid #e7e7e7;
  padding:11px 13px;
  margin:10px 0;
  font-size:12px;
  line-height:1.5;
  color:#666;
}

.tech-sources a{
  color:var(--blue);
  word-break:break-all;
}

.tech-sources code{
  font-family:Consolas,monospace;
  font-size:11px;
  word-break:break-all;
  color:#555;
}

.tech-more{
  margin-top:5px;
  color:#888;
}

.tech-ok{
  border:1px solid var(--line);
  background:#f8f8f8;
  padding:18px;
  color:#555;
}

.pdf-block{
  background:#fff;
  width:100%;
}

.pdf-section{
  padding:8px 0 4px;
}

.pdf-section h2{
  font-size:21px;
  margin:0 0 4px;
}

.pdf-section p{
  font-size:12px;
  color:#777;
  margin:0 0 8px;
}

.pdf-tech{
  border:1px solid #ddd;
  border-left:6px solid var(--warning);
  padding:15px;
  margin:0 0 10px;
}

.pdf-tech .cat{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#777;
  font-weight:700;
  margin-bottom:5px;
}

.pdf-tech h3{
  font-size:16px;
  margin:4px 0 7px;
}

.pdf-tech .url{
  font-size:11px;
  color:#0878a8;
  word-break:break-all;
  margin-bottom:7px;
}

.pdf-tech div{
  font-size:11px;
  line-height:1.4;
  word-break:break-all;
}

.pdf-tech p{
  font-size:12px;
  line-height:1.45;
  margin:7px 0;
}

.pdf-tech .advice{
  background:#f5f5f5;
  padding:9px;
}

@media(max-width:640px){
  .section-title h2{font-size:24px}
  .tech-issue{padding:16px}
  .tech-issue h3{font-size:18px}
}


/* =========================================================
   v5 — точная диагностика форм
   ========================================================= */

.affected-count{
  margin:8px 0 10px;
  color:#555;
  font-size:13px;
}

.affected-pages,
.issue-tech{
  margin:10px 0;
  border:1px solid #e1e1e1;
  background:#fafafa;
}

.affected-pages summary,
.issue-tech summary{
  cursor:pointer;
  padding:10px 12px;
  font-weight:700;
  color:var(--blue);
  user-select:none;
}

.affected-list{
  display:grid;
  gap:6px;
  padding:0 12px 12px;
}

.affected-list a{
  font-size:12px;
  color:var(--blue);
  word-break:break-all;
  text-decoration:none;
}

.affected-list a:hover{
  text-decoration:underline;
}

.form-summary{
  margin:12px 0;
  padding:13px 14px;
  background:#f7fbfd;
  border-left:3px solid var(--blue);
  font-size:13px;
  line-height:1.55;
}

.form-summary>div+div{
  margin-top:4px;
}

.form-summary a{
  color:var(--blue);
  word-break:break-all;
}

.form-ok{
  color:#3f6f58;
}

.tech-detail{
  padding:0 12px 13px;
  font-size:12px;
  line-height:1.55;
  color:#555;
}

.tech-detail>div+div{
  margin-top:6px;
}

.tech-detail code{
  font-family:Consolas,"Courier New",monospace;
  background:#eee;
  padding:1px 4px;
  border-radius:2px;
  color:#333;
  word-break:break-all;
}

.field-tech{
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid #e2e2e2;
}

.field-tech>div{
  margin-top:4px;
}

.html-snippet{
  margin-top:10px;
}

.html-snippet pre{
  margin:7px 0 0;
  max-height:340px;
  overflow:auto;
  background:#222;
  color:#f2f2f2;
  padding:12px;
  white-space:pre-wrap;
  word-break:break-word;
  line-height:1.45;
}

.html-snippet pre code{
  background:transparent;
  color:inherit;
  padding:0;
}

.pdf-occurrence,
.pdf-form{
  font-size:11px;
  line-height:1.45;
  margin:8px 0;
  padding:8px 10px;
  background:#f7f7f7;
  border-left:2px solid #d7d7d7;
  word-break:break-word;
}

.pdf-occurrence>div{
  margin-top:3px;
}

@media(max-width:640px){
  .form-summary{padding:11px 12px}
  .tech-detail{font-size:11px}
  .affected-pages summary,
  .issue-tech summary{padding:9px 10px}
}


/* =========================================================
   v6 — экономный рендер больших отчетов
   ========================================================= */

.lazy-pages{
  padding:0;
  border:1px solid #e1e1e1;
  background:#fafafa;
}

.pages-toggle{
  width:100%;
  height:auto;
  min-height:38px;
  border:0;
  background:transparent;
  color:var(--blue);
  font-family:inherit;
  font-size:13px;
  font-weight:700;
  text-align:left;
  padding:10px 12px;
  cursor:pointer;
}

.pages-toggle:hover{
  background:#f2f8fb;
}

.lazy-pages .affected-list{
  padding:0 12px 12px;
}


/* =========================================================
   v7 — краткий клиентский PDF
   ========================================================= */

.pdf-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:1px solid #dcdcdc;
  border-left:5px solid var(--blue);
  padding:13px 15px;
  margin:14px 0 10px;
  font-size:13px;
}

.pdf-total b{
  font-size:28px;
  color:#2B2A29;
}

.pdf-summary-four{
  grid-template-columns:repeat(4,1fr);
}

.pdf-intro{
  font-size:12px;
  line-height:1.45;
  color:#666;
  margin-top:8px;
}

.pdf-count{
  font-size:11px;
  color:#555;
  margin:6px 0;
}

.pdf-links{
  font-size:10.5px;
  line-height:1.4;
  color:#0878a8;
  word-break:break-all;
  margin-top:7px;
}

.pdf-links>div{
  margin:2px 0;
}

.pdf-links-more{
  color:#777!important;
  margin-top:5px!important;
}

.pdf-offer{
  border-top:4px solid var(--blue);
  background:#f5f8fa;
  padding:20px 22px;
  margin-top:8px;
}

.pdf-offer h2{
  font-size:22px;
  margin:4px 0 8px;
}

.pdf-offer p{
  font-size:12px;
  line-height:1.5;
  color:#555;
  margin:0 0 12px;
}

.pdf-contacts{
  font-size:13px;
  color:#2B2A29;
}


/* v8: PDF содержит только основную проверку 152-ФЗ. */

/* v10: разделяем политику и отдельное согласие */
.form-warn{
  color:#a76700;
}


/* =========================================================
   v12 — технический аудит запускается только по запросу
   ========================================================= */

.tech-offer{
  margin-top:28px;
  border:1px solid #d9dde0;
  background:#f7f9fa;
  padding:28px;
}

.tech-offer-copy{
  max-width:820px;
}

.tech-offer h2{
  margin:4px 0 8px;
  font-size:28px;
}

.tech-offer p{
  margin:0 0 18px;
  color:#666;
  line-height:1.55;
}

.tech-offer>.btn{
  width:auto;
  min-width:310px;
}

.tech-progress{
  margin-top:20px;
  display:flex;
  align-items:center;
  gap:14px;
  border-top:1px solid #e0e3e5;
  padding-top:18px;
}

.tech-progress span{
  display:block;
  margin-top:4px;
  color:#777;
  font-size:13px;
}

#techResult{
  margin-top:24px;
}

.technical-result-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  border-top:3px solid var(--blue);
  padding-top:22px;
  margin-bottom:18px;
}

.technical-result-head h2{
  margin:4px 0 7px;
  font-size:28px;
}

.technical-result-head p{
  margin:0;
  color:#666;
}

.technical-result-head .result-actions{
  min-width:280px;
}

@media(max-width:760px){
  .tech-offer{padding:20px 16px}
  .tech-offer>.btn{
    width:100%;
    min-width:0;
    height:auto;
    min-height:48px;
    padding:12px;
  }
  .technical-result-head{flex-direction:column}
  .technical-result-head .result-actions{
    width:100%;
    min-width:0;
  }
}


/* =========================================================
   v13 — содержательный анализ Политики и Согласия
   ========================================================= */

.document-audit-section{
  margin-top:28px;
}

.document-audit-list{
  display:grid;
  gap:12px;
}

.document-audit-card{
  background:#fff;
  border:1px solid #dfe3e6;
  border-left:4px solid #00A0E3;
  padding:18px 20px;
}

.document-audit-card.ok{
  border-left-color:#31985a;
}

.document-audit-card.warn{
  border-left-color:#d58b14;
}

.document-audit-card.manual{
  border-left-color:#7a8790;
}

.document-audit-card.error{
  border-left-color:#e31e24;
}

.document-audit-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.document-audit-card h3{
  margin:3px 0 8px;
  font-size:18px;
}

.document-status{
  font-size:12px;
  color:#666;
  background:#f2f4f5;
  padding:6px 9px;
}

.document-meta{
  margin-top:8px;
  font-size:12px;
  color:#777;
}

.document-warning{
  margin-top:10px;
  background:#fff8ea;
  border-left:3px solid #d58b14;
  padding:9px 11px;
  font-size:13px;
}

@media(max-width:700px){
  .document-audit-top{
    flex-direction:column;
    gap:5px;
  }
}


/* =========================================================
   v18 — системные типы нарушений и затронутые формы
   ========================================================= */

.affected-forms{
  margin:12px 0;
  border:1px solid #dfe4e7;
  background:#f8fafb;
}

.affected-forms-title{
  padding:10px 12px;
  border-bottom:1px solid #e3e7e9;
}

.affected-form-row{
  padding:10px 12px;
  border-bottom:1px solid #e9edef;
}

.affected-form-row:last-child{
  border-bottom:0;
}

.form-purpose{
  display:inline-block;
  margin-left:7px;
  padding:2px 7px;
  background:#e9f6fc;
  color:#087daf;
  font-size:12px;
  font-weight:400;
}

.affected-form-fields,
.affected-form-pages{
  margin-top:4px;
  color:#6c7479;
  font-size:12px;
}


/* =========================================================
   v19 — статусы оформления согласия
   ========================================================= */

.consent-status-grid{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
}

.consent-status-grid span{
  display:inline-block;
  padding:3px 7px;
  font-size:11px;
  border:1px solid #dde3e6;
  background:#fff;
}

.consent-status-grid .ok{
  color:#247a42;
  border-color:#b9dec6;
  background:#f2fbf5;
}

.consent-status-grid .bad{
  color:#b51f25;
  border-color:#efc2c5;
  background:#fff5f5;
}

.consent-status-grid .warn{
  color:#9a6500;
  border-color:#ecd7ab;
  background:#fffaf0;
}


/* =========================================================
   v21 — где именно найдена ссылка на документ
   ========================================================= */

.document-sources{
  margin-top:12px;
  padding:11px 12px;
  background:#f7f9fa;
  border:1px solid #e0e5e8;
  font-size:12px;
}

.document-source-row{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid #e3e7e9;
  line-height:1.5;
}

.document-source-row:first-of-type{
  border-top:0;
  padding-top:5px;
}

.document-source-more{
  margin-top:7px;
  color:#70787d;
}


/* =========================================================
   v22 — понятный контекстный анализ целей документа
   ========================================================= */

.document-purpose-status{
  margin-top:10px;
  padding:10px 11px;
  background:#f7f9fa;
  border:1px solid #e0e5e8;
}

.document-purpose-status>b{
  display:block;
  margin-bottom:6px;
}

.document-purpose-status span{
  display:block;
  margin-top:5px;
  padding:5px 7px;
  font-size:12px;
  border-left:3px solid #bcc5ca;
  background:#fff;
}

.document-purpose-status .ok{
  border-left-color:#2f9a58;
  color:#276d41;
}

.document-purpose-status .bad{
  border-left-color:#d7262d;
  color:#a91f25;
}

.document-purpose-status .warn{
  border-left-color:#d68a12;
  color:#8f5d0d;
}

.document-purpose-status .neutral{
  border-left-color:#7c8a92;
  color:#5f6a70;
}


/* =========================================================
   v23 — мягкие рекомендации по документам
   ========================================================= */

.advisory-section{
  margin-top:28px;
}

.advisory-section .issue{
  border-left-color:#00A0E3;
}

.result-ok{
  border-left-color:#2e9f54 !important;
  background:#fbfefc;
}


/* =========================================================
   Engine 2.2 — последовательная бесплатная проверка
   ========================================================= */

.audit-journey{
  margin:28px 0 8px;
  border:1px solid #dce2e6;
  background:#fff;
  padding:28px;
}

.journey-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}

.journey-head h2{
  margin:4px 0 9px;
  font-size:30px;
}

.journey-target{
  display:flex;
  align-items:center;
  gap:8px;
  color:#666;
  word-break:break-all;
}

.journey-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#35ad62;
  box-shadow:0 0 0 4px #e8f7ee;
}

.journey-counter{
  text-align:right;
}

.journey-counter b{
  display:block;
  font-size:27px;
  color:var(--ink);
}

.journey-counter span{
  display:block;
  color:#777;
  font-size:12px;
  margin-top:3px;
}

.journey-progress{
  height:5px;
  background:#edf0f2;
  margin:22px 0 10px;
  overflow:hidden;
}

.journey-progress span{
  display:block;
  width:0;
  height:100%;
  background:var(--blue);
  transition:width .45s ease;
}

.journey-status{
  font-size:13px;
  color:#777;
  margin-bottom:16px;
}

.journey-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.journey-item{
  display:grid;
  grid-template-columns:34px 1fr auto;
  align-items:center;
  gap:12px;
  border:1px solid #e2e6e9;
  padding:12px 13px;
  min-height:72px;
  transition:.25s background,.25s border-color,.25s opacity;
}

.journey-item i{
  width:30px;
  height:30px;
  border:3px solid #d7dde1;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-style:normal;
  font-size:10px;
  color:#8c969c;
}

.journey-item b{
  display:block;
  font-size:14px;
}

.journey-item span{
  display:block;
  color:#7d858a;
  font-size:11px;
  line-height:1.35;
  margin-top:3px;
}

.journey-item em{
  font-size:10px;
  font-style:normal;
  color:#8a9398;
  white-space:nowrap;
}

.journey-item.active{
  border-color:#93d8f4;
  background:#f5fbfe;
}

.journey-item.active i{
  border-color:var(--blue);
  border-right-color:#d7dde1;
  animation:spin .9s linear infinite;
}

.journey-item.active em{
  color:var(--blue);
  font-weight:700;
}

.journey-item.done{
  border-color:#c6e5d0;
  background:#f7fcf8;
}

.journey-item.done i{
  border-color:#35a65d;
  background:#35a65d;
  color:#fff;
}

.journey-item.done i:after{
  content:'✓';
  font-size:15px;
}

.journey-item.done em{
  color:#2d8c50;
  font-weight:700;
}

.journey-item.warn{
  border-color:#efd8a8;
  background:#fffaf1;
}

.journey-item.warn i{
  border-color:#d58b14;
  color:#d58b14;
}

.journey-item.warn em{
  color:#a86c0d;
  font-weight:700;
}

.journey-item.bad{
  border-color:#efc6c8;
  background:#fff6f6;
}

.journey-item.bad i{
  border-color:#e31e24;
  color:#e31e24;
}

.journey-item.bad em{
  color:#c12228;
  font-weight:700;
}

.journey-item.locked{
  opacity:.58;
  background:#fafafa;
}

.journey-item.locked i{
  border:1px solid #d8dde0;
}

.journey-item.locked em{
  background:#f0f2f3;
  border-radius:2px;
  padding:4px 6px;
}

.journey-done-actions{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid #e4e7e9;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.journey-done-actions>div:first-child b{
  display:block;
  font-size:18px;
}

.journey-done-actions>div:first-child span{
  display:block;
  color:#777;
  margin-top:4px;
  font-size:13px;
}

.journey-buttons{
  display:flex;
  gap:10px;
}

.journey-buttons .btn{
  width:auto;
  min-width:240px;
}

.free-result-issue .full-report-lock{
  margin-top:12px;
  padding:10px 12px;
  background:#f5f7f8;
  color:#6f777b;
  font-size:12px;
  border-left:2px solid #cfd7db;
}

.free-affected{
  font-size:12px;
  color:#777;
  margin-top:7px;
}

.paid-audit-offer{
  margin-top:30px;
  border:1px solid #cfdde4;
  border-top:4px solid var(--blue);
  padding:28px;
  background:#f7fbfd;
}

.paid-offer-grid{
  display:grid;
  grid-template-columns:1fr 230px;
  gap:30px;
  align-items:center;
}

.paid-audit-offer h2{
  font-size:30px;
  margin:5px 0 8px;
}

.paid-audit-offer p{
  color:#626b70;
  line-height:1.55;
  max-width:760px;
}

.paid-check-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:16px;
}

.paid-check-grid span{
  font-size:12px;
  background:#fff;
  border:1px solid #e0e8ec;
  padding:8px 10px;
}

.paid-price{
  text-align:center;
  border-left:1px solid #dbe4e8;
  padding-left:28px;
}

.paid-price strong{
  display:block;
  font-size:42px;
  color:var(--ink);
}

.paid-price small{
  display:block;
  color:#777;
  margin-bottom:15px;
}

.paid-price .btn{
  width:100%;
}

.service-prices{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:18px 0;
}

.service-prices div{
  border:1px solid #e0e3e5;
  padding:12px;
  background:#fff;
}

.service-prices b{
  display:block;
  font-size:18px;
  color:var(--ink);
}

.service-prices span{
  display:block;
  color:#777;
  font-size:11px;
  margin-top:4px;
  line-height:1.35;
}

.commercial-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.commercial-modal.hidden{
  display:none;
}

.commercial-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(16,24,29,.66);
}

.commercial-modal-card{
  position:relative;
  width:min(620px,100%);
  max-height:calc(100vh - 40px);
  overflow:auto;
  background:#fff;
  padding:34px;
  border-radius:2px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
}

.commercial-modal-card h2{
  font-size:30px;
  margin:5px 0 10px;
}

.commercial-modal-card>p{
  color:#666;
  line-height:1.55;
}

.commercial-modal-close{
  position:absolute;
  right:14px;
  top:10px;
  border:0;
  background:transparent;
  font-size:31px;
  color:#777;
  cursor:pointer;
}

.paid-report-form{
  display:grid;
  gap:12px;
  margin-top:20px;
}

.paid-report-form>input{
  height:52px;
  border:1px solid #cfd5d8;
  padding:0 14px;
  font:inherit;
}

.paid-report-form .consent{
  margin:0;
}

.paid-report-form .optional{
  color:#6e777c;
}

.paid-benefits{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:20px;
  padding-top:17px;
  border-top:1px solid #e0e4e7;
  font-size:12px;
}

.paid-benefits b{
  grid-column:1/-1;
}

.paid-benefits span:before{
  content:'✓ ';
  color:#35a65d;
  font-weight:700;
}

.modal-open{
  overflow:hidden;
}

@media(max-width:850px){
  .journey-list{grid-template-columns:1fr}
  .journey-head{flex-direction:column}
  .journey-counter{text-align:left}
  .journey-done-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .journey-buttons{
    width:100%;
    flex-direction:column;
  }
  .journey-buttons .btn{
    width:100%;
    min-width:0;
  }
  .paid-offer-grid{grid-template-columns:1fr}
  .paid-price{
    border-left:0;
    border-top:1px solid #dbe4e8;
    padding:18px 0 0;
  }
  .paid-check-grid{grid-template-columns:1fr 1fr}
  .service-prices{grid-template-columns:1fr}
}

@media(max-width:560px){
  .audit-journey{padding:18px 14px}
  .journey-item{grid-template-columns:32px 1fr}
  .journey-item em{grid-column:2}
  .paid-audit-offer{padding:20px 15px}
  .paid-audit-offer h2{font-size:25px}
  .paid-check-grid{grid-template-columns:1fr}
  .commercial-modal{padding:10px}
  .commercial-modal-card{padding:28px 18px}
  .paid-benefits{grid-template-columns:1fr}
}


/* =========================================================
   Engine 2.3 — потенциальная административная ответственность
   ========================================================= */

.liability-card{
  margin:18px 0 28px;
  border:1px solid #efc6c8;
  border-left:5px solid #e31e24;
  background:#fff7f7;
  padding:22px 24px;
}

.liability-card>div:first-child{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}

.liability-card span{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.55px;
  color:#a3292e;
}

.liability-card strong{
  display:block;
  font-size:34px;
  line-height:1;
  color:#c12228;
  white-space:nowrap;
}

.liability-meta{
  margin-top:8px;
  font-size:12px;
  font-weight:700;
  color:#555;
}

.liability-card p{
  margin:10px 0 0;
  color:#777;
  font-size:11px;
  line-height:1.5;
  max-width:1050px;
}

.penalty-pill{
  margin:14px 0 4px;
  padding:10px 12px;
  border:1px solid #e6b7ba;
  background:#fff4f4;
  display:inline-flex;
  flex-direction:column;
  gap:3px;
}

.penalty-pill b{
  font-size:13px;
  color:#c12228;
}

.penalty-pill span{
  font-size:10px;
  color:#8b5558;
}

.penalty-pill.conditional{
  border-style:dashed;
  background:#fff8f2;
  border-color:#e6c59c;
}

.penalty-pill.conditional b{
  color:#a9660a;
}

.penalty-pill.conditional span{
  color:#8a7455;
}

@media(max-width:700px){
  .liability-card{padding:18px 16px}
  .liability-card>div:first-child{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .liability-card strong{font-size:28px}
  .penalty-pill{display:flex}
}


/* =========================================================
   Engine 2.4 — agreement, legal practice and reference feeds
   ========================================================= */

.scan-terms{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:2px;
  font-size:12px;
  color:#71797d;
  line-height:1.35;
}

.scan-terms input{
  width:16px;
  height:16px;
  margin:1px 0 0;
  flex:none;
  accent-color:var(--blue);
}

.scan-terms a{
  color:var(--blue);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}

.live-reference{
  padding:48px 0 10px;
}

.live-reference h2{
  font-size:32px;
  margin:0 0 9px;
}

.reference-intro{
  max-width:920px;
  margin:0 0 24px;
  color:#72797d;
  line-height:1.55;
}

.reference-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  gap:14px;
}

.reference-panel{
  border:1px solid #dde3e6;
  background:#fff;
  padding:22px;
}

.reference-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-bottom:14px;
  border-bottom:1px solid #e8ecee;
}

.reference-panel-head b{
  display:block;
  color:var(--ink);
  font-size:18px;
}

.reference-panel-head span{
  display:block;
  margin-top:3px;
  color:#81888c;
  font-size:12px;
  line-height:1.35;
}

.reference-panel-head strong{
  font-size:31px;
  line-height:1;
  color:var(--blue);
}

.case-list{
  display:grid;
  gap:0;
}

.case-card{
  display:grid;
  grid-template-columns:112px minmax(0,1fr) auto;
  gap:15px;
  align-items:start;
  padding:15px 0;
  border-bottom:1px solid #edf0f2;
}

.case-card:last-child{
  border-bottom:0;
  padding-bottom:0;
}

.case-amount{
  font-weight:700;
  color:#c12228;
  font-size:17px;
  white-space:nowrap;
}

.case-copy b{
  display:block;
  color:var(--ink);
  font-size:14px;
}

.case-copy span{
  display:block;
  margin-top:2px;
  color:#858d91;
  font-size:11px;
}

.case-copy p{
  margin:6px 0 0;
  color:#626b70;
  font-size:12px;
  line-height:1.45;
}

.case-card>a{
  font-size:11px;
  color:var(--blue);
  font-weight:700;
  text-decoration:none;
}

.reference-loading,
.reference-empty{
  padding:18px 0;
  color:#899196;
  font-size:13px;
}

.registry-panel{
  background:#f8fbfc;
}

.registry-stat{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid #e3eaed;
}

.registry-stat span{
  font-size:13px;
  color:#596267;
}

.registry-stat b{
  text-align:right;
  color:var(--ink);
  font-size:12px;
}

.registry-note{
  margin:15px 0 0;
  color:#7b8387;
  font-size:11px;
  line-height:1.5;
}

.legal-page{
  max-width:900px;
  padding-top:56px;
}

.legal-page h1{
  font-size:38px;
}

.legal-page h2{
  margin-top:28px;
  font-size:22px;
}

.legal-page p{
  line-height:1.65;
  color:#5e666b;
}

.legal-updated{
  margin-top:35px;
  padding-top:15px;
  border-top:1px solid #e2e5e7;
  color:#8a9296!important;
  font-size:13px;
}

@media(max-width:850px){
  .reference-grid{grid-template-columns:1fr}
  .reference-panel{padding:18px}
  .case-card{grid-template-columns:105px minmax(0,1fr)}
  .case-card>a{grid-column:2}
  .live-reference{padding-top:38px}
}

@media(max-width:560px){
  .live-reference h2{font-size:26px}
  .case-card{
    grid-template-columns:1fr;
    gap:4px;
  }
  .case-card>a{grid-column:auto}
  .case-amount{font-size:18px}
  .registry-stat{
    flex-direction:column;
    gap:4px;
  }
  .registry-stat b{text-align:left}
  .legal-page h1{font-size:31px}
}


/* =========================================================
   Engine 2.4.1 — commercial funnel polish
   ========================================================= */

.result-grid{
  grid-template-columns:100px 1fr;
}

.score.module-score{
  background:conic-gradient(var(--blue) 35.294%,#e7e7e7 0);
}

.score.module-score b{
  display:flex;
  align-items:baseline;
  gap:2px;
  line-height:1;
}

.score.module-score b span{
  font-size:30px;
}

.score.module-score b small{
  font-size:13px;
  color:#777;
  font-weight:700;
}

.free-result-lead{
  font-size:14px;
  color:#666;
  margin-top:8px;
}

.free-result-lead strong{
  color:var(--ink);
}

@media(max-width:640px){
  .result-grid{
    grid-template-columns:82px 1fr;
  }

  .score.module-score b span{
    font-size:24px;
  }

  .score.module-score b small{
    font-size:11px;
  }
}