.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:10px;box-shadow:0 15px 35px #0000001a;max-width:400px;padding:40px;width:100%}.login-title{color:#333;font-size:28px;font-weight:700;margin-bottom:30px;text-align:center}.login-form{display:flex;flex-direction:column}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:5px}.form-group input{border:2px solid #ddd;border-radius:5px;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.login-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px;transition:transform .2s;width:100%}.login-btn:hover:not(:disabled){transform:translateY(-2px)}.login-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.message{border-radius:5px;font-size:14px;margin-top:15px;padding:10px}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.login-hint{background:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;margin-top:20px;padding:10px;text-align:center}.login-hint p{color:#6c757d;font-size:14px;margin:0}.upload-container{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh}.upload-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 20px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:20px}.upload-header h1{font-size:28px;font-weight:600;margin:0}.user-info{align-items:center;display:flex;gap:15px}.logout-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:25px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .3s ease}.logout-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.upload-main{margin:0 auto;max-width:1200px;padding:40px 20px}.upload-section{background:#fff;border:1px solid #fff3;border-radius:20px;box-shadow:0 10px 30px #0000001a;margin-bottom:40px;padding:40px}.upload-section h2{color:#333;font-size:24px;font-weight:600;margin-bottom:30px;text-align:center}.upload-mode-toggle{display:flex;justify-content:center;margin-bottom:30px}.mode-toggle-btn{background:#fff;border:2px solid #667eea;color:#667eea;cursor:pointer;font-weight:500;padding:12px 24px;transition:all .3s ease}.mode-toggle-btn:first-child{border-radius:25px 0 0 25px}.mode-toggle-btn:last-child{border-left:none;border-radius:0 25px 25px 0}.mode-toggle-btn.active{background:#667eea;color:#fff}.mode-toggle-btn:hover:not(.active){background:#f8f9ff}.upload-area{gap:20px;margin-bottom:30px}.drop-zone,.upload-area{align-items:center;display:flex;flex-direction:column}.drop-zone{background:linear-gradient(135deg,#f8f9ff,#f0f2ff);border:3px dashed #667eea;border-radius:15px;cursor:pointer;justify-content:center;min-height:200px;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.drop-zone:hover{background:linear-gradient(135deg,#f0f2ff,#e6e9ff);border-color:#5a67d8;transform:translateY(-2px)}.drop-zone.drag-over{background:linear-gradient(135deg,#e6e9ff,#ddd6fe);border-color:#4c51bf;transform:scale(1.02)}.drop-zone-content{padding:20px;text-align:center}.drop-zone-icon{color:#667eea;font-size:48px;margin-bottom:15px}.drop-zone-text{color:#4a5568;font-size:18px;font-weight:500;margin-bottom:10px}.drop-zone-subtext{color:#718096;font-size:14px}.file-input{display:none}.file-input-label{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;display:inline-block;font-size:16px;font-weight:500;padding:15px 30px;transition:all .3s ease}.file-input-label:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.selected-files-list{background:#fff;border:1px solid #e2e8f0;border-radius:10px;max-height:300px;overflow-y:auto;width:100%}.selected-file-item{align-items:center;border-bottom:1px solid #f7fafc;display:flex;justify-content:space-between;padding:15px;transition:background .2s ease}.selected-file-item:hover{background:#f8f9ff}.selected-file-item:last-child{border-bottom:none}.file-info{align-items:center;display:flex;flex:1 1;gap:15px}.file-preview{border:2px solid #e2e8f0;border-radius:8px;height:50px;object-fit:cover;width:50px}.file-details{flex:1 1}.file-name{color:#2d3748;font-weight:500;margin-bottom:4px}.file-size{color:#718096;font-size:12px}.file-status{border-radius:12px;font-size:12px;font-weight:500;padding:4px 8px}.file-status.pending{background:#fed7d7;color:#c53030}.file-status.uploading{background:#fef5e7;color:#dd6b20}.file-status.success{background:#c6f6d5;color:#38a169}.file-status.error{background:#fed7d7;color:#e53e3e}.remove-file-btn{align-items:center;background:#fed7d7;border:none;border-radius:50%;color:#c53030;cursor:pointer;display:flex;height:30px;justify-content:center;transition:all .2s ease;width:30px}.remove-file-btn:hover{background:#feb2b2;transform:scale(1.1)}.upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-weight:500;min-width:150px;padding:15px 40px;transition:all .3s ease}.upload-btn:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.upload-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.batch-upload-progress{margin:20px 0;width:100%}.progress-bar{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}.progress-text{color:#4a5568;font-size:14px;margin-top:10px;text-align:center}.preview-section{margin-top:30px;text-align:center}.preview-section h3{color:#333;font-weight:500;margin-bottom:15px}.preview-image{border:3px solid #fff;border-radius:15px;box-shadow:0 8px 25px #00000026;max-height:300px;max-width:300px}.gallery-section{background:#fff;border:1px solid #fff3;border-radius:20px;box-shadow:0 10px 30px #0000001a;padding:40px}.gallery-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.gallery-section h2{color:#333;font-size:24px;font-weight:600;margin:0}.gallery-controls{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.selection-mode-btn{background:#f7fafc;border:2px solid #e2e8f0;border-radius:20px;color:#4a5568;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .3s ease}.selection-mode-btn.active{background:#667eea;border-color:#667eea;color:#fff}.selection-mode-btn:hover:not(.active){background:#edf2f7;border-color:#cbd5e0}.select-all-btn{background:#48bb78;border:none;border-radius:20px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .3s ease}.select-all-btn:hover{background:#38a169;transform:translateY(-1px)}.batch-delete-btn{background:#f56565;border:none;border-radius:20px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .3s ease}.batch-delete-btn:hover:not(:disabled){background:#e53e3e;transform:translateY(-1px)}.batch-delete-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.selection-count{color:#4a5568;font-size:14px;font-weight:500}.loading,.no-images{color:#718096;font-size:18px;padding:60px;text-align:center}.thumbnail-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.thumbnail-item{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all .3s ease}.thumbnail-item:hover{box-shadow:0 12px 35px #00000026;transform:translateY(-8px)}.thumbnail-item.selected{border:3px solid #667eea;transform:translateY(-5px)}.thumbnail-checkbox{cursor:pointer;height:20px;left:10px;position:absolute;top:10px;width:20px;z-index:2}.thumbnail-wrapper{aspect-ratio:1/1;cursor:pointer;overflow:hidden;position:relative;width:100%}.thumbnail-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.thumbnail-wrapper:hover .thumbnail-image{transform:scale(1.1)}.thumbnail-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.thumbnail-wrapper:hover .thumbnail-overlay{opacity:1}.thumbnail-actions{display:flex;gap:10px}.action-btn{align-items:center;background:#ffffffe6;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:16px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.action-btn:hover{background:#fff;transform:scale(1.1)}.action-btn.view{color:#667eea}.action-btn.copy{color:#48bb78}.action-btn.delete{color:#f56565}.thumbnail-info{background:#fff;padding:15px}.thumbnail-name{color:#2d3748;font-size:14px;font-weight:500;margin-bottom:5px;word-break:break-all}.thumbnail-date{color:#718096;font-size:12px}.message{border-radius:10px;font-weight:500;margin-top:20px;padding:15px 20px;text-align:center}.message.success{background:#c6f6d5;border:1px solid #9ae6b4;color:#22543d}.message.error{background:#fed7d7;border:1px solid #feb2b2;color:#742a2a}@media (max-width:768px){.upload-main{padding:20px 15px}.gallery-section,.upload-section{padding:25px 20px}.thumbnail-grid{gap:15px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gallery-header{align-items:stretch;flex-direction:column}.gallery-controls{justify-content:center}.upload-mode-toggle{flex-direction:column}.mode-toggle-btn:first-child{border-radius:25px 25px 0 0}.mode-toggle-btn:last-child{border-left:2px solid #667eea;border-radius:0 0 25px 25px;border-top:none}}.modal-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:15px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:90vw;overflow:auto;position:relative}.modal-close{background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;height:40px;position:absolute;right:15px;top:15px;transition:background .2s ease;width:40px;z-index:1001}.modal-close:hover{background:#000000b3}.modal-image{border-radius:15px 15px 0 0;display:block;height:100vh;width:auto}.modal-info{padding:20px;text-align:center}.modal-info h3{color:#333;font-weight:500;margin:0 0 10px}.modal-info p{color:#666;font-size:14px;margin:0}@media (max-width:768px){.modal-content{margin:10px;max-height:calc(100vh - 20px);max-width:calc(100vw - 20px)}.drop-zone{min-height:150px}.drop-zone-text{font-size:16px}.drop-zone-subtext{font-size:12px}.selected-file-item{padding:10px}.file-preview{height:40px;width:40px}.file-info{gap:10px}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f5f5}.App{min-height:100vh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.6fbcd485.css.map*/