/* Dashboard sections (everything inside #gx). */
#gx{font-family:var(--font-anthropic-sans);color:var(--color-fg);}
#gx .wrap{max-width:1180px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--cds-gap-xl);}
#gx h1{font-family:var(--font-anthropic-serif);font-weight:400;font-size:var(--cds-font-size-title);margin:0;line-height:1.3;}
#gx h2{font-size:var(--cds-font-size-heading);font-weight:var(--cds-font-weight-medium);margin:0 0 var(--cds-gap-xs);}
#gx h3{font-size:var(--cds-font-size-body);font-weight:var(--cds-font-weight-medium);margin:var(--cds-gap-md) 0 var(--cds-gap-xs);}
#gx .sub{color:var(--color-fg-muted);font-size:var(--cds-font-size-caption);margin-top:var(--cds-gap-xs);}
#gx .take{font-size:var(--cds-font-size-body);line-height:1.9;margin:var(--cds-gap-sm) 0 0;max-width:62rem;}
#gx .num{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;}
#gx .take .num,#gx .prose .num{font-weight:var(--cds-font-weight-medium);}
#gx .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11.5rem),1fr));gap:var(--cds-gap-md);}
#gx .tile,#gx .card{background:var(--color-panel);border:1px solid var(--color-border-line);border-radius:var(--radius-lg);padding:var(--cds-pad-lg);min-width:0;box-shadow:var(--shadow-card);}
#gx .card{padding:clamp(14px,2.4vw,22px);}
#gx .tile .k{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .tile .v{display:block;font-family:var(--font-anthropic-serif);font-weight:400;font-size:var(--cds-font-size-title);margin-top:var(--cds-gap-xs);text-align:start;}
#gx .tile .n{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);margin-top:var(--cds-gap-xs);}
#gx .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:var(--cds-gap-md);}
#gx .note{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);margin:0 0 var(--cds-gap-md);line-height:1.7;}
#gx .chart{position:relative;direction:ltr;min-height:260px;}
#gx .chart.tall{min-height:360px;}
#gx .chart.short{min-height:200px;}
#gx .legend{display:flex;flex-wrap:wrap;gap:var(--cds-gap-md);font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);margin-bottom:var(--cds-gap-sm);}
#gx .legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-inline-end:6px;}
#gx .tip{position:absolute;top:0;left:0;display:none;background:var(--cds-surface-popover);border:1px solid var(--cds-border);border-radius:var(--cds-radius);box-shadow:var(--cds-shadow-popover);padding:var(--cds-pad-xs) var(--cds-pad-sm);font-size:var(--cds-font-size-caption);pointer-events:none;white-space:nowrap;z-index:5;font-variant-numeric:tabular-nums;}
[dir="rtl"] #gx .tip{direction:rtl;}
#gx .tip .d{color:var(--cds-text-secondary);margin-bottom:2px;}
#gx .tip .sw{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:6px;}
#gx .pos{color:var(--color-ok);}
#gx .neg{color:var(--color-bad);}
#gx table{width:100%;border-collapse:collapse;font-size:var(--cds-font-size-body);font-variant-numeric:tabular-nums;}
#gx th{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);font-weight:var(--cds-font-weight-medium);text-align:start;padding:var(--cds-pad-xs) var(--cds-pad-sm);border-bottom:1px solid var(--color-border-line);}
#gx td{padding:var(--cds-pad-xs) var(--cds-pad-sm);border-bottom:1px solid var(--color-border-line);text-align:start;}
#gx td.n{direction:ltr;text-align:end;unicode-bidi:isolate;}
[dir="rtl"] #gx td.n{text-align:right;}
[dir="ltr"] #gx td.n{text-align:right;}
#gx .tablebox{overflow-x:auto;}
#gx .ind{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--cds-gap-sm);}
#gx .ind div{border:1px solid var(--color-border-line);border-radius:var(--cds-radius);padding:var(--cds-pad-sm) var(--cds-pad-md);}
#gx .ind .k{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .ind .v{font-size:var(--cds-font-size-heading);margin-top:2px;}
#gx .ind .s{font-size:var(--cds-font-size-caption);margin-top:2px;}
#gx .prose{line-height:1.95;font-size:var(--cds-font-size-body);}
#gx .prose p{margin:0 0 var(--cds-gap-sm);}
#gx .prose ul,#gx .prose ol{margin:0 0 var(--cds-gap-sm);padding-inline-start:1.4rem;}
#gx .prose li{margin-bottom:var(--cds-gap-xs);}
#gx .scen{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:var(--cds-gap-md);margin:var(--cds-gap-sm) 0 var(--cds-gap-md);}
#gx .scen div{border:1px solid var(--color-border-line);border-radius:var(--cds-radius);padding:var(--cds-pad-md);}
#gx .scen .t{font-weight:var(--cds-font-weight-medium);margin-bottom:var(--cds-gap-xs);}
#gx .ctx{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--cds-gap-sm);}
#gx .ctx li{border-inline-start:3px solid var(--cds-chart-muted);padding-inline-start:var(--cds-pad-md);line-height:1.8;}
#gx .ctx .t{font-weight:var(--cds-font-weight-medium);}
#gx .ctx .s{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .ctx a{color:inherit;}
#gx .disc{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);line-height:1.8;border-top:1px solid var(--color-border-line);padding-top:var(--cds-pad-md);}
#gx [data-dash-source-state=refreshing]{opacity:.5;transition:opacity var(--cds-dur-slow);}
#gx [data-dash-source-state=empty]{color:transparent;}
#gx .fail{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--color-fg-muted);font-size:var(--cds-font-size-caption);height:100%;min-height:inherit;}
#gx .fail::before{content:"";width:.375rem;height:.375rem;border-radius:50%;background:var(--color-bad);}

