/* Allumira Analytics — matches the site's industrial graphite/silver system
   (Geist + Geist Mono, hairline grid, brushed-silver accent). */
:root{
  --bg:#2a2a2a; --bg-2:#232323; --bg-3:#1c1c1c;
  --ink:#ededea; --ink-d:#cfcfca; --mute:#8c8c88; --mute-d:#a8a8a3;
  --silver:#d6d8db; --silver-d:#7a7d80;
  --green:#3ad17f; --green-d:#2a9d63;
  --eo:cubic-bezier(.16,1,.3,1);
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.16);
  --fill:rgba(120,182,240,.16); --fill-2:rgba(150,202,245,.62);
  --sans:"Geist",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:"Geist Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:15px;line-height:1.5;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.mono{font-family:var(--mono)}

/* mono micro-label with the site's "/" tick */
.label,.panel__label,.kpi__label{font-family:var(--mono);font-weight:500;
  font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;color:var(--mute-d)}
.panel__label::before,.kpi__label::before{content:"/ ";color:var(--silver-d)}

/* ── top bar ─────────────────────────────────────────── */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;
  gap:24px;padding:14px clamp(16px,3vw,32px);
  background:rgba(28,28,28,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line)}
.top__brand{font-weight:600;font-size:13px;letter-spacing:.3em;text-transform:uppercase}
.top__brand span{color:var(--silver-d);font-weight:500}
.ranges{display:flex;gap:1px;margin-left:8px;background:var(--line-2);
  border:1px solid var(--line-2);border-radius:2px;overflow:hidden}
.ranges button{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
  padding:7px 13px;background:var(--bg-3);color:var(--mute-d);border:0;cursor:pointer;
  transition:background .15s,color .15s}
.ranges button:hover{color:var(--ink)}
.ranges button.is-on{background:var(--silver);color:#171717;font-weight:500}
.top__meta{margin-left:auto;display:flex;align-items:center;gap:18px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--mute)}
.top__out{padding:6px 12px;border:1px solid var(--line-2);border-radius:2px;
  color:var(--ink-d);transition:background .15s,color .15s}
.top__out:hover{background:var(--silver);color:#171717;border-color:var(--silver)}

/* ── main grid (1px gaps reveal the hairline background) ── */
.grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;
  background:var(--line);border-bottom:1px solid var(--line)}
.panel{grid-column:span 2;background:var(--bg);padding:22px clamp(16px,2vw,26px) 26px;
  min-width:0}
.panel--wide{grid-column:span 3}
.panel--hero,.kpis,.panel--full{grid-column:1/-1}
.panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.panel__label{margin-bottom:18px}
.panel--hero .panel__label,.panel__head .panel__label{margin-bottom:0}

