/* «Лепи Люби» — стиль «Терракота» (сайт, вход, личный кабинет).
   Заголовки Playfair Display, текст Comfortaa (шрифты лежат на сервере, /fonts). */
@font-face{font-family:"Playfair Display";font-style:normal;font-display:swap;font-weight:400 900;src:url(/fonts/playfair-display-cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Playfair Display";font-style:normal;font-display:swap;font-weight:400 900;src:url(/fonts/playfair-display-latin-wght-normal.woff2) format("woff2-variations");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}
@font-face{font-family:"Comfortaa";font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/comfortaa-cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Comfortaa";font-style:normal;font-display:swap;font-weight:300 700;src:url(/fonts/comfortaa-latin-wght-normal.woff2) format("woff2-variations");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:#F5EDE4; --surface:#FFFFFF; --soft:#FCF7F2; --plate:#F0E2D4; --line:#E8D9CB; --line-strong:#D3BFAC;
  --ink:#2A1D17; --text:#5C4A40; --muted:#6B574B;
  --accent:#B4472A; --accent-hover:#8E3720; --on-accent:#FFFFFF; --accent-soft:#F7DDD3;
  --green:#2F4A3A; --green-soft:#D9E6DC;
  --ok:#1E6B45; --ok-bg:#DFF1E6; --warn:#8A4A12; --warn-bg:#FBEAD6; --err:#A3301B; --err-bg:#FBE3DC;
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --body:"Comfortaa",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5}
a{color:var(--accent)}
a:hover{color:var(--accent-hover)}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.1}
p{margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* логотип-надпись */
.logo{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink);text-decoration:none;letter-spacing:-.02em;white-space:nowrap}
.logo span{color:var(--green)}
.logo:hover{color:var(--ink)}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:999px;border:0;
  background:var(--accent);color:var(--on-accent);font-weight:600;font-size:16px;text-decoration:none;cursor:pointer;text-align:center;transition:background .15s}
.btn:hover{background:var(--accent-hover);color:var(--on-accent)}
.btn:disabled{opacity:.6;cursor:default}
.btn.lg{min-height:58px;padding:16px 28px;font-size:17px}
.btn.block{display:flex;width:100%}
.btn.ghost{background:none;color:var(--ink);border:1.5px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.btn.white{background:#FFFFFF;color:var(--ink)}
.btn.white:hover{background:var(--plate)}
.btn.outline-white{background:none;color:#FFFFFF;border:1.5px solid rgba(255,255,255,.6)}
.btn.outline-white:hover{background:rgba(255,255,255,.12);color:#FFFFFF}
.btn.dark{background:var(--ink)}
.btn.dark:hover{background:#000}
.link-btn{background:none;border:0;padding:12px 0;color:var(--accent);font-weight:600;font-size:15px;cursor:pointer;text-decoration:none}
.link-btn:hover{color:var(--accent-hover);text-decoration:underline}

/* бейджи */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;border-radius:999px;padding:6px 11px;white-space:nowrap}
.pill.ok{color:var(--ok);background:var(--ok-bg)}
.pill.warn{color:var(--warn);background:var(--warn-bg)}
.pill.muted{color:var(--muted);background:var(--plate)}
.pill.on-dark{color:#FFFFFF;background:rgba(255,255,255,.18)}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* поля */
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px;font-weight:600}
.input{height:56px;border-radius:16px;border:1.5px solid var(--line-strong);background:#FFFFFF;padding:0 18px;font-size:18px;width:100%}
.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(180,71,42,.18)}
.input.code{height:64px;font-size:28px;letter-spacing:.35em;text-align:center;border-color:var(--accent)}
select.input{font-size:17px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232A1D17' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;padding-right:44px}
.hint{font-size:14px;line-height:1.45;color:var(--muted)}
.error{font-size:15px;line-height:1.45;color:var(--err);background:var(--err-bg);border-radius:14px;padding:12px 14px}
.note{display:flex;gap:12px;align-items:flex-start;background:#FFFFFF;border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-size:15px;line-height:1.45;color:var(--text)}
.note svg{flex-shrink:0;margin-top:2px}

/* узор-заглушка под фото: если фото не загрузилось, остаётся аккуратный фон */
.ph{background-color:#E6D3C1;background-image:repeating-linear-gradient(135deg,rgba(42,29,23,.06) 0 2px,transparent 2px 14px);overflow:hidden;position:relative}
.ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}

/* спиннер */
.spin{width:22px;height:22px;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:sp 0.8s linear infinite;display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}}
