*{margin:0;padding:0;box-sizing:border-box}

:root{
  /* Базовий фон і поверхні (темна SaaS) */
  --void:#0A0E17;
  --panel:#111725;
  --panel-2:#151C2C;
  --elevated:#1A2233;
  --border:#222C3F;
  --border-bright:#31405A;

  /* Акценти — багатоколірні (як у референсі) */
  --amber:#FFB020;
  --amber-soft:rgba(255,176,32,.12);
  --amber-dim:#B37D18;

  --blue:#4B9CFF;
  --blue-soft:rgba(75,156,255,.12);
  --emerald:#34D399;
  --emerald-soft:rgba(52,211,153,.12);
  --red:#FF5C6C;
  --red-soft:rgba(255,92,108,.12);
  --violet:#A78BFA;
  --violet-soft:rgba(167,139,250,.12);

  /* Текст */
  --text:#EAF0F8;
  --dim:#96A3BA;
  --faint:#5E6B82;

  /* Семантика */
  --good:var(--emerald);
  --weak:#FBBF24;
  --none:var(--red);
  --sky:var(--blue);

  /* Тіні (нове — SaaS-глибина) */
  --sh-sm:0 1px 2px rgba(0,0,0,.28);
  --sh:0 4px 14px rgba(0,0,0,.30);
  --sh-lg:0 12px 34px rgba(0,0,0,.42);
  --sh-amber:0 8px 26px rgba(255,176,32,.18);

  --display:'Chakra Petch',sans-serif;
  --body:'Inter',sans-serif;
  --mono:'JetBrains Mono',monospace;

  --r:14px;
  --r-lg:20px;
  --r-sm:10px;
}

[data-theme="light"]{
  --void:#EEF1F6;
  --panel:#FFFFFF;
  --panel-2:#FbFCFE;
  --elevated:#F3F6FA;
  --border:#E1E7EF;
  --border-bright:#C9D3E0;

  --amber:#E0870B;
  --amber-soft:rgba(224,135,11,.10);
  --amber-dim:#B45309;
  --blue:#2563EB;
  --blue-soft:rgba(37,99,235,.10);
  --emerald:#059669;
  --emerald-soft:rgba(5,150,105,.10);
  --red:#E11D48;
  --red-soft:rgba(225,29,72,.10);
  --violet:#7C3AED;
  --violet-soft:rgba(124,58,237,.10);

  --text:#0F1826;
  --dim:#51607A;
  --faint:#8492A8;
  --weak:#CA8A04;

  --sh-sm:0 1px 2px rgba(15,24,38,.06);
  --sh:0 4px 14px rgba(15,24,38,.08);
  --sh-lg:0 14px 34px rgba(15,24,38,.12);
  --sh-amber:0 8px 26px rgba(224,135,11,.20);
}

body{
  font-family:var(--body);
  background:var(--void);
  color:var(--text);
  min-height:100vh;
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(900px 500px at 12% -8%, rgba(75,156,255,.06), transparent 60%),
    radial-gradient(760px 460px at 88% -4%, rgba(255,176,32,.05), transparent 60%);
  background-attachment:fixed;
}

/* ===================== ШАПКА ===================== */
header{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;gap:22px;
  padding:11px 22px;
  background:color-mix(in srgb, var(--void) 82%, transparent);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.bar{display:flex;align-items:center;gap:20px;width:100%;max-width:1500px;margin:0 auto}

.logo{display:flex;align-items:center;gap:11px;flex:none}
.logo-mark{
  width:34px;height:34px;flex:none;
  display:flex;align-items:center;justify-content:center;
  border-radius:11px;
  background:linear-gradient(135deg,var(--amber),#FF8A3D);
  color:#0B0F16;font-family:var(--display);font-weight:700;font-size:15px;
  box-shadow:var(--sh-amber);
}
.logo-mark span::after{content:'▲';font-size:14px}
.logo-text{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:.3px}
.logo-text b{color:var(--amber)}

nav{display:flex;align-items:center;gap:3px;flex:1;overflow-x:auto;scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
.navbtn{
  background:none;border:none;color:var(--dim);
  font-family:var(--display);font-weight:600;font-size:13.5px;
  padding:8px 15px;border-radius:10px;cursor:pointer;
  white-space:nowrap;transition:.15s;position:relative;
}
.navbtn:hover{color:var(--text);background:var(--elevated)}
.navbtn.active{color:var(--amber);background:var(--amber-soft)}

.who{font-size:12.5px;color:var(--dim);font-family:var(--mono);white-space:nowrap;flex:none}
.who b{color:var(--text);font-weight:600}

.theme-btn{
  background:var(--panel);border:1px solid var(--border);color:var(--dim);
  width:36px;height:36px;border-radius:11px;font-size:15px;
  margin-left:6px;cursor:pointer;transition:.15s;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-sm);
}
.theme-btn:hover{border-color:var(--amber);color:var(--amber);transform:translateY(-1px)}

.bell-dot{
  position:absolute;top:-5px;right:-5px;
  background:var(--red);color:#fff;
  font-size:9px;font-weight:700;font-family:var(--body);
  min-width:16px;height:16px;border-radius:8px;padding:0 4px;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--void);
}

/* ===================== ВЬЮ / ЗАГОЛОВКИ ===================== */
.view{display:none;padding:26px 22px 60px;max-width:1500px;margin:0 auto}
.view.on{display:block;animation:fade .32s cubic-bezier(.2,.7,.2,1)}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.eyebrow{
  font-family:var(--mono);font-size:10.5px;font-weight:500;
  text-transform:uppercase;letter-spacing:1.4px;
  color:var(--amber);margin-bottom:7px;
}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:16px;flex-wrap:wrap;margin-bottom:24px;
}
h1{font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-.4px;line-height:1.12}
h2{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.2px}
h3{font-family:var(--display);font-weight:600;font-size:16px}
.sub{color:var(--dim);font-size:13.5px;margin-top:5px}

