/* ==========================================================
   SiteForge base · тема rielt.su («Кадастровый план»)
   Токены → шрифты → сброс → типографика → кнопки → формы → компоненты
   ========================================================== */

@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/onest-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/onest-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/onest-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/onest-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/onest-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/onest-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/onest-cyrillic-700-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/onest-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/unbounded-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/unbounded-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/unbounded-cyrillic-600-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/unbounded-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --sf-bg:#F4F1EA;
  --sf-bg-2:#EDE7DA;
  --sf-surface:#FFFFFF;
  --sf-surface-2:#FAF8F3;
  --sf-ink:#17191C;
  --sf-text:#2A2D32;
  --sf-text-2:#43474E;
  --sf-muted:#5B5F66;
  --sf-line:#E2DDD2;
  --sf-line-strong:#B9B3A6;
  --sf-accent:#B8431B;
  --sf-accent-hover:#9E3714;
  --sf-accent-soft:#F6E3DA;
  --sf-on-accent:#FFFFFF;
  --sf-deep:#173F3A;
  --sf-deep-2:#1F4D47;
  --sf-deep-text:#D3E3DF;
  --sf-success:#1E6B45;
  --sf-success-soft:#E1F0E7;
  --sf-danger:#B42318;
  --sf-danger-soft:#FBE7E5;
  --sf-warn:#8A5A00;
  --sf-warn-soft:#FBF0D9;
  --sf-focus:#2F4DB5;

  --sf-font:Onest,system-ui,-apple-system,"Segoe UI",sans-serif;
  --sf-font-display:Unbounded,Onest,system-ui,sans-serif;

  --sf-r-sm:8px;
  --sf-r:12px;
  --sf-r-lg:20px;
  --sf-r-xl:28px;
  --sf-shadow:0 1px 2px rgba(23,25,28,.06),0 8px 24px rgba(23,25,28,.08);
  --sf-shadow-lg:0 2px 4px rgba(23,25,28,.06),0 24px 60px rgba(23,25,28,.14);
  --sf-ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
:root[data-theme="dark"]{
  --sf-bg:#131416;
  --sf-bg-2:#1B1D20;
  --sf-surface:#1E2023;
  --sf-surface-2:#23262A;
  --sf-ink:#F1EEE7;
  --sf-text:#E4E1DA;
  --sf-text-2:#C4C1BA;
  --sf-muted:#9EA1A7;
  --sf-line:#2F3237;
  --sf-line-strong:#4A4E55;
  --sf-accent:#E0643A;
  --sf-accent-hover:#EC7A53;
  --sf-accent-soft:#3A2219;
  --sf-on-accent:#17191C;
  --sf-deep:#123330;
  --sf-deep-2:#1A423D;
  --sf-success:#5CC08A;
  --sf-success-soft:#15291E;
  --sf-danger:#F2766A;
  --sf-danger-soft:#33191A;
  --sf-warn:#E7B24F;
  --sf-warn-soft:#30250F;
  --sf-focus:#8EA6FF;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--sf-bg);color:var(--sf-text);font:400 16px/1.5 var(--sf-font);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
.ic{display:inline-block;flex-shrink:0;vertical-align:middle}
a{color:var(--sf-ink);text-underline-offset:3px}
a:hover{color:var(--sf-accent-hover)}
h1,h2,h3,h4{margin:0;color:var(--sf-ink);line-height:1.15;font-weight:600}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--sf-focus);outline-offset:2px;border-radius:4px}
.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.sf-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.sf-display{font-family:var(--sf-font-display);letter-spacing:-.03em}
.sf-h1{font-family:var(--sf-font-display);font-size:clamp(24px,3.2vw,32px);letter-spacing:-.03em}
.sf-h2{font-size:20px}
.sf-h3{font-size:17px}
.sf-muted{color:var(--sf-muted)}
.sf-small{font-size:14px}
.sf-xs{font-size:13px}
.sf-eyebrow{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sf-muted)}
.sf-price{font-weight:700;color:var(--sf-ink);font-variant-numeric:tabular-nums}
.sf-pre{white-space:pre-line}

