*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, -apple-system, sans-serif; padding: 1.5rem; color: #1a1a1a; background: #fff; }
header { padding-bottom: 1.5rem; border-bottom: 1px solid #eee; margin-bottom: 1.5rem; }
header h1 { font-size: 1.4rem; font-weight: 700; letter-spacing: -0.01em; }
.login-form { display: flex; gap: .5rem; margin: 1rem 0; max-width: 400px; }
.login-form input { flex: 1; padding: .5rem .75rem; border: 1px solid #d1d5db; border-radius: 6px; font-size: .9rem; }
.error { color: #dc2626; font-size: .875rem; margin-top: .25rem; }
#controls { display: flex; gap: .5rem; margin-bottom: 1rem; align-items: center; flex-wrap: wrap; }
#controls input { flex: 1; min-width: 160px; padding: .4rem .75rem; border: 1px solid #d1d5db; border-radius: 6px; font-size: .875rem; }
table { width: 100%; border-collapse: collapse; font-size: .875rem; }
th, td { padding: .6rem .75rem; text-align: left; border-bottom: 1px solid #f0f0f0; }
th { background: #f9fafb; font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #6b7280; }
tr:hover td { background: #fafafa; }
#pagination { margin-top: 1rem; display: flex; gap: 1rem; align-items: center; font-size: .875rem; color: #6b7280; }
button { padding: .4rem .85rem; background: #111; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: .875rem; }
button.secondary { background: #f3f4f6; color: #374151; }
button:disabled { opacity: .4; cursor: default; }
button:hover:not(:disabled) { opacity: .85; }
#upload-section { margin-bottom: 1.5rem; }
#drop-zone { border: 2px dashed #d1d5db; border-radius: 8px; padding: 2rem; text-align: center; cursor: pointer; transition: border-color .2s, background .2s; color: #6b7280; }
#drop-zone:hover, #drop-zone.drag-over { border-color: #111; background: #f9fafb; color: #111; }
#upload-fields { display: flex; gap: .5rem; margin-top: .75rem; }
#upload-fields input { flex: 1; padding: .4rem .75rem; border: 1px solid #d1d5db; border-radius: 6px; font-size: .875rem; }
#upload-progress { margin-top: .75rem; }
#upload-bar-bg { height: 6px; background: #f0f0f0; border-radius: 3px; overflow: hidden; }
#upload-bar { height: 100%; width: 0; background: #111; border-radius: 3px; transition: width .3s; }
#upload-status { font-size: .8rem; color: #6b7280; margin-top: .35rem; }
.field-group { flex: 1; display: flex; flex-direction: column; gap: .25rem; }
.field-group label { font-size: .75rem; font-weight: 600; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }
.toast { margin-top: .75rem; padding: .5rem .75rem; border-radius: 6px; font-size: .85rem; }
.toast-success { background: #065f46; color: #d1fae5; }
.toast-error { background: #991b1b; color: #fecaca; }
.btn-danger { background: #dc2626; }
.btn-danger:hover:not(:disabled) { background: #b91c1c; }
.stats-row td.stats-cell { background: #f9fafb; padding: 1rem; }
.stats-summary { display: flex; gap: 1.5rem; flex-wrap: wrap; color: #374151; font-size: .85rem; margin-bottom: .75rem; }
.stats-empty { color: #6b7280; font-size: .85rem; }
.stats-events { width: 100%; font-size: .8rem; background: #fff; }
.stats-events th { font-size: .7rem; padding: .4rem .6rem; }
.stats-events td { padding: .4rem .6rem; }
