/* Inter: self-hosted variable font (woff2, latin + cyrillic subsets,
   Google Fonts v20) under /assets/fonts — the already-permitted static
   prefix (see WebSecurityConfig.PERMIT_ALL_PATHS). The token
   --vp-font-family-sans (tokens.css) already names Inter first; it just
   was never loaded outside the landing. Shared (was landing-only in
   index_overrides.css before the unified-header fix, kanban t_8e6362ec):
   every public page loads common.css, so the site header renders in the
   same Inter face everywhere instead of falling back to "Helvetica Neue". */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/assets/fonts/inter-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/assets/fonts/inter-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --bg:var(--vp-color-bg-page, #f2f2f2);
  --text:var(--vp-color-text-primary, #141414);
  --footer-bg:#141414;
  --footer-soft:rgba(255,255,255,.82);
  --brand-red:var(--vp-color-brand-red, #cd2d3a);
  --button-blue:var(--vp-color-action-primary, #003677);
  --button-blue-hover:#002f66;
  --container-max:var(--vp-layout-container-max, 1660px);
  --container-pad:var(--vp-layout-container-pad, 130px);
  --content-max:var(--vp-layout-content-max, 1164px);
  --font-brand:var(--vp-font-family-brand, "Helvetica Neue", Helvetica, Arial, sans-serif);
}

*,
*::before,
*::after{box-sizing:border-box}

html{font-size:16px}

body{
  margin:0;
  min-width:320px;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-brand);
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}

body.body--menu-open{overflow:hidden}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.page{overflow-x:clip}
.shell{width:min(100%,var(--container-max));margin:0 auto}
.shell--narrow{width:min(100%,var(--content-max))}

/* Auth pages (login / registration_role / password_recovery): reserve the
   mounted AuthShell viewport height on the Thymeleaf React mount root so the
   unified site footer starts below the fold at first paint and does not flash
   while the React bundle loads (t_5e359411). Mirrors .auth-page /
   .auth-main in src/main/frontend/src/auth/auth.css; common.css is linked before
   the footer markup on those pages. */
.auth-react-root{
  min-height:calc(100vh - 64px);
}

@media (max-width:1720px){
  .shell{width:auto;margin-inline:var(--container-pad)}
}

/* Модальное окно "Написать разработчику" */
.overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.5);
  justify-content:center;
  align-items:center;
  z-index:100;
}

.modal{
  width:300px;
  padding:20px;
  border-radius:var(--vp-radius-md, 8px);
  background:var(--vp-color-bg-surface, #fff);
  box-shadow:0 0 10px rgba(0,0,0,.3);
  text-align:center;
}

.modal h2{margin-top:0}

.modal button{
  padding:10px 20px;
  border:0;
  border-radius:var(--vp-radius-sm, 4px);
  background:#0014a8;
  color:var(--vp-color-text-inverse, #fff);
  cursor:pointer;
}

.modal button:hover{background:#001280}
.primary-form__input,.primary-form__textarea{display:block;width:100%;min-height:44px;padding:10px 20px;font-size:14px;font-weight:500;color:var(--vp-color-text, #1a1a1a);background-color:rgba(0,20,168,.08);border:1px solid var(--vp-color-link-primary, #0014a8);border-radius:32px;box-sizing:border-box}
.primary-form__textarea{min-height:120px;border-radius:16px;padding:14px;text-align:left;line-height:1.4;resize:none}
.primary-form__input::placeholder,.primary-form__textarea::placeholder{color:var(--vp-color-text, #1a1a1a);opacity:1}
.primary-form__btn{display:inline-block;min-width:208px;min-height:44px;padding:10px 24px;font-weight:500;font-size:15px;text-align:center;border-radius:32px;background-color:var(--vp-color-link-primary, #0014a8);color:var(--vp-color-text-inverse, #fff);cursor:pointer;box-sizing:border-box;border:0}
.primary-form__btn--w100{width:100%}

/* UI-аудит 2026-07-20 (A-9): legal/служебные страницы — заголовки в едином
   чёрном стиле новых страниц вместо старого тёмно-синего. */
.legal-page .primary-title {
    color: var(--vp-color-text, #1a1a1a);
}

/* Дима 2026-08-12: /provider_request — контент уменьшен на 1.5%
   и поднят к хедеру на 25px (включая заголовок). */
.provider-request-page {
    zoom: 0.985;
    margin-top: -40px;
}

/* UI-аудит 2026-07-20 (A-10): /policy и юридические страницы —
   читабельный кегль юридического документа (было ~12px) и комфортная
   интерлиньяж; раскладка не меняется. Селектор осознанно общий: страницы
   используют .policy__right-panel. */
.policy__right-panel p,
.policy__right-panel li {
    font-size: 16px;
    line-height: 1.6;
}

/* Remove the blue tap/click highlight site-wide (kanban t_cf0577a1).
   Universal selector: covers every tappable/clickable element regardless of HTML tag —
   native controls, <summary> disclosure toggles, and custom click targets
   (e.g. <div class="tab" onclick=...> in admin templates).
   Keyboard focus (:focus-visible) is intentionally preserved for accessibility. */
* {
    -webkit-tap-highlight-color: transparent;
}

:focus:not(:focus-visible) {
    outline: none;
}
