/* 경주마 대시보드 — 다크 톤 기본 + 밝은 톤 토글. 프레임워크 없음. */

:root{
  --bg:#0f1318; --bg2:#161c23; --bg3:#1d242d; --line:#2a323c;
  --fg:#dde3ea; --fg2:#96a3b3; --fg3:#6a7787;
  --hot:#ff5252; --warn:#f0a13a; --purple:#a97bff; --up:#ff5252; --dn:#4a9cf0;
  --ok:#3ecf8e; --sel:#243141; --accent:#4a9cf0;
  --chart-bg:#161c23; --chart-grid:#222a33;
}
body[data-theme="light"]{
  --bg:#f4f5f7; --bg2:#ffffff; --bg3:#eef1f5; --line:#dde1e7;
  --fg:#1d2530; --fg2:#5b6675; --fg3:#8b95a3;
  --hot:#d33131; --warn:#c47a12; --purple:#7a45d8; --up:#d33131; --dn:#2273a8;
  --ok:#1d9a63; --sel:#fff3e0; --accent:#2563eb;
  --chart-bg:#ffffff; --chart-grid:#eceff3;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:"Malgun Gothic","맑은 고딕",system-ui,sans-serif; font-size:13px;
}
b{font-weight:700}
.muted{color:var(--fg3)}
.hot{color:var(--hot)}
.unit,.tb-unit{color:var(--fg3); font-size:11px; margin-left:2px}

