/* CODEX 2026-08-24: POLARIS UI Core
   --------------------------------------------------------------------------
   이 파일은 사이트의 기능/DOM을 바꾸지 않고 모든 생성 페이지의 마지막에
   적용되는 시각 정규화 레이어다. 차트 canvas, 히트맵 SVG, 탭/검색/게시판 JS의
   동작 규칙은 의도적으로 건드리지 않는다.

   원칙
   - 흰 바탕 + 중립 회색 경계 + POLARIS 청록 포인트
   - 한글 시스템 글꼴 한 벌, 숫자는 tabular-nums
   - 4px 배수 여백, 5px 모서리, 최소한의 그림자
   - 상승 빨강 / 하락 파랑(한국 증권 서비스 관례)
*/

:root,
:root[data-theme="light"]{
  color-scheme:light;
  --polaris-canvas:#f7f8fa;
  --polaris-surface:#ffffff;
  --polaris-subtle:#f3f5f7;
  --polaris-hover:#eef2f4;
  --polaris-line:#e3e7eb;
  --polaris-line-strong:#cfd5dc;
  --polaris-ink:#171a1f;
  --polaris-muted:#5f6772;
  --polaris-faint:#89919b;
  --polaris-brand:#00798a;
  --polaris-brand-strong:#006775;
  --polaris-brand-soft:#e7f4f5;
  --polaris-up:#d8243f;
  --polaris-up-soft:#fff0f2;
  --polaris-down:#1769d2;
  --polaris-down-soft:#eef5ff;
  --polaris-warn:#9a6500;
  --polaris-radius:5px;
  --polaris-radius-lg:5px;
  --polaris-page-width:1240px;
  --polaris-page-gutter:24px;
  --polaris-shadow:0 1px 2px rgba(15,23,42,.025),0 8px 24px rgba(15,23,42,.035);
  --polaris-font:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Pretendard",sans-serif;
  --polaris-number:"SF Pro Display","SF Pro Text","Segoe UI",Roboto,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;

  /* 기존 페이지 토큰을 하나의 팔레트로 연결한다. */
  --bg:var(--polaris-canvas);
  --ground:var(--polaris-canvas);
  --card:var(--polaris-surface);
  --white:var(--polaris-surface);
  --surface:var(--polaris-surface);
  --surface-2:var(--polaris-subtle);
  --surface-3:var(--polaris-hover);
  --raised:var(--polaris-subtle);
  --panel:var(--polaris-surface);
  --panel-strong:var(--polaris-subtle);
  --line:var(--polaris-line);
  --hair:var(--polaris-line);
  --line-strong:var(--polaris-line-strong);
  --text:var(--polaris-ink);
  --ink:var(--polaris-ink);
  --muted:var(--polaris-muted);
  --faint:var(--polaris-faint);
  --primary:var(--polaris-ink);
  --on-primary:#fff;
  --secondary:var(--polaris-brand);
  --secondary-soft:var(--polaris-brand-soft);
  --gold:var(--polaris-brand);
  --gold-soft:var(--polaris-brand-soft);
  --accent:var(--polaris-brand);
  --up:var(--polaris-up);
  --good:var(--polaris-up);
  --up-soft:var(--polaris-up-soft);
  --good-bg:var(--polaris-up-soft);
  --down:var(--polaris-down);
  --danger:var(--polaris-down);
  --down-soft:var(--polaris-down-soft);
  --danger-bg:var(--polaris-down-soft);
  --warn:var(--polaris-warn);
  --sans:var(--polaris-font);
  --mono:var(--polaris-number);
  --shadow:var(--polaris-shadow);
  --shadow-lg:0 2px 4px rgba(15,23,42,.035),0 12px 30px rgba(15,23,42,.06);
  --r:var(--polaris-radius);
  --r-lg:var(--polaris-radius-lg);
}

/* ── 다크 모드 ─────────────────────────────────────────────────────────────
   2026-08-24 (사장님: "다크모드 해")
     이 파일이 처음엔 `:root[data-theme="dark"]` 에까지 흰 팔레트를 걸어서
     **시스템이 다크여도 화면이 하얗게** 나왔다(실측: 배경 rgb(247,248,250)).
     사이트 곳곳의 @media(prefers-color-scheme:dark) 대응이 전부 무력화됐다.

   ⚠️ 여기서는 **기본 토큰(--polaris-*)만** 바꾼다.
      위의 --bg·--surface·--text 등 40여 개는 이미 var(--polaris-*) 를 가리키므로
      자동으로 따라온다. 두 곳에 적으면 언젠가 어긋난다.

   ⚠️ 세 가지 상태를 모두 다뤄야 한다.
      · 사용자가 명시적으로 고른 dark  → :root[data-theme="dark"]
      · 아무것도 안 고른 채 시스템이 dark → @media + :not([data-theme="light"])
      · 명시적으로 고른 light          → 위 라이트 블록이 이긴다
      가운데를 빼면 "기본값으로 쓰는 사람"에게만 안 먹는다.

   상승 빨강 / 하락 파랑은 어두운 바탕에서 탁해 보이므로 조금 밝게 올린다. */
