/* FOODCORE — общий слой: токены, каркас, шапка, подвал, кнопки.
   Один файл на все страницы: если шапка правится, она правится везде. */

:root{
  --ink-0:#08070C; --ink-1:#0C0B13; --ink-2:#13121C; --ink-3:#1A1926; --ink-4:#242232;
  --line-1:rgb(255 255 255 / .07); --line-2:rgb(255 255 255 / .11);
  --line-3:rgb(255 255 255 / .17); --line-4:rgb(255 255 255 / .26);
  --fg:#F6F6F9; --fg-muted:rgb(255 255 255 / .72); --fg-dim:rgb(255 255 255 / .54);
  --fg-ghost:rgb(255 255 255 / .40);
  --red:#FF3340; --red-deep:#C2101F; --red-soft:rgb(255 51 64 / .14);
  --gold:#C8A24A; --gold-hi:#F0D68F;
  --ok:#2EE6A8;
  --glass:rgb(255 255 255 / .045);
  --glass-edge:linear-gradient(180deg, rgb(255 255 255 / .16), rgb(255 255 255 / .02));
  --r-xs:4px; --r-s:10px; --r-m:16px; --r-l:22px; --r-pill:999px;
  /* размеры текста: вместо тридцати случайных — шесть ступеней.
     cap — моноширинные подписи капсом; s/m/b — мелкий, основной мелкий, основной;
     l — вводный абзац; base — поля ввода (16px, иначе iPhone приближает экран) */
  --fs-cap:10.5px; --fs-s:12.5px; --fs-m:13.5px; --fs-b:14.5px; --fs-l:15.5px; --fs-base:16px;
  --shadow-1:0 1px 0 rgb(255 255 255 / .08) inset, 0 18px 46px rgb(0 0 0 / .5);
  --shadow-red:0 10px 34px rgb(255 51 64 / .28), 0 1px 0 rgb(255 255 255 / .22) inset;
  /* роли цветов (утверждено 18.09): красный — только главная кнопка;
     выбранное — золото; фокус — светлое кольцо; ошибка — красная рамка + текст.
     «Сегодня» в календаре — по замыслу владельца (прошедшие зелёные, сегодня красный). */
  --focus:0 0 0 2.5px rgb(255 255 255 / .30), 0 0 0 5px rgb(255 255 255 / .07);
  --focus-line:rgb(255 255 255 / .55);
  --select-line:var(--gold); --select-bg:rgb(200 162 74 / .12); --select-fg:var(--gold-hi);
  --error:#FF6B75; --error-line:var(--red); --error-bg:rgb(255 51 64 / .07);
  --fd:"Unbounded","Arial Black",sans-serif;
  --fu:"Manrope",system-ui,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,monospace;
  --page:1180px;         /* ширина контента — одинаковая на всех страницах */
  --nav-h:84px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--fg);font-family:var(--fu);font-size:16px;line-height:1.55;
  background:
    radial-gradient(1100px 620px at 78% -8%, rgb(200 162 74 / .15), transparent 62%),
    radial-gradient(900px 560px at 6% 10%, rgb(255 51 64 / .07), transparent 60%),
    radial-gradient(800px 800px at 50% 108%, rgb(200 162 74 / .05), transparent 60%),
    linear-gradient(180deg, #0A0912 0%, var(--ink-0) 38%, #0A0910 100%);
  background-attachment:fixed;min-height:100vh}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.32;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.055'/></svg>")}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--page);margin:0 auto;padding:0 24px;position:relative;z-index:1}
.narrow{max-width:960px}

/* ── шапка: одна на все страницы ────────────────────────────────── */
.nav-outer{position:sticky;top:0;z-index:40;height:var(--nav-h);display:flex;align-items:center;
  background:linear-gradient(180deg, rgb(8 7 12 / .88), rgb(8 7 12 / .38));
  backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--line-1)}
