/* Page-specific styles extracted from Django screen templates. */

/* templates/companies/home.html */
.hero { background: var(--surface); border-bottom: 1px solid var(--border); padding: 64px 24px 72px; text-align: center; }
.hero-inner { max-width: 680px; margin: 0 auto; }
.hero h1 { font-size: 40px; margin-bottom: 14px; }
.hero-sub { font-size: 17px; color: var(--text-muted); margin-bottom: 36px; line-height: 1.5; }
.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 52px; }
.step-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; }
.step-num { font-family: 'Spectral', serif; font-size: 38px; color: var(--border); line-height: 1; margin-bottom: 14px; }
.step-title { font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.step-desc { font-size: 14px; color: var(--text-muted); line-height: 1.55; }
.offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.offer-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px; }
.offer-card-title { font-size: 17px; font-weight: 600; display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.offer-card-sub { font-size: 13px; color: var(--text-hint); margin-bottom: 20px; }
.offer-footer { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.price-big { font-size: 22px; font-weight: 600; letter-spacing: -.3px; }
.manage-card { margin-bottom: 52px; }
.manage-card__inner { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.manage-card__text { max-width:680px; }
.manage-card__text h2 { margin:0 0 8px; font-size:20px; }
.manage-card__text p { margin:0; color:var(--text-muted); font-size:14px; line-height:1.6; }
.audience-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.audience-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px; }
.audience-icon { font-size: 22px; margin-bottom: 12px; }
.audience-title { font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.audience-desc { font-size: 13px; color: var(--text-muted); line-height: 1.5; }
.home-seo, .home-faq { margin-top: 52px; max-width: 760px; }
.home-seo__title, .home-faq__title {
  font-family: "Spectral", Georgia, serif;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.25;
  margin: 0 0 18px;
}
.home-seo__text { display: grid; gap: 14px; }
.home-seo__text p {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-muted);
}
.home-faq__list { display: grid; gap: 10px; }
.home-faq__item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 0;
}
.home-faq__item summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
}
.home-faq__item summary::-webkit-details-marker { display: none; }
.home-faq__item summary::after {
  content: "+";
  float: right;
  color: var(--text-hint);
  font-weight: 400;
}
.home-faq__item[open] summary::after { content: "−"; }
.home-faq__answer {
  padding: 0 20px 18px;
  border-top: 1px solid var(--border);
}
.home-faq__answer p {
  margin: 14px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-muted);
}
@media (max-width:720px) {
  .hero h1 { font-size: 28px; }
  .steps-grid, .offer-grid, .audience-grid { grid-template-columns: 1fr; }
  .home-seo__title, .home-faq__title { font-size: 24px; }
}

/* templates/companies/buy.html */
.buy-layout { max-width: 560px; margin: 48px auto 80px; padding: 0 24px; }
.buy-layout .buy-card { padding: 32px; }
.buy-title { font-size: 28px; font-weight: 600; letter-spacing: -.3px; margin: 16px 0 10px; }
.buy-lead { font-size: 15px; color: var(--text-muted); line-height: 1.55; margin-bottom: 28px; }
.buy-features { list-style: none; display: grid; gap: 8px; margin: 0 0 24px; font-size: 14px; color: var(--text-muted); }
.buy-features li::before { content: "✓ "; color: var(--accent); font-weight: 600; }
.buy-layout .buy-price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--border);
  border-bottom: none;
}
.buy-layout .buy-price { font-size: 28px; font-weight: 600; letter-spacing: -.4px; }
.buy-b2b {
  margin-top: 16px;
  padding: 20px 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.buy-b2b-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 8px;
  color: var(--text);
}
.buy-b2b p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--text-muted);
}
.buy-b2b a { font-weight: 500; }

