:root{--bg:#f4f7fb;--card:#ffffff;--text:#172b4d;--muted:#667085;--line:#e3e8ef;--line-soft:#edf0f4;--primary:#1565c0;--primary-dark:#0f4f98;--success:#067647;--error:#b42318;--warning:#b54708;--soft:#edf4ff;--shadow:0 18px 45px rgba(16,24,40,.08);--radius-xl:24px}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:linear-gradient(180deg,#f8fbff 0%,#eef3f8 100%);color:var(--text)}a{color:inherit}.page{max-width:1200px;margin:0 auto;padding:28px}.wrap{max-width:1600px;margin:0 auto;padding:24px}.hero,.panel,.card{background:var(--card);border-radius:var(--radius-xl);box-shadow:var(--shadow);border:1px solid var(--line-soft)}.hero{padding:28px;margin-bottom:20px}.panel{padding:24px;margin-bottom:20px}.tag,.title-tag{display:inline-block;padding:8px 12px;border-radius:999px;background:#e7f0fb;color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}h1{margin:0 0 8px;font-size:40px}.sub,.muted{color:var(--muted);line-height:1.7}.toolbar,.topbar,.top-actions,.action-row{display:flex;gap:12px;flex-wrap:wrap}.toolbar,.topbar{justify-content:space-between;align-items:center;margin-bottom:18px}.btn{border:0;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background:var(--primary);color:#fff}.btn-light{background:#eef2f7;color:#344054}.upload-box{border:2px dashed #c6d4e2;background:#fbfdff;border-radius:20px;padding:26px;text-align:center}.upload-box h2{margin:0 0 8px;font-size:28px}input[type=file]{display:block;margin:0 auto 14px;max-width:100%}.msg{margin:16px 0;padding:14px 16px;border-radius:14px;font-size:14px}.msg.success{background:#ecfdf3;border:1px solid #abefc6;color:var(--success)}.msg.error{background:#fef3f2;border:1px solid #fecdca;color:var(--error)}.table-wrap,.table-shell{overflow:auto;margin-top:16px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:top}th{background:#fafbfd;color:#344054}select{width:100%;padding:10px 12px;border:1px solid #d0d5dd;border-radius:10px;background:#fff}.pill,.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;text-transform:capitalize}.pill.ok,.status-completed{background:#ecfdf3;color:#067647}.pill.warn,.status-processing{background:#fffaeb;color:#b54708}.status-failed{background:#fef3f2;color:#b42318}.status-uploaded{background:#eef4ff;color:#175cd3}.info-grid,.cards{display:grid;gap:14px}.info-grid{grid-template-columns:repeat(3,1fr);margin-top:20px}.cards{grid-template-columns:repeat(4,1fr);margin-bottom:20px}.info-card,.card{border:1px solid #e4e7ec;border-radius:16px;padding:16px;background:#fcfcfd}.card-value{font-size:30px;font-weight:800;margin-bottom:4px}.card-label,.card-hint,#autoRefreshStatus{color:var(--muted);font-size:13px}.dataTables_wrapper .dataTables_filter input,.dataTables_wrapper .dataTables_length select{border:1px solid #d0d5dd;border-radius:10px;padding:8px 10px;background:#fff}@media (max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.info-grid{grid-template-columns:1fr}}@media (max-width:768px){.page,.wrap{padding:16px}h1{font-size:32px}.toolbar,.topbar{align-items:stretch;flex-direction:column}.cards{grid-template-columns:1fr}}
