:root{--bg:#f4f5f7;--card:#fff;--ink:#16181d;--muted:#5b6472;--line:#d9dde3;--brand:#1d4ed8;--ok:#15803d;--obs:#b45309;--na:#475569;--ni:#7c3aed;--danger:#b91c1c;--radius:12px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}main.shell{max-width:640px;padding:12px 12px calc(84px + env(safe-area-inset-bottom));margin:0 auto}a{color:var(--brand);text-decoration:none}h1{margin:8px 0 4px;font-size:1.3rem}h2{margin:12px 0 6px;font-size:1.05rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:10px 0;padding:14px}.muted{color:var(--muted);font-size:.85rem}button,.btn{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer;touch-action:manipulation;min-height:48px;padding:12px 14px}button:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.result-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.result-btn{border-width:2px;min-height:64px;font-size:1rem;font-weight:600}.result-btn.sel-satisfactory{background:var(--ok);border-color:var(--ok);color:#fff}.result-btn.sel-observation_raised{background:var(--obs);border-color:var(--obs);color:#fff}.result-btn.sel-not_applicable{background:var(--na);border-color:var(--na);color:#fff}.result-btn.sel-not_inspected{background:var(--ni);border-color:var(--ni);color:#fff}.adequacy-grid{gap:10px;margin-top:8px;display:grid}.adequacy-btn{border-width:2px;min-height:56px;font-weight:600}.adequacy-btn.sel-adequate{background:var(--ok);border-color:var(--ok);color:#fff}.adequacy-btn.sel-not_adequate{background:var(--danger);border-color:var(--danger);color:#fff}.adequacy-btn.sel-cannot_confirm{background:var(--ni);border-color:var(--ni);color:#fff}input[type=text],input[type=email],textarea,select{font:inherit;border:1px solid var(--line);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;padding:12px}textarea{resize:vertical;min-height:84px}label{color:var(--muted);margin:10px 0 4px;font-size:.85rem;display:block}label.req:after{content:" *";color:var(--danger)}.field-error{color:var(--danger);margin-top:4px;font-size:.85rem}.cat-row{-webkit-overflow-scrolling:touch;gap:6px;padding:6px 0;display:flex;overflow-x:auto}.cat-chip{border:1px solid var(--line);background:#fff;border-radius:999px;flex:none;min-height:40px;padding:8px 12px;font-size:.85rem}.cat-chip.active{border-color:var(--brand);color:var(--brand);font-weight:700}.cat-chip.done{border-color:var(--ok);background:#e7f6ec}.progress-track{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--brand);height:100%;transition:width .2s}.walk-nav{background:var(--card);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px;max-width:640px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.walk-nav button{flex:1}.sync-badge{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.sync-badge.pending{border-color:var(--obs);color:var(--obs)}.sync-badge.error{border-color:var(--danger);color:var(--danger)}.sync-badge.ok{border-color:var(--ok);color:var(--ok)}.topbar{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.photo-thumb{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:72px;height:72px}.photo-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.pill{border:1px solid;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.pill.obs{color:var(--obs)}.pill.open{color:var(--danger)}.list-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px;display:flex}.list-row:last-child{border-bottom:none}
