/* Global Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; color: #333; overflow-x: hidden; width: 100%; } .container { max-width: 900px; margin: 0 auto; padding: 20px; width: 100%; box-sizing: border-box; } /* Header */ header { text-align: center; margin-bottom: 30px; color: white; } header h1 { font-size: 2.5rem; margin-bottom: 10px; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); } header p { font-size: 1.1rem; opacity: 0.9; } /* Sections */ .section { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border-radius: 20px; padding: 30px; margin-bottom: 20px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); } .section.hidden { display: none; } .section h2 { margin-bottom: 20px; color: #4a5568; font-size: 1.8rem; } /* Forms */ .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #4a5568; } .form-group input { width: 100%; padding: 12px 16px; border: 2px solid #e2e8f0; border-radius: 10px; font-size: 16px; transition: border-color 0.3s ease; } .form-group input:focus { outline: none; border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); } /* Buttons */ .btn { padding: 12px 24px; border: none; border-radius: 10px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; text-decoration: none; display: inline-block; text-align: center; } .btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); } .btn-secondary { background: #f7fafc; color: #4a5568; border: 2px solid #e2e8f0; } .btn-secondary:hover { background: #edf2f7; border-color: #cbd5e0; } .btn-small { padding: 8px 16px; font-size: 14px; } /* Back Button */ .back-btn { display: inline-block; margin-bottom: 20px; color: #667eea; cursor: pointer; font-weight: 600; transition: color 0.3s ease; } .back-btn:hover { color: #5a67d8; } /* List Containers */ .list-container { max-height: 400px; overflow-y: auto; border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px; overflow-x: hidden; width: 100%; box-sizing: border-box; } .list-item { padding: 15px; border-bottom: 1px solid #f1f5f9; cursor: pointer; transition: background-color 0.2s ease; word-wrap: break-word; overflow-wrap: break-word; } .list-item:hover { background-color: #f8fafc; } .list-item:last-child { border-bottom: none; } .list-item strong { display: block; color: #2d3748; margin-bottom: 4px; } .list-item small { color: #718096; } /* Checkbox List Items */ .list-item-checkbox { display: flex; align-items: center; padding: 15px; border-bottom: 1px solid #f1f5f9; transition: background-color 0.2s ease; width: 100%; box-sizing: border-box; word-wrap: break-word; overflow-wrap: break-word; } .list-item-checkbox:hover { background-color: #f8fafc; } .list-item-checkbox.selected { background-color: #ebf8ff; border-color: #bee3f8; } .list-item-checkbox:last-child { border-bottom: none; } .list-item-checkbox input[type="checkbox"] { margin-right: 15px; transform: scale(1.2); flex-shrink: 0; } .item-content { flex: 1; min-width: 0; } .item-content strong { display: block; color: #2d3748; margin-bottom: 4px; word-wrap: break-word; overflow-wrap: break-word; } .item-content small { color: #718096; } .item-actions { margin-left: 15px; flex-shrink: 0; } /* Batch Controls */ .batch-controls { margin-bottom: 20px; padding: 15px; background-color: #f7fafc; border-radius: 10px; border: 1px solid #e2e8f0; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; } .selected-count { margin-left: auto; font-weight: 600; color: #4a5568; } /* Progress Bar */ .progress-bar { width: 100%; height: 20px; background: #e2e8f0; border-radius: 10px; overflow: hidden; margin-bottom: 15px; } .progress-fill { height: 100%; background: linear-gradient(90deg, #48bb78, #38a169); width: 0%; transition: width 0.5s ease; } #progress-text { text-align: center; font-weight: 600; color: #4a5568; margin-bottom: 20px; } /* Results Log */ .results-log { max-height: 300px; overflow-y: auto; background: #f7fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 15px; font-family: 'Monaco', 'Menlo', monospace; font-size: 14px; } .log-entry { margin-bottom: 8px; padding: 4px 0; } .log-info { color: #4a5568; } .log-success { color: #38a169; font-weight: 600; } .log-error { color: #e53e3e; font-weight: 600; } /* Loading Animation */ .loading { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 1000; color: white; } .loading.hidden { display: none !important; } .spinner { width: 50px; height: 50px; border: 4px solid rgba(255, 255, 255, 0.3); border-top: 4px solid #fff; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 20px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading p { font-size: 18px; font-weight: 600; } /* Responsive Design */ @media (max-width: 600px) { .container { padding: 15px; } header h1 { font-size: 2rem; } .section { padding: 20px; } .list-item-checkbox { flex-direction: column; align-items: flex-start; gap: 10px; } .item-actions { margin-left: 0; width: 100%; } .item-actions .btn { width: 100%; } .batch-controls { flex-direction: column; align-items: stretch; } .batch-controls .btn { width: 100%; margin-bottom: 10px; } .batch-controls .btn:last-child { margin-bottom: 0; } .selected-count { margin-left: 0; text-align: center; } }