        /* ══ Theme Variables ══ */
        :root {
            --bg-primary: #0f172a;
            --bg-secondary: #1e293b;
            --bg-card: #1e293b;
            --bg-input: #0f172a;
            --text-primary: #f1f5f9;
            --text-secondary: #e2e8f0;
            --text-muted: #94a3b8;
            --border-color: #334155;
            --header-bg: linear-gradient(135deg, #0f172a, #1e293b);
            --table-header: #0f172a;
            --table-row-hover: #1e293b;
            --modal-overlay: rgba(0,0,0,0.75);
            --shadow-color: rgba(0,0,0,0.7);
        }
        body.light-mode {
            --bg-primary: #f1f5f9;
            --bg-secondary: #ffffff;
            --bg-card: #ffffff;
            --bg-input: #ffffff;
            --text-primary: #1e293b;
            --text-secondary: #334155;
            --text-muted: #64748b;
            --border-color: #e2e8f0;
            --header-bg: linear-gradient(135deg, #e2e8f0, #f1f5f9);
            --table-header: #e2e8f0;
            --table-row-hover: #f1f5f9;
            --modal-overlay: rgba(0,0,0,0.5);
            --shadow-color: rgba(0,0,0,0.15);
        }
        body {
            background: var(--bg-primary);
            color: var(--text-primary);
            transition: background 0.3s, color 0.3s;
        }
        /* ══ Android / Mobile Base ══ */
        :root {
            --safe-top: env(safe-area-inset-top, 0px);
            --safe-bottom: env(safe-area-inset-bottom, 0px);
            --safe-left: env(safe-area-inset-left, 0px);
            --safe-right: env(safe-area-inset-right, 0px);
        }
        html {
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
            scroll-behavior: smooth;
            overscroll-behavior: none;
        }
        body {
            -webkit-tap-highlight-color: transparent;
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            user-select: none;
            overscroll-behavior-y: none;
            padding-top: var(--safe-top);
            padding-bottom: var(--safe-bottom);
        }
        input, textarea, select, p, span, td, th, .ai-content, .cf-box-body {
            -webkit-user-select: text;
            user-select: text;
        }
        input:not([type="checkbox"]):not([type="radio"]), select, textarea {
            font-size: 16px !important;
            -webkit-appearance: none;
            appearance: none;
            border-radius: 0;
        }
        /* چک‌باکس‌ها (مثل تیک «با قوانین موافقم» و «مرا به خاطر بسپار») باید ظاهر پیش‌فرض
           مرورگر را حفظ کنند، وگرنه با appearance:none بی‌هیچ استایل جایگزینی کاملاً نامرئی
           می‌شوند — قبلاً این باعث می‌شد تیک‌ها دیده نشوند (هرچند قابل کلیک بودند). */
        input[type="checkbox"], input[type="radio"] {
            -webkit-appearance: auto;
            appearance: auto;
            accent-color: #0ea5e9;
        }
        button, .header-btn, .toggle-btn, .star-btn, .alert-btn {
            min-height: 44px;
            min-width: 44px;
            touch-action: manipulation;
        }
        .overflow-y-auto, [style*="overflow-y:auto"], [style*="overflow-y: auto"],
        #watchlist-body, #ai-modal-body, #coin-fund-modal-body, #coin-fund-modal-2-body,
        #tech1-modal-body, #alert-box, .modal-box, .app-modal-body {
            -webkit-overflow-scrolling: touch;
            overscroll-behavior: contain;
        }
        * { touch-action: manipulation; }
        .table-container {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            overscroll-behavior-x: contain;
            max-height: 560px;
            overflow-y: auto;
            scroll-behavior: smooth;
        }
        .table-container::-webkit-scrollbar { width: 6px; }
        .table-container::-webkit-scrollbar-track { background: var(--bg-secondary); border-radius: 10px; }
        .table-container::-webkit-scrollbar-thumb { background: var(--text-muted); border-radius: 10px; }
        .table-container::-webkit-scrollbar-thumb:hover { background: #64748b; }
        .table-container table thead {
            position: sticky;
            top: 0;
            z-index: 10;
        }
        .table-container table thead th {
            background: var(--table-header);
            border-bottom: 2px solid var(--border-color);
            color: var(--text-muted);
        }
        .table-container.iran-table-scroll { max-height: 260px; }
        * {
            font-family: 'Vazirmatn', 'Tahoma', sans-serif !important;
        }
        .price-up {
            color: #10b981;
        }
        .price-down {
            color: #ef4444;
        }
        .coin-row:hover {
            background-color: var(--table-row-hover);
        }
        .sparkline-container {
            width: 130px;
            height: 48px;
        }
        .toggle-group {
            display: flex;
            background: #f1f5f9;
            border-radius: 12px;
            padding: 3px;
            gap: 2px;
        }
        .toggle-btn {
            padding: 8px 18px;
            border-radius: 9px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            border: none;
            background: transparent;
            color: #64748b;
            transition: all .2s;
            white-space: nowrap;
        }
        .toggle-btn.active {
            background: white;
            color: #1e40af;
            box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
        }
        .toggle-btn:hover:not(.active) {
            color: #334155;
        }
        .star-btn {
            background: none;
            border: none;
            cursor: pointer;
            font-size: 1.2rem;
            transition: all .2s;
            padding: 2px 4px;
        }
        .star-btn:hover {
            transform: scale(1.25);
        }
        .star-on {
            color: #fbbf24;
            text-shadow: 0 0 12px rgba(251, 191, 36, 0.5);
        }
        .star-off {
            color: var(--text-muted);
        }
        .alert-btn {
            background: none;
            border: none;
            cursor: pointer;
            font-size: 1rem;
            transition: all .2s;
            padding: 2px 4px;
            color: var(--text-muted);
        }
        .alert-btn:hover {
            transform: scale(1.15);
        }
        .alert-on {
            color: #ef4444;
        }
        .alert-off {
            color: var(--text-muted);
        }

        /* ===== HEADER ===== */
        .main-header {
            background: var(--header-bg);
            border-radius: 1.5rem;
            overflow: hidden;
            border: 1px solid var(--border-color);
            margin-bottom: 20px;
            transition: background 0.3s;
        }
        .header-top {
            padding: 18px 28px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            text-align: center;
            flex-wrap: wrap;
            gap: 10px;
        }
        .header-top .logo-title {
            display: flex;
            align-items: center;
            gap: 14px;
        }
        .header-top .logo-title i {
            font-size: 2rem;
            color: #fbbf24;
        }
        .header-top .logo-title h1 {
            font-size: 1.6rem;
            font-weight: 700;
            color: var(--text-primary);
        }
        .header-top .logo-title span {
            color: var(--text-muted);
            font-size: .75rem;
            display: block;
            margin-top: 2px;
        }
        .theme-toggle-btn {
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            padding: 8px 16px;
            color: var(--text-primary);
            font-size: .85rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
            display: flex;
            align-items: center;
            gap: 8px;
            min-height: 44px;
        }
        .theme-toggle-btn:hover {
            transform: scale(1.05);
        }

        .header-middle {
            background: var(--bg-secondary);
            padding: 12px 28px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 12px;
        }
        .header-middle .search-area {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
        }
        .header-middle .datetime {
            color: var(--text-muted);
            font-size: .9rem;
            font-weight: 500;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .header-middle .datetime .date-part {
            color: var(--text-secondary);
        }
        .header-middle .datetime .time-part {
            color: #fbbf24;
            font-weight: 600;
        }

        .header-bottom {
            padding: 12px 20px 18px 20px;
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 10px;
            position: relative;
            overflow: hidden;
        }
        .header-bottom::before {
            content: '';
            position: absolute;
            top: -30px;
            bottom: -30px;
            width: 220px;
            left: -15%;
            background: radial-gradient(circle, rgba(251,191,36,.65) 0%, rgba(217,119,6,.3) 45%, transparent 72%);
            filter: blur(18px);
            z-index: 0;
            pointer-events: none;
            animation: headerGoldenSweep 7s ease-in-out infinite;
        }
        @keyframes headerGoldenSweep {
            0%, 100% { left: -15%; }
            50% { left: 105%; }
        }
        .header-bottom .header-btn {
            padding: 10px 12px;
            border-radius: 14px;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            border: none;
            transition: all .2s;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            color: white;
            min-height: 48px;
            width: 100%;
            box-shadow: 0 2px 6px rgba(0,0,0,.15);
            position: relative;
            z-index: 1;
        }
        .header-bottom .header-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 16px rgba(0, 0, 0, .3);
        }
        .header-bottom .header-btn.watchlist { background: #7c3aed; }
        .header-bottom .header-btn.watchlist:hover { background: #6d28d9; }
        .header-bottom .header-btn.refresh { background: #2563eb; }
        .header-bottom .header-btn.refresh:hover { background: #1d4ed8; }
        .header-bottom .header-btn.account { background: #d97706; }
        .header-bottom .header-btn.account:hover { background: #b45309; }
        .header-bottom .header-btn.alerts { background: #ef4444; }
        .header-bottom .header-btn.alerts:hover { background: #dc2626; }
        .header-bottom .header-btn.compare { background: #0d9488; }
        .header-bottom .header-btn.compare:hover { background: #0f766e; }
        .header-bottom .header-btn.wallet { background: #7c3aed; }
        .header-bottom .header-btn.wallet:hover { background: #6d28d9; }
        .header-bottom .header-btn.exchange { background: #2563eb; }
        .header-bottom .header-btn.exchange:hover { background: #1d4ed8; }
        .header-bottom .header-btn.ai-chat { background: #0ea5e9; }
        .header-bottom .header-btn.ai-chat:hover { background: #0284c7; }
        .header-bottom .header-btn.heatmap { background: #0891b2; }
        .header-bottom .header-btn.heatmap:hover { background: #0e7490; }
        .header-bottom .header-btn.smartscore { background: #d97706; }
        .header-bottom .header-btn.smartscore:hover { background: #b45309; }
        .header-bottom .header-btn.share { background: #0d9488; }
        .header-bottom .header-btn.share:hover { background: #0f766e; }
        .header-bottom .header-btn.technical { background: #2563eb; }
        .header-bottom .header-btn.technical:hover { background: #1d4ed8; }
        .header-bottom .header-btn.fundamental { background: #059669; }
        .header-bottom .header-btn.fundamental:hover { background: #047857; }
        .header-bottom .header-btn.journal { background: #7c3aed; }
        .header-bottom .header-btn.journal:hover { background: #6d28d9; }
        .header-bottom .header-btn.portfolio { background: #d97706; }
        .header-bottom .header-btn.portfolio:hover { background: #b45309; }
        .header-bottom .header-btn.sentiment { background: #f97316; }
        .header-bottom .header-btn.sentiment:hover { background: #ea580c; }
        .header-bottom .header-btn.report { background: #6366f1; }
        .header-bottom .header-btn.report:hover { background: #4f46e5; }
        .header-bottom .header-btn.connect-exchange { background: #16a34a; }
        .header-bottom .header-btn.connect-exchange:hover { background: #15803d; }
        .header-bottom .header-btn.position-calc { background: #d97706; }
        .header-bottom .header-btn.position-calc:hover { background: #b45309; }
        .header-bottom .header-btn.screener { background: #db2777; }
        .header-bottom .header-btn.screener:hover { background: #be185d; }
        .header-bottom .header-btn.community { background: #0ea5e9; }
        .header-bottom .header-btn.community:hover { background: #0284c7; }
        .coin-picker-wrap { display: none !important; }
        .coin-picker-select { display: none !important; }

        .search-box {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            padding: 8px 16px 8px 40px;
            color: var(--text-secondary);
            font-size: .9rem;
            outline: none;
            transition: border .2s;
            min-width: 180px;
        }
        .search-box:focus {
            border-color: #7c3aed;
        }
        .search-box::placeholder {
            color: var(--text-muted);
        }
        .search-wrap {
            position: relative;
        }
        .search-wrap i {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-muted);
        }

        .rate-input-box {
            display: flex;
            align-items: center;
            gap: 8px;
            background: var(--bg-input);
            padding: 6px 14px;
            border-radius: 10px;
            border: 1px solid var(--border-color);
        }
        .rate-input-box label {
            color: var(--text-muted);
            font-size: .75rem;
            font-weight: 600;
            white-space: nowrap;
        }
        .rate-input-box input {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 6px;
            color: var(--text-secondary);
            padding: 4px 10px;
            width: 100px;
            font-size: .8rem;
            outline: none;
        }
        .rate-input-box input:focus {
            border-color: #d97706;
        }
        .rate-input-box .rate-save, .stat-card .rate-save {
            background: #d97706;
            color: white;
            border: none;
            border-radius: 6px;
            padding: 4px 12px;
            font-size: .7rem;
            font-weight: 600;
            cursor: pointer;
            flex-shrink: 0;
        }
        .rate-input-box .rate-save:hover, .stat-card .rate-save:hover {
            background: #b45309;
        }

        .currency-selector {
            display: flex;
            align-items: center;
            gap: 6px;
            background: var(--bg-input);
            border-radius: 10px;
            padding: 4px 8px;
            border: 1px solid var(--border-color);
        }
        .currency-selector button {
            padding: 4px 12px;
            border-radius: 6px;
            font-size: .75rem;
            font-weight: 600;
            cursor: pointer;
            border: none;
            background: transparent;
            color: var(--text-muted);
            transition: all .2s;
        }
        .currency-selector button.active {
            background: #7c3aed;
            color: white;
        }
        .currency-selector button:hover:not(.active) {
            color: var(--text-secondary);
        }

        /* ===== STATS CARDS ===== */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(6, 1fr);
            gap: 12px;
            margin-bottom: 16px;
        }
        .stat-card {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 1rem;
            padding: 14px 16px;
            text-align: center;
            transition: transform .2s, border-color .2s, background-color .2s;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }
        .stat-card > * { text-align: center; }
        .stat-card input { text-align: center; }
        .stat-card:hover {
            border-color: #7c3aed;
            transform: translateY(-2px);
        }
        .stat-card.stat-flash-up {
            background: rgba(74,222,128,.35) !important;
            border-color: #4ade80 !important;
            box-shadow: 0 0 0 2px rgba(74,222,128,.4);
            transition: background-color .2s ease-out, border-color .2s ease-out, box-shadow .2s ease-out;
        }
        .stat-card.stat-flash-down {
            background: rgba(248,113,113,.35) !important;
            border-color: #f87171 !important;
            box-shadow: 0 0 0 2px rgba(248,113,113,.4);
            transition: background-color .2s ease-out, border-color .2s ease-out, box-shadow .2s ease-out;
        }
        .stat-card.stat-flash-fadeout {
            transition: background-color 1.8s ease, border-color 1.8s ease, box-shadow 1.8s ease;
        }
        .stat-card .stat-label {
            color: var(--text-muted);
            font-size: .7rem;
            font-weight: 600;
        }
        .stat-card .stat-value {
            color: var(--text-primary);
            font-size: 1.1rem;
            font-weight: 700;
            margin-top: 2px;
        }
        .stat-card .stat-change {
            font-size: .7rem;
            font-weight: 600;
        }
        .stat-card .stat-change.up { color: #4ade80; }
        .stat-card .stat-change.down { color: #f87171; }

        @media (max-width: 1000px) {
            .stats-grid { grid-template-columns: repeat(3, 1fr); }
        }
        @media (max-width: 600px) {
            .stats-grid { grid-template-columns: 1fr 1fr; }
        }

        /* ===== MODALS ===== */
        #watchlist-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1002;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #watchlist-modal.open { display: flex; }
        #watchlist-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 1000px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #watchlist-header {
            padding: 18px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #watchlist-header h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #watchlist-header h2 i { color: #fbbf24; }
        .watchlist-badge {
            background: #7c3aed;
            color: white;
            border-radius: 30px;
            padding: 4px 16px;
            font-size: .8rem;
            font-weight: 600;
        }
        #watchlist-body {
            padding: 16px 24px 24px;
            overflow-y: auto;
            flex: 1;
        }
        .watchlist-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            gap: 10px;
        }
        .watchlist-card {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 16px;
            border-radius: 12px;
            background: var(--bg-primary);
            border: 1px solid var(--border-color);
            transition: all .25s;
            cursor: pointer;
        }
        .watchlist-card:hover {
            background: var(--table-row-hover);
            border-color: #7c3aed;
            transform: translateY(-2px);
        }
        .watchlist-card img {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            flex-shrink: 0;
        }
        .watchlist-card .info { flex: 1; }
        .watchlist-card .name {
            font-weight: 600;
            color: var(--text-primary);
            font-size: .9rem;
        }
        .watchlist-card .symbol {
            color: var(--text-muted);
            font-size: .7rem;
        }
        .watchlist-card .price {
            font-weight: 600;
            color: #fbbf24;
            font-size: .9rem;
        }
        .watchlist-card .change {
            font-size: .8rem;
            font-weight: 600;
            min-width: 60px;
            text-align: left;
        }
        .watchlist-card .remove-btn {
            background: none;
            border: none;
            color: var(--text-muted);
            cursor: pointer;
            font-size: 1rem;
            padding: 4px 6px;
            border-radius: 6px;
            transition: all .2s;
        }
        .watchlist-card .remove-btn:hover {
            color: #ef4444;
            background: rgba(239, 68, 68, .15);
        }
        .watchlist-empty {
            text-align: center;
            padding: 50px 20px;
            color: var(--text-muted);
        }
        .watchlist-empty .icon {
            font-size: 3.5rem;
            margin-bottom: 12px;
            color: var(--border-color);
        }
        .watchlist-empty h3 {
            font-size: 1.1rem;
            color: var(--text-muted);
        }
        .watchlist-group-tabs {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
            margin-bottom: 12px;
        }
        .watchlist-group-tabs button {
            padding: 4px 14px;
            border-radius: 8px;
            font-size: .75rem;
            font-weight: 600;
            border: 1px solid var(--border-color);
            background: transparent;
            color: var(--text-muted);
            cursor: pointer;
            transition: all .2s;
        }
        .watchlist-group-tabs button.active {
            background: #7c3aed;
            color: white;
            border-color: #7c3aed;
        }
        .watchlist-group-tabs button:hover:not(.active) {
            background: var(--bg-primary);
        }
        .group-label {
            display: inline-block;
            padding: 2px 12px;
            border-radius: 12px;
            font-size: .65rem;
            font-weight: 600;
            background: #7c3aed;
            color: white;
        }
        .group-label.daily { background: #2563eb; }
        .group-label.weekly { background: #d97706; }
        .group-label.favorite { background: #ef4444; }
        .group-label.watch { background: #10b981; }
        .group-label.iran { background: #16a34a; }
        .group-label.forex { background: #0284c7; }
        .rating-stars {
            color: #fbbf24;
            font-size: .8rem;
            letter-spacing: 2px;
        }
        .rating-stars .empty { color: var(--border-color); }

        /* Alert Modal */
        #alert-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1003;
            background: var(--modal-overlay);
            backdrop-filter: blur(6px);
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        #alert-modal.open { display: flex; }
        #alert-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 650px;
            max-height: 90vh;
            overflow-y: auto;
            border: 1px solid var(--border-color);
            padding: 28px;
            box-shadow: 0 30px 80px var(--shadow-color);
        }
        #alert-box h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            margin-bottom: 16px;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #alert-box h2 i { color: #ef4444; }
        .alert-form-group { margin-bottom: 14px; }
        .alert-form-group label {
            color: var(--text-muted);
            font-size: .75rem;
            font-weight: 600;
            display: block;
            margin-bottom: 4px;
        }
        .alert-form-group select,
        .alert-form-group input {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 8px 14px;
            width: 100%;
            font-size: .85rem;
            outline: none;
            transition: border .2s;
        }
        .alert-form-group select:focus,
        .alert-form-group input:focus { border-color: #ef4444; }
        .alert-form-group select option { background: var(--bg-secondary); }
        .alert-list {
            margin-top: 16px;
            border-top: 1px solid var(--border-color);
            padding-top: 16px;
        }
        .alert-list h3 {
            color: var(--text-muted);
            font-size: .8rem;
            font-weight: 600;
            margin-bottom: 8px;
        }
        .alert-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 6px 12px;
            background: var(--bg-primary);
            border-radius: 8px;
            margin-bottom: 4px;
            border: 1px solid var(--border-color);
            font-size: .8rem;
            color: var(--text-secondary);
        }
        .alert-item .alert-info {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }
        .alert-item .alert-info .coin-name { font-weight: 600; }
        .alert-item .alert-info .alert-type {
            padding: 2px 10px;
            border-radius: 12px;
            font-size: .65rem;
            font-weight: 600;
        }
        .alert-item .alert-info .alert-type.above {
            background: #14532d;
            color: #4ade80;
        }
        .alert-item .alert-info .alert-type.below {
            background: #7f1d1d;
            color: #f87171;
        }
        .alert-item .alert-remove {
            background: none;
            border: none;
            color: var(--text-muted);
            cursor: pointer;
            font-size: .9rem;
            padding: 2px 6px;
            border-radius: 4px;
            transition: all .2s;
        }
        .alert-item .alert-remove:hover {
            color: #ef4444;
            background: rgba(239, 68, 68, .15);
        }
        .alert-empty {
            color: var(--text-muted);
            font-size: .85rem;
            text-align: center;
            padding: 20px 0;
        }
        .alert-close-btn {
            background: var(--border-color);
            color: var(--text-secondary);
            border: none;
            border-radius: .65rem;
            padding: 10px 28px;
            cursor: pointer;
            font-size: .9rem;
            font-weight: 600;
            transition: all .2s;
            margin-top: 12px;
            width: 100%;
        }
        .alert-close-btn:hover { background: #475569; }
        .alert-save-btn {
            background: #ef4444;
            color: white;
            border: none;
            border-radius: .65rem;
            padding: 10px 28px;
            cursor: pointer;
            font-size: .9rem;
            font-weight: 600;
            transition: all .2s;
        }
        .alert-save-btn:hover { background: #dc2626; }
        .alert-bell {
            position: relative;
            display: inline-block;
        }
        .alert-bell .badge {
            position: absolute;
            top: -6px;
            right: -6px;
            background: #ef4444;
            color: white;
            border-radius: 50%;
            font-size: .6rem;
            font-weight: 700;
            padding: 2px 5px;
            min-width: 16px;
            text-align: center;
        }

        /* AI Modal - Technical */
        #ai-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1000;
            background: var(--modal-overlay);
            backdrop-filter: blur(4px);
            justify-content: center;
            align-items: flex-start;
            padding: 24px;
            overflow-y: auto;
        }
        #ai-modal.open { display: flex; }
        #ai-modal-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 900px;
            margin: auto;
            box-shadow: 0 20px 60px var(--shadow-color);
            overflow: hidden;
        }
        #ai-modal-body {
            padding: 24px 28px;
            max-height: 80vh;
            overflow-y: auto;
        }
        #ai-modal-body .chart-container-ai {
            background: var(--bg-primary);
            border-radius: 12px;
            padding: 12px;
            border: 1px solid var(--border-color);
            height: 350px;
            margin-bottom: 16px;
        }
        #ai-modal-body .chart-container-ai iframe {
            width: 100%;
            height: 100%;
            border-radius: 8px;
            border: none;
        }
        .modal-coin-selector {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 16px;
            align-items: center;
        }
        .modal-coin-selector select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .8rem;
            padding: 8px 14px;
            font-size: .85rem;
            outline: none;
            flex: 1;
            min-width: 160px;
            color: var(--text-secondary);
            font-weight: 500;
        }
        .modal-coin-selector select:focus {
            border-color: #2563eb;
        }
        .modal-coin-selector button {
            background: #2563eb;
            color: white;
            border: none;
            border-radius: .8rem;
            padding: 8px 20px;
            font-size: .85rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
            white-space: nowrap;
            min-height: 44px;
        }
        .modal-coin-selector button:hover {
            background: #1d4ed8;
            transform: scale(0.98);
        }
        .modal-coin-selector button.teal { background: #0d9488; }
        .modal-coin-selector button.teal:hover { background: #0f766e; }
        .modal-coin-selector button.cyan { background: #0891b2; }
        .modal-coin-selector button.cyan:hover { background: #0e7490; }
        .modal-coin-selector button.violet { background: #6d28d9; }
        .modal-coin-selector button.violet:hover { background: #5b21b6; }

        .dot {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            animation: pulse 1.2s infinite;
        }
        .dot:nth-child(2) { animation-delay: .2s; }
        .dot:nth-child(3) { animation-delay: .4s; }
        @keyframes pulse {
            0%, 100% { opacity: .25; transform: scale(.8); }
            50% { opacity: 1; transform: scale(1); }
        }
        .ai-content h2 {
            font-size: 1.15rem;
            font-weight: 700;
            margin: 1.1rem 0 .35rem;
            color: var(--text-primary);
            border-bottom: 2px solid var(--border-color);
            padding-bottom: .25rem;
        }
        .ai-content h3 {
            font-size: 1rem;
            font-weight: 600;
            margin: .9rem 0 .25rem;
            color: #1d4ed8;
        }
        .ai-content p {
            margin-bottom: .55rem;
            line-height: 1.85;
            color: var(--text-secondary);
        }
        .ai-content ul {
            list-style: none;
            padding: 0;
            margin-bottom: .55rem;
        }
        .ai-content ul li {
            padding: .15rem 1.1rem .15rem 0;
            position: relative;
            color: var(--text-secondary);
        }
        .ai-content ul li::before {
            content: "◆";
            position: absolute;
            right: 0;
            color: #3b82f6;
            font-size: .55rem;
            top: .55rem;
        }
        .ai-content strong {
            font-weight: 700;
            color: var(--text-primary);
        }

        /* Fundamental Modal */
        #fund-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1001;
            background: var(--modal-overlay);
            backdrop-filter: blur(5px);
            overflow-y: auto;
            padding: 16px;
        }
        #fund-modal.open { display: block; }

        /* Compare Modal */
        #compare-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1005;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #compare-modal.open { display: flex; }
        #compare-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 1100px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #compare-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #compare-header h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #compare-header h2 i { color: #0d9488; }
        #compare-body {
            padding: 20px 24px 24px;
            overflow-y: auto;
            flex: 1;
        }
        .compare-selector {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            margin-bottom: 20px;
        }
        .compare-selector select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 8px 14px;
            font-size: .85rem;
            outline: none;
            min-width: 180px;
            flex: 1;
        }
        .compare-selector select:focus { border-color: #0d9488; }
        .compare-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 16px;
        }
        .compare-card {
            background: var(--bg-primary);
            border-radius: 12px;
            border: 1px solid var(--border-color);
            padding: 16px;
            transition: all .25s;
        }
        .compare-card:hover { border-color: #0d9488; }
        .compare-card .coin-header {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 12px;
            padding-bottom: 10px;
            border-bottom: 1px solid var(--border-color);
        }
        .compare-card .coin-header img {
            width: 40px;
            height: 40px;
            border-radius: 50%;
        }
        .compare-card .coin-header .name {
            font-weight: 700;
            color: var(--text-primary);
            font-size: 1rem;
        }
        .compare-card .coin-header .symbol {
            color: var(--text-muted);
            font-size: .75rem;
        }
        .compare-card .stat-row {
            display: flex;
            justify-content: space-between;
            padding: 4px 0;
            font-size: .8rem;
            color: var(--text-muted);
            border-bottom: 1px solid var(--bg-primary);
        }
        .compare-card .stat-row .stat-value {
            color: var(--text-secondary);
            font-weight: 500;
        }
        .compare-card .stat-row .stat-value.positive { color: #4ade80; }
        .compare-card .stat-row .stat-value.negative { color: #f87171; }

        /* Wallet Modal */
        #wallet-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1006;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #wallet-modal.open { display: flex; }
        #wallet-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 800px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #wallet-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #wallet-header h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #wallet-header h2 i { color: #7c3aed; }
        #wallet-body {
            padding: 20px 24px 24px;
            overflow-y: auto;
            flex: 1;
        }
        .wallet-summary {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 12px;
            margin-bottom: 20px;
        }
        .wallet-summary .stat {
            background: var(--bg-primary);
            border-radius: 10px;
            padding: 12px 16px;
            text-align: center;
            border: 1px solid var(--border-color);
        }
        .wallet-summary .stat .label {
            color: var(--text-muted);
            font-size: .7rem;
        }
        .wallet-summary .stat .value {
            color: var(--text-primary);
            font-size: 1.1rem;
            font-weight: 700;
        }
        .wallet-summary .stat .value.positive { color: #4ade80; }
        .wallet-summary .stat .value.negative { color: #f87171; }
        .wallet-form {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
            background: var(--bg-primary);
            border-radius: 12px;
            padding: 16px;
            border: 1px solid var(--border-color);
            margin-bottom: 20px;
        }
        .wallet-form .full { grid-column: 1 / -1; }
        .wallet-form label {
            color: var(--text-muted);
            font-size: .75rem;
            font-weight: 600;
            display: block;
            margin-bottom: 4px;
        }
        .wallet-form input,
        .wallet-form select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 8px 12px;
            width: 100%;
            font-size: .85rem;
            outline: none;
        }
        .wallet-form input:focus,
        .wallet-form select:focus { border-color: #7c3aed; }
        .wallet-form .btn-save {
            background: #7c3aed;
            color: white;
            border: none;
            border-radius: .6rem;
            padding: 10px;
            font-size: .9rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }
        .wallet-form .btn-save:hover { background: #6d28d9; }
        .wallet-list { max-height: 300px; overflow-y: auto; }
        .wallet-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 12px;
            background: var(--bg-primary);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 6px;
        }
        .wallet-item .info {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .wallet-item .info .coin {
            font-weight: 600;
            color: var(--text-primary);
        }
        .wallet-item .info .balance {
            color: var(--text-muted);
            font-size: .85rem;
        }
        .wallet-item .info .usd-value {
            color: #fbbf24;
            font-size: .8rem;
        }
        .wallet-item .actions button {
            background: none;
            border: none;
            color: var(--text-muted);
            cursor: pointer;
            padding: 4px 8px;
            border-radius: 4px;
            transition: all .2s;
        }
        .wallet-item .actions button:hover {
            background: rgba(239, 68, 68, .15);
            color: #ef4444;
        }
        .wallet-item .actions button.edit-btn:hover {
            background: rgba(124, 58, 237, .15);
            color: #a78bfa;
        }
        .wallet-item .alloc-bar-wrap {
            height: 5px;
            border-radius: 6px;
            background: var(--bg-input);
            overflow: hidden;
            margin-top: 6px;
            width: 100%;
        }
        .wallet-item .alloc-bar { height: 100%; border-radius: 6px; background: #7c3aed; }
        .wallet-item .alloc-pct { font-size: .68rem; color: var(--text-muted); margin-top: 2px; }
        .wallet-toolbar {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
            margin-bottom: 10px;
        }
        .wallet-toolbar button {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            color: var(--text-secondary);
            border-radius: 8px;
            padding: 7px 14px;
            font-size: .78rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }
        .wallet-toolbar button:hover { border-color: #7c3aed; color: #a78bfa; }
        .wallet-summary-extra {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
            gap: 8px;
            margin-bottom: 12px;
        }
        .wallet-summary-extra .mini-stat {
            background: var(--bg-primary);
            border: 1px solid var(--border-color);
            border-radius: 8px;
            padding: 8px 10px;
        }
        .wallet-summary-extra .mini-stat .lbl { font-size: .65rem; color: var(--text-muted); margin-bottom: 3px; }
        .wallet-summary-extra .mini-stat .val { font-size: .82rem; font-weight: 700; color: var(--text-primary); }
        .wallet-empty {
            text-align: center;
            padding: 30px 20px;
            color: var(--text-muted);
        }
        .wallet-empty .icon {
            font-size: 2.5rem;
            margin-bottom: 12px;
            color: var(--border-color);
        }

        /* ══ Portfolio Modal (کامل و مستقل از کیف پول) ══ */
        #portfolio-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1006;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #portfolio-modal.open { display: flex; }
        #portfolio-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 960px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #portfolio-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #portfolio-header h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #portfolio-header h2 i { color: #d97706; }
        #portfolio-header .pf-sub { font-size: .7rem; color: var(--text-muted); font-weight: 500; margin-right: 6px; }
        #portfolio-body {
            padding: 16px 24px 24px;
            overflow-y: auto;
            flex: 1;
        }
        .pf-tabs {
            display: flex;
            gap: 6px;
            border-bottom: 1px solid var(--border-color);
            margin-bottom: 16px;
            flex-wrap: wrap;
        }
        .pf-tab {
            background: none;
            border: none;
            color: var(--text-muted);
            padding: 9px 16px;
            font-size: .82rem;
            font-weight: 700;
            cursor: pointer;
            border-bottom: 2px solid transparent;
            transition: all .2s;
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .pf-tab:hover { color: var(--text-secondary); }
        .pf-tab.active { color: #d97706; border-bottom-color: #d97706; }
        .pf-tabpage { display: none; }
        .pf-tabpage.active { display: block; }
        .iran-ex-tabs { border-bottom: 1px solid var(--border-color); padding-bottom: 8px; }
        .iran-ex-tab {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            color: var(--text-muted);
            padding: 6px 14px;
            font-size: .78rem;
            font-weight: 700;
            cursor: pointer;
            border-radius: .6rem;
            transition: all .2s;
        }
        .iran-ex-tab:hover { color: var(--text-secondary); }
        .iran-ex-tab.active { color: #fff; background: #26a17b; border-color: #26a17b; }
        .pf-summary {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 12px;
            margin-bottom: 14px;
        }
        .pf-summary .stat {
            background: var(--bg-primary);
            border-radius: 10px;
            padding: 12px 16px;
            text-align: center;
            border: 1px solid var(--border-color);
        }
        .pf-summary .stat .label { color: var(--text-muted); font-size: .7rem; }
        .pf-summary .stat .value { color: var(--text-primary); font-size: 1.1rem; font-weight: 700; }
        .pf-summary .stat .value.positive { color: #4ade80; }
        .pf-summary .stat .value.negative { color: #f87171; }
        .pf-summary-extra {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: 8px;
            margin-bottom: 16px;
        }
        .pf-summary-extra .mini-stat {
            background: var(--bg-primary);
            border: 1px solid var(--border-color);
            border-radius: 8px;
            padding: 8px 10px;
        }
        .pf-summary-extra .mini-stat .lbl { font-size: .65rem; color: var(--text-muted); margin-bottom: 3px; }
        .pf-summary-extra .mini-stat .val { font-size: .82rem; font-weight: 700; color: var(--text-primary); }
        .pf-toolbar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
        .pf-toolbar button {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            color: var(--text-secondary);
            border-radius: 8px;
            padding: 7px 14px;
            font-size: .78rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }
        .pf-toolbar button:hover { border-color: #d97706; color: #fbbf24; }
        .pf-holding-list { max-height: 340px; overflow-y: auto; }
        .pf-holding-item {
            padding: 10px 12px;
            background: var(--bg-primary);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            margin-bottom: 6px;
        }
        .pf-holding-item .row1 { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
        .pf-holding-item .coin { font-weight: 700; color: var(--text-primary); }
        .pf-holding-item .sub { color: var(--text-muted); font-size: .78rem; }
        .pf-holding-item .value { color: #fbbf24; font-size: .85rem; font-weight: 600; }
        .pf-holding-item .pnl { font-size: .78rem; font-weight: 700; }
        .pf-holding-item .pnl.positive { color: #4ade80; }
        .pf-holding-item .pnl.negative { color: #f87171; }
        .pf-holding-item .alloc-bar-wrap { height: 5px; border-radius: 6px; background: var(--bg-input); overflow: hidden; margin-top: 8px; width: 100%; }
        .pf-holding-item .alloc-bar { height: 100%; border-radius: 6px; background: #d97706; }
        .pf-holding-item .alloc-pct { font-size: .68rem; color: var(--text-muted); margin-top: 2px; }
        .pf-form {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 12px;
            background: var(--bg-primary);
            border-radius: 12px;
            padding: 16px;
            border: 1px solid var(--border-color);
            margin-bottom: 18px;
        }
        .pf-form .full { grid-column: 1 / -1; }
        .pf-form label { color: var(--text-muted); font-size: .75rem; font-weight: 600; display: block; margin-bottom: 4px; }
        .pf-form input, .pf-form select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 8px 12px;
            width: 100%;
            font-size: .85rem;
            outline: none;
        }
        .pf-form input:focus, .pf-form select:focus { border-color: #d97706; }
        .pf-type-toggle { display: flex; gap: 8px; grid-column: 1 / -1; }
        .pf-type-toggle button {
            flex: 1;
            padding: 9px;
            border-radius: .6rem;
            border: 1px solid var(--border-color);
            background: var(--bg-input);
            color: var(--text-muted);
            font-weight: 700;
            font-size: .82rem;
            cursor: pointer;
            transition: all .2s;
        }
        .pf-type-toggle button.active[data-type="buy"] { background: rgba(74,222,128,.15); border-color: #4ade80; color: #4ade80; }
        .pf-type-toggle button.active[data-type="sell"] { background: rgba(248,113,113,.15); border-color: #f87171; color: #f87171; }
        .pf-form .btn-save {
            background: #d97706;
            color: white;
            border: none;
            border-radius: .6rem;
            padding: 10px;
            font-size: .9rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }
        .pf-form .btn-save:hover { background: #b45309; }
        .pf-tx-table-wrap { max-height: 380px; overflow: auto; border: 1px solid var(--border-color); border-radius: 10px; }
        table.pf-tx-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
        table.pf-tx-table th {
            position: sticky; top: 0;
            background: var(--table-header);
            color: var(--text-muted);
            padding: 8px 10px;
            text-align: center;
            font-size: .7rem;
            white-space: nowrap;
        }
        table.pf-tx-table td {
            padding: 7px 10px;
            text-align: center;
            border-top: 1px solid var(--border-color);
            color: var(--text-secondary);
            white-space: nowrap;
        }
        table.pf-tx-table tr:hover td { background: var(--table-row-hover); }
        .pf-badge { padding: 2px 9px; border-radius: 20px; font-size: .68rem; font-weight: 700; }
        .pf-badge.buy { background: rgba(74,222,128,.15); color: #4ade80; }
        .pf-badge.sell { background: rgba(248,113,113,.15); color: #f87171; }
        .pf-tx-table .actions button {
            background: none; border: none; color: var(--text-muted);
            cursor: pointer; padding: 3px 6px; border-radius: 4px; transition: all .2s;
        }
        .pf-tx-table .actions button:hover { background: rgba(239,68,68,.15); color: #ef4444; }
        .pf-tx-table .actions button.edit-btn:hover { background: rgba(217,119,6,.15); color: #fbbf24; }
        .pf-analytics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
        @media (max-width: 700px) { .pf-analytics-grid { grid-template-columns: 1fr; } .pf-form { grid-template-columns: 1fr; } }
        .pf-chart-box { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 12px; padding: 14px; }
        .pf-chart-box h4 { font-size: .82rem; color: var(--text-secondary); margin-bottom: 10px; font-weight: 700; }
        .pf-chart-box .chart-wrap { position: relative; height: 220px; }
        .pf-empty { text-align: center; padding: 30px 20px; color: var(--text-muted); }
        .pf-empty .icon { font-size: 2.5rem; margin-bottom: 12px; color: var(--border-color); }

        /* Coin Search Modal — برای پیدا کردن و افزودن ارزی که در لیست‌های ازپیش‌بارگذاری‌شده نیست */
        #coin-search-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1020;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #coin-search-modal.open { display: flex; }
        #coin-search-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 420px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
        }
        #coin-search-header { padding: 14px 20px; border-bottom: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; }
        #coin-search-header h3 { font-size: 1.05rem; font-weight: 700; color: var(--text-primary); }
        #coin-search-input-wrap { padding: 14px 20px 8px; }
        #coin-search-input { width: 100%; background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .6rem; color: var(--text-primary); padding: 10px 14px; font-size: .85rem; outline: none; }
        #coin-search-input:focus { border-color: #0ea5e9; }
        #coin-search-results { max-height: 340px; overflow-y: auto; padding: 8px 12px 16px; }
        .coin-search-item { display: flex; align-items: center; gap: 10px; padding: 9px 8px; border-radius: .6rem; cursor: pointer; transition: background .15s; }
        .coin-search-item:hover { background: var(--bg-input); }
        .coin-search-item img { width: 26px; height: 26px; border-radius: 50%; }
        .coin-search-item .csi-name { font-size: .85rem; font-weight: 600; color: var(--text-primary); }
        .coin-search-item .csi-symbol { font-size: .72rem; color: var(--text-muted); }
        #coin-search-status { text-align: center; color: var(--text-muted); font-size: .78rem; padding: 16px 10px; }

        /* ── آموزش تعاملی (تور مرحله‌به‌مرحله) ── */
        #tutorial-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1009;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        #tutorial-modal.open { display: flex; }
        #tutorial-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 540px;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            max-height: 88vh;
        }
        #tutorial-tabs {
            display: flex;
            gap: 6px;
            padding: 12px 20px 0;
            overflow-x: auto;
            scrollbar-width: none;
        }
        #tutorial-tabs::-webkit-scrollbar { display: none; }
        #tutorial-tabs button {
            flex-shrink: 0;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            color: var(--text-muted);
            border-radius: .6rem;
            padding: 7px 12px;
            font-size: .72rem;
            font-weight: 700;
            cursor: pointer;
            white-space: nowrap;
            transition: background .15s, color .15s;
        }
        #tutorial-tabs button.active { background: #16a34a; color: #fff; border-color: #16a34a; }
        #tutorial-header {
            padding: 16px 20px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        #tutorial-header h2 { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); display: flex; align-items: center; gap: 8px; }
        #tutorial-progress {
            display: flex;
            gap: 5px;
            padding: 12px 20px 0;
        }
        #tutorial-progress .tp-dot {
            flex: 1;
            height: 4px;
            border-radius: 3px;
            background: var(--border-color);
            transition: background .2s;
        }
        #tutorial-progress .tp-dot.done { background: #0ea5e9; }
        #tutorial-body {
            padding: 20px;
            overflow-y: auto;
            flex: 1;
        }
        #tutorial-step-icon { font-size: 2.4rem; text-align: center; margin-bottom: 10px; }
        #tutorial-step-title { font-size: 1rem; font-weight: 800; color: var(--text-primary); text-align: center; margin-bottom: 10px; }
        #tutorial-step-body { font-size: .85rem; line-height: 2.1; color: var(--text-secondary); white-space: pre-line; }
        #tutorial-step-body strong { color: #0ea5e9; }
        #tutorial-footer {
            padding: 14px 20px;
            border-top: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
        }
        #tutorial-step-counter { font-size: .75rem; color: var(--text-muted); white-space: nowrap; }
        .tutorial-nav-btn {
            border: none;
            border-radius: .6rem;
            padding: 10px 18px;
            font-size: .82rem;
            font-weight: 700;
            cursor: pointer;
        }
        .tutorial-nav-btn.primary { background: #0ea5e9; color: #fff; }
        .tutorial-nav-btn.secondary { background: var(--bg-input); color: var(--text-secondary); border: 1px solid var(--border-color); }
        .tutorial-nav-btn:disabled { opacity: .4; cursor: default; }

        /* ── سطح‌بندی دسترسی به آیتم‌های داشبورد (پایه/پیشرفته/های‌لول) ── */
        .header-bottom .header-btn.tier-locked {
            opacity: .42;
            filter: grayscale(.55);
            cursor: not-allowed;
            position: relative;
        }
        .header-bottom .header-btn.tier-locked::after {
            content: '🔒';
            position: absolute;
            top: -6px;
            right: -6px;
            background: #1e293b;
            border: 1px solid rgba(255,255,255,.25);
            border-radius: 50%;
            width: 20px;
            height: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 10px;
            box-shadow: 0 2px 6px rgba(0,0,0,.4);
            z-index: 2;
        }
        .level-select-list { display: flex; flex-direction: column; gap: 12px; }
        .level-select-card {
            display: block;
            width: 100%;
            text-align: right;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 1rem;
            padding: 14px 16px;
            cursor: pointer;
            transition: transform .15s, border-color .15s;
        }
        .level-select-card:hover { border-color: #0ea5e9; transform: translateY(-2px); }
        .level-select-card.level-select-vip { border-color: #f59e0b; background: linear-gradient(135deg, rgba(245,158,11,.14), rgba(217,119,6,.06)); }
        .level-select-title { font-size: .95rem; font-weight: 800; color: var(--text-primary); margin-bottom: 4px; }
        .level-select-desc { font-size: .76rem; color: var(--text-muted); line-height: 1.6; }

        /* ── مودال «تنظیم سطح‌بندی آیتم‌ها» (ادمین) — همان ظاهر مودال چیدمان ── */
        #tier-config-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1009;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        #tier-config-modal.open { display: flex; }
        #tier-config-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 460px;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            max-height: 88vh;
        }
        #tier-config-header {
            padding: 16px 20px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        #tier-config-header h2 { font-size: 1rem; font-weight: 800; color: var(--text-primary); display: flex; align-items: center; gap: 8px; }
        #tier-config-list { padding: 12px 20px; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 6px; }
        #tier-config-footer {
            padding: 14px 20px;
            border-top: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            gap: 10px;
        }
        .tier-divider-row { background: rgba(245,158,11,.14) !important; border-color: #f59e0b !important; }
        .tier-divider-row .arrange-label { color: #f59e0b; font-weight: 800; }

        /* ── چیدمان دکمه‌های داشبورد ── */
        #arrange-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1009;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        #arrange-modal.open { display: flex; }
        #arrange-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 460px;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            max-height: 88vh;
        }
        #arrange-header {
            padding: 16px 20px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        #arrange-header h2 { font-size: 1rem; font-weight: 800; color: var(--text-primary); display: flex; align-items: center; gap: 8px; }
        #arrange-list { padding: 12px 20px; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 6px; }
        .arrange-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            padding: 9px 12px;
        }
        .arrange-row .arrange-label { font-size: .82rem; color: var(--text-primary); font-weight: 600; }
        .arrange-row .arrange-controls { display: flex; gap: 4px; }
        .arrange-row .arrange-controls button {
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            color: var(--text-secondary);
            border-radius: .4rem;
            width: 28px;
            height: 28px;
            font-size: .8rem;
            cursor: pointer;
        }
        .arrange-row .arrange-controls button:disabled { opacity: .3; cursor: default; }
        #arrange-footer {
            padding: 14px 20px;
            border-top: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            gap: 10px;
        }

        /* ── بک‌تست واقعی ── */
        #backtest-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1009;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #backtest-modal.open { display: flex; }
        #backtest-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 620px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
        }
        #backtest-header {
            padding: 16px 20px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        #backtest-header h2 { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); display: flex; align-items: center; gap: 8px; }
        #backtest-body { padding: 18px 20px; }

        /* ── تحلیل عملکرد ژورنال ── */
        #journal-performance-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1009;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #journal-performance-modal.open { display: flex; }
        #jperf-box {
            background: var(--bg-secondary);
            border-radius: 1.5rem;
            width: 100%;
            max-width: 620px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
        }
        #jperf-header {
            padding: 16px 20px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        #jperf-header h2 { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); display: flex; align-items: center; gap: 8px; }
        #jperf-body { padding: 18px 20px; }
        /* Trade Assistant Modal */
        #trade-assist-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1008;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #trade-assist-modal.open { display: flex; }
        #full-analysis-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1008;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #full-analysis-modal.open { display: flex; }
        #signal-center-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1008;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #signal-center-modal.open { display: flex; }
        /* جدول آمار/نقاط تصمیم‌گیری سیگنال — فشرده و اسکن‌پذیر */
        .sig-stats-table { width: 100%; border-collapse: collapse; margin: 10px 0 4px; font-size: .82rem; }
        .sig-stats-table tr { border-bottom: 1px solid var(--border-color); }
        .sig-stats-table tr:last-child { border-bottom: none; }
        .sig-stats-table td { padding: 8px 6px; vertical-align: middle; }
        .sig-stats-table td.sig-td-label { color: var(--text-muted); white-space: nowrap; width: 42%; }
        .sig-stats-table td.sig-td-value { color: var(--text-primary); font-weight: 700; text-align: left; }
        .sig-stats-table tr.sig-row-long td.sig-td-value { color: #16a34a; }
        .sig-stats-table tr.sig-row-short td.sig-td-value { color: #dc2626; }
        .sig-section-title { font-size: .95rem; font-weight: 800; color: var(--text-primary); margin: 18px 0 8px; display: flex; align-items: center; gap: 6px; }
        /* هر تکنیک تحلیلی داخل کادر مستقل خودش */
        .sig-card { background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .8rem; padding: 12px 14px; margin-bottom: 10px; }
        .sig-card-title { font-size: .82rem; font-weight: 800; color: #0ea5e9; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
        .sig-card-body { font-size: .8rem; line-height: 2; color: var(--text-secondary); white-space: pre-line; }
        .sig-card-body strong { color: var(--text-primary); }
        .modal-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 620px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        .modal-box-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        .modal-box-header h2 {
            font-size: 1.15rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        .modal-box-header h2 i { color: #0ea5e9; }
        .modal-box-body { padding: 18px 22px; overflow-y: auto; flex: 1; }
        .ta-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
        .ta-form-row label { font-size: .75rem; color: var(--text-muted); display: block; margin-bottom: 5px; }
        .ta-form-row select, .ta-form-row input {
            width: 100%; background: var(--bg-input); border: 1px solid var(--border-color);
            border-radius: .6rem; color: var(--text-primary); padding: 9px 12px; font-size: .85rem;
        }
        .ta-dir-toggle { display: flex; gap: 8px; margin-bottom: 14px; }
        .ta-dir-toggle button {
            flex: 1; padding: 10px; border-radius: .6rem; border: 1px solid var(--border-color);
            background: var(--bg-input); color: var(--text-secondary); font-weight: 700; font-size: .85rem; cursor: pointer;
        }
        .ta-dir-toggle button.active.long { background: #16a34a; color: #fff; border-color: #16a34a; }
        .ta-dir-toggle button.active.short { background: #dc2626; color: #fff; border-color: #dc2626; }
        #ta-calc-btn {
            width: 100%; background: #0ea5e9; color: #fff; border: none; border-radius: .8rem;
            padding: 12px; font-weight: 700; font-size: .9rem; cursor: pointer; margin-top: 4px;
        }
        #ta-calc-btn:hover { background: #0284c7; }
        #ta-results { margin-top: 18px; display: none; }
        .ta-result-item {
            display: flex; align-items: center; justify-content: space-between; gap: 10px;
            background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .7rem;
            padding: 11px 14px; margin-bottom: 8px;
        }
        .ta-result-item .ta-label { font-size: .8rem; color: var(--text-muted); display: flex; align-items: center; gap: 6px; }
        .ta-result-item .ta-value { font-size: .92rem; font-weight: 800; color: var(--text-primary); }
        .ta-targets { display: flex; flex-direction: column; gap: 6px; }
        .ta-target-row { display: flex; justify-content: space-between; font-size: .82rem; padding: 4px 0; }
        .ta-target-row .tg-name { color: var(--text-muted); }
        .ta-target-row .tg-price { font-weight: 700; color: var(--text-primary); }
        .ta-target-row .tg-rr { color: #4ade80; font-size: .75rem; }
        #ta-probability-bar { width: 100%; height: 8px; border-radius: 999px; background: var(--bg-primary); overflow: hidden; margin-top: 6px; }
        #ta-probability-fill { height: 100%; border-radius: 999px; transition: width .4s; }
        #ta-disclaimer { font-size: .7rem; color: var(--text-muted); margin-top: 14px; text-align: center; }

        /* Market Heatmap Modal */
        #heatmap-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1009;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #heatmap-modal.open { display: flex; }
        #heatmap-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 1100px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #heatmap-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #heatmap-header h2 {
            font-size: 1.15rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #heatmap-header h2 i { color: #06b6d4; }
        #heatmap-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
        #heatmap-controls select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 6px 10px;
            font-size: .8rem;
        }
        #heatmap-legend { display: flex; align-items: center; gap: 6px; font-size: .72rem; color: var(--text-muted); }
        .heatmap-legend-swatch { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
        #heatmap-body { padding: 16px; flex: 1; overflow: hidden; }
        #heatmap-container { position: relative; width: 100%; height: 62vh; min-height: 380px; border-radius: .8rem; overflow: hidden; background: var(--bg-primary); }
        .heatmap-tile {
            position: absolute;
            box-sizing: border-box;
            border: 1px solid rgba(0,0,0,.35);
            border-radius: 3px;
            padding: 4px 6px;
            overflow: hidden;
            cursor: pointer;
            transition: filter .15s, transform .1s;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            color: #fff;
        }
        .heatmap-tile:hover { filter: brightness(1.25); z-index: 5; }
        .heatmap-tile .ht-sym { font-weight: 800; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
        .heatmap-tile .ht-chg { font-weight: 700; line-height: 1.3; }
        .heatmap-tile .ht-price { opacity: .85; line-height: 1.3; white-space: nowrap; }
        #heatmap-empty { text-align: center; color: var(--text-muted); padding: 40px; }

        /* Smart Score badge (table) */
        .smart-score-badge {
            display: inline-flex; align-items: center; justify-content: center;
            min-width: 38px; height: 28px; padding: 0 8px; border-radius: 999px;
            color: #fff; font-weight: 800; font-size: .78rem; border: none; cursor: pointer;
            transition: transform .12s;
        }
        .smart-score-badge:hover { transform: scale(1.08); }

        /* App Message / Confirm modals (replace native alert/confirm) */
        #app-msg-modal, #app-confirm-modal {
            display: none; position: fixed; inset: 0; z-index: 1020;
            background: var(--modal-overlay); backdrop-filter: blur(10px);
            justify-content: center; align-items: center; padding: 20px;
            animation: appMsgOverlayIn .2s ease-out;
        }
        #app-msg-modal.open, #app-confirm-modal.open { display: flex; }
        @keyframes appMsgOverlayIn { from { opacity: 0; } to { opacity: 1; } }
        @keyframes appMsgBoxIn {
            from { opacity: 0; transform: translateY(14px) scale(.94); }
            to   { opacity: 1; transform: translateY(0) scale(1); }
        }
        .app-modal-box {
            position: relative;
            background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: 1.6rem;
            max-width: 380px; width: 100%; padding: 30px 24px 24px; text-align: center;
            box-shadow: 0 30px 80px var(--shadow-color);
            overflow: hidden;
            animation: appMsgBoxIn .28s cubic-bezier(.2,.9,.3,1.2);
        }
        .app-modal-box::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
            background: linear-gradient(90deg, var(--app-msg-accent, #60a5fa), transparent 130%);
        }
        .app-modal-icon {
            width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.7rem; line-height: 1;
            background: var(--app-msg-accent-bg, rgba(96,165,250,.12));
            box-shadow: 0 0 0 6px var(--app-msg-accent-ring, rgba(96,165,250,.06));
        }
        #app-msg-title, #app-confirm-title { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); margin-bottom: 8px; }
        #app-msg-text, #app-confirm-text { font-size: .85rem; color: var(--text-secondary); line-height: 1.9; white-space: pre-line; }
        #app-msg-ok-btn {
            margin-top: 18px; background: linear-gradient(135deg, #3b82f6, #2563eb); color: #fff; border: none; border-radius: .9rem;
            padding: 11px 28px; font-size: .85rem; font-weight: 700; cursor: pointer; width: 100%;
            box-shadow: 0 10px 24px rgba(37,99,235,.35); transition: transform .15s ease, box-shadow .15s ease;
        }
        #app-msg-ok-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(37,99,235,.45); }
        #app-msg-ok-btn:active { transform: translateY(0); }
        .app-confirm-btn { flex: 1; border: none; border-radius: .9rem; padding: 11px; font-size: .85rem; font-weight: 700; cursor: pointer; transition: transform .15s ease, filter .15s ease; }
        .app-confirm-btn.yes { background: linear-gradient(135deg, #22c55e, #16a34a); color: #fff; box-shadow: 0 10px 24px rgba(22,163,74,.3); }
        .app-confirm-btn.yes:hover { filter: brightness(1.08); transform: translateY(-1px); }
        .app-confirm-btn.no { background: var(--bg-input); color: var(--text-secondary); border: 1px solid var(--border-color); }
        .app-confirm-btn.no:hover { border-color: #f87171; color: #f87171; }

        /* ── نوتیف داخل‌برنامه‌ای (Toast) — طراحی‌شده تا دقیقاً شبیه نوتیفیکیشن‌های سیستمیِ
           ویندوز/اندروید/مک به‌نظر برسد: یک کارت جمع‌وجور در گوشهٔ بالای صفحه (نه بنر
           تمام‌عرض وسط‌چین مثل قبل)، با یک ردیف هویتی «نام برنامه • همین الان» درست مثل
           هدر نوتیفیکیشن‌های سیستم، و یک نوار پیشرفت باریک که زمان باقی‌مانده تا بسته‌شدن
           خودکار را نشان می‌دهد. همیشه نمایش داده می‌شود (چه اجازهٔ Notification مرورگر داده
           شده باشد چه نه)، و خودش بعد از چند ثانیه بسته می‌شود تا کارِ کاربر را قطع نکند. ── */
        #app-toast-container {
            position: fixed; top: calc(var(--safe-top) + 14px); right: 14px; z-index: 1300;
            display: flex; flex-direction: column; gap: 10px; align-items: flex-end; pointer-events: none;
            width: min(340px, calc(100% - 28px));
        }
        .app-toast {
            pointer-events: auto; width: 100%; background: var(--bg-secondary);
            border: 1px solid var(--border-color); border-radius: .9rem;
            box-shadow: 0 14px 38px var(--shadow-color); overflow: hidden;
            animation: appToastIn .28s cubic-bezier(.21,1.02,.73,1);
        }
        .app-toast-head {
            display: flex; align-items: center; gap: 6px; padding: 9px 12px 0;
            font-size: .64rem; font-weight: 700; color: var(--text-muted);
        }
        .app-toast-appicon {
            width: 15px; height: 15px; border-radius: 4px; flex-shrink: 0;
            background: linear-gradient(135deg,#7c3aed,#2563eb);
            display: inline-flex; align-items: center; justify-content: center; font-size: 9px;
        }
        .app-toast-head .dot { opacity: .5; }
        .app-toast-main { display: flex; gap: 10px; align-items: flex-start; padding: 5px 12px 11px; }
        .app-toast .app-toast-icon { font-size: 1.2rem; line-height: 1; flex-shrink: 0; margin-top: 1px; }
        .app-toast .app-toast-body { flex: 1; min-width: 0; }
        .app-toast .app-toast-title { font-size: .83rem; font-weight: 800; color: var(--text-primary); margin-bottom: 3px; }
        .app-toast .app-toast-text { font-size: .75rem; color: var(--text-secondary); line-height: 1.65; word-break: break-word; }
        .app-toast .app-toast-close { flex-shrink: 0; background: none; border: none; color: var(--text-muted); font-size: 1.05rem; cursor: pointer; padding: 0 2px; line-height: 1; }
        .app-toast-progress-track { height: 3px; background: var(--border-color); }
        .app-toast-progress-bar { height: 100%; width: 100%; transform-origin: right; animation: appToastProgress linear forwards; }
        .app-toast.success .app-toast-progress-bar { background: #4ade80; }
        .app-toast.error .app-toast-progress-bar, .app-toast.warning .app-toast-progress-bar { background: #f87171; }
        .app-toast.info .app-toast-progress-bar { background: #60a5fa; }
        .app-toast.closing { animation: appToastOut .2s ease-in forwards; }
        @keyframes appToastIn { from { opacity: 0; transform: translateX(-14px) scale(.97); } to { opacity: 1; transform: translateX(0) scale(1); } }
        @keyframes appToastOut { from { opacity: 1; transform: translateX(0) scale(1); } to { opacity: 0; transform: translateX(-10px) scale(.97); } }
        @keyframes appToastProgress { from { transform: scaleX(1); } to { transform: scaleX(0); } }


        /* Smart Score Modal */
        #score-modal {
            display: none; position: fixed; inset: 0; z-index: 1010;
            background: var(--modal-overlay); backdrop-filter: blur(8px);
            justify-content: center; align-items: flex-start; padding: 20px; overflow-y: auto;
        }
        #score-modal.open { display: flex; }
        #score-box {
            background: var(--bg-secondary); border-radius: 1.8rem; width: 100%; max-width: 460px; margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color); border: 1px solid var(--border-color);
            overflow: hidden; max-height: 92vh; display: flex; flex-direction: column;
        }
        #score-header {
            padding: 16px 24px; border-bottom: 1px solid var(--border-color);
            display: flex; justify-content: space-between; align-items: center; gap: 10px;
            background: var(--bg-secondary); flex-shrink: 0;
        }
        #score-header h2 { font-size: 1.1rem; font-weight: 700; color: var(--text-primary); display: flex; align-items: center; gap: 10px; }
        #score-header img { width: 26px; height: 26px; border-radius: 50%; }
        #score-body { padding: 22px 24px; overflow-y: auto; flex: 1; }
        #score-circle-wrap { display: flex; flex-direction: column; align-items: center; margin-bottom: 20px; }
        #score-circle {
            width: 130px; height: 130px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
            flex-direction: column; font-weight: 800; position: relative;
        }
        #score-circle .num { font-size: 2.2rem; line-height: 1; }
        #score-circle .denom { font-size: .8rem; opacity: .85; font-weight: 600; }
        #score-verdict { margin-top: 10px; font-weight: 700; font-size: .95rem; }
        .score-item {
            display: flex; align-items: flex-start; gap: 10px; padding: 10px 0;
            border-bottom: 1px solid var(--border-color);
        }
        .score-item:last-child { border-bottom: none; }
        .score-item .si-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 2px; }
        .score-item .si-body { flex: 1; }
        .score-item .si-title { display: flex; justify-content: space-between; font-weight: 700; color: var(--text-primary); font-size: .88rem; }
        .score-item .si-desc { color: var(--text-muted); font-size: .78rem; margin-top: 2px; line-height: 1.6; }
        .score-item .si-score { font-weight: 800; }
        #score-disclaimer { font-size: .7rem; color: var(--text-muted); margin-top: 16px; text-align: center; }

        /* Position Size Calculator Modal */
        #position-calc-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1007;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #position-calc-modal.open { display: flex; }
        #position-calc-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 640px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #position-calc-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #position-calc-header h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #position-calc-header h2 i { color: #d97706; }
        #position-calc-body {
            padding: 20px 24px 24px;
            overflow-y: auto;
            flex: 1;
        }
        .pos-form {
            display: grid;
            gap: 14px;
        }
        .pos-form label {
            color: var(--text-muted);
            font-size: .75rem;
            font-weight: 600;
            display: block;
            margin-bottom: 4px;
        }
        .pos-form input,
        .pos-form select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 8px 14px;
            width: 100%;
            font-size: .85rem;
            outline: none;
        }
        .pos-form input:focus,
        .pos-form select:focus { border-color: #d97706; }
        .pos-form .row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }
        .pos-form .row-3 {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 12px;
        }
        @media (max-width: 520px) {
            .pos-form .row-3 { grid-template-columns: 1fr 1fr; }
        }
        .pos-form .hint {
            font-size: .7rem;
            color: var(--text-muted);
            margin-top: -8px;
        }
        .pos-form .btn-pos {
            background: #d97706;
            color: white;
            border: none;
            border-radius: .6rem;
            padding: 12px;
            font-size: .95rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
        }
        .pos-form .btn-pos:hover { background: #b45309; }
        .pos-result {
            background: var(--bg-primary);
            border-radius: 10px;
            padding: 14px 16px;
            border: 1px solid var(--border-color);
            margin-top: 4px;
            display: none;
        }
        .pos-result.show { display: block; }
        .pos-result .line {
            display: flex;
            justify-content: space-between;
            padding: 6px 0;
            font-size: .85rem;
            color: var(--text-muted);
            border-bottom: 1px dashed var(--border-color);
        }
        .pos-result .line:last-child { border-bottom: none; }
        .pos-result .line .val {
            color: var(--text-secondary);
            font-weight: 700;
        }
        .pos-result .line .val.highlight {
            color: #d97706;
            font-size: 1rem;
        }
        .pos-result .line .val.danger { color: #f87171; }
        .pos-result .line .val.success { color: #4ade80; }
        .pos-result .warn-box {
            margin-top: 10px;
            background: rgba(248,113,113,.1);
            border: 1px solid rgba(248,113,113,.35);
            color: #f87171;
            border-radius: 8px;
            padding: 8px 12px;
            font-size: .75rem;
        }

        /* Professional Risk Management Calculator Suite */
        #risk-suite-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1007;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #risk-suite-modal.open { display: flex; }
        #risk-suite-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 680px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #risk-suite-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #risk-suite-header h2 {
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #risk-suite-header h2 i { color: #d97706; }
        #risk-suite-body { padding: 16px 24px 24px; overflow-y: auto; flex: 1; }
        #risk-suite-tabs {
            display: flex;
            gap: 4px;
            margin-bottom: 16px;
            background: var(--bg-input);
            border-radius: .7rem;
            padding: 4px;
            flex-wrap: wrap;
        }
        #risk-suite-tabs button {
            flex: 1;
            min-width: 90px;
            background: transparent;
            border: none;
            padding: 9px 6px;
            border-radius: .5rem;
            font-size: .74rem;
            font-weight: 700;
            color: var(--text-muted);
            cursor: pointer;
            white-space: nowrap;
        }
        #risk-suite-tabs button.active { background: #d97706; color: #fff; }
        .rs-pane { display: none; }
        .rs-pane.active { display: block; }
        .rs-sub-title {
            font-size: .82rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 6px;
            margin: 14px 0 8px;
        }
        .rs-sub-title:first-child { margin-top: 0; }
        .rs-divider { border-top: 1px dashed var(--border-color); margin: 16px 0; }

        /* Professional Chart Modal — dual currency (USD+Toman) & multi-coin comparison */
        #pro-chart-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1007;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        #pro-chart-modal.open { display: flex; }
        #pro-chart-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 980px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        #pro-chart-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        #pro-chart-header h2 {
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #pro-chart-header h2 i { color: #7c3aed; }
        #pro-chart-body { padding: 16px 24px 24px; overflow-y: auto; flex: 1; }
        #pro-chart-mode-tabs {
            display: flex;
            gap: 4px;
            margin-bottom: 16px;
            background: var(--bg-input);
            border-radius: .7rem;
            padding: 4px;
        }
        #pro-chart-mode-tabs button {
            flex: 1;
            background: transparent;
            border: none;
            padding: 9px 6px;
            border-radius: .5rem;
            font-size: .78rem;
            font-weight: 700;
            color: var(--text-muted);
            cursor: pointer;
        }
        #pro-chart-mode-tabs button.active { background: #7c3aed; color: #fff; }
        .pc-pane { display: none; }
        .pc-pane.active { display: block; }
        .pc-timeframe-row { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0 14px; }
        .pc-timeframe-row button {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            color: var(--text-muted);
            border-radius: .5rem;
            padding: 6px 14px;
            font-size: .75rem;
            font-weight: 700;
            cursor: pointer;
        }
        .pc-timeframe-row button.active { background: #7c3aed; color: #fff; border-color: #7c3aed; }
        .pc-compare-chip {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 999px;
            padding: 5px 6px 5px 12px;
            font-size: .78rem;
            color: var(--text-primary);
        }
        .pc-compare-chip button { background: none; border: none; color: #f87171; cursor: pointer; font-size: .85rem; padding: 2px 6px; }
        #pro-chart-canvas-wrap { position: relative; height: 380px; margin-top: 10px; }
        #pro-chart-loading { text-align: center; padding: 40px 0; color: var(--text-muted); font-size: .85rem; display: none; }

        /* Share Modal */
        #share-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1008;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        #share-modal.open { display: flex; }
        #share-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 500px;
            border: 1px solid var(--border-color);
            padding: 28px;
            box-shadow: 0 30px 80px var(--shadow-color);
        }
        #share-box h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            margin-bottom: 16px;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #share-box h2 i { color: #0d9488; }
        #share-box .share-link {
            background: var(--bg-input);
            border-radius: .6rem;
            padding: 12px 16px;
            border: 1px solid var(--border-color);
            color: var(--text-muted);
            font-size: .85rem;
            word-break: break-all;
            margin-bottom: 16px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
        }
        #share-box .share-link button {
            background: #0d9488;
            color: white;
            border: none;
            border-radius: .4rem;
            padding: 6px 14px;
            font-size: .75rem;
            cursor: pointer;
            white-space: nowrap;
        }
        #share-box .share-link button:hover { background: #0f766e; }
        .share-buttons {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        .share-buttons button {
            flex: 1;
            min-width: 80px;
            padding: 10px;
            border: none;
            border-radius: .6rem;
            font-size: .85rem;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s;
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
        }
        .share-buttons button:hover { transform: translateY(-2px); }
        .share-buttons .telegram { background: #0088cc; }
        .share-buttons .telegram:hover { background: #0077b3; }
        .share-buttons .twitter { background: #1da1f2; }
        .share-buttons .twitter:hover { background: #1a91da; }
        .share-buttons .copy { background: #475569; }
        .share-buttons .copy:hover { background: #334155; }
        .share-close {
            background: var(--border-color);
            color: var(--text-secondary);
            border: none;
            border-radius: .65rem;
            padding: 10px;
            font-size: .9rem;
            font-weight: 600;
            cursor: pointer;
            width: 100%;
            margin-top: 12px;
        }
        .share-close:hover { background: #475569; }
        .modal-close-btn {
            background: none;
            border: none;
            color: var(--text-muted);
            font-size: 1.8rem;
            cursor: pointer;
            padding: 0 8px;
        }
        .modal-close-btn:hover { color: var(--text-secondary); }

        .app-modal {
            display: none;
            position: fixed;
            inset: 0;
            z-index: 1006;
            background: var(--modal-overlay);
            backdrop-filter: blur(8px);
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            overflow-y: auto;
        }
        .app-modal.open { display: flex; }
        .edu-hub-card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 1rem; padding: 20px 14px; text-align: center; cursor: pointer; transition: transform .15s, border-color .15s; }
        .edu-hub-card:hover { border-color: #0d9488; transform: translateY(-2px); }
        .rm-filter-btn { background: var(--bg-input); border: 1px solid var(--border-color); color: var(--text-secondary); border-radius: .6rem; padding: 8px 14px; font-size: .78rem; font-weight: 600; cursor: pointer; }
        .rm-filter-btn.active { background: #dc2626; color: #fff; border-color: #dc2626; }
        .td-filter-btn { background: var(--bg-input); border: 1px solid var(--border-color); color: var(--text-secondary); border-radius: .6rem; padding: 8px 14px; font-size: .78rem; font-weight: 600; cursor: pointer; }
        .td-filter-btn.active { background: #7c3aed; color: #fff; border-color: #7c3aed; }
        .app-modal-box {
            background: var(--bg-secondary);
            border-radius: 1.8rem;
            width: 100%;
            max-width: 760px;
            margin: auto;
            box-shadow: 0 30px 80px var(--shadow-color);
            border: 1px solid var(--border-color);
            overflow: hidden;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
        }
        .app-modal-header {
            padding: 16px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            background: var(--bg-secondary);
            flex-shrink: 0;
        }
        .app-modal-header h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
        }
        .app-modal-body {
            padding: 20px 24px 24px;
            overflow-y: auto;
            flex: 1;
            color: var(--text-secondary);
        }
        .report-meta { color: var(--text-muted); font-size: .8rem; margin-bottom: 16px; }
        .report-block { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 1rem; padding: 16px; margin-bottom: 14px; }
        .report-block h3 { font-size: 1rem; color: var(--text-primary); margin-bottom: 10px; }
        .report-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
        .report-stat { background: var(--bg-input); border-radius: .6rem; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; }
        .report-stat span { font-size: .72rem; color: var(--text-muted); }
        .report-stat b { font-size: 1rem; color: var(--text-primary); }
        .scr-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 12px; }
        .scr-filter-grid .full-w { grid-column: 1 / -1; }
        .scr-filter-grid label { font-size: .72rem; color: var(--text-muted); margin-bottom: 4px; display: block; font-weight: 600; }
        .scr-filter-grid input, .scr-filter-grid select {
            width: 100%; background: var(--bg-input); border: 1px solid var(--border-color);
            border-radius: .5rem; color: var(--text-secondary); padding: 8px 10px; font-size: .82rem; outline: none;
        }
        .scr-filter-grid input:focus, .scr-filter-grid select:focus { border-color: #db2777; }
        .scr-range { display: flex; align-items: center; gap: 6px; }
        .scr-range span { color: var(--text-muted); font-size: .75rem; }
        .scr-presets { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
        .scr-presets button {
            background: var(--bg-input); border: 1px solid var(--border-color); color: var(--text-secondary);
            border-radius: 20px; padding: 6px 14px; font-size: .75rem; font-weight: 600; cursor: pointer; transition: all .2s;
        }
        .scr-presets button:hover, .scr-presets button.active { border-color: #db2777; color: #db2777; background: rgba(219,39,119,.08); }
        .scr-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
        .scr-toolbar .btn-apply { background: #db2777; color: #fff; border: none; border-radius: .6rem; padding: 9px 20px; font-size: .82rem; font-weight: 700; cursor: pointer; }
        .scr-toolbar .btn-apply:hover { background: #be185d; }
        .scr-toolbar .btn-reset { background: transparent; color: var(--text-muted); border: 1px solid var(--border-color); border-radius: .6rem; padding: 9px 16px; font-size: .8rem; cursor: pointer; }
        .scr-toolbar .btn-reset:hover { color: #ef4444; border-color: #ef4444; }
        .scr-count { font-size: .78rem; color: var(--text-muted); }
        .scr-table-wrap { overflow-x: auto; border: 1px solid var(--border-color); border-radius: .8rem; }
        .scr-table th { cursor: pointer; user-select: none; white-space: nowrap; }
        .scr-table th:hover { color: #db2777; }
        .scr-table th.sorted { color: #db2777; }
        .cf-banner {
            background: rgba(251,191,36,.1); border: 1px solid rgba(251,191,36,.35); color: #fbbf24;
            border-radius: .7rem; padding: 10px 14px; font-size: .78rem; line-height: 1.7; margin-bottom: 14px;
            display: flex; gap: 8px; align-items: flex-start;
        }
        .cf-form { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 1rem; padding: 14px; margin-bottom: 16px; }
        .cf-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-bottom: 10px; }
        .cf-form label { font-size: .72rem; color: var(--text-muted); margin-bottom: 4px; display: block; font-weight: 600; }
        .cf-form input, .cf-form select, .cf-form textarea {
            width: 100%; background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .5rem;
            color: var(--text-secondary); padding: 8px 10px; font-size: .82rem; outline: none; font-family: inherit;
        }
        .cf-form input:focus, .cf-form select:focus, .cf-form textarea:focus { border-color: #0ea5e9; }
        .cf-dir-toggle { display: inline-flex; background: var(--bg-input); border-radius: 8px; padding: 2px; gap: 2px; border: 1px solid var(--border-color); }
        .cf-dir-toggle button { padding: 7px 16px; border-radius: 6px; font-size: .78rem; font-weight: 700; cursor: pointer; border: none; background: transparent; color: var(--text-muted); }
        .cf-dir-toggle button.active[data-dir="long"] { background: #16a34a; color: #fff; }
        .cf-dir-toggle button.active[data-dir="short"] { background: #dc2626; color: #fff; }
        .cf-dir-toggle button.active[data-dir="neutral"] { background: #64748b; color: #fff; }
        .cf-submit { background: linear-gradient(135deg,#0ea5e9,#0284c7); color: #fff; border: none; border-radius: .6rem; padding: 9px 20px; font-size: .82rem; font-weight: 700; cursor: pointer; margin-top: 4px; transition: transform .15s ease, box-shadow .15s ease, background .2s ease; box-shadow: 0 2px 8px rgba(14,165,233,.25); }
        .cf-submit:hover { background: linear-gradient(135deg,#0284c7,#0369a1); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(14,165,233,.35); }
        .cf-submit:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(14,165,233,.3); }
        .cf-input { background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .7rem; color: var(--text-primary); padding: 10px 14px; font-size: .85rem; transition: border-color .2s ease, box-shadow .2s ease; }
        .cf-input::placeholder { color: var(--text-muted); }
        .cf-input:focus { outline: none; border-color: #0ea5e9; box-shadow: 0 0 0 3px rgba(14,165,233,.16); }
        .cf-chat-bar { display: flex; align-items: center; gap: 6px; background: var(--bg-input); border: 1px solid var(--border-color); border-radius: 999px; padding: 4px 5px 4px 16px; transition: border-color .2s ease, box-shadow .2s ease; }
        .cf-chat-bar:focus-within { border-color: #0ea5e9; box-shadow: 0 0 0 3px rgba(14,165,233,.16); }
        .cf-chat-bar .cf-input { flex: 1; background: transparent; border: none; padding: 9px 0; border-radius: 0; }
        .cf-chat-bar .cf-input:focus { box-shadow: none; }
        .cf-chat-bar .cf-send-btn { width: 38px; height: 38px; min-width: 38px; min-height: 38px; border-radius: 50%; background: linear-gradient(135deg,#0ea5e9,#0284c7); color: #fff; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: .85rem; flex-shrink: 0; margin: 0; padding: 0; transition: transform .15s ease, box-shadow .15s ease, background .2s ease; box-shadow: 0 2px 8px rgba(14,165,233,.35); }
        .cf-chat-bar .cf-send-btn:hover { background: linear-gradient(135deg,#0284c7,#0369a1); transform: scale(1.07); box-shadow: 0 3px 10px rgba(14,165,233,.45); }
        .cf-chat-bar .cf-send-btn:active { transform: scale(.94); }
        .cf-feed { display: flex; flex-direction: column; gap: 10px; max-height: 480px; overflow-y: auto; }
        .cf-card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: .9rem; padding: 12px 14px; }
        .cf-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
        .cf-card-coin { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--text-primary); font-size: .88rem; }
        .cf-dir-badge { font-size: .68rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; }
        .cf-dir-badge.long { background: rgba(22,163,74,.15); color: #4ade80; }
        .cf-dir-badge.short { background: rgba(220,38,38,.15); color: #f87171; }
        .cf-dir-badge.neutral { background: rgba(100,116,139,.15); color: #94a3b8; }
        .cf-card-note { color: var(--text-secondary); font-size: .82rem; line-height: 1.7; margin-bottom: 6px; white-space: pre-wrap; }
        .cf-card-meta { display: flex; align-items: center; justify-content: space-between; font-size: .68rem; color: var(--text-muted); }
        .cf-card-actions button { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: .75rem; padding: 2px 6px; }
        .cf-card-actions button:hover { color: #ef4444; }
        .cf-empty { text-align: center; padding: 40px 20px; color: var(--text-muted); }
        .cf-empty .icon { font-size: 2.2rem; margin-bottom: 8px; }

        /* ── بازسازی: هر آیتم فید در یک خط فشرده، با دکمه حذف در همه بخش‌ها ── */
        .cf-feed.cf-feed-rows { gap: 0; border: 1px solid var(--border-color); border-radius: .8rem; overflow: hidden; }
        .cf-row {
            display: flex; align-items: center; gap: 8px; padding: 8px 12px;
            border-bottom: 1px solid var(--border-color); background: var(--bg-primary); font-size: .8rem;
        }
        .cf-row:last-child { border-bottom: none; }
        .cf-row .cf-row-icon { flex-shrink: 0; font-size: .95rem; }
        .cf-row .cf-row-main {
            flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px;
            overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--text-primary);
        }
        .cf-row .cf-row-main b { font-weight: 700; flex-shrink: 0; }
        .cf-row .cf-row-main .cf-row-note { color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .cf-row .cf-row-time { flex-shrink: 0; font-size: .68rem; color: var(--text-muted); }
        .cf-row .cf-row-del { flex-shrink: 0; background: none; border: none; color: var(--text-muted); cursor: pointer; padding: 2px 6px; font-size: .78rem; }
        .cf-row .cf-row-del:hover { color: #ef4444; }

        /* ══ Auth / Subscription / Group-Chat additions ══ */
        .header-bottom .header-btn.subscribe { background: linear-gradient(135deg,#f59e0b,#d97706); }
        .header-bottom .header-btn.subscribe:hover { background: linear-gradient(135deg,#d97706,#b45309); }
        .header-bottom .header-btn.user-badge { background: #334155; }
        .header-bottom .header-btn.user-badge:hover { background: #1e293b; }
        .header-bottom .header-btn.data-export { background: #0f766e; }
        .header-bottom .header-btn.data-export:hover { background: #115e59; }
        .header-bottom .header-btn.data-import { background: #4338ca; }
        .header-bottom .header-btn.data-import:hover { background: #3730a3; }
        .header-bottom .header-btn.signal-btn { background: #059669; }
        .header-bottom .header-btn.signal-btn:hover { background: #047857; }
        .data-menu-wrap { position: relative; width: 100%; }
        .data-menu-wrap .header-btn { background: linear-gradient(135deg,#0f766e,#4338ca); }
        .data-menu-wrap .header-btn:hover { background: linear-gradient(135deg,#115e59,#3730a3); }
        .data-menu-dropdown {
            display: none;
            position: absolute;
            top: calc(100% + 6px);
            right: 0;
            left: 0;
            background: var(--bg-secondary, #1e293b);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            box-shadow: 0 8px 24px rgba(0,0,0,.35);
            overflow: hidden;
            z-index: 60;
            min-width: 160px;
        }
        .data-menu-dropdown.open { display: block; }
        .data-menu-dropdown button {
            display: flex; align-items: center; gap: 8px; width: 100%;
            padding: 11px 14px; background: transparent; border: none; cursor: pointer;
            color: var(--text-primary); font-size: 13px; font-weight: 600; text-align: right;
            transition: background .15s;
        }
        .data-menu-dropdown button:hover { background: var(--bg-input, rgba(255,255,255,.06)); }
        .data-menu-dropdown button + button { border-top: 1px solid var(--border-color); }
        .header-bottom .header-btn.data-update { background: #be123c; }
        .header-bottom .header-btn.data-update:hover { background: #9f1239; }
        .header-bottom .header-btn.user-badge.role-admin { background: #7c3aed; }
        .header-bottom .header-btn.user-badge.role-member { background: #0d9488; }
        .header-bottom .header-btn.user-badge.role-guest { background: #475569; }

        .sub-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 16px; }
        .sub-plan-card { background: var(--bg-primary); border: 2px solid var(--border-color); border-radius: 1rem; padding: 18px 14px; text-align: center; position: relative; transition: .15s; }
        .sub-plan-card:hover { border-color: #f59e0b; transform: translateY(-2px); }
        .sub-plan-card.best { border-color: #f59e0b; }
        .sub-plan-card .badge-best { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); background: #f59e0b; color: #1e293b; font-size: .65rem; font-weight: 800; padding: 3px 12px; border-radius: 20px; }
        .sub-plan-card h3 { color: var(--text-primary); font-size: 1rem; margin-bottom: 6px; }
        .sub-plan-card .price { font-size: 1.4rem; font-weight: 800; color: #f59e0b; margin: 8px 0 4px; }
        .sub-plan-card .price small { font-size: .68rem; color: var(--text-muted); font-weight: 500; }
        .sub-plan-card ul { list-style: none; padding: 0; margin: 10px 0 14px; text-align: right; font-size: .74rem; color: var(--text-secondary); display: flex; flex-direction: column; gap: 6px; }
        .sub-plan-card ul li i { color: #4ade80; margin-left: 6px; }
        .sub-plan-card button { width: 100%; background: #f59e0b; color: #1e293b; border: none; border-radius: .6rem; padding: 10px; font-weight: 800; font-size: .82rem; cursor: pointer; }
        .sub-plan-card button:hover { background: #d97706; color: #fff; }
        .sub-status-box { display: flex; align-items: center; gap: 10px; background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: .9rem; padding: 12px 14px; margin-bottom: 16px; font-size: .82rem; color: var(--text-secondary); }
        .sub-status-box.active { border-color: #16a34a; }
        .sub-status-box.trial { border-color: #f59e0b; }
        .sub-status-box.locked { border-color: #ef4444; }

        .auth-tabs { display: flex; gap: 6px; margin-bottom: 16px; background: var(--bg-input); border-radius: .6rem; padding: 4px; }
        .auth-tabs button { flex: 1; background: transparent; border: none; padding: 9px; border-radius: .5rem; font-size: .8rem; font-weight: 700; color: var(--text-muted); cursor: pointer; }
        .auth-tabs button.active { background: #0ea5e9; color: #fff; }
        .auth-pane { display: none; }
        .auth-pane.active { display: block; }
        .auth-pane label { font-size: .74rem; color: var(--text-muted); margin-bottom: 4px; display: block; font-weight: 600; }
        .auth-pane input { width: 100%; background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .6rem; padding: 9px 12px; color: var(--text-primary); font-size: .82rem; margin-bottom: 12px; }
        .pw-copy-wrap { position: relative; }
        .pw-copy-wrap input { padding-left: 64px !important; }
        .pw-copy-wrap.pw-eye-only input { padding-left: 38px !important; }
        .pw-copy-icon {
            position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
            cursor: pointer; color: var(--text-muted); font-size: .9rem; user-select: none;
        }
        .pw-copy-icon:hover { color: #4ade80; }
        .pw-eye-icon {
            position: absolute; left: 38px; top: 50%; transform: translateY(-50%);
            cursor: pointer; color: var(--text-muted); font-size: .9rem; user-select: none;
        }
        .pw-eye-icon:hover { color: var(--text-primary); }
        .auth-pane button.auth-submit { width: 100%; background: #0ea5e9; color: #fff; border: none; border-radius: .6rem; padding: 10px; font-weight: 700; font-size: .82rem; cursor: pointer; }
        .auth-pane button.auth-submit:hover { background: #0284c7; }
        .auth-note { font-size: .68rem; color: var(--text-muted); margin-top: 8px; line-height: 1.6; }
        .auth-current { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: .8rem; padding: 14px; margin-bottom: 14px; font-size: .82rem; color: var(--text-secondary); }
        .role-pill { display: inline-block; font-size: .65rem; font-weight: 800; padding: 2px 10px; border-radius: 20px; margin-right: 6px; }
        .role-pill.admin { background: rgba(124,58,237,.18); color: #a78bfa; }
        .role-pill.member { background: rgba(13,148,136,.18); color: #2dd4bf; }
        .role-pill.guest { background: rgba(71,85,105,.25); color: #94a3b8; }

        .login-gate-box .sub-mini-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 10px; }
        .login-gate-box .sub-mini-plans button { background: var(--bg-input); border: 1px solid var(--border-color); color: var(--text-secondary); border-radius: .6rem; padding: 10px 6px; font-size: .74rem; font-weight: 700; cursor: pointer; text-align: center; line-height: 1.5; }
        .login-gate-box .sub-mini-plans button:hover { border-color: #f59e0b; color: #f59e0b; }
        .login-gate-box .sub-mini-plans button b { display: block; font-size: .8rem; margin-bottom: 2px; }
        .app-modal.gate-mode .modal-close-btn { display: none; }
        .report-stat b.positive { color: #4ade80; }
        .report-stat b.negative { color: #f87171; }
        .report-empty { text-align: center; color: var(--text-muted); padding: 30px 0; }
        .report-download-btn {
            background: #6366f1; color: white; border: none; border-radius: .7rem;
            padding: 10px 20px; font-size: .88rem; font-weight: 700; cursor: pointer; width: 100%;
        }
        .report-download-btn:hover { background: #4f46e5; }

        .ce-disclaimer {
            background: #451a03; color: #fbbf24; border: 1px solid #92400e;
            border-radius: .8rem; padding: 12px 14px; font-size: .78rem; margin-bottom: 18px; line-height: 1.8;
        }
        .ce-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 18px; }
        .ce-form .full { grid-column: 1 / -1; }
        .ce-form label { font-size: .78rem; color: var(--text-muted); margin-bottom: 4px; display: block; font-weight: 600; }
        .ce-form select, .ce-form input {
            background: var(--bg-input); border: 1px solid var(--border-color); border-radius: .6rem; color: var(--text-secondary);
            padding: 9px 12px; width: 100%; font-size: .85rem; outline: none;
        }
        .ce-form select:focus, .ce-form input:focus { border-color: #16a34a; }
        .ce-form button {
            background: #16a34a; color: white; border: none; border-radius: .7rem;
            padding: 10px 18px; font-size: .88rem; font-weight: 700; cursor: pointer;
        }
        .ce-form button:hover { background: #15803d; }
        .ce-row {
            background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: .9rem; padding: 12px 14px;
            display: flex; align-items: center; gap: 12px; margin-bottom: 10px; flex-wrap: wrap;
        }
        .ce-info { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 160px; }
        .ce-info b { color: var(--text-primary); font-size: .9rem; }
        .ce-info span { color: var(--text-muted); font-size: .75rem; }
        .ce-status { color: #4ade80; font-weight: 700; font-size: .8rem; white-space: nowrap; }

        .sentiment-highlight { animation: sentimentGlow 1.6s ease; border-radius: 1rem; }
        @keyframes sentimentGlow {
            0% { box-shadow: 0 0 0 0 rgba(249, 115, 22, .65); }
            50% { box-shadow: 0 0 0 16px rgba(249, 115, 22, 0); }
            100% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0); }
        }

        .blockchain-info {
            font-size: .65rem;
            color: var(--text-muted);
            display: flex;
            flex-wrap: wrap;
            gap: 4px 10px;
            margin-top: 4px;
        }
        .blockchain-info .item {
            display: flex;
            align-items: center;
            gap: 3px;
        }
        .blockchain-info .item i {
            font-size: .55rem;
            opacity: .6;
        }
        .blockchain-info .item .value {
            color: var(--text-secondary);
        }
        .blockchain-btn {
            background: #2563eb;
            color: white;
            border: none;
            border-radius: 4px;
            padding: 2px 8px;
            font-size: .6rem;
            cursor: pointer;
            margin-top: 4px;
        }
        .blockchain-btn:hover { background: #1d4ed8; }
        .blockchain-detail {
            display: none;
            background: var(--bg-input);
            border-radius: 6px;
            padding: 6px 10px;
            margin-top: 4px;
            font-size: .65rem;
            color: var(--text-secondary);
            border: 1px solid var(--border-color);
        }
        .blockchain-detail.show { display: block; }
        .blockchain-detail .row {
            display: flex;
            justify-content: space-between;
            padding: 2px 0;
            border-bottom: 1px solid var(--bg-primary);
        }
        .blockchain-detail .row:last-child { border-bottom: none; }
        .blockchain-detail .label { color: var(--text-muted); }
        .blockchain-detail .val { color: var(--text-primary); font-weight: 500; }

        .winner-card,
        .loser-card {
            background: var(--bg-card);
            border-radius: 12px;
            padding: 12px 16px;
            border: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            gap: 12px;
            transition: all .2s;
        }
        .winner-card:hover,
        .loser-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 16px var(--shadow-color);
        }
        .winner-card { border-right: 4px solid #4ade80; }
        .loser-card { border-right: 4px solid #f87171; }
        .winner-card img,
        .loser-card img {
            width: 32px;
            height: 32px;
            border-radius: 50%;
        }
        .winner-card .info,
        .loser-card .info { flex: 1; }
        .winner-card .name,
        .loser-card .name {
            font-weight: 600;
            color: var(--text-primary);
            font-size: .85rem;
        }
        .winner-card .detail,
        .loser-card .detail {
            color: var(--text-muted);
            font-size: .7rem;
        }
        .winner-card .change {
            color: #4ade80;
            font-weight: 700;
            font-size: .9rem;
        }
        .loser-card .change {
            color: #f87171;
            font-weight: 700;
            font-size: .9rem;
        }

        .note-section {
            margin-top: 6px;
            padding: 8px 12px;
            background: var(--bg-primary);
            border-radius: 8px;
            border: 1px solid var(--border-color);
            display: none;
        }
        .note-section.show { display: block; }
        .note-section textarea {
            width: 100%;
            padding: 6px 10px;
            border: 1px solid var(--border-color);
            border-radius: 6px;
            font-size: .8rem;
            resize: vertical;
            min-height: 40px;
            font-family: inherit;
            background: var(--bg-input);
            color: var(--text-secondary);
        }
        .note-section .note-meta {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: .7rem;
            color: var(--text-muted);
            margin-top: 4px;
            flex-wrap: wrap;
            gap: 4px;
        }
        .note-toggle {
            background: none;
            border: none;
            color: var(--text-muted);
            cursor: pointer;
            font-size: .7rem;
            padding: 2px 8px;
            border-radius: 4px;
            transition: all .2s;
        }
        .note-toggle:hover {
            background: var(--border-color);
            color: var(--text-primary);
        }
        .note-save-btn {
            background: #7c3aed;
            color: white;
            border: none;
            border-radius: 4px;
            padding: 2px 12px;
            font-size: .7rem;
            cursor: pointer;
            font-weight: 600;
        }
        .note-save-btn:hover { background: #6d28d9; }
        .note-entry {
            padding: 4px 8px;
            background: var(--bg-primary);
            border-radius: 6px;
            margin-bottom: 4px;
            font-size: .78rem;
            color: var(--text-secondary);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 4px;
        }
        .note-entry .note-text { flex: 1; }
        .note-entry .note-date { color: var(--text-muted); font-size: .65rem; }
        .note-entry .note-del { color: #ef4444; cursor: pointer; font-size: .7rem; background: none; border: none; }

        .change-badge {
            display: inline-block;
            padding: 2px 10px;
            border-radius: 6px;
            font-size: .7rem;
            font-weight: 600;
            min-width: 60px;
            text-align: center;
        }
        .change-badge.up { background: #14532d; color: #4ade80; }
        .change-badge.down { background: #7f1d1d; color: #f87171; }
        .change-badge.neutral { background: #1e3a5f; color: #60a5fa; }

        .price-range {
            font-size: .7rem;
            color: var(--text-muted);
            display: flex;
            flex-direction: column;
            gap: 1px;
        }
        .price-range .high { color: #4ade80; }
        .price-range .low { color: #f87171; }

        .exchange-link-section {
            margin-top: 12px;
            padding: 12px 16px;
            background: var(--bg-primary);
            border-radius: 10px;
            border: 1px solid var(--border-color);
        }
        .exchange-link-section .ex-title {
            font-size: .7rem;
            font-weight: 700;
            color: var(--text-muted);
            margin-bottom: 8px;
        }
        .exchange-link-section .ex-links {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }
        .exchange-link-section .ex-links a {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 4px 12px;
            border-radius: 6px;
            font-size: .7rem;
            font-weight: 600;
            text-decoration: none;
            transition: all .2s;
        }
        .exchange-link-section .ex-links a:hover { transform: translateY(-1px); }
        .ex-link-binance { background: #f0b90b; color: #1e293b; }
        .ex-link-coinbase { background: #0052ff; color: white; }
        .ex-link-kucoin { background: #26a17b; color: white; }
        .ex-link-okx { background: #1a1a1a; color: white; }
        .ex-link-bybit { background: #1e293b; color: #fbbf24; }

        /* ===== DASHBOARD CARDS ===== */
        .dashboard-card {
            background: var(--bg-card);
            border-radius: 1.2rem;
            padding: 18px 22px;
            border: 1px solid var(--border-color);
            transition: all .2s;
        }
        .dashboard-card:hover {
            border-color: #7c3aed;
            box-shadow: 0 4px 24px var(--shadow-color);
        }
        .dashboard-card .card-title {
            font-size: .8rem;
            font-weight: 700;
            color: var(--text-muted);
            margin-bottom: 10px;
            display: flex;
            align-items: center;
            gap: 8px;
            letter-spacing: 0.3px;
        }
        .dashboard-card .card-title i {
            font-size: .9rem;
            color: #0d9488;
            width: 20px;
        }
        .fear-greed-meter {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .fear-greed-bar {
            flex: 1;
            height: 12px;
            border-radius: 20px;
            background: linear-gradient(to left, #ef4444, #f59e0b, #10b981);
            position: relative;
            overflow: visible;
        }
        .fear-greed-bar .indicator {
            position: absolute;
            top: -6px;
            width: 6px;
            height: 24px;
            background: var(--bg-secondary);
            border-radius: 4px;
            transform: translateX(-50%);
            border: 2px solid white;
            box-shadow: 0 1px 6px var(--shadow-color);
            transition: left .6s ease;
        }
        .fear-greed-label {
            font-size: .9rem;
            font-weight: 700;
            min-width: 60px;
            text-align: center;
        }
        .network-stats {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 8px 16px;
        }
        .network-stats .stat-item {
            display: flex;
            justify-content: space-between;
            padding: 4px 0;
            border-bottom: 1px solid var(--bg-primary);
            font-size: .8rem;
        }
        .network-stats .stat-item .label { color: var(--text-muted); }
        .network-stats .stat-item .value { font-weight: 600; color: var(--text-primary); }
        .news-item {
            padding: 8px 0;
            border-bottom: 1px solid var(--bg-primary);
            font-size: .8rem;
            line-height: 1.5;
        }
        .news-item:hover { color: #60a5fa; }
        .news-item:last-child { border-bottom: none; }
        .news-item .time { color: var(--text-muted); font-size: .65rem; margin-left: 8px; }
        .news-item .badge-news {
            display: inline-block;
            padding: 1px 10px;
            border-radius: 12px;
            font-size: .6rem;
            font-weight: 600;
            margin-left: 6px;
        }
        .badge-news.positive { background: #14532d; color: #4ade80; }
        .badge-news.negative { background: #7f1d1d; color: #f87171; }
        .badge-news.neutral { background: #1e3a5f; color: #60a5fa; }
        .alert-status-list {
            display: flex;
            flex-direction: column;
            gap: 4px;
            max-height: 120px;
            overflow-y: auto;
        }
        .alert-status-list .alert-item-small {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 4px 8px;
            background: var(--bg-input);
            border-radius: 6px;
            font-size: .78rem;
            border-right: 3px solid var(--text-muted);
        }
        .alert-status-list .alert-item-small.triggered {
            border-right-color: #ef4444;
            background: #7f1d1d;
        }
        .alert-status-list .alert-item-small .coin { font-weight: 600; }
        .alert-status-list .alert-item-small .status { font-size: .65rem; font-weight: 600; }
        .alert-status-list .alert-item-small .status.active { color: #4ade80; }
        .alert-status-list .alert-item-small .status.triggered { color: #f87171; }
        .price-summary-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
            gap: 8px;
        }
        .price-summary-grid .price-item {
            background: var(--bg-input);
            border-radius: 8px;
            padding: 6px 10px;
            text-align: center;
        }
        .price-summary-grid .price-item .sym {
            font-size: .65rem;
            font-weight: 700;
            color: var(--text-muted);
        }
        .price-summary-grid .price-item .val {
            font-size: .85rem;
            font-weight: 700;
            color: var(--text-primary);
        }
        .price-summary-grid .price-item .chg {
            font-size: .65rem;
            font-weight: 600;
        }

        .dashboard-grid {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 16px;
        }
        @media (max-width: 1000px) { .dashboard-grid { grid-template-columns: 1fr 1fr; } .header-bottom { grid-template-columns: repeat(3, 1fr); } }
        @media (max-width: 680px) {
            .dashboard-grid { grid-template-columns: 1fr; }
            .network-stats { grid-template-columns: 1fr; }
            .price-summary-grid { grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); }
            .header-bottom { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 700px) {
            .header-top { padding: 12px 16px; flex-direction: column; }
            .header-top .logo-title h1 { font-size: 1rem; }
            .header-top .logo-title i { font-size: 1.5rem; }
            .header-middle { flex-direction: column; align-items: stretch; padding: 10px 14px; gap: 8px; }
            .header-middle .search-area { justify-content: center; flex-wrap: wrap; }
            .header-middle .datetime { justify-content: center; font-size: .8rem; }
            .header-bottom { grid-template-columns: repeat(2, 1fr); padding: 10px 10px 14px; gap: 6px; }
            .header-bottom .header-btn { padding: 8px 10px; font-size: 11px; min-height: 38px; border-radius: 12px; }
            .search-box { min-width: 140px; font-size: 16px !important; }
            .rate-input-box input { width: 80px; font-size: 16px !important; }
            .currency-selector button { padding: 8px 10px; font-size: .7rem; min-height: 38px; }
            .max-w-7xl { padding: 8px !important; }
            .sparkline-container { width: 90px; height: 38px; }
            #watchlist-box, #compare-box, #alert-box,
            #ai-modal-box, #coin-fund-modal-box, #coin-fund-modal-2-box,
            #tech1-modal-box { border-radius: 1rem; }
            #watchlist-modal, #compare-modal, #ai-modal,
            #coin-fund-modal, #coin-fund-modal-2, #tech1-modal { padding: 8px; }
            #alert-box { padding: 18px 14px; }
            .app-modal-box { border-radius: 1rem; margin: 8px; }
            .dashboard-grid { gap: 10px; }
        }
        @media (max-width: 480px) {
            .header-top .logo-title h1 { font-size: .9rem; }
            .header-top .logo-title span { font-size: .65rem; }
            .header-bottom .header-btn { padding: 7px 8px; font-size: 10px; min-height: 34px; border-radius: 10px; }
            body { padding-bottom: max(16px, var(--safe-bottom)); }
        }

        /* ══ حالت افقی (Landscape) روی گوشی — ارتفاعِ صفحه کم می‌شود، پس چیدمان جمع‌وجورتر می‌شود
           تا با کمترین اسکرول ممکن، محتوا در همان کادر کوتاهِ گوشی جا شود. محدودهٔ max-height:500px
           عمداً انتخاب شده تا فقط گوشی‌های افقی‌شده را بگیرد، نه تبلت/دسکتاپِ افقی که ارتفاع کافی دارند. */
        @media (orientation: landscape) and (max-height: 500px) {
            .header-top { padding: 6px 16px; flex-direction: row; }
            .header-top .logo-title { gap: 8px; }
            .header-top .logo-title i { font-size: 1.25rem; }
            .header-top .logo-title h1 { font-size: .9rem; }
            .header-top .logo-title span { display: none; }
            .theme-toggle-btn { padding: 5px 12px; min-height: 30px; font-size: .72rem; gap: 5px; }

            .header-middle { padding: 6px 16px; flex-direction: row; flex-wrap: wrap; gap: 6px; }
            .header-middle .datetime { font-size: .68rem; gap: 5px; }
            .search-box { min-width: 100px; font-size: 16px !important; padding: 6px 10px !important; }

            .header-bottom {
                grid-template-columns: repeat(7, 1fr) !important;
                padding: 6px 10px 8px;
                gap: 5px;
            }
            .header-bottom .header-btn {
                padding: 5px 3px;
                font-size: 9px;
                min-height: 30px;
                border-radius: 8px;
                line-height: 1.2;
            }

            .max-w-7xl { padding: 6px !important; }
            .dashboard-grid { gap: 6px; grid-template-columns: repeat(3, 1fr) !important; }
            .price-summary-grid { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)) !important; }
            .network-stats { grid-template-columns: repeat(3, 1fr) !important; }

            /* مودال‌ها: حداکثر استفاده از ارتفاعِ کمِ موجود + هدر/بدنهٔ جمع‌وجورتر برای رساندن محتوای بیشتر */
            .app-modal { padding: 8px; align-items: center; }
            .app-modal-box, #watchlist-box, #compare-box, #alert-box,
            #ai-modal-box, #coin-fund-modal-box, #coin-fund-modal-2-box, #tech1-modal-box {
                max-height: 96vh !important;
            }
            .app-modal-header { padding: 8px 16px; }
            .app-modal-header h2 { font-size: 1rem; }
            .app-modal-body { padding: 10px 16px 14px; }
        }

        /* ===== WHALE FLOW STYLES ===== */
        .whale-flow-container {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 1.2rem;
            padding: 16px 20px;
            margin-top: 16px;
        }
        .whale-flow-container .whale-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 12px;
        }
        .whale-flow-container .whale-header h3 {
            font-size: 1rem;
            font-weight: 700;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .whale-flow-container .whale-header h3 i {
            color: #8b5cf6;
        }
        .whale-filter {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
        }
        .whale-filter button {
            padding: 4px 12px;
            border-radius: 6px;
            font-size: .7rem;
            font-weight: 600;
            border: 1px solid var(--border-color);
            background: var(--bg-input);
            color: var(--text-muted);
            cursor: pointer;
            transition: all .2s;
            min-height: 30px;
        }
        .whale-filter button.active {
            background: #7c3aed;
            color: white;
            border-color: #7c3aed;
        }
        .whale-filter button:hover:not(.active) {
            background: var(--table-row-hover);
        }
        #forex-sessions button {
            cursor: default;
        }
        #forex-sessions button.active {
            background: #16a34a;
            border-color: #16a34a;
            color: #fff;
        }
        .forex-fav-btn {
            background: none;
            border: none;
            cursor: pointer;
            font-size: .95rem;
            line-height: 1;
            padding: 2px;
        }
        .forex-sparkline-wrap svg {
            display: block;
            margin: 0 auto;
        }
        .whale-table-wrap {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            max-height: 320px;
            overflow-y: auto;
        }
        .whale-table-wrap::-webkit-scrollbar { width: 4px; }
        .whale-table-wrap::-webkit-scrollbar-track { background: var(--bg-primary); border-radius: 10px; }
        .whale-table-wrap::-webkit-scrollbar-thumb { background: var(--text-muted); border-radius: 10px; }
        .whale-table {
            width: 100%;
            border-collapse: collapse;
            font-size: .8rem;
        }
        .whale-table thead th {
            background: var(--table-header);
            color: var(--text-muted);
            font-weight: 600;
            padding: 8px 10px;
            text-align: right;
            border-bottom: 2px solid var(--border-color);
            position: sticky;
            top: 0;
            z-index: 5;
            white-space: nowrap;
        }
        .whale-table tbody td {
            padding: 8px 10px;
            border-bottom: 1px solid var(--border-color);
            color: var(--text-secondary);
            white-space: nowrap;
        }
        .whale-table tbody tr:hover td {
            background: var(--table-row-hover);
        }
        .whale-badge-in {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            background: #14532d;
            color: #4ade80;
            padding: 2px 10px;
            border-radius: 12px;
            font-size: .65rem;
            font-weight: 600;
        }
        .whale-badge-out {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            background: #7f1d1d;
            color: #f87171;
            padding: 2px 10px;
            border-radius: 12px;
            font-size: .65rem;
            font-weight: 600;
        }
        .whale-amount {
            font-weight: 600;
            color: #fbbf24;
        }
        .whale-coin-tag {
            display: inline-block;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 4px;
            padding: 1px 8px;
            font-size: .7rem;
            font-weight: 600;
            color: var(--text-primary);
        }
        .whale-empty {
            text-align: center;
            padding: 30px 0;
            color: var(--text-muted);
            font-size: .85rem;
        }
        .whale-summary-stats {
            display: flex;
            gap: 16px;
            flex-wrap: wrap;
            margin-bottom: 10px;
            font-size: .75rem;
            color: var(--text-muted);
        }
        .whale-summary-stats span {
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .whale-summary-stats .in-count { color: #4ade80; font-weight: 600; }
        .whale-summary-stats .out-count { color: #f87171; font-weight: 600; }
        .whale-summary-stats .total-vol { color: #fbbf24; font-weight: 600; }

        /* ===== JOURNAL ===== */
        .journal-coin-search {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
            width: 100%;
        }
        .journal-coin-search input {
            flex: 1;
            min-width: 120px;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 6px 12px;
            font-size: .8rem;
            outline: none;
        }
        .journal-coin-search input:focus {
            border-color: #7c3aed;
        }
        .journal-coin-search .search-results {
            position: absolute;
            top: 100%;
            left: 0;
            right: 0;
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            max-height: 200px;
            overflow-y: auto;
            z-index: 20;
            display: none;
            margin-top: 2px;
        }
        .journal-coin-search .search-results .result-item {
            padding: 6px 12px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 8px;
            transition: background .2s;
            color: var(--text-secondary);
        }
        .journal-coin-search .search-results .result-item:hover {
            background: var(--table-row-hover);
        }
        .journal-coin-search .search-results .result-item img {
            width: 24px;
            height: 24px;
            border-radius: 50%;
        }
        .journal-coin-search .search-results .result-item .sym {
            color: var(--text-muted);
            font-size: .7rem;
        }
        .journal-coin-wrap {
            position: relative;
            flex: 1;
            min-width: 150px;
        }

        .journal-form-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
            margin-bottom: 12px;
        }
        .journal-form-grid-3 {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 10px;
            margin-bottom: 12px;
        }
        .journal-form-grid-4 {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr 1fr;
            gap: 10px;
            margin-bottom: 12px;
        }
        @media (max-width: 700px) {
            .journal-form-grid { grid-template-columns: 1fr; }
            .journal-form-grid-3 { grid-template-columns: 1fr 1fr; }
            .journal-form-grid-4 { grid-template-columns: 1fr 1fr; }
        }
        .journal-form-grid label,
        .journal-form-grid-3 label,
        .journal-form-grid-4 label {
            color: var(--text-muted);
            font-size: .75rem;
            font-weight: 600;
            display: block;
            margin-bottom: 4px;
        }
        .journal-form-grid input,
        .journal-form-grid select,
        .journal-form-grid-3 input,
        .journal-form-grid-3 select,
        .journal-form-grid-4 input,
        .journal-form-grid-4 select {
            width: 100%;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .6rem;
            color: var(--text-secondary);
            padding: 8px 12px;
            font-size: .85rem;
            outline: none;
        }
        .journal-form-grid input:focus,
        .journal-form-grid select:focus,
        .journal-form-grid-3 input:focus,
        .journal-form-grid-3 select:focus,
        .journal-form-grid-4 input:focus,
        .journal-form-grid-4 select:focus {
            border-color: #7c3aed;
        }

        .journal-table-wrap {
            overflow-x: auto;
            max-height: 400px;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
        }
        .journal-table-wrap::-webkit-scrollbar { width: 4px; }
        .journal-table-wrap::-webkit-scrollbar-track { background: var(--bg-primary); border-radius: 10px; }
        .journal-table-wrap::-webkit-scrollbar-thumb { background: var(--text-muted); border-radius: 10px; }
        /* داشبورد معامله‌گر: حداکثر ~۲۰ ردیف هم‌زمان دیده شود، بقیه با اسکرول عمودی (هدر جدول
           هم با position:sticky از قبل روی .journal-table thead th تعریف شده، پس هنگام اسکرول
           همیشه دیده می‌ماند). ارتفاع بر پایهٔ همان ارتفاع واقعی ردیف‌های .journal-table (پدینگ
           ۶px بالا/پایین + بردر) محاسبه شده: تقریباً ۳۲px هر ردیف × ۲۰ ردیف + ارتفاع هدر.
        */
        .trader-dashboard-table-wrap {
            overflow-x: auto;
            max-height: 700px;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
        }
        .trader-dashboard-table-wrap::-webkit-scrollbar { width: 4px; }
        .trader-dashboard-table-wrap::-webkit-scrollbar-track { background: var(--bg-primary); border-radius: 10px; }
        .trader-dashboard-table-wrap::-webkit-scrollbar-thumb { background: var(--text-muted); border-radius: 10px; }
        .journal-table {
            width: 100%;
            border-collapse: collapse;
            font-size: .7rem;
            min-width: 1400px;
        }
        .journal-table thead th {
            background: var(--table-header);
            color: var(--text-muted);
            font-weight: 600;
            padding: 6px 8px;
            text-align: right;
            border-bottom: 2px solid var(--border-color);
            position: sticky;
            top: 0;
            z-index: 5;
            white-space: nowrap;
        }
        .journal-table tbody td {
            padding: 6px 8px;
            border-bottom: 1px solid var(--border-color);
            color: var(--text-secondary);
            white-space: nowrap;
        }
        .journal-table tbody tr:hover td {
            background: var(--table-row-hover);
        }
        .journal-tag-long {
            background: #14532d;
            color: #4ade80;
            border-radius: 6px;
            padding: 2px 10px;
            font-size: .7rem;
            font-weight: 600;
        }
        .journal-tag-short {
            background: #7f1d1d;
            color: #f87171;
            border-radius: 6px;
            padding: 2px 10px;
            font-size: .7rem;
            font-weight: 600;
        }
        .journal-tag-wait {
            background: #1e3a5f;
            color: #60a5fa;
            border-radius: 6px;
            padding: 2px 10px;
            font-size: .7rem;
            font-weight: 600;
        }

        /* JOURNAL CURRENCY & DATE SELECTOR */
        .journal-settings-bar {
            display: flex;
            flex-wrap: wrap;
            gap: 8px 16px;
            background: var(--bg-primary);
            border-radius: .8rem;
            padding: 10px 14px;
            border: 1px solid var(--border-color);
            margin-bottom: 14px;
            align-items: center;
        }
        .journal-settings-bar label {
            font-size: .7rem;
            color: var(--text-muted);
            font-weight: 600;
            display: flex;
            align-items: center;
            gap: 4px;
            white-space: nowrap;
        }
        .journal-settings-bar select {
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: .4rem;
            color: var(--text-secondary);
            padding: 3px 8px;
            font-size: .75rem;
            outline: none;
            min-height: 30px;
        }
        .journal-settings-bar select:focus {
            border-color: #7c3aed;
        }
        .journal-settings-bar .setting-group {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .journal-currency-symbol {
            font-weight: 700;
            color: #fbbf24;
        }

        /* ══ خروجی PDF با چاپ مرورگر — هیچ کتابخانه/فایل بیرونی لازم ندارد ══
           در حالت عادی #print-report-area دیده نمی‌شود و روی صفحه اثری ندارد. وقتی چاپ گزارش
           درخواست می‌شود، کلاس «printing-report» روی body اضافه می‌شود؛ آن‌وقت این قانون همهٔ
           فرزندهای مستقیم body (همهٔ مودال‌ها/صفحه‌ی اصلی) را مخفی می‌کند به‌جز خودِ ناحیهٔ چاپ،
           و پنجرهٔ چاپ مرورگر فقط همان گزارش (روی پس‌زمینهٔ سفید) را نشان می‌دهد. */
        #print-report-area { display: none; }
        @media print {
            body.printing-report > *:not(#print-report-area) { display: none !important; }
            body.printing-report #print-report-area {
                display: block !important; position: static !important; width: auto !important;
                left: auto !important; top: auto !important; box-shadow: none !important;
            }
        }

/* ── استایل صفحهٔ حساب کاربری (Account Overlay) ── */
#account-page-overlay *{font-family:'Vazirmatn',sans-serif!important;}
#account-page-overlay{background:#0f172a;color:#e2e8f0;}
#account-page-overlay .actpg-inner{padding:12px;padding-bottom:60px;max-width:1000px;margin:0 auto;}
#account-page-overlay .actpg-card{background:#1e293b;border-radius:1rem;border:1px solid #334155;padding:14px;}
#account-page-overlay .actpg-inp{background:#0f172a;border:1px solid #334155;border-radius:.6rem;color:#e2e8f0;padding:10px 12px;width:100%;font-size:16px!important;outline:none;}
#account-page-overlay .actpg-inp:focus{border-color:#d97706;}
#account-page-overlay .actpg-btn-del{background:#7f1d1d;color:#fca5a5;border:none;border-radius:6px;padding:8px 12px;cursor:pointer;font-size:.75rem;}
#account-page-overlay .actpg-profit{color:#4ade80;font-weight:600;}
#account-page-overlay .actpg-loss{color:#f87171;font-weight:600;}
#account-page-overlay .actpg-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(4px);z-index:210;display:flex;align-items:flex-end;justify-content:center;}
#account-page-overlay .actpg-modal-box{background:#1e293b;border-radius:1.25rem 1.25rem 0 0;border:1px solid #334155;border-bottom:none;width:100%;max-width:680px;max-height:93vh;overflow-y:auto;}
#account-page-overlay .actpg-form-label{font-size:.78rem;color:#94a3b8;margin-bottom:4px;display:block;font-weight:600;}
#account-page-overlay .actpg-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#account-page-overlay .actpg-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
@media(max-width:600px){#account-page-overlay .actpg-grid-2,#account-page-overlay .actpg-grid-3{grid-template-columns:1fr;}}
#account-page-overlay .actpg-currency-toggle{display:inline-flex;background:#1e293b;border-radius:8px;padding:2px;gap:2px;border:1px solid #334155;}
#account-page-overlay .actpg-currency-toggle button{padding:8px 12px;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;border:none;background:transparent;color:#94a3b8;transition:all .2s;}
#account-page-overlay .actpg-currency-toggle button.active{background:#d97706;color:white;}
#account-page-overlay select{font-size:16px!important;background:#0f172a;border:1px solid #334155;border-radius:.6rem;color:#e2e8f0;padding:10px 12px;width:100%;outline:none;}
#account-page-overlay thead th{background:#0f172a;color:#94a3b8;font-size:.75rem;font-weight:600;padding:10px 12px;text-align:right;border-bottom:1px solid #334155;}
#account-page-overlay tbody td{padding:10px 12px;border-bottom:1px solid #1e293b;font-size:.82rem;}
#account-page-overlay .actpg-overflow-table-wrap{overflow-x:auto;}
#account-page-overlay .actpg-back-btn{background:#334155;color:#e2e8f0;border:none;border-radius:.6rem;padding:8px 16px;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}

/* Fundamental + Blockchain Intelligence */
.tb-intel-modal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(2,6,23,.82);backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:18px;overflow:auto}
.tb-intel-box{width:min(1100px,100%);max-height:92vh;overflow:auto;background:var(--bg-secondary,#0f172a);border:1px solid var(--border-color,#334155);border-radius:18px;box-shadow:0 24px 90px rgba(0,0,0,.45);padding:18px}
.tb-intel-head{display:flex;align-items:center;justify-content:space-between;font-size:1.05rem;color:var(--text-primary,#fff);margin-bottom:14px;border-bottom:1px solid var(--border-color,#334155);padding-bottom:12px}
.tb-intel-head button{background:none;border:0;color:var(--text-muted,#94a3b8);font-size:1.7rem;cursor:pointer}
.tb-intel-card{border:1px solid var(--border-color,#334155);background:var(--bg-input,#111827);border-radius:12px;padding:13px;margin-bottom:10px}
.tb-intel-title{font-weight:800;color:var(--text-primary,#fff);margin-bottom:9px}
.tb-intel-row{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border-bottom:1px dashed rgba(148,163,184,.15);font-size:.82rem;color:var(--text-secondary,#cbd5e1)}
.tb-intel-row:last-of-type{border-bottom:0}.tb-intel-row b{color:var(--text-primary,#fff);text-align:left}
.tb-intel-source{display:inline-block;margin-top:9px;font-size:.7rem}.tb-intel-source.ok{color:#4ade80}.tb-intel-source.warn{color:#fbbf24}
.tb-intel-note{font-size:.78rem;line-height:1.8;color:var(--text-muted,#94a3b8);padding:8px 10px;background:rgba(148,163,184,.06);border-radius:8px}
.tb-intel-loading{text-align:center;padding:45px 15px;color:var(--text-secondary,#cbd5e1);line-height:2}
@media(max-width:700px){.tb-intel-row{flex-direction:column;gap:3px}.tb-intel-box{padding:12px}}


/* ═══════════════════════════════════════════════════════════════
   EDUCATION PRO — مرکز آموزش حرفه‌ای
   فقط برای «آموزش»؛ آموزش تعاملی مستقل باقی می‌ماند.
   ═══════════════════════════════════════════════════════════════ */
.edu-pro-modal { z-index: 1150; }
.edu-pro-shell { max-width: 1180px !important; width: min(1180px, 96vw); max-height: 94vh; overflow: hidden; }
.edu-pro-header { padding: 18px 22px !important; background: linear-gradient(135deg, rgba(13,148,136,.13), rgba(124,58,237,.08)); }
.edu-pro-header h2 { margin: 2px 0 4px; font-size: 1.2rem; }
.edu-header-sub { color: var(--text-muted); font-size: .72rem; line-height: 1.8; }
.edu-kicker { color: #14b8a6; font-size: .68rem; font-weight: 800; letter-spacing: .3px; margin-bottom: 3px; }
.edu-pro-body { padding: 18px 22px !important; overflow-y: auto; }
.edu-hero { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:20px; border:1px solid var(--border-color); border-radius:20px; background:linear-gradient(135deg, rgba(20,184,166,.10), rgba(15,23,42,.12)); margin-bottom:16px; }
.edu-hero-copy h3 { margin:6px 0 5px; color:var(--text-primary); font-size:1.2rem; }
.edu-hero-copy p { margin:0; max-width:720px; color:var(--text-secondary); font-size:.78rem; line-height:1.9; }
.edu-hero-badge { display:inline-flex; gap:6px; align-items:center; padding:5px 9px; border-radius:999px; background:rgba(20,184,166,.13); color:#14b8a6; font-size:.66rem; font-weight:800; }
.edu-path { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:14px; color:var(--text-muted); font-size:.67rem; }
.edu-path span { display:inline-flex; align-items:center; gap:5px; }
.edu-path b { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:var(--bg-primary); border:1px solid var(--border-color); color:#14b8a6; }
.edu-path i { font-size:.55rem; opacity:.6; }
.edu-overall { min-width:150px; display:flex; align-items:center; justify-content:center; gap:10px; padding:12px; border-radius:16px; background:var(--bg-primary); border:1px solid var(--border-color); }
.edu-progress-ring { --edu-p:0%; width:74px; height:74px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(#14b8a6 var(--edu-p), var(--border-color) 0); position:relative; }
.edu-progress-ring:after { content:""; position:absolute; inset:7px; border-radius:50%; background:var(--bg-primary); }
.edu-progress-ring span { position:relative; z-index:1; font-size:.82rem; font-weight:900; color:var(--text-primary); }
.edu-overall strong,.edu-overall small { display:block; }
.edu-overall strong { color:var(--text-primary); font-size:.85rem; }
.edu-overall small { color:var(--text-muted); font-size:.64rem; margin-top:3px; }
.edu-toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px 0 16px; }
.edu-search { flex:1 1 260px; min-width:220px; position:relative; }
.edu-search i { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:.75rem; }
.edu-search input { width:100%; box-sizing:border-box; padding:10px 35px 10px 12px; border:1px solid var(--border-color); background:var(--bg-input); color:var(--text-primary); border-radius:12px; outline:none; font-size:.75rem; }
.edu-search input:focus { border-color:#14b8a6; box-shadow:0 0 0 3px rgba(20,184,166,.08); }
.edu-filter-btn { border:1px solid var(--border-color); background:var(--bg-secondary); color:var(--text-muted); border-radius:10px; padding:8px 12px; font-size:.68rem; cursor:pointer; }
.edu-filter-btn.active { background:rgba(20,184,166,.12); color:#14b8a6; border-color:rgba(20,184,166,.35); font-weight:800; }
.edu-featured-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.edu-feature-card { border:1px solid var(--border-color); border-top:2px solid var(--edu-accent); border-radius:15px; padding:12px; display:flex; gap:10px; align-items:center; background:var(--bg-secondary); cursor:pointer; transition:.18s; text-align:right; }
.edu-feature-card:hover,.edu-category-card:hover,.edu-lesson-card:hover { transform:translateY(-2px); border-color:var(--edu-accent); box-shadow:0 10px 30px rgba(0,0,0,.10); }
.edu-feature-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:color-mix(in srgb, var(--edu-accent) 13%, transparent); font-size:1.35rem; flex:none; }
.edu-feature-content small,.edu-feature-content strong,.edu-feature-content span { display:block; }
.edu-feature-content small { color:var(--text-muted); font-size:.57rem; margin-bottom:3px; }
.edu-feature-content strong { color:var(--text-primary); font-size:.72rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-feature-content span { margin-top:6px; color:var(--edu-accent); font-size:.6rem; }
.edu-all-done { grid-column:1/-1; padding:18px; text-align:center; border:1px dashed rgba(20,184,166,.35); border-radius:15px; background:rgba(20,184,166,.06); }
.edu-all-done i { color:#14b8a6; font-size:1.4rem; margin-left:6px; }
.edu-all-done strong,.edu-all-done span { color:var(--text-primary); font-size:.75rem; }
.edu-all-done span { color:var(--text-muted); display:block; margin-top:5px; font-size:.65rem; }
.edu-section-title { display:flex; justify-content:space-between; align-items:center; margin:8px 0 10px; color:var(--text-primary); font-size:.8rem; font-weight:800; }
.edu-section-title i { color:#14b8a6; margin-left:5px; }
.edu-section-title small { color:var(--text-muted); font-size:.62rem; font-weight:500; }
.edu-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.edu-category-card { appearance:none; border:1px solid var(--border-color); border-radius:17px; padding:15px; text-align:right; background:var(--bg-secondary); color:inherit; cursor:pointer; transition:.18s; position:relative; overflow:hidden; }
.edu-category-card:before { content:""; position:absolute; inset:auto -25px -40px auto; width:110px; height:110px; border-radius:50%; background:color-mix(in srgb, var(--edu-accent) 9%, transparent); }
.edu-cat-top { display:flex; justify-content:space-between; align-items:center; }
.edu-cat-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:color-mix(in srgb, var(--edu-accent) 12%, transparent); font-size:1.45rem; }
.edu-cat-arrow { color:var(--edu-accent); font-size:.72rem; }
.edu-cat-title { color:var(--text-primary); font-weight:850; font-size:.86rem; margin-top:12px; }
.edu-cat-desc { min-height:37px; color:var(--text-muted); font-size:.64rem; line-height:1.8; margin-top:4px; }
.edu-cat-meta { display:flex; justify-content:space-between; gap:6px; color:var(--text-muted); font-size:.58rem; margin:10px 0 6px; }
.edu-progress-bar { height:5px; border-radius:99px; background:var(--border-color); overflow:hidden; }
.edu-progress-bar i { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--edu-accent,#14b8a6),#14b8a6); transition:.25s; }
.edu-category-head { display:flex; align-items:center; gap:12px; }
.edu-back-btn { width:35px; height:35px; border-radius:10px; border:1px solid var(--border-color); background:var(--bg-primary); color:var(--text-muted); cursor:pointer; }
.edu-category-summary { display:grid; grid-template-columns:1.2fr 2fr auto; gap:14px; align-items:center; padding:14px; border:1px solid var(--border-color); border-radius:16px; background:var(--bg-primary); }
.edu-summary-main { display:flex; align-items:center; gap:10px; }
.edu-category-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:13px; background:rgba(20,184,166,.10); font-size:1.5rem; }
.edu-summary-main strong,.edu-summary-main small { display:block; }
.edu-summary-main strong { color:var(--text-primary); font-size:.82rem; }
.edu-summary-main small { color:var(--text-muted); font-size:.62rem; margin-top:4px; }
.edu-category-progress > div:first-child { display:flex; justify-content:space-between; color:var(--text-muted); font-size:.62rem; margin-bottom:6px; }
.edu-category-progress b { color:#14b8a6; }
.edu-admin-btn { border:none; background:#0d9488; color:#fff; border-radius:10px; padding:9px 13px; font-size:.68rem; font-weight:800; cursor:pointer; white-space:nowrap; }
.edu-lessons-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.edu-lesson-card { position:relative; display:flex; gap:10px; border:1px solid var(--border-color); border-right:3px solid var(--edu-accent); border-radius:15px; background:var(--bg-secondary); padding:13px 12px 12px 14px; transition:.18s; min-height:150px; }
.edu-lesson-card.is-read { opacity:.88; }
.edu-lesson-number { font-size:.72rem; font-weight:900; color:var(--edu-accent); opacity:.8; padding-top:3px; }
.edu-lesson-main { flex:1; min-width:0; }
.edu-lesson-head { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.edu-lesson-head h3 { margin:0; color:var(--text-primary); font-size:.8rem; }
.edu-status { font-size:.55rem; color:var(--text-muted); border:1px solid var(--border-color); border-radius:99px; padding:3px 7px; }
.edu-status.done { color:#16a34a; border-color:rgba(22,163,74,.25); background:rgba(22,163,74,.07); }
.edu-lesson-main p { color:var(--text-secondary); font-size:.67rem; line-height:1.9; margin:9px 0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.edu-lesson-foot { display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--border-color); padding-top:9px; }
.edu-lesson-foot span { color:var(--text-muted); font-size:.58rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edu-lesson-foot span i { color:var(--edu-accent); }
.edu-lesson-foot button { flex:none; border:none; background:none; color:var(--edu-accent); font-size:.63rem; font-weight:800; cursor:pointer; }
.edu-read-toggle { position:absolute; left:9px; top:9px; border:none; background:none; color:var(--text-muted); cursor:pointer; font-size:.95rem; }
.edu-read-toggle:hover { color:#14b8a6; }
.edu-admin-actions { position:absolute; left:8px; bottom:9px; display:flex; gap:4px; }
.edu-admin-actions button { border:none; background:none; cursor:pointer; color:var(--text-muted); font-size:.68rem; }
.edu-admin-actions button:first-child:hover { color:#0d9488; }
.edu-admin-actions button:last-child:hover { color:#ef4444; }
.edu-empty-state { text-align:center; padding:50px 20px; color:var(--text-muted); border:1px dashed var(--border-color); border-radius:16px; }
.edu-empty-state > div { font-size:2.5rem; margin-bottom:8px; }
.edu-empty-state strong { display:block; font-size:.78rem; margin-bottom:10px; }
.edu-detail-overlay { position:fixed; inset:0; z-index:1400; background:rgba(2,6,23,.82); backdrop-filter:blur(8px); align-items:center; justify-content:center; padding:16px; }
.edu-detail-card { width:min(760px,96vw); max-height:90vh; overflow:auto; background:var(--bg-secondary); border:1px solid var(--border-color); border-radius:22px; box-shadow:0 30px 90px rgba(0,0,0,.35); }
.edu-detail-top { padding:18px 20px; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; border-bottom:1px solid var(--border-color); background:linear-gradient(135deg,rgba(20,184,166,.10),transparent); }
.edu-detail-top h2 { color:var(--text-primary); margin:5px 0 0; font-size:1.05rem; }
.edu-detail-body { padding:18px 20px; }
.edu-detail-box { border:1px solid var(--border-color); border-radius:15px; padding:14px; margin-bottom:12px; background:var(--bg-primary); }
.edu-detail-label { color:#14b8a6; font-size:.68rem; font-weight:850; margin-bottom:8px; }
.edu-detail-box > div:last-child { color:var(--text-secondary); font-size:.78rem; line-height:2; white-space:pre-wrap; }
.edu-detail-tip { display:flex; gap:9px; align-items:flex-start; color:var(--text-muted); background:rgba(245,158,11,.07); border:1px solid rgba(245,158,11,.16); border-radius:13px; padding:11px; font-size:.65rem; line-height:1.8; }
.edu-detail-tip i { color:#f59e0b; margin-top:3px; }
.edu-detail-footer { display:flex; justify-content:flex-start; gap:8px; padding:14px 20px; border-top:1px solid var(--border-color); }
.edu-read-main { border:none; background:#0d9488; color:#fff; border-radius:11px; padding:10px 15px; font-size:.68rem; font-weight:800; cursor:pointer; }
.edu-read-main.done { background:#334155; }
.edu-secondary-btn { border:1px solid var(--border-color); background:var(--bg-primary); color:var(--text-secondary); border-radius:11px; padding:10px 15px; font-size:.68rem; cursor:pointer; }

@media(max-width:900px){
  .edu-featured-grid,.edu-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edu-category-summary{grid-template-columns:1fr 1.5fr}
  .edu-category-summary .edu-admin-btn{grid-column:1/-1;justify-self:start}
}
@media(max-width:640px){
  .edu-pro-shell{width:98vw;max-height:96vh}
  .edu-pro-body{padding:12px !important}
  .edu-hero{flex-direction:column;align-items:stretch}
  .edu-overall{align-self:stretch}
  .edu-featured-grid,.edu-category-grid,.edu-lessons-grid{grid-template-columns:1fr}
  .edu-category-summary{grid-template-columns:1fr}
  .edu-toolbar{gap:6px}
  .edu-filter-btn{padding:7px 9px}
  .edu-lesson-card{min-height:0}
  .edu-path{gap:5px}
}
