/* ═══ JASAZOO <GO> — Bloomberg Terminal Style ═══ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#000000;
  --bg2:#0a0a0a;
  --bg3:#111111;
  --panel:#0d0d0d;
  --line:#1a1a1a;
  --line2:#2a2a2a;
  --text:#d4d4d4;
  --text-bright:#ffffff;
  --muted:#666666;
  --muted2:#444444;
  --orange:#ff8c00;
  --orange2:#e67e00;
  --orange-dim:rgba(255,140,0,.08);
  --orange-glow:rgba(255,140,0,.15);
  --green:#00c853;
  --green-dim:rgba(0,200,83,.1);
  --red:#ff3d3d;
  --red-dim:rgba(255,61,61,.1);
  --amber:#ffab00;
  --amber-dim:rgba(255,171,0,.1);
  --cyan:#4fc3f7;
  --blue:#2196f3;
}

html{font-size:13px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'SF Mono','Cascadia Code','Consolas','Fira Code','JetBrains Mono','Menlo',monospace;
  line-height:1.4;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
}

a{color:var(--cyan);text-decoration:none}
::selection{background:var(--orange);color:#000}

/* ═══ Top Bar — Bloomberg orange title bar ═══ */
.bb-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:linear-gradient(180deg,#1a1200 0%,#0d0a00 100%);
  border-bottom:1px solid var(--orange);
  padding:6px 12px;
  flex-shrink:0;
  flex-wrap:wrap;
  gap:4px;
}
.bb-topbar-left{display:flex;align-items:center;gap:6px}
.bb-topbar-right{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--muted)}

.bb-logo{
  color:var(--orange);
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:.08em;
  text-shadow:0 0 12px rgba(255,140,0,.3);
}
.bb-go{
  color:var(--orange);
  font-size:.85rem;
  font-weight:600;
  opacity:.7;
}
.bb-pipe{color:var(--muted2);margin:0 2px}
.bb-title{color:var(--muted);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}

.bb-key{
  display:inline-block;
  background:var(--orange);
  color:#000;
  font-weight:700;
  font-size:.65rem;
  padding:1px 4px;
  border-radius:2px;
  margin-left:8px;
  line-height:1.3;
}

/* ═══ Social / Feedback buttons (topbar-right) ═══ */
.bb-social{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--muted);
  font-size:.7rem;
  text-decoration:none;
  padding:2px 6px;
  border:1px solid transparent;
  transition:all .12s;
}
.bb-social:hover{color:var(--orange);border-color:var(--orange-dim)}
.bb-social svg{flex-shrink:0}
.bb-social-label{letter-spacing:.02em}

.bb-feedback-btn{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--muted);
  font-family:inherit;
  font-size:.7rem;
  background:none;
  border:1px solid var(--line2);
  padding:2px 8px;
  cursor:pointer;
  transition:all .12s;
  margin-left:4px;
}
.bb-feedback-btn:hover{color:var(--orange);border-color:var(--orange);background:var(--orange-dim)}

/* ═══ Feedback Room Panel ═══ */
.fb-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(2px);
  justify-content:center;
  align-items:center;
}
.fb-overlay.open{display:flex}

.fb-panel{
  background:var(--bg);
  border:1px solid var(--orange);
  width:min(800px,calc(100vw - 24px));
  height:min(90dvh,900px);
  display:flex;
  flex-direction:column;
  box-shadow:0 0 40px rgba(255,140,0,.08),0 4px 20px rgba(0,0,0,.6);
}

.fb-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  background:linear-gradient(180deg,#1a1200 0%,#0d0a00 100%);
  border-bottom:1px solid var(--orange);
  flex-shrink:0;
}
.fb-title{
  color:var(--orange);
  font-weight:800;
  font-size:1rem;
  letter-spacing:.08em;
}
.fb-sub{
  color:var(--muted);
  font-size:.8rem;
}
.fb-close{
  margin-left:auto;
  background:none;
  border:none;
  color:var(--muted);
  font-size:1.5rem;
  cursor:pointer;
  padding:0 6px;
  line-height:1;
  font-family:inherit;
}
.fb-close:hover{color:var(--orange)}

