/* QHub design tokens v4 — WARM BRONZE. اعداد همیشه لاتین (قانونِ نیما) via unicode-range. */

/* YekanBakh: همه‌چیز به‌جز ارقامِ ASCII (U+0030–0039) → ارقام به فونتِ لاتینِ fallback می‌افتند */

/* QNum: فقط ارقامِ لاتین U+0030-0039 → فونتِ سیستمیِ لاتین (local). چون iOS Safari برای کدهای خارج از unicode-range گاهی fallback نمی‌کند و رقم نامرئی می‌شود، با این face رقم صراحتاً in-range و مرئی می‌شود. اولِ استکِ فونت قرار می‌گیرد. */
@font-face{font-family:'Vazirmatn';font-weight:100 900;font-style:normal;font-display:swap;src:url('fonts/Vazirmatn.woff2') format('woff2');}
@font-face{font-family:'QNum';font-weight:100 900;font-style:normal;src:local('Helvetica Neue'),local('Segoe UI'),local('Roboto'),local('Arial'),local('sans-serif');unicode-range:U+0030-0039;}

:root{
  /* پایه (اُبسیدینِ خنثی) */
  --qh-bg:#0E0E13; --qh-surface:#16161F; --qh-card:#1C1C27; --qh-hairline:rgba(255,255,255,.08);
  /* متن */
  --qh-text:#F4F5F8; --qh-text-2:#C4C8D2; --qh-muted:#9AA0B0;
  /* accent برنزِ گرم */
  --qh-accent:#C0894C; --qh-accent-deep:#8A5F31; --qh-accent-hi:#E0AE73; --qh-accent-tint:rgba(192,137,76,.14); --qh-on-accent:#231407;
  /* دادهٔ معنایی */
  --qh-up:#45B688; --qh-down:#E26A5E;
  /* تایپ + شکل */
  --qh-font:'QNum','Vazirmatn',-apple-system,'Segoe UI',Tahoma,system-ui,sans-serif;
  --qh-font-title:'QNum','Vazirmatn',-apple-system,'Segoe UI','Tahoma',system-ui,sans-serif;
  --qh-font-num:'Segoe UI',system-ui,'Roboto',sans-serif; /* لاتین برای ارقام */
  --qh-r:12px; --qh-r-sm:8px; --qh-r-pill:999px;
}

/* ارقام: لاتین + tabular هرجا کلاسِ qh-num بخورد */
.qh-num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;}

/* اسکلتِ اپ (تم روی این‌ها می‌سازد) */
.qh-app{background:var(--qh-bg);color:var(--qh-text);font-family:var(--qh-font);line-height:1.7;}
.qh-app :is(h1,h2,h3,.qh-title){font-family:var(--qh-font-title);font-weight:800;letter-spacing:-.01em;}
.qh-card{background:var(--qh-card);border:1px solid var(--qh-hairline);border-radius:var(--qh-r);}
.qh-surface{background:var(--qh-surface);border:1px solid var(--qh-hairline);border-radius:var(--qh-r);}
.qh-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--qh-accent);color:var(--qh-on-accent)!important;font-weight:800;border:1px solid transparent;border-radius:var(--qh-r-sm);padding:.6em 1.1em;cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .05s;}
.qh-btn:hover{background:var(--qh-accent-deep);color:var(--qh-text)!important;}
.qh-btn:active{transform:translateY(1px);}
.qh-btn:focus-visible{outline:2px solid var(--qh-accent-hi);outline-offset:2px;}
.qh-btn--ghost{background:transparent;color:var(--qh-text)!important;border:1px solid var(--qh-hairline);}
.qh-btn--ghost:hover{background:var(--qh-accent-tint);border-color:var(--qh-accent);color:var(--qh-accent-hi)!important;}
.qh-chip{display:inline-flex;align-items:center;gap:.4em;border-radius:var(--qh-r-pill);padding:.35em .8em;font-weight:700;font-size:.82rem;}
.qh-chip--up{color:var(--qh-up);background:rgba(69,182,136,.14);}
.qh-chip--down{color:var(--qh-down);background:rgba(226,106,94,.14);}
.qh-chip--accent{color:var(--qh-accent-hi);background:var(--qh-accent-tint);border:1px solid rgba(192,137,76,.34);}
.qh-up{color:var(--qh-up);} .qh-down{color:var(--qh-down);}
a.qh-link{color:var(--qh-accent-hi);text-decoration:none;} a.qh-link:hover{text-decoration:underline;}
.qh-hair{border:0;border-top:1px solid var(--qh-hairline);margin:1rem 0;}
.qh-table{width:100%;border-collapse:collapse;}
.qh-table th,.qh-table td{text-align:right;padding:.6em .7em;border-bottom:1px solid var(--qh-hairline);}
.qh-table th{color:var(--qh-muted);font-weight:700;font-size:.8rem;}