#gx .gnav{position:sticky;top:calc(var(--bar-h) + 38px);z-index:6;display:flex;flex-wrap:wrap;gap:var(--cds-gap-xs);padding:var(--cds-pad-sm) 0;background:color-mix(in srgb,var(--color-bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
#gx .gnav button{font:inherit;font-size:var(--cds-font-size-caption);color:var(--color-fg);background:var(--color-panel);border:1px solid var(--color-border-line);border-radius:999px;padding:6px 14px;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;}
#gx .gnav button.on{background:var(--accent);color:var(--accent-fg);border-color:transparent;}
#gx .gnav button:hover{border-color:var(--cds-chart-axis);}
#gx .live{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:var(--cds-gap-md);margin-bottom:var(--cds-gap-md);}
#gx .live>div{border:1px solid var(--color-border-line);border-radius:var(--cds-radius);padding:var(--cds-pad-md);}
#gx .live .k,#gx .s{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .live .big{font-family:var(--font-anthropic-serif);font-weight:400;font-size:var(--cds-font-size-title);margin:2px 0;}
#gx .live .big.num{text-align:start;}
#gx .pv{display:flex;gap:var(--cds-gap-md);flex-wrap:wrap;font-size:var(--cds-font-size-body);margin:4px 0;}
#gx .pv b{font-weight:var(--cds-font-weight-medium);}
#gx .warn{border:1px solid var(--color-border-line);border-inline-start:3px solid var(--color-warn);border-radius:var(--cds-radius);padding:var(--cds-pad-sm) var(--cds-pad-md);margin-bottom:var(--cds-gap-md);line-height:1.8;font-size:var(--cds-font-size-body);}
#gx .sizer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cds-gap-md);margin-bottom:var(--cds-gap-md);font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .sizer input{font:inherit;width:7rem;margin-inline-start:6px;padding:4px 8px;border:1px solid var(--color-border-line);border-radius:var(--cds-radius);background:var(--color-bg);color:var(--color-fg);direction:ltr;}
#gx .sig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:var(--cds-gap-md);min-height:200px;margin-bottom:var(--cds-gap-md);}
#gx .sig{border:1px solid var(--color-border-line);border-radius:var(--cds-radius);padding:var(--cds-pad-md);cursor:pointer;display:flex;flex-direction:column;gap:4px;border-top:3px solid var(--cds-chart-muted);}
#gx .sig.sell{border-top-color:var(--cds-chart-status-critical);}
#gx .sig.buy{border-top-color:var(--color-ok);}
#gx .sig.alt{opacity:.85;}
#gx .sig.on{outline:2px solid var(--accent);outline-offset:1px;}
#gx .sig-top{display:flex;align-items:center;gap:var(--cds-gap-xs);flex-wrap:wrap;}
#gx .badge{font-size:var(--cds-font-size-caption);border:1px solid var(--color-border-line);border-radius:999px;padding:1px 8px;direction:ltr;}
#gx .badge.muted{color:var(--color-fg-muted);}
#gx .sig .lbl{font-weight:var(--cds-font-weight-medium);}
#gx .sig .ord{font-size:var(--cds-font-size-heading);font-weight:var(--cds-font-weight-medium);margin:2px 0 4px;}
#gx .sig.sell .ord{color:var(--color-bad);}
#gx .sig.buy .ord{color:var(--color-ok);}
#gx .lv{display:flex;justify-content:space-between;font-size:var(--cds-font-size-body);border-bottom:1px dashed var(--color-border-line);padding:2px 0;}
#gx .lv.neg b{color:var(--color-bad);}
#gx .lv.pos b{color:var(--color-ok);}
#gx .sig .meta{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);line-height:1.7;}
#gx .sig .nt{font-size:var(--cds-font-size-caption);line-height:1.7;margin-top:2px;}
#gx .fc-tiles{margin-bottom:var(--cds-gap-md);}
#gx #fc-table td,#gx #tg-table td{font-size:var(--cds-font-size-caption);}
#gx #tg-table a{color:inherit;}