/* ── KPI strip ───────────────────────────────────────── */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.kpi{background:var(--bg);padding:24px clamp(16px,2vw,30px) 26px}
.kpi__label{margin-bottom:14px}
.kpi__val{font-weight:600;font-size:clamp(30px,3.6vw,46px);line-height:1;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi--lead .kpi__val{color:var(--silver)}

/* ── ranked bars ─────────────────────────────────────── */
.bars{display:flex;flex-direction:column}
.bar{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;
  gap:12px;padding:8px 9px;margin:1px 0;isolation:isolate}
.bar__fill{position:absolute;inset:0 auto 0 0;background:var(--fill);
  border-right:1.5px solid var(--fill-2);z-index:-1;transition:width .5s cubic-bezier(.22,1,.36,1)}
.bar__name{font-size:13px;color:var(--ink-d);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.bar__val{font-family:var(--mono);font-size:12px;color:var(--silver);
  font-variant-numeric:tabular-nums}
.bar:hover .bar__fill{background:rgba(120,182,240,.26)}
.empty{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--silver-d);padding:8px 0}

/* ── hero chart ──────────────────────────────────────── */
.legend{display:flex;gap:16px;font-family:var(--mono);font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.legend__k{display:flex;align-items:center;gap:6px}
.legend__k::before{content:"";width:14px;height:2px;background:var(--green)}
.legend__k--uniq::before{background:var(--silver-d);height:0;border-top:2px dashed var(--silver-d)}
.chart{margin-top:18px;width:100%;height:240px}
.chart svg{display:block;width:100%;height:100%;overflow:visible}
.chart .grid-line{stroke:var(--line);stroke-width:1}
.chart .area{fill:rgba(58,209,127,.12)}
.chart .line{fill:none;stroke:var(--green);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.chart .uniq{fill:none;stroke:var(--silver-d);stroke-width:1.3;stroke-dasharray:3 3}
.chart .ax{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;fill:var(--mute)}
.chart .dot{fill:var(--green)}
.chart .dot--last{stroke:rgba(58,209,127,.32);stroke-width:5}

/* ── donut (devices) ─────────────────────────────────── */
.panel--donut .donut{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.donut svg{flex:0 0 auto}
.donut__seg{transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1)}
.donut__legend{display:flex;flex-direction:column;gap:9px;min-width:0}
.donut__row{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-d)}
.donut__sw{width:9px;height:9px;border-radius:1px;flex:0 0 auto}
.donut__row b{font-family:var(--mono);font-weight:500;color:var(--silver);margin-left:auto;
  font-variant-numeric:tabular-nums;font-size:12px}

/* ── inquiries log ───────────────────────────────────── */
.log{font-family:var(--mono);font-size:12px;columns:2;column-gap:44px}
.log__row{display:grid;grid-template-columns:120px 1fr auto;gap:14px;
  padding:9px 0;border-bottom:1px solid var(--line);color:var(--ink-d);
  letter-spacing:.03em;break-inside:avoid}
@media(max-width:760px){.log{columns:1}}
.log__row .t{color:var(--mute)}
.log__row .c{color:var(--silver)}

.is-loading{opacity:.4;transition:opacity .2s}

/* premium first-load reveal of the dashboard panels (staggered, once) */
#view-dash > *{transition:opacity .6s var(--eo),transform .6s var(--eo)}
#view-dash.pre-reveal > *{opacity:0;transform:translateY(16px)}
#view-dash.pre-reveal.is-revealed > *{opacity:1;transform:none}
/* lead-row entrance in the inquiries view */
@keyframes rowIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  #view-dash > *{transition:none}
  .bar__fill{transition:none}
}

/* ── top page nav (Дашборд / Заявки) ── */
.top__nav{display:flex;gap:2px;margin-left:6px}
.top__nav a,.top__nav button{padding:7px 12px;color:var(--mute-d);border-radius:2px;
  background:none;border:0;cursor:pointer;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.12em;text-transform:uppercase;transition:background .15s,color .15s}
.top__nav a:hover,.top__nav button:hover{color:var(--ink)}
.top__nav a.is-on,.top__nav button.is-on{color:var(--ink);background:var(--bg-3)}
.inq__count{font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  color:var(--silver-d);white-space:nowrap;margin-left:auto}

/* ── inquiries (leads) page ── */
.inq{max-width:1100px;margin:0 auto;padding:28px clamp(16px,3vw,32px) 0}
.inq__head{display:flex;align-items:center;justify-content:space-between;
  gap:18px;margin-bottom:18px;flex-wrap:wrap}
.inq__search{flex:1;min-width:220px;max-width:420px;background:var(--bg-3);
  border:1px solid var(--line-2);border-radius:2px;color:var(--ink);
  font-family:var(--mono);font-size:12.5px;padding:10px 13px;outline:none}
.inq__search:focus{border-color:var(--silver)}
.inq__search::placeholder{color:var(--silver-d)}
.inq__list{display:flex;flex-direction:column}
.inq-row{padding:16px 0;border-top:1px solid var(--line)}
.inq-row:first-child{border-top:0}
.inq-row__top{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.inq-row__date{font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  color:var(--mute);white-space:nowrap}
.inq-row__name{font-weight:600;font-size:15px;color:var(--ink)}
.inq-row__company{font-size:13px;color:var(--ink-d)}
.inq-row__meta{margin-left:auto;font-family:var(--mono);font-size:11px;
  letter-spacing:.06em;color:var(--silver-d);white-space:nowrap}
.inq-row__contacts{margin-top:6px;font-family:var(--mono);font-size:12.5px;color:var(--silver)}
.inq-row__contacts a{color:var(--silver);border-bottom:1px solid var(--line-2)}
.inq-row__contacts a:hover{color:var(--ink);border-color:var(--silver)}
.inq-row__msg{margin-top:10px;font-size:14px;line-height:1.6;color:var(--ink-d);
  max-width:75ch;white-space:pre-wrap}
.inq-row__attach{margin-top:10px}
.inq-row__file{font-family:var(--mono);font-size:12px;color:var(--silver);background:none;
  border:1px solid var(--line-2);border-radius:2px;padding:6px 11px;cursor:pointer;
  letter-spacing:.02em;transition:background .15s,color .15s}
.inq-row__file:hover{background:var(--silver);color:#171717;border-color:var(--silver)}
.inq-row__preview{margin-top:12px}
.inq-prev__img{max-width:100%;max-height:70vh;display:block;border:1px solid var(--line);border-radius:2px}
.inq-prev__pdf{width:100%;height:600px;border:1px solid var(--line-2);border-radius:2px;background:#fff}
.inq-prev__txt{max-height:420px;overflow:auto;background:var(--bg-3);border:1px solid var(--line);
  border-radius:2px;padding:12px 14px;font-family:var(--mono);font-size:12px;line-height:1.55;
  color:var(--ink-d);white-space:pre-wrap;word-break:break-word}
.inq-prev__none{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--silver-d)}

/* ── login ───────────────────────────────────────────── */
body.login{min-height:100dvh;display:grid;place-items:center;padding:24px;
  position:relative;overflow:hidden}
/* living contour field — marching-squares isolines, monochrome silver,
   masked away from the card centre so it frames rather than competes */
.login-fx{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;
  animation:fxIn 1.6s cubic-bezier(.16,1,.3,1) .1s forwards;
  -webkit-mask-image:radial-gradient(ellipse 58% 56% at 50% 52%, transparent 22%, #000 76%);
          mask-image:radial-gradient(ellipse 58% 56% at 50% 52%, transparent 22%, #000 76%)}
@keyframes fxIn{to{opacity:1}}
.login__card{animation:cardIn .9s cubic-bezier(.16,1,.3,1) .2s both}
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.login-fx{animation:none;opacity:1}.login__card{animation:none}}
.login__card{position:relative;z-index:1;width:100%;max-width:340px;background:var(--bg-2);
  border:1px solid var(--line-2);border-radius:3px;padding:32px 28px;
  display:flex;flex-direction:column}
.login__brand{font-weight:600;font-size:14px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:6px}
.login__brand span{color:var(--silver-d);font-weight:500}
.login__hint{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--mute);margin-bottom:26px}
.login__label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mute-d);margin-bottom:8px}
.login__input{background:var(--bg-3);border:1px solid var(--line-2);border-radius:2px;
  color:var(--ink);font-family:var(--mono);font-size:14px;padding:11px 13px;outline:none}
.login__input:focus{border-color:var(--silver)}
.login__error{font-family:var(--mono);font-size:11px;color:#e88;margin-top:10px}
.login__btn{margin-top:18px;background:var(--silver);color:#171717;border:0;border-radius:2px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:500;padding:13px;cursor:pointer;transition:opacity .15s}
.login__btn:hover{opacity:.88}

/* ── responsive ──────────────────────────────────────── */
@media(max-width:1080px){
  .grid{grid-template-columns:repeat(4,1fr)}
  .panel,.panel--wide{grid-column:span 2}
}
@media(max-width:640px){
  .top{flex-wrap:wrap;gap:12px}
  .top__meta{margin-left:0;width:100%;justify-content:space-between;order:3}
  .ranges{margin-left:0}
  .grid{grid-template-columns:repeat(2,1fr)}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .panel,.panel--wide,.panel--donut{grid-column:1/-1}
  .kpi__val{font-size:34px}
}