/* --- تقویمِ اقتصادی --- */
.qh-cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.qh-cal-range{color:var(--qh-text-2);font-weight:700;}
.qh-cal-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;}
.qh-fil{background:transparent;border:1px solid var(--qh-hairline);color:var(--qh-text-2);border-radius:999px;padding:5px 12px;font-family:var(--qh-font);font-size:12.5px;cursor:pointer;}
.qh-fil.is-on{background:var(--qh-accent-tint);color:var(--qh-accent-hi);border-color:rgba(192,137,76,.4);}
.qh-fil-label{color:var(--qh-muted);font-size:12px;}
.qh-fil-sep{width:1px;height:18px;background:var(--qh-hairline);margin:0 4px;}
.qh-cal-day{margin-bottom:18px;}
.qh-cal-dayh{margin:0 0 6px;font-size:13px;color:var(--qh-accent-hi);font-weight:700;}
.qh-cal-table{background:var(--qh-card);border:1px solid var(--qh-hairline);border-radius:var(--qh-r);overflow:hidden;}
.qh-cal-table th{font-size:11px;color:var(--qh-muted);font-weight:700;padding:8px 10px;text-align:right;}
.qh-cal-table td{padding:9px 10px;font-size:13px;border-bottom:1px solid var(--qh-hairline);}
.qh-cal-table tbody tr:last-child td{border-bottom:0;}
.qh-cal-time{color:var(--qh-muted);white-space:nowrap;width:78px;}
.qh-cal-imp{width:22px;text-align:center;}
.qh-cal-cur{font-weight:700;width:54px;}
.qh-cal-title{color:var(--qh-text);}
.qh-cal-val{text-align:center;white-space:nowrap;color:var(--qh-text-2);width:66px;}
.qh-dot{display:inline-block;width:9px;height:9px;border-radius:50%;}
.qh-dot.imp-high{background:var(--qh-down);}
.qh-dot.imp-med{background:var(--qh-accent);}
.qh-dot.imp-low{background:var(--qh-muted);}
.qh-cal-legend{margin-top:10px;font-size:11px;color:var(--qh-muted);}

/* --- اخبار --- */
.qh-news-list{display:flex;flex-direction:column;gap:10px;}
.qh-news-item{display:flex;gap:14px;align-items:center;padding:12px 14px;text-decoration:none;color:var(--qh-text);transition:border-color .15s;}
.qh-news-item:hover{border-color:var(--qh-accent);}
.qh-news-thumb{width:84px;height:60px;flex-shrink:0;border-radius:8px;background:var(--qh-surface) center/cover no-repeat;}
.qh-news-body{display:flex;flex-direction:column;gap:4px;min-width:0;}
.qh-news-title{font-weight:700;font-size:15px;line-height:1.6;}
.qh-news-meta{color:var(--qh-muted);font-size:12px;}
.qh-news-badge{display:inline-block;background:var(--qh-accent-tint);color:var(--qh-accent-hi);font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;margin-bottom:10px;}
.qh-news-img{max-width:100%;border-radius:var(--qh-r);margin:12px 0;display:block;}
.qh-news-why{margin:14px 0;padding:12px 14px;background:var(--qh-accent-tint);border-radius:var(--qh-r);color:var(--qh-text);font-size:14px;}
.qh-news-src{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--qh-hairline);}
.qh-news-orig{color:var(--qh-muted);font-size:12px;flex:1;min-width:120px;}
