  :root { --ink:#1a2028; --sub:#606a76; --line:#e5e8ec; --bg:#f4f6f8; --card:#fff;
          --navy:#122a4c; --accent:#1b5cb8; --up:#d63a2f; --down:#2456c4; }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { background:var(--bg); color:var(--ink); font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif; font-size:16px; line-height:1.6; }
  /* 데스크톱: 창을 좁혀도 레이아웃 고정 (가로 스크롤). 폰 폭에서는 아래 모바일 블록이 대신 적용 */
  @media (min-width: 768px) { body { min-width:1200px; } }
  a { text-decoration:none; color:inherit; }
  .badge { position:fixed; bottom:14px; right:14px; font-size:12px; background:#fff3d6; border:1px solid #e0c98e; color:#7a5a10; padding:4px 10px; z-index:9; }

  .gnb { background:var(--navy); color:#fff; }
  .gnb .in { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; align-items:center; height:60px; gap:24px; }
  .logo { font-size:20px; font-weight:900; letter-spacing:-0.5px; white-space:nowrap; }
  .logo small { font-weight:400; font-size:11.5px; opacity:.65; margin-left:8px; }
  .gnb nav { display:flex; gap:18px; font-size:15px; }
  .gnb nav a { color:#cbd6e6; padding:19px 0; white-space:nowrap; }
  .gnb nav a.on { color:#fff; font-weight:700; box-shadow: inset 0 -3px 0 #fff; }
  .gnb nav a .soon { font-size:10px; color:#ffc46b; margin-left:3px; vertical-align:6px; }
  .auth { margin-left:auto; display:flex; gap:10px; align-items:center; }
  .auth .free-note { font-size:13.5px; color:#cbd6e6; white-space:nowrap; }
  /* 메뉴 8개 + 버튼이 1200px 예산을 넘지 않게: 좁은 창에선 안내 문구 생략 (768 미만은 모바일 블록이 담당) */
  @media (min-width:768px) and (max-width:1360px) { .auth .free-note { display:none; } }

  .ticker { background:#fff; border-bottom:1px solid var(--line); }
  .ticker .in { max-width:1200px; margin:0 auto; padding:9px 24px; display:flex; gap:26px; font-size:13.5px; color:var(--sub); }
  .ticker b { color:var(--ink); font-weight:700; margin-right:6px; }
  .ticker .u { color:var(--up); } .ticker .d { color:var(--down); }
  .ticker .right { margin-left:auto; }

  .wrap { max-width:1200px; margin:0 auto; padding:26px 24px 60px; }

  .hero { display:flex; align-items:center; gap:30px; background:var(--card); border:1px solid var(--line); padding:26px 30px; }
  .hero h2 { font-size:24px; font-weight:900; line-height:1.45; letter-spacing:-0.3px; }
  .hero h2 span.hi { color:var(--up); } .hero h2 span.lo { color:var(--down); }
  .hero p { font-size:15px; color:var(--sub); margin-top:6px; }
  .sub-note { margin-left:auto; flex-shrink:0; font-size:14px; color:var(--sub); text-align:right; line-height:1.7; border-left:3px solid var(--accent); padding-left:16px; }
  .sub-note b { color:var(--ink); }

  .cols { display:grid; grid-template-columns: minmax(0,1fr) 350px; gap:26px; margin-top:26px; }

  .panel { background:var(--card); border:1px solid var(--line); }
  .panel-head { display:flex; align-items:center; padding:0 20px; border-bottom:1px solid var(--line); }
  .panel-head h3 { font-size:17px; font-weight:900; padding:15px 0; margin-right:22px; }
  .tabs { display:flex; gap:16px; font-size:14.5px; }
  .tabs a { color:var(--sub); padding:17px 2px; }
  .tabs a.on { color:var(--ink); font-weight:700; box-shadow: inset 0 -3px 0 var(--ink); }
  .panel-head .upd { margin-left:auto; font-size:12.5px; color:var(--sub); }

  table { width:100%; border-collapse:collapse; font-size:14.5px; }
  th { text-align:right; font-weight:500; color:var(--sub); font-size:12.5px; padding:10px 14px; border-bottom:1px solid var(--line); background:#fafbfc; }
  th:first-child, td:first-child { text-align:left; padding-left:20px; }
  td { text-align:right; padding:11px 14px; border-bottom:1px solid #f0f2f5; }
  td .nm { font-weight:700; font-size:15px; }
  td .tk { color:var(--sub); font-size:12.5px; margin-left:6px; }
  .u { color:var(--up); } .d { color:var(--down); }
  td .memo { display:inline-block; font-size:12px; font-weight:700; color:var(--accent); border:1px solid #bcd2ef; padding:1px 7px; margin-left:8px; vertical-align:1px; }
  td .kind-hi { color:var(--up); font-weight:700; font-size:13px; }
  td .kind-lo { color:var(--down); font-weight:700; font-size:13px; }
  tr.has:hover { background:#f6f9fd; cursor:pointer; }
  .more { display:block; text-align:center; font-size:13.5px; color:var(--sub); padding:12px; }

  .rail .panel { margin-bottom:22px; }
  .rail .panel-head h3 { margin-right:0; }
  .feat { padding:16px 20px; border-bottom:1px solid #f0f2f5; display:block; }
  .feat:last-of-type { border-bottom:none; }
  .feat .k { font-size:12px; font-weight:700; }
  .feat .k.lo { color:var(--down); } .feat .k.hi { color:var(--up); }
  .feat h4 { font-size:15.5px; font-weight:700; margin:3px 0 4px; line-height:1.5; }
  .feat p { font-size:13.5px; color:var(--sub); line-height:1.55; }
  .principle { padding:18px 20px; }
  .principle .by { font-size:12.5px; color:var(--sub); margin-bottom:6px; }
  .principle p { font-size:15px; line-height:1.7; }
  .principle .more2 { font-size:13px; color:var(--accent); font-weight:700; margin-top:8px; display:inline-block; }
  .soonbox { padding:16px 20px; font-size:13.5px; color:var(--sub); line-height:1.7; }
  .soonbox b { color:var(--ink); }

  footer { border-top:1px solid var(--line); background:#fff; margin-top:10px; }
  footer .in { max-width:1200px; margin:0 auto; padding:20px 24px 34px; font-size:13px; color:var(--sub); line-height:1.7; }

  /* 모바일 (768px 미만): 1열 재배치 */
  @media (max-width: 767px) {
    .gnb .in { height:auto; flex-wrap:wrap; padding:10px 16px; gap:8px 16px; }
    .gnb nav { order:3; width:100%; overflow-x:auto; gap:18px; padding-bottom:2px; -webkit-overflow-scrolling:touch; }
    .gnb nav a { padding:6px 0; white-space:nowrap; }
    .gnb nav a.on { box-shadow: inset 0 -2px 0 #fff; }
    .auth .free-note { font-size:12px; }
    .ticker .in { padding:8px 16px; gap:16px; overflow-x:auto; }
    .ticker .in span { white-space:nowrap; }
    .ticker .right { margin-left:0; }
    .wrap { padding:16px 16px 40px; }
    .hero { flex-direction:column; align-items:stretch; gap:16px; padding:20px 18px; }
    .hero h2 { font-size:19px; }
    .hero h2 br { display:none; }
    .sub-note { margin-left:0; text-align:left; }
    .cols { grid-template-columns:1fr; gap:18px; margin-top:18px; }
    .panel-head { padding:0 14px; }
    .panel-head h3 { font-size:15.5px; padding:12px 0; margin-right:14px; }
    .tabs { gap:12px; font-size:13.5px; overflow-x:auto; }
    .tabs a { padding:13px 2px; white-space:nowrap; }
    .panel-head .upd { display:none; }
    .tbl-scroll { overflow-x:auto; }
    table { font-size:13px; }
    th, td { padding:8px 8px; }
    th:first-child, td:first-child { padding-left:14px; }
    th:nth-child(5), td:nth-child(5), th:nth-child(6), td:nth-child(6) { display:none; }
    td .nm { font-size:13.5px; }
    td .tk { font-size:11px; margin-left:4px; }
    td .memo { font-size:10.5px; padding:0 5px; margin-left:5px; }
    .badge { font-size:10.5px; bottom:8px; right:8px; }
  }

  /* 연속 경신 배지 + 분류 필터 (2026-08-30, 닥터정 요청) */
  td .stk { display:inline-block; font-size:12px; font-weight:700; color:#8a5a00; background:#fff3d6; border:1px solid #e0c98e; padding:1px 7px; margin-left:8px; vertical-align:1px; }
  td .stk.s6 { color:#fff; background:#c77800; border-color:#c77800; }
  td .stk.fw { color:#1d4f91; background:#e9f1fc; border-color:#c6daf3; }
  .filterbar { display:flex; gap:8px; padding:10px 20px; border-bottom:1px solid var(--line); font-size:13px; align-items:center; }
  .filterbar .fl { color:var(--sub); margin-right:2px; white-space:nowrap; }
  .filterbar button { border:1px solid #c8ced6; background:#fff; color:var(--sub); font-size:13px; padding:4px 12px; cursor:pointer; font-family:inherit; white-space:nowrap; }
  .filterbar button.on { background:var(--navy); border-color:var(--navy); color:#fff; font-weight:700; }
  tr.hidden { display:none; }
  @media (max-width: 767px) {
    .filterbar { padding:8px 14px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
    td .stk { font-size:10.5px; padding:0 5px; margin-left:5px; }
  }

  /* 닥터정 코너 (2026-08-30 골격) */
  .drgrid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:20px; }
  .drcard { background:#fff; border:1px solid var(--line); padding:22px 24px; }
  .drcard h4 { font-size:16.5px; font-weight:900; margin-bottom:6px; }
  .drcard p { font-size:14px; color:var(--sub); line-height:1.65; }
  .drcard .soon2 { display:inline-block; font-size:11.5px; font-weight:700; color:#7a5a10; background:#fff3d6; border:1px solid #e0c98e; padding:1px 8px; margin-left:8px; vertical-align:2px; }
  .drintro { background:var(--card); border:1px solid var(--line); padding:26px 30px; }
  .drintro h2 { font-size:22px; font-weight:900; letter-spacing:-0.3px; }
  .drintro p { font-size:15px; color:var(--sub); margin-top:8px; }
  @media (max-width: 767px) { .drgrid { grid-template-columns:1fr; gap:12px; } .drintro { padding:20px 18px; } }

  /* 용어 사전 + 투자 이야기 골격 (2026-08-30) */
  .glsec { margin-top:18px; padding:20px 24px 8px; }
  .glsec h3 { font-size:15px; font-weight:900; color:var(--navy); margin-bottom:6px; }
  .glrow { display:grid; grid-template-columns:150px 1fr; gap:14px; padding:11px 0;
           border-bottom:1px solid #f0f2f5; font-size:14.5px; line-height:1.7; }
  .glrow:last-child { border-bottom:none; }
  .glrow b { font-weight:700; }
  .glrow span { color:var(--sub); }
  .storyguide { margin-top:18px; }
  .storyguide .cta { margin-top:18px; }
  @media (max-width: 767px) {
    .glsec { padding:16px 16px 6px; }
    .glrow { grid-template-columns:1fr; gap:2px; padding:10px 0; }
  }

  /* 리스트 표: 셀 줄바꿈 방지 + 긴 종목명 말줄임 + 넘침은 표 안 스크롤 (2026-08-29) */
  .tbl-scroll { overflow-x:auto; }
  td, th { white-space:nowrap; }
  td:first-child { max-width:300px; }
  /* 말줄임은 종목명에만: 셀 전체에 걸면 해설과 연속 배지가 잘림 (프리 검수 지적) */
  td:first-child .nm { display:inline-block; max-width:170px; overflow:hidden;
                       text-overflow:ellipsis; vertical-align:bottom; }
  tr.xd td { background:#fafbfd; padding:2px 24px 18px; white-space:normal;
             border-bottom:1px solid var(--line); }
  .xdi { display:flex; align-items:center; gap:8px 22px; font-size:12.5px; color:var(--sub);
         padding:12px 0 2px; flex-wrap:wrap; max-width:820px; }
  .xdi .spark { width:96px; height:28px; flex-shrink:0; margin-right:2px; }
  .xdi b { color:var(--ink); }
  .xdi .go { color:var(--accent); font-weight:700; }

  /* 신뢰도 라벨 (해설 페이지와 공용): 진한 단색 스탬프 + 흰 글자, 파스텔 알약 금지 (2026-08-30 Will) */
  .chip, .fl { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
               height:19px; padding:0 7px 1px; font-weight:700; font-size:11.5px; color:#fff;
               border-radius:2px; margin-right:6px; vertical-align:middle; }
  .fl:empty { background:none; padding:0; }
  .c-ok  { background:#0e6b41; }
  .c-est { background:#8a5a00; }
  .c-unk { background:#5b6472; }
  .c-warn { background:#b3402e; }

  /* 확장 행의 자동 해설 블록 */
  .xab { margin-top:12px; padding:14px 18px 12px; background:#fff; border:1px solid var(--line);
         max-width:820px; }
  .abhead { display:flex; align-items:center; gap:9px; margin-bottom:9px; }
  .ablabel { font-size:11.5px; font-weight:700; color:#5b6472; flex-shrink:0; }
  .abnote { font-size:11.5px; color:var(--sub); }
  .xab .xintro { font-size:13.5px; color:var(--sub); margin-bottom:8px; line-height:1.6;
                 padding-bottom:8px; border-bottom:1px solid #f0f2f5; }
  .xab ul { list-style:none; padding:0; margin:0; }
  .xab li { display:grid; grid-template-columns:42px 1fr; gap:8px; font-size:13.5px;
            line-height:1.7; padding:5px 0; }
  .xab li .fl { align-self:start; margin-top:1px; }
  .absrc { color:var(--accent); font-size:12px; margin-left:6px; white-space:nowrap; }
  .xab .xwatch { margin-top:10px; padding-top:8px; font-size:13px; line-height:1.6;
                 border-top:2px solid var(--navy); }
  .xab .xwatch b { color:var(--navy); font-size:11.5px; display:block; margin-bottom:2px; }
  @media (max-width: 767px) { tr.xd td { padding:2px 14px 14px; } .xab { padding:12px 14px 10px; } }
  .listpage td, .listpage th { padding:10px 10px; font-size:13.5px; }
  .listpage td:first-child { max-width:250px; padding-left:16px; }
  .listpage td .nm { font-size:14px; }
  @media (max-width: 767px) { td:first-child { max-width:190px; } }

  /* 회원, 구독 (2026-08-30) */
  /* display를 지정한 요소는 hidden 속성이 무력화되므로 (author 규칙 > UA 규칙) 전역 보정 */
  [hidden] { display:none !important; }
  .auth .abtn { font-size:13px; font-weight:700; color:#fff; border:1px solid rgba(255,255,255,.45);
                padding:6px 13px; white-space:nowrap; }
  .auth .abtn:hover { background:rgba(255,255,255,.1); }
  .auth .abtn.me { border-color:transparent; color:#cbd6e6; font-weight:500; max-width:200px;
                   overflow:hidden; text-overflow:ellipsis; }
  .subform b { font-size:15px; color:var(--ink); display:block; margin-bottom:8px; }
  .subrow { display:flex; gap:8px; }
  .subrow input { flex:1; min-width:0; border:1px solid #c8ced6; padding:9px 12px; font-size:14px;
                  font-family:inherit; }
  .subrow input:focus { outline:2px solid var(--accent); outline-offset:-1px; border-color:var(--accent); }
  .subrow button { border:none; background:var(--accent); color:#fff; font-weight:700; font-size:14px;
                   padding:9px 18px; cursor:pointer; font-family:inherit; white-space:nowrap; }
  .subrow button:disabled { opacity:.6; cursor:default; }
  .subhint { display:block; font-size:12px; color:var(--sub); margin-top:8px; line-height:1.6; }
  .subhint a { color:var(--accent); }
  .submsg { display:block; font-size:13px; font-weight:700; color:#116b41; margin-top:8px; }
  .submsg.err { color:var(--up); }
  .sub-note.subbox { min-width:340px; text-align:left; }

  .wrap-narrow { max-width:720px; }
  .acct-body { padding:30px 32px; }
  .acct-body h2 { font-size:21px; font-weight:900; margin-bottom:8px; }
  .acct-sub { font-size:14.5px; color:var(--sub); line-height:1.7; margin-bottom:16px; }
  .mailform { display:flex; gap:8px; margin-bottom:14px; }
  .mailform input { flex:1; min-width:0; border:1px solid #c8ced6; padding:10px 12px; font-size:15px;
                    font-family:inherit; }
  .mailform input:focus { outline:2px solid var(--accent); outline-offset:-1px; border-color:var(--accent); }
  .mailform button { border:none; background:var(--accent); color:#fff; font-weight:700; font-size:14.5px;
                     padding:10px 18px; cursor:pointer; font-family:inherit; white-space:nowrap; }
  .mailform button:disabled { opacity:.6; cursor:default; }
  .acct-note { font-size:12.5px; color:var(--sub); line-height:1.7; margin-top:14px; }
  .acct-note a { color:var(--accent); }
  .acct-msg { font-size:13.5px; font-weight:700; color:#116b41; margin-top:12px; }
  .acct-msg.err { color:var(--up); }
  .acct-row { display:flex; gap:14px; font-size:15px; padding:9px 0; border-bottom:1px solid #f0f2f5; }
  .acct-row .k { color:var(--sub); width:110px; flex-shrink:0; font-size:13.5px; padding-top:1px; }
  .acct-actions { display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
  .acct-actions button, .abtn2 { border:none; background:var(--accent); color:#fff; font-weight:700;
                                 font-size:14px; padding:9px 16px; cursor:pointer; font-family:inherit;
                                 display:inline-block; }
  .acct-actions .ghost, .abtn2.ghost { background:#fff; color:var(--ink); border:1px solid #c8ced6; }
  .legal { padding:30px 34px; }
  .legal h1 { font-size:22px; font-weight:900; margin-bottom:14px; }
  .legal h3 { font-size:15.5px; font-weight:700; margin:22px 0 8px; }
  .legal p, .legal li { font-size:14px; color:var(--ink); line-height:1.8; }
  .legal ul { padding-left:20px; }
  .legal table { margin:10px 0; }
  .legal td, .legal th { white-space:normal; text-align:left; font-size:13px; }
  footer .in a { color:var(--accent); }
  @media (max-width: 767px) {
    .auth .abtn { font-size:12px; padding:4px 10px; }
    .auth .abtn.me { max-width:140px; }
    .sub-note.subbox { min-width:0; }
    .acct-body { padding:22px 18px; }
    .legal { padding:22px 18px; }
  }

  /* 회원 2단계: 가입, 로그인, 재설정 폼 (2026-08-30) */
  .socials { display:flex; flex-direction:column; gap:8px; margin-bottom:4px; }
  .sbtn { display:flex; align-items:center; justify-content:center; gap:9px; width:100%;
          font-size:14.5px; font-weight:700; padding:11px 14px; cursor:pointer; font-family:inherit;
          border:1px solid #c8ced6; background:#fff; color:var(--ink); }
  .sbtn.kakao { background:#FEE500; border-color:#FEE500; color:#191919; }
  .sbtn svg { flex-shrink:0; }
  .snote { margin-top:6px; }
  .divider { display:flex; align-items:center; gap:12px; margin:16px 0 14px;
             font-size:12.5px; color:var(--sub); }
  .divider::before, .divider::after { content:""; flex:1; height:1px; background:var(--line); }
  .stack { display:flex; flex-direction:column; gap:12px; }
  .field { display:flex; flex-direction:column; gap:5px; font-size:13px; color:var(--sub); font-weight:700; }
  .field input { border:1px solid #c8ced6; padding:10px 12px; font-size:15px; font-family:inherit;
                 font-weight:400; color:var(--ink); }
  .field input:focus { outline:2px solid var(--accent); outline-offset:-1px; border-color:var(--accent); }
  .agree { display:flex; gap:8px; align-items:flex-start; font-size:13px; color:var(--sub);
           font-weight:400; line-height:1.6; cursor:pointer; }
  .agree input { margin-top:3px; flex-shrink:0; }
  .agree a { color:var(--accent); text-decoration:underline; }
  button.primary { border:none; background:var(--accent); color:#fff; font-weight:700; font-size:15px;
                   padding:11px 18px; cursor:pointer; font-family:inherit; }
  button.primary:disabled { opacity:.6; cursor:default; }
  .authlinks { line-height:2; }
  .authlinks a { color:var(--accent); }
  .linklike { border:none; background:none; color:var(--accent); font-weight:700; font-size:13px;
              cursor:pointer; font-family:inherit; padding:0; text-decoration:underline; }
  .nmail { margin-top:14px; }
  #captcha { min-height:0; }
  #captcha:not(:empty) { margin:2px 0; }
  .sbtn:disabled { opacity:.55; cursor:default; }
