*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f5f7fa;color:#333;line-height:1.6}.App{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;text-align:center;box-shadow:0 2px 10px #0000001a}.app-header h1{font-size:2.5rem;margin-bottom:.5rem}.app-header p{font-size:1.1rem;opacity:.9}.app-main{flex:1;width:100%;max-width:100%;margin:0 auto;padding:2rem}.app-footer{background-color:#2c3e50;color:#fff;text-align:center;padding:1rem;margin-top:2rem}.upload-container{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 6px #0000001a}.upload-container h2{margin-bottom:1.5rem;color:#2c3e50;border-bottom:2px solid #3498db;padding-bottom:.5rem}.file-input-container{margin-bottom:1.5rem}.file-input{width:100%;padding:1rem;border:2px dashed #3498db;border-radius:8px;background-color:#f8f9fa;cursor:pointer;transition:all .3s ease}.file-input:hover{border-color:#2980b9;background-color:#e3f2fd}.file-hint{margin-top:.5rem;color:#666;font-size:.9rem}.selected-files{margin-bottom:1.5rem}.selected-files h3{margin-bottom:1rem;color:#2c3e50}.file-preview{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background-color:#deefff;border-radius:6px;margin-bottom:.5rem}.file-info{display:flex;flex-direction:column}.file-name{font-weight:500;color:#2c3e50}.file-size{font-size:.85rem;color:#666}.image-preview{width:60px;height:60px;object-fit:cover;border-radius:4px;border:2px solid #ddd}.upload-progress{margin-bottom:1.5rem}.progress-bar{width:100%;height:8px;background-color:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);transition:width .3s ease}.upload-button{background:linear-gradient(135deg,#3498db,#2ecc71);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;width:100%}.upload-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3498db4d}.upload-button:disabled{opacity:.6;cursor:not-allowed}.file-list-container{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a}.file-list-container h2{margin-bottom:1.5rem;color:#2c3e50;border-bottom:2px solid #e74c3c;padding-bottom:.5rem}.loading{text-align:center;padding:2rem;color:#666;font-size:1.1rem}.no-files{text-align:center;color:#666;font-style:italic;padding:2rem}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.file-card{border:1px solid #b4ffff;border-radius:12px;padding:1.3rem;background:#fbffff;transition:all .3s cubic-bezier(.25,.8,.25,1);box-shadow:0 2px 4px #0000000d;position:relative;overflow:hidden}.file-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px #0000001a;border-color:#3498db4d}.file-icon{font-size:1.75rem;color:#3498db;background:#3498db1a;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.file-header{display:flex;align-items:center;margin-bottom:1.25rem;gap:1rem}.file-name{display:inline-block;background-color:#e0f4ff;color:#0077b6;padding:6px 10px;border-radius:9px;font-weight:500;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;text-align:center;white-space:nowrap;flex:1;border:2px solid #b3e0f5}.file-details{margin-bottom:1.75rem;padding:0 .5rem}.file-detail{margin-bottom:.75rem;font-size:.9rem;color:#7f8c8d;display:flex;align-items:center}.file-detail strong{color:#34495e;margin-right:.5rem;min-width:80px;display:inline-block}.file-actions{display:flex;gap:.75rem;margin-top:1.5rem}.download-button,.delete-button{flex:1;padding:12px 16px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;border:none;outline:none;position:relative;overflow:hidden}.button-icon{flex-shrink:0}.download-button{background:linear-gradient(135deg,#62b4eb,#2e86de);color:#fff;box-shadow:0 2px 5px #3498db4d}.download-button:hover{background:linear-gradient(135deg,#53a6fa,#2980b9);transform:translateY(-1px);box-shadow:0 4px 8px #3498db66}.download-button:active{transform:translateY(0);box-shadow:0 2px 3px #3498db4d}.delete-button{background:linear-gradient(135deg,#eb6262,#de2e2e);color:#fff;box-shadow:0 2px 5px #db34344d}.delete-button:hover{background:linear-gradient(135deg,#fa5353,#b92929);transform:translateY(-1px);box-shadow:0 4px 8px #db343466}.delete-button:active{transform:translateY(0);box-shadow:0 2px 3px #0000000d}.download-button:after,.delete-button:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.download-button:hover:after,.delete-button:hover:after{animation:ripple .6s ease-out}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(20);opacity:0}}.file-card:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#3498db,#2ecc71);opacity:.7;border-radius:12px 12px 0 0;border:1px solid linear-gradient(90deg,#3498db,#2ecc71)}.file-preview2{width:100%;height:160px;margin-bottom:12px;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5;position:relative}.file-preview2 img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.file-preview2:hover img{transform:scale(1.02)}.file-preview2-fallback{display:none;width:100%;height:100%;align-items:center;justify-content:center;font-size:48px}.file-icon-container{width:100%;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:48px;background-color:#f5f5f5;border-radius:8px}@media (min-width: 1200px){.file-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 1024px){.file-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width: 768px){.app-main{padding:1rem}.upload-container,.file-list-container{padding:1.5rem}.file-grid{grid-template-columns:1fr}.file-actions{flex-direction:column}.app-header h1{font-size:2rem}}