/* Іконка-бейдж у заголовку розділу */
.h-ic{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;margin-right:14px;
  background:linear-gradient(135deg,var(--amber-soft),transparent);
  border:1px solid var(--border-bright);
  border-radius:14px;font-size:20px;
  vertical-align:middle;box-shadow:var(--sh-sm);
}

/* ===================== ПОВЕРХНІ ===================== */
.hud{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--r);
  position:relative;
  box-shadow:var(--sh-sm);
}
.card{padding:20px;border-radius:var(--r);transition:.18s}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}

/* ===================== ФОРМИ ===================== */
label{
  display:block;
  font-family:var(--display);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.8px;
  color:var(--dim);margin-bottom:7px;
}
.field{margin-bottom:14px}
input,select,textarea{
  width:100%;
  background:var(--elevated);
  border:1px solid var(--border);
  border-radius:var(--r-sm);
  padding:10px 13px;
  color:var(--text);font-family:var(--body);font-size:14px;
  transition:.15s;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--amber);
  background:var(--panel);
  box-shadow:0 0 0 3px var(--amber-soft);
}
input::placeholder,textarea::placeholder{color:var(--faint)}
textarea{resize:vertical;min-height:70px}

.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:640px){.row,.row3{grid-template-columns:1fr}}

.divider{height:1px;background:var(--border);margin:18px 0}

/* ===================== КНОПКИ ===================== */
.btn{
  background:linear-gradient(135deg,var(--amber),#FF8A3D);
  border:none;border-radius:var(--r-sm);
  color:#0B0F16;
  font-family:var(--display);font-weight:700;font-size:13.5px;
  letter-spacing:.2px;
  padding:11px 20px;cursor:pointer;transition:.16s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:var(--sh-amber);
}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:var(--sh-lg)}
.btn:active{transform:none}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;filter:none}

.btn.ghost{background:var(--panel);border:1px solid var(--border);color:var(--dim);box-shadow:var(--sh-sm)}
.btn.ghost:hover{border-color:var(--amber);color:var(--amber);background:var(--elevated)}
.btn.ghost.on{background:var(--emerald-soft);border-color:var(--emerald);color:var(--emerald)}

.btn.danger{background:var(--red-soft);border:1px solid var(--red);color:var(--red);box-shadow:none}
.btn.danger:hover{background:var(--red);color:#fff}

.btn.sm{padding:8px 14px;font-size:12px;border-radius:9px}

/* Сегментований перемикач */
.seg{display:inline-flex;gap:3px;background:var(--elevated);padding:4px;border-radius:12px;border:1px solid var(--border);flex:none}
.seg button{
  background:none;border:none;color:var(--dim);
  font-family:var(--display);font-weight:600;font-size:12.5px;
  padding:7px 15px;border-radius:9px;cursor:pointer;transition:.15s;
  white-space:nowrap;
}
.seg button:hover{color:var(--text)}
.seg button.on{background:var(--panel);color:var(--amber);box-shadow:var(--sh-sm)}

/* ===================== READOUT / STAT CELLS ===================== */
.readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:14px}
.cell{
  background:var(--panel-2);
  border:1px solid var(--border);
  border-radius:var(--r-sm);padding:14px 16px;
  transition:.15s;
}
.cell:hover{border-color:var(--border-bright)}
.cell .k{
  font-family:var(--mono);font-size:9.5px;font-weight:500;
  text-transform:uppercase;letter-spacing:.8px;
  color:var(--faint);margin-bottom:7px;
  display:flex;align-items:center;gap:5px;
}
.cell .k i{font-style:normal;opacity:.75;font-size:12px}
.cell .v{
  font-family:var(--display);font-weight:700;font-size:24px;line-height:1;
  color:var(--text);
}
.cell .v small{font-size:12px;color:var(--dim);font-weight:500;margin-left:2px}
.v.amber{color:var(--amber)}
.v.good{color:var(--good)}
.v.weak{color:var(--weak)}
.v.none{color:var(--none)}

