/* ── 디자인 토큰 (Stitch 시안 · home.css와 같은 팔레트) ──
    클래스 이름과 마크업은 손대지 않는다. polaris_home.py:scan()이
    class="big"/class="px"를 정규식으로 읽으므로 구조가 바뀌면 홈이 죽는다.
    아래 컴포넌트 규칙 200여 줄이 전부 토큰으로 쓰여 있어서,
    토큰만 갈아끼우면 페이지 전체가 따라온다. */
 :root{--ground:#fcf8fa;--surface:#ffffff;--raised:#f6f3f5;--hair:#e4e2e4;--text:#1b1b1d;--muted:#45464d;--faint:#76777d;
  --gold:#006591;--gold-glow:rgba(0,101,145,.07);--accent:#006591;
  --danger:#1b64da;--danger-bg:#e4eeff;--danger-gl:rgba(27,100,218,.08);
  --caution:#8a5a00;--caution-bg:#fdf1dd;--warn:#b57200;
  --chase:#b5651d;--chase-bg:#fdeee0;--wait:#006591;--wait-bg:#e3f2f9;--swait:#8a5a00;--swait-bg:#fdf1dd;
  --good:#d6293e;--good-bg:#ffe8ea;--good-gl:rgba(214,41,62,.09);
  --hold:#006591;--hold-bg:#e3f2f9;--sell:#1b64da;--violet:#5b4bd6;--violet-bg:#eeecfb;
  --sans:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR','Pretendard',sans-serif;
  --mono:'Pretendard','Apple SD Gothic Neo','Hanken Grotesk',-apple-system,sans-serif;
  --shadow:0 4px 20px rgba(0,0,0,.05);}
 @media (prefers-color-scheme:dark){:root{--ground:#131315;--surface:#1c1c1f;--raised:#232327;--hair:#33333a;--text:#eceaee;--muted:#b3b1b8;--faint:#8b8992;
  --gold:#7fd0f5;--gold-glow:rgba(127,208,245,.10);--accent:#7fd0f5;
  --danger:#ffb4ab;--danger-bg:#3a1512;--danger-gl:rgba(255,180,171,.10);
  --caution:#f2c14e;--caution-bg:#332612;--warn:#f2c14e;
  --good:#4fe0cd;--good-bg:#0d2f2b;--good-gl:rgba(79,224,205,.10);
  --hold:#7fd0f5;--hold-bg:#122b36;--sell:#ffb4ab;--violet:#c3bcff;--violet-bg:#22203a;
  --shadow:0 8px 28px rgba(0,0,0,.45);}}
 :root[data-theme="light"]{--chase:#b5651d;--chase-bg:#fdeee0;--wait:#006591;--wait-bg:#e3f2f9;--swait:#8a5a00;--swait-bg:#fdf1dd;--ground:#fcf8fa;--surface:#ffffff;--raised:#f6f3f5;--hair:#e4e2e4;--text:#1b1b1d;--muted:#45464d;--faint:#76777d;--gold:#006591;--gold-glow:rgba(0,101,145,.07);--accent:#006591;--danger:#1b64da;--danger-bg:#e4eeff;--danger-gl:rgba(27,100,218,.08);--caution:#8a5a00;--caution-bg:#fdf1dd;--warn:#b57200;--good:#d6293e;--good-bg:#ffe8ea;--good-gl:rgba(214,41,62,.09);--hold:#006591;--hold-bg:#e3f2f9;--sell:#1b64da;--violet:#5b4bd6;--violet-bg:#eeecfb;--shadow:0 4px 20px rgba(0,0,0,.05);}
 :root[data-theme="dark"]{--chase:#f0a44a;--chase-bg:#33240f;--wait:#7fd0f5;--wait-bg:#122b36;--swait:#f2c14e;--swait-bg:#332612;--ground:#131315;--surface:#1c1c1f;--raised:#232327;--hair:#33333a;--text:#eceaee;--muted:#b3b1b8;--faint:#8b8992;--gold:#7fd0f5;--gold-glow:rgba(127,208,245,.10);--accent:#7fd0f5;--danger:#ffb4ab;--danger-bg:#3a1512;--danger-gl:rgba(255,180,171,.10);--caution:#f2c14e;--caution-bg:#332612;--warn:#f2c14e;--good:#4fe0cd;--good-bg:#0d2f2b;--good-gl:rgba(79,224,205,.10);--hold:#7fd0f5;--hold-bg:#122b36;--sell:#ffb4ab;--violet:#c3bcff;--violet-bg:#22203a;--shadow:0 8px 28px rgba(0,0,0,.45);}

 /* 2026-09-21 CLAUDE: --surface-2 / --line 은 이 사이트에 **정의된 적이 없는** 이름이다.
    polaris_position.js·my.js 가 var(--surface-2,#f6f3f5) 처럼 써 왔는데, 그 폴백은
    밝은 회색이다. polaris_ui_core.css 를 같이 읽는 화면에서만 값이 잡혀서, 그걸 안 읽는
    종목 상세·전체 종목 상세에서는 **어두운 화면에 밝은 판 + 흰 글씨**가 됐다
    ('총 매수금액·평가금액·평단가'가 안 보였다 — 2026-09-18 실측).
    ⚠️ 9/18 에 생성물인 polaris_static/polaris_stock_base.css 를 직접 고쳤다가
       polaris_full_market.py:252 가 이 CSS 로 덮어써서 9/21 배치에 되돌아갔다.
       그 파일은 손대지 말 것 — 고칠 곳은 여기다. */
 :root{--surface-2:var(--raised);--line:var(--hair)}
 *{box-sizing:border-box}body{margin:0}
 /* antialiased 는 한글 획을 얇게 만들어 흐려 보이고, 음수 자간까지 겹치면 답답하다.
    종목 페이지는 글을 제일 오래 읽는 화면이라 둘 다 뺀다 (2026-08-07 '글씨가 잘 안 보인다'). */
 .stage{min-height:100vh;background:var(--ground);font-family:var(--sans);color:var(--text);
   line-height:1.6;
   display:flex;justify-content:center;align-items:flex-start;padding:0 0 60px}
 /* 시안대로 카드가 아니라 페이지가 된다 — 모바일은 화면을 꽉 채우고,
    넓은 화면에서만 가운데 정렬된 흰 판으로 떠오른다. */
 .phone{width:100%;max-width:1120px;background:var(--surface);border:0;border-radius:0;overflow:hidden}
 @media(min-width:560px){
   .stage{padding:26px 16px 60px}
   .phone{border:1px solid var(--hair);border-radius:20px;box-shadow:var(--shadow)}
 }
 .num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:700}
 .eyebrow{font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
 .top{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 11px}
 .brand{display:flex;align-items:center;gap:9px}.brand b{font-size:16px;letter-spacing:.02em}
 .updated{font-family:var(--mono);font-size:11px;color:var(--faint)}
 /* 관심종목 — 장마감 기준 아래, 작은 노란 별 + '관심' */
 .top-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
 .pa-star{display:inline-flex;flex-direction:column;align-items:center;gap:1px;
   border:0;background:transparent;cursor:pointer;padding:2px;font-family:inherit}
 .pa-star svg{width:17px;height:17px;fill:none;stroke:var(--gold);stroke-width:1.6}
 .pa-star .pa-star-t{font-size:10.5px;color:var(--muted);line-height:1}
 .pa-star:hover svg{fill:var(--gold);fill:color-mix(in srgb,var(--gold) 30%,transparent)}
 .pa-star[aria-pressed="true"] svg{fill:var(--gold)}
 .pa-star[aria-pressed="true"] .pa-star-t{color:var(--gold)}
 /* 마이페이지에 평단·수량을 적어둔 종목이면 여기 '보유중'이 뜬다.
    수익률을 같이 적어 색 없이도 읽히게 한다(부호 포함). */
 .pa-hold{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;
   border:1px solid var(--line);border-radius:999px;padding:2px 8px;color:var(--muted);
   white-space:nowrap}
 .pa-hold b{font-family:var(--mono);font-weight:800}
 .pa-hold b.up{color:var(--up)} .pa-hold b.dn{color:var(--down)}
 /* 종목명 옆에 가격·등락률이 오게 한다(2026-08-10 요청).
    마크업 순서는 못 바꾼다 — polaris_home.py:scan() 이 class="px"><b class="num">$…
    문자열을 정규식으로 읽기 때문이다. 그래서 그리드로 자리만 옮긴다. */
 .stock{padding:3px 18px 15px;display:grid;grid-template-columns:minmax(0,1fr) auto;
   align-items:center;column-gap:12px}
 .stock>.r1{grid-column:1}
 .stock>.px{grid-column:2;margin-top:0;justify-content:flex-end;text-align:right}
 .stock>.mcap,.stock>.liveq,.stock>.exq,.stock>.rtq{grid-column:1/-1}
 .px-chg{font-style:normal;font-weight:800;font-size:14px}
 /* 2026-08-12: 증권사 시세창처럼 가격·등락을 한 색으로 묶는다. 상승 빨강 하락 파랑.
    원화 괄호는 참고값이라 색을 따라가지 않는다(가격처럼 읽히면 안 된다). */
 .px.up>b,.px.up .px-chg{color:var(--good)}
 .px.dn>b,.px.dn .px-chg{color:var(--danger)}
 .px.up .krw,.px.dn .krw{color:var(--faint)}
 .px-chg.up{color:var(--good)} .px-chg.dn{color:var(--danger)}
 @media(max-width:420px){
   /* 폭이 좁으면 억지로 한 줄에 넣지 않는다 — 이름이 잘리는 게 더 나쁘다 */
   .stock{grid-template-columns:minmax(0,1fr)}
   .stock>.px{grid-column:1;margin-top:8px;justify-content:flex-start;text-align:left}
 }
 /* 로고 원형 + 이름/티커를 한 줄로 (형님이 준 StockNow 화면 구조).
    로고 이미지는 쓰지 않는다 — 외부 호스트를 부르면 1,100페이지가 그만큼 느려지고
    CSP·키 노출 문제가 생긴다. 티커 머리글자로 만든 원형이면 같은 자리를 채운다. */
 .stock .r1{display:flex;align-items:center;gap:10px}
 .stock .tkav{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
   background:var(--raised);border:1px solid var(--hair);
   font-family:var(--mono);font-size:13px;font-weight:800;color:var(--muted);letter-spacing:-.03em}
 .stock .r1 .nm{min-width:0}
 .stock h1{margin:0;font-size:23px;font-weight:800;letter-spacing:-.02em;
   white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .stock .tk{display:block;margin-top:1px;font-family:var(--mono);font-size:12px;color:var(--faint)}
 .stock .px{margin-top:11px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
 .stock .px b{font-family:var(--mono);font-size:31px;font-weight:800;letter-spacing:-.02em}
 .stock .dn{font-family:var(--mono);font-size:14px;font-weight:700}
 .spark{margin-top:12px;width:100%;height:72px;display:block}
 section{padding:18px;border-top:1px solid var(--hair)}
 .lbl{margin:0 0 13px;display:flex;align-items:center;gap:9px}.lbl .eyebrow{color:var(--muted)}.lbl .bar{height:1px;flex:1;background:var(--hair)}
 .compass{background:var(--raised);background:linear-gradient(180deg,color-mix(in srgb,var(--TONE) 7%,var(--surface)),var(--surface));border:1px solid var(--hair);border-radius:16px;padding:18px 16px 16px;text-align:center;overflow:hidden}
 /* viewBox는 그대로 두고 표시 크기만 줄인다 — 안의 좌표를 다시 계산할 필요가 없다.
    대신 SVG 안 글자는 같이 작아지므로 gzone 폰트는 키워서 보정한다. */
 .gauge{width:190px;height:106px;margin:0 auto}
 .gzone{font-family:var(--mono);font-size:13.5px;letter-spacing:.02em;fill:var(--faint)}
 .dir .k{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.01em;text-transform:uppercase;color:var(--TONE)}
 .dir .big{font-size:29px;font-weight:800;letter-spacing:0;margin:1px 0 0;color:var(--TONE)}
 .whys{list-style:none;margin:9px auto 0;padding:0;max-width:31ch;display:flex;flex-direction:column;gap:3px}
 .whys li{position:relative;padding-left:12px;font-size:13px;line-height:1.45;color:var(--muted);text-align:left}
 .whys li::before{content:"·";position:absolute;left:3px;color:var(--TONE);font-weight:800}
 .dir p{margin:7px auto 0;color:var(--muted);font-size:14px;line-height:1.5;max-width:30ch}.dir p b{color:var(--text)}
 .ai{background:linear-gradient(180deg,var(--violet-bg),var(--raised));border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--violet) 30%,var(--hair));border-radius:16px;padding:16px 17px}
 .ai .h{display:flex;align-items:center;gap:8px;margin-bottom:9px}.ai .chip{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--violet);background:var(--violet-bg);background:color-mix(in srgb,var(--violet) 16%,transparent);padding:4px 9px;border-radius:20px}
 .ai .by{font-family:var(--mono);font-size:10.5px;color:var(--faint)}.ai p{margin:0;font-size:14.5px;line-height:1.72;color:var(--text)}
 /* 2026-08-14: 지표를 12 → 26개로 늘리면서 칸을 좁혔다("간격을 좁혀서 한 화면에").
    폰에서 3열 유지 · 칸 높이를 약 96px → 62px 로 줄여 26개가 한 화면에 들어온다.
    글자는 작아지지만 값은 굵게 남겨 스캔이 되게 한다. */
 .igrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .ind{border:1px solid var(--hair);border-radius:9px;padding:6px 5px 7px;background:var(--surface);text-align:center}
 .ind .n{font-size:10.5px;color:var(--muted);font-family:var(--mono);line-height:1.25;
   white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .ind .v{font-family:var(--mono);font-size:16px;font-weight:800;margin:2px 0 3px;line-height:1.15}
 .ind .s{font-family:var(--mono);font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:9px;
   display:inline-block;max-width:100%;line-height:1.3;word-break:keep-all;
   white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .s-over{background:var(--good-bg);color:var(--good)}.s-sell{background:var(--danger-bg);color:var(--danger)}.s-buy{background:var(--good-bg);color:var(--good)}.s-neu{background:var(--hold-bg);color:var(--hold)}.s-down{background:var(--danger-bg);color:var(--danger)}.s-up{background:var(--good-bg);color:var(--good)}
 .vol{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}.vc{border:1px solid var(--hair);border-radius:13px;padding:13px 14px;background:var(--surface)}
 .vc .n{font-size:13.5px;color:var(--muted)}.vc .v{font-family:var(--mono);font-size:23.5px;font-weight:700;margin-top:6px}.vc .s{font-family:var(--mono);font-size:12px;color:var(--faint);margin-top:3px}

 .mm{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:6px 6px 12px}
 .mm-svg{display:block;width:100%;height:auto;max-width:470px;margin:0 auto}
 .mm-node{cursor:pointer}
 .mm-node rect{transition:stroke-opacity .15s,filter .15s}
 .mm-node:hover rect{stroke-opacity:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.13))}
 .mm-node text{pointer-events:none}
 .mm-note{margin:2px 14px 0;font-size:11px;line-height:1.65;color:var(--faint)}
 .theme{border:1px solid var(--hair);border-radius:15px;padding:15px 16px 12px;background:var(--surface)}.theme .cap{font-size:13.5px;color:var(--muted);margin:0 0 13px;line-height:1.5}.theme .cap b{color:var(--danger)}
 .prow{display:grid;grid-template-columns:104px minmax(0,1fr) 46px;align-items:center;gap:9px;margin-bottom:8px}.prow .pn{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prow.me .pn{color:var(--gold)}.prow .pn .kname{font-family:var(--mono);font-weight:400;font-size:10.5px;margin-left:3px}
 .track{position:relative;height:16px;background:var(--hair);background:color-mix(in srgb,var(--hair) 55%,transparent);border-radius:5px}.track .mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--faint);opacity:.6}
 .track i{position:absolute;top:2px;bottom:2px;border-radius:3px}.track i.pos{left:50%;background:var(--good)}.track i.neg{right:50%;background:var(--danger)}.track i.me{background:var(--gold)}
 .prow .pv{font-family:var(--mono);font-size:13px;font-weight:700;text-align:right}.pv.pos{color:var(--good)}.pv.neg{color:var(--danger)}
 .hist{border:1px solid var(--hair);border-radius:15px;padding:16px 17px;background:radial-gradient(70% 100% at 100% 0,var(--good-gl),transparent 60%),var(--surface)}
 .hist .top2{display:flex;align-items:baseline;gap:12px}.hist .big{font-family:var(--mono);font-size:38px;font-weight:800;color:var(--good);line-height:1}.hist .top2 span{font-size:14px;color:var(--muted);line-height:1.4}
 .hist .dist{display:flex;gap:6px;margin-top:13px}.hist .dist div{flex:1;text-align:center;font-family:var(--mono);font-size:12px;color:var(--muted);background:var(--raised);border-radius:8px;padding:8px 4px}.hist .dist b{display:block;font-size:14.5px;margin-top:2px}
 .hist .warn{margin-top:12px;font-size:13px;color:var(--caution);line-height:1.5}
 /* 목표가 — 증권사 평균 / 폴라리스 1·2차. 과거 통계 위에 올려 먼저 보이게 한다 */
 .hgoal{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:7px;margin-bottom:14px}
 .hg-c{background:var(--raised);border-radius:10px;padding:9px 10px;min-width:0}
 .hg-c span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;
   overflow:hidden;text-overflow:ellipsis}
 .hg-c b{display:block;margin-top:3px;font-family:var(--mono);font-size:15px;font-weight:800}
 .hg-c em{display:block;margin-top:1px;font-style:normal;font-size:11.5px;font-weight:700}
 .hg-c em.up{color:var(--good)}.hg-c em.dn{color:var(--danger)}
 .hgn{margin:0 0 13px;font-size:11.5px;line-height:1.55;color:var(--muted)}
 .hgn b{color:var(--text)}
 .newshead{display:flex;align-items:center;justify-content:space-between}.live{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--good);border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--good) 40%,var(--hair));padding:3px 7px;border-radius:8px}
 .news{display:flex;flex-direction:column;gap:1px;border:1px solid var(--hair);border-radius:12px;overflow:hidden;margin-top:11px}
 .news .it{padding:12px 14px;background:var(--surface);display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}
 .news .sent{font-family:var(--mono);font-size:10px;font-weight:800;padding:3px 6px;border-radius:8px;margin-top:1px;white-space:nowrap}
 .se-neg{background:var(--danger-bg);color:var(--danger)}.se-neu{background:var(--hold-bg);color:var(--hold)}.se-pos{background:var(--good-bg);color:var(--good)}
 .news .tt{font-size:14px;line-height:1.45}.news .mt{font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:3px}
 .action{background:var(--raised);background:linear-gradient(180deg,color-mix(in srgb,var(--TONE) 14%,var(--raised)),var(--raised));border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--TONE) 34%,var(--hair));border-radius:16px;padding:17px 18px}
 .action .k{font-family:var(--mono);font-size:12.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--TONE)}.action h3{margin:8px 0 0;font-size:19px;font-weight:800;line-height:1.45;text-wrap:balance}
 .action ul{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}.action li{display:flex;gap:10px;font-size:14.5px;color:var(--muted);line-height:1.5}.action li b{color:var(--text)}.action li .dot{color:var(--TONE);font-family:var(--mono);flex:none}
 /* 2026-08-12: 판정을 '의견'으로 명시한 배지와, 그 아래 작은 면책 한 줄.
    배지 색은 판정마다 다른 --TONE 을 그대로 쓴다. */
 .op-badge{display:inline-block;padding:5px 11px;border-radius:999px;background:var(--TONE);
   color:#fff;font:800 13px var(--sans);letter-spacing:-.01em}
 .op-note{margin:14px 0 0;padding-top:11px;border-top:1px solid var(--hair);
   color:var(--faint);font-size:11.5px;line-height:1.65}
 /* 매매 시나리오 */
 /* CLAUDE 2026-09-05: 옛 '연간 실적' 카드(.fins/.fcharts/.fchart*/.fbar*/.fnote)와
    그보다 더 옛날 7칸 표(.fy*)의 CSS 를 지웠다. 두 벌 다 HTML 을 만드는 코드가
    없어진 지 오래라 모든 페이지에 죽은 규칙으로만 실려 있었다. */
 .usd,.krw{margin-left:3px;color:var(--faint);font-size:.72em;font-weight:600}
 /* 같이 움직이는 종목 관계도 */
 .gwrap{margin-top:10px;border:1px solid var(--hair);border-radius:14px;background:var(--surface);padding:6px 4px}
 .ggraph{display:block;overflow:visible}
 .ggraph .gg-n{font:700 11px var(--sans);fill:var(--text);text-anchor:middle}
 .ggraph .gg-mename{font:800 14.5px var(--sans);fill:var(--text);text-anchor:middle}
 .ggraph .gg-c{font:600 9.5px var(--mono);fill:var(--muted);text-anchor:middle}
 .ggraph .gg-me{font:800 12.5px var(--mono);fill:#fff;text-anchor:middle}
 .ggraph .gg-ax{font:600 7.5px var(--mono);fill:var(--faint)}
 .ggraph a:hover circle{stroke:var(--text);stroke-width:1.5}
 .gnote{margin-top:9px;font-size:12.5px;line-height:1.65;color:var(--faint)}
 .dq{border:1px solid var(--caution);border-radius:14px;background:var(--caution-bg);padding:14px 15px}
 .dq.dq-hard{border-color:var(--danger);background:var(--danger-bg)}
 .dq-h{font-size:16px;font-weight:800;line-height:1.5}
 .dq-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
 .dq-t{font-family:var(--mono);font-size:11px;font-weight:800;padding:3px 8px;border-radius:20px;background:var(--raised);background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}
 .dq-l{margin:10px 0 0;padding-left:17px}
 .dq-l li{font-size:14px;line-height:1.75}
 .dq-n{margin:11px 0 0;font-size:14px;line-height:1.7}
 .dq-w{margin:10px 0 0;padding-top:9px;border-top:1px solid var(--hair);font-size:12.5px;line-height:1.6;color:var(--muted)}
 /* AI가 원인을 '가격 조정'이라고 결론 낸 경우 — 빨간 경고톤을 쓰지 않는다 */
 .dq.dq-calm{border-color:var(--line);background:var(--raised)}
 /* ── AI 하락 원인 ── */
 .cz{margin:12px 0 0;padding:13px 14px;border-radius:12px;background:var(--white);
   border:1px solid var(--line)}
 .cz.cz-bad{border-color:var(--danger)}
 .cz.cz-ok{border-color:var(--up)}
 .cz-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;
   letter-spacing:.04em;color:var(--muted);text-transform:none}
 .cz-c{margin-left:auto;padding:2px 7px;border-radius:999px;background:var(--raised);
   font-size:11px;font-weight:700;color:var(--faint)}
 .cz-line{margin:8px 0 0;font-size:16px;font-weight:700;line-height:1.55;letter-spacing:-.02em}
 .cz-v{margin:9px 0 0;padding:7px 10px;border-radius:9px;background:var(--raised);
   font-size:13.5px;font-weight:700;line-height:1.5}
 .cz.cz-ok .cz-v{background:var(--up-soft);color:var(--up)}
 .cz.cz-bad .cz-v{background:var(--danger-bg);color:var(--danger)}
 .cz-s{margin:13px 0 5px;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--faint)}
 .cz-l{margin:0;padding-left:17px;font-size:14px;line-height:1.75}
 .cz-l li{margin:2px 0}
 .cz-w li{color:var(--muted)}
 .cz-ins{margin:0;font-size:14px;line-height:1.7}
 .cz-note{display:block;margin-top:5px;font-size:12.5px;line-height:1.6;color:var(--faint)}
 .cz-src{margin:0;padding-left:17px;font-size:13px;line-height:1.75}
 .cz-src li{margin:3px 0;color:var(--muted)}
 .cz-src a{color:var(--accent);text-decoration:none}
 .cz-src a:hover{text-decoration:underline}
 .cz-d{display:inline-block;min-width:74px;color:var(--faint);font-variant-numeric:tabular-nums}
 .cz-src em{color:var(--faint);font-style:normal;font-size:12px}
 .cz-f{margin:12px 0 0;padding-top:9px;border-top:1px solid var(--hair);
   font-size:12.5px;line-height:1.6;color:var(--muted)}
 /* ── 환율·금리 ── */
 .mk-cs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:14px}
 .mk-c{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--raised)}
 .mk-c span{display:block;font-size:11px;color:var(--faint);white-space:nowrap;
   overflow:hidden;text-overflow:ellipsis}
 .mk-c b{display:block;margin-top:3px;font-size:15.5px;font-variant-numeric:tabular-nums}
 .mk-c em{display:block;margin-top:2px;font-size:11px;font-style:normal;
   font-variant-numeric:tabular-nums}
 .mk-s{margin:14px 0 7px;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--faint)}
 .mk-t{width:100%;border-collapse:collapse;font-size:13.5px}
 .mk-t th{padding:5px 6px;font-size:11px;font-weight:700;color:var(--faint);text-align:right;
   border-bottom:1px solid var(--hair)}
 .mk-t th:first-child,.mk-t th:last-child{text-align:left}
 .mk-t td{padding:7px 6px;border-bottom:1px solid var(--hair);text-align:right;
   font-variant-numeric:tabular-nums}
 .mk-t td.mk-l{text-align:left;color:var(--muted);white-space:nowrap}
 .mk-t td.mk-v{text-align:left;font-size:13px;color:var(--muted);white-space:nowrap}
 .mk-r{margin:0;font-size:14.5px;line-height:1.75}
 .mk-n{margin:8px 0 0;font-size:12.5px;line-height:1.65;color:var(--muted)}
 .mk-bs{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
 .mk-b{padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--raised);
   font-size:12.5px;color:var(--muted)}
 .mk-b b{color:var(--ink);font-variant-numeric:tabular-nums}
 .mk-f{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--hair);
   font-size:12.5px;line-height:1.65;color:var(--muted)}
 @media(max-width:520px){
   .mk-cs{grid-template-columns:repeat(2,minmax(0,1fr))}
   .mk-t td.mk-v{display:none}
   .mk-t th:last-child{display:none}
 }
 .ggraph .gg-node{cursor:pointer}
 .ggraph .gg-node:hover .gg-dot,.ggraph .gg-node.on .gg-dot{stroke:var(--text);stroke-width:2}
 .gpanel{margin-top:11px;border:1px solid var(--gold);border-radius:14px;background:var(--raised);padding:14px 15px}
 .gpanel[hidden]{display:none}
 .gp-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
 .gp-kind{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--gold);
   border:1px solid var(--gold);border-radius:20px;padding:3px 9px}
 .gp-x{border:0;background:none;color:var(--muted);font-size:15.5px;cursor:pointer;padding:2px 4px}
 .gp-t{margin-top:10px;font-size:23.5px;font-weight:800;letter-spacing:-.01em}
 .gp-sub{margin-top:2px;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
 .gp-sec{margin-top:14px;font-family:var(--mono);font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--faint)}
 .gp-p{margin:5px 0 0;font-size:14.5px;line-height:1.65}
 .gp-ev{margin:6px 0 0;padding-left:16px}
 .gp-ev li{font-size:13.5px;line-height:1.75;color:var(--muted)}
 .gp-go{display:inline-block;margin-top:14px;padding:9px 15px;border-radius:10px;background:var(--gold);
   color:#fff;font-size:14px;font-weight:800;text-decoration:none}
 .gp-warn{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--hair);
   font-size:12.5px;line-height:1.6;color:var(--faint)}
 .gp-warn b{color:var(--muted)}
 .gnote b{color:var(--muted)}
 .fs{margin-top:9px;padding-top:9px;border-top:1px dashed var(--hair);font-size:12.5px;color:var(--muted);line-height:1.7}
 .fs b{color:var(--text)}.fs .fs-good{color:var(--good)}.fs .fs-bad{color:var(--danger)}
 .fbadge{display:inline-block;margin:8px 0 2px;padding:5px 11px;border-radius:99px;font-size:13px;font-weight:700}
 .fbadge.fb-good{background:var(--good-bg);color:var(--good)}
 .fbadge.fb-warn{background:var(--caution-bg);color:var(--caution)}
 .fbadge.fb-bad{background:var(--danger-bg);color:var(--danger)}
 .fgrid .fv em{font-style:normal;font-size:10.5px;font-weight:600;display:block;margin-top:2px}
 /* 2026-08-21: 예전 7칸 표(.fy)를 막대그래프(.fcards)로 바꿨다.
    그 표는 좁은 화면에서 매출 막대를 display:none 으로 접고 있었고,
    그래서 **폰에서는 막대가 하나도 없었다.** 이제 접을 것이 없다. */
 @media(max-width:360px){
   .fcharts{gap:7px}
   .fchart{padding:8px 8px 6px}
   .fchart-h b{font-size:13px}
 }
 .thstat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:11px}
 .ts{border:1px solid var(--hair);border-radius:10px;padding:8px 9px;text-align:center;background:var(--raised)}
 .ts span{display:block;font-size:11px;color:var(--muted)}.ts b{font-size:15.5px}
 .thlead{display:flex;align-items:center;gap:8px;padding:10px 11px;margin-bottom:11px;border-radius:11px;border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--gold) 36%,var(--hair));background:var(--raised);text-decoration:none;color:inherit}
 .tl-k{font-family:var(--mono);font-size:10.5px;color:var(--gold);white-space:nowrap}
 .tl-n{flex:1;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .tl-n em{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-left:4px}
 .tl-r{font-size:13px;font-weight:700}
 .thlead .bd{font-size:10.5px;padding:2px 7px;border-radius:9px}
 /* CODEX 2026-08-09: 외부 단일시세 위젯 대신 /api/movers의 지연 시세를 간결하게 표시한다. */
 .liveq{display:flex;align-items:baseline;gap:8px;margin-top:10px;padding:9px 12px;
   border:1px solid var(--hair);border-radius:12px;background:var(--raised)}
 .liveq[hidden]{display:none}
 .liveq-t{flex:none;padding:2px 7px;border-radius:999px;background:var(--gold);
   color:var(--surface);font-size:10.5px;font-weight:800;letter-spacing:.02em}
 .liveq b{font-family:var(--mono);font-size:17px;font-weight:800}
 .liveq em{font-style:normal;font-family:var(--mono);font-size:13px;font-weight:700}
 .liveq em.up{color:var(--good)}.liveq em.dn{color:var(--danger)}
 .liveq-k{margin-left:auto;flex:none;font-family:var(--mono);font-size:10px;color:var(--muted)}
 /* CODEX 2026-08-09: Polygon 일봉을 직접 그리는 한국형 차트 셸. */
 .pmc{border:1px solid var(--hair);border-radius:16px;background:var(--surface);overflow:hidden}
 .pmc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
   padding:14px 15px 10px;border-bottom:1px solid var(--hair)}
 .pmc-title b{display:block;font-size:17px}.pmc-title span{display:block;margin-top:2px;
   font:600 11px var(--mono);color:var(--faint)}
 .pmc-ohlc{font:700 11px var(--mono);color:var(--muted);text-align:right;line-height:1.65}
 .pmc-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 12px;
   border-bottom:1px solid var(--hair);background:var(--raised)}
 .pmc-mobile-tools{display:none}
 .pmc-group{display:flex;gap:4px;padding-right:7px;border-right:1px solid var(--hair)}
 .pmc-group:last-child{border-right:0;padding-right:0}
 .pmc-btn{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);
   padding:6px 9px;font:750 12px var(--sans);cursor:pointer;white-space:nowrap}
 .pmc-btn:hover{border-color:var(--hair);color:var(--text)}
 .pmc-btn[aria-pressed="true"]{background:var(--surface);border-color:var(--hair);color:var(--text);
   box-shadow:0 1px 4px rgba(0,0,0,.06)}
 /* 2026-08-12: 지표는 중복 선택이다. 고른 것은 테두리가 진해지고 왼쪽에 체크가
    붙는다 — 색만으로 구분하면 색을 못 보는 사람에게는 표시가 없는 것과 같다. */
 .pmc-group-wide{flex:1 1 auto;min-width:0;align-items:flex-start}
 .pmc-pick-row{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
 .pmc-btn.pmc-pick{display:inline-flex;align-items:baseline;gap:4px;border-color:var(--hair);
   background:var(--surface);padding:5px 8px}
 .pmc-btn.pmc-pick small{color:var(--faint);font:600 9.5px var(--sans)}
 .pmc-btn.pmc-pick[aria-pressed="true"]{border-color:var(--gold);color:var(--gold);
   box-shadow:inset 0 0 0 1px var(--gold)}
 .pmc-btn.pmc-pick[aria-pressed="true"] small{color:var(--gold);opacity:.72}
 .pmc-btn.pmc-pick[aria-pressed="true"] b::before{content:"\2713 ";font-weight:900}
 /* 최근 몇 년 사이 자리 잡은 지표에만 붙는 표시. 오래된 지표와 섞이지 않게 한다. */
 .pmc-new{display:inline-block;margin-left:4px;padding:1px 4px;border-radius:4px;
   background:var(--gold);color:#fff;font:800 8px var(--sans);font-style:normal;
   vertical-align:middle;letter-spacing:0}
 .pmc-fixed-indicator{display:inline-flex;align-items:center;padding:6px 8px;color:var(--faint);
   font:750 11.5px var(--sans);white-space:nowrap}
 .pmc-sub-select{max-width:210px;height:34px;padding:0 28px 0 9px;border:1px solid var(--hair);
   border-radius:8px;background:var(--surface);color:var(--text);font:750 11.5px var(--sans)}
 /* CODEX 2026-08-11: 자동 시그널과 직접 그리는 선은 기간·지표 메뉴와 분리한다. */
 .pmc-analysis-tools{display:flex;align-items:center;gap:5px;padding:7px 9px;
   border-bottom:1px solid var(--hair);background:var(--surface)}
 .pmc-tool-btn{min-width:66px;padding:6px 8px;border:1px solid var(--hair);border-radius:8px;
   background:var(--raised);color:var(--muted);font:750 11.5px var(--sans);cursor:pointer;white-space:nowrap}
 .pmc-tool-btn:hover{color:var(--text);border-color:var(--gold)}
 .pmc-tool-btn[aria-pressed="true"]{color:var(--gold);border-color:var(--gold);background:var(--surface)}
 .pmc-tool-btn[data-signals][aria-pressed="true"]{color:var(--good)}
 .pmc-tool-status{min-width:0;margin-left:auto;overflow:hidden;text-overflow:ellipsis;
   white-space:nowrap;color:var(--faint);font-size:10.5px}
 /* CODEX 2026-08-11: 배경 없는 매수·매도 글자와 맥박처럼 커지는 신호 점. */
 .pmc-signal-layer{position:absolute;inset:0;z-index:20;overflow:hidden;pointer-events:none}
 .pmc-signal-layer[hidden]{display:none}
 /* 2026-08-12: 봉을 가리던 동그란 점을 방향이 보이는 삼각형으로 바꾼다. 매수는
    저가 아래에서 위를, 매도는 고가 위에서 아래를 가리킨다. 글자는 자리가 있을
    때만 붙고(bare), 맥박은 가장 최근 신호(live) 하나만 뛴다. */
 /* 2026-08-12 (3차): 증권사 화면처럼 굵은 화살표 + 큰 글씨. 잔글씨를 뺐다.
    매수는 봉 아래에서 위를 가리키고, 매도는 봉 위에서 아래를 가리킨다. */
 .pmc-signal-marker{position:absolute;display:flex;align-items:center;gap:1px;
   background:transparent!important;border:0!important;
   box-shadow:none!important;white-space:nowrap}
 .pmc-signal-marker.buy{flex-direction:column}      /* 화살표 위 · 글자 아래 */
 .pmc-signal-marker.sell{flex-direction:column-reverse} /* 글자 위 · 화살표 아래 */
 .pmc-signal-marker b{padding:0!important;border:0!important;background:transparent!important;
   box-shadow:none!important;font:900 13px var(--sans);line-height:1.15;letter-spacing:-.02em;
   text-align:center;
   text-shadow:0 0 4px var(--surface),0 0 4px var(--surface),0 0 4px var(--surface),
     0 1px 0 var(--surface)}
 .pmc-signal-marker.buy b{color:var(--good)}
 .pmc-signal-marker.sell b{color:var(--danger)}
 /* 굵은 화살표 — 삼각 머리 + 몸통. 참고 화면과 같은 모양. */
 .pmc-arrow{position:relative;display:block;width:13px;height:19px;
   filter:drop-shadow(0 0 3px var(--surface)) drop-shadow(0 0 2px var(--surface))}
 .pmc-arrow::before,.pmc-arrow::after{content:"";position:absolute;left:50%}
 .pmc-arrow::before{width:6px;margin-left:-3px;height:9px}
 .pmc-arrow::after{width:0;height:0;margin-left:-6.5px;
   border-left:6.5px solid transparent;border-right:6.5px solid transparent}
 .buy .pmc-arrow::before{bottom:0;background:var(--good)}
 .buy .pmc-arrow::after{top:0;border-bottom:10px solid var(--good)}
 .sell .pmc-arrow::before{top:0;background:var(--danger)}
 .sell .pmc-arrow::after{bottom:0;border-top:10px solid var(--danger)}
 /* 가장 최근 신호에만 근거 한 줄. 나머지는 눌러서 확인한다. */
 .pmc-signal-marker b u{display:block;text-decoration:none;font:800 9.5px var(--sans);
   opacity:.85;letter-spacing:-.03em}
 .pmc-signal-marker.live .pmc-arrow{animation:pmc-signal-pulse 1.3s ease-in-out infinite}
 /* 추세를 거스르는 신호 — 지우지 않는다. 다만 화살표를 속이 빈 모양으로 바꿔
    한눈에 구별되게 한다. 흐리게만 했더니 "잘 보이지도 않는다"는 지적을 받았다. */
 .pmc-signal-marker.weak{opacity:.78}
 .pmc-signal-marker.weak b{font-weight:800;font-size:11.5px}
 .pmc-signal-marker.weak .pmc-arrow{width:11px;height:15px}
 .pmc-signal-marker.weak .pmc-arrow::before{width:3px;margin-left:-1.5px;height:7px}
 .pmc-signal-marker.weak .pmc-arrow::after{margin-left:-5px;
   border-left-width:5px;border-right-width:5px}
 .weak .pmc-arrow::after{border-bottom-width:8px;border-top-width:8px}
 .pmc-signal-marker.weak.live .pmc-arrow{animation:none}
 /* 2026-08-12: 여기에 .pmc-signal-marker b u 규칙이 한 번 더 있었다(8.5px).
    위쪽 4차 규칙(9.5px)을 그대로 덮어써서 '글씨를 키운다'는 수정이 죽어 있었다. */
 /* 아래 패널 이름표 — 오른쪽 축 숫자가 무엇의 값인지 알려준다. */
 .pmc-pane-labels{position:absolute;inset:0;z-index:18;pointer-events:none}
 .pmc-pane-tag{position:absolute;left:8px;padding:1px 6px;border-radius:5px;
   background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--muted);
   font:800 10px var(--sans);white-space:nowrap}
 /* 십자선 자리의 등락률 — 지금 가격보다 몇 % 위/아래인지. */
 .pmc-gap-tag{position:absolute;right:6px;transform:translateY(-50%);z-index:22;
   padding:2px 7px;border-radius:5px;color:#fff;font:800 11px var(--mono);
   pointer-events:none;white-space:nowrap}
 .pmc-gap-tag.up{background:var(--good)} .pmc-gap-tag.dn{background:var(--danger)}
 .pmc-gap-tag[hidden]{display:none}
 /* 신호 기준 설명(i) */
 .pmc-info{width:30px;padding:0;font:900 13px var(--mono);font-style:italic}
 .pmc-guide{padding:14px 16px 16px;border-top:1px solid var(--hair);background:var(--raised)}
 .pmc-guide[hidden]{display:none}
 .pmc-guide-lead{margin:0 0 12px;color:var(--muted);font-size:12.5px;line-height:1.65}
 .pmc-guide h4{margin:14px 0 6px;font-size:12px;font-weight:800;color:var(--gold)}
 .pmc-guide table{width:100%;border-collapse:collapse}
 .pmc-guide th{width:33%;padding:5px 8px 5px 0;text-align:left;vertical-align:top;
   font:800 11.5px var(--sans);color:var(--text)}
 .pmc-guide td{padding:5px 0;color:var(--muted);font-size:11.5px;line-height:1.55;
   border-bottom:1px solid var(--hair)}
 .pmc-guide p{margin:4px 0 0;color:var(--muted);font-size:11.5px;line-height:1.65}
 .pmc-guide-foot{margin-top:14px!important;padding-top:10px;border-top:1px solid var(--hair);
   color:var(--faint)!important;font-size:10.5px!important}
 @keyframes pmc-signal-pulse{0%,100%{opacity:1}50%{opacity:.5}}
 @media (prefers-reduced-motion:reduce){.pmc-signal-marker.live i{animation:none}}
 /* CODEX 2026-08-11: 사용자가 보조지표를 조합해 매수·매도 규칙을 만드는 패널. */
 .pmc-strategy-panel{padding:14px;border-bottom:1px solid var(--hair);background:var(--raised)}
 .pmc-strategy-panel[hidden],.pmc-strategy-custom[hidden]{display:none}
 .pmc-strategy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
 .pmc-strategy-head b{display:block;font-size:15px}.pmc-strategy-head span{display:block;margin-top:3px;
   color:var(--faint);font-size:11px;line-height:1.5}
 .pmc-strategy-close{width:30px;height:30px;border:1px solid var(--hair);border-radius:8px;
   background:var(--surface);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
 .pmc-strategy-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:12px}
 .pmc-choice{position:relative;display:flex;align-items:center;justify-content:center;min-height:38px;
   padding:7px 9px;border:1px solid var(--hair);border-radius:9px;background:var(--surface);
   color:var(--muted);font-size:12px;font-weight:750;cursor:pointer}
 .pmc-choice input{position:absolute;opacity:0;pointer-events:none}
 .pmc-choice:has(input:checked){border-color:var(--gold);color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
 .pmc-strategy-custom{margin-top:12px;padding-top:12px;border-top:1px solid var(--hair)}
 .pmc-strategy-label{margin:0 0 7px;color:var(--muted);font-size:11px;font-weight:800}
 .pmc-condition-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .pmc-condition-grid .pmc-choice{min-height:34px;padding:5px}
 .pmc-strategy-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:12px}
 .pmc-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;
   color:var(--muted);font-size:11.5px}
 .pmc-field select{max-width:116px;height:34px;padding:0 26px 0 9px;border:1px solid var(--hair);
   border-radius:8px;background:var(--surface);color:var(--text);font:700 11.5px var(--sans)}
 .pmc-field-check{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11.5px}
 .pmc-field-check input{accent-color:var(--gold)}
 .pmc-strategy-actions{display:flex;align-items:center;gap:7px;margin-top:13px}
 .pmc-strategy-actions button{min-height:36px;padding:7px 12px;border:1px solid var(--hair);border-radius:9px;
   background:var(--surface);color:var(--text);font:750 12px var(--sans);cursor:pointer}
 .pmc-strategy-actions [data-strategy-apply]{margin-left:auto;border-color:var(--gold);
   background:var(--gold);color:#fff}
 .pmc-strategy-summary{margin:10px 0 0;color:var(--faint);font-size:10.5px;line-height:1.55}
 /* CODEX 2026-08-11: 차트에서 시작한 손가락 제스처는 페이지 스크롤이 아니라
    캔들 이동·확대에만 전달한다. iPad Safari의 바운스도 이 영역 안에서 끊는다.
    2026-08-12: touch-action:none 이면 세로로 쓸어도 페이지가 안 내려간다.
      차트가 화면을 거의 다 채우므로, 좌우 얇은 여백에서만 스크롤이 됐다(지적됨).
      pan-y 로 바꾸면 — 세로로 쓸면 브라우저가 페이지를 내리고,
      가로로 쓸거나 두 손가락으로 벌리면 차트가 받는다. 둘 다 산다. */
 .pmc-canvas{height:660px;width:100%;position:relative;background:var(--surface);
   touch-action:pan-y;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}
 .pmc-canvas canvas{touch-action:pan-y!important}
 .pmc-state{display:grid;place-items:center;height:100%;min-height:320px;padding:24px;
   color:var(--muted);font-size:14px;text-align:center}
 .pmc-levels{display:flex;gap:7px;flex-wrap:wrap;padding:10px 13px;border-top:1px solid var(--hair)}
 .pmc-level{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;
   background:var(--raised);font:700 11px var(--mono);color:var(--muted)}
 .pmc-level i{width:8px;height:8px;border-radius:50%}.pmc-level.buy i{background:var(--hold)}
 .pmc-level.target i{background:var(--good)}.pmc-level.stop i{background:var(--danger)}
 .pmc-note{margin:0;padding:0 14px 13px;font-size:11.5px;line-height:1.6;color:var(--faint)}
 @media(max-width:620px){
   .pmc-head{display:block}.pmc-ohlc{text-align:left;margin-top:8px}
   /* CODEX 2026-08-09: 모바일은 현재 선택 4개만 한 줄에 두고,
      누른 분류의 선택지만 바로 아래 한 줄로 펼친다. */
   .pmc-tools{display:none}
   .pmc-mobile-tools{display:block;border-bottom:1px solid var(--hair);background:var(--raised)}
   .pmc-mobile-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:9px 8px}
   .pmc-menu{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;
     padding:8px 4px;border:1px solid var(--hair);border-radius:9px;background:var(--surface);
     color:var(--text);font:750 12px var(--sans);white-space:nowrap;cursor:pointer}
   .pmc-menu i{width:6px;height:6px;border-right:1.5px solid currentColor;
     border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
   .pmc-menu[aria-expanded="true"]{border-color:var(--gold);color:var(--gold)}
   .pmc-menu[aria-expanded="true"] i{transform:rotate(225deg) translate(-1px,-1px)}
   .pmc-pop{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:0 8px 9px;
     scrollbar-width:none;-webkit-overflow-scrolling:touch}
   .pmc-pop::-webkit-scrollbar{display:none}.pmc-pop[hidden]{display:none}
   .pmc-pop .pmc-btn{flex:1 0 auto;min-width:62px;background:var(--surface);border-color:var(--hair)}
   /* CODEX 2026-08-11: 22개 보조지표는 가로 스크롤 대신 펼침식 4열 메뉴로 정돈한다.
      2026-08-12: 주가 지표도 같은 격자를 쓴다(둘 다 중복 선택). */
   .pmc-pop[data-pmc-pop="sub"],.pmc-pop[data-pmc-pop="main"]{display:grid;
     grid-template-columns:repeat(4,minmax(0,1fr));
     align-items:stretch;gap:5px;overflow:visible;max-height:260px;padding:0 8px 9px}
   .pmc-pop[data-pmc-pop="sub"][hidden],.pmc-pop[data-pmc-pop="main"][hidden]{display:none}
   .pmc-pop .pmc-pick{display:block;min-width:0;padding:7px 3px;text-align:left}
   .pmc-pop .pmc-pick b,.pmc-pop .pmc-pick small{display:block;
     overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
   .pmc-pop .pmc-pick b{font-size:10.5px}
   .pmc-pop .pmc-pick small{margin-top:2px;color:var(--faint);font-size:8.5px}
   .pmc-analysis-tools{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:6px}
   .pmc-tool-btn{min-width:0;padding:7px 2px;font-size:10.5px;border-radius:7px}
   .pmc-tool-status{grid-column:1/-1;margin:0;min-height:16px;padding:0 2px;text-align:left}
   .pmc-strategy-panel{padding:12px 10px}
   .pmc-condition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
   .pmc-strategy-fields{grid-template-columns:1fr}
   .pmc-canvas{height:560px}
 }
 /* 차트 아래 '이 회사는' 요약 — 설명·산업군·업종 순위·대장주를 한 카드에.
    자세한 건 아래 '기업 개요'·'동일 테마 동향' 섹션(탭 안)에 그대로 있다. */
 .about{border:1px solid var(--hair);border-radius:14px;background:var(--surface);padding:14px 15px}
 .ab-d{margin:0;font-size:14px;line-height:1.75;color:var(--text)}
 .ab-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
 .ab-chip{display:inline-flex;align-items:baseline;gap:5px;border:1px solid var(--hair);
   border-radius:999px;padding:5px 11px;font-size:12px;color:var(--muted);
   background:var(--raised);text-decoration:none;white-space:nowrap}
 .ab-chip b{font-weight:800;color:var(--text)}
 .ab-chip em{font-style:normal;font-size:11px;color:var(--faint)}
 .ab-chip .up{color:var(--good)} .ab-chip .dn{color:var(--danger)}
 .ab-chip em.up{color:var(--good)} .ab-chip em.dn{color:var(--danger)}
 .ab-lead{border-color:color-mix(in srgb,var(--gold) 40%,var(--hair))}
 .ab-grid{margin-top:13px}
 .ab-more{display:inline-block;margin-top:11px;font-size:12px;font-weight:700;
   color:var(--gold);text-decoration:none}
 /* 한눈에 보는 숫자 — 네이버 종목 첫 화면 같은 표. 지뢰 #2 때문에 minmax(0,…) 를 쓴다. */
 /* 칸 사이 선을 '배경색 비추기'로 그리면, 항목 수가 열 수로 안 나눠떨어질 때
    마지막 줄 빈 자리가 회색으로 남는다(2026-08-09 지적). 셀에 직접 선을 그린다. */
 .scs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,150px));
   background:var(--surface);border:1px solid var(--hair);border-radius:12px;overflow:hidden}
 .sc{background:var(--surface);padding:11px 12px;
   border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
 .sc-k{font-size:11px;color:var(--faint)}
 .sc-v{font-size:15px;font-weight:800;margin-top:3px}
 .sc-s{font-size:10.5px;color:var(--faint);margin-top:2px}
 .sc-note{margin:9px 0 0;font-size:11px;line-height:1.6;color:var(--faint)}
 /* 재무 추이 — 항목마다 자기 칸을 갖는 막대 카드.
    CLAUDE 2026-09-05: 예전 SVG(.fin2/.fin-sv)를 걷어낸 자리다. 고정 viewBox 300x110
    안에 글자를 넣으면 폭이 좁아질수록 글자만 같이 줄어들어 못 읽는다. 여기서는
    막대를 %로 세우고 숫자는 보통 글자로 얹어, 화면이 좁아져도 글자 크기가 그대로다. */
 .fcds{display:grid;grid-template-columns:1fr;gap:9px}
 @media(min-width:560px){.fcds{grid-template-columns:repeat(2,minmax(0,1fr))}}
 .fcd{min-width:0;border:1px solid var(--hair);border-radius:12px;background:var(--raised);padding:12px 13px 9px}
 .fcd-h{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
 .fcd-h b{font-size:12px;font-weight:800}
 .fcd-h span{font-size:10.5px;color:var(--faint);font-family:var(--mono)}
 /* 요약수치 — 최근값과 직전 해 대비. 항목이 하나면 카드 머리, 짝이면 범례에 붙는다.
    상승 빨강·하락 파랑은 이 사이트 전체 관례다(.px-chg/.lv2-c/.rectbl 과 같은 색). */
 .fcd-now{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
 .fcd-now em{font:800 13px var(--mono);font-style:normal;color:var(--text)}
 .fcd-now i{font:700 10.5px var(--mono);font-style:normal}
 .fcd-now i.up{color:var(--good)}.fcd-now i.dn{color:var(--danger)}
 .fcd-lg .fcd-now{margin-left:3px;font-weight:400}
 .fcd-lg .fcd-now em{font-size:11.5px}
 .fcd-note{margin-top:2px;font-size:10.5px;color:var(--faint);font-family:var(--mono)}
 /* 내부자 · 공매도 (CLAUDE 2026-09-05) */
 .sup{display:grid;grid-template-columns:1fr;gap:9px}
 @media(min-width:700px){.sup{grid-template-columns:repeat(2,minmax(0,1fr))}}
 .sup-card{min-width:0;border:1px solid var(--hair);border-radius:12px;background:var(--raised);padding:13px 14px 10px}
 .sup-h{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
 .sup-h b{font-size:13px;font-weight:800}
 .sup-h em{font-style:normal;font-size:10.5px;color:var(--faint);font-family:var(--mono)}
 .sup-two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
 .sup-two>div{min-width:0;border:1px solid var(--hair);border-radius:10px;background:var(--surface);padding:9px 10px}
 .sup-two span{display:block;font-size:11px;color:var(--muted)}
 .sup-two b{display:block;margin-top:4px;font:800 17px var(--mono);letter-spacing:-.02em}
 .sup-two b.up{color:var(--good)}.sup-two b.dn{color:var(--danger)}
 .sup-two small{display:block;margin-top:3px;font:650 10.5px var(--mono);color:var(--faint)}
 .sup-rows{margin-top:11px;border-top:1px solid var(--hair);padding-top:4px}
 .sup-row{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:7px 0;
   border-bottom:1px solid color-mix(in srgb,var(--hair) 55%,transparent)}
 .sup-row:last-child{border-bottom:0}
 .sup-who{min-width:0}
 .sup-who b{display:inline;font-size:12.5px;font-weight:700;word-break:break-word}
 .sup-who em{display:block;margin-top:2px;font-style:normal;font-size:10.5px;color:var(--faint);font-family:var(--mono)}
 .sup-tag{display:inline-block;margin-left:5px;padding:1px 6px;border-radius:6px;
   font:700 10px var(--mono);vertical-align:1px}
 .sup-tag.b{background:var(--good-bg);color:var(--good)}
 .sup-tag.s{background:var(--danger-bg);color:var(--danger)}
 .sup-row i{font-style:normal;font:800 12.5px var(--mono);white-space:nowrap}
 .sup-row i.up{color:var(--good)}.sup-row i.dn{color:var(--danger)}
 .sup-rows-h{margin-top:11px;font-size:11px;color:var(--muted)}
 .sup-rows-h em{font-style:normal;color:var(--faint);font-family:var(--mono);font-size:10.5px}
 .sup-rows-h+.sup-rows{margin-top:5px}
 .sup-none{margin:9px 0 2px;font-size:12px;color:var(--faint)}
 .sup-note{margin:9px 0 0;font-size:10.5px;line-height:1.6;color:var(--faint)}
 .fcd-bars{position:relative;height:126px;margin:22px 0 4px;display:grid;gap:8px;
   border-bottom:1px solid var(--hair)}
 .fcd-bars.fcd-pair{margin-top:38px}
 .fcd-zero{position:absolute;z-index:0;left:0;right:0;height:0;border-top:1px dashed var(--hair)}
 .fcd-g{min-width:0;position:relative;display:grid;grid-template-rows:1fr 17px}
 .fcd-g>b{align-self:end;text-align:center;color:var(--faint);font:700 11px var(--mono)}
 .fcd-cl{min-width:0;position:relative;display:flex;justify-content:center;gap:5px}
 .fcd-s{width:min(34px,40%);height:100%;position:relative}
 .fcd-bars.fcd-pair .fcd-s{width:min(28px,32%)}
 .fcd-s>i{position:absolute;z-index:1;left:0;right:0;min-height:3px;border-radius:5px 5px 2px 2px}
 .fcd-s>i.fcd-neg{border-radius:2px 2px 5px 5px;opacity:.75}
 /* 숫자는 막대 바로 위. 카드 배경색을 깔아 막대·0선과 겹쳐도 읽힌다. */
 .fcd-v{position:absolute;z-index:2;left:50%;padding:1px 3px;border-radius:3px;background:var(--raised);
   color:var(--text);font:800 11px var(--mono);white-space:nowrap;transform:translate(-50%,-50%)}
 .fcd-stack{position:absolute;z-index:2;left:0;right:0;display:grid;gap:1px;justify-items:center;
   transform:translateY(-100%);pointer-events:none}
 .fcd-stack em{padding:0 2px;border-radius:3px;background:var(--raised);
   font:800 10.5px var(--mono);font-style:normal;white-space:nowrap}
 .fcd-na span{position:absolute;left:50%;top:45%;color:var(--faint);font-size:11px;transform:translate(-50%,-50%)}
 .fcd-lg{display:flex;flex-wrap:wrap;gap:4px 13px;margin-top:7px;font-size:11px;color:var(--muted)}
 /* 범례 한 칸은 통째로 줄바꿈된다. nowrap 이 없으면 "영업이익률 4.8% +20.3%p" 가
    중간에서 끊겨 옆 항목 위로 올라탄다 (2026-09-05 요약수치를 붙이면서 겪음). */
 .fcd-lg span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
 /* ⚠️ 색 네모는 범례 칸의 **직속 자식** <i> 만이다. 그냥 `.fcd-lg i` 로 두면
    요약수치 안의 증감 <i>(+20.9%p)까지 8x8 네모가 돼 글자가 뭉개지고 옆 항목
    위로 넘친다 — 2026-09-05 에 실제로 그랬고, 요소 상자만 재는 겹침 검사로는
    안 잡혔다(칸 전체는 안 겹치고 안쪽 글자만 넘쳤다). */
 .fcd-lg>span>i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}
 /* 같은 업종 종목 카드 */
 .pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,138px));gap:8px}
 .pcard{border:1px solid var(--hair);border-radius:12px;background:var(--surface);
   padding:11px 12px;text-decoration:none;color:inherit;display:block}
 .pcard.pc-me{border-color:var(--gold);background:var(--raised)}
 .pc-n{display:block;font-size:13px;font-weight:700;overflow:hidden;
   text-overflow:ellipsis;white-space:nowrap}
 .pc-t{display:block;font-family:var(--mono);font-size:10.5px;color:var(--faint);margin-top:1px}
 .pc-px{display:block;font-size:14px;font-weight:800;margin-top:7px;min-height:1.2em}
 .pc-r{display:block;font-size:11.5px;font-weight:700;margin-top:2px}
 .pc-r em{font-style:normal;font-size:9.5px;color:var(--faint);margin-left:3px}
 .pc-r.up{color:var(--good)} .pc-r.dn{color:var(--danger)}
 .pc-cr{color:var(--gold)}
 .pc-h{margin:14px 0 8px;font-size:12.5px;font-weight:800}
 .pc-h:first-child{margin-top:0}
 /* 매매 시나리오 — 목표(초록)/손절(빨강) 구역 + 큰 가격, 한눈에 */
 .lv2{border:1px solid var(--hair);border-radius:16px;padding:14px 15px;background:var(--surface)}
 .lv2-head{font-size:13.5px;color:var(--muted);margin-bottom:12px}
 .lv2-head em{font-style:normal;font-family:var(--mono);font-size:12.5px;color:var(--faint)}
 .lv2-zone{border-radius:12px;padding:9px 12px}
 .lv2-zone.t{background:var(--good-bg);border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--good) 30%,transparent)}
 .lv2-zone.s{background:var(--danger-bg);border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--danger) 28%,transparent)}
 .lv2-zone.b{background:var(--hold-bg);border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--hold) 30%,transparent)}
 .lv2-zt{font-size:12.5px;font-weight:800;letter-spacing:.02em;margin-bottom:5px}
 .lv2-zone.t .lv2-zt{color:var(--good)} .lv2-zone.s .lv2-zt{color:var(--danger)}
 .lv2-zone.b .lv2-zt{color:var(--hold)} .lv2-zone.b .lv2-c.dn{color:var(--hold)}
 .lv2-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:baseline;gap:10px;padding:5px 0}
 .lv2-row + .lv2-row{border-top:1px solid var(--hair);border-top:1px solid color-mix(in srgb,var(--hair) 45%,transparent)}
 .lv2-k{font-size:12.5px;color:var(--muted);font-weight:700}
 .lv2-p{font-size:20px;font-weight:800;letter-spacing:-.02em}
 .lv2-c{font-size:14.5px;font-weight:700}.lv2-c.up{color:var(--good)}.lv2-c.dn{color:var(--danger)}
 .lv2-f{font-family:var(--mono);font-size:12px;color:var(--faint);white-space:nowrap}
 .lv2-now{display:flex;align-items:center;justify-content:space-between;margin:8px 2px;padding:2px 0}
 .lv2-now span{font-size:13px;color:var(--muted);font-weight:700}
 .lv2-now b{font-family:var(--mono);font-size:24.5px;font-weight:800;letter-spacing:-.02em}
 .lvfoot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}
 .lvst{border:1px solid var(--hair);border-radius:11px;padding:9px 10px;text-align:center;background:var(--raised)}
 .lvst span{display:block;font-size:12px;color:var(--muted)}.lvst b{font-size:15.5px}
 .lvnote{margin:12px 0 0;font-size:13px;line-height:1.65;color:var(--muted)}
 .lvnote b{color:var(--text)}
 /* 증권사 vs 폴라리스 */
 .vs2{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch}
 .vsc{border:1px solid var(--hair);border-radius:14px;padding:13px 14px;background:var(--surface)}
 .vsc .vh{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
 .vsc .vv{font-size:23.5px;font-weight:800;margin-top:5px;letter-spacing:-.01em}
 .vsc.pol{border-color:var(--hair);border-color:color-mix(in srgb,var(--accent) 45%,var(--hair));background:var(--surface);background:radial-gradient(100% 100% at 100% 0,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--surface)}
 .vsc.pol .vh{color:var(--accent)}
 .vscore{margin-top:6px;font-size:13.5px;color:var(--muted)}
 .vsgap{display:flex;align-items:center;justify-content:center;text-align:center;
   font-size:13px;font-weight:700;line-height:1.35;padding:0 12px;border-radius:12px;min-width:96px}
 .vsgap.same{color:var(--muted);background:var(--raised);background:color-mix(in srgb,var(--muted) 10%,transparent)}
 .vsgap.near{color:var(--muted);background:var(--raised);background:color-mix(in srgb,var(--muted) 12%,transparent)}
 .vsgap.diff{color:var(--warn,#d68a1f);background:var(--caution-bg);background:color-mix(in srgb,var(--warn,#d68a1f) 14%,transparent)}
 .vsgap.clash{color:var(--danger);background:var(--danger-bg);background:color-mix(in srgb,var(--danger) 15%,transparent)}
 .stbar{display:flex;height:7px;border-radius:99px;overflow:hidden;margin-top:10px;background:var(--hair)}
 .stbar .sb.b{background:var(--good)}.stbar .sb.h{background:var(--muted)}.stbar .sb.s{background:var(--danger)}
 .stleg{display:flex;gap:11px;margin-top:7px;font-size:13px;color:var(--muted);flex-wrap:wrap}
 .stleg .d{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px}
 .stleg .d.b{background:var(--good)}.stleg .d.h{background:var(--muted)}.stleg .d.s{background:var(--danger)}
 .tgt{margin-top:11px;border:1px solid var(--hair);border-radius:14px;padding:13px 14px;background:var(--surface)}
 .tgt .tn{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
 .tgt .tv{font-family:var(--mono);font-size:27px;font-weight:800;margin-top:4px}
 .trange{margin-top:6px;font-size:13.5px;color:var(--muted)}.trange em{font-style:normal;font-family:var(--mono);color:var(--text)}
 .rectbl{margin-top:11px;border:1px solid var(--hair);border-radius:14px;padding:13px 14px;background:var(--surface);overflow-x:auto}
 .rectbl .tn{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
 .rectbl table{width:100%;border-collapse:collapse;font-size:14px;min-width:340px}
 .rectbl td{padding:6px 4px;border-top:1px solid var(--hair);white-space:nowrap}
 .rectbl tr:first-child td{border-top:0}
 .rectbl .act{text-align:right;font-weight:700}
 .rectbl .act.up{color:var(--good)}.rectbl .act.dn{color:var(--danger)}.rectbl .act.kp{color:var(--muted)}
 .reality{margin-top:11px;border:1px solid var(--hair);border:1px solid color-mix(in srgb,var(--accent) 34%,var(--hair));border-radius:14px;
   padding:14px 15px;background:var(--surface);background:radial-gradient(100% 100% at 0 0,color-mix(in srgb,var(--accent) 10%,transparent),transparent 72%),var(--surface)}
 .reality .rh{font-size:16px;font-weight:800;margin-bottom:6px}
 .reality p{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0}
 .reality .rbig{font-family:var(--mono);font-size:21.5px;font-weight:800;margin:9px 0 6px}
 .reality .rsub{font-size:14px}
 @media(max-width:560px){.vs2{grid-template-columns:minmax(0,1fr)}.vsgap{min-height:34px}}
 .versus{display:flex;flex-direction:column;gap:11px}.card{border:1px solid var(--hair);border-radius:14px;padding:14px 15px;background:var(--surface)}
 .card.lie{background:radial-gradient(100% 100% at 0 0,var(--danger-gl),transparent 70%),var(--surface);border-color:var(--hair);border-color:color-mix(in srgb,var(--danger) 40%,var(--hair))}
 .card.truth{background:radial-gradient(100% 100% at 0 0,var(--good-gl),transparent 70%),var(--surface);border-color:var(--hair);border-color:color-mix(in srgb,var(--good) 38%,var(--hair))}
 .card .tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.card.lie .tag{color:var(--danger)}.card.truth .tag{color:var(--good)}
 .card h3{margin:7px 0 5px;font-size:17.5px;font-weight:700;line-height:1.4}.card .big{font-family:var(--mono);font-size:22.5px;font-weight:800;color:var(--good)}
 .card .meta{margin-top:7px;color:var(--muted);font-size:14px;line-height:1.55}.card .meta em{color:var(--text);font-style:normal;font-family:var(--mono)}
 .checks{display:flex;flex-direction:column;gap:9px}.chk{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--hair);border-radius:12px;background:var(--surface)}
 .chk .ic{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:13.5px;font-weight:800}.chk .t{font-size:14.5px;font-weight:600}.chk .t small{display:block;color:var(--muted);font-weight:400;font-size:12.5px;margin-top:2px;font-family:var(--mono)}
 .pill{font-family:var(--mono);font-size:12px;font-weight:700;padding:5px 10px;border-radius:20px;white-space:nowrap}
 .p-bad{background:var(--danger-bg);color:var(--danger)}.p-good{background:var(--good-bg);color:var(--good)}.ic-bad{background:var(--danger-bg);color:var(--danger)}.ic-good{background:var(--good-bg);color:var(--good)}
 .market{background:var(--raised);border-radius:16px;padding:18px;border:1px solid var(--hair)}.market .big{font-family:var(--mono);font-size:33.5px;font-weight:800;color:var(--gold);line-height:1}
 .market .cap{color:var(--muted);font-size:14px;margin-top:8px;line-height:1.55}.meter{height:9px;border-radius:6px;overflow:hidden;margin:13px 0 7px;display:flex}.meter i{display:block;height:100%}.meter .lose{background:var(--faint)}.meter .win{background:var(--gold)}
 .mrow{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--muted)}
 footer{padding:18px;text-align:center;color:var(--faint);font-size:12.5px;line-height:1.7}footer .num{color:var(--muted)}
 .chartlink{display:block;margin-top:12px;text-decoration:none;position:relative}
 .chartlink .hint{position:absolute;right:8px;top:8px;font-family:var(--mono);font-size:10.5px;color:var(--muted);background:var(--surface);background:color-mix(in srgb,var(--surface) 80%,transparent);padding:3px 8px;border-radius:20px;border:1px solid var(--hair)}
 .candles{width:100%;height:120px;display:block}
 .kname{color:var(--muted);font-size:13.5px;margin-left:2px}
 .mcap{margin-top:6px;font-size:13.5px;color:var(--muted)}.mcap b{color:var(--text);font-weight:700}
 .fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px}
 .fc{border:1px solid var(--hair);border-radius:12px;padding:11px 10px;background:var(--surface);text-align:center}
 .fc .fn{font-size:12px;color:var(--muted)}
 .fc .fv{font-family:var(--mono);font-size:14.5px;font-weight:800;margin-top:5px;letter-spacing:-.02em}
 .fdesc{margin:11px 0 0;font-size:14px;line-height:1.65;color:var(--muted)}
 /* ── PC(≥1000px)만 좌우를 넓힌다. 모바일은 위 규칙(414px 카드) 그대로. ── */
 @media(min-width:1000px){
   /* CODEX 2026-08-11: 태블릿·데스크톱에서 720px로 다시 좁아지던 역전 규칙을 제거한다. */
   .phone{max-width:1120px}
   .candles{height:auto;max-height:300px}   /* 넓어진 폭에 맞춰 미리보기 차트도 채운다 */
   .igrid{grid-template-columns:repeat(6,minmax(0,1fr))}   /* 지표 3열 → 6열 */
 }
 /* ── 접히는 섹션 ── */
 .acc{padding:0}
 .acc details{margin:0}
 .acc summary{display:flex;align-items:center;gap:12px;padding:17px 18px;cursor:pointer;
   list-style:none;-webkit-tap-highlight-color:transparent}
 .acc summary::-webkit-details-marker{display:none}
 .acc summary::marker{content:""}
 .acc summary:hover{background:var(--raised)}
 .acc-t{flex:1;min-width:0;font-size:15.5px;font-weight:700;letter-spacing:-.01em;color:var(--text)}
 .acc-i{flex:none;width:9px;height:9px;border-right:2px solid var(--faint);
   border-bottom:2px solid var(--faint);transform:rotate(45deg) translate(-2px,-2px);
   transition:transform .18s}
 .acc details[open] .acc-i{transform:rotate(-135deg) translate(-2px,-2px)}
 .acc details[open] summary{background:var(--raised)}
 .acc-body{padding:4px 18px 20px}
 .acc-body>section{padding:0;border-top:0}
 @media(prefers-reduced-motion:reduce){.acc-i{transition:none}}
 /* 펼친 섹션끼리 경계가 두 번 겹치지 않게 */
 .acc + .acc{border-top:1px solid var(--hair)}
 /* ── CODEX 2026-08-09: 종목 상세 5개 메뉴 ── */
 .tabwrap{border-top:1px solid var(--hair)}
 .tabhead{position:sticky;top:0;z-index:20;background:var(--surface);background:color-mix(in srgb,var(--surface) 93%,transparent);backdrop-filter:blur(12px);
   border-bottom:1px solid var(--hair)}
 .tbbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:11px 14px}
 .tbbar::-webkit-scrollbar{display:none}
 .tb{min-width:0;padding:9px 4px;border:1px solid var(--hair);border-radius:10px;
   background:var(--surface);color:var(--muted);font-family:inherit;font-size:16px;
   font-weight:700;letter-spacing:-.02em;white-space:nowrap;cursor:pointer;transition:.15s;
   -webkit-tap-highlight-color:transparent}
 .tb:hover{border-color:var(--gold);color:var(--gold)}
 .tb[aria-selected="true"]{background:var(--text);border-color:var(--text);color:var(--surface)}
 /* CODEX 2026-08-11: 차트 드래그가 부모 메뉴 캐러셀까지 움직이지 않도록
    패널 스와이프를 없애고 탭 버튼으로만 화면을 전환한다. */
 .panes{display:block;overflow:hidden}
 .pane{display:none;width:100%;min-width:0}
 .pane.is-active{display:block}
 .pane>section:first-child{border-top:0}
 @media(min-width:820px){
   .pane.is-active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px;
     background:var(--ground)}
   .pane>.menu-card{padding:20px;border:1px solid var(--hair);border-radius:16px;background:var(--surface)}
   .pane>.menu-card.wide{grid-column:1/-1}
   .pane[data-pane="차트"].is-active{display:block;padding:14px}
   .pane[data-pane="차트"]>.menu-card{padding:20px;border:1px solid var(--hair);border-radius:16px}
 }
 @media(max-width:560px){.tb{font-size:14px;padding:8px 2px}.tbbar{gap:4px;padding:9px 8px}}
 @media(prefers-reduced-motion:reduce){.panes{transition:none}}