/* ---------- кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--sf-r);border:1.5px solid transparent;background:transparent;font-weight:600;font-size:15px;line-height:1;text-decoration:none;cursor:pointer;transition:background-color .15s var(--sf-ease),border-color .15s var(--sf-ease),color .15s var(--sf-ease),transform .1s var(--sf-ease);white-space:nowrap;-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.98)}
.btn[disabled],.btn.is-loading{opacity:.55;pointer-events:none}
.btn-primary{background:var(--sf-accent);color:var(--sf-on-accent)}
.btn-primary:hover{background:var(--sf-accent-hover);color:var(--sf-on-accent)}
.btn-dark{background:var(--sf-ink);color:var(--sf-bg)}
.btn-dark:hover{background:#000;color:var(--sf-bg)}
:root[data-theme="dark"] .btn-dark:hover{background:#fff}
.btn-outline{border-color:var(--sf-ink);color:var(--sf-ink)}
.btn-outline:hover{background:var(--sf-ink);color:var(--sf-bg)}
.btn-ghost{color:var(--sf-text-2)}
.btn-ghost:hover{background:var(--sf-bg-2);color:var(--sf-ink)}
.btn-danger{color:var(--sf-danger)}
.btn-danger:hover{background:var(--sf-danger-soft);color:var(--sf-danger)}
.btn-lg{min-height:54px;padding:0 26px;font-size:17px;border-radius:14px}
.btn-sm{min-height:36px;padding:0 12px;font-size:14px;border-radius:var(--sf-r-sm)}
.btn-block{width:100%}
.btn-icon{width:44px;padding:0}
.btn-sm.btn-icon{width:36px}

/* ---------- формы ---------- */
.sf-form{display:flex;flex-direction:column;gap:20px}
.sf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.sf-label{font-size:14px;font-weight:600;color:var(--sf-text-2)}
.sf-hint{font-size:13px;color:var(--sf-muted)}
.sf-input,.sf-select,.sf-textarea{width:100%;min-height:48px;padding:0 14px;border:1.5px solid var(--sf-line);border-radius:var(--sf-r);background:var(--sf-surface);color:var(--sf-ink);font-size:16px;transition:border-color .15s var(--sf-ease)}
.sf-textarea{padding:12px 14px;min-height:110px;resize:vertical;line-height:1.5}
.sf-select{appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235B5F66' stroke-width='1.8' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.sf-input:hover,.sf-select:hover,.sf-textarea:hover{border-color:var(--sf-line-strong)}
.sf-input:focus,.sf-select:focus,.sf-textarea:focus{outline:none;border-color:var(--sf-ink)}
.sf-input::placeholder,.sf-textarea::placeholder{color:#9A9DA3}
.sf-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.sf-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sf-row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sf-input-suffix{position:relative}
.sf-input-suffix .sf-input{padding-right:44px}
.sf-input-suffix span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--sf-muted);font-size:15px;pointer-events:none}

/* сегменты-кнопки (радио/чекбоксы) */
.sf-seg{display:flex;flex-wrap:wrap;gap:8px}
.sf-seg label{position:relative;cursor:pointer}
.sf-seg input{position:absolute;opacity:0;pointer-events:none}
.sf-seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1.5px solid var(--sf-line);border-radius:var(--sf-r);background:var(--sf-surface);font-weight:500;font-size:15px;transition:all .15s var(--sf-ease);user-select:none}
.sf-seg label:hover span{border-color:var(--sf-line-strong)}
.sf-seg input:checked+span{background:var(--sf-ink);border-color:var(--sf-ink);color:var(--sf-bg)}
.sf-seg input:focus-visible+span{outline:2px solid var(--sf-focus);outline-offset:2px}
.sf-seg-sm span{min-height:38px;padding:0 12px;font-size:14px}

.sf-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:15px;min-height:28px}
.sf-check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--sf-ink);flex-shrink:0}