/* ---------- 상단 바 ---------- */
.topbar{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding:8px 16px; background:var(--bg2); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
}
.tb-clock{display:flex; flex-direction:column; line-height:1.1}
.tb-time{font-size:22px; font-weight:700; font-variant-numeric:tabular-nums}
.tb-date{font-size:11px; color:var(--fg3)}
.tb-item{display:flex; align-items:baseline; gap:6px; white-space:nowrap; min-width:0}
.tb-item>b{overflow:hidden; text-overflow:ellipsis}
.tb-label{font-size:11px; color:var(--fg3)}
.tb-sub{font-size:11px; color:var(--fg3)}
.tb-big{font-size:17px; color:var(--warn); font-variant-numeric:tabular-nums}
.tb-grow{flex:1 1 200px; min-width:140px}
.tb-right{display:flex; align-items:center; gap:8px; margin-left:auto}
.dot{font-size:13px}
.dot-on{color:var(--ok)} .dot-off{color:var(--fg3)}
.badge{font-size:11px; padding:2px 8px; border-radius:999px; background:var(--bg3); color:var(--fg2); border:1px solid var(--line)}
.badge-mock{background:#5a3a12; color:#ffd79a; border-color:#7a5520}
body[data-theme="light"] .badge-mock{background:#fff3d6; color:#8a5a00; border-color:#e5c98a}
.badge-bad{background:#5a1c1c; color:#ffb4b4; border-color:#7a2a2a}
body[data-theme="light"] .badge-bad{background:#ffe2e2; color:#a11; border-color:#f0b7b7}
.btn-ghost{background:transparent; color:var(--fg2); border:1px solid var(--line); border-radius:6px; padding:4px 10px; cursor:pointer; font-size:12px; font-family:inherit}
.btn-ghost:hover{color:var(--fg); border-color:var(--fg3)}

/* ---------- 탭 ---------- */
.tabs{display:flex; background:var(--bg3); border-bottom:1px solid var(--line)}
.tab{
  background:transparent; border:0; border-bottom:2px solid transparent;
  color:var(--fg2); padding:10px 22px; font-size:14px; cursor:pointer; font-family:inherit;
}
.tab:hover{color:var(--fg)}
.tab.on{color:var(--fg); font-weight:700; border-bottom-color:var(--accent); background:var(--bg)}

/* ---------- 페이지 ---------- */
.page{display:none}
.page.on{display:block}
.split{display:grid; grid-template-columns:620px 1fr; height:calc(100vh - var(--chrome, 83px)); min-height:480px}
.pane-left{border-right:1px solid var(--line); display:flex; flex-direction:column; min-width:0; background:var(--bg2)}
.pane-right{overflow:auto; padding:12px; min-width:0}
.tablewrap{overflow:auto; flex:1}
.reportwrap{padding:14px; max-width:1500px}

/* ---------- 툴바 / 입력 ---------- */
.toolbar{padding:8px 10px; border-bottom:1px solid var(--line); background:var(--bg3)}
.toolbar-col{display:flex; flex-direction:column; gap:7px}
.toolbar-wide{display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:8px; margin-bottom:12px}
.frow{display:flex; align-items:center; gap:6px}
.frow-wrap{flex-wrap:wrap; margin-bottom:8px}
.lbl{font-size:11px; color:var(--fg3); white-space:nowrap}
.inp{background:var(--bg2); color:var(--fg); border:1px solid var(--line); border-radius:6px; padding:5px 8px; font-size:12px; font-family:inherit; min-width:0; flex:1}
.inp-s{flex:0 0 120px} .inp-xs{flex:0 0 64px} .inp-sel{flex:0 0 auto}
.ck{font-size:12px; color:var(--fg2); white-space:nowrap; display:flex; align-items:center; gap:4px}
.btn{background:var(--bg3); color:var(--fg); border:1px solid var(--line); border-radius:6px; padding:5px 12px; font-size:12px; cursor:pointer; font-family:inherit}
.btn:hover{border-color:var(--accent)}
.btn:disabled{opacity:.4; cursor:default}
.sortrow{display:flex; gap:4px; flex-wrap:wrap; margin-top:7px}
.chip{background:var(--bg2); color:var(--fg2); border:1px solid var(--line); border-radius:999px; padding:3px 10px; font-size:11px; cursor:pointer; font-family:inherit}
.chip:hover{color:var(--fg)}
.chip.on{background:var(--accent); border-color:var(--accent); color:#fff}

/* ---------- 표 ---------- */
.tbl{border-collapse:collapse; width:100%; font-size:12px}
.tbl th{
  position:sticky; top:0; z-index:2; background:var(--bg3); color:var(--fg2);
  text-align:left; padding:6px 7px; font-weight:600; border-bottom:1px solid var(--line); font-size:11px;
}
.tbl td{padding:6px 7px; border-bottom:1px solid var(--line); white-space:nowrap}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover td{background:var(--bg3)}
.tbl tr.sel td{background:var(--sel)}
.tbl tr.pumprow td{background:rgba(255,82,82,.10); border-left:0}
.tbl tr.pumprow td:first-child{box-shadow:inset 3px 0 0 var(--hot)}
.num{text-align:right; font-variant-numeric:tabular-nums}
#liveTable th:last-child,#liveTable td:last-child{padding-right:12px}
.tbl-plain td{white-space:normal}

/* ---------- 패널 ---------- */
.panel{background:var(--bg2); border:1px solid var(--line); border-radius:8px; padding:12px; margin-bottom:12px}
.panel h3{margin:0 0 9px; font-size:13px; color:var(--fg); font-weight:700}
.h3sub{font-size:11px; color:var(--fg3); font-weight:400; margin-left:8px}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.sumline{cursor:pointer; font-size:13px; font-weight:700; color:var(--fg)}
.md{white-space:pre-wrap; font-family:Consolas,monospace; font-size:12px; color:var(--fg2); margin:10px 0 0; line-height:1.6}

/* ---------- 차트 ---------- */
.chartbox{height:230px; width:100%; background:var(--chart-bg); border-radius:6px}
.chartbox-tall{height:300px}
.nodata{
  padding:22px 14px; text-align:center; color:var(--fg3); font-size:12px; line-height:1.8;
  background:var(--bg3); border:1px dashed var(--line); border-radius:6px;
}
.nodata b{color:var(--warn); display:block; margin-bottom:4px}

/* ---------- 지문 타임라인 ---------- */
.tl{display:flex; gap:1px; height:30px}
.tl span{flex:1 1 0; min-width:1px; background:var(--bg3); border-radius:2px; cursor:default}
.tl span.c{background:var(--hot)}
.tl span.w{background:var(--warn)}
.tl span.p{background:var(--purple)}
.tl-hint{margin-top:7px; font-size:11px; font-family:Consolas,monospace; min-height:16px}
.lg{display:inline-block; width:9px; height:9px; border-radius:2px; margin:0 3px 0 8px; vertical-align:-1px}
.lg-c{background:var(--hot)} .lg-w{background:var(--warn)} .lg-p{background:var(--purple)}

/* ---------- 호가창 ---------- */
.ob{font-size:11px; font-variant-numeric:tabular-nums}
.ob-row{display:grid; grid-template-columns:88px 1fr 74px; align-items:center; gap:6px; height:17px}
.ob-bar{height:11px; border-radius:2px}
.ob-ask .ob-bar{background:rgba(74,156,240,.55)}
.ob-bid .ob-bar{background:rgba(255,82,82,.55)}
.ob-ask .ob-p{color:var(--dn)} .ob-bid .ob-p{color:var(--up)}
.ob-s{text-align:right; color:var(--fg2)}
.ob-mid{border-top:1px solid var(--line); margin:4px 0; padding-top:4px; color:var(--fg3)}

/* ---------- 로그 ---------- */
.loglist{font-size:12px; line-height:1.8; max-height:230px; overflow:auto}
.logrow{display:flex; gap:8px; align-items:baseline; border-bottom:1px solid var(--line); padding:2px 0}
.logrow:last-child{border-bottom:0}
.logts{color:var(--fg3); font-family:Consolas,monospace; flex:0 0 62px}
.logmk{color:var(--accent); cursor:pointer; flex:0 0 92px; text-decoration:underline dotted}
.logkind{flex:0 0 92px; font-size:11px}
.k-signature_changed{color:var(--hot)} .k-wall{color:var(--warn)} .k-pingpong{color:var(--purple)}
.k-tv_spike{color:var(--ok)} .k-pump_0900{color:var(--hot); font-weight:700} .k-onchain_big{color:var(--accent)}

/* ---------- 눈금 만들기 ---------- */
#cmpCanvas{width:100%; height:220px; display:block; background:var(--chart-bg); border-radius:6px}
.frow-slider{margin-top:10px}
.slider{flex:1; accent-color:var(--accent)}
.thval{font-variant-numeric:tabular-nums; min-width:70px; text-align:right; color:var(--warn); font-size:15px}
.thgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px}
.thcard{background:var(--bg3); border:1px solid var(--line); border-radius:6px; padding:8px 10px}
.thcard .k{font-size:11px; color:var(--fg3); display:block; margin-bottom:3px}
.thcard .v{font-size:18px; font-variant-numeric:tabular-nums}

/* ---------- 페이지네이션 ---------- */
.pager{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 10px; border-top:1px solid var(--line); background:var(--bg3)}

/* ---------- 반응형 (1280px 기준, 좁으면 세로) ---------- */
@media (max-width:1279px){
  .split{grid-template-columns:1fr; height:auto}
  .pane-left{border-right:0; border-bottom:1px solid var(--line); max-height:52vh}
  .pane-right{overflow:visible}
  .row2{grid-template-columns:1fr}
  .thgrid{grid-template-columns:1fr 1fr}
  .topbar{gap:12px}
}

/* ---------- 내일 후보 탭 (P2) ---------- */
.rulebox{background:var(--bg3); border:1px solid var(--line); border-radius:6px; padding:9px 11px; margin-bottom:9px; line-height:1.6}
.rulebox .rk{color:var(--fg3); font-size:11px; margin-right:6px}
.rulebox .warnline{color:var(--warn); font-size:11.5px; display:block; margin-top:4px}
.scoreline{font-size:12px; color:var(--fg2); margin:0 0 9px; line-height:1.6}
.scoreline b{color:var(--fg)}
.pdnote{font-size:11.5px; margin-top:8px; line-height:1.55}
.src-rule{background:#243141; color:#9ec9ff; border:1px solid #35506e; border-radius:999px; padding:1px 7px; font-size:10.5px; white-space:nowrap}
body[data-theme="light"] .src-rule{background:#e3edfb; color:#1a4f8a; border-color:#b9d3f0}
.src-fill{background:var(--bg3); color:var(--fg3); border:1px solid var(--line); border-radius:999px; padding:1px 7px; font-size:10.5px; white-space:nowrap}
.hit-y{color:var(--ok); font-weight:700}
.hit-n{color:var(--fg3)}
.reasoncell{font-size:11px; color:var(--fg2); line-height:1.5}
.barwrap{display:flex; align-items:flex-end; gap:2px; height:110px; margin:12px 0 4px;
  background:var(--bg3); border:1px solid var(--line); border-radius:6px; padding:6px; overflow-x:auto}
.barwrap .bar{flex:0 0 8px; min-height:1px; background:var(--fg3); border-radius:2px 2px 0 0}
.barwrap .bar.on{background:var(--hot)}
.barwrap .bar.zero{background:var(--line)}
.panel-main{border-color:var(--accent)}
.panel-main h3 .big{font-size:16px; color:var(--accent)}
.barwrap .bar{cursor:default}

/* ---------- 자료 상태 탭 (P9) ---------- */
.cvlg{display:inline-block; width:9px; height:9px; border-radius:2px; margin:0 3px 0 10px; vertical-align:middle}
.cvlg.cv-filled{background:var(--ok)}
.cvlg.cv-progress{background:var(--warn)}
.cvlg.cv-fillable{background:var(--accent)}
.cvlg.cv-impossible{background:var(--hot)}
.cvline{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:6px}
.cvbadge{display:inline-block; font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px;
  border:1px solid var(--line); background:var(--bg3); color:var(--fg2); white-space:nowrap}
.cvbadge.cv-filled{background:rgba(62,207,142,.16); color:var(--ok); border-color:var(--ok)}
.cvbadge.cv-progress{background:rgba(240,161,58,.16); color:var(--warn); border-color:var(--warn)}
.cvbadge.cv-fillable{background:rgba(74,156,240,.16); color:var(--accent); border-color:var(--accent)}
.cvbadge.cv-impossible{background:rgba(255,82,82,.16); color:var(--hot); border-color:var(--hot)}
.cvsub{font-size:11px; color:var(--fg3); line-height:1.55; margin-top:4px; white-space:normal}
.cvname{font-weight:700}
.cvsrc{font-size:11px; color:var(--fg3); display:inline-block; max-width:260px; white-space:normal}
.cvbar{height:4px; background:var(--bg3); border:1px solid var(--line); border-radius:3px; margin-top:4px; overflow:hidden; min-width:90px}
.cvbar i{display:block; height:100%; background:var(--warn)}
.cvst{min-width:170px}
.cvgaps summary, .cvwhy summary, .cvacts summary{cursor:pointer; font-size:11px; color:var(--fg2); padding:2px 0}
.cvgaps summary:hover, .cvwhy summary:hover, .cvacts summary:hover{color:var(--fg)}
.cvnote{font-size:11px; line-height:1.6; white-space:normal; max-width:360px; padding:6px 8px; border-radius:5px; margin-top:3px}
.cvnote-bad{background:rgba(255,82,82,.10); border:1px solid var(--line); color:var(--fg2)}
.cvnote-cmd{background:var(--bg3); border:1px solid var(--line); color:var(--fg2); font-family:Consolas,"D2Coding",monospace; word-break:break-all}
.cvcmd{font-family:Consolas,"D2Coding",monospace; font-size:11px; color:var(--fg2); word-break:break-all}
.cvrow td{vertical-align:top}
.cvrow.cv-impossible td:first-child{box-shadow:inset 3px 0 0 var(--hot)}
.cvrow.cv-progress td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.cvrow.cv-filled td:first-child{box-shadow:inset 3px 0 0 var(--ok)}
.cvrow.cv-fillable td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
#page-coverage .tbl td, #page-coverage .tbl th{white-space:normal}

/* ---------- 일지 탭 (P10) ---------- */
.jrbar{gap:8px}
.jrsearch{flex:1 1 240px; min-width:180px}
.botlines{font-size:12px; line-height:1.9; color:var(--fg2); font-variant-numeric:tabular-nums}
.botlines b{color:var(--fg)}
.jrtop{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:12px; align-items:start}
@media (max-width:1100px){.jrtop{grid-template-columns:minmax(0,1fr)}}
.jrtop-side{position:sticky; top:8px}
.jrh3b{margin:16px 0 9px !important; font-size:13px; font-weight:700}
.jrlg{display:inline-block; width:9px; height:9px; border-radius:2px; margin:0 3px 0 10px; vertical-align:middle}
.jrlg.jr-hit{background:var(--ok)} .jrlg.jr-miss{background:var(--fg3)} .jrlg.jr-lost{background:var(--hot)}
.jrrow-hit td:first-child{box-shadow:inset 3px 0 0 var(--ok)}
.jrrow-miss td:first-child{box-shadow:inset 3px 0 0 var(--fg3)}
.jrrow-lost td:first-child{box-shadow:inset 3px 0 0 var(--hot)}
.jrrow-none td:first-child{box-shadow:inset 3px 0 0 var(--line)}
.jrtag{font-size:11px; padding:1px 7px; border-radius:999px; border:1px solid var(--line); background:var(--bg3); color:var(--fg2); white-space:nowrap}
.jrtag.jr-hit{color:var(--ok); border-color:var(--ok); background:rgba(62,207,142,.14)}
.jrtag.jr-miss{color:var(--fg3)}
.jrtag.jr-lost{color:var(--hot); border-color:var(--hot); background:rgba(255,82,82,.14)}
.jrwhy{background:var(--bg3); border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:10px 0}
.jrwhy h4{margin:0 0 7px; font-size:12px}
.jrnets{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px}
.jrnet{font-size:11px; padding:2px 8px; border-radius:5px; border:1px solid var(--line); background:var(--bg2); color:var(--fg2); white-space:nowrap}
.jrnet.on{color:var(--fg); border-color:var(--accent)}
.jrnet.off{color:var(--fg3)}
.jrtl{font-size:11px; line-height:1.75; color:var(--fg2); margin-top:6px}
.jrtl div{white-space:normal}
.jrtl .t{color:var(--fg3); font-variant-numeric:tabular-nums; margin-right:6px}
.jrtl .k{color:var(--fg); font-weight:700; margin-right:6px}
.jrcov{font-size:11px; color:var(--fg3); margin-top:6px; white-space:normal; line-height:1.6}
.jrlink{font-size:11px; color:var(--accent); word-break:break-all}
.jrnoteform{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px}
.jrnotetext{flex:1 1 340px; min-width:200px}
.jrnotes{font-size:12px; line-height:1.8}
.jrnote{border-bottom:1px solid var(--line); padding:6px 0; display:flex; gap:8px; align-items:baseline; white-space:normal}
.jrnote .ts{color:var(--fg3); font-size:11px; white-space:nowrap; font-variant-numeric:tabular-nums}
.jrnote .au{color:var(--accent); font-size:11px; white-space:nowrap}
#page-journal .tbl td, #page-journal .tbl th{white-space:normal}
#page-journal .tbl td.nowrap{white-space:nowrap}

/* ---------- U1: 열 머리 클릭 정렬 ---------- */
.tblbox{width:100%}
.tbl th.sortable{cursor:pointer; user-select:none}
.tbl th.sortable:hover{color:var(--fg); background:var(--sel)}
.tbl th.sorted{color:var(--fg)}
.tbl th .thlab{border-bottom:1px dotted var(--fg3)}
.tbl th .tharrow{margin-left:4px; font-size:10px; color:var(--accent)}
.sorthint{font-size:11px; margin-top:6px; line-height:1.5}
#liveTableBox .tbl th{font-size:10.5px; line-height:1.35; padding:6px 5px}
#liveTableBox .tbl td{padding:6px 5px}

/* ---------- U1: 접기 상자 ---------- */
.foldbox{margin-top:10px; border-top:1px solid var(--line); padding-top:8px}
.foldbox>summary, .foldpanel>summary{cursor:pointer; font-size:12px; color:var(--fg2); padding:2px 0}
.foldbox>summary:hover, .foldpanel>summary:hover{color:var(--fg)}
.foldpanel>summary{font-size:13px; font-weight:700; color:var(--fg)}
.foldinner{margin-top:10px}

/* ---------- U1: 첫 화면 "오늘" ---------- */
.todaybar{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:12px}
@media (max-width:1100px){.todaybar{grid-template-columns:1fr 1fr}}
.tcard{background:var(--bg2); border:1px solid var(--line); border-radius:8px; padding:10px 12px; min-width:0}
.tcard .k{display:block; font-size:11px; color:var(--fg3); margin-bottom:3px}
.tcard .v{display:block; font-size:18px; font-variant-numeric:tabular-nums; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.tcard .s{display:block; font-size:11px; color:var(--fg3); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.tcard-big{border-color:var(--warn)}
.tcard-big .v{color:var(--warn)}
.okv{color:var(--ok)} .badv{color:var(--hot)} .warnv{color:var(--warn)}
.bigline{font-size:13px; line-height:1.9}
.bigrow{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; padding:3px 0}
.bigrow .bl{flex:0 0 120px; color:var(--fg3); font-size:12px}
.bigrow .bv{font-size:15px; font-variant-numeric:tabular-nums}
.bigrow .bv.ok{color:var(--ok)}
.bigrow .bv.bad{color:var(--hot)}
.bigrow .bv.bad2{color:var(--fg2)}
#tdLive10 .tbl td, #tdLive10 .tbl th{white-space:nowrap}

/* 후보 표: 근거·보너스만 줄바꿈, 나머지는 한 줄 */
#pdA_cands .tbl td, #pdB_cands .tbl td, #pdA_cands .tbl th, #pdB_cands .tbl th{white-space:nowrap; vertical-align:top}
#pdA_cands .reasoncell, #pdB_cands .reasoncell{white-space:normal; display:block; max-width:640px}
/* 결과 추적 표: 숫자 칸은 오른쪽 정렬 · 근거 칸만 줄바꿈 */
#pdA_cands .tbl td:nth-child(n+6), #pdB_cands .tbl td:nth-child(n+6){text-align:right; font-variant-numeric:tabular-nums}
#pdA_more .tbl td:last-child, #pdB_more .tbl td:last-child{width:99%}
#pdA_track, #pdB_track{margin-bottom:8px}
.viewbar{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:12px;
  background:var(--bg2); border:1px solid var(--line); border-radius:8px; padding:8px 12px}
.viewbar .chip{font-size:12px; padding:4px 12px}
.viewbar .muted{font-size:11.5px}
.chartpanel{margin-top:10px}
/* 1틱 함정 — 회색(판정 불가)으로 눈에 띄되 "좋음/나쁨" 색을 쓰지 않는다 */
.tickbadge{display:inline-block; margin-left:5px; font-size:10px; padding:0 6px; border-radius:999px;
  color:var(--fg2); border:1px solid var(--fg3); background:var(--bg3); white-space:nowrap}
.tbl tr.tickrow td{opacity:.55}
.tbl tr.tickrow td:first-child{box-shadow:inset 3px 0 0 var(--fg3)}
.tickwarn{background:var(--bg3); border:1px solid var(--fg3); border-radius:6px; padding:7px 10px;
  margin-bottom:8px; font-size:12px; color:var(--fg)}
.spikebadge{display:inline-block; margin-left:5px; font-size:10px; padding:0 5px; border-radius:999px;
  color:var(--warn); border:1px solid var(--warn); background:rgba(240,161,58,.14); white-space:nowrap}
.gradetriple{font-size:10px; color:var(--fg2); line-height:1.35}
.gradedat{font-size:11px; margin:6px 0}
.statecell{display:inline-block}
.statewhen{display:block; line-height:1.35}
.cvwhy summary{white-space:nowrap}

/* ---------- U1: "지금 상태" 카드 ---------- */
.btn-mini{font-size:11px; padding:2px 8px; margin-left:8px; vertical-align:middle}
.nowcard{font-size:12.5px; line-height:1.7}
.nowrow{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; padding:6px 0; border-bottom:1px solid var(--line)}
.nowrow:last-of-type{border-bottom:0}
.nowchip{flex:0 0 46px; text-align:center; font-size:11px; font-weight:700; padding:1px 0; border-radius:999px;
  border:1px solid var(--line); background:var(--bg3); color:var(--fg3)}
.nowchip.now-on{color:var(--ok); border-color:var(--ok); background:rgba(62,207,142,.14)}
.nowchip.now-off{color:var(--fg3)}
.nowchip.now-unk{color:var(--warn); border-color:var(--warn); background:rgba(240,161,58,.14)}
.nowname{flex:0 0 150px}
.nowsmall{font-size:10.5px; line-height:1.4; margin-top:2px}
.nowval{font-variant-numeric:tabular-nums}
.nowbase,.nowpast{color:var(--fg3); font-size:11.5px}
.nowhelp{margin-left:auto}
.nowhelpbox{flex:1 1 100%; background:var(--bg3); border:1px solid var(--line); border-radius:6px;
  padding:7px 10px; margin:4px 0 2px; font-size:11.5px; line-height:1.65; color:var(--fg2)}
.nowfoot{margin-top:9px; padding-top:8px; border-top:1px solid var(--line); font-size:12.5px}
#onchainList .tbl td, #onchainList .tbl th{white-space:nowrap}
#onchainSum{margin-bottom:8px}
#page-coverage .cvsrc{max-width:180px}

/* 색은 3가지 뜻만: 초록=좋음/맞음, 빨강=놓침/못함, 노랑=진행/주의
   (채울 수 있음 = 아직 안 한 일 → 노랑으로 통일) */
.cvlg.cv-fillable{background:var(--warn)}
.cvbadge.cv-fillable{background:rgba(240,161,58,.16); color:var(--warn); border-color:var(--warn)}
.cvrow.cv-fillable td:first-child{box-shadow:inset 3px 0 0 var(--warn)}

/* ======================================================================
   FX4 (2026-09-23) 새 첫 화면 한 장 — 시안 docs/design/DASH_SIMPLE_MOCKUP_2026-09-23.html
   옛 화면(상단 바·탭·탭 7개)은 지우지 않고 body.home-mode 일 때만 숨긴다.
   색: 초록 = 이익/정상 · 빨강 = 손실/멈춤 · 노랑 = 주의 (시안 그대로)
   ====================================================================== */
body.home-mode .topbar, body.home-mode .tabs{display:none}
.tab-home{color:var(--accent); font-weight:700}

#page-home{
  --h-up:#3ecf8e; --h-dn:#ff6b6b; --h-warn:#f0a13a; --h-warnbg:rgba(240,161,58,.14);
  --h-okbg:rgba(62,207,142,.12); --h-dnbg:rgba(255,107,107,.12);
  --h-buy:#3ecf8e; --h-sell:#ff922b; --h-hi:#9aa4b1; --h-line2:var(--accent);
  font-size:15px; line-height:1.6; color:var(--fg);
}
body[data-theme="light"] #page-home{
  --h-up:#1b7f4b; --h-dn:#c0392b; --h-warn:#b7791f; --h-warnbg:#fdf3dc;
  --h-okbg:rgba(27,127,75,.10); --h-dnbg:rgba(192,57,43,.10);
  --h-buy:#1b7f4b; --h-sell:#d9480f; --h-hi:#888; --h-line2:#2563eb;
}
#page-home .hm{max-width:1040px; margin:0 auto; padding:12px 16px 40px}
#page-home .hm-head{display:flex; align-items:center; gap:10px; margin:2px 0 10px}
#page-home .hm-title{font-size:17px; white-space:nowrap}
#page-home .hm-head .hm-btn2{white-space:nowrap; flex:0 0 auto}
#page-home .hm-head .hm-mut{flex:1 1 auto; min-width:0}
#page-home .hm-card{background:var(--bg2); border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:14px; min-width:0}
#page-home h2{font-size:16px; margin:0 0 8px; font-weight:700; line-height:1.45}
#page-home .hm-h2s{font-size:12.5px; font-weight:400; color:var(--fg2); margin-left:4px}
#page-home .hm-mut{color:var(--fg2); font-size:13px}
#page-home .up{color:var(--h-up)} #page-home .dn{color:var(--h-dn)} #page-home .warn{color:var(--h-warn)}
#page-home .hm-z{color:var(--fg2)}
#page-home a{color:var(--accent)}

/* 신호등 줄 */
#page-home .hm-top{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap}
#page-home .hm-lightline{font-size:17px; min-width:0; flex:1 1 260px}
#page-home .hm-light{width:16px; height:16px; border-radius:50%; display:inline-block; vertical-align:-2px; margin-right:8px; background:var(--fg3)}
#page-home .hm-l-green{background:var(--h-up)}
#page-home .hm-l-yel{background:var(--h-warn)}
#page-home .hm-l-red{background:var(--h-dn)}
#page-home .hm-l-wait{background:var(--fg3)}
#page-home .hm-acts{display:flex; gap:6px; flex:0 0 auto}
#page-home .hm-btn{border:1px solid var(--h-dn); color:var(--h-dn); background:none; border-radius:8px; padding:6px 14px; font-size:14px; cursor:pointer; font-family:inherit}
#page-home .hm-btn2{border:1px solid var(--line); color:var(--fg); background:none; border-radius:8px; padding:6px 14px; font-size:14px; cursor:pointer; font-family:inherit}
#page-home .hm-btn:disabled, #page-home .hm-btn2:disabled{opacity:.4; cursor:not-allowed}
#page-home .hm-btn-s{padding:3px 10px; font-size:12.5px}
#page-home .hm-issues{margin-top:6px}
#page-home .hm-issue{font-size:13px; border-radius:8px; padding:6px 10px; margin-top:6px}
#page-home .hm-issue.red{background:var(--h-dnbg); color:var(--h-dn)}
#page-home .hm-issue.yel{background:var(--h-warnbg); color:var(--h-warn)}
#page-home .hm-parts{margin-top:8px}
#page-home .hm-actmsg{font-size:13px; color:var(--h-warn); margin-top:4px; white-space:pre-wrap; word-break:break-word}
#page-home .hm-actmsg:empty{display:none}

/* 숫자 셋 */
#page-home .hm-tiles{display:flex; gap:10px; margin-top:12px}
#page-home .hm-tile{flex:1 1 0; min-width:0; background:var(--bg); border-radius:8px; padding:10px 8px; text-align:center}
#page-home .hm-k{color:var(--fg2); font-size:13px}
#page-home .hm-big{font-size:24px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .hm-s{color:var(--fg2); font-size:11.5px; line-height:1.4; margin-top:2px; word-break:keep-all}

/* 후보 두 목록 — 넓으면 나란히, 폰이면 위아래 */
#page-home .hm-two{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px}
#page-home .hm-dayban{background:var(--h-warnbg); color:var(--h-warn); border-radius:8px; padding:8px 12px; font-size:14px; margin-bottom:14px}
#page-home .hm-dayban button{margin-left:8px}

/* 표 */
#page-home .hm-sortnote{font-size:12px; color:var(--fg2); margin:-2px 0 6px}
#page-home .hm-tblbox{width:100%; overflow-x:auto}
#page-home .hm-tbl{width:100%; border-collapse:collapse; font-size:14px}
#page-home .hm-tbl th{color:var(--fg2); font-weight:500; text-align:left; padding:5px 4px; font-size:12.5px; cursor:pointer; user-select:none; white-space:nowrap}
#page-home .hm-tbl th.num, #page-home .hm-tbl td.num{text-align:right; font-variant-numeric:tabular-nums}
#page-home .hm-tbl th.on{color:var(--fg)}
#page-home .hm-tbl th .hm-ar{font-size:10px; margin-left:2px; color:var(--fg3)}
#page-home .hm-tbl th.on .hm-ar{color:var(--accent)}
#page-home .hm-tbl td{padding:6px 4px; border-top:1px solid var(--line); vertical-align:top}
#page-home .hm-tbl th.num+th:not(.num), #page-home .hm-tbl td.num+td:not(.num){padding-left:12px}
#page-home .hm-tbl tbody tr.hm-row{cursor:pointer}
#page-home .hm-tbl tbody tr.hm-row:hover td{background:var(--bg3)}
#page-home .hm-tbl tr.sel td{background:var(--bg)}
#page-home .hm-tbl tr.hm-exp td{border-top:none; background:var(--bg); padding:4px 6px 10px}
#page-home .hm-tbl .hm-kn{display:block; font-size:11px; color:var(--fg3); line-height:1.3}
#page-home .hm-tbl .hm-sub{display:block; font-size:11.5px; color:var(--fg2); line-height:1.35}
#page-home .hm-tbl .hm-tag{font-size:11px; border-radius:999px; padding:0 6px; border:1px solid var(--line); white-space:nowrap}
#page-home .hm-tbl .hm-tag.ok{color:var(--h-up); border-color:var(--h-up)}
#page-home .hm-tbl .hm-tag.no{color:var(--fg3)}
#page-home .hm-tbl .hm-tag.warn{color:var(--h-warn); border-color:var(--h-warn)}
#page-home .hm-empty{color:var(--fg2); font-size:13px; padding:10px 4px}
#page-home .hm-foot{margin-top:6px; font-size:12px; line-height:1.55}

/* 1분봉 작은 그림 */
#page-home .hm-spark svg{display:block; width:100%; max-width:100%; height:auto}
#page-home .hm-sp-line{fill:none; stroke:var(--h-line2); stroke-width:1.6}
#page-home .hm-sp-band{fill:var(--h-line2); fill-opacity:.2; stroke:none}
#page-home .hm-sptitle{font-size:11.5px; color:var(--fg3); margin:2px 0 2px}
/* FX4f % 축 그림 */
#page-home .hm-c-grid{stroke:var(--line); stroke-width:1}
#page-home .hm-c-vgrid{stroke:var(--line); stroke-width:1; stroke-dasharray:2 3}
#page-home .hm-c-ylab{fill:var(--fg3); font-size:10px}
#page-home .hm-c-ylab0{fill:var(--fg2); font-weight:700}
#page-home .hm-c-xlab{fill:var(--fg3); font-size:10px}
#page-home .hm-c-zero{stroke:var(--fg2); stroke-width:1.6; stroke-dasharray:6 4}
#page-home .hm-c-uparea{fill:var(--h-up); fill-opacity:.13; stroke:none}
#page-home .hm-c-dnarea{fill:var(--h-dn); fill-opacity:.13; stroke:none}
#page-home .hm-c-pick{stroke:var(--accent); stroke-width:1.4; stroke-dasharray:3 3}
#page-home .hm-c-pickdot{fill:var(--accent); stroke:var(--bg2); stroke-width:2}
#page-home .hm-c-enddot{fill:var(--fg2); stroke:var(--bg2); stroke-width:1.5}
#page-home .hm-c-lab{font-size:11px; fill:var(--fg); paint-order:stroke; stroke:var(--bg2); stroke-width:3px; stroke-linejoin:round}
#page-home .hm-c-lab0{fill:var(--fg2)}
#page-home .hm-c-labpick{fill:var(--accent); font-weight:700}
#page-home .hm-c-labhi{font-weight:700}
#page-home .hm-c-labbuy{fill:var(--h-buy); font-weight:700}
#page-home .hm-c-labsell{fill:var(--h-sell); font-weight:700}
#page-home .hm-c-labend{fill:var(--fg2)}
/* FX4h — 펼친 그림 닫기 ✕(보이는 건 작게, 누르는 자리 32px) · 시장 두 줄 · 좁은 폰에서 순위 열 숨김 */
#page-home .hm-tbl tr.hm-exp td{position:relative; padding-top:6px}
#page-home .hm-xbtn{position:absolute; top:0; right:0; width:34px; height:34px; border:none; background:transparent;
  color:var(--fg2); font-size:14px; line-height:34px; text-align:center; cursor:pointer; border-radius:8px; z-index:2; padding:0}
#page-home .hm-xbtn:hover{background:var(--bg3); color:var(--fg)}
#page-home .hm-tbl tr.hm-exp .hm-zoombar, #page-home .hm-tbl tr.hm-exp .hm-sptitle{padding-right:36px}
#page-home .hm-mklab{font-size:12.5px; color:var(--fg); margin-right:2px; white-space:nowrap}
#page-home .hm-mkline + .hm-mkline{margin-top:3px}
@media (max-width:480px){ #page-home .hm-col-rank{display:none} }
#page-home .hm-tbl .hm-src9{color:var(--h-warn)}
/* FX4g */
#page-home .hm-c-v9{stroke:var(--fg3); stroke-width:1.2; stroke-dasharray:4 3}
#page-home .hm-c-xlab9{fill:var(--fg); font-weight:700}
#page-home .hm-c-xlab0{fill:var(--accent); font-weight:700}
#page-home .hm-c-hiline{stroke:var(--h-hi); stroke-width:1; stroke-dasharray:3 3}
#page-home .hm-c-needle{stroke:var(--h-hi); stroke-width:4; stroke-linecap:round; opacity:.85}
#page-home .hm-c-cdot{fill:var(--h-line2); stroke:var(--bg2); stroke-width:1.5}
#page-home .hm-c-labc{fill:var(--h-line2)}
#page-home .hm-tbl .hm-needle{color:var(--h-warn)}
#page-home .hm-zoombar{display:flex; gap:6px; margin:2px 0 4px}
#page-home .hm-zoombar .on{border-color:var(--accent); color:var(--accent); font-weight:700}
#page-home .hm-sp-ref{stroke:var(--fg3); stroke-width:1; stroke-dasharray:4 3}
#page-home .hm-sp-vl{stroke:var(--line); stroke-width:1}
#page-home .hm-sp-ax{fill:var(--fg3); font-size:10px}
#page-home .hm-sp-buy{fill:var(--h-buy)}
#page-home .hm-sp-sell{fill:var(--h-sell)}
#page-home .hm-sp-hi{fill:var(--h-hi)}
#page-home .hm-lg{font-size:12px; color:var(--fg2); line-height:1.6; margin-top:2px}
#page-home .hm-dot{display:inline-block; width:9px; height:9px; border-radius:50%; margin:0 3px 0 6px; vertical-align:0}
#page-home .hm-dot.buy{background:var(--h-buy)} #page-home .hm-dot.sell{background:var(--h-sell)} #page-home .hm-dot.hi{background:var(--h-hi)}
#page-home .hm-dash{display:inline-block; width:14px; border-top:1px dashed var(--fg3); margin:0 3px 0 6px; vertical-align:3px}

/* 아침 흐름 */
#page-home .hm-steps{display:flex; gap:4px; flex-wrap:wrap; font-size:13px}
#page-home .hm-step{flex:1 1 92px; min-width:92px; background:var(--bg); border-radius:8px; padding:6px 8px}
#page-home .hm-step b{display:block; font-variant-numeric:tabular-nums}
#page-home .hm-step .ok{color:var(--h-up)} #page-home .hm-step .bad{color:var(--h-dn)}
#page-home .hm-step .warn{color:var(--h-warn)} #page-home .hm-step .wait{color:var(--fg2)} #page-home .hm-step .skip{color:var(--fg3)}
#page-home .hm-flownote{font-size:13px; border-radius:8px; padding:6px 10px; margin-top:8px}
#page-home .hm-flownote.red{background:var(--h-dnbg); color:var(--h-dn)}
#page-home .hm-flownote.yel{background:var(--h-warnbg); color:var(--h-warn)}

/* 달력 */
#page-home .hm-calnav{display:flex; align-items:center; gap:8px; margin-bottom:6px; font-size:14px}
#page-home .hm-cal{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; font-size:13px; text-align:center}
#page-home .hm-cal>div{background:var(--bg); border-radius:6px; padding:4px 0; min-height:42px; line-height:1.35}
#page-home .hm-cal>div.h{background:none; color:var(--fg2); min-height:auto}
#page-home .hm-cal>div.blank{background:none}
#page-home .hm-cal>div.click{cursor:pointer}
#page-home .hm-cal>div.click:hover{outline:1px solid var(--fg3)}
#page-home .hm-cal>div.on{outline:2px solid var(--accent)}
#page-home .hm-cal>div.today{box-shadow:inset 0 -2px 0 var(--accent)}
#page-home .hm-cal>div.fut{color:var(--fg3)}
#page-home .hm-cal b{font-size:12.5px}
#page-home .hm-cal .hm-cs{font-size:11px; color:var(--fg3)}

/* 보고서 */
#page-home .hm-docs{font-size:14px; line-height:2}
#page-home .hm-docs a{margin-right:4px; overflow-wrap:anywhere}
#page-home .hm-docs .sep{color:var(--fg3); margin-right:4px}
#page-home .hm-docview{border:1px solid var(--accent); border-radius:8px; padding:8px; margin-top:8px}
#page-home .hm-docvhead{display:flex; align-items:center; gap:8px; justify-content:space-between; margin-bottom:6px; font-size:14px}
#page-home .hm-docbody{white-space:pre-wrap; word-break:break-word; margin:0; max-height:60vh; overflow:auto; font-family:Consolas,"Malgun Gothic",monospace; font-size:12px; line-height:1.6; color:var(--fg2); background:var(--bg); padding:8px; border-radius:6px}
#page-home .hm-old{margin-top:10px}

/* FX4b 시장 한눈에 · 거래대금 · 시장 비교 */
#page-home .hm-mkbig{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; font-size:15px}
#page-home .hm-mkpart b{font-size:22px; font-variant-numeric:tabular-nums}
#page-home .hm-mkbar{display:flex; height:10px; border-radius:5px; overflow:hidden; background:var(--bg); margin:8px 0}
#page-home .hm-mkbar .seg{display:block; height:100%}
#page-home .hm-mkbar .seg.up{background:var(--h-up)} #page-home .hm-mkbar .seg.down{background:var(--h-dn)} #page-home .hm-mkbar .seg.flat{background:var(--fg3)}
#page-home .hm-mkline{display:flex; flex-wrap:wrap; gap:4px 14px; font-size:13.5px}
#page-home .hm-mkchip{white-space:nowrap}
#page-home .hm-vs{font-size:13px; background:var(--bg); border-radius:8px; padding:6px 10px; margin:0 0 8px; line-height:1.6}
#page-home .hm-vs:empty{display:none}
#page-home .hm-vs-wait{color:var(--fg2)}
#page-home .hm-tbl .hm-kn2{display:block; font-size:11px; color:var(--fg3); line-height:1.3; overflow-wrap:anywhere}
#page-home .hm-more{text-align:center; margin-top:8px}

@media (max-width:860px){
  #page-home .hm-two{grid-template-columns:minmax(0,1fr); gap:0}
}
@media (max-width:480px){
  #page-home .hm{padding:10px 16px 32px}
  #page-home .hm-card{padding:12px 10px}
  #page-home .hm-lightline{font-size:15.5px}
  #page-home .hm-big{font-size:18px}
  #page-home .hm-tiles{gap:6px}
  #page-home .hm-tile{padding:8px 4px}
  #page-home .hm-tbl{font-size:13px}
  #page-home .hm-tbl th{font-size:11.5px; padding:5px 3px}
  #page-home .hm-tbl td{padding:6px 3px}
  #page-home .hm-tbl .hm-kn{display:none}
  #page-home #hmTv .hm-tbl{font-size:12px}
  #page-home .hm-mkpart b{font-size:19px}
  #page-home .hm-mkline{font-size:12.5px; gap:2px 10px}
  #page-home .hm-step{min-width:84px; flex-basis:84px}
  #page-home .hm-btn, #page-home .hm-btn2{padding:6px 10px}
}

/* ======== CP1 (2026-09-25) 매매 가능 금액 칸 — 초록 ● 매매 가능 · 노랑 ◐ 소액만 · 빨강 ○ 매매 불가 ======== */
#page-home .hm-tbl .hm-cap-main{display:block; white-space:nowrap; font-variant-numeric:tabular-nums}
#page-home .hm-tbl .hm-cap-2{white-space:nowrap}
#page-home .hm-tbl .hm-cap .hm-nw{white-space:nowrap}
#page-home .hm-cap-sym{font-weight:700}
#page-home .hm-cap-ok{color:var(--h-up)}
#page-home .hm-cap-small{color:var(--h-warn)}
#page-home .hm-cap-no{color:var(--h-dn)}
#page-home .hm-capbox{margin:2px 0 10px; padding-right:36px; box-sizing:border-box;
  width:0; min-width:100%}   /* 바깥 후보 표 폭 계산에 끼지 않게(넘치면 안쪽에서만 옆으로 밀림) */
#page-home .hm-captitle{font-size:13px; font-weight:700; margin-bottom:4px}
#page-home .hm-tbl.hm-captbl{font-size:13px; width:auto; min-width:60%}
#page-home .hm-tbl.hm-captbl th{cursor:default}
/* 펼친 줄(tr.hm-exp td) 규칙이 안쪽 표까지 먹으므로 한 단계 더 좁혀 덮는다 */
#page-home .hm-tbl .hm-tbl.hm-captbl td, #page-home .hm-tbl .hm-tbl.hm-captbl th,
#page-home .hm-tbl.hm-captbl td, #page-home .hm-tbl.hm-captbl th{padding:3px 6px; line-height:1.4; border-top:1px solid var(--line); background:none}
#page-home .hm-tbl.hm-captbl thead th{border-top:none; vertical-align:bottom}
#page-home .hm-capbox .hm-nw{white-space:nowrap}
#page-home .hm-capk2{display:block; font-size:10.5px; color:var(--fg3); font-weight:400}
#page-home .hm-tbl.hm-captbl td.hm-capk{color:var(--fg2)}
#page-home .hm-tbl.hm-captbl td.num{white-space:nowrap}
#page-home .hm-capnote{font-size:11.5px; color:var(--fg2); line-height:1.45; margin-top:4px}
#page-home .hm-tbl .hm-cap-mini{display:none}
@media (max-width:480px){
  #page-home .hm-tbl .hm-capcol{display:none}
  #page-home .hm-tbl .hm-cap-mini{display:block; font-size:12px; line-height:1.3; white-space:nowrap}
  #page-home .hm-capbox{padding-right:28px}
  #page-home .hm-tbl.hm-captbl{font-size:12px}
}

/* ======== UL1 (2026-09-25) 업비트 바로가기 단추 "업비트 ↗" — 모든 화면 공통 ========
   진석: "종목 옆에 업비트 바로가기 버튼 하나 만들고, 업비트 원화마켓으로 바로 연결할 수 있게."
   색 = 각 톤의 --accent(어두운 #4a9cf0 · 밝은 #2563eb) · 누르는 자리는 ::after 로만 넓힌다(보이는 크기·표 폭은 그대로) */
.ub-btn{display:inline-block; position:relative; margin-left:5px; padding:0 5px; border:1px solid var(--accent); border-radius:999px;
  color:var(--accent); background:transparent; font-size:10.5px; font-weight:400; line-height:15px; white-space:nowrap;
  text-decoration:none; vertical-align:1px; cursor:pointer; font-family:inherit; -webkit-tap-highlight-color:transparent}
.ub-btn::after{content:''; position:absolute; left:-4px; right:-4px; top:-7px; bottom:-7px}
.ub-btn .ub-lab{margin-right:3px}
.ub-btn:visited, #page-home a.ub-btn{color:var(--accent)}
.ub-btn:focus-visible, #page-home a.ub-btn:focus-visible{background:var(--accent); color:var(--bg2); outline:none}
@media (hover:hover){
  .ub-btn:hover, #page-home a.ub-btn:hover{background:var(--accent); color:var(--bg2)}
}
/* 첫 화면 표 — 폰(≤480px):
   · 9시·장중 후보 표 = 종목 글자 아래 한 줄에 "업비트 ↗"(그 칸은 매매 가능 금액 글자가 더 넓어 표 폭 그대로 — 실측)
   · 오늘 판·거래대금 표(ub-sm) = 폰에서 이미 최소 폭이라 "↗" 만, 종목 글자 옆(자리 없으면 아래로) */
@media (max-width:480px){
  #page-home .hm-tbl .ub-btn{display:block; width:-webkit-max-content; width:max-content; margin:3px 0 1px}
  #page-home .hm-tbl .ub-btn.ub-sm{display:inline-block; width:auto; margin:0 0 0 4px; padding:0 5px; font-size:11px}
  #page-home .hm-tbl .ub-btn.ub-sm .ub-lab{display:none}
}
/* 옛 화면 표 칸(span.ub-cq) — 폰(≤480px)과 일지 후보 표(이름 칸이 원래 한두 글자 폭으로 눌려 있음)에서는
   단추를 이름 아래 줄로 내리고 칸 폭 계산에서 뺀다(container-type:inline-size → 표 폭 그대로).
   칸이 단추보다 좁으면 '업비트' 글자를 숨기고 ↗ 만(@container). 컨테이너 질의가 없는 옛 브라우저는 그냥 이름 아래 줄. */
@media (max-width:480px){
  .tbl .ub-cq{display:block; container-type:inline-size; margin-top:2px}
  .tbl .ub-cq .ub-btn{margin-left:0}
}
#jrPicks .tbl .ub-cq{display:block; container-type:inline-size; margin-top:2px}
#jrPicks .tbl .ub-cq .ub-btn{margin-left:0}
@container (max-width:58px){
  .ub-cq .ub-btn .ub-lab{display:none}
}
/* 옛 화면 오늘 탭 ①② 추적 표 — 칸 글자를 한 줄로 묶어 둔 표라 단추는 이름 아래 줄로(표 폭이 안 늘게, 실측: 폭·높이 그대로) */
#pdA_cands .tbl .ub-btn, #pdB_cands .tbl .ub-btn{display:block; width:-webkit-max-content; width:max-content; margin:2px 0 0}
/* 펼친 그림 제목 줄(종목 이름 + 단추) — 오른쪽 ✕ 자리는 비워 둔다 */
#page-home .hm-exptitle{padding-right:40px; margin:0 0 4px; font-size:13.5px; line-height:1.6}
#page-home .hm-exptitle-kn{color:var(--fg2); font-size:12.5px}
#page-home .hm-tbl .hm-exptitle .ub-btn{display:inline-block; width:auto; margin:0 0 0 6px; vertical-align:1px}

/* ======== TV1 (2026-09-26) 트레이딩뷰 차트 단추 "트뷰 ↗" — 업비트 단추 바로 옆 ========
   진석: "여기 지금 업비트 링크 있잖아 여기 트레이딩뷰 링크도 같이 넣어 거래소 업비트로"
   단추 class = "ub-btn tv-btn" → 위 UL1 규칙(모양 · 폰 좁은 표: ub-sm 은 ↗ 만 · span.ub-cq 는 칸 폭 계산에서 빠지고 좁으면 ↗ 만 ·
   펼친 그림 제목 줄)을 그대로 받는다. 여기서는 ①색 ②두 단추 사이 간격·줄바꿈 ③누르는 자리 겹침 막기만 더한다.
   색 = 각 톤의 --purple(어두운 #a97bff · 밝은 #7a45d8) — 업비트 단추 파랑(--accent)과 구별 [내 발명] */
.ub-btn.tv-btn{border-color:var(--purple); color:var(--purple)}
.tv-btn:visited, #page-home a.tv-btn{color:var(--purple)}
.tv-btn:focus-visible, #page-home a.tv-btn:focus-visible{background:var(--purple); color:var(--bg2); outline:none}
@media (hover:hover){
  .tv-btn:hover, #page-home a.tv-btn:hover{background:var(--purple); color:var(--bg2)}
}
/* 누르는 자리: 트뷰는 업비트 단추 쪽(왼쪽·위)으로 안 넓힌다 — 옆에 붙든 아래 줄로 내려가든 업비트 단추를 덮지 않게 */
.ub-btn.tv-btn::after{left:0; top:0}
/* 두 단추 사이 간격·줄바꿈 — 칸이 두 단추보다 좁으면 트뷰가 아래 줄로 내려가고 칸 폭은 안 늘어난다.
   겹(span.ub-cq · span.ub-pair)을 이름 아래 한 줄로 내리는 자리는 flex 줄바꿈 + gap
   (gap 은 같은 줄일 때만 생겨서, 아래 줄로 내려간 트뷰가 들여쓰기 없이 업비트 단추와 왼쪽이 맞는다) */
.ub-cq{white-space:normal}                  /* 넓은 화면 옛 표 칸(글자 안 꺾는 칸): 두 단추 사이에서만 줄바꿈 허용 */
@media (max-width:480px){
  .tbl .ub-cq{display:flex; flex-wrap:wrap; gap:2px 4px}
}
#jrPicks .tbl .ub-cq{display:flex; flex-wrap:wrap; gap:2px 4px}
/* 오늘 탭 ①② 추적 표: UL1 은 단추 하나를 이름 아래 줄(display:block)로 — 두 단추는 겹(span.ub-cq)째 그 줄에 */
#pdA_cands .tbl .ub-cq, #pdB_cands .tbl .ub-cq{display:flex; flex-wrap:wrap; gap:2px 4px; margin-top:2px}
#pdA_cands .tbl .ub-cq .ub-btn, #pdB_cands .tbl .ub-cq .ub-btn{width:auto; margin:0}
/* 한 줄 flex 목록(실시간 신호 로그 .logrow · 일지 메모 .jrnote): 두 단추를 겹(span.ub-pair-row)째 한 칸으로 —
   flex 줄은 안 꺾여서 트뷰를 따로 넣으면 줄의 최소 폭이 트뷰만큼 늘고 칸이 옆으로 밀린다(실측 +58.5px).
   겹 안에서만 줄바꿈 → 겹의 최소 폭 = 업비트 단추 폭. 겹 왼쪽 5px = 업비트 단추가 원래 갖던 간격 */
.ub-pair.ub-pair-row{display:inline-flex; flex-wrap:wrap; gap:2px 4px; margin-left:5px}
.ub-pair.ub-pair-row > .ub-btn{margin-left:0}
/* 첫 화면 9시·장중 후보 표(폰): UL1 은 단추를 이름 아래 줄(display:block)로 — 두 단추를 겹(span.ub-pair)째 그 줄에 */
@media (max-width:480px){
  #page-home .hm-tbl .ub-pair{display:flex; flex-wrap:wrap; gap:3px 4px; margin:3px 0 1px}
  #page-home .hm-tbl .ub-pair > .ub-btn{width:auto; margin:0}
}
/* 첫 화면 오늘 판·거래대금 표(small, 폰에선 ↗ 만): 두 ↗ 를 겹(span.ub-pair-sm)째 — 종목 글자 옆에 자리 없으면 둘이 같이
   아래 줄로, 그 줄에도 둘이 안 들어가면 트뷰만 한 줄 더 아래로(칸 폭은 안 늘어남). 글자와의 간격 = 겹 앞 빈칸(app.js) */
#page-home .hm-tbl .ub-pair.ub-pair-sm{display:inline-flex; flex-wrap:wrap; gap:2px 4px; margin:0; vertical-align:1px}
#page-home .hm-tbl .ub-pair.ub-pair-sm > .ub-btn{margin:0}

/* ======== SC2 (2026-09-26) 「⚡ 지금 볼 코인」 탭 — 설계서 docs/design/SCREENER_v0.md 5절 ========
   색: 오름 빨강·내림 파랑(업비트와 같은 뜻) · 상태 초록=켜짐 · 회색=쉼 · 노랑=준비 중·연결 중 · 빨강=멈춤·끊김·오류
   폰: 종목 칸을 왼쪽에 붙여 두고(표를 옆으로 밀어도 보임) 바로 옆 칸이 1분 오름 → 종목·업비트 단추·1분 오름이 한눈에 */
.tab-sc{color:var(--warn); font-weight:700}
#page-screener .sc{max-width:1500px}
#page-screener .sc-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; margin:0 0 6px}
#page-screener .sc-title{font-size:17px}
#page-screener .sc-status{font-size:13px; font-weight:700; border-radius:999px; padding:1px 10px; border:1px solid var(--line)}
#page-screener .sc-status.sc-ok{color:var(--ok); border-color:var(--ok)}
#page-screener .sc-status.sc-wait{color:var(--fg2)}
#page-screener .sc-status.sc-warn{color:var(--warn); border-color:var(--warn)}
#page-screener .sc-status.sc-bad{color:var(--hot); border-color:var(--hot)}
#page-screener .sc-age{font-size:12px; color:var(--fg2); font-variant-numeric:tabular-nums}
#page-screener .sc-stale{background:rgba(255,82,82,.12); color:var(--hot); border:1px solid var(--hot); border-radius:8px; padding:7px 10px; margin:0 0 8px; font-size:13px; font-weight:700; line-height:1.5}
#page-screener .sc-meta{font-size:11.5px; margin:0 0 4px}
#page-screener .sc-intro{font-size:12px; color:var(--fg2); margin:0 0 10px; line-height:1.5}
#page-screener .sc-list h3{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; font-size:14px}
#page-screener .sc-list h3 .h3sub{margin-left:0}
#page-screener .sc-est{font-size:11px; font-weight:400; color:var(--warn); border:1px solid var(--warn); border-radius:999px; padding:0 7px}
#page-screener .sc-lnote{font-size:12px; color:var(--fg2); margin:-2px 0 6px; line-height:1.5}
#page-screener .sc-warnnote{color:var(--warn)}
#page-screener .sc-tbl{overflow-x:auto; -webkit-overflow-scrolling:touch}
#page-screener .sc-tbl .tbl{font-size:12.5px}
#page-screener .sc-tbl .tbl tbody tr{cursor:default}
#page-screener .sc-tbl .tbl th{white-space:nowrap}
#page-screener .sc-empty{color:var(--fg2); font-size:13px; padding:10px 4px; border-top:1px solid var(--line)}
#page-screener .sc-tbl .tbl td{vertical-align:top}
#page-screener .sc-tbl .tbl th:first-child, #page-screener .sc-tbl .tbl td:first-child{position:sticky; left:0; z-index:1; background:var(--bg2)}
#page-screener .sc-tbl .tbl th:first-child{z-index:3; background:var(--bg3)}
#page-screener .sc-tbl .tbl tbody tr:hover td:first-child{background:var(--bg3)}
#page-screener .sc-name b{font-size:13px}
#page-screener .sc-kn{font-size:11px; color:var(--fg3); margin-left:4px}
#page-screener .sc-sub{font-size:11px; color:var(--fg3)}
#page-screener .sc-why{display:inline-block; white-space:normal; min-width:200px; max-width:420px; line-height:1.45}
#page-screener .up{color:var(--up)}
#page-screener .dn{color:var(--dn)}
#page-screener .sc-cap{white-space:nowrap}
#page-screener .sc-cap-ok{color:var(--ok)}
#page-screener .sc-cap-small{color:var(--warn)}
#page-screener .sc-cap-no{color:var(--hot)}
#page-screener.sc-is-stale .sc-tbl{opacity:.45}
#page-screener .sc-foot{font-size:11.5px; line-height:1.6; margin-top:4px}
@media (max-width:480px){
  #page-screener .sc{padding:10px}
  #page-screener .panel{padding:10px 8px}
  #page-screener .sc-tbl .tbl{font-size:12px}
  #page-screener .sc-tbl .tbl td, #page-screener .sc-tbl .tbl th{padding:5px}
  #page-screener .sc-kn{display:block; margin-left:0; max-width:84px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  #page-screener .sc-why{min-width:180px}
}

/* ======== TR1 (2026-09-26) 거래대금·대금 순위 칸 — 세 표 공통 ========
   진석: "뽑은 종목들 옆에 거래대금하고 거래대금 순위도 넣어야 돼 순위 소트로 조절 가능해야 되고 다 소트키! 소트키"
   · '—' = 받은 지 30초 넘음·파일 없음·지난 날 등 → 마우스를 올리면 까닭(물음표 커서)
   · 「⚡ 지금 볼 코인」: 두 칸은 오름 칸 바로 뒤(표는 원래 자기 칸 안에서 옆으로 미는 표 — 문서 폭은 그대로)
   · 첫 화면 9시·장중 후보: 카드가 좁다(09-26 실측 — 나란한 두 카드의 표 칸 467px(창 1280·1920 같음, 페이지 최대 1040px) ·
     폰 321px). TR1 전 표는 그 폭에 딱 맞았고, 두 칸을 넣으면 574·567px(폰 383px)로 넘쳐 '최고' 칸이 가려진다.
     → 표 칸(#hmA·#hmB) 폭 기준(컨테이너 질의): 600px 이상이면 두 칸, 그 밑이면 두 칸을 숨기고 종목 이름 아래 작은 줄
       "대금 123억 · 12위" + 표 위 '대금 순위순' 정렬 단추(그 칸 머리를 누른 것과 같음) [내 발명 — 코디네이터 "좁을 때는 칸 대신
       종목 이름 아래 작은 줄", "대신 정렬은 폰에서도"]. 컨테이너 질의를 모르는 옛 브라우저는 좁은 쪽(작은 줄+단추)으로 보인다 */
.tr-na{cursor:help}
.tr-tv, .tr-rank{white-space:nowrap; font-variant-numeric:tabular-nums}
#page-home #hmA, #page-home #hmB{container-type:inline-size}
#page-home .hm-tbl .tr-col-tv, #page-home .hm-tbl .tr-col-rank{display:none}
#page-home .hm-tbl .tr-mini{display:block; font-size:11.5px; color:var(--fg2); line-height:1.3; white-space:normal}
#page-home .hm-tbl .tr-mini-a, #page-home .hm-tbl .tr-mini-b{white-space:nowrap}
#page-home .tr-sortbtn{display:block; width:-webkit-max-content; width:max-content; margin:0 0 6px 0; padding:2px 10px; font-size:12px; line-height:1.5;
  color:var(--fg2); background:var(--bg3); border:1px solid var(--line); border-radius:999px; cursor:pointer; font-family:inherit}
#page-home .tr-sortbtn.on{color:var(--accent); border-color:var(--accent)}
@container (min-width:600px){
  #page-home .hm-tbl .tr-col-tv, #page-home .hm-tbl .tr-col-rank{display:table-cell}
  #page-home .hm-tbl .tr-mini, #page-home .tr-sortbtn{display:none}
}

/* ======== JR2 (2026-09-26) 💼 내 보유 코인(첫 화면 맨 위) · 📒 매매 기록 탭 ========
   진석: "제일 상단에는 현재 내가 보유하고 있는 코인 보여주고, 진입가와 현재 수익률 정리하게 되면, 그것을 기록으로 남겨둘 탭을 따로 만들어"
   · 보유 표 = 표 칸(#hdBox) 폭 기준(컨테이너 질의 — TR1 과 같은 방식): 720px 이상이면 8칸 전부, 그 밑(폰·좁은 창)이면
     종목·수익률·평가손익 3칸 + 종목 이름 아래 작은 줄(진입·지금·평가·수량·자동/직접) + 숨은 칸 정렬 단추 [내 발명].
     컨테이너 질의를 모르는 옛 브라우저는 좁은 쪽으로 보인다.
   · 매매 기록 표 = 표 상자 안에서만 옆으로 민다(문서 폭은 그대로 — ⚡ 탭과 같음). 상자가 700px 밑이면 종목 이름 아래에
     수익률·손익 작은 줄 → 옆으로 안 밀어도 보인다 [내 발명]
   · 색: 첫 화면은 첫 화면 규칙(이익 초록·손실 빨강), 매매 기록 탭은 옛 화면·업비트 규칙(오름 빨강·내림 파랑) */
#page-home .hd-top{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:0 10px}
#page-home .hd-top h2{margin-bottom:6px}
#page-home .hd-line{font-size:14px; line-height:1.6; margin:0 0 6px; font-variant-numeric:tabular-nums}
#page-home .hd-line b{white-space:nowrap}
#page-home .hd-line .hm-issue{margin-top:4px}
#page-home .hd-na{cursor:help}
#page-home .hd-nw{white-space:nowrap}
#page-home .hd-tag{font-size:11px; color:var(--fg2); border:1px solid var(--line); border-radius:999px; padding:0 6px; margin-left:4px; white-space:nowrap; font-weight:400}
#page-home .hd-auto{color:var(--accent)}
#page-home .hd-man{color:var(--fg)}
#page-home .hd-mix{color:var(--h-warn)}
#page-home #hdBox{container-type:inline-size}
#page-home #hdBox .hm-tbl td.num{white-space:nowrap}   /* "+99,378원" 이 숫자와 '원' 사이에서 꺾이지 않게(09-26 폰 375 실측) */
#page-home .hm-tbl .hd-x{display:none}
#page-home .hm-tbl .hd-mini{display:block; font-size:11.5px; color:var(--fg2); line-height:1.35; white-space:normal; margin-top:1px}
#page-home .hd-chips{display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; margin:0 0 6px; font-size:12px}
#page-home .hd-chip{padding:2px 10px; font-size:12px; line-height:1.5; color:var(--fg2); background:var(--bg3); border:1px solid var(--line);
  border-radius:999px; cursor:pointer; font-family:inherit}
#page-home .hd-chip.on{color:var(--accent); border-color:var(--accent)}
@container (min-width:720px){
  #page-home .hm-tbl .hd-x{display:table-cell}
  #page-home .hm-tbl .hd-mini, #page-home .hd-chips{display:none}
}

#page-trades .tj{max-width:1200px}
#page-trades .tj-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 12px; margin:0 0 8px}
#page-trades .tj-title{font-size:17px}
#page-trades .tj-age{font-size:12px; color:var(--fg2); font-variant-numeric:tabular-nums}
#page-trades .tj-err{background:rgba(255,82,82,.12); color:var(--hot); border:1px solid var(--hot); border-radius:8px; padding:7px 10px; margin:0 0 8px; font-size:13px; line-height:1.5}
#page-trades .tj-hint{color:var(--warn); font-size:12px; line-height:1.5; margin:0 0 8px}
#page-trades .tj-sum{font-size:16px; line-height:1.6; margin:0 0 8px; font-variant-numeric:tabular-nums}
#page-trades .tj-sum b{white-space:nowrap}
#page-trades .tj-bar{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 8px}
#page-trades .tj-bar .chip{font-size:12px; padding:4px 12px}
#page-trades .tj-tbl{overflow-x:auto; -webkit-overflow-scrolling:touch; container-type:inline-size}
#page-trades .tj-tbl .tbl{font-size:12.5px}
#page-trades .tj-tbl .tbl tbody tr{cursor:default}
#page-trades .tj-tbl .tbl th{white-space:nowrap}
#page-trades .tj-tbl .tbl td{vertical-align:top}
#page-trades .tj-tbl .tbl td.num{white-space:nowrap}
#page-trades .up{color:var(--up)}
#page-trades .dn{color:var(--dn)}
#page-trades .tj-na{cursor:help}
#page-trades .tj-kn{display:block; font-size:11px; color:var(--fg3)}
#page-trades .tj-mini{display:none; font-size:11.5px; line-height:1.35; margin-top:2px; white-space:nowrap}
#page-trades .tj-method{font-size:11.5px; line-height:1.6; margin-top:8px}
#page-trades .tj-foot{font-size:11.5px; line-height:1.6}
@container (max-width:699px){
  #page-trades .tj-mini{display:block}
}
@media (max-width:480px){
  #page-trades .tj{padding:10px}
  #page-trades .panel{padding:10px 8px}
  #page-trades .tj-tbl .tbl{font-size:12px}
  #page-trades .tj-tbl .tbl td, #page-trades .tj-tbl .tbl th{padding:5px}
  #page-trades .tj-sum{font-size:15px}
}

/* ======== DUAL1 (2026-09-27) 첫 화면 후보 두 목록 [기존 | 100억 이상] ========
   진석: "…기존 것처럼 로직을 하는 거 하나 하고 그거 플러스 거래대금 반영한 거 하나 하고 두 개로 해." → 13:2x "자동매수는 기존."
   · 표 위 단추 줄(좁으면 줄바꿈 — 표 폭과 무관) · 켜진 쪽 = 파랑 · "자동 매수가 씀" 딱지 = 색인 bot [내 발명: 모양·자리]
   · 줄마다 "뽑을 때 N억"(100억 미만이면 노랑) · 두 목록에 다 있는 코인 = "양쪽" 딱지 */
#page-home .hm-var{display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; margin:0 0 6px}
#page-home .hm-var-btn{display:inline-flex; align-items:center; gap:5px; padding:3px 11px; font-size:12.5px; line-height:1.5;
  color:var(--fg2); background:var(--bg3); border:1px solid var(--line); border-radius:999px; cursor:pointer; font-family:inherit}
#page-home .hm-var-btn.on{color:var(--accent); border-color:var(--accent); font-weight:700}
#page-home .hm-var-bot{font-size:10.5px; font-weight:400; color:var(--h-warn); border:1px solid var(--h-warn); border-radius:999px;
  padding:0 5px; white-space:nowrap}
#page-home .hm-var-note{font-size:11.5px; color:var(--fg2); flex:1 1 100%; line-height:1.4}
#page-home .hm-tbl .dl-both{display:inline-block; margin:2px 4px 1px 0; color:var(--accent); border-color:var(--accent)}
#page-home .hm-tbl .dl-pick.warn{color:var(--h-warn)}
@media (max-width:480px){
  #page-home .hm-var-btn{padding:3px 9px}
}

/* ======== UI2A (2026-10-02) 화면 정리 — 진석 "쓸데없는 말·조잡한 것 싹 다 수정" ========
   · 탭 줄: 첫 화면에서도 보인다(옛 상단 바만 숨김) · 「더 보기▾」 를 누르면 접어 둔 탭 4개(일지·실시간·조사실·자료 상태)가 같은 줄에 펼쳐진다 [내 발명]
   · 첫 화면 후보 표(폰): 링크는 작은 ↗ 한 줄 · 돈 숫자는 거래대금 하나 · 둘째 작은 줄(바늘·08:50 대비 등)은 폰에서 숨김(넓은 화면·마우스 올리기에는 그대로)
   · 자동 매수 탭: 위 칸(상태·안전 정지·예약 취소·손익·산 것 판 것) + 맨 아래 접힌 「개발용」
   새 색·새 글꼴 없음(기존 변수만) */
body.home-mode .tabs{display:flex}
.tab-more-btn{background:transparent; border:0; border-bottom:2px solid transparent; color:var(--fg3);
  padding:10px 16px; font-size:14px; cursor:pointer; font-family:inherit}
.tab-more-btn:hover{color:var(--fg)}
.tab-more-btn.on{color:var(--fg); font-weight:700}
.tab-menu{display:contents}
.tab-menu[hidden]{display:none}
.tab-menu .tab{color:var(--fg3)}
.tab-menu .tab.on{color:var(--fg)}
.tab-home, .tab-sc{color:var(--fg2); font-weight:400}
.tab.tab-home.on, .tab.tab-sc.on{color:var(--fg); font-weight:700}
@media (max-width:560px){
  .tab-more-btn{padding:9px 10px; font-size:13px}
}

/* 굵은 글씨 별표(**…**) 를 화면에서 굵게 바꾼 자리 */
b.md-b{font-weight:700}

/* 첫 화면 — 판 손익 칸 작은 글씨 */
#page-home .hm-s .hm-src{color:var(--fg3)}
#page-home .hm-tile .hm-big.hm-wait{color:var(--fg3)}
/* 후보 표 펼친 줄 맨 위 한 줄(거래대금·매매 가능 금액을 다 적는 곳) */
#page-home .hm-expinfo{font-size:12.5px; color:var(--fg2); line-height:1.5; margin:0 0 6px; padding-right:36px}
#page-home .hm-expinfo b{color:var(--fg)}
/* 폰(≤480px): 후보 표의 둘째 작은 줄은 숨긴다(펼친 줄·넓은 화면에는 그대로) */
@media (max-width:480px){
  #page-home .hm-tbl .hm-sub2{display:none}
  #page-home .hm-tbl .hm-cap-mini{display:none}
  /* 「100억↑」 딱지는 폰에서 숨김 — 같은 뜻이 바로 아래 '대금' 숫자와 표 위 「100억↑ n/10」, 펼친 줄에 있다 */
  #page-home #hmA .hm-tbl .dl-both, #page-home #hmB .hm-tbl .dl-both{display:none}
  /* 작은 ↗ 두 개를 조금 더 작게 — 이름 옆 한 줄에 들어가게 */
  #page-home .hm-tbl .ub-btn.ub-sm{padding:0 3px; font-size:10px; line-height:14px}
  #page-home .hm-tbl .ub-pair.ub-pair-sm{gap:2px 3px}
}
#page-home .hm-tbl .dl-both{font-size:10.5px}
#page-home .hm-var .hm-var-note{flex:0 1 auto}
/* 넓은 화면이라도 후보 표 칸이 좁으면(나란한 두 카드) 폰과 같이 — 단추는 화살표만, 「100억↑」 딱지는 표 위 숫자·펼친 줄로 */
@container (max-width:599px){
  #page-home .hm-tbl .ub-btn.ub-sm .ub-lab{display:none}
  #page-home .hm-tbl .dl-both{display:none}
}
#page-home .hm-tbl td.hm-nowrap{white-space:nowrap}

/* 바로가기 단추 화살표(그림) — 글자 ↗ 와 같은 자리·크기 */
.ub-btn svg.ub-ar{display:inline-block; width:8px; height:8px; vertical-align:0}

/* 폰 폭(≤560px)에서 쪽 전체가 옆으로 밀리지 않게 — 실시간 탭 「호가창 흔적 시간표」의 칸(최소 1px + 간격 1px)이 폭을 넘던 것.
   좁은 화면에서만 칸 사이 간격을 없애고 칸을 더 좁힐 수 있게 한다(칸 수·색은 그대로) */
@media (max-width:560px){
  .tl{gap:0}
  .tl span{min-width:0; border-radius:0}
  /* 실시간 탭 두 칸 줄(.row2)·일지·조사실 — 한 칸 그리드가 안의 넓은 표만큼 늘어나 쪽이 밀리던 것: 칸은 화면 폭, 넓은 것은 칸 안에서만 옆으로 */
  .row2, .split{grid-template-columns:minmax(0,1fr)}
  .row2 > .panel{overflow-x:auto; -webkit-overflow-scrolling:touch}
  .toolbar-wide{flex-wrap:wrap}
}
/* 옛 화면 표(매매 기록·자동 매수 위 칸)의 작은 단추 두 개 — 이름 옆 한 줄, 폰에서는 글자를 숨기고 화살표만 */
.tbl .ub-pair.ub-pair-sm{display:inline-flex; flex-wrap:nowrap; gap:3px; margin:0; vertical-align:1px}
.tbl .ub-pair.ub-pair-sm > .ub-btn{margin:0}
@media (max-width:480px){
  .tbl .ub-btn.ub-sm .ub-lab{display:none}
  .tbl .ub-btn.ub-sm{padding:0 4px}
  #page-trades .tj-kn{display:none}
}

/* 자동 매수 탭 — 위 칸 */
#page-fire .fw-top .fwauto{margin-bottom:2px}
#page-fire .fw-top-state{font-size:15px; font-weight:700; color:var(--fg)}
#page-fire .fw-top-state.okv{color:var(--ok)}
#page-fire .fw-top-state.warnv{color:var(--warn)}
#page-fire .fw-top-state.badv{color:var(--hot)}
#page-fire .fw-topmsg{margin-top:6px; white-space:pre-wrap; word-break:break-word; color:var(--warn)}
#page-fire .fw-topmsg:empty{display:none}
#page-fire .fw-dev > summary{font-weight:700; color:var(--fg2)}
#page-fire .fw-dev .foldinner > .panel{margin-top:10px}
#page-fire .fw-pnl3 .bigrow{flex-wrap:wrap}

/* ======== UI3A (2026-10-02) 사람 눈 점검 6-2 — 진석 "싹 다 수정해" · 10-01 "직관적으로 · 이쁘게" (폰 375px) ========
   점검 목록 = reports/2026-10-02.md 6-2 · 진행 기록 docs/build/UI3A_PROGRESS.md · 새 글꼴 없음 · 색은 기존 변수 위주 */

/* 6-2-8 첫 화면 밖 탭 맨 위 = 한 줄 「● 정상 · 09:00까지 14시간 49분」(이상이 있을 때만 빨강 — app.js tbLinePaint).
   옛 칸(시계·녹화·엔진 갱신·오늘 신호·오늘 급등·전 주기 적재·서버 연결됨)은 지우지 않고 숨김 — id 그대로 */
.topbar{flex-wrap:nowrap; gap:8px; padding:7px 12px}
.topbar > .tb-clock, .topbar > .tb-item, .topbar #tbConn{display:none}
.topbar .tb-right{margin-left:auto; flex:0 0 auto}
.tb-line{flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:7px; font-size:13.5px; line-height:1.4; color:var(--fg2)}
.tb-line .tb-dot{flex:0 0 auto; color:var(--ok); font-size:11px}
.tb-line .tb-txt{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.tb-line.yel .tb-dot, .tb-line.yel .tb-txt{color:var(--warn)}
.tb-line.red .tb-dot, .tb-line.red .tb-txt{color:var(--hot); font-weight:700}
.topbar.tb-red{background:rgba(255,82,82,.12); border-bottom-color:var(--hot)}

/* 6-2-10 탭 줄 = 한 줄 · 옆으로 밀어 보기(손가락) · 옆에 더 있으면 그쪽 끝을 흐리게(app.js tabsEdge — more-l/more-r) */
.tabs{flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; overscroll-behavior-x:contain}
.tabs::-webkit-scrollbar{display:none}
.tabs .tab, .tabs .tab-more-btn{flex:0 0 auto; white-space:nowrap}
.tabs.more-r{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 32px),transparent); mask-image:linear-gradient(to right,#000 calc(100% - 32px),transparent)}
.tabs.more-l{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 32px),transparent); mask-image:linear-gradient(to left,#000 calc(100% - 32px),transparent)}
.tabs.more-l.more-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent); mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent)}

