/* THEEKHEE · ขอความช่วยเหลือน้ำท่วม — เฉพาะส่วนที่หน้านี้ต้องใช้เพิ่ม
 *
 * รูปร่างทั้งหมด (แผนที่เต็มจอ แถบบน การ์ดลอยล่าง ป๊อปอัป ปุ่ม ชิป) ยืมมาจาก
 * styles.css ของเว็บหลักตรง ๆ เพื่อให้เป็นแอปเดียวกัน ไฟล์นี้เปลี่ยนแค่ "โทน":
 * เขียว = หาห้องน้ำ · แดง = ปุ่มไม่ไหวแล้ว · เหลืองอำพัน = ขอความช่วยเหลือน้ำท่วม
 * ไม่มีสีใหม่นอกจาก token ที่มีอยู่แล้ว
 */

html, body.inc-app{height:100%}
body.inc-app{margin:0;overflow:hidden;background:var(--bg-sunken);
  font-family:var(--font-core);color:var(--text-body)}
.inc-full{z-index:0}

/* แถบชื่อหน้า: ฝ้าขาวเต็มความกว้าง ชื่ออยู่กลาง ปุ่มย้อนกลับซ้าย ปุ่มแอดมินขวา
   ทรงเดียวกับแท็บแผนที่ของแอป ต่างแค่ปุ่มสองข้าง */
.inc-top{
  top:0;left:0;right:0;justify-content:center;align-items:center;
  min-height:calc(env(safe-area-inset-top) + 56px);
  padding:calc(env(safe-area-inset-top) + 8px) 12px 8px;
  background:var(--tk-glass, rgba(255,255,255,.86));
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.inc-top .full-map-title{
  height:auto;padding:0 8px;background:none;border:0;box-shadow:none;
  font-size:19px;line-height:1.25;font-weight:var(--fw-bold);letter-spacing:-.01em;
  min-width:0;overflow:hidden;text-overflow:ellipsis;
}
.inc-top .inc-back{position:absolute;left:12px}
.inc-top .inc-admin-btn{position:absolute;right:12px;color:var(--text-muted)}
@media (hover:hover){.inc-top .inc-admin-btn:hover{color:var(--text-strong)}}

.inc-full .full-map-controls{top:calc(env(safe-area-inset-top) + 66px);align-items:flex-start}
/* บนจอกว้าง แถบควบคุมไม่ต้องยาวเต็มจอ — แถบยาว 1400px อ่านเป็นหัวเว็บ ไม่ใช่ตัวควบคุม */
@media (min-width:640px){.inc-full .full-map-controls{max-width:min(560px,48vw)}}
/* ปุ่มซูมของ Leaflet ต้องอยู่ใต้แถบควบคุม ไม่ใช่ใต้มัน — ความสูงวัดตอนรันจริง
   เพราะแถบเตือนกับชิปกรองมาแล้วก็หายไปได้ */
.inc-full .leaflet-top{top:calc(var(--inc-controls-h, 130px) + 10px)}
.inc-filters{margin-top:2px}
.inc-filters .tag{cursor:pointer;flex:0 0 auto;box-shadow:var(--shadow-sm)}
@media (hover:hover){.inc-filters .tag:hover{background:var(--sun-100)}}
.inc-filters .tag.is-selected{background:var(--sun-100);border-color:var(--sun-400);color:#7A5200}
.inc-filters .tag-count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-weight:var(--fw-regular)}

/* มุมขวาล่าง: ตำแหน่งของฉัน แล้วปุ่มหลัก */
.inc-fabs{position:absolute;z-index:22;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.inc-locate-fab{box-shadow:var(--shadow-card)}

/* ปุ่มแอดมิน: โผล่เฉพาะเครื่องที่ปลดล็อกด้วยลิงก์ลับ (?admin=on) และเป็นแค่ทางลัด
   ด่านจริงคือการล็อกอินกับตาราง staff ฝั่งเซิร์ฟเวอร์ ไม่ใช่ปุ่มนี้ */
.inc-admin-btn{margin-left:auto;color:var(--text-muted)}
@media (hover:hover){.inc-admin-btn:hover{color:var(--text-strong)}}
.inc-admin-btn + .full-map-locate{margin-left:0}

/* ---------- แถบเบอร์ฉุกเฉิน: อยู่บนสุดของทุกอย่างเสมอ ---------- */
.inc-sos-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;
  padding:10px 14px;text-align:left;cursor:pointer;
  background:var(--sun-100);border:1px solid var(--sun-400);border-radius:var(--radius-pill);
  box-shadow:var(--shadow-sm);font-family:var(--font-core);font-size:13px;line-height:1.45;color:var(--text-strong)}
@media (hover:hover){.inc-sos-bar:hover{background:var(--white)}}
.inc-sos-strong{font-weight:var(--fw-bold)}
/* วลีที่ต้องอยู่บรรทัดเดียวกัน — ภาษาไทยตัดคำ "หน่วย|งาน" ข้ามบรรทัดได้ */
.inc-nowrap{white-space:nowrap}

.inc-note{margin:0;padding:10px 14px;background:var(--white);border:1px solid var(--line-soft);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-size:13px;line-height:1.55;color:var(--text-strong)}
.inc-note.is-pick{background:var(--sun-100);border-color:var(--sun-400)}

/* ---------- ปุ่มหลัก: เหลืองอำพัน ไม่ใช่แดงของ "ไม่ไหวแล้ว" ---------- */
.inc-ask{display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 22px;
  background:var(--sun-400);color:var(--ink-900);border:none;border-radius:var(--radius-pill);
  box-shadow:var(--shadow-float);font-family:var(--font-core);font-size:16px;
  font-weight:var(--fw-bold);cursor:pointer}
@media (hover:hover){.inc-ask:hover{filter:brightness(.97)}}
.inc-ask:active{transform:scale(var(--press-scale))}

/* ---------- การ์ดล่าง: รายการ หรือรายละเอียดจุดเดียว ---------- */
.inc-sheet{padding:12px 12px 10px;max-height:42vh;display:flex;flex-direction:column;
  bottom:calc(84px + env(safe-area-inset-bottom))}
/* ✕ อยู่ขวาสุดเสมอ ‹ ย้อนกลับอยู่ถัดเข้ามา (เคยสลับกัน คนกดปิดทั้งที่อยากย้อนกลับ) */
.inc-sheet-close{right:10px}
.inc-sheet #incSheetBack{right:46px}
.inc-sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch}
.inc-sheet-head{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;padding-right:34px}
.inc-sheet-head h2{margin:0;font-size:16px;color:var(--text-strong)}
.inc-sheet-head span{font-size:12px;color:var(--text-faint)}
.inc-empty{margin:4px 2px 6px;font-size:13px;line-height:1.6;color:var(--text-muted)}

