:root{--bg:#f6f7fb;--card:#fff;--text:#172033;--muted:#687086;--line:#dfe3ed;--accent:#174ea6;--danger:#a81717}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.4rem;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{font-weight:800;color:var(--text);text-decoration:none}.topbar nav{display:flex;gap:.8rem;flex-wrap:wrap}.topbar a{color:var(--accent);text-decoration:none}.container{max-width:1180px;margin:0 auto;padding:1.4rem}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-head h1{margin:.2rem 0}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.2rem;box-shadow:0 8px 24px rgba(20,30,60,.06);margin-bottom:1rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.action{display:block;text-decoration:none;color:var(--text)}.action span,.muted,footer{color:var(--muted)}.button,button{display:inline-block;border:0;background:var(--accent);color:white;border-radius:12px;padding:.7rem 1rem;font-weight:700;text-decoration:none;cursor:pointer}.danger,.button.danger{background:#fff1f1;color:var(--danger);border-color:#ffd0d0}.button.danger{background:var(--danger);color:#fff}.form{display:grid;gap:1rem;max-width:720px}label{display:grid;gap:.35rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:.75rem;background:#fff;font:inherit}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chips span{background:#edf3ff;border:1px solid #cfe0ff;color:#174ea6;border-radius:99px;padding:.35rem .65rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:.6rem;text-align:left;vertical-align:top}th{font-size:.88rem;color:var(--muted)}code{background:#f0f2f6;padding:.2rem .35rem;border-radius:6px}.hidden{display:none!important}#reader{max-width:480px;margin-bottom:1rem}.person-hit{padding:.7rem;border:1px solid var(--line);border-radius:12px;margin:.4rem 0;cursor:pointer}.person-hit:hover{background:#f0f5ff}.ok{background:#eef9f0;color:#146c2e}.error{background:#fff1f1;color:#a81717}.stats .card b{font-size:1.6rem;display:block}footer{text-align:center;padding:2rem}.hero{padding:3rem}.scanner{max-width:760px}
