@font-face { font-family:'Inter'; font-weight:400; src:url('/lib/inter-v20-cyrillic_latin-regular.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-weight:600; src:url('/lib/inter-v20-cyrillic_latin-600.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-weight:700; src:url('/lib/inter-v20-cyrillic_latin-700.woff2') format('woff2'); }

:root{
  --bg:#0d0f12; --bg2:#15181d; --bg3:#1c1f26; --bg-canvas:#0a0b0d; --border:#23272e;
  --accent:#e8edf2; --accent2:#5b8def; --ok:#54d98c; --warn:#e5484d; --warn2:#e0a33a;
  --violet:#9d7bff; --text:#e6e9ee; --text2:#767d88;
  --glass:rgba(21,24,29,0.86);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:'Inter',system-ui,sans-serif;color:var(--text);font-feature-settings:"tnum"}

/* ─── фон-карта: сетка + мягкие цветовые пятна (без диагональных дорог) ─── */
body{
  min-height:100vh;display:grid;place-items:center;padding:40px 24px;overflow:hidden;position:relative;
  background:
    radial-gradient(circle at 18% 28%, rgba(91,141,239,.10), transparent 42%),
    radial-gradient(circle at 82% 72%, rgba(84,217,140,.07), transparent 42%),
    repeating-linear-gradient(0deg, transparent, transparent 44px, rgba(35,39,46,.45) 44px, rgba(35,39,46,.45) 45px),
    repeating-linear-gradient(90deg, transparent, transparent 44px, rgba(35,39,46,.45) 44px, rgba(35,39,46,.45) 45px),
    var(--bg-canvas);
}

/* слой пинов */
.mapfx{position:absolute;inset:0;pointer-events:none;z-index:0}
.pin{position:absolute;width:11px;height:11px;border-radius:50%}
.pin.ok{background:var(--ok);box-shadow:0 0 12px var(--ok)}
.pin.warn{background:var(--warn);box-shadow:0 0 12px var(--warn)}
.pin.warn2{background:var(--warn2);box-shadow:0 0 12px var(--warn2)}
.pin-green{top:22%;left:16%}
.pin-orange{top:30%;left:82%}
.pin-red{top:78%;left:72%}
.radius{position:absolute;top:calc(30% - 56px);left:calc(82% - 56px);width:124px;height:124px;border-radius:50%;
  border:1px dashed rgba(224,163,58,.5);background:rgba(224,163,58,.05);pointer-events:none;z-index:0}

/* ─── стеклянный блок с глоу-рамкой ─── */
.box{position:relative;z-index:1;width:min(420px,92vw);
  background:var(--glass);
  -webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);
  border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.6);
  padding:38px 38px 32px}
.box::before{content:'';position:absolute;inset:-1px;border-radius:19px;padding:1px;z-index:-1;
  background:linear-gradient(135deg, rgba(232,237,242,.5), rgba(91,141,239,.4) 40%, transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude}

/* ─── контент ─── */
.logo{display:block;height:46px;margin-bottom:20px}
h1{font-size:25px;font-weight:700;margin-bottom:9px}
.sub{font-size:14px;line-height:1.6;color:var(--text2);margin-bottom:24px}
label.fl{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text2);margin-bottom:8px}
.inp{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);
  padding:15px 16px;font-family:'Inter',monospace;font-size:18px;letter-spacing:.14em;text-align:center;
  outline:none;text-transform:uppercase}
.inp:focus{border-color:var(--accent)}
.inp::placeholder{color:#3c424b;letter-spacing:.14em}
.msg{min-height:18px;margin-top:12px;font-size:13px;color:var(--warn);text-align:center}
.msg.ok{color:var(--ok)}
.btn{margin-top:16px;width:100%;background:transparent;border:1px solid var(--accent);color:var(--accent);
  border-radius:9px;padding:15px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}
.btn:hover:not(:disabled){background:rgba(232,237,242,.08)}
.btn:disabled{opacity:.5;cursor:default}

/* toast на странице входа */
.act-toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%) translateY(14px);
  background: var(--bg3, #1c1f26);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  padding: 12px 22px;
  border-radius: 20px;
  box-shadow: 0 8px 28px rgba(0,0,0,.55);
  opacity: 0;
  transition: opacity .25s, transform .25s;
  z-index: 2000;
  pointer-events: none;
  white-space: nowrap;
}
.act-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.act-toast.err { border-color: var(--warn); color: var(--warn); }
.act-toast.ok  { border-color: var(--ok); color: var(--ok); }