:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.admin-login-bg{height:100vh;width:100vw;background:linear-gradient(135deg,#8cb2f9,#a6c1ee);display:flex;align-items:center;justify-content:center}.admin-login-container{background:#1c2f4d;padding:40px;border-radius:8px;width:350px;box-shadow:0 8px 18px #0006}.admin-title{color:#fff;text-align:center;margin-bottom:25px;font-weight:300;letter-spacing:1px}.input-group{position:relative;margin-bottom:20px}.input-group input{width:82%;padding:12px 40px 12px 15px;border:none;border-radius:5px;background-color:#2b4570;color:#fff;outline:none;font-size:14px}.input-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#dce1f3}.lost-password{color:#9ca7c2;font-size:12px;text-align:right;margin-bottom:20px;cursor:pointer}.login-btn{width:100%;padding:12px;background-color:#5c8df6;border:none;border-radius:5px;color:#fff;font-weight:700;cursor:pointer;transition:.3s}.login-btn:hover{background-color:#3d73e5}.error-msg{color:red;margin-top:15px;text-align:center}.excel-upload-app{min-height:100vh;padding:40px;background:linear-gradient(180deg,#f4f8ff,#eef4ff);color:#0f172a;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.dashboard-header{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;margin-bottom:30px}.subtitle{display:inline-flex;padding:8px 14px;border-radius:999px;background:#0e74e41f;color:#0f4f9c;font-size:12px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;margin-bottom:12px}.dashboard-header h1{margin:0;font-size:34px;line-height:1.1}.dashboard-description{max-width:620px;margin:0;color:#475569;font-size:16px}.header-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:10px 18px;font-weight:700;background:#0e74e41f;color:#0f4f9c}.badge.secondary{background:#0f172a14;color:#334155}.main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:24px;margin-bottom:28px}.panel-card,.saved-card,.empty-state{background:#fff;border-radius:24px;border:1px solid rgba(15,23,42,.08)}.panel-card{padding:28px;box-shadow:0 24px 60px #0f172a14}.panel-title{margin:0 0 18px;font-size:18px;font-weight:700;color:#0f172a}.type-selector,.place-selector,.action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.type-pill,.place-pill{border:1px solid rgba(15,23,42,.12);background:#f8fbff;color:#0f172a;border-radius:16px;padding:16px 18px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;font-weight:700;text-align:center}.type-pill:hover,.place-pill:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0f172a14}.type-pill.active,.place-pill.active{background:#0f4f9c;color:#fff;border-color:#0f4f9c}.upload-box{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;padding:22px;border-radius:20px;background:#eff6ff;border:1px solid rgba(15,23,42,.08)}.upload-label{font-size:16px;font-weight:700;color:#0f172a;margin-bottom:6px}.upload-hint{margin:0;color:#64748b;font-size:14px;max-width:360px}.upload-actions{display:flex;flex-wrap:wrap;gap:12px}.file-button{display:inline-flex;align-items:center;justify-content:center;min-width:170px;height:46px;border-radius:14px;background:#0f4f9c;color:#fff;font-weight:700;letter-spacing:.01em;cursor:pointer;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease}.file-button:hover{transform:translateY(-2px);box-shadow:0 16px 30px #0f4c9c2e}.file-button input{display:none}.success-banner{background:#16a34a1f;color:#115e1e;border:1px solid rgba(22,163,74,.18);border-radius:16px;padding:16px 20px;margin-top:18px;font-weight:600}.primary-btn,.secondary-btn{min-width:170px;height:48px;border-radius:16px;font-weight:700!important;text-transform:none!important}.primary-btn{background:#0f4f9c!important;color:#fff!important}.secondary-btn{background:#fff!important;color:#0f4f9c!important;border:1px solid rgba(15,23,42,.12)!important}.primary-btn:hover{background:#0a3c7a!important}.secondary-btn:hover{background:#eff6ff!important}.stats-card{padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 60px #0f172a14}.stat-block{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;border-radius:18px;background:#f8fbff}.stat-title{color:#64748b;font-size:14px}.stat-block strong{color:#0f172a;font-size:22px}.preview-section,.saved-section{margin-bottom:32px}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.section-header h2{font-size:22px;margin:0}.section-note{color:#64748b;font-size:14px}.cert-grid{display:flex;flex-direction:column;gap:28px;align-items:center}.cert-card{width:994px;max-width:100%;padding:24px;border-radius:28px;box-shadow:0 30px 80px #0f172a1f;transition:transform .18s ease,box-shadow .18s ease;background:#fff;position:relative;overflow:visible}.cert-card:hover{transform:translateY(-3px);box-shadow:0 32px 90px #0f172a29}.empty-state{min-height:160px;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;color:#475569;border:2px dashed rgba(15,23,42,.12)}.saved-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.saved-card{padding:22px;box-shadow:0 20px 40px #0f172a14}.saved-card h3{margin:0 0 12px;font-size:18px}.saved-card p{margin:8px 0;color:#475569;font-size:14px}.status-pill{display:inline-flex;border-radius:999px;padding:8px 14px;background:#e0f2fe;color:#0369a1;font-size:12px;font-weight:700}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#081e34c7;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1200;padding:24px}.spinner{width:70px;height:70px;border:8px solid rgba(255,255,255,.18);border-top-color:#38bdf8;border-radius:50%;animation:spin .9s linear infinite}.loading-overlay p{margin-top:18px;color:#fff;font-size:18px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.main-grid{grid-template-columns:1fr}}@media (max-width: 640px){.type-selector,.place-selector,.action-row{grid-template-columns:1fr}.upload-box{flex-direction:column;align-items:stretch}}
