| :root { |
| --bg: #f4f6fb; |
| --primary: #2563eb; |
| --primary2: #60a5fa; |
| --primary-soft: rgba(37, 99, 235, 0.06); |
| --primary-soft2: rgba(37, 99, 235, 0.14); |
| --card-bg: #ffffff; |
| --text-main: #111827; |
| --text-muted: #6b7280; |
| --radius-xl: 22px; |
| --shadow-soft: 0 10px 24px rgba(15, 23, 42, 0.05); |
| --font: "Tajawal", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; |
| --transition: 0.18s ease; |
| } |
|
|
| *, |
| *::before, |
| *::after { |
| box-sizing: border-box; |
| } |
|
|
| body { |
| margin: 0; |
| font-family: var(--font); |
| background: |
| radial-gradient(circle at top left, rgba(96, 165, 250, 0.16), transparent 55%), |
| radial-gradient(circle at top right, rgba(129, 140, 248, 0.12), transparent 60%), |
| var(--bg); |
| color: var(--text-main); |
| } |
|
|
| .page { |
| min-height: 100vh; |
| max-width: 980px; |
| margin: 0 auto; |
| padding: 22px 16px 26px; |
| display: flex; |
| flex-direction: column; |
| gap: 14px; |
| } |
|
|
| |
|
|
| .topbar { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| padding: 9px 18px; |
| background: #ffffff; |
| border-radius: 999px; |
| box-shadow: var(--shadow-soft); |
| border: 1px solid rgba(226, 232, 240, 0.96); |
| } |
|
|
| .credit { |
| font-size: 10.5px; |
| color: #374151; |
| padding: 4px 14px; |
| border-radius: 999px; |
| background-color: #eef2ff; |
| border: 1px solid rgba(129, 140, 248, 0.45); |
| } |
|
|
| |
|
|
| .main { |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| align-items: center; |
| } |
|
|
| |
|
|
| .hero { |
| text-align: center; |
| background: |
| radial-gradient(circle at right top, rgba(96, 165, 250, 0.16), transparent), |
| #ffffff; |
| padding: 18px 18px 14px; |
| border-radius: var(--radius-xl); |
| box-shadow: var(--shadow-soft); |
| border: 1px solid rgba(226, 232, 240, 0.96); |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: 8px; |
| width: 100%; |
| } |
|
|
| .hero .logo-mark { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| width: 44px; |
| height: 44px; |
| border-radius: 16px; |
| background: linear-gradient(135deg, var(--primary), var(--primary2)); |
| color: #ffffff; |
| font-weight: 700; |
| font-size: 16px; |
| box-shadow: 0 6px 18px rgba(37, 99, 235, 0.38); |
| } |
|
|
| .hero h1 { |
| margin: 0; |
| font-size: 20px; |
| font-weight: 600; |
| } |
|
|
| .hero p { |
| margin: 0; |
| font-size: 12.5px; |
| color: var(--text-muted); |
| max-width: 640px; |
| } |
|
|
| |
|
|
| .steps { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); |
| gap: 8px; |
| width: 100%; |
| } |
|
|
| .step { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| padding: 8px 10px; |
| border-radius: 16px; |
| background: #ffffff; |
| box-shadow: 0 4px 10px rgba(15, 23, 42, 0.03); |
| border: 1px solid rgba(229, 231, 235, 0.98); |
| justify-content: center; |
| text-align: center; |
| } |
|
|
| .step-number { |
| width: 20px; |
| height: 20px; |
| border-radius: 999px; |
| background: var(--primary); |
| color: #ffffff; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 11px; |
| font-weight: 600; |
| } |
|
|
| .step-text { |
| font-size: 10.5px; |
| color: #4b5563; |
| } |
|
|
| |
|
|
| .card { |
| background: var(--card-bg); |
| border-radius: var(--radius-xl); |
| padding: 14px 14px 12px; |
| box-shadow: var(--shadow-soft); |
| border: 1px solid rgba(226, 232, 240, 0.98); |
| } |
|
|
| .main-card { |
| display: flex; |
| flex-direction: column; |
| width: 100%; |
| max-width: 960px; |
| margin: 0 auto; |
| } |
|
|
| |
|
|
| .card-section { |
| padding: 10px 6px; |
| } |
|
|
| .card-section + .card-section { |
| border-top: 1px solid rgba(229, 231, 235, 0.9); |
| } |
|
|
| |
|
|
| .card-row { |
| display: flex; |
| flex-direction: column; |
| gap: 5px; |
| } |
|
|
| .card-row.inline { |
| flex-direction: row; |
| align-items: center; |
| gap: 10px; |
| } |
|
|
| .card-title { |
| font-size: 14px; |
| font-weight: 600; |
| margin: 0 0 2px; |
| text-align: center; |
| } |
|
|
| .hint { |
| margin: 0; |
| font-size: 10.5px; |
| color: var(--text-muted); |
| text-align: center; |
| } |
|
|
| |
|
|
| .file-picker { |
| margin-top: 6px; |
| display: inline-flex; |
| align-items: center; |
| gap: 8px; |
| padding: 9px 16px; |
| border-radius: 999px; |
| border: 1px solid rgba(209, 213, 219, 1); |
| background: linear-gradient(to right, #f9fafb, #eef2ff); |
| cursor: pointer; |
| transition: all var(--transition); |
| align-self: center; |
| } |
|
|
| .file-picker:hover { |
| background: linear-gradient(to right, #eef2ff, #e0f2fe); |
| border-color: var(--primary); |
| box-shadow: 0 8px 18px rgba(148, 163, 253, 0.25); |
| transform: translateY(-1px); |
| } |
|
|
| .file-picker-icon { |
| font-size: 15px; |
| } |
|
|
| .file-picker-text { |
| font-size: 11.5px; |
| } |
|
|
| .file-picker input { |
| display: none; |
| } |
|
|
| |
|
|
| .file-list { |
| margin-top: 2px; |
| padding: 8px 8px; |
| border-radius: 14px; |
| background-color: #f9fafb; |
| border: 1px solid rgba(229, 231, 235, 1); |
| max-height: 220px; |
| overflow-y: auto; |
| transition: box-shadow var(--transition), transform var(--transition); |
| } |
|
|
| .file-list.hidden { |
| display: none; |
| } |
|
|
| .file-list-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: baseline; |
| font-size: 10.5px; |
| margin-bottom: 3px; |
| } |
|
|
| .file-note { |
| font-size: 9px; |
| color: var(--text-muted); |
| } |
|
|
| .mode-label { |
| font-size: 9.5px; |
| color: #1d4ed8; |
| background-color: #eff6ff; |
| border-radius: 999px; |
| padding: 3px 8px; |
| display: inline-block; |
| margin: 0 0 4px; |
| } |
|
|
| |
|
|
| .file-list-ul { |
| list-style: none; |
| padding: 0; |
| margin: 0; |
| display: flex; |
| flex-direction: column; |
| gap: 2px; |
| } |
|
|
| .file-list-ul li { |
| display: grid; |
| grid-template-columns: 18px minmax(0, 1fr) auto auto; |
| align-items: center; |
| gap: 6px; |
| padding: 3px 4px; |
| border-radius: 7px; |
| font-size: 9.5px; |
| transition: background-color var(--transition), transform var(--transition), box-shadow var(--transition); |
| } |
|
|
| .file-list-ul li:nth-child(odd) { |
| background: #eef2ff; |
| } |
|
|
| |
| .file-list-ul li:hover { |
| background: #dbeafe; |
| box-shadow: 0 2px 6px rgba(148, 163, 253, 0.35); |
| transform: translateY(-1px); |
| cursor: pointer; |
| } |
|
|
| .index { |
| text-align: center; |
| color: var(--primary); |
| font-weight: 600; |
| } |
|
|
| .name { |
| overflow: hidden; |
| text-overflow: ellipsis; |
| white-space: nowrap; |
| } |
|
|
| .size { |
| color: var(--text-muted); |
| font-size: 8.5px; |
| } |
|
|
| |
|
|
| .row-actions { |
| display: flex; |
| align-items: center; |
| gap: 2px; |
| } |
|
|
| .move-btn, |
| .delete-btn { |
| background: transparent; |
| border: none; |
| cursor: pointer; |
| font-size: 10px; |
| padding: 1px 4px; |
| border-radius: 6px; |
| transition: all var(--transition); |
| color: #6b7280; |
| } |
|
|
| .move-btn:hover { |
| color: var(--primary); |
| background-color: rgba(219, 234, 254, 0.9); |
| transform: translateY(-1px); |
| } |
|
|
| .delete-btn:hover { |
| color: #b91c1c; |
| background-color: #fee2e2; |
| transform: scale(1.05); |
| } |
|
|
| |
|
|
| .card-label { |
| font-size: 10.5px; |
| color: #4b5563; |
| } |
|
|
| .output-input { |
| flex: 1; |
| padding: 7px 10px; |
| font-size: 10.5px; |
| border-radius: 999px; |
| border: 1px solid rgba(209, 213, 219, 1); |
| outline: none; |
| transition: all var(--transition); |
| } |
|
|
| .output-input:focus { |
| border-color: var(--primary); |
| box-shadow: 0 0 0 3px var(--primary-soft2); |
| } |
|
|
| |
|
|
| .actions { |
| margin-top: 6px; |
| display: flex; |
| gap: 8px; |
| flex-wrap: wrap; |
| justify-content: center; |
| } |
|
|
| .btn-main { |
| flex: 1; |
| padding: 9px 0; |
| max-width: 420px; |
| font-size: 12.5px; |
| font-weight: 600; |
| border: none; |
| border-radius: 999px; |
| background: linear-gradient(90deg, var(--primary), var(--primary2)); |
| color: #ffffff; |
| cursor: pointer; |
| box-shadow: 0 10px 22px rgba(37, 99, 235, 0.34); |
| transition: all var(--transition); |
| text-align: center; |
| } |
|
|
| .btn-main:hover { |
| transform: translateY(-1px); |
| box-shadow: 0 14px 30px rgba(37, 99, 235, 0.42); |
| } |
|
|
| .btn-main:active { |
| transform: translateY(1px); |
| box-shadow: 0 6px 14px rgba(15, 23, 42, 0.34); |
| } |
|
|
| .btn-main.disabled, |
| .btn-main:disabled { |
| opacity: 0.45; |
| cursor: default; |
| box-shadow: none; |
| } |
|
|
| .btn-secondary { |
| padding: 9px 16px; |
| font-size: 11px; |
| border-radius: 999px; |
| border: 1px solid #d1d5db; |
| background-color: #ffffff; |
| color: #6b7280; |
| cursor: pointer; |
| transition: all var(--transition); |
| } |
|
|
| .btn-secondary:hover { |
| background-color: #eff6ff; |
| color: #1d4ed8; |
| border-color: #93c5fd; |
| } |
|
|
| |
|
|
| .status { |
| margin-top: 4px; |
| padding: 6px 9px; |
| font-size: 10px; |
| border-radius: 11px; |
| display: inline-flex; |
| align-items: center; |
| gap: 6px; |
| } |
|
|
| .status.ok { |
| background: #ecfdf5; |
| color: #15803d; |
| border: 1px solid #bbf7d0; |
| } |
|
|
| .status.error { |
| background: #fef2f2; |
| color: #b91c1c; |
| border: 1px solid #fecaca; |
| } |
|
|
| .status.loading { |
| background: #eff6ff; |
| color: #1d4ed8; |
| border: 1px solid #bfdbfe; |
| } |
|
|
| .status.warning { |
| background: #fffbeb; |
| color: #92400e; |
| border: 1px solid #fed7aa; |
| } |
|
|
| |
|
|
| .progress { |
| margin-top: 6px; |
| display: flex; |
| flex-direction: column; |
| gap: 4px; |
| } |
|
|
| .progress.hidden { |
| display: none; |
| } |
|
|
| .progress-text { |
| font-size: 9.5px; |
| color: #374151; |
| } |
|
|
| .progress-bar { |
| width: 100%; |
| height: 6px; |
| background-color: #e5e7eb; |
| border-radius: 999px; |
| overflow: hidden; |
| } |
|
|
| .progress-fill { |
| height: 100%; |
| width: 0%; |
| background: linear-gradient(90deg, var(--primary), var(--primary2)); |
| transition: width 0.18s ease; |
| } |
|
|
| |
|
|
| @media (max-width: 640px) { |
| .page { |
| padding: 16px 10px 20px; |
| } |
|
|
| .actions { |
| flex-direction: column; |
| } |
|
|
| .btn-main, |
| .btn-secondary { |
| width: 100%; |
| max-width: none; |
| } |
| } |
| .footer-credit{ |
| text-align: center; |
| margin: 18px 0 6px; |
| font-size: 13px; |
| color: #6b7280; |
| } |