/* Нийтлэг загвар — гурван горимд хамаарна */
:root{
    --bg:#f4f3ef; --card:#fff; --ink:#18201d; --ink-2:#4a544f; --muted:#79837d;
    --line:#e4e2da; --line-2:#efeee8;
    --accent:#1d6b3a; --accent-2:#155029; --accent-soft:#e9f2ec; --accent-ring:#bcd9c6;
    --warn-bg:#fdf7e8; --warn-line:#ecdfbe; --warn-ink:#6d5a26;
    --r-s:6px; --r-m:10px; --r-l:14px;
    --sh-1:0 1px 2px rgba(24,32,29,.06), 0 1px 3px rgba(24,32,29,.05);
    --sh-2:0 4px 16px rgba(24,32,29,.12);
    --panel-w:372px;
    /* гадаргын давхарга ба өргөлт — загвар солиход эргэнэ */
    --fill-1:rgba(24,32,29,.032); --fill-2:rgba(24,32,29,.055);
    --fill-3:rgba(24,32,29,.085); --line-strong:rgba(24,32,29,.2);
    --ink-strong:#0f1714; --on-accent:#155029;
    --tip-bg:rgba(255,255,255,.98); --tip-ink:#18201d;
    --sh-pane:0 1px 2px rgba(24,32,29,.05),0 6px 20px rgba(24,32,29,.06);
    --hero-1:rgba(29,107,58,.12); --hero-2:rgba(14,116,144,.11);
    --tone-a:#1d6b3a; --tone-b:#0e7490;
    --glow-a:rgba(29,107,58,.07); --glow-b:rgba(14,116,144,.06);
    --title-1:#1d6b3a; --title-2:#3aa06a;
    --bar-a:#2f8f57; --bar-b:#6aa32b; --org-a:#0e7490; --org-b:#0891b2;
    --dot:#2f8f57;
  }
  *{box-sizing:border-box}
  html,body{margin:0;height:100%;overflow:hidden;
    font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
  #app{display:flex;height:100%}
  #map{flex:1;height:100%;background:#e8e6e0}
  button{font:inherit;color:inherit}

  /* ============================================================== самбар */
  #panel{width:var(--panel-w);min-width:var(--panel-w);height:100%;background:var(--card);
    border-right:1px solid var(--line);display:flex;flex-direction:column;
    overflow:hidden;position:relative;z-index:1100}
  #panel.hidden{display:none}

  .head{padding:14px 16px 0;flex:none}
  .head-top{display:flex;align-items:flex-start;gap:10px}
  .head h1{margin:0;font-size:15.5px;font-weight:650;letter-spacing:-.2px;line-height:1.25}
  .head .sub{margin:3px 0 0;font-size:11.5px;color:var(--muted);line-height:1.35}
  .icon-btn{width:30px;height:30px;flex:none;border:1px solid var(--line);
    border-radius:var(--r-s);background:var(--card);cursor:pointer;display:flex;
    align-items:center;justify-content:center;color:var(--ink-2);transition:.14s}
  .icon-btn:hover{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent)}

  /* загвар солих — гэрэлтэй үед сар, харанхуй үед нар харагдана */
  #theme-btn .sun,#theme-btn .moon{display:flex}
  #theme-btn .sun{display:none}
  body.dark #theme-btn .sun{display:flex}
  body.dark #theme-btn .moon{display:none}

  /* хайлт */
  .omni{position:relative;margin:11px 0 12px}
  .omni-in{display:flex;align-items:center;gap:7px;border:1px solid var(--line);
    border-radius:var(--r-m);background:#fbfbf9;padding:0 10px;transition:.14s}
  .omni-in:focus-within{border-color:var(--accent-ring);background:#fff;
    box-shadow:0 0 0 3px var(--accent-soft)}
  .omni-in svg{flex:none;color:var(--muted)}
  .omni input{flex:1;border:0;background:none;outline:none;padding:9px 0;font:inherit;
    font-size:13.5px;color:inherit;min-width:0}
  .omni input::placeholder{color:var(--muted)}
  .omni kbd{font:inherit;font-size:10.5px;color:var(--muted);border:1px solid var(--line);
    border-bottom-width:2px;border-radius:4px;padding:0 4px;background:#fff}
  .omni-res{position:absolute;top:calc(100% + 5px);left:0;right:0;background:var(--card);
    border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--sh-2);
    max-height:340px;overflow-y:auto;z-index:40;display:none;padding:4px}
  .omni-res.on{display:block}
  .omni-res .grp{font-size:10px;text-transform:uppercase;letter-spacing:.7px;
    color:var(--muted);padding:7px 9px 3px;font-weight:600}
  .omni-res .it{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--r-s);
    cursor:pointer;font-size:13px}
  .omni-res .it:hover,.omni-res .it.sel{background:var(--accent-soft)}
  .omni-res .it .m{margin-left:auto;color:var(--muted);font-size:11.5px;
    font-variant-numeric:tabular-nums;white-space:nowrap}
  .omni-res .it .d{color:var(--muted);font-size:11.5px}
  .omni-res .none{padding:12px 10px;color:var(--muted);font-size:12.5px}

  /* табууд */
  .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 8px;flex:none}
  .tabs button{flex:1;padding:7px 2px 8px;border:0;background:none;cursor:pointer;
    display:flex;flex-direction:column;align-items:center;gap:3px;
    color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;
    border-radius:var(--r-s) var(--r-s) 0 0;transition:.14s}
  .tabs button:hover{color:var(--ink-2);background:var(--line-2)}
  .tabs button span{font-size:10.5px;letter-spacing:-.1px;line-height:1.1;text-align:center}
  .tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}
  .tabs button.on span{font-weight:650}
  .tabs button[data-dev]{display:none}
  body.dev .tabs button[data-dev]{display:flex}
  .tabs svg{width:19px;height:19px}

  .body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px 34px;display:none}
  .body.on{display:block}
  .body::-webkit-scrollbar{width:9px}
  .body::-webkit-scrollbar-thumb{background:#dcdad2;border-radius:9px;border:3px solid var(--card)}
  .body::-webkit-scrollbar-thumb:hover{background:#c9c7bd}

  /* ============================================================== хэсгүүд */
  .sec{margin-bottom:18px}
  .sec>h2{margin:0 0 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.85px;
    color:var(--muted);font-weight:650;display:flex;align-items:center;gap:6px}
  .sec>h2::after{content:"";flex:1;height:1px;background:var(--line-2)}
  .sec h3{margin:14px 0 6px;font-size:12.5px;font-weight:650;color:var(--ink-2)}
  .card{border:1px solid var(--line);border-radius:var(--r-m);background:var(--card);
    padding:9px 11px;margin-bottom:8px}
  .card.tint{background:#fbfbf8}

  /* сэлгүүр ба сонголт */
  .opt{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--r-s);
    cursor:pointer;font-size:13.5px;transition:.12s;user-select:none}
  .opt:hover{background:var(--line-2)}
  .opt input{accent-color:var(--accent);margin:0;flex:none;width:15px;height:15px}
  .opt>input[type=checkbox]{appearance:none;-webkit-appearance:none;width:34px;height:19px;
    border-radius:19px;background:#d9d7cf;position:relative;cursor:pointer;transition:.16s}
  .opt>input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:15px;
    height:15px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:.16s}
  .opt>input[type=checkbox]:checked{background:var(--accent)}
  .opt>input[type=checkbox]:checked::after{transform:translateX(15px)}
  td>input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:1px 0 0}
  .opt input[type=checkbox]:focus-visible,.opt input[type=radio]:focus-visible{
    outline:2px solid var(--accent-ring);outline-offset:2px}
  .opt.sub{margin-left:8px;font-size:13px}
  .opt .hint{margin-left:auto;font-size:11px;color:var(--muted)}

  select{width:100%;padding:8px 30px 8px 10px;border:1px solid var(--line);
    border-radius:var(--r-m);background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%2379837d' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center;
    font:inherit;font-size:13.5px;color:inherit;appearance:none;-webkit-appearance:none;cursor:pointer}
  select:hover{border-color:#d2d0c6}
  select:focus{outline:none;border-color:var(--accent-ring);box-shadow:0 0 0 3px var(--accent-soft)}
  select:disabled{color:var(--muted);background-color:#f7f7f4;cursor:default}
  input[type=range]{width:100%;accent-color:var(--accent);margin:2px 0}

  /* тайлбар */
  .legend{display:flex;flex-direction:column;gap:1px}
  .legend div{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:2.5px 0;line-height:1.3}
  .sw{width:13px;height:13px;border-radius:3.5px;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.13)}
  body.dark .sw{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
  .sw.dot{border-radius:50%}
  .legend .val{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;
    font-size:11.5px;white-space:nowrap}

  /* үзүүлэлтийн хайрцаг */
  .kpi{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .kpi>div{background:#fbfbf8;border:1px solid var(--line);border-radius:var(--r-m);padding:9px 11px}
  .kpi b{display:block;font-size:17px;font-weight:650;font-variant-numeric:tabular-nums;
    letter-spacing:-.4px;line-height:1.2}
  /* Зөвхөн шууд хүүхэд — big() нь тоог <b><span title>…</span></b> болгон
     ороодог тул `.kpi span` гэвэл тоо өөрөө жижгэрч саарал болно. */
  .kpi>div>span{font-size:10.5px;color:var(--muted);line-height:1.3;display:block;
    margin-top:2px}
  .kpi b span{font:inherit;color:inherit;letter-spacing:inherit}

  /* улсын зорилт — бусад үзүүлэлтээс ялгаатай тодруулсан хайрцаг */
  .kpi>div.goal{border-color:var(--accent-ring);
    background:linear-gradient(155deg,var(--accent-soft),transparent 78%);
    box-shadow:0 0 0 1px var(--accent-soft)}
  .kpi>div.goal b{color:var(--accent-2)}
  .kpi>div.goal em{display:inline-block;margin-bottom:5px;padding:2px 7px;
    border-radius:20px;font-style:normal;font-size:8.5px;font-weight:700;
    letter-spacing:.9px;text-transform:uppercase;color:var(--accent-2);
    background:var(--accent-soft);border:1px solid var(--accent-ring)}

  /* хүснэгт */
  table{width:100%;border-collapse:collapse;font-size:12.5px}
  th{text-align:left;font-weight:650;color:var(--muted);font-size:10px;
    text-transform:uppercase;letter-spacing:.5px;padding:0 4px 7px;
    border-bottom:1px solid var(--line);position:sticky;top:-14px;background:var(--card);z-index:1}
  td{padding:6px 4px;border-bottom:1px solid var(--line-2);
    font-variant-numeric:tabular-nums;vertical-align:top;line-height:1.35}
  tr.click{cursor:pointer}
  tr.click:hover td{background:var(--accent-soft)}
  tr:last-child td{border-bottom:0}
  td.num,th.num{text-align:right;white-space:nowrap}
  .bar{height:3.5px;border-radius:3px;background:var(--accent);margin-top:4px;opacity:.85}
  .sub-line{color:var(--muted);font-size:11px;line-height:1.3;margin-top:1px}

  /* бусад */
  .back{background:none;border:0;color:var(--accent);cursor:pointer;padding:2px 0 10px;
    font-size:13px;font-weight:600;display:flex;align-items:center;gap:5px}
  .back:hover{color:var(--accent-2)}
  .note{font-size:11.5px;color:var(--muted);line-height:1.5;margin:6px 0 0}
  .warn{font-size:11.5px;line-height:1.55;background:var(--warn-bg);
    border:1px solid #ecdfbe;border-radius:var(--r-m);padding:9px 11px;color:var(--warn-ink);margin-top:8px}
  .warn b{color:#5a4a1c}
  .badge{display:inline-block;padding:1px 6px;border-radius:20px;font-size:10.5px;
    background:var(--accent-soft);color:var(--accent);font-weight:600}
  .badge.off{background:#f0efe9;color:var(--muted)}
  code{background:var(--line-2);padding:1px 5px;border-radius:4px;font-size:11.5px;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
  ul.tight{margin:5px 0 0;padding-left:17px;font-size:12.5px;line-height:1.5}
  ul.tight li{margin-bottom:2px}
  .empty{padding:22px 12px;text-align:center;color:var(--muted);font-size:12.5px;
    border:1px dashed var(--line);border-radius:var(--r-m)}

  /* ачаалалт */
  #load{position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent);
    transform-origin:left;transform:scaleX(0);transition:transform .3s ease;z-index:60}
  #load.on{transform:scaleX(.7)}
  #load.done{transform:scaleX(1);opacity:0;transition:transform .2s,opacity .4s .2s}

  /* ========================================================== газрын зураг */
  .map-btn{position:absolute;z-index:1000;width:34px;height:34px;border:1px solid var(--line);
    border-radius:var(--r-s);background:var(--card);cursor:pointer;display:flex;
    align-items:center;justify-content:center;color:var(--ink-2);box-shadow:var(--sh-1);
    transition:.14s}
  .map-btn:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-ring)}
  #fold{top:12px;left:calc(var(--panel-w) + 12px);transition:left .18s}
  #fold.wide{left:12px}
  #home{top:12px;right:12px}
  .leaflet-top.leaflet-right{margin-top:46px}

  #maplegend{position:absolute;left:calc(var(--panel-w) + 12px);bottom:16px;z-index:1000;
    background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border:1px solid var(--line);
    border-radius:var(--r-m);box-shadow:var(--sh-2);max-width:230px;display:none;
    transition:left .18s;overflow:hidden}
  #maplegend.on{display:block}
  #maplegend.wide{left:12px}
  #maplegend .lg-head{display:flex;align-items:center;gap:6px;padding:8px 10px;cursor:pointer;
    font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:650}
  #maplegend .lg-head:hover{background:var(--line-2)}
  #maplegend .lg-head svg{margin-left:auto;transition:transform .18s}
  #maplegend.min .lg-head svg{transform:rotate(-90deg)}
  #maplegend .lg-body{padding:0 10px 9px;max-height:min(46vh,420px);overflow-y:auto}
  #maplegend.min .lg-body{display:none}
  #maplegend .lg-t{font-size:10.5px;font-weight:650;color:var(--ink-2);margin:7px 0 3px}
  #maplegend .legend div{font-size:11.5px;padding:1.5px 0}
  #maplegend .sw{width:11px;height:11px}

  .aimag-label{font-size:11px;font-weight:650;color:#39433f;
    text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 4px #fff;white-space:nowrap;pointer-events:none}
  .leaflet-container{font:inherit;background:#e8e6e0}
  .leaflet-popup-content-wrapper{border-radius:var(--r-m);box-shadow:var(--sh-2);
    border:1px solid var(--line)}
  .leaflet-popup-content{margin:11px 13px;line-height:1.45}
  .leaflet-tooltip{border-radius:var(--r-s);border:1px solid var(--line);
    box-shadow:var(--sh-1);font-size:12px;padding:4px 8px}
  .pop b{font-size:13px;display:block;margin-bottom:2px}
  .pop table{font-size:12px;margin-top:5px}
  .pop td{border:0;padding:2.5px 0}
  .pop td:first-child{color:var(--muted);padding-right:14px;white-space:nowrap}
  .chip{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}

  #hint{position:absolute;bottom:18px;left:calc(50% + var(--panel-w)/2);
    transform:translateX(-50%);z-index:1200;background:rgba(24,32,29,.92);color:#fff;
    padding:9px 15px;border-radius:22px;font-size:12.5px;display:none;
    box-shadow:var(--sh-2);max-width:min(460px,70vw);text-align:center}
  #hint code{background:rgba(255,255,255,.16);color:#fff}
  #hint.wide{left:50%}

  #tip{position:absolute;left:calc(var(--panel-w) + 12px);top:56px;z-index:1000;
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
    box-shadow:var(--sh-2);padding:11px 13px;max-width:274px;font-size:12.5px;
    line-height:1.5;display:none;transition:left .18s}
  #tip.on{display:block}
  #tip.wide{left:12px}
  #tip b{display:block;margin-bottom:3px;font-size:13px}
  #tip button{display:block;margin-top:10px;border:0;background:var(--accent);color:#fff;
    padding:6px 13px;border-radius:var(--r-s);cursor:pointer;font-size:12.5px;font-weight:600}
  #tip button:hover{background:var(--accent-2)}

  @media (max-width:820px){
    :root{--panel-w:100vw}
    #panel{position:absolute;inset:0;border-right:0}
    #fold,#maplegend,#tip,#hint{left:12px}
    #hint{left:50%}
    #maplegend{max-width:190px}
    .tabs button span{font-size:11px}
  }

/* ==================================================== бүрхүүл ба горимууд */
#shell{display:flex;flex-direction:column;height:100%}
#top{flex:none;display:flex;align-items:center;gap:14px;height:58px;padding:6px 14px;
  background:var(--card);border-bottom:1px solid var(--line);position:relative;z-index:1300}
#top .brand{display:flex;align-items:center;gap:8px;font-weight:650;font-size:14px;
  letter-spacing:-.2px;white-space:nowrap}
#top .brand svg{color:var(--accent);flex:none}
/* Лого нь <img> тул дотоод <style> нь хуудсанд алдагдахгүй, ургалтын
   хөдөлгөөн ачаалахад нэг удаа тоглоно. */
#top .brand .logo{flex:none;height:32px;width:auto;display:block;margin:0 -2px}
#top .brand small{font-weight:400;color:var(--muted);font-size:11.5px}
.main-site-link{display:inline-flex;align-items:center;gap:6px;flex:none;
  padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-s);
  color:var(--ink-2);background:var(--fill-1);font-size:12px;font-weight:600;
  line-height:1;text-decoration:none;white-space:nowrap;transition:.14s}
