*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{min-height:100vh}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:2rem 1rem;text-align:center}.app-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.app-header p{font-size:1.1rem;opacity:.9}.app-main{margin:0 auto;max-width:1200px;padding:2rem 1rem}.image-upload{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin-bottom:2rem;padding:2rem}.image-upload h2{color:#2c3e50;font-size:1.8rem;margin-bottom:1.5rem}.upload-container{display:flex;flex-direction:column;gap:1.5rem}.file-input{background:#fafafa;border:2px dashed #ddd;border-radius:8px;cursor:pointer;padding:.75rem;transition:border-color .3s ease}.file-input:hover{border-color:#667eea}.file-input:disabled{cursor:not-allowed;opacity:.6}.preview-container{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;padding:1rem;text-align:center}.preview-image{border-radius:6px;margin-bottom:1rem;max-height:200px;max-width:100%;object-fit:contain}.file-name{color:#495057;font-weight:600}.upload-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.clear-button,.upload-button{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.upload-button{background:#28a745;color:#fff}.upload-button:hover:not(:disabled){background:#218838;transform:translateY(-1px)}.upload-button:disabled{background:#6c757d;cursor:not-allowed}.clear-button{background:#dc3545;color:#fff}.clear-button:hover{background:#c82333;transform:translateY(-1px)}.progress-container{display:flex;flex-direction:column;gap:.5rem}.progress-bar{background:#e9ecef;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}.progress-text{color:#6c757d;font-size:.9rem;text-align:center}.gallery-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:2rem}.gallery-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.gallery-header h2{color:#2c3e50;font-size:1.8rem}.refresh-button,.retry-button{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background .3s ease}.refresh-button:hover:not(:disabled),.retry-button:hover{background:#5a6268}.refresh-button:disabled{cursor:not-allowed;opacity:.6}.empty-gallery{color:#6c757d;padding:3rem;text-align:center}.empty-gallery p{font-size:1.1rem;margin-bottom:.5rem}.image-count{color:#6c757d;font-style:italic;margin-bottom:1rem}.gallery-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1rem}.image-card{background:#f8f9fa;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.image-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.image-container{height:200px;overflow:hidden}.gallery-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.image-card:hover .gallery-image{transform:scale(1.05)}.image-info{padding:1rem}.filename{color:#2c3e50;font-weight:600;margin-bottom:.5rem;word-break:break-word}.upload-date{color:#6c757d;font-size:.9rem}.card-actions{border-top:1px solid #e9ecef;padding:1rem}.delete-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:background .3s ease;width:100%}.delete-button:hover:not(:disabled){background:#c82333}.delete-button:disabled{cursor:not-allowed;opacity:.6}.confirm-delete{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.confirm-delete span{color:#dc3545;font-weight:600;margin-right:.5rem}.cancel-button,.confirm-button{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.25rem .75rem}.confirm-button{background:#dc3545;color:#fff}.confirm-button:hover{background:#c82333}.cancel-button{background:#6c757d;color:#fff}.cancel-button:hover{background:#5a6268}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;margin:.5rem 0;padding:.75rem}.toast{animation:slideIn .3s ease;border-radius:8px;box-shadow:0 4px 12px #00000026;color:#fff;font-weight:600;padding:1rem 1.5rem;position:fixed;right:20px;top:20px;z-index:1000}.toast.success{background:#28a745}.toast.error{background:#dc3545}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.loading{color:#6c757d;font-size:1.1rem;padding:2rem;text-align:center}@media (max-width:768px){.app-header h1{font-size:2rem}.app-header p{font-size:1rem}.app-main{padding:1rem}.gallery-container,.image-upload{padding:1.5rem}.gallery-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.upload-controls{align-items:stretch;flex-direction:column}.clear-button,.upload-button{width:100%}.gallery-header{align-items:stretch;flex-direction:column;text-align:center}.refresh-button{align-self:center}}@media (max-width:480px){.gallery-grid{grid-template-columns:1fr}.gallery-header h2,.image-upload h2{font-size:1.5rem}.app-header{padding:1.5rem 1rem}.app-header h1{font-size:1.8rem}}.clear-button,.delete-button,.gallery-image,.image-card,.upload-button{transition:all .3s ease}button:focus,input:focus{outline:2px solid #667eea;outline-offset:2px}
/*# sourceMappingURL=main.b40d9d40.css.map*/