/* ============================================================
   ATLAS — maps, registry, governance, border, services
   ============================================================ */
main{padding:0 0 90px}

/* ---------- MAP CARDS ---------- */
.mapcards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px}
.mapcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--rL);overflow:hidden;
 transition:.4s cubic-bezier(.22,1,.36,1);cursor:pointer}
.mapcard:hover{transform:translateY(-6px);box-shadow:var(--sh);border-color:var(--mint)}
.mapfig{position:relative;aspect-ratio:1.414/1;overflow:hidden;background:var(--sand)}
.mapfig img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.mapcard:hover .mapfig img{transform:scale(1.05)}
.mapzoom{position:absolute;right:14px;bottom:14px;background:rgba(15,46,36,.86);color:#fff;
 border-radius:30px;padding:7px 15px;font-size:.78rem;font-weight:600;display:flex;align-items:center;gap:7px;
 backdrop-filter:blur(6px);opacity:0;transform:translateY(6px);transition:.35s}
.mapcard:hover .mapzoom{opacity:1;transform:none}
.mapb{padding:24px 26px 26px}
.mapb h3{font-size:1.12rem;color:var(--forest);margin-bottom:5px;line-height:1.32}
.mapkm{font-family:'Noto Sans Khmer',sans-serif;font-size:.9rem;color:var(--muted);line-height:1.85;margin-bottom:14px}
.mapmeta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.mapmeta span{font-size:.71rem;background:var(--sand);color:var(--emerald);padding:4px 11px;border-radius:20px;font-weight:600}
.mapb h4{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--terra);margin:14px 0 9px}
.shows{list-style:none}
.shows li{font-size:.85rem;color:var(--muted);padding:5px 0 5px 18px;position:relative}
.shows li:before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:1px;
 background:var(--leaf);transform:rotate(45deg)}

/* ---------- VIEWER ---------- */
.viewer{position:fixed;inset:0;background:#0B1512;z-index:600;display:none;flex-direction:column}
.viewer.open{display:flex}
.vbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;
 background:rgba(15,46,36,.9);border-bottom:1px solid rgba(255,255,255,.1);color:#fff;flex-shrink:0}
#vtitle{font-size:.93rem;font-weight:600;color:#fff;line-height:1.35}
.vctl{display:flex;align-items:center;gap:8px;flex-shrink:0}
.vctl button,.vctl a{background:rgba(255,255,255,.12);border:0;color:#fff;width:38px;height:38px;
 border-radius:10px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
 text-decoration:none;transition:.25s;font-family:inherit}
.vctl button:hover,.vctl a:hover{background:rgba(255,255,255,.24)}
#vreset{width:auto;padding:0 15px;font-size:.82rem;font-weight:600}
#vzoom{color:rgba(255,255,255,.7);font-size:.8rem;min-width:52px;text-align:center;font-variant-numeric:tabular-nums}
.vstage{flex:1;overflow:hidden;position:relative;cursor:grab;display:flex;align-items:center;justify-content:center}
.vstage.drag{cursor:grabbing}
.vstage img{max-width:none;transform-origin:0 0;user-select:none;-webkit-user-drag:none}
.vhint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.45);
 font-size:.76rem;background:rgba(15,46,36,.7);padding:7px 16px;border-radius:20px;backdrop-filter:blur(6px);
 pointer-events:none}

/* ---------- TREE ---------- */
.tree{display:grid;gap:12px;margin-top:20px}
.dnode{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
 border-left:4px solid var(--leaf)}
.dnode.mun{border-left-color:var(--gold)}
.dhead{display:flex;align-items:center;gap:14px;padding:20px 24px;cursor:pointer;transition:.25s}
.dhead:hover{background:var(--sand)}
.dcode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--muted);
 background:var(--sand);padding:3px 9px;border-radius:5px;flex-shrink:0}
