*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}.app-loading{color:#6b7280;justify-content:center;align-items:center;min-height:100vh;font-size:1rem;display:flex}.login-container{background:radial-gradient(circle at 15% 22%,#38bdf873,#0000 30%),radial-gradient(circle at 86% 12%,#facc1542,#0000 26%),linear-gradient(165deg,#042f66 0%,#0c4ea3 44%,#0c6ea8 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.ocean-waves{inset-inline:-12%;filter:blur(.4px);background:radial-gradient(at top,#7dd3fc5c,#082f490f 64%),linear-gradient(#bae6fd52,#0369a138);border-radius:50%;height:280px;position:absolute;bottom:-130px}.ocean-bubbles{pointer-events:none;position:absolute;inset:0}.ocean-bubbles span{background:#e0f2fe40;border:1px solid #e0f2fecc;border-radius:50%;width:14px;height:14px;animation:10s ease-in-out infinite bubble-rise;position:absolute}.ocean-bubbles span:first-child{animation-duration:9s;animation-delay:0s;top:24%;left:9%}.ocean-bubbles span:nth-child(2){width:20px;height:20px;animation-duration:11s;animation-delay:.8s;top:48%;left:18%}.ocean-bubbles span:nth-child(3){width:18px;height:18px;animation-duration:10.5s;animation-delay:.4s;top:30%;right:12%}.ocean-bubbles span:nth-child(4){width:12px;height:12px;animation-duration:8.5s;animation-delay:1.1s;top:58%;right:20%}.login-card{z-index:1;text-align:center;background:#fffffff2;border:1px solid #93c5fdbf;border-radius:22px;width:100%;max-width:400px;padding:48px 40px;position:relative;box-shadow:0 24px 60px #02061757}.hero-fish-image{object-fit:contain;border:3px solid #fde68a;border-radius:16px;width:170px;max-width:100%;margin-bottom:18px;box-shadow:0 10px 24px #1e40af57}.login-logo{width:80px;height:80px;margin-bottom:16px}.login-title{color:#0b3d91;margin:0 0 8px;font-size:2rem;font-weight:800}.login-subtitle{color:#334155;margin:0 0 32px;font-size:.95rem}.login-error{color:#dc2626;text-align:left;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:20px;padding:12px 16px;font-size:.875rem}.login-btn{color:#1e3a8a;cursor:pointer;background:#fff;border:2px solid #bfdbfe;border-radius:8px;justify-content:center;align-items:center;gap:12px;width:100%;padding:12px 24px;font-size:1rem;font-weight:500;transition:background .2s,border-color .2s,box-shadow .2s;display:flex}.login-btn:hover:not(:disabled){background:#eff6ff;border-color:#60a5fa;box-shadow:0 6px 14px #1e40af2e}.login-btn:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0;width:20px;height:20px}@keyframes bubble-rise{0%{opacity:0;transform:translateY(22px)translate(0)}20%{opacity:.85}60%{opacity:.65;transform:translateY(-14px)translate(6px)}to{opacity:.1;transform:translateY(-44px)translate(-4px)}}.dashboard-container{background-color:#0000;background-image:linear-gradient(#021c44a3,#04285ac2),url(/dora-ocean-bg.png);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.dashboard-ocean-waves{inset-inline:-14%;opacity:.55;background:radial-gradient(at top,#7dd3fc5c,#082f4914 70%),linear-gradient(#bae6fd52,#0369a133);border-radius:50%;height:360px;position:absolute;bottom:-170px}.dashboard-ocean-bubbles{pointer-events:none;z-index:0;position:absolute;inset:0}.dashboard-ocean-bubbles span{background:#e0f2fe66;border:1px solid #e0f2fef2;border-radius:50%;animation:9.5s ease-in-out infinite dashboard-bubble-rise;position:absolute;box-shadow:0 0 10px #bae6fd73}.dashboard-ocean-bubbles span:first-child{width:14px;height:14px;animation-delay:0s;top:70%;left:7%}.dashboard-ocean-bubbles span:nth-child(2){width:22px;height:22px;animation-duration:13s;animation-delay:.9s;top:80%;left:16%}.dashboard-ocean-bubbles span:nth-child(3){width:16px;height:16px;animation-duration:11s;animation-delay:.5s;top:66%;right:11%}.dashboard-ocean-bubbles span:nth-child(4){width:12px;height:12px;animation-duration:10s;animation-delay:1.3s;top:84%;right:20%}.dashboard-ocean-bubbles span:nth-child(5){width:10px;height:10px;animation-duration:8.4s;animation-delay:.6s;top:90%;left:31%}.dashboard-ocean-bubbles span:nth-child(6){width:26px;height:26px;animation-duration:11.6s;animation-delay:1.8s;top:86%;left:72%}.dashboard-ocean-bubbles span:nth-child(7){width:15px;height:15px;animation-duration:9s;animation-delay:2.2s;top:92%;right:28%}.dashboard-ocean-bubbles span:nth-child(8){width:18px;height:18px;animation-duration:10.8s;animation-delay:.2s;top:88%;right:6%}.dashboard-header{z-index:1;background:#ffffffe6;border-bottom:1px solid #bfdbfe;justify-content:flex-end;align-items:center;gap:16px;padding:16px 32px;display:flex;position:relative;box-shadow:0 3px 12px #1e40af17}.dashboard-email{color:#6b7280;font-size:.875rem}.signout-btn,.send-email-btn,.upload-btn span{cursor:pointer}.signout-btn{color:#1e3a8a;background:#dbeafe;border:1px solid #93c5fd;border-radius:6px;padding:8px 16px;font-size:.875rem;transition:background .2s}.signout-btn:hover{background:#bfdbfe}.dashboard-main{z-index:1;flex-direction:column;flex:1;align-items:stretch;gap:24px;padding:32px 24px 48px;display:flex;position:relative}.upload-panel{background:#fff;border:1px solid #bfdbfe;border-radius:16px;width:min(1200px,100%);margin:0 auto;padding:24px;box-shadow:0 10px 28px #1e40af1a}.upload-header-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-title-wrap{align-items:center;gap:14px;display:flex}.dashboard-mascot-image{object-fit:contain;filter:drop-shadow(0 8px 16px #1e40af40);width:74px;height:74px}.page-title{color:#1d4ed8;margin:0;font-size:clamp(2rem,3vw,2.5rem)}.page-subtitle{color:#1e40af;margin:8px 0 0;font-size:1rem}.upload-btn{color:#1d4ed8;background:#dbeafe;border:1px solid #93c5fd;border-radius:10px;justify-content:center;align-items:center;padding:12px 18px;font-weight:600;transition:background .2s;display:inline-flex}.upload-btn:hover{background:#bfdbfe}.upload-btn input{display:none}.send-email-btn{color:#fff;background:#1d4ed8;border:none;border-radius:10px;padding:12px 20px;font-weight:600;transition:opacity .2s}.send-email-btn:disabled{opacity:.5;cursor:not-allowed}.file-name{color:#374151;margin-top:16px;font-size:.925rem}.fn-response{color:#374151;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;margin-top:16px;padding:10px 16px;font-size:.95rem}.fn-label{color:#15803d;font-weight:600}.fn-error{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-top:16px;padding:10px 16px;font-size:.875rem}.table-panel{box-sizing:border-box;background:#fff;border:1px solid #bfdbfe;border-radius:16px;align-self:center;width:min(1200px,100%);margin:0 auto;padding:16px;overflow-x:auto;box-shadow:0 10px 28px #1e40af14}.empty-state{color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;justify-content:center;align-items:center;min-height:180px;display:flex}.table-wrapper{box-sizing:border-box;width:100%;display:block;overflow-x:auto}.ignored-summary{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;margin-bottom:14px;padding:12px}.ignored-summary h3{color:#9a3412;margin:0 0 10px;font-size:.9rem}.ignored-summary-list{gap:8px;display:grid}.ignored-summary-item{color:#431407;justify-content:space-between;align-items:center;gap:10px;font-size:.82rem;display:flex}.table-panel table{border-collapse:collapse;table-layout:fixed;width:max-content;min-width:100%}.table-panel th,.table-panel td{text-align:left;vertical-align:top;word-wrap:break-word;overflow-wrap:break-word;border:1px solid #dfe7f1;padding:10px 8px}.table-panel th:nth-child(4),.table-panel td:nth-child(4){width:250px;min-width:250px;max-width:250px}.table-panel th{color:#1e3a8a;text-transform:uppercase;letter-spacing:.04em;background:#dbeafe;font-size:.75rem;font-weight:700}.table-panel td{color:#0f172a;background:#fff;font-size:.85rem}.cell-stacked div+div{color:#64748b;margin-top:4px;font-size:.75rem}.cell-salary{width:250px}.salary-section{color:#475569;grid-template-columns:auto 1fr auto;gap:4px;max-width:250px;padding:4px 0;font-size:.75rem;line-height:1.4;display:grid}.salary-section-label{color:#1e293b;text-transform:uppercase;letter-spacing:.02em;flex:1;font-size:.7rem;font-weight:600}.salary-section-value{color:#1e293b;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;margin-left:4px;font-size:.75rem;font-weight:600}.salary-section-group{border-left:3px solid #e2e8f0;margin:4px 0;padding-left:8px}.salary-section-title{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:2px;font-size:.7rem;font-weight:700}.salary-section--strong span:last-child{color:#1e293b;font-weight:600}.salary-net{border-top:2px solid #0f172a;margin-top:4px;padding-top:4px;color:#0f172a!important;font-size:.8rem!important;font-weight:700!important}.salary-net span{color:#0f172a;font-weight:700}@media (width<=700px){.dashboard-container{background-attachment:scroll}.dashboard-main{padding:20px 14px 40px}.upload-header-row{flex-direction:column;align-items:flex-start}.page-title-wrap{width:100%}.upload-panel,.table-panel{border-radius:12px}}.cell-email{white-space:normal;font-size:.8rem}.salary-cell{aspect-ratio:.707;width:250px;min-width:250px;max-width:250px;min-height:85vh;padding:8px 6px;overflow-y:auto}.email-loading{color:#9ca3af;font-style:italic}.email-found{color:#15803d}.email-missing{color:#dc2626;font-weight:600}.lookup-status{color:#6b7280;font-style:italic}.cell-jmbg{white-space:nowrap;color:#374151;font-family:monospace;font-size:.75rem}.cell-status{white-space:nowrap;vertical-align:middle;font-size:.75rem}.employee-name-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.ignore-toggle-btn{color:#92400e;cursor:pointer;background:#fffbeb;border:1px solid #f59e0b;border-radius:5px;padding:3px 8px;font-size:.72rem;transition:background .15s}.ignore-toggle-btn:hover:not(:disabled){background:#fef3c7}.ignore-toggle-btn:disabled{opacity:.45;cursor:not-allowed}.status-sending{color:#9ca3af;margin-bottom:4px;font-style:italic;display:block}.status-sent{color:#15803d;margin-bottom:4px;font-weight:600;display:block}.status-error{color:#dc2626;margin-bottom:4px;font-weight:600;display:block}.status-ignored{color:#b45309;margin-bottom:4px;font-weight:600;display:block}.resend-btn{cursor:pointer;color:#374151;background:#f8fafc;border:1px solid #cbd5e1;border-radius:5px;padding:4px 10px;font-size:.78rem;transition:background .15s}.resend-btn:hover:not(:disabled){background:#e2e8f0}.resend-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes dashboard-bubble-rise{0%{opacity:0;transform:translateY(22px)translate(0)scale(.85)}20%{opacity:.92}55%{opacity:.72;transform:translateY(-160px)translate(10px)scale(1)}to{opacity:.08;transform:translateY(-330px)translate(-10px)scale(1.08)}}
