@font-face{font-family:Fira Sans;src:url(/fonts/FiraSans-Regular.woff2) format("woff2");font-weight:400;font-display:optional}@font-face{font-family:Fira Sans;src:url(/fonts/FiraSans-Bold.woff2) format("woff2");font-weight:700;font-display:optional}:root{--color-primary: #0f0f72;--color-secondary: #9f9fc7;--color-tertiary: #e7e7f1;--color-soft-background: #fafafd;--color-text: #131332;--text-secondary: #666666;--color-valid: #258552;--color-invalid: #d91e18;--color-warn: #f89406;--color-input-background: #fff;--color-input-border: #9f9fc7;--color-input-disabled: #f6f6f6;--background-color: #f6f6f7;--shadow: 0 4px 6px rgba(0, 0, 0, .05);--border-radius: 16px;--border-radius-btn: 12px;--border-radius-min: 8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Fira Sans,Arial,Helvetica,sans-serif;background:var(--background-color);color:var(--color-text);line-height:1.5;min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem}.card{background:#fff;border:1px solid var(--color-tertiary);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:2rem;width:100%;max-width:860px;transition:max-width .2s}.card.wide{max-width:1400px}.card-login{max-width:380px}.login-logo{display:block;margin:0 auto 1.25rem;max-width:180px;max-height:135px;width:auto;height:auto;object-fit:contain}h2{text-align:center;font-size:1.25rem;font-weight:700;margin-bottom:1.5rem;color:var(--color-text)}.app-header{display:flex;align-items:flex-start;justify-content:space-between}.field{display:block;margin-bottom:1.5rem}.field span{display:block;margin-bottom:.5rem;font-size:1rem;font-weight:700;color:var(--color-text)}.field input{display:block;width:100%;height:2.5rem;padding:.5rem;font-size:1.125rem;color:var(--color-text);background-color:var(--color-input-background);border:.07rem solid var(--color-input-border);border-radius:var(--border-radius-btn)}.field input:focus{outline:4px solid var(--color-warn)}.password-wrapper{position:relative}.password-wrapper input{padding-right:2.75rem}.toggle-password{position:absolute;top:50%;right:.4rem;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:auto;margin:0;padding:.35rem;background:none;border:none;color:var(--color-secondary);line-height:0;cursor:pointer;transition:color .2s}.toggle-password:hover,.toggle-password:focus-visible{background:none;color:var(--color-primary);outline:none}.toggle-password svg{display:block}.toggle-password .icon-eye-off,.toggle-password.is-visible .icon-eye{display:none}.toggle-password.is-visible .icon-eye-off{display:block}.upload-area{border:1.5px dashed var(--color-input-border);border-radius:var(--border-radius);padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:1.25rem}.upload-area:hover,.upload-area.drag-over{border-color:var(--color-primary);background:var(--color-tertiary)}.upload-area input[type=file]{display:none}.upload-icon{font-size:32px;color:var(--color-secondary);margin-bottom:.5rem}.upload-area p{font-size:14px;color:var(--text-secondary)}.upload-area .filename{font-size:14px;font-weight:700;color:var(--color-primary);margin-top:.5rem}button{width:100%;margin:1rem 0;padding:1rem;border:1px solid var(--color-primary);border-radius:var(--border-radius-btn);background-color:var(--color-primary);font-family:Fira Sans,Arial,Helvetica,sans-serif;font-size:1rem;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s}button:hover,button:active,button:focus{opacity:.9;outline:none}button:disabled{opacity:.3;cursor:not-allowed}.btn-logout{width:auto;margin:0;padding:.35rem .75rem;background-color:inherit;border:none;border-radius:var(--border-radius-btn);color:var(--color-primary);font-size:.875rem}.btn-logout:hover{background-color:var(--color-tertiary);opacity:1}.btn-download{display:inline-flex;align-items:center;gap:.4rem;width:auto;margin:0;padding:.4rem 1rem;background-color:inherit;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius-btn);font-size:.875rem;font-weight:700}.btn-download .icon-download{flex-shrink:0}.btn-download:hover{color:#fff;background-color:var(--color-primary);opacity:1}.status{margin-top:1rem;font-size:14px;color:var(--text-secondary);text-align:center;min-height:20px}.status.error{color:var(--color-invalid)}.status.success{color:var(--color-valid)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--color-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}.results-header{display:flex;align-items:center;justify-content:space-between;margin:1.75rem 0}.results-header h3{font-size:1rem;font-weight:700;color:var(--color-text)}.table-wrapper{overflow-x:auto;overflow-y:auto;max-height:65vh;border:.5px solid rgba(0,0,0,.1);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{position:sticky;top:0;z-index:1;background:#f5f4f0;padding:10px 14px;text-align:left;font-weight:500;color:#444;border-bottom:.5px solid rgba(0,0,0,.1);white-space:nowrap}tbody tr:hover{background:#fafaf8}tbody td{padding:9px 14px;border-bottom:.5px solid rgba(0,0,0,.07);color:#333;white-space:nowrap}tbody tr:last-child td{border-bottom:none}.badge-km{background:#e1f5ee;color:#0f6e56;font-weight:500;padding:2px 8px;border-radius:20px;font-size:12px}.badge-top5{background:#534ab7;color:#fff}.results-legend{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin:0 0 .75rem;font-size:12px;color:var(--text-secondary)}.results-legend .badge-top5{flex-shrink:0;width:1rem;height:1rem}#results{display:none}