.inc-card{display:flex;gap:10px;width:100%;margin:0 0 8px;padding:10px;text-align:left;
  background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius-md);cursor:pointer}
.inc-card:last-child{margin-bottom:0}
@media (hover:hover){.inc-card:hover{background:var(--green-50)}}
.inc-card.is-mine{cursor:default;border-color:var(--sun-400);background:var(--sun-100)}
@media (hover:hover){.inc-card.is-mine:hover{background:var(--sun-100)}}
.inc-card-emoji{font-size:20px;line-height:1.2;flex:0 0 auto}
.inc-card-text{flex:1 1 auto;min-width:0}
.inc-card-title{display:block;font-size:15px;font-weight:var(--fw-semibold);color:var(--text-strong)}
.inc-card-needs{display:block;margin-top:1px;font-size:12px;color:var(--text-body)}
.inc-card-meta{display:block;margin-top:1px;font-size:12px;color:var(--text-muted)}
.inc-card-state{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--text-body)}
.inc-tag{display:inline-block;margin-top:6px;margin-right:6px;padding:2px 9px;border-radius:var(--radius-pill);
  background:var(--green-100);font-size:11px;font-weight:var(--fw-medium);color:var(--green-900)}
.inc-tag.is-review{background:var(--sun-100);color:#7A5200}
.inc-tag.is-done{background:var(--ink-100);color:var(--text-muted)}

/* ---------- หมุดบนแผนที่ ---------- */
.inc-pin{display:grid;place-items:center;border-radius:50%;border:2px solid var(--white);
  box-shadow:var(--shadow-sm);font-size:17px;background:var(--sun-400)}
/* สี Triage: แดง = ด่วนมาก · เหลือง = ต้องการความช่วยเหลือ · เขียว = ยังพอรอได้
   ชุดสีเดียวกับที่หน่วยกู้ภัยใช้อยู่แล้ว จะได้ไม่ต้องเรียนรู้ใหม่หน้างาน */
.inc-pin.is-u-critical{background:#E53935;color:var(--white);transform:scale(1.14)}  /* = --tk-em-red ของแอป */
.inc-pin.is-u-urgent{background:var(--sun-400)}
.inc-pin.is-u-normal{background:var(--green-400);color:var(--white)}
.inc-pin.is-review{background:var(--ink-200)}
.inc-pin.is-resolved{background:var(--ink-200);opacity:.8}
.inc-pin.is-mine{outline:3px solid var(--sun-400);outline-offset:2px}
body.inc-picking .map-canvas{cursor:crosshair}

/* ---------- รายละเอียดในการ์ดล่าง ---------- */
.inc-detail-type{margin:0;font-size:17px;font-weight:var(--fw-semibold);color:var(--text-strong);padding-right:34px}
.inc-detail-needs{margin:3px 0 0;font-size:13px;color:var(--text-body)}
.inc-detail-meta{margin:3px 0 0;font-size:12px;color:var(--text-muted)}
.inc-detail-state{margin:8px 0 0;padding:8px 10px;background:var(--green-50);border-radius:var(--radius-sm);
  font-size:12px;line-height:1.55;color:var(--text-body)}
.inc-detail-review{margin:6px 0 0;padding:8px 10px;background:var(--sun-100);border-radius:var(--radius-sm);
  font-size:12px;line-height:1.55;color:#7A5200}
.inc-detail-closed{margin:10px 0 0;font-size:13px;color:var(--text-muted)}
.inc-privacy{margin:6px 0 0;font-size:11px;line-height:1.6;color:var(--text-faint)}

.inc-verify{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.inc-verify h3{margin:0 0 4px;font-size:14px;color:var(--text-strong)}
.inc-verify-lead{margin:0 0 4px;font-size:12px;line-height:1.55;color:var(--text-muted)}
.inc-verify-care{margin:0 0 8px;font-size:12px;line-height:1.55;color:#7A5200}
.inc-verify-row{display:flex;flex-wrap:wrap;gap:6px}
.inc-verify-row .facility-option{min-height:38px;padding:6px 12px;font-size:13px}
.inc-flagbox{margin-top:10px}
.inc-flagbox summary{font-size:13px;color:var(--text-link);cursor:pointer}
.inc-flagbox .inc-verify-row{margin-top:8px}
.inc-mine-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* ---------- ฟอร์ม ---------- */
.inc-modal .pin-modal-head h2{margin:0;font-size:21px;letter-spacing:-.02em;color:var(--text-strong)}
.inc-form-lead{margin:0 0 6px;font-size:14px;line-height:1.6;color:var(--text-muted)}
.inc-pick-row{display:flex;flex-wrap:wrap;gap:8px}
.inc-send{background:var(--sun-400);color:var(--ink-900);border-color:var(--sun-400);
  /* เงาสีเดียวกับปุ่ม — ไม่งั้นเงาเรืองสีเขียวของ .btn-primary ติดมา ได้ปุ่มเหลืองเงาเขียว */
  box-shadow:0 8px 20px -8px rgba(217,154,0,.55)}
/* ชี้เมาส์แล้วต้องยังเหลือง — .btn-primary:hover (เขียว) เคยชนะ ได้ปุ่มเขียวขอบเหลืองดูเป็นกรอบซ้อน */
@media (hover:hover){.inc-send:hover{background:var(--sun-400);filter:brightness(.97)}}
/* ปุ่มท้ายฟอร์ม: นี่คือปุ่มที่คนกดตอนน้ำถึงเข่าและมือสั่น ทำให้ใหญ่และกดพลาดยาก
   ปุ่มส่งกินพื้นที่ที่เหลือทั้งหมด ส่วน "ยกเลิก" เล็กลงแต่ยังกดได้สบาย */
.inc-modal .pin-modal-foot{gap:10px;padding:14px 20px calc(18px + env(safe-area-inset-bottom))}
.inc-modal .pin-modal-foot .btn{min-height:56px;font-size:17px;border-radius:var(--radius-pill)}
.inc-modal .pin-modal-foot .btn-secondary{flex:0 0 auto;padding-left:24px;padding-right:24px}
.inc-modal .pin-modal-foot .inc-send{flex:1 1 auto;justify-content:center;font-weight:var(--fw-bold)}

/* ---------- toast ---------- */
.inc-toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 66px);transform:translate(-50%,-10px);
  z-index:3000;max-width:min(92vw,520px);padding:12px 16px;
  background:var(--ink-900);color:var(--white);border-radius:var(--radius-pill);
  font-size:14px;line-height:1.5;text-align:center;box-shadow:var(--shadow-float);
  opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-out-soft)}
.inc-toast.is-on{opacity:1;transform:translate(-50%,0)}

@media (min-width:721px){
  .inc-sheet{left:16px;transform:none;width:380px;max-height:56vh;bottom:calc(16px + env(safe-area-inset-bottom))}
  .inc-top .full-map-title{font-size:20px}
}

/* คำถามคัดแยก: ตัวเลือกเรียงลงมาเป็นแถว อ่านง่ายตอนมือสั่น */
.inc-choice{flex-direction:column;align-items:stretch}
.inc-choice .facility-option{justify-content:flex-start;min-height:46px}

.inc-detail-facts{margin:3px 0 0;font-size:13px;color:var(--text-body)}

/* คำอธิบายสีเหนือรายการ — กู้ภัยเปิดครั้งแรกต้องรู้ทันทีว่าสีไหนคืออะไร */
.inc-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 2px 8px;
  font-size:11px;color:var(--text-muted)}
.inc-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:2px}
.inc-dot.is-u-critical{background:#E53935}
.inc-dot.is-u-urgent{background:var(--sun-400)}
.inc-dot.is-u-normal{background:var(--green-400)}
.inc-dot.is-resolved{background:var(--ink-200)}

/* คำขอที่ยังส่งไม่ออก — ต้องเห็นชัดกว่าข้อความทั่วไป เพราะเป็นเรื่องที่คนเข้าใจผิดได้ง่ายที่สุด */
.inc-pending{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--status-dirty-bg);border-color:#E53935}
.inc-pending span{flex:1 1 200px}
.inc-note.is-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.inc-note.is-pick span{flex:1 1 180px}
/* ระหว่างส่ง ปุ่มในการ์ดกดซ้ำไม่ได้ และดูออกว่ากำลังทำงาน */
body.inc-busy .inc-sheet .facility-option,
body.inc-busy .inc-sheet .btn{opacity:.55;pointer-events:none}
#incSubmit:disabled{opacity:.6;cursor:progress}

/* ---------- ชุมชนช่วยกัน ---------- */
.inc-card-help{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--green-900)}
.inc-tag.is-alone{background:var(--status-dirty-bg);color:#992A14}
.inc-detail-help{margin:6px 0 0;padding:8px 10px;border-radius:var(--radius-sm);
  background:var(--green-50);font-size:13px;line-height:1.55;color:var(--green-900)}
.inc-detail-help:empty{display:none}
.inc-detail-help.is-alone{background:var(--status-dirty-bg);color:#992A14}
.inc-help{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.inc-help h3{margin:0 0 4px;font-size:14px;color:var(--text-strong)}
.inc-help-caps-label{margin:6px 0 6px;font-size:12px;color:var(--text-muted)}
.inc-share-row{margin-top:10px}
.inc-activity{margin-top:10px}
.inc-activity summary{font-size:13px;color:var(--text-link);cursor:pointer}
.inc-activity-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.inc-activity-list li{display:flex;gap:8px;font-size:12px;line-height:1.5;color:var(--text-body)}
.inc-activity-list time{flex:0 0 auto;min-width:42px;font-variant-numeric:tabular-nums;color:var(--text-faint)}

/* หมุดแดงที่ยังไม่มีใครไป — กระพริบเบา ๆ ให้เห็นก่อนจุดอื่น
   คนที่ปิดการเคลื่อนไหวในเครื่องไว้ จะเห็นเป็นวงนิ่งแทน */
.inc-pin.is-alone{box-shadow:0 0 0 0 rgba(229,57,53,.55);animation:inc-alone 1.8s ease-out infinite}
@keyframes inc-alone{0%{box-shadow:0 0 0 0 rgba(229,57,53,.55)}70%{box-shadow:0 0 0 12px rgba(229,57,53,0)}100%{box-shadow:0 0 0 0 rgba(229,57,53,0)}}
@media (prefers-reduced-motion:reduce){.inc-pin.is-alone{animation:none;box-shadow:0 0 0 4px rgba(229,57,53,.35)}}

/* ผู้ขอถูกถามว่ามีคนมาช่วยจริงไหม — ต้องเห็นชัด เพราะคำตอบนี้ตัดสินว่าหมุดจะถูกลืมหรือไม่ */
.inc-help-ask{margin:10px 0 0;padding:12px;border:1px solid var(--sun-400);border-radius:var(--radius-sm);background:var(--sun-100)}
.inc-help-ask strong{display:block;font-size:14px;color:var(--text-strong)}
.inc-help-ask span{display:block;margin-top:2px;font-size:12px;line-height:1.55;color:var(--text-muted)}


/* ช่องทางของหน่วยงาน: สไตล์อยู่ใน ../styles.css (.agencies-*) เพราะหน้าแรกใช้ป๊อปอัปเดียวกัน */

/* ---------- จุดช่วยเหลือ (ที่พักพิง อาหาร/น้ำ จอดรถ จุดแพทย์) ----------
   สี่เหลี่ยมมุมมนสีฟ้า ไม่ใช่วงกลมแดง/เหลือง/เขียว — สีของคำขอบอกความเร่งด่วน
   สีของจุดช่วยเหลือบอกแค่ว่า "ที่นี่ไปหาได้" สองอย่างต้องไม่ปนกัน
   กรอบทึบ = จากประกาศหน่วยงาน · กรอบประ = คนในพื้นที่ปัก · เทา = อาจไม่มีแล้ว */
/* ห้ามใส่ position ที่นี่ — Leaflet วางหมุดด้วย position:absolute ถ้าทับเป็น relative
   หมุดแต่ละอันจะเลื่อนลงตามจำนวนหมุดที่อยู่ก่อนหน้า (absolute ของ Leaflet ยังเป็นกรอบให้ป้าย "เต็ม") */
.pt-pin{display:grid;place-items:center;border-radius:var(--radius-sm);
  background:var(--white);border:2px dashed var(--sky-600);box-shadow:var(--shadow-sm);font-size:16px}
.pt-pin.is-official{border-style:solid;background:var(--sky-100)}
.pt-pin.is-stale,.pt-pin.is-gone{filter:grayscale(1);opacity:.55}
.pt-badge{position:absolute;top:-9px;right:-12px;padding:0 5px;border-radius:var(--radius-pill);
  background:var(--ink-900);color:var(--white);font-size:10px;font-style:normal;font-weight:var(--fw-bold);line-height:16px}

.pt-key{display:inline-block;width:11px;height:11px;margin-right:2px;border-radius:3px;
  background:var(--white);border:1.5px dashed var(--sky-600)}
.pt-key.is-official{border-style:solid;background:var(--sky-100)}
.pt-key.is-stale{border-style:solid;border-color:var(--ink-300);background:var(--ink-100)}
.pt-head{margin-top:14px}
.pt-head:first-child{margin-top:0}
@media (hover:hover){.pt-card:hover{background:var(--sky-100)}}
.pt-card.is-stale,.pt-card.is-gone{opacity:.7}

/* ปุ่มรองมุมขวาล่าง: ขาว เล็กกว่าปุ่มหลัก คนที่กำลังติดน้ำต้องเห็นปุ่มเหลืองก่อน */
.pt-add{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 16px;
  background:var(--white);color:var(--text-strong);border:1px solid var(--line);border-radius:var(--radius-pill);
  box-shadow:var(--shadow-card);font-family:var(--font-core);font-size:14px;font-weight:var(--fw-semibold);cursor:pointer}
@media (hover:hover){.pt-add:hover{background:var(--sky-100)}}
.pt-add:active{transform:scale(var(--press-scale))}

.pt-name{margin:2px 0 0;padding-right:34px;font-size:19px;line-height:1.35;font-weight:var(--fw-bold);color:var(--text-strong)}
.pt-source{margin:6px 0 0;padding:8px 10px;border-radius:var(--radius-sm);font-size:12px;line-height:1.6}
.pt-source.is-official{background:var(--sky-100);color:var(--ink-800)}
.pt-source.is-community{background:var(--bg-sunken);color:var(--text-body)}
.pt-source a{color:var(--sky-600);font-weight:var(--fw-semibold)}
.pt-state.is-full{background:var(--sun-100);color:#7A5200}
.pt-state.is-gone,.pt-state.is-stale{background:var(--ink-100);color:var(--text-muted)}
.pt-facts{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--text-body)}
/* จอมือถือ: การ์ดล่างกว้างเต็มจอ ปุ่มรองกับปุ่มตำแหน่งจะทับเนื้อหาในการ์ด
   ระหว่างการ์ดเปิดอยู่ เหลือไว้แค่ปุ่มเหลืองปุ่มเดียว */
@media (max-width:720px){
  .inc-full:has(#incSheet:not([hidden])) .pt-add,
  .inc-full:has(#incSheet:not([hidden])) .inc-locate-fab{display:none}
}

/* ข้อความที่ผู้ขอพิมพ์เอง — ในรายการตัดไว้ 2 บรรทัด ในรายละเอียดเห็นเต็ม */
.inc-card-details{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  margin-top:3px;font-size:13px;line-height:1.5;color:var(--text-strong)}
.inc-detail-details{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--sun-400);background:var(--sun-100);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:14px;line-height:1.6;color:var(--text-strong);
  white-space:pre-wrap;overflow-wrap:anywhere}
#incDetails{resize:vertical;min-height:84px;font-family:var(--font-core);font-size:16px;line-height:1.5}

/* กดส่งแล้วเกิดอะไรขึ้น — อยู่เหนือปุ่มส่ง ให้คนอ่านก่อนตัดสินใจ */
.inc-after-send{margin:14px 0 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--green-50);
  font-size:13px;line-height:1.6;color:var(--green-900)}

/* ---------- โซนขอความช่วยเหลือ ----------
   วงกลมจางใต้หมุดทุกอย่าง + ป้ายชื่อเล็ก ๆ ที่จุดกลาง (กดป้ายเพื่อดูหลักฐาน) */
.zone-label{background:none;border:0}
.zone-chip{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:inline-block;white-space:nowrap;
  padding:3px 9px;border-radius:var(--radius-pill);background:var(--white);border:1.5px solid var(--ink-300);
  box-shadow:var(--shadow-sm);font-family:var(--font-core);font-size:12px;font-weight:var(--fw-semibold);
  color:var(--text-strong);cursor:pointer}
.zone-chip.is-urgent{border-color:#E53935}
.zone-chip.is-help_needed{border-color:var(--coral-400)}
.zone-chip.is-verifying{border-color:var(--sun-400)}
.zone-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:2px;opacity:.85}
@media (hover:hover){.zone-card:hover{background:var(--coral-100)}}
.zone-status.is-urgent{color:#B71C1C}
.zone-status.is-help_needed{color:var(--coral-600)}
.zone-status.is-verifying{color:#7A5200}
.zone-needs{display:flex;flex-wrap:wrap;gap:0 2px}
.zone-needs .inc-tag{background:var(--coral-100);color:var(--ink-800)}
.zone-sources{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.zone-sources h3{margin:0 0 6px;font-size:14px;color:var(--text-strong)}
.zone-source{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:6px 0;
  border-bottom:1px dashed var(--line-soft);font-size:12px;line-height:1.5}
.zone-source:last-child{border-bottom:0}
.zone-source-type{flex:0 0 auto;font-weight:var(--fw-semibold);color:var(--text-strong)}
.zone-source-name{flex:1 1 160px;color:var(--text-body)}
.zone-source-time{color:var(--text-faint);font-variant-numeric:tabular-nums}
.zone-source a{color:var(--sky-600);font-weight:var(--fw-semibold)}

/* สิ่งที่จุดช่วยเหลือมี (ในการ์ดรายการ) */
.pt-card-feats{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:3px;font-size:12px;color:var(--text-body)}