/* ===================== HERO РЕЗУЛЬТАТУ ===================== */
.result-hero{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.hero-main{flex:1;min-width:160px}
.hero-main .k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--faint)}
.dist-banner{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--amber-soft),transparent);
  border:1px solid var(--border-bright);border-left:3px solid var(--amber);
  border-radius:var(--r-sm);padding:11px 15px;margin-bottom:14px;
}
.dist-banner .db-k{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim)}
.dist-banner .db-v{font-family:var(--display);font-weight:700;font-size:24px;color:var(--amber);line-height:1}
.dist-banner .db-v small{font-size:13px;color:var(--dim);font-weight:500}
.dist-banner .db-note{font-family:var(--mono);font-size:11.5px;margin-left:auto;font-weight:600}
.dist-banner .db-note.good{color:var(--good)}
.dist-banner .db-note.none{color:var(--none)}

.hero-v{
  font-family:var(--display);font-weight:700;font-size:46px;line-height:1;
  margin:5px 0 6px;
  background:linear-gradient(135deg,var(--amber),#FF8A3D);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero-v small{font-size:17px;color:var(--dim);margin-left:3px;-webkit-text-fill-color:var(--dim)}
.hero-v.weak{background:linear-gradient(135deg,var(--weak),#F59E0B);-webkit-background-clip:text;background-clip:text}
.hero-v.none{background:linear-gradient(135deg,var(--red),#FB7185);-webkit-background-clip:text;background-clip:text}
.hero-lim{font-size:11.5px;color:var(--dim);font-family:var(--mono)}
.hero-lim b{color:var(--text)}
.hero-range{font-family:var(--mono);font-size:11px;color:var(--faint);margin:-2px 0 5px}

.hero-side{display:flex;flex-direction:column;gap:8px;min-width:130px}
.hero-side>div{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  border-bottom:1px solid var(--border);padding-bottom:6px;
}
.hero-side .k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--faint)}
.hero-side .hv{font-family:var(--display);font-weight:700;font-size:17px}
.hero-side .hv small{font-size:10px;color:var(--dim);margin-left:2px}
.hv.amber{color:var(--amber)}

/* ===================== КАЛЬКУЛЯТОР ===================== */
.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.calc-left{display:flex;flex-direction:column}
.calc-right #calcResult{position:sticky;top:84px}
@media(max-width:1000px){
  .calc-grid{grid-template-columns:1fr}
  .calc-right #calcResult{position:static}
}
#calcResult .readout{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}
#calcResult .cell{padding:12px 14px}
#calcResult .cell .v{font-size:21px}
#calcResult h2{font-size:17px}

.calc-controls{padding:16px 18px}
.cc-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.cc-field{flex:1;min-width:110px}
.cc-field label{margin-bottom:6px}
.cc-grow{flex:2}
.cc-toggle{
  background:var(--elevated);border:1px solid var(--border);color:var(--dim);
  font-family:var(--mono);font-size:12px;cursor:pointer;
  border-radius:var(--r-sm);padding:9px;transition:.15s;
}
.cc-toggle:hover{border-color:var(--amber);color:var(--amber)}

#calcMap{
  border-radius:var(--r);border:1px solid var(--border);
  overflow:hidden;background:var(--void);box-shadow:var(--sh-sm);
}
.leaflet-container{background:#0A0E14!important;font-family:var(--body)!important}
[data-theme="light"] .leaflet-container{background:#E6EBF2!important}
.leaflet-popup-content-wrapper{
  background:var(--panel)!important;color:var(--text)!important;
  border:1px solid var(--border-bright)!important;border-radius:12px!important;
  box-shadow:var(--sh-lg)!important;
}
.leaflet-popup-tip{background:var(--panel)!important}

.map-hint{font-size:11.5px;color:var(--faint);font-family:var(--mono)}
.map-coords-bar{display:flex;gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--dim);padding:9px 2px}
.map-tag{
  display:inline-block;background:var(--amber);color:#0B0F16;
  font-family:var(--display);font-weight:700;font-size:9px;
  letter-spacing:.6px;padding:3px 8px;border-radius:6px;margin-right:7px;
}
.route-tip{
  background:var(--emerald)!important;color:#06090F!important;border:none!important;
  font-family:var(--mono);font-size:10.5px;font-weight:700;border-radius:6px;
}

.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;font-family:var(--mono);color:var(--dim);margin-top:10px}
.legend span{display:flex;align-items:center;gap:6px}
.dot{width:9px;height:9px;border-radius:3px;display:inline-block}

.coord-box{display:flex;gap:8px;margin-bottom:8px}
.coord-box input{flex:1;font-family:var(--mono);font-size:12px;padding:9px 12px}
.coord-hint{font-size:10.5px;color:var(--faint);font-family:var(--mono);margin-bottom:10px;line-height:1.5}

.wx-inline{margin:-4px 0 10px}
.wx-inline:empty{margin:0}
.weather-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.wcard{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--panel-2);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:8px 12px;box-shadow:var(--sh-sm);
}
.wcard .map-tag{margin:0}
.wc-main{font-family:var(--display);font-size:19px;font-weight:700;color:var(--text);line-height:1}
.wc-wind{font-family:var(--mono);font-size:12px;color:var(--dim);margin-left:auto}
.wc-wind b{color:var(--amber);font-weight:700}
.wx-empty-card{opacity:.6}
.wc-empty{font-family:var(--mono);font-size:11.5px;color:var(--faint)}

.zone-warn{
  background:var(--red-soft);
  border:1px solid var(--red);
  border-left:3px solid var(--red);
  color:var(--red);
  padding:12px 16px;border-radius:var(--r-sm);
  font-size:12.5px;font-weight:600;line-height:1.5;margin-bottom:14px;
}

/* ===================== ТЕГИ / ЧІПИ ===================== */
.tag{
  display:inline-block;
  background:var(--elevated);border:1px solid var(--border-bright);
  color:var(--dim);
  font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.4px;padding:4px 10px;border-radius:8px;margin-right:6px;
}
.tag.prem{background:linear-gradient(135deg,var(--amber),#FF8A3D);border-color:transparent;color:#0B0F16;font-weight:700}
.meta{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--faint);align-items:center}
.stars{color:var(--amber);font-size:14px;letter-spacing:1px}

.comp-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}
.comp-row:last-child{border-bottom:none}
.comp-type{
  font-family:var(--mono);font-size:9.5px;font-weight:600;
  color:var(--faint);border:1px solid var(--border-bright);
  padding:4px 9px;border-radius:7px;min-width:52px;text-align:center;flex:none;
}

/* ===================== ПРОФІЛЬ ===================== */
.profile-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:13px;margin-bottom:26px;max-width:760px}
.pnav-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  text-align:left;
  background:linear-gradient(145deg,var(--elevated),var(--panel-2));
  border:1px solid var(--border-bright);border-radius:var(--r);
  padding:18px;cursor:pointer;transition:.18s;
  position:relative;overflow:hidden;box-shadow:var(--sh-sm);
}
.pnav-card::after{
  content:'→';position:absolute;top:16px;right:17px;
  color:var(--dim);font-size:15px;transition:.18s;
  opacity:0;transform:translateX(-4px);font-family:var(--mono);
}
.pnav-card:hover{border-color:var(--amber);transform:translateY(-3px);box-shadow:var(--sh);background:linear-gradient(145deg,var(--panel-2),var(--elevated))}
.pnav-card:hover::after{opacity:1;transform:none;color:var(--amber)}
.pnav-ic{
  font-size:20px;margin-bottom:10px;
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  background:var(--amber-soft);border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
/* Кожна картка — свій кольоровий акцент на іконці */
.pnav-card:nth-child(1) .pnav-ic{background:var(--blue-soft)}
.pnav-card:nth-child(2) .pnav-ic{background:var(--amber-soft)}
.pnav-card:nth-child(3) .pnav-ic{background:var(--emerald-soft)}
.pnav-card:nth-child(4) .pnav-ic{background:var(--violet-soft)}
.pnav-t{font-family:var(--display);font-weight:600;font-size:14.5px;color:var(--text)}
.pnav-d{font-size:11.5px;color:var(--dim);font-family:var(--mono)}

.avatar{
  width:64px;height:64px;border-radius:20px;
  background:linear-gradient(135deg,var(--amber),#FF8A3D);color:#0B0F16;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:700;font-size:24px;flex:none;
  box-shadow:var(--sh-amber);
}

/* ===================== СПОВІЩЕННЯ ===================== */
.notif-panel{
  position:absolute;top:60px;right:18px;
  width:344px;max-width:calc(100vw - 30px);max-height:70vh;overflow-y:auto;
  background:var(--panel);border:1px solid var(--border-bright);
  border-radius:var(--r);box-shadow:var(--sh-lg);z-index:200;
}
.notif-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;border-bottom:1px solid var(--border);
  font-family:var(--display);font-weight:600;font-size:14px;
  position:sticky;top:0;background:var(--panel);
}
.notif-clear{background:none;border:none;color:var(--amber);font-size:11.5px;cursor:pointer;font-family:var(--mono)}
.notif-item{display:flex;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);align-items:flex-start}
.notif-item.unread{background:var(--amber-soft)}
.notif-ic{width:28px;height:28px;border-radius:9px;background:var(--elevated);display:flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.notif-t{font-weight:600;font-size:12.5px;color:var(--text)}
.notif-m{font-size:11.5px;color:var(--dim);margin-top:2px;line-height:1.45}
.notif-d{font-size:9.5px;color:var(--faint);margin-top:4px;font-family:var(--mono)}

/* ===================== СПОНСОРИ / ДОНАТ ===================== */
.sponsors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:13px}
.sponsor-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;background:var(--panel-2);border:1px solid var(--border);
  border-radius:var(--r);padding:20px 16px;text-decoration:none;
  transition:.18s;min-height:108px;box-shadow:var(--sh-sm);
}
.sponsor-card:hover{border-color:var(--amber);transform:translateY(-2px);box-shadow:var(--sh)}
.sponsor-logo{max-width:100%;max-height:50px;object-fit:contain}
.sponsor-name{font-family:var(--display);font-size:12.5px;font-weight:600;color:var(--text);text-align:center}
.sponsor-row{display:flex;gap:7px;margin-bottom:7px;align-items:center}
.sponsor-row input{flex:1;font-size:12px;font-family:var(--mono)}