.nav{width:100%;max-width:var(--page);margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:26px}
.logo{font-family:var(--fd);font-weight:800;font-size:21px;letter-spacing:-.055em;white-space:nowrap}
.logo em{font-style:normal;background:linear-gradient(120deg,var(--red),#FF7A62);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.nav-menu{display:flex;gap:24px;list-style:none;margin:0;padding:0;font-size:var(--fs-b);color:var(--fg-muted)}
.nav-menu a{position:relative;padding-bottom:3px;white-space:nowrap}
.nav-menu a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:linear-gradient(90deg,var(--gold),transparent);transition:right .25s ease}
.nav-menu a:hover{color:var(--fg)}
.nav-menu a:hover::after{right:0}
.nav-menu a.current{color:var(--fg);font-weight:600}
/* текущая страница — это «выбранное», а выбранное у нас золотое */
.nav-menu a.current::after{right:0;background:linear-gradient(90deg,var(--select-line),transparent)}
.nav-menu a:focus-visible,.logo:focus-visible{outline:none;border-radius:var(--r-xs);box-shadow:var(--focus)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:var(--fs-b);white-space:nowrap}
.acc-slot{display:flex;align-items:center;gap:14px}
.burger{display:none;width:38px;height:38px;border-radius:var(--r-s);border:1px solid var(--line-2);
  background:var(--glass);color:var(--fg);cursor:pointer;align-items:center;justify-content:center}
.burger:focus-visible{outline:none;box-shadow:var(--focus)}
.nav-menu li.only-sm{display:none}
.burger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* вход в кабинет: гостю — значок человека, вошедшему — кружок с инициалами */
.acc{position:relative;display:flex}
.acc-btn{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;
  border:1px solid var(--line-2);background:var(--glass);color:var(--fg-muted);cursor:pointer;
  padding:0;font-family:var(--fu);font-size:var(--fs-m);font-weight:700;letter-spacing:.02em;transition:.16s}
.acc-btn svg{width:19px;height:19px}
.acc-btn:hover{color:var(--fg);border-color:var(--line-4)}
.acc-btn.on{color:var(--select-fg);border-color:var(--select-line);background:var(--select-bg)}
.acc-btn:focus-visible{outline:none;box-shadow:var(--focus)}
/* вошедший: значок + имя и роль одной кнопкой — видно, кто вошёл и кем */
.acc-pill{display:flex;align-items:center;gap:10px;padding:0 4px 0 0;margin:0;border:0;background:none;
  cursor:pointer;font-family:var(--fu);color:var(--fg);text-align:left;border-radius:var(--r-pill)}
.acc-pill .acc-btn{pointer-events:none}
.acc-pill:hover .acc-btn{border-color:var(--gold-hi)}
.acc-pill:focus-visible{outline:none;box-shadow:var(--focus)}
.acc-name{display:flex;flex-direction:column;line-height:1.2;min-width:0;max-width:150px}
.acc-name b{font-size:var(--fs-m);font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis}
.acc-name small{font-family:var(--fm);font-size:var(--fs-cap);letter-spacing:.06em;color:var(--fg-dim)}
.acc-pill:hover .acc-name b{color:var(--gold-hi)}
.acc-menu{position:absolute;right:0;top:calc(100% + 10px);min-width:210px;z-index:50;
  display:flex;flex-direction:column;padding:6px;border-radius:var(--r-m);
  background:rgb(12 11 18 / .98);border:1px solid var(--line-3);backdrop-filter:blur(18px);
  box-shadow:0 18px 50px rgb(0 0 0 / .55)}
.acc-menu[hidden]{display:none}
.acc-who{display:flex;flex-direction:column;gap:2px;padding:9px 12px 11px;margin-bottom:4px;
  border-bottom:1px solid var(--line-1);font-size:var(--fs-m);font-weight:600;color:var(--fg);white-space:normal}
.acc-who small{font-family:var(--fm);font-size:var(--fs-cap);font-weight:400;color:var(--fg-ghost)}
.acc-menu [role="menuitem"]{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r-s);
  border:none;background:none;cursor:pointer;font-family:var(--fu);font-size:var(--fs-b);color:var(--fg-muted)}
