:root{--primary:#1976d2;--primary-light:#42a5f5;--primary-dark:#1565c0;--secondary:#9c27b0;--success:#2e7d32;--success-light:#4caf50;--warning:#ed6c02;--warning-light:#ff9800;--error:#d32f2f;--error-light:#f44336;--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#eeeeee;--gray-300:#e0e0e0;--gray-400:#bdbdbd;--gray-500:#9e9e9e;--gray-600:#757575;--gray-700:#616161;--gray-800:#424242;--gray-900:#212121;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--shadow-1:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);--shadow-2:0 3px 6px rgba(0,0,0,0.15),0 2px 4px rgba(0,0,0,0.12);--shadow-3:0 10px 20px rgba(0,0,0,0.15),0 3px 6px rgba(0,0,0,0.10);--shadow-4:0 15px 25px rgba(0,0,0,0.15),0 5px 10px rgba(0,0,0,0.05);--transition-fast:0.15s cubic-bezier(0.4,0.0,0.2,1);--transition:0.25s cubic-bezier(0.4,0.0,0.2,1);--transition-slow:0.3s cubic-bezier(0.4,0.0,0.2,1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius);cursor:pointer;font-weight:500;font-size:.875rem;text-transform:uppercase;letter-spacing:.02857em;min-height:36px;transition:var(--transition);position:relative;overflow:hidden;box-shadow:var(--shadow-1)}.btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:currentColor;opacity:0;transition:var(--transition-fast)}.btn:hover:before{opacity:.04}.btn:active:before{opacity:.12}.btn:focus{outline:none;box-shadow:var(--shadow-2),0 0 0 3px rgba(25,118,210,.12)}.btn-primary{background:var(--primary);color:white}.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-2);transform:translateY(-1px)}.btn-success{background:var(--success);color:white}.btn-success:hover{background:var(--success-light);box-shadow:var(--shadow-2);transform:translateY(-1px)}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300);box-shadow:none}.btn-secondary:hover{background:var(--gray-200);border-color:var(--gray-400);box-shadow:var(--shadow-1)}.btn.disabled,.btn:disabled{background:var(--gray-200)!important;color:var(--gray-400)!important;cursor:not-allowed;transform:none!important;box-shadow:none!important}.card{background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--space-6);border:1px solid var(--gray-200);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-2)}.form-group{margin-bottom:var(--space-6);position:relative}.form-label{display:block;margin-bottom:var(--space-2);font-weight:500;color:var(--gray-700);font-size:.875rem}.form-input{width:100%;padding:var(--space-4) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius);transition:var(--transition);font-size:1rem;background:white}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(25,118,210,.12)}.form-input:hover:not(:focus){border-color:var(--gray-400)}.form-group.error .form-input{border-color:var(--error)}.form-group.error .form-input:focus{box-shadow:0 0 0 2px rgba(211,47,47,.12)}.status-ok{color:var(--success)}.status-warning{color:var(--warning)}.status-error{color:var(--error)}.text-center{text-align:center}.text-gray{color:var(--gray)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.spinner{width:32px;height:32px;border-top:3px solid var(--gray-light);border:3px solid var(--gray-light);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@media (max-width:768px){.btn{padding:var(--space-1) var(--space-2);font-size:.9rem}.card{padding:var(--space-2)}}*{box-sizing:border-box}*,body{margin:0;padding:0}body{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;color:var(--gray-800);background:var(--gray-50)}.container{max-width:1200px;margin:0 auto;padding:var(--space-2)}.app-header{background:white;box-shadow:var(--shadow-2);border-bottom:1px solid var(--gray-200)}.header-main{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);max-width:1200px;margin:0 auto}.header-main h1{font-size:1.25rem;font-weight:500;color:var(--gray-800);margin:0}.user-info{gap:var(--space-2)}.step-indicator,.user-info{display:flex;align-items:center}.step-indicator{justify-content:space-between;padding:var(--space-2) var(--space-6);background:white;border-bottom:1px solid #e5e7eb;position:relative;max-width:1200px;margin:0 auto}.step-container{display:flex;justify-content:center;gap:var(--space-2);flex:1 1}.reset-button{margin-left:auto;flex-shrink:0}.step{padding:var(--space-1) var(--space-2);border-radius:var(--radius);font-size:.9rem;font-weight:500}.step.pending{background:var(--gray-light);color:var(--gray)}.step.active{background:var(--primary);color:white}.step.completed{background:var(--success);color:white}.main-content{padding:var(--space-4);min-height:calc(100vh - 120px)}.workflow-container{background:white;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.login-container{background:var(--gray-light)}.login-card{border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-4);max-width:400px}.login-header{margin-bottom:var(--space-3)}.upload-section{padding:var(--space-3)}.platform-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--space-2);gap:var(--space-2);margin-bottom:var(--space-3)}.platform-card{border:1px solid #e5e7eb;border-radius:var(--radius);padding:var(--space-2);background:white}.dropzone{border:1px solid var(--gray-300);background:var(--gray-50);min-height:120px}.dropzone:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:2px dashed transparent;border-radius:var(--radius-lg);transition:var(--transition)}.dropzone:hover{background:rgba(25,118,210,.04)}.dropzone:hover,.dropzone:hover:before{border-color:var(--primary-light)}.dropzone.drag-active:before{border-color:var(--primary);animation:pulse 1.5s infinite}.dropzone.has-file{border:1px solid var(--gray-200);background:white}.dropzone.has-file:before{display:none}.dropzone.has-file:hover{border-color:var(--gray-300);background:white}.dropzone.error{background:rgba(211,47,47,.04)}.dropzone.error:before{border-color:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.results-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--space-2);gap:var(--space-2);margin-bottom:var(--space-3)}.summary-card{padding:var(--space-3)}.summary-card.total{border-left:4px solid var(--gray)}.summary-card.ok{border-left:4px solid var(--success)}.summary-card.problems{border-left:4px solid var(--error)}.format-info-section{background:white;border-radius:8px;padding:var(--space-4);margin-bottom:var(--space-4);box-shadow:var(--shadow-1)}.format-info-section h3{font-size:1.125rem;font-weight:600;color:var(--gray-800);margin:0 0 var(--space-3) 0}.format-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.format-card{background:var(--gray-50);border-radius:6px;padding:var(--space-3);border-left:4px solid var(--gray-400);transition:all .2s ease}.format-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.format-platform{margin-bottom:var(--space-2)}.platform-badge{padding:4px 12px;border-radius:4px;font-size:.875rem;font-weight:500}.format-source{font-size:.9375rem;font-weight:600;color:var(--gray-800);margin-bottom:var(--space-1)}.format-confirmed,.format-description,.format-version{font-size:.875rem;color:var(--gray-600);margin-top:var(--space-1)}.format-description{font-style:italic;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--gray-200)}.table{width:100%;border-collapse:collapse}.table th{background:var(--gray-light);text-align:left;font-weight:600;border-bottom:2px solid #e5e7eb}.table td,.table th{padding:var(--space-2)}.table td{border-bottom:1px solid #e5e7eb}.table tr:hover{background:var(--gray-light)}.status-chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);text-transform:uppercase;letter-spacing:.5px;box-shadow:var(--shadow-1);transition:var(--transition)}.status-chip.ok{background:var(--success);color:white}.status-chip.missing{background:var(--error);color:white}.status-chip.mismatch{background:var(--warning);color:white}.status-chip.active{background:var(--primary);color:white}.status-chip.inactive{background:var(--gray-400);color:white}.alert{align-items:flex-start;padding:var(--space-4);border:none;box-shadow:var(--shadow-1);position:relative;overflow:hidden}.alert:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.alert.success{background:rgba(46,125,50,.08);color:var(--success)}.alert.success:before{background:var(--success)}.alert.error{background:rgba(211,47,47,.08);color:var(--error)}.alert.error:before{background:var(--error)}.alert.warning{background:rgba(237,108,2,.08);color:var(--warning)}.alert.warning:before{background:var(--warning)}.alert.info{background:rgba(25,118,210,.08);color:var(--primary)}.alert.info:before{background:var(--primary)}@media (max-width:768px){.header-main{flex-direction:column;gap:var(--space-2);text-align:center}.step-indicator{flex-wrap:wrap}.platform-grid{grid-template-columns:1fr}.main-content{padding:var(--space-2)}.container{padding:var(--space-1)}}.validation-step{max-width:800px;margin:0 auto;padding:var(--space-8);background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}.current-status-header{text-align:center;margin-bottom:var(--space-8);padding:var(--space-6);background:var(--success);color:white;border-radius:var(--radius);box-shadow:var(--shadow-2)}.current-status-header p{font-size:1.1rem;font-weight:500;margin:0}.processing-files{background:var(--gray-50);border-radius:var(--radius);padding:var(--space-6);margin-bottom:var(--space-8);border:1px solid var(--gray-200)}.processing-files h3{color:var(--gray-800);margin-bottom:var(--space-4);font-size:1.1rem;font-weight:600}.file-list{display:flex;flex-direction:column;gap:var(--space-3)}.file-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:white;border-radius:var(--radius);border:1px solid var(--gray-200);box-shadow:var(--shadow-1)}.file-type{font-weight:600;color:var(--gray-600);min-width:80px;font-size:.9rem}.file-name{color:var(--gray-800);font-weight:500}.progress-container{margin:var(--space-8) 0;text-align:center}.progress-bar{width:100%;height:8px;background:var(--gray-200);overflow:hidden;margin-bottom:var(--space-4)}.progress-bar,.progress-fill{border-radius:var(--radius-xl)}.progress-fill{height:100%;background:var(--success);transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-text{font-size:1.25rem;font-weight:600;color:var(--success)}.current-status{background:white;border-radius:var(--radius);padding:var(--space-6);border:1px solid var(--success);margin:var(--space-8) 0;box-shadow:var(--shadow-1)}.current-platform{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);font-size:1.1rem;color:var(--gray-800)}.current-platform strong{color:var(--success);font-weight:600}.time-estimate{display:flex;align-items:center;gap:var(--space-3);color:var(--gray-600);font-size:1rem}.loading-animation{justify-content:center;margin:var(--space-8) 0}.loading-animation,.step-dots{display:flex;align-items:center}.step-dots{gap:var(--space-4)}.step-dot{width:12px;height:12px;border-radius:50%;background:var(--gray-300);transition:var(--transition)}.step-dot.active,.step-dot.completed{background:var(--success)}.step-line{width:40px;height:2px;background:var(--gray-300)}.step-line.completed{background:var(--success)}.results-step{max-width:1200px;margin:0 auto;padding:var(--space-8);background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-2)}.results-summary,.summary-cards{margin-bottom:var(--space-8)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:var(--space-6);gap:var(--space-6)}.summary-card{background:white;border-radius:var(--radius);padding:var(--space-6) var(--space-4);text-align:center;border:1px solid var(--gray-200);box-shadow:var(--shadow-1);transition:var(--transition);position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gray-300);transition:var(--transition)}.summary-card.clickable{cursor:pointer}.summary-card.clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-3)}.summary-card.clickable.active{border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-3)}.summary-card.total:before{background:var(--gray-500)}.summary-card.total.active{border-color:var(--gray-500)}.summary-card.success:before{background:var(--success)}.summary-card.success.active{border-color:var(--success)}.summary-card.warning:before{background:var(--warning)}.summary-card.warning.active{border-color:var(--warning)}.summary-card.info:before{background:var(--primary)}.summary-card.info.active{border-color:var(--primary)}.summary-card.danger:before{background:var(--error)}.summary-card.danger.active{border-color:var(--error)}.card-value{font-size:2rem;font-weight:700;margin-bottom:var(--space-2);color:var(--gray-800);line-height:1}.card-label{font-size:.875rem;color:var(--gray-600);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-description{margin:var(--space-8) 0;padding:var(--space-6);background:rgba(25,118,210,.08);border:1px solid var(--primary);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow-1)}.status-description p{margin:0;color:var(--primary);font-weight:600;font-size:1.1rem}.results-controls{background:var(--gray-50);border-radius:var(--radius);padding:var(--space-6);margin-bottom:var(--space-8);border:1px solid var(--gray-200)}.platform-info{display:flex;gap:var(--space-6);align-items:center;flex-wrap:wrap}.info-label{font-weight:600;color:var(--gray-700);font-size:1rem}.platform-badges{display:flex;gap:var(--space-3);flex-wrap:wrap}.platform-badge{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-xl);color:white;letter-spacing:.5px;background:var(--gray-500);transition:var(--transition);box-shadow:var(--shadow-1)}.platform-badge.clickable{cursor:pointer}.platform-badge.clickable.active,.platform-badge.clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow-2)}.platform-badge.clickable.active{background:var(--success)}.platform-badge.no-platform{background:var(--gray-400)}.results-table-container{background:white;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-2);margin-bottom:var(--space-8);border:1px solid var(--gray-200)}.results-table{width:100%;border-collapse:collapse}.results-table th{background:var(--gray-800);color:white;padding:var(--space-4) var(--space-3);text-align:left;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.results-table td{padding:var(--space-3);border-bottom:1px solid var(--gray-200);vertical-align:middle}.result-row{transition:var(--transition)}.result-row:hover{background:var(--gray-50)}.result-row:nth-child(2n){background:rgba(249,250,251,.5)}.expand-btn,.result-row:nth-child(2n):hover{background:var(--gray-100)}.expand-btn{border:1px solid var(--gray-300);color:var(--gray-600);cursor:pointer;font-size:.875rem;padding:var(--space-2);border-radius:var(--radius);transition:var(--transition);font-weight:600;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.expand-btn:hover{background:var(--primary);color:white;border-color:var(--primary);transform:scale(1.05)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);color:white;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;box-shadow:var(--shadow-1)}.validation-status-badge.status-ok{color:#2e7d32!important}.validation-status-badge.status-error{color:#ffffff!important}.expanded-row{background:var(--gray-50)!important;border-left:4px solid var(--primary)}.data-sources-header{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.data-source-tab{padding:var(--space-1) var(--space-2);border-radius:var(--radius);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.25px;transition:var(--transition);border:1px solid transparent}.data-source-tab.active{box-shadow:var(--shadow-1)}.data-source-tab.disabled{opacity:.5;color:var(--gray-500);background:var(--gray-100);border-color:var(--gray-200)}.accommodation-tab.active{background:rgba(237,108,2,.1);color:var(--warning);border-color:var(--warning)}.platform-tab.active{background:rgba(46,125,50,.1);color:var(--success);border-color:var(--success)}.data-source-tab.mismatch{background:rgba(211,47,47,.1);color:var(--error);border-color:var(--error)}.data-value.mismatch{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-weight:600}.platform-value{background:rgba(46,125,50,.1);color:var(--success)}.accommodation-value,.platform-value{padding:var(--space-1) var(--space-2);border-radius:var(--radius);font-weight:600}.accommodation-value{background:rgba(211,47,47,.1);color:var(--error)}.separator{color:var(--gray-600);font-weight:700;font-size:1.1rem}.data-value.suspicious{color:var(--warning);font-weight:600;background:rgba(237,108,2,.1);padding:var(--space-1) var(--space-2);border-radius:var(--radius)}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-6);background:var(--gray-50);border-radius:var(--radius);margin-bottom:var(--space-8);border:1px solid var(--gray-200)}.page-btn{padding:var(--space-3) var(--space-6);background:var(--primary);color:white;border:none;border-radius:var(--radius-xl);cursor:pointer;font-size:1rem;font-weight:500;transition:var(--transition);box-shadow:var(--shadow-1)}.page-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-2)}.page-btn:disabled{background:var(--gray-400);cursor:not-allowed;transform:none;box-shadow:var(--shadow-1)}.page-info{color:var(--gray-700);font-weight:500;font-size:1rem}.no-results{text-align:center;padding:var(--space-8);color:var(--gray-500);font-size:1.1rem;font-weight:500;background:var(--gray-50);border-radius:var(--radius);margin:var(--space-8) 0}.action-buttons{display:flex;justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--gray-200)}.reset-btn{padding:var(--space-3) var(--space-6);background:var(--gray-500);color:white;border:none;border-radius:var(--radius);cursor:pointer;font-size:.9rem;font-weight:500;transition:var(--transition);box-shadow:var(--shadow-1);display:inline-flex;align-items:center;gap:var(--space-2)}.reset-btn:hover{background:var(--gray-600);transform:translateY(-1px);box-shadow:var(--shadow-2)}.upload-step-container{max-width:1200px;margin:0 auto;padding:var(--space-6);background:var(--gray-50);min-height:calc(100vh - 120px)}.section{margin-bottom:var(--space-6)}.accommodation-section{margin-bottom:var(--space-8)}.platform-section h3{color:var(--gray-800);font-size:1.25rem;font-weight:600;margin-bottom:var(--space-5);text-align:center}.platform-uploaders{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:var(--space-5);gap:var(--space-5);margin-bottom:var(--space-8)}.platform-uploader-item{position:relative}.validation-section{text-align:center;margin-top:var(--space-8)}.error-section{margin-bottom:var(--space-6);padding:var(--space-4);background:rgba(211,47,47,.1);border:1px solid var(--error);border-radius:var(--radius);box-shadow:var(--shadow-1)}.error-message{margin:var(--space-1) 0}.password-key-container{position:absolute;top:var(--space-3);right:var(--space-3);z-index:10}.password-key-icon{font-size:1.2rem;cursor:pointer;padding:var(--space-2);border-radius:50%;background:rgba(255,255,255,.95);display:inline-flex;align-items:center;justify-content:center;transition:var(--transition);box-shadow:var(--shadow-1);border:1px solid var(--gray-200);width:36px;height:36px}.password-key-icon:hover{background:white;transform:scale(1.1);box-shadow:var(--shadow-2);border-color:var(--primary)}.dropzone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;cursor:pointer;transition:var(--transition);background:white;position:relative;min-height:140px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1)}.dropzone:hover{border-color:var(--primary);background:rgba(25,118,210,.02);box-shadow:var(--shadow-2);transform:translateY(-1px)}.dropzone.drag-active{border-color:var(--primary);background:rgba(25,118,210,.08);box-shadow:var(--shadow-3);transform:translateY(-2px);border-style:solid}.dropzone.has-file{border:2px solid var(--success);background:rgba(46,125,50,.02);box-shadow:var(--shadow-2);transform:none}.dropzone.has-file:hover{border-color:var(--success);background:rgba(46,125,50,.04);transform:translateY(-1px);box-shadow:var(--shadow-3)}.dropzone.error{border-color:var(--error);background:rgba(211,47,47,.02);box-shadow:var(--shadow-2)}.dropzone.disabled{cursor:not-allowed;opacity:.6;transform:none!important;background:var(--gray-100);border-color:var(--gray-200)}.dropzone-header{text-align:center;margin-bottom:var(--space-4);z-index:1;position:relative}.dropzone-header h3{margin:0;color:var(--gray-800);font-size:1.125rem;font-weight:600;letter-spacing:-.025em}.dropzone-description{margin:var(--space-1) 0 0 0;color:var(--gray-600);font-size:.875rem;font-weight:500}.dropzone-content{flex:1 1;text-align:center;z-index:1;position:relative}.dropzone-content,.upload-area{display:flex;align-items:center;justify-content:center;width:100%}.upload-area{height:100%;flex-direction:column}.upload-prompt{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.upload-icon-large{font-size:3rem;opacity:.6;transition:var(--transition)}.dropzone:hover .upload-icon-large{opacity:.8;transform:scale(1.05)}.upload-prompt p{margin:0;color:var(--gray-600);font-size:1rem;font-weight:500;letter-spacing:-.025em}.drag-active-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.drag-active-content .upload-icon-large{font-size:3.5rem;opacity:1;animation:bounce .8s ease-in-out infinite alternate}.drag-active-content p{color:var(--primary)!important;font-weight:600;font-size:1.1rem}@keyframes bounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-8px) scale(1.05)}}.uploaded-file{justify-content:center;width:100%;height:100%;padding:var(--space-4)}.file-info,.uploaded-file{display:flex;align-items:center}.file-info{gap:var(--space-3);padding:var(--space-4) var(--space-5);background:rgba(46,125,50,.08);border-radius:var(--radius);border:1px solid var(--success);font-size:1rem;font-weight:500;color:var(--success);box-shadow:var(--shadow-1);min-width:200px}.file-name{flex:1 1;font-weight:600}.remove-button{background:none;border:none;color:var(--error);cursor:pointer;font-size:1.25rem;padding:var(--space-1);border-radius:50%;transition:var(--transition);line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.remove-button:hover{background-color:rgba(211,47,47,.1);color:var(--error);transform:scale(1.15)}.uploading{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.uploading p{margin:0;color:var(--primary);font-weight:600;font-size:1rem}.error-message{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:rgba(211,47,47,.08);border:1px solid var(--error);border-radius:var(--radius);color:var(--error);font-size:.875rem;font-weight:500;text-align:center}.password-input-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1}.password-input-content{position:relative;z-index:2;background:white;padding:var(--space-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-4);min-width:400px;max-width:480px;border:1px solid var(--gray-200)}.password-input-content h4{margin:0 0 var(--space-6) 0;color:var(--gray-800);font-size:1.25rem;font-weight:600;text-align:center}.password-error-message{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:rgba(211,47,47,.08);border:1px solid var(--error);border-radius:var(--radius);color:var(--error);font-size:.875rem;font-weight:500;text-align:center}.pending-file-info{margin-top:var(--space-2);padding:var(--space-2);background:rgba(255,255,255,.8);border-radius:var(--radius);color:var(--warning);font-size:.8rem}.password-input-content input{width:100%;padding:var(--space-4) var(--space-5);border:2px solid var(--gray-300);border-radius:var(--radius);font-size:1rem;margin-bottom:var(--space-6);transition:var(--transition);box-sizing:border-box}.password-input-content input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(25,118,210,.1)}.password-input-buttons{display:flex;gap:var(--space-3);justify-content:flex-end}.password-input-buttons button{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius);cursor:pointer;font-size:1rem;font-weight:500;transition:var(--transition);min-width:80px}.save-btn{background:var(--primary);color:white;box-shadow:var(--shadow-1)}.save-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-2)}.save-btn:disabled{background:var(--gray-400);cursor:not-allowed}.cancel-btn{background:var(--gray-100);color:var(--gray-600);border:1px solid var(--gray-300)}.cancel-btn:hover:not(:disabled){background:var(--gray-200);border-color:var(--gray-400)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gray-50);padding:var(--space-4)}.login-card{background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:var(--space-8);width:100%;max-width:420px;border:1px solid var(--gray-200)}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-header h1{color:var(--gray-800);font-size:1.5rem;font-weight:600;margin-bottom:var(--space-2)}.login-header p{color:var(--gray-600);font-size:1rem;margin:0}.login-card .form-group{margin-bottom:var(--space-6)}.login-card .form-group label{display:block;font-size:1rem;font-weight:600;color:var(--gray-700);margin-bottom:var(--space-3)}.login-card .form-group input{width:100%;padding:var(--space-4) var(--space-5);font-size:1rem;border:2px solid var(--gray-300);border-radius:var(--radius);transition:var(--transition);box-sizing:border-box}.login-card .form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(25,118,210,.1)}.login-card .form-group input:hover:not(:focus){border-color:var(--gray-400)}.login-button{width:100%;padding:var(--space-4) var(--space-6);font-size:1.125rem;font-weight:600;margin-top:var(--space-4);box-shadow:var(--shadow-2);background:var(--primary);color:white;border:none;border-radius:var(--radius);cursor:pointer;transition:var(--transition)}.login-button:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-3)}.login-button:disabled{background:var(--gray-400);cursor:not-allowed;transform:none;box-shadow:var(--shadow-1)}.error-alert{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:rgba(211,47,47,.08);border:1px solid var(--error);border-radius:var(--radius);color:var(--error);font-size:.875rem;font-weight:500}.login-footer{text-align:center;margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--gray-200)}.login-footer p{color:var(--gray-500);font-size:.875rem;margin:0}.validation-start-section{background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-2);padding:var(--space-8);margin-top:var(--space-8);text-align:center;border:1px solid var(--gray-200)}.start-button-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.validation-start-button{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-8);font-size:1.125rem;font-weight:600;border:none;border-radius:var(--radius);cursor:pointer;transition:var(--transition);background:var(--success);color:white;min-width:320px;box-shadow:var(--shadow-2);text-transform:none;letter-spacing:normal}.validation-start-button:hover:not(.disabled):not(.processing){background:var(--success);transform:translateY(-2px);box-shadow:var(--shadow-3)}.validation-start-button.disabled{background:var(--gray-400);cursor:not-allowed;opacity:.7;transform:none}.validation-start-button.processing{background:var(--warning);cursor:wait}.button-icon{font-size:1.25rem;line-height:1}.start-description{color:var(--gray-600);font-size:.95rem;margin:0;text-align:center}.section-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4);background:rgba(25,118,210,.04);border-radius:var(--radius);border-left:4px solid var(--primary)}.section-title{color:var(--gray-800);font-size:1.25rem;font-weight:600;margin:0}.play-icon{font-size:1.125rem}.platform-expedia .dropzone{border-color:#4f46e5}.platform-expedia .dropzone.drag-active,.platform-expedia .dropzone:hover{border-color:#4f46e5;background:rgba(79,70,229,.04)}.platform-ctrip .dropzone{border-color:#f97316}.platform-ctrip .dropzone.drag-active,.platform-ctrip .dropzone:hover{border-color:#f97316;background:rgba(249,115,22,.04)}.platform-naver .dropzone{border-color:#22c55e}.platform-naver .dropzone.drag-active,.platform-naver .dropzone:hover{border-color:#22c55e;background:rgba(34,197,94,.04)}@media (max-width:768px){.results-step,.validation-step{margin:var(--space-4);padding:var(--space-6)}.summary-cards{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.platform-info{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.platform-uploaders{grid-template-columns:1fr;gap:var(--space-4)}.upload-step-container{padding:var(--space-4)}.card-value{font-size:1.5rem}.file-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.file-type{min-width:auto}.dropzone{min-height:120px;padding:var(--space-6)}.upload-icon-large{font-size:2.5rem}.validation-start-button{min-width:280px;padding:var(--space-4) var(--space-6);font-size:1rem}.login-card{padding:var(--space-6);margin:var(--space-4)}}.btn-material{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 16px;border-radius:4px;border:none;font-weight:500;font-size:.875rem;cursor:pointer;transition:var(--transition);text-decoration:none;box-sizing:border-box;font-family:inherit}.btn-material.contained{background:var(--primary);color:white;box-shadow:var(--shadow-1)}.btn-material.contained:hover{background:var(--primary-dark);box-shadow:var(--shadow-2);transform:translateY(-1px)}.btn-material.outlined{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn-material.outlined:hover{background:rgba(25,118,210,.04);border-color:var(--primary-dark)}.btn-material.small{padding:6px 12px;font-size:.75rem}.btn-material:disabled{background:var(--gray-300);color:var(--gray-500);cursor:not-allowed;transform:none;box-shadow:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:none;background:transparent;cursor:pointer;transition:var(--transition);font-size:1rem}.icon-btn.small{width:32px;height:32px;font-size:.875rem}.icon-btn:hover{background:rgba(0,0,0,.04)}.icon-btn:active{background:rgba(0,0,0,.08)}.text-h6{font-size:1.25rem;line-height:1.6}.text-h5,.text-h6{font-weight:600;margin:0}.text-h5{font-size:1.5rem;line-height:1.334}.text-subtitle2{font-size:.875rem;font-weight:600;line-height:1.57;margin:0}.text-body1{font-size:1rem;line-height:1.5}.text-body1,.text-body2{font-weight:400;margin:0}.text-body2{font-size:.875rem;line-height:1.43}.text-caption{font-size:.75rem;font-weight:400;line-height:1.66;margin:0}.text-primary{color:var(--primary)}.text-secondary{color:var(--gray-600)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.font-bold{font-weight:700}.font-medium{font-weight:500}.admin-container{max-width:1200px;margin:0 auto;padding:var(--space-4)}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--space-4);gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background:white;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--gray-200);text-align:center;box-shadow:var(--shadow-1)}.stat-number{font-size:2rem;font-weight:700;color:var(--primary);margin-bottom:var(--space-1)}.stat-label{font-size:.875rem;color:var(--gray-600);font-weight:500}.tenant-table-container{background:white;border-radius:var(--radius-lg);border:1px solid var(--gray-200);overflow:hidden;box-shadow:var(--shadow-1)}.tenant-table{width:100%;border-collapse:collapse}.tenant-table td,.tenant-table th{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--gray-200)}.tenant-table th{background:var(--gray-50);font-weight:600;color:var(--gray-700)}.empty-state,.loading-state{padding:var(--space-8);text-align:center;color:var(--gray-600)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-4)}.loading-spinner{width:40px;height:40px;border-top:4px solid var(--gray-200);border:4px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.error-screen{justify-content:center;height:100vh;color:var(--error)}.alert,.error-screen{display:flex;align-items:center}.alert{padding:var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-4);justify-content:space-between}.alert.error{background:#fee;border:1px solid #fdd;color:#d32f2f}.alert.success{background:#f0fff4;border:1px solid #d4edda;color:#155724}.alert-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:inherit;opacity:.7}.alert-close:hover{opacity:1}.action-button{padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:none;font-weight:500;cursor:pointer;transition:var(--transition)}.action-button.primary{background:var(--primary);color:white}.action-button.secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.action-button.success{background:var(--success);color:white}.action-button.danger{background:var(--error);color:white}.action-button:hover{opacity:.9;transform:translateY(-1px)}.action-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.create-tenant-button{background:var(--primary);color:white;padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius);font-weight:500;cursor:pointer;transition:var(--transition)}.create-tenant-button:hover{background:var(--primary-dark,#3730a3);transform:translateY(-1px)}.tenant-id{font-family:monospace;background:var(--gray-100);padding:2px 6px;border-radius:var(--radius-sm);font-size:.75rem}.status-chip{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.status-chip.active{background:#d1fae5;color:#065f46}.status-chip.inactive{background:#fee2e2;color:#991b1b}.date-text{font-size:.875rem;color:var(--gray-600)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:white;border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-3)}.modal-header{padding:var(--space-4);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.modal-title{margin:0;font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--gray-500);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}.modal-close:hover{background:var(--gray-100)}.modal-actions{display:flex;gap:var(--space-2);justify-content:flex-end;padding:var(--space-4);border-top:1px solid var(--gray-200)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-1);font-weight:500;color:var(--gray-700)}.form-group input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--gray-300);border-radius:var(--radius);font-size:1rem;transition:var(--transition);box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.1)}.form-group.error input{border-color:var(--error)}.form-error{color:var(--error);font-size:.875rem;margin-top:var(--space-1)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.tenant-proxy-banner{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#7c2d12;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);border:1px solid #fb923c}.tenant-proxy-content{display:flex;align-items:center;gap:var(--space-3)}.tenant-proxy-back{color:#7c2d12;text-decoration:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius);background:rgba(124,45,18,.1);font-weight:500;transition:var(--transition);white-space:nowrap;border:1px solid rgba(124,45,18,.3)}.tenant-proxy-back:hover{background:rgba(124,45,18,.2)}.tenant-proxy-icon{font-size:1.5rem}.tenant-proxy-info{flex:1 1}.tenant-proxy-label{font-size:.95rem}.tenant-proxy-label strong{font-weight:600}.tenant-proxy-slug{opacity:.85;margin-left:.25rem}.mode-selector{margin-bottom:var(--space-4)}.mode-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.mode-tab{flex:1 1;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-300);border-radius:var(--radius-md);background:white;font-size:1rem;font-weight:500;cursor:pointer;transition:var(--transition)}.mode-tab:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light)}.mode-tab.active{border-color:var(--primary);background:var(--primary);color:white}.mode-tab:disabled{opacity:.5;cursor:not-allowed}.mode-description{font-size:.9rem;color:var(--gray-600);padding:var(--space-2);background:var(--gray-100);border-radius:var(--radius-sm)}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.history-header h3{margin:0;color:var(--gray-700)}.history-section h3{margin-bottom:var(--space-3);color:var(--gray-700)}.delete-all-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:transparent;border:1px solid var(--danger,#dc3545);border-radius:var(--radius-sm);color:var(--danger,#dc3545);font-size:.8rem;cursor:pointer;transition:var(--transition)}.delete-all-btn:hover{background:var(--danger,#dc3545);color:white}.delete-session-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid var(--gray-300);border-radius:50%;color:var(--gray-500);font-size:.75rem;cursor:pointer;transition:var(--transition);flex-shrink:0}.delete-session-btn:hover{background:var(--danger,#dc3545);border-color:var(--danger,#dc3545);color:white}.history-content{display:flex;align-items:center;gap:var(--space-3);flex:1 1;min-width:0}.history-list{display:flex;flex-direction:column;gap:var(--space-2)}.history-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:2px solid var(--gray-200);border-radius:var(--radius-md);background:white;cursor:pointer;transition:var(--transition)}.history-item:hover{border-color:var(--primary);background:var(--primary-light)}.history-item.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.1);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2)}.history-platform{flex-shrink:0}.session-item{flex-wrap:wrap}.history-platforms{display:flex;flex-wrap:wrap;gap:var(--space-1);flex-shrink:0}.history-files{font-size:.8rem;color:var(--gray-500);margin-top:2px}.platform-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.platform-badge.expedia{background:#003580;color:white}.platform-badge.ctrip{background:#2577E3;color:white}.platform-badge.naver{background:#03C75A;color:white}.history-details{flex:1 1;min-width:0}.history-filename{font-weight:500;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-date{font-size:.85rem;color:var(--gray-500)}.history-summary{display:flex;gap:var(--space-2);font-size:.9rem;font-weight:500}.history-summary .ok{color:var(--success)}.history-summary .problem{color:var(--error)}.no-history{color:var(--gray-500);font-style:italic;padding:var(--space-4);text-align:center}.revalidation-button{width:100%;padding:var(--space-4);border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#667eea,#764ba2);color:white;font-size:1.1rem;font-weight:600;cursor:pointer;transition:var(--transition)}.revalidation-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.revalidation-button:disabled{opacity:.5;cursor:not-allowed;transform:none}