/* Price Action Lab (2026-10-25) */
.pa-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 12px; align-items: start; margin-top: 8px; }
@media (max-width: 1100px) { .pa-grid { grid-template-columns: 1fr; } }
.pa-tfhead { margin: 10px 2px 2px; }
.pa-tfhead .muted { margin-top: 3px; font-size: 12.5px; }
.pa-layers { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 8px; font-size: 12.5px; color: var(--text-secondary); }
.pa-layers label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.pa-canvaswrap { position: relative; }
.pa-canvaswrap canvas { display: block; width: 100%; }
.pa-tip { position: absolute; left: 10px; top: 6px; background: rgba(9, 12, 16, 0.88); border: 1px solid var(--accent-d); padding: 3px 8px; border-radius: 6px; font-size: 12px; pointer-events: none; }
.pa-legend { margin-top: 8px; font-size: 12px; }
.pa-lessonbox { max-height: 640px; overflow-y: auto; }
.pa-grp { margin: 12px 0 5px; font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); }
.pa-grp:first-child { margin-top: 2px; }
.pa-card { border: 1px solid rgba(148, 163, 184, 0.16); border-left: 3px solid rgba(148, 163, 184, 0.45); border-radius: 8px; padding: 7px 10px; margin-bottom: 6px; cursor: pointer; background: var(--panel2); }
.pa-card:hover { background: var(--panel-hover); }
.pa-card.hl { border-color: var(--accent); background: var(--accent-d); }
.pa-card.ok { border-left-color: var(--good); }
.pa-card.weak { border-left-color: var(--warn); }
.pa-ct { font-weight: 600; font-size: 13px; }
.pa-cx { margin-top: 3px; font-size: 12.5px; color: var(--text-secondary); line-height: 1.45; }
.pa-num { display: inline-block; min-width: 18px; text-align: center; margin-right: 6px; border-radius: 9px; background: var(--accent-d); color: var(--accent); font-size: 11.5px; }
.pa-chk { margin: 5px 0 0; padding: 0; list-style: none; font-size: 12.5px; color: var(--text-secondary); }
.pa-chk li { margin: 2px 0; line-height: 1.4; }
.pa-chk li.ok b { color: var(--good); }
.pa-chk li.no b { color: var(--bad); }
.pa-concl { margin-top: 10px; }
.pa-concl p { margin: 5px 0; font-size: 13.5px; line-height: 1.5; }
tr.pa-row { cursor: pointer; }
tr.pa-row:hover td { background: var(--panel-hover); }
tr.pa-row.sel td { background: var(--accent-d); }

.pa-notes { margin: 6px 2px; font-size: 12.5px; }
.pa-send { margin-top: 12px; }
.pa-sendrow { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0; align-items: end; }
.pa-sendrow label, .pa-note { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: var(--text-secondary); }
.pa-sendrow input { width: 120px; }
.pa-note { margin: 6px 0 10px; }
.pa-note input { width: 100%; max-width: 640px; }
.pa-sendbtns { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pa-buy, .pa-sell { border-radius: 8px; padding: 8px 16px; font-weight: 700; cursor: pointer; border: 1px solid transparent; color: #fff; }
.pa-buy { background: var(--good-gradient); }
.pa-sell { background: var(--bad-gradient); }
.pa-buy:disabled, .pa-sell:disabled { opacity: 0.35; cursor: not-allowed; }
.pa-buy.sug { box-shadow: var(--good-glow); border-color: var(--good); }
.pa-sell.sug { box-shadow: var(--bad-glow); border-color: var(--bad); }
#pa-smsg.ok { color: var(--good); }
#pa-smsg.bad { color: var(--bad); }

/* indicator read-out and CPR table below the chart (2026-10-25) */
.pa-below { margin-top: 12px; }
.pa-indgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.pa-indgrid .pa-card { margin: 0; cursor: default; }
.pa-indgrid .pa-card.bad { border-left-color: var(--bad); }
.pa-val { float: right; font-weight: 500; color: var(--accent); font-size: 12.5px; }
.pa-cprt td, .pa-cprt th { text-align: right; white-space: nowrap; }
.pa-cprt td:first-child, .pa-cprt th:first-child { text-align: left; }
.pa-cprt tr.res td { color: var(--bad); }
.pa-cprt tr.sup td { color: var(--good); }
.pa-cprt tr.cpr td { font-weight: 600; }
.pa-macdset { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }
.pa-macdset input { width: 54px; }
.pa-macdset button { padding: 2px 10px; cursor: pointer; }
.pa-evkey { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 6px; font-size: 12px; color: var(--text-secondary); }
.pa-ev { cursor: pointer; white-space: nowrap; }
.pa-ev:hover { color: var(--text-primary, #e2e8f0); }
.pa-ev i { display: inline-block; min-width: 16px; height: 16px; line-height: 16px; border-radius: 8px; text-align: center; font-style: normal; font-weight: 700; font-size: 10px; color: #0b1220; margin-right: 4px; }
.pa-ev i.up { background: #22c55e; }
.pa-ev i.down { background: #f43f5e; }
/* a sideways swipe over the page must not navigate back / forward in the browser */
html, body, .pa-canvaswrap { overscroll-behavior-x: none; }
.pa-canvaswrap canvas { touch-action: pan-y; }

/* option open interest (2026-10-25) */
.pa-oi-exp { margin-left: 8px; }
.pa-oi-sum { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-bottom: 8px; }
.pa-oi-sum > div { background: var(--panel2); border-radius: 8px; padding: 6px 10px; display: flex; flex-direction: column; }
.pa-oi-sum span { font-size: 11.5px; }
.pa-oi-sum b { font-size: 16px; }
.pa-oi-reads { margin: 6px 0 10px; padding-left: 18px; font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; }
.pa-oit td, .pa-oit th { white-space: nowrap; font-size: 12.5px; }
.pa-oit td.r { text-align: right; }
.pa-oit td.k { text-align: center; }
.pa-oit td.bar { width: 18%; min-width: 80px; }
.pa-oit td.bar i { display: block; height: 10px; border-radius: 2px; }
.pa-oit td.bar i.ce { background: rgba(244, 63, 94, 0.65); margin-left: auto; }
.pa-oit td.bar i.pe { background: rgba(34, 197, 94, 0.65); }
.pa-oit tr.atm td { background: var(--accent-d); }

/* order preview: stop-loss cost and option prices before an order is sent (2026-10-25) */
.pa-preview { margin: 8px 0; padding: 8px 12px; border: 1px solid rgba(148, 163, 184, 0.25); border-radius: 8px; background: var(--panel2); font-size: 13px; line-height: 1.5; }
.pa-pv-t { font-weight: 600; margin: 6px 0 2px; }
.pa-pv-loss { color: var(--bad); font-weight: 700; margin: 2px 0; }
.pa-optchain { margin: 8px 0; padding: 8px 12px; border: 1px solid rgba(148, 163, 184, 0.25); border-radius: 8px; background: var(--panel2); font-size: 13px; }
.pa-pv-btns { margin-top: 10px; display: flex; gap: 10px; flex-wrap: wrap; }

/* orders waiting for a candle pattern (2026-10-25) */
.pa-gate { display: block; margin: 8px 0; font-size: 12.5px; color: var(--text-secondary); line-height: 1.45; }
.pa-ev-log { max-width: 640px; white-space: normal; font-size: 12px; }
