:root{--bg:#f6f7f9;--card:#ffffff;--text:#121212;--muted:#6b7280;--border:#e5e7eb;--accent:#111827;}
*{box-sizing:border-box;}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text);}
header{position:sticky;top:0;background:var(--card);border-bottom:1px solid var(--border);padding:16px 24px;z-index:10;}
header h1{margin:0 0 4px;font-size:20px;}
header p{margin:0;color:var(--muted);font-size:13px;}
main{padding:24px;max-width:1200px;margin:0 auto;}
.grid{display:grid;grid-template-columns:1fr;gap:24px;}
@media(min-width:992px){.grid{grid-template-columns:1fr 1fr;}}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.04);}
.card h2{margin:0 0 8px;font-size:18px;}
.muted{color:var(--muted);font-size:13px;}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:#f3f4f6;padding:10px 14px;border-radius:12px;cursor:pointer;user-select:none;}
.btn:hover{background:#eaecef;}
.hidden{opacity:0;position:absolute;width:0;height:0;}
.error{color:#b91c1c;font-size:13px;margin-top:8px;}
.table-wrap{border:1px solid var(--border);border-radius:12px;overflow:auto;}
table{width:100%;border-collapse:collapse;font-size:14px;}
thead{background:#f9fafb;}
th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);vertical-align:top;}
tbody tr:nth-child(even){background:#fbfbfd;}
.dropzone{margin-top:12px;border:1.5px dashed var(--border);border-radius:12px;padding:18px;text-align:center;color:var(--muted);pointer-events:all;}
.dropzone.drag{background:#f3f4f6;}
.process-btn{margin-top:16px;padding:12px 18px;border-radius:12px;background:var(--accent);color:#fff;border:none;cursor:pointer;}
.process-btn:hover{opacity:.92;}
.reset-btn{margin-top:16px;padding:12px 18px;border-radius:12px;background:#e5e7eb;color:#111827;border:1px solid var(--border);cursor:pointer;}
.reset-btn:hover{filter:brightness(0.98);}
.actions{display:flex;gap:12px;align-items:center;margin-top:8px;}
.summary{margin-top:12px;font-size:14px;}
.summary strong{display:inline-block;min-width:140px;}
.hr{border-top:1px solid var(--border);margin:12px 0;}
#records-section{margin-top:28px;}
#records-section .empty{color:var(--muted);text-align:center;padding:16px;}
.delete-btn{padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:#fff;cursor:pointer;}
.delete-btn:hover{background:#f3f4f6;}
