| |
| |
| |
| |
|
|
| |
| :root { |
| --bayan-primary: var(--color-primary, #6BA3E0); |
| --bayan-primary-light: #8BB8E8; |
| --bayan-primary-dark: #5A8FCA; |
| --bayan-primary-glow: var(--focus-ring, rgba(107, 163, 224, 0.25)); |
|
|
| --bayan-bg: var(--color-bg, #12141A); |
| --bayan-surface: var(--color-surface, #1A1D26); |
| --bayan-surface-hover: var(--color-surface-elevated, #242833); |
| --bayan-surface-active: #2C3040; |
| --bayan-border: var(--color-border); |
| --bayan-border-light: var(--color-border-strong); |
|
|
| --bayan-text: var(--color-text-primary, #ECEEF2); |
| --bayan-text-secondary: var(--color-text-secondary, #B4BBC6); |
| --bayan-text-muted: var(--color-text-muted, #8A939F); |
|
|
| --bayan-success: var(--color-success, #6BC98A); |
| --bayan-warning: var(--color-warning, #E4B35A); |
| --bayan-error: var(--color-error, #E88A8A); |
|
|
| --bayan-spelling: var(--highlight-spelling-border, #E88A8A); |
| --bayan-grammar: var(--highlight-grammar-border, #E4B35A); |
| --bayan-punctuation: var(--highlight-punctuation-border, #6BC98A); |
|
|
| --bayan-radius: 10px; |
| --bayan-radius-sm: 6px; |
| --bayan-radius-lg: 14px; |
|
|
| --bayan-font-arabic: var(--font-family-primary, 'Cairo', 'Tajawal', 'Noto Sans Arabic', sans-serif); |
|
|
| --bayan-transition: 200ms cubic-bezier(0.4, 0, 0.2, 1); |
| --bayan-spring: 300ms cubic-bezier(0.34, 1.56, 0.64, 1); |
|
|
| --color-surface-hover: var(--color-surface-elevated, #242833); |
| } |
|
|
| |
| *, *::before, *::after { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| body { |
| width: 400px; |
| min-height: 300px; |
| max-height: 600px; |
| overflow-y: auto; |
| overflow-x: hidden; |
| font-family: var(--bayan-font-arabic); |
| font-size: 14px; |
| line-height: 1.6; |
| color: var(--text-color); |
| background: var(--color-bg); |
| direction: rtl; |
| -webkit-font-smoothing: antialiased; |
| } |
|
|
| |
| body::-webkit-scrollbar { |
| width: 4px; |
| } |
| body::-webkit-scrollbar-track { |
| background: transparent; |
| } |
| body::-webkit-scrollbar-thumb { |
| background: var(--color-border); |
| border-radius: 4px; |
| } |
|
|
| |
| |
| |
| .bayan-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: 12px 16px; |
| background: linear-gradient(135deg, var(--color-surface) 0%, var(--color-bg) 100%); |
| border-bottom: 1px solid var(--color-border); |
| } |
|
|
| .bayan-header-brand { |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| } |
|
|
| .bayan-logo { |
| filter: drop-shadow(0 0 8px var(--bayan-primary-glow)); |
| } |
|
|
| .bayan-header-title { |
| font-size: 18px; |
| font-weight: 700; |
| background: linear-gradient(135deg, var(--secondary-color), var(--primary-color)); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| letter-spacing: -0.3px; |
| } |
|
|
| .bayan-header-status { |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| font-size: 11px; |
| color: var(--bayan-text-muted); |
| } |
|
|
| .bayan-status-dot { |
| width: 7px; |
| height: 7px; |
| border-radius: 50%; |
| background: var(--bayan-text-muted); |
| transition: background var(--bayan-transition); |
| } |
| .bayan-status-dot.online { |
| background: var(--bayan-success); |
| box-shadow: 0 0 6px rgba(107, 201, 138, 0.5); |
| } |
| .bayan-status-dot.offline { |
| background: var(--bayan-error); |
| box-shadow: 0 0 6px rgba(232, 138, 138, 0.4); |
| } |
|
|
| |
| |
| |
| .bayan-tabs { |
| display: flex; |
| gap: 0; |
| border-bottom: 1px solid var(--color-border); |
| background: var(--color-surface); |
| } |
|
|
| .bayan-tab { |
| flex: 1 1 auto; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 4px; |
| padding: 10px 6px; |
| border: none; |
| background: transparent; |
| color: var(--bayan-text-muted); |
| font-family: var(--bayan-font-arabic); |
| font-size: 11px; |
| font-weight: 500; |
| cursor: pointer; |
| transition: all var(--bayan-transition); |
| position: relative; |
| white-space: nowrap; |
| min-width: 0; |
| } |
|
|
| .bayan-tab::after { |
| content: ''; |
| position: absolute; |
| bottom: 0; |
| left: 20%; |
| right: 20%; |
| height: 2px; |
| background: var(--primary-color); |
| border-radius: 2px 2px 0 0; |
| opacity: 0; |
| transform: scaleX(0); |
| transition: all var(--bayan-spring); |
| } |
|
|
| .bayan-tab:hover { |
| color: var(--text-color); |
| background: var(--color-surface-hover); |
| } |
|
|
| .bayan-tab.active { |
| color: var(--secondary-color); |
| } |
| .bayan-tab.active::after { |
| opacity: 1; |
| transform: scaleX(1); |
| } |
|
|
| |
| |
| |
| .bayan-panel { |
| display: none; |
| padding: 16px; |
| animation: fadeSlideIn 250ms ease-out; |
| } |
| .bayan-panel.active { |
| display: block; |
| } |
|
|
| @keyframes fadeSlideIn { |
| from { |
| opacity: 0; |
| transform: translateY(6px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| |
| |
| |
| .bayan-input-group { |
| margin-bottom: 12px; |
| } |
|
|
| .bayan-label-row { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| margin-bottom: 6px; |
| } |
|
|
| .bayan-label { |
| font-size: 12px; |
| font-weight: 600; |
| color: var(--text-secondary); |
| } |
|
|
| .bayan-textarea { |
| width: 100%; |
| min-height: 100px; |
| padding: 12px 14px; |
| border: 1px solid var(--color-border); |
| border-radius: var(--bayan-radius); |
| background: var(--color-surface); |
| color: var(--text-color); |
| font-family: var(--bayan-font-arabic); |
| font-size: 14px; |
| line-height: 1.8; |
| resize: vertical; |
| transition: border-color var(--bayan-transition), box-shadow var(--bayan-transition); |
| direction: rtl; |
| } |
|
|
| .bayan-textarea:focus { |
| outline: none; |
| border-color: var(--primary-color); |
| box-shadow: 0 0 0 3px var(--bayan-primary-glow); |
| } |
|
|
| .bayan-textarea::placeholder { |
| color: var(--bayan-text-muted); |
| } |
|
|
| .bayan-input-meta { |
| display: flex; |
| gap: 4px; |
| margin-top: 6px; |
| font-size: 11px; |
| color: var(--bayan-text-muted); |
| } |
|
|
| .bayan-separator { |
| margin: 0 4px; |
| opacity: 0.4; |
| } |
|
|
| |
| |
| |
| .bayan-actions { |
| display: flex; |
| gap: 8px; |
| margin-bottom: 14px; |
| } |
|
|
| .bayan-btn { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| gap: 6px; |
| padding: 9px 18px; |
| border: none; |
| border-radius: var(--bayan-radius-sm); |
| font-family: var(--bayan-font-arabic); |
| font-size: 13px; |
| font-weight: 600; |
| cursor: pointer; |
| transition: all var(--bayan-transition); |
| } |
|
|
| .bayan-btn-primary { |
| flex: 1; |
| background: linear-gradient(135deg, var(--color-primary, #6BA3E0), var(--color-secondary, #A594E8)); |
| color: white; |
| box-shadow: 0 2px 8px rgba(107, 163, 224, 0.3); |
| } |
| .bayan-btn-primary:hover { |
| box-shadow: 0 4px 16px rgba(107, 163, 224, 0.45); |
| transform: translateY(-1px); |
| } |
| .bayan-btn-primary:active { |
| transform: translateY(0); |
| box-shadow: 0 1px 4px rgba(107, 163, 224, 0.2); |
| } |
|
|
| .bayan-btn-ghost { |
| background: transparent; |
| color: var(--text-secondary); |
| border: 1px solid var(--color-border); |
| } |
| .bayan-btn-ghost:hover { |
| background: var(--color-surface-hover); |
| color: var(--text-color); |
| } |
|
|
| .bayan-btn-sm { |
| padding: 5px 12px; |
| font-size: 11px; |
| background: var(--primary-color); |
| color: white; |
| border-radius: var(--bayan-radius-sm); |
| } |
| .bayan-btn-sm:hover { |
| background: var(--bayan-primary-dark); |
| } |
|
|
| .bayan-btn-icon { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| width: 28px; |
| height: 28px; |
| padding: 0; |
| border: none; |
| border-radius: var(--bayan-radius-sm); |
| background: transparent; |
| color: var(--bayan-text-muted); |
| cursor: pointer; |
| transition: all var(--bayan-transition); |
| } |
| .bayan-btn-icon:hover { |
| background: var(--color-surface-hover); |
| color: var(--text-color); |
| } |
|
|
| |
| |
| |
| .bayan-score-section { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| text-align: center; |
| padding: 16px 12px; |
| margin-bottom: 14px; |
| background: var(--color-surface); |
| border: 1px solid var(--color-border); |
| border-radius: 12px; |
| animation: fadeSlideIn 300ms ease-out; |
| } |
|
|
| .bayan-score-title { |
| font-size: 13px; |
| font-weight: 600; |
| color: var(--text-secondary); |
| margin-bottom: 10px; |
| } |
|
|
| .bayan-score-ring { |
| position: relative; |
| width: 120px; |
| height: 120px; |
| flex-shrink: 0; |
| margin-bottom: 8px; |
| } |
|
|
| .bayan-score-ring svg { |
| display: block; |
| } |
|
|
| .bayan-score-ring circle:last-child { |
| transition: stroke-dashoffset 600ms ease-in-out; |
| } |
|
|
| .bayan-score-value { |
| position: absolute; |
| inset: 0; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 28px; |
| font-weight: 700; |
| color: var(--color-text-primary, var(--text-color)); |
| } |
|
|
| .bayan-score-hint { |
| display: block; |
| font-size: 12px; |
| color: var(--text-secondary); |
| margin-bottom: 8px; |
| } |
|
|
| .bayan-counts { |
| display: flex; |
| gap: 10px; |
| flex-wrap: wrap; |
| justify-content: center; |
| } |
|
|
| .bayan-count { |
| font-size: 11px; |
| color: var(--bayan-text-muted); |
| display: flex; |
| align-items: center; |
| gap: 3px; |
| } |
| .bayan-count span { |
| font-weight: 700; |
| } |
| .bayan-count-spelling span { color: var(--bayan-spelling); } |
| .bayan-count-grammar span { color: var(--bayan-grammar); } |
| .bayan-count-punctuation span { color: var(--bayan-punctuation); } |
|
|
| |
| |
| |
| .bayan-result { |
| margin-bottom: 14px; |
| animation: fadeSlideIn 300ms ease-out; |
| } |
|
|
| .bayan-result-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| margin-bottom: 8px; |
| } |
|
|
| .bayan-result-title { |
| font-size: 12px; |
| font-weight: 600; |
| color: var(--text-secondary); |
| } |
|
|
| .bayan-result-text { |
| padding: 12px 14px; |
| background: var(--color-surface); |
| border: 1px solid var(--color-border); |
| border-radius: var(--bayan-radius); |
| font-size: 14px; |
| line-height: 2; |
| color: var(--text-color); |
| min-height: 60px; |
| word-wrap: break-word; |
| } |
|
|
| |
| .bayan-spelling-error { |
| background: var(--highlight-spelling-bg, rgba(232, 138, 138, 0.16)); |
| border-bottom: 2px solid var(--bayan-spelling); |
| border-radius: 2px; |
| padding: 0 2px; |
| cursor: pointer; |
| transition: background var(--bayan-transition); |
| } |
| .bayan-spelling-error:hover { |
| background: rgba(232, 138, 138, 0.28); |
| } |
|
|
| .bayan-grammar-error { |
| background: var(--highlight-grammar-bg, rgba(228, 179, 90, 0.16)); |
| border-bottom: 2px solid var(--bayan-grammar); |
| border-radius: 2px; |
| padding: 0 2px; |
| cursor: pointer; |
| transition: background var(--bayan-transition); |
| } |
| .bayan-grammar-error:hover { |
| background: rgba(228, 179, 90, 0.28); |
| } |
|
|
| .bayan-punctuation-suggestion { |
| background: rgba(107, 201, 138, 0.14); |
| border-bottom: 2px solid var(--bayan-punctuation); |
| border-radius: 2px; |
| padding: 0 2px; |
| cursor: pointer; |
| transition: background var(--bayan-transition); |
| } |
| .bayan-punctuation-suggestion:hover { |
| background: rgba(107, 201, 138, 0.28); |
| } |
|
|
| |
| |
| |
| .bayan-suggestions { |
| animation: fadeSlideIn 300ms ease-out; |
| } |
|
|
| .bayan-suggestions-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| margin-bottom: 10px; |
| } |
|
|
| .bayan-suggestions-title { |
| font-size: 12px; |
| font-weight: 600; |
| color: var(--text-secondary); |
| } |
|
|
| .bayan-suggestions-list { |
| display: flex; |
| flex-direction: column; |
| gap: 8px; |
| } |
|
|
| |
| #autocomplete-list { |
| flex-direction: row; |
| flex-wrap: wrap; |
| } |
| .bayan-ac-chip { |
| cursor: pointer; |
| } |
| .bayan-ac-empty { |
| color: var(--bayan-text-muted, #94a3b8); |
| font-size: 13px; |
| padding: 4px 2px; |
| } |
|
|
| .bayan-suggestion-card { |
| padding: var(--spacing-md, 16px); |
| padding-right: calc(var(--spacing-md, 16px) + 4px); |
| background: var(--color-surface-elevated, var(--color-surface)); |
| border: 1px solid var(--color-border); |
| border-right: 4px solid var(--color-border-strong, rgba(236, 238, 242, 0.16)); |
| border-radius: 12px; |
| cursor: pointer; |
| transition: border-color var(--bayan-transition), background var(--bayan-transition), transform var(--bayan-transition); |
| text-align: right; |
| } |
| .bayan-suggestion-card:hover { |
| border-top-color: var(--primary-color); |
| border-bottom-color: var(--primary-color); |
| border-left-color: var(--primary-color); |
| background: var(--color-suggestion-hover-bg, var(--color-surface-hover)); |
| transform: translateX(-2px); |
| } |
| .bayan-suggestion-card:has(.bayan-badge-spelling) { border-right-color: var(--bayan-spelling, var(--color-error)); } |
| .bayan-suggestion-card:has(.bayan-badge-grammar) { border-right-color: var(--bayan-grammar, var(--color-warning)); } |
| .bayan-suggestion-card:has(.bayan-badge-punctuation) { border-right-color: var(--bayan-punctuation, var(--color-success)); } |
|
|
| .bayan-suggestion-badge { |
| display: inline-block; |
| padding: 2px 8px; |
| border-radius: 999px; |
| font-size: 12px; |
| font-weight: 700; |
| margin-bottom: 6px; |
| } |
|
|
| .bayan-badge-spelling { |
| background: var(--color-badge-spelling-bg, rgba(232, 138, 138, 0.18)); |
| color: var(--bayan-spelling); |
| } |
| .bayan-badge-grammar { |
| background: var(--color-badge-grammar-bg, rgba(228, 179, 90, 0.18)); |
| color: var(--bayan-grammar); |
| } |
| .bayan-badge-punctuation { |
| background: var(--color-badge-punctuation-bg, rgba(107, 201, 138, 0.16)); |
| color: var(--bayan-punctuation); |
| } |
|
|
| .bayan-suggestion-change { |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| margin-bottom: 8px; |
| font-size: 14px; |
| } |
|
|
| .bayan-suggestion-original { |
| text-decoration: line-through; |
| color: var(--text-muted, var(--bayan-text-muted)); |
| } |
|
|
| .bayan-suggestion-arrow { |
| color: var(--bayan-text-muted); |
| font-size: 12px; |
| } |
|
|
| .bayan-suggestion-correction { |
| font-weight: 600; |
| color: var(--bayan-success); |
| } |
|
|
| .bayan-suggestion-alts { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 6px; |
| } |
|
|
| .bayan-alt-chip { |
| padding: 4px 10px; |
| border: 1px solid var(--color-border); |
| border-radius: 100px; |
| background: var(--color-surface); |
| color: var(--text-secondary); |
| font-family: var(--bayan-font-arabic); |
| font-size: 12px; |
| cursor: pointer; |
| transition: all var(--bayan-transition); |
| } |
| .bayan-alt-chip:hover { |
| border-color: var(--primary-color); |
| color: var(--text-color); |
| background: var(--bayan-surface-active); |
| } |
|
|
| .bayan-alt-chip--main { |
| background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); |
| border-color: transparent; |
| color: white; |
| font-weight: 700; |
| } |
| .bayan-alt-chip--main:hover { |
| opacity: 0.9; |
| border-color: transparent; |
| } |
|
|
| .bayan-alt-chip--keep { |
| border-style: dashed; |
| color: var(--bayan-text-muted); |
| font-size: 11px; |
| } |
| .bayan-alt-chip--keep:hover { |
| opacity: 1; |
| } |
|
|
| |
| .bayan-apply-all-btn { |
| width: 100%; |
| margin-top: 10px; |
| padding: 10px 18px; |
| border: none; |
| border-radius: 12px; |
| background: linear-gradient(135deg, var(--primary-color, #6BA3E0), var(--secondary-color, #A594E8)); |
| color: var(--color-text-inverse, #F4F5F7); |
| font-family: var(--bayan-font-arabic); |
| font-size: 14px; |
| font-weight: 700; |
| cursor: pointer; |
| min-height: 44px; |
| transition: opacity 200ms ease, transform 150ms ease; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 6px; |
| } |
| .bayan-apply-all-btn:hover { opacity: 0.92; } |
| .bayan-apply-all-btn:active { transform: scale(0.98); } |
|
|
| |
| .bayan-empty-state { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| padding: 24px 16px; |
| text-align: center; |
| gap: 8px; |
| } |
| .bayan-empty-state-icon-wrap { |
| width: 48px; |
| height: 48px; |
| border-radius: 50%; |
| background: var(--color-surface-elevated, #242833); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| margin-bottom: 4px; |
| } |
| .bayan-empty-state-title { |
| font-size: 14px; |
| font-weight: 600; |
| color: var(--color-text-secondary, var(--text-secondary)); |
| } |
| .bayan-empty-state-desc { |
| font-size: 12px; |
| color: var(--color-text-muted, var(--bayan-text-muted)); |
| line-height: 1.6; |
| } |
|
|
| |
| .bayan-score-hint-sub { |
| font-size: 11px; |
| color: var(--color-text-muted, var(--bayan-text-muted)); |
| display: block; |
| margin-top: 2px; |
| } |
|
|
| |
| |
| |
| .bayan-timing { |
| padding: 8px 0; |
| margin-top: 8px; |
| border-top: 1px solid var(--color-border); |
| font-size: 10px; |
| color: var(--bayan-text-muted); |
| text-align: center; |
| } |
|
|
| |
| |
| |
| .bayan-summary-meta { |
| margin-top: 10px; |
| padding: 8px 12px; |
| background: var(--color-surface-hover); |
| border-radius: var(--bayan-radius-sm); |
| font-size: 11px; |
| color: var(--bayan-text-muted); |
| } |
|
|
| |
| |
| |
| .bayan-mode-toggle { |
| display: flex; |
| gap: 0; |
| margin-bottom: 12px; |
| border: 1px solid var(--color-border); |
| border-radius: var(--bayan-radius-sm); |
| overflow: hidden; |
| } |
|
|
| .bayan-mode-btn { |
| flex: 1; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 5px; |
| padding: 7px 10px; |
| border: none; |
| background: transparent; |
| color: var(--bayan-text-muted); |
| font-family: var(--bayan-font-arabic); |
| font-size: 12px; |
| font-weight: 500; |
| cursor: pointer; |
| transition: all var(--bayan-transition); |
| } |
|
|
| .bayan-mode-btn + .bayan-mode-btn { |
| border-right: 1px solid var(--color-border); |
| } |
|
|
| .bayan-mode-btn:hover { |
| background: var(--color-surface-hover); |
| color: var(--text-color); |
| } |
|
|
| .bayan-mode-btn.active { |
| background: var(--primary-color); |
| color: white; |
| } |
|
|
| |
| |
| |
| .bayan-summary-stats { |
| display: flex; |
| gap: 16px; |
| margin-bottom: 10px; |
| padding: 8px 12px; |
| background: var(--color-surface-hover); |
| border-radius: var(--bayan-radius-sm); |
| } |
|
|
| .bayan-summary-stat { |
| font-size: 11px; |
| color: var(--bayan-text-muted); |
| display: flex; |
| gap: 4px; |
| } |
|
|
| .bayan-summary-stat-value { |
| font-weight: 700; |
| color: var(--text-secondary); |
| } |
|
|
| |
| |
| |
| .bayan-description { |
| font-size: 11px; |
| color: var(--bayan-text-muted); |
| margin-bottom: 8px; |
| line-height: 1.6; |
| } |
|
|
| |
| |
| |
| .bayan-input-meta-row { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| margin-top: 6px; |
| } |
|
|
| .bayan-sr-only { |
| position: absolute; |
| width: 1px; |
| height: 1px; |
| padding: 0; |
| margin: -1px; |
| overflow: hidden; |
| clip: rect(0,0,0,0); |
| border: 0; |
| } |
|
|
| .bayan-import-btn { |
| display: inline-flex; |
| align-items: center; |
| gap: 4px; |
| padding: 3px 10px; |
| font-size: 11px; |
| font-family: var(--bayan-font-arabic); |
| color: var(--text-secondary); |
| border: 1px solid var(--color-border); |
| border-radius: var(--bayan-radius-sm); |
| background: transparent; |
| cursor: pointer; |
| transition: all var(--bayan-transition); |
| } |
|
|
| .bayan-import-btn:hover { |
| background: var(--color-surface-hover); |
| color: var(--text-color); |
| border-color: var(--primary-color); |
| } |
|
|
| |
| |
| |
| .bayan-result-actions { |
| display: flex; |
| align-items: center; |
| gap: 2px; |
| } |
|
|
| |
| |
| |
| .bayan-export-dropdown { |
| position: relative; |
| } |
|
|
| .bayan-export-menu { |
| position: absolute; |
| top: 100%; |
| left: 0; |
| min-width: 130px; |
| background: var(--color-surface); |
| border: 1px solid var(--color-border); |
| border-radius: var(--bayan-radius-sm); |
| box-shadow: 0 4px 16px rgba(0,0,0,0.25); |
| z-index: 50; |
| overflow: hidden; |
| } |
|
|
| .bayan-export-item { |
| display: block; |
| width: 100%; |
| padding: 8px 12px; |
| border: none; |
| background: transparent; |
| color: var(--text-color); |
| font-family: var(--bayan-font-arabic); |
| font-size: 12px; |
| text-align: right; |
| cursor: pointer; |
| transition: background var(--bayan-transition); |
| } |
|
|
| .bayan-export-item:hover { |
| background: var(--color-surface-hover); |
| } |
|
|
| |
| |
| |
| .bayan-length-selector { |
| margin-bottom: 12px; |
| } |
|
|
| .bayan-radio-group { |
| display: flex; |
| gap: 12px; |
| } |
|
|
| .bayan-radio { |
| display: flex; |
| align-items: center; |
| gap: 4px; |
| font-size: 12px; |
| color: var(--text-secondary); |
| cursor: pointer; |
| } |
|
|
| .bayan-radio input[type="radio"] { |
| accent-color: var(--primary-color); |
| width: 14px; |
| height: 14px; |
| cursor: pointer; |
| } |
|
|
| |
| |
| |
| .bayan-loading { |
| position: fixed; |
| inset: 0; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| gap: 14px; |
| background: var(--color-overlay, rgba(15, 15, 20, 0.85)); |
| backdrop-filter: blur(4px); |
| z-index: 100; |
| } |
|
|
| .bayan-spinner { |
| width: 36px; |
| height: 36px; |
| border: 3px solid var(--color-border); |
| border-top-color: var(--primary-color); |
| border-radius: 50%; |
| animation: spin 0.8s linear infinite; |
| } |
|
|
| @keyframes spin { |
| to { transform: rotate(360deg); } |
| } |
|
|
| .bayan-loading-text { |
| font-size: 13px; |
| color: var(--text-secondary); |
| } |
|
|
| |
| |
| |
| .bayan-toast { |
| position: fixed; |
| bottom: -50px; |
| left: 50%; |
| transform: translateX(-50%); |
| padding: 8px 18px; |
| background: var(--color-surface); |
| border: 1px solid var(--color-border); |
| border-radius: 20px; |
| color: var(--text-color); |
| font-size: 12px; |
| font-family: var(--bayan-font-arabic); |
| box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); |
| transition: bottom var(--bayan-spring); |
| z-index: 200; |
| white-space: nowrap; |
| } |
| .bayan-toast.is-visible { |
| bottom: 16px; |
| } |
|
|
| |
| |
| |
| .bayan-stale { |
| opacity: 0.45; |
| pointer-events: none; |
| position: relative; |
| filter: grayscale(30%); |
| transition: opacity var(--bayan-transition), filter var(--bayan-transition); |
| } |
| .bayan-stale::after { |
| content: '⚠ أعد التحليل'; |
| position: absolute; |
| top: 8px; |
| left: 50%; |
| transform: translateX(-50%); |
| padding: 4px 12px; |
| background: var(--bayan-warning); |
| color: #000; |
| font-size: 10px; |
| font-weight: 700; |
| border-radius: 12px; |
| z-index: 10; |
| pointer-events: none; |
| white-space: nowrap; |
| } |
|
|
| |
| |
| |
| .bayan-quran-result { |
| background: var(--color-surface); |
| border: 1px solid rgba(6, 182, 212, 0.2); |
| border-radius: var(--bayan-radius); |
| padding: 14px; |
| animation: fadeSlideIn 300ms ease-out; |
| } |
|
|
| .bayan-quran-result-header { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| margin-bottom: 10px; |
| } |
|
|
| .bayan-quran-uthmani { |
| font-family: 'Amiri Quran', 'Cairo', serif; |
| font-size: 20px; |
| line-height: 2.2; |
| text-align: center; |
| color: var(--text-color); |
| margin-bottom: 4px; |
| } |
|
|
| .bayan-quran-reference { |
| text-align: center; |
| font-size: 12px; |
| font-weight: 600; |
| color: #06b6d4; |
| margin-bottom: 8px; |
| } |
|
|
| .bayan-quran-translate { |
| border-top: 1px solid var(--color-border); |
| padding-top: 10px; |
| margin-top: 10px; |
| } |
|
|
| .bayan-quran-translate-row { |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| flex-wrap: wrap; |
| margin-bottom: 8px; |
| } |
|
|
| .bayan-quran-lang-select { |
| flex: 1; |
| min-width: 120px; |
| padding: 5px 8px; |
| font-size: 12px; |
| color: var(--text-color); |
| background: var(--color-surface); |
| border: 1px solid var(--color-border); |
| border-radius: var(--bayan-radius-sm); |
| font-family: var(--bayan-font-arabic); |
| cursor: pointer; |
| } |
|
|
| .bayan-quran-lang-select:focus { |
| outline: none; |
| border-color: #06b6d4; |
| } |
|
|
| .bayan-quran-translation { |
| padding: 10px; |
| border-radius: var(--bayan-radius-sm); |
| background: rgba(6, 182, 212, 0.06); |
| border: 1px solid rgba(6, 182, 212, 0.15); |
| } |
|
|
| .bayan-quran-translation p { |
| font-size: 16px; |
| line-height: 2; |
| text-align: center; |
| color: var(--text-color); |
| } |
|
|
| .bayan-quran-match-list { |
| display: flex; |
| flex-direction: column; |
| gap: 12px; |
| max-height: 420px; |
| overflow-y: auto; |
| } |
|
|
| .bayan-quran-match-card { |
| background: var(--color-surface); |
| border: 1px solid rgba(6, 182, 212, 0.2); |
| border-radius: var(--bayan-radius); |
| padding: 14px; |
| animation: fadeSlideIn 300ms ease-out; |
| } |
|
|
| |
| |
| |
| .is-hidden { |
| display: none !important; |
| } |
|
|
|
|
| |
|
|
| |
| .theme-toggle-animated { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| width: 32px; |
| height: 32px; |
| border: none; |
| border-radius: 50%; |
| background: var(--color-surface-hover); |
| color: var(--text-secondary); |
| cursor: pointer; |
| transition: background 0.3s ease, transform 0.3s ease, color 0.3s ease; |
| position: relative; |
| overflow: hidden; |
| margin-right: 8px; |
| } |
|
|
| .theme-toggle-animated:hover { |
| background: var(--primary-color); |
| color: #fff; |
| transform: rotate(15deg); |
| } |
|
|
| .theme-toggle-animated svg { |
| transition: transform 0.4s ease, opacity 0.3s ease; |
| position: absolute; |
| } |
|
|
| [data-theme="dark"] .theme-icon-sun { |
| transform: rotate(90deg) scale(0); |
| opacity: 0; |
| } |
|
|
| [data-theme="dark"] .theme-icon-moon { |
| transform: rotate(0) scale(1); |
| opacity: 1; |
| } |
|
|
| [data-theme="light"] .theme-icon-moon { |
| transform: rotate(-90deg) scale(0); |
| opacity: 0; |
| } |
|
|
| [data-theme="light"] .theme-icon-sun { |
| transform: rotate(0) scale(1); |
| opacity: 1; |
| } |
|
|
|
|