/* PlotCheck — ธีมมืด น้ำเงินเข้ม/เขียวเข้ม ฟอนต์ชุดเดียวกับเว็บ LEDLand (Inter + Sarabun เนื้อความ, Prompt หัวข้อ/ตัวเลข)
 * โครง: แถบหัว → การ์ดข้อมูลเข้า (แผนที่ + เครื่องมือ) → กลุ่มการ์ดผลวิเคราะห์ · จอกว้าง (เว็บ) แบ่งสองคอลัมน์ การ์ดข้อมูลเข้าติดซ้าย */
:root{
  --bg:#070d1a; --bg2:#0b1426; --panel:#0f1b31; --panel2:#13233f; --line:#1e2f4f; --line2:#29406a;
  --ink:#e6edf7; --muted:#93a4c0; --faint:#647694;
  --navy:#1d3a6e; --navy2:#25498a; --green:#0f7a52; --green2:#13955f; --mint:#34d399;
  --accent:#34d399; --accent-ink:#04140d; --sel:#fbbf24;
  --water:#38bdf8; --veg:#4ade80; --built:#f59e0b;
  --chip:#162846; --ok:#34d399; --warn:#fbbf24; --bad:#f87171; --hl:#10233c;
  --f-display:"Prompt","Inter","Sarabun",system-ui,sans-serif;
  --f-body:"Inter","Sarabun",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --r:12px;
  --body-bg:radial-gradient(1200px 500px at 10% -10%,#0f2348 0%,transparent 60%),radial-gradient(900px 400px at 110% 0%,#0a2b22 0%,transparent 55%),#070d1a;
  --hdr-bg:linear-gradient(90deg,#0b1a36,#0b2a24); --hdr-shadow:0 6px 18px rgba(0,0,0,.35);
  --card-in-bg:linear-gradient(180deg,#10203d,#0b1528); --gh-ink:#cfe0ff; --input-bg:#0a1426; --verdict-bg:#0a1529;
  --hover-bg:#1a3155; --hover-line:#3d5c92; --ok-bg:#0b2a22; --strong:#fff; --card-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 8px 24px rgba(0,0,0,.25);
  --bad-bg:#3b1013; --warn-bg:#33270a; --okc-bg:#0b2a22;
  color-scheme:dark;
}
/* ธีมสว่าง (ระยะ 1) สีสถานะตาม Carbon ธีมสว่าง แดง #da1e28 ส้ม #ff832b เหลือง #f1c21b เขียว #198038 */
:root[data-theme="light"]{
  --bg:#f4f6fa; --bg2:#ffffff; --panel:#ffffff; --panel2:#f1f4f9; --line:#d9dfe9; --line2:#c3ccdb;
  --ink:#16202f; --muted:#4f5d73; --faint:#6b7891;
  --navy:#1d3a6e; --navy2:#2c5aa8; --green:#14804f; --green2:#16955d; --mint:#127a4c;
  --accent:#127a4c; --sel:#b45309; --chip:#eef2f8; --ok:#198038; --warn:#b28600; --bad:#da1e28; --hl:#eef4ff;
  --body-bg:#f4f6fa; --hdr-bg:linear-gradient(90deg,#ffffff,#f1f7f4); --hdr-shadow:0 2px 10px rgba(20,30,50,.08);
  --card-in-bg:#ffffff; --gh-ink:#1d3a6e; --input-bg:#ffffff; --verdict-bg:#f6f8fc;
  --hover-bg:#e6edf8; --hover-line:#8fa3c6; --ok-bg:#e9f6ef; --strong:#0b1220; --card-shadow:0 1px 2px rgba(20,30,50,.06),0 6px 18px rgba(20,30,50,.06);
  --bad-bg:#fde8e9; --warn-bg:#fdf6dd; --okc-bg:#e9f6ef;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--body-bg);background-attachment:fixed;color:var(--ink);font:14px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
a{color:var(--mint)}
[hidden]{display:none!important}

/* header */
header.top{position:sticky;top:0;z-index:1100;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
  padding:10px 14px;background:var(--hdr-bg);border-bottom:1px solid var(--line);box-shadow:var(--hdr-shadow)}
header.top h1{font:600 18px/1.1 var(--f-display);margin:0;display:flex;align-items:center;gap:8px;letter-spacing:.01em}
header.top h1 small{font:500 13px var(--f-body);color:var(--muted)}
.mark{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,var(--navy2),var(--green2));box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)}
.auto{flex-direction:row!important;align-items:center;gap:6px!important;font-size:12px!important}
.auto input{width:auto}

/* layout */
.layout{padding:12px 12px 32px;display:flex;flex-direction:column;gap:14px}
.col-in,.col-out{display:flex;flex-direction:column;gap:14px;min-width:0}
@media (min-width:1080px){
  .layout{display:grid;grid-template-columns:minmax(400px,500px) minmax(0,1fr);align-items:start;max-width:1600px;margin:0 auto}
  .col-in{position:sticky;top:64px;max-height:calc(100vh - 76px);overflow:auto;scrollbar-width:thin}
  #map{height:420px!important}
}

/* cards */
.card{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0;box-shadow:var(--card-shadow)}
.card-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card h2,.card h3{margin:0;font:600 15px/1.3 var(--f-display);display:flex;align-items:center;gap:8px}
.card h3{font-size:14px}
.card h4{margin:6px 0 0;font:600 13px var(--f-display);color:var(--muted)}
h3.inline{display:inline-flex}
.st{margin-left:auto;font:400 12px var(--f-body);color:var(--muted);text-align:right}
.step{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--green);color:#eafff5;font:600 12px var(--f-display)}
.card-in{border-color:var(--line2);background:var(--card-in-bg)}
.card-in .card-h{justify-content:space-between}

/* groups */
.cnav{position:sticky;top:52px;z-index:900;display:flex;gap:6px;overflow-x:auto;padding:6px 2px;background:linear-gradient(var(--bg) 70%,transparent);scrollbar-width:none}
.cnav::-webkit-scrollbar{display:none}
.cnav a{flex:none;font:500 12.5px var(--f-body);color:var(--ink);text-decoration:none;padding:5px 11px;border:1px solid var(--line2);border-radius:999px;background:var(--panel)}
.cnav a:hover{border-color:var(--mint);color:var(--mint)}
.group{display:flex;flex-direction:column;gap:10px}
.gh{margin:6px 2px 0;font:600 16px/1.3 var(--f-display);display:flex;align-items:center;gap:8px;color:var(--gh-ink)}
.gh::before{content:"";width:4px;height:18px;border-radius:2px;background:linear-gradient(var(--navy2),var(--green2))}
.gh .step{display:none}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.gverdict:empty{display:none}

/* icons on card titles */
.ic{width:20px;height:20px;border-radius:6px;flex:none;display:inline-block;background:var(--chip);position:relative;box-shadow:inset 0 0 0 1px var(--line2)}
.ic::after{content:"";position:absolute;inset:5px;border-radius:3px}
.ic-road::after,.ic-car::after,.ic-tee::after{background:#94a3b8}
.ic-shape::after{background:var(--sel);clip-path:polygon(0 30%,80% 0,100% 100%,15% 85%)}
.ic-warn::after{background:var(--warn);clip-path:polygon(50% 0,100% 100%,0 100%)}
.ic-zone::after{background:linear-gradient(90deg,#facc15 33%,#f97316 33% 66%,#ef4444 66%)}
.ic-state::after{background:#22c55e}
.ic-deed::after{background:#ef4444;clip-path:polygon(15% 0,85% 0,85% 100%,15% 100%);border-top:3px solid #fcd34d}
.ic-build::after{background:#60a5fa;clip-path:polygon(0 100%,0 35%,50% 0,100% 35%,100% 100%)}
.ic-water::after{background:var(--water);border-radius:50% 50% 50% 0}
.ic-power::after{background:var(--warn);clip-path:polygon(55% 0,10% 60%,45% 60%,35% 100%,90% 35%,55% 35%)}
.ic-elev::after,.ic-slope::after{background:#a3e635;clip-path:polygon(0 100%,40% 30%,60% 60%,80% 20%,100% 100%)}
.ic-sat::after{background:radial-gradient(circle,#4ade80 35%,#16a34a 36%)}
.ic-hist::after{background:conic-gradient(var(--water) 0 30%,var(--veg) 0 70%,var(--built) 0)}
.ic-poi::after{background:#f472b6;border-radius:50%}
.ic-grow::after{background:var(--mint);clip-path:polygon(0 100%,0 70%,35% 45%,60% 60%,100% 10%,100% 100%)}
.ic-price::after,.ic-tax::after{background:#fcd34d;border-radius:50%}

/* forms */
label{font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:4px;min-width:0}
input,textarea,select{font:inherit;color:var(--ink);background:var(--input-bg);border:1px solid var(--line2);border-radius:8px;padding:7px 9px;width:100%;min-width:0}
input::placeholder,textarea::placeholder{color:var(--faint)}
textarea{min-height:56px;resize:vertical;font:13px/1.5 var(--f-body)}
select option{background:var(--input-bg)}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:1px}
.inl{display:flex;gap:6px}
.inl button{flex:none}
.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.row.three{grid-template-columns:1fr 1fr 1fr}
@media (max-width:380px){.row.three{grid-template-columns:1fr 1fr}}
fieldset.grp{border:1px solid var(--line);border-radius:10px;padding:8px 10px 10px;margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
fieldset.grp legend{font:600 13px var(--f-display);color:var(--gh-ink);padding:0 4px}
fieldset.grp legend .hint{font:400 11.5px var(--f-body)}
.chk{flex-direction:row!important;align-items:center;gap:6px!important}
.chk input{width:auto;accent-color:var(--mint)}
details.sub{border:1px dashed var(--line2);border-radius:10px;padding:6px 10px}
details.sub[open]{display:flex;flex-direction:column;gap:8px;padding-bottom:10px}
details.sub summary{cursor:pointer;font-size:12.5px;color:var(--muted)}
details>summary{list-style:none;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details>summary h3::after{content:"▸";color:var(--muted);font-size:12px;margin-left:4px}
details[open]>summary h3::after{content:"▾"}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:6px}
button,a.btn{font:500 13px var(--f-body);border:1px solid var(--line2);background:var(--chip);color:var(--ink);border-radius:8px;padding:7px 11px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
button:hover,a.btn:hover{border-color:var(--hover-line);background:var(--hover-bg)}
button.primary{background:linear-gradient(180deg,var(--green2),var(--green));border-color:#18a96c;color:#f0fff8;font-weight:600}
button.primary:hover{background:linear-gradient(180deg,#17ad6e,#0f8a5c)}
button.big{padding:9px 16px;font-size:14px}
button:disabled{opacity:.45;cursor:default}
.actions{padding-top:2px}

/* segmented */
.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line2);border-radius:9px;overflow:hidden;max-width:100%;background:var(--input-bg)}
.seg label{flex-direction:row!important;align-items:center;gap:6px!important;padding:6px 11px;font-size:12.5px;color:var(--muted);cursor:pointer}
.seg label+label{border-left:1px solid var(--line2)}
.seg input{width:auto;margin:0;accent-color:var(--mint)}
.seg label:has(input:checked){background:var(--navy);color:#fff;font-weight:600}
.seg label:has(input:disabled){opacity:.5;cursor:not-allowed}
.seg.sm{flex-wrap:nowrap}
.seg.sm label{padding:4px 9px;font-size:12px;white-space:nowrap}
.lmbox{border:1px solid var(--navy2);background:var(--hl);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.lmbox .ok,.hint.ok{color:var(--ok)}
.hint.err{color:var(--bad)}

/* map + tools */
.tools{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap}
.toolset{display:flex;gap:4px;flex-wrap:wrap;background:var(--input-bg);border:1px solid var(--line2);border-radius:10px;padding:3px}
.tool,.icon{border:0;background:transparent;padding:6px 9px;border-radius:7px;color:var(--muted);font-size:12.5px}
.tool svg,.icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tool svg circle{fill:currentColor;stroke:none}
.tool[aria-pressed="true"]{background:var(--navy);color:#fff;box-shadow:inset 0 0 0 1px var(--navy2)}
.tool:hover,.icon:hover{background:var(--hover-bg);color:var(--ink)}
.icon{padding:6px 8px}
.mapwrap{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line2)}
#map{height:320px;background:var(--input-bg)}
#map[data-tool="wand"]{cursor:crosshair}
#map[data-tool="draw"],#map[data-tool="pin"]{cursor:copy}
.leaflet-container{font:12px var(--f-body)}
#map.leaflet-container[data-tool="wand"]{cursor:crosshair}
#map.leaflet-container[data-tool="draw"]{cursor:cell}
.hud{position:absolute;left:50px;top:10px;z-index:800;max-width:calc(100% - 110px)!important;background:rgba(7,13,26,.86);border:1px solid var(--line2);border-radius:9px;padding:5px 10px;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;max-width:calc(100% - 60px);backdrop-filter:blur(4px)}
.hud b{font:600 16px var(--f-display);color:var(--sel)}
.hud .pct{color:var(--mint)}
.busy{position:absolute;inset:auto 8px 8px auto;z-index:800;background:rgba(7,13,26,.9);border:1px solid var(--line2);border-radius:999px;padding:5px 12px;font-size:12px;display:flex;gap:8px;align-items:center}
.busy span{width:12px;height:12px;border-radius:50%;border:2px solid var(--line2);border-top-color:var(--mint);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.wopts{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:end}
.wopts>label:first-child,.wopts .seg,.wopts .chk{grid-column:1/-1}
.wopts .seg{justify-self:start}
.rng span{display:flex;align-items:center;gap:6px}
.rng input{padding:0;accent-color:var(--mint);background:none;border:0}
.rng output{font:600 12px var(--f-display);color:var(--ink);min-width:16px;text-align:right}
.vx{width:14px;height:14px;background:var(--sel);border:2px solid #0b1324;border-radius:50%;box-shadow:0 0 0 2px rgba(251,191,36,.35);cursor:grab}
.vx.first{background:var(--mint);box-shadow:0 0 0 3px rgba(52,211,153,.45)}
.vx.ghost{width:10px;height:10px;margin:2px;background:rgba(251,191,36,.35);border:1.5px solid var(--sel);box-shadow:none}
.elen{display:inline-block;transform:translate(-50%,-50%);white-space:nowrap;font:600 11px var(--f-display);color:#fff;background:rgba(7,13,26,.78);border-radius:5px;padding:0 5px;pointer-events:none}

/* incoming notice */
.incoming{padding:9px 11px;border:1px solid var(--green);background:var(--ok-bg);border-radius:10px;font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.incoming b{color:var(--mint)}

/* results */
.hint{font-size:12px;color:var(--muted);margin:0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0;font-size:13.5px}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}
.big{font:600 18px var(--f-display);color:var(--strong)}
.mono{font-family:var(--f-mono);font-size:12px}
.small{font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.err{color:var(--bad);font-size:12.5px;margin:0}
.verdict{border-left:3px solid var(--mint);padding:7px 11px;background:var(--verdict-bg);border-radius:0 9px 9px 0;font-size:13.5px}
.verdict p{margin:2px 0}
.verdict.good{border-left-color:var(--ok)} .verdict.mid{border-left-color:var(--warn)} .verdict.unk{border-left-color:var(--faint)} .verdict.hi{border-left-color:var(--bad)}
.pill{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;background:var(--chip);color:var(--muted);border:1px solid var(--line2)}
.pill.ok{color:var(--ok);border-color:#1d5c46} .pill.warn,.pill.mid{color:var(--warn);border-color:#6b5310}
.pill.hi{background:#7f1d1d;color:#fecaca;border-color:#991b1b} .pill.lo{color:var(--faint)}
ul.flat{margin:0;padding-left:18px;font-size:13.5px} ul.flat li{margin:2px 0}
#siteWater h4{margin:8px 0 4px;font-size:12.5px;color:var(--muted)}
details.cat{border-top:1px solid var(--line);padding:6px 0}
details.cat summary{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center;font-size:13.5px}
.dot{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.cnt{font:500 11px var(--f-mono);color:var(--muted)}
.near{font-variant-numeric:tabular-nums;font-weight:600}
details.cat ol{margin:4px 0 2px 20px;padding:0;font-size:13px}
details.cat li{cursor:pointer}
details.cat li span{color:var(--muted)}
.cats{display:flex;flex-direction:column}
@media (min-width:1300px){.cats{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}}
.years{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.yr{display:flex;flex-direction:column;gap:3px;font-size:11.5px;min-width:0}
.yr canvas{width:100%;aspect-ratio:1;border-radius:6px;border:1px solid var(--line2);background:var(--chip);cursor:zoom-in}
.yr b{font:600 13px var(--f-display)}
.bars{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--chip)}
.bars i{display:block;height:100%}
.bw{background:var(--water)} .bv{background:var(--veg)} .bb{background:var(--built)}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.lw{background:var(--water)} .lv{background:var(--veg)} .lb{background:var(--built)}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.photos:empty{display:none}
.photos a{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--muted);text-decoration:none}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;border:1px solid var(--line2);background:var(--chip)}
table{border-collapse:collapse;width:100%;font-size:12.5px}
td,th{padding:5px 6px;border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums}
th{color:var(--muted);font-weight:500}
.tbl{overflow-x:auto}
#zoomView{position:fixed;inset:0;background:rgba(2,6,15,.88);display:flex;align-items:center;justify-content:center;z-index:2000;padding:12px}
#zoomView canvas{width:100%;max-width:640px;height:auto;border-radius:8px}

/* Leaflet บนพื้นมืด */
.leaflet-bar a,.leaflet-control-layers-toggle{background-color:#0f1b31!important;color:var(--ink)!important;border-color:var(--line2)!important}
.leaflet-bar{border:1px solid var(--line2)!important}
.leaflet-control-attribution{background:rgba(7,13,26,.7)!important;color:var(--faint)!important}
.leaflet-control-attribution a{color:var(--muted)!important}
.leaflet-control-layers{max-width:min(320px,80vw);color:#1e293b}
.leaflet-control-layers-list{max-height:min(60vh,420px);overflow-y:auto}
.leaflet-control-layers label{display:block;flex-direction:row;gap:0;font-size:12.5px;color:#1e293b;line-height:1.45;margin:2px 0}
.leaflet-control-layers label>span,.leaflet-control-layers label>div{display:flex;align-items:flex-start;gap:6px}
.leaflet-control-layers input{width:auto;min-width:0;padding:0;margin:2px 0 0;border:0;background:none;flex:none}
.leaflet-popup-content{color:#1e293b}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.hint.wait .sec{color:var(--muted);font-variant-numeric:tabular-nums}
.btn.small{padding:4px 10px;font-size:12.5px}
.gplaces{margin-top:12px;padding-top:10px;border-top:1px solid var(--line, rgba(255,255,255,.12))}
.gplaces .gp-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.gplaces select{max-width:100%}
.gp-list{margin:8px 0 0;padding-left:20px}
.gp-list li{margin:3px 0}
.gp-list span{color:var(--muted)}
.gp-attr{font-size:12px;color:var(--muted);margin:6px 0 0}
.gp-attr .gmaps{font-family:Roboto,Arial,sans-serif;font-weight:500}

/* การ์ดชั้นข้อมูลแผนที่ (gis-panel.js) */
.gis-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px}
#gisMap{height:380px;border-radius:10px;background:var(--input-bg)}
.gis-side{display:flex;flex-direction:column;min-width:0;max-height:380px}
.gis-tabs{display:flex;gap:6px;margin-bottom:8px}
.gis-tabs button{flex:1;padding:6px 8px;border-radius:8px;border:1px solid var(--line2);background:var(--chip);color:var(--ink);cursor:pointer;font:inherit;font-size:13px}
.gis-tabs button.on{background:var(--green);border-color:var(--green2);color:#fff}
.gis-list{overflow:auto;padding-right:4px}
.gis-sec h4{margin:10px 0 4px;font-size:12px;color:var(--muted);font-weight:600}
.gis-item{display:flex;flex-direction:row;gap:8px;align-items:flex-start;padding:4px 2px;font-size:13px;color:var(--ink);cursor:pointer;line-height:1.4}
.gis-item:hover{background:var(--hl);border-radius:6px}
.gis-item input{width:auto;margin:3px 0 0;flex:none}
.gis-item small{display:block;color:var(--faint);font-size:11px}
.gis-legend{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.gis-legend h4{margin:0 0 6px;font-size:14px}
.gis-lg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 14px}
.gis-lg li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}
.gis-sw{flex:none;display:inline-block;width:18px;height:14px;border-radius:3px;margin-top:2px}
.gis-note{font-size:12.5px;color:var(--ink);margin:8px 0 0}
.gis-src{font-size:11.5px;color:var(--faint);margin:6px 0 0}
.gis-warn{font-size:12.5px;color:var(--warn);margin:0 0 6px}
@media (max-width:760px){.gis-wrap{grid-template-columns:1fr}.gis-side{max-height:none}#gisMap{height:300px}}
.gis-prov{margin:8px 0 0;font-size:12px;font-weight:600;color:var(--mint)}
.gis-parcel{font-size:12.5px;color:var(--muted);margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gis-parcel b{color:var(--ink)}
.leaflet-tooltip.gis-parcel-tip{background:#0f1b31;color:#e6edf7;border:1px solid #fbbf24;font-size:12px;line-height:1.35}
.leaflet-tooltip.gis-parcel-tip:before{display:none}
.pc-parcel{filter:drop-shadow(0 0 1.5px #000) drop-shadow(0 0 1px #000)}
.pdim{display:inline-block;transform:translate(-50%,6px);white-space:nowrap;font:700 12px var(--f-display);color:#111;background:#fbbf24;border-radius:6px;padding:2px 7px;box-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none}

/* แถวท้ายการ์ด: สถานะ แหล่ง เวลา (card-meta.js) */
.card-meta{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:8px 0 0;padding-top:6px;border-top:1px dashed var(--line);font-size:11px;color:var(--faint);line-height:1.45}
.card-meta[hidden]{display:none}
.cm-st{font-weight:600;border-radius:999px;padding:1px 8px;border:1px solid currentColor;white-space:nowrap}
.cm-found{color:var(--mint)} .cm-none{color:#7dd3fc} .cm-nodata{color:var(--warn)} .cm-error{color:#f87171} .cm-partial{color:#fb923c} .cm-loading{color:var(--muted)}
.cm-tip{color:var(--muted)} .cm-src{overflow-wrap:anywhere}

/* แถบยืนยันแปลง */
.confirm-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;margin:10px 0 4px;padding:9px 11px;border:1px solid var(--navy2);border-radius:10px;background:var(--hl);font-size:13px}
.confirm-bar[hidden]{display:none}
.confirm-bar.ok{border-color:var(--green2)} .confirm-bar.warn{border-color:var(--warn)}
.cb-warn{margin:4px 0 0;color:var(--warn);font-size:12.5px}
.cb-btns{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cb-ok{color:var(--mint);font-weight:600;font-size:12.5px}
.pc-halo{pointer-events:none}

/* ---------- ระยะ 1: กล่องสรุป red flag มุมมอง การ์ดพับได้ ธีม แผ่นสรุปมือถือ (summary.js) ---------- */
.col-out{display:flex;flex-direction:column}
.cnav a[aria-current="true"]{background:var(--green);border-color:var(--green2);color:#fff}
.gh small.gq{font:400 12px var(--f-body);color:var(--muted);margin-left:2px}
.sumbox{border:1px solid var(--line2);border-left:4px solid var(--faint);border-radius:var(--r);padding:12px 14px;background:var(--panel);display:flex;flex-direction:column;gap:8px;box-shadow:var(--card-shadow)}
.sumbox.bad{border-left-color:var(--bad)} .sumbox.warn{border-left-color:var(--warn)} .sumbox.ok{border-left-color:var(--ok)}
.sb-top{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-start;justify-content:space-between}
.sb-v{margin:0;font:600 15px/1.45 var(--f-display);flex:1 1 220px}
.sumbox.bad .sb-v{color:var(--bad)} .sumbox.warn .sb-v{color:var(--warn)} .sumbox.ok .sb-v{color:var(--ok)}
.sb-p{flex-direction:row!important;align-items:center;gap:6px!important;font-size:12px!important;flex:none}
.sb-p select{width:auto;padding:4px 8px;font-size:12.5px}
.sb-flags{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sb-f{width:100%;text-align:left;justify-content:flex-start;align-items:flex-start;line-height:1.45;white-space:normal;font-size:13px}
.sb-f.bad{background:var(--bad-bg);border-color:var(--bad);color:var(--ink)} .sb-f.warn{background:var(--warn-bg);border-color:var(--warn);color:var(--ink)}
.sb-ic{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font:700 11px var(--f-display);color:#fff;background:var(--warn);margin-top:1px}
.sb-f.bad .sb-ic{background:var(--bad)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.sb-cnt{margin:0;font-size:12.5px;color:var(--ink)}
.sb-more summary{font-size:12px}
.foldable{cursor:pointer}
.foldable::after{content:"▾";font-size:11px;color:var(--muted);margin-left:2px}
.card.collapsed .foldable::after{content:"▸"}
.card.collapsed{gap:4px}
.card.collapsed>:not(.card-h):not(.card-meta){display:none!important}
.card.collapsed>.card-meta{margin-top:0;border-top:0;padding-top:0}
.card.flash{outline:2px solid var(--sel);outline-offset:2px;transition:outline-color 1.2s}
.theme-btn{padding:4px 10px;font-size:12px}
.pc-sheet{display:none}
@media (max-width:599px){
  .pc-sheet{display:flex;flex-direction:column;gap:6px;position:fixed;left:8px;right:8px;bottom:8px;z-index:1500;padding:10px 12px;border-radius:14px;background:var(--panel);border:1px solid var(--line2);border-top:4px solid var(--faint);box-shadow:0 -6px 24px rgba(0,0,0,.35);max-height:46vh;overflow:auto}
  .pc-sheet[hidden]{display:none}
  .pc-sheet[data-level="bad"]{border-top-color:var(--bad)} .pc-sheet[data-level="warn"]{border-top-color:var(--warn)} .pc-sheet[data-level="ok"]{border-top-color:var(--ok)}
  .pc-sheet.min{left:auto;right:10px;padding:0;border:0;background:none;box-shadow:none;max-height:none}
  .ps-open{border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.35);background:var(--panel);font-weight:600}
  .ps-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
  .ps-x{padding:2px 9px}
  .ps-v{margin:0;font:600 14px/1.4 var(--f-display)}
  .ps-flags{display:flex;flex-direction:column;gap:5px}
  .ps-flags .sb-f{font-size:12.5px;padding:5px 9px}
  .ps-full{align-self:flex-end}
  body{padding-bottom:120px}
}
/* Leaflet บนธีมสว่าง */
:root[data-theme="light"] .leaflet-bar a,:root[data-theme="light"] .leaflet-control-layers-toggle{background-color:#fff!important;color:#16202f!important;border-color:#c3ccdb!important}
:root[data-theme="light"] .leaflet-control-attribution{background:rgba(255,255,255,.8)!important}
:root[data-theme="light"] .hud,:root[data-theme="light"] .busy{background:rgba(255,255,255,.92)}
:root[data-theme="light"] .gh::before{background:linear-gradient(var(--navy2),var(--green2))}
:root[data-theme="light"] .pill.hi{background:#fde8e9;color:#a2191f;border-color:#da1e28}

/* ระยะ 2: ช่องกรอกสองคอลัมน์ ตารางย่อ ผังพื้นที่สร้างได้ */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}
table.mini{width:100%;border-collapse:collapse;font-size:12.5px;margin:4px 0}
table.mini td{padding:3px 4px;border-bottom:1px solid var(--line)}
table.mini td.num{text-align:right;white-space:nowrap}
.bf-svg{max-width:100%;max-height:200px;width:auto;height:auto;display:block;margin:6px auto;background:var(--input-bg);border-radius:8px}
