:root{--bg: #f8f9fa;--fg: #212529;--primary: #0d6efd;--radius: 8px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}.app{max-width:540px;margin:0 auto;padding:1rem}nav{display:flex;gap:.5rem;margin-bottom:1rem}nav button{flex:1;padding:.75rem;border:none;border-radius:var(--radius);background:#e9ecef;font-weight:600}nav button.active{background:var(--primary);color:#fff}button{cursor:pointer}.camera-capture button{width:100%;padding:1rem;font-size:1.1rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius)}.preview{width:100%;margin-top:.75rem;border-radius:var(--radius)}.status{color:#495057}.error{color:#dc3545}.health-pill{display:inline-block;padding:.35rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600;margin-bottom:.75rem}.health-pill.status-ok{background:#d1e7dd;color:#0f5132}.health-pill.status-slow{background:#fff3cd;color:#664d03}.health-pill.status-error{background:#f8d7da;color:#842029}.health-pill.status-checking{background:#e9ecef;color:#495057}.match-results ul{list-style:none;padding:0;display:grid;gap:.75rem}.match-card{background:#fff;border-radius:var(--radius);padding:.75rem;display:flex;gap:.75rem;box-shadow:0 1px 3px #00000014}.match-card img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius)}.match-card .title{margin:0;font-weight:600;font-size:.95rem}.match-card .meta{margin:.25rem 0 0;font-size:.8rem;color:#495057}.match-card.low-confidence{opacity:.62}.match-card.low-confidence img{filter:grayscale(.45)}.match-warning{background:#fff3cd;color:#664d03;padding:.6rem .75rem;border-radius:var(--radius);font-size:.85rem;margin:0 0 .5rem}.visit-form{display:grid;gap:.5rem;margin-top:1rem}.visit-form input,.visit-form textarea,.visit-form button{padding:.75rem;border-radius:var(--radius);border:1px solid #ced4da;font-size:1rem}.visit-form button{background:#198754;color:#fff;border:none}.location-fields{display:flex;flex-wrap:wrap;gap:.5rem}.location-fields input{flex:1 1 6rem}.location-fields input:first-child{flex:1 1 100%}