/* 6-2-3 자동 매수 탭 큰 글씨 — 꺼짐이 정상인 때(오늘 판 끝·판 진행 중·무장 전)는 고장처럼 안 보이게 차분한 파랑 + 둘째 줄 다음 판 */
#page-fire .fwstate-done{background:rgba(74,156,240,.16); color:var(--fg); box-shadow:inset 0 0 0 1px var(--accent)}
#page-fire .fw-top-state .fw-next{display:block; font-size:12px; font-weight:400; color:var(--fg2); margin-top:2px}

/* 6-2-9 거래 종료 공지 종목 — 이름 아래 작은 딱지 「⛔ 10-19 15:00 종료」 · 지난 것 「⛔ 종료됨」(회색) */
.ne-tag{display:block; width:-moz-fit-content; width:fit-content; margin-top:2px; font-size:10.5px; line-height:1.5; font-weight:700;
  color:var(--hot); border:1px solid var(--hot); border-radius:999px; padding:0 6px; white-space:nowrap; cursor:help}
.ne-tag.ne-gone{color:var(--fg3); border-color:var(--line); font-weight:400}

/* 6-2-5 오늘 탭 — 「보는 것」 줄(#pdViewBar)의 hidden 이 .viewbar{display:flex} 에 져서 누를 데 없는 단추가 늘 보이던 것 */
.viewbar[hidden]{display:none}
/* 6-2-5·6 오늘 탭 위 카드 — 작은 글(대상 거래일·급등 수 뜻)이 '…' 로 잘리지 않게 줄을 바꾼다(넓은 화면 4칸에서도 잘렸다) ·
   폰(2칸)에서는 남은 시간 큰 글씨도 */
#page-today .todaybar .tcard .s{white-space:normal; word-break:keep-all; overflow-wrap:anywhere}
@media (max-width:560px){
  #page-today .todaybar .tcard .v{white-space:normal; word-break:keep-all}
}

/* ======== UXF-A (2026-10-02) 화면 쉬운 말·숫자 바로잡기 — reports/ux_audit_2026-10-02.md (첫 화면·탭) ========
   진석 "UI/UX 사용자 입장에서 쓸데없는 말들 복잡한 말들 있나 없나 싹 검수해" · 진행 기록 docs/build/UXFA_PROGRESS.md ·
   새 글꼴 없음 · 색은 기존 변수만 · 칸을 지우지 않고 폰(≤560px)에서만 숨기는 것이 대부분(넓은 화면은 그대로) */

/* 폰에서 숨기는 칸 — D-01 오늘 탭(순위·종목·결과·하루 최고만) · S-04 지금 볼 코인 · T-02 매매 기록 · H-20 오늘 판 · R-01 보고서 */
@media (max-width:560px){
  #page-today .tbl .pd-x{display:none}
  #page-screener .tbl .sc-x{display:none}
  #page-trades .tbl .tj-x{display:none}
  #page-home .hm-tbl .hm-rx{display:none}
  #page-docs .tbl .rp-x, #page-docs .tbl .rpname{display:none}
}
/* T-03 매매 기록 「자동/직접」 칸 — 위 거르기 단추와 같아 늘 숨김(자동이 아닌 줄은 종목 옆 딱지) */
#page-trades .tbl .tj-src{display:none}
.tj-tag{display:inline-block; margin-left:5px; padding:0 6px; border:1px solid var(--line); border-radius:999px; font-size:10.5px;
  line-height:15px; color:var(--fg2); font-weight:400; white-space:nowrap; vertical-align:1px; cursor:help}
.tj-tag.tj-tag-led{border-color:var(--warn); color:var(--warn)}
/* H-03 매매 기록 합계 아래 두 줄(자동 매수 합 = 첫 화면 누적인지 · 원장으로 센 줄 설명) */
#page-trades .tj-sum2-box:empty{display:none}
#page-trades .tj-sum2{font-size:12.5px; line-height:1.6; margin-top:3px; color:var(--fg2)}
#page-trades .tj-sum2 b{color:var(--fg)}
#page-trades .tj-sum2 b.up{color:var(--up)} #page-trades .tj-sum2 b.dn{color:var(--dn)}

/* 업비트·트뷰 단추를 종목 이름 옆 한 줄로(오늘 탭 ①② 표 · 폰 지금 볼 코인 표) — 예전엔 이름 아래 세로로 쌓여 한 종목이 3줄(D-01·S-04) */
#pdA_cands .tbl .ub-cq, #pdB_cands .tbl .ub-cq{display:inline-flex; flex-wrap:nowrap; gap:3px; margin:0 0 0 4px; vertical-align:1px; container-type:normal}
#pdA_cands .tbl .ub-cq .ub-btn, #pdB_cands .tbl .ub-cq .ub-btn{display:inline-block; width:auto; margin:0; padding:0 4px}
#pdA_cands .tbl .ub-cq .ub-lab, #pdB_cands .tbl .ub-cq .ub-lab{display:none}
@media (max-width:560px){
  #page-screener .tbl .ub-cq{display:inline-flex; flex-wrap:nowrap; gap:3px; margin:0 0 0 4px; vertical-align:1px; container-type:normal}
  #page-screener .tbl .ub-cq .ub-btn{display:inline-block; width:auto; margin:0; padding:0 4px}
  #page-screener .tbl .ub-cq .ub-lab{display:none}
}
/* D-01 줄을 누르면 그림 위에 숨긴 칸 숫자 한 줄 */
.pd-chartinfo{font-size:12px; line-height:1.6; margin:0 0 6px}
.pd-chartinfo:empty{display:none}

/* S-06 지금 볼 코인 — ●◐○ 풀이를 표 위 한 줄로 */
#page-screener .sc-legend{font-size:12px; margin:0 0 8px}

/* H-06 첫 화면 위쪽 줄이기 — 시장 한눈에 「자세히」 접기 · 아침 흐름 한 줄(H-12) */
#page-home .hm-mkmore{margin-top:6px}
#page-home .hm-mkmore > summary{cursor:pointer; font-size:12.5px; list-style:none}
#page-home .hm-mkmore > summary::-webkit-details-marker{display:none}
#page-home .hm-mkmore > summary::before{content:'▸ '}
#page-home .hm-mkmore[open] > summary::before{content:'▾ '}
#page-home .hm-mkmore .hm-mkline{margin-top:4px}
#page-home .hm-steps.hm-steps-fold{display:none}
#page-home .hm-flowsum{font-size:13.5px; line-height:1.7}
#page-home .hm-flowsum b.ok{color:var(--ok)}
#page-home .hm-flowsum .hm-btn2{margin-left:6px; vertical-align:1px}

/* G-07 맨 위 한 줄 — 폰에서 글이 「…」 로 잘려 무엇이 멈췄는지 안 보이던 것 → 줄을 바꿔 다 보인다 */
@media (max-width:560px){
  .tb-line .tb-txt{white-space:normal; overflow:visible; text-overflow:clip}
}

/* F-09 자동 매수 「오늘 판 끝」 — 테두리 상자가 단추처럼 보여 눌러 보게 됨 → 테두리 없이 초록 점 + 글자 */
#page-fire .fwstate.fwstate-done{background:none; box-shadow:none; padding:0; font-size:18px}
#page-fire .fwstate.fwstate-done::before{content:'● '; color:var(--ok); font-size:13px; vertical-align:2px}

/* H-24 탭 줄 — 폰 375px 에서 7개가 한 줄에 다 보이게(간격만 줄임 · 이름은 index.html) */
@media (max-width:560px){
  .tabs .tab, .tabs .tab-more-btn{padding:9px 6px; font-size:12.5px}
}

/* R-05 보고서 원문 — 마크다운을 그림으로(제목·표·굵게·목록) · 원문 그대로 보기(md-raw)는 예전처럼 고정폭 */
.md-view{white-space:normal; font-family:inherit; font-size:13px; line-height:1.65; color:var(--fg)}
.md-view.md-raw{white-space:pre-wrap; word-break:break-word; font-family:Consolas,"Malgun Gothic",monospace; font-size:12px; color:var(--fg2)}
#page-docs .rpbody.md-view{white-space:normal}
#page-docs .rpbody.md-view.md-raw{white-space:pre-wrap}
.md-doc p{margin:0 0 8px}
.md-doc .md-h{font-weight:700; color:var(--fg); margin:14px 0 6px; line-height:1.4}
.md-doc .md-h:first-child{margin-top:2px}
.md-doc .md-h1{font-size:17px} .md-doc .md-h2{font-size:15.5px} .md-doc .md-h3{font-size:14px} .md-doc .md-h4, .md-doc .md-h5, .md-doc .md-h6{font-size:13.5px}
.md-doc .md-list{margin:0 0 8px; padding-left:20px}
.md-doc .md-list li{margin:2px 0}
.md-doc .md-list li.md-sub{margin-left:16px; list-style:circle}
.md-doc .md-quote{border-left:3px solid var(--line); padding:2px 0 2px 10px; color:var(--fg2); margin:0 0 8px}
.md-doc code{font-family:Consolas,monospace; font-size:12px; background:var(--bg3); border-radius:4px; padding:0 4px}
.md-doc pre.md-code{white-space:pre-wrap; word-break:break-word; font-family:Consolas,monospace; font-size:12px; background:var(--bg3); border-radius:6px; padding:8px; margin:0 0 8px}
.md-doc hr{border:0; border-top:1px solid var(--line); margin:12px 0}
.md-doc s{color:var(--fg3)}
.md-doc .md-tblbox{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 0 10px}
.md-doc .md-tbl{border-collapse:collapse; font-size:12.5px; min-width:100%}
.md-doc .md-tbl th, .md-doc .md-tbl td{border:1px solid var(--line); padding:4px 7px; text-align:left; vertical-align:top; white-space:normal; word-break:keep-all; overflow-wrap:anywhere}
.md-doc .md-tbl th{background:var(--bg3); font-weight:700}
.md-doc .md-link{text-decoration:underline dotted; cursor:help}
#page-home .hm-docbody.md-view{white-space:normal; font-family:inherit; font-size:13px; color:var(--fg)}
#page-home .hm-docbody.md-view.md-raw{white-space:pre-wrap; font-family:Consolas,"Malgun Gothic",monospace; font-size:12px; color:var(--fg2)}
/* H-06 보유 코인 — 폰에서 이름 아래 작은 줄은 「진입 · 지금」만(평가·수량·자동/직접은 넓은 화면 · 손가락을 대면 전체) */
@media (max-width:560px){
  #page-home .hd-mini .hd-m2, #page-home .hd-mini .hd-m3, #page-home .hd-mini .hd-m4{display:none}
}
/* D-15 첫 화면 후보 칸 → 오늘 탭 「자세히 →」 */
#page-home .hm-more-today{font-size:12px; font-weight:400; margin-left:6px; color:var(--accent); text-decoration:none; white-space:nowrap}
/* 코디네이터 추가 — 가입 기능을 켰을 때 관리자 아닌 가입자(app.js uxViewerLoad → body.ux-limited): 관리자 전용 칸·탭·돈 단추 숨김 */
body.ux-limited #hdCard, body.ux-limited #hmTopCard, body.ux-limited #hmFlowCard, body.ux-limited #page-home .hm-admin-card,
body.ux-limited .tabs .tab[data-tab="trades"], body.ux-limited .tabs .tab[data-tab="fire"], body.ux-limited .tabs .tab[data-tab="journal"],
body.ux-limited #hmTj, body.ux-limited #hmSchedX, body.ux-limited #hmStop{display:none}

/* ======== UXF-A3 (2026-10-03) 화면 쉬운 말 2차 — reports/ux_audit2_2026-10-03.md 중 이 파일 몫 · 진행 기록 docs/build/UXFA3_PROGRESS.md ========
   새 글꼴·새 색 없음(기존 변수만) */

/* H-06 폰 첫 화면 접기(코디네이터 02:2x) — 요약 줄·접기 단추는 폰(≤560px)에서만. 넓은 화면은 예전 그대로 다 펼침 */
.ux-foldsum, .ux-foldx, .ux-foldxrow{display:none}
@media (max-width:560px){
  #page-home .ux-foldsum{width:100%; margin:8px 0 0; padding:7px 10px; border:1px solid var(--line); border-radius:8px; background:var(--bg);
    color:var(--fg); font:inherit; font-size:13px; line-height:1.45; text-align:left; cursor:pointer; align-items:center; gap:8px; justify-content:space-between}
  #page-home .ux-foldsum .ux-fs-t{flex:1 1 auto; min-width:0}
  #page-home .ux-foldsum .ux-fs-t.ux-fs-bad{color:var(--h-dn)}
  #page-home .ux-foldsum .ux-fs-a{flex:0 0 auto; color:var(--fg2); font-size:12px; white-space:nowrap}
  #page-home .ux-foldsum .ux-fs-p{white-space:nowrap}
  #hdCard.ux-folded .ux-foldsum, #hmTopCard.ux-folded .ux-foldsum{display:flex}
  #hdCard.ux-folded #hdLine, #hdCard.ux-folded #hdNote, #hdCard.ux-folded #hdBox, #hdCard.ux-folded .hm-more{display:none}
  #hmTopCard.ux-folded .hm-tiles{display:none}
  #hdCard:not(.ux-folded) .ux-foldx, #hmTopCard:not(.ux-folded) .ux-foldx{display:inline-block}
  #hmTopCard:not(.ux-folded) .ux-foldxrow{display:block; text-align:right; margin-top:6px}
}

/* R2-01 보고서 표 — 폰에서 칸이 좁아 「+2./04/%」「평/균」처럼 낱말·숫자가 글자 단위로 꺾이던 것: 낱말 안에서는 안 꺾는다
   (칸이 모자라면 표 상자 .md-tblbox 안에서 옆으로 밀어 본다 — 화면 전체 가로 넘침은 없음) */
.md-doc .md-tbl th, .md-doc .md-tbl td{overflow-wrap:normal; word-break:keep-all}
/* R2-02 열린 보고서 — 폰에서 높이 62vh 안쪽 스크롤 상자(바깥 화면 스크롤과 겹침) → 정리해 보이는 글은 높이 제한 없이 화면 스크롤 하나로 */
@media (max-width:560px){
  #page-docs .rpbody.md-view:not(.md-raw){max-height:none; overflow-y:visible}
}
/* F2-04 자동 매수 탭 빈 표 머리글 「수익/률」「매도 이/유」 — 낱말 안에서 안 꺾기 */
#page-fire #acctOrders th{word-break:keep-all}
/* D-01 오늘 탭 09:00 뒤 표(폰 4칸 390px / 상자 322px) — 결과 칸 작은 줄(고점 시각·잠정)은 줄을 바꿔 칸 폭을 줄이고, 종목 한글 이름은 폰에서 숨김(줄을 누르면 그림 제목에 나옴) */
@media (max-width:560px){
  #page-today #pdA_cands .statewhen, #page-today #pdB_cands .statewhen{white-space:normal}
  #page-today .tbl .pd-kn{display:none}
}
/* H-11·H-27 첫 화면 후보 표 위 한 줄 풀이 — 「한 번에 최대」 풀이는 그 칸이 숨는 폰(≤480px)에서는 같이 숨김 */
#page-home .hm-sortnote .ux-legend{font-size:11.5px; color:var(--fg2); line-height:1.45}
@media (max-width:480px){
  #page-home .hm-sortnote .ux-caplegend{display:none}
}
/* F-02 자동 매수 탭 산 것·판 것 표 — 폰에서는 종목·손익·수익률·매도 이유 4칸(산 값·판 값·매도 시각은 넓은 화면) */
@media (max-width:560px){
  #page-fire .tbl .fw-x{display:none}
}
/* F-05 자동 매수 탭 「고급」 — 폰에서는 열어도 단추와 한 줄 설명만(자동 모드 스위치 칸). 긴 개발 글·내 계좌 표·호가 지표표·사건 기록은 넓은 화면에서만 */
.ux-fwphone{display:none}
@media (max-width:560px){
  #page-fire .fw-dev .foldinner > :not(:first-child){display:none}
  #page-fire .fw-dev #fwNoOrder, #page-fire .fw-dev #fwProcSub, #page-fire .fw-dev #fwProcPre, #page-fire .fw-dev #fwRunOut,
  #page-fire .fw-dev #fwAutoNote, #page-fire .fw-dev .foldbox{display:none}
  #page-fire .fw-dev .ux-fwphone{display:block; margin:6px 0}
}
/* ======== UXD1 (2026-10-03) 첫 화면 다시 디자인 + 공통 모양(카드·단추·탭 줄·표 머리) ========
   진석(03:5x) "아직 조잡하다 더 다듬어라 사용자 입장에서 필요한 것들만 2d 3d 활용해서 디자인하고 배치해라"
   목업 docs/design/UXD1_MOCKUP_2026-10-03.html · 진행 기록 docs/build/UXD1_PROGRESS.md
   3D = 여러 겹 그림자 + 빛 받는 윗면 그라데이션 + 얇은 테두리 · 구슬(radial-gradient) · 눌리는 단추 — CSS·SVG 만(그림 라이브러리·바깥 주소 없음)
   계속 도는 움직임 없음(누를 때 0.08초 눌림만 · 움직임 줄이기 설정이면 그것도 끔). 새 글꼴 없음.
   다른 탭은 모양만 바꾼다(구조·글·칸 그대로). 밝은 화면(body[data-theme="light"])은 아래 깊이 값만 따로 */