:root[data-theme="dark"]{
  color-scheme:dark;
  --polaris-canvas:#131316;
  --polaris-surface:#1b1c20;
  --polaris-subtle:#232429;
  --polaris-hover:#2a2c32;
  --polaris-line:#33353c;
  --polaris-line-strong:#454852;
  --polaris-ink:#ecebee;
  --polaris-muted:#b2b4bc;
  --polaris-faint:#8b8d96;
  --polaris-brand:#4fc3d2;
  --polaris-brand-strong:#7ad6e2;
  --polaris-brand-soft:#12313a;
  --polaris-up:#ff6b7d;
  --polaris-up-soft:#3a1d24;
  --polaris-down:#6aa6ff;
  --polaris-down-soft:#172740;
  --polaris-warn:#e0a33a;
  --polaris-shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.45);
  --shadow-lg:0 2px 4px rgba(0,0,0,.4),0 12px 30px rgba(0,0,0,.55);
  --on-primary:#131316;
  --primary:var(--polaris-ink);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --polaris-canvas:#131316;
    --polaris-surface:#1b1c20;
    --polaris-subtle:#232429;
    --polaris-hover:#2a2c32;
    --polaris-line:#33353c;
    --polaris-line-strong:#454852;
    --polaris-ink:#ecebee;
    --polaris-muted:#b2b4bc;
    --polaris-faint:#8b8d96;
    --polaris-brand:#4fc3d2;
    --polaris-brand-strong:#7ad6e2;
    --polaris-brand-soft:#12313a;
    --polaris-up:#ff6b7d;
    --polaris-up-soft:#3a1d24;
    --polaris-down:#6aa6ff;
    --polaris-down-soft:#172740;
    --polaris-warn:#e0a33a;
    --polaris-shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.45);
    --shadow-lg:0 2px 4px rgba(0,0,0,.4),0 12px 30px rgba(0,0,0,.55);
    --on-primary:#131316;
    --primary:var(--polaris-ink);
  }
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--polaris-canvas);font-family:var(--polaris-font);-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--polaris-canvas)!important;
  color:var(--polaris-ink);
  font-family:var(--polaris-font)!important;
  font-size:15px;
  line-height:1.58;
  letter-spacing:0;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font-family:inherit;color:inherit}
input,select,textarea{accent-color:var(--polaris-brand)}
button,a{-webkit-tap-highlight-color:transparent}
img,svg,canvas{max-width:100%}
.num,.px,.qp,.bd,.updated,.asof,.act,.b-when,.b-px,.b-chg,.pv,.rt,.dv{
  font-family:var(--polaris-number)!important;
  font-variant-numeric:tabular-nums lining-nums;
}
.up,.good{color:var(--polaris-up)!important}
.down,.dn,.bad{color:var(--polaris-down)!important}
:focus-visible{outline:3px solid rgba(0,121,138,.22);outline-offset:2px}
::selection{background:rgba(0,121,138,.16)}

/* CODEX 2026-08-24: 모든 생성 페이지의 상단 셸을 같은 높이와 여백으로 맞춘다. */
.site-header{
  height:auto!important;
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(255,255,255,.97)!important;
  border-bottom:1px solid var(--polaris-line)!important;
  box-shadow:none!important;
  backdrop-filter:saturate(140%) blur(14px);
}
.site-header .header-inner{
  width:100%;
  max-width:1240px!important;
  height:62px!important;
  margin:0 auto;
  padding:0 24px!important;
  display:flex;
  align-items:center;
  gap:24px!important;
}
.site-header .brand{
  display:inline-flex;
  align-items:center;
  gap:8px!important;
  color:var(--polaris-ink)!important;
  text-decoration:none;
  white-space:nowrap;
  font-size:0!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}
.site-header .brand .brand-star{color:var(--polaris-brand)!important;font-size:21px!important;line-height:1}
.site-header .brand>span:last-child:not(.brand-star){display:none!important}
.site-header .brand::after{content:"POLARIS";font-size:21px;line-height:1;font-weight:800;letter-spacing:-.035em}
.site-header .header-actions{margin-left:auto;display:flex;align-items:center;gap:8px!important}
.site-header .header-actions .login,
.site-header .login-button,
.site-header .hd-link,
.site-header .me button,
.site-header .me .me-btn{
  min-height:36px;
  padding:7px 13px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--polaris-line-strong)!important;
  border-radius:var(--polaris-radius)!important;
  background:var(--polaris-surface)!important;
  color:var(--polaris-ink)!important;
  box-shadow:none!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1;
  text-decoration:none;
}
.site-header .login-button{background:var(--polaris-ink)!important;border-color:var(--polaris-ink)!important;color:var(--on-primary)!important}
.site-header .header-nav-row{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:var(--polaris-surface);
  border-top:1px solid var(--polaris-line)!important;
}
.site-header .desktop-nav{
  width:100%;
  max-width:1240px;
  min-height:44px;
  margin:0 auto;
  padding:0 24px!important;
  display:flex;
  align-items:stretch;
  gap:24px!important;
  /* 2026-08-25 (사장님: "13개로 하되 좀 가운데 열맞춤 해봐")
     메뉴 13개의 실제 폭은 879px 인데 쓸 수 있는 폭은 1192px 이라
     오른쪽이 313px 비어 왼쪽으로 쏠려 보였다. 가운데로 모은다.
     ⚠️ 두 줄을 반드시 이 순서로 둘 것. 창을 821~927px 로 좁히면
        메뉴가 넘쳐 가로 스크롤이 되는데, 그냥 center 면 넘친 왼쪽 끝이
        스크롤로도 닿지 않는다(flex 의 고질적인 함정).
        safe center 는 넘칠 때만 start 로 물러난다. 이 값을 모르는
        옛 브라우저는 뒷줄을 무시하고 앞줄(center)을 쓴다. */
  justify-content:center;
  justify-content:safe center;
  overflow-x:auto;
  scrollbar-width:none;
}
.site-header .desktop-nav::-webkit-scrollbar{display:none}
.site-header .desktop-nav a{
  position:relative;
  flex:none;
  display:flex;
  align-items:center;
  padding:0!important;
  color:var(--polaris-muted)!important;
  font-size:13.5px!important;
  font-weight:650!important;
  letter-spacing:-.015em;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:none!important;
}
.site-header .desktop-nav a:hover,
.site-header .desktop-nav a.on,
.site-header .desktop-nav a.active{color:var(--polaris-ink)!important}
.site-header .desktop-nav a.on::after,
.site-header .desktop-nav a.active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--polaris-brand)!important;
  border-radius:2px 2px 0 0;
}