.acc-menu [role="menuitem"]:hover,.acc-menu [role="menuitem"]:focus-visible{outline:none;
  color:var(--fg);background:rgb(255 255 255 / .06)}
.acc-menu [data-signout]{color:var(--fg-dim)}

@media(max-width:1020px){
  .nav-menu{position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;gap:0;
    background:rgb(10 9 15 / .97);backdrop-filter:blur(20px);border-bottom:1px solid var(--line-1);
    padding:8px 24px 18px;display:none}
  .nav-menu.open{display:flex}
  .nav-menu li{padding:12px 0;border-bottom:1px solid var(--line-1)}
  .nav-menu li.only-sm{display:list-item}
  .nav-menu li:last-child{border-bottom:none}
  .nav-menu button{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:var(--fg-dim)}
  .burger{display:flex}
}

/* ── кнопки: один канон ─────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--fu);
  font-weight:600;font-size:var(--fs-b);padding:13px 26px;cursor:pointer;border-radius:var(--r-s);
  /* прозрачная рамка у всех кнопок: у стеклянной рамка настоящая, и без этого
     красная и стеклянная рядом расходились по высоте на 2 px */
  border:1px solid transparent;
  background:linear-gradient(180deg,#FF4553,var(--red) 40%,var(--red-deep));color:#fff;
  box-shadow:var(--shadow-red);transition:transform .16s ease, filter .16s ease}
.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn:active{transform:translateY(0)}
.btn.lg{font-size:var(--fs-l);padding:16px 34px}
.btn.sm{font-size:var(--fs-m);padding:11px 20px}
.btn.glass{background:var(--glass);color:var(--fg);border:1px solid var(--line-2);
  box-shadow:none;backdrop-filter:blur(12px)}
.btn.glass:hover{border-color:var(--line-4);background:rgb(255 255 255 / .08);filter:none}
.btn[disabled]{background:var(--ink-4);color:var(--fg-ghost);box-shadow:none;cursor:not-allowed;transform:none}
.btn:focus-visible{outline:none;box-shadow:var(--focus)}
.link{color:var(--fg-dim);background:none;border:none;border-bottom:1px solid var(--line-3);
  cursor:pointer;font-family:var(--fu);font-size:var(--fs-m);padding:0 0 2px;transition:.16s}
.link:hover{color:var(--gold-hi);border-color:var(--gold)}
.link:focus-visible{outline:none;border-radius:var(--r-xs);box-shadow:var(--focus)}

/* ── типовые блоки ──────────────────────────────────────────────── */
h1{font-family:var(--fd);font-weight:800;font-size:clamp(28px,4.2vw,44px);letter-spacing:-.05em;
  line-height:1.03;margin:0 0 18px;text-wrap:balance}
h1 em{font-style:normal;background:linear-gradient(104deg,#FFF0C4,var(--gold-hi) 40%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sec-t{font-family:var(--fd);font-weight:600;font-size:clamp(21px,3vw,30px);letter-spacing:-.028em;
  margin:0 0 12px;text-wrap:balance}
.sec-l{color:var(--fg-muted);max-width:62ch;margin:0 0 34px;font-size:var(--fs-l)}
.page-head{padding:44px 0 30px}
.page-head .lede{color:var(--fg-muted);max-width:58ch;margin:0;font-size:var(--fs-l)}
section{padding:60px 0}
.card{position:relative;padding:24px;border-radius:var(--r-m);background:var(--glass);
  border:1px solid var(--line-1);backdrop-filter:blur(14px);box-shadow:var(--shadow-1);overflow:hidden}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:var(--glass-edge)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:900px){.grid-3,.grid-2{grid-template-columns:1fr}}
.pill{display:inline-block;font-family:var(--fm);font-size:var(--fs-cap);letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-hi);padding:5px 11px;border-radius:var(--r-pill);
  background:rgb(200 162 74 / .10);border:1px solid rgb(200 162 74 / .22)}