.main-site-link:hover{color:var(--accent);border-color:var(--accent-ring);
  background:var(--accent-soft)}
.main-site-link svg{flex:none}

/* ================================================= газрын зургийн туслах */
#assistant{position:fixed;right:16px;bottom:68px;z-index:2100;font-family:var(--font-sans)}
.ai-open{position:relative;isolation:isolate;display:flex;align-items:center;gap:12px;height:56px;
  padding:0 22px;border:1px solid rgba(0,255,151,.9);border-radius:999px;
  background:#00ee8a;color:#031c15;
  box-shadow:0 9px 28px rgba(0,0,0,.4),0 0 0 3px rgba(0,238,138,.18),
    0 0 26px rgba(0,238,138,.38);font:750 17px/1 var(--font-sans);cursor:pointer;
  letter-spacing:-.15px;transition:transform .22s ease,filter .22s ease,
    box-shadow .22s ease;animation:ai-open-breathe 2.8s ease-in-out infinite}
.ai-open::before{content:"";position:absolute;z-index:-1;inset:-2px;border:2px solid rgba(55,235,151,.72);
  border-radius:inherit;pointer-events:none;animation:ai-open-ring 2.8s ease-out infinite}
.ai-open:hover{filter:brightness(1.08) saturate(1.08);transform:translateY(-2px);
  box-shadow:0 11px 30px rgba(0,0,0,.4),0 0 0 4px rgba(24,211,128,.22),
    0 0 30px rgba(24,211,128,.55)}
.ai-open:focus-visible{outline:3px solid #fff;outline-offset:3px}
.ai-open svg{width:28px;height:28px;flex:none}
@keyframes ai-open-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes ai-open-ring{0%{opacity:.72;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.16)}}
@media (prefers-reduced-motion:reduce){
  .ai-open,.ai-open::before{animation:none}
}
.assistant-open .ai-open{opacity:0;transform:translateY(8px) scale(.94);pointer-events:none}
.ai-box{position:absolute;right:0;bottom:0;display:flex;flex-direction:column;width:420px;
  height:min(640px,calc(100vh - 112px));overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  border-radius:22px;background:color-mix(in srgb,var(--card) 94%,transparent);
  box-shadow:0 24px 80px rgba(4,20,14,.32),0 0 0 1px rgba(255,255,255,.04);
  backdrop-filter:blur(18px);opacity:0;transform:translateY(16px) scale(.975);transform-origin:bottom right;
  transition:opacity .2s ease,transform .24s cubic-bezier(.2,.8,.2,1)}
.ai-box.is-open{opacity:1;transform:none}
.ai-box[hidden]{display:none}
.ai-box>header{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:14px 16px;
  border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--accent-soft),transparent 72%)}
.ai-heading{display:flex;align-items:center;gap:11px;min-width:0}
.ai-heading>span:last-child{display:flex;min-width:0;flex-direction:column;gap:5px}
.ai-head-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:13px;
  background:#00ee8a;color:#032016;box-shadow:0 7px 20px rgba(0,238,138,.2)}
.ai-head-icon svg{width:24px;height:24px}
.ai-box>header b{font-size:14.5px;line-height:1.15;color:var(--ink);letter-spacing:-.1px}
.ai-box>header small{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted)}
.ai-box>header small i{width:6px;height:6px;border-radius:50%;background:#00d87d;
  box-shadow:0 0 0 3px rgba(0,216,125,.13)}
.ai-close{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid transparent;
  border-radius:50%;background:transparent;color:var(--muted);font:400 24px/1 var(--font-sans);
  cursor:pointer;transition:background .15s,color .15s,transform .15s}
.ai-close:hover{background:var(--fill-2);color:var(--ink);transform:rotate(4deg)}
.ai-log{flex:1;min-height:0;overflow:auto;padding:18px 16px 10px;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.ai-msg{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;margin-bottom:16px;
  animation:ai-message-in .28s ease both}
.ai-msg.user{grid-template-columns:minmax(0,1fr) 30px}
.ai-msg.user .ai-avatar{grid-column:2}.ai-msg.user .ai-bubble{grid-column:1;grid-row:1;
  justify-self:end;background:var(--accent);color:#fff;border-color:transparent}
.ai-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;
  background:var(--accent-soft);color:var(--accent);font-size:9px;font-weight:800}
.ai-bubble{max-width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:5px 15px 15px 15px;
  background:color-mix(in srgb,var(--fill-1) 76%,var(--card));color:var(--ink-2);
  font-size:12px;line-height:1.55;box-shadow:0 4px 14px rgba(5,25,17,.05)}
.ai-bubble b{color:var(--ink)}.ai-bubble p{margin:5px 0 0}
.ai-msg.user .ai-bubble b{color:#fff}
body.dark .ai-msg.user .ai-bubble,body.dark .ai-msg.user .ai-bubble b{color:#063b2b}
.ai-thinking{display:flex;align-items:center;gap:8px;min-height:18px;color:var(--muted);font-weight:600}
.ai-thinking-dots{display:flex;align-items:center;gap:3px;color:inherit}
.ai-thinking-dots i{width:5px;height:5px;border-radius:50%;background:var(--accent);
  animation:ai-thinking-dot 1.05s ease-in-out infinite}
.ai-thinking-dots i:nth-child(2){animation-delay:.14s}
.ai-thinking-dots i:nth-child(3){animation-delay:.28s}
.ai-source{display:block;margin-top:8px;padding-top:7px;border-top:1px solid var(--line);
  color:var(--muted);font-size:9.5px}
.ai-actions,.ai-prompts{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.ai-prompts{flex-direction:column;align-items:stretch}
.ai-actions button,.ai-prompts button{position:relative;padding:8px 10px;border:1px solid var(--line);
  border-radius:10px;background:var(--card);color:var(--ink-2);font:600 10.5px/1.3 var(--font-sans);
  text-align:left;cursor:pointer;transition:border-color .16s,background .16s,color .16s,transform .16s}
.ai-prompts button{width:100%;padding-right:28px}
.ai-prompts button::after{content:'›';position:absolute;right:11px;top:50%;color:var(--muted);
  font-size:17px;line-height:1;transform:translateY(-52%)}
.ai-actions button:hover,.ai-prompts button:hover{border-color:var(--accent-ring);
  background:var(--accent-soft);color:var(--accent);transform:translateX(2px)}
.ai-table{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.ai-table button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  gap:7px;width:100%;padding:6px 7px;border:0;border-radius:7px;background:var(--card);
  color:var(--ink-2);font:500 10.5px/1.2 var(--font-sans);cursor:pointer;text-align:left}
.ai-table button:hover{background:var(--accent-soft)}
.ai-table i{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;
  background:var(--fill-2);color:var(--muted);font-style:normal;font-size:9px}
.ai-table b{color:var(--accent);font-variant-numeric:tabular-nums}
.ai-form{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;margin:0 12px;padding:8px;
  border:1px solid var(--line);border-radius:15px;background:var(--fill-1);
  transition:border-color .16s,box-shadow .16s}
.ai-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ai-form input{min-width:0;height:40px;padding:0 7px;border:0;background:transparent;color:var(--ink);
  font:400 12px var(--font-sans);outline:0}
.ai-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ai-form input:focus{box-shadow:none}
.ai-form button{border:0;border-radius:11px;background:#00dc80;color:#062117;
  box-shadow:0 5px 15px rgba(0,220,128,.22);font:800 19px/1 var(--font-sans);cursor:pointer;
  transition:transform .15s,filter .15s}
.ai-form button:hover{filter:brightness(1.05);transform:translateY(-1px)}
.ai-form.busy{opacity:.55;pointer-events:none}
.ai-disclaimer{padding:8px 12px 12px;color:var(--muted);font-size:9px;text-align:center}
body.dark .ai-box{box-shadow:0 20px 65px rgba(0,0,0,.55)}
@keyframes ai-message-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes ai-thinking-dot{0%,60%,100%{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){
  .ai-box,.ai-msg,.ai-thinking-dots i{transition:none;animation:none}
}
.modes{display:flex;gap:2px;margin-left:auto;padding:4px;border-radius:9999px;
  background:var(--fill-1)}
.modes a{padding:6px 15px;border-radius:9999px;font-size:14px;line-height:1.35;
  text-decoration:none;color:var(--ink-2);font-weight:550;white-space:nowrap;
  transition:color .14s,background-color .14s,box-shadow .14s}
.modes a:hover{background:var(--fill-2);color:var(--ink)}
.modes a.on{background:var(--card);color:var(--accent);font-weight:650;
  box-shadow:var(--sh-1)}
#view{flex:1;min-height:0;position:relative}
@media (max-width:820px){
  #top{height:auto;flex-wrap:wrap;padding:8px 12px;gap:8px}
  #top .brand small{display:none}
  .main-site-link span{display:none}
  .main-site-link{padding:7px}
  #assistant{right:10px;bottom:62px}
  .ai-open{width:50px;height:50px;padding:0;justify-content:center}.ai-open span{display:none}
  .ai-open svg{width:25px;height:25px}
  .ai-box{position:fixed;right:8px;bottom:8px;width:calc(100vw - 16px);
    height:min(680px,76dvh);border-radius:20px;transform-origin:bottom center}
  .modes{margin-left:0;width:100%}
  .modes a{flex:1;text-align:center;padding:6px 4px;font-size:12px}
}

/* ------------------------------------------------ хоёр талт байрлал (горим 1) */
.split{display:flex;height:100%}
.side{width:346px;min-width:346px;height:100%;background:var(--card);
  border-right:1px solid var(--line);overflow-y:auto;padding:14px 16px 30px;
  overscroll-behavior:contain}
.side::-webkit-scrollbar{width:9px}
.side::-webkit-scrollbar-thumb{background:#dcdad2;border-radius:9px;border:3px solid var(--card)}
.sheet-toggle{display:none}
.mapwrap{flex:1;min-width:0;position:relative}
.mapwrap>div{position:absolute;inset:0}
@media (max-width:820px){
  .split{flex-direction:column-reverse}
  .side{width:100%;min-width:0;height:32%;border-right:0;border-top:1px solid var(--line);
    transition:height .24s ease;box-shadow:0 -8px 24px rgba(24,32,29,.08)}
  .mapwrap{height:68%;flex:none;transition:height .24s ease}
  body.mode-terbum .side.peek,body.mode-eco .side.peek{height:68%}
  body.mode-terbum .side.peek + .mapwrap,body.mode-eco .side.peek + .mapwrap{height:32%}
  body.mode-terbum .sheet-toggle,body.mode-eco .sheet-toggle{display:block;position:sticky;top:-14px;z-index:9;
    width:calc(100% + 32px);margin:-14px -16px 8px;padding:7px 12px;border:0;
    border-bottom:1px solid var(--line);background:var(--card);color:var(--muted);
    font-size:11px;font-weight:600;cursor:pointer}
}



/* ------------------------------------------- толгойн хайлт ба эх сурвалж (суурь) */
#top .omni{position:relative;flex:1;max-width:400px;margin-left:6px}
#top .omni-in{display:flex;align-items:center;gap:7px;border:1px solid var(--line);
  border-radius:var(--r-m);background:#fbfbf9;padding:0 10px;transition:.14s}
#top .omni-in:focus-within{border-color:var(--accent-ring);
  box-shadow:0 0 0 3px var(--accent-soft)}
#top .omni-in svg{flex:none;color:var(--muted)}
#top .omni input{flex:1;border:0;background:none;outline:none;padding:7px 0;
  font:inherit;font-size:13px;color:inherit;min-width:0}
#top .omni kbd{font:inherit;font-size:10.5px;color:var(--muted);
  border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;
  padding:0 4px;background:#fff}
/* Унжуулах самбар: дээрээ төрлийн шүүлтүүр, доор нь илэрцийн жагсаалт */
#top .omni-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  box-shadow:var(--sh-2);z-index:1400;display:none;overflow:hidden}
#top .omni-pop.on{display:block}
/* Төрлийн шүүлтүүр — олон төрөл олдоход л гарч ирнэ */
#top .omni-chips{display:none;gap:5px;flex-wrap:wrap;padding:7px;
  border-bottom:1px solid var(--line)}
#top .omni-chips.on{display:flex}
#top .omni-chips button{font:inherit;font-size:11.5px;line-height:1;
  border:1px solid var(--line);background:transparent;color:var(--muted);
  border-radius:9999px;padding:5px 9px;cursor:pointer;transition:.13s;
  display:inline-flex;align-items:center;gap:5px}
#top .omni-chips button:hover{border-color:var(--accent-ring);color:inherit}
#top .omni-chips button.on{background:var(--accent-soft);color:inherit;
  border-color:var(--accent-ring);font-weight:600}
#top .omni-chips button i{font-style:normal;font-size:10.5px;opacity:.7;
  font-variant-numeric:tabular-nums}

