.upload-area{border:3px dashed rgba(255,255,255,.5);border-radius:15px;padding:40px 20px;margin:30px 0;cursor:pointer;transition:all .3s ease;background:rgba(255,255,255,.05)}.upload-area:hover{border-color:#fffc;background:rgba(255,255,255,.1)}.upload-area.dragover{border-color:#4caf50;background:rgba(76,175,80,.2)}.upload-icon{font-size:4em;margin-bottom:20px;opacity:.8}.upload-text{font-size:1.2em;margin-bottom:15px}.upload-subtext{font-size:.9em;opacity:.8}@media (max-width: 768px){.upload-area{padding:30px 15px}}.preview-container{margin-top:20px}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:15px;margin:20px 0}.preview-item{position:relative;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.1);aspect-ratio:1}.preview-image{width:100%;height:100%;object-fit:cover}.preview-remove{position:absolute;top:5px;right:5px;background:rgba(255,0,0,.8);color:#fff;border:none;border-radius:50%;width:25px;height:25px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.preview-remove:hover{background:rgba(255,0,0,1)}.preview-filename{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.7);color:#fff;padding:5px;font-size:10px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.upload-controls{margin-top:15px}@media (max-width: 768px){.preview-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}}.progress-container{margin-top:20px}.success-message{background:rgba(76,175,80,.2);border:1px solid rgba(76,175,80,.5);border-radius:10px;padding:20px;margin-bottom:20px;text-align:center}.success-message h3{margin-bottom:10px}.success-message p{margin-bottom:15px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.9em}.progress-stats{opacity:.8}.progress-bar{width:100%;height:10px;background:rgba(255,255,255,.2);border-radius:5px;overflow:hidden;margin:10px 0 20px}.progress-fill{height:100%;background:linear-gradient(45deg,#4CAF50,#8BC34A);transition:width .3s ease}.file-list{text-align:left;max-height:300px;overflow-y:auto}.file-item{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.9em}.file-item:last-child{border-bottom:none}.file-icon{margin-right:10px;min-width:20px}.file-name{flex:1;margin-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-status{font-size:.8em;opacity:.8;min-width:80px;text-align:right}.file-item.uploading .file-icon{animation:pulse 1.5s infinite}.file-item.complete{opacity:.8}.file-item.failed{color:#ff6b6b}.file-item.cancelled{color:#888;opacity:.7}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.progress-header{flex-direction:column;gap:5px;text-align:center}.file-item{font-size:.8em}.file-name{margin-right:5px}.file-status{min-width:60px;font-size:.7em}}.PhotoView-Portal{direction:ltr;height:100%;left:0;overflow:hidden;position:fixed;top:0;touch-action:none;width:100%;z-index:2000}@keyframes PhotoView__rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes PhotoView__delayIn{0%,50%{opacity:0}to{opacity:1}}.PhotoView__Spinner{animation:PhotoView__delayIn .4s linear both}.PhotoView__Spinner svg{animation:PhotoView__rotate .6s linear infinite}.PhotoView__Photo{cursor:grab;max-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.PhotoView__Photo:active{cursor:grabbing}.PhotoView__icon{display:inline-block;left:0;position:absolute;top:0;transform:translate(-50%,-50%)}.PhotoView__PhotoBox,.PhotoView__PhotoWrap{bottom:0;direction:ltr;left:0;position:absolute;right:0;top:0;touch-action:none;width:100%}.PhotoView__PhotoWrap{overflow:hidden;z-index:10}.PhotoView__PhotoBox{transform-origin:left top}@keyframes PhotoView__fade{0%{opacity:0}to{opacity:1}}.PhotoView-Slider__clean .PhotoView-Slider__ArrowLeft,.PhotoView-Slider__clean .PhotoView-Slider__ArrowRight,.PhotoView-Slider__clean .PhotoView-Slider__BannerWrap,.PhotoView-Slider__clean .PhotoView-Slider__Overlay,.PhotoView-Slider__willClose .PhotoView-Slider__BannerWrap:hover{opacity:0}.PhotoView-Slider__Backdrop{background:#000;height:100%;left:0;position:absolute;top:0;transition-property:background-color;width:100%;z-index:-1}.PhotoView-Slider__fadeIn{animation:PhotoView__fade linear both;opacity:0}.PhotoView-Slider__fadeOut{animation:PhotoView__fade linear reverse both;opacity:0}.PhotoView-Slider__BannerWrap{align-items:center;background-color:#00000080;color:#fff;display:flex;height:44px;justify-content:space-between;left:0;position:absolute;top:0;transition:opacity .2s ease-out;width:100%;z-index:20}.PhotoView-Slider__BannerWrap:hover{opacity:1}.PhotoView-Slider__Counter{font-size:14px;opacity:.75;padding:0 10px}.PhotoView-Slider__BannerRight{align-items:center;display:flex;height:100%}.PhotoView-Slider__toolbarIcon{fill:#fff;box-sizing:border-box;cursor:pointer;opacity:.75;padding:10px;transition:opacity .2s linear}.PhotoView-Slider__toolbarIcon:hover{opacity:1}.PhotoView-Slider__ArrowLeft,.PhotoView-Slider__ArrowRight{align-items:center;bottom:0;cursor:pointer;display:flex;height:100px;justify-content:center;margin:auto;opacity:.75;position:absolute;top:0;transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:70px;z-index:20}.PhotoView-Slider__ArrowLeft:hover,.PhotoView-Slider__ArrowRight:hover{opacity:1}.PhotoView-Slider__ArrowLeft svg,.PhotoView-Slider__ArrowRight svg{fill:#fff;background:rgba(0,0,0,.3);box-sizing:content-box;height:24px;padding:10px;width:24px}.PhotoView-Slider__ArrowLeft{left:0}.PhotoView-Slider__ArrowRight{right:0}.gallery-container{width:100%}.gallery-header{margin-bottom:15px;text-align:center}.gallery-header h2{margin:0 0 10px;font-size:1.4em}.gallery-loading,.gallery-error,.gallery-empty{text-align:center;padding:40px 20px}.gallery-controls{margin-bottom:15px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin:15px 0}.gallery-item{position:relative;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.1);aspect-ratio:1;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.gallery-item:hover{transform:scale(1.02);background:rgba(255,255,255,.2)}.gallery-item.selected{border-color:#667eea;background:rgba(102,126,234,.2)}.gallery-image{width:100%;height:100%;object-fit:cover;transition:opacity .2s ease}.gallery-item.selected .gallery-image{opacity:.8}.gallery-checkbox{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.7);border-radius:4px;padding:4px;display:flex;align-items:center;justify-content:center}.gallery-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea}.gallery-filename{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.7);color:#fff;padding:5px;font-size:10px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}@media (max-width: 768px){.gallery-header h2{font-size:1.2em}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.gallery-checkbox{top:5px;left:5px;padding:2px}.gallery-checkbox input[type=checkbox]{width:14px;height:14px}.gallery-filename{font-size:9px;padding:3px}}.btn.downloading{position:relative;color:#ffffffb3}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}@media (hover: none) and (pointer: coarse){.gallery-item:hover{transform:none}.gallery-item:active{transform:scale(.98)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;min-height:100vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}#root{min-height:100vh}.container{width:100%;margin:0 auto;padding:10px;min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.glass-container{background:rgba(255,255,255,.15);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:15px;padding:20px;text-align:center;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.2);width:100%;max-width:100%}.btn{background:linear-gradient(45deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 20px;border-radius:25px;font-size:1em;cursor:pointer;transition:all .3s ease;margin:5px;box-shadow:0 4px 15px #0003;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3)}.btn-secondary:hover{background:rgba(255,255,255,.3)}.btn-icon{font-size:1.1em;line-height:1}.button-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:15px 0;min-height:50px}@media (max-width: 768px){.container{padding:20px 5px 5px;align-items:flex-start}.glass-container{padding:15px;margin:0;border-radius:10px}.btn{padding:10px 16px;font-size:.9em;margin:3px}.button-row{gap:5px;margin:10px 0;min-height:45px}}