.donate-row{display:flex;align-items:center;gap:13px;margin-top:10px}
.donate-row .dk{font-family:var(--display);font-size:11px;text-transform:uppercase;color:var(--faint);min-width:58px;letter-spacing:.6px}
.donate-row code{
  font-family:var(--mono);background:var(--elevated);
  padding:9px 13px;border-radius:9px;border:1px solid var(--border);
  cursor:pointer;flex:1;font-size:12.5px;transition:.15s;
}
.donate-row code:hover{border-color:var(--amber)}

/* ===================== WIP / ШТУРМАН ===================== */
.wip-badge{
  display:inline-block;font-size:10px;font-family:var(--mono);
  text-transform:uppercase;letter-spacing:.6px;
  background:var(--amber-soft);color:var(--weak);
  border:1px solid var(--weak);
  padding:3px 11px;border-radius:20px;
  vertical-align:middle;margin-left:10px;font-weight:500;
}
.wip-list{display:flex;flex-direction:column;gap:14px}
.wip-item{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.6;color:var(--dim)}
.wip-item b{color:var(--text)}
.wip-dot{width:8px;height:8px;border-radius:3px;background:var(--amber);margin-top:7px;flex:none}

/* ===================== МОДАЛКА ===================== */
.modal-bg{
  display:none;position:fixed;inset:0;z-index:300;
  background:rgba(6,9,15,.72);backdrop-filter:blur(7px);
  align-items:center;justify-content:center;padding:22px;
}
.modal-bg.on{display:flex;animation:fade .2s}
.modal{max-width:560px;width:100%;padding:28px;border-radius:var(--r-lg);animation:pop .28s cubic-bezier(.2,.8,.2,1);max-height:88vh;overflow-y:auto;box-shadow:var(--sh-lg)}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:none}}