:root{
  --uxd-c1:#1b2331; --uxd-c2:#151b24;                       /* 카드 윗면(빛 받는 쪽) → 아랫면 */
  --uxd-edge:rgba(255,255,255,.075);                        /* 얇은 테두리 */
  --uxd-hi:rgba(255,255,255,.06);                           /* 윗변 빛 줄 */
  --uxd-sh:0 1px 0 var(--uxd-hi) inset, 0 16px 28px -18px rgba(0,0,0,.95), 0 3px 8px -3px rgba(0,0,0,.55);
  --uxd-sh-s:0 1px 0 var(--uxd-hi) inset, 0 6px 14px -10px rgba(0,0,0,.9);
  --uxd-well:#0b0f15; --uxd-well-sh:inset 0 1px 3px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.03);   /* 파인 자리(막대·고리 바닥·전환 줄) */
  --uxd-b1:#242d3c; --uxd-b2:#19202b;                       /* 단추 윗면 → 아랫면 */
  --uxd-bsh:0 6px 12px -8px rgba(0,0,0,.95), 0 1px 0 rgba(255,255,255,.07) inset;
  --uxd-bsh-on:inset 0 2px 5px rgba(0,0,0,.6);              /* 눌렸을 때 */
  --uxd-r1:#2d1a22; --uxd-r2:#1f1419;                       /* 안전 정지 단추 */
  --uxd-sph1:#3a4660; --uxd-sph2:#141b28; --uxd-sph-e:#34405a;   /* 아직 안 된 단계 구슬 */
  --uxd-star1:#231d3d; --uxd-star2:#161729; --uxd-star-e:rgba(169,123,255,.38);   /* ★ 칸 */
  --uxd-drop:rgba(0,0,0,.5);
}
body[data-theme="light"]{
  --uxd-c1:#ffffff; --uxd-c2:#f5f7fa;
  --uxd-edge:rgba(16,24,40,.10);
  --uxd-hi:rgba(255,255,255,.95);
  --uxd-sh:0 1px 0 var(--uxd-hi) inset, 0 14px 26px -18px rgba(16,24,40,.45), 0 2px 6px -2px rgba(16,24,40,.14);
  --uxd-sh-s:0 1px 0 var(--uxd-hi) inset, 0 6px 12px -9px rgba(16,24,40,.35);
  --uxd-well:#e5e9ef; --uxd-well-sh:inset 0 1px 3px rgba(16,24,40,.22);
  --uxd-b1:#ffffff; --uxd-b2:#edf1f6;
  --uxd-bsh:0 4px 10px -7px rgba(16,24,40,.45), 0 1px 0 #fff inset;
  --uxd-bsh-on:inset 0 2px 4px rgba(16,24,40,.25);
  --uxd-r1:#ffffff; --uxd-r2:#fcecec;
  --uxd-sph1:#ffffff; --uxd-sph2:#c6cfdb; --uxd-sph-e:#b5c0ce;
  --uxd-star1:#ffffff; --uxd-star2:#f4f0ff; --uxd-star-e:rgba(122,69,216,.30);
  --uxd-drop:rgba(16,24,40,.22);
}

/* ---- 공통: 카드 ---- */
.panel, .tcard{
  background:linear-gradient(165deg, var(--uxd-c1), var(--uxd-c2) 62%);
  border:1px solid var(--uxd-edge); box-shadow:var(--uxd-sh);
}
.panel{border-radius:14px}
.tcard{border-radius:12px; box-shadow:var(--uxd-sh-s)}
.panel.panel-main{border-color:var(--accent)}
.tcard.tcard-big{border-color:var(--warn)}
.panel .panel{background:var(--uxd-c2); box-shadow:0 1px 0 var(--uxd-hi) inset; border-radius:12px}   /* 카드 안 카드는 납작하게 */

/* ---- 공통: 단추(눌리는 느낌) ---- */
.btn, .chip{
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2));
  border-color:var(--uxd-edge); box-shadow:var(--uxd-bsh);
  transition:transform .08s ease, box-shadow .08s ease;
}
.btn{border-radius:9px}
.btn:active:not(:disabled), .chip:active{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
.chip.on{box-shadow:0 4px 10px -6px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.2)}

/* ---- 공통: 탭 줄(알약 모양 · 고른 탭은 떠 있게) — index.html 머리 <style> 의 폰 여백보다 이기게 .tabs 아래로 씀 ---- */
.tabs{gap:4px; padding:7px 10px; background:var(--bg); align-items:center}
.tabs .tab, .tabs .tab-more-btn{border:0; border-radius:10px; padding:6px 12px; font-size:13.5px; line-height:1.45;
  transition:transform .08s ease}
.tabs .tab.on, .tabs .tab-more-btn.on{background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2));
  box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh); color:var(--fg); font-weight:700}   /* 테두리 대신 그림자 고리 — 폰에서 탭 7개가 한 줄에 들게 */
.tabs .tab:active, .tabs .tab-more-btn:active{transform:translateY(1px)}
@media (max-width:560px){
  .tabs{gap:0; padding:5px 4px}
  .tabs .tab, .tabs .tab-more-btn{padding:6px 8px; font-size:13px}
}
@media (max-width:480px){
  .tabs .tab, .tabs .tab-more-btn{padding:6px 6px; font-size:12.5px}   /* 예전 폰 크기 그대로(12.5px · 옆 6px) */
}

/* ---- 공통: 표 머리 ---- */
.tbl th{background:linear-gradient(180deg, var(--bg3), var(--bg2)); box-shadow:inset 0 -1px 0 var(--line); border-bottom-color:transparent}
#page-home .hm-tbl th{font-size:12px; letter-spacing:.01em; padding:6px 4px; box-shadow:inset 0 -1px 0 var(--line)}

/* ================= 첫 화면 배치 ================= */
#page-home .hm.uxd{max-width:1240px; display:flex; flex-direction:column; padding:10px 12px 40px}
#page-home .uxd .uxd-col{display:contents}
#page-home .uxd .uxd-peslot{display:none}
/* 폰·좁은 화면 순서: ① 오늘 자동 매수 → ② ★ → ③ 내 돈 → ④ 후보 → ⑤ 시장 → ⑥ 더 보기 */
#page-home .uxd .hm-head{order:0}
#page-home .uxd #hmTopCard{order:1}
#page-home .uxd #hmDayBan{order:2}
#page-home .uxd #pePanel{order:3}
#page-home .uxd #hdCard{order:4}
#page-home .uxd #uxdCands{order:5}
#page-home .uxd #hmMkCard{order:6}
#page-home .uxd #uxdFold{order:7}
#page-home .uxd > .hm-card{order:8}
/* 넓은 화면(1000px 넘음): 왼쪽 ①③⑤ · 오른쪽 ②④⑥ [내 발명 — 진석이 나중에 고침] */
@media (min-width:1000px){
  #page-home .hm.uxd{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:18px; align-items:start; padding:14px 20px 48px}
  #page-home .uxd .hm-head{grid-column:1 / -1}
  #page-home .uxd .uxd-col{display:block; min-width:0}
}

/* ---- 맨 위 한 줄: 알약 · 09:00까지 · 기준 시각 · 화면 밝게 ---- */
#page-home .uxd .hm-head{display:flex; align-items:center; gap:8px; margin:0 2px 10px; flex-wrap:nowrap; min-width:0}
#page-home .uxd .hm-title{display:none}
#page-home .uxd .uxd-cd{flex:1 1 auto; min-width:0; color:var(--fg2); font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .uxd .hm-head .hm-mut{flex:0 0 auto; font-size:12px; color:var(--fg3); white-space:nowrap}
#page-home .uxd-pill{display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; padding:3px 10px 3px 8px; border-radius:999px; font-size:12.5px; line-height:1.4;
  border:1px solid var(--line); background:var(--bg2); color:var(--fg2); white-space:nowrap; box-shadow:var(--uxd-sh-s)}
#page-home .uxd-pill i{width:8px; height:8px; border-radius:50%; background:var(--fg3)}
#page-home .uxd-pill b{font-weight:700}
#page-home .uxd-pill.lv-green{color:var(--h-up); background:var(--h-okbg); border-color:rgba(62,207,142,.32)}
#page-home .uxd-pill.lv-green i{background:var(--h-up); box-shadow:0 0 8px var(--h-up)}
#page-home .uxd-pill.lv-yel{color:var(--h-warn); background:var(--h-warnbg); border-color:rgba(240,161,58,.38)}
#page-home .uxd-pill.lv-yel i{background:var(--h-warn); box-shadow:0 0 8px var(--h-warn)}
#page-home .uxd-pill.lv-red{color:var(--h-dn); background:var(--h-dnbg); border-color:rgba(255,107,107,.42)}
#page-home .uxd-pill.lv-red i{background:var(--h-dn); box-shadow:0 0 8px var(--h-dn)}

/* ---- 첫 화면 카드 공통 ---- */
#page-home .uxd .hm-card{background:linear-gradient(165deg, var(--uxd-c1), var(--uxd-c2) 62%); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-sh)}
#page-home .uxd .uxd-card{border-radius:18px; padding:14px 14px 13px; margin-bottom:12px}
#page-home .uxd .uxd-h{display:flex; align-items:baseline; gap:8px; min-width:0}
#page-home .uxd .uxd-h h2{margin:0; font-size:15.5px; display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; min-width:0}
#page-home .uxd a.uxd-go{margin-left:auto; flex:0 0 auto; font-size:12.5px; white-space:nowrap; text-decoration:none}
#page-home .uxd .hm-dayban{border-radius:14px; margin-bottom:12px; box-shadow:var(--uxd-sh-s)}
#page-home .uxd .uxd-off, #page-home .uxd .uxd-off .ux-foldx{display:none !important}
#page-home .uxd #hmParts{display:none}                       /* 같은 글은 딱지에 손가락을 대면(딱지 title) */

/* 작은 딱지(오늘 판 상태) */
#page-home .uxd-chip{display:inline-block; font-size:11.5px; font-weight:600; line-height:1.5; padding:1px 9px; border-radius:999px;
  border:1px solid var(--line); color:var(--fg2); background:var(--bg); white-space:nowrap; cursor:help}
#page-home .uxd-chip.c-ok{color:var(--h-up); background:var(--h-okbg); border-color:rgba(62,207,142,.32)}
#page-home .uxd-chip.c-warn{color:var(--h-warn); background:var(--h-warnbg); border-color:rgba(240,161,58,.38)}
#page-home .uxd-chip.c-red{color:var(--h-dn); background:var(--h-dnbg); border-color:rgba(255,107,107,.42)}
#page-home .uxd-chip.c-blue{color:var(--accent); background:rgba(74,156,240,.12); border-color:rgba(74,156,240,.38)}

/* ---- ① 단계 막대 ---- */
#page-home .uxd-tl{position:relative; height:60px; margin:12px 0 2px}
#page-home .uxd-tl .uxd-bar{position:absolute; left:7%; right:7%; top:13px; height:6px; border-radius:6px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .uxd-tl .uxd-fill{position:absolute; top:13px; height:6px; border-radius:6px; background:linear-gradient(90deg,#3b7bff,#7cc4ff); box-shadow:0 0 9px rgba(90,169,255,.55)}
#page-home .uxd-tl .uxd-n{position:absolute; top:6px; width:20px; height:20px; margin-left:-10px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--uxd-sph1), var(--uxd-sph2) 70%); border:1px solid var(--uxd-sph-e);
  box-shadow:0 3px 6px -2px var(--uxd-drop)}
#page-home .uxd-tl .uxd-n.done{background:radial-gradient(circle at 35% 30%,#bfe0ff,#3b7bff 58%,#1d3d86); border-color:#7cb6ff; box-shadow:0 0 10px rgba(90,169,255,.55), 0 3px 6px -2px var(--uxd-drop)}
#page-home .uxd-tl .uxd-n.now{background:radial-gradient(circle at 35% 30%,#fff,#ffcf7a 45%,#d07b00); border-color:#ffd08a;
  box-shadow:0 0 0 5px rgba(255,181,71,.18), 0 0 12px rgba(255,181,71,.7)}
#page-home .uxd-tl .uxd-n.live{background:radial-gradient(circle at 35% 30%,#d6ffe9,#2fd18b 55%,#127a4c); border-color:#7ff0bd; box-shadow:0 0 0 5px rgba(47,209,139,.16), 0 0 10px rgba(47,209,139,.6)}
#page-home .uxd-tl .uxd-n.bad{background:radial-gradient(circle at 35% 30%,#ffd6db,#ff5a6e 55%,#a3192c); border-color:#ff9aa6; box-shadow:0 0 8px rgba(255,90,110,.5)}
#page-home .uxd-tl .uxd-n.skip{opacity:.45}
#page-home .uxd-tl .uxd-lb{position:absolute; top:31px; transform:translateX(-50%); text-align:center; font-size:11px; line-height:1.3; color:var(--fg2); white-space:nowrap; font-variant-numeric:tabular-nums}
#page-home .uxd-tl .uxd-lb b{display:block; color:var(--fg); font-weight:600; font-size:11.5px}
#page-home .uxd-tl .uxd-lb.now b{color:var(--h-warn)}
/* 신호등 줄 — 정상이면 맨 위 알약만(여기는 숨김) · 이상하면 이 칸 안에 크게 */
#page-home .uxd .uxd-alert{margin-top:8px; padding:8px 10px; border-radius:12px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .uxd .uxd-alert .hm-lightline{font-size:14px; flex:1 1 auto}
#page-home .uxd .uxd-stage.uxd-ok .uxd-alert{display:none}
#page-home .uxd .hm-issues{margin-top:4px}
/* 오늘 판 손익 한 줄(판이 있는 날만) */
#page-home .uxd-today{display:flex; flex-wrap:wrap; align-items:baseline; gap:0 10px; margin:8px 0 0; padding:8px 12px; border-radius:12px;
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .uxd-today[hidden]{display:none}
#page-home .uxd-today .hm-big{font-size:20px; margin-left:auto}
#page-home .uxd-today .hm-s{flex:1 1 100%; font-size:12px; color:var(--fg2); text-align:right}
/* 돈 단추 둘 — 크게 · 눌리는 느낌 · 하는 일은 그대로 */
#page-home .uxd .uxd-acts{display:flex; gap:8px; margin-top:12px; flex:none}
#page-home .uxd .uxd-acts button{flex:1 1 0; min-width:0; min-height:42px; border-radius:14px; font-weight:600; font-size:14px; padding:8px 6px}
#page-home .uxd .hm-btn2, #page-home .uxd .hm-btn{background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:var(--uxd-bsh);
  transition:transform .08s ease, box-shadow .08s ease}
#page-home .uxd .hm-btn2{border-color:var(--uxd-edge)}
#page-home .uxd .hm-btn{background:linear-gradient(180deg, var(--uxd-r1), var(--uxd-r2)); border-color:rgba(255,107,107,.5)}
body[data-theme="light"] #page-home .uxd .hm-btn{border-color:rgba(192,57,43,.45)}
#page-home .uxd .hm-btn2:active:not(:disabled), #page-home .uxd .hm-btn:active:not(:disabled){transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
#page-home .uxd .hm-btn:disabled, #page-home .uxd .hm-btn2:disabled{box-shadow:none}

/* ---- ② ★ 칸(picks_embed.js 가 그림 · 모양만) ---- */
#page-home .uxd #pePanel.pe-card{border-radius:18px; padding:14px 14px 13px; margin-bottom:12px; border:1px solid var(--uxd-star-e);
  background:linear-gradient(160deg, var(--uxd-star1), var(--uxd-star2) 65%); box-shadow:var(--uxd-sh)}
#page-home .uxd #pePanel .pe-title{font-size:15.5px}
#page-home .uxd #pePanel a.pe-more{border-radius:999px; box-shadow:var(--uxd-sh-s)}
#page-home .uxd #pePanel .pe-pill{border-radius:12px; border:1px solid var(--uxd-edge); border-left:3px solid var(--purple,#a97bff);
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:var(--uxd-bsh); padding:3px 10px 3px 8px;
  transition:transform .08s ease, box-shadow .08s ease}
#page-home .uxd #pePanel .pe-pill.pe-s2p{border:1px dashed var(--purple,#a97bff)}
#page-home .uxd #pePanel .pe-pill:active{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
/* 순위 구슬 1·2·3 = 금·은·동 */
#page-home .uxd #pePanel .pe-rk{display:inline-grid; place-items:center; align-self:center; width:20px; height:20px; border-radius:50%; font-size:11px; font-weight:700; line-height:1;
  color:#c4cde0; background:radial-gradient(circle at 35% 30%,#3c4762,#1c2333 70%); box-shadow:0 3px 6px -2px rgba(0,0,0,.7), inset 0 -2px 3px rgba(0,0,0,.25)}
#page-home .uxd #pePanel .pe-rk.pe-rk1{color:#3a2800; background:radial-gradient(circle at 35% 30%,#fff3c4,#f5c542 50%,#b07d10)}
#page-home .uxd #pePanel .pe-rk.pe-rk2{color:#2a3240; background:radial-gradient(circle at 35% 30%,#ffffff,#c9d2de 50%,#7d8796)}
#page-home .uxd #pePanel .pe-rk.pe-rk3{color:#3a1d06; background:radial-gradient(circle at 35% 30%,#ffe0c2,#d98b4a 50%,#8a4b1c)}
/* 08:51 전 — 남은 시간 고리 */
#page-home .uxd #pePanel .pe-wait{display:flex; align-items:center; gap:12px; margin-top:8px}
#page-home .uxd #pePanel .pe-ring{flex:0 0 auto; width:64px; height:64px; filter:drop-shadow(0 6px 8px var(--uxd-drop))}
#page-home .uxd #pePanel .pe-ring-base{stroke:var(--uxd-well)}
#page-home .uxd #pePanel .pe-ring-t{fill:var(--fg); font-size:12px; font-weight:700}
#page-home .uxd #pePanel .pe-wt{min-width:0}
#page-home .uxd #pePanel .pe-wt b{display:block; font-size:14px}
#page-home .uxd #pePanel .pe-wl{font-size:12.5px; color:var(--fg2)}

/* ---- ③ 내 돈 ---- */
#page-home .uxd .hd-top h2{margin-bottom:2px}
#page-home .uxd-money{display:flex; gap:14px; align-items:center; margin-top:4px}
#page-home .uxd-donut{flex:0 0 auto; width:96px; height:96px; filter:drop-shadow(0 8px 10px var(--uxd-drop))}
#page-home .uxd-dk-base{stroke:var(--uxd-well)}
#page-home .uxd-dk-hole{fill:var(--uxd-c2)}
#page-home .uxd-dk-t1{fill:var(--fg2); font-size:9.5px}
#page-home .uxd-dk-t2{fill:var(--fg); font-size:14px; font-weight:700}
#page-home .uxd-mr{flex:1 1 auto; min-width:0}
#page-home .uxd-mr .hm-k{font-size:12px}
#page-home .uxd-mr .hm-big{font-size:24px; line-height:1.25}
#page-home .uxd-mr .hm-s{font-size:11px; color:var(--fg3); margin:0 0 4px}
#page-home .uxd-kv{display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-size:13px; margin-top:3px; min-width:0}
#page-home .uxd-kv > :first-child{flex:0 1 auto; min-width:0; white-space:nowrap}
#page-home .uxd-kv > :last-child{text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums}
#page-home .uxd-kv .uxd-pnl{font-weight:700; margin-left:2px}
#page-home .uxd-cum{margin-top:12px; padding-top:10px; border-top:1px solid var(--line)}
#page-home .uxd-cum .hm-big{font-size:18px}
#page-home .uxd-cum .hm-s{font-size:11.5px; color:var(--fg3); text-align:right}
#page-home .uxd-spark{margin-top:6px}
#page-home .uxd-spark[hidden]{display:none}
#page-home .uxd-spark-svg{display:block; width:100%; height:46px}
#page-home .uxd-sp-zero{stroke:var(--fg3); stroke-dasharray:3 4; stroke-width:1; vector-effect:non-scaling-stroke}
#page-home .uxd-sp-line{fill:none; stroke-width:2; stroke-linejoin:round; stroke-linecap:round}
#page-home .uxd-spark-svg.up .uxd-sp-line{stroke:var(--h-up)} #page-home .uxd-spark-svg.up .uxd-sp-area{fill:var(--h-up); fill-opacity:.13}
#page-home .uxd-spark-svg.dn .uxd-sp-line{stroke:var(--h-dn)} #page-home .uxd-spark-svg.dn .uxd-sp-area{fill:var(--h-dn); fill-opacity:.13}
#page-home .uxd-spark-svg.flat .uxd-sp-line{stroke:var(--fg2)} #page-home .uxd-spark-svg.flat .uxd-sp-area{fill:none}
#page-home .uxd-sp-cap{display:flex; justify-content:space-between; gap:8px; font-size:10.5px; color:var(--fg3); margin-top:2px}
#page-home .uxd-sp-cap .uxd-sp-mid{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
#page-home .uxd #hdLine{margin-top:12px; padding-top:10px; border-top:1px solid var(--line)}   /* 보유 코인 표 위 — 누적 선과 떼어 놓기 */
/* 보유 코인 한 줄(폰) — 파인 자리 모양 */
@media (max-width:560px){
  #page-home .uxd #hdFoldSum{background:var(--uxd-well); box-shadow:var(--uxd-well-sh); border-color:transparent; border-radius:12px; margin-top:10px; padding:9px 12px}
}

/* ---- ④ 후보 — 두 칸 전환 ---- */
#page-home .uxd-seg{display:flex; gap:2px; background:var(--uxd-well); border-radius:12px; padding:3px; margin:10px 0 10px; box-shadow:var(--uxd-well-sh)}
#page-home .uxd-seg button{flex:1 1 0; border:0; background:none; color:var(--fg2); font:inherit; font-size:13.5px; line-height:1.4; padding:7px 0; border-radius:9px; cursor:pointer;
  transition:transform .08s ease}
#page-home .uxd-seg button.on{color:var(--fg); font-weight:700; background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:var(--uxd-bsh)}
#page-home .uxd-seg button:active{transform:translateY(1px)}
#page-home .uxd #uxdTwo{display:block}
#page-home .uxd #uxdTwo[data-seg="A"] > [data-pane="B"], #page-home .uxd #uxdTwo[data-seg="B"] > [data-pane="A"]{display:none}
#page-home .uxd .hm-card.uxd-pane{background:none; border:0; box-shadow:none; padding:0; margin:0; border-radius:0}
#page-home .uxd .uxd-pane > h2{font-size:12.5px; font-weight:600; color:var(--fg2); margin:0 0 6px}
#page-home .uxd .uxd-pane > h2 .hm-more-today{display:none}   /* 칸 머리 「후보 탭 →」 와 같은 곳 — 두 번 안 보임 */

/* ---- ⑤ 시장 한눈에 — 오름·보합·내림 막대를 도톰하게(빛 받는 윗면) ---- */
#page-home .uxd .hm-mkbar{height:14px; border-radius:8px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh), 0 6px 12px -8px var(--uxd-drop); margin:10px 0 8px}
#page-home .uxd .hm-mkbar .seg{background-image:linear-gradient(180deg, rgba(255,255,255,.32), rgba(255,255,255,0) 55%, rgba(0,0,0,.12))}

/* ---- ⑥ 더 보기(접힘) ---- */
#page-home .uxd details.uxd-fold{padding:0}
#page-home .uxd .uxd-fsum{display:flex; align-items:baseline; gap:10px; padding:13px 14px; cursor:pointer; list-style:none; min-width:0}
#page-home .uxd .uxd-fsum::-webkit-details-marker{display:none}
#page-home .uxd .uxd-fsum::after{content:'▸'; margin-left:auto; color:var(--fg2); flex:0 0 auto}
#page-home .uxd details.uxd-fold[open] > .uxd-fsum::after{content:'▾'}
#page-home .uxd .uxd-fsum .hm-mut{font-size:12px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
#page-home .uxd .uxd-fold > .hm-card{background:none; border:0; border-top:1px solid var(--line); border-radius:0; box-shadow:none; margin:0; padding:12px 14px}
body.ux-limited #uxdFold{display:none}

/* 움직임 줄이기 설정 — 눌림 움직임도 끔 */
@media (prefers-reduced-motion:reduce){
  .btn, .chip, .tabs .tab, .tabs .tab-more-btn, #page-home .uxd button, #page-home .uxd #pePanel .pe-pill{transition:none !important}
  .btn:active, .chip:active, .tabs .tab:active, .tabs .tab-more-btn:active, #page-home .uxd button:active, #page-home .uxd #pePanel .pe-pill:active{transform:none !important}
}

/* ======== FIX1 (2026-10-03) 보유 코인을 첫 화면 맨 위로 — 진행 기록 docs/build/FIX1_PROGRESS.md ========
   진석 09-26(JR2) "제일 상단에는 현재 내가 보유하고 있는 코인 보여주고, 진입가와 현재 수익률" · 확인 대기 21번
   ⓪ #hdHold = 「오늘 자동 매수」 칸 위. 폰(≤560px) = 얇은 한 줄 막대(누르면 표) · 넓은 화면 = 표 늘 펼침, 1000px 넘으면 두 줄 위 전체 폭 [내 발명]
   모양은 UXD1 카드 그대로(새 색·새 글꼴 없음) */
#page-home .uxd #hdHold{order:0}                               /* hm-head(0) 바로 다음 — 같은 0 은 글 차례(hm-head 가 앞) */
@media (min-width:1000px){
  #page-home .uxd #hdHold{grid-column:1 / -1}
}
#page-home .uxd-hold-h{display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 12px; min-width:0}
#page-home .uxd-hold-h h2{margin:0; font-size:15.5px; flex:0 0 auto}
#page-home .uxd #hdHold #hdLine{margin:0; padding:0; border:0; flex:1 1 auto; min-width:0}   /* UXD1 의 「내 돈」 칸 안 윗줄 선 · 여백은 여기선 안 씀 */
#page-home .uxd-hold-h .ux-foldx{margin-left:auto}
#page-home .uxd #hdHold #hdBox{margin-top:6px}
body.ux-limited #hdHold{display:none}                           /* 가입자(관리자 아님) — 보유·잔고는 관리자 전용(hdCard 와 같음) */
@media (max-width:560px){
  #page-home .uxd #hdHold.ux-folded{padding:0}
  #hdHold.ux-folded .ux-foldsum{display:flex}
  #hdHold.ux-folded .uxd-hold-h, #hdHold.ux-folded #hdNote, #hdHold.ux-folded #hdBox, #hdHold.ux-folded .hm-more{display:none}
  #hdHold:not(.ux-folded) .ux-foldx{display:inline-block}
  #page-home .uxd #hdHold #hdFoldSum{margin:0; padding:12px 16px; min-height:44px; border:0; border-radius:18px; background:none; box-shadow:none; font-size:14px}
  #page-home .uxd #hdHold #hdLine{order:3; flex-basis:100%}     /* 펼쳤을 때: 「보유 코인 … 접기 ▴」 다음 줄에 원화·평가손익 */
}
/* FIX1(확인 대기 15번 곁) 후보 줄을 펼친 맨 위 한 줄 「… · 한 번에 최대 ● 801만」 — 금액(.hm-cap-mini)이 표 안이라 UI2A 규칙(.hm-tbl .hm-cap-mini 숨김)에
   같이 숨어 칸 이름만 「· 한 번에 최대」로 남던 것(폰·넓은 화면 둘 다, 예전 이름 「· 매매 가능」 때부터) → 펼친 줄 안에서만 보이게. 숫자는 그대로(hmCapMini) */
#page-home .hm-tbl .hm-expinfo .hm-cap-mini{display:inline; font-size:inherit; line-height:inherit; white-space:nowrap}

/* ======== UXR1 (2026-10-03) 역할별 화면 · 맨 위 상태 줄 · 자동 매수 탭 위 · 같은 틀 안 회원·설정·내 설정 ========
   진석(06:0x) "이 상단에 기능들, 관리자가 볼 내용과 사용자가 볼내용들을 정리를 잘해서 배치시켜 쓸데 없는 말들 다 빼버리고, 디자인 2d 3d로 이쁘고 직관적으로"
   목업 docs/design/UXR1_ROLES_MOCKUP_2026-10-03.html · 진행 기록 docs/build/UXR1_PROGRESS.md
   몸통 표시(app.js uxrApplyRole): uxr-on(이 절 켜짐) · uxr-admin(가입 꺼짐 지금 = 진석) · uxr-member(가입 켜짐 + 관리자 아님)
   모양은 UXD1 체계 그대로(깊이 카드 · 구슬 · 눌리는 단추 · 막대) — CSS·인라인 SVG 만, 계속 도는 움직임 없음. 새 글꼴 없음 */
:root{
  --uxr-ok:#3ecf8e; --uxr-okbg:rgba(62,207,142,.12); --uxr-warn:#f0a13a; --uxr-warnbg:rgba(240,161,58,.14);
  --uxr-bad:#ff6b6b; --uxr-badbg:rgba(255,107,107,.12); --uxr-blue:#4a9cf0; --uxr-bluebg:rgba(74,156,240,.12);
}
body[data-theme="light"]{
  --uxr-ok:#1b7f4b; --uxr-okbg:rgba(27,127,75,.10); --uxr-warn:#b7791f; --uxr-warnbg:#fdf3dc;
  --uxr-bad:#c0392b; --uxr-badbg:rgba(192,57,43,.10); --uxr-blue:#2563eb; --uxr-bluebg:rgba(37,99,235,.10);
}

/* ---- 맨 위 상태 줄 — 모든 탭(첫 화면 포함) ---- */
body.uxr-on.home-mode .topbar{display:flex}
body.uxr-on .topbar{flex-wrap:wrap; row-gap:6px; gap:8px; padding:8px 12px;
  background:linear-gradient(180deg, var(--uxd-c1), var(--uxd-c2)); border-bottom:1px solid var(--uxd-edge); box-shadow:0 10px 18px -16px rgba(0,0,0,.95)}