/* templates/companies/about.html */
.about-layout { max-width: 800px; margin: 0 auto; padding: 48px 24px 80px; }
.about-hero { margin-bottom: 48px; }
.about-hero h1 { font-size: 32px; margin-bottom: 14px; }
.about-hero p { font-size: 17px; color: var(--text-muted); line-height: 1.65; max-width: 680px; }
.about-section { margin-bottom: 40px; }
.about-section h2 { font-size: 18px; font-weight: 600; margin-bottom: 12px; }
.about-section p, .about-section li { font-size: 15px; color: var(--text-muted); line-height: 1.7; }
.about-section ul { padding-left: 20px; }
.about-section ul li { margin-bottom: 6px; }
.about-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 40px; }
.about-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; }
.about-card-icon { font-size: 22px; margin-bottom: 12px; }
.about-card-title { font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.about-card-text { font-size: 14px; color: var(--text-muted); line-height: 1.55; }
.faq-list { display: grid; gap: 12px; }
.faq-item { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 20px; }
.faq-question { font-size: 15px; font-weight: 500; margin-bottom: 8px; color: var(--text); }
.faq-answer { font-size: 14px; color: var(--text-muted); line-height: 1.65; }
.disclaimer-box { background: var(--surface-2); border: 1px solid var(--border); border-left: 3px solid var(--border-strong); border-radius: var(--radius); padding: 18px 20px; }
.disclaimer-box p { font-size: 14px; color: var(--text-muted); line-height: 1.65; }
@media (max-width:600px) { .about-cards { grid-template-columns: 1fr; } }

/* templates/companies/contragent.html */
.co-name-row{display:flex;align-items:center;gap:7px;width:100%}.co-name-row .co-name{margin:0}.company-manage-link{flex:0 0 auto;margin-left:auto;font-size:14px;font-weight:500;white-space:nowrap}.company-managed-check{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:21px;height:21px;cursor:default;filter:drop-shadow(0 1px 2px rgba(20,128,74,.14))}.company-managed-check svg{display:block;width:21px;height:21px}.company-managed-check::after{content:attr(data-tooltip);position:absolute;z-index:30;top:calc(100% + 8px);left:50%;width:max-content;max-width:min(300px,80vw);padding:7px 10px;border:1px solid var(--border);border-radius:7px;background:#fff;box-shadow:0 5px 18px rgba(15,30,25,.14);color:var(--text);font-size:12px;font-weight:400;line-height:1.35;white-space:normal;opacity:0;pointer-events:none;transform:translate(-50%,-3px);transition:opacity .12s ease,transform .12s ease}.company-managed-check:hover::after,.company-managed-check:focus-visible::after{opacity:1;transform:translate(-50%,0)}.company-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px}.company-gallery figure{flex:0 1 calc((100% - 24px)/3);margin:0}.company-gallery__item{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:zoom-in}.company-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}.company-gallery figcaption{font-size:13px;color:var(--text-muted);margin-top:6px}.company-lightbox{position:fixed;inset:0;margin:auto;width:min(1100px,calc(100vw - 32px));height:min(820px,calc(100vh - 32px));max-width:none;max-height:none;padding:0;border:0;border-radius:12px;background:#111;color:#fff;overflow:hidden}.company-lightbox::backdrop{background:rgba(0,0,0,.82)}.company-lightbox__layout{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;width:100%;height:100%}.company-lightbox__figure{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;height:100%;margin:0;padding:52px 0 36px}.company-lightbox__image{display:block;max-width:100%;max-height:calc(100% - 48px);margin:auto;object-fit:contain}.company-lightbox__caption{min-height:22px;margin-top:12px;text-align:center;color:#fff}.company-lightbox__button{width:44px;height:44px;margin:auto;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer}.company-lightbox__button:hover{background:rgba(255,255,255,.25)}.company-lightbox__close{position:absolute;z-index:2;top:10px;right:10px}.company-lightbox__counter{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);font-size:13px;color:rgba(255,255,255,.75)}@media(max-width:700px){.co-name-row{align-items:flex-start;flex-wrap:wrap}.company-manage-link{width:100%;margin:4px 0 0}.company-gallery figure{flex-basis:calc((100% - 12px)/2)}.company-lightbox{width:100vw;height:100vh;border-radius:0}.company-lightbox__layout{grid-template-columns:48px minmax(0,1fr) 48px}.company-lightbox__button{width:38px;height:38px}.company-lightbox__figure{padding-inline:0}}

/* templates/payments/checkout.html */
.checkout-layout {
  max-width: 880px; margin: 0 auto; padding: 40px 24px 80px;
  display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start;
}
.checkout-title { font-size: 24px; font-weight: 600; letter-spacing: -.3px; margin-bottom: 6px; }
.checkout-sub { font-size: 14px; color: var(--text-muted); margin-bottom: 28px; }
.form-group { margin-bottom: 20px; }
.form-label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 7px; }
.form-label .req { color: var(--red); margin-left: 2px; }
.form-input {
  width: 100%; font: inherit; font-size: 15px; color: var(--text); background: var(--surface);
  border: 1.5px solid var(--border-strong); border-radius: 10px; padding: 12px 16px; outline: none;
}
.form-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(26,74,138,.1); }
.form-hint { font-size: 12px; color: var(--text-hint); margin-top: 6px; }
.checkout-layout .checkbox-wrap { display: flex; align-items: center; gap: 10px; cursor: pointer; margin-bottom: 10px; }
.promo-row { display: flex; gap: 8px; }
.promo-row .form-input { flex: 1; }
.promo-ok { font-size: 13px; color: var(--green, #1B6B45); margin-top: 6px; }
.promo-err { font-size: 13px; color: var(--red, #8B2020); margin-top: 6px; }
.price-old { color: var(--text-hint); text-decoration: line-through; font-size: 16px; font-weight: 500; margin-right: 8px; }
.checkout-layout .checkbox-wrap input[type=checkbox] { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: var(--accent); }
.checkbox-label { font-size: 13px; color: var(--text-muted); line-height: 1.5; }
.pay-total { display: flex; align-items: center; justify-content: space-between; margin: 16px 0; padding: 14px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.pay-total-label { font-size: 14px; color: var(--text-muted); }
.pay-total-price { font-size: 24px; font-weight: 600; letter-spacing: -.4px; }
.order-summary { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; position: sticky; top: 80px; }
.order-summary-head { padding: 18px 22px; border-bottom: 1px solid var(--border); }
.order-summary-title { font-size: 14px; font-weight: 500; margin-bottom: 3px; }
.order-company { font-size: 15px; font-weight: 600; margin-bottom: 2px; }
.order-inn { font-size: 12px; color: var(--text-hint); }
.order-summary-body { padding: 18px 22px; }
.order-summary-body ul { list-style: none; display: grid; gap: 8px; font-size: 13px; color: var(--text-muted); }
.order-summary-body li::before { content: "✓ "; color: var(--accent); font-weight: 600; }
@media (max-width: 700px) { .checkout-layout { grid-template-columns: 1fr; } .order-summary { position: static; } }

/* templates/payments/billing_success.html */
.success-layout { max-width: 600px; margin: 60px auto; padding: 0 24px 80px; text-align: center; }
.success-icon { width: 64px; height: 64px; background: var(--green-bg); border: 1px solid var(--green-border); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; font-size: 26px; }
.success-title { font-size: 24px; font-weight: 600; margin-bottom: 10px; }
.success-sub { font-size: 15px; color: var(--text-muted); margin-bottom: 32px; line-height: 1.6; }
.success-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px 28px; text-align: left; margin-bottom: 24px; }
.success-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* templates/payments/billing_fail.html */
.fail-layout { max-width: 620px; margin: 60px auto; padding: 0 24px 80px; text-align: center; }
.fail-icon { width: 64px; height: 64px; background: var(--red-bg); border: 1px solid var(--red-border); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; font-size: 26px; color: var(--red); }
.fail-title { font-size: 24px; font-weight: 600; margin-bottom: 10px; }
.fail-sub { font-size: 15px; color: var(--text-muted); margin-bottom: 28px; line-height: 1.6; }
.fail-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* templates/accounts/login.html */
.login-layout { max-width: 460px; margin: 56px auto; padding: 0 24px 80px; }
.login-card { padding: 32px; text-align: center; }
.login-form { text-align: left; margin-top: 24px; }

/* templates/accounts/cabinet.html */
.account-layout { max-width: 800px; margin: 0 auto; padding: 40px 24px 80px; }
.account-title { font-size: 24px; font-weight: 600; letter-spacing: -.3px; margin-bottom: 4px; }
.account-email { font-size: 14px; color: var(--text-muted); margin-bottom: 28px; }
.report-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
}
.report-card + .report-card { margin-top: 10px; }
.report-card-company { font-size: 15px; font-weight: 500; color: var(--text); margin-bottom: 4px; }
.report-card-inn { font-size: 13px; color: var(--text-hint); }
.report-card-date { font-size: 12px; color: var(--text-hint); margin-top: 8px; }
.report-card-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; flex-wrap: wrap; }
.report-card.is-pending { opacity: .7; }
.purchased-report-card { align-items: start; }
.purchased-report-card__actions { justify-content: flex-end; }
.purchased-report-json {
  grid-column: 1 / -1;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.purchased-report-json__title {
  margin-bottom: 5px;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
}
.purchased-report-json__hint {
  width: 100%;
  margin: 0;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.55;
}
.purchased-report-json__link {
  display: inline-flex;
  margin-top: 10px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
}
.purchased-report-json__link:hover { text-decoration: underline; }
@media (max-width: 700px) {
  .report-card { grid-template-columns: 1fr; }
  .report-card-actions { justify-content: flex-start; }
  .purchased-report-json { padding-top: 14px; }
}

/* templates/accounts/company_edit.html */
.company-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.company-edit-grid .full{grid-column:1/-1}.owner-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.owner-photo{border:1px solid var(--border);border-radius:var(--radius);padding:10px}.owner-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;margin-bottom:8px}.owner-photo input[type=text],.owner-photo input[type=number]{width:100%}.company-edit-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}@media(max-width:700px){.company-edit-grid{grid-template-columns:1fr}.owner-gallery{grid-template-columns:1fr 1fr}}

/* Shared template utilities. */
.inline-form { display: inline; }
.messages-container { padding-top: 16px; }
.full-width { width: 100%; }
.home-badge { display: inline-block; margin-bottom: 24px; }
.home-content { padding-top: 52px; padding-bottom: 80px; }
.buy-account-note { margin: -8px 0 16px; }
.verify-failed-lead { margin: 12px auto; }
.login-consent { margin-bottom: 14px; }
.mt-6 { margin-top: 6px; }
.mt-16 { margin-top: 16px; }
.mb-0 { margin-bottom: 0; }
.mb-4 { margin-bottom: 4px; }
.mb-8 { margin-bottom: 8px; }
.mb-12 { margin-bottom: 12px; }
.mb-16 { margin-bottom: 16px; }
.mb-24 { margin-bottom: 24px; }
.flex-wrap-gap-12 { flex-wrap: wrap; gap: 12px; }
.inline-flex-center-wrap { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.flex-between-wrap { gap: 20px; flex-wrap: wrap; }
.stack-center { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.grid-span-all { grid-column: 1 / -1; }
.text-regular { font-weight: 400; }
.search-error.is-visible { display: block; }
.workers-bar { height: var(--workers-bar-height, 8%); }
.current-logo { max-width: 220px; max-height: 120px; }
.company-legal-name-note {
  display: grid;
  gap: 4px;
  margin: -4px 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
}
.company-legal-name-note strong { font-size: 14px; font-weight: 500; }
.account-logout-button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--text-hint);
  font-size: 13px;
  cursor: pointer;
}
.account-info-icon { font-size: 13px; }
.account-empty-card { padding: 28px; text-align: center; }
.payment-detail-card { padding: 22px 24px; text-align: left; margin-bottom: 24px; }
.smartcaptcha-frame { height: 100px; }

@media (max-width: 800px) {
  .breadcrumbs-bar { display: none; }
  .company-header .co-top--with-logo {
    flex-direction: column;
    gap: 18px;
  }
  .company-header .co-top--with-logo .co-logo {
    width: 100%;
    max-width: none;
    max-height: 120px;
  }
  .company-header .co-top--with-logo .co-logo img {
    width: 100%;
    max-height: 120px;
  }
}