/* ===================== АВТОРИЗАЦІЯ ===================== */
.auth-wrap{max-width:430px;margin:56px auto}
.auth-tabs{display:flex;gap:3px;margin-bottom:22px;background:var(--elevated);padding:4px;border-radius:12px;border:1px solid var(--border)}
.auth-tabs button{
  flex:1;background:none;border:none;color:var(--dim);
  font-family:var(--display);font-weight:600;font-size:13.5px;
  padding:10px;border-radius:9px;cursor:pointer;transition:.15s;
}
.auth-tabs button.on{background:var(--panel);color:var(--amber);box-shadow:var(--sh-sm)}
.apibox{margin-bottom:18px}

/* ===================== ТОСТ ===================== */
.toast{
  position:fixed;bottom:26px;left:50%;transform:translateX(-50%);
  z-index:400;display:flex;align-items:center;gap:12px;
  background:var(--panel);border:1px solid var(--border-bright);
  border-radius:12px;padding:14px 20px;
  font-size:13.5px;box-shadow:var(--sh-lg);
  animation:slideUp .3s;max-width:90vw;
}
@keyframes slideUp{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
.bar-i{width:3px;height:22px;border-radius:2px;background:var(--emerald);flex:none}
.toast.err .bar-i{background:var(--red)}
.toast.err{border-color:var(--red)}
.toast.ok .bar-i{background:var(--emerald)}

/* ===================== ПУСТО / СПІНЕР ===================== */
.empty{text-align:center;padding:52px 22px;color:var(--faint);font-size:13.5px;line-height:1.7}
.empty .ic{font-size:36px;margin-bottom:14px;opacity:.4}

.spinner{
  width:16px;height:16px;border:2px solid var(--border-bright);
  border-top-color:var(--amber);border-radius:50%;
  display:inline-block;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.hint{font-size:11.5px;color:var(--faint);font-family:var(--mono);line-height:1.5}
.back-link{background:none;border:none;color:var(--faint);font-family:var(--mono);font-size:12.5px;cursor:pointer;padding:0;margin-bottom:12px;transition:.15s}
.back-link:hover{color:var(--amber)}

/* ===================== СТАТТЯ ===================== */
.article-body{font-size:15px;line-height:1.75;color:var(--text)}
.article-body p{margin-bottom:14px}
.article-body h2,.article-body h3{margin:22px 0 10px}
.article-body ul,.article-body ol{margin:0 0 14px 20px}
.article-body li{margin-bottom:5px}
.article-body a{color:var(--amber)}
.article-body img{max-width:100%;border-radius:12px;margin:12px 0}
.article-body code{font-family:var(--mono);background:var(--elevated);padding:2px 6px;border-radius:5px;font-size:13px}
.article-body pre{background:var(--void);border:1px solid var(--border);padding:14px;border-radius:12px;overflow-x:auto;margin-bottom:14px}
.article-body blockquote{border-left:3px solid var(--amber);padding-left:14px;color:var(--dim);margin-bottom:14px}

a{color:var(--amber);text-decoration:none}
a:hover{text-decoration:underline}

/* ===================== РАДАР ЗОН ===================== */
.radar{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.seg-z{flex:1;min-width:44px;height:34px;border-radius:7px;display:flex;align-items:flex-end;justify-content:center;position:relative}
.seg-z .lab{font-family:var(--mono);font-size:9px;color:var(--faint);margin-bottom:2px}
.z-good{background:var(--emerald-soft);border:1px solid var(--emerald)}
.z-weak{background:rgba(251,191,36,.15);border:1px solid var(--weak)}
.z-none{background:var(--red-soft);border:1px solid var(--red)}
.home{width:9px;height:9px;border-radius:50%;background:var(--amber);flex:none;align-self:center}

/* ===================== ТУЛБАР / ПОШУК ===================== */
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.toolbar input,.toolbar select{flex:1;min-width:170px}
.inp-ic{position:relative;flex:1;min-width:180px;display:flex;align-items:center}
.inp-ic span{position:absolute;left:13px;font-size:14px;opacity:.5;pointer-events:none}
.inp-ic input{padding-left:38px;width:100%}

/* ===================== ПАГІНАЦІЯ ===================== */
.pager{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:30px;flex-wrap:wrap}
.pg-btn{
  min-width:38px;height:38px;padding:0 11px;
  background:var(--panel);border:1px solid var(--border);
  color:var(--dim);border-radius:11px;cursor:pointer;
  font-family:var(--display);font-weight:600;font-size:13px;transition:.15s;box-shadow:var(--sh-sm);
}
.pg-btn:hover:not(:disabled){border-color:var(--amber);color:var(--amber);transform:translateY(-1px)}
.pg-btn.on{background:linear-gradient(135deg,var(--amber),#FF8A3D);border-color:transparent;color:#0B0F16}
.pg-btn:disabled{opacity:.35;cursor:not-allowed}
.pg-dots{color:var(--faint);padding:0 4px;font-family:var(--mono)}

/* ===================== КАРТКА СТАТТІ ===================== */
.card-art{cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:.18s;box-shadow:var(--sh-sm)}
.card-art:hover{border-color:var(--amber);transform:translateY(-4px);box-shadow:var(--sh)}
.card-cover{width:100%;aspect-ratio:16/10;background:var(--void);overflow:hidden;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.card-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:.3s}
.card-art:hover .card-cover img{transform:scale(1.04)}
.card-cover.ph span{font-size:36px;opacity:.22}
.card-body{padding:16px 18px 18px}
.card-body h3{margin:9px 0 10px;line-height:1.35}

.cover-up{display:flex;gap:14px;align-items:flex-start}
.cover-prev{width:130px;height:82px;flex:none;background:var(--elevated);border:1px dashed var(--border-bright);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.cover-prev img{width:100%;height:100%;object-fit:cover}
.cover-prev span{font-size:26px;opacity:.3}
.art-hero{width:100%;max-height:340px;overflow:hidden;border-bottom:1px solid var(--border)}
.art-hero img{width:100%;height:100%;object-fit:cover;display:block}

/* ===================== ФАКТОРИ ===================== */
.factors{margin-top:12px;padding:13px 15px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);display:flex;flex-direction:column;gap:8px}
.fct{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--dim);line-height:1.4}
.fct-i{font-size:13px;opacity:.75;width:16px;text-align:center;flex:none}
.fct b{color:var(--text);font-weight:600}
.fct b.c-weak{color:var(--weak)}
.fct b.c-none{color:var(--none)}

.hidden{display:none!important}

/* ===================== ШТУРМАН (реальний час) ===================== */
.nav-flightbar{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;
}
@media(max-width:900px){.nav-flightbar{grid-template-columns:repeat(2,1fr)}}
.nfb-cell{
  background:var(--panel);border:1px solid var(--border);
  border-radius:var(--r);padding:13px 16px;box-shadow:var(--sh-sm);
}
.nfb-k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--faint);margin-bottom:6px}
.nfb-v{font-family:var(--display);font-weight:700;font-size:26px;line-height:1;color:var(--text)}
.nfb-v.amber{color:var(--amber)}
.nfb-v small{font-size:13px;color:var(--dim);font-weight:500;margin-left:2px}
.nfb-sub{font-family:var(--mono);font-size:10.5px;color:var(--faint);margin-top:5px}
.nfb-cfg .nfb-margin{display:flex;align-items:center;gap:8px;margin:2px 0 2px}
.nfb-margin input[type=range]{flex:1;accent-color:var(--amber);height:4px}
.nfb-margin span{font-family:var(--mono);font-size:11px;color:var(--amber);min-width:44px;text-align:right}

.nav-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:stretch}
@media(max-width:1100px){.nav-grid{grid-template-columns:1fr}}

.nav-video{display:flex;flex-direction:column;padding:14px;min-height:620px}
.nv-stage{
  position:relative;flex:1;min-height:520px;background:#05070C;border:1px solid var(--border);
  border-radius:var(--r);overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.nv-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.nv-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nv-select{
  background:var(--elevated);border:1px solid var(--border);color:var(--text);
  border-radius:9px;padding:7px 10px;font-size:12.5px;font-family:var(--body);width:auto;
}
.nv-stage video{width:100%;height:100%;object-fit:contain;display:none;background:#05070C}
.nv-overlay{position:absolute;inset:0;pointer-events:none}
.nv-overlay svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:140px;height:140px;opacity:.85}
.nv-ai-badge{
  position:absolute;top:12px;left:12px;
  background:rgba(52,211,153,.14);border:1px solid var(--emerald);
  color:var(--emerald);font-family:var(--mono);font-size:10.5px;font-weight:600;
  padding:4px 10px;border-radius:20px;
}
.nv-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}
.nv-hint{font-family:var(--mono);font-size:11px;color:var(--amber);margin-top:12px;max-width:340px;line-height:1.5}

.nav-maps{display:flex;flex-direction:column;gap:16px}
.nav-map-wrap{padding:10px;display:flex;flex-direction:column;flex:1;min-height:300px}
.nm-label{margin-bottom:8px}
.nm-label .map-tag{margin:0}
.nav-map{flex:1;min-height:280px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);background:var(--void)}