/* 본문 타이포 리듬. 페이지 너비는 아래 공통 컨테이너 규칙으로 맞춘다. */
.page-shell,.wrap,.my-wrap,.ci-page{margin-left:auto!important;margin-right:auto!important}
.page-shell{max-width:1240px!important;padding-left:24px!important;padding-right:24px!important}
.wrap{width:100%;padding-left:20px!important;padding-right:20px!important}
.my-wrap{padding-left:20px!important;padding-right:20px!important}
.wrap>h1,.ci-page>h1,.my-wrap>h1{
  margin-top:8px;
  margin-bottom:6px!important;
  color:var(--polaris-ink);
  font-size:clamp(24px,2.2vw,32px)!important;
  line-height:1.25;
  font-weight:780!important;
  letter-spacing:-.035em!important;
}
.wrap>.sub,.ci-page>.sub,.my-wrap>.sub{margin-top:0!important;margin-bottom:24px!important;color:var(--polaris-muted)!important;font-size:13.5px!important}
h1,h2,h3,h4{color:var(--polaris-ink);text-wrap:balance}
h2{letter-spacing:-.025em}
p{word-break:keep-all}
.note,.b-note,.ci-disclaimer{color:var(--polaris-faint)!important;font-size:12px!important;line-height:1.7!important}

/* 공통 표면: 과한 그림자/라운드를 없애고 선과 여백으로 구분한다. */
.bcard,.panel,.sec,.grp,.card,.wbox,.menu-card,.ci-guide,.ci-family,.ci-summary,
.cal,.calc,.modal,.lead-chart,.watch-card,.signal-card,.verdict-card{
  border-color:var(--polaris-line)!important;
  border-radius:var(--polaris-radius-lg)!important;
  background-color:var(--polaris-surface)!important;
  box-shadow:none!important;
}
.bcard,.panel,.sec,.grp,.wbox,.ci-guide{padding:20px!important}
.bcard,.panel,.sec,.grp,.wbox{margin-bottom:14px!important}
.bcard h2,.panel h2,.sec h2,.grp h2,.card h2,.wbox h2{
  margin-top:0;
  color:var(--polaris-ink);
  font-size:16px!important;
  font-weight:760!important;
  letter-spacing:-.02em;
}
.b-ix,.sc,.vc,.ind,.hg-c,.metric,.stat,.slot-item{
  background:var(--polaris-subtle)!important;
  border-color:var(--polaris-line)!important;
  border-radius:var(--polaris-radius)!important;
  box-shadow:none!important;
}

/* 검색·필터·탭은 같은 높이와 선택 상태를 쓴다. */
.search-box,.srch,.qsearch,.ci-controls input,.ci-controls select,
.wrap input[type="search"],.wrap input[type="text"],.wrap select,.wrap textarea,
.my-wrap input,.my-wrap select,.my-wrap textarea{
  border-color:var(--polaris-line-strong)!important;
  border-radius:var(--polaris-radius)!important;
  background:var(--polaris-surface)!important;
  box-shadow:none!important;
}
.search-box:focus-within,.srch:focus-within,.qsearch:focus-within,
.wrap input:focus,.wrap select:focus,.wrap textarea:focus,
.my-wrap input:focus,.my-wrap select:focus,.my-wrap textarea:focus{
  border-color:var(--polaris-brand)!important;
  box-shadow:0 0 0 3px rgba(0,121,138,.1)!important;
  outline:0;
}
.tabs,.chips,.seg,.tbbar,.pmc-tools,.pmc-mobile-row,.pmc-analysis-tools{font-family:var(--polaris-font)}
.tabs button,.chips button,.seg button,.sc,.ch,.pmc-btn,.pmc-menu,.pmc-tool-btn,
.app-strat a,.tb{
  box-shadow:none!important;
  font-weight:680!important;
}
.tabs button[aria-selected="true"],.seg button.on,.ch.on,.sc.on,.tb[aria-selected="true"]{
  color:var(--polaris-ink)!important;
}