/* Харагдацыг .omni-pop хариуцна — суурь .omni-res дүрмийн display:none-ийг
   энд дарж бичнэ (тэр нь хажуугийн самбарын хуучин хайлтад зориулагдсан). */
#top .omni-res{display:block;position:static;max-height:52vh;overflow-y:auto;
  padding:4px;background:none;border:0;border-radius:0;box-shadow:none}
#top .omni-res .grp{font-size:10px;text-transform:uppercase;letter-spacing:.7px;
  color:var(--muted);padding:7px 9px 3px;font-weight:650}
#top .omni-res .grp i{font-style:normal;opacity:.65;letter-spacing:0}
/* Хоёр мөр: нэр + утга дээр, дэд гарчиг доор — байгууллагын урт нэр багтана */
#top .omni-res .it{display:grid;grid-template-columns:1fr auto;column-gap:10px;
  padding:6px 9px;border-radius:var(--r-s);cursor:pointer;font-size:13px}
#top .omni-res .it:hover,#top .omni-res .it.sel{background:var(--accent-soft)}
#top .omni-res .it .n{grid-area:1/1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
#top .omni-res .it .n b{font-weight:700;color:var(--accent-ink,inherit)}
#top .omni-res .it .d{grid-area:2/1;color:var(--muted);font-size:11.5px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#top .omni-res .it .m{grid-area:1/2;align-self:center;color:var(--muted);
  font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
#top .omni-res .none{padding:12px 10px;color:var(--muted);font-size:12.5px}

#about-box{position:absolute;top:52px;left:14px;z-index:1400;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--sh-2);
  padding:12px 14px;max-width:400px}
#about-box h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;
  letter-spacing:.8px;color:var(--muted)}
#about-box table{font-size:12.5px;width:100%}
#about-box td{padding:5px 3px}
#about-box h4:not(:first-child){margin-top:16px;padding-top:12px;
  border-top:1px solid var(--line)}
#about-box .about-notes{margin:0;padding-left:16px;font-size:11.5px;
  color:var(--muted);line-height:1.55}
#about-box .about-notes li{margin-bottom:7px}
#about-box .about-notes li:last-child{margin-bottom:0}
/* урт жагсаалттай үед доторх гүйлгэлт */
#about-box{max-height:calc(100vh - 76px);overflow-y:auto}
@media (max-width:820px){
  #top .omni{order:3;max-width:none;flex-basis:100%;margin-left:0}
  #top .omni kbd{display:none}
  #about-box{left:8px;right:8px;max-width:none}
}

/* ===================================================================== */
/*  «ТЭРБУМ МОД» ДИЗАЙН СИСТЕМ — guideline-ийн токенууд                  */
/*                                                                       */
/*  Одоогоор ДАШБОАРД ба ОЙН ЭКОСИСТЕМ горимд үйлчилнэ.                  */
/*  Бүрэн батлагдвал хүрээг :root руу өргөтгөнө.                         */
/*                                                                       */
/*  Хоёр нэр зөрчилдсөн тул зөвхөн тэднийг өөрчилсөн:                    */
/*    guideline --muted  (гадаргуу) -> --ds-muted                        */
/*    guideline --accent (гадаргуу) -> --ds-accent                       */
/*  Учир нь энэ аппад --muted нь бүдэг ТЕКСТ, --accent нь ногоон өнгө.   */
/* ===================================================================== */
body.mode-dash,
body.mode-eco{
  --radius:0.75rem;
  --font-sans:"Rubik",ui-sans-serif,system-ui,sans-serif;
  --font-display:"Rubik",ui-sans-serif,system-ui,sans-serif;

  --background:oklch(0.985 0.008 152);
  --foreground:oklch(0.22 0.045 158);
  --card-ds:oklch(1 0 0);
  --card-foreground:oklch(0.22 0.045 158);
  --primary:oklch(0.52 0.16 152);
  --primary-foreground:oklch(0.99 0.01 152);
  --primary-deep:oklch(0.34 0.1 158);
  --primary-soft:oklch(0.72 0.15 152);
  --leaf:oklch(0.62 0.18 148);
  --secondary:oklch(0.94 0.025 152);
  --secondary-foreground:oklch(0.28 0.06 158);
  --ds-muted:oklch(0.95 0.018 152);
  --muted-foreground:oklch(0.46 0.045 158);
  --ds-accent:oklch(0.92 0.05 152);
  --accent-foreground:oklch(0.26 0.06 158);
  --destructive:oklch(0.58 0.21 25);
  --border:oklch(0.52 0.16 152 / 18%);
  --input:oklch(0.52 0.16 152 / 24%);
  --ring:oklch(0.52 0.16 152);
  --chart-1:oklch(0.52 0.16 152);
  --chart-2:oklch(0.62 0.18 148);
  --chart-3:oklch(0.72 0.15 152);
  --chart-4:oklch(0.58 0.14 168);
  --chart-5:oklch(0.66 0.16 132);
  --chart-6:oklch(0.44 0.13 140);
  --chart-7:oklch(0.68 0.12 162);
  /* графикийн тор, тэнхлэг — color-mix биш, SVG-д шууд өгөгддөг байх */
  --ds-grid:oklch(0.22 0.045 158 / 8%);
  --ds-axis:oklch(0.22 0.045 158 / 18%);
  --sidebar:oklch(0.97 0.014 152);
  --gradient-sky:linear-gradient(180deg,oklch(0.9 0.07 156) 0%,
    oklch(0.945 0.045 154) 30%,oklch(0.972 0.022 152) 60%,var(--background) 88%);
  --gradient-pill:linear-gradient(180deg,oklch(1 0 0) 0%,oklch(0.955 0.02 152) 100%);
  --shadow-pill:0 10px 26px -14px color-mix(in oklab,var(--primary) 40%,transparent);
  --shadow-canopy:0 40px 100px -46px color-mix(in oklab,var(--primary) 30%,transparent);

  /* --- аппын дотоод нэрс дээрх токенууд руу заана --- */
  --bg:var(--background);
  --card:var(--card-ds);
  --ink:var(--foreground);
  --ink-2:color-mix(in oklab,var(--foreground) 76%,transparent);
  --ink-strong:var(--foreground);
  --muted:var(--muted-foreground);
  --line:var(--border);
  --line-2:color-mix(in oklab,var(--border) 50%,transparent);
  --line-strong:color-mix(in oklab,var(--primary) 32%,transparent);
  --accent:var(--primary);
  --accent-2:var(--primary-deep);
  --accent-soft:color-mix(in oklab,var(--primary) 10%,transparent);
  --accent-ring:color-mix(in oklab,var(--primary) 26%,transparent);
  --on-accent:var(--primary-deep);
  --fill-1:color-mix(in oklab,var(--primary) 4%,transparent);
  --fill-2:color-mix(in oklab,var(--primary) 8%,transparent);
  --fill-3:color-mix(in oklab,var(--primary) 14%,transparent);
  --tip-bg:color-mix(in oklab,var(--card-ds) 92%,transparent);
  --tip-ink:var(--foreground);
  --sh-1:0 1px 2px color-mix(in oklab,var(--primary-deep) 8%,transparent);
  --sh-2:0 18px 44px -22px color-mix(in oklab,var(--primary-deep) 30%,transparent);
  --sh-pane:var(--shadow-canopy);
  --glow-a:color-mix(in oklab,var(--primary) 8%,transparent);
  --glow-b:color-mix(in oklab,var(--chart-4) 6%,transparent);
  --r-s:calc(var(--radius) - 4px);
  --r-m:calc(var(--radius) - 2px);
  --r-l:var(--radius);
  --r-xl:calc(var(--radius) + 4px);
  --r-2xl:calc(var(--radius) + 8px);

  font-family:var(--font-sans);
}
body.dark.mode-dash,
body.dark.mode-eco{
  --background:oklch(0.12 0.025 158);
  --foreground:oklch(0.98 0.03 152);
  --card-ds:oklch(0.16 0.032 158);
  --card-foreground:oklch(0.98 0.03 152);
  --primary:oklch(0.86 0.23 152);
  --primary-foreground:oklch(0.12 0.025 158);
  --primary-deep:oklch(0.24 0.07 158);
  --primary-soft:oklch(0.52 0.15 154);
  --leaf:oklch(0.9 0.23 148);
  --secondary:oklch(0.21 0.042 158);
  --secondary-foreground:oklch(0.96 0.04 152);
  --ds-muted:oklch(0.2 0.038 158);
  --muted-foreground:oklch(0.76 0.06 152);
  --ds-accent:oklch(0.28 0.07 154);
  --accent-foreground:oklch(0.96 0.05 152);
  --destructive:oklch(0.7 0.19 22);
  --border:oklch(0.86 0.23 152 / 18%);
  --input:oklch(0.86 0.23 152 / 22%);
  --ring:oklch(0.86 0.23 152);
  --chart-1:oklch(0.86 0.23 152);
  --chart-2:oklch(0.9 0.23 148);
  --chart-3:oklch(0.52 0.15 154);
  --chart-4:oklch(0.72 0.18 168);
  --chart-5:oklch(0.78 0.2 132);
  --chart-6:oklch(0.82 0.2 140);
  --chart-7:oklch(0.64 0.14 162);
  --ds-grid:oklch(0.98 0.03 152 / 8%);
  --ds-axis:oklch(0.98 0.03 152 / 20%);
  --sidebar:oklch(0.15 0.03 158);
  --gradient-sky:linear-gradient(180deg,oklch(0.3 0.1 156) 0%,
    oklch(0.22 0.075 158) 26%,oklch(0.16 0.045 158) 55%,var(--background) 84%);
  --gradient-pill:linear-gradient(180deg,oklch(0.22 0.045 158) 0%,oklch(0.17 0.038 158) 100%);
  --shadow-pill:0 10px 26px -12px color-mix(in oklab,var(--primary) 55%,transparent);
  --shadow-canopy:0 40px 100px -40px color-mix(in oklab,var(--primary) 45%,transparent);

  --ink-2:color-mix(in oklab,var(--foreground) 74%,transparent);
  --ink-strong:var(--foreground);
  --on-accent:var(--primary);
  --accent-2:var(--primary);
  --fill-1:color-mix(in oklab,var(--primary) 5%,transparent);
  --fill-2:color-mix(in oklab,var(--primary) 9%,transparent);
  --fill-3:color-mix(in oklab,var(--primary) 15%,transparent);
  --tip-bg:color-mix(in oklab,var(--card-ds) 94%,transparent);
  --sh-1:0 1px 2px oklch(0 0 0 / 45%);
  --sh-2:0 18px 44px -20px oklch(0 0 0 / 60%);
  --glow-a:color-mix(in oklab,var(--primary) 9%,transparent);
  --glow-b:color-mix(in oklab,var(--chart-4) 7%,transparent);
}