/* Пін дрона/цілі на карті */
.nav-pin{
  position:absolute;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;white-space:nowrap;
}
.nav-pin span{
  font-size:20px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6));
  line-height:1;
}
.nav-pin b{
  font-family:var(--display);font-size:9px;font-weight:700;letter-spacing:.5px;
  color:#fff;background:var(--pc);padding:1px 6px;border-radius:5px;margin-top:2px;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
}


/* ===================== ПІДКАЗКА КРИЛА/ЛІТАКА ===================== */
.wing-hint{
  background:var(--blue-soft);border:1px solid var(--blue);
  border-left:3px solid var(--blue);border-radius:var(--r-sm);
  padding:11px 15px;margin:6px 0 14px;
  font-size:12.5px;line-height:1.5;color:var(--blue);
}

/* ===================== КАРТКА ЗБІРКИ (ангар) ===================== */
.build-card{padding:18px;display:flex;flex-direction:column;gap:14px;transition:.18s}
.build-card:hover{border-color:var(--border-bright);transform:translateY(-2px);box-shadow:var(--sh)}
.bc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.bc-title{display:flex;flex-direction:column;gap:8px}
.bc-title .tag{align-self:flex-start;margin:0}
.bc-title h3{line-height:1.25}
.bc-actions{display:flex;gap:6px;flex:none}
.ic-btn{
  width:32px;height:32px;border-radius:9px;
  background:var(--elevated);border:1px solid var(--border);
  color:var(--dim);font-size:13px;cursor:pointer;transition:.15s;
  display:flex;align-items:center;justify-content:center;
}
.ic-btn:hover{border-color:var(--amber);color:var(--amber)}
.ic-btn.danger:hover{border-color:var(--red);color:var(--red);background:var(--red-soft)}

