/* ============================================================
   Royal Project Dashboard — Theme
   สี/สไตล์อ้างอิงจากตัวอย่าง (เขียว-ทอง, ธีมธรรมชาติ)
   ============================================================ */
:root{
  --green-900:#12301c;
  --green-800:#173a23;
  --green-700:#1e4a2c;
  --green-600:#2f6b38;
  --green-500:#3d8b40;
  --green-400:#5aa04a;
  --green-300:#8bc34a;
  --gold:#b8912f;
  --gold-light:#d4af37;
  --cream:#eef1e6;
  --card:#ffffff;
  --border:#e2e6d8;
  --text:#26331f;
  --text-muted:#6f7a63;
  --shadow:0 2px 12px rgba(30,50,25,.07);
  --radius:16px;
  --sidebar-w:248px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Sarabun','Segoe UI',Tahoma,sans-serif;
  background:var(--cream);
  color:var(--text);
  font-size:14px;
  line-height:1.5;
}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer}

/* ---------------- Layout ---------------- */
.app{display:flex;min-height:100vh}
.main{flex:1;margin-left:var(--sidebar-w);min-width:0}

/* ---------------- Sidebar ---------------- */
.sidebar{
  position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);
  background:linear-gradient(180deg,var(--green-800),var(--green-900));
  color:#dfe9d6;display:flex;flex-direction:column;padding:22px 16px;z-index:50;
}
.brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:6px 4px 18px}
.brand .logo{width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:var(--gold-light)}
.brand h1{font-size:15px;font-weight:700;color:#fff;line-height:1.35}
.brand small{font-size:11px;color:#a7bb9c;font-weight:400}

.nav{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:#c8d6bd;font-size:14px;transition:.15s}
.nav a svg{width:19px;height:19px;flex:0 0 19px}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nav a.active{background:var(--green-500);color:#fff;font-weight:600;box-shadow:0 4px 10px rgba(0,0,0,.2)}

.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.user-card{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);border-radius:12px;padding:10px}
.user-card img{width:38px;height:38px;border-radius:10px;object-fit:cover}
.user-card .u-avatar{width:38px;height:38px;border-radius:10px;background:var(--green-500);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}
.user-card b{color:#fff;font-size:13px;display:block}
.user-card span{font-size:11px;color:#a7bb9c}
.logout-btn{display:flex;align-items:center;gap:10px;padding:10px 14px;color:#c8d6bd;background:none;border:none;font-size:14px;border-radius:12px}
.logout-btn:hover{background:rgba(255,255,255,.06);color:#fff}

/* ---------------- Topbar ---------------- */
.topbar{
  position:relative;overflow:hidden;color:#fff;padding:26px 32px;
  background:linear-gradient(90deg,rgba(20,45,25,.72),rgba(20,45,25,.15)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='240'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23cfe0b8'/%3E%3Cstop offset='1' stop-color='%23e8d9a8'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1200' height='240' fill='url(%23g)'/%3E%3Cpath d='M0 240 L200 120 L360 200 L520 90 L720 210 L900 110 L1200 220 L1200 240 Z' fill='%23799a5e' opacity='.55'/%3E%3Cpath d='M0 240 L160 170 L340 220 L560 150 L760 235 L980 160 L1200 235 L1200 240 Z' fill='%235c7d47' opacity='.6'/%3E%3C/svg%3E");
  background-size:cover;background-position:center;
}
.topbar .tb-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;position:relative;z-index:2}
.topbar h2{font-size:26px;font-weight:800;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.topbar p{font-size:14px;opacity:.95;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.tb-actions{display:flex;align-items:center;gap:10px}
.date-pill{background:rgba(255,255,255,.92);color:var(--text);border-radius:12px;padding:9px 14px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;border:none}
.icon-btn{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.92);border:none;display:flex;align-items:center;justify-content:center;position:relative;color:var(--green-700)}
.icon-btn .badge{position:absolute;top:-5px;right:-5px;background:#e34a4a;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 5px}
.emblem{position:absolute;right:36%;top:8px;width:88px;height:88px;opacity:.9;z-index:1}

/* ---------------- Content ---------------- */
.content{padding:22px 28px 40px}
.section-title{font-size:17px;font-weight:700;margin-bottom:12px;color:var(--green-800)}

/* KPI cards */
.kpi-row{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;margin-bottom:20px}
@media(max-width:1500px){.kpi-row{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.kpi-row{grid-template-columns:repeat(2,1fr)}}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.kpi .k-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.kpi.total{background:linear-gradient(180deg,#fff,#f4f8ee)}
.kpi.total .big{font-size:34px;font-weight:800;color:var(--green-700);line-height:1}
.kpi .k-top{display:flex;align-items:center;gap:8px}
.kpi .k-num{font-size:22px;font-weight:800}
.kpi .k-name{font-size:12px;color:var(--text-muted);margin:2px 0 4px}
.kpi .k-count{font-size:13px;font-weight:600}
.kpi .k-pct{font-size:12px;color:var(--text-muted);margin:4px 0 8px}
.kpi .bar{height:6px;border-radius:6px;background:#eceee4;overflow:hidden}
.kpi .bar>i{display:block;height:100%;border-radius:6px}
.kpi .up{color:var(--green-500);font-size:12px;font-weight:600;margin-top:6px}
.kpi .k-label{font-size:13px;color:var(--text-muted);margin-top:6px}

/* Grid for charts + map */
.grid-3{display:grid;grid-template-columns:1fr 1fr 1.05fr;gap:16px;margin-bottom:20px}
@media(max-width:1200px){.grid-3{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.card h3{font-size:16px;font-weight:700;margin-bottom:14px;color:var(--green-800)}
.chart-wrap{position:relative;height:240px}
.donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:center}
.donut-box{position:relative;width:230px;height:230px;flex:0 0 230px}
.legend{display:flex;flex-direction:column;gap:7px;font-size:12px}
.legend .li{display:flex;align-items:center;gap:8px}
.legend .dot{width:11px;height:11px;border-radius:3px;flex:0 0 11px}
.legend .li b{margin-left:auto;color:var(--text-muted);font-weight:600}

/* Map */
#map{height:270px;border-radius:12px;overflow:hidden}
.map-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;color:var(--text-muted)}
.map-legend .li{display:flex;align-items:center;gap:6px}
.map-legend .dot{width:12px;height:12px;border-radius:50%}

/* Table */
.table-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.table-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px}
.table-head h3{font-size:16px;font-weight:700;color:var(--green-800)}
.btn-ghost{border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 14px;font-size:13px;display:flex;align-items:center;gap:6px;color:var(--text)}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{background:var(--green-700);color:#fff;text-align:left;padding:12px 14px;font-weight:600;white-space:nowrap}
tbody td{padding:13px 14px;border-bottom:1px solid #eef1e6;vertical-align:middle}
tbody tr:hover{background:#f7faf1}
.prog{display:flex;align-items:center;gap:8px;min-width:120px}
.prog .bar{flex:1;height:7px;border-radius:6px;background:#eceee4;overflow:hidden}
.prog .bar>i{display:block;height:100%;border-radius:6px}
.badge-status{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.st-done{background:#e6f2d9;color:#4a7c2f}
.st-doing{background:#fdeccd;color:#b5811f}
.st-wait{background:#fde2e2;color:#c0504d}
.roy{display:flex;align-items:center;gap:8px}
.roy .rc{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;flex:0 0 26px}
.roy small{display:block;color:var(--text-muted);font-size:11px}
.roy b{font-size:12px}
.act{display:flex;gap:10px;color:var(--text-muted)}

/* ---------------- Login ---------------- */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(18,40,25,.85),rgba(18,40,25,.55)),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='800'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%232d5c34'/%3E%3Cstop offset='1' stop-color='%23122a18'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1200' height='800' fill='url(%23g)'/%3E%3C/svg%3E");
  background-size:cover}
.login-card{background:linear-gradient(180deg,var(--green-800),var(--green-900));color:#e6efdd;width:380px;border-radius:20px;padding:38px 34px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.login-card .logo{display:flex;justify-content:center;color:var(--gold-light);margin-bottom:14px}
.login-card h1{text-align:center;font-size:20px;color:#fff;margin-bottom:26px;line-height:1.4}
.field{position:relative;margin-bottom:14px}
.field svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9fb492}
.field input{width:100%;padding:13px 14px 13px 42px;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);color:#fff;font-size:14px;font-family:inherit}
.field input::placeholder{color:#9fb492}
.field input:focus{outline:none;border-color:var(--green-400);background:rgba(255,255,255,.12)}
.btn-primary{width:100%;padding:13px;border:none;border-radius:12px;background:var(--green-500);color:#fff;font-size:15px;font-weight:700;margin-top:6px}
.btn-primary:hover{background:var(--green-400)}
.login-card .forgot{display:block;text-align:center;margin-top:16px;color:#a7bb9c;font-size:13px}
.alert{background:#fde2e2;color:#c0504d;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px;text-align:center}
.alert-ok{background:#e6f2d9;color:#4a7c2f}
.login-hint{margin-top:18px;text-align:center;font-size:12px;color:#8ea283}

/* ---------------- Forms ---------------- */
.form-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);max-width:1000px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group.full{grid-column:1 / -1}
.form-group label{font-size:13px;font-weight:600;color:var(--green-800)}
.form-group input,.form-group select,.form-group textarea{
  padding:11px 13px;border:1px solid var(--border);border-radius:10px;font-size:14px;font-family:inherit;background:#fbfdf8}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--green-400)}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.btn-save{background:var(--green-500);color:#fff;border:none;border-radius:10px;padding:11px 22px;font-weight:700}
.btn-save:hover{background:var(--green-400)}
.btn-cancel{background:#eceee4;color:var(--text);border:none;border-radius:10px;padding:11px 22px;font-weight:600}

/* Project list / detail */
.plist{display:grid;grid-template-columns:1fr;gap:0}
.detail-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.stat-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}
.stat-mini .card{padding:16px}
.stat-mini .big{font-size:26px;font-weight:800;color:var(--green-700)}
.timeline td .badge-status{font-size:11px}
.empty{padding:40px;text-align:center;color:var(--text-muted)}

/* ===== เวอร์ชันข้อมูลจริง: dashboard/form ===== */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
@media(max-width:1100px){.grid-2{grid-template-columns:1fr}}
.rc-pill{padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}

/* ฟอร์ม 3 คอลัมน์ */
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1200px){.cols-3{grid-template-columns:1fr}}
.col-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.col-head{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--green-800);margin-bottom:12px;flex-wrap:wrap}
.col-num{width:24px;height:24px;border-radius:50%;background:var(--green-500);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex:0 0 24px}
.btn-add-mini{margin-left:auto;border:1px solid var(--green-400);background:#eef7e6;color:var(--green-700);border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600}
.btn-add-mini:hover{background:var(--green-500);color:#fff}
.btn-add-block{width:100%;border:1.5px dashed var(--border);background:#fbfdf8;color:var(--green-700);border-radius:10px;padding:11px;font-weight:600;font-size:13px;margin-top:10px}
.btn-add-block:hover{border-color:var(--green-400);background:#f2f8ec}

.rep-list{display:flex;flex-direction:column;gap:12px}
.rep-item{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fbfdf8}
.rep-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.rep-title{font-size:13px;font-weight:700;color:var(--text)}
.rep-del{border:none;background:#fde2e2;color:#c0504d;width:24px;height:24px;border-radius:7px;font-size:13px;line-height:1}
.rep-del:hover{background:#f7caca}
.rep-label{display:block;font-size:12px;font-weight:600;color:var(--green-800);margin:8px 0 4px}
.rep-item input,.rep-item select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:9px;font-size:13px;font-family:inherit;background:#fff}
.rep-item input:focus,.rep-item select:focus{outline:none;border-color:var(--green-400)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fg label{display:block;font-size:12px;font-weight:600;color:var(--green-800);margin:6px 0 4px}
.area-map{height:170px;border-radius:9px;border:1px solid var(--border);overflow:hidden;margin-top:4px}
.upload-note{margin-top:10px;padding:14px;border:1.5px dashed var(--border);border-radius:9px;text-align:center;font-size:12px;color:var(--text-muted);background:#fff}

/* rich text */
.rt{border:1px solid var(--border);border-radius:9px;overflow:hidden;background:#fff}
.rt-toolbar{display:flex;align-items:center;gap:2px;padding:5px 6px;background:#f4f7ee;border-bottom:1px solid var(--border)}
.rt-toolbar button{width:28px;height:26px;border:none;background:none;border-radius:5px;font-size:13px;color:var(--text)}
.rt-toolbar button:hover{background:#e2ead6}
.rt-sep{width:1px;height:16px;background:var(--border);margin:0 3px}
.rt-editor{min-height:90px;padding:10px 12px;font-size:13px;line-height:1.6;outline:none}
.rt-editor:empty:before{content:attr(data-ph);color:#a7ad9c}
.rt-editor ul,.rt-editor ol{margin-left:20px}

/* detail view */
.d-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}
.d-item{display:flex;flex-direction:column;gap:2px}
.d-label{font-size:11px;color:var(--text-muted)}
.d-val{font-size:14px;font-weight:600;color:var(--text)}
.d-block{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;background:#fbfdf8}
.d-block-h{font-size:13px;font-weight:700;color:var(--green-800);margin-bottom:8px}
.rt-view{font-size:13px;line-height:1.7}
.rt-view ul,.rt-view ol{margin-left:20px}

/* hint box */
.hint-box{background:#eef4e6;border:1px solid #d8e6c8;border-radius:12px;padding:16px 18px;margin-top:16px;font-size:13px}
.hint-box b{display:flex;align-items:center;gap:6px;color:var(--green-800);margin-bottom:6px}
.hint-box ol{margin-left:20px;color:var(--text);line-height:1.7}

/* ===== เฟส 1: interactive + edit/delete/log ===== */
.logo-card{background:transparent;padding:0;display:flex;align-items:center;justify-content:center;max-width:180px;margin:0 auto}
.logo-card img{width:100%;height:auto;display:block}

.cat-card{cursor:pointer;transition:.15s;user-select:none}
.cat-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(30,50,25,.12)}
.cat-card.active{outline:2px solid var(--green-500);outline-offset:1px}
.kpi.total{cursor:pointer}

.filter-bar{display:flex;align-items:center;gap:8px;background:#eef4e6;border:1px solid #d8e6c8;border-radius:12px;padding:10px 14px;margin-bottom:16px;font-size:14px;color:var(--green-800)}
.filter-bar b{color:var(--text)}
.btn-clear{margin-left:auto;border:1px solid var(--border);background:#fff;border-radius:8px;padding:5px 12px;font-size:13px;color:#c0504d}
.btn-clear:hover{background:#fde2e2}
.mini-table{width:100%;border-collapse:collapse;font-size:12px}
.mini-table th{position:sticky;top:0;background:var(--green-700);color:#fff;padding:8px 10px;text-align:left}
.mini-table td{padding:7px 10px;border-bottom:1px solid #eef1e6}

.pin-card{max-width:380px;margin:40px auto;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:32px;text-align:center}
.pin-ic{width:56px;height:56px;border-radius:14px;background:#eef4e6;color:var(--green-600);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.pin-card h3{color:var(--green-800);margin-bottom:6px}
.pin-card p{color:var(--text-muted);font-size:13px;margin-bottom:16px}
.pin-card input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:18px;text-align:center;letter-spacing:6px;font-family:inherit}
.pin-card input:focus{outline:none;border-color:var(--green-400)}
.unlock-note{display:flex;align-items:center;gap:8px;background:#fef6e0;border:1px solid #f0deb0;color:#8a6d1f;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:16px}
.btn-mini{display:inline-flex;align-items:center;gap:4px;border:none;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none}
.btn-mini svg{width:15px;height:15px}
.btn-mini-edit{background:#e6f2d9;color:var(--green-700)}
.btn-mini-edit:hover{background:var(--green-500);color:#fff}
.btn-mini-del{background:#fde2e2;color:#c0504d}
.btn-mini-del:hover{background:#c0504d;color:#fff}

@media print{
  .no-print,.sidebar{display:none!important}
  .main{margin-left:0!important}
  body{background:#fff}
  .card,.table-card,.form-card,.col-card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  .topbar{background:#fff!important}
  .topbar h2,.topbar p{color:#111!important;text-shadow:none!important}
  .emblem{display:none}
}

/* ===== เฟส 2: role / settings / export ===== */
.role-btn{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);color:var(--green-700);border-radius:12px;padding:9px 14px;font-size:13px;font-weight:600;text-decoration:none}
.role-btn.admin{background:var(--gold);color:#fff}
.role-btn:hover{filter:brightness(1.05)}
.viewer-banner{display:flex;align-items:center;gap:8px;background:#fef6e0;border:1px solid #f0deb0;color:#8a6d1f;border-radius:10px;padding:10px 14px;font-size:13px}
.export-btns{display:flex;gap:8px;flex-wrap:wrap}
.chk-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
@media(max-width:600px){.chk-grid{grid-template-columns:1fr}}
.chk{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:14px;cursor:pointer;background:#fbfdf8}
.chk:hover{border-color:var(--green-400)}
.chk input{width:18px;height:18px;accent-color:var(--green-500)}
.chk svg{width:18px;height:18px;color:var(--green-600);flex:0 0 18px}
.unlock-chip{display:inline-flex;align-items:center;gap:6px;background:#eef4e6;border:1px solid #d8e6c8;color:var(--green-700);border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600}
.unlock-chip svg{width:15px;height:15px}

/* Funnel chart (HTML) */
.funnel{display:flex;flex-direction:column;gap:8px;padding:10px 0}
.fn-row{cursor:pointer;text-align:center;transition:.15s;line-height:0}
.fn-row:hover{transform:scale(1.02)}
.fn-row.dim{opacity:.28}
.fn-bar{height:30px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px;line-height:1;padding:0 12px;min-width:74px;box-shadow:0 1px 3px rgba(0,0,0,.18);white-space:nowrap}

/* ตัวกรองหน้าโครงการ */
.proj-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--border);background:#fbfdf8}
.flabel{font-size:13px;color:var(--text-muted);font-weight:600}
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fchip{border:1px solid var(--border);background:#fff;border-radius:20px;padding:5px 12px;font-size:12px;cursor:pointer;color:var(--text)}
.fchip.on{background:var(--green-500);color:#fff;border-color:var(--green-500)}
.fdrop{position:relative}
.fdrop-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:6px 12px;font-size:13px;cursor:pointer}
.fdrop-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);width:280px;padding:8px}
.fdrop-search{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;margin-bottom:6px;font-family:inherit}
.fdrop-list{max-height:230px;overflow:auto}
.fdrop-item{display:flex;align-items:center;gap:6px;padding:5px 6px;font-size:13px;border-radius:6px;cursor:pointer}
.fdrop-item:hover{background:#f2f6ec}
.fclear{margin-left:auto;border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 12px;font-size:13px;color:#c0504d;cursor:pointer}
.fclear:hover{background:#fde2e2}
.map-select{border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 12px;font-size:14px;font-family:inherit;color:var(--text);min-width:240px;cursor:pointer}
.map-select:focus{outline:none;border-color:var(--green-400)}

/* อัปโหลดรูป */
.img-up{margin-top:4px}
.btn-browse{border:1px solid var(--green-400);background:#eef7e6;color:var(--green-700);border-radius:9px;padding:10px 14px;font-size:13px;font-weight:600;cursor:pointer;width:100%}
.btn-browse:hover{background:var(--green-500);color:#fff}
.img-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.img-thumb{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.img-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.img-x{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(192,80,77,.92);color:#fff;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.d-imgs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.d-imgs img{width:110px;height:88px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
/* แกลเลอรีภาพกิจกรรม (ใหญ่) */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:6px}
.gallery img{width:100%;height:190px;object-fit:cover;border-radius:10px;border:1px solid var(--border);cursor:zoom-in;transition:.15s}
.gallery img:hover{transform:scale(1.02)}
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:9999;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox img{max-width:95%;max-height:95%;border-radius:8px;box-shadow:0 12px 48px rgba(0,0,0,.6)}