.uxr-st{display:none}
body.uxr-on .uxr-st{display:flex; align-items:center; gap:8px; flex:1 1 0; min-width:0}   /* 바탕 폭 0 → 줄을 안 넘기고 남은 폭만큼(남은 시간 글이 줄어듦) */
.uxr-dots{display:inline-flex; align-items:center; gap:2px; flex:0 0 auto; padding:3px; border-radius:999px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.uxr-dot{display:inline-flex; align-items:center; gap:5px; padding:2px 9px 2px 7px; border-radius:999px; font-size:12px; line-height:1.5; color:var(--fg2); white-space:nowrap; cursor:help}
.uxr-dot b{font-weight:700}
/* 점 = 작은 구슬(빛 받는 쪽이 밝음) */
.uxr-dot i{flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #e3e8ef, #7d8796 60%, #4a5260); box-shadow:0 1px 2px rgba(0,0,0,.5)}
.uxr-dot.lv-green i{background:radial-gradient(circle at 35% 30%, #e6fff2, #2fd18b 55%, #127a4c); box-shadow:0 0 7px rgba(47,209,139,.75)}
.uxr-dot.lv-yel i{background:radial-gradient(circle at 35% 30%, #fff3d6, #ffb547 55%, #b06a00); box-shadow:0 0 7px rgba(255,181,71,.75)}
.uxr-dot.lv-red i{background:radial-gradient(circle at 35% 30%, #ffe1e5, #ff5a6e 55%, #a3192c); box-shadow:0 0 8px rgba(255,90,110,.85)}
.uxr-dot.lv-red{color:var(--uxr-bad); font-weight:700; background:var(--uxr-badbg)}
.uxr-dot.lv-yel{color:var(--uxr-warn)}
.uxr-dot.uxr-mem-dot.lv-green{color:var(--uxr-ok)}
body:not(.uxr-member) .uxr-mem-dot{display:none}
body.uxr-member .uxr-adm-dot{display:none}
.uxr-cd{flex:0 1 auto; min-width:0; color:var(--fg2); font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-variant-numeric:tabular-nums}
/* 경고 한 줄(예전 tb-line 글 그대로) — 빨강·노랑일 때만, 점 줄 아래 한 줄 전체 */
body.uxr-on .tb-line{display:none}
body.uxr-on .tb-line[data-k="red"], body.uxr-on .tb-line[data-k="yel"]{display:flex; order:5; flex:1 1 100%; padding:5px 10px; border-radius:10px; font-size:13px}
body.uxr-on .tb-line[data-k="red"]{background:var(--uxr-badbg); box-shadow:inset 0 0 0 1px rgba(255,90,110,.35)}
body.uxr-on .tb-line[data-k="yel"]{background:var(--uxr-warnbg); box-shadow:inset 0 0 0 1px rgba(255,181,71,.35)}
body.uxr-member .tb-line{display:none !important}                  /* 회원은 점 하나(서버 답)로 — 녹화·엔진 같은 진석 PC 사정은 안 보임 */
body.uxr-on .topbar.tb-red{background:linear-gradient(180deg, var(--uxd-c1), var(--uxd-c2)); border-bottom-color:rgba(255,90,110,.55)}
/* 오른쪽: 구슬(가입 켜짐) · 화면 밝게 */
body.uxr-on .tb-right{gap:6px}
.uxr-who{display:inline-flex; align-items:center; gap:6px}
.uxr-who:empty{display:none}
#uxrWho .ae-links{gap:4px}
#uxrWho .ae-link:not(.ae-signin){display:none}                      /* 「내 설정」「관리자」는 탭으로 — 「로그인」만 */
.uxr-me{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--fg2); white-space:nowrap; cursor:help}
.uxr-me b{font-weight:600}
.uxr-av{width:22px; height:22px; border-radius:50%; flex:0 0 auto; box-shadow:0 3px 6px -2px rgba(0,0,0,.7), inset 0 -2px 3px rgba(0,0,0,.25)}
.uxr-me.mem .uxr-av{background:radial-gradient(circle at 35% 30%, #cfe4ff, #3b6fe0 60%, #1d3a86)}
.uxr-me.adm .uxr-av{background:radial-gradient(circle at 35% 30%, #fff1c4, #e6a817 60%, #8a5a00)}
body.uxr-on #btnTheme{display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 10px; border-radius:10px;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-bsh); color:var(--fg2);
  transition:transform .08s ease, box-shadow .08s ease}
body.uxr-on #btnTheme::before{content:''; width:16px; height:16px; flex:0 0 auto; background:center/16px 16px no-repeat
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffc24a' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='%23ffc24a'/%3E%3Cpath d='M12 2.2v2.4M12 19.4v2.4M2.2 12h2.4M19.4 12h2.4M5.1 5.1l1.7 1.7M17.2 17.2l1.7 1.7M5.1 18.9l1.7-1.7M17.2 6.8l1.7-1.7'/%3E%3C/svg%3E")}
body.uxr-on[data-theme="light"] #btnTheme::before{background-image:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.2 14.6A8.6 8.6 0 0 1 9.4 3.8a8.6 8.6 0 1 0 10.8 10.8z' fill='%235563d6'/%3E%3C/svg%3E")}
body.uxr-on #btnTheme:active{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
@media (max-width:560px){
  body.uxr-on .topbar{padding:7px 10px}
  body.uxr-on #btnTheme{width:32px; padding:0; justify-content:center; font-size:0}   /* 폰: 해·달 그림만(글자는 읽어 주기용으로 남음) */
  .uxr-me b{display:none}
}
@media (max-width:420px){
  .uxr-dots{gap:0}
  .uxr-dot{padding:2px 6px 2px 5px; gap:4px; font-size:11.5px}
  .uxr-dot i{width:8px; height:8px}
  .uxr-cd{font-size:12px}
  .uxr-av{width:20px; height:20px}
  body.uxr-on #btnTheme{width:30px; height:28px}
}

/* ---- 탭 줄 — 역할별 ---- */
body.uxr-member .tabs .uxr-adm, body.uxr-member .tab-menu{display:none !important}
body:not(.uxr-member) .tabs .uxr-mem{display:none !important}
body.uxr-member .tabs .tab{flex:1 1 0; text-align:center}           /* 회원 탭 넷은 한 줄을 고르게 */

/* ---- 첫 화면 — 맨 위 머리는 상태 줄로 옮김(같은 것 두 번 안 보임) · 돈 단추 아래 한 줄 풀이 ---- */
body.uxr-on #page-home .uxd .hm-head{display:none}
.uxr-stopnote{margin-top:7px; font-size:11.5px; line-height:1.45; color:var(--fg2); text-align:center}
.uxr-stopnote::before{content:''; display:inline-block; width:7px; height:7px; margin-right:6px; vertical-align:1px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #ffd6db, #ff5a6e 55%, #a3192c)}
#page-home .uxd .uxr-stopnote{margin-top:8px}
/* 회원 홈 — 내 것만(① 내 자동 매수 · ② ★ · ③ 내 돈). 9시·장중 후보·시장 칸은 관리자 화면에만 */
body.uxr-member #uxdCands, body.uxr-member #hmMkCard, body.uxr-member #hmDayBan{display:none}
#page-home .uxd #uxrMyAuto{order:1}
#page-home .uxd #uxrMyMoney{order:4}
#page-home .uxd .uxr-mcard[hidden]{display:none}
.uxr-line{display:flex; align-items:center; gap:10px; padding:10px 0; border-top:1px solid var(--line); font-size:13.5px; min-width:0}
.uxd-h + .uxr-line{border-top:0; margin-top:4px}
.uxr-line > span:first-child{flex:1 1 auto; min-width:0}
.uxr-lv{color:var(--fg2); font-size:12.5px}
/* 보기만 하는 구슬 스위치(누르는 곳 아님) */
.uxr-sw{position:relative; flex:0 0 auto; width:42px; height:24px; border-radius:999px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh); opacity:.8}
.uxr-sw::after{content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff, #aab4c4 70%); box-shadow:0 2px 4px rgba(0,0,0,.55)}
.uxr-sw.on{background:linear-gradient(90deg, #1d8f5f, #2fd18b); opacity:1}
.uxr-sw.on::after{left:21px}
.uxr-mcard .uxd-acts .hm-btn2{flex:1 1 0}
.uxr-tagline{margin-top:6px}
.uxr-tag{display:inline-block; font-size:11px; line-height:1.5; color:var(--uxr-warn); border:1px dashed var(--uxr-warn); border-radius:7px; padding:0 6px}
#page-home .uxd .uxr-donut0 .uxd-dk-t2{fill:var(--fg2)}

/* ---- 자동 매수 탭 위 — 딱지 + 단계 막대(첫 화면 ①과 같은 그림) + 단추 둘 + 한 줄 풀이 ---- */
#page-fire .uxr-fwcard{border-radius:18px; padding:14px 14px 13px; border-color:var(--uxd-edge)}
#page-fire .uxr-fwh{display:flex; align-items:baseline; gap:8px; min-width:0}
#page-fire .uxr-fwh h3{margin:0; font-size:16px; display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px; min-width:0}
#page-fire .uxr-go{margin-left:auto; flex:0 0 auto; font-size:12.5px; color:var(--accent); text-decoration:none; white-space:nowrap}
#page-fire .uxd-chip{display:inline-block; font-size:11.5px; font-weight:600; line-height:1.5; padding:1px 9px; border-radius:999px;
  border:1px solid var(--line); color:var(--fg2); background:var(--bg); white-space:nowrap; cursor:help}
#page-fire .uxd-chip.c-ok{color:var(--uxr-ok); background:var(--uxr-okbg); border-color:rgba(62,207,142,.32)}
#page-fire .uxd-chip.c-warn{color:var(--uxr-warn); background:var(--uxr-warnbg); border-color:rgba(240,161,58,.38)}
#page-fire .uxd-chip.c-red{color:var(--uxr-bad); background:var(--uxr-badbg); border-color:rgba(255,107,107,.42)}
#page-fire .uxd-chip.c-blue{color:var(--accent); background:var(--uxr-bluebg); border-color:rgba(74,156,240,.38)}
/* 단계 막대 — 첫 화면(#page-home .uxd-tl)과 같은 값 */
#page-fire .uxr-tl{position:relative; height:60px; margin:12px 0 2px}
#page-fire .uxr-tl .uxd-bar{position:absolute; left:7%; right:7%; top:13px; height:6px; border-radius:6px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-fire .uxr-tl .uxd-fill{position:absolute; top:13px; height:6px; border-radius:6px; background:linear-gradient(90deg,#3b7bff,#7cc4ff); box-shadow:0 0 9px rgba(90,169,255,.55)}
#page-fire .uxr-tl .uxd-n{position:absolute; top:6px; width:20px; height:20px; margin-left:-10px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--uxd-sph1), var(--uxd-sph2) 70%); border:1px solid var(--uxd-sph-e); box-shadow:0 3px 6px -2px var(--uxd-drop)}
#page-fire .uxr-tl .uxd-n.done{background:radial-gradient(circle at 35% 30%,#bfe0ff,#3b7bff 58%,#1d3d86); border-color:#7cb6ff; box-shadow:0 0 10px rgba(90,169,255,.55), 0 3px 6px -2px var(--uxd-drop)}
#page-fire .uxr-tl .uxd-n.now{background:radial-gradient(circle at 35% 30%,#fff,#ffcf7a 45%,#d07b00); border-color:#ffd08a; box-shadow:0 0 0 5px rgba(255,181,71,.18), 0 0 12px rgba(255,181,71,.7)}
#page-fire .uxr-tl .uxd-n.live{background:radial-gradient(circle at 35% 30%,#d6ffe9,#2fd18b 55%,#127a4c); border-color:#7ff0bd; box-shadow:0 0 0 5px rgba(47,209,139,.16), 0 0 10px rgba(47,209,139,.6)}
#page-fire .uxr-tl .uxd-n.bad{background:radial-gradient(circle at 35% 30%,#ffd6db,#ff5a6e 55%,#a3192c); border-color:#ff9aa6; box-shadow:0 0 8px rgba(255,90,110,.5)}
#page-fire .uxr-tl .uxd-n.skip{opacity:.45}
#page-fire .uxr-tl .uxd-lb{position:absolute; top:31px; transform:translateX(-50%); text-align:center; font-size:11px; line-height:1.3; color:var(--fg2); white-space:nowrap; font-variant-numeric:tabular-nums}
#page-fire .uxr-tl .uxd-lb b{display:block; color:var(--fg); font-weight:600; font-size:11.5px}
#page-fire .uxr-tl .uxd-lb.now b{color:var(--uxr-warn)}
/* 예전 상태 글 — 숨김(딱지·막대와 같은 뜻). 빨강 경고(안전 정지 걸림·파는 프로그램 안 돎)·예약 경고만 보임(app.js uxrFwPaint 가 .fwauto 에 uxr-show · 예약 줄은 fwsched-warn 일 때) */
#page-fire .uxr-fwcard .fwauto, #page-fire .uxr-fwcard #fwSched{display:none}
#page-fire .uxr-fwcard .fwauto.uxr-show{display:flex; margin:8px 0 0; padding:8px 10px; border-radius:12px; background:var(--uxr-badbg); box-shadow:inset 0 0 0 1px rgba(255,90,110,.35)}
#page-fire .uxr-fwcard .fwauto.uxr-show #fwAutoState{display:none}
#page-fire .uxr-fwcard #fwSched.fwsched-warn{display:block; margin-top:8px; border-radius:12px}   /* 예약 경고(준비 안 됨·대기 프로그램 사라짐)만 */
/* 돈 단추 둘 — 첫 화면과 같은 모양(취소 = 회색 눌리는 단추 · 정지 = 짙은 빨강) */
#page-fire .uxr-fwcard .fw-top-acts{display:flex; flex-wrap:nowrap; gap:8px; margin-top:12px}
#page-fire .uxr-fwcard .fw-top-acts .btn{flex:1 1 0; min-width:0; min-height:46px; border-radius:14px; font-size:15px; font-weight:700; padding:8px 6px;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-bsh); color:var(--fg)}
#page-fire .uxr-fwcard .fw-top-acts #fwAutoStop{background:linear-gradient(180deg, var(--uxd-r1), var(--uxd-r2)); border-color:rgba(255,107,107,.55); color:#ff8b98}
body[data-theme="light"] #page-fire .uxr-fwcard .fw-top-acts #fwAutoStop{border-color:rgba(192,57,43,.5); color:#c0392b}
#page-fire .uxr-fwcard .fw-top-acts .btn:active:not(:disabled){transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
#page-fire .uxr-fwcard .fw-top-acts .btn:disabled{box-shadow:none; opacity:.45}
#page-fire .uxr-fwpnl{border-radius:18px}
#page-fire .uxr-fwpnl > .acctsub:first-child{margin-top:2px}
/* 넓은 화면(1000px 넘음): 왼쪽 = 자동 매수(딱지·막대·단추) · 오른쪽 = 손익·산 것 판 것 · 「고급」은 아래 전체 폭 [내 발명] */
@media (min-width:1000px){
  #page-fire > .reportwrap{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:14px; align-items:start}
  #page-fire > .reportwrap > *{grid-column:1 / -1}
  #page-fire > .reportwrap > .uxr-fwcard{grid-column:1}
  #page-fire > .reportwrap > .uxr-fwpnl{grid-column:2}
}

/* ---- 같은 틀 안 화면(회원 · 설정 · ★ 종목 · 내 설정) — 화면 높이 − 맨 위 줄·탭 줄, 그 안에서 밀어 봄 ---- */
.uxr-frame{display:block}
.uxr-ifr{display:block; width:100%; border:0; background:var(--bg);
  height:calc(100vh - var(--chrome, 96px)); height:calc(100dvh - var(--chrome, 96px)); min-height:320px}
.uxr-wrap{max-width:760px; margin:0 auto; padding:12px 12px 32px}
.uxr-wrap[hidden]{display:none}
.uxr-card{background:linear-gradient(165deg, var(--uxd-c1), var(--uxd-c2) 62%); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-sh);
  border-radius:18px; padding:14px 14px 13px; margin-bottom:12px; font-size:14px; line-height:1.55; color:var(--fg)}
.uxr-card .uxd-h{display:flex; align-items:baseline; gap:8px; min-width:0}
.uxr-card h2{margin:0; font-size:15.5px; display:flex; align-items:center; flex-wrap:wrap; gap:4px 8px}
.uxr-card .uxd-chip{display:inline-block; font-size:11.5px; font-weight:600; line-height:1.5; padding:1px 9px; border-radius:999px;
  border:1px solid var(--line); color:var(--fg2); background:var(--bg); white-space:nowrap}
.uxr-note{margin-top:10px; font-size:12.5px; color:var(--fg2); text-align:center}
.uxr-acts{display:flex; gap:8px; margin-top:12px}
.uxr-btnlink{flex:1 1 0; display:inline-flex; align-items:center; justify-content:center; min-height:42px; border-radius:14px; font-weight:600; font-size:14px;
  text-decoration:none; color:var(--fg); background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-bsh)}
.uxr-btnlink:active{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
/* 회원이 쓰기까지 네 단계(가입 기능 꺼짐 안내) — 구슬 + 막대 */
.uxr-flow{position:relative; display:flex; justify-content:space-between; margin:16px 4px 4px; padding-top:2px}
.uxr-flow::before{content:''; position:absolute; left:11%; right:11%; top:13px; height:6px; border-radius:6px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.uxr-fn{position:relative; flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:5px; min-width:0; text-align:center}
.uxr-fn i{display:grid; place-items:center; width:26px; height:26px; border-radius:50%; font-style:normal; font-size:12px; font-weight:700; color:#c4cde0;
  background:radial-gradient(circle at 35% 30%, var(--uxd-sph1), var(--uxd-sph2) 70%); border:1px solid var(--uxd-sph-e); box-shadow:0 4px 8px -3px var(--uxd-drop)}
body[data-theme="light"] .uxr-fn i{color:#4a5568}
.uxr-fn b{font-size:12px; font-weight:600; line-height:1.3; white-space:nowrap}
.uxr-fn small{font-size:10.5px; color:var(--fg2); line-height:1.3}
/* 빈 자리(내 매매) — 막대 그림 + 「— · 키 등록 뒤」 */
.uxr-empty{display:flex; flex-direction:column; align-items:center; gap:4px; padding:14px 0 6px; text-align:center; color:var(--fg2); font-size:12.5px}
.uxr-empty b{font-size:15px; color:var(--fg)}
.uxr-emptyart{width:120px; height:64px; margin-bottom:4px; filter:drop-shadow(0 6px 8px var(--uxd-drop))}
.uxr-ea0{stroke:var(--line); stroke-width:2}
.uxr-ea1{fill:var(--uxd-sph2); stroke:var(--uxd-sph-e)}
.uxr-ea2{fill:var(--uxd-sph1); stroke:var(--uxd-sph-e); opacity:.85}

/* ---- 탭 위쪽 — 제목 줄을 같은 모양으로 · 긴 뜻 줄은 「자세히」 안 ---- */
#page-screener .sc-head, #page-trades .tj-head{padding:10px 12px; margin:0 0 10px; border-radius:16px;
  background:linear-gradient(165deg, var(--uxd-c1), var(--uxd-c2) 62%); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-sh-s)}
#page-screener .sc-head .sc-title, #page-trades .tj-head .tj-title{font-size:16.5px}
details.uxr-more{margin:0 0 8px}
details.uxr-more > summary{display:inline-flex; align-items:center; gap:4px; cursor:pointer; list-style:none; font-size:12px; color:var(--fg2);
  padding:2px 10px; border-radius:999px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
details.uxr-more > summary::-webkit-details-marker{display:none}
details.uxr-more > summary::after{content:'▸'}
details.uxr-more[open] > summary::after{content:'▾'}
details.uxr-more > .sc-legend{margin-top:6px}

@media (prefers-reduced-motion:reduce){
  body.uxr-on #btnTheme, #page-fire .uxr-fwcard .fw-top-acts .btn{transition:none !important}
  body.uxr-on #btnTheme:active, #page-fire .uxr-fwcard .fw-top-acts .btn:active{transform:none !important}
}

/* ======== UXR2 (2026-10-03) 매매 내역 새 모양 · 볼 코인 지난 기록 ========
   진석(08:1x) "…매매 내역 같은 거는 좀더 보기 좋게 정리를 시켜야지 사용자가 보는 것들" · (08:2x) "장중에 튄 코인들 … 기록을 남겨놔야지"
   · "3D 나 이런 것들 좀잘 집어넣어 좀 보기 좋게 2D 3D"
   목업 docs/design/UXR2_TRADES_MOCKUP_2026-10-03.html · 진행 기록 docs/build/UXR2_PROGRESS.md
   모양은 UXD1 체계 그대로(깊이 카드 · 구슬 · 눌리는 단추 · 파인 자리) + 3D: 기운 성적 판 · 입체 기둥(perspective + rotateX/rotateY, 앞면·윗면·옆면 색 다름)
   · 두께 있는 고리 · 빛 받는 구슬. CSS·인라인 SVG 만 · 계속 도는 움직임 없음(처음 한 번 자람 · 누를 때 눌림만). 색: 이익 = 빨강 · 손해 = 파랑(이 탭 예전 표와 같음) */
:root{
  --u2-up1:#ff9aa6; --u2-up2:#e8364f; --u2-upt:#ffc6cd; --u2-ups:#97192b;     /* 이익 기둥 앞면(위→아래) · 윗면 · 옆면 */
  --u2-dn1:#8fb6ff; --u2-dn2:#2f63e0; --u2-dnt:#c8dbff; --u2-dns:#1a3a86;     /* 손해 기둥 */
  --u2-z1:#5c677d; --u2-z2:#3a4357; --u2-zt:#7f8a9e; --u2-zs:#262d3b;         /* 0원 · 빈 자리 */
  --u2-plate1:#1f283b; --u2-plate2:#141a27; --u2-slab:#0a0e16;                 /* 성적 판 윗면 → 아랫면 · 판 두께 */
  --u2-glass:rgba(120,160,230,.10); --u2-floor:rgba(150,180,235,.16);
}
body[data-theme="light"]{
  --u2-up1:#ff8e9c; --u2-up2:#d42a41; --u2-upt:#ffd3d9; --u2-ups:#a11d30;
  --u2-dn1:#7eaaff; --u2-dn2:#2457d4; --u2-dnt:#d6e4ff; --u2-dns:#1d3f99;
  --u2-z1:#c6cdd8; --u2-z2:#aab3c2; --u2-zt:#e4e8ef; --u2-zs:#8f99a9;
  --u2-plate1:#ffffff; --u2-plate2:#f1f4f9; --u2-slab:#cfd6e2;
  --u2-glass:rgba(37,99,235,.07); --u2-floor:rgba(37,99,235,.12);
}
.u2{display:block; min-width:0}
.u2 .up, #page-home .u2-shcard .up{color:var(--up)}
.u2 .dn, #page-home .u2-shcard .dn{color:var(--dn)}
.u2 .muted, .u2 .hm-z, .u2-shcard .hm-z{color:var(--fg3)}

/* ---- 카드 공통 ---- */
.u2-card{position:relative; background:linear-gradient(165deg, var(--uxd-c1), var(--uxd-c2) 62%); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-sh);
  border-radius:18px; padding:14px 14px 13px; margin:0 0 12px; color:var(--fg); font-size:14px; line-height:1.5; min-width:0}
.u2-h{display:flex; align-items:baseline; gap:8px; min-width:0; margin:0 0 6px}
.u2-h h2{margin:0; font-size:15.5px; font-weight:700; flex:0 0 auto; color:var(--fg)}
.u2-cap{margin-left:auto; min-width:0; font-size:12px; color:var(--fg2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-variant-numeric:tabular-nums}
.u2-cap b{font-weight:700}
.u2-chip{margin-left:auto; flex:0 0 auto; font-size:11.5px; font-weight:600; line-height:1.5; padding:1px 9px; border-radius:999px; color:var(--fg2);
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh); white-space:nowrap; cursor:help}
.u2-k{font-size:12px; color:var(--fg2)}
.u2-sub{font-size:12px; color:var(--fg3); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}

/* ---- 성적 판 — 살짝 뒤로 기운 두께 있는 판 · 누르면 들어감 ---- */
.u2-sum{background:linear-gradient(165deg, var(--u2-plate1), var(--u2-plate2) 66%); outline:none;
  transform:perspective(1000px) rotateX(4deg); transform-origin:50% 100%;
  box-shadow:0 1px 0 var(--uxd-hi) inset, 0 6px 0 -1px var(--u2-slab), 0 22px 28px -18px rgba(0,0,0,.95);
  transition:transform .12s ease, box-shadow .12s ease; margin-bottom:16px}
.u2-sum.u2-press{transform:perspective(1000px) rotateX(1.5deg) translateY(4px);
  box-shadow:0 1px 0 var(--uxd-hi) inset, 0 2px 0 -1px var(--u2-slab), 0 10px 16px -12px rgba(0,0,0,.9)}
.u2-sum:focus-visible{box-shadow:0 0 0 2px var(--accent), 0 6px 0 -1px var(--u2-slab), 0 22px 28px -18px rgba(0,0,0,.95)}
body[data-theme="light"] .u2-sum{box-shadow:0 1px 0 #fff inset, 0 6px 0 -1px var(--u2-slab), 0 20px 26px -18px rgba(16,24,40,.5)}
.u2-hero{display:flex; align-items:center; gap:12px; min-width:0}
.u2-hl{flex:1 1 auto; min-width:0}
.u2-big{font-size:30px; font-weight:800; line-height:1.15; letter-spacing:-.01em; font-variant-numeric:tabular-nums; white-space:nowrap;
  text-shadow:0 2px 0 rgba(0,0,0,.28)}
body[data-theme="light"] .u2-big{text-shadow:0 1px 0 #fff}
/* 두께 있는 고리(아랫단이 그림자처럼 3px 아래) */
.u2-ring{flex:0 0 auto; width:76px; height:76px; overflow:visible; filter:drop-shadow(0 8px 10px var(--uxd-drop))}
.u2-r-under{stroke:rgba(0,0,0,.42)}
body[data-theme="light"] .u2-r-under{stroke:rgba(16,24,40,.16)}
.u2-r-base{stroke:var(--uxd-well)}
.u2-rg0, .u2-hg0{stop-color:var(--u2-up1)} .u2-rg1, .u2-hg1{stop-color:var(--u2-up2)}
.u2-r-t1{fill:var(--fg); font-size:15px; font-weight:800}
.u2-r-t2{fill:var(--fg2); font-size:8.5px}
/* 누적 선 — 아래 면 그라데이션 · 끝 점 구슬 */
.u2-spark{margin:10px 0 0}
.u2-spw{position:relative; height:76px}
.u2-sp{display:block; width:100%; height:76px; overflow:visible; filter:drop-shadow(0 6px 6px rgba(0,0,0,.35))}
body[data-theme="light"] .u2-sp{filter:drop-shadow(0 5px 5px rgba(16,24,40,.14))}
.u2-sz{stroke:var(--fg3); stroke-dasharray:3 4; stroke-width:1; vector-effect:non-scaling-stroke}
.u2-sline{stroke-width:2.4; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke}
.u2-sp.up .u2-sline{stroke:var(--up)} .u2-sp.dn .u2-sline{stroke:var(--dn)} .u2-sp.flat .u2-sline{stroke:var(--fg2)}
.u2-sp.up .u2-sa0{stop-color:var(--up); stop-opacity:.45} .u2-sp.up .u2-sa1{stop-color:var(--up); stop-opacity:0}
.u2-sp.dn .u2-sa0{stop-color:var(--dn); stop-opacity:.45} .u2-sp.dn .u2-sa1{stop-color:var(--dn); stop-opacity:0}
.u2-sp.flat .u2-sa0, .u2-sp.flat .u2-sa1{stop-color:var(--fg3); stop-opacity:.15}
.u2-sdot{position:absolute; width:13px; height:13px; margin:-6.5px 0 0 -6.5px; border-radius:50%; pointer-events:none}
.u2-sdot.up{background:radial-gradient(circle at 35% 30%, #fff, var(--u2-up1) 45%, var(--u2-up2) 75%); box-shadow:0 0 0 4px rgba(232,54,79,.18), 0 3px 6px rgba(0,0,0,.5)}
.u2-sdot.dn{background:radial-gradient(circle at 35% 30%, #fff, var(--u2-dn1) 45%, var(--u2-dn2) 75%); box-shadow:0 0 0 4px rgba(47,99,224,.2), 0 3px 6px rgba(0,0,0,.5)}
.u2-sdot.flat{background:radial-gradient(circle at 35% 30%, #fff, var(--u2-z1) 60%); box-shadow:0 3px 6px rgba(0,0,0,.5)}
.u2-scap{display:flex; justify-content:space-between; gap:8px; font-size:10.5px; color:var(--fg3); margin-top:2px; font-variant-numeric:tabular-nums}
.u2-scm{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
/* 칸 넷 — 떠 있는 작은 판 */
.u2-tiles{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:12px}
@media (min-width:600px){ .u2-tiles{grid-template-columns:repeat(4, minmax(0,1fr))} }
@media (min-width:1000px){ #u2Tj .u2-tiles{grid-template-columns:repeat(2, minmax(0,1fr))} }   /* 넓은 화면 = 왼쪽 칸 안이라 둘씩 */
.u2-tile{min-width:0; padding:8px 10px 7px; border-radius:12px; border:1px solid var(--uxd-edge); cursor:help;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:var(--uxd-bsh)}
.u2-tk{display:block; font-size:11.5px; color:var(--fg2)}
.u2-tv{display:block; font-size:16.5px; font-weight:700; line-height:1.3; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.u2-ts{display:block; font-size:10.5px; color:var(--fg3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.u2-warn{margin-top:8px; padding:6px 10px; border-radius:10px; font-size:12.5px; line-height:1.45; color:var(--uxr-warn); background:var(--uxr-warnbg);
  box-shadow:inset 0 0 0 1px rgba(255,181,71,.35)}

/* ---- 기간 칩 · 자동/직접 고르기 ---- */
.u2-bar{display:flex; align-items:center; gap:8px; margin:0 0 12px; min-width:0}
.u2-seg{display:flex; gap:2px; flex:1 1 auto; max-width:270px; padding:3px; border-radius:12px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.u2-seg button{flex:1 1 0; min-width:0; border:0; background:none; color:var(--fg2); font:inherit; font-size:13px; line-height:1.4; padding:6px 0; border-radius:9px; cursor:pointer;
  transition:transform .08s ease}
.u2-seg button.on{color:var(--fg); font-weight:700; background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:var(--uxd-bsh)}
.u2-seg button:active{transform:translateY(1px)}
.u2-src{margin-left:auto; flex:0 0 auto; max-width:46%; font:inherit; font-size:13px; color:var(--fg); padding:6px 8px; border-radius:10px;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); border:1px solid var(--uxd-edge); box-shadow:var(--uxd-bsh)}

/* ---- 날짜별 입체 기둥 ---- */
.u2-sky{position:relative; overflow:hidden; perspective:760px; perspective-origin:50% 20%; padding:18px 30px 22px; margin:4px -4px 0; border-radius:14px;
  background:radial-gradient(120% 90% at 50% 100%, var(--u2-glass), transparent 70%)}
.u2-scene{position:relative; width:100%; margin:0 auto; transform-style:preserve-3d; transform:rotateX(-16deg) rotateY(-26deg)}
.u2-floor{position:absolute; left:-3%; width:106%; height:20px; margin-top:.5px; transform-origin:50% 0; transform:translateZ(10px) rotateX(-90deg);
  background:var(--u2-floor); border:1px solid rgba(150,180,235,.22); border-radius:3px; pointer-events:none}
.u2-col{--d:12px; position:absolute; display:block; left:calc((var(--i) + .2) * (100% / var(--n))); width:calc(60% / var(--n)); height:var(--h);
  margin:0; padding:0; border:0; background:none; cursor:pointer; -webkit-appearance:none; appearance:none; font:inherit; color:inherit;
  transform-style:preserve-3d; transform-origin:50% 100%;
  transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.u2-col[data-neg="1"]{transform-origin:50% 0}
.u2-col.u2-seed{transform:scaleY(.02)}
.u2-thin .u2-col{--d:8px}
.u2-col > i{position:absolute; display:block; pointer-events:none}
.u2-col .u2-ff{left:0; top:0; width:100%; height:100%; border-radius:2px; transform:translateZ(calc(var(--d) / 2));
  background:linear-gradient(180deg, var(--c1), var(--c2)); box-shadow:inset 0 1px 0 rgba(255,255,255,.4), inset 1px 0 0 rgba(255,255,255,.12)}
.u2-col .u2-ft{left:0; top:0; width:100%; height:var(--d); transform-origin:50% 0; transform:translateZ(calc(var(--d) / 2)) rotateX(-90deg); background:var(--ct)}
.u2-col .u2-fs{left:100%; top:0; width:var(--d); height:100%; transform-origin:0 50%; transform:translateZ(calc(var(--d) / 2)) rotateY(90deg);
  background:linear-gradient(180deg, var(--cs), var(--c2))}
.u2-col.up{--c1:var(--u2-up1); --c2:var(--u2-up2); --ct:var(--u2-upt); --cs:var(--u2-ups)}
.u2-col.dn{--c1:var(--u2-dn1); --c2:var(--u2-dn2); --ct:var(--u2-dnt); --cs:var(--u2-dns)}
.u2-col.z{--c1:var(--u2-z1); --c2:var(--u2-z2); --ct:var(--u2-zt); --cs:var(--u2-zs)}
.u2-col.on .u2-ff{box-shadow:inset 0 0 0 2px rgba(255,255,255,.9), 0 0 12px rgba(255,255,255,.35)}
.u2-col.on .u2-ft{background:#fff}
.u2-col:focus-visible{outline:none}
.u2-col:focus-visible .u2-ff{box-shadow:inset 0 0 0 2px var(--accent)}
.u2-axis{display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:11px; color:var(--fg3); margin-top:2px; font-variant-numeric:tabular-nums}
.u2-lg{display:inline-flex; align-items:center; gap:4px}
.u2-lg i{display:inline-block; width:9px; height:9px; border-radius:3px}
.u2-lgu{background:linear-gradient(180deg, var(--u2-up1), var(--u2-up2))}
.u2-lgd{background:linear-gradient(180deg, var(--u2-dn1), var(--u2-dn2)); margin-left:6px}

/* ---- 날짜 줄 · 그날 거래 한 줄씩 ---- */
.u2-day{border-top:1px solid var(--line)}
.u2-h + .u2-day{border-top:0}
.u2-dh{display:flex; align-items:center; gap:8px; width:100%; min-width:0; margin:0; padding:10px 2px; border:0; border-radius:10px; background:none;
  color:inherit; font:inherit; text-align:left; cursor:pointer; transition:transform .08s ease}
.u2-dh:active{transform:translateY(1px)}
.u2-dd{flex:0 0 44px; display:flex; flex-direction:column; line-height:1.2; font-variant-numeric:tabular-nums}
.u2-dd b{font-size:13.5px} .u2-dd small{font-size:11px; color:var(--fg3)}
.u2-dn{flex:0 0 auto; font-size:12px; color:var(--fg2); white-space:nowrap}
.u2-db{flex:1 1 auto; position:relative; min-width:28px; height:10px; border-radius:6px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.u2-db::before{content:''; position:absolute; left:50%; top:-2px; bottom:-2px; width:1px; background:var(--fg3); opacity:.55}
.u2-db i{position:absolute; top:0; bottom:0; border-radius:6px}
.u2-db i.up{background:linear-gradient(180deg, var(--u2-up1), var(--u2-up2)); box-shadow:0 2px 5px -2px var(--u2-up2), inset 0 1px 0 rgba(255,255,255,.35)}
.u2-db i.dn{background:linear-gradient(180deg, var(--u2-dn1), var(--u2-dn2)); box-shadow:0 2px 5px -2px var(--u2-dn2), inset 0 1px 0 rgba(255,255,255,.35)}
.u2-db i.z{background:var(--u2-z1)}
.u2-dv{flex:0 0 auto; min-width:58px; text-align:right; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap}
.u2-chev{flex:0 0 auto; width:10px; color:var(--fg3); transition:transform .15s ease}
.u2-day.open .u2-chev{transform:rotate(90deg)}
.u2-day.open > .u2-dh{background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.u2-dl{padding:4px 0 10px 2px}
.u2-tr{display:flex; align-items:center; gap:10px; min-width:0; padding:8px 4px; border-top:1px dashed var(--line)}
.u2-dl > .u2-tr:first-child, .u2-shrec .u2-k + .u2-tr{border-top:0}
/* 빛 받는 구슬 — 종목 앞 두 글자 · 색은 종목 이름으로 정함 [내 발명] */
.u2-orb{flex:0 0 auto; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; font-size:10.5px; font-weight:800; letter-spacing:-.02em; color:#10141c;
  background:radial-gradient(circle at 35% 30%, hsl(var(--hue),95%,92%), hsl(var(--hue),78%,60%) 52%, hsl(var(--hue),70%,30%));
  box-shadow:0 5px 9px -3px rgba(0,0,0,.75), inset 0 -2px 3px rgba(0,0,0,.25)}
body[data-theme="light"] .u2-orb{box-shadow:0 4px 8px -3px rgba(16,24,40,.45), inset 0 -2px 3px rgba(0,0,0,.18)}
.u2-tm{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:1px}
.u2-tn{display:flex; align-items:center; flex-wrap:wrap; gap:3px 6px; min-width:0}
.u2-tn b{font-size:14px}
.u2-kn{font-size:11.5px; color:var(--fg2); max-width:8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.u2-tw{font-size:11.5px; color:var(--fg3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-variant-numeric:tabular-nums}
.u2-why{align-self:flex-start; margin-top:2px; padding:0 7px; border-radius:999px; font-size:11px; line-height:1.55; color:var(--fg2);
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh); white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; cursor:help}
.u2-tag{font-size:10.5px; line-height:1.5; padding:0 6px; border-radius:6px; color:var(--uxr-warn); border:1px solid rgba(240,161,58,.45); cursor:help}
.u2-tag-led{color:var(--fg2); border-color:var(--line); border-style:dashed}
.u2-ta{flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; text-align:right; font-variant-numeric:tabular-nums}
.u2-ta b{font-size:14px; white-space:nowrap} .u2-ta small{font-size:11.5px; white-space:nowrap}
.u2-note{font-size:11.5px; color:var(--fg3); padding:4px}

/* ---- 빈 상태(회원 · 이 기간 거래 없음) ---- */
.u2-empty{display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; padding:14px 14px 18px}
.u2-ghost{width:220px; max-width:100%; padding:10px 24px 14px; margin:0; background:none}
.u2-ghost .u2-col{cursor:default; opacity:.55}
.u2-ghost .u2-col .u2-ff{background:transparent; box-shadow:none; border:1.5px dashed var(--fg3)}
.u2-emt{font-size:14px; font-weight:600; color:var(--fg)}

/* ---- 관리자 매매 기록 탭 — 넓은 화면(1000px 넘음) 두 칸: 왼쪽 성적·기간·기둥 · 오른쪽 날짜 줄 [내 발명] ---- */
@media (min-width:1000px){
  #u2Tj{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); column-gap:16px; align-items:start}
  #u2Tj > *{grid-column:1}
  #u2Tj > .u2-days{grid-column:2; grid-row:1 / span 4}
  #u2Tj > .u2-empty{grid-column:2; grid-row:1 / span 3}
}
/* 예전 표(합계 줄·거르기·정렬 표) — 접어 둠(지우지 않음 · id·함수 그대로) */
details.u2-old{margin:4px 0 10px; padding:0}
details.u2-old > summary{display:flex; align-items:baseline; gap:8px; padding:12px 14px; cursor:pointer; list-style:none; font-weight:600}
details.u2-old > summary::-webkit-details-marker{display:none}
details.u2-old > summary::after{content:'▸'; margin-left:auto; color:var(--fg2)}
details.u2-old[open] > summary::after{content:'▾'}
details.u2-old > summary .muted{font-weight:400; font-size:12px}
details.u2-old[open]{padding:0 12px 12px}
details.u2-old[open] > summary{padding:12px 2px}

/* ---- 볼 코인 지난 기록 ---- */
#page-screener .u2-shcard{border-radius:18px; padding:14px 14px 12px; margin-top:12px}
.u2-shcard .u2-h h2{font-size:15.5px}
.u2-def{font-size:12px; color:var(--fg2); margin:-2px 0 8px; cursor:help}
.u2-shtop{display:flex; align-items:center; gap:14px; margin:4px 0 10px}
.u2-shring{width:84px; height:84px}
.u2-shtx{min-width:0}
.u2-shtx .u2-big{font-size:26px}
.u2-shtx .u2-shl{white-space:normal; overflow:visible}   /* 목록별 줄(관리자)은 줄 바꿈 허용 — 폰에서 뒤가 잘리던 것 */
.u2-shdays{display:flex; flex-direction:column; gap:7px; margin:4px 0 12px}
.u2-shd{display:flex; align-items:center; gap:8px; min-width:0; cursor:help}
/* FIXSH: 숫자는 날짜 옆(왼쪽)·항상 보임, 막대는 남는 자리에서 최대 260px — 넓은 화면에서 막대가 늘어나 숫자를 밀어내던 것 */
.u2-shb{flex:1 1 60px; position:relative; min-width:36px; max-width:260px; height:14px; border-radius:7px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.u2-shb-all{position:absolute; left:0; top:0; bottom:0; overflow:hidden; border-radius:7px;
  background:linear-gradient(180deg, var(--u2-z1), var(--u2-z2)); box-shadow:0 3px 6px -3px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.28)}
.u2-shb-hit{position:absolute; left:0; top:0; bottom:0; background:linear-gradient(180deg, var(--u2-up1), var(--u2-up2)); box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 2px 0 4px -1px rgba(0,0,0,.35)}
.u2-shv{flex:0 1 236px; min-width:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; font-size:12.5px; font-variant-numeric:tabular-nums}
.u2-shc{white-space:nowrap}
.u2-shv small{font-size:11.5px; color:var(--fg2)}
.u2-shw{font-size:11px; padding:0 6px; border-radius:999px; color:var(--fg2); border:1px dashed var(--fg3)}
.u2-shdn{font-size:11.5px; color:var(--dn)}
.u2-shtags{display:flex; flex-wrap:wrap; gap:0 4px; font-size:11px; color:var(--warn)}
.u2-shtag{white-space:nowrap}
.u2-shlo{display:block; margin-top:2px; font-size:11px; color:var(--fg2); white-space:nowrap}
.u2-shlo.dn{color:var(--dn); font-weight:600}
.u2-shrec{border-top:1px solid var(--line); padding-top:8px}
.u2-shrec > .u2-k{margin:0 0 2px}
.u2-kind{display:inline-block; margin-right:6px; padding:0 6px; border-radius:999px; font-size:10.5px; line-height:1.55; border:1px solid var(--line); color:var(--fg2)}
.u2-kind.start{color:var(--up); border-color:rgba(255,82,82,.45)}
.u2-kind.pre{color:var(--purple); border-color:rgba(169,123,255,.45)}
.u2-res{margin-top:2px; padding:0 7px; border-radius:999px; font-size:11px; line-height:1.55}
.u2-res.hit{color:#fff; background:linear-gradient(180deg, var(--u2-up1), var(--u2-up2)); box-shadow:0 2px 5px -2px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.4)}
.u2-res.miss{color:var(--fg2); background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
.u2-res.unk{color:var(--fg3); border:1px dashed var(--fg3)}
.u2-res.unk.yet{color:var(--fg2); border:1px dashed var(--fg2); font-weight:600}   /* HITDAY 2026-10-09 「아직」(그날 장 안 끝남) — 모름과 구별 */
.u2-more{display:block; width:100%; margin-top:6px; padding:7px 0; border-radius:10px; border:1px solid var(--uxd-edge); color:var(--fg2); font:inherit; font-size:12.5px; cursor:pointer;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:var(--uxd-bsh); transition:transform .08s ease}
.u2-more:active{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
.u2-shempty{padding:8px 0 4px}
#page-home .uxd #u2ShHome{order:5}
/* 회원 홈 ★ 칸 — 진석 09:0x "왜 우리 로직을 공개를 해??" → picks_embed.js 회원 갈래(paintPanelMem)가 이름·오늘 %·결과·지난 7일 한 줄만 그림(.pe-mem). 모양만 */
#pePanel.pe-mem .pe-mlist{margin-top:6px}
#pePanel.pe-mem .pe-mlist > .u2-tr{padding:7px 2px}
#pePanel.pe-mem .pe-mlist > .u2-tr:first-child{border-top:0}
#pePanel.pe-mem .pe-none{padding:8px 2px; font-weight:600; color:var(--fg2)}
#pePanel.pe-mem .pe-mweek{margin-top:8px; padding:7px 10px; border-radius:12px; font-size:12.5px; line-height:1.5; color:var(--fg2); background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#pePanel.pe-mem .pe-mweek b{color:var(--fg); font-size:14px}
#page-home #pePanel.pe-mem .up{color:var(--up)} #page-home #pePanel.pe-mem .dn{color:var(--dn)}
#page-home .uxd #u2ShHome[hidden]{display:none}

/* 움직임 줄이기 설정 — 자람·눌림 움직임 끔 */
@media (prefers-reduced-motion:reduce){
  .u2-col, .u2-sum, .u2-seg button, .u2-dh, .u2-chev, .u2-more{transition:none !important}
  .u2-col.u2-seed{transform:none}
  .u2-sum.u2-press{transform:perspective(1000px) rotateX(4deg)}
  .u2-seg button:active, .u2-dh:active, .u2-more:active{transform:none}
}
/* UXR2C: 홈 ★ 칸 찍은 종목 — ★ 딱지 · 늦게 계산 딱지 */
#pePanel.pe-mem .pe-mstar{display:inline-block; margin-right:4px; padding:0 6px; border-radius:999px; font-size:11px; font-weight:800; line-height:1.55; color:#3a2800;
  background:radial-gradient(circle at 35% 30%, #fff3c4, #f5c542 60%, #b07d10); box-shadow:0 2px 5px -2px rgba(0,0,0,.6)}
#pePanel.pe-mem .pe-mlate{font-size:11px; padding:1px 8px; border-radius:999px; color:var(--fg2); border:1px dashed var(--fg3); white-space:nowrap}

/* ======== UI3D (2026-10-06) 회원·기본 화면 홈 1단계 — 오늘 시장(2D 반원 온도계) · 코인 등락 지형(CSS 3D 막대) · ★ 칸 다듬기 · 내 자동 매수 한 줄 접기 · ⓘ ========
   진석(10-06) "UIUX 2D 3D 넣어서 직관적으로" · "모바일로 올 때 이렇게 불편하잖아" · "뭐 하는 건지 쉽게 알게"
   진행 기록 docs/build/UI3D_PROGRESS.md · 그림 라이브러리·바깥 주소·새 글꼴 없음 · 계속 도는 움직임 없음
   회원(body.uxr-member)에게만 보임 — 관리자 첫 화면은 그대로. 색: 업비트처럼 오름 = 빨강(--up) · 내림 = 파랑(--dn) */
:root{
  --u3-up:#ff5a6e; --u3-dn:#5b9cff; --u3-z:#9aa4b2;
  --u3-upbg:rgba(255,90,110,.13); --u3-dnbg:rgba(91,156,255,.14); --u3-zbg:rgba(154,164,178,.14);
  --u3-floor1:#1a2230; --u3-floor2:#0e131b; --u3-grid:rgba(255,255,255,.05);
}
body[data-theme="light"]{
  --u3-up:#d6283f; --u3-dn:#1f5fd1; --u3-z:#6b7584;
  --u3-upbg:rgba(214,40,63,.09); --u3-dnbg:rgba(31,95,209,.09); --u3-zbg:rgba(107,117,132,.10);
  --u3-floor1:#eef2f7; --u3-floor2:#d9e0ea; --u3-grid:rgba(16,24,40,.06);
}
#page-home .uxd .u3d-card{display:none}
body.uxr-member #page-home .uxd .u3d-card{display:block}
/* 폰·좁은 화면 순서(회원만): 오늘 시장 → 지형 → ★ → 볼 코인 지난 기록 → 내 자동 매수 한 줄 → (펼치면) 내 자동 매수 · 내 돈 */
body.uxr-member #page-home .uxd #u3dMkt{order:1}
body.uxr-member #page-home .uxd #u3dTerr{order:2}
body.uxr-member #page-home .uxd #pePanel{order:3}
body.uxr-member #page-home .uxd #u2ShHome{order:4}
body.uxr-member #page-home .uxd #u3dMine{order:6}
body.uxr-member #page-home .uxd #uxrMyAuto{order:7}
body.uxr-member #page-home .uxd #uxrMyMoney{order:8}
/* 키가 없거나 꺼져 있으면(app.js u3dMinePaint → .u3d-fold) 두 칸은 한 줄 밑에 접힘 · 한 줄을 누르면(.u3d-open) 펼침 · 켜져 있으면 한 줄은 안 보임 */
body.uxr-member #page-home .uxd:not(.u3d-fold) #u3dMine{display:none}
body.uxr-member #page-home .uxd.u3d-fold:not(.u3d-open) #uxrMyAuto,
body.uxr-member #page-home .uxd.u3d-fold:not(.u3d-open) #uxrMyMoney{display:none}

/* ---- 카드 머리 · 회색 한 줄 · ⓘ ---- */
#page-home .u3d-h{display:flex; align-items:center; gap:8px; min-width:0; margin:-6px -6px 0 0}
#page-home .u3d-h h2{margin:0; font-size:16px; flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
#page-home .u3d-sub{margin:2px 0 10px; font-size:12.5px; line-height:1.5; color:var(--fg3)}
#page-home .u3d-i{flex:0 0 auto; display:inline-grid; place-items:center; width:44px; height:44px; margin:0; padding:0; border:0; background:none; cursor:pointer; -webkit-tap-highlight-color:transparent}
#page-home .u3d-i span{display:grid; place-items:center; width:24px; height:24px; border-radius:50%; font:italic 700 13px/1 Georgia, "Times New Roman", serif; color:var(--fg2);
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh); transition:transform .08s ease}
#page-home .u3d-i em{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
#page-home .u3d-i:active span{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}
#page-home .u3d-i.on span{color:#fff; background:linear-gradient(180deg, #5b8def, #2f5fc4)}
#page-home .u3d-info{margin:-4px 0 10px; padding:9px 11px; border-radius:12px; font-size:13px; line-height:1.6; color:var(--fg2); white-space:pre-line;
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .u3d-info[hidden]{display:none}
#page-home .u3d-wait{padding:10px 2px; font-size:13px; color:var(--fg2)}
#page-home .u3d-card .up{color:var(--u3-up)} #page-home .u3d-card .dn{color:var(--u3-dn)}

/* ---- ① 오늘 시장 ---- */
#page-home .u3d-mk-top{display:flex; align-items:center; gap:10px; min-width:0}
#page-home .u3d-gw{flex:0 1 200px; min-width:0}
#page-home .u3d-gauge{display:block; width:100%; height:auto; overflow:visible; filter:drop-shadow(0 6px 8px var(--uxd-drop))}
#page-home .u3d-g-well{stroke:var(--uxd-well)}
#page-home .u3d-g-tick{stroke:var(--bg2); opacity:.9}
#page-home .u3d-g-ndl{fill:var(--fg)}
#page-home .u3d-g-ndl-sh{fill:rgba(0,0,0,.35); transform:translate(1.5px,2px)}
#page-home .u3d-gends{display:flex; justify-content:space-between; margin-top:-2px; padding:0 2px; font-size:12px; font-weight:600}
#page-home .u3d-mk-big{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:4px}
#page-home .u3d-k{font-size:12.5px; color:var(--fg2)}
#page-home .u3d-pct{font-size:38px; line-height:1; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums}
#page-home .u3d-pct.bull{color:var(--u3-up)} #page-home .u3d-pct.bear{color:var(--u3-dn)}
#page-home .u3d-mood{display:inline-block; padding:3px 12px; border-radius:999px; font-size:14px; font-weight:800; cursor:help;
  box-shadow:0 4px 10px -6px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.25)}
#page-home .u3d-mood.m-bull{color:#fff; background:linear-gradient(180deg, #ff6f80, #d3243c)}
#page-home .u3d-mood.m-bear{color:#fff; background:linear-gradient(180deg, #6ea6ff, #2559c9)}
#page-home .u3d-mood.m-mix{color:var(--fg); background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-cnt{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:6px; margin-top:12px}
#page-home .u3d-cn{display:flex; flex-direction:column; align-items:center; gap:1px; padding:7px 4px; border-radius:12px; font-size:12px; min-width:0}
#page-home .u3d-cn b{font-size:17px; font-variant-numeric:tabular-nums}
#page-home .u3d-cn.c-up{color:var(--u3-up); background:var(--u3-upbg)}
#page-home .u3d-cn.c-dn{color:var(--u3-dn); background:var(--u3-dnbg)}
#page-home .u3d-cn.c-z{color:var(--fg2); background:var(--u3-zbg)}
#page-home .u3d-tiles{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:8px}
#page-home .u3d-tile{display:flex; flex-direction:column; gap:2px; padding:9px 11px; border-radius:14px; min-width:0;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-tv{font-size:16px; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-ts{font-size:12px; color:var(--fg2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-at{margin-top:9px; font-size:12px; color:var(--fg3)}

/* ---- ② 코인 등락 지형 — 바닥 판(rotateX)에 상자 8개(앞·왼·오른·윗면). 바닥 앞 모서리가 화면 크기 그대로라 막대 밑동 = 아래 이름표 자리 ---- */
#page-home .u3d-terr{position:relative; padding-bottom:48px}
#page-home .u3d-scene{position:relative; height:158px; perspective:560px; perspective-origin:50% 10%; overflow:visible}
#page-home .u3d-floor{position:absolute; left:0; right:0; bottom:0; height:54px; transform-origin:50% 100%; transform:rotateX(60deg); transform-style:preserve-3d;
  border-radius:10px; background:linear-gradient(180deg, var(--u3-floor2), var(--u3-floor1));
  background-image:linear-gradient(90deg, var(--u3-grid) 1px, transparent 1px), linear-gradient(180deg, var(--u3-floor2), var(--u3-floor1));
  background-size:12.5% 100%, 100% 100%; box-shadow:0 0 0 1px var(--uxd-edge)}
#page-home .u3d-col{position:absolute; bottom:8px; width:12.5%; height:26px; transform-style:preserve-3d}
#page-home .u3d-box{position:absolute; left:17%; right:17%; top:0; bottom:0; transform-style:preserve-3d}
#page-home .u3d-box i{position:absolute; display:block; backface-visibility:visible}
#page-home .u3d-box .f-top{left:0; right:0; top:0; bottom:0; transform:translateZ(var(--h)); background:var(--c1); box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
#page-home .u3d-box .f-front{left:0; right:0; bottom:0; height:var(--h); transform-origin:50% 100%; transform:rotateX(-90deg); background:linear-gradient(180deg, var(--c2), var(--c3))}
#page-home .u3d-box .f-left{left:0; top:0; bottom:0; width:var(--h); transform-origin:0 50%; transform:rotateY(-90deg); background:var(--c3)}
#page-home .u3d-box .f-right{right:0; top:0; bottom:0; width:var(--h); transform-origin:100% 50%; transform:rotateY(90deg); background:var(--c3)}
#page-home .u3d-box.flat i:not(.f-top){display:none}
#page-home .u3d-box.flat .f-top{transform:translateZ(1px); opacity:.55}
#page-home .u3d-col.on .f-top{box-shadow:inset 0 0 0 2px #fff}
#page-home .u3d-col.on .f-front{filter:brightness(1.18)}
/* 칸 색 — 파랑(많이 내림) → 회색(그대로) → 빨강(많이 오름) · c1 윗면 · c2 앞면 위 · c3 앞면 아래·옆면 */
#page-home .u3d-col.b0{--c1:#6f9cf5; --c2:#2a5fd6; --c3:#173c95}
#page-home .u3d-col.b1{--c1:#8db6ff; --c2:#4a86ea; --c3:#2b5cb6}
#page-home .u3d-col.b2{--c1:#c2d8ff; --c2:#86aef0; --c3:#5a84c8}
#page-home .u3d-col.b3{--c1:#d3d8e0; --c2:#9ba4b3; --c3:#6f7887}
#page-home .u3d-col.b4{--c1:#ffd0d0; --c2:#f29a9a; --c3:#c96a6a}
#page-home .u3d-col.b5{--c1:#ffacac; --c2:#ec6464; --c3:#bd4040}
#page-home .u3d-col.b6{--c1:#ff8a8a; --c2:#dc3545; --c3:#a5222e}
#page-home .u3d-col.b7{--c1:#ff6f6f; --c2:#bb1530; --c3:#7f0a1c}
/* 누르는 곳 = 막대 위 빈자리부터 이름표까지 한 칸 통째(폭 = 카드 폭 ÷ 8 · 높이 198px) */
#page-home .u3d-hbs{position:absolute; left:0; right:0; top:0; bottom:0; display:grid; grid-template-columns:repeat(8, minmax(0,1fr))}
#page-home .u3d-hb{display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:0; min-width:0; margin:0; padding:0 0 4px; border:0; border-radius:10px;
  background:none; color:var(--fg); font-family:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent}
#page-home .u3d-hb b{font-size:14px; line-height:1.3; font-variant-numeric:tabular-nums}
#page-home .u3d-hb small{font-size:12px; line-height:1.3; color:var(--fg2); white-space:nowrap; letter-spacing:-.03em}
#page-home .u3d-hb.b0 b, #page-home .u3d-hb.b1 b, #page-home .u3d-hb.b2 b{color:var(--u3-dn)}
#page-home .u3d-hb.b4 b, #page-home .u3d-hb.b5 b, #page-home .u3d-hb.b6 b, #page-home .u3d-hb.b7 b{color:var(--u3-up)}
#page-home .u3d-hb:focus-visible{outline:2px solid var(--accent); outline-offset:-2px}
#page-home .u3d-hb.on{background:linear-gradient(180deg, transparent 60%, var(--u3-zbg))}
#page-home .u3d-axis{display:flex; justify-content:space-between; gap:6px; margin-top:4px; font-size:12px; color:var(--fg3)}
#page-home .u3d-axis .dn, #page-home .u3d-axis .up{font-weight:700}
#page-home .u3d-list{margin-top:10px; padding:8px 10px; border-radius:14px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .u3d-list[hidden]{display:none}
#page-home .u3d-lh{display:flex; align-items:center; gap:8px}
#page-home .u3d-lt{flex:1 1 auto; font-size:14px}
#page-home .u3d-lt.s-up{color:var(--u3-up)} #page-home .u3d-lt.s-dn{color:var(--u3-dn)}
#page-home .u3d-x{flex:0 0 auto; min-height:44px; padding:0 14px; border:0; border-radius:10px; font:inherit; font-size:13px; color:var(--fg2); cursor:pointer;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-lb{max-height:300px; overflow-y:auto; -webkit-overflow-scrolling:touch; margin-top:4px}
#page-home .u3d-lr{display:flex; align-items:center; gap:8px; min-height:36px; padding:4px 2px; border-top:1px dashed var(--line); font-size:13px}
#page-home .u3d-lr:first-child{border-top:0}
#page-home .u3d-ln{flex:1 1 auto; min-width:0; display:flex; align-items:baseline; gap:6px; overflow:hidden}
#page-home .u3d-ln b{flex:0 0 auto}
#page-home .u3d-ln span{min-width:0; color:var(--fg2); font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-lp{flex:0 0 auto; font-weight:700; font-variant-numeric:tabular-nums}

/* ---- ⑤ 내 자동 매수 · 내 돈 한 줄 ---- */
body.uxr-member #page-home .uxd .u3d-mine{display:flex; align-items:center; gap:8px; padding:6px 8px 6px 6px}
#page-home .u3d-mine-sum{flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:10px; min-height:48px; padding:4px 8px; border:0; border-radius:12px;
  background:none; color:var(--fg); font-family:inherit; text-align:left; cursor:pointer}
#page-home .u3d-mdot{flex:0 0 auto; width:12px; height:12px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #e3e8ef, #7d8796 60%, #4a5260); box-shadow:0 1px 2px rgba(0,0,0,.5)}
#page-home .u3d-mine-t{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:1px}
#page-home .u3d-mine-t b{font-size:14px}
#page-home .u3d-mine-t span{font-size:12.5px; color:var(--fg2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-chev{flex:0 0 auto; color:var(--fg3); transition:transform .12s ease}
#page-home .u3d-mine-sum[aria-expanded="true"] .u3d-chev{transform:rotate(180deg)}
#page-home .u3d-mine-go{flex:0 0 auto; min-height:44px; padding:0 14px; border:0; border-radius:12px; font:inherit; font-size:13px; font-weight:600; color:var(--fg); cursor:pointer;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-mine-go:active, #page-home .u3d-x:active{transform:translateY(1px); box-shadow:var(--uxd-bsh-on)}

/* ---- ④ ★ 오늘 찍은 종목(picks_embed.js 회원 갈래) — 순위 구슬 · 작은 선 · 갔음 빨강 · 회색 한 줄 · ⓘ ---- */
/* 머리 한 줄: 제목 · 날짜 · 자세히 → · ⓘ (picks_embed.js 가 넣는 #pePanel .pe-head 모양보다 이기게 .pe-mem .pe-head.u3d-h 로 씀) */
#pePanel.pe-mem .pe-head.u3d-h{flex-wrap:wrap; align-items:center; gap:0 6px; margin:-6px -6px 0 0}
#pePanel.pe-mem .pe-head.u3d-h .pe-title{order:0; flex:0 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#pePanel.pe-mem .pe-head.u3d-h .pe-sub{order:1; flex:1 1 auto; min-width:0; font-size:12px; color:var(--fg3); white-space:nowrap}
#pePanel.pe-mem .pe-head.u3d-h a.pe-more{order:2; margin-left:auto; display:inline-flex; align-items:center; min-height:44px; padding:0 6px; border:0; border-radius:10px;
  background:none; font-size:13px; font-weight:600; text-decoration:none}
#pePanel.pe-mem .pe-head.u3d-h .u3d-i{order:3}
#pePanel.pe-mem .pe-head.u3d-h .pe-mlate{order:4; flex:0 0 auto; margin-bottom:4px}
#pePanel.pe-mem .u3d-pkr{flex:0 0 auto; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font-size:13px; font-weight:800; color:var(--fg2);
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}                       /* 4위부터 = 파인 자리 · 1~3위 = 금·은·동 구슬 */
#pePanel.pe-mem .u3d-pkr.r1, #pePanel.pe-mem .u3d-pkr.r2, #pePanel.pe-mem .u3d-pkr.r3{color:#10141c; box-shadow:0 4px 8px -3px rgba(0,0,0,.7), inset 0 -2px 3px rgba(0,0,0,.2)}
#pePanel.pe-mem .u3d-pkr.r1{background:radial-gradient(circle at 35% 30%, #fff6d8, #f5c542 55%, #a87510)}
#pePanel.pe-mem .u3d-pkr.r2{background:radial-gradient(circle at 35% 30%, #ffffff, #cfd6e2 55%, #8a95a8)}
#pePanel.pe-mem .u3d-pkr.r3{background:radial-gradient(circle at 35% 30%, #ffe9d6, #e09a5a 55%, #8f5420)}
#pePanel.pe-mem .u3d-spk{flex:0 0 auto; width:64px; height:26px; overflow:visible}
#pePanel.pe-mem .u3d-spk polyline{fill:none; stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke}
#pePanel.pe-mem .u3d-spk.up polyline{stroke:var(--u3-up)} #pePanel.pe-mem .u3d-spk.dn polyline{stroke:var(--u3-dn)} #pePanel.pe-mem .u3d-spk.z polyline{stroke:var(--u3-z)}
#pePanel.pe-mem .u3d-spk .base{stroke:var(--fg3); stroke-width:1; stroke-dasharray:2 3; vector-effect:non-scaling-stroke; opacity:.6}
#pePanel.pe-mem .u3d-spk circle{stroke:none}
#pePanel.pe-mem .u3d-spk.up circle{fill:var(--u3-up)} #pePanel.pe-mem .u3d-spk.dn circle{fill:var(--u3-dn)} #pePanel.pe-mem .u3d-spk.z circle{fill:var(--u3-z)}
#pePanel.pe-mem .pe-mlist > .u2-tr.u3d-hit{margin:0 -6px; padding-left:8px; padding-right:8px; border-radius:12px; background:var(--u3-upbg); box-shadow:inset 3px 0 0 var(--u3-up)}
#pePanel.pe-mem .u2-ta{display:flex; flex-direction:column; align-items:flex-end; flex:0 0 auto; min-width:58px}
#pePanel.pe-mem .u2-ta b{font-size:14px; font-variant-numeric:tabular-nums}
#pePanel.pe-mem .u2-ta .u3d-tk{font-size:12px; color:var(--fg3)}
#pePanel.pe-mem .u2-res{font-size:12px}
#pePanel.pe-mem .u2-res.hit{font-weight:800}
#page-home #pePanel.pe-mem .up{color:var(--u3-up)} #page-home #pePanel.pe-mem .dn{color:var(--u3-dn)}
/* 폰 글자 12px 이상 · 누르는 곳 44px — 회원 홈 안 칸만(맨 위 상태 줄·탭 줄은 기존 그대로) */
#pePanel.pe-mem .u2-kn{font-size:12px}
body.uxr-member #page-home .uxd #uxrMyAuto .uxd-chip, body.uxr-member #page-home .uxd #uxrMyMoney .uxr-tag{font-size:12px}
body.uxr-member #page-home .uxd #uxrGoMyTr{display:inline-flex; align-items:center; min-height:44px; padding:0 6px}
@media (max-width:380px){
  #pePanel.pe-mem .u3d-spk{width:52px}
  #page-home .u3d-pct{font-size:34px}
}
@media (prefers-reduced-motion:reduce){
  #page-home .u3d-i span, #page-home .u3d-chev{transition:none}
}

/* ======== UI3D 2차 (2026-10-06) — 진석 "알아보기 힘들다 좀 더 상세하면서 직관적으로" ========
   큰 문장 먼저 · 온도계 구역 이름·바늘 끝 % · 큰 코인 3개 · 막대 꼭대기 숫자·쉬운 이름표·한 줄 해석 · 찍은 종목 두 단(값·등락·최저~최고·9시 점선)
   글자: 본문 14px 이상 · 보조 12px 이상 · 회색은 --fg2(옅은 --fg3 안 씀) · 카드 사이 18px. 위 UI3D 1차 규칙을 덮어씀(이 절이 뒤라 이김) */
body.uxr-member #page-home .uxd .u3d-card, body.uxr-member #page-home .uxd #pePanel, body.uxr-member #page-home .uxd #u2ShHome{margin-bottom:18px}
#page-home .u3d-sub{font-size:13.5px; color:var(--fg2)}
#page-home .u3d-info{font-size:14px; color:var(--fg)}
#page-home .u3d-wait{font-size:14px}
#page-home .u3d-at{font-size:12.5px; color:var(--fg2); margin-top:12px}

/* ① 큰 문장 */
#page-home .u3d-head{display:flex; flex-direction:column; gap:3px; margin:0 0 12px; padding:12px 14px; border-radius:14px; background:var(--u3-zbg)}
#page-home .u3d-head b{font-size:21px; line-height:1.3; font-weight:800; letter-spacing:-.02em}
#page-home .u3d-head span{font-size:15px; line-height:1.45; color:var(--fg)}
#page-home .u3d-head.m-bear{background:var(--u3-dnbg)} #page-home .u3d-head.m-bear b{color:var(--u3-dn)}
#page-home .u3d-head.m-bull{background:var(--u3-upbg)} #page-home .u3d-head.m-bull b{color:var(--u3-up)}
/* 온도계 — 카드 폭 가득(최대 360px) */
#page-home .u3d-gw{flex:none; max-width:360px; margin:0 auto}
#page-home .u3d-g-zone{font-size:16px; font-weight:700; fill:var(--fg2); opacity:.75}
#page-home .u3d-g-zone.on{opacity:1; font-weight:800; font-size:17px}
#page-home .u3d-g-zone.z-bear.on{fill:var(--u3-dn)} #page-home .u3d-g-zone.z-bull.on{fill:var(--u3-up)} #page-home .u3d-g-zone.z-mix.on{fill:var(--fg)}
#page-home .u3d-g-big{font-size:48px; font-weight:800; fill:var(--fg); letter-spacing:-1px}
#page-home .u3d-g-big.bear{fill:var(--u3-dn)} #page-home .u3d-g-big.bull{fill:var(--u3-up)}
#page-home .u3d-g-cap{font-size:16px; font-weight:600; fill:var(--fg2)}
#page-home .u3d-g-bub{fill:var(--fg)}
#page-home .u3d-g-bubt{font-size:16px; font-weight:800; fill:var(--bg2)}
#page-home .u3d-g-ndl{fill:var(--fg)}
#page-home .u3d-gends{font-size:13px; margin-top:-4px}
#page-home .u3d-cnt{margin-top:14px}
#page-home .u3d-cn{padding:9px 4px; gap:2px}
#page-home .u3d-cn span{font-size:13px; font-weight:600}
#page-home .u3d-cn b{font-size:21px}
/* 큰 코인 3개 */
#page-home .u3d-big3{margin-top:12px; padding:6px 12px 4px; border-radius:14px; background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-k3{font-size:12.5px; color:var(--fg2); padding:4px 0 2px}
#page-home .u3d-c3{display:grid; grid-template-columns:20px minmax(0,1fr) auto 76px; align-items:center; gap:8px; min-height:40px; border-top:1px solid var(--line)}
#page-home .u3d-k3 + .u3d-c3{border-top:0}
#page-home .u3d-ar{font-style:normal; font-size:14px; text-align:center}
#page-home .u3d-c3.up .u3d-ar{color:var(--u3-up)} #page-home .u3d-c3.dn .u3d-ar{color:var(--u3-dn)} #page-home .u3d-c3.z .u3d-ar{color:var(--fg2)}
#page-home .u3d-c3n{font-size:15px; font-weight:600; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-c3p{font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap}
#page-home .u3d-c3c{font-size:15px; font-weight:800; text-align:right; font-variant-numeric:tabular-nums}
#page-home .u3d-c3c.z{color:var(--fg2)}
#page-home .u3d-up10{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin-top:10px; padding:10px 12px; border-radius:14px; font-size:14px; background:var(--u3-upbg)}
#page-home .u3d-up10 b{font-size:16px; color:var(--u3-up)}
#page-home .u3d-up10 .u3d-ts{font-size:13.5px; color:var(--fg)}

/* ② 지형 — 꼭대기 숫자(바닥 기울기 60° 를 되돌려 화면을 바라봄) · 가장 많은 칸 강조 · 이름표 · 묶음 띠 · 한 줄 해석 */
#page-home .u3d-scene{height:186px}
#page-home .u3d-terr{padding-bottom:46px}
#page-home .u3d-box .f-num{position:absolute; display:block; left:-60%; right:-60%; bottom:0; height:22px; text-align:center; font-size:15px; line-height:22px; font-weight:800; color:var(--fg);
  transform-origin:50% 100%; transform:translateZ(calc(var(--h) + 2px)) rotateX(-60deg) translateY(-15px); text-shadow:0 0 3px var(--bg2), 0 0 3px var(--bg2), 0 1px 2px rgba(0,0,0,.5); white-space:nowrap}
#page-home .u3d-col.b0 .f-num, #page-home .u3d-col.b1 .f-num, #page-home .u3d-col.b2 .f-num{color:var(--u3-dn)}
#page-home .u3d-col.b4 .f-num, #page-home .u3d-col.b5 .f-num, #page-home .u3d-col.b6 .f-num, #page-home .u3d-col.b7 .f-num{color:var(--u3-up)}
#page-home .u3d-col.top .f-num{font-size:19px}
#page-home .u3d-col.top .f-top{box-shadow:inset 0 0 0 2px rgba(255,255,255,.9), 0 0 18px 4px rgba(255,255,255,.25)}
#page-home .u3d-col.top .f-front{filter:brightness(1.12) saturate(1.15)}
#page-home .u3d-hb b{font-size:13px; font-weight:700; letter-spacing:-.03em; white-space:nowrap}
#page-home .u3d-hb small{font-size:12px; color:var(--fg2)}
#page-home .u3d-hb.top{background:linear-gradient(180deg, transparent 55%, var(--u3-zbg))}
#page-home .u3d-hb.top b{text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px}
#page-home .u3d-grp{display:grid; grid-template-columns:3fr 1fr 4fr; gap:4px; margin-top:2px; font-size:13px; font-weight:700; text-align:center}
#page-home .u3d-grp span{padding-top:4px; border-top:3px solid currentColor; white-space:nowrap}
#page-home .u3d-grp .dn{color:var(--u3-dn)} #page-home .u3d-grp .up{color:var(--u3-up)} #page-home .u3d-grp .z{color:var(--fg2)}
#page-home .u3d-say{margin-top:12px; padding:11px 13px; border-radius:14px; font-size:15.5px; line-height:1.45; font-weight:700; background:var(--u3-zbg)}
#page-home .u3d-say:empty{display:none}
#page-home .u3d-say.s-dn{color:var(--u3-dn); background:var(--u3-dnbg)} #page-home .u3d-say.s-up{color:var(--u3-up); background:var(--u3-upbg)}
#page-home .u3d-hint{margin-top:8px; font-size:12.5px; color:var(--fg2); text-align:center}
#page-home .u3d-lt{font-size:15px}
#page-home .u3d-lr{font-size:14px; min-height:40px}
#page-home .u3d-ln span{font-size:13px}

/* ⑤ 한 줄 */
#page-home .u3d-mine-t b{font-size:15px}
#page-home .u3d-mine-t span{font-size:13.5px}
#page-home .u3d-mine-go{font-size:14px}

/* ④ 찍은 종목 — 요약 줄 · 두 단 줄 */
#pePanel.pe-mem .pe-head.u3d-h .pe-title{font-size:17px}
#pePanel.pe-mem .pe-head.u3d-h .pe-sub{font-size:13px; color:var(--fg2)}
#pePanel.pe-mem .pe-head.u3d-h a.pe-more{font-size:14px}
#pePanel.pe-mem .u3d-pksum{display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin:2px 0 6px; padding:10px 12px; border-radius:14px; font-size:15px;
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#pePanel.pe-mem .u3d-pksum b{font-weight:800}
#pePanel.pe-mem .u3d-ps2{font-size:13.5px; color:var(--fg); padding:2px 10px; border-radius:999px; background:var(--u3-zbg)}
#pePanel.pe-mem .pe-mlist > .u2-tr.u3d-row{display:flex; align-items:flex-start; gap:10px; padding:11px 2px}
#pePanel.pe-mem .u3d-row .u3d-pkr{margin-top:1px}
#pePanel.pe-mem .u3d-rb{flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:7px}
#pePanel.pe-mem .u3d-l1{display:flex; align-items:center; gap:8px; min-width:0}
#pePanel.pe-mem .u3d-l1 .u2-tn{flex:1 1 auto; min-width:0; display:flex; align-items:baseline; gap:6px; overflow:hidden; white-space:nowrap}
#pePanel.pe-mem .u3d-l1 .u2-tn b{font-size:16px}
#pePanel.pe-mem .u3d-l1 .u2-kn{font-size:13.5px; color:var(--fg2); overflow:hidden; text-overflow:ellipsis}
#pePanel.pe-mem .u3d-l1 .u2-ta{flex:0 0 auto; flex-direction:row; align-items:baseline; gap:8px; min-width:0}
#pePanel.pe-mem .u3d-pr{font-size:13.5px; color:var(--fg2); font-variant-numeric:tabular-nums}
#pePanel.pe-mem .u3d-chg{font-size:19px !important; font-weight:800; font-variant-numeric:tabular-nums}
#pePanel.pe-mem .u3d-l2{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px 14px; align-items:start}
#pePanel.pe-mem .u3d-l2 .u2-res{grid-column:1 / -1; justify-self:start; margin:0; font-size:13.5px; padding:2px 10px}
#pePanel.pe-mem .u3d-l2 .u2-res.hit{font-size:14.5px}
/* 오늘 최저~최고 막대 */
#pePanel.pe-mem .u3d-rng{display:flex; flex-direction:column; gap:3px; min-width:0; padding-top:6px}
#pePanel.pe-mem .u3d-rtr{position:relative; height:8px; border-radius:999px; background:linear-gradient(90deg, rgba(91,156,255,.55), rgba(154,164,178,.35) 50%, rgba(255,90,110,.55)); box-shadow:var(--uxd-well-sh)}
#pePanel.pe-mem .u3d-r0{position:absolute; top:-3px; width:2px; height:14px; margin-left:-1px; background:var(--fg2); border-radius:1px}
#pePanel.pe-mem .u3d-rdot{position:absolute; top:50%; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%; border:2px solid var(--bg2); box-shadow:0 2px 4px rgba(0,0,0,.45)}
#pePanel.pe-mem .u3d-rdot.up{background:var(--u3-up)} #pePanel.pe-mem .u3d-rdot.dn{background:var(--u3-dn)} #pePanel.pe-mem .u3d-rdot.z{background:var(--u3-z)}
#pePanel.pe-mem .u3d-rlb{display:flex; justify-content:space-between; gap:4px; font-size:12px; color:var(--fg2); white-space:nowrap}
/* 작은 선 — 칸 폭 가득 · 9시 점선 */
#pePanel.pe-mem .u3d-spw{position:relative; display:block; min-width:0; height:34px; margin-bottom:16px}
#pePanel.pe-mem .u3d-spw .u3d-spk{display:block; width:100%; height:34px}
#pePanel.pe-mem .u3d-spk .nine{stroke:var(--fg2); stroke-width:1.2; stroke-dasharray:3 3; vector-effect:non-scaling-stroke}
#pePanel.pe-mem .u3d-9{position:absolute; top:100%; transform:translateX(-50%); font-size:12px; line-height:16px; color:var(--fg2); white-space:nowrap}
#pePanel.pe-mem .u3d-spdot{position:absolute; right:-3px; width:7px; height:7px; margin-top:-3.5px; border-radius:50%}
#pePanel.pe-mem .u3d-spdot.up{background:var(--u3-up)} #pePanel.pe-mem .u3d-spdot.dn{background:var(--u3-dn)} #pePanel.pe-mem .u3d-spdot.z{background:var(--u3-z)}
/* 갔음 = 빨강 카드 */
#pePanel.pe-mem .pe-mlist > .u2-tr.u3d-row.u3d-hit{margin:4px -6px; padding:11px 8px; border-radius:14px; background:var(--u3-upbg); box-shadow:inset 0 0 0 1.5px var(--u3-up)}
#pePanel.pe-mem .pe-mweek{font-size:14px; color:var(--fg)}
/* 2차 고침(브라우저 보고): 숫자가 윗면과 겹쳐 안 읽힘 → 위로 15px 띄우고 바탕색 테두리 · 찍은 종목 머리: 날짜는 둘째 줄로(ⓘ 가 줄 밖으로 밀리지 않게) */
#pePanel.pe-mem .pe-head.u3d-h .pe-sub{order:5; flex:1 1 100%; margin:-8px 0 0}
#pePanel.pe-mem .pe-head.u3d-h .pe-title{flex:1 1 auto}

/* ======== UI3D 3차 (2026-10-06) — 진석 "몇 종목 중에 몇 종목이 갔고 … 현재가가 얼마고 장중에 최고 얼마까지 … 그대로 다 나와 줘야지" ========
   오늘 시장: 큰 문장(갔음 개수) · 코인 점(와플) · 오늘 간 코인 목록 · 그 아래 온도계 / 찍은 종목: 기준 값→지금 값 · 최고·최저(값·%·시각) · 잠정 결과 */
#page-home .u3d-head b{font-size:20px}
#page-home .u3d-head .u3d-hsub{font-size:14.5px; color:var(--fg)}
#page-home .u3d-head .u3d-hsub b{font-size:15px; color:var(--u3-up); font-weight:800}
/* 오늘 간 코인 목록 */
#page-home .u3d-gone{margin-top:12px; padding:8px 12px 10px; border-radius:14px; background:var(--u3-upbg); box-shadow:inset 0 0 0 1px rgba(255,90,110,.25)}
#page-home .u3d-gt{padding:4px 0 6px; font-size:15px; font-weight:800; color:var(--u3-up)}
#page-home .u3d-gr{display:grid; grid-template-columns:minmax(0,1fr) 64px 58px 84px; align-items:center; gap:6px; min-height:40px; border-top:1px solid var(--line); font-size:14px}
#page-home .u3d-grh{min-height:24px; border-top:0; font-size:12px; color:var(--fg2)}
#page-home .u3d-grh span:not(:first-child), #page-home .u3d-ghi, #page-home .u3d-gnow, #page-home .u3d-gpr{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
#page-home .u3d-gn{min-width:0; display:flex; flex-direction:column; overflow:hidden}
#page-home .u3d-gn b{font-size:15px} #page-home .u3d-gn small{font-size:12px; color:var(--fg2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-ghi{font-size:16px; font-weight:800}
#page-home .u3d-gpr{font-size:13px; color:var(--fg)}
#page-home .u3d-gnote{margin-top:4px; font-size:12px; color:var(--fg2)}
#page-home .u3d-sec{margin:16px 0 2px; font-size:14px; font-weight:800; color:var(--fg2)}

/* 찍은 종목 — 요약 · 줄 */
#pePanel.pe-mem .u3d-pksum{flex-direction:column; align-items:flex-start; gap:6px}
#pePanel.pe-mem .u3d-ps0{font-size:18px; font-weight:700}
#pePanel.pe-mem .u3d-ps0 b{font-size:22px}
#pePanel.pe-mem .u3d-ps1{font-size:14.5px}
#pePanel.pe-mem .u3d-l1{justify-content:space-between}
#pePanel.pe-mem .u3d-l1 .u2-res{flex:0 0 auto; margin:0; font-size:13px; padding:2px 10px}
#pePanel.pe-mem .u2-res.phit{color:var(--u3-up); background:var(--u3-upbg); box-shadow:inset 0 0 0 1.5px var(--u3-up); font-weight:800}
#pePanel.pe-mem .u2-res.pmiss{color:var(--fg); background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#pePanel.pe-mem .u2-res.unk{color:var(--fg2); border:1px dashed var(--fg2)}
#pePanel.pe-mem .u3d-l2p{display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0}
#pePanel.pe-mem .u3d-pp{min-width:0; font-size:14px; line-height:1.4; font-variant-numeric:tabular-nums}
#pePanel.pe-mem .u3d-pl{color:var(--fg2); font-size:13px}
#pePanel.pe-mem .u3d-pa{color:var(--fg2)}
#pePanel.pe-mem .u3d-pp b.u3d-pv{font-size:15px}
#pePanel.pe-mem .u3d-pbig{flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; line-height:1.1}
#pePanel.pe-mem .u3d-pbig small{font-size:12px; color:var(--fg2)}
#pePanel.pe-mem .u3d-pbig .u3d-chg{font-size:21px !important}
#pePanel.pe-mem .u3d-l3{display:flex; flex-wrap:wrap; gap:3px 14px; font-size:13.5px; font-variant-numeric:tabular-nums}
#pePanel.pe-mem .u3d-hl{white-space:nowrap}
#pePanel.pe-mem .u3d-hl.up b{color:var(--u3-up)} #pePanel.pe-mem .u3d-hl.dn b{color:var(--u3-dn)}
#pePanel.pe-mem .u3d-hl .u3d-hk{color:var(--fg2); font-size:13px}
#pePanel.pe-mem .u3d-hl.up .u3d-hk{color:var(--u3-up)} #pePanel.pe-mem .u3d-hl.dn .u3d-hk{color:var(--u3-dn)}
#pePanel.pe-mem .u3d-ht{color:var(--fg)}
#pePanel.pe-mem .u3d-rlb span:nth-child(2){color:var(--fg)}
#pePanel.pe-mem .pe-mlist > .u2-tr.u3d-row.u3d-phit{margin:4px -6px; padding:11px 8px; border-radius:14px; background:var(--u3-upbg); box-shadow:inset 0 0 0 1px rgba(255,90,110,.45)}
#page-home .u3d-head b em.u3d-gnum{font-style:normal; color:var(--u3-up); font-size:24px}
#pePanel.pe-mem .u3d-ps0 .u3d-ps0s{font-size:14.5px; font-weight:600; color:var(--fg)}
/* ======== UI3D 4차 (2026-10-06) — 히트맵(트리맵) · 진석 "트레이딩뷰처럼 네모 박스로, 많이 간 코인은 박스에 이름이 써 있고 +얼마" ========
   3차 점 그림(와플) CSS 는 지웠다. 상자 자리·크기·색은 app.js u3dTmDraw 가 정한다(상자 안 글자는 흰색 + 그림자 — 빨강·파랑·회색 위 모두 읽히게) */
:root{ --u3-tmrest:#3a414e; }
body[data-theme="light"]{ --u3-tmrest:#8b94a3; }
#page-home .u3d-tm{position:relative; width:100%; height:420px; margin-top:4px; border-radius:12px; overflow:hidden; background:var(--uxd-well)}
#page-home .u3d-tb{position:absolute; display:block; margin:0; padding:0; border:0; border-radius:0; cursor:pointer; color:#fff; font-family:inherit; overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.12); -webkit-tap-highlight-color:transparent}
#page-home .u3d-tb.gone{box-shadow:inset 0 0 0 3px #ffd400, inset 0 0 0 4px rgba(0,0,0,.5)}
#page-home .u3d-tb.on{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px rgba(0,0,0,.55); z-index:2}
#page-home .u3d-tb.gone.on{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 6px #ffd400; z-index:2}
#page-home .u3d-tbi{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; padding:2px; text-align:center;
  text-shadow:0 1px 2px rgba(0,0,0,.6); line-height:1.1; pointer-events:none}
#page-home .u3d-tbi b{font-weight:800; letter-spacing:-.02em; white-space:nowrap}
#page-home .u3d-tbp{font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums}
#page-home .u3d-tbh{font-size:12px; font-weight:800; color:#ffe14d; white-space:nowrap}
#page-home .u3d-tb.rest .u3d-tbi small{color:#e8ecf2}
#page-home .u3d-tmleg{display:flex; align-items:center; gap:8px; margin-top:8px; font-size:13px; font-weight:700}
#page-home .u3d-tmbar{flex:1 1 auto; height:10px; border-radius:999px;
  background:linear-gradient(90deg, rgb(36,92,214), rgb(92,99,112) 50%, rgb(214,32,52))}
#page-home .u3d-tmnote{margin-top:6px; font-size:12.5px; line-height:1.5; color:var(--fg2)}
#page-home .u3d-tmnote .u3d-tmy{color:#e0b400; font-weight:800}
body[data-theme="light"] #page-home .u3d-tmnote .u3d-tmy{color:#9a7a00}
#page-home .u3d-tmp{margin-top:8px; padding:10px 12px; border-radius:14px; background:var(--u3-zbg); font-size:14px}
#page-home .u3d-tmph{color:var(--fg2); font-size:13.5px}
#page-home .u3d-tmh{display:flex; align-items:center; gap:8px}
#page-home .u3d-tmn{flex:1 1 auto; min-width:0; display:flex; align-items:baseline; gap:8px; overflow:hidden}
#page-home .u3d-tmn b{font-size:18px} #page-home .u3d-tmn small{font-size:14px; color:var(--fg2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-tmg{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px 12px; margin-top:6px}
#page-home .u3d-tmkv{display:flex; flex-direction:column; gap:1px; min-width:0}
#page-home .u3d-tmkv span{font-size:12.5px; color:var(--fg2)}
#page-home .u3d-tmkv b{font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-tmp .u3d-lb{max-height:320px}
/* ======== UI3D 5차(변경) (2026-10-06) — 진석 "지금 중요한 건 우리가 어떤 코인을 샀고 지금 수익 … 시장 분위기를 광대하게 표현할 필요 없다. 바 게이지가 앞에 있고, 누르면 상세로" ========
   첫 화면 = ⓪ 내 코인 · 수익(맨 위 · 관리자도) → ★ 오늘 찍은 종목 → 시장 바 게이지 한 줄(누르면 자세히: 히트맵 · 오늘 간 코인 · 온도계 · 등락 지형)
   관리자 첫 화면: 새 두 칸이 보이고 예전 「시장 한눈에」(#hmMkCard)는 숨김(지우지 않음 — 같은 바 모양이 위로 옴) */
#page-home .uxd #u3dMine2, #page-home .uxd #u3dMkt{display:block}
#page-home #u3dMkDet #u3dTerr{display:block}
#page-home .uxd #u3dMine2{order:-2}
#page-home .uxd #u3dMkt{order:6}
#page-home .uxd #hmMkCard{display:none}
body.uxr-member #page-home .uxd #u3dMkt{order:4}
body.uxr-member #page-home .uxd #u2ShHome{order:5}
/* 시장 바 게이지 한 줄 */
#page-home .u3d-mkbar{display:block; width:100%; min-height:44px; margin:0; padding:0; border:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; -webkit-tap-highlight-color:transparent}
#page-home .u3d-mkin{display:block}
#page-home .u3d-mbt{display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px}
#page-home .u3d-mbm{font-size:18px; font-weight:800}
#page-home .u3d-mbm.m-bear{color:var(--u3-dn)} #page-home .u3d-mbm.m-bull{color:var(--u3-up)}
#page-home .u3d-mbg{font-size:15px; color:var(--fg)}
#page-home .u3d-mbg em{font-style:normal; font-weight:800; color:var(--u3-up)}
#page-home .u3d-gbar{display:flex; height:30px; margin:10px 0 4px; border-radius:10px; overflow:hidden; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .u3d-gs{display:flex; align-items:center; justify-content:center; min-width:0; overflow:hidden; white-space:nowrap; font-size:13px; font-weight:800; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.45)}
#page-home .u3d-gs.up{background:linear-gradient(180deg, #f0566a, #c81e34)}
#page-home .u3d-gs.z{background:linear-gradient(180deg, #8b94a3, #646c7a)}
#page-home .u3d-gs.dn{background:linear-gradient(180deg, #5d93f2, #2456c6)}
#page-home .u3d-glg{display:flex; justify-content:space-between; gap:8px; font-size:13px; font-weight:700}
#page-home .u3d-glg .up{color:var(--u3-up)} #page-home .u3d-glg .dn{color:var(--u3-dn)} #page-home .u3d-glg .z{color:var(--fg2)}
#page-home .u3d-mbs{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:6px; font-size:13.5px; color:var(--fg2)}
#page-home .u3d-mbc{flex:0 0 auto; padding:4px 10px; border-radius:999px; font-size:14px; color:var(--fg); background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-mkdet{margin-top:14px; padding-top:12px; border-top:1px solid var(--line)}
#page-home .u3d-mkdet[hidden]{display:none}
#page-home .u3d-mkdet #u3dTerr{margin:16px 0 0; padding:12px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:none; box-shadow:none}
/* 내 코인 · 수익 */
#page-home .u3d-msum{margin-top:2px; padding:12px 14px; border-radius:14px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .u3d-ms1{font-size:14px; color:var(--fg2)} #page-home .u3d-ms1 b{font-size:24px; color:var(--fg); font-variant-numeric:tabular-nums}
#page-home .u3d-ms2{margin-top:2px; font-size:14px} #page-home .u3d-ms2 b{font-size:21px; font-weight:800; font-variant-numeric:tabular-nums}
#page-home .u3d-ms2 span{color:var(--fg2)}
#page-home .u3d-ms3{margin-top:4px; font-size:12.5px; color:var(--fg2)}
#page-home .u3d-hlist{margin-top:6px}
#page-home .u3d-hrow, #page-home .u3d-lrow{padding:10px 2px; border-top:1px dashed var(--line)}
#page-home .u3d-hlist .u3d-hrow:first-child{border-top:0}
#page-home .u3d-hl1{display:flex; align-items:baseline; justify-content:space-between; gap:8px; min-width:0}
#page-home .u3d-hn{min-width:0; display:flex; align-items:baseline; gap:6px; overflow:hidden; white-space:nowrap}
#page-home .u3d-hn b{font-size:17px} #page-home .u3d-hn small{font-size:13px; color:var(--fg2); overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-hsrc{flex:0 0 auto; font-style:normal; font-size:12px; padding:0 7px; border-radius:999px; color:var(--fg2); border:1px solid var(--line)}
#page-home .u3d-hpct{flex:0 0 auto; font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap}
#page-home .u3d-hl2{margin-top:3px; font-size:14px; color:var(--fg); font-variant-numeric:tabular-nums}
#page-home .u3d-hl2 .u3d-pa{color:var(--fg2)}
#page-home .u3d-hl3{display:flex; flex-wrap:wrap; gap:2px 14px; margin-top:2px; font-size:14px; color:var(--fg2); font-variant-numeric:tabular-nums}
#page-home .u3d-dustb{display:block; width:100%; min-height:44px; margin-top:6px; border:0; border-radius:12px; font:inherit; font-size:14px; color:var(--fg2); cursor:pointer;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-dust .u3d-hn b{font-size:15px} #page-home .u3d-dust .u3d-hpct{font-size:16px}
#page-home .u3d-today{margin-top:12px; padding:10px 12px; border-radius:14px; background:var(--u3-zbg)}
#page-home .u3d-tdh{font-size:16px; font-weight:800}
#page-home .u3d-ldsum{margin:4px 0 2px; font-size:15px} #page-home .u3d-ldsum small{font-size:12.5px; color:var(--fg2)}
#page-home .u3d-yday{margin-top:4px; font-size:14.5px; line-height:1.5} #page-home .u3d-yday b{font-weight:800} #page-home .u3d-yday small{font-size:12.5px; color:var(--fg2)}
#page-home .u3d-ydk{color:var(--fg2)}
#page-home .u3d-m2guide{display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:4px 0}
#page-home .u3d-m2guide b{font-size:16px} #page-home .u3d-m2guide span{font-size:14px; color:var(--fg2)}
/* ======== UI3D 6차 (2026-10-06) — 관리자 첫 화면 정리 · 진석 "헷갈리네 이런 게 아닌데. 인간의 입장에서 편의성 생각해서 자료 정리" ========
   관리자(body.uxr-admin) 첫 화면 = ① 내 돈(한 장) → ② 오늘 자동 매수 → ③ 오늘 찍은 종목(한 목록) → ④ 오늘 시장(바 게이지) → 더 보기(아침 흐름·오늘 판 표·날짜별 손익)
   숨김만(지우지 않음 — 다른 탭·회원 화면은 그대로): 보유 코인 줄 #hdHold · 예전 「내 돈」 #hdCard · 예전 「오늘 자동 매수」 #hmTopCard(단추 묶음은 ② 「자세히」 로 옮김) · 후보 두 칸 #uxdCands
   회원 화면(body.uxr-member)은 5차 그대로 — 아래 규칙은 전부 body.uxr-admin 아래 */
#page-home .uxd #u3dAuto, #page-home .uxd #u3dM2More{display:none}
body.uxr-admin #page-home .uxd #u3dAuto{display:block; order:-1}
body.uxr-admin #page-home .uxd #u3dM2More{display:block}
body.uxr-admin #page-home .uxd #hdHold, body.uxr-admin #page-home .uxd #hdCard, body.uxr-admin #page-home .uxd #hmTopCard, body.uxr-admin #page-home .uxd #uxdCands{display:none !important}
body.uxr-admin #page-home .uxd #u3dMine2{order:-2}
body.uxr-admin #page-home .uxd #pePanel{order:3}
body.uxr-admin #page-home .uxd #u3dMkt{order:4}
body.uxr-admin #page-home .uxd #uxdFold{order:7}
/* ① 내 돈 */
#page-home .u3d-mtk{font-size:13.5px; color:var(--fg2)}
#page-home .u3d-mtv{font-size:30px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1.15}
#page-home .u3d-mtiles{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:8px}
#page-home .u3d-mtile{display:flex; flex-direction:column; gap:1px; padding:10px 12px; border-radius:14px; min-width:0;
  background:linear-gradient(180deg, var(--uxd-b1), var(--uxd-b2)); box-shadow:0 0 0 1px var(--uxd-edge), var(--uxd-bsh)}
#page-home .u3d-mtl{font-size:12.5px; color:var(--fg2)}
#page-home .u3d-mtile b{font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap}
#page-home .u3d-mtile small{font-size:12px; color:var(--fg2)}
#page-home .u3d-hlh{margin:12px 0 0; font-size:14px; font-weight:800; color:var(--fg2)}
#page-home .u3d-m2more, #page-home .u3d-automore{margin-top:10px; border-radius:12px; background:var(--u3-zbg)}
#page-home .u3d-m2more > summary, #page-home .u3d-automore > summary{display:flex; align-items:center; gap:8px; min-height:44px; padding:0 12px; font-size:14.5px; font-weight:800; cursor:pointer; list-style:none}
#page-home .u3d-m2more > summary::-webkit-details-marker, #page-home .u3d-automore > summary::-webkit-details-marker{display:none}
#page-home .u3d-m2more > summary span, #page-home .u3d-automore > summary span{font-size:12.5px; font-weight:600; color:var(--fg2)}
#page-home #u3dM2Spk{padding:0 10px 10px}
#page-home #u3dM2Spk .uxd-spark{margin:0}
/* ② 오늘 자동 매수 */
#page-home .u3d-auto .uxd-h{margin-bottom:6px}
#page-home .u3d-abig{font-size:20px; font-weight:800; line-height:1.35}
#page-home .u3d-abig b{font-weight:800}
#page-home .u3d-awhy{margin-top:4px; padding:6px 10px; border-radius:10px; font-size:14px; font-weight:700; color:var(--uxr-warn); background:var(--uxr-warnbg)}
#page-home .u3d-auto .u3d-yday{margin-top:6px}
#page-home .u3d-autotl{margin-top:10px}
#page-home #u3dAutoMoreIn{padding:0 12px 12px}
#page-home #u3dAutoMoreIn .hm-acts{margin-top:4px}
/* ③ 오늘 찍은 종목 — 관리자: 접힌 줄을 누르면 그래프·최저 */
#pePanel.pe-mem .u3d-row.u3d-tap{cursor:pointer; -webkit-tap-highlight-color:transparent}
#pePanel.pe-mem .u3d-row.u3d-tap:active{background:var(--u3-zbg)}
#pePanel.pe-mem .u3d-more{font-size:12.5px; color:var(--fg2)}
/* ⑤ 탭 — 관리자 첫 줄 4개 + 「더보기 ▾」(펼치면 아래 줄로) */
body.uxr-admin .tabs .tab[data-tab="mystar"]{display:inline-block !important}
body.uxr-admin .tabs{flex-wrap:wrap !important; overflow-x:visible}
body.uxr-admin .tabs > .tab:not([hidden]), body.uxr-admin .tabs > .tab-more-btn{flex:1 1 0; text-align:center; min-height:40px}
body.uxr-admin .tabs > .tab.uxr-mem:not([data-tab="mystar"]){display:none !important}
body.uxr-admin .tab-menu:not([hidden]){display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:4px; flex:1 1 100%; margin-top:4px; padding:6px; border-radius:12px;
  background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
body.uxr-admin .tab-menu .tab{min-height:40px; text-align:center}
/* 6차 고침(관리자 화면 보고): 찍은 종목 줄의 호가 칩(DEP1)은 펼쳤을 때만 · 「오늘은 사지 않았어요」는 ② 칸과 겹쳐 뺌 */
body.uxr-admin #pePanel .u3d-row:not([aria-expanded="true"]) .dp-blk{display:none}
body.uxr-admin #pePanel .u3d-ps2{display:none}
#pePanel.pe-mem .u3d-pp{overflow-wrap:anywhere}
/* ======== UI3D 7차 (2026-10-06) — 진석 "코인 앞에 심볼 … 글씨 크기나 간격 … 쓸데없는 글들이 길면 눈에 안 들어오고 분산된다. 가독성을 높이라고" ========
   첫 화면만(관리자·회원). 코인 로고(업비트 공개 그림 · 못 열리면 색 동그라미 + 두 글자) · 카드 안쪽 16px · 카드 사이 16px · 줄 높이 1.4 ·
   숫자 위계 = 카드마다 큰 숫자 하나(28~32px) → 16~18px → 보조 13px · 오름 빨강 · 내림 파랑만 강하게, 나머지 글은 흰/회 두 단계 */
#page-home .uxd .u3d-card, #page-home .uxd #pePanel{padding:16px; margin-bottom:16px; line-height:1.4}
#page-home .u3d-card .u3d-h h2, #pePanel.pe-mem .pe-head.u3d-h .pe-title{font-size:17px; font-weight:800}
#page-home .u3d-go2{font-size:14px}
/* 로고 */
#page-home .u3d-logo{position:relative; flex:0 0 auto; display:inline-grid; place-items:center; border-radius:50%; overflow:hidden; vertical-align:middle;
  background:hsl(var(--hue, 210), 45%, 42%); box-shadow:0 0 0 1px rgba(255,255,255,.08)}
#page-home .u3d-logo i{font-style:normal; font-weight:800; color:#fff; letter-spacing:-.04em; line-height:1}
#page-home .u3d-logo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; opacity:0}
#page-home .u3d-logo img.ok{opacity:1; background:#fff}
/* 코인 한 줄 — [순위][로고][이름 / 한글] …… [큰 % / 작은 원] + 아래 작은 한 줄 */
#page-home .u3d-cr, #pePanel.pe-mem .pe-mlist > .u2-tr.u3d-pr{display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; align-items:center; column-gap:10px; row-gap:4px;
  padding:12px 0; border-top:1px solid var(--line)}
#page-home .u3d-cr:not(:has(.u3d-crk)){grid-template-columns:auto minmax(0,1fr) auto}
#page-home .u3d-hlist .u3d-cr:first-of-type, #page-home .u3d-gone .u3d-cr:first-of-type{border-top:0}
#pePanel.pe-mem .pe-mlist > .u2-tr.u3d-pr:first-child{border-top:0}
#page-home .u3d-crk{width:20px; text-align:center; font-size:13px; font-weight:800; color:var(--fg2); font-variant-numeric:tabular-nums}
#page-home .u3d-crk.r1{color:#f5c542} #page-home .u3d-crk.r2{color:#cfd6e2} #page-home .u3d-crk.r3{color:#e09a5a}
#page-home .u3d-qn{min-width:0; display:flex; flex-direction:column; line-height:1.25}
#page-home .u3d-qnt{display:flex; align-items:center; gap:6px; min-width:0}
#page-home .u3d-qnt b{font-size:16px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-qn small{font-size:13px; color:var(--fg2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#page-home .u3d-cbd{flex:0 0 auto; font-style:normal; font-size:11.5px; padding:0 6px; border-radius:999px; color:var(--fg3); border:1px solid var(--line); line-height:1.5}
#page-home .u3d-cv{display:flex; flex-direction:column; align-items:flex-end; text-align:right; line-height:1.2; font-variant-numeric:tabular-nums; white-space:nowrap}
#page-home .u3d-cv b{font-size:18px; font-weight:800}
#page-home .u3d-cv small{font-size:13px; color:var(--fg2)}
#page-home .u3d-cv small.up{color:var(--u3-up)} #page-home .u3d-cv small.dn{color:var(--u3-dn)}
#page-home .u3d-csub{grid-column:2 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; font-size:13px; color:var(--fg2); font-variant-numeric:tabular-nums}
#page-home .u3d-cr .u3d-csub{grid-column:2 / -1}
#page-home .u3d-cr:not(:has(.u3d-crk)) .u3d-csub{grid-column:2 / -1}
#pePanel.pe-mem .u3d-pr .u3d-csub{grid-column:3 / -1}
#pePanel.pe-mem .u3d-pr .u3d-pex{grid-column:3 / -1; display:flex; flex-direction:column; gap:8px; padding-top:4px}
#pePanel.pe-mem .u3d-pr .u3d-more{position:absolute; right:0; bottom:10px; font-size:12px}
#pePanel.pe-mem .u3d-pr{position:relative}
#pePanel.pe-mem .u3d-pr .u3d-cv b.u3d-chg{font-size:19px !important}
#pePanel.pe-mem .u3d-pr .u2-res{margin:0; font-size:12px; padding:1px 8px}
#pePanel.pe-mem .u3d-shi b{font-weight:800}
#pePanel.pe-mem .pe-mlist > .u2-tr.u3d-pr.u3d-hit, #pePanel.pe-mem .pe-mlist > .u2-tr.u3d-pr.u3d-phit{margin:0 -8px; padding:12px 8px}
#page-home .u3d-lr .u3d-ln{align-items:center}
#page-home .u3d-tmn{align-items:center}
/* 내 돈 — 큰 숫자 하나 */
#page-home .u3d-msum{padding:14px 16px}
#page-home .u3d-mtk{display:flex; justify-content:space-between; align-items:baseline; font-size:13px; color:var(--fg2)}
#page-home .u3d-mtk small{font-size:12px; color:var(--fg3)}
#page-home .u3d-mtv{font-size:32px; margin-top:2px}
#page-home .u3d-ms3{font-size:13px; margin-top:4px}
#page-home .u3d-mtiles{gap:10px; margin-top:12px}
#page-home .u3d-mtile{padding:12px 14px; gap:2px}
#page-home .u3d-mtl{font-size:13px}
#page-home .u3d-mtile b{font-size:18px}
#page-home .u3d-mtile small{font-size:13px}
#page-home .u3d-mtile small.up{color:var(--u3-up)} #page-home .u3d-mtile small.dn{color:var(--u3-dn)}
#page-home .u3d-hlh{margin:16px 0 0; font-size:13px; font-weight:700; color:var(--fg2)}
#page-home .u3d-dustb{margin-top:8px; font-size:13.5px}
/* 오늘 자동 매수 */
#page-home .u3d-abig{font-size:22px; margin-top:4px}
#page-home .u3d-auto .u3d-yday{margin-top:8px; font-size:15px}
#page-home .u3d-ldsum{margin:8px 0 2px} #page-home .u3d-ldsum small{display:block; margin-top:2px; font-size:13px}
/* 찍은 종목 요약 */
#pePanel.pe-mem .u3d-pksum{margin:12px 0 4px; padding:12px 14px}
#pePanel.pe-mem .u3d-ps0{font-size:16px} #pePanel.pe-mem .u3d-ps0 b{font-size:28px}
#pePanel.pe-mem .u3d-ps0 .u3d-ps0s{font-size:13px; font-weight:600; color:var(--fg2); margin-top:2px}
#pePanel.pe-mem .u3d-ps1{font-size:14px; color:var(--fg2)}
/* 시장 자세히 — 간 코인 줄 */
#page-home .u3d-gone .u3d-cr{border-top-color:rgba(255,90,110,.18)}
#pePanel.pe-mem .u3d-qnt b{color:var(--fg)}
#pePanel.pe-mem .u3d-pr .u3d-more{color:var(--fg2)}
/* ======== UI3D 8차 (2026-10-07) — 진석 「장중에 얼마까지 올랐나를 표시 · 자꾸 아홉시만 · 장중에 오른 코인 어디 있어」 · 「판매를 제대로 못 하는데 그거를 표시를 안 해주면 허접해 보이잖아」 ========
   오늘 자동 매수: 손익 줄 아래 요약 한 줄(.u3d-bhs) · 코인 줄마다 「산 뒤 최고」 한 줄(.u3d-bhi) / 시장 칸: 바 게이지 아래 「장중에 오른 코인」(#u3dMkUp · 회원도) */
#page-home .u3d-bhs{margin-top:8px; padding:10px 12px; border-radius:12px; font-size:15px; font-weight:700; line-height:1.45; color:var(--fg); background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .u3d-bhs b, #page-home .u3d-bhsb{font-weight:800; white-space:nowrap} #page-home .u3d-bhs b.up{color:var(--u3-up)} #page-home .u3d-bhs b.dn{color:var(--u3-dn)}
#page-home .u3d-bhsn{font-size:13px; font-weight:600; color:var(--fg2)}
#page-home .u3d-cr .u3d-csub.u3d-bhi{display:block; font-size:13px; color:var(--fg2)}
#page-home .u3d-bhi b, #page-home .u3d-bhit{white-space:nowrap} #page-home .u3d-bhi b{font-weight:800; color:var(--fg)} #page-home .u3d-bhi b.up{color:var(--u3-up)} #page-home .u3d-bhi b.dn{color:var(--u3-dn)}
#page-home .u3d-mkup{margin-top:14px; padding-top:12px; border-top:1px solid var(--line)}
#page-home .u3d-mkup:empty{display:none}
#page-home .u3d-uph{display:flex; align-items:baseline; justify-content:space-between; gap:8px}
#page-home .u3d-uph b{font-size:16px; font-weight:800}
#page-home .u3d-uph span{font-size:14px; font-weight:800; color:var(--fg2)} #page-home .u3d-uph span.up{color:var(--u3-up)}
#page-home .u3d-upb{margin-top:2px; font-size:12px; color:var(--fg2)}
#page-home .u3d-uplist .u3d-cr:first-of-type{border-top:0}
#page-home .u3d-uplist .u3d-csub .up{color:var(--u3-up)} #page-home .u3d-uplist .u3d-csub .dn{color:var(--u3-dn)}
#page-home .u3d-upw{color:var(--fg3)}
#page-home .u3d-up5{margin-top:6px}
#page-home .u3d-up5 > .u3d-upb{margin:4px 0 0}
/* ======== UI3D 9차 (2026-10-07) — 진석 18:1x 「이게 대체 뭐냐 · 이게 알아먹을 수 있는 거야 인간이?」 · 18:3x 「9시 경주마면 9시 경주마고 장중에 오른 코인은 장중에 오른 코인이고 …」 ========
   공통 정렬 표 .u3t(② 9시 경주마 · ③ 장중 코인 · ④ 오늘 자동 매수 — app.js u3dTbl) · 오늘 자동 매수 결론·강조 줄 · 관리자 첫 화면 칸 순서(바로 아래 한 곳)
   글씨: 표 본문 15px · 결론 22px · 머리·보조 13px [내 발명] · 오름 빨강 / 내림 파랑 */
/* ★ 관리자 첫 화면 칸 순서 — 이 다섯 줄만 바꾸면 순서가 바뀜(숫자가 작을수록 위) [순서 = 코디네이터 발명 · 진석 확인 전] */
body.uxr-admin #page-home .uxd #u3dMine2{order:-5}
body.uxr-admin #page-home .uxd #pePanel{order:-4}
body.uxr-admin #page-home .uxd #peIntra{order:-3}
body.uxr-admin #page-home .uxd #u3dAuto{order:-2}
body.uxr-admin #page-home .uxd #u3dMkt{order:-1}
/* ③ 장중 코인 칸 — 관리자만(회원은 자료(/api/predict)가 막혀 칸을 안 만듦) */
body.uxr-admin #page-home .uxd #peIntra{display:block}
#page-home .uxd #peIntra[hidden], body.uxr-member #page-home .uxd #peIntra{display:none !important}
/* 표 */
#page-home table.u3t{width:100%; border-collapse:collapse; margin-top:8px; font-variant-numeric:tabular-nums; line-height:1.3}
#page-home .u3t th{padding:0; font-size:13px; font-weight:700; color:var(--fg2); text-align:right; white-space:nowrap; border-bottom:1px solid var(--line)}
#page-home .u3t th.c0{text-align:left} #page-home .u3t th.c0 button{padding-left:0}
#page-home .u3t th button{display:block; width:100%; min-height:36px; padding:4px 3px; border:0; background:none; font:inherit; color:inherit; text-align:inherit; cursor:pointer; white-space:normal; word-break:keep-all; line-height:1.25}
#page-home .u3t th button.on{color:var(--fg)}
#page-home .u3t td{padding:8px 3px; font-size:15px; text-align:right; white-space:nowrap; vertical-align:middle; border-top:1px solid var(--line)}
#page-home .u3t tbody tr:first-child td{border-top:0}
#page-home .u3t td.c0{position:relative; width:100%; max-width:0; text-align:left; padding-left:0; padding-right:11px}
#page-home .u3t tr.u3t-r{cursor:pointer; -webkit-tap-highlight-color:transparent}
#page-home .u3t tr.u3t-r:active td, #page-home .u3t tr.u3t-r.on td{background:var(--u3-zbg)}
#page-home .u3t tr.u3t-r:focus-visible{outline:2px solid var(--accent, #5b9cff); outline-offset:-2px}
#page-home .u3t tr.u3t-r.hit td.c0{box-shadow:inset 3px 0 0 var(--u3-up)}
#page-home .u3t tr.u3t-r.phit td.c0{box-shadow:inset 3px 0 0 var(--u3-upbg)}
#page-home .u3t .up{color:var(--u3-up)} #page-home .u3t .dn{color:var(--u3-dn)}
#page-home .u3t td b{font-weight:800}
#page-home .u3t-nm{display:flex; align-items:center; gap:5px; min-width:0; overflow:hidden}
#page-home .u3t-nm b{flex:0 0 auto; font-size:15px; font-weight:800; color:var(--fg); white-space:nowrap}
#page-home .u3t-nm .u3d-logo{flex:0 0 auto}
#page-home .u3t-rk{flex:0 0 auto; min-width:13px; font-style:normal; font-size:12px; font-weight:700; color:var(--fg3); text-align:right}
#page-home .u3t-bd{flex:0 1 auto; min-width:0; overflow:hidden; white-space:nowrap; font-style:normal; font-size:11.5px; font-weight:800; line-height:1.5; padding:0 5px; border-radius:999px; color:var(--fg2); border:1px solid var(--line)}
#page-home .u3t-bd.st, #page-home .u3t-bd.st2{color:#3a2800; background:#f5c542; border-color:#f5c542}
#page-home .u3t-bd.st2{background:transparent; color:#f5c542}
body[data-theme="light"] #page-home .u3t-bd.st2{color:#8a5a00; border-color:#d9a400}
#page-home .u3t-bd.a9{color:var(--fg2); border-style:dashed}
#page-home .u3t-more{position:absolute; right:0; top:50%; transform:translateY(-50%); font-size:11px; color:var(--fg3)}
#page-home .u3t-st{display:inline-flex; flex-direction:column; align-items:flex-end; line-height:1.2}
#page-home .u3t-st small{font-size:12.5px; font-weight:600; color:var(--fg2)}
#page-home .u3t-w{color:var(--fg3)}
/* 펼친 줄(예전 숫자) */
#page-home .u3t tr.u3t-x td{padding:0 4px 12px; white-space:normal; text-align:left; border-top:0; background:var(--u3-zbg)}
#page-home .u3t-ex{display:flex; flex-direction:column; gap:6px; padding:6px 6px 0; font-size:15px; line-height:1.45}
#page-home .u3t-xn{display:flex; flex-wrap:wrap; gap:4px 10px; font-size:13px; color:var(--fg2)}
#page-home .u3t-xr{color:var(--fg3)}
#page-home .u3t-xl{display:flex; align-items:baseline; gap:10px; min-width:0}
#page-home .u3t-xk{flex:0 0 76px; font-size:13px; color:var(--fg2)}
#page-home .u3t-xv{flex:1 1 auto; min-width:0; font-variant-numeric:tabular-nums; overflow-wrap:anywhere}
#page-home .u3t-xv b{font-weight:800}
#page-home .u3t-ex .u2-res{display:inline-block; margin:0; font-size:13px; padding:1px 9px}
#page-home .u3t-ex .u3d-l2{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px 14px; align-items:start; margin-top:2px}
/* 요약 · 기준 한 줄 */
#page-home .u3t-base{margin-top:2px; font-size:13px; color:var(--fg2)}
#page-home .u3t-sum{margin-top:10px; font-size:15px; font-weight:700; line-height:1.45}
#page-home .u3t-sum b.up{color:var(--u3-up)}
#page-home .u3t-sumw{font-size:13px; font-weight:600; color:var(--fg2)}
#page-home .u3t-sum2{margin-top:4px; font-size:13px; line-height:1.45; color:var(--fg2)}
/* ③ 장중 코인 칸 — 9시 칸(#pePanel.pe-mem)과 같은 작은 선·막대·결과 칩 모양(같은 규칙을 이 칸 이름으로 한 번 더) */
#peIntra .u2-res.hit{font-weight:800}
#peIntra .u2-res.phit{color:var(--u3-up); background:var(--u3-upbg); box-shadow:inset 0 0 0 1.5px var(--u3-up); font-weight:800}
#peIntra .u2-res.pmiss{color:var(--fg); background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#peIntra .u3d-spk polyline{fill:none; stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke}
#peIntra .u3d-spk.up polyline{stroke:var(--u3-up)} #peIntra .u3d-spk.dn polyline{stroke:var(--u3-dn)} #peIntra .u3d-spk.z polyline{stroke:var(--u3-z)}
#peIntra .u3d-rng{display:flex; flex-direction:column; gap:3px; min-width:0; padding-top:6px}
#peIntra .u3d-rtr{position:relative; height:8px; border-radius:999px; background:linear-gradient(90deg, rgba(91,156,255,.55), rgba(154,164,178,.35) 50%, rgba(255,90,110,.55)); box-shadow:var(--uxd-well-sh)}
#peIntra .u3d-r0{position:absolute; top:-3px; width:2px; height:14px; margin-left:-1px; background:var(--fg2); border-radius:1px}
#peIntra .u3d-rdot{position:absolute; top:50%; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%; border:2px solid var(--bg2); box-shadow:0 2px 4px rgba(0,0,0,.45)}
#peIntra .u3d-rdot.up{background:var(--u3-up)} #peIntra .u3d-rdot.dn{background:var(--u3-dn)} #peIntra .u3d-rdot.z{background:var(--u3-z)}
#peIntra .u3d-rlb{display:flex; justify-content:space-between; gap:4px; font-size:12px; color:var(--fg2); white-space:nowrap}
#peIntra .u3d-rlb span:nth-child(2){color:var(--fg)}
#peIntra .u3d-spw{position:relative; display:block; min-width:0; height:34px; margin-bottom:16px}
#peIntra .u3d-spw .u3d-spk{display:block; width:100%; height:34px; overflow:visible}
#peIntra .u3d-spk .nine{stroke:var(--fg2); stroke-width:1.2; stroke-dasharray:3 3; vector-effect:non-scaling-stroke}
#peIntra .u3d-9{position:absolute; top:100%; transform:translateX(-50%); font-size:12px; line-height:16px; color:var(--fg2); white-space:nowrap}
#peIntra .u3d-spdot{position:absolute; right:-3px; width:7px; height:7px; margin-top:-3.5px; border-radius:50%}
#peIntra .u3d-spdot.up{background:var(--u3-up)} #peIntra .u3d-spdot.dn{background:var(--u3-dn)} #peIntra .u3d-spdot.z{background:var(--u3-z)}
/* ④ 오늘 자동 매수 — 결론(22px) · 「팔고 나서 더 오른 코인」(빨강) · 맨 아래 넣은/받은 돈(작게) */
#page-home .u3d-auto .u3d-abig{font-size:22px; line-height:1.35} #page-home .u3d-auto .u3d-abig b{white-space:nowrap}
#page-home .u3d-supn{white-space:nowrap}
#page-home .u3d-auto .u3d-yday{margin-top:4px; font-size:14px; color:var(--fg2)}
#page-home .u3d-auto .u3d-yday b{font-size:14px}
#page-home .u3d-sup{margin-top:10px; padding:10px 12px; border-radius:12px; background:var(--uxd-well); box-shadow:var(--uxd-well-sh)}
#page-home .u3d-sup1{font-size:17px; font-weight:800; color:var(--u3-up)}
#page-home .u3d-sup2{margin-top:2px; font-size:15px; font-weight:700; color:var(--u3-up); font-variant-numeric:tabular-nums; line-height:1.45}
#page-home .u3d-sup0{font-size:15px; font-weight:700; color:var(--fg2)}
#page-home .u3d-afoot{margin-top:8px; font-size:13px; color:var(--fg2); font-variant-numeric:tabular-nums}
/* ======== LAYOUT1 (2026-10-10) — 첫 화면 반응형 배치(손님·회원 = body.uxr-member · 관리자 = body.uxr-admin) ========
   진석 10-10 17:1x 「레이아웃이 PC 하고 모바일하고 반응형이 돼야지」 — 칸 내용·기능·자료·알람은 그대로, 칸 자리·순서만 바꿈.
   우선순위 [코디네이터 발명 — 진석이 나중에 고침]: ① 볼 코인 알람(#k1Home 관리자 · #k1Mem 회원) ② 9시 경주마(#pePanel) ③ 장중 코인(#peIntra 관리자만)
     ④ 내 돈·내 코인(#u3dMine2 · 관리자 #u3dAuto 오늘 자동 매수 · 회원 #u3dMine/#uxrMyAuto/#uxrMyMoney) ⑤ 오늘 시장(#u3dMkt) ⑥ 볼 코인 지난 기록(#u2ShHome 회원) ⑦ 나머지(#uxdFold 더 보기 등)
   폰(<768px)  : 한 줄 — 위 순서대로(order).
   태블릿(768~1199): 2열 — 왼쪽 줄(.uxd-colL) ①·④·⑥ / 오른쪽 줄(.uxd-colR) ②·③·⑤·⑦ (index.html 에서 #u3dMkt 를 오른쪽 줄로 옮김).
   PC(≥1200)  : 맨 위 줄 ①|②|③ 같은 높이(회원은 ③ 없음 → ② 가 두 칸 폭) / 둘째 줄 ④ | ⑤ | ⑥(관리자는 ⑦ 더 보기). 최대 폭 1440px 가운데.
   되돌리기: 이 블록 통째로 빼고 index.html 의 #u3dMkt 를 예전 자리(왼쪽 줄 #u3dAuto 다음)로 — 또는 backup/2026-10-10_layout1/ 를 web/ 에 덮어쓰기 */
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hmDayBan{order:5}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Home,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Mem{order:10}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #pePanel{order:20}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #peIntra{order:30}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine2{order:40}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dAuto{order:45}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine{order:46}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyAuto{order:47}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyMoney{order:48}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMkt{order:50}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u2ShHome{order:60}
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxdFold{order:70}
/* 폰: 한 줄(기존 flex 세로 + .uxd-col 투명) · 가로 넘침 막기 */
@media (max-width:767.98px){
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd{display:flex; flex-direction:column; max-width:none; padding:10px 12px 40px}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd .uxd-col{display:contents}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd > *, body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd .uxd-col > *{min-width:0; max-width:100%}
}
/* 태블릿: 2열 — 왼쪽 줄 · 오른쪽 줄을 각자 세로로 쌓음(줄 안 순서 = 위 order) */
@media (min-width:768px) and (max-width:1199.98px){
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:16px; row-gap:0; align-items:start; max-width:1240px; padding:14px 16px 48px}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd > *{grid-column:1 / -1; min-width:0}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd > .uxd-colL{grid-column:1; display:flex; flex-direction:column; min-width:0}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd > .uxd-colR{grid-column:2; display:flex; flex-direction:column; min-width:0}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd .uxd-col > *{min-width:0}
}
/* PC: 3열 격자 — 맨 위 줄(2번 줄) ①②③ 같은 높이(stretch) · 둘째 묶음 ④ 는 1열에 차례로, ⑤·⑥ 은 3~7번 줄을 걸침.
   7번 줄 = 1fr — ⑤·⑥ 이 ④ 묶음보다 길어도 남는 높이가 7번 줄에만 붙어 ④ 칸 사이가 벌어지지 않게 [내 발명] */
@media (min-width:1200px){
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto auto auto auto auto auto 1fr;
    column-gap:16px; row-gap:0; align-items:start; max-width:1440px; margin:0 auto; padding:14px 20px 48px}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd .uxd-col{display:contents}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd > *, body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd .uxd-col > *{grid-column:1 / -1; grid-row:14; min-width:0}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hmDayBan{grid-column:1 / -1; grid-row:1}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Home,
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Mem{grid-column:1; grid-row:2; align-self:stretch}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #pePanel{grid-column:2; grid-row:2; align-self:stretch}
  body.uxr-member #page-home .hm.uxd #pePanel{grid-column:2 / 4}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #peIntra{grid-column:3; grid-row:2; align-self:stretch}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine2{grid-column:1; grid-row:3}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dAuto{grid-column:1; grid-row:4}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine{grid-column:1; grid-row:4}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyAuto{grid-column:1; grid-row:5}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyMoney{grid-column:1; grid-row:6}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMkt{grid-column:2; grid-row:3 / 8}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u2ShHome{grid-column:3; grid-row:3 / 8}
  body.uxr-admin #page-home .hm.uxd #uxdFold{grid-column:3; grid-row:3 / 8}
  body.uxr-member #page-home .hm.uxd #uxdFold{grid-column:1 / -1; grid-row:8}
  /* 평소 안 보이는 옛 칸(hm-head·hdHold·hmTopCard·hdCard·hmMkCard·uxdCands)은 보이게 되더라도 맨 아래 각자 한 줄 */
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd > .hm-head{grid-row:9}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hdHold{grid-row:10}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hmTopCard{grid-row:11}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hdCard{grid-row:12}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hmMkCard{grid-row:13}
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxdCands{grid-row:15}
}
/* LAYOUT1: 칸 사이 간격 하나로 — 폰 12px · 태블릿·PC 16px(열 사이와 같게) [내 발명] */
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hmDayBan,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Home,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Mem,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #pePanel,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #peIntra,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine2,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dAuto,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyAuto,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyMoney,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMkt,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u2ShHome,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxdFold{margin-top:0; margin-bottom:12px}
@media (min-width:768px){
  body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #hmDayBan,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Home,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #k1Mem,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #pePanel,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #peIntra,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine2,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dAuto,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMine,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyAuto,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxrMyMoney,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u3dMkt,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #u2ShHome,
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd #uxdFold{margin-bottom:16px}
}
/* LAYOUT1: 칸 제목 글자 크기 하나로(17px — 「내 코인·수익」「볼 코인 알람」「오늘 시장」과 같게) · 9시 경주마·지난 기록 제목만 15.5·16 → 17 [내 발명] */
body:is(.uxr-admin,.uxr-member) #page-home .hm.uxd :is(#k1Home,#k1Mem,#pePanel,#peIntra,#u3dMine2,#u3dAuto,#u2ShHome) :is(.u3d-h > h2, .u2-h > h2, .pe-title){font-size:17px}
/* FIX2 2026-10-23 #12(QA2: 관리자 「실시간」 신호 로그 글 「새 봇 의심 · 점수 …」·「호가벽 사건 …」이 390 폭 오른쪽 밖 R=401~415) —
   한 줄 flex 의 마지막 글 칸만 줄어들고 꺾이게(앞 칸 시각·코인·단추·종류는 그대로) */
#signalLog .logrow{flex-wrap:wrap}
#signalLog .logrow > span:last-child{flex:1 1 140px; min-width:0; overflow-wrap:anywhere; word-break:keep-all}