.bc-specs{display:flex;flex-direction:column;gap:7px;padding:2px 0}
.bc-spec{display:flex;gap:12px;align-items:baseline;font-size:13px}
.bc-sk{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--faint);min-width:64px}
.bc-sv{color:var(--text);font-weight:500}

.bc-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bc-tile{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 8px;text-align:center}
.bc-tk{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);margin-bottom:5px}
.bc-tv{font-family:var(--display);font-weight:700;font-size:17px;color:var(--text);line-height:1}
.bc-tv small{font-size:10px;color:var(--dim);font-weight:500}
.bc-tv.good{color:var(--emerald)}
.bc-tv.weak{color:var(--weak)}
.bc-foot{display:flex;gap:8px;margin-top:2px}
.bc-foot .btn{flex:1}

/* ===================== КАРТКА НОВИНИ ===================== */
.news-card{cursor:pointer}
.news-cover{position:relative;background:linear-gradient(135deg,var(--elevated),var(--panel-2))}
.news-cover-ic{font-size:40px;opacity:.25}
.news-src{
  position:absolute;top:10px;left:10px;
  background:rgba(10,14,20,.7);backdrop-filter:blur(6px);
  border:1px solid var(--border-bright);
  color:var(--text);font-family:var(--mono);font-size:10.5px;font-weight:600;
  padding:3px 10px;border-radius:20px;
}
[data-theme="light"] .news-src{background:rgba(255,255,255,.8);color:var(--text)}

/* ===================== ПРОФІЛЬ (редизайн) ===================== */
.profile-hero{position:relative;overflow:hidden;padding:0;margin-bottom:18px}
.profile-hero .ph-glow{
  position:absolute;top:-60%;right:-10%;width:340px;height:340px;
  background:radial-gradient(circle,var(--amber-soft),transparent 70%);
  pointer-events:none;
}
.ph-inner{position:relative;display:flex;gap:22px;align-items:center;flex-wrap:wrap;padding:26px 28px;
  background:linear-gradient(135deg,var(--amber-soft),transparent 55%)}