/* ===================================================================== */
/*  ДАШБОАРД — интерактив консол (горим 3)                               */
/* ===================================================================== */
body.dark{
  --bg:#0a1210; --card:#101a16; --ink:#e6f1eb; --ink-2:#b3c5bb; --muted:#7c8f86;
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.045);
  --accent:#3ddc84; --accent-2:#2bb96b; --accent-soft:rgba(61,220,132,.14);
  --accent-ring:rgba(61,220,132,.38);
  --warn-bg:rgba(251,191,36,.09); --warn-line:rgba(251,191,36,.22);
  --warn-ink:#e8d9a8;
  --sh-1:0 1px 2px rgba(0,0,0,.5); --sh-2:0 14px 40px rgba(0,0,0,.6);
  --fill-1:rgba(255,255,255,.045); --fill-2:rgba(255,255,255,.06);
  --fill-3:rgba(255,255,255,.1); --line-strong:rgba(255,255,255,.2);
  --ink-strong:#fff; --on-accent:#8ff2b8;
  --tip-bg:rgba(12,20,17,.97); --tip-ink:#e6f1eb;
  --sh-pane:inset 0 1px 0 rgba(255,255,255,.05),0 8px 26px rgba(0,0,0,.32);
  --hero-1:rgba(61,220,132,.12); --hero-2:rgba(56,189,248,.12);
  --tone-a:#7ef0b0; --tone-b:#7dd3fc;
  --glow-a:rgba(61,220,132,.10); --glow-b:rgba(56,189,248,.08);
  --title-1:#eafff3; --title-2:#8ff2b8;
  --bar-a:#3ddc84; --bar-b:#a3e635; --org-a:#38bdf8; --org-b:#7dd3fc;
  --dot:#3ddc84;
  background:var(--bg);
}
body.dark #top{background:rgba(10,18,16,.9);backdrop-filter:blur(12px);
  border-bottom-color:var(--line)}
body.dark .modes{background:rgba(255,255,255,.05)}
body.dark .modes a{color:var(--ink-2)}
body.dark .modes a:hover{background:rgba(255,255,255,.07)}
body.dark .modes a.on{background:rgba(61,220,132,.17);color:#8ff2b8}
body.dark #top .omni-in{background:rgba(255,255,255,.05);border-color:var(--line)}
body.dark #top .omni kbd{background:rgba(255,255,255,.06);border-color:var(--line)}
body.dark .icon-btn{background:rgba(255,255,255,.05);border-color:var(--line)}
body.dark #about-box,body.dark #top .omni-pop{background:#101a16;
  border-color:var(--line);color:var(--ink)}
body.dark #top .omni-res .it .n b{color:#8ff2b8}

.dash-scroll{position:absolute;inset:0;overflow-y:auto;
  background:
    radial-gradient(1100px 520px at 12% -10%, var(--glow-a), transparent 58%),
    radial-gradient(900px 480px at 92% 2%, var(--glow-b), transparent 60%),
    var(--bg)}
.console{max-width:1360px;margin:0 auto;padding:16px 18px 48px}

/* ------------------------------------------------------------ удирдах мөр */
.con-bar{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.scope{display:flex;align-items:center;gap:9px}
.scope-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.scope .chip{display:inline-flex;width:auto;height:auto;align-items:center;
  gap:7px;padding:5px 12px;margin:0;
  border-radius:20px;font-size:13px;font-weight:600;color:var(--ink-2);
  background:var(--fill-2);border:1px solid var(--line)}
.scope .chip.on{background:var(--accent-soft);color:var(--on-accent);
  border-color:var(--accent-ring)}
.scope .chip .x{border:0;background:none;color:inherit;cursor:pointer;font-size:15px;
  line-height:1;padding:0 0 1px;opacity:.75}
.scope .chip .x:hover{opacity:1}
.scope-meta{font-size:11.5px;color:var(--muted)}
.hint-inline{margin-left:auto;font-size:11px;color:var(--muted)}

/* --------------------------------------------------------- гол үзүүлэлт */
.kpi-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}
.kpi-card{position:relative;overflow:hidden;text-align:left;cursor:pointer;
  border:1px solid var(--line);border-radius:14px;padding:11px 13px 0;
  background:linear-gradient(165deg,var(--fill-1),transparent);
  display:flex;flex-direction:column;gap:1px;transition:.16s;font:inherit;color:inherit}
.kpi-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.kpi-card.on{border-color:var(--c);
  background:linear-gradient(165deg,color-mix(in srgb,var(--c) 16%,transparent),
    transparent);
  box-shadow:0 0 0 1px var(--c) inset,var(--sh-2)}
.kpi-card::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--c);opacity:.85}
.kpi-label{font-size:10.5px;color:var(--muted);line-height:1.3;letter-spacing:.2px}
.kpi-card.on .kpi-label{color:var(--ink-2)}
.kpi-value{font-size:26px;font-weight:650;letter-spacing:-1px;line-height:1.15;
  font-variant-numeric:tabular-nums;color:var(--ink-strong)}
.kpi-spark{height:30px;margin:2px -13px 0;opacity:.85}

/* ------------------------------------------------------------- самбарууд */
.con-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:14px;align-items:start}
/* min-width:0 үгүй бол өргөн хүснэгт баганын хэмжээг сунгаж, консол хэвтээгээр
   гүйлгэгддэг болно. Хүснэгт өөрөө .tablewrap дотроо гүйлгэгдэнэ. */
.con-grid > .pane{min-width:0}
.pane{background:linear-gradient(165deg,var(--fill-1),transparent);
  border:1px solid var(--line);border-radius:16px;padding:14px 16px 16px;
  box-shadow:var(--sh-pane)}
.pane-wide{grid-column:1/-1}
.pane header{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.pane h3{margin:0;font-size:13.5px;font-weight:650;color:var(--ink);letter-spacing:-.15px}
.pane .unit{margin-left:auto;font-size:10px;text-transform:uppercase;
  letter-spacing:.9px;color:var(--muted)}
.pane .note{margin-top:10px;padding-top:9px;border-top:1px solid var(--line-2);
  font-size:11.5px;color:var(--muted);line-height:1.5}
.pane-main .plot{max-height:none}

/* сегмент сонгогч */
.seg{margin-left:auto;display:flex;gap:2px;background:var(--fill-1);
  padding:2px;border-radius:8px}
.seg button{border:0;background:none;color:var(--muted);font:inherit;font-size:11px;
  padding:4px 9px;border-radius:6px;cursor:pointer;transition:.14s}
.seg button:hover{color:var(--ink-2)}
.seg button.on{background:var(--accent-soft);color:var(--on-accent);font-weight:650}

/* бүрэлдэхүүн */
.comp-body{display:flex;flex-direction:column;align-items:center;gap:12px}
.comp-list{list-style:none;margin:0;padding:0;width:100%}
.comp-list li{display:flex;align-items:center;gap:8px;padding:5px 0;
  border-bottom:1px solid var(--line-2);font-size:12.5px}
.comp-list li:last-child{border-bottom:0}
.comp-list i{width:9px;height:9px;border-radius:3px;flex:none}
.comp-list span{flex:1;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.comp-list b{font-weight:650;font-variant-numeric:tabular-nums;
  color:var(--ink-strong);font-size:12px}
.comp-list em{font-style:normal;color:var(--muted);font-size:11px;width:42px;
  text-align:right}

/* график доторх тэмдэглэгээ */
.mk{cursor:pointer}
.plot.hovering .mk{opacity:.5;transition:opacity .12s}
.plot.hovering .mk.hot{opacity:1}
.mk .fill,.mk .col,.mk.slice{transition:filter .15s}
.mk.hot .fill,.mk.hot .col{filter:brightness(1.22)}
.chart-key{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:11px}
.chart-key span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2)}
.chart-key i{width:9px;height:9px;border-radius:3px;flex:none}

/* хөвөгч тайлбар */
.chart-tip{position:fixed;left:0;top:0;z-index:3000;pointer-events:none;opacity:0;
  transition:opacity .12s;background:var(--tip-bg);border:1px solid var(--line-strong);
  border-radius:9px;padding:8px 11px;box-shadow:var(--sh-2);
  font-size:12.5px;color:var(--tip-ink);max-width:250px}
.chart-tip.on{opacity:1}
.chart-tip b{display:block;font-weight:600;margin-bottom:2px}
.chart-tip span{display:block;font-size:15px;font-weight:650;letter-spacing:-.4px;
  font-variant-numeric:tabular-nums;color:var(--on-accent)}
.chart-tip em{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:2px}

/* хүснэгт */
.tablewrap{overflow-x:auto;margin:0 -4px}
body.dark th{color:var(--muted);border-bottom-color:var(--line);
  background:transparent;font-size:10px;position:static}
body.dark td{border-bottom-color:var(--line-2);font-size:12.5px}
body.dark tr.pick{cursor:pointer}
body.dark tr.pick:hover td{background:rgba(255,255,255,.04)}
body.dark tr.pick.on td{background:rgba(61,220,132,.1)}
body.dark tr.pick.on td:first-child{color:#8ff2b8;font-weight:600}
body.dark th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
body.dark th.sortable:hover{color:var(--ink-2)}
body.dark th.sortable.on{color:#8ff2b8}
td.num{position:relative}
td.num .cellbar{position:absolute;left:0;top:3px;bottom:3px;border-radius:3px;z-index:0}
td.num span{position:relative;z-index:1}
body.dark .empty{color:var(--muted);border-color:var(--line);
  padding:34px;text-align:center;border:1px dashed var(--line);border-radius:14px}

@media (max-width:1080px){
  .kpi-strip{grid-template-columns:repeat(3,1fr)}
  .con-grid{grid-template-columns:1fr}
}
@media (max-width:620px){
  .kpi-strip{grid-template-columns:repeat(2,1fr)}
  .console{padding:12px 12px 36px}
  .hint-inline{display:none}
}

/* ===================================================================== */
/*  ДАШБОАРД — ДИЗАЙН СИСТЕМИЙН ДАГУУ (guideline §2, §4, §5, §6)         */
/*  Дээрх суурь дүрмүүдийг дарж бичнэ. Зөвхөн body.mode-dash хүрээнд.     */
/* ===================================================================== */

/* --- хөдөлгөөн: entry cubic-bezier(.22,1,.36,1), loop ease-in-out --- */
@keyframes ds-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes ds-node-breathe{0%,100%{opacity:.55}50%{opacity:1}}

body.mode-dash{background:var(--background);color:var(--foreground)}
body.mode-dash #top{background:color-mix(in oklab,var(--card-ds) 72%,transparent);
  backdrop-filter:blur(24px) saturate(120%);
  -webkit-backdrop-filter:blur(24px) saturate(120%);
  border-bottom:1px solid var(--border)}
body.mode-dash .icon-btn{border-radius:9999px;border-color:var(--border);
  background:var(--card-ds)}
body.mode-dash .omni-in{border-radius:9999px;border-color:var(--border);
  background:color-mix(in oklab,var(--card-ds) 60%,transparent)}
body.mode-dash .omni input{font-size:14px}
body.mode-dash #top .omni-pop{background:var(--card-ds);
  border-color:var(--border);border-radius:var(--radius-2xl,1rem)}
body.mode-dash #top .omni-chips button{border-color:var(--border)}
body.mode-dash #top .omni-chips button.on{
  background:color-mix(in oklab,var(--primary) 14%,transparent);
  border-color:color-mix(in oklab,var(--primary) 40%,transparent);
  color:var(--primary-deep)}
body.mode-dash #top .omni-res .it:hover,body.mode-dash #top .omni-res .it.sel{
  background:color-mix(in oklab,var(--primary) 10%,transparent)}
body.mode-dash #top .omni-res .it .n b{color:var(--primary-deep)}
body.dark.mode-dash #top .omni-chips button.on,
body.dark.mode-dash #top .omni-res .it .n b{color:var(--primary)}

/* --- дэвсгэр: зөөлөн ногоон гэрэлтэлт --- */
body.mode-dash .dash-scroll{
  background:
    radial-gradient(1200px 560px at 12% -12%,var(--glow-a),transparent 60%),
    radial-gradient(960px 500px at 92% 0%,var(--glow-b),transparent 62%),
    var(--background)}
body.mode-dash .console{max-width:1440px;padding:24px 24px 96px}
@media (min-width:640px){body.mode-dash .console{padding-inline:40px}}
@media (min-width:1024px){body.mode-dash .console{padding-inline:56px}}

