*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#0a0a0a,#1a1a2e 50%,#16213e);color:#e0e0e0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (max-width:768px){.container{margin-top:60px}}.app{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:2rem 1rem}.container{max-width:600px;width:100%}.header{margin-bottom:3rem;position:relative;text-align:center}.header-content{justify-content:center;position:relative}.header-content,.user-info{align-items:center;display:flex}.user-info{color:#e2e8f0;font-size:.9rem;gap:1rem;position:absolute;right:0;top:0}.logout-button{background:#ef444433;border:1px solid #ef444466;border-radius:6px;color:#fca5a5;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .3s ease}.logout-button:hover{background:#ef44444d;border-color:#ef4444}.admin-buttons{align-items:center;display:flex;gap:.5rem}.admin-button{background:#6366f133;border:1px solid #6366f166;border-radius:6px;color:#a5b4fc;cursor:pointer;font-size:.8rem;padding:.4rem .8rem;transition:all .3s ease;white-space:nowrap}.admin-button:hover{background:#6366f14d;border-color:#6366f1;color:#c7d2fe}.loading-spinner{color:#e2e8f0;flex-direction:column;gap:1rem;padding:2rem}.spinner{border:2px solid #ffffff1a;border-left-color:#3b82f6;height:2rem;width:2rem}.login-button{background:#3b82f633;border:1px solid #3b82f666;border-radius:6px;color:#60a5fa;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .3s ease}.login-button:hover{background:#3b82f64d;border-color:#3b82f6}.title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#64ffda,#1de9b6 50%,#00bcd4);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:600;line-height:1.1;margin-bottom:.5rem}.title-link{display:inline-block;text-decoration:none;transition:transform .2s ease}.title-link:hover{transform:scale(1.05)}.subtitle{font-weight:300}.loading,.subtitle{color:#94a3b8;font-size:1.1rem}.loading{padding:2rem;text-align:center}.login-message{border-radius:8px;font-weight:500;margin-bottom:2rem;padding:1rem}.login-message.success{background:#22c55e1a;border:1px solid #22c55e4d;color:#86efac}.login-message.error{background:#ef44441a;border:1px solid #ef44444d;color:#fca5a5}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b66;border:1px solid #64ffda33;border-radius:16px;box-shadow:0 8px 32px #0000004d;padding:3rem 2rem;text-align:center}.login-card h2{color:#e2e8f0;font-size:1.5rem;margin-bottom:1rem}.login-card p{color:#94a3b8;line-height:1.6;margin-bottom:2rem}.google-login-button{align-items:center;background:#fff;border:none;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:.75rem;justify-content:center;margin:0 auto 1.5rem;padding:1rem 2rem;transition:all .3s ease}.google-login-button:hover:not(:disabled){box-shadow:0 4px 20px #fff3;transform:translateY(-1px)}.google-login-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.google-login-button.loading{cursor:wait;opacity:.8}.google-icon{height:20px;width:20px}.login-card .note{color:#64748b;font-size:.9rem;margin-bottom:0}.request-denied-state,.request-pending-state{padding:2rem 1rem;text-align:center}.request-denied-state h3,.request-denied-state h4,.request-pending-state h3,.request-pending-state h4{color:#e2e8f0;font-size:1.25rem;font-weight:600;margin:1rem 0}.auth-required .request-denied-state h4,.auth-required .request-pending-state h4{font-size:1.1rem;margin:.75rem 0}.request-denied-state p,.request-pending-state p{color:#94a3b8;line-height:1.6;margin-bottom:2rem}.pending-icon{animation:pulse 2s infinite}.denied-icon,.pending-icon{font-size:3rem;margin-bottom:1rem;opacity:.8}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.denied-actions,.pending-actions{display:flex;gap:1rem;justify-content:center}.try-again-button{background:#64ffda1a;border:1px solid #64ffda4d;border-radius:8px;color:#64ffda;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.try-again-button:hover{background:#64ffda33;border-color:#64ffda;transform:translateY(-1px)}.upload-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b66;border:1px solid #64ffda33;border-radius:16px;box-shadow:0 8px 32px #0000004d;padding:2rem}.upload-section{display:flex;flex-direction:column;gap:1.5rem}.file-input-wrapper{position:relative}.file-input{display:none}.file-input-label{align-items:center;background:#0f172a4d;border:2px dashed #64ffda4d;border-radius:12px;color:#e2e8f0;cursor:pointer;display:flex;font-weight:500;gap:.75rem;justify-content:center;padding:1.5rem;transition:all .3s ease}.file-input-label:hover{background:#0f172a80;border-color:#64ffda99;color:#64ffda}.upload-icon{height:24px;width:24px}.controls-row{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.retention-wrapper{align-items:center;display:flex;flex-direction:row;gap:.75rem;width:100%}.retention-wrapper .retention-select{flex:1 1}.retention-label{flex-shrink:0;font-size:.9rem;font-weight:500;white-space:nowrap}.email-input,.retention-select{background:#0f172a99;border:1px solid #64ffda33;border-radius:8px;color:#e2e8f0;font-size:.95rem;padding:.75rem 1rem;transition:all .3s ease}.email-input:focus,.retention-select:focus{border-color:#64ffda;box-shadow:0 0 0 3px #64ffda1a;outline:none}.email-input::placeholder{color:#64748b}.retention-select{cursor:pointer}.retention-select option{background:#1e293b;color:#e2e8f0}.upload-button{align-items:center;background:linear-gradient(135deg,#64ffda,#1de9b6);border:none;border-radius:8px;color:#0f172a;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:1rem 2rem;transition:all .3s ease}.upload-button:hover:not(:disabled){box-shadow:0 4px 20px #64ffda4d;transform:translateY(-1px)}.upload-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.spinner{animation:spin 1s linear infinite;border:2px solid #0f172a;border-radius:50%;border-top-color:#0000;height:18px;width:18px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.upload-progress-container{align-items:center;display:flex;gap:1rem;margin-top:1rem}.upload-progress-bar{background:#0f172a99;border:1px solid #64ffda33;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.upload-progress-fill{background:linear-gradient(135deg,#64ffda,#1de9b6);border-radius:4px;height:100%;position:relative;transition:width .3s ease}.upload-progress-fill:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.upload-progress-text{color:#64ffda;font-size:.9rem;font-weight:600;min-width:48px;text-align:center}.error-message{align-items:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;color:#fca5a5;display:flex;gap:.75rem;margin-top:1rem;padding:1rem}.error-icon{flex-shrink:0;height:20px;width:20px}.success-section{border-top:1px solid #64ffda33;margin-top:2rem;padding-top:2rem}.success-message{align-items:center;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:8px;color:#86efac;display:flex;font-weight:500;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.success-icon{flex-shrink:0;height:20px;width:20px}.file-info{background:#0f172a66;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.info-row{align-items:center;display:flex;justify-content:space-between;padding:.5rem 0}.info-row:not(:last-child){border-bottom:1px solid #64ffda1a}.info-label{color:#94a3b8;font-weight:500}.info-value{color:#e2e8f0;font-weight:400}.file-result{margin-bottom:1.5rem;padding-bottom:1.5rem}.file-result:not(:last-child){border-bottom:1px solid #64ffda1a}.error-result{background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;padding:1rem}.error-header{align-items:center;color:#fca5a5;display:flex;font-weight:500;gap:.75rem;margin-bottom:.5rem}.error-header .error-icon{flex-shrink:0;height:16px;width:16px}.error-result .error-message{color:#fca5a5;font-size:.9rem}.download-link-section{background:#0f172a66;border-radius:8px;padding:1rem}.download-label{color:#94a3b8;display:block;font-weight:500;margin-bottom:.5rem}.link-wrapper{display:flex;gap:.5rem}.download-link-input{background:#0f172a99;border:1px solid #64ffda33;border-radius:6px;color:#e2e8f0;flex:1 1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;padding:.75rem}.download-link-input:focus{border-color:#64ffda;outline:none}.copy-button{align-items:center;background:#64ffda1a;border:1px solid #64ffda4d;border-radius:6px;color:#64ffda;cursor:pointer;display:flex;height:48px;justify-content:center;padding:.75rem;transition:all .3s ease;width:48px}.copy-button:hover{background:#64ffda33;border-color:#64ffda}.copy-button svg{height:18px;width:18px}.files-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b66;border:1px solid #64ffda33;border-radius:16px;box-shadow:0 8px 32px #0000004d;margin-top:2rem;padding:2rem}.files-section h2{color:#e2e8f0;font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.no-files{color:#94a3b8;font-style:italic;padding:2rem;text-align:center}.files-list{display:flex;flex-direction:column;gap:1rem}.file-item{align-items:center;background:#0f172a66;border:1px solid #64ffda1a;border-radius:8px;display:flex;justify-content:space-between;padding:1rem;transition:all .3s ease}.file-item:hover{background:#0f172a99;border-color:#64ffda4d}.file-info{flex:1 1;min-width:0}.file-name{align-items:center;display:flex;flex-wrap:wrap;font-size:1rem;gap:.75rem;word-break:break-all}.file-visibility{border-radius:4px;font-size:.75rem;font-weight:600;padding:.25rem .5rem;white-space:nowrap}.file-visibility.private{background:#ef44441a;border:1px solid #ef44444d;color:#fca5a5}.file-visibility.public{background:#22c55e1a;border:1px solid #22c55e4d;color:#86efac}.file-details{color:#94a3b8;font-size:.85rem}.file-actions{margin-left:1rem}.download-button{align-items:center;background:#9333ea1a;border:1px solid #9333ea4d;color:#c4b5fd;display:flex;height:48px;justify-content:center;padding:.75rem;text-decoration:none;transition:all .3s ease;width:48px}.download-button:hover{background:#9333ea33;border-color:#9333ea}.download-button svg{height:18px;width:18px}.checkbox-wrapper{align-items:center;background:#0f172a99;border:1px solid #64ffda33;border-radius:8px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem 1rem;transition:all .3s ease}.checkbox-wrapper:hover{border-color:#64ffda}.checkbox-wrapper.disabled{background:#0f172a4d;border-color:#64ffda1a;cursor:not-allowed;opacity:.5}.checkbox-wrapper.disabled:hover{border-color:#64ffda1a}.checkbox-input{accent-color:#64ffda;cursor:pointer;height:16px;width:16px}.checkbox-input:disabled{cursor:not-allowed}.checkbox-label{color:#e2e8f0;cursor:pointer;font-size:.95rem}.checkbox-wrapper.disabled .checkbox-label{cursor:not-allowed}.play-button{align-items:center;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:6px;color:#86efac;cursor:pointer;display:flex;height:48px;justify-content:center;padding:.75rem;transition:all .3s ease;width:48px}.play-button:hover{background:#22c55e33;border-color:#22c55e}.play-button svg{height:18px;width:18px}.preview-container{margin:0 auto;max-width:800px;width:100%}.preview-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b66;border:1px solid #64ffda33;border-radius:16px;box-shadow:0 8px 32px #0000004d;padding:2rem}.preview-header h2{align-items:center;color:#e2e8f0;display:flex;flex-wrap:wrap;font-size:1.5rem;gap:.75rem;margin-bottom:.5rem;word-break:break-word}.privacy-badge{background:#f59e0b33;border:1px solid #f59e0b66;border-radius:4px;color:#fbbf24;font-size:.8rem;font-weight:400;padding:.25rem .5rem}.preview-details{color:#94a3b8;font-size:.9rem;gap:.5rem}.preview-actions,.preview-details{display:flex;flex-wrap:wrap;margin-bottom:1.5rem}.preview-actions{gap:.75rem}.preview-actions .copy-button,.preview-actions .download-button,.preview-actions .play-button{align-items:center;display:flex;flex:1 1;font-size:.9rem;gap:.5rem;justify-content:center;min-width:0;padding:.75rem 1rem;white-space:nowrap}.auth-required{background:#0f172a66;border:1px solid #64ffda1a;border-radius:8px;padding:2rem;text-align:center}.auth-required p{color:#94a3b8;margin-bottom:1.5rem}.media-player{background:#0f172a66;border:1px solid #64ffda1a;border-radius:8px;margin-top:1rem;padding:1rem}.image-container,.video-container{display:inline-block;max-width:100%;position:relative}.preview-image,.preview-video{border-radius:8px;cursor:pointer;display:block;height:auto;max-width:100%}.preview-image:hover{opacity:.9}.preview-video{max-height:70vh;width:100%}.preview-audio{height:54px;width:100%}.fullscreen-button{background:#000000b3;border:none;border-radius:6px;color:#e2e8f0;cursor:pointer;opacity:.8;padding:.5rem;position:absolute;right:.5rem;top:.5rem;transition:all .3s ease}.fullscreen-button:hover{background:#000000e6;opacity:1}.fullscreen-button svg{height:16px;width:16px}.audio-container{display:flex;justify-content:center;padding:1rem}.preview-image:fullscreen,.preview-video:fullscreen{background:#000;height:100vh;object-fit:contain;width:100vw}.file-item{align-items:stretch;flex-direction:column}.file-item .file-info-row{align-items:center;display:flex;justify-content:space-between}.file-item .media-player{margin-top:1rem}.media-error,.media-loading{align-items:center;border-radius:8px;display:flex;font-size:.9rem;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:2rem}.media-loading{background:#64ffda1a;border:1px solid #64ffda4d;color:#64ffda}.media-error{background:#ef44441a;border:1px solid #ef44444d;color:#fca5a5}.media-loading .spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#64ffda;height:16px;width:16px}.media-error svg{flex-shrink:0;height:18px;width:18px}.app.mobile{box-sizing:border-box;max-width:100vw;padding:.5rem;width:100%}.app.mobile .container{box-sizing:border-box;max-width:100%;overflow-x:hidden;padding:0;width:100%}.app.mobile-loading{background:linear-gradient(135deg,#0a0a0a,#1a1a2e 50%,#16213e);bottom:0;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:9999}.app.mobile-loading .loading{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;padding:2rem 1rem;text-align:center}.app.mobile .user-info{align-items:center;background:#0f172ae6;border:1px solid #64ffda33;border-radius:8px;box-sizing:border-box;flex-direction:row;font-size:.8rem;gap:.5rem;max-width:calc(100vw - 1rem);padding:.5rem;position:absolute;right:.5rem;top:.5rem;z-index:100}.app.mobile .user-info span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app.mobile .logout-button{font-size:.75rem;padding:.25rem .5rem;white-space:nowrap}.app.mobile .admin-buttons{flex-direction:column;gap:.25rem}.app.mobile .admin-button{font-size:.7rem;padding:.25rem .5rem}.app.mobile .header{margin-bottom:2rem;margin-top:3rem}.app.mobile .files-section{margin-top:2rem;padding:1rem}.app.mobile{-webkit-overflow-scrolling:touch;min-height:100vh;overflow-x:hidden;position:relative;touch-action:manipulation}.app.mobile .collection-item,.app.mobile .file-item{margin-bottom:1rem}.app.mobile .login-card{box-sizing:border-box;margin:1rem 0;padding:1.5rem;width:100%}.app.mobile .upload-card{margin:1rem 0;overflow:hidden;padding:1rem;width:100%}.app.mobile .upload-card,.app.mobile .upload-card *{box-sizing:border-box;max-width:100%}.app.mobile .controls-row{gap:.75rem;grid-template-columns:1fr}.app.mobile .retention-wrapper{align-items:flex-start;flex-direction:column;gap:.4rem}.app.mobile .retention-label{font-size:.85rem}.app.mobile .email-input,.app.mobile .retention-select{box-sizing:border-box;max-width:100%;width:100%}.app.mobile .file-input-label{flex-direction:column;font-size:.9rem;gap:.5rem;padding:1rem}.app.mobile .upload-button{justify-content:center;padding:.875rem 1rem;width:100%}.app.mobile .preview-container{margin:1rem 0;width:100%}.app.mobile .files-section,.app.mobile .preview-card{box-sizing:border-box;width:100%}.app.mobile *{box-sizing:border-box;max-width:100%}@media (max-width:640px){.app{padding:1rem}.title{font-size:2rem}.title-link:hover{transform:scale(1.02)}.header-content{justify-content:center;text-align:center}.user-info{flex-direction:column;gap:.5rem}.login-card{padding:2rem 1.5rem}.upload-card{padding:1.5rem}.controls-row{grid-template-columns:1fr}.link-wrapper{flex-direction:column}.copy-button{align-self:stretch}.file-info-row{align-items:stretch;flex-direction:column;gap:1rem}.file-actions{margin-left:0}.file-actions,.file-details,.preview-actions{justify-content:center}.preview-actions .copy-button,.preview-actions .download-button,.preview-actions .play-button{flex:1 1;justify-content:center;min-width:0}}.delete-button{align-items:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.delete-button:hover{background:#ef444433;border-color:#ef444480;color:#dc2626;transform:translateY(-1px)}.delete-button svg{height:16px;width:16px}.retention-label{color:#e2e8f0;font-size:.875rem;margin-right:8px;min-width:fit-content}.mobile-fullscreen-tip{margin-top:8px;text-align:center}.mobile-fullscreen-tip small{color:#9ca3af;font-size:.75rem}.upload-card.drag-over{background:#64ffda0d;border:2px dashed #64ffda99!important;transform:scale(1.02);transition:all .2s ease}.upload-card.drag-over .file-input-label{background:#64ffda26;border-color:#64ffda80;color:#64ffda}.upload-card.drag-over .file-input-label:after{content:" (Drop file here)";font-size:.85rem;opacity:.8}.file-name-link{border-radius:4px;color:#64ffda;font-weight:500;margin:-2px -4px;padding:2px 4px;text-decoration:none;transition:all .2s ease}.file-name-link:hover{background:#64ffda1a;color:#4fc3f7;text-decoration:underline;transform:translateY(-1px)}.file-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter-button{align-items:center;background:#64ffda1a;border:1px solid #64ffda4d;border-radius:6px;color:#64ffda;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:6px;padding:8px 12px;transition:all .2s ease;white-space:nowrap}.filter-button:hover{background:#64ffda33;border-color:#64ffda80;transform:translateY(-1px)}.filter-button.active{background:#64ffda4d;border-color:#64ffda99;box-shadow:0 2px 8px #64ffda33;color:#fff}@media (max-width:768px){.file-filters,.filter-button{justify-content:center}.filter-button{flex:1 1;font-size:.75rem;min-width:0;padding:8px 6px;text-align:center}.filter-button .filter-text{display:none}.filter-button .filter-icon{display:inline-block;font-size:1.2rem}}.collections-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b66;border:1px solid #64ffda33;border-radius:16px;box-shadow:0 8px 32px #0000004d;margin:2rem 0;padding:2rem}.collections-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.collections-title-row{align-items:center;display:flex;gap:8px}.collections-expand-button{align-items:center;background:none;border:none;border-radius:3px;color:#94a3b8;cursor:pointer;display:flex;height:20px;justify-content:center;padding:2px;transition:all .2s ease;width:20px}.collections-expand-button:hover{background:#64ffda1a;color:#64ffda}.collections-expand-button svg{height:14px;transition:transform .2s ease;width:14px}.collections-expand-button svg.expanded{transform:rotate(90deg)}.collections-expand-button svg.collapsed{transform:rotate(0deg)}.collections-header h3{color:#e2e8f0;font-size:1.1rem;margin:0}.create-collection-button{background:#64ffda1a;border:1px solid #64ffda4d;border-radius:6px;color:#64ffda;cursor:pointer;font-size:.875rem;padding:6px 12px;transition:all .2s ease}.create-collection-button:hover{background:#64ffda33;border-color:#64ffda80;transform:translateY(-1px)}.collections-list{display:flex;flex-direction:column;gap:8px}.collection-item{background:#0f172a99;border:1px solid #64ffda1a;border-radius:6px;display:flex;flex-direction:column;padding:12px;transition:all .3s ease}.collection-header-row{align-items:center;display:flex;justify-content:space-between}.collection-name-row{align-items:center;display:flex;gap:8px}.collection-expand-button{align-items:center;background:none;border:none;border-radius:3px;color:#94a3b8;cursor:pointer;display:flex;height:20px;justify-content:center;padding:2px;transition:all .2s ease;width:20px}.collection-expand-button:hover{background:#64ffda1a;color:#64ffda}.collection-expand-button svg{height:14px;transition:transform .2s ease;width:14px}.collection-expand-button svg.expanded{transform:rotate(90deg)}.collection-expand-button svg.collapsed{transform:rotate(0deg)}.collection-files{border-top:1px solid #64ffda1a;margin-top:12px;padding-top:12px}.collection-file-item{background:#1e293b80;border:1px solid #64ffda0d;border-radius:6px;display:flex;flex-direction:column;margin-bottom:8px;padding:12px;transition:all .2s ease}.collection-file-item:hover{background:#1e293bcc;border-color:#64ffda1a}.collection-file-item:last-child{margin-bottom:0}.collection-file-header{align-items:flex-start;display:flex;justify-content:space-between}.collection-file-info{display:flex;flex:1 1;flex-direction:column;gap:4px}.collection-file-name-section{align-items:center;display:flex;gap:8px}.collection-file-name{color:#e2e8f0;font-size:.95rem;font-weight:500;text-decoration:none}.collection-file-name:hover{color:#64ffda;text-decoration:underline}.collection-file-details{align-items:center;color:#94a3b8;display:flex;font-size:.85rem;gap:8px}.collection-file-actions{align-items:center;display:flex;gap:4px}.collection-file-actions .copy-button,.collection-file-actions .download-button,.collection-file-actions .play-button{align-items:center;display:flex;height:28px;justify-content:center;padding:0;width:28px}.collection-file-actions .copy-button svg,.collection-file-actions .download-button svg,.collection-file-actions .play-button svg{height:16px;width:16px}.collection-file-remove{align-items:center;background:none;border:none;border-radius:4px;color:#ef4444;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:28px;justify-content:center;line-height:1;padding:4px;transition:all .2s ease;width:28px}.collection-file-remove:hover{background:#ef444433;transform:scale(1.1)}.no-files-in-collection{color:#94a3b8;font-size:.9rem;font-style:italic;padding:16px;text-align:center}.collections-section{position:relative}.file-collections{color:#94a3b8;font-size:.85rem;margin-top:4px}.collection-tag-container{align-items:center;display:inline-flex;gap:2px}.collection-tag{color:#64ffda;font-weight:500}.remove-from-collection-button{background:none;border:none;border-radius:2px;color:#ef4444;cursor:pointer;font-size:14px;font-weight:700;line-height:1;padding:0 2px;transition:all .2s ease}.remove-from-collection-button:hover{background:#ef444433;transform:scale(1.1)}.collection-separator{color:#94a3b8;margin-left:2px}.collection-select-container{background:#64ffda1a;border:1px solid #64ffda4d;border-radius:6px;cursor:pointer;height:48px;position:relative;transition:all .3s ease;width:48px}.collection-select-container:hover{background:#64ffda33;border-color:#64ffda}.collection-select-icon{color:#64ffda;font-size:1.5rem;font-weight:400;left:50%;line-height:1;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.collection-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#0000;border:none;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.collection-select option{background:#1e293b;border:none;color:#e2e8f0;font-size:14px;padding:8px 12px}.collection-select option:focus,.collection-select option:hover{background:#64ffda1a;color:#64ffda}.collection-select-container:focus-within{border-color:#64ffda;box-shadow:0 0 0 2px #64ffda1a}@media (max-width:768px){.collection-select-container{height:48px;width:48px}.collection-select-icon{font-size:1.5rem}.collection-select option{font-size:16px}}.collection-info{display:flex;flex-direction:column;gap:4px}.collection-name-link{border-radius:4px;color:#64ffda;font-weight:500;margin:-2px -4px;padding:2px 4px;text-decoration:none;transition:all .2s ease}.collection-name-link:hover{background:#64ffda1a;color:#4fc3f7;text-decoration:underline;transform:translateY(-1px)}.collection-visibility{border-radius:4px;font-size:.75rem;font-weight:600;padding:.25rem .5rem;white-space:nowrap}.collection-visibility.private{background:#ef44441a;border:1px solid #ef44444d;color:#fca5a5}.collection-visibility.public{background:#22c55e1a;border:1px solid #22c55e4d;color:#86efac}.collection-count{color:#9ca3af;font-size:.875rem}.collection-actions{display:flex;gap:8px}.collection-delete-button,.collection-edit-button,.share-button{border:1px solid;border-radius:4px;cursor:pointer;font-size:.75rem;padding:4px 8px;transition:all .2s ease}.share-button{background:#64ffda1a;border-color:#64ffda4d;color:#64ffda}.share-button:hover{background:#64ffda33;border-color:#64ffda80}.collection-edit-button{background:#3b82f61a;border-color:#3b82f64d;color:#60a5fa}.collection-edit-button:hover{background:#3b82f633;border-color:#3b82f680}.collection-delete-button{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.collection-delete-button:hover{background:#ef444433;border-color:#ef444480}.no-collections{color:#9ca3af;font-style:italic;padding:16px;text-align:center}.collection-preview-page{background:linear-gradient(135deg,#0f172a,#1e293b 50%,#334155);min-height:100vh;padding:2rem 1rem}.collection-preview-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b66;border:1px solid #64ffda33;border-radius:16px;box-shadow:0 8px 32px #0000004d;color:#e2e8f0;margin:0 auto;max-width:1200px;padding:2rem}.collection-preview-header{margin-bottom:2rem;text-align:center}.collection-title{color:#e2e8f0;font-size:2.5rem;font-weight:700;margin-bottom:1rem}.collection-description{color:#94a3b8;font-size:1.1rem;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;max-width:600px}.collection-meta{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.collection-file-count{color:#9ca3af;font-size:.875rem}.collection-created{color:#6b7280;font-size:.875rem}.collection-files-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.collection-file-card{background:#1e293bcc;border:1px solid #64ffda33;border-radius:12px;overflow:hidden;transition:all .3s ease}.collection-file-card:hover{border-color:#64ffda66;box-shadow:0 8px 32px #0000004d;transform:translateY(-2px)}.file-preview-container{align-items:center;background:#0f172a99;display:flex;height:200px;justify-content:center;overflow:hidden}.file-preview-image{object-fit:contain}.file-preview-image,.file-preview-video{max-height:100%;max-width:100%}.file-preview-audio{width:80%}.file-preview-icon{align-items:center;color:#64ffda;display:flex;height:100%;justify-content:center}.file-type-icon{font-size:3rem;font-weight:700;opacity:.7;text-transform:uppercase}.file-card-content{padding:1rem}.file-name{color:#e2e8f0;font-weight:500;margin-bottom:.5rem;word-break:break-word}.file-details{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.file-size{color:#94a3b8;font-size:.875rem}.file-type{color:#64ffda;font-size:.875rem;font-weight:500;text-transform:uppercase}.file-actions{display:flex;gap:.5rem}.download-button{background:#64ffda1a;border:1px solid #64ffda4d;border-radius:6px;color:#64ffda;cursor:pointer;flex:1 1;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.download-button:hover{background:#64ffda33;border-color:#64ffda80}.copy-link-button{background:#64ffda1a;border:1px solid #64ffda4d;border-radius:6px;color:#64ffda;cursor:pointer;font-size:1rem;padding:.75rem;transition:all .2s ease}.copy-link-button:hover{background:#64ffda33;border-color:#64ffda80}.no-files-message{color:#94a3b8}.loading-spinner,.no-files-message{font-size:1.1rem;padding:3rem;text-align:center}.loading-spinner{color:#64ffda}@media (max-width:768px){.collection-preview-container{padding:1rem}.collection-preview-page .user-info{align-items:center;color:#e2e8f0;display:flex;font-size:.9rem;gap:1rem;position:absolute;right:0;top:0}.collection-preview-page.mobile .user-info{align-items:center;background:#0f172ae6;border:1px solid #64ffda33;border-radius:8px;box-sizing:border-box;flex-direction:row;font-size:.8rem;gap:.5rem;max-width:calc(100vw - 1rem);padding:.5rem;position:absolute;right:.5rem;top:.5rem;z-index:100}.collection-preview-page.mobile .user-info span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-preview-page.mobile .logout-button{font-size:.75rem;padding:.25rem .5rem;white-space:nowrap}.collection-preview-page.mobile .header{margin-top:3rem}.collection-title{font-size:2rem}.collection-files-grid{grid-template-columns:1fr}.collection-meta{flex-direction:column;gap:.5rem}}.modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:linear-gradient(135deg,#1e293b,#334155);border:1px solid #64ffda4d;border-radius:12px;box-shadow:0 20px 40px #00000080;max-width:400px;padding:24px;width:90%}.modal h3{color:#e2e8f0;font-size:1.25rem;margin:0 0 16px}.modal-input,.modal-textarea{background:#0f172acc;border:1px solid #64ffda4d;border-radius:6px;box-sizing:border-box;color:#e2e8f0;font-size:.875rem;margin-bottom:12px;padding:10px;width:100%}.modal-input:focus,.modal-textarea:focus{border-color:#64ffda99;box-shadow:0 0 0 2px #64ffda1a;outline:none}.modal-textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.modal-cancel-button,.modal-confirm-button{border:1px solid;border-radius:6px;cursor:pointer;font-size:.875rem;padding:8px 16px;transition:all .2s ease}.modal-cancel-button{background:#4b556333;border-color:#4b556366;color:#d1d5db}.modal-cancel-button:hover{background:#4b55634d;border-color:#4b556399}.modal-confirm-button{background:#64ffda1a;border-color:#64ffda4d;color:#64ffda}.modal-confirm-button:hover:not(:disabled){background:#64ffda33;border-color:#64ffda80}.modal-confirm-button:disabled{cursor:not-allowed;opacity:.5}.error-boundary{align-items:center;background:linear-gradient(135deg,#0f172a,#1e293b);display:flex;justify-content:center;min-height:100vh;padding:2rem}.error-boundary-content{background:#0f172acc;border:1px solid #ef44444d;border-radius:12px;color:#e2e8f0;max-width:500px;padding:2rem;text-align:center;width:100%}.error-boundary-content h2{color:#fca5a5;font-size:1.5rem;margin-bottom:1rem}.error-boundary-content p{color:#cbd5e1;line-height:1.6;margin-bottom:2rem}.error-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.error-dismiss-button,.error-retry-button{border:1px solid;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.75rem 1.5rem;transition:all .3s ease}.error-retry-button{background:#64ffda1a;border-color:#64ffda4d;color:#64ffda}.error-retry-button:hover{background:#64ffda33;border-color:#64ffda80}.error-dismiss-button{background:#4b556333;border-color:#4b556366;color:#d1d5db}.error-dismiss-button:hover{background:#4b55634d;border-color:#4b556399}.error-details{margin-top:1.5rem;text-align:left}.error-details summary{color:#94a3b8;cursor:pointer;margin-bottom:1rem}.error-stack{background:#00000080;border:1px solid #4b55634d;border-radius:6px;color:#f8fafc;font-size:.8rem;overflow-x:auto;padding:1rem;white-space:pre-wrap}.loading-spinner-container{flex-direction:column;gap:1rem}.loading-overlay,.loading-spinner-container{align-items:center;display:flex;justify-content:center}.loading-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172acc;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-spinner{align-items:center;display:flex;justify-content:center}.loading-spinner-small .spinner{border-width:2px;height:20px;width:20px}.loading-spinner-medium .spinner{border-width:3px;height:32px;width:32px}.loading-spinner-large .spinner{border-width:4px;height:48px;width:48px}.loading-text{color:#cbd5e1;font-size:.9rem;text-align:center}.collection-item,.file-item,.media-player,.preview-card,.upload-card{contain:layout style paint}.media-player,.preview-image,.preview-video{will-change:transform}@media (prefers-reduced-motion:reduce){.spinner{animation:none}*{animation:none!important;transition:none!important}}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #64ffda;outline-offset:2px}body,html{margin:0;max-width:100vw;overflow-x:hidden;padding:0}@media (max-width:768px){body,html{overflow-x:hidden;position:relative;width:100%}*{box-sizing:border-box;max-width:100vw}.collection-item,.files-section,.login-card,.preview-card,.upload-card{box-sizing:border-box;max-width:100%;overflow:hidden;width:100%}input,select,textarea{width:100%}.container,input,select,textarea{box-sizing:border-box;max-width:100%}.container{overflow-x:hidden;padding-left:.5rem;padding-right:.5rem}.collection-file-header{align-items:stretch;flex-direction:column;gap:8px}.collection-file-info{flex:none;overflow:hidden;width:100%}.collection-file-name-section{flex-wrap:wrap;overflow:hidden}.collection-file-name{flex:1 1;max-width:calc(100% - 120px);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-file-details{flex-wrap:wrap;font-size:.8rem;gap:4px}.collection-file-actions{align-self:flex-end;flex-shrink:0;gap:6px;justify-content:flex-end;margin-top:4px}.collection-file-actions .copy-button,.collection-file-actions .download-button,.collection-file-actions .play-button{height:32px;width:32px}.collection-file-actions .copy-button svg,.collection-file-actions .download-button svg,.collection-file-actions .play-button svg{height:18px;width:18px}}
/*# sourceMappingURL=main.9a4bbe34.css.map*/