/* заголовок и текст карточки на страницах сайта — раньше были вписаны
   в каждую страницу руками, и размеры расходились на полпикселя */
.card-t{font-family:var(--fd);font-weight:600;font-size:17px;letter-spacing:-.02em;margin:14px 0 8px}
.card-t:first-child{margin-top:0}
.card-p{font-size:var(--fs-m);color:var(--fg-muted);margin:0}
.card-p + .card-p{margin-top:12px}
.card-k{font-family:var(--fm);font-size:19px;margin:14px 0 6px;color:var(--fg);word-break:break-word}
.card-a{color:var(--gold-hi);border-bottom:1px solid rgb(200 162 74 / .4)}
.card-a:hover{border-color:var(--gold-hi)}
.card-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.card-row > div{flex:1 1 340px;min-width:0}
.card-row .btn-set{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
/* одна строка беты вместо цены — везде одинаковая */
.beta{display:inline-flex;align-items:center;gap:9px;font-family:var(--fm);font-size:var(--fs-cap);
  letter-spacing:.14em;text-transform:uppercase;color:var(--select-fg);padding:7px 14px;
  border-radius:var(--r-pill);background:var(--select-bg);border:1px solid rgb(200 162 74 / .28)}
.beta i{width:5px;height:5px;border-radius:50%;flex:none;background:var(--gold-hi);box-shadow:0 0 10px var(--gold-hi)}
@media(max-width:720px){
  .card-row .btn-set{margin-left:0;width:100%}
  .beta{letter-spacing:.08em;white-space:normal}
}

/* ── подвал: один на все страницы ──────────────────────────────── */
.site-footer{margin-top:80px;border-top:1px solid var(--line-2);
  background:linear-gradient(180deg, rgb(255 255 255 / .02), transparent)}
.foot-cols{display:grid;grid-template-columns:1.6fr 1fr 1.2fr 1fr;gap:48px;padding:48px 0 40px}
.foot-brand .logo{font-family:var(--fd);font-weight:800;font-size:20px;letter-spacing:-.055em;margin-bottom:14px}
.foot-brand .logo em{font-style:normal;background:linear-gradient(120deg,var(--red),#FF7A62);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.foot-brand p{font-size:var(--fs-m);color:var(--fg-dim);margin:0 0 20px;max-width:34ch;line-height:1.6}
.foot-col h4{font-family:var(--fm);font-size:var(--fs-cap);letter-spacing:.16em;text-transform:uppercase;
  color:var(--fg-ghost);margin:0 0 16px;font-weight:400}
.foot-links{display:flex;flex-direction:column;gap:11px}
.foot-links a{font-size:var(--fs-m);color:var(--fg-muted);width:fit-content;transition:.16s}
.foot-links a:hover{color:var(--gold-hi)}
.foot-key{display:block;font-family:var(--fm);font-size:var(--fs-b);color:var(--fg);transition:.16s}
.foot-key:hover{color:var(--gold-hi)}
.foot-note{display:block;font-size:var(--fs-s);color:var(--fg-ghost);margin:4px 0 18px}
.foot-col .foot-note:last-child{margin-bottom:0}
.soc{display:flex;gap:10px;align-items:center}
.soc a{width:38px;height:38px;border-radius:var(--r-s);display:grid;place-items:center;background:var(--glass);
  border:1px solid var(--line-2);backdrop-filter:blur(12px);color:var(--fg-muted);transition:.18s}
.soc a:hover{color:var(--fg);border-color:var(--gold);background:rgb(200 162 74 / .12);transform:translateY(-2px)}
.soc svg{width:17px;height:17px;fill:currentColor}
.foot-bottom{display:flex;gap:28px;flex-wrap:wrap;align-items:center;
  padding:22px 0 40px;border-top:1px solid var(--line-1);font-size:var(--fs-s);color:var(--fg-ghost)}
@media(max-width:1020px){.foot-cols{grid-template-columns:1fr 1fr;gap:36px 40px}}
@media(max-width:640px){
  .foot-cols{grid-template-columns:1fr;gap:32px;padding:36px 0 30px}
  .site-footer{margin-top:56px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:8px;padding:20px 0 96px}
}

/* ── плавающая связь ───────────────────────────────────────────── */
.fab{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;gap:10px;align-items:center}
.fab a{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;
  box-shadow:0 10px 30px rgb(0 0 0 / .45);transition:.18s;transform:translateY(8px);opacity:0;pointer-events:none}
.fab.open a{transform:translateY(0);opacity:1;pointer-events:auto}
.fab a.tg{background:linear-gradient(180deg,#3FB3E8,#2AA0DB)}
.fab a.wa{background:linear-gradient(180deg,#4FD164,#31B14B)}
.fab a.vk{background:linear-gradient(180deg,#5A88D6,#4472C4)}
.fab a.mail{background:rgb(20 19 28 / .96);border:1px solid var(--select-line);color:var(--select-fg)}
.fab a.mail svg{fill:none;stroke:currentColor}
.fab a:focus-visible,.fab button:focus-visible{outline:none;box-shadow:var(--focus)}
.fab a:hover{transform:translateY(-2px);filter:brightness(1.08)}
.fab svg{width:22px;height:22px;fill:#fff}
.fab .up{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-3);cursor:pointer;
  background:rgb(255 255 255 / .06);backdrop-filter:blur(14px);color:var(--fg);
  display:grid;place-items:center;opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s}
.fab .up.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.fab .up:hover{background:rgb(255 255 255 / .12);border-color:var(--gold)}
.fab .up svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fab .toggle{width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;color:#fff;
  background:linear-gradient(180deg,#FF4553,var(--red) 45%,var(--red-deep));
  box-shadow:var(--shadow-red);display:grid;place-items:center;transition:.2s}
.fab .toggle:hover{filter:brightness(1.07)}
.fab.open .toggle{transform:rotate(45deg)}
.fab .toggle svg{width:24px;height:24px}
/* единственный канал — почта: кнопка письма видна сразу, без раскрытия */
.fab a.toggle.direct{opacity:1;pointer-events:auto;transform:none;width:54px;height:54px;box-shadow:var(--shadow-red)}
.fab a.toggle.direct:hover{transform:translateY(-2px)}
.fab a.toggle.direct svg{fill:none;stroke:#fff}

@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ── мобильная: ничего не должно вылезать за экран ──────────────── */
/* overflow-x:hidden на body убивает position:sticky у шапки.
   clip режет так же, но прокрутку предка не создаёт — sticky живёт. */
html,body{max-width:100%;overflow-x:clip}
img,svg,video{max-width:100%}
@media(max-width:720px){
  :root{--nav-h:68px}
  .wrap{padding:0 16px}
  .nav{padding:0 16px;gap:12px}
  .logo{font-size:17px}
  .nav-right{gap:10px}
  .btn{padding:12px 18px;font-size:var(--fs-m)}
  .btn.lg{padding:14px 22px;font-size:var(--fs-b)}
  .btn.sm{padding:9px 13px;font-size:var(--fs-s)}
  h1{font-size:clamp(24px,7vw,32px)}
  .sec-t{font-size:clamp(19px,5.6vw,24px)}
  section{padding:44px 0}
  .page-head{padding:28px 0 20px}
  .card{padding:18px}
  .grid-3,.grid-2{gap:12px}
  .contact-bar{flex-direction:column;align-items:flex-start;gap:20px;padding:26px 0 24px;margin-top:40px}
  .contact-bar .soc{margin-left:0}
  .site-foot{flex-direction:column;align-items:flex-start;gap:12px;padding:18px 0 96px}
  .site-foot .sp{margin-left:0;margin-top:4px}
  .fab{right:14px;bottom:14px}
}

/* самые узкие телефоны (меньше 375): логотип, кружок, красная кнопка и бургер
   в строку не встают. Прячем то, что дублирует пункт меню-бургера:
   гостю — значок «Войти» (в бургере есть «Войти»). Главное действие и бургер остаются. */
@media(max-width:374px){
  .acc-btn.guest{display:none}
}
/* имя рядом со значком: на самых узких экранах остаётся только значок —
   имя и роль есть в меню значка */
@media(max-width:359px){
  .acc-name{display:none}
}

/* согласие на cookie: нижняя панель, не перекрывает действия на странице */
.cookie-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:60;
  width:min(var(--page), calc(100vw - 32px));display:flex;align-items:center;gap:18px;
  padding:16px 20px;border-radius:var(--r-m);border:1px solid var(--line-3);
  background:rgb(12 11 18 / .96);backdrop-filter:blur(14px);
  box-shadow:0 18px 50px rgb(0 0 0 / .55)}
.cookie-bar p{margin:0;font-size:var(--fs-s);line-height:1.65;color:var(--fg-muted);flex:1}
.cookie-bar a{color:var(--gold-hi);border-bottom:1px solid rgb(200 162 74 / .4)}
.cookie-act{display:flex;gap:9px;flex:none}
@media(max-width:720px){
  .cookie-bar{flex-direction:column;align-items:stretch;gap:12px;bottom:10px}
  .cookie-act{justify-content:stretch}
  .cookie-act .btn{flex:1;text-align:center}
}

/* поля форм — общие для анкеты и кабинета: раньше они жили только
   в анкете, и в кабинете профиль выходил белыми инпутами браузера */
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.f{display:flex;flex-direction:column;gap:6px}
.f label{font-family:var(--fm);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fg-ghost)}
.f input{background:rgb(255 255 255 / .04);border:1px solid var(--line-2);border-radius:var(--r-s);
  color:var(--fg);font-family:var(--fu);font-size:var(--fs-base);padding:12px 14px;width:100%}
.f input::placeholder{color:var(--fg-ghost)}
.f input:focus{outline:none;border-color:var(--focus-line);box-shadow:var(--focus)}
/* 9.5 и 11 px — прежние размеры: эти поля живут во входе, регистрации и профиле
   кабинета, у них свои снимки «до / после» — общий файл их не двигает */
.f .hint{font-size:11px;color:var(--fg-ghost)}
/* ошибка и подтверждение у конкретного поля */
.f input.bad{border-color:var(--error-line);background:var(--error-bg)}
.f .hint.bad{color:var(--error)}
.f .hint.good{color:#7FD4A0}
/* повтор пароля: совпало — зелёная рамка, разошлось — красная */
.f input.match-ok{border-color:#7FD4A0;box-shadow:0 0 0 3px rgb(127 212 160 / .16)}
.f input.match-bad{border-color:var(--error-line);box-shadow:0 0 0 3px rgb(255 51 64 / .18)}

/* подпись разработчика — в нижней строке подвала, справа */
.foot-dev{margin-left:auto}
.foot-dev a{color:var(--gold-hi);border-bottom:1px solid rgb(200 162 74 / .4)}
.foot-dev a:hover{border-color:var(--gold-hi)}
@media(max-width:720px){.foot-dev{margin-left:0}}

/* ── подсказка (i): один компонент на весь сайт (window.fcTip, js/app.js) ── */
.tip{display:inline-grid;place-items:center;width:28px;height:28px;flex:none;padding:0;margin:-6px 0;
  border:0;border-radius:50%;background:none;color:var(--fg-dim);cursor:pointer;transition:.15s}
.tip .ti{width:17px;height:17px}
.tip:hover,.tip[aria-expanded="true"]{color:var(--gold-hi);background:rgb(255 255 255 / .06)}
.tip:focus-visible{outline:none;box-shadow:var(--focus)}
.tip-box{position:fixed;z-index:70;padding:11px 14px;border-radius:var(--r-s);
  background:var(--ink-3);border:1px solid var(--line-3);box-shadow:0 14px 40px rgb(0 0 0 / .55);
  font-size:13px;line-height:1.55;color:var(--fg)}
.tip-box[hidden]{display:none}