#gx .symbar{display:flex;flex-wrap:wrap;gap:var(--cds-gap-sm);}
#gx .symbar button{font:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:9rem;padding:var(--cds-pad-sm) var(--cds-pad-md);border:1px solid var(--color-border-line);border-radius:var(--cds-radius);background:var(--color-panel);color:var(--color-fg);cursor:pointer;text-align:start;}
#gx .symbar button b{font-weight:var(--cds-font-weight-medium);direction:ltr;}
#gx .symbar button span{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .symbar button.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:var(--accent-soft);}
#gx .symbar button.locked{opacity:.6;}
#gx .refresh{font:inherit;font-size:var(--cds-font-size-caption);margin-inline-start:6px;padding:0 8px;border:1px solid var(--color-border-line);border-radius:999px;background:transparent;color:var(--color-fg-muted);cursor:pointer;}
#gx .warn a{color:inherit;}
#gx #lv-table td{font-size:var(--cds-font-size-caption);}

#gx .grade{display:inline-flex;align-items:center;gap:4px;font-size:var(--cds-font-size-caption);border-radius:999px;padding:1px 8px;border:1px solid var(--color-border-line);direction:ltr;}
#gx .grade b{font-weight:700;}
#gx .grade.gA b{color:var(--color-ok);}
#gx .grade.gB b{color:var(--color-fg);}
#gx .grade.gC b{color:var(--color-warn);}
#gx .grade.gD b{color:var(--color-bad);}
#gx .sig .grade{margin-inline-start:auto;}
#gx .sig.best{outline:2px solid var(--color-ok);outline-offset:1px;}
#gx .sig.best.on{outline-color:var(--color-ok);outline-width:3px;}
#gx .best-tag{align-self:flex-start;font-size:var(--cds-font-size-caption);font-weight:var(--cds-font-weight-medium);color:var(--color-ok);border:1px solid var(--color-ok);border-radius:999px;padding:1px 10px;}
#gx .sig .fx{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);line-height:1.7;border-top:1px dashed var(--color-border-line);padding-top:4px;margin-top:2px;}
#gx .grade-key{margin-top:var(--cds-gap-sm);}

#gx .ptabs{display:flex;flex-wrap:wrap;gap:var(--cds-gap-sm);margin-bottom:var(--cds-gap-sm);}
#gx .ptabs button{font:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--cds-pad-sm) var(--cds-pad-md);border:1px solid var(--color-border-line);border-radius:var(--cds-radius);background:var(--color-panel);color:var(--color-fg);cursor:pointer;text-align:start;}
#gx .ptabs button span{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);}
#gx .ptabs button.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:var(--accent-soft);}
#gx .ptabs.small button{padding:2px var(--cds-pad-md);border-radius:999px;font-size:var(--cds-font-size-caption);direction:ltr;}
#gx .acct{margin:var(--cds-gap-sm) 0;}
#gx .mtbox{max-height:260px;overflow:auto;border:1px solid var(--color-border-line);border-radius:var(--cds-radius);}
#gx .mtbox.tall{max-height:420px;}
#gx table.mt5 th{position:sticky;top:0;background:var(--color-panel);z-index:1;}
#gx table.mt5 td{font-size:var(--cds-font-size-caption);white-space:nowrap;}
#gx table.mt5 td.buy{color:var(--color-ok);direction:ltr;text-align:right;}
#gx table.mt5 td.sell{color:var(--color-bad);direction:ltr;text-align:right;}
#gx table.mt5 td.muted{color:var(--color-fg-muted);}
#gx table.mt5 td.empty{color:var(--color-fg-muted);text-align:center;}
#gx .cnt{color:var(--color-fg-muted);font-weight:400;font-size:var(--cds-font-size-caption);}
#gx .fail-soft{display:flex;align-items:center;justify-content:center;min-height:inherit;height:120px;color:var(--color-fg-muted);font-size:var(--cds-font-size-caption);}
#gx #wr-type,#gx #wr-grade{min-height:140px;}

#gx .tags{display:flex;flex-wrap:wrap;gap:var(--cds-gap-xs);}
#gx .acct-tag{font-size:var(--cds-font-size-caption);color:var(--color-fg);border:1px dashed var(--cds-chart-axis);border-radius:999px;padding:1px 10px;}