.ph-avatar-wrap{position:relative;flex:none}
.ph-avatar{width:78px;height:78px;font-size:30px;border-radius:22px}
.ph-status{
  position:absolute;bottom:-4px;right:-4px;
  width:28px;height:28px;border-radius:50%;
  background:var(--emerald);color:#06090f;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;border:3px solid var(--panel);box-shadow:var(--sh-sm);
}
.ph-info{flex:1;min-width:200px}
.ph-name{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:-.3px;line-height:1.1}
.ph-email{font-family:var(--mono);font-size:13px;color:var(--dim);margin:5px 0}
.ph-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ph-joined{font-size:11.5px;color:var(--faint);margin-top:10px;font-family:var(--mono)}

.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
@media(max-width:700px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
.kpi-card{
  background:var(--panel);border:1px solid var(--border);
  border-radius:var(--r);padding:18px;box-shadow:var(--sh-sm);transition:.18s;
}
.kpi-card:hover{border-color:var(--border-bright);transform:translateY(-2px);box-shadow:var(--sh)}
.kpi-ic{
  width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:19px;margin-bottom:12px;
}
.kpi-ic.amber{background:var(--amber-soft)}
.kpi-ic.good{background:var(--emerald-soft)}
.kpi-ic.blue{background:var(--blue-soft)}
.kpi-ic.violet{background:var(--violet-soft)}
.kpi-v{font-family:var(--display);font-weight:700;font-size:26px;line-height:1;color:var(--text)}
.kpi-k{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--faint);margin-top:6px}

.mini-stats{display:flex;gap:8px;flex-wrap:wrap}
.ms{flex:1;min-width:80px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0}
.ms-v{font-family:var(--display);font-weight:700;font-size:20px;color:var(--text)}
.ms-v.amber{color:var(--amber)}
.ms-k{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint)}

/* ===================== ШТУРМАН: стрілка курсу ===================== */
#navCourseArrow{
  position:absolute;left:50%;top:50%;
  width:120px;height:120px;
  transform:translate(-50%,-50%);
  transition:transform .3s cubic-bezier(.2,.7,.2,1);
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.5));
}
.nv-course-hint{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  background:rgba(10,14,20,.82);backdrop-filter:blur(8px);
  border:1px solid var(--border-bright);border-radius:20px;
  padding:8px 18px;font-family:var(--display);font-weight:600;font-size:14px;
  color:var(--amber);white-space:nowrap;box-shadow:var(--sh);
}

/* ===================== WYSIWYG-РЕДАКТОР ===================== */
.editor{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--elevated)}
.editor-toolbar{
  display:flex;flex-wrap:wrap;gap:2px;align-items:center;
  padding:8px 10px;background:var(--panel-2);border-bottom:1px solid var(--border);
}
.etb{
  min-width:32px;height:32px;padding:0 8px;
  background:none;border:1px solid transparent;border-radius:8px;
  color:var(--dim);font-family:var(--body);font-size:14px;cursor:pointer;transition:.13s;
  display:inline-flex;align-items:center;justify-content:center;
}
.etb:hover{background:var(--elevated);color:var(--text);border-color:var(--border)}
.etb:active{background:var(--amber-soft);color:var(--amber)}
.etb-sep{width:1px;height:20px;background:var(--border);margin:0 4px}

.editor-area{
  min-height:280px;max-height:520px;overflow-y:auto;
  padding:16px 18px;color:var(--text);font-size:15px;line-height:1.7;
  outline:none;
}
.editor-area:empty::before{content:attr(data-placeholder);color:var(--faint)}
.editor-area:focus{background:var(--panel)}
.editor-area h2{font-family:var(--display);font-size:22px;margin:16px 0 10px}
.editor-area h3{font-family:var(--display);font-size:18px;margin:14px 0 8px}
.editor-area p{margin:0 0 12px}
.editor-area ul,.editor-area ol{margin:0 0 12px 22px}
.editor-area li{margin-bottom:5px}
.editor-area blockquote{border-left:3px solid var(--amber);padding-left:14px;margin:0 0 12px;color:var(--dim)}
.editor-area pre{background:var(--void);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-family:var(--mono);font-size:13px;overflow-x:auto;margin:0 0 12px}
.editor-area a{color:var(--amber)}

/* ===================== КНОПКА «ДОДАТИ КОМПОНЕНТ» ===================== */
.add-comp-btn{
  background:none;border:none;color:var(--amber);
  font-family:var(--mono);font-size:11.5px;cursor:pointer;
  padding:6px 0 0;text-align:left;transition:.13s;
}
.add-comp-btn:hover{text-decoration:underline;opacity:.85}

/* Мотор-модалка відкривається ПОВЕРХ модалки збірки — має бути вище. */
#motorModal{z-index:350}
#motorModal .modal{max-width:520px}