/* --- удирдах мөр: шил капсул --- */
body.mode-dash .con-bar{gap:16px;margin-bottom:24px;padding:10px 16px;
  border-radius:9999px;
  background:color-mix(in oklab,var(--card-ds) 62%,transparent);
  backdrop-filter:blur(24px) saturate(120%);
  -webkit-backdrop-filter:blur(24px) saturate(120%);
  border:1px solid color-mix(in oklab,var(--foreground) 6%,transparent);
  box-shadow:0 8px 28px -16px color-mix(in oklab,var(--primary-deep) 18%,transparent),
             inset 0 1px 0 0 color-mix(in oklab,var(--foreground) 4%,transparent);
  animation:ds-rise .9s cubic-bezier(.22,1,.36,1) both}
body.mode-dash .scope-label{font-size:14px;letter-spacing:.14em;font-weight:500;
  text-transform:uppercase;color:var(--muted-foreground)}
body.mode-dash .scope .chip{font-size:14px;padding:6px 16px;border-radius:9999px;
  background-image:var(--gradient-pill);box-shadow:var(--shadow-pill);
  border-color:var(--border);color:var(--foreground)}
body.mode-dash .scope .chip.on{background-image:none;
  background-color:color-mix(in oklab,var(--primary) 12%,transparent);
  color:var(--primary-deep);border-color:var(--ring)}
body.dark.mode-dash .scope .chip.on{color:var(--primary)}
body.mode-dash .scope-meta,body.mode-dash .hint-inline{font-size:14px;
  color:var(--muted-foreground)}
body.mode-dash .scope-select{width:auto;min-width:170px;padding:7px 34px 7px 14px;
  border-radius:9999px;background-color:var(--card-ds);border-color:var(--border);
  border-style:solid;border-width:1px;color:var(--foreground);font:inherit;
  font-size:14px;font-weight:600;outline:0}
body.mode-dash .bar-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
body.mode-dash .data-date{font-size:12px;color:var(--muted-foreground);white-space:nowrap}
body.mode-dash .reset-filter{border:1px solid var(--border);background:var(--card-ds);
  color:var(--foreground);border-radius:9999px;padding:7px 12px;cursor:pointer;font-size:12px}
body.mode-dash .reset-filter:hover{border-color:var(--ring);color:var(--primary-deep)}

/* --- KPI карт --- */
body.mode-dash .kpi-strip{grid-template-columns:repeat(4,1fr);gap:16px;
  margin-bottom:24px}
body.mode-dash .kpi-card{border-radius:var(--r-2xl);padding:16px 18px 0;gap:4px;
  background:var(--card-ds);border:1px solid var(--border);
  box-shadow:var(--shadow-canopy);
  transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s;
  animation:ds-rise .9s cubic-bezier(.22,1,.36,1) both;
  animation-delay:calc(var(--i,0) * 60ms)}
body.mode-dash .kpi-card::after{display:none}
body.mode-dash .kpi-card:hover{transform:translateY(-2px);border-color:var(--ring)}
body.mode-dash .kpi-card.on{border-color:var(--c);background:var(--card-ds);
  box-shadow:0 0 0 1px var(--c) inset,var(--shadow-canopy)}
body.mode-dash .kpi-label{font-size:14px;line-height:1.45;letter-spacing:0;
  color:var(--muted-foreground);font-weight:400;
  display:flex;align-items:center;gap:8px}
body.mode-dash .kpi-label::before{content:"";width:8px;height:8px;flex:none;
  border-radius:9999px;background:var(--c);opacity:.55}
body.mode-dash .kpi-card.on .kpi-label{color:var(--foreground)}
body.mode-dash .kpi-card.on .kpi-label::before{opacity:1;
  animation:ds-node-breathe 4s ease-in-out infinite}
body.mode-dash .kpi-value{font-family:var(--font-display);font-size:2rem;
  font-weight:600;letter-spacing:-.02em;line-height:1.2;color:var(--foreground)}
body.mode-dash .kpi-exact{font-size:11px;color:var(--muted-foreground);
  font-variant-numeric:tabular-nums;white-space:nowrap}
body.mode-dash .kpi-spark{height:34px;margin:6px -18px 0;opacity:.9}

/* --- самбар (карт) --- */
body.mode-dash .con-grid{gap:16px}
body.mode-dash .pane{background:var(--card-ds);border:1px solid var(--border);
  border-radius:var(--r-2xl);padding:20px 22px 22px;box-shadow:var(--shadow-canopy);
  animation:ds-rise .9s cubic-bezier(.22,1,.36,1) both;
  animation-delay:calc(var(--i,0) * 60ms)}
body.mode-dash .pane header{margin-bottom:16px;align-items:center}
body.mode-dash .pane h3{font-family:var(--font-display);font-size:1rem;
  font-weight:700;text-transform:uppercase;letter-spacing:-.01em;line-height:1.2;
  color:var(--foreground)}
body.mode-dash .pane .unit{font-size:14px;letter-spacing:.14em;font-weight:500;
  color:var(--muted-foreground)}
/* урт заавар — том үсэг, зайгүй. Гарчигтай өрсөлдөхгүй байх ёстой. */
.pane header .hint{margin-left:auto;font-size:14px;color:var(--muted-foreground);
  text-transform:none;letter-spacing:0;font-weight:400;text-align:end}
body.mode-dash .pane .note{margin-top:16px;padding-top:14px;font-size:14px;
  line-height:1.65;color:var(--muted-foreground);border-top-color:var(--border)}

/* --- сегмент сонгогч (капсул) --- */
body.mode-dash .seg{background:var(--fill-1);padding:3px;border-radius:9999px;
  border:1px solid var(--border)}
body.mode-dash .seg button{font-size:14px;padding:5px 14px;border-radius:9999px;
  color:var(--muted-foreground);transition:.3s}
body.mode-dash .seg button:hover{color:var(--foreground)}
body.mode-dash .seg button.on{background:var(--card-ds);color:var(--primary-deep);
  font-weight:600;box-shadow:var(--shadow-pill)}
body.dark.mode-dash .seg button.on{color:var(--primary);
  background:color-mix(in oklab,var(--primary) 14%,transparent)}

/* --- бүрэлдэхүүний жагсаалт --- */
body.mode-dash .comp-body{gap:18px}
body.mode-dash .comp-list li{padding:9px 0;font-size:14px;gap:10px;
  border-bottom-color:var(--border)}
body.mode-dash .comp-list i{width:10px;height:10px;border-radius:9999px}
body.mode-dash .comp-list span{color:var(--foreground)}
body.mode-dash .comp-list b{font-family:var(--font-display);font-size:14px;
  font-weight:600;color:var(--foreground)}
body.mode-dash .comp-list b small{display:block;font-family:inherit;font-size:10px;
  font-weight:400;color:var(--muted-foreground);text-align:right}
body.mode-dash .comp-list em{font-size:14px;color:var(--muted-foreground);width:52px}
body.mode-dash .dash-empty{min-height:150px;display:grid;place-items:center;text-align:center;
  padding:24px;border:1px dashed var(--border);border-radius:var(--r-xl);
  color:var(--muted-foreground);font-size:14px;line-height:1.55}
body.mode-dash .retry-dash{border:1px solid var(--border);background:var(--card-ds);
  border-radius:9999px;padding:8px 14px;color:var(--foreground);cursor:pointer}

/* --- хүснэгт --- */
body.mode-dash th{font-size:14px;letter-spacing:.1em;font-weight:500;
  text-transform:uppercase;color:var(--muted-foreground);
  border-bottom-color:var(--border);padding-bottom:10px}
body.mode-dash td{font-size:14px;padding:10px 6px;color:var(--foreground);
  border-bottom-color:var(--border)}
body.mode-dash tr.pick:hover td{background:var(--fill-1)}
body.mode-dash tr.pick.on td{background:color-mix(in oklab,var(--primary) 10%,transparent)}
body.mode-dash tr.pick.on td:first-child{color:var(--primary-deep);font-weight:600}
body.dark.mode-dash tr.pick.on td:first-child{color:var(--primary)}
body.mode-dash th.sortable.on{color:var(--primary-deep)}
body.dark.mode-dash th.sortable.on{color:var(--primary)}
body.mode-dash td.num .cellbar{border-radius:9999px}
body.mode-dash .cell-exact{display:block;position:relative;z-index:1;font-size:10px;
  font-weight:400;color:var(--muted-foreground);white-space:nowrap}
body.mode-dash .tablewrap{position:relative;overscroll-behavior-x:contain}
body.mode-dash .tablewrap th:first-child,body.mode-dash .tablewrap td:first-child{
  position:sticky;left:0;z-index:3;background:var(--card-ds);box-shadow:1px 0 var(--border)}
body.mode-dash .tablewrap th{position:sticky;top:0;z-index:2;background:var(--card-ds)}
body.mode-dash .tablewrap th:first-child{z-index:4}
body.mode-dash [role="button"]:focus-visible,body.mode-dash button:focus-visible,
body.mode-dash select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}

/* --- график тайлбар --- */
body.mode-dash .chart-key span{font-size:14px;color:var(--muted-foreground)}
body.mode-dash .chart-key i{border-radius:9999px}
body.mode-dash .chart-tip{border-radius:var(--r-xl);padding:11px 14px;font-size:14px;
  background:var(--card-ds);border-color:var(--border);
  box-shadow:var(--shadow-canopy);color:var(--card-foreground)}
body.mode-dash .chart-tip b{font-family:var(--font-display);font-weight:600;
  text-transform:uppercase;letter-spacing:-.01em;margin-bottom:4px}
body.mode-dash .chart-tip span{font-family:var(--font-display);font-size:1.25rem;
  font-weight:600;letter-spacing:-.02em;color:var(--primary-deep)}
body.dark.mode-dash .chart-tip span{color:var(--primary)}
body.mode-dash .chart-tip em{font-size:14px;color:var(--muted-foreground);margin-top:4px}

body.mode-dash .empty{border-radius:var(--r-2xl);border-color:var(--border);
  font-size:14px;color:var(--muted-foreground)}

