/* bekindar — страницы входа, регистрации, демо, документов и общие формы кабинета.
   Токены, шрифт и компоненты — /shared/tekemet.css (подключать раньше этого файла). */

body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
a{color:inherit}
.logo__word{white-space:nowrap}

/* ---------- кнопки: старые имена классов → варианты Текемета ---------- */
.btn-primary{--bg:var(--c-primary);--fg:var(--c-on-primary);--bd:var(--c-primary)}
.btn-primary:hover{--bg:var(--c-primary-hover);--bd:var(--c-primary-hover)}
.btn-sm{min-height:var(--h-s);padding:var(--s1) var(--s3);font-size:var(--fs-sm)}
.btn-lg{min-height:var(--h-l);padding-inline:var(--s6);font-size:var(--fs-h4)}
.btn .ico{width:1.2em;height:1.2em}
.btn--s .ico,.btn-sm .ico{width:1.1em;height:1.1em}

/* ---------- формы ---------- */
.field>span:first-child,.field__label{font-size:var(--fs-sm);font-weight:600;line-height:1.3}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),.field select,.field textarea{
  width:100%;min-height:var(--h-m);padding:var(--s2) var(--s3);border:1.5px solid var(--c-border-strong);border-radius:var(--r-m);
  background:var(--c-surface);color:var(--c-text);font-size:var(--fs-body);line-height:1.3;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.field input::placeholder,.field textarea::placeholder{color:var(--c-text-3)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--c-text-2)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-focus) 25%,transparent)}
.field textarea{resize:vertical;line-height:1.45}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:calc(var(--s3) + var(--u) + var(--s1));
  background:var(--c-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E534A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right var(--s3) center/var(--u)}
.field small{font-size:var(--fs-cap);color:var(--c-text-2);font-weight:500}
.row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
@media(max-width:520px){.row{grid-template-columns:1fr}}
.check a{color:var(--c-text);font-weight:600}

/* показать / скрыть пароль (кнопку добавляет /assets/auth.js) */
.pw{position:relative}
.pw input{padding-right:calc(var(--u)*6.5)!important}
.pw .toggle{position:absolute;right:var(--s1);top:50%;transform:translateY(-50%);min-height:var(--h-s);padding:0 var(--s2);border:0;border-radius:var(--r-s);
  background:none;color:var(--c-text-2);font-size:var(--fs-cap);font-weight:700;cursor:pointer}
.pw .toggle:hover{background:var(--c-surface-2);color:var(--c-text)}

/* сообщения: ошибка всегда с иконкой — красный бренда и ошибка соседние оттенки */
.error,.notice,.success{position:relative;padding:var(--s3) var(--s4) var(--s3) calc(var(--s3) + var(--ico) + var(--s3));border-radius:var(--r-m);
  border-left:4px solid var(--c-info);background:var(--c-info-soft);color:var(--c-text);font-size:var(--fs-sm);line-height:1.45;font-weight:500}
.error::before,.notice::before,.success::before{content:"";position:absolute;left:var(--s3);top:calc(var(--s3) + .05em);width:var(--ico);height:var(--ico);background:var(--c-info);
  -webkit-mask:var(--msg-ico) center/contain no-repeat;mask:var(--msg-ico) center/contain no-repeat}
.error{--msg-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0zM12 9v4M12 17h.01'/%3E%3C/svg%3E");
  background:var(--c-error-soft);border-color:var(--c-error)}
.error::before{background:var(--c-error)}
.error a{color:var(--c-error);font-weight:700}
.notice{--msg-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
  display:grid;gap:var(--s2);justify-items:start;background:var(--c-warning-soft);border-color:var(--c-warning)}
.notice::before{background:var(--c-warning)}
.success{--msg-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background:var(--c-success-soft);border-color:var(--c-success)}
.success::before{background:var(--c-success)}
.link{justify-self:center;border:0;background:none;padding:var(--s1);color:var(--c-text-2);font-size:var(--fs-sm);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.link:hover{color:var(--c-text)}

/* ---------- шапка ---------- */
.site-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) clamp(16px,4vw,var(--s7))}

/* ---------- вход, регистрация, демо: форма + войлочное полотно ---------- */
.auth{flex:1;width:100%;max-width:calc(var(--u)*66);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6);align-items:center;
  padding:var(--s2) var(--s4) var(--s8)}
.auth-card{width:100%;max-width:calc(var(--u)*28);justify-self:center;padding:clamp(20px,5vw,var(--s7));display:grid;gap:var(--s4);box-shadow:var(--e2)}
.auth-card h1{font-size:var(--fs-h2);line-height:1.15;font-weight:800;letter-spacing:-.02em}
.auth-card .sub{color:var(--c-text-2);margin-top:calc(var(--s2)*-1)}
.auth-card>.btn{width:100%}
.alt{color:var(--c-text-2);font-size:var(--fs-sm);text-align:center}
.alt a{color:var(--c-primary);font-weight:700;text-decoration:none}
.alt a:hover{text-decoration:underline}
.auth-art{display:none}
@media (min-width:900px){
  .auth{grid-template-columns:minmax(0,1fr) minmax(0,.92fr);padding-top:var(--s5)}
  .auth-card{justify-self:end}
  .auth-art{position:relative;display:grid;place-items:center;align-self:stretch;min-height:calc(var(--u)*30);border-radius:var(--r-felt);overflow:hidden;
    background:var(--c-primary);color:#fff;--pat:var(--c-accent);--pat-o:.5;--pat-size:calc(var(--u)*7)}
}
.auth-art .band{position:absolute;left:0;right:0;--band:var(--c-bg)}
.auth-art .band.t{top:-1px;transform:scaleY(-1)}
.auth-art .band.b{bottom:-1px}
.auth-art__mark{width:calc(var(--u)*7);height:calc(var(--u)*7);border-radius:var(--r-felt);background:var(--c-primary);display:grid;place-items:center;
  box-shadow:0 0 0 calc(var(--u)*.75) var(--c-primary)}
.auth-art__mark svg{width:70%;height:70%;fill:none;stroke:var(--c-accent);stroke-width:6;stroke-linecap:round}
.auth-art__say{position:absolute;left:var(--s7);right:var(--s7);bottom:calc(var(--u)*2.5);background:var(--c-primary);border-radius:var(--r-felt);padding:var(--s3) var(--s4);
  font-size:var(--fs-h3);font-weight:800;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}

/* ---------- кабинет: общее ---------- */
.kv{display:grid;grid-template-columns:auto 1fr;gap:var(--s1) var(--s4);font-size:var(--fs-sm)}
.kv dt{color:var(--c-text-2);font-weight:500}
.kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}

/* ---------- документы и 404 ---------- */
.doc{width:100%;max-width:calc(var(--u)*46);margin:0 auto;padding:var(--s5) var(--s4) var(--s9);display:grid;gap:var(--s4);align-content:start}
.doc h1{font-size:var(--fs-h1);line-height:1.1;font-weight:800;letter-spacing:-.02em}
.doc h2{font-size:var(--fs-h3);line-height:1.25;font-weight:700;margin-top:var(--s3)}
.doc p{color:var(--c-text-2)}
.doc .empty__art{margin-bottom:var(--s2)}
.doc--center{justify-items:center;text-align:center;align-content:center;flex:1}
@media(max-width:599px){.doc h1{font-size:calc(var(--u)*1.75)}}
