/* ЕКР — ЕДИНАЯ ДИЗАЙН-СИСТЕМА. Единственный источник токенов/типографики/кривых.
 * Эталон — справочник менеджера (навигатор): тёмно-синий + оранжевый, Mulish, кривые Emil.
 * Подключается ПЕРВЫМ на всех поверхностях (client-портал, справочник, вход, политика).
 * Компоненты каждой поверхности строятся поверх этих токенов — «единые принципы». */

/* ── Шрифт: Mulish (переменный 200–1000), кириллица + латиница, self-hosted ── */
@font-face{font-family:'Mulish';font-style:normal;font-weight:200 1000;font-display:swap;src:url(fonts/mulish-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Mulish';font-style:normal;font-weight:200 1000;font-display:swap;src:url(fonts/mulish-lat.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;}

/* ── Токены (light) — значения справочника менеджера ── */
:root{
  --bg:#F6FAF9; --bg2:#E9EFEE; --surf:#FBFDFC; --surf2:#FEFFFE;
  --ink:#040D36; --ink2:#3A4257; --ink3:#6C7488; --line:#E0E7E8; --line2:#C6D0D1;
  --acc:#F46A18; --acc-soft:#FDE7D6; --acc-ink:#B8500E; --on-acc:#FFF6F0;
  --acc-100:#FEF1E7; --acc-200:#FBDBC4; --acc-300:#F7BE97; --acc-600:#DC5C10; --acc-700:#B8500E;
  --ok:#1F7A55; --warn:#B0741A; --bad:#C43D3D;
  --ok-soft:#E4F2EB; --warn-soft:#F8EDD9; --bad-soft:#F8E4E4;
  --ok-ink:#155E3E; --warn-ink:#7A4E12; --bad-ink:#992A2A;
  --r:12px; --r2:9px; --r3:6px;
  --sh-sm:0 1px 2px rgba(20,24,33,.05);
  --sh:0 1px 2px rgba(20,24,33,.05), 0 6px 20px -10px rgba(20,24,33,.14);
  --sh-lg:0 2px 6px rgba(20,24,33,.06), 0 24px 48px -20px rgba(20,24,33,.26);
  /* кривые Emil */
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --ease-in-out:cubic-bezier(0.77,0,0.175,1);
  --ease-drawer:cubic-bezier(0.32,0.72,0,1);
  --ease:cubic-bezier(0.23,1,0.32,1); /* alias → сильный ease-out */
}
/* ── Токены (dark) — активируются html[data-theme="dark"] (справочник); светлые поверхности не трогают ── */
html[data-theme="dark"]{
  --bg:#0C0C20; --bg2:#070713; --surf:#13142E; --surf2:#1B1D3C;
  --ink:#F6FAF9; --ink2:#B7BDD0; --ink3:#7C84A0; --line:#242647; --line2:#343760;
  --acc:#F87A2A; --acc-soft:#2C1B0F; --acc-ink:#FFB162; --on-acc:#FFF6F0;
  --acc-100:#1F140C; --acc-200:#33200F; --acc-300:#7A461F; --acc-600:#FA8235; --acc-700:#FFB162;
  --ok:#4FBE8C; --warn:#E0A54B; --bad:#EF6B6B;
  --ok-soft:#122820; --warn-soft:#2A2213; --bad-soft:#2C1717;
  --ok-ink:#7FD3A6; --warn-ink:#E7C07A; --bad-ink:#F0A0A0;
  --sh-sm:0 2px 4px rgba(0,0,0,.5);
  --sh:0 4px 8px rgba(0,0,0,.45), 0 1px 2px rgba(0,0,0,.5);
  --sh-lg:0 4px 8px rgba(0,0,0,.5), 0 24px 48px -18px rgba(0,0,0,.8);
}

/* ── База (общая для всех поверхностей) ── */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Mulish',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--ink);font-weight:400;line-height:1.62;font-size:16px;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-weight:800;line-height:1.14;letter-spacing:-.02em;text-wrap:balance}
p{text-wrap:pretty}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
.mono{font-variant-numeric:tabular-nums}
.muted{color:var(--ink2)} .dim{color:var(--ink3)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important;
    transition-property:opacity,background-color,border-color,color,box-shadow!important;transition-duration:.16s!important}
}

/* ── Примитивы (единые компоненты). Кнопка — как в справочнике: плоский оранжевый, кремовый текст. ── */
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;padding:11px 18px;font-weight:700;font-size:14px;
  border:1px solid var(--line2);background:var(--surf);
  transition:transform .12s var(--ease-out),box-shadow .16s var(--ease-out),background-color .16s var(--ease-out),border-color .16s var(--ease-out)}
.ds-btn:active{transform:scale(.975)}
@media(hover:hover) and (pointer:fine){.ds-btn:hover{border-color:var(--acc);color:var(--ink);background:color-mix(in srgb,var(--acc) 7%,transparent)}}
.ds-btn.pri{background:var(--acc);border-color:var(--acc);color:var(--on-acc);font-weight:600}
@media(hover:hover) and (pointer:fine){.ds-btn.pri:hover{background:var(--acc-600);border-color:var(--acc-600);color:var(--on-acc)}}
.ds-btn.sm{padding:8px 13px;font-size:13px;border-radius:9px}
.ds-input{width:100%;padding:11px 13px;border:1px solid var(--line2);border-radius:10px;background:var(--surf);font-size:15px;
  transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out)}
.ds-input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}

/* Чек-боксы согласий (форма заявки) */
.consent{display:grid;gap:11px;margin:15px 0 2px}
.cbx{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink2);line-height:1.45;cursor:pointer}
.cbx input[type=checkbox]{margin-top:1px;width:18px;height:18px;accent-color:var(--acc);flex:none;cursor:pointer}
.cbx a{color:var(--acc);text-decoration:underline;text-underline-offset:2px}
.cbx .req{color:var(--bad-ink,#992A2A);font-weight:800}
.cbx.err span{color:var(--bad-ink,#992A2A)}
.cbx.err input[type=checkbox]{outline:2px solid var(--bad-ink,#992A2A);outline-offset:2px;border-radius:4px}
