.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.5rem 2rem;box-shadow:0 4px 6px #0000001a;display:flex;justify-content:space-between;align-items:center}.app-header h1{font-size:2rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.backend-status{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500}.backend-status.checking{background:#f0f0f0;color:#666}.backend-status.online{background:#d4edda;color:#155724}.backend-status.offline{background:#f8d7da;color:#721c24}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s ease-in-out infinite}.backend-status.checking .status-dot{background:#666}.backend-status.online .status-dot{background:#28a745}.backend-status.offline .status-dot{background:#dc3545}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.alert{margin:1rem 2rem;padding:1rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.alert-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.app-content{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:2rem;max-width:1600px;width:100%;margin:0 auto}.left-panel,.right-panel{display:flex;flex-direction:column;gap:2rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#fff;color:#667eea;border:2px solid #667eea}.btn-secondary:hover:not(:disabled){background:#667eea;color:#fff}.video-uploader{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 8px 16px #0000001a}.video-uploader h2{margin-bottom:1.5rem;color:#333}.drop-zone{border:3px dashed #ddd;border-radius:12px;padding:3rem;text-align:center;background:#fafafa;transition:all .3s ease;cursor:pointer;margin-bottom:1.5rem}.drop-zone.dragging{border-color:#667eea;background:#f0f3ff;transform:scale(1.02)}.drop-zone.has-file{border-color:#28a745;background:#f0fff4}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.drop-zone-text{font-size:1.2rem;color:#666;font-weight:500}.drop-zone-or{color:#999;font-size:.9rem}.file-input-label{display:inline-block}.file-info{display:flex;flex-direction:column;gap:.5rem;align-items:center}.file-name{font-size:1.1rem;font-weight:600;color:#333}.file-size{color:#666;font-size:.9rem}.prompt-section{margin-bottom:1.5rem}.prompt-section label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.prompt-input{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:8px;font-family:inherit;font-size:1rem;resize:vertical;transition:border-color .3s ease}.prompt-input:focus{outline:none;border-color:#667eea}.prompt-input:disabled{background:#f5f5f5;cursor:not-allowed}.upload-button{width:100%}.upload-progress{margin-top:1rem;padding:1rem;background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;color:#155724;text-align:center}.error-message{margin-top:1rem;padding:1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;text-align:center}.error-message.token-limit-error{margin-top:0;margin-bottom:1rem;background:#fff3cd;border:2px solid #ffc107;color:#856404;font-weight:600;text-align:left;line-height:1.6}.summary-list{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 8px 16px #0000001a;max-height:500px;overflow-y:auto}.summary-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #eee}.summary-list-header h3{color:#333}.summary-list.empty,.summary-list.loading,.summary-list.error{text-align:center;padding:3rem;color:#666}.summary-list-items{display:flex;flex-direction:column;gap:.75rem}.summary-list-item{padding:1rem;border:2px solid #eee;border-radius:8px;cursor:pointer;transition:all .3s ease}.summary-list-item:hover{border-color:#667eea;background:#f0f3ff;transform:translate(4px)}.summary-list-item.active{border-color:#667eea;background:linear-gradient(135deg,#667eea1a,#764ba21a)}.summary-item-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.summary-item-id{font-weight:600;color:#667eea;font-size:.9rem}.summary-item-time{font-size:.8rem;color:#999}.summary-item-preview{font-size:.9rem;color:#666;line-height:1.4}.summary-display{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 8px 16px #0000001a;min-height:600px}.summary-display.empty{display:flex;align-items:center;justify-content:center;color:#999;font-size:1.1rem}.summary-display.loading,.summary-display.error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-text{color:#dc3545;font-weight:500}.waiting-text{color:#666;font-size:.9rem}.summary-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #eee}.summary-header-info{display:flex;flex-direction:column;gap:.5rem;flex:1}.summary-header h2{color:#333;margin:0}.summary-id{font-size:.9rem;color:#667eea;font-weight:600}.summary-timestamp{font-size:.85rem;color:#999}.download-button{white-space:nowrap;padding:.75rem 1.5rem;font-size:.95rem}.summary-content{display:flex;flex-direction:column;gap:2rem}.summary-text h3,.summary-images h3{color:#333;margin-bottom:1rem}.text-content{line-height:1.8;color:#555}.text-content p{margin-bottom:1rem}.text-content p:empty{margin-bottom:.5rem}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.image-item{border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a}.image-item img{width:100%;height:auto;display:block;transition:transform .3s ease}.image-item:hover img{transform:scale(1.05)}.app-footer{background:#fffffff2;padding:1rem 2rem;text-align:center;color:#666;box-shadow:0 -4px 6px #0000001a}@media(max-width:1200px){.app-content{grid-template-columns:1fr}}@media(max-width:768px){.app-header{flex-direction:column;gap:1rem;text-align:center}.app-header h1{font-size:1.5rem}.app-content{padding:1rem;gap:1rem}.video-uploader,.summary-display{padding:1.5rem}.drop-zone{padding:2rem 1rem}.alert{flex-direction:column;gap:1rem;text-align:center}}.summary-display.processing{padding:3rem}.summary-display.processing h2{color:#333;margin-bottom:2rem;text-align:center}.processing-status{background:#fff;padding:2rem;border-radius:12px;border:2px solid #e0e0e0;box-shadow:0 4px 12px #0000001a}.status-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.status-icon{font-size:2rem}.status-label{font-size:1.2rem;font-weight:700;letter-spacing:1px}.status-message{font-size:1.1rem;color:#555;margin-bottom:1.5rem;font-weight:500}.progress-container{margin:1.5rem 0}.progress-bar{width:100%;height:40px;background:#f0f0f0;border-radius:20px;overflow:hidden;position:relative;box-shadow:inset 0 2px 4px #0000001a}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .5s ease;display:flex;align-items:center;justify-content:center;position:relative}.progress-text{color:#fff;font-weight:700;font-size:1rem;position:absolute;left:50%;transform:translate(-50%);text-shadow:0 1px 2px rgba(0,0,0,.2)}.status-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:1rem;border-radius:8px;margin-top:1rem}.status-updated{font-size:.85rem;color:#999;margin-top:1rem;text-align:right}.processing-status.status-pending{border-color:#ffc107}.processing-status.status-pending .status-label{color:#ffc107}.processing-status.status-processing{border-color:#667eea}.processing-status.status-processing .status-label{color:#667eea}.processing-status.status-completed{border-color:#28a745}.processing-status.status-completed .status-label{color:#28a745}.processing-status.status-failed{border-color:#dc3545}.processing-status.status-failed .status-label{color:#dc3545}.video-metadata{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);padding:1.5rem;border-radius:10px;margin-bottom:1.5rem;border:2px solid #4caf50}.video-metadata h3{color:#333;margin-bottom:1rem;font-size:1.1rem}.metadata-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.metadata-stat{background:#fff;padding:1rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.metadata-stat.total{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;font-weight:700}.metadata-stat.total .metadata-label,.metadata-stat.total .metadata-value{color:#fff}.metadata-label{font-weight:600;color:#555}.metadata-value{font-size:1.2rem;font-weight:700;color:#4caf50}.metadata-stat.total .metadata-value{font-size:1.3rem}.token-counts{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:1.5rem;border-radius:10px;margin-bottom:2rem;border:2px solid #667eea}.token-counts h3{color:#333;margin-bottom:1rem;font-size:1.1rem}.token-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.token-stat{background:#fff;padding:1rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.token-stat.total{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700}.token-stat.total .token-label,.token-stat.total .token-value{color:#fff}.token-label{font-weight:600;color:#555}.token-value{font-size:1.2rem;font-weight:700;color:#667eea}.token-stat.total .token-value{font-size:1.3rem}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.loading-spinner.large{width:60px;height:60px;border-width:4px;border-top-color:#fff}.loading-spinner.small{width:24px;height:24px;border-width:2px}.loading-spinner.tiny{width:16px;height:16px;border-width:2px}.app-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 2rem;box-shadow:0 4px 6px #0000001a;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:.75rem}.header-logo{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.header-right{display:flex;align-items:center;gap:1rem}.header-loading{padding:.5rem}.header-login-button{padding:.5rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.header-login-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.backend-status-bar{background:#ffffffe6;padding:.5rem 2rem;border-bottom:1px solid #eee}.user-menu-container{position:relative}.user-menu-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:2px solid #eee;border-radius:8px;cursor:pointer;transition:all .3s ease}.user-menu-button:hover{border-color:#667eea}.user-avatar-small{width:32px;height:32px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}.user-avatar-small img{width:100%;height:100%;object-fit:cover}.user-name-short{font-weight:500;color:#333}.menu-arrow{font-size:.7rem;color:#666;transition:transform .3s ease}.menu-arrow.open{transform:rotate(180deg)}.menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;z-index:100;overflow:hidden}.dropdown-user-info{padding:1rem;background:linear-gradient(135deg,#667eea1a,#764ba21a)}.dropdown-name{display:block;font-weight:600;color:#333}.dropdown-email{display:block;font-size:.85rem;color:#666;margin-top:.25rem}.dropdown-divider{height:1px;background:#eee}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;transition:background .2s ease}.dropdown-item:hover{background:#f5f5f5}.dropdown-icon{font-size:1rem}.credit-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:20px;font-weight:600;cursor:pointer;transition:all .3s ease}.credit-badge:hover{transform:scale(1.05)}.credit-badge.low{background:linear-gradient(135deg,#ffc107,#fd7e14)}.credit-badge-icon{font-size:1rem}.credit-badge-amount{font-size:.95rem}.credit-display{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border:2px solid #28a745;border-radius:12px;cursor:pointer;transition:all .3s ease}.credit-display:hover{transform:translateY(-2px);box-shadow:0 4px 12px #28a74533}.credit-display.low{border-color:#ffc107}.credit-display-content{display:flex;align-items:center;gap:.5rem}.credit-display-icon{font-size:1.25rem}.credit-display-info{display:flex;flex-direction:column}.credit-display-label{font-size:.75rem;color:#666}.credit-display-amount{font-size:1.1rem;font-weight:700;color:#28a745}.credit-display.low .credit-display-amount{color:#ffc107}.credit-display-warning{font-size:.75rem;color:#ffc107;font-weight:600}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.login-container{background:#fff;padding:3rem;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:420px;width:100%}.login-header{text-align:center;margin-bottom:2rem}.login-logo{margin-bottom:1rem}.login-logo-icon{font-size:4rem}.login-logo-text{font-size:3rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-1px}.login-title{font-size:1.75rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.login-subtitle{color:#666;font-size:.95rem}.login-features{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.feature-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8f9fa;border-radius:8px}.feature-icon{font-size:1.25rem}.feature-text{color:#555;font-size:.9rem}.login-error{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-bottom:1.5rem}.login-form{margin-bottom:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#333;font-size:.9rem}.form-group input{width:100%;padding:.75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-block{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem}.login-divider{position:relative;text-align:center;margin:1.5rem 0}.login-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e0e0e0}.login-divider span{position:relative;background:#fff;padding:0 1rem;color:#999;font-size:.85rem;font-weight:600}.login-toggle{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #f0f0f0}.login-toggle p{margin:0;color:#666;font-size:.9rem}.login-link-button{background:none;border:none;color:#667eea;font-weight:600;cursor:pointer;font-size:.9rem;padding:0;text-decoration:none}.login-link-button:hover{text-decoration:underline}.login-buttons{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.oauth-button{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.oauth-button:disabled{opacity:.6;cursor:not-allowed}.oauth-icon{flex-shrink:0}.google-button{background:#fff;border-color:#ddd;color:#333}.google-button:hover:not(:disabled){border-color:#4285f4;box-shadow:0 4px 12px #4285f433}.apple-button{background:#000;color:#fff}.apple-button:hover:not(:disabled){background:#333;box-shadow:0 4px 12px #0000004d}.login-terms{text-align:center;font-size:.8rem;color:#999}.login-link{color:#667eea;text-decoration:none}.login-link:hover{text-decoration:underline}.login-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem;color:#666}.oauth-callback{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.oauth-callback-container{background:#fff;padding:3rem;border-radius:20px;text-align:center;max-width:400px}.oauth-callback-container.error{border:2px solid #dc3545}.oauth-callback-icon{font-size:3rem;margin-bottom:1rem}.oauth-callback-container h2{color:#333;margin-bottom:.5rem}.oauth-callback-container p{color:#666}.oauth-callback-button{margin-top:1.5rem;padding:.75rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}.profile-overlay,.purchase-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.profile-modal{background:#fff;border-radius:20px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.purchase-modal{background:#fff;border-radius:20px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.profile-close,.purchase-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;background:#f5f5f5;border:none;border-radius:50%;font-size:1rem;cursor:pointer;transition:all .2s ease}.profile-close:hover,.purchase-close:hover{background:#e0e0e0}.profile-header{display:flex;align-items:center;gap:1rem;padding:2rem;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:20px 20px 0 0}.profile-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-placeholder{font-size:2rem;color:#fff;font-weight:600}.profile-info{flex:1}.profile-name{font-size:1.5rem;margin:0 0 .25rem;color:#333}.profile-email{color:#666;margin:0 0 .5rem}.profile-provider{font-size:.85rem;color:#888}.profile-credits{padding:1.5rem 2rem;border-bottom:1px solid #eee}.credits-display.large{display:flex;align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:12px;margin-bottom:1rem}.credits-icon{font-size:2rem}.credits-info{display:flex;flex-direction:column}.credits-label{font-size:.85rem;color:#666}.credits-amount{font-size:2rem;font-weight:700;color:#28a745}.credits-buy-button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.credits-buy-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.profile-stats{padding:1.5rem 2rem;border-bottom:1px solid #eee}.profile-stats h3{margin:0 0 1rem;color:#333}.stats-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;color:#666}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-item{padding:1rem;background:#f8f9fa;border-radius:8px;text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#667eea}.stat-label{display:block;font-size:.85rem;color:#666;margin-top:.25rem}.stats-error{color:#dc3545;text-align:center}.profile-actions{padding:1.5rem 2rem}.logout-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;background:#f8f9fa;border:2px solid #dc3545;color:#dc3545;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.logout-button:hover:not(:disabled){background:#dc3545;color:#fff}.logout-button:disabled{opacity:.6;cursor:not-allowed}.logout-icon{font-size:1rem}.purchase-modal{max-width:700px}.purchase-header{padding:2rem;text-align:center;border-bottom:1px solid #eee}.purchase-header h2{margin:0 0 .5rem;color:#333}.purchase-subtitle{color:#666;margin:0 0 1rem}.purchase-current-balance{display:inline-block;padding:.5rem 1rem;background:#d4edda;border-radius:20px;color:#155724;font-size:.9rem}.purchase-error{display:flex;align-items:center;gap:.5rem;padding:1rem;margin:1rem 2rem;background:#f8d7da;border-radius:8px;color:#721c24}.purchase-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem;color:#666}.package-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;padding:1.5rem 2rem}.package-card{position:relative;padding:1.5rem;background:#fff;border:2px solid #eee;border-radius:12px;text-align:center;transition:all .3s ease}.package-card:hover{border-color:#667eea;transform:translateY(-4px);box-shadow:0 8px 24px #667eea26}.package-card.popular{border-color:#8b5cf6;box-shadow:0 4px 12px #8b5cf626}.package-card.best-value{border-color:#f59e0b;box-shadow:0 4px 12px #f59e0b26}.package-card.selected{border-color:#28a745;background:#f0fff4}.package-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);padding:.25rem .75rem;color:#fff;font-size:.75rem;font-weight:600;border-radius:20px;white-space:nowrap}.package-badge.popular-badge{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}.package-badge.best-value-badge{background:linear-gradient(135deg,#f59e0b,#d97706)}.package-name{font-size:1.1rem;color:#333;margin:0 0 .75rem}.package-credits{margin-bottom:.5rem}.package-credits-amount{font-size:2.5rem;font-weight:700;color:#667eea}.package-credits-label{display:block;font-size:.9rem;color:#666}.package-price{font-size:1.5rem;font-weight:700;color:#333;margin-bottom:.5rem}.package-description{font-size:.9rem;color:#666;margin:0 0 1rem}.package-per-video{font-size:.85rem;color:#666;margin-bottom:.5rem}.package-savings{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:.75rem;font-weight:600;border-radius:12px;margin-bottom:1rem}.package-value{font-size:.8rem;color:#28a745;margin-bottom:1rem}.package-buy-button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.package-buy-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.package-buy-button:disabled{opacity:.6;cursor:not-allowed}.purchase-info{display:flex;justify-content:center;gap:2rem;padding:1.5rem 2rem;background:#f8f9fa;border-radius:0 0 20px 20px}.purchase-info-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#666}.info-icon{font-size:1rem}.upload-disabled-notice{text-align:center;padding:1rem;background:#fff3cd;border:2px solid #ffc107;border-radius:8px}.upload-disabled-notice p{color:#856404;margin:0 0 1rem;font-weight:500}.alert-warning{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}@media(max-width:768px){.login-container{padding:2rem}.login-title{font-size:1.5rem}.profile-header{flex-direction:column;text-align:center}.stats-grid,.package-grid{grid-template-columns:1fr}.purchase-info{flex-direction:column;gap:.75rem;align-items:center}.header-right{gap:.5rem}.user-name-short{display:none}}.landing-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);overflow-x:hidden}.hero-section{min-height:90vh;display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding:4rem 6rem;max-width:1400px;margin:0 auto;align-items:center}.hero-content{display:flex;flex-direction:column;gap:2rem}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50px;width:fit-content;color:#fff;font-size:.9rem;font-weight:500}.badge-icon{font-size:1.1rem}.hero-title{font-size:3.5rem;font-weight:800;color:#fff;line-height:1.2;margin:0}.hero-title-gradient{background:linear-gradient(135deg,#ffd89b,#19547b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.25rem;color:#ffffffe6;line-height:1.6;margin:0}.hero-buttons{display:flex;gap:1rem;margin-top:1rem}.cta-button{display:flex;align-items:center;gap:.75rem;padding:1rem 2rem;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;border:none}.cta-button.primary{background:#fff;color:#667eea}.cta-button.primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #ffffff4d}.cta-button.secondary{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:2px solid white}.cta-button.secondary:hover{background:#ffffff4d}.cta-button.outline{background:transparent;border:2px solid white;color:#fff}.cta-button.outline:hover{background:#ffffff1a}.cta-button.large{padding:1.25rem 2.5rem;font-size:1.2rem}.button-arrow{font-size:1.5rem;transition:transform .3s ease}.cta-button:hover .button-arrow{transform:translate(4px)}.hero-stats{display:flex;align-items:center;gap:2rem;margin-top:1rem}.hero-stats .stat-item{display:flex;flex-direction:column;gap:.25rem;padding:1.5rem 2rem;background:#764ba24d;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.stat-number{font-size:2rem;font-weight:700;color:#fff}.stat-label{font-size:.9rem;color:#fffc}.stat-divider{width:1px;height:40px;background:#ffffff4d}.hero-visual{display:flex;align-items:center;justify-content:center}.video-preview-card{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 20px 60px #0000004d;width:100%;max-width:500px;animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.video-preview-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.preview-play-button{width:40px;height:40px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem}.preview-title{font-weight:600;color:#333}.video-preview-body{display:flex;align-items:center;gap:1.5rem}.preview-thumbnail{width:120px;height:120px;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:3rem}.preview-arrow{font-size:2rem;color:#667eea}.preview-summary{flex:1;display:flex;flex-direction:column;gap:.75rem}.summary-line{height:8px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;animation:pulse-line 2s ease-in-out infinite}.summary-line.long{width:100%}.summary-line.medium{width:80%}.summary-line.short{width:60%}@keyframes pulse-line{0%,to{opacity:1}50%{opacity:.6}}.features-section{background:#fff;padding:6rem}.section-header{text-align:center;margin-bottom:4rem}.section-title{font-size:2.5rem;font-weight:700;color:#333;margin:0 0 1rem}.section-subtitle{font-size:1.2rem;color:#666;margin:0}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1400px;margin:0 auto}.feature-card{background:#fff;padding:2rem;border-radius:16px;border:2px solid #f0f0f0;transition:all .3s ease}.feature-card:hover{border-color:#667eea;transform:translateY(-4px);box-shadow:0 12px 24px #667eea26}.feature-icon{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:1.5rem}.feature-icon.purple{background:linear-gradient(135deg,#667eea,#764ba2)}.feature-icon.blue{background:linear-gradient(135deg,#4facfe,#00f2fe)}.feature-icon.green{background:linear-gradient(135deg,#43e97b,#38f9d7)}.feature-icon.orange{background:linear-gradient(135deg,#fa709a,#fee140)}.feature-icon.pink{background:linear-gradient(135deg,#f093fb,#f5576c)}.feature-icon.teal{background:linear-gradient(135deg,#4facfe,#00f2fe)}.feature-title{font-size:1.5rem;font-weight:700;color:#333;margin:0 0 1rem}.feature-description{font-size:1rem;color:#666;line-height:1.6;margin:0}.how-it-works-section{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:6rem}.steps-container{display:flex;align-items:center;justify-content:center;gap:2rem;max-width:1400px;margin:0 auto}.step-item{flex:1;background:#fff;padding:2rem;border-radius:16px;text-align:center;transition:all .3s ease}.step-item:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.step-number{width:60px;height:60px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;margin:0 auto 1.5rem}.step-content{text-align:center}.step-title{font-size:1.5rem;font-weight:700;color:#333;margin:0 0 1rem}.step-description{font-size:1rem;color:#666;line-height:1.6;margin:0}.step-arrow{font-size:2rem;color:#667eea;flex-shrink:0}.notice-section{background:#fff;padding:6rem}.notice-card{max-width:900px;margin:0 auto;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #ffc107;border-radius:16px;padding:2rem;display:flex;gap:1.5rem}.notice-icon{font-size:3rem;flex-shrink:0}.notice-content{flex:1}.notice-title{font-size:1.5rem;font-weight:700;color:#856404;margin:0 0 1rem}.notice-text{font-size:1rem;color:#856404;line-height:1.6;margin:0 0 1rem}.notice-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.notice-list li{font-size:1rem;color:#856404;padding-left:1.5rem;position:relative}.notice-list li:before{content:"✓";position:absolute;left:0;font-weight:700;color:#28a745}.pricing-section{background:linear-gradient(to bottom,#f8f9ff,#fff);padding:6rem}.pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.pricing-card{background:#fff;border:2px solid #e0e7ff;border-radius:16px;padding:2rem;display:flex;flex-direction:column;position:relative;transition:all .3s ease}.pricing-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px #667eea33}.pricing-card.popular{border-color:#667eea;border-width:3px;box-shadow:0 10px 30px #667eea26}.popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1.5rem;border-radius:20px;font-size:.875rem;font-weight:600;box-shadow:0 4px 12px #667eea4d}.pricing-header{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #f3f4f6}.pricing-title{font-size:1.5rem;font-weight:700;color:#333;margin:0 0 1rem}.pricing-price{display:flex;align-items:baseline;justify-content:center;gap:.5rem;margin-bottom:.5rem}.price-amount{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.price-period{font-size:1rem;color:#666}.pricing-savings{display:inline-block;background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600;margin-top:.5rem}.pricing-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.pricing-features li{font-size:1rem;color:#555;display:flex;align-items:center;gap:.75rem}.pricing-features li:before{content:"✓";font-weight:700;color:#10b981;font-size:1.25rem}.cta-section{background:linear-gradient(135deg,#667eea,#764ba2);padding:6rem;text-align:center}.cta-content{max-width:800px;margin:0 auto}.cta-title{font-size:3rem;font-weight:700;color:#fff;margin:0 0 1rem}.cta-subtitle{font-size:1.25rem;color:#ffffffe6;margin:0 0 2rem}.cta-buttons{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.cta-note{font-size:.9rem;color:#fffc;margin:0}.landing-footer{background:#0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:3rem 6rem;text-align:center}.footer-content{max-width:1400px;margin:0 auto}.footer-brand{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.footer-logo{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.footer-text{font-size:.9rem;color:#fffc;margin:0 0 1.5rem}.footer-links{display:flex;align-items:center;justify-content:center;gap:1rem}.footer-link{color:#ffffffe6;text-decoration:none;font-size:.9rem;transition:color .3s ease}.footer-link:hover{color:#fff}.footer-divider{color:#fff6}@media(max-width:1200px){.hero-section{grid-template-columns:1fr;padding:3rem}.hero-visual{order:-1}.features-grid{grid-template-columns:repeat(2,1fr)}.steps-container{flex-direction:column}.step-arrow{transform:rotate(90deg)}.features-section,.how-it-works-section,.notice-section,.pricing-section,.cta-section,.landing-footer{padding:4rem 3rem}.pricing-cards{grid-template-columns:1fr}}@media(max-width:768px){.hero-section{padding:2rem 1.5rem}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1rem}.hero-buttons{flex-direction:column}.cta-button{width:100%;justify-content:center}.hero-stats{flex-direction:column;gap:1rem}.stat-divider{display:none}.features-grid{grid-template-columns:1fr}.section-title{font-size:2rem}.section-subtitle{font-size:1rem}.notice-card{flex-direction:column}.cta-title{font-size:2rem}.cta-buttons{flex-direction:column}.features-section,.how-it-works-section,.notice-section,.cta-section,.landing-footer{padding:3rem 1.5rem}.footer-links{flex-wrap:wrap}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;background:#0000001a;padding:2px 6px;border-radius:4px}#root{min-height:100vh}.insufficient-credits-modal{max-width:500px;padding:2.5rem;text-align:center}.insufficient-credits-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.insufficient-credits-title{font-size:1.75rem;font-weight:700;color:#1a202c;margin-bottom:1.5rem}.insufficient-credits-details{background:#f7fafc;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.credit-info-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #e2e8f0}.credit-info-row:last-child{border-bottom:none}.credit-info-row.shortage{font-weight:600;color:#e53e3e}.credit-info-label{color:#64748b}.credit-info-value{font-weight:600;color:#1a202c}.shortage-value{color:#e53e3e}.insufficient-credits-message{color:#475569;line-height:1.6;margin-bottom:2rem}.insufficient-credits-actions{display:flex;gap:1rem;justify-content:center}.transaction-history{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 6px #0000000d}.transaction-history.compact{padding:1rem}.transaction-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f1f5f9}.transaction-history-header h3{font-size:1.25rem;font-weight:700;color:#1a202c}.transaction-filters{display:flex;gap:.5rem;background:#f8fafc;padding:.25rem;border-radius:8px}.filter-button{padding:.5rem 1rem;border:none;background:transparent;border-radius:6px;font-size:.875rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s ease}.filter-button:hover{background:#fff;color:#1a202c}.filter-button.active{background:#fff;color:#667eea;box-shadow:0 2px 4px #0000000d}.transaction-list{display:flex;flex-direction:column;gap:.75rem}.transaction-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8fafc;border-radius:12px;border-left:4px solid transparent;transition:all .2s ease}.transaction-item:hover{background:#f1f5f9;transform:translate(4px)}.transaction-item.success{border-left-color:#10b981}.transaction-item.neutral{border-left-color:#94a3b8}.transaction-item.warning{border-left-color:#f59e0b}.transaction-item.highlight{border-left-color:#8b5cf6}.transaction-icon{font-size:1.5rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff;border-radius:10px}.transaction-details{flex:1;min-width:0}.transaction-description{font-weight:500;color:#1a202c;font-size:.938rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-date{font-size:.813rem;color:#94a3b8;margin-top:.25rem}.transaction-amount{font-weight:700;font-size:1rem;white-space:nowrap}.transaction-amount.positive{color:#10b981}.transaction-amount.negative{color:#64748b}.transaction-load-more{width:100%;padding:.75rem;margin-top:1rem;border:2px dashed #e2e8f0;background:transparent;border-radius:8px;color:#64748b;font-weight:500;cursor:pointer;transition:all .2s ease}.transaction-load-more:hover{border-color:#667eea;color:#667eea;background:#f8fafc}.transaction-history-loading,.transaction-history-error,.transaction-history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.transaction-history-empty .empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.transaction-history-empty h3{font-size:1.25rem;font-weight:600;color:#1a202c;margin-bottom:.5rem}.transaction-history-empty p{color:#64748b}.payment-status-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease}.payment-status-card{background:#fff;border-radius:24px;padding:3rem 2rem;max-width:500px;width:100%;text-align:center;box-shadow:0 20px 25px -5px #0000001a;animation:slideUp .3s ease;position:relative;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.status-icon{font-size:5rem;margin-bottom:1.5rem;animation:scaleIn .5s cubic-bezier(.68,-.55,.265,1.55)}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.payment-status-card h2{font-size:2rem;font-weight:700;color:#1a202c;margin-bottom:1rem}.payment-success-message,.payment-cancel-message{color:#64748b;font-size:1.063rem;line-height:1.6;margin-bottom:2rem}.payment-success-balance{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:16px;padding:2rem;margin-bottom:2rem}.balance-label{font-size:.938rem;opacity:.9;margin-bottom:.5rem}.balance-amount{font-size:2.5rem;font-weight:700}.credits-added{font-size:1.125rem;margin-top:.5rem;opacity:.9;animation:slideDown .5s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:.9;transform:translateY(0)}}.payment-success-info,.payment-cancel-info{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.info-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.info-icon{font-size:1.5rem}.payment-success-actions,.payment-cancel-actions{display:flex;gap:1rem;justify-content:center}.confetti-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti{position:absolute;width:10px;height:10px;top:-20px;animation:confettiFall 3s linear infinite}@keyframes confettiFall{to{transform:translateY(110vh) rotate(360deg)}}@media(max-width:768px){.insufficient-credits-modal{padding:2rem 1.5rem}.insufficient-credits-actions{flex-direction:column}.insufficient-credits-actions button{width:100%}.transaction-history{padding:1rem}.transaction-filters{flex-wrap:wrap}.filter-button{font-size:.813rem;padding:.5rem .75rem}.payment-status-card{padding:2rem 1.5rem}.payment-status-card h2{font-size:1.5rem}.balance-amount{font-size:2rem}.payment-success-info,.payment-cancel-info{flex-direction:column;gap:1rem}}@media(prefers-color-scheme:dark){.transaction-history{background:#1e293b}.transaction-item{background:#334155}.transaction-item:hover{background:#475569}.transaction-description{color:#f1f5f9}.transaction-date{color:#94a3b8}.payment-status-card{background:#1e293b;color:#f1f5f9}.payment-status-card h2{color:#f1f5f9}}
