.app{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--color-dark) 0%,#2a2a2a 100%)}.container{position:relative;width:100%;max-width:800px;background:var(--color-white);border-radius:16px;box-shadow:0 20px 60px var(--color-shadow-dark),0 0 60px #c41e3a73,0 0 120px #fdb91340;overflow:hidden;animation:haloPulse 4s ease-in-out infinite}.container:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;z-index:-1;border-radius:19px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));filter:blur(16px);opacity:.65}@keyframes haloPulse{0%,to{box-shadow:0 20px 60px var(--color-shadow-dark),0 0 60px #c41e3a73,0 0 120px #fdb91340}50%{box-shadow:0 20px 60px var(--color-shadow-dark),0 0 80px #c41e3a99,0 0 150px #fdb91359}}.header{background:linear-gradient(135deg,var(--color-dark) 0%,#2a2a2a 100%);color:var(--color-white);padding:40px 30px;text-align:center}.logo{width:100px;height:100px;margin-bottom:20px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.header h1{font-size:32px;font-weight:700;margin-bottom:8px;color:var(--color-white)}.header p{font-size:16px;opacity:.9;color:var(--color-secondary)}.main{padding:50px 30px;min-height:400px;display:flex;align-items:center;justify-content:center}.upload-section{width:100%}.upload-area{display:block;border:2px dashed var(--color-primary);border-radius:12px;padding:40px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:var(--color-light-gray);position:relative;overflow:hidden}.upload-area:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.upload-area:hover:before{left:100%}.upload-area:hover{border-color:var(--color-secondary);background-color:#f0f0f0;transform:translateY(-4px)}.upload-area.active{border-color:var(--color-secondary);background:linear-gradient(135deg,#fdb9131a,#c41e3a1a);transform:scale(1.02)}.upload-icon{font-size:48px;margin-bottom:16px;animation:pulse 2s ease-in-out infinite}.upload-area h2{font-size:24px;color:var(--color-dark);margin-bottom:8px;font-weight:600}.upload-area p{font-size:14px;color:#666;margin:4px 0}.upload-area .text-secondary{color:var(--color-primary);font-weight:500}.loading-section{text-align:center;animation:fadeIn .4s ease-out}.spinner{width:60px;height:60px;border:4px solid var(--color-medium-gray);border-top-color:var(--color-primary);border-radius:50%;margin:0 auto 30px;animation:spin 1s linear infinite}.loading-section h2{font-size:24px;color:var(--color-dark);margin-bottom:8px;font-weight:600}.loading-section p{font-size:14px;color:#666}.success-section{text-align:center;animation:fadeIn .4s ease-out}.success-icon{width:80px;height:80px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;color:var(--color-white);margin:0 auto 24px;animation:slideInLeft .5s ease-out;box-shadow:0 8px 24px #c41e3a4d}.success-section h2{font-size:24px;color:var(--color-dark);margin-bottom:8px;font-weight:600}.success-section p{font-size:14px;color:#666;margin-bottom:30px}.error-section{text-align:center;animation:fadeIn .4s ease-out}.error-icon{width:80px;height:80px;background:linear-gradient(135deg,#ff6b6b,#ff8787);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:48px;color:var(--color-white);margin:0 auto 24px;animation:slideInLeft .5s ease-out;box-shadow:0 8px 24px #ff6b6b4d}.error-section h2{font-size:24px;color:var(--color-dark);margin-bottom:8px;font-weight:600}.error-section p{font-size:14px;color:#666;margin-bottom:30px}.button-group{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:slideInRight .5s ease-out}.btn{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;transition:all .3s ease;min-width:200px}.btn-primary{background:linear-gradient(135deg,var(--color-primary),#a01729);color:var(--color-white);box-shadow:0 4px 12px #c41e3a4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c41e3a66}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-light-gray);color:var(--color-primary);border:2px solid var(--color-primary);box-shadow:none}.btn-secondary:hover{background:var(--color-primary);color:var(--color-white);transform:translateY(-2px)}.btn-secondary:active{transform:translateY(0)}.footer{background:var(--color-light-gray);padding:20px;text-align:center;border-top:1px solid var(--color-medium-gray)}.footer p{font-size:12px;color:#999}@media (max-width: 600px){.container{border-radius:12px}.header{padding:30px 20px}.header h1{font-size:24px}.logo{width:80px;height:80px}.main{padding:30px 20px;min-height:350px}.upload-area{padding:30px 20px}.upload-icon{font-size:36px}.upload-area h2{font-size:18px}.upload-area p{font-size:12px}.success-icon,.error-icon{width:60px;height:60px;font-size:32px}.button-group{flex-direction:column}.btn{min-width:100%}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #c41e3a;--color-secondary: #fdb913;--color-dark: #1a1a1a;--color-white: #ffffff;--color-light-gray: #f5f5f5;--color-medium-gray: #e8e8e8;--color-shadow: rgba(0, 0, 0, .1);--color-shadow-dark: rgba(0, 0, 0, .2)}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:linear-gradient(135deg,var(--color-dark) 0%,#2a2a2a 100%);color:var(--color-dark);min-height:100vh}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}button{font-family:inherit;cursor:pointer;border:none;outline:none}input[type=file]{display:none}
