: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;}