/* فاز ۵۸ — صرافی پله (پورتال + پنل مدیر). روی توکن‌های style.css ساخته شده. */
:root {
  --ex-buy: var(--p-600, #0f7a4f);          /* رنگ «خرید یورو» */
  --ex-buy-bg: var(--p-100, #e6f6ee);
  --ex-sell: #b4232c;         /* رنگ «فروش یورو» */
  --ex-sell-bg: #fdecee;
  --ex-ink: var(--p-900, #13302f);
  --ex-radius: 14px;
  --ex-gap: 14px;
}

.ex-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px; margin-bottom: var(--ex-gap); }
.ex-head h2 { margin: 0; font-size: 24px; }
.ex-head p { margin: 4px 0 0; color: var(--color-muted); font-size: var(--font-size-sm); }
.ex-num { direction: ltr; unicode-bidi: isolate; font-variant-numeric: tabular-nums; white-space: nowrap; }

.ex-ticker { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: var(--ex-gap); }
.ex-tick { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--ex-radius); padding: 12px 14px; position: relative; overflow: hidden; }
.ex-tick .l { font-size: 12px; color: var(--color-muted); }
.ex-tick .v { font-size: 20px; font-weight: 800; color: var(--ex-ink); margin-top: 2px; }
.ex-tick .s { font-size: 11px; color: var(--color-muted); }
.ex-tick.buy .v { color: var(--ex-buy); }
.ex-tick.sell .v { color: var(--ex-sell); }
.ex-spark { width: 100%; height: 38px; color: var(--color-primary); display: block; margin-top: 4px; }

.ex-banner { border-radius: var(--ex-radius); padding: 14px 16px; margin-bottom: var(--ex-gap); font-weight: 500; }
.ex-banner.warn { background: #fff6e5; border: 1px solid #f3d9a4; color: #7a4b00; }
.ex-banner.info { background: var(--color-badge-bg); border: 1px solid #c6e4e4; color: var(--color-primary-dark); }
.ex-banner.danger { background: #fdecec; border: 1px solid #f5c2c2; color: var(--color-danger); }

.ex-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--ex-radius); padding: 16px 18px; margin-bottom: var(--ex-gap); box-shadow: 0 1px 2px rgba(0,0,0,.03); }
.ex-card h3 { margin: 0 0 10px; font-size: 17px; }
.ex-card .sub { color: var(--color-muted); font-size: var(--font-size-sm); margin: -4px 0 12px; }

/* ---------- دفتر سفارش ---------- */
.ex-book { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ex-gap); margin-bottom: var(--ex-gap); }
@media (max-width: 900px) { .ex-book { grid-template-columns: 1fr; } }
.ex-side { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--ex-radius); overflow: hidden; }
.ex-side-h { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; font-weight: 700; }
.ex-side.sell .ex-side-h { background: var(--ex-buy-bg); color: var(--ex-buy); }
.ex-side.buy .ex-side-h { background: var(--ex-sell-bg); color: var(--ex-sell); }
.ex-side-h small { font-weight: 500; color: var(--color-muted); }
.ex-rows { max-height: 560px; overflow: auto; }
.ex-row { position: relative; padding: 11px 16px; border-top: 1px solid #eef2f2; }
.ex-row .depth { position: absolute; inset-block: 0; left: 0; opacity: .5; pointer-events: none; }
.ex-side.sell .depth { background: linear-gradient(90deg, var(--ex-buy-bg), transparent); }
.ex-side.buy .depth { background: linear-gradient(90deg, var(--ex-sell-bg), transparent); }
.ex-row-main { position: relative; display: grid; grid-template-columns: 1.1fr 1fr 1.2fr auto; gap: 8px; align-items: center; }
@media (max-width: 560px) { .ex-row-main { grid-template-columns: 1fr 1fr; } }
.ex-rate { font-size: 18px; font-weight: 800; }
.ex-side.sell .ex-rate { color: var(--ex-buy); }
.ex-side.buy .ex-rate { color: var(--ex-sell); }
.ex-rate small, .ex-amt small { display: block; font-size: 11px; font-weight: 500; color: var(--color-muted); }
.ex-amt { font-weight: 700; }
.ex-who { font-size: 12px; color: var(--color-muted); line-height: 1.6; }
.ex-who b { color: var(--ex-ink); font-family: "DejaVu Sans Mono", monospace; letter-spacing: .5px; }
.ex-note { position: relative; font-size: 12px; color: var(--color-muted); margin-top: 4px; }
.ex-empty { padding: 26px 16px; text-align: center; color: var(--color-muted); }
.ex-row details { position: relative; }
.ex-row details summary { list-style: none; cursor: pointer; }
.ex-row details summary::-webkit-details-marker { display: none; }
.ex-take { position: relative; margin-top: 10px; background: #f8fbfb; border: 1px dashed var(--color-border); border-radius: 10px; padding: 12px; font-size: 14px; }
.ex-take ul { margin: 0 0 8px; padding-inline-start: 18px; }
.ex-mine { display: inline-block; font-size: 11px; background: var(--color-badge-bg); color: var(--color-primary-dark); border-radius: 99px; padding: 1px 8px; }

.btn-buy, .btn-sell { border: none; border-radius: 9px; padding: 7px 16px; font-weight: 700; color: #fff; cursor: pointer; font-family: inherit; font-size: 14px; }
.btn-buy { background: var(--ex-buy); }
.btn-sell { background: var(--ex-sell); }
.btn-buy:hover, .btn-sell:hover { filter: brightness(1.08); }

/* ---------- فرم‌ها ---------- */
.ex-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.ex-field label { display: block; font-size: 12px; color: var(--color-muted); margin-bottom: 4px; font-weight: 600; }
.ex-field input, .ex-field select, .ex-field textarea { width: 100%; margin: 0; }
.ex-field .hint { font-size: 11px; color: var(--color-muted); margin-top: 3px; }
.ex-field input.ltr { direction: ltr; text-align: left; font-family: "DejaVu Sans Mono", monospace; }
.ex-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ex-seg input { display: none; }
.ex-seg label { display: block; text-align: center; border: 2px solid var(--color-border); border-radius: 10px; padding: 10px; cursor: pointer; font-weight: 700; }
.ex-seg label small { display: block; font-weight: 500; color: var(--color-muted); font-size: 11px; }
.ex-seg input[value=SELL_EUR]:checked + label { border-color: var(--ex-sell); background: var(--ex-sell-bg); color: var(--ex-sell); }
.ex-seg input[value=BUY_EUR]:checked + label { border-color: var(--ex-buy); background: var(--ex-buy-bg); color: var(--ex-buy); }
.ex-calc { margin-top: 12px; background: #f8fbfb; border-radius: 10px; padding: 10px 14px; display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 14px; }
.ex-calc b { font-size: 16px; }
.ex-check { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0; font-size: 14px; }
.ex-check input { margin-top: 4px; width: auto; }
.ex-section { border-top: 1px dashed var(--color-border); margin-top: 16px; padding-top: 14px; }
.ex-section h4 { margin: 0 0 10px; font-size: 15px; }
.ex-terms { white-space: pre-wrap; background: #f8fbfb; border-radius: 10px; padding: 12px 14px; font-size: 13px; line-height: 1.9; max-height: 240px; overflow: auto; }

/* ---------- گام‌ها ---------- */
.ex-steps { display: flex; gap: 0; margin: 4px 0 16px; counter-reset: s; }
.ex-step { flex: 1; text-align: center; position: relative; font-size: 12px; color: var(--color-muted); }
.ex-step::before { counter-increment: s; content: counter(s); display: grid; place-items: center; width: 30px; height: 30px; margin: 0 auto 6px; border-radius: 50%; background: #eef2f2; color: var(--color-muted); font-weight: 700; position: relative; z-index: 1; }
.ex-step::after { content: ""; position: absolute; top: 15px; left: 50%; width: 100%; height: 3px; background: #eef2f2; }
.ex-step:first-child::after { display: none; }
.ex-step.done::before { content: "✓"; background: var(--color-primary); color: #fff; }
.ex-step.done::after, .ex-step.now::after { background: var(--color-primary); }
.ex-step.now::before { background: var(--color-accent-gold); color: #fff; box-shadow: 0 0 0 5px #f6ecc8; }
.ex-step.now { color: var(--ex-ink); font-weight: 700; }

/* ---------- اتاق معامله ---------- */
.ex-deal-top { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
@media (max-width: 760px) { .ex-deal-top { grid-template-columns: 1fr; } }
.ex-leg { border-radius: 12px; padding: 12px 14px; background: #f8fbfb; }
.ex-leg .l { font-size: 12px; color: var(--color-muted); }
.ex-leg .v { font-size: 20px; font-weight: 800; margin-top: 2px; }
.ex-leg.out .v { color: var(--ex-sell); }
.ex-leg.in .v { color: var(--ex-buy); }
.ex-pay { border: 2px solid var(--color-accent-gold); border-radius: 12px; padding: 14px; background: #fffdf5; margin: 10px 0; }
.ex-pay dl { display: grid; grid-template-columns: max-content 1fr auto; gap: 8px 12px; margin: 0; align-items: center; }
.ex-pay dt { color: var(--color-muted); font-size: 13px; }
.ex-pay dd { margin: 0; font-weight: 700; }
.ex-copy { border: 1px solid var(--color-border); background: #fff; border-radius: 7px; padding: 3px 10px; font-size: 12px; cursor: pointer; font-family: inherit; }
.ex-timer { font-weight: 700; color: #92400e; background: #fff4e0; border-radius: 99px; padding: 3px 12px; font-size: 13px; }
.ex-timer.over { color: #fff; background: var(--color-danger); }

.ex-feed { list-style: none; margin: 0; padding: 0; }
.ex-feed li { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid #eef2f2; font-size: 14px; }
.ex-feed li:last-child { border-bottom: none; }
.ex-feed .who { flex: 0 0 86px; font-size: 12px; color: var(--color-muted); }
.ex-feed .who b { display: block; color: var(--ex-ink); font-size: 12px; }
.ex-feed li.msg .body { background: var(--color-badge-bg); border-radius: 10px; padding: 6px 10px; }
.ex-feed li.me .body { background: #fff8e1; }
.ex-feed li.admin .body { background: #f3e8ff; }
.ex-feed li.sys .body { color: var(--color-muted); }

.ex-stars { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.ex-stars input { display: none; }
.ex-stars label { font-size: 26px; color: #d6dddd; cursor: pointer; }
.ex-stars input:checked ~ label, .ex-stars label:hover, .ex-stars label:hover ~ label { color: #f5b301; }

.ex-how { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 6px 0 4px; }
.ex-how div { background: #f8fbfb; border-radius: 12px; padding: 14px; }
.ex-how b { display: block; margin-bottom: 4px; color: var(--color-primary-dark); }
.ex-how span { font-size: 13px; color: var(--color-muted); line-height: 1.8; }

.ex-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--color-badge-bg); color: var(--color-primary-dark); white-space: nowrap; }
.ex-pill.REQUESTED, .ex-pill.PENDING, .ex-pill.FEE_PENDING, .ex-pill.ADMIN_REVIEW, .ex-pill.RESERVED { background: #fff4e0; color: #92400e; }
.ex-pill.LEG1, .ex-pill.LEG2 { background: #e0efff; color: #1e40af; }
.ex-pill.COMPLETED, .ex-pill.APPROVED, .ex-pill.FILLED, .ex-pill.ACTIVE, .ex-pill.OK { background: #e3f6ea; color: #166534; }
.ex-pill.CANCELLED, .ex-pill.REJECTED, .ex-pill.EXPIRED, .ex-pill.REMOVED, .ex-pill.SUSPENDED, .ex-pill.DISPUTED { background: #fdecec; color: var(--color-danger); }
.ex-pill.UPLOADED { background: #e0efff; color: #1e40af; }
.ex-pill.DUE { background: #fff4e0; color: #92400e; }
.ex-pill.act { background: var(--color-accent-gold); color: #fff; }

.ex-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ex-table th { text-align: right; color: var(--color-muted); font-size: 12px; font-weight: 600; padding: 7px 8px; border-bottom: 1px solid var(--color-border); }
.ex-table td { padding: 9px 8px; border-bottom: 1px solid #eef2f2; vertical-align: middle; }
.ex-table tr:last-child td { border-bottom: none; }
.ex-table tr.hot td { background: #fffbeb; }
.ex-scroll { overflow-x: auto; }

.ex-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.ex-docs figure { margin: 0; border: 1px solid var(--color-border); border-radius: 12px; overflow: hidden; background: #f8fbfb; }
.ex-docs img { width: 100%; height: 220px; object-fit: contain; background: #111; display: block; }
.ex-docs figcaption { padding: 8px 10px; font-size: 13px; display: flex; justify-content: space-between; }
.ex-kv { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; font-size: 14px; }
.ex-kv dt { color: var(--color-muted); }
.ex-kv dd { margin: 0; font-weight: 600; }
.ex-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.ex-tabs a { padding: 6px 14px; border-radius: 99px; border: 1px solid var(--color-border); text-decoration: none; color: var(--color-text); font-size: 13px; background: #fff; }
.ex-tabs a.on { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ورودی‌های بدون type و تاریخ هم مثل بقیه‌ی فرم‌ها */
.ex-card input:not([type]), .ex-card input[type=date], .ex-card input[type=file] {
  width: 100%; padding: var(--space-sm); border: 1px solid var(--color-border); border-radius: var(--radius-sm);
  font-family: inherit; font-size: var(--font-size-md); background: #fff; color: var(--color-text);
}
.ex-card input[type=file] { padding: 7px; font-size: 13px; background: #f8fbfb; }
.ex-card input:not([type]):focus, .ex-card input[type=date]:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(15,122,125,.12); }
.ex-grid .ex-field input, .ex-grid .ex-field select { margin-bottom: 0; }

/* دو ستونه روی دسکتاپ، یک ستونه روی موبایل */
.ex-split { grid-template-columns: 1fr 1fr; align-items: start; }
.ex-split-21 { grid-template-columns: 2fr 1fr; }
@media (max-width: 860px) { .ex-split, .ex-split-21 { grid-template-columns: 1fr; } .ex-split > * { margin-bottom: var(--ex-gap) !important; } }

/* =====================================================================
   فاز ۵۹ — ترمینال معاملاتی (مثل صرافی‌های ارز دیجیتال)
   همه‌ی رنگ‌ها و اندازه‌ها اینجا به‌صورت متغیر قابل تنظیمن.
   ===================================================================== */
:root {
  --ext-bg: #0d1b21;            /* پس‌زمینه‌ی ترمینال */
  --ext-panel: #12252c;         /* پس‌زمینه‌ی هر پنل */
  --ext-line: #1f3a42;          /* خط‌های جداکننده */
  --ext-text: #dbe9ea;
  --ext-muted: #7f9da2;
  --ext-ask: #f0506e;           /* فروش (آگهی فروش یورو) */
  --ext-ask-bg: rgba(240, 80, 110, .14);
  --ext-bid: #1fc98e;           /* خرید (آگهی خرید یورو) */
  --ext-bid-bg: rgba(31, 201, 142, .14);
  --ext-gold: #e8b949;
  --ext-accent: #2bb3b1;
  --ext-radius: 14px;
  --ext-gap: 12px;
  --ext-book-w: 310px;          /* عرض دفتر سفارش */
  --ext-trade-w: 300px;         /* عرض پنل ثبت آگهی */
  --ext-row-h: 30px;            /* ارتفاع هر ردیف دفتر سفارش */
}

.ext { background: var(--ext-bg); color: var(--ext-text); border-radius: 18px; padding: var(--ext-gap); margin-bottom: var(--ex-gap);
       box-shadow: 0 14px 40px rgba(6, 20, 25, .25); }
.ext .num, .ext-num { direction: ltr; unicode-bidi: isolate; font-variant-numeric: tabular-nums; font-family: "Vazirmatn", "DejaVu Sans", sans-serif; }
.ext a { color: var(--ext-accent); }

.ext-ticker { display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: center; padding: 10px 14px 14px; border-bottom: 1px solid var(--ext-line); margin-bottom: var(--ext-gap); }
.ext-pair { display: flex; align-items: center; gap: 10px; margin-inline-end: 12px; }
.ext-pair b { font-size: 20px; letter-spacing: .3px; }
.ext-pair span { color: var(--ext-muted); font-size: 12px; }
.ext-last { font-size: 26px; font-weight: 800; }
.ext-last.up { color: var(--ext-bid); } .ext-last.down { color: var(--ext-ask); }
.ext-chg { font-size: 13px; font-weight: 700; padding: 2px 8px; border-radius: 8px; }
.ext-chg.up { color: var(--ext-bid); background: var(--ext-bid-bg); } .ext-chg.down { color: var(--ext-ask); background: var(--ext-ask-bg); }
.ext-stat { display: flex; flex-direction: column; font-size: 12px; color: var(--ext-muted); }
.ext-stat b { color: var(--ext-text); font-size: 14px; margin-top: 2px; }
.ext-stat b.ask { color: var(--ext-ask); } .ext-stat b.bid { color: var(--ext-bid); }

.ext-grid { display: grid; grid-template-columns: var(--ext-book-w) minmax(0, 1fr) var(--ext-trade-w); gap: var(--ext-gap); }
@media (max-width: 1380px) { .ext-grid { grid-template-columns: var(--ext-book-w) minmax(0, 1fr); } .ext-trade { grid-column: 1 / -1; } }
@media (max-width: 820px) { .ext-grid { grid-template-columns: 1fr; } }
.ext-panel { background: var(--ext-panel); border: 1px solid var(--ext-line); border-radius: var(--ext-radius); overflow: hidden; min-width: 0; }
.ext-ph { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--ext-line); font-weight: 700; font-size: 14px; }
.ext-ph small { color: var(--ext-muted); font-weight: 500; }

/* دفتر سفارش */
.ext-book-head, .ext-orow { display: grid; grid-template-columns: 1.05fr .8fr 1.15fr; gap: 6px; padding: 0 14px; align-items: center; }
.ext-book-head { font-size: 11px; color: var(--ext-muted); height: 28px; }
.ext-book-head span:not(:first-child), .ext-orow span:not(:first-child) { text-align: left; }
.ext-orows { max-height: calc(var(--ext-row-h) * 9); overflow-y: auto; }
.ext-orows.asks { display: flex; flex-direction: column-reverse; }
.ext-orow { position: relative; height: var(--ext-row-h); font-size: 13px; cursor: pointer; transition: background .12s; }
.ext-orow:hover { background: rgba(255, 255, 255, .05); }
.ext-orow.mine { cursor: default; }
.ext-orow.mine::after { content: "شما"; position: absolute; right: 3px; top: 8px; font-size: 9px; color: var(--ext-gold); }
.ext-orow .bar { position: absolute; top: 3px; bottom: 3px; left: 0; border-radius: 3px; pointer-events: none; }
.ext-orows.asks .bar { background: var(--ext-ask-bg); } .ext-orows.bids .bar { background: var(--ext-bid-bg); }
.ext-orow span { position: relative; }
.ext-orows.asks .p { color: var(--ext-ask); font-weight: 700; } .ext-orows.bids .p { color: var(--ext-bid); font-weight: 700; }
.ext-spread { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; border-top: 1px solid var(--ext-line); border-bottom: 1px solid var(--ext-line); background: rgba(0,0,0,.15); }
.ext-spread b { font-size: 18px; }
.ext-spread small { color: var(--ext-muted); font-size: 11px; }
.ext-empty { color: var(--ext-muted); text-align: center; font-size: 12px; padding: 18px 10px; }

/* نمودار */
.ex-chart-wrap .ext-ph .ctl { display: flex; gap: 4px; }
.ex-chart-wrap button { background: transparent; color: var(--ext-muted); border: 1px solid var(--ext-line); border-radius: 7px; padding: 3px 9px;
                        font-family: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.ex-chart-wrap button.on { background: var(--ext-accent); color: #06221f; border-color: var(--ext-accent); font-weight: 700; }
.ex-chart { padding: 6px 6px 0; min-height: 320px; }
.ex-chart-empty { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; text-align: center; color: var(--ext-muted); font-size: 13px; padding: 30px; }
.ex-chart-svg { display: block; direction: ltr; }
.ex-chart-svg .g { stroke: var(--ext-line); stroke-width: 1; }
.ex-chart-svg .ax { fill: var(--ext-muted); font-size: 10.5px; font-family: "Vazirmatn", sans-serif; }
.ex-chart-svg .ln { fill: none; stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; }
.ex-chart-svg .ln.ask { stroke: var(--ext-ask); } .ex-chart-svg .ln.bid { stroke: var(--ext-bid); }
.ex-chart-svg .ln.ref { stroke: var(--ext-ref, #c3d4d7); stroke-dasharray: 6 4; stroke-width: 1.8; opacity: .9; }  /* فاز ۶۲: خط نرخ مرجع پررنگ‌تر */
.ex-chart-svg .ln.faint { opacity: .35; }
.ex-chart-svg .ln.ask-dot { fill: var(--ext-ask); } .ex-chart-svg .ln.bid-dot { fill: var(--ext-bid); }
.ex-chart-svg circle[class$="-dot"] { opacity: .85; }
.ex-chart-svg .ln.ref-dot { fill: var(--ext-ref, #c3d4d7); opacity: .45; }
.ex-chart-svg .ask-dot { fill: var(--ext-ask); } .ex-chart-svg .bid-dot { fill: var(--ext-bid); } .ex-chart-svg .ref-dot { fill: var(--ext-ref, #c3d4d7); }
.ex-chart-svg .deal { fill: var(--ext-gold); stroke: var(--ext-panel); stroke-width: 2; }
.ex-chart-svg .vol { fill: var(--ext-accent); opacity: .35; }
.ex-chart-svg .wick.up { stroke: var(--ext-bid); } .ex-chart-svg .wick.down { stroke: var(--ext-ask); }
.ex-chart-svg .body.up { fill: var(--ext-bid); } .ex-chart-svg .body.down { fill: var(--ext-ask); }
.ex-chart-svg .cross { stroke: var(--ext-muted); stroke-dasharray: 3 3; }
.ex-tip { display: none; position: absolute; z-index: 5; background: #081419; border: 1px solid var(--ext-line); border-radius: 10px; padding: 8px 12px;
          font-size: 12px; line-height: 1.9; color: var(--ext-text); pointer-events: none; white-space: normal; max-width: 280px; direction: rtl; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
.ex-tip .k { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-inline-end: 6px; }
.ex-tip .k.ask { background: var(--ext-ask); } .ex-tip .k.bid { background: var(--ext-bid); } .ex-tip .k.deal { background: var(--ext-gold); } .ex-tip .k.ref { background: var(--ext-muted); }
.ext-legend { display: flex; flex-wrap: wrap; gap: 14px; padding: 6px 14px 12px; font-size: 11.5px; color: var(--ext-muted); }
.ext-legend i { display: inline-block; width: 14px; height: 3px; border-radius: 3px; vertical-align: middle; margin-inline-end: 5px; }

/* آخرین معاملات */
.ext-trades { max-height: 250px; overflow-y: auto; }
.ext-trow { display: grid; grid-template-columns: 1fr 1fr 1fr; padding: 5px 14px; font-size: 12.5px; }
.ext-trow .buy { color: var(--ext-bid); font-weight: 700; } .ext-trow .sell { color: var(--ext-ask); font-weight: 700; }
.ext-trow span:not(:first-child) { text-align: left; }
.ext-trow span:last-child { color: var(--ext-muted); }

/* پنل ثبت آگهی */
.ext-trade .tabs { display: grid; grid-template-columns: 1fr 1fr; }
.ext-trade .tabs input { display: none; }
.ext-trade .tabs label { text-align: center; padding: 12px; font-weight: 800; cursor: pointer; color: var(--ext-muted); border-bottom: 2px solid var(--ext-line); }
.ext-trade .tabs input[value=BUY]:checked + label, .ext-trade .tabs input[value=BUY_EUR]:checked + label { color: var(--ext-bid); border-color: var(--ext-bid); background: var(--ext-bid-bg); }
.ext-trade .tabs input[value=SELL]:checked + label, .ext-trade .tabs input[value=SELL_EUR]:checked + label { color: var(--ext-ask); border-color: var(--ext-ask); background: var(--ext-ask-bg); }
.ext-form { padding: 12px 14px 14px; }
.ext-field { margin-bottom: 10px; }
.ext-field label { display: flex; justify-content: space-between; font-size: 12px; color: var(--ext-muted); margin-bottom: 4px; }
.ext-field label a { font-size: 11px; cursor: pointer; }
.ext-inp { display: flex; align-items: center; background: #0a171c; border: 1px solid var(--ext-line); border-radius: 10px; }
.ext-inp:focus-within { border-color: var(--ext-accent); }
.ext-inp input, .ext-inp select { flex: 1; background: transparent !important; border: none !important; color: var(--ext-text) !important; padding: 10px 12px !important;
                                  font-size: 15px !important; margin: 0 !important; direction: ltr; text-align: left; min-width: 0; box-shadow: none !important; }
.ext-inp select { direction: rtl; text-align: right; }
.ext-inp select option { background: #0a171c; }
.ext-inp .u { color: var(--ext-muted); font-size: 12px; padding: 0 12px; white-space: nowrap; }
.ext-inp input.note { direction: rtl; text-align: right; font-size: 13px !important; }
.ext-bill { background: #0a171c; border: 1px dashed var(--ext-line); border-radius: 12px; padding: 10px 12px; margin: 12px 0; font-size: 13px; }
.ext-bill div { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 3px 0; }
.ext-bill b { white-space: nowrap; }
.ext-bill .sep { border-top: 1px solid var(--ext-line); margin-top: 5px; padding-top: 8px; }
.ext-bill .big { font-size: 16px; font-weight: 800; }
.ext-bill .big.pay { color: var(--ext-ask); } .ext-bill .big.get { color: var(--ext-bid); }
.ext-bill > div > span:first-child { color: var(--ext-muted); }
.ext-submit { width: 100%; border: none; border-radius: 11px; padding: 12px; font-family: inherit; font-size: 15px; font-weight: 800; cursor: pointer; color: #fff; }
.ext-submit.buy { background: var(--ext-bid); color: #04231a; } .ext-submit.sell { background: var(--ext-ask); }
.ext-limits { font-size: 11.5px; color: var(--ext-muted); margin-top: 8px; line-height: 1.8; }

/* پنجره‌ی قبول آگهی */
.ext-modal { position: fixed; inset: 0; background: rgba(3, 12, 15, .7); display: none; align-items: center; justify-content: center; z-index: 50; padding: 16px; }
.ext-modal.open { display: flex; }
.ext-modal .box { background: var(--ext-panel); color: var(--ext-text); border: 1px solid var(--ext-line); border-radius: 18px; width: min(460px, 100%); padding: 18px; }
.ext-modal h3 { margin: 0 0 4px; font-size: 18px; }
.ext-modal .who { color: var(--ext-muted); font-size: 12.5px; margin-bottom: 8px; }
.ext-modal .row { display: flex; gap: 8px; margin-top: 12px; }
.ext-modal .row > * { flex: 1; }
.ext-modal .cancel { background: transparent; color: var(--ext-muted); border: 1px solid var(--ext-line); border-radius: 11px; font-family: inherit; cursor: pointer; }
.ext-modal .ex-check { color: var(--ext-text); font-size: 13px; }

/* صورتحساب شفاف (پورتال و پنل مدیر، تم روشن) */
.ex-bill { width: 100%; border-collapse: collapse; font-size: 14px; }
.ex-bill td { padding: 9px 10px; border-bottom: 1px solid #eef2f2; }
.ex-bill td:last-child { text-align: left; font-weight: 700; direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.ex-bill tr.total td { background: #fff8e1; font-size: 16px; font-weight: 800; }
.ex-bill tr.me td { background: #eefaf6; }
.ex-bill .muted { color: var(--color-muted); font-size: 12px; font-weight: 500; }
.ex-parties { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.ex-parties th { text-align: right; font-size: 12px; color: var(--color-muted); padding: 8px; border-bottom: 1px solid var(--color-border); }
.ex-parties td { padding: 9px 8px; border-bottom: 1px solid #eef2f2; vertical-align: top; }
.ex-parties .acc { direction: ltr; unicode-bidi: isolate; font-family: "DejaVu Sans Mono", monospace; font-size: 12.5px; }
.ex-switch { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 16px; margin-bottom: var(--ex-gap); }
.ex-switch.on { background: #e6f7ef; border: 1px solid #b7e6cd; }
.ex-switch.off { background: #fdecee; border: 1px solid #f4c3cb; }
.ex-switch .dot { width: 14px; height: 14px; border-radius: 50%; }
.ex-switch.on .dot { background: #16a34a; box-shadow: 0 0 0 6px rgba(22,163,74,.18); }
.ex-switch.off .dot { background: #dc2626; box-shadow: 0 0 0 6px rgba(220,38,38,.15); }
.ex-switch .t { flex: 1; } .ex-switch .t b { font-size: 17px; } .ex-switch .t div { font-size: 12.5px; color: var(--color-muted); }
.ex-toggle { position: relative; width: 64px; height: 34px; border-radius: 99px; border: none; cursor: pointer; transition: background .2s; }
.ex-toggle::after { content: ""; position: absolute; top: 4px; width: 26px; height: 26px; border-radius: 50%; background: #fff; transition: right .2s, left .2s; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.ex-toggle.on { background: #16a34a; } .ex-toggle.on::after { left: 4px; }
.ex-toggle.off { background: #cbd5d5; } .ex-toggle.off::after { left: 34px; }
.ex-admin-term { background: var(--ext-bg); border-radius: 16px; padding: 10px; margin-bottom: var(--ex-gap); }

#my-deals .ex-scroll { max-height: 520px; overflow-y: auto; }
.ex-chart-wrap .ext-ph { flex-wrap: wrap; gap: 6px; }

/* ===== فاز ۶۰: انتخاب بازار، فرم حساب، ضبط ویدیو ===== */
.ext-markets { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; margin-bottom: 4px; scrollbar-width: thin; }
.ext-markets a { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 12px; text-decoration: none;
                 background: var(--color-surface); border: 1px solid var(--color-border); color: var(--color-text); font-size: 13px; }
.ext-markets a.on { background: var(--ext-bg); color: var(--ext-text); border-color: var(--ext-bg); box-shadow: 0 6px 18px rgba(6,20,25,.25); }
.ext-markets .fl { font-size: 18px; }
.ext-markets .px { color: var(--color-muted); }
.ext-markets a.on .px { color: var(--ext-text); }
.ext-markets .ch { font-size: 11px; font-weight: 700; }
.ext-markets .ch.up { color: #16a34a; } .ext-markets .ch.down { color: #dc2626; }
.ext-mini { background: #0a171c !important; color: var(--ext-text) !important; border: 1px solid var(--ext-line) !important; border-radius: 8px !important;
            padding: 3px 8px !important; font-size: 12px !important; width: auto !important; margin: 0 !important; }
.ex-acc { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid #eef2f2; }
.ex-acc:last-child { border-bottom: none; }
.ex-acc .fl { font-size: 28px; }
.ex-acc .t { font-weight: 700; }
.ex-acc .s { font-size: 12.5px; color: var(--color-muted); }
.ex-rec { border: 2px dashed var(--color-border); border-radius: 16px; padding: 14px; background: #f8fbfb; }
.ex-rec .sentence { background: #fff8e1; border: 1px solid #f1d98a; border-radius: 12px; padding: 14px; font-size: 19px; font-weight: 800; line-height: 1.9; text-align: center; margin-bottom: 12px; }
.ex-rec video { width: 100%; max-width: 300px; border-radius: 12px; background: #000; display: block; margin: 0 auto 10px; aspect-ratio: 3/4; object-fit: cover; }
.ex-rec .ctl { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; }
.ex-rec .count { font-size: 22px; font-weight: 800; color: var(--color-danger); min-width: 40px; text-align: center; }
.ex-rec .state { text-align: center; font-size: 13px; color: var(--color-muted); margin-top: 8px; }
.ex-guide { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 8px 0; }
.ex-guide div { background: #f8fbfb; border-radius: 12px; padding: 10px 12px; font-size: 13px; line-height: 1.8; }
.ex-guide b { display: block; color: var(--color-primary-dark); }
.ex-wiz { counter-reset: w; }
.ex-wiz > .ex-section h4::before { counter-increment: w; content: counter(w) ". "; }
.ex-dup { background: #fdecec; border: 1px solid #f5c2c2; color: var(--color-danger); border-radius: 12px; padding: 10px 14px; font-weight: 600; margin-bottom: 10px; }
video.ex-video { width: 100%; max-height: 360px; background: #000; border-radius: 12px; }
/* جلوگیری از بیرون‌زدگی افقی صفحه (ردیف بازارها و ترمینال) */
.main { min-width: 0; }
.ext-markets, .ext, .ex-card { max-width: 100%; }
.ex-scroll .ex-table th, .ex-scroll .ex-table td { white-space: nowrap; }

/* ======================================================================
   فاز ۶۳ — جدول فروش / جدول خرید (تابلوی صرافی)، نرخ لحظه‌ای، صفحه‌ی معامله‌ی امانی
   همه‌ی اندازه‌ها از متغیرهای زیر خوانده می‌شوند تا به‌راحتی قابل تنظیم باشند.
   ====================================================================== */
:root {
  --ext-board-row-h: 44px;        /* ارتفاع هر ردیف جدول خرید/فروش */
  --ext-board-rows: 10;           /* چند ردیف بدون اسکرول دیده شود */
  --ext-board-gap: 12px;          /* فاصله‌ی دو جدول */
  --ext-board-break: 980px;       /* (مرجع) زیر این عرض، دو جدول زیر هم */
  --ex-live-card-w: 165px;        /* حداقل عرض کارت نرخ لحظه‌ای */
  --ex-live-gap: 10px;
  --ex-party-gap: 12px;           /* فاصله‌ی کارت‌های خریدار و فروشنده در صفحه‌ی معامله */
}

.ext-boards { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ext-board-gap); margin-bottom: 6px; }
@media (max-width: 980px) { .ext-boards { grid-template-columns: 1fr; } }
.ext-board .scroll { max-height: calc(var(--ext-board-row-h) * var(--ext-board-rows) + 34px); overflow: auto; }
.ext-board table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 520px; }
.ext-board th { position: sticky; top: 0; background: var(--ext-panel); text-align: right; font-size: 11.5px; font-weight: 600;
  color: var(--ext-muted); padding: 8px 10px; border-bottom: 1px solid var(--ext-line); white-space: nowrap; }
.ext-board td { height: var(--ext-board-row-h); padding: 4px 10px; border-bottom: 1px solid var(--ext-line); vertical-align: middle; }
.ext-board tr[data-offer] { cursor: pointer; transition: background .12s; }
.ext-board tr[data-offer]:hover td { background: rgba(255, 255, 255, .05); }
.ext-board tr.mine { cursor: default; }
.ext-board tr.mine td { background: rgba(232, 185, 73, .06); }
.ext-board.sell .p { color: var(--ext-ask); font-weight: 800; }
.ext-board.buy .p { color: var(--ext-bid); font-weight: 800; }
.ext-board .muted { color: var(--ext-muted); }
.ext-board .note { font-size: 11px; color: var(--ext-muted); max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ext-board .tag { font-size: 11px; color: var(--ext-gold); white-space: nowrap; }
.ext-board .take { border: 0; border-radius: 8px; padding: 6px 16px; font-weight: 800; font-family: inherit; cursor: pointer; color: #06221f; }
.ext-board .take.sell { background: var(--ext-bid); }   /* روی جدول فروش «خرید» می‌زنیم */
.ext-board .take.buy { background: var(--ext-ask); color: #fff; }

.ext-grid.two { grid-template-columns: minmax(0, 1fr) var(--ext-trade-w); }
@media (max-width: 1100px) { .ext-grid.two { grid-template-columns: 1fr; } .ext-grid.two .ext-trade { grid-column: auto; } }

.ex-live { display: grid; grid-template-columns: repeat(auto-fit, minmax(var(--ex-live-card-w), 1fr)); gap: var(--ex-live-gap); margin-bottom: var(--ex-gap); }
.ex-live-card { background: var(--color-surface, #fff); border: 1px solid var(--color-border); border-radius: 14px; padding: 10px 14px; }
.ex-live-card .h { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.ex-live-card .h .fl { font-size: 18px; }
.ex-live-card .row { display: flex; justify-content: space-between; font-size: 13px; color: var(--color-muted); padding: 2px 0; }
.ex-live-card .row b { color: var(--ex-ink, inherit); font-size: 15px; }
.ex-live-note { grid-column: 1 / -1; font-size: 12px; color: var(--color-muted); margin-top: -2px; }

.ex-parties-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ex-party-gap); }
@media (max-width: 760px) { .ex-parties-grid { grid-template-columns: 1fr; } }
.ex-party { border: 1px solid var(--color-border); border-radius: 14px; padding: 12px 14px; }
.ex-party.me { border-color: var(--color-primary); box-shadow: inset 0 0 0 1px var(--color-primary); }
.ex-party h4 { margin: 0 0 6px; font-size: 15px; display: flex; justify-content: space-between; gap: 8px; }
.ex-party dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: 13.5px; }
.ex-party dt { color: var(--color-muted); }
.ex-party dd { margin: 0; }
.ex-pill.PAYIN, .ex-pill.PAYOUT { background: #fff4e0; color: #92400e; }
.ex-pill.BASE_SEND { background: #e0efff; color: #1e40af; }
.ex-flow { margin: 0; padding-inline-start: 20px; font-size: 13.5px; line-height: 2; color: var(--color-muted); }
.ex-flow li.now { color: var(--ex-ink, inherit); font-weight: 700; }
.ex-flow li.done { text-decoration: line-through; opacity: .7; }
.ext-board td:first-child { white-space: nowrap; }
@media (max-width: 480px) { .ex-live-card { padding: 8px 10px; } .ex-live-card .row b { font-size: 13px; } }
/* فاز ۶۴ — ریال در کارت نرخ، اعضای صرافی */
.ex-live-card .row.rial { font-size: 12px; border-top: 1px dashed var(--color-border); margin-top: 4px; padding-top: 4px; }
.ex-docchips { display: flex; flex-wrap: wrap; gap: 4px; }
.ex-docchips span { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: #e3f6ea; color: #166534; white-space: nowrap; }
.ex-docchips span.miss { background: #f1f5f5; color: var(--color-muted); }
.ex-docs figure video { width: 100%; max-height: 240px; background: #000; border-radius: 10px; }
.ex-docs .pdf { height: 220px; display: grid; place-items: center; background: #f1f5f5; border-radius: 10px; font-size: 15px; }
/* فاز ۶۵ — فرم ثبت آگهی: راهنمای نرخ، پیام حساب لازم، مراحل */
.ext-hint { font-size: 11.5px; color: var(--ext-muted); margin-top: 4px; }
.ext-need { font-size: 12.5px; line-height: 1.9; color: #ffd7a8; background: rgba(232, 185, 73, .12); border: 1px solid rgba(232, 185, 73, .35);
  border-radius: 10px; padding: 8px 10px; margin-bottom: 8px; }
.ext-need a { color: var(--ext-gold); font-weight: 700; }
.ext-submit:disabled { opacity: .45; cursor: not-allowed; }
.ext-steps { font-size: 13.5px; line-height: 2; color: var(--ext-text); }
.ext-steps .st { padding: 4px 0; color: var(--ext-muted); }
.ext-steps .st.done, .ext-steps .st.now { color: var(--ext-text); }
.ext-steps .st.now { font-weight: 700; }
.ext-steps .sm { font-size: 12px; color: var(--ext-muted); font-weight: 400; }
.ext-steps a.ext-submit { display: block; text-align: center; text-decoration: none; margin-top: 10px; }
.ext-steps a.ext-submit.ghost { background: transparent; border: 1px solid var(--ext-line); color: var(--ext-text); }

/* ======================================================================
   فاز ۶۶ — تابلوی نرخ ارز، انتخاب بازار، اعتبار آگهی، کندل نرخ بازار
   ====================================================================== */
:root {
  --ex-rate-w: 168px;          /* حداقل عرض هر کارت نرخ (کارت‌ها خودکار در چند ردیف می‌شکنند) */
  --ex-rate-gap: 10px;
  --ex-rate-pad: 12px;
  --ex-rate-num: 16px;         /* اندازه‌ی عدد قیمت */
  --ex-rate-main-bg: #f2faf8;  /* پس‌زمینه‌ی کارت یورو و دلار */
  --ex-mk-w: 200px;            /* حداقل عرض کارت انتخاب بازار */
  --ex-mk-gap: 8px;
  --ex-mk-pad: 10px 12px;
  --ext-seg-h: 40px;           /* ارتفاع دکمه‌های اعتبار آگهی */
}

.ex-rates { background: var(--color-surface, #fff); border: 1px solid var(--color-border); border-radius: 18px; padding: 14px; margin-bottom: var(--ex-gap); }
.ex-rates-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 12px; margin-bottom: 10px; }
.ex-rates-head h3 { margin: 0; font-size: 16px; } .ex-rates-head h3 small { color: var(--color-muted); font-weight: 500; font-size: 12px; }
.ex-rates-head .src { font-size: 12px; color: var(--color-muted); }
.ex-rates-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--ex-rate-w)), 1fr)); gap: var(--ex-rate-gap); }
.ex-rate { border: 1px solid var(--color-border); border-radius: 14px; padding: var(--ex-rate-pad); min-width: 0; transition: box-shadow .15s, transform .15s; }
.ex-rate:hover { box-shadow: 0 6px 18px rgba(6, 20, 25, .08); transform: translateY(-1px); }
.ex-rate.main { background: var(--ex-rate-main-bg); border-color: #cfe7e2; }
.ex-rate .h { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; white-space: nowrap; overflow: hidden; }
.ex-rate .h .fl { font-size: 20px; line-height: 1; }
.ex-rate .h b { font-size: 14px; overflow: hidden; text-overflow: ellipsis; }
.ex-rate .h .code { margin-inline-start: auto; font-size: 11px; color: var(--color-muted); }
.ex-rate .pr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ex-rate .pr div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ex-rate .pr span { font-size: 11px; color: var(--color-muted); }
.ex-rate .pr b { font-size: var(--ex-rate-num); white-space: nowrap; }
.ex-rate .pr div:first-child b { color: #15803d; } .ex-rate .pr div:last-child b { color: #b91c1c; }
.ex-rate .rial { margin-top: 8px; padding-top: 6px; border-top: 1px dashed var(--color-border); font-size: 11.5px; color: var(--color-muted); }
.ex-rate .na { font-size: 12.5px; color: var(--color-muted); padding: 10px 0; }
.ex-rates-note { margin: 10px 0 0; font-size: 11.5px; color: var(--color-muted); }

.ex-mk { display: flex; flex-direction: column; gap: 10px; margin-bottom: var(--ex-gap); }
.ex-mk-title { font-size: 12px; font-weight: 700; color: var(--color-muted); margin: 0 4px 6px; }
.ex-mk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--ex-mk-w)), 1fr)); gap: var(--ex-mk-gap); }
.ex-mk-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: var(--ex-mk-pad);
  border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface, #fff); text-decoration: none; color: inherit;
  transition: border-color .15s, box-shadow .15s; }
.ex-mk-card:hover { border-color: var(--ext-accent); box-shadow: 0 4px 14px rgba(6, 20, 25, .07); }
.ex-mk-card .fl { font-size: 24px; line-height: 1; }
.ex-mk-card .nm { display: flex; flex-direction: column; min-width: 0; }
.ex-mk-card .nm b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ex-mk-card .nm small { font-size: 11px; color: var(--color-muted); }
.ex-mk-card .px { display: flex; flex-direction: column; align-items: flex-end; font-weight: 700; font-size: 13.5px; white-space: nowrap; }
.ex-mk-card .px small { font-weight: 600; font-size: 10.5px; color: var(--color-muted); }
.ex-mk-card .px small.up { color: #16a34a; } .ex-mk-card .px small.down { color: #dc2626; }
.ex-mk-card.on { background: var(--ext-bg); border-color: var(--ext-bg); color: var(--ext-text); box-shadow: 0 8px 22px rgba(6, 20, 25, .25); }
.ex-mk-card.on .nm small, .ex-mk-card.on .px small { color: var(--ext-muted); }

/* اعتبار آگهی: دکمه‌های انتخابی (به‌جای منوی کشویی که در زمینه‌ی تیره خوانا نبود) */
.ext-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ext-seg input { position: absolute; opacity: 0; pointer-events: none; }
.ext-seg label { display: grid; place-items: center; height: var(--ext-seg-h); border-radius: 10px; cursor: pointer; font-size: 13.5px;
  background: #0a171c; border: 1px solid var(--ext-line); color: var(--ext-text); transition: background .12s, border-color .12s; }
.ext-seg label:hover { border-color: var(--ext-accent); }
.ext-seg input:checked + label { background: var(--ext-accent); border-color: var(--ext-accent); color: #06221f; font-weight: 800; }
.ext-seg input:focus-visible + label { outline: 2px solid var(--ext-gold); outline-offset: 2px; }
/* هر منوی کشویی دیگری در ترمینال تیره: متن گزینه‌ها روشن */
.ext select, .ext select option { color: var(--ext-text); background-color: #0a171c; }
.ext select { color-scheme: dark; }

/* کندل نرخ بازار (روزهای بدون معامله) کمی کم‌رنگ‌تر از کندل معامله‌ها */
.ex-chart-svg .body.mk { opacity: .75; } .ex-chart-svg .wick.mk { opacity: .8; }
.ex-mk-card .nm b { white-space: normal; line-height: 1.5; }
/* موبایل: جدول‌های خرید/فروش داخل خودشان اسکرول شوند و صفحه را پهن نکنند */
.ext-boards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 980px) { .ext-boards { grid-template-columns: minmax(0, 1fr); } }
.ext-grid.two { grid-template-columns: minmax(0, 1fr) var(--ext-trade-w); }
@media (max-width: 1100px) { .ext-grid.two { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { :root { --ex-rate-w: 140px; --ex-rate-num: 14px; --ex-mk-w: 150px; } }
@media (max-width: 860px) { .ex-split, .ex-split-21 { grid-template-columns: minmax(0, 1fr); } }
.ex-split > *, .ex-split-21 > * { min-width: 0; }
/* فاز ۶۷ — انتخاب صاحب حساب (خودم / شخص دیگر) */
.ex-owner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 4px 0 12px; max-width: var(--ex-owner-w, 460px); }
.ex-owner input { position: absolute; opacity: 0; pointer-events: none; }
.ex-owner label { display: grid; place-items: center; height: 44px; border: 1px solid var(--color-border); border-radius: 12px; cursor: pointer; font-weight: 600; }
.ex-owner input:checked + label { border-color: var(--color-primary); background: var(--color-badge-bg); box-shadow: inset 0 0 0 1px var(--color-primary); }
/* فاز ۶۷ — کادر خرید و فروش سمت راست، نمودار سمت چپ (صفحه راست‌به‌چپ است: ستون اول = راست) */
.ext-grid.two { grid-template-columns: var(--ext-trade-w) minmax(0, 1fr); }
.ext-grid.two > .ext-trade { order: -1; }
@media (max-width: 1100px) { .ext-grid.two { grid-template-columns: minmax(0, 1fr); } }
/* فاز ۶۸ — مدیریت حساب‌های بانکی و آگهی‌های پله (اندازه‌ها قابل تنظیم) */
:root { --ex-bank-act-w: 230px; --ex-house-form-cols: 6; }
.ex-bank-act { display: flex; flex-direction: column; gap: 6px; width: var(--ex-bank-act-w); margin: 0; }
.ex-bank-act input[type=text] { width: 100%; }
@media (max-width: 760px) { .ex-bank { grid-template-columns: auto minmax(0, 1fr) !important; } .ex-bank-act { grid-column: 1 / -1; width: 100%; } }
.ex-house-form { display: grid; grid-template-columns: repeat(var(--ex-house-form-cols), minmax(0, 1fr)); gap: 10px; align-items: end; }
@media (max-width: 1100px) { .ex-house-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ex-house-edit { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.ex-house-edit input { width: 92px; }
.ex-house-edit input.nm { width: 120px; }
