:root {
  --main:#0f5f46; --dark:#073b2b; --soft:#e8f5ef; --bg:#f2f5f3; --card:#fff;
  --text:#111827; --muted:#4b5563; --line:#c7ced6; --yellow:#facc15; --orange:#fb923c; --red:#dc2626;
  --shadow:0 10px 28px rgba(15,95,70,.14);
}
*{box-sizing:border-box} body{margin:0;padding:12px 12px 28px;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Segoe UI",sans-serif;background:linear-gradient(180deg,rgba(15,95,70,.08),transparent 220px),var(--bg);color:var(--text)}
.app{max-width:640px;margin:0 auto}.hero{background:linear-gradient(135deg,var(--dark),var(--main));color:#fff;border-radius:22px;padding:22px;margin-bottom:12px;box-shadow:var(--shadow)}
.tag{display:inline-block;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);font-size:13px;font-weight:900;letter-spacing:1px;margin-bottom:12px}
h1{margin:0;font-size:30px;line-height:1.25;font-weight:950}.subtitle{margin-top:8px;font-size:16px;line-height:1.55;font-weight:700;color:rgba(255,255,255,.9)}
.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.nav button{border:2px solid var(--line);background:#fff;border-radius:14px;padding:10px 6px;font-weight:950;color:var(--muted)}.nav button.active{border-color:var(--main);background:var(--soft);color:var(--dark)}
.card{background:var(--card);border:2px solid #d7dde3;border-radius:20px;padding:18px;margin-bottom:14px;box-shadow:0 4px 18px rgba(17,24,39,.05)}.page{display:none}.page.active{display:block}
.section-title{margin:0 0 14px;padding-bottom:9px;border-bottom:4px solid var(--main);font-size:20px;font-weight:950;color:var(--dark)}
label{display:block;margin-top:16px;font-size:17px;font-weight:950;color:var(--text)}
input,textarea,select{width:100%;margin-top:8px;padding:16px;border-radius:14px;border:2px solid #aab3bf;background:#fff;font-size:18px;color:var(--text);outline:none;font-weight:700}
input:focus,textarea:focus,select:focus{border-color:var(--main);box-shadow:0 0 0 4px rgba(15,95,70,.16)}textarea{min-height:112px;resize:vertical}.hint{margin-top:8px;font-size:15px;line-height:1.5;color:var(--muted);font-weight:750}
.btn{width:100%;margin-top:16px;padding:18px 16px;border-radius:16px;font-size:19px;font-weight:950;border:none;cursor:pointer;letter-spacing:.5px}.btn-primary{background:linear-gradient(135deg,var(--main),var(--dark));color:#fff;box-shadow:0 8px 20px rgba(15,95,70,.26)}.btn-secondary{background:#fff;color:var(--dark);border:3px solid var(--main)}.btn-danger{background:#fff;color:#b91c1c;border:3px solid #b91c1c}.btn:disabled{background:#9ca3af;color:#fff;border:none;box-shadow:none;cursor:not-allowed}
.summary{background:var(--soft);border:3px solid var(--main);border-radius:18px;padding:15px;color:var(--dark);font-size:16px;line-height:1.65;font-weight:900;margin-bottom:14px}.status{margin-top:14px;padding:15px;border-radius:16px;border:2px solid #9ca3af;background:#fff;font-size:16px;line-height:1.65;color:var(--text);font-weight:800}.status.ok{border-color:var(--main);background:#f0f8f4;color:var(--dark)}.status.warn{border-color:#b45309;background:#fff7ed;color:#7c2d12}.status.red{border-color:var(--red);background:#fef2f2;color:#7f1d1d}.status.orange{border-color:var(--orange);background:#fff7ed;color:#7c2d12}.status.yellow{border-color:var(--yellow);background:#fefce8;color:#713f12}
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.file-btn{position:relative;overflow:hidden;display:block;text-align:center;padding:18px 12px;border-radius:16px;font-size:18px;font-weight:950;cursor:pointer;border:3px solid var(--main);color:var(--dark);background:#fff}.file-btn.camera{background:var(--main);color:#fff}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;padding:0}.preview{margin-top:14px;display:none;width:100%;border-radius:18px;border:2px solid var(--line);overflow:hidden;background:#fff}.preview img{width:100%;display:block;max-height:360px;object-fit:contain}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.queue-item{border:2px solid #d7dde3;border-radius:16px;padding:12px;margin-top:10px;background:#fff}.queue-item.uploaded{background:#f0f8f4;border-color:var(--main)}.queue-head{display:flex;justify-content:space-between;gap:8px;font-weight:950}.queue-meta{font-size:14px;line-height:1.5;color:var(--muted);font-weight:750;margin-top:6px}.mini-btn{padding:8px 10px;border-radius:10px;border:2px solid #b91c1c;background:#fff;color:#b91c1c;font-weight:900}#map{height:520px;border:2px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.map-list{margin-top:10px}.progress{height:14px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:10px}.bar{height:100%;width:0;background:var(--main)}
@media(max-width:460px){body{padding:10px}.hero,.card{border-radius:18px;padding:16px}.nav{grid-template-columns:repeat(2,1fr)}.photo-actions,.row{grid-template-columns:1fr}h1{font-size:28px}}