.sf-fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}
.sf-fieldset legend{padding:0;margin-bottom:12px;font-weight:600;font-size:17px;color:var(--sf-ink)}

/* ---------- компоненты ---------- */
.sf-card{background:var(--sf-surface);border:1px solid var(--sf-line);border-radius:var(--sf-r-lg);padding:24px}
.sf-card-tight{padding:16px}
.sf-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font-size:12px;font-weight:600;background:var(--sf-bg-2);color:var(--sf-text-2);white-space:nowrap}
.sf-badge-accent{background:var(--sf-accent-soft);color:var(--sf-accent-hover)}
.sf-badge-dark{background:var(--sf-ink);color:var(--sf-bg)}
.sf-badge-success{background:var(--sf-success-soft);color:var(--sf-success)}
.sf-badge-warn{background:var(--sf-warn-soft);color:var(--sf-warn)}
.sf-badge-danger{background:var(--sf-danger-soft);color:var(--sf-danger)}
.sf-dot{width:8px;height:8px;background:var(--sf-accent);display:inline-block}

.sf-flash{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:var(--sf-r);font-size:15px;font-weight:500}
.sf-flash-success{background:var(--sf-success-soft);color:var(--sf-success)}
.sf-flash-error{background:var(--sf-danger-soft);color:var(--sf-danger)}
.sf-flashes{display:flex;flex-direction:column;gap:8px}

.sf-empty{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--sf-muted)}
.sf-empty svg{color:var(--sf-line-strong)}
.sf-empty h3{color:var(--sf-ink)}

.sf-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--sf-line);margin-bottom:20px}
.sf-tabs::-webkit-scrollbar{display:none}
.sf-tabs a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;text-decoration:none;color:var(--sf-muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.sf-tabs a:hover{color:var(--sf-ink)}
.sf-tabs a.is-active{color:var(--sf-ink);border-bottom-color:var(--sf-accent)}
.sf-tabs small{font-size:12px;color:var(--sf-muted);font-variant-numeric:tabular-nums}

.sf-dl{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:10px 16px;margin:0;font-size:15px}
.sf-dl dt{color:var(--sf-muted)}
.sf-dl dd{margin:0;color:var(--sf-ink);font-weight:500}

/* ---------- SFNotify ---------- */
.sf-notify-wrap{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 32px));pointer-events:none}
.sf-notify{padding:14px 16px;border-radius:14px;background:var(--sf-ink);color:var(--sf-bg);font-weight:500;font-size:15px;box-shadow:var(--sf-shadow-lg);animation:sf-in .25s var(--sf-ease);pointer-events:auto}
.sf-notify.is-error{background:var(--sf-danger);color:#fff}
.sf-notify.is-out{opacity:0;transform:translateY(8px);transition:all .2s var(--sf-ease)}
@keyframes sf-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (min-width:900px){.sf-notify-wrap{bottom:24px}}

/* ---------- SFPopup ---------- */
.sf-popup{position:fixed;inset:0;z-index:900;display:flex;align-items:flex-end;justify-content:center;background:rgba(19,20,22,.5);animation:sf-fade .2s var(--sf-ease)}
.sf-popup[hidden]{display:none}
.sf-popup-box{width:100%;max-width:520px;max-height:92vh;overflow:auto;background:var(--sf-surface);border-radius:var(--sf-r-lg) var(--sf-r-lg) 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));animation:sf-up .28s var(--sf-ease)}
.sf-popup-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
@media (min-width:640px){.sf-popup{align-items:center}.sf-popup-box{border-radius:var(--sf-r-lg);padding:28px}}
@keyframes sf-fade{from{opacity:0}to{opacity:1}}
@keyframes sf-up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}

.sf-error-page{max-width:520px;margin:15vh auto;padding:0 20px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.sf-error-page pre{white-space:pre-wrap;font-size:13px;background:var(--sf-bg-2);padding:12px;border-radius:8px;max-width:100%;overflow:auto}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
