*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2563eb;--color-primary-light: #3b82f6;--color-primary-dark: #1e40af;--color-accent: #fbbf24;--color-accent-light: #fcd34d;--color-accent-dark: #f59e0b;--color-accent-darker: #d97706;--color-white: #ffffff;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success: #10b981;--color-success-dark: #16a34a;--color-error: #ef4444;--color-warning: #f59e0b;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--color-gray-800);background-color:var(--color-gray-50);min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full);border:2px solid var(--color-gray-100)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary);color:var(--color-white)}html{scroll-behavior:smooth}.auth-loading-container{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:1.2rem;color:var(--color-primary)}.hidden-file-input{display:none}.btn-export-excel{background-color:var(--color-accent-dark);color:var(--color-white);padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:var(--transition-base)}.btn-export-excel:hover{background-color:var(--color-accent-darker);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-export-excel:active{transform:translateY(0)}.toast-notification{background:var(--color-white);color:var(--color-gray-800);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-lg)}.toast-success-icon{color:var(--color-primary)}.toast-error-icon{color:var(--color-error)}.profile-page{min-height:calc(100vh - 200px);padding:2rem;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.profile-container{max-width:900px;margin:0 auto}.profile-header{margin-bottom:2rem;text-align:center}.profile-header h1{font-size:2.5rem;color:#333;margin:0 0 .5rem}.profile-header p{color:#666;font-size:1.1rem;margin:0}.profile-card{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a;padding:3rem;margin-bottom:2rem}.profile-avatar-section{display:flex;justify-content:center;margin-bottom:2rem}.profile-avatar-large{width:120px;height:120px;border-radius:50%;border:4px solid #667eea;object-fit:cover;box-shadow:0 5px 15px #667eea4d}.profile-avatar-placeholder{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 5px 15px #667eea4d}.profile-info{display:flex;flex-direction:column;gap:1.5rem}.profile-info-item{display:flex;flex-direction:column;gap:.5rem}.profile-info-item label{font-weight:600;color:#666;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.profile-info-value{font-size:1.1rem;color:#333;padding:.75rem 1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.profile-id{font-family:Monaco,Courier New,monospace;font-size:.9rem;word-break:break-all}.profile-stats{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a;padding:2rem}.profile-stats h2{margin:0 0 .5rem;font-size:1.8rem;color:#333}.profile-stats-description{color:#666;margin:0 0 2rem;line-height:1.6}.profile-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:1.5rem;color:#fff;text-align:center;transition:transform .2s}.stat-card:hover{transform:translateY(-5px)}.stat-icon{width:48px;height:48px;margin:0 auto 1rem;opacity:.9}.stat-label{font-size:.9rem;opacity:.9;margin-bottom:.5rem}.stat-value{font-size:1.3rem;font-weight:700}.profile-loading,.profile-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.profile-error h2{color:#ef4444;margin:0}.profile-error p{color:#666;margin:0}@media(max-width:768px){.profile-page{padding:1rem}.profile-card{padding:2rem 1.5rem}.profile-header h1{font-size:2rem}.profile-info-value{font-size:.95rem;padding:.65rem .85rem}.profile-id{font-size:.8rem}.profile-stats-grid{grid-template-columns:1fr}}.app{min-height:100vh;display:flex;flex-direction:column;background-color:transparent;position:relative}.app-header{background-color:var(--color-white);border-bottom:1px solid var(--color-gray-200);padding:var(--spacing-lg) var(--spacing-xl);position:sticky;top:0;z-index:1000;box-shadow:var(--shadow-sm)}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl)}.brand{display:flex;align-items:center;gap:var(--spacing-md)}.logo{width:2.5rem;height:2.5rem;color:var(--color-primary)}.brand h1{font-size:var(--font-size-2xl);font-weight:700;margin:0;color:var(--color-primary);letter-spacing:-.02em}.nav,.app-nav{display:flex;gap:var(--spacing-sm);background-color:var(--color-gray-100);padding:var(--spacing-xs);border-radius:var(--radius-full)}.app-nav{background-color:var(--color-white);border-bottom:1px solid var(--color-gray-200);padding:var(--spacing-md) var(--spacing-xl);box-shadow:none;position:sticky;top:0;z-index:1000;overflow:visible;isolation:isolate}.nav-wrapper{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-sm);padding:0 1rem;width:100%}.nav-logo{display:flex;justify-content:flex-start;align-items:center;flex:0 0 auto;overflow:visible;padding:0;margin:0;z-index:1}.nav-logo img{height:50px;width:auto;object-fit:contain;cursor:pointer;transition:transform .2s ease;position:relative;z-index:1;margin:0;background-color:var(--color-white);padding:.25rem .5rem;border-radius:var(--radius-sm)}.nav-logo img:hover{transform:scale(1.05)}.nav-content{display:flex;gap:var(--spacing-xs);background-color:var(--color-gray-100);padding:.25rem;border-radius:var(--radius-full);justify-content:center;flex:0 1 auto;width:fit-content;margin:0 auto}.nav-user{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md);flex:0 0 auto;overflow:visible;padding:0;margin:0}.nav-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:none;border-radius:var(--radius-full);color:var(--color-gray-600);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.nav-btn:hover{background-color:var(--color-white);color:var(--color-primary)}.nav-btn.active{background-color:var(--color-primary);color:var(--color-white);box-shadow:var(--shadow-sm)}.nav-btn .icon{width:1.125rem;height:1.125rem}.user-profile-btn{background:var(--color-gray-100);border:1px solid var(--color-gray-200);border-radius:var(--radius-full);padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;transition:all .3s ease}.user-profile-btn:hover{background:var(--color-gray-200);border-color:var(--color-gray-300);transform:translateY(-1px)}.user-info-wrapper{display:flex;align-items:center;gap:var(--spacing-md)}.user-details{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.user-name{font-weight:600;font-size:.875rem;line-height:1.3;color:var(--color-gray-900)}.user-email{font-size:.75rem;line-height:1.2;color:var(--color-gray-600)}.user-avatar{width:36px;height:36px;border-radius:50%;border:2px solid var(--color-primary);object-fit:cover;box-shadow:var(--shadow-sm)}.logout-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-full);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-sm)}.logout-button:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.logout-icon{width:16px;height:16px;stroke-width:2.5}.login-btn{background:var(--color-primary);color:var(--color-white);padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-full);font-size:.875rem;min-width:120px;justify-content:center;margin-right:-0px}.login-btn:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.app-main{flex:1;width:100%;margin:0 auto;padding:0;position:relative;background:transparent}.app-footer{background-color:var(--color-white);border-top:1px solid var(--color-gray-200);padding:var(--spacing-xl);text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm);position:relative;z-index:10}.app-footer p{margin:var(--spacing-xs) 0}.version{color:var(--color-primary);font-weight:600}.footer-top{display:block}.footer-beta{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.footer-beta .warning-icon{color:var(--color-accent-dark);width:18px;height:18px}.footer-beta .beta-text{font-size:.95rem;color:var(--color-gray-700);text-align:center}.footer-beta .beta-link{color:var(--color-primary);text-decoration:underline}.footer-beta .beta-link.whatsapp{color:var(--color-success-dark)}.app-footer .version{text-align:center;margin-top:.25rem}.nav-logo img.clickable{cursor:pointer}.file-upload-container{background:var(--color-white);padding:var(--spacing-2xl);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:800px;margin:var(--spacing-2xl) var(--spacing-xl) 0;border:1px solid var(--color-gray-200)}.file-upload-container h2{margin-bottom:var(--spacing-xl);color:var(--color-gray-900);font-size:var(--font-size-2xl);font-weight:700;display:flex;align-items:center;gap:var(--spacing-md)}.upload-form{display:flex;flex-direction:column;gap:var(--spacing-xl)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-group label{font-weight:600;color:var(--color-gray-700);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.form-group input[type=text]{padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-gray-200);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:all var(--transition-base);background:var(--color-white);color:var(--color-gray-900)}.form-group input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.form-group input[type=text]:disabled{background:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}.drop-zone{border:2px dashed var(--color-gray-300);border-radius:var(--radius-lg);padding:var(--spacing-3xl) var(--spacing-xl);text-align:center;background-color:var(--color-gray-50);transition:all var(--transition-base);cursor:pointer}.drop-zone:hover{border-color:var(--color-primary);background-color:#2563eb05}.drop-zone.active{border-color:var(--color-primary);background-color:#2563eb0d;border-style:solid}.drop-zone.has-file{border-color:var(--color-success);background-color:#10b9810d;border-style:solid}.drop-zone-label{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.drop-zone .icon{width:4rem;height:4rem;stroke-width:1.5;transition:transform var(--transition-base)}.drop-zone:hover .icon{transform:translateY(-4px)}.drop-zone .icon.upload{color:var(--color-primary)}.drop-zone .icon.check{color:var(--color-success)}.drop-zone p{margin:0;color:var(--color-gray-600);font-size:var(--font-size-base)}.drop-zone .file-name{font-weight:600;color:var(--color-gray-900);font-size:var(--font-size-lg)}.drop-zone .file-size{color:var(--color-gray-500);font-size:var(--font-size-sm);background:var(--color-gray-100);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full)}.drop-zone .or{color:var(--color-gray-400);font-weight:600;text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.1em}.drop-zone .click-text{font-size:var(--font-size-sm);color:var(--color-gray-500)}.drop-zone .file-info{font-size:var(--font-size-xs);color:var(--color-gray-400);background:var(--color-gray-100);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-full)}.btn-browse{padding:var(--spacing-md) var(--spacing-xl);background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-browse:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-submit{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-2xl);background-color:var(--color-accent);color:var(--color-gray-900);border:none;border-radius:var(--radius-md);font-size:var(--font-size-lg);font-weight:700;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.btn-submit:hover:not(:disabled){background-color:var(--color-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled{background:var(--color-gray-300);color:var(--color-gray-500);cursor:not-allowed;transform:none;box-shadow:none}.btn-submit .icon{width:1.5rem;height:1.5rem}.data-table-container{background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid var(--color-gray-200);margin:var(--spacing-2xl) var(--spacing-xl) 0}.mobile-cards{display:none}.table-header{padding:var(--spacing-2xl);background-color:var(--color-primary);color:var(--color-white);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-xl);flex-wrap:wrap}.header-info h2{margin-bottom:var(--spacing-md);color:var(--color-white);font-size:var(--font-size-2xl);font-weight:700;display:flex;align-items:center;gap:var(--spacing-md)}.metadata{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--color-white);border:1px solid rgba(255,255,255,.3);font-weight:500}.badge .icon{width:1rem;height:1rem}.stats{display:flex;gap:var(--spacing-2xl);flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:var(--spacing-xs)}.stat-label{font-size:var(--font-size-xs);color:#fffc;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.stat-value{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-white)}.stat-value.success{color:var(--color-accent)}.stat-value.highlight{color:var(--color-accent-light)}.header-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.btn-export{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-sm)}.btn-export.primary{background-color:var(--color-accent);color:var(--color-gray-900);box-shadow:var(--shadow-md)}.btn-export.primary:hover:not(:disabled){background-color:var(--color-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-export.secondary{background:#fff3;color:var(--color-white);border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-export.secondary:hover{background:#ffffff4d}.btn-export:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-export .icon{width:1.125rem;height:1.125rem}.table-wrapper{overflow-x:auto;background:var(--color-white)}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table thead{background-color:var(--color-gray-50)}.data-table th{padding:var(--spacing-md) var(--spacing-md);text-align:left;font-weight:600;color:var(--color-gray-700);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--color-gray-200)}.data-table td{padding:var(--spacing-md) var(--spacing-md);border-bottom:1px solid var(--color-gray-100);color:var(--color-gray-600);font-size:var(--font-size-sm)}.data-table tbody tr{transition:all var(--transition-fast)}.data-table tbody tr:hover{background-color:var(--color-gray-50)}.data-table .seq{font-weight:700;color:var(--color-primary);width:80px}.data-table .package-code{font-family:Courier New,monospace;font-size:var(--font-size-xs);color:var(--color-gray-700);font-weight:600;width:180px;max-width:180px;white-space:pre-line;word-break:break-word;line-height:1.6;padding:var(--spacing-sm) var(--spacing-md)}.data-table .address{font-weight:500;color:var(--color-gray-900);max-width:400px}.data-table .coord{font-family:Courier New,monospace;font-size:var(--font-size-xs);color:var(--color-gray-500);background:var(--color-gray-50);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.history-container{background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--spacing-2xl);border:1px solid var(--color-gray-200);margin:var(--spacing-2xl) var(--spacing-xl) 0}.history-header{margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--color-gray-200)}.history-header h2{margin-bottom:var(--spacing-sm);color:var(--color-gray-900);font-size:var(--font-size-2xl);font-weight:700;display:flex;align-items:center;gap:var(--spacing-md)}.total-count{color:var(--color-gray-600);font-size:var(--font-size-base);font-weight:500}.history-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.history-item{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);transition:all var(--transition-base)}.history-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translate(4px)}.item-icon{flex-shrink:0;width:3rem;height:3rem;background-color:var(--color-primary);color:var(--color-white);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.item-icon svg{width:1.5rem;height:1.5rem}.item-info{flex:1;min-width:0}.item-info h3{margin-bottom:var(--spacing-xs);color:var(--color-gray-900);font-size:var(--font-size-lg);font-weight:600}.filename{color:var(--color-gray-600);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.item-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.meta-item{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-gray-500);font-size:var(--font-size-xs);font-weight:500}.meta-item .icon.small{width:1rem;height:1rem}.item-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.btn-action{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-sm)}.btn-action.primary{background-color:var(--color-primary);color:var(--color-white)}.btn-action.primary:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-action.danger{background:transparent;color:var(--color-error);border:1px solid var(--color-error)}.btn-action.danger:hover{background:var(--color-error);color:var(--color-white)}.btn-action .icon{width:1rem;height:1rem}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--spacing-lg);margin-top:var(--spacing-2xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-200)}.btn-page{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-white);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);color:var(--color-gray-700);font-size:var(--font-size-sm)}.btn-page:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-page:disabled{opacity:.4;cursor:not-allowed}.btn-page .icon{width:1rem;height:1rem}.page-info{font-weight:600;color:var(--color-gray-700);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-gray-100);border-radius:var(--radius-md)}.loading-state,.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-3xl) var(--spacing-xl);color:var(--color-gray-600);margin:var(--spacing-2xl) var(--spacing-xl) 0}.loading-overlay{position:absolute;inset:0;background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50}.spinner{width:2.5rem;height:2.5rem;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner.large{width:3rem;height:3rem;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-xl);text-align:center;color:var(--color-gray-500)}.empty-state .icon{width:4rem;height:4rem;margin-bottom:var(--spacing-lg);color:var(--color-gray-400)}.empty-state .icon.large{width:5rem;height:5rem}.empty-state h3{margin-bottom:var(--spacing-sm);color:var(--color-gray-700);font-size:var(--font-size-xl);font-weight:600}.empty-state p{color:var(--color-gray-500);font-size:var(--font-size-base)}@media(max-width:1024px){.nav-logo{padding-left:1rem;margin-left:.5rem}.nav-logo img{height:45px;padding:.25rem}.nav-user{padding-right:1rem;margin-right:.5rem}.user-profile-btn{padding:var(--spacing-xs) var(--spacing-sm)}.user-name{font-size:.8rem}.user-email{font-size:.7rem}.nav-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:.85rem}.nav-content{gap:var(--spacing-xs);padding:.2rem}}@media(max-width:900px){.desktop-nav{display:none!important}.mobile-menu-toggle{display:flex!important;flex-direction:column!important;align-items:center;justify-content:center;margin-left:auto;margin-right:var(--spacing-md)}.nav-wrapper{flex-wrap:nowrap;justify-content:space-between}}@media(max-width:768px){.app-nav{padding:var(--spacing-sm) var(--spacing-md)}.nav-wrapper{flex-wrap:nowrap;gap:var(--spacing-md);justify-content:space-between}.nav-logo{flex:0 0 auto;min-width:0;padding-left:0;margin-left:.5rem}.nav-logo img{height:40px;padding:.25rem;margin:0}.desktop-nav{display:none!important}.mobile-menu-toggle{display:flex!important;flex-direction:column!important;align-items:center;justify-content:center;margin-left:auto;margin-right:var(--spacing-md)}.app-header{padding:var(--spacing-md) var(--spacing-lg)}.header-content{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.brand h1{font-size:var(--font-size-xl)}.nav{width:100%;overflow-x:auto}.app-main{padding:var(--spacing-lg) var(--spacing-md)}.file-upload-container,.data-table-container,.history-container{padding:var(--spacing-lg)}.table-header{flex-direction:column;gap:var(--spacing-lg)}.btn-export{flex:1;justify-content:center}.history-container{padding:var(--spacing-md);margin:var(--spacing-lg) var(--spacing-md) 0}.history-header{margin-bottom:var(--spacing-lg)}.history-header h2{font-size:var(--font-size-xl)}.history-item{flex-direction:column;align-items:flex-start;padding:var(--spacing-md);gap:var(--spacing-md)}.item-icon{width:2.5rem;height:2.5rem}.item-icon svg{width:1.25rem;height:1.25rem}.item-info h3{font-size:var(--font-size-base);word-break:break-word}.item-meta{flex-direction:column;gap:var(--spacing-xs);align-items:flex-start}.meta-item{font-size:.7rem}.item-actions{width:100%;flex-direction:row;gap:var(--spacing-xs)}.btn-action{padding:var(--spacing-sm);min-width:40px;justify-content:center}.btn-action.primary{flex:1;max-width:none}.btn-action.primary span,.btn-action span{display:none}.btn-action .icon{width:1.125rem;height:1.125rem;margin:0}.pagination{flex-direction:row;gap:var(--spacing-sm);padding:var(--spacing-md) 0}.btn-page{padding:var(--spacing-sm) var(--spacing-md);font-size:.75rem}.btn-page span{display:none}.btn-page .icon{margin:0}.page-info{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.data-table th,.data-table td{padding:var(--spacing-sm)}.stats{gap:var(--spacing-lg)}.data-table-container{padding:var(--spacing-md);margin:var(--spacing-lg) var(--spacing-md) 0}.table-header{padding:var(--spacing-lg);flex-direction:column;gap:var(--spacing-lg)}.header-info h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-sm)}.metadata{flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.badge{font-size:.7rem;padding:var(--spacing-xs) var(--spacing-sm);justify-content:flex-start}.badge .icon{width:.875rem;height:.875rem}.stats{flex-direction:column;gap:var(--spacing-md);width:100%}.stat{flex-direction:row;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:#ffffff26;border-radius:var(--radius-md)}.stat-label{font-size:.75rem}.stat-value{font-size:var(--font-size-xl)}.header-actions{width:100%}.btn-export.primary{width:100%;justify-content:center}.table-wrapper{display:none}.data-table-container .mobile-cards{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.mobile-card{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm)}.mobile-card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary)}.mobile-card-seq{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--color-primary);color:var(--color-white);border-radius:var(--radius-md);font-weight:700;font-size:var(--font-size-base);flex-shrink:0}.mobile-card-codes{flex:1;min-width:0}.mobile-card-codes-label{font-size:.65rem;color:var(--color-gray-500);text-transform:uppercase;font-weight:600;letter-spacing:.05em;margin-bottom:.125rem}.mobile-card-codes-value{font-family:Courier New,monospace;font-size:.7rem;color:var(--color-gray-900);font-weight:600;line-height:1.4;word-break:break-all}.mobile-card-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.mobile-card-row{display:flex;flex-direction:column;gap:.125rem}.mobile-card-row.highlight{background:var(--color-gray-50);padding:var(--spacing-sm);border-radius:var(--radius-sm);border-left:3px solid var(--color-primary)}.mobile-card-label{font-size:.65rem;color:var(--color-gray-500);text-transform:uppercase;font-weight:600;letter-spacing:.05em}.mobile-card-value{font-size:.8rem;color:var(--color-gray-900);font-weight:500;line-height:1.4}}.home-container{width:100%;position:relative}.hero-section{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3xl);padding:var(--spacing-3xl);width:100%;margin:0 auto var(--spacing-3xl);position:relative;min-height:600px;overflow:hidden;border-radius:0}.video-background{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;overflow:hidden;pointer-events:none;border-radius:0}.hero-video{position:absolute;top:50%;left:50%;min-width:100%;min-height:100%;width:auto;height:auto;transform:translate(-50%,-50%);object-fit:cover;display:block}.video-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#fffffff2,#f9fafbeb,#fffffff2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.hero-content{flex:1;max-width:600px;position:relative;z-index:10}.hero-badge{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:#2563eb1a;border-radius:var(--radius-full);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xl)}.hero-badge .icon{width:1rem;height:1rem}.hero-title{font-size:var(--font-size-4xl);font-weight:800;line-height:1.2;color:var(--color-gray-900);margin-bottom:var(--spacing-lg)}.hero-title .highlight{color:var(--color-primary);position:relative}.hero-description{font-size:var(--font-size-lg);line-height:1.6;color:var(--color-gray-600);margin-bottom:var(--spacing-2xl)}.hero-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.btn-primary{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-2xl);background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-md);font-size:var(--font-size-lg);font-weight:700;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.btn-primary:hover{background-color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary .icon{width:1.25rem;height:1.25rem}.btn-secondary{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-2xl);background-color:var(--color-white);color:var(--color-gray-700);border:2px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-lg);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px)}.btn-secondary .icon{width:1.25rem;height:1.25rem}.hero-visual{display:flex;align-items:center;gap:var(--spacing-xl);position:relative;z-index:10}.visual-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl);background-color:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(229,231,235,.6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.visual-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.visual-card.card-1{animation:float 3s ease-in-out infinite}.visual-card.card-2{animation:float 3s ease-in-out infinite 1.5s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.visual-card .card-icon{width:3rem;height:3rem;color:var(--color-primary)}.visual-card span{font-weight:600;color:var(--color-gray-700)}.visual-arrow{width:2rem;height:2rem;color:var(--color-accent);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.features-section{padding:var(--spacing-3xl) var(--spacing-xl);max-width:1200px;margin:0 auto;position:relative}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-header h2{font-size:var(--font-size-3xl);font-weight:800;color:var(--color-gray-900);margin-bottom:var(--spacing-md)}.section-header p{font-size:var(--font-size-lg);color:var(--color-gray-600)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl)}.feature-card{position:relative;padding:var(--spacing-2xl);background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.feature-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-4px)}.feature-number{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:var(--color-accent);color:var(--color-gray-900);font-weight:800;font-size:var(--font-size-lg);border-radius:var(--radius-full)}.feature-icon{width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;background-color:#2563eb1a;border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg)}.feature-icon svg{width:2rem;height:2rem;color:var(--color-primary)}.feature-card h3{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-md)}.feature-card p{color:var(--color-gray-600);line-height:1.6}.benefits-section{padding:var(--spacing-3xl) var(--spacing-xl);background-color:var(--color-white);border-radius:var(--radius-2xl);margin:var(--spacing-3xl) var(--spacing-xl);position:relative;box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl)}.benefit-card{text-align:center;padding:var(--spacing-xl)}.benefit-icon{width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);border-radius:var(--radius-xl);margin:0 auto var(--spacing-lg)}.benefit-icon svg{width:2rem;height:2rem;color:var(--color-white)}.benefit-card h3{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-sm)}.benefit-card p{color:var(--color-gray-600);line-height:1.6;font-size:var(--font-size-sm)}.cta-section{padding:var(--spacing-3xl) var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-radius:var(--radius-2xl);margin:var(--spacing-3xl) var(--spacing-xl);position:relative}.cta-content{text-align:center;max-width:600px;margin:0 auto;padding:0 var(--spacing-xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:800;color:var(--color-white);margin-bottom:var(--spacing-md)}.cta-content p{font-size:var(--font-size-lg);color:#ffffffe6;margin-bottom:var(--spacing-2xl)}.btn-cta{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-2xl);background-color:var(--color-accent);color:var(--color-gray-900);border:none;border-radius:var(--radius-md);font-size:var(--font-size-lg);font-weight:700;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-lg)}.btn-cta:hover{background-color:var(--color-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-xl)}.btn-cta .icon{width:1.25rem;height:1.25rem}@media(max-width:768px){.hero-section{flex-direction:column;padding:var(--spacing-2xl) 0;text-align:center}.hero-content{max-width:100%}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{justify-content:center}.hero-visual{flex-direction:column}.visual-arrow{transform:rotate(90deg)}.features-grid,.benefits-grid{grid-template-columns:1fr}.cta-content h2{font-size:var(--font-size-2xl)}}.mobile-menu-toggle{display:none;flex-direction:column;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:8px;z-index:2000;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);min-width:40px;min-height:40px;flex-shrink:0;overflow:visible}.mobile-menu-toggle:hover .hamburger span{background-color:var(--color-primary-dark)}.mobile-menu-toggle:active{transform:scale(.95)}.hamburger{display:flex;flex-direction:column;gap:4px;width:22px;height:16px;position:relative;transition:all .3s ease}.hamburger span{display:block;width:100%;height:2.5px;background-color:var(--color-primary);border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu-overlay{display:flex;position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;animation:fadeIn .3s ease;justify-content:flex-end;align-items:stretch}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-menu{position:fixed;top:0;right:0;width:85%;max-width:400px;height:100vh;height:100dvh;background:var(--color-white);box-shadow:-8px 0 32px #00000040;display:flex;flex-direction:column;animation:slideIn .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;z-index:10000;position:relative}.mobile-menu::-webkit-scrollbar{width:6px}.mobile-menu::-webkit-scrollbar-track{background:var(--color-gray-100)}.mobile-menu::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:var(--radius-full)}.mobile-menu::-webkit-scrollbar-thumb:hover{background:var(--color-primary-dark)}.mobile-menu-close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;background:#fffffff2;border:2px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;z-index:10001;padding:0;box-shadow:0 2px 8px #00000026}.mobile-menu-close:hover{background:var(--color-error);border-color:var(--color-error);transform:rotate(90deg) scale(1.15);box-shadow:0 4px 12px #ef444466}.mobile-menu-close svg{width:20px;height:20px;color:var(--color-gray-700);transition:color .3s ease;stroke-width:2.5}.mobile-menu-close:hover svg{color:var(--color-white)}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-menu-user{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-3xl) var(--spacing-xl) var(--spacing-2xl);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-white);border-bottom:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden;flex-shrink:0}.mobile-menu-user:before{content:"";position:absolute;top:-50%;right:-20%;width:200px;height:200px;background:radial-gradient(circle,rgba(251,191,36,.15) 0%,transparent 70%);border-radius:50%;animation:float 6s ease-in-out infinite}.mobile-user-avatar{width:56px;height:56px;border-radius:50%;border:3px solid var(--color-white);object-fit:cover;box-shadow:0 4px 12px #0003;position:relative;z-index:1;transition:all .3s ease;flex-shrink:0}.mobile-user-avatar:hover{transform:scale(1.05);box-shadow:0 6px 16px #0000004d}.mobile-user-info{display:flex;flex-direction:column;gap:var(--spacing-xs);position:relative;z-index:1;flex:1;min-width:0;overflow:hidden}.mobile-user-name{font-weight:700;font-size:var(--font-size-base);color:var(--color-white);text-shadow:0 2px 4px rgba(0,0,0,.1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-user-email{font-size:var(--font-size-xs);color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu-items{flex:1;padding:var(--spacing-lg) 0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.mobile-menu-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);background:transparent;border:none;color:var(--color-gray-700);font-size:var(--font-size-base);font-weight:600;text-align:left;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);border-left:4px solid transparent;position:relative;overflow:hidden}.mobile-menu-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--color-primary),var(--color-accent));transform:scaleY(0);transition:transform .3s ease}.mobile-menu-item:hover{background:linear-gradient(90deg,rgba(37,99,235,.08) 0%,transparent 100%);color:var(--color-primary);padding-left:calc(var(--spacing-xl) + 4px)}.mobile-menu-item:hover .icon{transform:scale(1.15) translate(2px)}.mobile-menu-item.active{background:linear-gradient(90deg,#2563eb26,#2563eb0d);color:var(--color-primary);font-weight:700}.mobile-menu-item.active:before{transform:scaleY(1)}.mobile-menu-item.active .icon{filter:drop-shadow(0 2px 4px rgba(37,99,235,.3))}.mobile-menu-item .icon{width:1.5rem;height:1.5rem;flex-shrink:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.mobile-menu-actions{padding:var(--spacing-lg);padding-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-gray-200);background:var(--color-gray-50);flex-shrink:0}.mobile-logout-btn,.mobile-login-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-height:48px}.mobile-logout-btn:before,.mobile-login-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity .3s ease}.mobile-logout-btn:hover:before,.mobile-login-btn:hover:not(:disabled):before{opacity:1}.mobile-logout-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:var(--color-white);box-shadow:0 4px 12px #ef44444d}.mobile-logout-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.mobile-logout-btn:active{transform:translateY(0)}.mobile-logout-btn .icon{transition:transform .3s ease}.mobile-logout-btn:hover .icon{transform:rotate(10deg) scale(1.1)}.mobile-login-btn{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-white);box-shadow:0 4px 12px #2563eb4d}.mobile-login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.mobile-login-btn:active:not(:disabled){transform:translateY(0)}.mobile-login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;filter:grayscale(.5)}.mobile-logout-btn .icon,.mobile-login-btn .icon{width:1.25rem;height:1.25rem;transition:transform .3s ease}.mobile-login-btn:hover:not(:disabled) .icon{transform:translate(3px)}.desktop-nav{display:flex}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