/* 목록과 데이터 표: 줄 높이·경계를 통일하되 링크와 클릭 영역은 그대로 둔다. */
.b-row,.qrow,.alist a,.news a,.crow,.srrow,.ev,.mo-row,.ci-row{
  min-height:52px;
  border-bottom-color:var(--polaris-line)!important;
}
.b-row:hover,.qrow:hover,.alist a:hover,.news a:hover,.crow:hover,.srrow:hover{
  background:var(--polaris-subtle)!important;
}
table{border-color:var(--polaris-line)!important}
th{color:var(--polaris-muted)!important;font-size:12px!important;font-weight:700!important;background:var(--polaris-subtle)!important}
td,th{border-color:var(--polaris-line)!important}
.b-tag,.chip,.badge,.live,.reg,.tape-label,.lead-tag{border-radius:var(--polaris-radius)!important;font-weight:750!important}

/* 홈: 핵심 수치와 차트를 한 축에 정렬한다. */
.section{scroll-margin-top:116px}
.section-heading{margin-bottom:16px!important}
.section-heading h2{font-size:23px!important;font-weight:760!important}
.market-cards{gap:10px!important}
.market-card{border-color:var(--polaris-line)!important;border-radius:var(--polaris-radius)!important;box-shadow:none!important}
.market-card:hover,.market-card.selected{border-color:var(--polaris-brand)!important;box-shadow:0 0 0 2px rgba(0,121,138,.08)!important}
.home-regime,.home-chart,.market-tape,.watch-card,.signal-list,.mover-table,.verdict-table{
  border-color:var(--polaris-line)!important;
  box-shadow:none!important;
}
.market-tape{border-radius:var(--polaris-radius)!important;background:var(--polaris-surface)!important}
.home-chart{border-radius:var(--polaris-radius-lg)!important;background:var(--polaris-surface)!important}
/* CODEX 2026-08-24: 홈에는 종목 상세용 신호 위치 CSS가 없으므로 매수·매도와
   아래 패널 이름이 일반 글자처럼 차트 밖으로 흐르지 않게 숨긴다. 종목 상세의
   신호 레이어와 계산 기능은 건드리지 않는다. */
.home-chart .pmc-signal-layer,.home-chart .pmc-pane-labels{display:none!important}

/* CODEX 2026-08-24: 촉매 레이더는 흰 카드·짧은 간격을 유지한다. */
.ci-page .ci-guide{padding:14px 18px!important}
.ci-page .ci-family{padding:5px!important}
.ci-page .ci-summary{padding:12px 3px 9px!important}
.ci-page .ci-card{background:var(--polaris-surface)!important;color:var(--polaris-ink)!important}
.ci-page .ci-card h3,.ci-page .ci-card h4,.ci-page .ci-score b{color:var(--polaris-ink)!important}
.ci-page .ci-event{background:var(--polaris-subtle)!important;color:var(--polaris-ink)!important}

/* 종목 상세: 기능과 차트 DOM은 보존하고 외곽·메뉴·간격만 데스크톱급으로 정돈한다. */
.stage{
  background:var(--polaris-canvas)!important;
  color:var(--polaris-ink)!important;
  font-family:var(--polaris-font)!important;
  padding:24px 20px 88px!important;
}
.stage>.phone{
  width:100%;
  max-width:1180px!important;
  overflow:hidden;
  background:var(--polaris-surface)!important;
  border:1px solid var(--polaris-line)!important;
  border-radius:var(--polaris-radius-lg)!important;
  box-shadow:none!important;
}
.phone>.top{min-height:62px;padding:15px 22px!important;border-bottom:1px solid var(--polaris-line)}
.phone>.top .brand{gap:8px!important}
.phone>.top .brand b{font-size:15px!important;font-weight:760!important;letter-spacing:-.02em!important}
.phone>.stock{padding:20px 22px 22px!important}
.phone .stock h1{font-size:24px!important;font-weight:780!important;letter-spacing:-.035em!important}
.phone .stock .px b{font-size:30px!important}
.phone .tabwrap{border-top:1px solid var(--polaris-line)!important}
.phone .tabhead{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--polaris-line)!important;box-shadow:none!important}
.phone .tbbar{gap:4px!important;padding:8px 12px!important}
.phone .tb{
  min-height:38px;
  border-radius:var(--polaris-radius)!important;
  color:var(--polaris-muted)!important;
  font-size:14px!important;
}
.phone .tb[aria-selected="true"]{background:var(--polaris-ink)!important;color:var(--on-primary)!important}
.phone .pane.is-active{background:var(--polaris-canvas)!important}
.phone .pane>.menu-card{min-width:0;background:var(--polaris-surface)!important;border-color:var(--polaris-line)!important;box-shadow:none!important}
.phone .lbl{margin-bottom:14px!important}
.phone .lbl .bar{background:var(--polaris-line)!important}
.phone .eyebrow{color:var(--polaris-muted)!important;font-size:11.5px!important;letter-spacing:.045em!important}
.phone .compass,.phone .ai,.phone .action,.phone .hist,.phone .news,.phone .vs2,
.phone .dq,.phone .liquidity2,.phone .pmc-strategy-panel,.phone .pmc-guide{
  border-color:var(--polaris-line)!important;
  border-radius:var(--polaris-radius)!important;
  box-shadow:none!important;
}
.phone .pmc{min-width:0;background:var(--polaris-surface)}
.phone .pmc-head,.phone .pmc-tools,.phone .pmc-mobile-tools,.phone .pmc-analysis-tools{
  border-color:var(--polaris-line)!important;
  background:var(--polaris-surface)!important;
}
.phone .pmc-note{color:var(--polaris-faint)!important}