.fb-messages{
  flex:1;
  overflow-y:auto;
  padding:12px 16px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.fb-empty{
  color:var(--muted2);
  font-size:.9rem;
  text-align:center;
  padding:60px 0;
}

.fb-msg{
  padding:8px 0;
  border-bottom:1px solid var(--line);
  animation:fbIn .2s ease-out;
}
@keyframes fbIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.fb-msg-head{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:3px;
}
.fb-msg-nick{
  color:var(--orange);
  font-weight:700;
  font-size:.9rem;
}
.fb-msg-time{
  color:var(--muted2);
  font-size:.7rem;
  margin-left:auto;
}
.fb-msg-text{
  color:var(--text);
  font-size:.95rem;
  line-height:1.6;
  word-break:break-word;
}

.fb-form{
  flex-shrink:0;
  padding:12px 16px;
  border-top:1px solid var(--line2);
  background:var(--bg2);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fb-nick{
  background:var(--bg3);
  border:1px solid var(--line);
  color:var(--text);
  font-family:inherit;
  font-size:16px;
  padding:8px 10px;
  outline:none;
  caret-color:var(--orange);
  width:160px;
}
.fb-nick::placeholder{color:var(--muted2)}
.fb-nick:focus{border-color:var(--muted)}

.fb-row{display:flex;gap:6px}
.fb-input{
  flex:1;
  background:var(--bg3);
  border:1px solid var(--line);
  color:var(--text);
  font-family:inherit;
  font-size:16px;
  padding:10px 12px;
  outline:none;
  caret-color:var(--orange);
}
.fb-input::placeholder{color:var(--muted2)}
.fb-input:focus{border-color:var(--orange)}

.fb-send{
  background:var(--orange);
  color:#000;
  font-family:inherit;
  font-weight:700;
  font-size:.85rem;
  border:none;
  padding:10px 18px;
  cursor:pointer;
  letter-spacing:.04em;
  transition:background .1s;
  flex-shrink:0;
}
.fb-send:hover{background:var(--orange2)}
.fb-send:disabled{opacity:.4;cursor:not-allowed}

/* ═══ Command Bar — terminal input ═══ */
.bb-cmdbar{
  display:flex;
  align-items:center;
  background:var(--bg2);
  border-bottom:1px solid var(--line);
  padding:4px 12px;
  gap:8px;
  flex-shrink:0;
  flex-wrap:wrap;
}
.bb-prompt{
  color:var(--orange);
  font-weight:700;
  font-size:1rem;
  flex-shrink:0;
}
.bb-cmd-input{
  flex:1;
  min-width:160px;
  background:transparent;
  border:none;
  color:var(--text-bright);
  font-family:inherit;
  font-size:.9rem;
  outline:none;
  padding:6px 0;
  caret-color:var(--orange);
}
.bb-cmd-input::placeholder{color:var(--muted2)}
.bb-cmd-input:focus::placeholder{color:var(--muted)}

.bb-cmd-filters{display:flex;gap:4px;flex-wrap:wrap}
.bb-fn{
  padding:3px 8px;
  background:var(--bg3);
  border:1px solid var(--line);
  color:var(--muted);
  font-family:inherit;
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
  transition:all .1s;
  white-space:nowrap;
}
.bb-fn:hover{color:var(--text);border-color:var(--muted)}
.bb-fn.active{
  color:var(--orange);
  border-color:var(--orange);
  background:var(--orange-dim);
  text-shadow:0 0 6px rgba(255,140,0,.2);
}

/* ═══ Stats Panel — 4 boxes ═══ */
.bb-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1px;
  background:var(--line);
  margin:0;
  flex-shrink:0;
}
.stat{
  background:var(--bg2);
  padding:8px 12px;
  font-size:.75rem;
  color:var(--muted);
  display:flex;
  flex-direction:column;
  gap:1px;
}
.stat-val{
  color:var(--orange);
  font-size:1.1rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}
.stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em}
.stat.stat-muted .stat-val{color:var(--muted);font-size:.75rem;font-weight:400}