#gx .loadbtn{font:inherit;padding:var(--cds-pad-sm) var(--cds-pad-lg);border:1px solid var(--color-border-line);border-radius:var(--cds-radius);background:var(--color-panel);color:var(--color-fg);cursor:pointer;}
#gx .mtf-summary{border:1px solid var(--color-border-line);border-radius:var(--cds-radius);padding:var(--cds-pad-md);margin-bottom:var(--cds-gap-md);min-height:60px;}
#gx .mtf-summary .big{font-family:var(--font-anthropic-serif);font-size:var(--cds-font-size-title);font-weight:400;}
#gx .mtf-summary .s{line-height:1.8;}
#gx .mtf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--cds-gap-md);}
#gx .spark{border:1px solid var(--color-border-line);border-radius:var(--cds-radius);padding:var(--cds-pad-sm);}
#gx .spark .k{font-size:var(--cds-font-size-caption);color:var(--color-fg-muted);margin-bottom:4px;}
#gx .legend i.lg-close{background:var(--color-fg);}
#gx .legend i.lg-ema{background:var(--cds-chart-muted);}

#gx .tf-verdict{border:1px solid var(--color-border-line);border-inline-start:3px solid var(--color-ok);border-radius:var(--cds-radius);padding:var(--cds-pad-md);margin:var(--cds-gap-sm) 0 var(--cds-gap-md);min-height:60px;}
#gx .tf-verdict .big{font-family:var(--font-anthropic-serif);font-size:var(--cds-font-size-title);font-weight:400;}
#gx .tf-verdict .s{line-height:1.8;}
#gx tr.best-row td{background:color-mix(in srgb, var(--color-ok) 8%, transparent);}
#gx .tfbt{margin-top:var(--cds-gap-lg);}

#gx .tile.win{border-top:3px solid var(--color-ok);}
#gx .tile.loss{border-top:3px solid var(--color-bad);}


/* ---------- v2 components ---------- */
#gx .wrap { gap: 22px; }
#gx .page-head h1 { font-size: clamp(22px, 3.2vw, 30px); }
#gx .page-head .sub { margin-top: 6px; }
#gx .sec-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; margin-bottom: 12px; }
#gx .sec-head h2 { margin: 0; }
#gx .sec-head .sub { max-width: 60rem; line-height: 1.7; }
#gx .sec-link { font-size: 12px; color: var(--accent); text-decoration: none; white-space: nowrap; }
[dir="ltr"] #gx .sec-link { unicode-bidi: plaintext; }
#gx h2 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#gx section.card > h2::before, #gx .sec-head h2::before { content: ""; width: 4px; height: 18px; border-radius: 4px; background: var(--accent); flex: none; }
#gx .seg.small { padding: 3px; border-radius: 10px; }
#gx .seg.small button { padding: 5px 12px; font-size: 12px; }

/* symbol bar */
#gx .symbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr)); gap: 10px; }
#gx .symbar button { min-width: 0; gap: 6px; padding: 10px 12px; transition: border-color .15s, background-color .15s, transform .15s; }
#gx .symbar button:hover { transform: translateY(-1px); border-color: var(--cds-chart-axis); }
#gx .sb-top { display: flex; align-items: baseline; gap: 8px; width: 100%; }
#gx .sb-top b { font-size: 14px; }
#gx .sb-nm { font-size: 12px; color: var(--color-fg-muted); }
#gx .sb-px { display: flex; align-items: baseline; gap: 8px; font-size: 13px; }
#gx .sb-px .sp { font-weight: 600; color: var(--color-fg); }
#gx .sb-px .sc { font-size: 12px; }
#gx .symbar .lock { font-size: 12px; color: var(--color-fg-muted); }
#gx .symbar button.locked { opacity: .7; border-style: dashed; }

/* today */
#gx .today-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 10px; }
#gx .today-card { font: inherit; text-align: start; color: var(--color-fg); display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--color-border-line); background: var(--color-bg); cursor: pointer; min-height: 132px; transition: border-color .15s, transform .15s; }
#gx .today-card:hover { border-color: var(--cds-chart-axis); transform: translateY(-1px); }
#gx .today-card.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }
#gx .tc-top { display: flex; align-items: baseline; gap: 8px; }
#gx .tc-top b { direction: ltr; }
#gx .tc-nm { font-size: 12px; color: var(--color-fg-muted); }
#gx .tc-px { display: flex; align-items: baseline; gap: 8px; font-family: var(--font-anthropic-serif); font-size: 22px; }
#gx .tc-ch { font-family: var(--font-anthropic-sans); font-size: 12px; }
#gx .tc-bias { font-size: 13px; font-weight: 600; }
#gx .tc-lv, #gx .tc-acct { font-size: 12px; color: var(--color-fg-muted); }
#gx .tc-best { display: flex; align-items: center; gap: 6px; font-size: 12px; line-height: 1.6; }
#gx .tc-acct { color: var(--accent); }

