*{box-sizing:border-box}
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#202124;background:#f4f6f8}
body{margin:0}
.app{max-width:1200px;margin:auto;padding:20px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}
h1{margin:0;font-size:28px}
h2{margin:0 0 14px;font-size:19px}
p{color:#687078}
.card{background:white;border:1px solid #e2e6ea;border-radius:16px;padding:20px;margin-bottom:18px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.grid{display:grid;grid-template-columns:1.1fr 1.5fr 1.2fr auto;gap:14px;align-items:end}
label{font-size:13px;font-weight:700}
input,textarea{display:block;width:100%;margin-top:7px;border:1px solid #ccd2d8;border-radius:10px;padding:12px;font-size:16px;background:#fff;outline:none}
input:focus,textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px rgba(22,119,255,.1)}
small{display:block;color:#858d95;margin-top:5px;font-weight:400}
button{border:0;border-radius:10px;padding:12px 16px;font-weight:700;cursor:pointer;font-size:14px}
.primary{background:#1677ff;color:#fff}
.secondary{background:#eef1f4;color:#202124}
.danger-outline{background:white;color:#d93025;border:1px solid #d93025}
.hidden{display:none!important}
.alert{border:1px solid #f0b429;background:#fff8df;color:#6d5000;border-radius:12px;padding:14px 16px;margin-bottom:18px;font-weight:600}
.alert strong{color:#b42318}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.stat{background:white;border:1px solid #e2e6ea;border-radius:14px;padding:15px;text-align:center}
.stat strong{display:block;font-size:25px}.stat span{color:#737b83;font-size:13px}
.table-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:10px}
.search{max-width:360px;margin:0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #edf0f2;font-size:14px}
th{font-size:12px;color:#6b737b;background:#fafbfc}
tr.duplicate{background:#fff1f0}
.code{font-weight:800;letter-spacing:.7px}
.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800}
.ok{background:#e8f7ee;color:#16723a}.dup{background:#ffe1df;color:#b42318}
.row-actions{display:flex;gap:6px}
.row-actions button{padding:7px 9px;font-size:12px}
.empty{text-align:center;padding:20px}
textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
.import-actions{display:flex;gap:8px;margin-top:10px}
footer{display:flex;justify-content:space-between;color:#858d95;font-size:12px;padding:4px 3px 25px}
@media(max-width:800px){.app{padding:12px}.topbar{align-items:flex-start}.topbar h1{font-size:22px}.grid{grid-template-columns:1fr}.actions{display:flex;gap:8px}.stats{grid-template-columns:repeat(3,1fr)}.stat{padding:10px 5px}.stat strong{font-size:20px}.table-head{align-items:stretch;flex-direction:column}.search{max-width:none}.danger-outline{white-space:nowrap}}