.dname{flex:1}
.dname b{display:block;color:var(--forest);font-size:1.05rem;line-height:1.3}
.dname .kh{font-family:'Noto Sans Khmer',sans-serif;font-size:.88rem;color:var(--muted);line-height:1.8}
.dcount{font-size:.79rem;color:var(--muted);flex-shrink:0;text-align:right;line-height:1.5}
.dchev{flex-shrink:0;color:var(--emerald);font-size:1.1rem;transition:transform .3s}
.dnode.open .dchev{transform:rotate(90deg)}
.dbody{display:none;padding:0 24px 20px}
.dnode.open .dbody{display:block;animation:panelIn .4s cubic-bezier(.22,1,.36,1)}
.dnote{font-size:.86rem;color:var(--muted);padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.cnode{padding:13px 0;border-bottom:1px solid var(--line)}
.cnode:last-child{border-bottom:0}
.chead{display:flex;align-items:baseline;gap:11px;margin-bottom:8px}
.chead b{color:var(--forest);font-size:.95rem}
.chead .ccode{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;color:var(--muted)}
.chead .cn{font-size:.75rem;color:var(--terra);font-weight:600;margin-left:auto}
.vills{display:flex;flex-wrap:wrap;gap:6px}
.vill{font-size:.78rem;background:var(--sand);color:var(--ink);padding:4px 11px;border-radius:20px;
 transition:.22s;cursor:default}
.vill:hover{background:var(--mint);color:var(--emerald)}
.vill.hit{background:var(--gold);color:#3F2E08;font-weight:700}
mark{background:var(--gold);color:#3F2E08;padding:0 2px;border-radius:3px}

/* ---------- GOVERNANCE ---------- */
.govgrid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;margin-top:26px;align-items:start}
.govrow{padding:16px 0;border-bottom:1px solid var(--line)}
.govrow:last-child{border-bottom:0}
.govrow b{display:block;color:var(--forest);font-size:.97rem;margin-bottom:5px}
.govrow p{font-size:.89rem;color:var(--muted);margin-bottom:7px}
.govsrc{font-size:.75rem;color:var(--emerald);font-weight:600}
.seatrow{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.88rem}
.seatrow:last-child{border-bottom:0}
.seatrow b{color:var(--terra);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
 min-width:88px;flex-shrink:0;padding-top:3px}
.seatrow span,.seatrow a{color:var(--forest);font-weight:600;word-break:break-word}
.holder{padding:15px 0;border-bottom:1px solid var(--line)}
.holder:last-child{border-bottom:0}
.holder .ho{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);margin-bottom:4px}
.holder .hn{color:var(--forest);font-weight:700;font-size:1.02rem}
.holder .hm{font-size:.83rem;color:var(--muted);margin-top:5px}

/* ---------- BORDER ---------- */
.crossgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.cross{background:var(--sand);border-radius:var(--r);padding:20px 22px;border-left:3px solid var(--terra)}
.cross b{display:block;color:var(--forest);font-size:1rem;margin-bottom:3px}
.crossloc{font-size:.76rem;color:var(--terra);font-weight:600;margin-bottom:9px}
.cross p{font-size:.86rem;color:var(--muted)}

/* ---------- SERVICES ---------- */
.svcgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:26px}
.svcat{background:var(--paper);border:1px solid var(--line);border-radius:var(--rL);padding:26px 28px}
.svcat h3{font-size:1.08rem;color:var(--forest);margin-bottom:16px;padding-bottom:12px;
 border-bottom:2px solid var(--mint)}
.svitem{padding:13px 0;border-bottom:1px solid var(--line)}
.svitem:last-child{border-bottom:0}
.svitem b{color:var(--forest);font-size:.93rem;display:inline}
.svitem p{font-size:.86rem;color:var(--muted);margin-top:5px}

@media(max-width:980px){
 .mapcards,.govgrid,.crossgrid,.svcgrid{grid-template-columns:1fr}
 .lstats{grid-template-columns:repeat(2,auto)}
 .vbar{flex-wrap:wrap}
 #vtitle{width:100%;font-size:.85rem}
 .dhead{padding:16px 18px;gap:10px}
 .dcount{display:none}
}
@media print{
 .tabs,.viewer,nav,#top,#prog,.searchrow,.resultbar{display:none!important}
 .panel{display:block!important}
 .dbody{display:block!important}
}