/* sessions */
#gx .sess { margin-top: 4px; }
#gx .sess-wrap { position: relative; }
#gx .sess-grid { display: flex; flex-direction: column; gap: 6px; }
#gx .sess-row { display: grid; grid-template-columns: 5.5rem 1fr; align-items: center; gap: 10px; font-size: 12px; color: var(--color-fg-muted); }
#gx .sess-row.on { color: var(--color-fg); font-weight: 600; }
#gx .sess-bar { position: relative; height: 14px; border-radius: 7px; background: var(--cds-chart-grid); overflow: hidden; }
#gx .sess-bar i { position: absolute; top: 0; bottom: 0; border-radius: 7px; background: color-mix(in srgb, var(--accent) 45%, transparent); }
#gx .sess-row.on .sess-bar i { background: var(--accent); }
#gx .sess-axis { position: relative; height: 18px; margin-inline-start: calc(5.5rem + 10px); font-size: 10px; color: var(--color-fg-muted); }
#gx .sess-axis span { position: absolute; transform: translateX(-50%); top: 3px; }
#gx .sess-axis span:first-child { transform: none; } #gx .sess-axis span:last-child { transform: translateX(-100%); }
#gx .sess-lane { position: absolute; top: -4px; bottom: 14px; left: calc(5.5rem + 10px); right: 0; pointer-events: none; }
[dir="rtl"] #gx .sess-lane { left: 0; right: calc(5.5rem + 10px); }
[dir="rtl"] #gx .sess-axis { margin-inline-start: 0; margin-inline-end: calc(5.5rem + 10px); }
[dir="rtl"] #gx .sess-row { grid-template-columns: 1fr 5.5rem; }
[dir="rtl"] #gx .sess-row .sess-name { order: 2; }
#gx .sess-now { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--color-bad); border-radius: 2px; }
#gx .sess-now::before { content: ""; position: absolute; top: -3px; left: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--color-bad); }
#gx .sess-info { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
#gx .chip { font-size: 12px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--color-border-line); color: var(--color-fg-muted); background: var(--color-bg); }
#gx .chip.on { color: var(--color-fg); border-color: var(--accent); }
#gx .chip.hot { color: var(--color-warn); border-color: color-mix(in srgb, var(--color-warn) 50%, transparent); }
#gx .chip.ok { color: var(--color-ok); } #gx .chip.bad { color: var(--color-bad); }

/* signal cards extras */
#gx .sig { border-radius: 14px; background: var(--color-bg); transition: transform .15s, box-shadow .15s; }
#gx .sig:hover { transform: translateY(-1px); box-shadow: var(--shadow-card); }
#gx .ev-flag { font-size: 12px; color: var(--color-warn); background: color-mix(in srgb, var(--color-warn) 10%, transparent); border-radius: 8px; padding: 4px 8px; line-height: 1.6; }
#gx .sig-chart-btn { font: inherit; font-size: 12px; align-self: flex-start; margin-top: 4px; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--color-border-line); background: transparent; color: var(--accent); cursor: pointer; }
#gx .sig-chart-btn:hover { background: var(--accent-soft); }

/* chart */
#gx .cx-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 8px; }
#gx .cx-toggles { display: flex; flex-wrap: wrap; gap: 6px; }
#gx .chip-btn { font: inherit; font-size: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--color-border-line); background: var(--color-bg); color: var(--color-fg-muted); cursor: pointer; }
#gx .chip-btn.on { color: var(--color-fg); border-color: var(--cds-chart-axis); background: var(--color-panel); }
#gx .chip-btn .sw { width: 12px; height: 3px; border-radius: 2px; display: inline-block; }
#gx .chip-btn .sw.ma { background: var(--c0); } #gx .chip-btn .sw.lv { background: var(--color-ok); } #gx .chip-btn .sw.sg { background: var(--color-fg); }
#gx .chip-btn:not(.on) .sw { opacity: .35; }
#gx .cx-zoom { display: flex; gap: 4px; margin-inline-start: auto; }
#gx .icon-btn.sm { height: 30px; min-width: 30px; padding: 0 8px; font-size: 15px; }
#gx .cx-readout { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--color-fg-muted); min-height: 20px; margin-bottom: 4px; }
#gx .cx-readout b { font-weight: 600; color: var(--color-fg-muted); margin-inline-end: 2px; }
#gx .cx-readout .num { color: var(--color-fg); }
#gx .cx-chart { min-height: 320px; border-radius: 12px; background: var(--color-bg); border: 1px solid var(--color-border-line); overflow: hidden; user-select: none; -webkit-user-select: none; }
#gx .cx-tv-host { height: min(70vh, 620px); min-height: 420px; border-radius: 12px; overflow: hidden; border: 1px solid var(--color-border-line); background: var(--color-bg); }

