
:root{--blue:#2f80ed;--blue2:#1769df;--bg:#f4f7fb;--text:#172033;--muted:#6f7890;--line:#e2e8f1;--ok:#21a45a;--warn:#ec9417;--bad:#e54848}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang HK","Noto Sans TC",Arial,sans-serif;color:var(--text)}
button,input,textarea{font:inherit}
button{cursor:pointer}
.app{max-width:570px;margin:auto;min-height:100vh}
.hero{background:linear-gradient(145deg,var(--blue),var(--blue2));color:#fff;padding:calc(20px + env(safe-area-inset-top)) 18px 70px}
.head{display:flex;align-items:center;gap:11px}.shield{width:47px;height:52px;border:4px solid #fff;border-radius:15px 15px 19px 19px;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800}
.brand{flex:1}.brand h1{font-size:22px;margin:0}.brand p{font-size:11px;margin:4px 0 0;opacity:.9}
.dot{width:14px;height:14px;border:2px solid #fff;border-radius:50%}.dot.online{background:#70e5a2}.dot.testing{background:#ffd45c}.dot.offline{background:#ff7676}
main{padding:0 14px 26px;margin-top:-42px}.card{background:#fff;border-radius:22px;padding:18px;margin-bottom:14px;box-shadow:0 8px 28px rgba(38,66,110,.08)}
.card h2{font-size:19px;margin:3px 0 10px}.eyebrow{font-size:9px;font-weight:800;letter-spacing:.14em;color:#9099ad}
.help{font-size:11px;color:var(--muted);line-height:1.55}.connection{display:flex;justify-content:space-between;align-items:center;gap:12px}.connection p{margin:0;color:var(--muted);font-size:11px}
.mini{border:0;background:#eaf2ff;color:#216ccb;border-radius:11px;padding:9px 11px;font-size:11px;font-weight:750;white-space:nowrap}
.big-upload{border:2px dashed #a9c8f2;background:#f5f9ff;border-radius:18px;min-height:142px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;color:#315d9d;cursor:pointer}
.big-upload input{display:none}.big-upload .camera{font-size:35px;margin-bottom:6px}.big-upload strong{font-size:15px}.big-upload small{font-size:10px;margin-top:4px;color:#7187a7}
.batch-actions{margin-top:12px;display:flex;gap:9px;align-items:center}.counter{font-size:11px;color:var(--muted);flex:1}.primary{border:0;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;padding:12px 14px;font-weight:800;font-size:12px}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{width:100%;margin-top:5px;background:#22324c}
.previews{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:12px}.preview{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#edf1f6;border:1px solid var(--line)}.preview img{width:100%;height:100%;object-fit:cover}.preview b{position:absolute;left:4px;top:4px;background:rgba(23,32,51,.8);color:#fff;font-size:9px;border-radius:999px;padding:3px 5px}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.pill{font-size:10px;font-weight:800;border-radius:999px;padding:5px 8px}.pill.neutral{background:#eef1f5;color:#6d768a}.pill.ok{background:#e6f7ed;color:#167944}.pill.warn{background:#fff1d9;color:#a45e00}.pill.bad{background:#feecec;color:#b42d2d}
.empty{text-align:center;color:var(--muted);font-size:11px;padding:16px 5px}.classification{display:flex;flex-direction:column;gap:8px}.class-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:9px}.class-thumb{width:48px;height:48px;border-radius:9px;object-fit:cover;background:#eef1f5}.class-main{flex:1}.class-main strong{display:block;font-size:12px}.class-main small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fields-grid label{font-size:10px;color:#536079;display:flex;flex-direction:column;gap:5px}.fields-grid .full{grid-column:1/-1}
input,textarea{width:100%;border:1px solid #dce3ed;border-radius:10px;padding:9px 10px;background:#fff;color:var(--text);outline:none}input:focus,textarea:focus{border-color:#8bb9f6;box-shadow:0 0 0 3px #eaf3ff}
.result-cards{display:flex;flex-direction:column;gap:9px;margin-bottom:12px}.result-card{border:1px solid var(--line);border-radius:14px;padding:11px}.result-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.result-head strong{font-size:12px}
.result-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rf{border-radius:9px;background:#f8fafc;padding:7px;border:1px solid transparent}.rf.review{background:#fff8ed;border-color:#f2c885}.rf small{display:block;color:var(--muted);font-size:9px}.rf b{font-size:11px;word-break:break-word;white-space:pre-wrap}.notes{margin-top:8px;border-radius:9px;background:#fff5df;color:#7d5208;padding:8px;font-size:10px;line-height:1.5}
.cross{border-radius:12px;padding:11px;font-size:11px;line-height:1.65}.cross.neutral{background:#f1f3f6;color:#687186}.cross.ok{background:#e9f8ef;color:#146b3c}.cross.warn{background:#fff5e4;color:#805000}
.sample-note,.privacy{font-size:11px;line-height:1.6}.sample-note p,.privacy p{color:var(--muted);margin:6px 0 0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(15px);background:#172033;color:#fff;padding:10px 14px;border-radius:999px;font-size:11px;opacity:0;transition:.2s;pointer-events:none;z-index:30;max-width:92vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:410px){.fields-grid,.result-fields{grid-template-columns:1fr}.fields-grid .full{grid-column:auto}.previews{grid-template-columns:repeat(5,1fr)}.batch-actions{flex-direction:column;align-items:stretch}.brand h1{font-size:19px}}
