*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.legal-page{background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;padding:20px}.legal-container{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;line-height:1.6;margin:0 auto;max-width:800px;padding:40px}.legal-container h1{font-size:2.5rem;font-weight:700;margin-bottom:10px}.last-updated,.legal-container h1{color:#000!important;text-align:center}.last-updated{border-bottom:2px solid #e2e8f0;font-style:italic;margin-bottom:40px;padding-bottom:20px}.legal-container h2{border-bottom:1px solid #e2e8f0;color:#000!important;font-size:1.5rem;font-weight:600;margin:30px 0 15px;padding-bottom:8px}.legal-container h3{color:#000!important;font-size:1.2rem;font-weight:600;margin:20px 0 10px}.legal-container p{color:#000!important;margin-bottom:15px;text-align:justify}.legal-container ul{margin:15px 0;padding-left:20px}.legal-container li{color:#000!important;margin-bottom:8px}.legal-container section{margin-bottom:30px}.legal-container strong{color:#000!important;font-weight:600}.legal-page *{color:#000!important}.legal-page a{color:#06c!important;text-decoration:underline!important}.legal-page a:hover{color:#049!important}@media (max-width:768px){.legal-page{padding:10px}.legal-container{padding:20px}.legal-container h1{font-size:2rem}.legal-container h2{font-size:1.3rem}.legal-container h3{font-size:1.1rem}}.app{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #fff3;box-shadow:0 4px 6px #0000001a;justify-content:space-between;padding:16px 24px}.header,.title-container{align-items:center;display:flex}.logo{border-radius:6px;height:32px;margin-right:8px;width:32px}.title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:24px;font-weight:700;margin:0}.header-actions{gap:12px}.header-actions,.user-info{align-items:center;display:flex}.user-info{gap:10px;padding:0 10px}.user-name{color:#333;font-size:14px;font-weight:500}.login-button,.logout-button{background-color:#fff;border:1px solid #dadce0;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 12px;transition:all .2s}.login-button:hover,.logout-button:hover{background-color:#f8f9fa;box-shadow:0 1px 2px #0000001a}.header-button{background:none;border:none;border-radius:4px;cursor:pointer;margin-left:16px;padding:8px;transition:background-color .2s}.header-button:hover{background-color:#0000001a}.intro-section{background:#fffffff2;border-radius:16px;box-shadow:0 10px 30px #0000001a;margin:20px;padding:40px 20px}.intro-container{margin:0 auto;max-width:1200px}.intro-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:700;margin:0 0 12px;text-align:center}.intro-subtitle{color:#666;font-size:16px;line-height:1.6;margin:0 auto 32px;max-width:600px;text-align:center}.features-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:32px}.feature-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;padding:24px;text-align:center;transition:transform .3s,box-shadow .3s}.feature-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.feature-icon{display:block;font-size:36px;margin-bottom:12px}.feature-card h3{color:#333;font-size:18px;font-weight:600;margin:0 0 8px}.feature-card p{color:#666;font-size:14px;line-height:1.5;margin:0}.how-it-works{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:12px;margin-top:32px;padding:24px}.how-it-works h3{color:#333;font-size:20px;font-weight:600;margin:0 0 16px}.steps-list{color:#555;line-height:1.8;margin:0;padding-left:20px}.steps-list li{font-size:15px;margin-bottom:8px}.upload-section{margin:0 20px;padding:20px}.upload-container{margin:0 auto;max-width:800px}.button-row{flex-wrap:wrap;gap:24px;margin-bottom:24px}.button-row,.upload-button{display:flex;justify-content:center}.upload-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 12px #667eea4d;color:#fff;cursor:pointer;font-size:17px;font-weight:600;min-width:180px;padding:16px 32px;transition:all .3s}.upload-button:hover:not(.disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-3px)}.upload-button.disabled{background:#ccc;box-shadow:none;cursor:not-allowed}.upload-button span{margin-left:10px}.upload-button.paste-button{background:linear-gradient(135deg,#56ccf2,#2f80ed)}.upload-button.paste-button:hover:not(.disabled){box-shadow:0 6px 20px #2f80ed66}.drag-drop-area{background:#ffffffe6;border:2px dashed #667eea66;border-radius:12px;cursor:pointer;padding:40px;text-align:center;transition:all .3s}.drag-drop-area:hover{background:#fffffff2;border-color:#667eea99}.drag-drop-area p{color:#666;font-size:16px;margin:12px 0 0}.drag-drop-area .paste-hint{color:#888;font-size:14px;font-style:italic;margin-top:8px}.uploading-indicator{align-items:center;background:#ffffffe6;border-radius:8px;color:#667eea;display:flex;font-size:16px;font-weight:500;justify-content:center;margin-top:20px;padding:16px}.spinner,.spinner-svg{margin-right:8px}.spinner{animation:spin 1s linear infinite;border:2px solid #f3f3f3;border-radius:50%;border-top-color:#6200ee;height:20px;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.list-container{background:#fffffff2;border-radius:16px;box-shadow:0 10px 30px #0000001a;flex:1 1;margin:20px;padding:20px}.list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.list-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:600;margin:0}.refresh-button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px;transition:all .2s}.refresh-button:hover{background-color:#f0f0f0}.refresh-button.refreshing .icon{animation:spin 1s linear infinite}.empty-state{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:300px;padding:40px}.empty-state h3{color:#333;font-size:20px;font-weight:600;margin:16px 0 8px}.empty-state p{color:#666;font-size:16px;line-height:1.6;max-width:400px;text-align:center}.images-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.image-card{background:#fff;border:1px solid #667eea1a;border-radius:12px;box-shadow:0 4px 12px #00000014;padding:20px;position:relative;transition:transform .3s,box-shadow .3s}.image-card:hover{border-color:#667eea33;box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.delete-button{align-items:center;background:#f443361a;border:none;border-radius:50%;cursor:pointer;display:flex;height:32px;justify-content:center;position:absolute;right:16px;top:16px;transition:all .2s;width:32px}.delete-button:hover{background:#f4433633;transform:scale(1.1)}.image-preview{cursor:pointer;margin-bottom:12px}.thumbnail{background:linear-gradient(135deg,#f5f5f5,#e0e0e0);border-radius:8px;box-shadow:0 2px 8px #0000001a;height:80px;object-fit:cover;transition:transform .3s;width:80px}.image-preview:hover .thumbnail{transform:scale(1.05)}.image-info{flex:1 1}.filename{color:#000;font-size:16px;font-weight:500;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-time{color:#666;font-size:12px;margin:0 0 12px}.url-section{margin-bottom:12px}.url-label{color:#000;display:block;font-size:14px;font-weight:700;margin-bottom:4px}.url-row{align-items:center;display:flex;gap:8px;min-width:0}.url-text{background-color:#f8f8f8;border:1px solid #e0e0e0;border-radius:4px;display:block;flex:1 1;font-family:Courier New,monospace;font-size:12px;min-width:0;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.url-text.r2-url{color:#1976d2}.url-text.server-url{color:#388e3c}.copy-button{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:background-color .2s}.copy-button:hover{background-color:#0000001a}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.config-modal{background:#fff;border-radius:8px;max-height:80vh;max-width:500px;overflow-y:auto;padding:24px;width:100%}.modal-title{color:#000;font-size:18px;font-weight:700;margin:0 0 16px;text-align:center}.config-form,.input-group{margin-bottom:16px}.input-label{color:#000;display:block;font-size:14px;font-weight:500;margin-bottom:4px}.text-input{background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;font-size:14px;padding:12px;transition:border-color .2s;width:100%}.text-input:focus{background-color:#fff;border-color:#6200ee;outline:none}.config-status{align-items:center;border:1px solid;border-radius:8px;display:flex;margin-top:8px;padding:12px}.config-status.configured{background-color:#e8f5e8;border-color:#4caf50;color:#4caf50}.config-status.unconfigured{background-color:#fff3e0;border-color:#ff9800;color:#ff9800}.config-status-text{flex:1 1;font-size:12px;margin-left:8px}.modal-actions{display:flex;gap:8px}.cancel-button,.save-button{border-radius:4px;cursor:pointer;flex:1 1;font-size:16px;padding:12px;transition:all .2s}.cancel-button{background-color:#f0f0f0;border:1px solid #ddd;color:#666}.cancel-button:hover{background-color:#e0e0e0}.save-button{background-color:#6200ee;border:1px solid #6200ee;color:#fff;font-weight:500}.save-button:hover{background-color:#50c}.preview-modal-overlay{background:#000;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.preview-close-button,.preview-modal-overlay{align-items:center;display:flex;justify-content:center}.preview-close-button{background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;height:48px;position:absolute;right:20px;top:20px;transition:background-color .2s;width:48px;z-index:1001}.preview-close-button:hover{background:#000000b3}.preview-header{background:#00000080;border-radius:8px;left:20px;padding:16px;position:absolute;right:80px;top:20px;z-index:1001}.preview-title{color:#fff;font-size:16px;margin:0;text-align:center}.preview-image-container{align-items:center;display:flex;height:100%;justify-content:center;padding:80px 20px 20px;width:100%}.preview-image{border-radius:8px;max-height:100%;max-width:100%;object-fit:contain}@media (max-width:768px){.header{padding:12px 16px}.title{font-size:18px}.button-row{align-items:center;flex-direction:column}.upload-button{max-width:200px;width:100%}.images-grid{grid-template-columns:1fr}.config-modal{margin:20px;padding:20px}.preview-header{left:10px;right:60px}.preview-close-button{height:40px;right:10px;top:10px;width:40px}}@media (max-width:480px){.header{padding:10px}.header-button{margin-left:8px;padding:6px}.image-card,.list-container,.upload-section{padding:12px}.url-text{font-size:11px;padding:3px 6px}.url-row{flex-wrap:nowrap}.copy-button{flex-shrink:0}}.login-modal{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:400px;padding:32px;position:relative;text-align:center;width:90%}.login-modal h2{color:#333;font-size:24px;margin:0 0 12px}.login-modal p{color:#666;font-size:14px;margin:0 0 24px}.login-modal .close-button{background:none;border:none;color:#666;cursor:pointer;font-size:20px;line-height:1;padding:4px;position:absolute;right:12px;top:12px}.login-modal .close-button:hover{color:#333}.google-login-wrapper{display:flex;justify-content:center;margin-top:20px}.app-footer{border-top:1px solid #ffffff1a;margin-top:40px;padding:20px 0;text-align:center}.footer-content{margin:0 auto;max-width:800px;padding:0 20px}.footer-links{margin-bottom:10px}.footer-link{color:#000;font-size:14px;text-decoration:none;transition:color .3s ease}.footer-link:hover{color:#333;text-decoration:underline}.App>div:not(.legal-page) .footer-link{color:#fffc}.App>div:not(.legal-page) .footer-link:hover{color:#fff}.footer-separator{color:#666;margin:0 15px}.footer-text{color:#666;font-size:12px}.App>div:not(.legal-page) .footer-separator{color:#ffffff80}.App>div:not(.legal-page) .footer-text{color:#fff9}.notification{animation:slideInRight .3s ease-out;border-radius:8px;box-shadow:0 4px 12px #00000026;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;max-width:500px;min-width:300px;padding:0;position:fixed;right:20px;top:20px;z-index:9999}.notification.success{background:#4caf50;color:#fff}.notification.error{background:#f44336;color:#fff}.notification.warning{background:#ff9800;color:#fff}.notification-content{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.notification-message{flex:1 1;font-size:14px;font-weight:500;line-height:1.4}.notification-close{align-items:center;background:none;border:none;border-radius:4px;color:currentColor;cursor:pointer;display:flex;justify-content:center;opacity:.8;padding:4px;transition:background-color .2s}.notification-close:hover{background-color:#fff3;opacity:1}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.footer-links{flex-direction:column;gap:10px}.footer-separator{display:none}.footer-link{display:block;margin:5px 0}.notification{left:20px;min-width:auto;right:20px}}
/*# sourceMappingURL=main.0a9ffa01.css.map*/