/**
 * Публичные страницы (psmy-75): шапка, карточка по центру, футер.
 */
#layout-wrapper.pub{
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--c-canvas);
}
.pub-head{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    height: 64px;
    padding: 0 40px;
    flex-shrink: 0;
    /* шапка публичных страниц в цвете боковой панели кабинета */
    background: var(--c-side-bg);
    color: var(--c-side-text);
}
.pub-logo, .pub-logo:hover{ color: #FFFFFF; }
.pub-logo img{ width: 32px; height: 32px; }
.pub-nav{ display: flex; align-items: center; gap: 24px; }
.pub-nav__list{ display: flex; flex-direction: row; align-items: center; gap: 24px; margin: 0; padding: 0; list-style: none; }
.pub-nav__list .cab-nav__item{ margin: 0; padding: 0; }
.pub-nav__list .cab-nav__link{
    min-height: 32px;
    padding: 0;
    border-radius: 0;
    color: var(--c-side-text);
    font-size: var(--c-fs);
    font-weight: 500;
}
.pub-nav__list .cab-nav__link:hover{ background: transparent; color: #FFFFFF; }
.pub-nav__list .cab-nav__item.is-active > .cab-nav__link{ background: transparent; color: #FFFFFF; font-weight: 600; }
/* кнопка справа на тёмной шапке: главная — белая, второстепенная — контурная светлая */
body.cabinet .button.pub-cta{ height: var(--c-ctl-s); min-height: var(--c-ctl-s); padding: 0 12px; font-size: var(--c-fs-s); border-color: var(--c-side-line); background: transparent; color: #FFFFFF; }
body.cabinet .button.pub-cta:hover{ background: rgba(255, 255, 255, 0.08); border-color: var(--c-side-muted); color: #FFFFFF; }
body.cabinet .button.pub-cta.primary{ background: #FFFFFF; border-color: #FFFFFF; color: var(--c-ink); }
body.cabinet .button.pub-cta.primary:hover{ background: var(--c-canvas); border-color: var(--c-canvas); color: var(--c-ink); }
body.cabinet .pub-burger{ display: none; }

.pub-main{
    flex: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 48px 16px 64px;
    box-sizing: border-box;
}
.pub-card{
    width: 100%;
    max-width: 440px;
    background: var(--c-surface);
    border: 1px solid var(--c-line);
    border-radius: var(--c-r-l);
    box-shadow: var(--c-shadow);
}
.pub-card--wide{ max-width: 880px; }
.pub-card__head{ padding: 28px 32px 0; display: flex; flex-direction: column; gap: 6px; }
.pub-card .pub-card__h1,
.pub-card .pub-card__h1.page-title{
    margin: 0;
    padding: 0;
    font-family: var(--c-font);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--c-text);
}
.pub-card--wide .pub-card__h1{ font-size: 28px; }
.pub-card__desc{ font-size: var(--c-fs); color: var(--c-text-3); }
body.cabinet .pub-card__body.content-wrapper{ padding: 20px 32px 32px; }
.pub-card .fieldblock > input:not([type=checkbox]):not([type=radio]), .pub-card .fieldblock > select{ width: 100%; }
/* в узкой карточке кнопки формы — во всю ширину и 44px; в широкой (статические страницы) — обычные */
body.cabinet .pub-card:not(.pub-card--wide) .pub-card__body button:not(.toggle-password):not(.a),
body.cabinet .pub-card:not(.pub-card--wide) .pub-card__body .button{ width: 100%; height: var(--c-ctl-l); min-height: var(--c-ctl-l); font-size: 14px; }
.pub-card .fieldblock-buttons{ display: block; }
/* поля публичных форм 44px: селектор специфичнее правила компонентов (оно перечисляет пять :not) */
body.cabinet .pub-card:not(.pub-card--wide) .pub-card__body input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not(.cab-ctl),
body.cabinet .pub-card:not(.pub-card--wide) .pub-card__body select{ height: var(--c-ctl-l); min-height: var(--c-ctl-l); line-height: 42px; font-size: 14px; }
/* тень фокуса не обрезается: у .column движка overflow: auto */
body.cabinet .pub-card .column, body.cabinet .pub-card form, body.cabinet .pub-card .wrapper, body.cabinet .pub-card .step{ overflow: visible; }
.pub-card .text-secondary{ color: var(--c-text-2); }
.pub-card--wide h2{ font-size: 15px; margin: 24px 0 8px; }
.pub-card--wide h2:first-child{ margin-top: 0; }
.pub-card--wide p, .pub-card--wide li{ font-size: 13.5px; line-height: 1.6; color: var(--c-ink-3); }

.pub-foot{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 40px;
    border-top: 1px solid var(--c-line);
    font-size: var(--c-fs-xs);
    color: var(--c-text-3);
}
.pub-foot__nav{ display: flex; flex-direction: row; align-items: center; gap: 20px; margin: 0; padding: 0; list-style: none; }
.pub-foot__nav .cab-nav__item{ margin: 0; padding: 0; }
.pub-foot__nav .cab-nav__link{ min-height: 0; padding: 0; color: var(--c-text-3); font-size: var(--c-fs-xs); font-weight: 500; border-radius: 0; }
.pub-foot__nav .cab-nav__link:hover{ background: transparent; color: var(--c-text); }
.pub-foot__nav .cab-nav__item.is-active > .cab-nav__link{ background: transparent; color: var(--c-text); }

@media (max-width: 767px){
    .pub-head{ height: var(--c-mhead-h); padding: 0 16px; }
    .pub-nav{ display: none; }
    body.cabinet .pub-burger{
        display: inline-flex; align-items: center; justify-content: center;
        width: 40px; height: 40px !important; min-height: 0 !important; padding: 0 !important;
        border: none !important; background: transparent !important; color: var(--c-side-text); box-shadow: none;
    }
    .pub-sheet .cab-nav__link{ min-height: 44px; color: var(--c-text); font-size: 14px; }
    .pub-main{ padding: 16px 12px 40px; }
    .pub-card__head{ padding: 20px 16px 0; }
    body.cabinet .pub-card__body.content-wrapper{ padding: 16px 16px 24px; }
    .pub-foot{ flex-direction: column; align-items: flex-start; padding: 16px; }
}

/* форма входа (common/modules/core/login): колонка растягивается, кнопки во всю ширину карточки */
body.cabinet #signing-block .wrapper .step.step-1 .top-side,
body.cabinet #signing-block .wrapper.variant-pass .variant.variant-pass,
body.cabinet #signing-block .wrapper.variant-web-authn .variant.variant-web-authn{ align-items: stretch; }
body.cabinet #signing-block .wrapper .step .button.primary{ max-height: none; }

/* формы входа, регистрации и восстановления (модули core/login, core/registration, core/resetPassword):
   их собственный CSS рассчитан на старый layout — центрирует #main, задаёт ширины 410/330px, не позиционирует иконку пароля */
body.cabinet #main.pub-main{ align-self: stretch; justify-self: auto; width: auto; }
body.cabinet .pub-card .content-card, body.cabinet .pub-card .main-wrapper{ width: auto; max-width: none; margin: 0; }
body.cabinet .pub-card form{ width: 100%; }
body.cabinet .pub-card .fieldblock{ position: relative; width: 100%; max-width: none; }
body.cabinet .pub-card:not(.pub-card--wide) .fieldblock .toggle-password{ width: var(--c-ctl-l); height: var(--c-ctl-l); }
body.cabinet .pub-card:not(.pub-card--wide) .fieldblock .toggle-password ~ input{ padding-right: var(--c-ctl-l); }
body.cabinet .pub-card .fieldblock.fieldblock-checkbox{
    flex-direction: row; align-items: flex-start; justify-content: flex-start; gap: 10px; width: 100%; margin: 4px 0 14px;
}
body.cabinet .pub-card .fieldblock.fieldblock-checkbox input{ order: 1; margin: 2px 0 0; flex-shrink: 0; }
body.cabinet .pub-card .fieldblock.fieldblock-checkbox label{ order: 2; margin: 0; line-height: 1.45; font-weight: 400; color: var(--c-text); text-align: left; }
body.cabinet .pub-card .fieldblock.fieldblock-checkbox label::after{ display: none; }
body.cabinet .pub-card #signing-block .user_name{ font-size: var(--c-fs); font-weight: 400; color: var(--c-text-2); text-align: left; padding: 0 0 14px; }
body.cabinet .pub-card #signing-block .user_name span{ font-family: var(--c-mono); color: var(--c-text); }
body.cabinet .pub-card #signing-block .row.justify{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
body.cabinet .pub-card #signing-block .row .fieldblock.fieldblock-horizontal{ width: auto; margin: 0; }
body.cabinet .pub-card #signing-block .row .fieldblock-checkbox{ gap: 8px; align-items: center; margin: 0; }
body.cabinet .pub-card #signing-block .row .fieldblock-checkbox label{ white-space: nowrap; line-height: 1.3; margin: 0; }
body.cabinet .pub-card #signing-block .row .fieldblock-checkbox input{ margin: 0; }
body.cabinet .pub-card #signing-block .row.justify .a{ white-space: nowrap; font-size: var(--c-fs); }
body.cabinet .pub-card #signing-block .variant.variant-web-authn .label{ font-size: var(--c-fs); color: var(--c-text-2); text-align: center; }
body.cabinet .pub-card #signing-block .variant.variant-web-authn .buttons{ display: flex; gap: 8px; }
body.cabinet .pub-card #signing-block .variant.variant-web-authn .buttons > *{ flex: 1; }
body.cabinet .pub-card .form-footer, body.cabinet .pub-card .page-title-description + .form-footer{ margin-top: 12px; font-size: var(--c-fs); color: var(--c-text-2); }
/* вход через соцсети: разделитель и ряд одинаковых кнопок (шаблон my/widgets/SocialAuthWidget) */
body.cabinet .pub-card .social-auth-widget{ display: flex; flex-direction: column; gap: 16px; margin-top: 20px; }
.pub-divider{ position: relative; height: 1px; background: var(--c-line); margin: 4px 0; }
.pub-divider__text{ position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 0 10px; background: var(--c-surface); font-size: var(--c-fs-s); color: var(--c-text-3); white-space: nowrap; }
.pub-social{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pub-social:has(> :only-child){ grid-template-columns: minmax(0, 1fr); }
body.cabinet .pub-card .button.pub-social__btn{ width: 100%; height: var(--c-ctl-l); min-height: var(--c-ctl-l); justify-content: center; gap: 10px; padding: 0 12px; font-weight: 600; }
body.cabinet .pub-card .button.pub-social__btn svg{ width: 20px; height: 20px; flex-shrink: 0; }
body.cabinet .pub-card .button.pub-social__btn span{ display: inline; }
body.cabinet .pub-card:not(.pub-card--wide) .pub-card__body button.secondary{ background: var(--c-surface); color: var(--c-text); border-color: var(--c-line-2); }
