Spaces:
Sleeping
Sleeping
| :root { --bg: #0f0f0f; --surface: #1e1e1e; --primary: #7C4DFF; --text: #fff; --highlight: #2a2a2a; --panel-bg: #151515; --static-color: #A020F0; --accent-orange: #FF7043; --danger-red: #ff5252; --chip-bg: #2c2c2c; --input-bg: #2a2a2a; } | |
| * { box-sizing: border-box; user-select: none; -webkit-tap-highlight-color: transparent; outline: none; } | |
| body { margin: 0; background: var(--bg); color: var(--text); font-family: 'Vazirmatn'; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; min-height: 100vh; padding-bottom: 50px;} | |
| /* --- صفحه خانه (پروژهها) --- */ | |
| #homeScreen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #121212; z-index: 5000; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; } | |
| .home-header { font-size: 1.5rem; font-weight: 900; margin-bottom: 20px; text-align: right; color: #eee; } | |
| .projects-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding-bottom: 80px; } | |
| .project-card { | |
| background: #252525; border-radius: 20px; overflow: hidden; position: relative; | |
| box-shadow: 0 4px 10px rgba(0,0,0,0.3); transition: 0.2s; cursor: pointer; aspect-ratio: 1 / 1.1; display: flex; flex-direction: column; | |
| } | |
| .project-card:active { transform: scale(0.97); } | |
| .card-thumb { width: 100%; height: 70%; background: #333; background-size: cover; background-position: center; position: relative; } | |
| .card-overlay { position: absolute; bottom: 0; width: 100%; height: 50%; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); } | |
| .card-duration { position: absolute; bottom: 10px; right: 10px; background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); padding: 2px 8px; border-radius: 10px; font-size: 0.75rem; color: #fff; font-weight: bold; } | |
| .card-menu { position: absolute; top: 10px; left: 10px; width: 35px; height: 35px; background: rgba(0,0,0,0.4); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem; backdrop-filter: blur(4px); transition: 0.2s; z-index: 10; } | |
| .card-menu:active { background: var(--primary); transform: scale(0.9); } | |
| .card-details { padding: 10px; flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; } | |
| .card-title { font-weight: bold; font-size: 1.1rem; color: #fff; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } | |
| .card-date { font-size: 0.75rem; color: #888; } | |
| #noProjectsPlaceholder { display: none; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: #666; position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%); width: 100%; } | |
| .placeholder-icon { width: 100px; height: 100px; border: 3px solid var(--primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; color: var(--primary); margin-bottom: 20px; animation: pulse 2.5s infinite ease-in-out; background: rgba(124, 77, 255, 0.05); } | |
| .placeholder-text { font-size: 1.1rem; font-weight: bold; color: #ddd; } | |
| @keyframes pulse { 0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(124, 77, 255, 0.7); } 70% { transform: scale(1); box-shadow: 0 0 0 15px rgba(124, 77, 255, 0); } 100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(124, 77, 255, 0); } } | |
| .fab-add { position: fixed; bottom: 50px; left: 50%; transform: translateX(-50%); background: var(--accent-orange); color: #fff; padding: 15px 40px; border-radius: 30px; font-size: 1.1rem; font-weight: bold; box-shadow: 0 5px 20px rgba(255, 112, 67, 0.4); border: none; cursor: pointer; display: flex; align-items: center; gap: 10px; z-index: 5001; transition: 0.2s; font-family: inherit; width: 90%; max-width: 400px; justify-content: center; } | |
| .fab-add:active { transform: translateX(-50%) scale(0.95); } | |
| .action-sheet-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 6000; display: none; align-items: flex-end; justify-content: center; animation: fadeInOverlay 0.2s forwards; padding-bottom: 20px; } | |
| .action-sheet { background: #222; width: 90%; max-width: 500px; border-radius: 20px; padding: 25px; display: flex; flex-direction: column; gap: 15px; transform: translateY(100%); animation: slideUp 0.3s forwards; } | |
| .sheet-title-main { color: #888; font-size: 0.9rem; text-align: center; margin-bottom: 10px; } | |
| .sheet-btn { background: #333; color: #fff; border: none; padding: 15px; border-radius: 15px; font-size: 1rem; font-family: inherit; display: flex; align-items: center; gap: 15px; cursor: pointer; } | |
| .sheet-btn:active { background: #444; } | |
| .sheet-btn.delete-btn { color: #ff5252; } | |
| .sheet-btn i { width: 25px; text-align: center; } | |
| .input-field { width: 100%; background: #111; border: 1px solid #444; color: #fff; padding: 12px; border-radius: 10px; font-family: inherit; font-size: 1rem; margin-bottom: 20px; text-align: center; } | |
| @keyframes slideUp { to { transform: translateY(0); } } | |
| @keyframes fadeInOverlay { from { opacity: 0; } to { opacity: 1; } } | |
| .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); backdrop-filter: blur(5px); z-index: 7000; display: none; align-items: center; justify-content: center; opacity: 0; transition: opacity: 0.3s; } | |
| .modal-overlay.show { opacity: 1; } | |
| .modal-box { background: #222; border: 1px solid #444; width: 90%; max-width: 350px; border-radius: 20px; padding: 25px; text-align: center; transform: scale(0.8); transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); box-shadow: 0 10px 40px rgba(0,0,0,0.5); } | |
| .modal-overlay.show .modal-box { transform: scale(1); } | |
| .modal-icon { font-size: 3rem; color: var(--primary); margin-bottom: 15px; } | |
| .modal-title { font-size: 1.2rem; font-weight: bold; margin-bottom: 10px; color: #fff; } | |
| .modal-desc { font-size: 0.9rem; color: #aaa; margin-bottom: 25px; line-height: 1.5; } | |
| .modal-actions { display: flex; gap: 10px; justify-content: center; } | |
| .modal-btn { flex: 1; padding: 12px; border-radius: 12px; border: none; font-family: inherit; font-weight: bold; cursor: pointer; transition: 0.2s; } | |
| .btn-confirm { background: var(--primary); color: #fff; } | |
| .btn-cancel { background: #333; color: #fff; } | |
| .btn-confirm-action.split { background: #00C853; } | |
| .btn-confirm-action.delete { background: #d32f2f; } | |
| #editorScreen { display: none; width: 100%; flex-direction: column; min-height: 100vh; } | |
| .top-bar { position: sticky; top: 0; height: 60px; background: rgba(30,30,30,0.95); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: space-between; padding: 0 20px; z-index: 100; border-bottom: 1px solid #333; box-shadow: 0 4px 10px rgba(0,0,0,0.3); } | |
| .btn-home { background: transparent; color: #ccc; border: none; font-size: 1.2rem; cursor: pointer; padding: 10px; } | |
| #workspace { | |
| width: 100%; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| background: #000; | |
| padding: 20px 0; | |
| min-height: 300px; | |
| flex-shrink: 0; | |
| overflow: hidden; | |
| } | |
| #scaler { | |
| transition: transform 0.1s ease-out; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| } | |
| #videoContainer { position: relative; background: #000; overflow: hidden; cursor: pointer; box-shadow: 0 0 30px rgba(124, 77, 255, 0.1); border-radius: 8px;} | |
| video { width: 100%; height: 100%; object-fit: contain; display: block; } | |
| #playOverlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; background: rgba(0,0,0,0.2); z-index: 10; transition: opacity 0.2s; } | |
| #playOverlay.playing { opacity: 0; pointer-events: none; } | |
| #playOverlay i { font-size: 4rem; color: rgba(255,255,255,0.8); filter: drop-shadow(0 0 5px rgba(0,0,0,0.8)); pointer-events: none; } | |
| #subtitleLayer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; display: flex; justify-content: center; z-index: 20; } | |
| #activeText { position: absolute; white-space: pre; pointer-events: auto; cursor: move; padding: 0 0 8px 0; line-height: 1; font-weight: bold; transition: background-color 0.2s, text-shadow 0.2s, -webkit-text-stroke 0.2s; transform-origin: center center; text-align: center; left: 50%; transform: translateX(-50%); } | |
| .word-active { background-color: var(--static-color); color: #fff; border-radius: 8px; padding: 0 8px; margin: 0 2px; box-shadow: 0 2px 8px rgba(160, 32, 240, 0.5); -webkit-box-decoration-break: clone; box-decoration-break: clone; } | |
| .word-highlight { color: #00D7FF ; transform: scale(1.2); display:inline-block; text-shadow: 0 0 10px rgba(0, 215, 255, 0.5); } | |
| .magic-bar { padding: 15px 20px 5px 20px; background: var(--bg); display: flex; justify-content: center; position: sticky; top: 60px; z-index: 95; } | |
| .btn-ai-magic { background: linear-gradient(90deg, #FF0080 0%, #7928CA 50%, #FF0080 100%); background-size: 200% auto; color: white; border: none; width: 100%; max-width: 600px; padding: 12px 20px; border-radius: 16px; font-weight: 900; font-size: 1.1rem; display: flex; align-items: center; justify-content: center; gap: 12px; cursor: pointer; box-shadow: 0 4px 20px rgba(121, 40, 202, 0.5); transition: all 0.3s; animation: gradientMove 3s linear infinite; font-family: 'Vazirmatn', sans-serif; } | |
| .btn-ai-magic:active { transform: scale(0.98); } | |
| @keyframes gradientMove { to { background-position: 200% center; } } | |
| .controls-bar { display: flex; justify-content: center; gap: 10px; padding: 10px 10px; background: var(--bg); border-bottom: 1px solid #222; position: sticky; top: 115px; z-index: 90; flex-wrap: wrap; } | |
| .tool-btn { display: flex; flex-direction: column; align-items: center; gap: 5px; background: var(--surface); border: 1px solid #333; color: #aaa; cursor: pointer; transition: 0.2s; padding: 8px 10px; border-radius: 12px; min-width: 70px; flex: 1; max-width: 100px; } | |
| .tool-btn i { font-size: 1.2rem; margin-bottom: 2px; } | |
| .tool-btn span { font-size: 0.75rem; font-weight: bold; } | |
| .tool-btn:hover { color: #fff; background: #2a2a2a; } | |
| .tool-btn.active-tool { color: #fff; background: var(--primary); border-color: var(--primary); } | |
| #toolsContainer { width: 100%; background: var(--panel-bg); overflow: hidden; min-height: 0; transition: none; border-bottom: 1px solid #333; } | |
| .tool-section { display: none; padding: 20px; animation: fadeIn 0.3s ease; max-width: 800px; margin: 0 auto; } | |
| .tool-section.active-section { display: block; } | |
| @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } | |
| .btn-exp { background: var(--primary); color: #fff; border: none; padding: 10px 25px; border-radius: 12px; font-weight: bold; cursor: pointer; transition: 0.2s; font-family: inherit; } | |
| .btn-magic-action { background: linear-gradient(135deg, #FF4081, #7C4DFF); width: 100%; border: none; padding: 12px; border-radius: 12px; color: white; font-weight: bold; font-family: inherit; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; } | |
| .row { margin-bottom: 20px; } | |
| label { display: block; margin-bottom: 8px; color: #ccc; font-size: 0.9rem; } | |
| textarea { width: 100%; background: #222; color: #fff; border: 1px solid #444; padding: 15px; border-radius: 12px; font-family: inherit; font-size: 1rem; margin-bottom: 15px; resize: vertical; min-height: 80px; } | |
| /* --- تغییرات اصلی این بخش: گرید و ابعاد کارت --- */ | |
| .style-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; } | |
| .style-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } | |
| .style-card { | |
| background: #333; | |
| border: 2px solid transparent; | |
| border-radius: 15px; | |
| padding: 5px; | |
| cursor: pointer; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| min-height: 0; /* تغییر: حذف حداقل ارتفاع */ | |
| width: 100%; | |
| position: relative; | |
| transition: all 0.2s; | |
| box-shadow: 0 4px 6px rgba(0,0,0,0.2); | |
| aspect-ratio: 1.4 / 1; /* تغییر: اضافه شدن نسبت ابعاد */ | |
| } | |
| .style-grid-2col .style-card { min-height: 100px; height: auto; gap: 8px; padding: 10px; aspect-ratio: auto; } /* ریست کردن aspect ratio برای بخش بالایی */ | |
| .style-card:active { transform: scale(0.98); } | |
| .style-card.selected { border-color: var(--primary); background: #2a2a2a; } | |
| .style-card.selected::after { content: '\f00c'; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; top: 8px; left: 8px; font-size: 0.7rem; color: #fff; background: var(--primary); width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 5px rgba(0,0,0,0.3); } | |
| .card-info { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 100%; margin-top: 6px; padding-top: 4px; border-top: 1px solid rgba(255,255,255,0.1); text-align: center; } | |
| .card-title-style { font-weight: bold; font-size: 0.8rem; color: #fff; white-space: nowrap; } | |
| .card-desc { color: #aaa; font-size: 0.65rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } | |
| .anim-box { font-family: 'Lalezar'; font-size: 0.9rem; direction: rtl; display: flex; gap: 3px; margin-bottom: 5px; } | |
| .anim-word { color: white; transition: 0.2s; padding: 0 2px; border-radius: 4px;} | |
| .anim-word.active { color: #fff; background-color: #A020F0; transform: scale(1.05); padding: 0 4px; } | |
| .static-anim.active { background-color: var(--static-color) ; color: #fff; } | |
| .card-settings { position: absolute; bottom: 5px; left: 5px; width: 25px; height: 25px; background: rgba(255,255,255,0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 0.8rem; transition: 0.2s; z-index: 5; border: 1px solid rgba(255,255,255,0.1); } | |
| .mode-btn { flex: 1; padding: 12px; border-radius: 8px; background: #333; color: #aaa; border: 2px solid transparent; cursor: pointer; } | |
| .mode-btn.active { background: var(--primary); color: #fff; border-color: var(--primary); } | |
| .font-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } | |
| .font-btn { padding: 15px; background: #333; border-radius: 8px; cursor: pointer; border: 2px solid transparent; position: relative; color: #fff; } | |
| .font-btn.ticked { border-color: var(--primary); } | |
| .font-btn.ticked::after { content: '\f00c'; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; top: 10px; left: 10px; color: var(--primary); } | |
| .custom-style-container { width: 100%; background: linear-gradient(90deg, #252525, #1e1e1e); border: 1px solid #444; border-right: 6px solid var(--primary); border-radius: 12px; margin-bottom: 25px; overflow: hidden; transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s; max-height: 60px; cursor: pointer; position: relative; box-shadow: 0 4px 10px rgba(0,0,0,0.2); } | |
| .custom-style-container.open { max-height: 600px; box-shadow: 0 10px 25px rgba(0,0,0,0.5); border-color: #666; } | |
| .custom-header { height: 60px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; font-family: 'Lalezar'; font-size: 1.2rem; color: #fff; } | |
| .custom-header-title { display: flex; align-items: center; gap: 10px; } | |
| .custom-header-title i { color: var(--primary); font-size: 1.4rem; } | |
| .toggle-icon { transition: transform 0.3s; font-size: 0.9rem; color: #888; } | |
| .custom-style-container.open .toggle-icon { transform: rotate(180deg); color: #fff; } | |
| .custom-content { padding: 20px; opacity: 0; transition: opacity 0.3s ease 0.1s; border-top: 1px solid #333; background: #202020; } | |
| .custom-style-container.open .custom-content { opacity: 1; } | |
| .text-editor-ui { display: flex; flex-direction: column; width: 100%; height: 100%; background-color: var(--surface); padding-bottom: 10px; } | |
| .toolbar-area { | |
| height: 60px; display: flex; align-items: center; justify-content: center; gap: 20px; | |
| opacity: 0; transform: translateY(20px); transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); | |
| pointer-events: none; margin-top: 10px; | |
| } | |
| .toolbar-area.show { opacity: 1; transform: translateY(0); pointer-events: all; } | |
| .tool-circle { | |
| width: 45px; height: 45px; border-radius: 50%; background: #252525; | |
| border: 1px solid #444; color: #ccc; display: flex; align-items: center; justify-content: center; | |
| font-size: 1.1rem; cursor: pointer; transition: 0.2s; | |
| } | |
| .tool-circle:active { transform: scale(0.9); border-color: var(--primary); color: var(--primary); } | |
| .tool-circle.active-state { background: rgba(124, 77, 255, 0.15); border-color: var(--primary); color: var(--primary); } | |
| .fixed-info-bar { width: 100%; height: 30px; display: flex; align-items: center; justify-content: flex-start; padding: 0 20px; border-bottom: 1px solid #222; background-color: var(--surface); } | |
| .global-time-text { color: #888; font-size: 0.8rem; font-family: monospace; direction: ltr; } | |
| .timeline-scroll-area { | |
| flex: 1; width: 100%; overflow-x: auto; white-space: nowrap; padding: 15px 0; | |
| display: flex; align-items: center; scrollbar-width: none; | |
| } | |
| .timeline-scroll-area::-webkit-scrollbar { display: none; } | |
| .spacer { min-width: 50vw; } | |
| .word-chip { | |
| background-color: var(--chip-bg); color: #aaa; padding: 8px 18px; | |
| border-radius: 12px; margin: 0 4px; font-size: 0.95rem; cursor: pointer; | |
| transition: 0.2s; display: inline-flex; align-items: center; justify-content: center; | |
| border: 1px solid transparent; | |
| } | |
| .word-chip.active { background-color: var(--primary); color: #fff; font-weight: bold; transform: scale(1.1); } | |
| .newline-indicator { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; color: #555; margin: 0 10px; } | |
| .bottom-sheet-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 6000; display: none; align-items: flex-end; justify-content: center; } | |
| .bottom-sheet-overlay.show { display: flex; } | |
| .bottom-sheet { | |
| width: 100%; background: var(--surface); border-top-left-radius: 30px; border-top-right-radius: 30px; | |
| padding: 25px 25px 80px 25px; transform: translateY(100%); | |
| transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1); | |
| display: none; flex-direction: column; gap: 20px; | |
| box-shadow: 0 -10px 40px rgba(0,0,0,0.6); | |
| } | |
| .bottom-sheet.active { display: flex; transform: translateY(0); } | |
| .sheet-handle { width: 50px; height: 5px; background: #333; border-radius: 3px; margin: 0 auto 5px auto; } | |
| .sheet-title { text-align: center; color: #888; font-size: 0.9rem; margin-bottom: 5px; } | |
| .sheet-actions { display: flex; gap: 12px; margin-top: 10px; } | |
| .action-btn { flex: 1; padding: 15px; border-radius: 18px; border: none; font-family: inherit; font-size: 1rem; font-weight: bold; cursor: pointer; } | |
| .btn-cancel-sheet { background: #333; color: #ccc; } | |
| .btn-apply-sheet { background: var(--primary); color: #fff; } | |
| .btn-delete-sheet { background: var(--danger-red); color: #fff; } | |
| .sheet-input { width: 100%; background: var(--input-bg); border: none; border-radius: 18px; padding: 18px; color: white; font-family: inherit; font-size: 1.1rem; text-align: center; } | |
| .sheet-meta-row { display: flex; align-items: center; justify-content: center; gap: 15px; background: #252525; padding: 10px; border-radius: 15px; } | |
| .time-display-text { color: #bbb; font-family: monospace; font-size: 1rem; letter-spacing: 1px; direction: ltr; } | |
| .mini-play-btn { width: 35px; height: 35px; border-radius: 50%; background: #333; color: #fff; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; } | |
| .time-control-row { display: flex; align-items: center; justify-content: space-between; background: var(--input-bg); padding: 10px 15px; border-radius: 18px; } | |
| .time-label { color: #aaa; font-size: 0.9rem; width: 50px; } | |
| .time-adjuster { display: flex; align-items: center; gap: 15px; } | |
| .time-btn { width: 40px; height: 40px; background: #333; border: none; border-radius: 12px; color: #fff; font-size: 1.2rem; cursor: pointer; display: flex; align-items: center; justify-content: center; } | |
| .time-value { font-family: monospace; font-size: 1.1rem; letter-spacing: 1px; width: 60px; text-align: center; direction: ltr; } | |
| .delete-icon-wrap { width: 70px; height: 70px; border-radius: 50%; background: rgba(255, 82, 82, 0.1); color: var(--danger-red); display: flex; align-items: center; justify-content: center; font-size: 2rem; margin: 0 auto; } | |
| .delete-msg { text-align: center; color: #fff; font-size: 1.1rem; margin-bottom: 10px; line-height: 1.6; } | |
| .highlight-word { color: var(--primary); font-weight: bold; padding: 0 5px; } | |
| /* --- استایلهای لودینگ نئونی جدید --- */ | |
| #loader { | |
| --color-1: #b000ff; | |
| --color-2: #0077ff; | |
| --color-3: #00eeff; | |
| --bg-dark: #090909; | |
| --bg-light: #1a1a2e; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| z-index: 6000; | |
| display: none; | |
| justify-content: center; | |
| align-items: center; | |
| background: radial-gradient(circle at center, var(--bg-light) 0%, var(--bg-dark) 100%); | |
| font-family: 'Tahoma', sans-serif; | |
| overflow: hidden; | |
| } | |
| /* استایل صفحه نتیجه */ | |
| #resultScreen { | |
| position: fixed; top:0; left:0; width:100%; height:100%; background: var(--bg); z-index: 6000; display: none; flex-direction: column; justify-content: center; align-items: center; | |
| } | |
| .loader-wrapper { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| position: relative; | |
| } | |
| /* هاله نور پشت کل لودر */ | |
| .loader-wrapper::before { | |
| content: ''; | |
| position: absolute; | |
| top: 20%; | |
| width: 300px; | |
| height: 300px; | |
| background: radial-gradient(circle, rgba(124, 77, 255, 0.15) 0%, transparent 70%); | |
| border-radius: 50%; | |
| z-index: -1; | |
| filter: blur(20px); | |
| } | |
| .modern-loader { | |
| position: relative; | |
| width: 160px; | |
| height: 160px; | |
| margin-bottom: 50px; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| } | |
| .loader-ring { | |
| position: absolute; | |
| border-radius: 50%; | |
| border: 3px solid transparent; | |
| border-top-color: var(--ring-color); | |
| animation: spin var(--dur) cubic-bezier(0.5, 0, 0.5, 1) infinite; | |
| } | |
| /* اضافه کردن نقطه نورانی به سر حلقهها */ | |
| .loader-ring::before { | |
| content: ''; | |
| position: absolute; | |
| border-radius: 50%; | |
| width: 8px; | |
| height: 8px; | |
| background: var(--ring-color); | |
| box-shadow: 0 0 15px 2px var(--ring-color); | |
| top: -5px; | |
| right: 50%; | |
| transform: translateX(50%); | |
| } | |
| /* حلقه اول */ | |
| .loader-ring:nth-child(1) { | |
| width: 100%; | |
| height: 100%; | |
| --ring-color: var(--color-1); | |
| --dur: 2.5s; | |
| filter: drop-shadow(0 0 10px rgba(176, 0, 255, 0.5)); | |
| } | |
| /* حلقه دوم */ | |
| .loader-ring:nth-child(2) { | |
| width: 75%; | |
| height: 75%; | |
| --ring-color: var(--color-2); | |
| --dur: 2s; | |
| animation-direction: reverse; | |
| filter: drop-shadow(0 0 10px rgba(0, 119, 255, 0.5)); | |
| } | |
| /* حلقه سوم */ | |
| .loader-ring:nth-child(3) { | |
| width: 50%; | |
| height: 50%; | |
| --ring-color: var(--color-3); | |
| --dur: 1.5s; | |
| filter: drop-shadow(0 0 10px rgba(0, 238, 255, 0.5)); | |
| } | |
| .loader-icon { | |
| font-size: 3rem; | |
| color: #fff; | |
| animation: float-pulse 3s ease-in-out infinite; | |
| filter: drop-shadow(0 0 20px var(--color-1)); | |
| z-index: 10; | |
| } | |
| .text-container { | |
| text-align: center; | |
| position: relative; | |
| z-index: 2; | |
| } | |
| .loading-title { | |
| font-size: 1.5rem; | |
| font-weight: 800; | |
| margin-bottom: 12px; | |
| letter-spacing: -0.5px; | |
| background: linear-gradient(135deg, #fff 30%, var(--color-2), var(--color-1)); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| text-shadow: 0 0 30px rgba(124, 77, 255, 0.3); | |
| animation: text-glow 3s ease-in-out infinite alternate; | |
| } | |
| .loading-sub { | |
| font-size: 1rem; | |
| color: #a0a0a0; | |
| font-weight: 300; | |
| letter-spacing: 1px; | |
| opacity: 0.8; | |
| animation: fade-text 2s infinite alternate; | |
| } | |
| /* انیمیشنها */ | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| @keyframes float-pulse { | |
| 0%, 100% { | |
| transform: scale(1) translateY(0); | |
| opacity: 0.8; | |
| filter: drop-shadow(0 0 10px var(--color-1)); | |
| } | |
| 50% { | |
| transform: scale(1.1) translateY(-5px); | |
| opacity: 1; | |
| filter: drop-shadow(0 0 25px var(--color-3)); | |
| } | |
| } | |
| @keyframes text-glow { | |
| from { text-shadow: 0 0 10px rgba(124, 77, 255, 0.2); } | |
| to { text-shadow: 0 0 20px rgba(124, 77, 255, 0.6); } | |
| } | |
| @keyframes fade-text { | |
| from { opacity: 0.5; } | |
| to { opacity: 1; } | |
| } | |
| /* ========================================= */ | |
| /* === استایلهای بخش ظاهر (نئونی) === */ | |
| /* ========================================= */ | |
| #section-appearance { | |
| --track-off: #27272a; | |
| --neon-primary: #8b5cf6; | |
| --neon-secondary: #ec4899; | |
| } | |
| .controls-panel { | |
| width: 100%; | |
| background: #18181b; | |
| border-radius: 24px; | |
| padding: 25px; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); | |
| border: 1px solid #333; | |
| margin-top: 10px; | |
| } | |
| .control-group { | |
| margin-bottom: 30px; | |
| } | |
| .control-group:last-child { margin-bottom: 0; } | |
| .header-neon { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 15px; | |
| } | |
| .title-neon { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| font-weight: 700; | |
| font-size: 0.95rem; | |
| color: #e4e4e7; | |
| } | |
| .title-neon i { | |
| color: var(--neon-primary); | |
| font-size: 1.1rem; | |
| text-shadow: 0 0 10px rgba(139, 92, 246, 0.5); | |
| } | |
| .percent-badge { | |
| font-family: monospace; | |
| font-size: 1rem; | |
| font-weight: bold; | |
| color: #fff; | |
| background: rgba(139, 92, 246, 0.15); | |
| padding: 4px 12px; | |
| border-radius: 8px; | |
| border: 1px solid rgba(139, 92, 246, 0.3); | |
| min-width: 60px; | |
| text-align: center; | |
| } | |
| .range-container { | |
| position: relative; | |
| width: 100%; | |
| height: 30px; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .range-container input[type=range] { | |
| -webkit-appearance: none; | |
| width: 100%; | |
| background: transparent; | |
| cursor: pointer; | |
| z-index: 2; | |
| margin: 0; | |
| } | |
| .range-container input[type=range]::-webkit-slider-runnable-track { | |
| width: 100%; | |
| height: 8px; | |
| background: var(--track-off); | |
| border-radius: 20px; | |
| border: none; | |
| background-image: linear-gradient(90deg, var(--neon-primary), var(--neon-secondary)); | |
| background-size: 0% 100%; | |
| background-repeat: no-repeat; | |
| } | |
| .range-container input[type=range]::-webkit-slider-thumb { | |
| -webkit-appearance: none; | |
| height: 24px; | |
| width: 24px; | |
| border-radius: 50%; | |
| background: #fff; | |
| margin-top: -8px; | |
| border: 4px solid #18181b; | |
| box-shadow: 0 0 0 2px var(--neon-primary), 0 0 15px rgba(139, 92, 246, 0.8); | |
| transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .range-container input[type=range]:active::-webkit-slider-thumb { | |
| transform: scale(1.3); | |
| background: var(--neon-primary); | |
| border-color: #fff; | |
| box-shadow: 0 0 0 0 transparent, 0 0 25px rgba(236, 72, 153, 0.9); | |
| } | |
| .center-marker { | |
| position: absolute; | |
| left: 50%; | |
| top: 50%; | |
| transform: translate(-50%, -50%); | |
| width: 2px; | |
| height: 12px; | |
| background: rgba(255,255,255,0.2); | |
| z-index: 1; | |
| pointer-events: none; | |
| } | |
| /* ========================================= */ | |
| /* === PRO COLOR PICKER STYLES (iOS/Luxury) === */ | |
| /* ========================================= */ | |
| :root { | |
| --glass: rgba(28,28,30,.72); | |
| --glass2: rgba(44,44,46,.80); | |
| --stroke: rgba(255,255,255,.10); | |
| --shadow-lg: 0 22px 60px rgba(0,0,0,.62); | |
| --shadow-md: 0 12px 30px rgba(0,0,0,.46); | |
| --shadow-sm: 0 8px 18px rgba(0,0,0,.36); | |
| --separator: rgba(84,84,88,.38); | |
| --ok: #34C759; | |
| } | |
| .toast-notification{ position: fixed; top: calc(16px + env(safe-area-inset-top)); left: 50%; transform: translateX(-50%) translateY(-18px); background: rgba(28,28,30,.78); -webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%); border: 1px solid rgba(255,255,255,.12); box-shadow: var(--shadow-md); color: #fff; padding: 12px 18px; border-radius: 999px; z-index: 20000; font-size: .9rem; font-weight: 900; opacity: 0; visibility: hidden; transition: opacity .25s ease, transform .25s ease, visibility .25s ease; display:flex; align-items:center; gap: 10px; pointer-events:none; } | |
| .toast-notification i{ color: var(--ok); } | |
| .toast-notification.show{ opacity:1; visibility: visible; transform: translateX(-50%) translateY(0); } | |
| .picker-backdrop{ position: fixed; inset: 0; background: rgba(0,0,0,.46); opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; z-index: 9998; } | |
| .picker-backdrop.active{ opacity: 1; visibility: visible; } | |
| .picker-modal{ position: fixed; bottom: 0; left: 50%; width: min(100%, 720px); transform: translateX(-50%) translateY(110%); transition: transform .28s cubic-bezier(0.2,0.8,0.2,1); background: rgba(28,28,30,.74); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); border: 1px solid rgba(255,255,255,.12); box-shadow: var(--shadow-lg); border-radius: 30px 30px 0 0; z-index: 9999; display:flex; flex-direction:column; max-height: 92vh; padding-bottom: calc(14px + env(safe-area-inset-bottom)); } | |
| .picker-modal.active{ transform: translateX(-50%) translateY(0); } | |
| .picker-header{ display:flex; align-items:center; justify-content:space-between; padding: 14px 16px; border-bottom: 1px solid var(--separator); flex-shrink: 0; } | |
| .picker-icon{ width: 42px; height: 42px; border-radius: 999px; background: rgba(120,120,128,.22); border: 1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:center; color:#fff; cursor:pointer; transition: transform .12s ease; } | |
| .picker-icon:active{ transform: scale(.96); } | |
| .picker-tabs{ margin: 12px 16px 10px 16px; padding: 4px; border-radius: 14px; background: rgba(120,120,128,.18); border: 1px solid rgba(255,255,255,.10); display:flex; gap: 4px; flex-shrink: 0; } | |
| .picker-tab{ flex:1; text-align:center; padding: 10px 0; border-radius: 10px; cursor:pointer; color: rgba(235,235,245,.62); font-weight: 900; transition: background .2s ease, color .2s ease; user-select:none; } | |
| .picker-tab.active{ background: rgba(255,255,255,.14); color:#fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.10); } | |
| .view-section{ display:none; overflow-y:auto; padding-bottom: 10px; } | |
| .view-section.active-view{ display:block; } | |
| /* Spectrum */ | |
| .spectrum-container{ margin: 0 16px 6px 16px; height: 220px; border-radius: 18px; border: 1px solid rgba(255,255,255,.10); background: linear-gradient(to right, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); overflow:hidden; position:relative; cursor: crosshair; direction:ltr; box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); } | |
| .spectrum-container::after{ content:""; position:absolute; inset:0; background: radial-gradient(900px 260px at 15% 0%, rgba(255,255,255,.14), transparent 55%); pointer-events:none; } | |
| .spectrum-overlay{ position:absolute; inset:0; background: linear-gradient(to bottom, transparent 0%, #ffffff 100%); mix-blend-mode: normal; } | |
| .spectrum-handle{ position:absolute; width: 28px; height: 28px; border-radius: 999px; border: 3px solid rgba(255,255,255,.95); box-shadow: 0 10px 18px rgba(0,0,0,.45); transform: translate(-50%, -50%); pointer-events:none; background: rgba(0,0,0,.06); } | |
| /* GRID */ | |
| .grid-view-container{ margin: 0 16px 0 16px; padding: 12px; background: rgba(120,120,128,.10); border: 1px solid rgba(255,255,255,.10); border-radius: 18px; -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); display:grid; grid-template-columns: repeat(auto-fill, minmax(28px, 1fr)); gap: 8px; max-height: 320px; overflow-y: auto; overscroll-behavior: contain; scroll-behavior: smooth; } | |
| .grid-view-container::-webkit-scrollbar{ width: 10px; } | |
| .grid-view-container::-webkit-scrollbar-track{ background: rgba(255,255,255,.04); border-radius: 999px; } | |
| .grid-view-container::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.12); border-radius: 999px; border: 2px solid rgba(0,0,0,.0); background-clip: padding-box; } | |
| .grid-item{ aspect-ratio: 1; border-radius: 10px; cursor:pointer; border: 1px solid rgba(255,255,255,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 8px 14px rgba(0,0,0,.12); transition: transform .12s ease, box-shadow .18s ease, border-color .18s ease; position: relative; overflow: hidden; } | |
| .grid-item::after{ content:""; position:absolute; inset:0; background: radial-gradient(120% 120% at 20% 15%, rgba(255,255,255,.18), transparent 55%); pointer-events:none; opacity: .55; } | |
| .grid-item:active{ transform: scale(.94); } | |
| .grid-item.selected{ border-color: rgba(255,255,255,.90); box-shadow: 0 0 0 3px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.12), 0 12px 22px rgba(0,0,0,.18); transform: scale(1.02); } | |
| .grid-item.selected::before{ content:"\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position:absolute; right: 6px; top: 6px; width: 16px; height: 16px; border-radius: 999px; display:flex; align-items:center; justify-content:center; font-size: 10px; color: rgba(0,0,0,.80); background: rgba(255,255,255,.92); box-shadow: 0 6px 12px rgba(0,0,0,.22); z-index: 2; } | |
| /* Manual View */ | |
| .manual-view-container{ padding: 10px 16px; display:flex; flex-direction:column; gap: 10px; } | |
| .manual-control-row{ display:flex; align-items:center; gap: 10px; justify-content:space-between; } | |
| .manual-num-input{ width: 64px; border-radius: 14px; padding: 10px 0; text-align:center; font-weight: 900; font-size: 1.05rem; color:#fff; background: rgba(120,120,128,.22); border: 1px solid rgba(255,255,255,.10); } | |
| .manual-slider-group{ flex:1; display:flex; flex-direction:column; gap: 6px; } | |
| .manual-label-text{ font-size:.82rem; color: rgba(235,235,245,.62); font-weight:900; padding-right: 6px; } | |
| .rgb-slider{ -webkit-appearance:none; appearance:none; width: 100%; height: 40px; background: transparent; border-radius: 999px; --track-bg: rgba(255,255,255,.10); } | |
| .rgb-slider::-webkit-slider-runnable-track{ height: 14px; border-radius: 999px; background: var(--track-bg); box-shadow: inset 0 1px 0 rgba(255,255,255,.10); } | |
| .rgb-slider::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width: 28px; height: 28px; border-radius: 999px; background: rgba(255,255,255,.95); border: 2px solid rgba(255,255,255,.85); margin-top: -7px; box-shadow: 0 12px 20px rgba(0,0,0,.35); cursor:pointer; } | |
| .hex-row{ margin-top: 6px; display:flex; align-items:center; gap: 10px; } | |
| .hex-input{ width: 120px; border-radius: 14px; padding: 12px 10px; text-align:center; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-weight: 900; color:#fff; background: rgba(120,120,128,.22); border: 1px solid rgba(255,255,255,.10); letter-spacing: .5px; } | |
| .hex-label{ color: rgba(235,235,245,.56); font-weight: 900; font-size: .9rem; } | |
| /* Global Sliders (Bright/Alpha) */ | |
| .sliders-global-wrapper{ margin-top: 10px; padding: 14px 16px 6px 16px; border-top: 1px solid var(--separator); flex-shrink: 0; } | |
| .global-slider-row{ display:flex; align-items:center; gap: 10px; margin-bottom: 22px; position:relative; } | |
| .global-slider-row:last-child{ margin-bottom: 8px; } | |
| .global-slider-container{ flex:1; position:relative; height: 42px; border-radius: 18px; background: rgba(120,120,128,.12); border: 1px solid rgba(255,255,255,.10); padding: 0 12px; display:flex; align-items:center; -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); } | |
| .global-label-top{ position:absolute; right: 2px; top: -22px; font-size: .82rem; font-weight: 900; color: rgba(235,235,245,.62); } | |
| .value-pill{ min-width: 84px; height: 42px; border-radius: 999px; background: rgba(120,120,128,.22); border: 1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:center; gap: 8px; font-weight: 900; color:#fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); } | |
| .value-pill i{ font-size: .95rem; color: rgba(235,235,245,.72); } | |
| .common-slider{ -webkit-appearance:none; appearance:none; width: 100%; height: 40px; background: transparent; border-radius: 999px; --track-bg: rgba(255,255,255,.10); direction: ltr ; } | |
| .common-slider::-webkit-slider-runnable-track{ height: 14px; border-radius: 999px; background: var(--track-bg); box-shadow: inset 0 1px 0 rgba(255,255,255,.10); } | |
| .common-slider::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width: 30px; height: 30px; border-radius: 999px; background: rgba(255,255,255,.95); border: 2px solid rgba(255,255,255,.85); margin-top: -8px; box-shadow: 0 12px 20px rgba(0,0,0,.35); cursor:pointer; } | |
| /* FIX: Photoshop Checkered Pattern for Alpha Container & Preview */ | |
| .alpha-checkered { | |
| width: 100%; | |
| height: 42px; | |
| border-radius: 16px; | |
| background-image: conic-gradient(#dedede 0.25turn, #ffffff 0.25turn 0.5turn, #dedede 0.5turn 0.75turn, #ffffff 0.75turn); | |
| background-size: 14px 14px; | |
| background-position: top left; | |
| overflow: hidden; | |
| display: flex; | |
| align-items: center; | |
| padding: 0 12px; | |
| border: 1px solid rgba(255,255,255,.10); | |
| } | |
| /* Footer & Large Preview Fix */ | |
| .picker-footer{ margin-top: auto; padding: 12px 16px 0 16px; display:flex; align-items:center; justify-content:space-between; gap: 12px; border-top: 1px solid var(--separator); flex-shrink: 0; background: transparent; } | |
| /* FIX: Photoshop Checkered Pattern for Large Preview */ | |
| .large-preview { | |
| width: 64px; | |
| height: 64px; | |
| border-radius: 18px; | |
| border: 1px solid rgba(255,255,255,.12); | |
| box-shadow: 0 14px 24px rgba(0,0,0,.24); | |
| flex-shrink: 0; | |
| /* الگوی شطرنجی دقیق فتوشاپ */ | |
| background-image: conic-gradient(#dedede 0.25turn, #ffffff 0.25turn 0.5turn, #dedede 0.5turn 0.75turn, #ffffff 0.75turn); | |
| background-size: 16px 16px; | |
| background-position: center; | |
| } | |
| .saved-colors-container{ display:flex; gap: 10px; align-items:center; flex-wrap: wrap; flex:1; justify-content:flex-end; max-height: 90px; overflow-y:auto; padding-right: 4px; } | |
| .btn-save-text{ height: 38px; border-radius: 999px; padding: 0 14px; display:flex; align-items:center; justify-content:center; gap: 8px; font-weight: 900; font-size: .82rem; color: rgba(255,255,255,.92); background: rgba(120,120,128,.18); border: 1px solid rgba(255,255,255,.10); cursor:pointer; user-select:none; transition: transform .12s ease, background .18s ease; flex-shrink:0; } | |
| .btn-save-text:active{ transform: scale(.98); background: rgba(10,132,255,.22); border-color: rgba(10,132,255,.35); } | |
| .saved-color-wrapper{ position:relative; width: 42px; height: 42px; flex-shrink:0; } | |
| .saved-circle{ width:100%; height:100%; border-radius: 14px; border: 1px solid rgba(255,255,255,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 12px 18px rgba(0,0,0,.18); cursor:pointer; transition: transform .12s ease; } | |
| .saved-circle:active{ transform: scale(.94); } | |
| .mini-delete-btn{ position:absolute; top:-6px; right:-6px; width: 20px; height: 20px; border-radius: 999px; background: rgba(255,69,58,.95); border: 2px solid rgba(28,28,30,.88); display:flex; align-items:center; justify-content:center; color:#fff; cursor:pointer; box-shadow: 0 10px 16px rgba(0,0,0,.30); transition: transform .12s ease; z-index:2; } | |
| .mini-delete-btn i{ font-size: 10px; } | |
| .mini-delete-btn:active{ transform: scale(.92); } | |
| /* Color Triggers inside accordion */ | |
| .color-trigger-row{ display:flex; gap: 12px; margin: 14px 0 16px 0; } | |
| .color-trigger{ flex:1; border-radius: 16px; background: rgba(44,44,46,.55); border: 1px solid rgba(255,255,255,.10); padding: 12px 12px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; position:relative; transition: transform .12s ease; } | |
| .color-trigger:active{ transform: scale(.992); } | |
| .color-trigger::before{ content:"\f054"; font-family: "Font Awesome 6 Free"; font-weight: 900; position:absolute; left: 12px; color: rgba(235,235,245,.42); font-size: .85rem; } | |
| .color-label{ color: rgba(235,235,245,.80); font-weight: 900; font-size: .92rem; padding-left: 18px; } | |
| .color-preview-circle{ width: 34px; height: 34px; border-radius: 12px; border: 1px solid rgba(255,255,255,.55); box-shadow: 0 10px 18px rgba(0,0,0,.28); } | |
| /* Delete modal specific */ | |
| .delete-overlay{ position: fixed; inset: 0; background: rgba(0,0,0,.58); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); z-index: 10000; display:none; align-items:center; justify-content:center; opacity:0; transition: opacity .22s ease; padding: 18px; } | |
| .delete-overlay.active{ display:flex; opacity:1; } | |
| .delete-box{ width: min(340px, 92vw); border-radius: 22px; background: rgba(28,28,30,.88); border: 1px solid rgba(255,255,255,.12); box-shadow: var(--shadow-lg); padding: 22px 18px; text-align:center; transform: scale(.92); opacity:0; transition: transform .22s cubic-bezier(0.2,0.8,0.2,1), opacity .22s ease; } | |
| .delete-overlay.active .delete-box{ transform: scale(1); opacity:1; } | |
| .del-preview{ width: 64px; height: 64px; border-radius: 18px; margin: 0 auto 14px auto; border: 1px solid rgba(255,255,255,.12); box-shadow: 0 14px 22px rgba(0,0,0,.22); } | |
| .del-title{ color:#fff; font-weight: 900; font-size: 1.02rem; margin: 8px 0 16px 0; } | |
| .del-actions{ display:flex; gap: 10px; } | |
| .del-btn{ flex:1; border:none; border-radius: 16px; padding: 12px 0; font-weight: 900; font-size: 1rem; cursor:pointer; transition: transform .12s ease, filter .12s ease; } | |
| .del-btn:active{ transform: scale(.99); filter: brightness(1.05); } | |
| .del-btn-confirm{ background: rgba(255,69,58,.95); color:#fff; } | |
| .del-btn-cancel{ background: rgba(120,120,128,.22); color:#fff; border: 1px solid rgba(255,255,255,.10); } | |
| /* ================================================== */ | |
| /* === استایلهای جدید برای بخش ظاهر (Appearance) === */ | |
| /* ================================================== */ | |
| #section-appearance .controls-panel { | |
| padding: 15px; | |
| } | |
| /* پنلهای داخلی برای گروهبندی کنترلها */ | |
| .control-group-panel { | |
| background-color: #1f1f23; | |
| border: 1px solid #3a3a3e; | |
| border-radius: 18px; | |
| padding: 20px; | |
| margin-bottom: 20px; | |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); | |
| } | |
| .control-group-panel:last-child { | |
| margin-bottom: 0; | |
| } | |
| /* بخش پیشنمایش زنده برای کادر */ | |
| .box-preview-area { | |
| width: 100%; | |
| min-height: 90px; | |
| margin-bottom: 25px; | |
| padding: 15px; | |
| /* --- تغییر اصلی اینجاست --- */ | |
| background-image: conic-gradient(#444 0.25turn, #333 0.25turn 0.5turn, #444 0.5turn 0.75turn, #333 0.75turn); | |
| background-size: 20px 20px; | |
| /* -------------------------- */ | |
| border-radius: 12px; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| border: 1px solid #555; | |
| } | |
| .box-preview-element { | |
| color: #fff; | |
| font-size: 1.2rem; | |
| font-weight: bold; | |
| display: inline-block; | |
| white-space: nowrap; | |
| /* اینجا line-height وجود نداشت */ | |
| transition: all 0.15s ease-out; | |
| } | |
| /* ======================================== */ | |
| /* === استایلهای انیمیشن بازتولید زیرنویس (جدید) === */ | |
| /* ======================================== */ | |
| .sheet-spinner-ring { | |
| width: 60px; | |
| height: 60px; | |
| border-radius: 50%; | |
| border: 4px solid #333; | |
| border-top-color: var(--primary); | |
| border-right-color: var(--primary); | |
| animation: ringSpin 1s cubic-bezier(0.5, 0, 0.5, 1) infinite; | |
| } | |
| @keyframes ringSpin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .success-checkmark-anim { | |
| width: 80px; | |
| height: 80px; | |
| border-radius: 50%; | |
| background: rgba(0, 230, 118, 0.15); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| animation: successPop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); | |
| } | |
| .success-checkmark-anim i { | |
| font-size: 3rem; | |
| color: #00e676; | |
| animation: checkScale 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.1s both; | |
| } | |
| @keyframes successPop { | |
| from { transform: scale(0); opacity: 0; } | |
| to { transform: scale(1); opacity: 1; } | |
| } | |
| @keyframes checkScale { | |
| from { transform: scale(0); } | |
| to { transform: scale(1); } | |
| } | |
| /* ======================================== */ | |
| /* === استایلهای دکمههای تعداد کلمات === */ | |
| /* ======================================== */ | |
| .word-count-grid { | |
| display: flex; | |
| overflow-x: auto; | |
| padding: 10px 0; | |
| gap: 10px; | |
| width: 100%; | |
| scrollbar-width: none; | |
| -ms-overflow-style: none; | |
| justify-content: space-between; | |
| } | |
| .word-count-grid::-webkit-scrollbar { | |
| display: none; | |
| } | |
| .wc-btn { | |
| flex: 0 0 auto; | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 14px; | |
| background: #333; | |
| color: #fff; | |
| border: 1px solid #444; | |
| font-size: 1.2rem; | |
| font-weight: bold; | |
| cursor: pointer; | |
| transition: 0.2s; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .wc-btn:active { | |
| background: var(--primary); | |
| border-color: var(--primary); | |
| transform: scale(0.9); | |
| } | |
| /* ======================================== */ | |
| /* === استایلهای جدید Trimmer (ویرایش زمان) === */ | |
| /* ======================================== */ | |
| .trimmer-header { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| margin-bottom: 25px; | |
| width: 100%; | |
| } | |
| .trimmer-play-btn { | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| border: 2px solid var(--accent-orange); | |
| background: transparent; | |
| color: var(--accent-orange); | |
| font-size: 1.4rem; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| transition: transform 0.2s; | |
| } | |
| .trimmer-play-btn:active { | |
| transform: scale(0.9); | |
| } | |
| .trimmer-time-display { | |
| font-family: monospace; | |
| font-size: 1.2rem; | |
| color: #fff; | |
| font-weight: bold; | |
| direction: ltr; | |
| } | |
| .trimmer-body { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| width: 100%; | |
| gap: 10px; | |
| margin-bottom: 20px; | |
| } | |
| .word-preview-side { | |
| width: 60px; | |
| height: 60px; | |
| background: #222; | |
| border-radius: 12px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: #777; | |
| font-size: 0.9rem; | |
| font-weight: bold; | |
| text-align: center; | |
| flex-shrink: 0; | |
| } | |
| .trimmer-container { | |
| flex: 1; | |
| position: relative; | |
| height: 60px; | |
| background: #000; | |
| border-radius: 10px; | |
| overflow: hidden; | |
| /* اگر بخواهیم هندلها بیرون نزنند */ | |
| } | |
| /* نوار کلی (ترک) */ | |
| .timeline-strip { | |
| position: absolute; | |
| top: 50%; | |
| left: 10px; /* مارجین برای هندلها */ | |
| right: 10px; | |
| height: 40px; | |
| transform: translateY(-50%); | |
| background: linear-gradient(90deg, #333 0%, #444 50%, #333 100%); | |
| background-size: 20px 100%; | |
| border-radius: 4px; | |
| } | |
| /* بخش فعال (بین دو هندل) */ | |
| .trim-track-active { | |
| position: absolute; | |
| top: 0; | |
| bottom: 0; | |
| background: rgba(255, 255, 255, 0.15); | |
| border-top: 2px solid #FDD835; | |
| border-bottom: 2px solid #FDD835; | |
| left: 0; /* این مقادیر با JS تغییر میکنن */ | |
| right: 0; /* این مقادیر با JS تغییر میکنن */ | |
| } | |
| /* هندلهای زرد رنگ */ | |
| .trim-handle { | |
| position: absolute; | |
| top: 0; | |
| bottom: 0; | |
| width: 20px; | |
| background: #FDD835; | |
| cursor: col-resize; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: #000; | |
| font-size: 0.8rem; | |
| z-index: 10; | |
| border-radius: 4px; | |
| } | |
| .trim-handle.left { | |
| left: 0; /* JS کنترل میکنه */ | |
| border-top-left-radius: 8px; | |
| border-bottom-left-radius: 8px; | |
| } | |
| .trim-handle.right { | |
| right: 0; /* JS کنترل میکنه (right: 0 یعنی چسبیده به ته) */ | |
| /* اما برای پوزیشن ابسولوت نسبت به پرنت، ما از style.left استفاده میکنیم */ | |
| border-top-right-radius: 8px; | |
| border-bottom-right-radius: 8px; | |
| } | |
| .trimmer-current-word { | |
| text-align: center; | |
| background: #333; | |
| padding: 10px 20px; | |
| border-radius: 16px; | |
| color: #fff; | |
| font-size: 1.1rem; | |
| font-weight: bold; | |
| align-self: center; | |
| margin-bottom: 10px; | |
| min-width: 100px; | |
| } | |
| /* ========================================= */ | |
| /* === استایلهای جدید مدال تنظیمات داینامیک === */ | |
| /* ========================================= */ | |
| .settings-modal { | |
| position: fixed; bottom: 0; left: 0; width: 100%; height: auto; max-height: 85vh; | |
| background: #1c1c1e; border-top: 1px solid rgba(255,255,255,.15); | |
| border-radius: 24px 24px 0 0; z-index: 21000; | |
| display: flex; flex-direction: column; transform: translateY(100%); | |
| transition: transform 0.3s cubic-bezier(0.19, 1, 0.22, 1); | |
| padding-bottom: 40px; /* فضای امن پایین */ | |
| box-shadow: 0 -10px 40px rgba(0,0,0,0.5); | |
| } | |
| .settings-modal.active { transform: translateY(0); } | |
| .settings-content { padding: 25px 20px; overflow-y: auto; } | |
| .settings-row { | |
| display: flex; align-items: center; justify-content: space-between; | |
| background: #252525; padding: 12px 16px; border-radius: 18px; | |
| margin-bottom: 12px; border: 1px solid #333; | |
| transition: transform 0.2s, background 0.2s; cursor: pointer; | |
| } | |
| .settings-row:active { transform: scale(0.98); background: #2a2a2a; } | |
| .settings-left-part { display: flex; align-items: center; gap: 14px; } | |
| .settings-icon-box { | |
| width: 38px; height: 38px; border-radius: 12px; | |
| background: rgba(124, 77, 255, 0.1); color: var(--primary); | |
| display: flex; align-items: center; justify-content: center; | |
| box-shadow: 0 4px 8px rgba(0,0,0,0.2); | |
| } | |
| .settings-icon-box svg { fill: var(--primary); } | |
| .settings-label { font-weight: 900; color: #eee; font-size: 0.95rem; } | |
| .color-ring-container { | |
| width: 42px; height: 42px; border-radius: 50%; | |
| border: 2px solid rgba(255,255,255,0.15); padding: 3px; | |
| display: flex; align-items: center; justify-content: center; transition: border-color 0.2s; | |
| } | |
| .settings-row:hover .color-ring-container { border-color: var(--primary); } | |
| .color-circle-inner { | |
| width: 100%; height: 100%; border-radius: 50%; | |
| box-shadow: inset 0 0 10px rgba(0,0,0,0.2); border: 1px solid rgba(0,0,0,0.1); | |
| } |