/* ═══ Methodology panel ═══ */
.bb-method-bar{
  background:var(--bg2);
  border-bottom:1px solid var(--line);
  flex-shrink:0;
}
.bb-method-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  padding:5px 12px;
  background:none;
  border:none;
  color:var(--muted);
  font-family:inherit;
  font-size:.65rem;
  font-weight:600;
  letter-spacing:.04em;
  cursor:pointer;
  text-align:left;
}
.bb-method-toggle:hover{color:var(--orange)}
.bb-method-arrow{font-size:.6rem;transition:transform .15s}
.bb-method-body{
  max-height:0;
  overflow:hidden;
  transition:max-height .25s ease-out;
}
.bb-method-body.open{max-height:600px;transition:max-height .35s ease-in}
.method-content{
  padding:0 12px 12px;
  font-size:.72rem;
  line-height:1.6;
  color:var(--text);
}
.method-intro{
  color:var(--muted);
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.method-intro strong{color:var(--orange);font-weight:700}
.method-dims{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
  margin-bottom:10px;
}
.method-dim{
  background:var(--bg3);
  padding:8px 10px;
  border-left:2px solid var(--orange);
}
.method-dim-title{
  font-size:.7rem;
  font-weight:700;
  color:var(--text-bright);
  margin-bottom:4px;
}
.method-dim-pts{
  color:var(--orange);
  font-size:.6rem;
  font-weight:700;
  margin-left:4px;
}
.method-dim p{
  color:var(--muted);
  font-size:.68rem;
  margin:3px 0;
}
.method-formula{
  font-family:inherit;
  color:var(--cyan) !important;
  font-size:.65rem !important;
  background:var(--bg);
  padding:3px 6px;
  display:inline-block;
  margin-top:4px !important;
}
.method-note{
  font-style:italic;
  font-size:.62rem !important;
  color:var(--muted2) !important;
}
.method-eval{margin:10px 0}
.method-eval-loading{font-size:.65rem;color:var(--muted2);font-style:italic}
.method-eval-box{
  background:var(--bg3);
  border-left:2px solid var(--cyan);
  padding:8px 12px;
}
.method-eval-tag{
  font-size:.55rem;
  color:var(--cyan);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  display:block;
  margin-bottom:6px;
}
.method-eval-title{
  font-size:.7rem;
  font-weight:700;
  color:var(--text-bright);
  margin-top:6px;
  margin-bottom:2px;
}
.method-eval-line{
  font-size:.68rem;
  color:var(--muted);
  line-height:1.5;
  padding:1px 0;
}
.method-caveat{
  font-size:.6rem;
  color:var(--muted2);
  padding-top:8px;
  border-top:1px solid var(--line);
}

/* ═══ Panel Frame ═══ */
.bb-panel{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  border-top:1px solid var(--line);
}
.bb-panel-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:4px 12px;
  background:var(--bg2);
  border-bottom:1px solid var(--line);
}
.bb-panel-title{
  color:var(--orange);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.bb-panel-sub{color:var(--muted);font-size:.7rem}

/* ═══ Table ═══ */
.table-wrap{flex:1;overflow:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:fixed}
thead{position:sticky;top:0;z-index:2}

th{
  background:var(--orange);
  color:#000;
  font-weight:700;
  font-size:.65rem;
  letter-spacing:.06em;
  padding:4px 8px;
  text-align:left;
  white-space:nowrap;
  cursor:pointer;
  user-select:none;
  border-right:1px solid rgba(0,0,0,.15);
  text-transform:uppercase;
}
th:last-child{border-right:none}
th:hover{background:var(--orange2)}
th.num,td.num{text-align:right}
/* table-layout:fixed column widths */
th:nth-child(1){width:3%}  /* # */
th:nth-child(2){width:7%}  /* TICKER */
th:nth-child(3){width:20%} /* 종목명 */
th:nth-child(4){width:6%}  /* 시장 */
th:nth-child(5){width:9%}  /* 현재가 */
th:nth-child(6){width:8%}  /* 자사주% */
th:nth-child(7){width:20%} /* 최대주주 */
th:nth-child(8){width:7%}  /* 지분% */
th:nth-child(9){width:20%} /* 나름의 점수 */
th.sorted-asc::after{content:' \25B2';font-size:.6rem}
th.sorted-desc::after{content:' \25BC';font-size:.6rem}

td{
  padding:3px 8px;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* alternating rows */
tr.row-main:nth-child(4n+1){background:var(--bg)}
tr.row-main:nth-child(4n+3){background:var(--bg2)}
tr.row-main{cursor:pointer;transition:background .08s}
tr.row-main:hover{background:var(--orange-dim) !important}
tr.row-main.expanded{background:var(--orange-glow) !important;border-left:2px solid var(--orange)}

.ticker{color:var(--orange);font-weight:700}
.market-tag{
  font-size:.6rem;
  padding:1px 4px;
  color:var(--muted);
  border:1px solid var(--line2);
  letter-spacing:.04em;
}
.pct-hi{color:var(--green);font-weight:700}
.pct-mid{color:var(--amber);font-weight:600}
.pct-lo{color:var(--muted)}
.holder{max-width:150px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.75rem}

/* ═══ Detail row (accordion) ═══ */
tr.row-detail{display:none}
tr.row-detail.open{display:table-row}
tr.row-detail td{padding:0;border-bottom:2px solid var(--orange-dim);overflow:hidden}

.detail-inner{
  background:var(--bg2);
  border-left:2px solid var(--orange);
  padding:10px 14px;
  animation:slideDown .15s ease-out;
  overflow-x:hidden;
  word-break:break-word;
}
@keyframes slideDown{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ── Detail stock header (context bar) ── */
.detail-stock-header{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 0 8px;
  margin-bottom:8px;
  border-bottom:1px solid var(--orange);
  position:sticky;
  top:0;
  z-index:3;
  background:var(--bg2);
}
.detail-stock-ticker{
  color:var(--orange);
  font-weight:800;
  font-size:.85rem;
  letter-spacing:.04em;
}
.detail-stock-name{
  color:var(--text-bright);
  font-weight:600;
  font-size:.8rem;
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.detail-stock-price{
  color:var(--muted);
  font-size:.75rem;
  font-variant-numeric:tabular-nums;
}
.detail-stock-close-btn{
  color:var(--muted);
  font-size:1.1rem;
  cursor:pointer;
  padding:0 2px;
  line-height:1;
  flex-shrink:0;
  display:none;
}
.detail-stock-close-btn:hover{color:var(--orange)}

.detail-section-title{
  font-size:.65rem;
  color:var(--orange);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:6px;
  padding-bottom:3px;
  border-bottom:1px solid var(--line2);
}

.detail-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:6px 14px;
  margin-bottom:10px;
}
.detail-item{display:flex;flex-direction:column;gap:0}
.detail-label{font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.detail-value{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}
.detail-value.good{color:var(--green)}
.detail-value.warn{color:var(--amber)}
.detail-value.bad{color:var(--red)}
.detail-value.na{color:var(--muted2);font-weight:400;font-style:italic}

/* ── Tooltip (?) ── */
.tip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:13px;height:13px;
  font-size:.55rem;
  font-weight:700;
  color:var(--muted);
  border:1px solid var(--line2);
  border-radius:50%;
  cursor:help;
  position:relative;
  vertical-align:middle;
  margin-left:3px;
  line-height:1;
}
.tip:hover{color:var(--orange);border-color:var(--orange)}
.tip:hover::after{
  content:attr(data-tip);
  position:absolute;
  bottom:calc(100% + 6px);
  left:50%;
  transform:translateX(-50%);
  background:var(--bg3);
  border:1px solid var(--orange);
  color:var(--text);
  font-size:.65rem;
  font-weight:400;
  text-transform:none;
  letter-spacing:0;
  padding:6px 10px;
  white-space:normal;
  width:220px;
  line-height:1.5;
  z-index:20;
  pointer-events:none;
}

/* ── Shareholders ── */
.detail-shareholders{margin-top:8px}
.detail-shareholders h4{
  font-size:.65rem;
  color:var(--orange);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:4px;
  display:flex;
  align-items:center;
  gap:8px;
}
.sh-row{
  display:flex;
  gap:8px;
  font-size:.75rem;
  padding:2px 0;
  border-bottom:1px solid var(--line);
  align-items:center;
}
.sh-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.sh-pct{min-width:55px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.sh-bar{width:80px;height:10px;background:var(--line);overflow:hidden;flex-shrink:0}
.sh-bar-fill{height:100%;background:var(--orange);opacity:.7}

.detail-note{
  font-size:.65rem;
  color:var(--muted2);
  margin-top:8px;
  padding-top:5px;
  border-top:1px solid var(--line);
  line-height:1.5;
}

/* ═══ News list ═══ */
.news-list{display:flex;flex-direction:column;gap:1px}
.news-item{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding:3px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  transition:background .08s;
}
.news-item:hover{background:var(--orange-dim)}
.news-title{
  color:var(--cyan);
  font-size:.75rem;
  flex:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.news-item:hover .news-title{color:var(--text-bright)}
.news-meta{
  color:var(--muted2);
  font-size:.6rem;
  white-space:nowrap;
  flex-shrink:0;
}

/* ═══ News AI Summary ═══ */
.news-summary{margin-top:6px}
.news-summary-loading{font-size:.65rem;color:var(--muted2);font-style:italic}
.news-summary-box{
  background:var(--bg3);
  border-left:2px solid var(--orange);
  padding:6px 10px;
  margin-top:6px;
}
.news-summary-tag{
  font-size:.55rem;
  color:var(--orange);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  display:block;
  margin-bottom:4px;
}
.news-summary-line{
  font-size:.72rem;
  color:var(--text);
  line-height:1.5;
  padding:1px 0;
}

/* ═══ Stock AI Eval ═══ */
.detail-eval{margin-bottom:8px}
.stock-eval-loading{font-size:.65rem;color:var(--muted2);font-style:italic}
.stock-eval-box{
  background:var(--bg3);
  border-left:2px solid var(--cyan);
  padding:6px 10px;
  overflow:hidden;
  max-width:100%;
  word-break:break-word;
  overflow-wrap:break-word;
}
.stock-eval-tag{
  font-size:.6rem;
  color:var(--cyan);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  display:block;
  margin-bottom:4px;
}
.stock-eval-line{
  font-size:.8rem;
  color:var(--text);
  line-height:1.6;
  padding:2px 0;
  word-break:break-all;
  overflow-wrap:break-word;
  white-space:normal;
}

/* ═══ Badges ═══ */
.badge{display:inline-block;padding:1px 5px;font-size:.6rem;font-weight:700;letter-spacing:.02em}
.badge-green{background:var(--green-dim);color:var(--green);border:1px solid rgba(0,200,83,.2)}
.badge-amber{background:var(--amber-dim);color:var(--amber);border:1px solid rgba(255,171,0,.2)}
.badge-red{background:var(--red-dim);color:var(--red);border:1px solid rgba(255,61,61,.2)}

/* ═══ Score gauge ═══ */
.score-cell{display:flex;align-items:center;justify-content:flex-end;gap:5px;font-weight:600}
.score-bar{width:36px;height:4px;background:var(--line2);overflow:hidden}
.score-bar-fill{height:100%;transition:width .3s}

/* ═══ Score Breakdown (accordion top) ═══ */
.score-breakdown{
  display:flex;
  gap:16px;
  align-items:center;
  padding:8px 0 10px;
  margin-bottom:10px;
  border-bottom:1px solid var(--line2);
  overflow:hidden;
  min-width:0;
}
.score-total{
  display:flex;
  align-items:baseline;
  gap:4px;
  flex-shrink:0;
}
.score-total-num{font-size:1.8rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.score-total-label{font-size:.7rem;color:var(--muted)}
.intent-signal{margin-left:6px;display:inline-block;vertical-align:middle}
.score-dims{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  flex:1;
  min-width:0;
}
.score-dim{}
.score-dim-head{display:flex;justify-content:space-between;align-items:baseline;gap:4px;margin-bottom:2px}
.score-dim-label{font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.score-dim-val{font-size:.75rem;font-weight:700;color:var(--text-bright);font-variant-numeric:tabular-nums}
.score-dim-max{font-size:.6rem;color:var(--muted);font-weight:400}
.score-dim-bar{height:4px;background:var(--line2);overflow:hidden}
.score-dim-fill{height:100%;background:var(--orange);transition:width .3s}
.score-dim-desc{font-size:.55rem;color:var(--muted2);margin-top:1px}

/* ═══ Loading ═══ */
.loading{text-align:center;padding:40px 0;color:var(--muted)}
.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--line2);border-top-color:var(--orange);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══ Status Bar (bottom) ═══ */
.bb-statusbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:3px 12px;
  background:var(--bg2);
  border-top:1px solid var(--orange);
  font-size:.6rem;
  color:var(--muted);
  flex-shrink:0;
  flex-wrap:wrap;
  gap:4px;
}

/* ═══ Hint overlay (auto-hide) ═══ */
.hint-flash{
  position:fixed;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  background:var(--orange);
  color:#000;
  font-weight:700;
  font-size:1.2rem;
  padding:12px 28px;
  z-index:100;
  letter-spacing:.06em;
  pointer-events:none;
  animation:hintPop .6s ease-out forwards;
}
@keyframes hintPop{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}
  15%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  80%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.02)}
}

/* ═══ Scrollbar ═══ */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:0}
::-webkit-scrollbar-thumb:hover{background:var(--muted2)}

/* ═══ Mobile — hide columns via data-sort ═══ */
@media(max-width:700px){
  html{font-size:12px}

  /* ── Topbar: compact ── */
  .bb-topbar{padding:3px 8px}
  .bb-go,.bb-pipe{display:none}
  .bb-social-label{display:none}
  .bb-feedback-btn .bb-social-label{display:none}
  .bb-social{padding:2px 4px}
  .bb-feedback-btn{padding:2px 6px}

  /* ── Cmdbar: search + filters stacked ── */
  .bb-cmdbar{padding:3px 8px;gap:4px}
  .bb-cmd-input{min-width:100px;padding:4px 0;font-size:.85rem}
  .bb-cmd-filters{width:100%;gap:2px}
  .bb-fn{flex:1;text-align:center;padding:8px 2px;min-height:40px;display:flex;align-items:center;justify-content:center;font-size:.7rem}

  /* ── Stats: 3+2 compact grid ── */
  .bb-stats{grid-template-columns:repeat(3,1fr)}
  .stat{padding:4px 8px}
  .stat-val{font-size:.95rem}
  .stat-label{font-size:.58rem}
  .stat.stat-muted{grid-column:span 2}

  /* ── Methodology ── */
  .method-dims{grid-template-columns:1fr}

  /* ── Panel header ── */
  .bb-panel-header{padding:2px 8px}
  .bb-panel-title{font-size:.6rem}

  /* ── Table: hide 시장, 최대주주, 지분% ── */
  /* Keep: #, ticker, 종목명, 현재가, 자사주%, 나름의점수 */
  th[data-sort="market"],
  th[data-sort="largest_holder"],
  th[data-sort="largest_pct"]{display:none}
  tr.row-main>td:nth-child(4),
  tr.row-main>td:nth-child(7),
  tr.row-main>td:nth-child(8){display:none}
  table{table-layout:auto;width:100%}
  tr.row-detail td{max-width:calc(100vw - 16px);overflow:hidden}
  th,td{padding:6px 3px;font-size:.82rem}
  th{font-size:.6rem;padding:5px 3px}
  .ticker{font-size:.82rem}
  .holder{display:none}
  .score-cell{font-size:.85rem}
  .score-bar{width:24px}

  /* ── Detail accordion ── */
  .detail-inner{padding:8px 8px;border-left:3px solid var(--orange);background:var(--bg3);max-width:calc(100vw - 20px);overflow-x:hidden;box-sizing:border-box}
  .detail-stock-header{
    margin:-8px -8px 8px;
    padding:8px 10px;
    background:linear-gradient(180deg,#1a1200 0%,var(--bg3) 100%);
    border-bottom:1px solid var(--orange);
    position:sticky;
    top:0;
  }
  .detail-stock-close-btn{display:block}
  .detail-stock-ticker{font-size:.9rem}
  .detail-stock-name{font-size:.85rem}
  .detail-grid{grid-template-columns:repeat(2,1fr);gap:4px 10px}
  .detail-label{font-size:.55rem}
  .detail-value{font-size:.8rem}
  .score-breakdown{flex-direction:column;align-items:stretch;gap:6px;padding:6px 0 8px}
  .score-total-num{font-size:1.4rem}
  .score-dims{grid-template-columns:repeat(2,1fr);gap:6px}
  .score-dim-label{font-size:.55rem}
  .score-dim-desc{font-size:.5rem}

  /* ── News ── */
  .news-item{flex-direction:column;gap:1px;padding:4px 0}
  .news-title{white-space:normal;font-size:.7rem;line-height:1.4}
  .news-meta{font-size:.55rem}
  .news-summary-line{font-size:.68rem}

  /* ── Shareholders ── */
  .sh-bar{width:50px;height:8px}
  .sh-row{font-size:.7rem}
  .sh-pct{min-width:45px}

  /* ── Bottom bar ── */
  .bb-statusbar{font-size:.5rem;padding:2px 8px}

  /* ── Tooltip: position left on mobile ── */
  .tip:hover::after{
    left:auto;right:0;
    transform:none;
    width:180px;
  }
}

@media(max-width:400px){
  .bb-stats{grid-template-columns:repeat(2,1fr)}
  .stat.stat-muted{grid-column:span 2}
  .stat{padding:3px 6px}
  .stat-val{font-size:.85rem}
  .bb-fn{font-size:.6rem;padding:6px 2px;min-height:36px}
  .detail-grid{grid-template-columns:1fr 1fr;gap:3px 8px}
  .score-dims{grid-template-columns:1fr 1fr}
}