/* 모바일은 하단 탭을 사용하므로 상단의 긴 메뉴만 숨긴다. */
@media(max-width:820px){
  .site-header .header-inner{height:56px!important;padding:0 16px!important}
  /* 2026-08-31: 로그인 상태에서 헤더가 세로로 터지던 것을 막는다.
     증상 — 헤더는 56px 인데 계정 메뉴가 107px 로 부풀어 아래 시세줄을 덮고,
            '폴라리스주인장'·'로그아웃'이 한 글자씩 세로로 쌓였다.
     원인 — home.css 951행이 모바일에서 `.header-actions .me button{display:none}`
            으로 로그아웃 버튼을 숨겼는데, 이 파일이 home.css **뒤에** 실리면서
            같은 특이도의 `.site-header .me button{display:inline-flex}` 가 이겨
            버튼이 되살아났다. 좁은 폭에 세 덩이가 들어가려다 줄바꿈이 터진 것이다.
     ⚠️ 여기서 다시 숨긴다. 로그아웃은 '내 정보' 화면에 그대로 있다.
        home.css 를 고쳐 봐야 이 파일이 또 덮으므로 소용없다. */
  .site-header .me button{display:none!important}
  .site-header .me{flex:0 0 auto;min-width:0;gap:4px}
  /* 줄바꿈을 원천 차단한다. 이게 없으면 긴 닉네임에서 같은 일이 또 난다. */
  .site-header .me .me-btn{
    max-width:132px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    display:inline-flex!important;padding:6px 10px!important;font-size:12.5px!important}
  .site-header .me .me-btn b{
    max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* 좁은 화면일수록 이름 자리를 더 줄인다.
   390px 에서 재보니 헤더 오른쪽 묶음이 207px 를 요구하는데 자리는 170px 뿐이라
   5px 가 새어 가로 스크롤이 생겼다(로고 188 + AD + ★ + 계정 + 햄버거).
   ★·햄버거는 기능이라 못 줄이고, 이름은 말줄임이 되므로 여기를 줄인다. */
@media(max-width:430px){
  .site-header .me .me-btn{max-width:104px;padding:6px 8px!important}
  .site-header .me .me-btn b{max-width:70px}
}
@media(max-width:400px){
  .site-header .me .me-btn{max-width:84px;padding:6px 7px!important}
  .site-header .me .me-btn b{max-width:52px}
  .site-header .header-nav-row{display:none!important}
  .site-header .brand::after{font-size:19px}
  .site-header .brand .brand-star{font-size:19px!important}
  .site-header .header-actions .login,.site-header .login-button,.site-header .hd-link{
    min-height:34px;padding:6px 10px!important;border-radius:var(--polaris-radius)!important;font-size:12.5px!important
  }
  .page-shell{padding-left:16px!important;padding-right:16px!important}
  .wrap,.my-wrap{padding-left:16px!important;padding-right:16px!important}
  .wrap>h1,.ci-page>h1,.my-wrap>h1{font-size:25px!important}
  .bcard,.panel,.sec,.grp,.wbox,.ci-guide{padding:16px!important}
  .market-cards{gap:0!important;border:1px solid var(--polaris-line);border-radius:var(--polaris-radius);overflow:hidden;background:var(--polaris-surface)}
  .market-card{border:0!important;border-right:1px solid var(--polaris-line)!important;border-radius:0!important}
  .market-card:last-child{border-right:0!important}
  .stage{padding:0 0 calc(72px + env(safe-area-inset-bottom))!important;background:var(--polaris-surface)!important}
  .stage>.phone{border:0!important;border-radius:0!important}
  .phone>.top{min-height:56px;padding:12px 16px!important}
  .phone>.stock{padding:16px!important}
  .phone .stock h1{font-size:22px!important}
  .phone .tbbar{padding:8px!important}
  .phone .tb{min-height:36px;font-size:13.5px!important}
  .phone .pane.is-active{padding:0!important;background:var(--polaris-surface)!important}
  .phone .pane>.menu-card{border-left:0!important;border-right:0!important;border-radius:0!important}
}

@media(max-width:420px){
  body{font-size:14px}
  .site-header .header-actions .hd-link .lbl{display:none}
  .section-heading h2{font-size:21px!important}
  .b-row,.qrow,.alist a,.news a,.crow,.srrow{min-height:48px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Product typography and interaction surfaces. Keep data and chart geometry intact. */
:root,:root[data-theme="light"]{--polaris-faint:#66717e}
:root[data-theme="dark"]{--polaris-faint:#a0a7b2}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--polaris-faint:#a0a7b2}}
.site-header,.phone .tabhead{background:var(--polaris-surface)!important}
.site-header .brand::after{font-weight:760;letter-spacing:-.045em}
.site-header .header-inner{gap:16px!important}
.site-header .desktop-nav a{font-size:14px!important;font-weight:600!important}
.site-header .header-actions button,.site-header .header-actions a{min-height:40px}
.market-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}
.market-heading h1{margin:0;font-size:28px;line-height:1.25;letter-spacing:-.035em;font-weight:750}
.market-heading p{margin:5px 0 0;color:var(--polaris-muted);font-size:14px;line-height:1.5}
.market-heading>a{flex:none;text-decoration:none;font-size:13px;font-weight:650;color:var(--polaris-brand-strong);padding:10px 0}
.market-heading>a span{margin-left:6px}
.market-card{padding:18px!important}
.market-card span{font-size:13px!important;color:var(--polaris-muted)!important;font-weight:550}
.market-card strong{font-family:var(--polaris-number)!important;font-size:28px!important;font-weight:650;letter-spacing:-.035em;line-height:1.25}
.market-card em{font-family:var(--polaris-number)!important;font-size:13px!important;font-weight:600}
.market-card small{font-size:11px!important;color:var(--polaris-muted)}
.home-regime{padding:18px 20px;background:var(--polaris-surface)}
.home-regime h3{font-size:17px;font-weight:650;letter-spacing:-.025em}
.home-regime .metric-row>div{background:var(--polaris-subtle);padding:8px 10px}
.home-regime .metric-row span{font-size:11px}
.search-box{height:56px;border-width:1px!important;border-radius:var(--polaris-radius)!important;padding:0 18px}
.search-box input{font-size:16px!important;font-weight:450!important}
.search-box input::placeholder{color:var(--polaris-muted);opacity:1}
.search-results{max-height:min(420px,60vh);overflow-y:auto;background:var(--polaris-surface);border:1px solid var(--polaris-line-strong);box-shadow:var(--shadow-lg)}
.search-result{min-height:64px;padding:12px 16px;gap:10px}
.search-result[aria-selected="true"],.search-result:focus-visible{background:var(--polaris-brand-soft);outline-offset:-3px}
.search-result strong{font-weight:650}
.search-result small{font-size:12px}
.section-heading h2{font-weight:700!important;letter-spacing:-.035em}
.section-kicker{font-size:12px;font-weight:550;letter-spacing:0;text-transform:none;color:var(--polaris-muted);margin-bottom:5px}
.section-heading .see-all{color:var(--polaris-brand-strong);font-size:13px}
.filter-tabs button,.mover-tabs button,.verdict-tabs button{min-height:40px;font-weight:600;font-size:13px}
.mm-cap,.table-note{font-size:13px;line-height:1.75;color:var(--polaris-muted)}
.watch-card h3{font-size:19px;font-weight:700;line-height:1.4}
.watch-card p{line-height:1.65;font-size:13px}
.market-tape{min-height:48px}
.tape-label{font-size:12px;font-weight:650!important;background:var(--polaris-subtle);color:var(--polaris-muted)!important}
.tape-status-line{margin:8px 0 12px;font-size:12px}
.tape-status{font-size:12px;font-weight:500;color:var(--polaris-muted);background:transparent}
.home-chart .pmc-head{padding:18px 20px 14px;gap:14px}
.pmc-title b{font-size:17px;font-weight:650}
.pmc-title span{font-size:12px!important;font-weight:450;color:var(--polaris-muted)}
.pmc-ohlc{font-size:12px;font-weight:500;line-height:1.65}
.pmc-btn,.pmc-menu,.pmc-tool-btn{min-height:40px}
.pmc-note{font-size:12px!important;line-height:1.7}
.market-empty{padding:32px 20px!important;text-align:center;color:var(--polaris-muted);line-height:1.8}
.market-empty button{margin-top:12px;padding:9px 16px;min-height:44px;border:1px solid var(--polaris-line-strong);border-radius:var(--polaris-radius);background:var(--polaris-surface);cursor:pointer}
.phone .stock h1{font-weight:720!important;font-size:26px!important}
.phone .stock .px{font-variant-numeric:tabular-nums}
.phone .stock .px b{font-weight:650;letter-spacing:-.04em}
.phone .tb{font-weight:650!important;min-height:42px}
.phone .eyebrow{font-weight:600;letter-spacing:0!important;font-size:12px!important}
.phone .cz-line,.phone .cz-v,.phone .ai p{line-height:1.8}
.phone .cz-c{font-size:11px;white-space:normal}
.phone footer{font-size:12px;line-height:1.8;color:var(--polaris-muted)}
.app-sheet{background:var(--polaris-surface)!important;color:var(--polaris-ink);border-color:var(--polaris-line)!important}
.app-sheet[aria-hidden="true"]{visibility:hidden}
.app-sheet.open{visibility:visible}
.app-menu-search input{background:var(--polaris-subtle)!important;color:var(--polaris-ink)!important;font-size:16px!important}
.app-menu-tabs button{min-height:46px;font-weight:600!important}
.app-sheet-grid a{min-height:58px!important;font-size:15px!important;font-weight:550!important}
.app-sheet-grid a:hover{background:var(--polaris-subtle)!important}
.app-sheet-close{min-width:44px;min-height:44px}
.app-push .ap-b.on{color:var(--on-primary)!important}
.app-install{background:var(--polaris-ink)!important;color:var(--on-primary)!important}
.app-install b,.app-install small,.app-install .x{color:inherit!important}
.app-install small{opacity:.8}
.app-install .go{background:var(--polaris-brand-soft)!important;color:var(--polaris-brand-strong)!important;min-height:40px}
.app-connection-note{position:sticky;top:0;z-index:100;padding:10px 16px;text-align:center;background:var(--polaris-subtle);color:var(--polaris-ink);border-bottom:1px solid var(--polaris-line);font-size:13px}
@media(max-width:820px){
  .site-header .header-nav-row{display:none!important}
  .site-header .header-inner{gap:8px!important;height:60px!important}
  .site-header .header-actions{gap:5px!important;min-width:0}
  .site-header .brand{flex:none}
  .site-header .brand::after{font-size:20px}
  .site-header .header-ad-slot{margin-left:auto}
  .site-header .header-actions .hd-link{display:none!important}
  .site-header .app-head-more{width:40px;height:40px;flex:none}
  .page-shell{padding-left:18px!important;padding-right:18px!important}
  #market{margin-top:22px}
  .market-heading{margin-bottom:16px;gap:10px}
  .market-heading h1{font-size:24px}
  .market-heading p{font-size:13px;margin-top:4px}
  .market-heading>a{font-size:12px}
  .market-cards{gap:0!important;border:1px solid var(--polaris-line);border-radius:var(--polaris-radius);overflow:hidden;background:var(--polaris-surface)}
  .market-card{padding:12px 10px!important;border:0!important;border-right:1px solid var(--polaris-line)!important;border-radius:0!important}
  .market-card:last-child{border-right:0!important}
  .market-card span{font-size:11px!important}
  .market-card strong{font-size:21px!important;margin-top:6px}
  .market-card em{font-size:12px!important;margin-top:4px}
  .market-card .mk-spark{height:22px;margin-top:8px}
  .home-chart .pmc-head{padding:14px 12px 12px}
  .home-chart .pmc-title b{font-size:16px}
  .home-chart .pmc-menu{font-size:12px;min-height:40px}
  .home-chart .pmc-canvas{height:480px}
  .search-section{margin:16px 0 8px}
  .search-result{grid-template-columns:minmax(0,1fr) auto}
  .search-result>span{display:none}
  .search-result strong small{display:block;margin:2px 0 0}
  .section-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .watch-heading .filter-tabs{width:100%;overflow-x:auto;justify-content:flex-start}
  .section-heading h2{font-size:22px!important}
  .stage{padding:0 0 76px!important}
  .stage>.phone{border:0!important;border-radius:0!important}
  .phone>.stock{padding:20px 18px!important}
  .phone>.top{padding:12px 18px!important}
  .phone .pane.is-active{padding:0!important}
  .phone .pane>.menu-card{border-radius:0!important;border-left:0!important;border-right:0!important}
  .app-tabbar .app-tab{font-size:11px;gap:5px;font-weight:550}
  .app-tabbar .app-tab.active{color:var(--polaris-brand-strong)}
}
@media(max-width:359px){
  .page-shell{padding-left:14px!important;padding-right:14px!important}
  .site-header .header-inner{padding:0 12px!important;gap:5px!important}
  .site-header .brand::after{font-size:18px}
  .site-header .header-actions{gap:2px!important}
  .site-header .header-ad-slot{padding:3px}
  .market-card{padding:11px 8px!important}
  .market-card strong{font-size:19px!important}
  .market-heading h1{font-size:22px}
}

.phone .stock .px .krw{display:inline-block;margin-left:8px;font-size:14px;font-weight:450;letter-spacing:0;color:var(--polaris-muted)!important}
.phone .stock .px-chg{font-size:14px;font-weight:600}
.phone .stock .dn{font-size:13px;font-weight:500}
.phone .pa-star{min-width:44px;min-height:44px;font-size:13px}
.my-gate{max-width:540px;margin:32px auto;padding:36px 24px!important;background:var(--polaris-surface);border:1px solid var(--polaris-line);border-radius:var(--polaris-radius)}
.my-gate-mark{display:grid;place-items:center;margin:0 auto 20px;width:56px;height:56px;border-radius:var(--polaris-radius);background:var(--polaris-brand-soft);color:var(--polaris-brand-strong);font-size:36px;line-height:1}
.my-gate h2{font-size:21px!important;font-weight:700!important;letter-spacing:-.035em}
.my-gate p{font-size:14px;line-height:1.8;color:var(--polaris-muted)}
.my-gate .my-btn{min-height:46px!important;margin-top:12px!important;padding:10px 22px!important;border-radius:var(--polaris-radius)!important}
.my-browse{display:block;width:max-content;margin:16px auto;color:var(--polaris-brand-strong);font-size:14px;font-weight:600;text-underline-offset:4px}
.my-gate .my-gate-note{margin:24px 0 0!important;padding-top:18px;border-top:1px solid var(--polaris-line);font-size:12px!important}
.login-sheet{background:var(--polaris-surface)!important;color:var(--polaris-ink);border:1px solid var(--polaris-line);border-radius:var(--polaris-radius)!important}
.login-sheet .lg-mark{background:var(--polaris-brand-soft);color:var(--polaris-brand-strong);box-shadow:none}
.login-sheet .login-sub,.login-sheet .lg-legal{color:var(--polaris-muted);line-height:1.7}
.login-x{min-width:44px;min-height:44px}
html.login-is-open{overflow:hidden}
@media(max-width:420px){
  .watch-heading .filter-tabs{gap:4px}
  .watch-heading .filter-tabs button{padding:8px 12px;flex:none}
}
:focus-visible{outline:2px solid var(--polaris-brand-strong);outline-offset:3px}
.login-sheet .lg-mark span{color:var(--polaris-brand-strong)}

/* Stock navigation and cached box candidate details. */
.phone > .top:has(.stock-back){gap:12px;flex-wrap:wrap}
.stock-back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:64px;padding:0 10px;border:1px solid var(--hair);border-radius:var(--polaris-radius);color:var(--text);background:var(--surface);font-size:14px;font-weight:650;text-decoration:none;flex:none}
.stock-back:hover{background:var(--raised)}
.stock-back:focus-visible,a.go:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.phone > .top > .stock-back + .brand{margin-right:auto}
.box-detail .tbbar{grid-template-columns:repeat(3,minmax(0,1fr))}
.box-detail .pane.is-active{display:block}
.box-detail-content{padding:20px;line-height:1.7;min-width:0}
.box-detail-content h2{font-size:19px;margin:0 0 8px}
.box-detail-content p{color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.box-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.box-metrics > div{padding:14px;background:var(--raised);border:1px solid var(--hair);border-radius:var(--polaris-radius);min-width:0}
.box-metrics dt{font-size:12px;color:var(--muted)}
.box-metrics dd{margin:6px 0 0;font:700 20px var(--mono);overflow-wrap:anywhere}
@media(max-width:480px){.box-detail-content{padding:14px}.box-metrics{gap:8px}.box-metrics > div{padding:12px}.box-metrics dd{font-size:18px}}


/* Shared page geometry: the same content edges on every primary route.
   Keep circular avatars, status dots and chart marks in their original shape. */
.page-shell,.wrap,.my-wrap,.ci-page,.tc-page,.market-directory,
.site-header .header-inner,.site-header .desktop-nav,.footer-inner{
  width:100%;
  max-width:var(--polaris-page-width)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:var(--polaris-page-gutter)!important;
  padding-right:var(--polaris-page-gutter)!important;
  min-width:0;
}
.stage{
  width:100%;
  max-width:var(--polaris-page-width);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--polaris-page-gutter)!important;
  padding-right:var(--polaris-page-gutter)!important;
}
.stage>.phone{max-width:none!important}
/* Explicit component list avoids rounding table cells, chart geometry or icons. */
#marketSearch,.market-filters button,#marketMore,.market-rows,.market-caution,
.market-metrics>div,.market-watch-button,.company-disclosure,.company-figures>div,
.company-filter button,.company-badge,.filter-tabs button,.mover-tabs button,
.verdict,.table-verdict,.v-tag,.lead-tag,.tk-v,.tk-now,.tape-status,
.metric-row>div,.rgm,.home-shortcuts a,.search-shortcut,.pmc-btn,.pmc-sub-select,
.pmc-menu,.pmc-fold,.search-box,.search-hint,.ticker-avatar,.verdict-tabs button,
.watch-ad-slot,.movers-more button,.verdict-more button,.pane-cta,
.login-button,.login-sheet button,.login-sheet input,.slot-card,.market-tape,
.my-btn,.stock-back,.box-metrics>div,.strategy-tabs button,
.app-strat a,.rule,.rule code,.empty,.s1 i,.ev-v b,.ev-t,
.mp,.pmc,.pmc-tool-btn,.pmc-field select,
.ci-card,.ci-family button,.ci-controls label,.ci-card-top>b,.ci-event-top>b,
.ci-identity>a,.ci-radar-link,.ci-score,.ci-event,.ci-more,.vc-sub b,.vcp,
.er,.er-c,.er-cat,.ch,.ncard,.sent,.alist,.aact,
.tabs button,.day,.when,.past>summary,.cal-m,.list,.cbox,.cbox input{
  border-radius:var(--polaris-radius)!important;
}
@media(max-width:820px){
  :root,:root[data-theme]{--polaris-page-gutter:16px}
  .stage{padding-top:16px!important}
  .stage>.phone{border:1px solid var(--polaris-line)!important;border-radius:var(--polaris-radius)!important}
}
@media(max-width:359px){
  :root,:root[data-theme]{--polaris-page-gutter:12px}
}

.app-strat a[aria-current]{
  background:var(--polaris-ink)!important;
  border-color:var(--polaris-ink)!important;
  color:var(--on-primary)!important;
}
.app-sheet{border-radius:var(--polaris-radius) var(--polaris-radius) 0 0!important}
