.canonical-signal-card{min-width:0}
.canonical-signal-card .signal-top>div:first-child{min-width:0}
.canonical-signal-card .signal-channel,.canonical-signal-card .kpi strong,.canonical-signal-card .level-line strong{overflow-wrap:anywhere}
.canonical-signal-card .signal-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.canonical-signal-card .context{display:block;margin-top:0;overflow:hidden}
.canonical-signal-card .market-score-list{display:grid;gap:0;margin-top:7px}
.canonical-signal-card .market-score{min-height:28px}
.canonical-signal-card .context>.structured-object,.canonical-signal-card .context>.structured-list{margin-top:7px}
.canonical-signal-card .level-line.secondary{margin-top:8px;border-top:1px solid rgba(56,189,248,.1);padding-top:7px;color:var(--muted)}
.canonical-signal-card .block-value{display:block;margin-top:8px}
.canonical-signal-card .signal-why{margin-top:10px;border:1px solid rgba(56,189,248,.12);border-radius:7px;background:#020304;padding:9px}
.canonical-signal-card .signal-why .facts{margin-top:7px}
.canonical-signal-card .fact{min-width:0;overflow-wrap:anywhere;margin:0 0 6px;line-height:1.45}
.canonical-signal-card .fact:last-child{margin-bottom:0}
.canonical-signal-card .fact>.structured-object,.canonical-signal-card .fact>.structured-list{flex:1;min-width:0;margin:0}
.canonical-signal-card .signal-classification{display:grid;gap:3px;margin-top:10px;border:1px solid rgba(248,204,69,.4);border-radius:7px;background:rgba(248,204,69,.08);padding:9px 10px}
.canonical-signal-card .signal-classification strong{color:var(--amber);font-size:8px;text-transform:uppercase}
.canonical-signal-card .signal-classification span{color:#fff;font-size:11px;font-weight:800}
.canonical-signal-card .signal-classification small{color:#fde68a;font-size:9px}
.canonical-signal-card .card-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.canonical-signal-card .card-actions .btn{min-width:0;padding-left:6px;padding-right:6px}
@media(max-width:560px){.canonical-signal-card .signal-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.canonical-signal-card .signal-kpis .kpi:last-child{grid-column:auto}.canonical-signal-card .kpi{padding:7px 5px}.canonical-signal-card .kpi span{font-size:7px}.canonical-signal-card .kpi strong{font-size:10px}.canonical-signal-card .card-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.canonical-signal-card .card-actions .analysis-button{grid-column:auto;grid-row:auto}.canonical-signal-card .card-actions .btn{font-size:9px}}
@media(max-width:560px){.filterbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.filterbar select,.filterbar input{width:100%;min-width:0}.filterbar input:last-child{grid-column:1/-1}}
@media(max-width:390px){.canonical-signal-card .signal-top{gap:7px}.canonical-signal-card .signal-symbol{gap:6px}.canonical-signal-card .signal-kpis{gap:4px}.canonical-signal-card .signal-kpis .kpi{padding:6px 4px}.canonical-signal-card .card-actions{gap:4px}.canonical-signal-card .card-actions .btn{font-size:8px}}

/* CGBX uses the shared canonical card; only its history and source facts differ. */
.cgbx-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cgbx-signal-card .cgbx-history{margin:0 0 8px;line-height:1.5}
.cgbx-signal-card .cgbx-history>span,.cgbx-signal-card .cgbx-history>small{display:block}
.cgbx-signal-card details summary{cursor:pointer;overflow-wrap:anywhere}


.cgbx-signal-card .target{overflow-wrap:anywhere}
.cgbx-tracking-table{max-width:100%;min-width:0}.cgbx-tracking-table .table-wrap{max-width:100%;overflow-x:auto}
.cgbx-tracking-table td{overflow-wrap:anywhere;white-space:normal}.cgbx-tracking-table small{display:block}
.cgbx-labs{min-width:0;overflow-wrap:anywhere}
@media(max-width:1199px){.cgbx-signal-grid{grid-template-columns:minmax(0,1fr)}}

/* One shared signal layout across Free, premium, VIP and CGBX rooms. */
#app .signal-grid{grid-template-columns:minmax(0,1fr)}
#app .canonical-signal-card{min-width:0;padding:12px 16px;border:1px solid #24527b;border-radius:14px;background:linear-gradient(145deg,#0b1829,#050c17 70%);box-shadow:inset 0 1px #9ac8ed18,0 14px 30px #0008}
#app .canonical-signal-card .signal-card-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(265px,3fr);gap:16px;align-items:stretch}
#app .canonical-signal-card .signal-card-content{min-width:0}
#app .canonical-signal-card .signal-card-side{display:flex;min-width:0;flex-direction:column;gap:8px;border-left:1px solid #24496a;padding-left:16px}
#app .canonical-signal-card .signal-symbol{flex-wrap:wrap}
#app .canonical-signal-card .signal-symbol h2{font-size:28px;line-height:1.12;overflow-wrap:anywhere}
#app .canonical-signal-card :is(.direction,.status){font-size:14px;padding:5px 10px}
#app .canonical-signal-card .signal-channel,#app .canonical-signal-card .age{font-size:14px;line-height:1.4}
#app .canonical-signal-card .section-title,#app .canonical-signal-card .kpi span{font-size:14px;line-height:1.3}
#app .canonical-signal-card .signal-confidence{display:grid;gap:2px;border:1px solid #2d668f;border-radius:11px;background:linear-gradient(160deg,#102b43,#071524);padding:9px 12px}
#app .canonical-signal-card .signal-confidence>span{color:#add7f7;font-size:16px;font-weight:800}
#app .canonical-signal-card .signal-confidence>strong{color:#f5fbff;font-size:54px;line-height:1.05;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#app .canonical-signal-card .signal-confidence>strong small{color:#83b9dc;font-size:24px}
#app .canonical-signal-card .signal-confidence>small{color:#9fbed4;font-size:14px;line-height:1.35}
#app .canonical-signal-card .signal-kpis{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0}
#app .canonical-signal-card .kpi{padding:7px 9px;border-color:#24496a;background:#091a2a}
#app .canonical-signal-card .kpi strong{font-size:18px;line-height:1.3}
#app .canonical-signal-card .card-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:auto}
#app .canonical-signal-card .card-actions .btn{min-height:48px;width:100%;font-size:18px;line-height:1.2;text-transform:none;letter-spacing:.02em;border-radius:9px}
#app .canonical-signal-card .card-actions .analysis-button{background:#076ad0;color:#fff;border-color:#48a8f5}
#app .canonical-signal-card .card-actions .ghost{background:#0b263d;color:#e2f3ff;border-color:#367eb5}
#app .canonical-signal-card .card-actions .btn:disabled{opacity:.48}
#app .canonical-signal-card .signal-chart{position:relative;min-width:0;margin-top:8px;border:1px solid #234965;border-radius:9px;background:#061320;padding:6px 10px}
#app .canonical-signal-card .signal-chart-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}
#app .canonical-signal-card .signal-chart-header small{color:#8aacc3;font-size:14px}
#app .canonical-signal-card .signal-chart-plot{display:grid;min-height:76px;place-items:center;color:#9bbbd1;font-size:16px;text-align:center;overflow:hidden}
#app .canonical-signal-card .signal-chart-plot[hidden]{display:none}
#app .canonical-signal-card .signal-chart-plot svg{display:block;width:100%;height:76px}
#app .canonical-signal-card .signal-chart-load{display:block;margin:0;border:1px solid #367eb5;border-radius:6px;background:#0b2f4d;color:#e2f4ff;padding:5px 12px;font-size:14px;font-weight:800}
#app .canonical-signal-card .signal-chart-load[hidden]{display:none}
#app .canonical-signal-card .context{margin-top:7px;border-left:0;border:1px solid #254867;border-radius:9px;background:#0a1b2b;padding:6px 10px}
#app .canonical-signal-card .market-score-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:3px}
#app .canonical-signal-card .market-score{display:grid;align-content:start;gap:3px;min-width:0;margin:0;border-left:1px solid #2b5272;padding:0 8px;font-size:14px}
#app .canonical-signal-card .market-score span{color:#9fbfd3}
#app .canonical-signal-card .market-score strong{font-size:18px}
#app .canonical-signal-card .levels{gap:8px;margin-top:7px}
#app .canonical-signal-card .level-box{border-color:#254867;background:#091826;padding:7px 10px}
#app .canonical-signal-card .level-line{font-size:16px;line-height:1.25;margin-top:3px}
#app .canonical-signal-card .level-line strong{font-size:18px;text-align:right}
#app .canonical-signal-card .targets{gap:6px}
#app .canonical-signal-card .target{font-size:16px;line-height:1.25;padding:5px 7px}
#app .canonical-signal-card .signal-why{border-color:#254867;background:#091826;padding:7px 10px;margin-top:7px}
#app .canonical-signal-card .signal-why summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;list-style:none}
#app .canonical-signal-card .signal-why summary::-webkit-details-marker{display:none}
#app .canonical-signal-card .signal-why summary:after{content:"+";color:#b8d9ef;font-size:18px;line-height:1}
#app .canonical-signal-card .signal-why[open] summary:after{content:"−"}
#app .canonical-signal-card .signal-why summary small{margin-left:auto;color:#9bbbd1;font-size:14px;text-transform:none}
#app .canonical-signal-card .signal-why .facts{gap:4px}
#app .canonical-signal-card .fact,#app .canonical-signal-card .signal-why .muted{font-size:16px;line-height:1.35}
#app .canonical-signal-card .signal-classification :is(strong,span,small){font-size:14px}
#app .canonical-signal-card .cgbx-history{font-size:14px}
@media(max-width:900px){#app .canonical-signal-card .signal-card-layout{grid-template-columns:minmax(0,1fr)}#app .canonical-signal-card .signal-card-side{border-left:0;border-top:1px solid #24496a;padding:12px 0 0}#app .canonical-signal-card .card-actions{margin-top:0}}
@media(max-width:560px){#app .canonical-signal-card{padding:12px}#app .canonical-signal-card .signal-top{gap:8px}#app .canonical-signal-card .signal-card-layout{gap:12px}#app .canonical-signal-card .signal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#app .canonical-signal-card .market-score-list{grid-template-columns:1fr}#app .canonical-signal-card .market-score{display:flex;justify-content:space-between;gap:8px}#app .canonical-signal-card .levels{grid-template-columns:1fr}#app .canonical-signal-card .signal-confidence>strong{font-size:52px}#app .canonical-signal-card .card-actions{grid-template-columns:1fr}#app .canonical-signal-card .card-actions .analysis-button{grid-column:auto;grid-row:auto}}

/* Maquette 3: real data in a compact 70/30 card; chart remains opt-in. */
#app .canonical-signal-card{border:1px solid #2a4568;border-radius:17px;background:linear-gradient(145deg,#111f38 0%,#081527 60%,#050c18 100%);box-shadow:0 14px 32px #0008,inset 0 1px #bddbff1c;padding:15px}
#app .canonical-signal-card .signal-card-layout{grid-template-columns:minmax(0,7fr) minmax(280px,3fr);gap:16px}
#app .canonical-signal-card .signal-top{display:flex;align-items:center;justify-content:flex-start;gap:13px;margin:0 0 9px}
#app .canonical-signal-card .signal-heading{min-width:0}
#app .canonical-signal-card .signal-monogram{display:grid;flex:none;place-items:center;width:54px;height:54px;border-radius:50%;background:linear-gradient(140deg,#ffac32,#f47914);color:#fff;font-size:18px;font-weight:900;letter-spacing:-.04em;box-shadow:0 5px 16px #ff890440}
#app .canonical-signal-card .signal-symbol{gap:9px}
#app .canonical-signal-card .signal-symbol h2{font-size:28px}
#app .canonical-signal-card .signal-channel{color:#36b5ff;font-size:16px}
#app .canonical-signal-card .signal-timing{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:4px}
#app .canonical-signal-card .signal-timing .status{color:#09d5a4;border:1px solid #0e866d;background:#042d2d}
#app .canonical-signal-card .signal-timing .age{font-size:14px;color:#b0c4dd}
#app .canonical-signal-card .signal-card-side{gap:10px;border:1px solid #008ef3;border-radius:16px;background:linear-gradient(160deg,#081b33,#061322 70%);padding:16px 18px;box-shadow:inset 0 0 25px #008ef20d}
#app .canonical-signal-card .signal-confidence{display:block;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}
#app .canonical-signal-card .signal-confidence>span{color:#e5f2ff;font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
#app .canonical-signal-card .signal-confidence-main{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0}
#app .canonical-signal-card .signal-confidence-main>strong{min-width:0;color:#09cf9a;font-size:clamp(38px,3.75vw,54px);line-height:1;white-space:nowrap;overflow-wrap:normal;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
#app .canonical-signal-card .signal-confidence-main>strong small{font-size:21px;color:#44dab7}
#app .canonical-signal-card .signal-confidence-main>strong.missing{color:#b3c4d5;font-size:18px;line-height:1.2;white-space:normal}
#app .canonical-signal-card .signal-score-ring{display:block;flex:none;width:70px;height:70px;border-radius:50%;background:conic-gradient(#09c893 var(--score-progress),#17364b 0);position:relative}
#app .canonical-signal-card .signal-score-ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:#07182b}
#app .canonical-signal-card .signal-score-ring.unknown{background:#17364b}
#app .canonical-signal-card .signal-confidence>small{color:#9db5ca;font-size:14px}
#app .canonical-signal-card .card-actions{margin:7px 0 0;gap:8px}
#app .canonical-signal-card .card-actions .btn{position:relative;min-height:52px;text-align:left;padding:9px 34px 9px 18px;font-size:18px;font-weight:800;text-transform:none;border-radius:11px;box-shadow:inset 0 1px #ffffff38,0 6px 12px #0005}
#app .canonical-signal-card .card-actions .btn:after{content:"›";position:absolute;right:14px;top:50%;transform:translateY(-52%);font-size:30px;font-weight:400;line-height:1}
#app .canonical-signal-card .card-actions .analysis-button{background:linear-gradient(110deg,#1194f4,#0756df);border-color:#329dff;color:#fff}
#app .canonical-signal-card .card-actions [data-trade]{background:linear-gradient(110deg,#07996e,#046348);border-color:#09b981;color:#fff}
#app .canonical-signal-card .card-actions [data-auto]{background:linear-gradient(110deg,#7847e9,#4b1bbe);border-color:#9669ff;color:#fff}
#app .canonical-signal-card .card-actions .btn:disabled{filter:grayscale(.7);opacity:.48;cursor:not-allowed}
#app .canonical-signal-card .signal-quick-info{display:grid;gap:0;margin-top:8px;padding-top:11px;border-top:1px solid #25435f}
#app .canonical-signal-card .signal-quick-info>strong{font-size:16px;margin-bottom:6px}
#app .canonical-signal-card .signal-quick-row{display:flex;justify-content:space-between;gap:8px;min-width:0;border-bottom:1px solid #15324b;padding:4px 0;font-size:14px}
#app .canonical-signal-card .signal-quick-row:last-child{border-bottom:0}
#app .canonical-signal-card .signal-quick-row span{color:#9fb7d0}
#app .canonical-signal-card .signal-quick-row strong{text-align:right;overflow-wrap:anywhere}
#app .canonical-signal-card .signal-chart{margin-top:8px;border-color:#172e49;background:#051020;padding:7px 9px}
#app .canonical-signal-card .signal-chart-header{position:relative;z-index:1}
#app .canonical-signal-card .signal-chart-plot{min-height:180px;height:180px;color:#8faac4;background:repeating-linear-gradient(0deg,transparent 0 34px,#21344a6b 35px),repeating-linear-gradient(90deg,transparent 0 84px,#21344a6b 85px);font-size:16px}
#app .canonical-signal-card .signal-chart-plot svg{height:180px}
#app .canonical-signal-card .signal-chart-load{background:#10243e;border-color:#38658a;color:#e1f3ff;font-size:14px;min-height:32px}
#app .canonical-signal-card .signal-chart-timeframes{display:flex;gap:2px;border:1px solid #28435f;border-radius:7px;overflow:hidden}
#app .canonical-signal-card .signal-chart-timeframes button{min-width:32px;border:0;background:#0b1a2b;color:#b7c9dd;padding:6px 7px;font-size:13px}
#app .canonical-signal-card .signal-chart-timeframes button[aria-pressed="true"]{background:#253b59;color:#fff;box-shadow:inset 0 0 0 1px #5b7eac}
#app .canonical-signal-card .signal-chart-timeframes button:focus-visible{outline:2px solid #48a8f5;outline-offset:-2px}
#app .canonical-signal-card [data-chart-status][data-connection="stale"],#app .canonical-signal-card [data-chart-status][data-connection="error"]{color:#ffb75c}
#app .canonical-signal-card .signal-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
#app .canonical-signal-card .signal-kpis .kpi,#app .canonical-signal-card .signal-kpis .context{min-width:0;margin:0;border:1px solid #244666;border-radius:10px;background:linear-gradient(150deg,#0b1b2c,#071421);padding:9px}
#app .canonical-signal-card .signal-kpis .kpi span,#app .canonical-signal-card .signal-kpis .context>.section-title{font-size:14px;color:#aabed5}
#app .canonical-signal-card .signal-kpis .kpi strong{display:block;font-size:18px;color:#f8fafc;margin-top:4px;overflow-wrap:anywhere}
#app .canonical-signal-card .signal-kpis .kpi strong small{font-size:13px;color:#aabed5}
#app .canonical-signal-card .signal-kpis .context .market-score-list{display:grid;grid-template-columns:1fr;gap:1px;margin-top:4px}
#app .canonical-signal-card .signal-kpis .context .market-score{display:flex;justify-content:space-between;gap:3px;min-height:0;border:0;padding:0;font-size:14px;line-height:1.15}
#app .canonical-signal-card .signal-kpis .context .market-score span{font-size:14px}
#app .canonical-signal-card .signal-kpis .context .market-score strong{font-size:14px;white-space:nowrap}
#app .canonical-signal-card .levels{display:grid;grid-template-columns:minmax(155px,1.15fr) minmax(0,4fr);gap:8px;margin-top:8px}
#app .canonical-signal-card .level-box{border-radius:10px;border-color:#244666;background:#091827}
#app .canonical-signal-card .levels .level-box:nth-child(2){min-width:0;border:0;background:transparent;padding:0}
#app .canonical-signal-card .levels .level-box:nth-child(2)>.section-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#app .canonical-signal-card .targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px}
#app .canonical-signal-card .target{display:flex;min-width:0;min-height:75px;flex-direction:column;justify-content:center;gap:3px;text-align:center;font-size:14px;padding:6px 5px}
#app .canonical-signal-card .target .target-label{font-weight:800;text-align:left;color:inherit}
#app .canonical-signal-card .target strong{color:#f8fafc;font-size:18px;line-height:1.1;overflow-wrap:anywhere}
#app .canonical-signal-card.precision-price .levels{grid-template-columns:minmax(0,1fr)}
#app .canonical-signal-card.precision-price .targets{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
#app .canonical-signal-card .price-value{display:inline-block;max-width:100%;white-space:nowrap;overflow-wrap:normal;font-size:16px;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
#app .canonical-signal-card .target small{color:#49dfbc;font-size:11px;line-height:1.2}
#app .canonical-signal-card .target:not(.stop){border-color:#0d795d;background:linear-gradient(150deg,#092e2a,#06201f);color:#40e1b8}
#app .canonical-signal-card .target.stop{border-color:#9b3348;background:linear-gradient(150deg,#321322,#1c1020);color:#ff8da2}
#app .canonical-signal-card .target.stop small{color:#ff8da2}
#app .canonical-signal-card .signal-why{border-radius:10px;border-color:#265a7c;background:#071a2e;margin-top:8px}
#app .canonical-signal-card .signal-why .facts{display:block}
#app .canonical-signal-card .signal-why summary small{font-size:12px}
#app .canonical-signal-card .signal-why details summary:after{content:"+"}
@media(max-width:900px){#app .canonical-signal-card .signal-card-layout{grid-template-columns:minmax(0,1fr)}#app .canonical-signal-card .signal-card-side{border:1px solid #008ef3;padding:14px}}
@media(max-width:900px){#app .canonical-signal-card .levels{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){#app .canonical-signal-card .signal-monogram{width:46px;height:46px;font-size:15px}#app .canonical-signal-card .signal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#app .canonical-signal-card .signal-kpis .context .market-score-list{grid-template-columns:1fr}#app .canonical-signal-card .signal-chart-plot,#app .canonical-signal-card .signal-chart-plot svg{height:146px;min-height:146px}#app .canonical-signal-card .signal-confidence-main>strong{font-size:clamp(38px,13vw,52px)}#app .canonical-signal-card .targets{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#app .canonical-signal-card.precision-price .targets{grid-template-columns:repeat(2,minmax(0,1fr))}#app .canonical-signal-card.precision-price .target .price-value{font-size:13px}}

/* The active light theme keeps the chart and side panel dark; restore contrast there. */
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-card-side{color:#f8fafc}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-card-side :is(strong,.signal-quick-info>strong){color:#f8fafc}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-card-side .signal-confidence-main>strong{color:#09cf9a}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-quick-row span{color:#a8bdd3}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-kpis :is(.kpi,.context) strong{color:#f8fafc}
html[data-cgb-theme="light"] #app .canonical-signal-card .card-actions [data-trade]{background:linear-gradient(110deg,#07996e,#046348);border-color:#09b981;color:#fff}
html[data-cgb-theme="light"] #app .canonical-signal-card .card-actions [data-auto]{background:linear-gradient(110deg,#7847e9,#4b1bbe);border-color:#9669ff;color:#fff}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-classification :is(strong,span){color:#744d00}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-classification small{color:#916000}
html[data-cgb-theme="light"] #app .canonical-signal-card .signal-why details summary{color:#176a9d}