/* 8 үзүүлэлт — 4 эсвэл 2 багана. 3 багана бол сүүлийн мөрөнд нүх үлдэнэ. */
@media (max-width:1100px){
  body.mode-dash .kpi-strip{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  body.mode-dash .kpi-strip{grid-template-columns:repeat(2,1fr)}
  body.mode-dash .console{padding:16px 16px 56px}
  body.mode-dash .con-bar{border-radius:var(--r-2xl)}
  body.mode-dash .scope{width:100%;flex-wrap:wrap}
  body.mode-dash .scope-select{flex:1;min-width:150px}
  body.mode-dash .bar-actions{width:100%;margin-left:0;justify-content:space-between}
  body.mode-dash .hint-inline{display:none}
  body.mode-dash .pane{padding:16px}
  body.mode-dash .pane header{align-items:flex-start;flex-wrap:wrap}
  body.mode-dash .seg{width:100%;margin-left:0;overflow-x:auto}
  body.mode-dash .seg button{flex:1;white-space:nowrap}
  body.mode-dash .tablewrap{margin-right:-16px;padding-right:16px}
}

/* Хөдөлгөөнийг багасгах тохиргоотой үед бүх анимацийг унтраана (guideline §6) */
@media (prefers-reduced-motion: reduce){
  body.mode-dash *,body.mode-dash *::before,body.mode-dash *::after{
    animation:none !important;transition:none !important}
}

/* ===================================================================== */
/*  ТЭРБУМ МОД — аймгийн самбар (харанхуй, картан бүтэц)                  */
/* ===================================================================== */
body.dark .side{background:#0d1613;border-right-color:var(--line)}
body.dark .side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);
  border-color:#0d1613}
body.dark .sec>h2{color:var(--muted)}
body.dark .sec>h2::after{background:var(--line-2)}
body.dark select{background-color:rgba(255,255,255,.05);border-color:var(--line);
  color:var(--ink)}
body.dark .kpi>div{background:rgba(255,255,255,.04);border-color:var(--line)}
body.dark .kpi b{color:#fff}
body.dark .kpi>div.goal{border-color:var(--accent-ring)}
body.dark .kpi>div.goal b{color:#8ff2b8}
body.dark .back{color:#8ff2b8}
body.dark .legend .val{color:var(--muted)}
body.dark tr.click:hover td{background:rgba(255,255,255,.05)}
body.dark .empty{color:var(--muted);border-color:var(--line)}
body.dark .aimag-label{color:#e6f1eb;text-shadow:0 0 4px #0a1210,0 0 6px #0a1210,
  0 0 9px #0a1210}
body.dark .leaflet-container{background:#0a1210}
body.dark .leaflet-popup-content-wrapper,body.dark .leaflet-popup-tip{
  background:#101a16;color:var(--ink);border-color:var(--line)}
body.dark .leaflet-tooltip{background:#101a16;color:var(--ink);border-color:var(--line)}
body.dark .leaflet-bar a{background:#101a16;color:var(--ink-2);border-color:var(--line)}
body.dark .leaflet-bar a:hover{background:#17241e;color:#fff}
body.dark .leaflet-control-attribution{background:rgba(10,18,16,.7);color:var(--muted)}
body.dark .leaflet-control-attribution a{color:var(--ink-2)}
body.dark .map-btn{background:#101a16;border-color:var(--line);color:var(--ink-2)}
body.dark .pop td:first-child{color:var(--muted)}

/* толгой */
.ap-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
.ap-title{margin:0;font-size:26px;font-weight:700;letter-spacing:-.6px;
  text-transform:uppercase;line-height:1.05;
  background:linear-gradient(100deg,var(--title-1),var(--title-2) 70%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ap-sub{margin-top:3px;font-size:11.5px;color:var(--muted);letter-spacing:.2px}
.ap-close{margin-left:auto;width:26px;height:26px;flex:none;border-radius:50%;
  border:1px solid var(--line);background:var(--fill-1);color:var(--ink-2);
  cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;
  justify-content:center;transition:.14s}
.ap-close:hover{background:var(--fill-3);color:var(--ink-strong)}

/* тэмдэг */
.ap-tags{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.ap-tag{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;
  font-size:12px;color:var(--warn-ink);background:var(--warn-bg);
  border:1px solid var(--warn-line)}
.ap-tag i{font-style:normal;opacity:.9}

/* гол хоёр үзүүлэлт */
.ap-hero{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.ap-hero-card{position:relative;overflow:hidden;padding:12px 13px 13px;
  border-radius:14px;border:1px solid var(--line);
  background:linear-gradient(160deg,var(--hero-1),transparent)}
.ap-hero-card.alt{background:linear-gradient(160deg,var(--hero-2),transparent)}
.ap-hero-card span{display:block;font-size:9.5px;text-transform:uppercase;
  letter-spacing:.8px;color:var(--muted);line-height:1.3}
.ap-hero-card b{display:block;margin-top:4px;font-size:26px;font-weight:650;
  letter-spacing:-1px;color:var(--tone-a);font-variant-numeric:tabular-nums;
  white-space:nowrap}
.ap-hero-card b i{font-style:normal;font-size:13px;font-weight:500;
  letter-spacing:0;margin-left:4px;opacity:.75}
.ap-hero-card.alt b{color:var(--tone-b)}

/* ===================================================================== */
/*  БҮТЭЭН БАЙГУУЛАЛТ / ТӨСӨЛ ХӨТӨЛБӨР                                   */
/* ===================================================================== */
/* Самбарын хажуугийн зайг бүтнээр нь эзэлнэ — эс бөгөөс монгол нэрс багтахгүй.
   Дүрс дээр, нэр доор нь — гурван урт нэр нарийхан самбарт багтана. */
.ptabs{display:flex;gap:5px;padding:8px 10px 9px;margin:-14px -16px 16px;
  position:sticky;top:-14px;z-index:5;background:var(--card);
  border-bottom:1px solid var(--line);box-shadow:0 6px 14px -12px rgba(0,0,0,.5)}
.ptabs button{flex:1 1 0;min-width:0;position:relative;cursor:pointer;font:inherit;
  font-size:10.5px;font-weight:650;line-height:1.3;letter-spacing:-.1px;
  color:var(--ink-2);background:var(--fill-1);
  border:1px solid transparent;border-radius:11px;padding:9px 5px 8px;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  text-align:center;transition:.16s}
.ptabs button i{display:flex;opacity:.6;transition:.16s}
.ptabs button span{display:block;width:100%}
.ptabs button:hover{color:var(--ink);background:var(--fill-2)}
.ptabs button:hover i{opacity:1}
.ptabs button.on{color:var(--on-accent);background:var(--accent-soft);
  border-color:var(--accent-ring);box-shadow:0 2px 8px -4px var(--accent-ring)}
.ptabs button.on i{opacity:1}
/* бүртгэлийн тоо */
.ptabs button em{position:absolute;top:5px;right:6px;font-style:normal;
  font-size:9px;font-weight:700;min-width:16px;height:16px;padding:0 4px;
  border-radius:9px;display:flex;align-items:center;justify-content:center;
  background:var(--fill-3);color:var(--ink-2);font-variant-numeric:tabular-nums}
.ptabs button.on em{background:var(--accent);color:var(--card)}

/* --- жагсаалтын карт */
.pcard{border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:linear-gradient(165deg,var(--fill-1),transparent);
  margin-bottom:11px;cursor:pointer;transition:.16s}
.pcard:hover{border-color:var(--accent-ring);transform:translateY(-1px);
  box-shadow:var(--sh-pane)}
.pcard-img{height:104px;background-size:cover;background-position:center;
  border-bottom:1px solid var(--line)}
.pcard-body{padding:11px 13px 12px}
.pcard-badge{display:inline-block;margin-bottom:6px;padding:2px 8px;
  border-radius:20px;font-size:9.5px;font-weight:650;letter-spacing:.5px;
  text-transform:uppercase;color:var(--on-accent);background:var(--accent-soft);
  border:1px solid var(--accent-ring)}
.pcard h3{margin:0;font-size:13.5px;font-weight:650;line-height:1.35;
  color:var(--ink)}
.pcard-where{margin:5px 0 0;font-size:11px;color:var(--muted)}
.pcard-short{margin:7px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.5}
.pcard-foot{display:flex;align-items:center;gap:10px;margin-top:10px}
.pcard-foot span{font-size:11px;color:var(--muted)}
.pcard-more{margin-left:auto;border:0;background:none;cursor:pointer;font:inherit;
  font-size:12px;font-weight:650;color:var(--accent);padding:0}
.pcard:hover .pcard-more{text-decoration:underline}

/* --- дэлгэрэнгүй */
.pd-head{margin-bottom:12px}
.pd-code{display:inline-block;margin-bottom:6px;font-size:10.5px;font-weight:650;
  letter-spacing:.7px;color:var(--muted);font-variant-numeric:tabular-nums}
.pd-head h2{margin:0;font-size:17px;font-weight:700;line-height:1.3;
  letter-spacing:-.2px;color:var(--ink)}
.pd-sub{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.5}
.pd-hero{margin-bottom:14px;border-radius:12px;overflow:hidden;
  border:1px solid var(--line)}
.pd-hero img{display:block;width:100%;height:auto}
.pd-p{margin:0 0 8px;font-size:13px;line-height:1.6;color:var(--ink-2)}
.pd-p:last-child{margin-bottom:0}
.pd-contact{display:flex;flex-wrap:wrap;gap:6px 16px}
.pd-contact a{color:var(--accent);text-decoration:none;font-weight:600}
.pd-contact a:hover{text-decoration:underline}
.pd-check{list-style:none;margin:0;padding:0}
.pd-check li{position:relative;padding:7px 0 7px 24px;font-size:13px;
  line-height:1.55;color:var(--ink-2);border-bottom:1px solid var(--line-2)}
.pd-check li:last-child{border-bottom:0}
.pd-check li::before{content:"✓";position:absolute;left:0;top:7px;
  font-weight:700;color:var(--accent)}
.pd-prods,.pd-gal{display:flex;flex-direction:column;gap:12px}
.pd-prods figure,.pd-gal figure{margin:0;border:1px solid var(--line);
  border-radius:12px;overflow:hidden;background:var(--fill-1)}
.pd-prods img,.pd-gal img{display:block;width:100%;height:auto}
.pd-prods figcaption,.pd-gal figcaption{padding:8px 11px 10px;font-size:12px;
  line-height:1.45;color:var(--ink-2)}

/* ===================================================================== */
/*  ОЙН ЭКОСИСТЕМ — байгууллагын зураглал                                */
/*  «Тэрбум мод» дизайн системийн дагуу (guideline §2, §5, §6, §7)       */
/* ===================================================================== */
#eco-map{position:absolute;inset:0}
/* Tile-ийг ногоон системд нийцүүлнэ (guideline §7) */
body.mode-eco .leaflet-tile-pane{filter:saturate(.85)}
body.mode-eco{font-family:var(--font-sans);background:var(--background)}
body.mode-eco #top{background:color-mix(in oklab,var(--card-ds) 72%,transparent);
  backdrop-filter:blur(24px) saturate(120%);
  -webkit-backdrop-filter:blur(24px) saturate(120%);
  border-bottom:1px solid var(--border)}
body.mode-eco .icon-btn{border-radius:9999px;border-color:var(--border);
  background:var(--card-ds)}
body.mode-eco .omni-in{border-radius:9999px;border-color:var(--border);
  background:color-mix(in oklab,var(--card-ds) 60%,transparent)}
body.mode-eco .omni input{font-size:14px}
body.mode-eco #top .omni-pop{background:var(--card-ds);
  border-color:var(--border);border-radius:var(--radius-2xl,1rem)}
body.mode-eco #top .omni-chips button{border-color:var(--border)}
body.mode-eco #top .omni-chips button.on{
  background:color-mix(in oklab,var(--primary) 14%,transparent);
  border-color:color-mix(in oklab,var(--primary) 40%,transparent);
  color:var(--primary-deep)}
body.mode-eco #top .omni-res .it:hover,body.mode-eco #top .omni-res .it.sel{
  background:color-mix(in oklab,var(--primary) 10%,transparent)}
body.mode-eco #top .omni-res .it .n b{color:var(--primary-deep)}
body.dark.mode-eco #top .omni-chips button.on,
body.dark.mode-eco #top .omni-res .it .n b{color:var(--primary)}

/* --- хажуугийн самбар */
body.mode-eco .side{background:var(--background);border-right-color:var(--border);
  padding:20px 20px 40px}
body.mode-eco .sec{margin-bottom:24px}
body.mode-eco .sec>h2{font-family:var(--font-display);font-size:14px;
  font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted-foreground);margin-bottom:12px}
body.mode-eco .sec>h2::after{background:var(--border)}
body.mode-eco .note{font-size:14px;line-height:1.65;color:var(--muted-foreground)}
body.mode-eco .back{font-size:14px;font-weight:600;color:var(--primary-deep)}
body.dark.mode-eco .back{color:var(--primary)}
.eco-active-filter{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:9px 11px;
  border:1px solid var(--accent-ring);border-radius:var(--r-l);background:var(--accent-soft);
  color:var(--ink);font-size:12px;font-weight:600}
.eco-active-filter i{width:9px;height:9px;border-radius:50%;flex:none}
.eco-active-filter button{margin-left:auto;padding:3px 0;border:0;background:none;color:var(--accent);
  font:600 11px var(--font-sans);cursor:pointer}

/* --- KPI карт */
body.mode-eco .kpi{gap:12px}
body.mode-eco .kpi>div{background:var(--card-ds);border:1px solid var(--border);
  border-radius:var(--r-2xl);padding:14px 16px;box-shadow:var(--shadow-canopy);
  animation:ds-rise .9s cubic-bezier(.22,1,.36,1) both;
  animation-delay:calc(var(--i,0) * 60ms)}
body.mode-eco .kpi b{font-family:var(--font-display);font-size:1.6rem;
  font-weight:600;letter-spacing:-.02em;color:var(--foreground)}
body.mode-eco .kpi>div>span{font-size:14px;color:var(--muted-foreground);
  margin-top:3px}

/* --- төрлийн шүүлтүүр (капсул) */
.oseg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}
.oseg button{border:1px solid var(--line);background:var(--fill-1);cursor:pointer;
  font:inherit;font-size:14px;font-weight:500;color:var(--ink-2);
  padding:7px 15px;border-radius:9999px;transition:.3s;
  display:inline-flex;align-items:center;gap:7px}
.oseg button i{width:9px;height:9px;border-radius:9999px;flex:none}
.oseg button:hover{color:var(--ink);background:var(--fill-2)}
.oseg button.on{background:var(--accent-soft);color:var(--on-accent);
  border-color:var(--accent-ring);font-weight:600}
body.mode-eco .oseg button.on{background-image:none;
  box-shadow:var(--shadow-pill)}

/* --- байгууллагын карт */
.ocard{border:1px solid var(--line);border-radius:14px;padding:12px 14px 13px;
  background:linear-gradient(165deg,var(--fill-1),transparent);
  margin-bottom:9px;cursor:pointer;transition:.16s;position:relative}
.ocard:hover{border-color:var(--accent-ring);transform:translateY(-1px);
  box-shadow:var(--sh-pane)}
.ocard-tag{display:inline-block;margin-bottom:6px;padding:2px 9px;
  border-radius:20px;font-size:10px;font-weight:650;letter-spacing:.4px;
  color:var(--k);background:color-mix(in oklab,var(--k) 14%,transparent);
  border:1px solid color-mix(in oklab,var(--k) 34%,transparent)}
.ocard h3{margin:0;font-size:13.5px;font-weight:650;line-height:1.35;
  color:var(--ink)}
.ocard-meta{margin:6px 0 0;font-size:11.5px;color:var(--muted);line-height:1.5}
.ocard .pcard-more{display:block;margin:9px 0 0 auto;border:0;background:none;
  cursor:pointer;font:inherit;font-size:12px;font-weight:650;color:var(--accent);
  padding:0}
.ocard:hover .pcard-more{text-decoration:underline}
body.mode-eco .ocard{background:var(--card-ds);border-radius:var(--r-2xl);
  padding:16px 18px 17px;margin-bottom:12px;box-shadow:var(--shadow-canopy);
  transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s}
body.mode-eco .ocard:hover{transform:translateY(-2px);border-color:var(--ring)}
body.mode-eco .ocard-tag{font-size:14px;font-weight:500;padding:3px 11px;
  letter-spacing:.02em;margin-bottom:9px}
body.mode-eco .ocard h3{font-family:var(--font-display);font-size:1rem;
  font-weight:700;text-transform:uppercase;letter-spacing:-.01em;line-height:1.2}
body.mode-eco .ocard-meta{font-size:14px;margin-top:9px;
  color:var(--muted-foreground)}
body.mode-eco .ocard .pcard-more{font-size:14px;margin-top:12px}
.ocard-section-state{float:right;margin-top:1px;padding:3px 8px;border-radius:999px;
  font-size:10.5px;font-weight:600;color:var(--muted-foreground);background:var(--fill-1)}
.ocard-section-state.has{color:var(--accent);background:var(--accent-soft)}
.ocard-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}
.ocard-actions button{min-height:34px;padding:6px 10px;border-radius:999px;font:inherit;
  font-size:12px;font-weight:650;cursor:pointer}
.ocard-map{border:1px solid var(--accent-ring);background:var(--accent-soft);color:var(--accent)}
.ocard-map:hover{background:var(--fill-3)}
body.mode-eco .ocard .ocard-actions .pcard-more{display:inline-flex;margin:0;padding:6px 10px;
  border:1px solid transparent;background:none}

/* --- байдлын жагсаалт */
.ostat{list-style:none;margin:0;padding:0}
.ostat li{position:relative;padding:6px 0 6px 22px;font-size:13px;
  color:var(--ink-2)}
.ostat li::before{position:absolute;left:0;top:6px;font-weight:700}
.ostat li.ok::before{content:"✓";color:var(--accent)}
.ostat li.no::before{content:"✗";color:var(--muted)}
body.mode-eco .ostat li{font-size:14px;padding:8px 0 8px 26px;
  border-bottom:1px solid var(--border)}
body.mode-eco .ostat li:last-child{border-bottom:0}

/* --- дэлгэрэнгүйн толгой, хүснэгт */
body.mode-eco .ap-title{font-family:var(--font-display);font-size:1.6rem}
body.mode-eco .ap-sub,body.mode-eco .pd-sub{font-size:14px;
  color:var(--muted-foreground)}
body.mode-eco .pd-head h2{font-family:var(--font-display);font-size:1.15rem;
  text-transform:uppercase}
body.mode-eco .ap-box{background:var(--card-ds);border-radius:var(--r-2xl);
  box-shadow:var(--shadow-canopy);padding:18px 20px 20px}
body.mode-eco .ap-tile{background:var(--fill-1);border-radius:var(--r-l);
  border-color:var(--border);padding:11px 13px}
body.mode-eco .ap-tile span{font-size:14px;letter-spacing:.04em;
  color:var(--muted-foreground)}
body.mode-eco .ap-tile b{font-family:var(--font-display);font-size:1rem;
  color:var(--foreground)}
body.mode-eco .ap-tile.wide b{font-size:14px}
body.mode-eco th{font-size:14px;letter-spacing:.08em;font-weight:500;
  text-transform:uppercase;color:var(--muted-foreground);
  border-bottom-color:var(--border);padding-bottom:10px}
body.mode-eco td{font-size:14px;padding:11px 4px;color:var(--foreground);
  border-bottom-color:var(--border)}
body.mode-eco .sub-line{font-size:14px;color:var(--muted-foreground)}
body.mode-eco tr.click:hover td{background:var(--fill-1)}
body.mode-eco .bar{height:3px;border-radius:9999px;margin-top:6px}
body.mode-eco .pd-contact a{font-size:14px;color:var(--primary-deep)}
body.dark.mode-eco .pd-contact a{color:var(--primary)}

/* --- газрын зураг: цэг (guideline §7 — bg-primary + ring + амьсгал) */
@keyframes eco-breathe{0%,100%{stroke-opacity:.16}50%{stroke-opacity:.34}}
body.mode-eco .eco-dot{stroke:var(--primary);stroke-opacity:.2;
  fill:var(--primary);fill-opacity:.9;
  transition:fill-opacity .3s,stroke-opacity .3s;cursor:pointer}
/* Харанхуйд неон ногоон нь зөвхөн акцент — том дүүргэлт болгохгүй (§7) */
body.dark.mode-eco .eco-dot{fill-opacity:.62;stroke-opacity:.16}
body.dark.mode-eco .eco-dot:hover{fill-opacity:.85}
body.dark.mode-eco .eco-dot.on{fill-opacity:.95}
body.mode-eco .eco-dot:hover{stroke-opacity:.4}
body.mode-eco .eco-dot.on{stroke-opacity:.42;
  animation:eco-breathe 4s ease-in-out infinite}
body.mode-eco .leaflet-tooltip{background:var(--card-ds);color:var(--card-foreground);
  border:1px solid var(--border);border-radius:var(--r-l);font-size:14px;
  box-shadow:var(--shadow-canopy);padding:7px 11px}
body.mode-eco .leaflet-tooltip::before{display:none}
.eco-section-info{max-width:250px;padding:8px 11px;border:1px solid var(--border);
  border-radius:var(--r-l);background:color-mix(in oklab,var(--card-ds) 90%,transparent);
  box-shadow:var(--sh-2);color:var(--card-foreground);font:600 12px/1.35 var(--font-sans);
  backdrop-filter:blur(8px)}
.eco-section-info[hidden]{display:none}
body.dark.mode-eco .eco-section-info{background:color-mix(in oklab,var(--card-ds) 86%,transparent)}
.eco-section-info strong,.eco-section-info small{display:block}
.eco-section-info strong{font-size:13px;color:var(--card-foreground)}
.eco-section-info small{margin:2px 0 6px;color:var(--muted-foreground);font-weight:500}
.eco-section-label{width:max-content!important;height:auto!important;
  padding:8px 11px;border:1px solid color-mix(in oklab,var(--primary) 55%,transparent);
  border-radius:var(--r-l);background:color-mix(in oklab,var(--card-ds) 90%,transparent);
  box-shadow:var(--shadow-canopy);color:var(--card-foreground);text-align:center;
  font:600 12px/1.3 var(--font-sans);white-space:nowrap;backdrop-filter:blur(8px)}
.eco-section-label b,.eco-section-label span{display:block}
.eco-section-label span{margin-top:2px;color:var(--primary);font-size:11px}
.eco-section-path{transition:fill-opacity .18s ease,stroke-width .18s ease}
.eco-section-path.is-selected{
  filter:drop-shadow(0 0 3px color-mix(in oklab,var(--primary) 80%,transparent))
         drop-shadow(0 0 9px color-mix(in oklab,var(--primary) 45%,transparent));
  stroke-linejoin:round;stroke-linecap:round
}
.eco-section-key{display:flex;flex-direction:column;gap:4px;margin-top:7px;padding-top:7px;
  border-top:1px solid var(--border);font-weight:500;color:var(--muted-foreground)}
.eco-section-key span,.eco-tip-owners span{display:flex;align-items:flex-start;gap:6px}
.eco-section-key i,.eco-tip-owners i{width:9px;height:9px;margin-top:3px;border-radius:3px;
  flex:none;box-shadow:inset 0 0 0 1px color-mix(in oklab,#000 15%,transparent)}
.eco-section-key i.mixed{background:#9a6700}
body.dark .eco-section-key i.mixed{background:#f4d35e}
.eco-tip-owners{display:flex;flex-direction:column;gap:3px;margin-top:7px;padding-top:6px;
  border-top:1px solid var(--border);font-size:12px}
.eco-tip-owners small{color:var(--muted-foreground)}
/* хяналтын товч — толгойтой ижил шил капсул */
body.mode-eco .leaflet-bar{border:0;border-radius:9999px;overflow:hidden;
  box-shadow:0 8px 28px -16px color-mix(in oklab,var(--primary-deep) 30%,transparent)}
body.mode-eco .leaflet-bar a{background:color-mix(in oklab,var(--card-ds) 82%,transparent);
  backdrop-filter:blur(24px) saturate(120%);
  -webkit-backdrop-filter:blur(24px) saturate(120%);
  border-color:var(--border);color:var(--foreground)}
body.mode-eco .leaflet-bar a:hover{background:var(--card-ds);color:var(--primary-deep)}
body.dark.mode-eco .leaflet-bar a:hover{color:var(--primary)}
body.mode-eco .leaflet-control-attribution{
  background:color-mix(in oklab,var(--card-ds) 70%,transparent);
  color:var(--muted-foreground);border-radius:9999px 0 0 0;padding:2px 10px}
body.mode-eco .leaflet-control-attribution a{color:var(--muted-foreground)}

/* --- газрын зураг дээрх тэмдэглэгээ (дугуй + доош сумтай) */
.pin-wrap{background:none;border:0}
.pin{position:relative;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;line-height:1;overflow:visible;
  background:var(--accent);border:2px solid var(--card);
  box-shadow:0 3px 10px rgba(0,0,0,.4);cursor:pointer;
  transition:transform .16s}
.pin::after{content:"";position:absolute;left:50%;top:100%;margin-left:-4px;
  border:4px solid transparent;border-top:7px solid var(--card)}
.pin.on{transform:scale(1.2);border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft),0 3px 12px rgba(0,0,0,.45)}
.pin.on:not(.logo){background:var(--accent-2)}
.pin-wrap:hover .pin{transform:scale(1.12)}
/* нөхөрлөл, байгууллагын логотой цэг */
.pin.logo{background:var(--card);padding:0}
.pin.logo img{display:block;width:34px!important;height:34px!important;
  min-width:34px;max-width:34px;border-radius:50%;object-fit:cover;
  clip-path:circle(50%)}

/* амлалтын гүйцэтгэл */
.ap-prog{margin:-4px 0 14px}
.ap-prog-top{display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:5px}
.ap-prog-top span{font-size:9.5px;text-transform:uppercase;letter-spacing:.8px;
  color:var(--muted)}
.ap-prog-top b{font-size:14px;font-weight:650;color:var(--ink);
  font-variant-numeric:tabular-nums}
.ap-prog-track{height:6px;border-radius:6px;overflow:hidden;
  background:var(--fill-2)}
.ap-prog-track i{display:block;height:100%;border-radius:6px;
  background:linear-gradient(90deg,var(--bar-a),var(--bar-b))}

/* тарьсан модны эх үүсвэр */
.ap-split{display:flex;height:8px;border-radius:6px;overflow:hidden;gap:2px;
  margin-bottom:8px}
.ap-split i{display:block;height:100%}
.ap-split i.loc{background:linear-gradient(90deg,var(--bar-a),var(--tone-a));
  border-radius:6px 0 0 6px}
.ap-split i.org{background:linear-gradient(90deg,var(--org-a),var(--tone-b));
  border-radius:0 6px 6px 0}
.ap-split-key{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11.5px;
  color:var(--ink-2)}
.ap-split-key span{display:inline-flex;align-items:center;gap:6px}
.ap-split-key em{width:7px;height:7px;border-radius:2px;flex:none}
.ap-split-key em.loc{background:var(--bar-a)}
.ap-split-key em.org{background:var(--org-a)}

/* албан ёсны тооны хайрцаг */
.ap-box{border:1px solid var(--line);border-radius:16px;padding:13px 14px 14px;
  background:linear-gradient(165deg,var(--fill-1),transparent);
  margin-bottom:14px}
.ap-box header{display:flex;align-items:flex-start;gap:10px;margin-bottom:11px}
.ap-box h3{margin:0;font-size:12.5px;font-weight:650;color:var(--on-accent);line-height:1.3}
.ap-box header p{margin:2px 0 0;font-size:10.5px;color:var(--muted)}
.ap-badge{margin-left:auto;flex:none;white-space:nowrap;align-self:flex-start;display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;
  color:var(--on-accent);background:var(--accent-soft);border:1px solid var(--accent-ring)}
.ap-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--dot)}
.ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ap-tile{padding:9px 11px;border-radius:11px;border:1px solid var(--line-2);
  background:var(--fill-1)}
.ap-tile span{display:block;font-size:9.5px;text-transform:uppercase;
  letter-spacing:.7px;color:var(--muted);line-height:1.3}
.ap-tile.wide{grid-column:1/-1}
.ap-tile.wide b{font-size:13.5px;line-height:1.4}
.ap-tile b{display:block;margin-top:2px;font-size:15px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.ap-chart-label{margin:14px 0 4px;font-size:9.5px;text-transform:uppercase;
  letter-spacing:.8px;color:var(--muted)}

/* хэсэг, чип, жагсаалт */
.ap-sec{margin-bottom:16px}
.ap-sec h4{margin:0 0 8px;font-size:10px;text-transform:uppercase;letter-spacing:1px;
  color:var(--muted);font-weight:650}
.ap-chips{display:flex;flex-wrap:wrap;gap:7px}
.ap-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;
  border-radius:20px;font-size:12.5px;color:var(--ink-2);
  background:var(--fill-1);border:1px solid var(--line)}
.ap-sec h4 em{font-style:normal;text-transform:none;letter-spacing:0;
  color:var(--muted);opacity:.75;font-weight:500}
.ap-chart-label em{font-style:normal;text-transform:none;letter-spacing:0;opacity:.7}
.ap-list{list-style:none;margin:0;padding:0}
.ap-list li{position:relative;padding:5px 0 5px 16px;font-size:13px;color:var(--ink-2)}
.ap-list li::before{content:"";position:absolute;left:0;top:11px;width:6px;height:6px;
  border-radius:50%;background:var(--dot)}
/* хэмжигдэхүүнтэй жагсаалт */
.ap-list.num li{display:flex;align-items:baseline;gap:10px;padding-left:0;
  border-bottom:1px solid var(--line-2)}
.ap-list.num li::before{display:none}
.ap-list.num li span{position:relative;flex:1;min-width:0;padding-bottom:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-list.num li b{flex:none;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums}
.ap-list.num .ap-bar{bottom:0}
.ap-table{width:100%;border-collapse:collapse;font-size:12.5px}
.ap-table th{font-size:9.5px;color:var(--muted);border-bottom:1px solid var(--line);
  padding:0 3px 6px;text-transform:uppercase;letter-spacing:.6px}
.ap-table td{position:relative;padding:7px 3px;border-bottom:1px solid var(--line-2);
  color:var(--ink-2);font-variant-numeric:tabular-nums}
.ap-table tr.click{cursor:pointer}
.ap-table tr.click:hover td{background:var(--fill-2)}
.ap-bar{position:absolute;left:0;bottom:2px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--bar-a),var(--bar-b));opacity:.75}

/* ================================================== санал хүсэлт (feedback) */
/* Хөвөгч товч. billions-tree дээр зүүн доод буланд сууна — ТЭНД хоосон.
   Энд зүүн талыг самбар бүхэлд нь эзэлдэг тул тэр байрлал жагсаалтыг дардаг.
   Тиймээс газрын зураг дээр, БАРУУН доод буланд үлдэнэ. */
.fb-open{position:fixed;right:16px;bottom:16px;z-index:1500;display:flex;
  align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line);
  border-radius:999px;background:var(--card);color:var(--ink);cursor:pointer;
  box-shadow:var(--sh-2);font-size:13px;font-weight:500;transition:.14s}
/* Hover дээр ЗӨВХӨН хүрээ, үсгийн өнгө солино. Харанхуй загварт
   --accent-soft нь ил тод (rgba …,.14) тул түүгээр дүүргэвэл товч нь
   тунгалаг болж доорх газрын зураг харагдаж байсан. */
.fb-open:hover{background:var(--card);border-color:var(--accent-ring);
  color:var(--accent)}
.fb-open svg{flex:none}

.fb-wrap{position:fixed;inset:0;z-index:1600;display:flex;align-items:center;
  justify-content:center;padding:16px;background:rgba(24,32,29,.42)}
/* `hidden` шинжийг ЗААВАЛ буцаана: браузерын өөрийн [hidden]{display:none}
   дүрмийг дээрх .fb-wrap{display:flex} дардаг (зохиогчийн загвар нь браузерынхаас
   давуу), тиймээс цонх ачаалахад л шууд нээгдээд байсан. */
.fb-wrap[hidden]{display:none}
body.dark .fb-wrap{background:rgba(0,0,0,.6)}
.fb-box{width:100%;max-width:448px;max-height:calc(100vh - 32px);display:flex;
  flex-direction:column;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-l);box-shadow:var(--sh-2);overflow:hidden}
.fb-head{display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 0;border:0}
.fb-head h3{margin:0;font-size:15px;font-weight:650;letter-spacing:-.2px}
.fb-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;
  gap:16px}
.fb-body[hidden]{display:none}

/* Дугуй сонголт: сонгогдсон нь дүүрэн, бусад нь хүрээтэй — хоёулаа ӨӨРИЙН
   өргөнтэй (өмнө нь flex:1-ээр хагасыг эзэлдэг байсан нь өөр харагдуулж байв). */
.fb-types{display:flex;gap:8px}
.fb-types button{padding:6px 16px;border:1px solid var(--line);
  border-radius:999px;background:var(--card);color:var(--muted);
  cursor:pointer;font-size:13px;font-weight:500;transition:.14s}
.fb-types button:hover{color:var(--ink)}
.fb-types button.on{background:var(--accent);border-color:var(--accent);
  color:#fff}
body.dark .fb-types button.on{color:#06210f}

.fb-body textarea,.fb-row input{width:100%;border:1px solid var(--line);
  border-radius:var(--r-m);background:#fbfbf9;color:var(--ink);font:inherit;
  padding:9px 11px;outline:none;transition:.14s;resize:vertical}
body.dark .fb-body textarea,body.dark .fb-row input{background:var(--fill-1)}
.fb-body textarea:focus,.fb-row input:focus{border-color:var(--accent-ring);
  box-shadow:0 0 0 3px var(--accent-soft)}
.fb-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fb-row[hidden]{display:none}
.fb-row input{font-size:12.5px}

/* Зураг: доор нь «Устгах» ҮГ — булан дээрх × тэмдгийг цехийн хүн таахгүй. */
.fb-shots{display:flex;flex-wrap:wrap;gap:12px}
.fb-shots:empty{display:none}
.fb-shot{display:flex;flex-direction:column;align-items:center;gap:4px}
.fb-shot img{width:56px;height:56px;object-fit:cover;border-radius:var(--r-s);
  border:1px solid var(--line)}
.fb-shot button{border:0;background:0;padding:0;color:var(--muted);
  cursor:pointer;font-size:11px;transition:.14s}
.fb-shot button:hover{color:var(--ink)}

.fb-attach{align-self:flex-start;padding:8px 12px;
  border:1px dashed var(--line-strong);border-radius:var(--r-s);
  color:var(--muted);cursor:pointer;font-size:13px;transition:.14s}
.fb-attach:hover{border-color:var(--accent-ring);color:var(--accent)}
.fb-attach[hidden]{display:none}

.fb-more{align-self:flex-start;border:0;background:0;padding:0;
  color:var(--muted);cursor:pointer;font-size:13px;transition:.14s}
.fb-more:hover{color:var(--ink)}
.fb-more[hidden]{display:none}

/* Автоматаар хавсрагдах зүйлс — шошго болгон тусдаа, уншихад хялбар. */
.fb-auto{border:1px solid var(--line);border-radius:var(--r-m);padding:12px;
  background:var(--fill-1)}
.fb-auto p{margin:0;font-size:11px;color:var(--muted)}
.fb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fb-chips span{border:1px solid var(--line);border-radius:var(--r-s);
  background:var(--card);padding:2px 8px;font-size:11px;color:var(--muted)}

.fb-bad{margin:0;font-size:12.5px;color:#c0392b}
body.dark .fb-bad{color:#ff8a75}
.fb-bad[hidden]{display:none}

.fb-done{margin:0;padding:34px 18px;text-align:center;font-size:15px;
  font-weight:600;color:var(--ink)}
.fb-done[hidden]{display:none}

.fb-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:0 18px 16px}
.fb-foot[hidden]{display:none}
.fb-note{font-size:11px;color:var(--muted)}
.fb-note.ok{color:var(--accent);font-weight:600}
.fb-note.bad{color:#c0392b}
body.dark .fb-note.bad{color:#ff8a75}
.fb-send{padding:9px 20px;border:0;border-radius:var(--r-s);
  background:var(--accent);color:#fff;font-weight:600;font-size:13px;
  cursor:pointer;transition:.14s}
body.dark .fb-send{color:#06210f}
.fb-send:hover{background:var(--accent-2)}
.fb-send:disabled{opacity:.6;cursor:default}

@media (max-width:820px){
  .eco-section-info{max-width:190px;font-size:11px}
  .fb-open{right:10px;bottom:10px;padding:9px 12px}
  .fb-open span{display:none}
  .fb-row{grid-template-columns:1fr}
}

/* =====================================================================
   ЗУРАГ ДЭЭРХ УДИРДЛАГА (Тэрбум мод) — Google Maps маягаар: юуг харуулах
   сонголт нь зүүн дээд, дэвсгэр зургийн сонголт зүүн доод буланд.
   ===================================================================== */
.mapctl{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  box-shadow:var(--sh-2);font:inherit;color:var(--ink);overflow:hidden;
  -webkit-user-select:none;user-select:none}
body.dark .mapctl{background:rgba(13,22,19,.94);border-color:var(--line);
  backdrop-filter:blur(6px)}

/* --- юуг харуулах + өнгөний тайлбар */
.mapctl.mc{width:224px}
.mapctl.mc.eco-layers{width:258px}
.mc-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;
  border:0;background:none;cursor:pointer;text-align:left;font-size:12.5px;
  font-weight:650;color:var(--ink)}
.mc-head:hover{background:var(--fill-1)}
.mc-dot{width:9px;height:9px;border-radius:50%;flex:none}
.mc-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-chev{flex:none;color:var(--muted);transition:transform .18s}
.mapctl.mc.min .mc-chev{transform:rotate(-90deg)}
.mapctl.mc.min .mc-body{display:none}
.mc-body{padding:2px 10px 10px}
.mc-lab{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.7px;
  color:var(--muted);font-weight:650;margin-bottom:5px}
.mc-sel{width:100%;padding:6px 26px 6px 8px;font-size:12.5px;border-radius:var(--r-s);
  border:1px solid var(--line);background:var(--fill-1);color:var(--ink);
  cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2379837d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 8px center}
.mapctl.mc .legend{margin-top:8px}
.mapctl.mc .legend div{font-size:11.5px;padding:1.5px 0}
.mapctl.mc .sw{width:11px;height:11px}

/* --- дэвсгэр зураг */
.mapctl.bs{border-radius:var(--r-m)}
.bs-toggle{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;
  border:0;background:none;cursor:pointer;font-size:12px;font-weight:650;
  color:var(--ink)}
.bs-toggle:hover{background:var(--fill-1)}
.bs-thumb{width:38px;height:38px;flex:none;border-radius:7px;background-size:cover;
  background-position:center;background-color:var(--fill-2);
  box-shadow:inset 0 0 0 1px rgba(24,32,29,.14)}
body.dark .bs-thumb{box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.bs-list{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}
.bs-opt{display:flex;flex-direction:column;align-items:center;gap:5px;width:60px;
  padding:4px;border:0;border-radius:8px;background:none;cursor:pointer;
  font-size:10.5px;line-height:1.15;color:var(--ink-2);text-align:center}
.bs-opt:hover{background:var(--fill-1)}
.bs-opt.on{color:var(--accent);font-weight:650}
.bs-opt.on .bs-thumb{box-shadow:0 0 0 2px var(--accent)}

@media (max-width:820px){
  .mapctl.mc{width:190px}
  .bs-toggle .bs-lab{display:none}
  .bs-list{max-width:min(82vw,340px);overflow-x:auto;overscroll-behavior-x:contain}
  .bs-opt{flex:0 0 58px}
}
.mc-scope{margin-top:7px;font-size:11px;color:var(--muted);font-weight:600;
  display:flex;align-items:center;gap:5px}
.mc-scope::before{content:"";width:5px;height:5px;border-radius:50%;
  background:var(--accent);flex:none}
.mc-empty{margin-top:7px;padding:7px 8px;border-radius:var(--r-s);
  background:var(--fill-1);color:var(--muted);font-size:11px;line-height:1.35}
.map-primary-note{margin:0 0 10px;padding:9px 10px;border-left:3px solid var(--accent);
  border-radius:0 var(--r-s) var(--r-s) 0;background:var(--accent-soft);
  color:var(--ink-2);font-size:11.5px;line-height:1.45}
.map-primary-note b{color:var(--accent)}
.terbum-value-label,.soum-value-label{pointer-events:none;text-shadow:none!important;
  text-align:center;white-space:nowrap}
.terbum-value-label>span,.soum-value-label>span{display:block;color:var(--ink-2);
  font-size:10px;font-weight:700;line-height:1.1}
.terbum-value-label>b,.soum-value-label>b{display:inline-block;margin-top:2px;padding:3px 7px;
  border:1px solid rgba(20,83,45,.22);border-radius:999px;background:rgba(255,255,255,.92);
  box-shadow:0 2px 8px rgba(15,40,25,.18);color:#14532d;font-size:11.5px;line-height:1}
.terbum-value-label>small,.soum-value-label>small{display:none}
.soum-value-label>span{font-size:9px}
.soum-value-label>b{padding:2px 5px;font-size:10px;background:rgba(255,255,255,.88)}
body.dark .terbum-value-label>b,body.dark .soum-value-label>b{background:rgba(13,30,23,.92);
  border-color:rgba(143,242,184,.3);color:#8ff2b8;box-shadow:0 2px 10px rgba(0,0,0,.5)}
body.dark .terbum-value-label>span,body.dark .soum-value-label>span{color:#e6f1eb}
@media(max-width:820px){
  .terbum-value-label>b{font-size:10.5px;padding:3px 6px}
  .terbum-value-label>span{font-size:9px}
  .soum-value-label:nth-child(even){display:none}
}
.eco-layer-body .eco-kind-title{margin-top:10px}
.eco-view-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;
  border-radius:9px;background:var(--fill-1)}
.eco-view-modes button{min-width:0;padding:6px 3px;border:0;border-radius:7px;background:none;
  color:var(--ink-2);font:600 10.5px/1.2 var(--font-sans);cursor:pointer}
.eco-view-modes button:hover{background:var(--fill-2)}
.eco-view-modes button.on{background:var(--card);color:var(--accent);box-shadow:var(--sh-1)}
.eco-kind-list{display:flex;flex-direction:column;gap:2px}
.eco-kind-list button{display:grid;grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center;gap:7px;width:100%;padding:6px 7px;border:0;border-radius:8px;
  background:none;color:var(--ink-2);font:500 11.5px/1.25 var(--font-sans);
  text-align:left;cursor:pointer}
.eco-kind-list button:hover{background:var(--fill-1)}
.eco-kind-list button.on{background:var(--accent-soft);color:var(--accent);font-weight:650}
.eco-kind-list i{width:9px;height:9px;border-radius:50%}
.eco-kind-list b{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--muted)}
.eco-map-legend{display:flex;flex-direction:column;gap:4px;margin-top:9px;padding-top:8px;
  border-top:1px solid var(--line);font-size:10.5px;color:var(--muted)}
.eco-map-legend span{display:flex;align-items:center;gap:7px}
.eco-map-legend i{width:10px;height:10px;border-radius:3px;background:var(--accent-soft);
  border:2px solid var(--accent);box-sizing:border-box}
.eco-map-legend i.org{border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.eco-map-legend i.mixed{background:#f4d35e;border-color:#9a6700}
@media (max-width:820px){.mapctl.mc.eco-layers{width:min(258px,calc(100vw - 72px))}}

@media (prefers-reduced-motion: reduce){
  .side,.mapwrap{transition:none!important}
}
