/* Shared hierarchy for the existing engine widgets. */
.opportunity-leader-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px;margin:8px 0 12px}.opportunity-leader-grid>div{padding:8px;border:1px solid var(--line);border-radius:6px}.opportunity-leader-grid b,.opportunity-leader-grid span,.opportunity-cost{display:block}.opportunity-leader-grid span,.opportunity-cost{font-size:13px;color:var(--tx3);line-height:1.5;margin-top:4px}#opportunity-leaders>strong{font-size:14px}.opportunity-costs{min-width:195px}#candidate-rows td:last-child{max-width:600px}
#execution-summary .execution-decision>#execution-action{font-size:calc(20px * var(--s))}#execution-summary .metrics b{font-size:calc(20px * var(--s))}.workspace-table td{font-size:calc(13px * var(--s))}#auto-tabs button{font-size:calc(14px * var(--s))}
.radar-workspace #right>.holds,.radar-workspace #right>.box{display:none!important}
.workspace-table td{height:auto!important}.radar-workspace #left>table td{height:78px}.radar-workspace #right{position:sticky;top:16px}.auto-workspace #auto-toolbar{position:sticky;top:0;z-index:35;background:var(--bg);padding-top:10px}
.workspace-table tr{height:auto!important}.workspace-table td{text-align:left!important;vertical-align:top}.detail-column{display:flex;flex-direction:column;gap:14px;min-width:0}.detail-column>.box,.detail-column>.vcard{margin:0!important}.detail-grid>.ahead{grid-column:1/-1}.radar-workspace #left>table col:nth-child(2){width:170px!important}.radar-workspace #right .vrow{flex-wrap:wrap;height:auto;white-space:normal}.auto-workspace #workspace-intro{margin-top:14px;margin-bottom:8px}.auto-workspace .metrics{margin:14px 0}.auto-workspace #execution-summary{padding:14px 18px}
:root{--bg:#0a101b;--panel:#101a2a;--panel2:#162235;--line:#3b5277;--line2:#4d698e;--tx:#edf3fd;--tx2:#ced9e9;--tx3:#94a8c4}
[hidden]{display:none!important}body{background:var(--bg)}button,a,select{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #77b8ff;outline-offset:3px}
#bar{height:auto!important;position:relative;overflow:visible;border-bottom:1px solid var(--line);background:#101a2a}#bar .row{height:auto;min-height:48px;padding:8px 20px;overflow:visible;flex-wrap:wrap;gap:8px}#bar .r2{min-height:40px;border-top:1px solid var(--line);background:#0d1625}#bar .brand .nm{display:none}#bar .chip{width:auto!important;max-width:100%}#c-nbox,#c-learn,#c-w{display:none!important}#c-regime{margin-left:auto}#bar .sp{display:none}
#workspace-nav{display:flex;align-items:center;gap:5px;margin:0 12px}#workspace-nav a{font-size:14px;color:var(--tx3);padding:8px 12px;text-decoration:none;border-radius:6px;white-space:nowrap}#workspace-nav a[aria-current=page]{color:#b7d9ff;background:#213854}#workspace-nav a:hover{color:white;background:#253750}
#workspace-intro{display:flex;justify-content:space-between;align-items:center;margin:20px 20px 12px;gap:16px}#workspace-intro h2{font-size:23px;font-weight:650;margin:0 0 4px;letter-spacing:-.5px}#workspace-intro p{margin:0;color:var(--tx3);font-size:13px}.ui-release{font-size:12px;color:var(--tx3);white-space:nowrap}
#notice-center{margin:0 20px 10px;font-size:12px;color:var(--tx3);border:1px solid var(--line);border-radius:6px;background:var(--panel)}#notice-center summary{cursor:pointer;padding:8px 12px}.notice-body{padding:4px 12px 12px;display:grid;gap:8px}.notice-body #market-life{border:0!important;padding:0!important;font-size:12px;white-space:normal}.notice-body #ticker{width:100%;height:auto;overflow:visible}.notice-body .tk{position:static;animation:none!important;white-space:normal;transform:none!important}
#alerts{margin:0 20px 10px;padding:5px 0;border:0;background:none}#radio{margin:0 20px 14px;border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:8px 12px;height:auto;min-height:42px}#focus{gap:10px;padding:0;margin:0 20px 14px;background:none;border:0}#focus .fc{border-color:var(--line2);background:var(--panel)}
#execution-summary{margin:0 20px 16px;border:1px solid var(--line2);border-radius:10px;background:var(--panel);padding:16px 18px}.execution-head{display:flex;justify-content:space-between;gap:12px;color:var(--tx3);font-size:12px}.execution-decision{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.execution-decision>b{font-size:21px;font-weight:650;color:#f6cc78}#execution-reason{font-size:15px}#execution-fresh{color:#ffbd80;font-size:12px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:18px 0}.metrics>div{border-left:1px solid var(--line);padding-left:16px}.metrics>div:first-child{border:0;padding:0}.metrics span{display:block;color:var(--tx3);font-size:12px}.metrics b{display:block;font-size:21px;margin-top:5px;font-weight:600;overflow-wrap:anywhere}.metrics b[data-sign=negative]{color:#79b8ff}.execution-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.execution-controls button{padding:8px 12px;border:1px solid #526b8e;border-radius:6px;background:#21334e;color:var(--tx);font:inherit;cursor:pointer}.execution-controls button:disabled{opacity:.5;cursor:wait}.execution-controls a,.analysis-link{color:#8fc7ff;text-decoration:none;font-size:13px}#control-result{font-size:12px;color:var(--tx3)}#execution-note{font-size:12px;color:var(--tx3);margin:12px 0 0;line-height:1.6}
.radar-workspace #execution-summary{display:grid;grid-template-columns:auto 1fr auto;gap:10px 20px;padding:12px 16px;align-items:center}.radar-workspace .execution-head{display:block}.radar-workspace #execution-mode{display:block;margin-top:3px}.radar-workspace .execution-decision{margin:0}.radar-workspace .execution-decision>b{font-size:17px}.radar-workspace .metrics,.radar-workspace #entry-control,.radar-workspace #control-result,.radar-workspace #execution-note{display:none}
#wrap{margin:0 20px 20px;gap:16px;background:transparent;min-height:0;align-items:start;grid-template-columns:minmax(0,1fr) 360px}#left{min-width:0;background:transparent}#right{padding:0;position:static;max-height:none;overflow:visible;min-width:0;background:transparent}#right .ahead,#right .vcard,#right .box,#right .holds{background:var(--panel);border-color:var(--line2);border-radius:8px}#right .ahead{margin-bottom:10px}#right .vcard{padding:14px}.analysis-link{display:block;padding:12px 2px}.compact-check{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;color:var(--tx3);font-size:12px;line-height:1.6}.radar-workspace #right .vwhy,.radar-workspace #right .ah{display:none}.radar-workspace #right .cues{max-height:80px;overflow:hidden}
#market-overview{border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:12px;background:var(--panel)}#tools{flex-wrap:wrap;padding:10px;gap:8px}#search{min-width:120px;flex:1}#tabs{flex-wrap:wrap}#tools,#counts,#chgtop,#sectors{border:0;margin:0}#counts{background:#101a29;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#counts .cnt{border-color:var(--line);padding:8px 4px}#chgtop{padding:8px 10px}#sectors{padding:6px 10px;border-top:1px solid var(--line)}#left>table{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}#left>table th{background:#162235;position:static}#left>table td{border-color:var(--line)}
.radar-workspace #left>table :is(th,td,col):nth-child(6),.radar-workspace #left>table :is(th,td,col):nth-child(9),.radar-workspace #left>table :is(th,td,col):nth-child(10),.radar-workspace #left>table :is(th,td,col):nth-child(11),.radar-workspace #left>table :is(th,td,col):nth-child(12){display:none}.radar-workspace #left>table col:nth-child(3){width:auto!important}
.auto-workspace #focus,.auto-workspace #left,.auto-workspace #radio,.auto-workspace #alerts,.auto-workspace #resort{display:none!important}.auto-workspace #wrap{display:block}.auto-workspace #execution-link{display:none}#auto-toolbar,#auto-content{margin:0 20px 16px}#auto-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}#auto-tabs button{border:0;border-radius:6px;padding:10px 16px;background:transparent;color:var(--tx3);font:inherit;cursor:pointer}#auto-tabs button[aria-selected=true]{color:#c4e0ff;background:#213854}#analysis-picker{display:flex;align-items:center;gap:12px;float:right;margin-bottom:10px}#analysis-picker label{font-size:12px;color:var(--tx3)}#auto-asset-picker{padding:8px 12px;max-width:250px;border:1px solid var(--line2);border-radius:6px;background:var(--panel);color:var(--tx);font:inherit}
.workspace-panel{background:var(--panel);padding:18px;border:1px solid var(--line);border-radius:10px}.workspace-panel h3{margin:0;font-size:17px;font-weight:600}.workspace-panel p{font-size:13px;color:var(--tx3);margin:8px 0 16px;line-height:1.6}.section-title{display:flex;justify-content:space-between;gap:12px}.section-title span{font-size:13px;color:var(--tx3)}.table-scroll{overflow-x:auto}.workspace-table{width:100%;border-collapse:collapse;table-layout:auto}.workspace-table th{text-align:left;color:var(--tx3);font-size:12px;background:#162235;padding:10px 12px;position:static}.workspace-table td{padding:12px;font-size:13px;border-bottom:1px solid var(--line);white-space:normal;line-height:1.6}.workspace-table td:first-child{min-width:140px}.asset-button{font:inherit;text-align:left;color:var(--tx);border:0;background:none;cursor:pointer;padding:0}.asset-button small{display:block;color:var(--tx3);font-size:11px}.entry-state{font-size:12px;white-space:nowrap;border-radius:5px;background:#29344a;color:#c1cde0;padding:4px 8px}.entry-state.eligible{background:#174538;color:#91e5b6}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}.detail-grid>.box,.detail-grid>.vcard,.detail-grid>.holds{margin:0!important}.detail-grid .full-width{grid-column:1/-1}.detail-grid .autost{display:none}#panel-journal{grid-template-columns:1fr}#risk-values{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:14px 0}#risk-values>div{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}#risk-values dt{color:var(--tx3);font-size:13px}#risk-values dd{margin:0;text-align:right;font-size:14px}#strategy-info{overflow-wrap:anywhere}
@media(min-width:1700px){#wrap{grid-template-columns:minmax(0,1fr) 390px}}
@media(max-width:1200px){#c-regime{display:none!important}#workspace-nav{margin:0 4px}#wrap{grid-template-columns:minmax(0,1fr) 320px}#analysis-picker{float:none}.radar-workspace #left>table col:nth-child(2){width:90px!important}.radar-workspace #left>table col:nth-child(4){width:70px!important}.radar-workspace #left>table col:nth-child(7){width:85px!important}.metrics b{font-size:18px}}
@media(max-width:1000px){#wrap{grid-template-columns:1fr}.radar-workspace #right{grid-row:1}.radar-workspace #execution-summary{grid-template-columns:1fr auto}.radar-workspace .execution-decision{grid-row:2;grid-column:1/-1}.metrics{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:1fr}#focus{grid-template-columns:repeat(2,minmax(0,1fr))}#risk-values{grid-template-columns:1fr}}
/* 27차-10 휴대폰(실측): 위 1000px 규칙이 index.html 의 760px 규칙보다 뒤에 와서 휴대폰에서도 판단창이 두 장씩 놓였다.
   그 결과 카드 폭이 168px 이 되어 종목·가격 칸(minmax(0,1fr))이 0 으로 접히고 판단 배지만 보였다 → 휴대폰은 한 줄에 한 장. */
@media(max-width:760px){#focus{grid-template-columns:1fr}}
@media(max-width:650px){#bar .row{padding:8px 12px}#workspace-nav{margin:0;flex-wrap:nowrap}#workspace-nav a{padding:7px 8px;font-size:12.5px}#c-conn,#c-sys{font-size:11px}#workspace-intro,#notice-center,#radio,#alerts,#focus,#execution-summary,#wrap,#auto-toolbar,#auto-content{margin-left:12px;margin-right:12px}#workspace-intro h2{font-size:20px}.ui-release{display:none}.metrics{grid-template-columns:1fr 1fr}.metrics>div{padding-left:0;border:0}.radar-workspace #left{overflow-x:auto}.radar-workspace #left>table{min-width:730px}#auto-tabs{gap:4px}#auto-tabs button{padding:8px;font-size:13px}#execution-summary{padding:12px}.workspace-panel{padding:12px}#radio{flex-wrap:wrap}#radio .rt{flex-basis:100%;order:10}}
@media print{html,body{height:auto!important;overflow:visible!important}#bar,#right,thead,th{position:static!important}#bar .r2,#radio,#alerts,#entry-control,#control-result,#notice-center,#auto-toolbar{display:none!important}#wrap{display:block!important;margin:8px}#right{margin-top:16px}#workspace-intro,#execution-summary,#auto-content{margin:10px 0}.detail-grid{display:block}.detail-grid>*{margin-bottom:12px!important}.box,.vcard,.workspace-panel,.metrics{break-inside:avoid}.workspace-table tr{break-inside:avoid}#dis{white-space:normal}*{print-color-adjust:exact}}
/* UI 3: compact dealing surface, visible account metrics and persistent monitor. */
.audit-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 0;border-block:1px solid var(--line)}.audit-metrics span,.audit-metrics small{display:block;color:var(--tx3);font-size:12px}.audit-metrics b{display:block;margin:5px 0;font-size:18px}.audit-warning{color:#e7c17a!important}#trial-comparison{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
#bar .row{padding:6px 16px;min-height:42px}#bar .r2{min-height:34px}#workspace-nav a{padding:8px 12px}
#notice-center{margin:6px 16px;font-size:12px}#notice-center summary{padding:5px 10px}#alerts{margin:0 16px 6px}#radio{margin:0 16px 8px;min-height:36px;padding:5px 10px}#focus{margin:0 16px 10px;gap:8px}
#execution-summary,.auto-workspace #execution-summary{margin:0 16px 10px;padding:10px 12px;border-radius:7px;border-left:3px solid #e7b657;display:grid;grid-template-columns:1fr auto;gap:8px 16px}
.execution-head{grid-column:1;display:flex!important;justify-content:flex-start;flex-wrap:wrap;align-items:center;gap:6px 12px}.execution-head #execution-mode{margin:0;display:inline;color:#bdcde0}
.execution-decision,.radar-workspace .execution-decision{grid-column:1;grid-row:2;margin:0;gap:10px}#execution-summary .execution-decision>#execution-action{font-size:18px}#execution-reason{font-size:14px}#execution-fresh{font-size:12px;color:#9db4cd}
#execution-summary .metrics,.radar-workspace #execution-summary .metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-column:1/-1;grid-row:3;margin:2px 0 0;padding-top:8px;border-top:1px solid var(--line);gap:12px}#execution-summary .metrics b{font-size:18px;margin-top:3px;font-variant-numeric:tabular-nums}.metrics span{font-size:12px}.metrics>div{padding-left:12px}
.execution-controls{grid-column:2;grid-row:1/3;align-self:center;justify-content:flex-end}#execution-next{grid-column:1/-1;margin:0;color:#e7c17a;font-size:12px;line-height:1.6}#execution-note{grid-column:1/-1;margin:0}.auto-workspace #execution-note{font-size:12px}
#execution-summary[data-stale=true]{border-color:#f58b83}#execution-summary[data-stale=true] .metrics{opacity:.55}
#wrap{margin:0 16px 16px;gap:12px;grid-template-columns:minmax(0,1fr) 340px}.radar-workspace #right{position:sticky;top:10px;max-height:calc(100vh - 20px);overflow-y:auto;scrollbar-width:thin;align-self:start}.radar-workspace #right .vcard{padding:10px}.radar-workspace #right .ahead{margin-bottom:6px}.analysis-link{padding:8px 2px;font-size:13px}
#decision-monitor{border:1px solid var(--line2);background:var(--panel);border-radius:7px;padding:10px 12px}#decision-monitor h3{font-size:14px;margin:0 0 8px;color:#dceaff}#decision-monitor h4{font-size:13px;margin:0 0 6px;color:#a9c4e1;font-weight:500}#decision-monitor>div{padding:9px 0;border-top:1px solid var(--line)}#decision-monitor>div:last-child{padding-bottom:0}#decision-monitor dl{margin:0}#decision-monitor dl>div{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:13px}#decision-monitor dt{color:var(--tx3)}#decision-monitor dd{margin:0;font-variant-numeric:tabular-nums}#decision-monitor a{color:#9acbff;text-decoration:none;font-size:13px}#decision-monitor p{margin:3px 0;font-size:13px;line-height:1.5}#decision-monitor small{font-size:12px;color:#e7c17a}.monitor-candidate{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:5px 0}.monitor-candidate b{color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.monitor-candidate span{color:var(--tx3);font-size:12px;line-height:1.5}
#market-overview{margin-bottom:8px}#tools{padding:7px;gap:6px}#counts .cnt{padding:5px 3px}#chgtop{padding:6px 8px}.radar-workspace #left>table td{height:68px}.radar-workspace #left>table col:nth-child(2){width:135px!important}#auto-toolbar,#auto-content{margin:0 16px 10px}#auto-tabs{padding-bottom:6px}.workspace-panel{padding:14px}.workspace-panel p{margin:6px 0 10px}.workspace-table td{padding:9px 10px;font-size:14px!important}.workspace-table th{padding:8px 10px;font-size:13px}.asset-button small{font-size:12px}.detail-grid{gap:10px}.detail-column{gap:10px}#risk-values>div{padding:10px 0}
@media(min-width:1700px){#wrap{grid-template-columns:minmax(0,1fr) 360px}}
@media(max-width:1100px){#wrap{grid-template-columns:minmax(0,1fr) 300px}.metrics>div{padding-left:6px}#execution-summary .metrics b{font-size:16px}}
@media(max-width:900px){#wrap{grid-template-columns:1fr}.radar-workspace #right{position:static;max-height:none;overflow:visible;grid-row:auto}#decision-monitor{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}#decision-monitor h3{grid-column:1/-1}.execution-controls{grid-column:1/-1;grid-row:5;justify-content:flex-start}#execution-summary .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}}
@media(max-width:600px){#execution-summary{grid-template-columns:1fr}#execution-summary .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#decision-monitor{display:block}#workspace-nav{margin:0;flex-wrap:nowrap}#execution-fresh{width:100%}}
/* 20차: 보유 종목 카드 — 보유 수량·매수 평균가·매수 금액·평가 금액·평가 손익·순 청산 가능액(비용 반영)·최고·보유 시간·보호선·창 판단·섹터 */
#holding-card{grid-column:1/-1;margin:6px 0 0;padding:10px 12px;border:1px solid var(--line2);border-radius:7px;background:#0f1a2b}
.holding-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.holding-head b{font-size:16px;color:#f6cc78}.holding-head span{font-size:12px;color:var(--tx3)}
.holding-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 12px;margin-top:8px}
.holding-grid>div span{display:block;font-size:11px;color:var(--tx3)}.holding-grid>div b{display:block;font-size:15px;margin-top:2px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.holding-grid b.up{color:var(--up)}.holding-grid b.down{color:var(--down)}
#holding-note{margin:8px 0 0;font-size:11px;color:var(--tx3);line-height:1.5}
.radar-workspace #holding-card{padding:8px 10px}.radar-workspace .holding-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.radar-workspace .holding-grid>div[data-tip=holding_buy],.radar-workspace .holding-grid>div[data-tip=holding_guard],.radar-workspace .holding-grid>div[data-tip=holding_hold],.radar-workspace .holding-grid>div[data-tip=holding_sector],.radar-workspace #holding-note{display:none}
@media(max-width:1000px){.holding-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.holding-grid{grid-template-columns:1fr 1fr}}
/* ══ 23차: 전략 운용 대시보드 정리 — 계좌 모니터 2상자, 통합 카드, 체결 표 색·부호, 위험 묶음, 학습 루프 표 ══ */
#execution-summary,.auto-workspace #execution-summary{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto auto;gap:6px 16px;padding:10px 12px 12px;border-left:3px solid #e7b657}
.execution-head{grid-column:1;grid-row:1}#execution-fee{color:var(--tx3);font-size:12px}
.execution-decision{grid-column:1;grid-row:2}.execution-controls{grid-column:2;grid-row:1/3}
.acct-grid{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:10px;margin-top:4px}
.acct-box{border:1px solid var(--line2);border-radius:8px;padding:10px 12px;background:#0d1727;min-width:0}
.acct-box.acct-total{border-left:4px solid #e7b657;background:#101b2d}.acct-box.acct-hold{border-left:4px solid #3aa3ff;background:#0f1a2b}
.acct-head{display:flex;gap:8px 12px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}.acct-head>b:first-child{font-size:14px;color:#f6cc78;font-weight:650}.acct-hold .acct-head>b:first-child{color:#9fd0ff}
.acct-head span{font-size:12px;color:var(--tx3)}#holding-name{font-size:15px;color:#f6cc78}.holding-ret{margin-left:auto;font-size:13px;font-weight:600;color:var(--tx2)}.holding-ret.up{color:var(--up)}.holding-ret.down{color:var(--down)}
#execution-summary .metrics,.radar-workspace #execution-summary .metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-column:auto;grid-row:auto;gap:8px 12px;margin:0;padding:0;border:0}
#execution-summary .metrics>div{border-left:1px solid var(--line);padding-left:10px;min-width:0}#execution-summary .metrics>div:first-child{border-left:0;padding-left:0}
#execution-summary .metrics span{font-size:11px;color:var(--tx3);display:block}#execution-summary .metrics b{display:block;font-size:17px;margin-top:2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:var(--tx)}#execution-summary .metrics b.up{color:var(--up)}#execution-summary .metrics b.down{color:var(--down)}
#execution-summary .metrics small{display:block;font-size:11px;color:var(--tx3);margin-top:1px;line-height:1.4}
#holding-card{grid-column:auto;margin:0;padding:10px 12px;border-radius:8px}#holding-empty p{margin:2px 0 0;font-size:12px;color:var(--tx3);line-height:1.55}
.holding-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;margin-top:6px}.holding-grid>div span{font-size:11px}.holding-grid>div b{font-size:14px}
#execution-next{grid-column:1/-1;grid-row:4}#execution-note{grid-column:1/-1;grid-row:5}
.radar-workspace #execution-summary{grid-template-columns:1fr auto}.radar-workspace .acct-grid{grid-template-columns:1fr}.radar-workspace .acct-box.acct-hold .holding-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.radar-workspace #holding-empty{display:none}
@media(max-width:1100px){.acct-grid{grid-template-columns:1fr}}
@media(max-width:600px){#execution-summary .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.holding-grid{grid-template-columns:1fr 1fr}}
/* 통합 카드: 종목 판단 · 호가·체결 */
.unified-card{border:1px solid var(--line2);border-radius:10px;background:var(--panel);overflow:hidden;grid-column:1/-1}
.uc-head{display:flex;align-items:baseline;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line2);background:#132033}.uc-head h3{margin:0;font-size:15px;font-weight:650;color:#dceaff}.uc-sub{font-size:12px;color:var(--tx3)}
.uc-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0}.uc-col{min-width:0;display:flex;flex-direction:column}.uc-col+.uc-col{border-left:1px solid var(--line)}
.auto-workspace .uc-col>.uc-sect{margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;border-top:1px solid var(--line)!important;padding:0!important}
.auto-workspace .uc-col>.uc-sect:first-child{border-top:0!important}
.auto-workspace .uc-sect>.hd{background:transparent;border-bottom:0;padding:8px 14px 2px;font-size:12px;color:#a9c4e1;letter-spacing:.2px;text-transform:none}
.auto-workspace .uc-sect>.bd{padding:4px 14px 10px}
.auto-workspace .uc-sect.vcard{padding:12px 14px!important}.auto-workspace .uc-sect[data-sect=wstrip] .bd{padding-top:0}
.auto-workspace #panel-analysis .ahead{margin-bottom:8px}
@media(max-width:1000px){.uc-body{grid-template-columns:1fr}.uc-col+.uc-col{border-left:0;border-top:1px solid var(--line2)}}
/* 자동매매 성과 표 */
.fills-table td{vertical-align:middle}.fills-table td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.fills-table td small{display:block;font-size:11px;color:var(--tx3);line-height:1.4}
.side-badge{display:inline-block;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600}.side-badge.buy{background:#3a1c22;color:#ff8a93;border:1px solid #7a2c36}.side-badge.sell{background:#132a44;color:#7dbcff;border:1px solid #2b5687}
td.price-buy{color:#ff8a93}td.price-sell{color:#7dbcff}
.fills-table .pnl{display:block;font-size:15px;font-weight:650}.fills-table .pnl.up,.fills-table small.up{color:var(--up)}.fills-table .pnl.down,.fills-table small.down{color:var(--down)}.fills-table .muted{color:var(--tx3);font-size:12px}
.fills-table tr.fill-sell td{background:#0d1626}
#fills-scope{font-size:12px;color:var(--tx3)}
.audit-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.audit-metrics b.up{color:var(--up)}.audit-metrics b.down{color:var(--down)}
@media(max-width:900px){.audit-metrics{grid-template-columns:1fr 1fr}}
/* 진입 후보 */
.gate-strip{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:12px;color:var(--tx3);padding:8px 10px;border:1px solid var(--line);border-radius:7px;margin:0 0 10px;background:#0d1727}
.gate-strip .gate{font-weight:600;padding:2px 8px;border-radius:5px}.gate-strip .gate.open{background:#174538;color:#91e5b6}.gate-strip .gate.closed{background:#3a1c22;color:#ff8a93}.gate-strip .why{color:#e7c17a}
#candidate-rows tr.eligible td:first-child{box-shadow:inset 3px 0 0 #00e884}#candidate-rows td small{display:block;font-size:11px;color:var(--tx3)}#candidate-rows td.num{font-variant-numeric:tabular-nums;white-space:nowrap}#candidate-rows td.num.up{color:var(--up)}#candidate-rows td.num.down{color:var(--down)}
.act-BUY2{color:var(--up);font-weight:600}.act-BUY{color:#ff9aa2}.act-SELL2{color:var(--down);font-weight:600}.act-SELL{color:#8fc7ff}.act-HOLD{color:var(--tx2)}
/* 위험·운용 설정 */
#risk-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.risk-group{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#0d1727}.risk-group h4{margin:0 0 6px;font-size:13px;color:#a9c4e1;font-weight:600}
.risk-group dl{margin:0}.risk-group dl>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line)}.risk-group dl>div:first-child{border-top:0}.risk-group dt{color:var(--tx3);font-size:13px;flex:0 0 auto}.risk-group dd{margin:0;text-align:right;font-size:13px;color:var(--tx)}
@media(max-width:900px){#risk-groups{grid-template-columns:1fr}}
/* 학습 루프 */
#learning-summary{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}#learning-summary h3{font-size:16px}#learning-summary .section-title span{font-size:12px;color:var(--tx3)}
.learn-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.learn-tiles>div{border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:#0d1727}.learn-tiles span{display:block;font-size:11px;color:var(--tx3)}.learn-tiles b{display:block;font-size:16px;margin-top:2px;font-variant-numeric:tabular-nums}.learn-tiles b.up{color:var(--up)}.learn-tiles b.down{color:var(--down)}
.learn-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px}.workspace-table.compact td,.workspace-table.compact th{padding:6px 8px;font-size:13px!important}.workspace-table.compact td.num{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.workspace-table td.num.up{color:var(--up)}.workspace-table td.num.down{color:var(--down)}
.chip-block{background:#3a1c22;color:#ff8a93;padding:2px 7px;border-radius:5px;font-size:11px}.chip-bonus{background:#174538;color:#91e5b6;padding:2px 7px;border-radius:5px;font-size:11px}
.learn-foot{margin-top:10px;font-size:13px;color:var(--tx2);display:grid;gap:4px}.learn-foot b{color:#a9c4e1;font-weight:600;margin-right:6px}.learn-foot ul{margin:4px 0 0 18px;padding:0;color:#e7c17a}.learn-foot small{color:var(--tx3);font-size:11px}
@media(max-width:1000px){.learn-tiles{grid-template-columns:1fr 1fr}.learn-grid{grid-template-columns:1fr}}
/* 23차: 스캐너 본표(index.html 의 table{min-width:1216px}) 규칙이 전략 운용의 작은 표에도 걸려 학습 루프·비교 표가 잘렸다 → 작업 표는 컨테이너 폭에 맞춘다 */
.workspace-table,.workspace-table.compact{min-width:0!important;table-layout:auto!important}
.workspace-table.compact td:first-child{min-width:0}
/* 23차: 통합 카드 안의 판단 상자는 고정 높이(근거 100px·특이사항 30px) 대신 내용만큼 — 빈 공간 제거 (틀 고정은 스캐너 오른쪽 열에만 필요) */
.auto-workspace .uc-sect.vcard .vwhy{height:auto;min-height:0;max-height:calc(120px * var(--s))}.auto-workspace .uc-sect.vcard .cues{height:auto;min-height:0;flex-wrap:wrap;white-space:normal}
/* 23차: 스캐너(radar) 화면에서는 계좌 모니터를 한 줄 요약으로 — 표가 먼저 보이게 */
.radar-workspace .acct-grid{grid-template-columns:1fr 1fr;gap:8px}.radar-workspace .acct-box{padding:8px 10px}
.radar-workspace #account-card .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.radar-workspace #account-card .metrics>div[data-tip=acct_closed],.radar-workspace #account-card .metrics>div[data-tip=acct_trades],.radar-workspace #account-card .metrics>div[data-tip=acct_cash],.radar-workspace #account-card .metrics small,.radar-workspace #acct-sub{display:none}
.radar-workspace .holding-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.radar-workspace .holding-grid>div:not([data-tip=holding_pnl]):not([data-tip=holding_net]):not([data-tip=holding_guard]),.radar-workspace #holding-note{display:none}
.radar-workspace #execution-summary .metrics b{font-size:15px}.radar-workspace .holding-grid>div b{font-size:13px}
@media(max-width:1000px){.radar-workspace .acct-grid{grid-template-columns:1fr}}

/* 23차-2: 실험 정책 표시 */
.exp-chip{display:inline-block;border:1px solid #6b5a2a;border-radius:6px;padding:2px 8px;color:#f6cc78;font-size:12px;background:#2a2414;overflow-wrap:anywhere}
/* 27차-14(대표님 지시 "시장 스캐너·전략 운용에서 실험 설정 줄을 대시보드에서 보이지 않게, 기능은 유지"):
   화면에서만 감춘다. 요소·계산·기록은 그대로다 — 값은 계속 채워지고(execution-experiment 의 글자·툴팁),
   실험 설정과 성적은 data/experiments.json 과 reports/experiment_matrix_<날짜>.md 에 남는다. */
#execution-experiment{display:none}
@media(max-width:700px){#workspace-nav{flex-wrap:wrap;row-gap:4px}}

/* 24차: 분할 보유 목록 · 지정가 대기 · 선행 신호 칩 · 실험 비교표 */
.holding-list{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.holding-list table{width:100%}.holding-list td small{display:block;color:var(--tx3);font-size:11px}
.pending-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pending-strip .pend{display:inline-block;border:1px dashed #6b7f9e;border-radius:6px;padding:3px 8px;font-size:12px;color:#c9d6e6;background:#1b2434}.pending-strip .pend.buy{border-color:#8a4a4a;color:#ffb3b3}.pending-strip .pend.sell{border-color:#3e5f8a;color:#9fc7ff}
.ll-chip{display:inline-block;border:1px solid #2f5a4a;border-radius:6px;padding:2px 8px;color:#9fe0c0;font-size:12px;background:#12261e;overflow-wrap:anywhere}.ll-chip.bad{border-color:#6b3a3a;color:#ffb3b3;background:#2a1414}
#experiments{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}#experiments .section-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}#experiments-sub{color:var(--tx3);font-size:12px}#experiments-note{color:var(--tx3);font-size:12px;line-height:1.6;margin:8px 0 0}
#experiment-rows td small{display:block;color:var(--tx3);font-size:11px}#experiment-rows tr.exp-adoptable td:first-child{color:#ffb3b3;font-weight:600}#experiment-rows tr.exp-retire td:first-child{color:#79b8ff}#experiment-rows tr.exp-collecting td:first-child,#experiment-rows tr.exp-undecided td:first-child{color:var(--tx3)}
.fills-table td small.ord{display:inline-block;margin-left:6px;border:1px solid #526b8e;border-radius:4px;padding:0 4px;font-size:10px;color:#9fc7ff}

/* 25차: 계좌 선택(기준·그림자 실험 계좌) */
.acct-pick{background:#0f1a24;color:#d8e6f0;border:1px solid #2b4257;border-radius:6px;padding:2px 6px;font-size:12px;max-width:100%}
.acct-pick:focus{outline:2px solid #4a90e2;outline-offset:1px}

/* ══ 27차-13(대표님 지시): 머리줄 첫 줄은 '상표 + 시장 스캐너/시장 브리핑' 만 — 시장 브리핑 화면과 같은 모양.
      거래소 선택은 아래로 내려 '수신중 · 설명 켬' 과 한 줄에 놓는다.
      .rowbreak 는 메뉴 바로 뒤에 놓는 폭 100% 의 빈 칸으로, 휴대폰에서만 줄을 강제로 끊는다. ══ */
.rowbreak{display:none}
@media(max-width:760px){
  .rowbreak{display:block;flex:0 0 100%;width:100%;height:0;margin:0;padding:0;border:0}
}
@media(max-width:480px){
  /* 좁은 화면에서 상표 + 메뉴가 한 줄에 들어가게 — 갤럭시 폴드 커버(344px)에서 실측 */
  #bar .r1{gap:5px}
  #home-link{gap:6px}
  #home-link .radar{width:22px;height:22px}
  #workspace-nav{gap:3px}
  #workspace-nav a{padding:7px 8px;font-size:12.5px}
}
@media(max-width:380px){
  #home-link .radar{display:none}          /* 320px: 시장 브리핑 화면과 똑같이 글자 상표만 */
  #workspace-nav a{padding:7px 6px;font-size:12px}
}

/* ══ 27차-27 공통 머리 띠 — 정적 화면(거래소 시세차·에너지 맵)과 **같은 값**이다.
   PC 50px 한 줄 · 휴대폰 71px 두 줄(상표 40 + 메뉴 31). 값이 어긋나면 화면을 옮길 때 머리줄이 흔들린다. ══ */
.sa-strip{display:flex;align-items:center;gap:6px;height:50px;padding:0 14px;box-sizing:border-box;
  white-space:nowrap;overflow:hidden;border-bottom:1px solid var(--line)}
.sa-strip .brand,.sa-strip #home-link{display:flex;align-items:center;gap:9px;flex:0 0 auto;text-decoration:none;color:var(--tx)}
.sa-strip .radar{width:30px;height:30px;display:block;flex:0 0 auto}
.sa-strip .wm{font-weight:700;font-size:19px;letter-spacing:.4px;line-height:1;margin:0;padding:0}
.sa-strip nav{display:flex;align-items:center;gap:5px;margin:0 0 0 12px;flex:0 1 auto;min-width:0;padding:0;background:none;border:0}
.sa-strip nav a{font-size:14px;color:var(--tx3);padding:8px 12px;text-decoration:none;border-radius:6px;white-space:nowrap}
.sa-strip nav a:hover{color:#fff;background:#253750;text-decoration:none}
.sa-strip nav a[aria-current=page]{color:#b7d9ff;background:#213854}
.sa-strip .sp{flex:1 1 0;min-width:0}
@media(max-width:700px){
  .sa-strip{height:71px;padding:0 10px;flex-wrap:wrap;align-content:flex-start}
  .sa-strip .brand,.sa-strip #home-link{height:40px}
  .sa-strip .radar{width:26px;height:26px} .sa-strip .wm{font-size:17px}
  .sa-strip nav{order:3;flex:0 0 100%;width:100%;height:31px;margin:0;gap:2px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .sa-strip nav a{padding:6px 8px;font-size:12.5px}
}
@media(max-width:380px){ .sa-strip nav a{padding:6px 6px;font-size:12px} }

/* 띠가 첫 줄을 가져갔으니 나머지 줄은 조작 줄이다 */
#bar .r1{height:auto;min-height:41px}
@media(max-width:700px){#bar .r1{min-height:38px}}
.rowbreak{display:none!important}

/* 27차-27 못 박기 — 특이도를 옛 규칙보다 높여 띠의 치수가 반드시 이기게 한다 */
#bar .row.sa-strip,#hd.sa-strip{height:50px;min-height:50px;max-height:50px;padding:0 14px;gap:6px;
  align-items:center;flex-wrap:nowrap;overflow:hidden;border-bottom:1px solid var(--line)}
#bar .row.sa-strip nav a,#hd.sa-strip nav a{line-height:1.55;font-size:14px;padding:8px 12px}
@media(max-width:700px){
  #bar .row.sa-strip,#hd.sa-strip{height:71px;min-height:71px;max-height:71px;padding:0 10px;flex-wrap:wrap;align-content:flex-start}
  #bar .row.sa-strip nav a,#hd.sa-strip nav a{padding:6px 8px;font-size:12.5px}
  #hd.sa-strip .rb{padding:4px 7px;font-size:12px;min-height:28px}
  #hd.sa-strip .n{display:none}
}
@media(max-width:380px){
  #bar .row.sa-strip nav a,#hd.sa-strip nav a{padding:6px 6px;font-size:12px}
  #hd.sa-strip .rb{padding:4px 5px;font-size:11.5px}
}

/* 27차-27: 상표 글자 폭이 화면마다 111/115px 로 달라 메뉴 시작 x 가 4~6px 어긋났다(실측) → 폭을 못 박는다 */
@media(min-width:701px){
  #bar .row.sa-strip .wm,#hd.sa-strip .wm{min-width:115px;display:inline-block}
  #bar .row.sa-strip .brand,#bar .row.sa-strip #home-link,#hd.sa-strip #home-link{min-width:154px}
}

/* ══ 27차-28(대표님 지시) 공통 블록 — 네 화면(시장 스캐너·시장 브리핑·거래소 시세차·에너지 맵)에
   **같은 내용**으로 들어간다. 한 곳을 고치면 네 곳을 같이 고쳐야 한다(시험이 네 곳의 동일성을 확인한다). ══ */

/* ① 머리 띠 오른쪽 두 단추 — '설명 켬/끔' 과 언어. 에너지 맵의 모양이 기준이다. */
.sa-strip .hbtn{flex:0 0 auto;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  height:30px;padding:0 11px;border:1px solid var(--line2);border-radius:999px;background:var(--panel2);
  color:var(--tx3);font:inherit;font-size:12.5px;line-height:1;white-space:nowrap}
.sa-strip .hbtn:hover{background:var(--hover);color:var(--tx)}
.sa-strip .hbtn[aria-pressed="true"]{border-color:var(--ok);color:var(--ok)}
.sa-strip .hbtn.lang{min-width:62px;color:var(--tx2)}
@media(max-width:700px){
  .sa-strip .hbtn{height:28px;padding:0 8px;font-size:12px}
  .sa-strip .hbtn.lang{min-width:50px}
}

/* ② 조작 접기 — 핵심 조작만 남기고 나머지는 단추 하나 뒤로 접는다. 기본은 접힘.
   PC 에서는 .ctl-rest 가 display:contents 라 지금 줄 모양이 한 칸도 바뀌지 않는다(대표님 지시: PC 는 그대로).
   휴대폰에서만 접기 단추가 나오고, 접히면 나머지 조작이 사라진다.
   .fold-always 를 붙인 상자(에너지 맵)는 넓은 화면에서도 접는다. */
.ctl-more{display:none;align-items:center;justify-content:center;cursor:pointer;
  height:30px;padding:0 11px;border:1px solid var(--line2);border-radius:999px;background:var(--panel2);
  color:var(--tx2);font:inherit;font-size:12.5px;line-height:1;white-space:nowrap;flex:0 0 auto}
.ctl-more::after{content:"▾";margin-left:5px}
.ctl-more[aria-expanded="true"]::after{content:"▴"}
.ctl-more:hover{background:var(--hover);color:var(--tx)}
.ctl-more[aria-expanded="true"]{border-color:#5f8fc4;color:#cfe3ff}
.ctl-rest{display:contents}
.fold-always>.ctl-more{display:inline-flex}
.fold-always.ctl-folded>.ctl-rest{display:none}
@media(max-width:700px){
  .ctl-more{display:inline-flex;height:28px;padding:0 9px;font-size:12px}
  .ctl-rest{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;flex:1 1 100%;width:100%;min-width:0}
  .ctl-folded>.ctl-rest{display:none}
}

/* ③ 휴대폰에서 메뉴 넉 줄이 다 보이게 — 영어 문구가 한글보다 길어 '에너지 맵' 이 띠 밖으로 밀려 있었다(실측). */
@media(max-width:700px){
  .sa-strip nav{gap:1px}
  #bar .row.sa-strip nav a,#hd.sa-strip nav a,.sa-strip nav a{padding:6px 5px;font-size:12px;letter-spacing:-.1px}
}
@media(max-width:380px){
  #bar .row.sa-strip nav a,#hd.sa-strip nav a,.sa-strip nav a{padding:6px 4px;font-size:11.5px}
}

/* ══ 27차-30(대표님 지시 "이 기호가 작아서 잘 안 보인다") 방향 기호 확대 — 네 화면 공통 블록 ══
   ▾ ▴ ▸ ▲ ▼ 를 11.5~13px 에서 24px 으로 키운다(글자 크기 2.1배 · 보이는 넓이 약 4배).
   줄 높이를 0 으로 눌러 두므로 **단추·제목의 높이는 한 픽셀도 늘지 않는다**(실측으로 확인). */
.sa-caret{font-size:24px;line-height:0;display:inline-block;vertical-align:-3px;
  font-style:normal;letter-spacing:0;transform:scaleY(.82);transform-origin:center}

/* 27차-28: 휴대폰에서도 상표 폭을 못 박는다 — 실측 상표 폭이 화면마다 135/139px 로 달랐다
   (브리핑은 레이더가 30px 로 남았고, 스캐너는 글자가 4px 좁았다). PC 는 27차-27 의 115/154px 못 박기가 그대로다. */
@media(max-width:700px){
  #bar .row.sa-strip .radar,#hd.sa-strip .radar,.sa-strip .radar{width:26px;height:26px;display:block;flex:0 0 auto}
  #bar .row.sa-strip .wm,#hd.sa-strip .wm,.sa-strip .wm{min-width:104px;display:inline-block;font-size:17px}
}

/* 27차-28: 스캐너만 어긋나던 두 가지 — 실측으로 잡았다.
   ① `#bar .sp{display:none}`(9차) 가 띠의 빈 칸까지 지워, '설명 켬·언어' 가 오른쪽 끝이 아니라 메뉴 바로 뒤(x=611)에 붙어 있었다.
      다른 세 화면은 x=1114 였다.
   ② 27차-13 의 상표 줄이기(레이더 22px·320px 에서 숨김)가 띠의 26px 을 이겨, 휴대폰 상표 폭이 131/100px 로
      다른 화면의 139px 과 달랐다. 띠가 생긴 뒤로는 필요 없는 장치다. */
#bar .row.sa-strip .sp{display:block;flex:1 1 0;min-width:0}
@media(max-width:480px){
  #bar .row.sa-strip #home-link{gap:9px}
  #bar .row.sa-strip #home-link .radar{width:26px;height:26px;display:block}
  #bar .row.sa-strip #workspace-nav{gap:1px}
}
@media(max-width:380px){
  #bar .row.sa-strip #home-link .radar{display:block}
}

/* 27차-28: 접힌 상자에서는 남은 묶음이 제 폭만 쓰게 해 '설정' 이 같은 줄에 앉는다(휴대폰 한 줄 실측). */
@media(max-width:700px){ .ctlbar.ctl-folded .grp{flex:1 1 auto} }

/* ══ 27차-31(대표님 지시) 휴대폰 메뉴 글자 능동 확대 — 네 화면 공통 블록 ══
   메뉴 줄(31px)에 빈 자리가 남는데 글자가 12px 이라 읽기 어려웠다. 화면 폭에 따라 글자와 여백이 함께 커지게
   clamp(최소, 화면비례, 최대) 로 둔다 — 기기마다 폭이 달라도 그 폭에 맞는 가장 큰 글자를 쓴다.
   한국어(가장 긴 '거래소 시세차')와 영어(가장 긴 'Market briefing') 둘 다 344~430px 에서 안 잘리는 값으로 실측해 정했다.
   메뉴 줄 자체도 31 → 34px 로 키워 글자가 눌리지 않게 한다. */
@media(max-width:700px){
  .sa-strip nav,#bar .row.sa-strip nav,#hd.sa-strip nav{height:34px;gap:clamp(0px,0.4vw,3px);justify-content:space-between}
  #bar .row.sa-strip nav a,#hd.sa-strip nav a,.sa-strip nav a{
    font-size:clamp(12px,3.35vw,16px);
    padding:5px clamp(3px,1.1vw,9px);
    letter-spacing:-.2px;flex:0 1 auto;min-width:0}
  /* 띠 높이도 그만큼 — 상표 40 + 메뉴 34 = 74px */
  #bar .row.sa-strip,#hd.sa-strip,.sa-strip{height:74px;min-height:74px;max-height:74px}
}
@media(max-width:380px){
  #bar .row.sa-strip nav a,#hd.sa-strip nav a,.sa-strip nav a{font-size:clamp(11.5px,3.3vw,14px);padding:5px 3px}
}
@media(max-width:700px){
  /* 27차-31: 한국어 문구가 영어보다 짧아 같은 규칙으로는 자리가 남는다(실측 344px 에서 62px 여유) —
     한국어일 때만 조금 더 키워 상자를 채운다. 언어는 <html lang> 이 알려 준다. */
  html[lang="ko"] #bar .row.sa-strip nav a,html[lang="ko"] #hd.sa-strip nav a,html[lang="ko"] .sa-strip nav a{
    font-size:clamp(13px,3.75vw,17.5px);padding:5px clamp(4px,1.4vw,10px)}
}

/* ══ 27차-29(대표님 지시): 국면 집계(급등·돌파·매집·횡보·분산·급락·판단불가·함정)는 눌러서 거르는
   보조 정보인데 휴대폰에서 세 줄(실측 168px)을 먹고 있었다. 숫자와 이름을 한 줄에 붙여 4칸×2줄로 줄인다.
   값·누르기·색·툴팁은 그대로다 — 보이는 정보는 하나도 줄지 않는다. PC 는 손대지 않는다. ══ */
@media(max-width:760px){
  #left #counts{flex-wrap:wrap;gap:1px}
  #left #counts div{flex:1 1 23%;min-width:0;height:auto;
    display:flex;align-items:baseline;justify-content:center;gap:calc(4px * var(--s));
    padding:calc(7px * var(--s)) calc(3px * var(--s))}
  #left #counts span{display:inline;font-size:calc(16px * var(--s));line-height:1.15}
  #left #counts em{font-size:calc(11.5px * var(--s));line-height:1.15}
}

/* ══ 27차-28(대표님 지시) 방송 띠 — index.html 과 radio.html 에 **같은 내용**으로 들어간다 ══
   PC 는 지금 줄 모양 그대로(.ctl-rest 가 display:contents).
   휴대폰에서는 '방송 켬/끔 · 거래소 · 설정' 한 줄 + 자막 한 줄로 줄이고, 코너·속도·기록·별창은 '설정' 안으로 접는다. */
@media(max-width:700px){
  #radio{flex-wrap:wrap;height:auto;min-height:44px;padding-top:6px;padding-bottom:6px;overflow:visible;row-gap:6px}
  #radio .rk{display:none}
  #radio .rt{flex:0 0 100%;width:100%;order:10;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-basis:100%}
  #radio .ctl-rest{order:9}
  #radio .rn{max-width:100%}
}

/* ══ 27차-30(대표님 지시): 휴대폰에서 종목·최종 판단이 오른쪽으로 잘리던 결함 ══
   원인(실측): index.html 은 ≤1100px 에서 `#left table{min-width:0}` 로 표를 화면 폭에 맞추는데,
   나중에 실리는 이 파일의 22차 규칙 `.radar-workspace #left>table{min-width:730px}` 가 그걸 덮어
   358px 화면에 730px 표가 그려졌다. 실측 — 최종 판단 칸이 152~680px, 등락이 680~746px 로 화면 밖.
   ≤760px 에서는 그 바닥값을 걷어내 표가 화면 안에 들어오게 한다(열 접기는 index.html 이 이미 한다). */
@media(max-width:760px){
  .radar-workspace #left{overflow-x:visible}
  .radar-workspace #left>table{min-width:0;table-layout:fixed;width:100%}
  /* 종목 칸 폭도 이 파일이 135px 로 못 박고 있었다(실측) — 좁은 화면에서는 판단 칸에 자리를 내준다.
     실측 390px: 종목 135 → 92 · 최종 판단 156 → 175 · 등락 66 → 74. */
  .radar-workspace #left>table col:nth-child(2){width:calc(92px * var(--s))!important}
  .radar-workspace #left>table col.c-chg{width:calc(74px * var(--s))!important}
  .radar-workspace #left>table td{height:auto}
}