/* calendar */
#gx .cal-next { display: grid; gap: 4px; justify-items: start; padding: 14px 16px; border-radius: 14px; margin-bottom: 12px; background: linear-gradient(135deg, var(--accent-soft), transparent); border: 1px solid var(--color-border-line); }
#gx .cal-next .k { font-size: 12px; color: var(--color-fg-muted); }
#gx .cal-next .ev-name { font-size: 17px; font-weight: 600; }
#gx .countdown { display: flex; gap: 8px; }
#gx .cd-u { display: flex; flex-direction: column; align-items: center; min-width: 54px; padding: 6px 8px; border-radius: 10px; background: var(--color-bg); border: 1px solid var(--color-border-line); }
#gx .cd-u b { font-size: 22px; font-variant-numeric: tabular-nums; font-family: var(--font-anthropic-serif); font-weight: 400; }
#gx .cd-u span { font-size: 11px; color: var(--color-fg-muted); }
#gx .countdown.sm { font-variant-numeric: tabular-nums; font-size: 13px; font-weight: 600; color: var(--color-fg); }
#gx .cal-list { display: flex; flex-direction: column; gap: 6px; min-height: 60px; }
#gx .cal-day { font-size: 12px; font-weight: 600; color: var(--color-fg-muted); margin: 10px 2px 2px; }
#gx .cal-item { display: grid; grid-template-columns: 4.5rem 1fr auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--color-border-line); background: var(--color-bg); }
#gx .cal-item.high { border-inline-start: 3px solid var(--color-bad); }
#gx .cal-item.past { opacity: .55; }
#gx .cal-time { font-weight: 600; font-variant-numeric: tabular-nums; }
#gx .cal-name { font-size: 14px; line-height: 1.6; }
#gx .cal-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
#gx .imp, #gx .sym-chip, #gx .cty { font-size: 11px; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--color-border-line); color: var(--color-fg-muted); }
#gx .imp.hi { color: var(--color-bad); border-color: color-mix(in srgb, var(--color-bad) 45%, transparent); }
#gx .imp.md { color: var(--color-warn); }
#gx .sym-chip { direction: ltr; }
#gx .cal-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
#gx .cal-right .done { font-size: 12px; color: var(--color-fg-muted); }
#gx .ics { font-size: 11px; color: var(--accent); text-decoration: none; }
@media (max-width: 560px) { #gx .cal-item { grid-template-columns: 3.6rem 1fr; } #gx .cal-right { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; } }

/* record */
#gx .rec-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; margin-bottom: 12px; background: var(--accent-soft); }
#gx .rec-sub > svg { width: 22px; height: 22px; color: var(--accent); }
#gx .rec-sub span { flex: 1; min-width: 12rem; }
#gx .rec-sub .icon-btn { text-decoration: none; }
#gx #rec-tiles { margin-bottom: 12px; }

/* tables and tiles polish */
#gx .tablebox { border-radius: 12px; }
#gx table.mt5 tbody tr:hover td { background: color-mix(in srgb, var(--accent) 5%, transparent); }
#gx .tile .v { font-size: clamp(20px, 2.6vw, 26px); }
#gx .hist-head { padding-top: 6px; border-top: 1px dashed var(--color-border-line); }
#gx .fail-soft { text-align: center; }
@media (max-width: 760px) {
  #gx .card { border-radius: 14px; }
  #gx .live { grid-template-columns: 1fr 1fr; }
  #gx .live .big { font-size: 22px; }
  #gx .sizer input { width: 6rem; }
}
@media (prefers-reduced-motion: reduce) { #gx .symbar button, #gx .today-card, #gx .sig { transition: none; } }
#gx .lot-warn { margin-top: 4px; color: var(--color-warn); font-size: var(--cds-font-size-caption); }

/* MT5 copier card */
#gx .copier { border: 1px solid var(--color-border-line); border-radius: var(--cds-radius); background: var(--color-panel); padding: 14px 16px; margin: 12px 0; }
#gx .copier-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
#gx .copier-head > div { flex: 1 1 280px; min-width: 0; }
#gx .copier-head .sub { margin-top: 4px; line-height: 1.7; }
#gx .copier-ico { flex: none; width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; font-weight: 700; font-size: 13px;
  background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
#gx .copier-steps { margin-top: 10px; font-size: var(--cds-font-size-body); }
#gx .copier-steps summary { cursor: pointer; color: var(--accent); font-weight: 600; }
#gx .copier-steps ol { margin: 8px 0; padding-inline-start: 22px; line-height: 1.9; }
#gx .copier-steps code { direction: ltr; unicode-bidi: isolate; background: var(--color-bg); border: 1px solid var(--color-border-line); border-radius: 6px; padding: 1px 6px; font-size: 12px; }
#gx .sig-acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; }
#gx .copier a.icon-btn { text-decoration: none; }

/* ---------- subscriptions ---------- */
#gx .gnav .gnav-accent { border-color: var(--accent); color: var(--accent); font-weight: 600; }
#gx .store-bar { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; margin: 6px 0 4px; }
#gx .store-bar .seg .cnt { font-size: 11px; opacity: .7; margin-inline-start: 4px; }
#gx .store-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 14px; margin-top: 10px; }
#gx .store-card { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 14px; border: 1px solid var(--color-border-line); background: var(--color-bg); min-width: 0; }
#gx .store-card h3 { margin: 0; font-size: 18px; unicode-bidi: plaintext; text-align: start; }
#gx .sc-top { display: flex; gap: 6px; flex-wrap: wrap; }
#gx .chip { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--color-border-line); color: var(--color-fg-muted); }
#gx .chip.accent { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
#gx .sc-desc { margin: 0; color: var(--color-fg-muted); font-size: 13px; line-height: 1.8; }
#gx .sc-feat { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 13px; }
#gx .sc-feat li::before { content: "✓"; color: var(--color-ok); font-weight: 700; margin-inline-end: 8px; }
#gx .sc-price { margin-top: auto; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; padding-top: 6px; border-top: 1px dashed var(--color-border-line); }
#gx .sc-price b { font-size: 28px; font-family: var(--font-anthropic-serif); font-weight: 600; }
#gx .sc-price span { color: var(--color-fg-muted); font-size: 13px; }
#gx .sc-price .save { color: var(--color-ok); background: color-mix(in srgb, var(--color-ok) 12%, transparent); border-radius: 999px; padding: 1px 8px; font-size: 12px; font-weight: 600; }
#gx .sc-pm { font-size: 12px; color: var(--color-fg-muted); margin-top: -6px; }
#gx .sc-price .was { font-size: 15px; color: var(--color-fg-muted); font-weight: 500; }
#gx .sc-inc { display: flex; flex-wrap: wrap; gap: 4px; }
#gx .sc-inc .chip { font-size: 11px; }
#gx .sc-buy, #gx .co-pay { font: inherit; font-weight: 600; padding: 11px 14px; border-radius: 10px; border: 0; background: var(--accent); color: var(--accent-fg); cursor: pointer; }
#gx .sc-buy:hover, #gx .co-pay:hover { filter: brightness(1.06); }
#gx .co-pay:disabled { opacity: .6; cursor: progress; }
#gx .store-trust { margin: 14px 0 4px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 12px; color: var(--color-fg-muted); }
#gx .store-trust li::before { content: "•"; color: var(--accent); margin-inline-end: 6px; }

#gx .acct-login { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
#gx .acct-login input, #gx .co-panel input[type=text], #gx .co-panel input[type=email] { font: inherit; padding: 9px 12px; border-radius: 10px; border: 1px solid var(--color-border-line); background: var(--color-bg); color: var(--color-fg); min-width: 0; }
#gx .acct-login input { flex: 1 1 220px; direction: ltr; text-align: left; letter-spacing: .5px; }
#gx .acct-key { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 12px 14px; border-radius: 12px; background: var(--accent-soft); margin: 10px 0; }
#gx .acct-key .k { font-size: 12px; color: var(--color-fg-muted); width: 100%; }
#gx .kv { direction: ltr; unicode-bidi: isolate; font-size: 16px; font-weight: 700; letter-spacing: 1px; background: var(--color-bg); border: 1px solid var(--color-border-line); border-radius: 8px; padding: 4px 10px; }
#gx .acct-key .n { width: 100%; font-size: 12px; color: var(--color-fg-muted); }
#gx .mini { font: inherit; font-size: 12px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--color-border-line); background: var(--color-bg); color: var(--color-fg); cursor: pointer; }
#gx .mini.ghost { background: transparent; color: var(--color-fg-muted); }
#gx .acct-items { display: grid; gap: 10px; }
#gx .acct-item { border: 1px solid var(--color-border-line); border-radius: 12px; padding: 12px 14px; background: var(--color-bg); display: grid; gap: 6px; }
#gx .acct-item.expired { opacity: .75; }
#gx .acct-item .n { font-size: 12.5px; color: var(--color-fg-muted); line-height: 1.7; }
#gx .ai-head { display: flex; align-items: center; gap: 8px; justify-content: space-between; }
#gx .ai-head b { direction: ltr; unicode-bidi: isolate; }
#gx .ai-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
#gx .ai-acts a.icon-btn { text-decoration: none; }
#gx .pill { font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
#gx .pill.ok { color: var(--color-ok); background: color-mix(in srgb, var(--color-ok) 13%, transparent); }
#gx .pill.off { color: var(--color-fg-muted); background: var(--color-panel); border: 1px solid var(--color-border-line); }
#gx .acct-order { border-radius: 12px; padding: 12px 14px; margin: 10px 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
#gx .acct-order > div { width: 100%; }
#gx .acct-order.ok { background: color-mix(in srgb, var(--color-ok) 12%, var(--color-bg)); }
#gx .acct-order.wait { background: color-mix(in srgb, var(--color-warn) 12%, var(--color-bg)); }
#gx .acct-order.bad { background: color-mix(in srgb, var(--color-bad) 12%, var(--color-bg)); }
#gx .acct-order .n { font-size: 12px; color: var(--color-fg-muted); }

#gx .co { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 16px; }
#gx .co[hidden] { display: none; }
#gx .co-scrim { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
#gx .co-panel { position: relative; width: min(100%, 480px); max-height: calc(100vh - 32px); overflow: auto; background: var(--color-bg); color: var(--color-fg); border-radius: 18px; padding: 22px 20px 18px;
  box-shadow: var(--cds-shadow-popover); display: grid; gap: 12px; animation: xht-up .2s ease-out; }
#gx .co-panel h2 { margin: 0; }
#gx .co-x { position: absolute; inset-inline-end: 12px; top: 10px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: var(--color-panel); color: var(--color-fg); font-size: 20px; cursor: pointer; }
#gx .co-prod { display: flex; gap: 8px; align-items: center; }
#gx .co-prod b { font-size: 17px; unicode-bidi: plaintext; }
#gx .co-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
#gx .co-plans button { display: grid; gap: 2px; padding: 8px 6px; }
#gx .co-plans button b { font-size: 15px; }
#gx .co-panel label { display: grid; gap: 5px; font-size: 13px; font-weight: 600; }
#gx .co-panel label small { font-weight: 400; color: var(--color-fg-muted); font-size: 12px; }
#gx .co-panel label[hidden] { display: none; }
#gx .co-panel input[type=text], #gx .co-panel input[type=email] { direction: ltr; text-align: left; font-weight: 400; }
#gx .co-agree { display: flex !important; align-items: flex-start; gap: 8px; font-weight: 400 !important; color: var(--color-fg-muted); line-height: 1.7; }
#gx .co-agree input { margin-top: 5px; accent-color: var(--accent); }
#gx .co-err { color: var(--color-bad); background: color-mix(in srgb, var(--color-bad) 10%, transparent); border-radius: 10px; padding: 8px 12px; font-size: 13px; }
@media (max-width: 760px) { #gx .co { place-items: end center; padding: 0; } #gx .co-panel { width: 100%; border-radius: 18px 18px 0 0; padding-bottom: calc(18px + env(safe-area-inset-bottom)); max-height: 92vh; } }
#gx .linkish { font: inherit; font-size: 13px; background: none; border: 0; color: var(--accent); cursor: pointer; padding: 4px 2px; text-decoration: underline; text-underline-offset: 3px; }
#gx .acct-login.recover { border: 1px dashed var(--color-border-line); border-radius: 12px; padding: 12px; }
#gx .acct-login.recover .sub, #gx .acct-login.recover .note { width: 100%; margin: 0; }
#gx .acct-login.recover input { direction: ltr; text-align: left; }
#gx .acct-tg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; border: 1px solid var(--color-border-line); border-radius: 12px; margin: 0 0 10px; background: var(--color-bg); }
#gx .acct-tg .n { font-size: 12.5px; color: var(--color-fg-muted); }
#gx .imp-dots { display: inline-flex; gap: 3px; align-items: center; padding: 2px 6px; border-radius: 999px; background: var(--color-panel); }
#gx .imp-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--cds-chart-grid); display: block; }
#gx .imp-dots.l3 i.on { background: var(--color-bad); } #gx .imp-dots.l2 i.on { background: var(--color-warn); } #gx .imp-dots.l1 i.on { background: var(--cds-chart-muted); }
#gx .cty .flag { font-weight: 400; }
#gx .cal-fp { display: flex; gap: 6px 10px; align-items: baseline; flex-wrap: wrap; font-size: 12px; margin-top: 4px; color: var(--color-fg-muted); }
#gx .cal-fp b { color: var(--color-fg); font-weight: 600; margin-inline-end: 6px; }
/* five categories: the row scrolls sideways on narrow screens */
#store-cats { grid-auto-columns: max-content; overflow-x: auto; max-width: 100%; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
#store-cats::-webkit-scrollbar { display: none; }
#store-cats button { white-space: nowrap; padding-inline: 12px; }
@media (min-width: 761px) { #store-cats { grid-auto-columns: auto; } }
/* phones: the category picker is one button + a sheet */
#gx .store-cat-btn { display: none; }
@media (max-width: 760px) {
  #gx #store-cats { display: none; }
  #gx .store-bar { flex-direction: column; align-items: stretch; }
  #gx .store-cat-btn { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 14px; border-radius: 14px; border: 1px solid var(--color-border-line); background: var(--color-panel); color: var(--color-fg); font: inherit; cursor: pointer; text-align: start; }
  #gx .store-cat-btn .ic { font-size: 22px; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: color-mix(in srgb, var(--accent) 12%, var(--color-bg)); flex: none; }
  #gx .store-cat-btn .tx { flex: 1; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
  #gx .store-cat-btn small { font-size: 11px; color: var(--color-fg-muted); }
  #gx .store-cat-btn b { font-size: 15.5px; }
  #gx .store-cat-btn .chev { color: var(--accent); font-size: 14px; }
  #gx #store-plans { width: 100%; }
}
