:root{
  --bg:#0b0e14; --panel:#121722; --panel2:#0f141d; --line:#222b3a;
  --tx:#e6edf3; --mut:#8b96a8; --acc:#ff6020; --up:#ff6020; --dn:#3b82f6;
  --pp:#a371f7; --or:#ff8c00; --ye:#e3b341;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--tx);
  font-family:"Pretendard","Apple SD Gothic Neo",Segoe UI,Roboto,sans-serif;line-height:1.5}
a{color:inherit;text-decoration:none}

/* nav */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;
  padding:0 20px;height:58px;background:rgba(11,14,20,.85);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.brand{font-weight:800;font-size:20px;letter-spacing:.5px;display:flex;align-items:baseline;gap:8px;flex-shrink:0;margin-right:auto}
/* 헤더 아래 지수 패널(바) */
.mktbar{display:flex;align-items:center;padding:5px 24px;background:#0d1320;border-bottom:1px solid var(--line)}
/* 코스피·코스닥 지수 (아주 작게) */
.mktidx{display:inline-flex;align-items:center;gap:14px;font-size:11px;line-height:1.1;min-width:0;overflow:hidden}
.mktidx .mi{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap}
.mktidx .mi i{font-style:normal;color:#8b96a8;font-weight:700}
.mktidx .mi b{font-weight:700;color:#c9d1d9;font-variant-numeric:tabular-nums}
.mktidx .mr{font-style:normal;font-variant-numeric:tabular-nums;color:#8b96a8}
.mktidx .mr.up{color:#f85149}
.mktidx .mr.dn{color:#4aa3df}
@media(max-width:560px){ .mktbar{padding:5px 12px} .mktidx{gap:10px;font-size:10px} }
.brand .brandname{font-family:'Nanum Brush Script','Apple SD Gothic Neo',cursive;font-weight:400;font-size:34px;line-height:1;letter-spacing:1px;
  background:linear-gradient(90deg,#4aa3df,#a371f7);-webkit-background-clip:text;background-clip:text;color:#a371f7;-webkit-text-fill-color:transparent}
.brand small{font-family:'Nanum Pen Script',cursive;font-size:16px;font-weight:400;letter-spacing:.5px;
  margin-left:6px;position:relative;top:7px;
  background:linear-gradient(90deg,#56d364,#4aa3df);-webkit-background-clip:text;background-clip:text;color:#4aa3df;-webkit-text-fill-color:transparent}
.menu{display:flex;align-items:center;gap:4px;margin-left:0}
.menu a{padding:8px 11px;border-radius:8px;color:var(--mut);font-size:14px;font-weight:600;transition:color .12s,background .12s}
.menu a:hover{color:var(--tx);background:#1a2130}
.menu a.on{color:#fff;background:#222b3a;box-shadow:inset 0 -2px 0 var(--acc)}
.menu a.loginbtn{margin-left:10px;color:#fff;font-weight:800;letter-spacing:.3px;
  background:linear-gradient(90deg,#4aa3df,#a371f7);padding:9px 20px;border-radius:999px;
  box-shadow:0 6px 16px rgba(110,120,255,.3);transition:filter .12s,box-shadow .12s,transform .12s}
.menu a.loginbtn:hover{filter:brightness(1.1);box-shadow:0 9px 22px rgba(110,120,255,.45);transform:translateY(-1px)}
.mlogin{display:none}   /* 데스크톱 숨김 — 모바일 상단바에서만 노출(☰ 왼쪽) */
.menu a.gosub{margin-left:8px;color:#fff;font-weight:800;background:linear-gradient(90deg,#ff8c00,#ff6020);
  box-shadow:0 0 0 0 rgba(255,96,32,.5);animation:subpulse 2s ease-out infinite}
.menu a.gosub:hover{filter:brightness(1.08);animation:none}
@keyframes subpulse{0%{box-shadow:0 0 0 0 rgba(255,96,32,.5)}70%{box-shadow:0 0 0 8px rgba(255,96,32,0)}100%{box-shadow:0 0 0 0 rgba(255,96,32,0)}}
/* 로그인 시 상단 좌측(브랜드 다음) 접속정보 */
.navacct{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;
  font-size:13px;color:var(--mut);background:var(--panel);border:1px solid var(--line);border-radius:9px}
.navacct b{color:var(--tx)}
/* 무료회원 상단 구독하기 버튼 (아이디/1신호 칩 자리) */
.navsubbtn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border-radius:999px;
  font-size:13px;font-weight:800;text-decoration:none;color:#1a1a1a;white-space:nowrap;
  background:linear-gradient(90deg,#ffd54a,#ffb300);box-shadow:0 4px 12px rgba(255,179,0,.35);transition:filter .12s,transform .12s}
.navsubbtn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.navacct .na-time{font-size:11px;color:var(--mut)}
.navacct.guest b{color:#9aa4b2}
.gdday{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--acc);color:#fff;white-space:nowrap}
.gsig{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.gsig.used{cursor:pointer}
.subbadge{font-size:11px;font-weight:800;padding:2px 9px;border-radius:999px;white-space:nowrap;
  color:#1a1205;background:linear-gradient(90deg,#f5c542,#ffd86b);box-shadow:0 0 0 1px rgba(245,197,66,.4)}
.navacct.sub b{color:#ffd86b}
.navacct.sub b.sb-star{color:#ff2e2e;font-weight:900;font-size:12px}  /* [2026-06-25] 구독중 별=캔들(빨강), 금색배지 위 가독성 */
.subperiod{font-size:11px;font-weight:600;color:#9aa3b2;white-space:nowrap}
.sigtipbubble{position:absolute;z-index:1000;background:#0b0e14;border:1px solid var(--line);
  color:var(--tx);font-size:12px;font-weight:600;padding:6px 10px;border-radius:8px;
  white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.45);pointer-events:none}
/* 실시간 포착 신호 확인 팝업 */
.sigov{position:fixed;inset:0;z-index:1200;background:rgba(2,5,11,.72);
  display:flex;align-items:center;justify-content:center;padding:18px}
.sigbox{width:100%;max-width:330px;background:linear-gradient(180deg,#141a26,#0e131d);
  border:1px solid var(--line);border-radius:18px;padding:24px 22px 18px;text-align:center;
  box-shadow:0 18px 50px rgba(0,0,0,.6);animation:sigpop .22s ease}
@keyframes sigpop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.sig-ic{font-size:38px;line-height:1;margin-bottom:6px;animation:hotpulse 1.2s infinite}
.sig-h{margin:0 0 6px;font-size:18px;font-weight:800;color:var(--tx)}
.sig-name{margin:0 0 4px;font-size:20px;font-weight:800;color:#3fb950}
.sig-time{margin:0 0 10px;font-size:13px;font-weight:600;color:#e3b341}
.sig-msg{margin:0 0 18px;font-size:14px;line-height:1.5;color:var(--mut)}
.sig-msg .hl{color:#e3b341}
.sig-btns{display:flex;gap:8px}
.sig-btns button{flex:1;padding:12px 8px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;border:0}
.sig-no{background:#1a2130;color:var(--mut);border:1px solid var(--line)!important}
.sig-no:hover{background:#222b3d}
.sig-yes{background:linear-gradient(90deg,#2ea043,#3fb950);color:#fff}
.sig-yes:hover{filter:brightness(1.08)}
.sig-fine{margin:12px 0 0;font-size:11px;color:#6b7587}
/* 구독 결제 화면 */
.sub-wrap{max-width:980px;margin:0 auto;padding:26px 16px 40px;position:relative}
.free-mini{position:absolute;top:14px;right:16px;font-size:12.5px;font-weight:700;color:#cdd6e2;
  background:#1f2733;border:1px solid #2a3550;border-radius:999px;padding:7px 13px;text-decoration:none;z-index:2}
.free-mini:hover{background:#273140;border-color:#3a4660}
@media(max-width:620px){.free-mini{position:static;display:inline-block;margin:0 0 14px}}
.sub-head{text-align:center;margin-bottom:26px}
.sub-badge{display:inline-block;font-size:13px;font-weight:800;padding:6px 14px;border-radius:999px;
  color:#1a1205;background:linear-gradient(90deg,#f5c542,#ffd86b);margin-bottom:14px}
.sub-h1{font-size:30px;font-weight:900;margin:0 0 10px;color:var(--tx)}
.sub-h1 span{color:#ffd86b}
.sub-sub{font-size:15px;line-height:1.55;color:var(--mut);margin:0}
.sub-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}
.sub-benefits{background:var(--card,#11161f);border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.sub-bt{margin:0 0 14px;font-size:17px;font-weight:800;color:var(--tx)}
.sub-blist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.sub-blist li{position:relative;padding-left:28px}
.sub-blist li::before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(90deg,#2ea043,#3fb950);color:#fff;font-size:12px;font-weight:900;
  display:flex;align-items:center;justify-content:center}
.sub-blist li b{display:block;font-size:15px;color:var(--tx);font-weight:800;margin-bottom:2px}
.sub-blist li span{font-size:13px;color:var(--mut);line-height:1.4}
.sub-rightcol{display:flex;flex-direction:column;gap:18px}
.sub-pricecard{background:linear-gradient(180deg,#161d2b,#0f1420);border:1px solid #2a3550;
  border-radius:16px;padding:24px 22px;text-align:center;box-shadow:0 14px 40px rgba(0,0,0,.4)}
.sub-freecard{background:var(--card,#11161f);border:1px solid var(--line);border-radius:16px;
  padding:20px 22px;text-align:center}
.sub-freecard .fc-h{font-size:24px;font-weight:800;color:var(--tx);margin:6px 0 8px}
.sub-freecard .fc-h b{color:#3fb950}
.sub-freecard .fc-desc{font-size:13px;color:var(--mut);line-height:1.55;margin:0 0 16px}
.sub-cta.free{background:#1f2733;color:#cdd6e2;border:1px solid #2a3550;box-shadow:none}
.sub-cta.free:hover{background:#273140;filter:none}
.pc-plan{font-size:14px;font-weight:700;color:#9aa3b2;margin-bottom:10px}
.pc-list{font-size:24px;font-weight:800;color:#fff;letter-spacing:-.3px}
.pc-list .pc-list-lbl{font-size:13px;font-weight:700;color:#8b96a8;vertical-align:middle;margin-right:4px}
.pc-list s{color:#fff;text-decoration-thickness:2.5px;text-decoration-color:#fff}
.pc-saverow{margin:10px 0;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}
.pc-off{display:inline-block;font-size:13px;font-weight:800;padding:4px 12px;border-radius:999px;
  background:#3a1d22;color:#ff6b6b;border:1px solid rgba(255,107,107,.35)}
.pc-savewon{display:inline-block;font-size:13px;font-weight:800;padding:4px 12px;border-radius:999px;
  background:#3a2f12;color:#e3b341;border:1px solid rgba(227,179,65,.35)}
.pc-now{margin:6px 0 4px;line-height:1}
.pc-now b{font-size:46px;font-weight:900;color:#ff6b6b}
.pc-now span{font-size:16px;color:var(--mut);margin-left:4px}
.pc-perday{font-size:12.5px;color:#e3b341;margin-bottom:18px}
.sub-cta{display:block;width:100%;padding:15px;border:0;border-radius:12px;cursor:pointer;
  font-size:16px;font-weight:800;color:#fff;background:linear-gradient(90deg,#2ea043,#3fb950);
  text-decoration:none;box-shadow:0 6px 18px rgba(46,160,67,.35)}
.sub-cta:hover{filter:brightness(1.08)}
.pc-fine{font-size:11.5px;color:#6b7587;margin:12px 0 0;line-height:1.45}
.paybox{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);text-align:left}
.paybox h4{margin:0 0 8px;font-size:15px;font-weight:800;color:var(--tx)}
.pay-line{font-size:13.5px;color:var(--mut);line-height:1.5;margin:0 0 12px}
.pay-acc{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.pay-acc>div{background:#0b0e14;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}
.pay-acc span{color:#6b7587;margin-right:6px}
.pay-acc b{color:var(--tx)}
.pay-confirm{display:block;text-align:center;padding:12px;border-radius:10px;font-weight:700;font-size:14px;
  color:var(--tx);background:#1a2130;border:1px solid var(--line);text-decoration:none}
.pay-confirm:hover{background:#222b3d}
.sub-disc{text-align:center;font-size:11.5px;color:#6b7587;margin:24px auto 0;max-width:680px;line-height:1.5}
.sub-already{max-width:520px;margin:40px auto;text-align:center;background:var(--card,#11161f);
  border:1px solid var(--line);border-radius:16px;padding:36px 26px}
.sub-already .sa-ic{font-size:46px;margin-bottom:10px}
.sub-already h2{font-size:22px;margin:0 0 8px;color:var(--tx)}
.sub-already h2 b{color:#ffd86b}
.sub-already p{color:var(--mut);margin:0 0 20px}
.sub-already .sub-cta{max-width:280px;margin:0 auto}
.sub-already .sub-cta+.sub-cta{margin-top:12px}
.sub-cta.tg{background:linear-gradient(90deg,#229ED9,#2aabee);box-shadow:0 6px 18px rgba(34,158,217,.35)}
@media(max-width:760px){.sub-grid{grid-template-columns:1fr}.sub-h1{font-size:25px}.pc-now b{font-size:40px}}
.gsig.ok{background:#16331f;color:#3fb950}
.gsig.used{background:#2a2f38;color:#8b96a8}
.logoutbtn{padding:6px 11px;border-radius:8px;font-size:13px;font-weight:600;
  color:var(--tx);border:1px solid var(--line)}
.logoutbtn:hover{background:#1a2130}
.navtoggle{display:none;margin-left:auto;background:none;border:0;color:var(--tx);font-size:22px;cursor:pointer}

/* PWA 설치 버튼 (홈 화면 추가) */
.installbtn{position:fixed;right:16px;bottom:16px;z-index:80;display:inline-flex;align-items:center;gap:6px;
  background:var(--acc);color:#fff;border:0;border-radius:24px;padding:11px 17px;font-size:14px;font-weight:700;
  box-shadow:0 8px 22px rgba(0,0,0,.45);cursor:pointer}
.installbtn:hover{filter:brightness(1.08)}

main{min-height:calc(100vh - 58px - 46px)}
main.full{min-height:calc(100vh - 58px)}
.disclaimer{max-width:900px;margin:26px auto 0;padding:18px 20px 0;border-top:1px solid var(--line);
  font-size:11px;line-height:1.7;color:#6b7585;text-align:center}
.disclaimer b{color:#8b96a8;font-weight:700}
.foot{padding:12px 20px 20px;color:var(--mut);font-size:12px;text-align:center}
/* 첫페이지 구독 프로모션 팝업 */
.promo-ov{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.66);display:flex;align-items:center;justify-content:center;padding:20px}
.promo{position:relative;width:100%;max-width:380px;background:linear-gradient(180deg,#1a212e,#0d1117);
  border:1px solid #2a3445;border-radius:18px;padding:26px 22px 18px;box-shadow:0 24px 70px rgba(0,0,0,.6);text-align:center}
.promo-x{position:absolute;top:0;right:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--mut);font-size:17px;line-height:1;cursor:pointer;border-radius:12px;z-index:3}
.promo-x:hover{background:#1f2735;color:var(--tx)}
.promo-badge{display:inline-block;background:var(--acc);color:#fff;font-size:12px;font-weight:800;padding:5px 13px;border-radius:999px;margin-bottom:14px}
.promo-h{font-size:18px;font-weight:800;margin:0 0 18px;color:var(--tx);line-height:1.3;letter-spacing:-.3px}
.promo-h span{color:var(--acc)}
.promo-list{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:11px;text-align:left}
.promo-list li{position:relative;padding-left:27px;font-size:14px;color:var(--mut);line-height:1.45}
.promo-list li::before{content:"✓";position:absolute;left:3px;top:0;color:#3fb950;font-weight:900}
.promo-list b{color:var(--tx);font-weight:700}
.promo-list b.hl{color:var(--acc)}
.promo-cta{display:block;background:var(--acc);color:#fff;font-weight:800;font-size:15px;padding:14px;border-radius:12px;text-decoration:none;margin-bottom:9px}
.promo-cta:hover{filter:brightness(1.08)}
.promo-skip{display:block;width:100%;background:transparent;border:1.5px solid var(--acc);color:#fff;font-weight:800;font-size:15px;padding:14px;border-radius:12px;cursor:pointer;margin-bottom:13px}
.promo-skip:hover{background:rgba(255,255,255,.06)}
.promo-skip .ppfree{color:var(--acc);font-weight:800}
.promo-noshow{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--mut);cursor:pointer}
.promo-slides{position:relative;overflow:hidden;touch-action:pan-y}
.promo-track{display:flex;transition:transform .35s ease}
.promo-slide{flex:0 0 100%;min-width:0}
.promo-fine{font-size:11px;color:#6b7585;margin:16px 0 14px;line-height:1.5}
.promo-urgent{background:rgba(255,96,32,.12);border:1px solid rgba(255,96,32,.35);border-radius:10px;
  padding:9px 12px;margin:0 0 14px;font-size:12.5px;font-weight:700;color:#ffb454;line-height:1.45;text-align:center}
.promo-urgent b{color:var(--acc)}
.promo-dots{display:flex;justify-content:center;gap:7px;margin:14px 0 2px}
.promo-dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.28);cursor:pointer;transition:background .25s}
.promo-dots i.on{background:var(--acc)}
/* 구독 잠금 월(추천 전용 / 일일한도) */
.lockwall{position:fixed;inset:0;z-index:150;background:rgba(8,11,16,.82);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}
.lockcard{width:100%;max-width:400px;background:linear-gradient(180deg,#1a212e,#0d1117);border:1px solid #2a3445;border-radius:18px;padding:30px 24px 22px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.6)}
.lockicon{font-size:38px;margin-bottom:10px}
.lockcard h3{font-size:19px;font-weight:800;margin:0 0 10px;color:var(--tx);line-height:1.35}
.lockcard h3 span{color:var(--acc)}
.lockcard p{font-size:13.5px;color:var(--mut);line-height:1.5;margin:0 0 20px}
.lockcard p b{color:var(--acc);font-weight:700}
.lockback{display:inline-block;margin-top:12px;font-size:13px;color:var(--mut);text-decoration:none}
.lockback:hover{color:var(--tx)}

/* home hero */
.hero{padding:56px 24px 16px;text-align:center;
  background:radial-gradient(900px 380px at 50% -10%,rgba(255,96,32,.16),transparent 70%)}
.hero h1{font-size:46px;line-height:1.18;margin:0 0 34px;font-weight:800;letter-spacing:-.5px;overflow-wrap:break-word;word-break:keep-all}
.hero h1 .hl1{font-family:'Nanum Brush Script','Apple SD Gothic Neo',cursive;font-weight:400;font-size:.5em;letter-spacing:.5px;
  color:#fff;-webkit-text-fill-color:#fff}
.hero h1 .hl3 .ai{font-weight:900;background:linear-gradient(90deg,#ff8a3c,#ff5e62);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero h1 .hl2{display:inline-block;margin-top:10px;font-family:'Nanum Brush Script','Apple SD Gothic Neo',cursive;font-weight:400;font-size:1.28em;line-height:1.05;letter-spacing:1px;
  background:linear-gradient(90deg,#4aa3df,#a371f7);-webkit-background-clip:text;background-clip:text;color:#a371f7;-webkit-text-fill-color:transparent}
.hero h1 .hl2 .brandpop{background:linear-gradient(90deg,#ff8a3c,#ff5e62);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero h1 .hl3{display:inline-block;margin-top:8px;font-family:'Nanum Brush Script','Apple SD Gothic Neo',cursive;
  font-weight:400;font-size:.54em;line-height:1.4;letter-spacing:.5px;color:#eaf1f9}
.hero h1 .hl3 .kw{font-size:1.12em;padding:0 .1em;border-radius:6px}
.hero h1 .hl3 .kw-a{color:#86e29a;background:linear-gradient(transparent 56%, rgba(63,185,80,.24) 0)}
.hero h1 .hl3 .kw-b{color:#ffb27a;background:linear-gradient(transparent 56%, rgba(255,123,84,.26) 0)}
@media(max-width:600px){
  .hero{padding:44px 14px 12px}
  .hero h1{font-size:29px}
  .hero h1 .hl2{font-size:1.18em}
}
@media(max-width:380px){ .hero h1{font-size:25px} }
.herobtns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:8px 0 24px}
.herobtn-cap{font-size:11.5px;font-weight:600;color:inherit;opacity:.82}
.herobtn{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:11px 26px;border-radius:12px;font-weight:800;font-size:15px;text-decoration:none}
.herobtn.free{background:#161c27;color:#e6edf3;border:1.5px solid #2ea043}
.herobtn.free:hover{background:#15251a}
.herobtn.sub{background:linear-gradient(90deg,#ff8a3c,#ff5e62);color:#fff;box-shadow:0 8px 22px rgba(255,96,32,.32)}
.herobtn.sub:hover{filter:brightness(1.07)}
.herobtn.watch{font-family:inherit;cursor:pointer;background:#161c27;color:#e6edf3;border:1.5px solid #3a4660}
.herobtn.watch:hover{background:#1a2230}
.herobtn.watch.on{background:linear-gradient(90deg,#2ea043,#3fb950);color:#fff;border:0;box-shadow:0 8px 22px rgba(46,160,67,.32)}
.herobtn.watch.result{background:#16263a;color:#79c0ff;border:1.5px solid #1f6feb;cursor:pointer}
.herobtn.watch.result:hover{background:#19314d}
.hero p{font-size:18px;color:var(--mut);max-width:600px;margin:0 auto 30px}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;padding:13px 24px;border-radius:10px;font-weight:700;font-size:15px;
  background:var(--acc);color:#fff}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--tx)}
.btn.ghost:hover{background:#161c28}
/* 히어로 서브 멘트 (특징 4줄) */
.herosub{list-style:none;padding:0;margin:18px auto 30px;max-width:560px;display:flex;flex-direction:column;gap:11px;text-align:left}
.herosub li{position:relative;padding:9px 14px 9px 38px;font-size:15px;color:var(--mut);line-height:1.35;
  background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px}
.herosub li::before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px rgba(255,96,32,.15)}
.herosub b{color:var(--tx);font-weight:700}
.hotbadge{display:inline-block;margin-left:5px;padding:1px 5px;font-size:8px;font-weight:800;
  line-height:1.4;letter-spacing:.5px;color:#fff;background:linear-gradient(135deg,#ff3d2e,#ff7a18);
  border-radius:6px;vertical-align:top;box-shadow:0 0 8px rgba(255,61,46,.5);animation:hotpulse 1.3s ease-in-out infinite}
@keyframes hotpulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.85}}
/* 주식 캘린더 (홈, 가이드 이미지 하단) */
.calsec .sec-h{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.calsec .cal-nav{display:inline-flex;align-items:center;gap:6px;margin-left:12px;font-size:13px;font-weight:600}
.calsec .cal-nav button{background:var(--panel);border:1px solid var(--line);color:var(--tx);border-radius:7px;
  width:26px;height:26px;cursor:pointer;font-size:15px;line-height:1;padding:0}
.calsec .cal-nav .cal-today{width:auto;padding:0 9px;font-size:12px;font-weight:700}
.calsec .cal-nav button:hover{border-color:#3a465b}
.calsec .cal-nav b{min-width:90px;text-align:center;font-variant-numeric:tabular-nums;color:var(--tx)}
/* 달력형 월 그리드 */
.calwrap{max-width:760px;margin:0 auto}
.cal-grid{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 10px 12px}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;font-weight:700;color:var(--mut);margin-bottom:6px}
.cal-head .sun{color:#f85149}.cal-head .sat{color:#4aa3df}
.cal-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-cell{min-height:52px;border-radius:9px;padding:5px 0 0;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:3px;border:1px solid transparent;transition:background .12s,border-color .12s}
.cal-cell.empty{cursor:default}
.cal-cell:not(.empty):hover{background:rgba(255,255,255,.05)}
.cal-cell .cal-d{font-size:13px;font-weight:700;color:var(--tx)}
.cal-cell.sun .cal-d{color:#f85149}.cal-cell.sat .cal-d{color:#4aa3df}
.cal-cell.today{background:rgba(74,163,223,.12)}
.cal-cell.today .cal-d{color:#7cc1ef}
.cal-cell.sel{border-color:#3a8ddb;background:rgba(58,141,219,.18)}
.cal-dots{display:flex;gap:3px;min-height:7px}
.cal-dots i,.cal-legend i{width:6px;height:6px;border-radius:50%;display:inline-block}
.cal-dots .d-sec,.cal-legend .d-sec{background:#ff8c00}
.cal-dots .d-sch,.cal-legend .d-sch{background:#2ecc71}
.cal-dots .d-ev,.cal-legend .d-ev{background:#e3b341}
.cal-dots .d-sig,.cal-legend .d-sig{background:#4aa3df}
.cal-legend{max-width:760px;margin:7px auto 0;display:flex;justify-content:center;gap:14px;font-size:11.5px;color:var(--mut)}
.cal-legend span{display:inline-flex;align-items:center;gap:4px}
.caldetail{max-width:760px;margin:26px auto 0}
.cal-dethead{font-size:14px;font-weight:800;color:var(--tx);margin-bottom:4px}
.calcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;
  display:flex;flex-direction:column;gap:13px;max-width:760px;margin:0 auto}
.cal-loading{color:var(--mut);text-align:center;padding:14px}
.cal-row{display:flex;gap:10px;align-items:flex-start}
.cal-row .cal-ic{font-size:18px;line-height:1.35;flex:none}
.cal-body{flex:1;min-width:0}
.cal-lbl{font-size:12px;font-weight:800;color:var(--mut);margin-bottom:6px}
.cal-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cal-tags.cal-idx-row{flex-wrap:nowrap;overflow-x:auto;margin-bottom:6px}  /* [2026-06-25] 당일 주요지수=한 줄(코스피+코스닥), 주도섹터는 다음 줄 */
.cal-tag{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:700;
  background:rgba(255,140,0,.16);color:#ffb86b;border:1px solid rgba(255,140,0,.35)}
.cal-tag.adm{cursor:pointer}
.cal-tag.cal-tag-idx{background:rgba(74,163,223,.16);color:#79c0ff;border-color:rgba(74,163,223,.4)}  /* [2026-06-25] 당일 주요지수(섹터=주황과 구분) */
.cal-tag.cal-tag-idx.idx-up{background:rgba(248,81,73,.16);color:#f85149;border-color:rgba(248,81,73,.42)}   /* 상승=빨강 */
.cal-tag.cal-tag-idx.idx-dn{background:rgba(74,163,223,.16);color:#4aa3df;border-color:rgba(74,163,223,.42)} /* 하락=파랑 */
.sectag.idxtag{background:rgba(74,163,223,.16);color:#79c0ff}
.cal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.cal-list li{font-size:13px;color:var(--tx);line-height:1.5}
.cal-list-sch li:not(.cal-empty){color:#2ecc71;position:relative;padding-left:14px}
.cal-list-sch li:not(.cal-empty)::before{content:'';position:absolute;left:0;top:6px;width:7px;height:7px;border-radius:50%;background:#2ecc71}
.cal-memo{color:var(--mut);font-size:12px}
.cal-empty{color:var(--mut);font-size:12.5px}
.cal-del{color:#8b96a8;cursor:pointer;font-size:11px;margin-left:5px}
.cal-del:hover{color:#f85149}
.cal-add{margin-top:7px;background:transparent;border:1px dashed var(--line);color:var(--mut);
  border-radius:8px;padding:4px 11px;font-size:12px;cursor:pointer}
.cal-add:hover{color:var(--tx);border-color:#3a465b}

/* 홈 가이드 캐러셀 (3초 자동 전환) — '실시간 신호 확인하기' 버튼 자리 */
.guidecar{position:relative;max-width:760px;margin:10px auto 0;aspect-ratio:900/520;cursor:pointer;
  border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.45);user-select:none;touch-action:pan-y}
.gtrack{display:flex;height:100%;transition:transform .4s ease}
.guidecar .gimg{flex:0 0 100%;width:100%;height:100%;object-fit:contain;
  user-select:none;-webkit-user-drag:none;pointer-events:none}
.gdots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:7px;z-index:2}
.gdots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.28);transition:background .3s;cursor:pointer}
.gdots i.on{background:var(--acc)}
.gdots i:hover{background:rgba(255,255,255,.6)}
/* 좌우 이동 화살표(프로모션·가이드 공통) */
.gnav{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:30px;height:30px;border-radius:50%;
  border:0;background:rgba(18,24,36,.4);color:#9aa3b2;font-size:20px;line-height:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.gnav:hover{background:rgba(18,24,36,.8);color:#c9d1de}
.gnav.prev{left:1px} .gnav.next{right:1px}

.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:10px auto 40px;max-width:1000px;padding:0 20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;cursor:pointer;transition:border-color .15s,transform .15s}
.card:hover{border-color:#a371f7;transform:translateY(-2px)}
.card .chead{display:flex;align-items:center;gap:8px}
.card .ic{font-size:24px;line-height:1}
.card h3{margin:0;font-size:17px}
.card .hot{font-size:11px;font-weight:800;padding:2px 9px;border-radius:999px;background:#1ea54e;color:#fff;white-space:nowrap;
  box-shadow:0 0 0 0 rgba(34,197,94,.5);animation:hotpulse 1.8s ease-out infinite}
@keyframes hotpulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.card .go{margin-left:auto;font-size:22px;color:var(--mut);font-weight:700}
.card:hover .go{color:#a371f7}
.card p{margin:10px 0 0;color:var(--mut);font-size:14px}

.sec{max-width:1000px;margin:0 auto;padding:30px 20px}
.sec h2{font-size:22px;margin:0 0 14px}
.sec-h{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.hsigtime{white-space:nowrap;font-size:13px;font-weight:600;color:var(--mut)}
.hcnt{white-space:nowrap;font-size:11px;font-weight:800;padding:3px 9px;border-radius:24px;
  background:var(--acc);color:#fff;display:inline-flex;align-items:center;gap:4px}
.hcnt b{color:#fff;font-weight:800}
.hcnt::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;display:inline-block}
/* 홈 좌측 접속정보 */
.homeacctwrap{max-width:1000px;margin:14px auto 0;padding:0 20px}
.homeacct{display:inline-flex;align-items:center;gap:4px;padding:9px 14px;font-size:13px;color:var(--mut);
  background:var(--panel);border:1px solid var(--line);border-radius:10px}
.homeacct b{color:var(--tx)}
.tiles{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;scroll-behavior:smooth}
.tiles::-webkit-scrollbar{height:8px}
.tiles::-webkit-scrollbar-thumb{background:#2a3445;border-radius:8px}
.tile{flex:0 0 150px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}
.tile:hover{border-color:#3a465b}
.tile .c{font-size:13px;color:var(--mut)}
.tile .p{font-size:18px;font-weight:700;margin-top:2px}
.up{color:var(--up)} .dn{color:var(--dn)}

/* viewer */
.vwrap{display:grid;grid-template-columns:300px 1fr;gap:12px;padding:12px;height:calc(100vh - 58px)}
.col{background:var(--panel);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;overflow:hidden}
.col h4{margin:0;padding:12px 14px;font-size:13px;color:var(--mut);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:8px}
.center{background:transparent;border:0}
.phead{display:flex;flex-direction:column;gap:9px;padding:6px 2px 12px}
.prow1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.prow2{display:flex;gap:8px;flex-wrap:wrap}
.m{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:6px 14px;min-width:94px}
.m .ml{font-size:11px;color:var(--mut)}
.m .mv{font-size:18px;font-weight:700;margin-top:2px;color:var(--tx)}
.m .mv.big{font-size:25px}
.m .mv.up{color:var(--up)} .m .mv.dn{color:var(--dn)}
.amtrk{font-size:11px;font-weight:800;color:#3fb950;margin-left:7px}
.search{display:flex;gap:8px}
.search input{background:var(--panel2);border:1px solid var(--line);color:var(--tx);
  padding:9px 11px;border-radius:9px;width:120px;font-size:15px}
.search button{background:#222b3a;border:1px solid #313d52;color:var(--tx);padding:9px 15px;border-radius:9px;
  cursor:pointer;font-weight:700;transition:background .12s,border-color .12s}
.search button:hover{background:#2a3548;border-color:#3f4d66}
.search button:active{background:#1c2531}
.pxrow{display:flex;align-items:flex-end;gap:10px}
.pxwrap{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1.05}
.badges{display:flex;flex-wrap:nowrap;gap:4px}
.badges:empty{display:none}
.pxline{display:flex;align-items:baseline;gap:8px}
.px{font-size:24px;font-weight:800}
.mkt{font-size:10px;font-weight:800;padding:2px 7px;border-radius:7px;letter-spacing:.5px;align-self:flex-start}
.mkt:empty{display:none}
.mkt.kospi{background:#16252e;color:#4aa3df}
.mkt.kosdaq{background:#2a2416;color:#e3b341}
.codebadge{font-size:10px;font-weight:800;padding:2px 7px;border-radius:7px;letter-spacing:.5px;align-self:flex-start;background:#1f2733;color:#cdd6e2;font-variant-numeric:tabular-nums}
.codebadge:empty{display:none}
.exch{font-size:10px;font-weight:800;padding:2px 7px;border-radius:7px;letter-spacing:.5px;align-self:flex-start;cursor:help;min-width:46px;text-align:center;box-sizing:border-box}
.exch:empty{display:none}
.exch.unified,.exch.krx{background:#1c2e1f;color:#56d364}
.dr{font-size:16px;font-weight:700}
.code{font-size:18px;font-weight:700}
.live{font-size:11px;font-weight:800;padding:3px 8px;border-radius:10px;background:#3a1d1d;color:#ff6b6b}
.live.on{background:#16331f;color:#3fb950}
#chart{flex:1;min-height:0;position:relative}
/* 신호·결과 오버레이 — 캔들 왼쪽 빈 공간에 라벨(신호가 높이 유지), 라벨오른끝~캔들만 점선 */
.sig-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4}
.sig-overlay .sig-tick{position:absolute;height:0;border-top:1px dotted currentColor;opacity:.9;transform:translateY(-50%)}
.sig-overlay .sig-lbl{position:absolute;font-size:11px;font-weight:800;line-height:1.1;white-space:nowrap;transform:translateY(-50%);background:rgba(11,14,20,.92);padding:2px 6px;border-radius:5px;border:1px solid rgba(255,255,255,.92);box-shadow:0 0 5px rgba(0,0,0,.65);text-shadow:0 0 2px #0b0e14}
.sig-overlay .sig-box{position:absolute;font-size:10.5px;font-weight:700;line-height:1.42;white-space:nowrap;transform:translateY(-50%);background:rgba(11,14,20,.93);padding:3px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.92);box-shadow:0 0 6px rgba(0,0,0,.6);text-shadow:0 0 2px #0b0e14}
.sig-overlay .sig-box>div{white-space:nowrap}
.sig-overlay .sig-box b{font-weight:800;font-variant-numeric:tabular-nums}
.sig-overlay .score-mark{position:absolute;font-size:10.5px;font-weight:800;line-height:1;white-space:nowrap;transform:translateX(-50%);font-variant-numeric:tabular-nums;text-shadow:0 0 3px #0b0e14,0 0 2px #0b0e14;pointer-events:none}
.sig-overlay .score-arrow{position:absolute;font-size:9px;line-height:1;color:rgba(175,175,175,.9);transform:translateX(-50%);pointer-events:none;text-shadow:0 0 2px #0b0e14}
.sig-overlay .day-line{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed rgba(255,255,255,.32);pointer-events:none;z-index:3}
.sig-overlay .day-line-lab{position:absolute;top:3px;left:4px;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);white-space:nowrap}
.chartbox{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.chartbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;min-height:24px}
.legend{display:flex;align-items:center;gap:11px;font-size:12px;color:var(--mut);flex:1;min-width:0;flex-wrap:wrap}
.legend .lg-o b{color:var(--tx);font-weight:700;margin-left:2px}
.legend .lg-ma{font-weight:700}
.ctoggles{display:flex;align-items:center;gap:5px;flex:none;flex-wrap:wrap;margin-left:auto}
.tfgroup{display:flex;gap:3px;flex:none}
.ctg{font-size:11px;font-weight:700;padding:3px 9px;border-radius:8px;cursor:pointer;
  background:var(--panel2);border:1px solid var(--line);color:var(--tx)}
.ctg:hover{border-color:#3a465b}
.ctg.ma5{color:#e3b341} .ctg.ma10{color:#56d364} .ctg.ma20{color:#a371f7}
.ctg.ma60{color:#4aa3df} .ctg.ma120{color:#ff8c00} .ctg.vw{color:#ff5db1}
.ctg.on{background:var(--acc);border-color:var(--acc);color:#fff!important}
.ctg.off{color:var(--mut)!important;opacity:.45}
.sep{width:1px;height:16px;background:var(--line);margin:0 3px}
.legend .lg-tf{font-weight:800;color:var(--tx);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:1px 7px}
.charttip{position:absolute;z-index:6;pointer-events:none;display:none;background:rgba(15,20,29,.96);
  border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:12px;min-width:128px;
  box-shadow:0 6px 20px rgba(0,0,0,.45)}
.charttip .tt-t{font-weight:800;margin-bottom:5px;color:var(--tx)}
.charttip .tt-r{display:flex;justify-content:space-between;gap:16px;line-height:1.55}
.charttip .tt-r span{color:var(--mut)}
.charttip .tt-r b{font-weight:700;color:var(--tx)}
.charttip .tt-sep{height:1px;background:var(--line);margin:5px 0}
/* 신호발생이력 박스 (차트 위) */
/* [2026-06-27] 신호 조건충족 %게이지 (임박도) */
.sigscore{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 6px;padding:3px 2px}
.sigscore:empty{display:none}
.ssg{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700}
.ssg-l{min-width:26px}
.ssg-bar{position:relative;width:72px;height:7px;border-radius:4px;background:rgba(255,255,255,.09);overflow:hidden}
.ssg-bar i{position:absolute;left:0;top:0;height:100%;border-radius:4px;transition:width .4s ease}
.ssg-p{min-width:30px;text-align:right;font-variant-numeric:tabular-nums}
.ssg.on{filter:brightness(1.2)}
.ssg.on .ssg-p::after{content:'★'}
/* [2026-06-27] 신호 임박 레이더 탭 */
.radarwrap{max-width:880px;margin:0 auto;padding:8px 12px}
.radar-head h2{font-size:18px;margin:8px 0 2px}
.radar-sub{font-size:12.5px;color:var(--mut);margin:0 0 10px;line-height:1.5}
.radar-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.radar-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:560px}
.radar-table th,.radar-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.radar-table th{font-size:11.5px;color:var(--mut);font-weight:700;position:sticky;top:0;background:var(--panel)}
.radar-table tr.hot{background:rgba(248,81,73,.07)}
.radar-loading{text-align:center;color:var(--mut);padding:18px}
.rt-nm a{font-weight:700;color:var(--tx);text-decoration:none}
.rt-nm a:hover{text-decoration:underline}
.rt-cd a{color:var(--mut);font-size:12px;font-weight:700;text-decoration:none;font-variant-numeric:tabular-nums}
.rt-cd a:hover{text-decoration:underline;color:var(--tx)}
.radar-ctrl{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 12px}
.radar-ctrl label{font-size:12px;color:var(--mut);display:flex;align-items:center;gap:5px}
.radar-ctrl select{background:var(--panel);color:var(--tx);border:1px solid var(--line);border-radius:7px;padding:4px 8px;font-size:12.5px}
.rt-tm{color:var(--mut);font-variant-numeric:tabular-nums}
.rt-mx{font-weight:800}
.rt-mx.on{color:#f85149}
.rt-mx.on::after{content:' ★'}
.rg{display:inline-flex;align-items:center;gap:5px}
.rg-bar{position:relative;width:56px;height:7px;border-radius:4px;background:rgba(255,255,255,.09);overflow:hidden}
.rg-bar i{position:absolute;left:0;top:0;height:100%;border-radius:4px}
.rg-p{min-width:30px;font-weight:700;font-variant-numeric:tabular-nums}
.rg-na{color:var(--mut)}
.sigrow{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.sigrow .livetm{flex:none;font-size:11px;font-weight:700;color:var(--mut);font-variant-numeric:tabular-nums}
.sigrow .sighist{flex:1;min-width:0;margin-bottom:0}
.sighist{display:flex;align-items:center;gap:6px;overflow-x:auto;white-space:nowrap;
  margin-bottom:6px;padding:6px 8px;background:var(--panel2);border:1px solid var(--line);
  border-radius:10px;scrollbar-width:thin}
.sighist::-webkit-scrollbar{height:6px}
.sighist::-webkit-scrollbar-thumb{background:#2a3445;border-radius:6px}
.sighist .sh-ttl{flex:none;font-size:11px;font-weight:800;color:var(--mut);padding-right:4px}
.sighist .sh-empty{font-size:12px;color:var(--mut)}
.sighist .sh-date{flex:none;font-size:11px;font-weight:800;color:var(--mut);
  padding:3px 8px;border-radius:7px;background:#10141d;border:1px solid var(--line)}
.sighist .sh-date.cur{color:var(--tx);border-color:#3a465b}
.sh-chip{flex:none;display:inline-flex;align-items:center;gap:5px;cursor:pointer;
  font-size:11px;font-weight:700;color:var(--tx);background:var(--panel);
  border:1px solid var(--line);border-radius:8px;padding:4px 9px}
.sh-chip:hover{border-color:#3a465b}
.sh-chip.on{border-color:var(--acc);background:#1f2735}
.sh-chip .dot{width:7px;height:7px;border-radius:50%}
.sublabels{position:absolute;inset:0;pointer-events:none;z-index:4}
.slbl{position:absolute;font-size:10px;font-weight:800;letter-spacing:.2px;
  background:rgba(11,14,20,.55);padding:0 5px;border-radius:5px;white-space:nowrap}
.slbl i{font-style:normal;font-weight:600;opacity:.6;font-size:9px}
.scroll{overflow:auto;flex:1}
.feeditem{display:flex;align-items:center;gap:9px;padding:9px 14px;border-bottom:1px solid #1a212e;cursor:pointer;font-size:13px}
.feeditem:hover{background:#161c28}
.dot{width:9px;height:9px;border-radius:50%;flex:none}
.feeditem .cd{font-weight:700}
.feeditem .meta{margin-left:auto;color:var(--mut);font-size:12px;text-align:right}
.tag{font-size:11px;font-weight:800;padding:1px 6px;border-radius:6px;background:#1c2433}
.rk{display:flex;align-items:flex-start;gap:8px;padding:9px 14px;border-bottom:1px solid #1a212e;cursor:pointer;font-size:13px}
.rk:hover{background:#161c28}
.rk .n{display:none}
.rktop .rec{margin-left:auto}
.rec{flex:none;font-family:'Nanum Pen Script',cursive;font-size:16px;font-weight:400;line-height:1;letter-spacing:.5px;
  background:linear-gradient(90deg,#ffd24a,#ff8c00);-webkit-background-clip:text;background-clip:text;color:#ffb02e;-webkit-text-fill-color:transparent}
.rkmain{flex:1;min-width:0}
.rktop{display:flex;align-items:center;gap:7px}
.rktop .cd{font-weight:700}
.rktop .cres{margin-left:auto;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.rktop .cres.up{color:var(--up)} .rktop .cres.dn{color:var(--dn)}
.rktop .cres.be{color:#e3b341}
.rktop .cres.pend{color:var(--mut)}
.rkevs{display:flex;flex-direction:column;gap:2px;margin-top:5px}
.ev{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--mut)}
.ev .et{font-weight:800}

/* 실시간 신호 — 종목 그룹 + 발생시각순 이력 */
.siglist{display:flex;flex-direction:column;gap:10px}
.siggrp{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;cursor:pointer}
.siggrp:hover{border-color:#3a465b}
.sg-head{display:flex;align-items:center;gap:10px;font-size:14px}
.sg-head .dot{width:10px;height:10px;border-radius:50%;flex:none}
.sg-head .nm{flex:1;min-width:0;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-head .px{flex:none;font-weight:700;font-variant-numeric:tabular-nums}
.sg-head .dr{flex:none;width:74px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.sg-head .dr.up{color:var(--up)} .sg-head .dr.dn{color:var(--dn)}
.sg-head .sg-rhead{flex:none;margin-left:auto;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.sg-head .sg-rhead b{font-weight:800;margin-left:2px}
.sg-head .sg-rhead.up{color:var(--up)} .sg-head .sg-rhead.dn{color:var(--dn)} .sg-head .sg-rhead.be{color:#a9b2c0}
.sg-head .sg-rhead .sg-rel{color:var(--mut);font-weight:600;font-size:11px;margin-left:3px}
.sg-evs{margin-top:7px;border-top:1px solid #1a212e;padding-top:6px;display:flex;flex-direction:column;gap:3px}
.sg-ev{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut)}
.sg-ev .t{flex:none;width:60px;font-variant-numeric:tabular-nums}
.sg-ev .et{flex:none;width:32px;font-weight:800}
.sg-ev .p{flex:none;width:78px;text-align:right;font-variant-numeric:tabular-nums;color:var(--tx)}
.sg-ev .rt{flex:none;width:62px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.sg-ev .rt.up{color:var(--up)} .sg-ev .rt.dn{color:var(--dn)}
.sg-ev .av{flex:1;text-align:right;font-variant-numeric:tabular-nums}
.sg-resbox{margin-top:7px;border-top:1px dashed #1a212e;padding-top:6px;display:flex;flex-direction:column;gap:3px}
.sg-res{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700}
.sg-res .t{flex:none;width:60px;font-size:11px;color:var(--mut);font-weight:600;font-variant-numeric:tabular-nums}
.sg-res b{font-weight:800}
.sg-res.up{color:var(--up)} .sg-res.dn{color:var(--dn)}

.stub{max-width:820px;margin:0 auto;padding:48px 20px}
.stub h1{font-size:30px;margin:0 0 8px}
.stub .lead{color:var(--mut);font-size:16px;margin-bottom:26px}
.stub .block{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:14px}
.stub .block h3{margin:0 0 6px}
.stub .block p{margin:0;color:var(--mut)}
.badge{display:inline-block;font-size:11px;font-weight:700;color:var(--acc);border:1px solid var(--acc);
  border-radius:20px;padding:2px 10px;margin-bottom:14px}
.loginbox{max-width:380px;margin:60px auto;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}
.loginbox h1{font-size:22px;margin:0 0 4px}
.loginbox p{color:var(--mut);font-size:13px;margin:0 0 20px}
.loginbox p.ltop{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--acc)}
.loginbox h1.titlerow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.loginbox h1.titlerow .subt{font-size:13px;font-weight:600;color:var(--mut)}
.lerr{background:#3a1d1d;color:#ff8c8c;border:1px solid #5a2a2a;border-radius:9px;padding:9px 12px;font-size:13px;margin:14px 0 0}
.lnote{color:var(--mut);font-size:12px;margin-top:12px;line-height:1.5}
.sbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  padding:13px;border-radius:10px;font-weight:700;font-size:15px;margin-bottom:10px}
.sbtn .si{font-size:17px}
.sbtn.kakao{background:#FEE500;color:#191600}
.sbtn.google{background:#fff;color:#1f1f1f;border:1px solid #dadce0}
.sbtn:hover{filter:brightness(.96)}
.sbtn.dim{opacity:.55}
.loginbox small{color:var(--mut);font-weight:400}
.phrow{display:flex;gap:8px;align-items:stretch;margin-bottom:2px}
.phrow input{flex:1}
.phrow .btn{flex:none;padding:11px 14px;white-space:nowrap;text-align:center}
.smsg{font-size:12px;margin-top:8px;min-height:15px}
.smsg.ok{color:#3fb950} .smsg.no{color:#ff8c8c}
.lfoot{margin-top:18px;font-size:13px;color:var(--mut);text-align:center}
.lfoot a{color:var(--acc);font-weight:600}
.sepdot{margin:0 6px;color:var(--line)}
.loginbox label{display:block;font-size:13px;color:var(--mut);margin:12px 0 5px}
.loginbox input{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--tx);padding:11px;border-radius:9px}
.loginbox .btn{width:100%;margin-top:20px;text-align:center;border:0;cursor:pointer}
.roles{display:flex;gap:8px;margin-top:16px}
.roles span{flex:1;text-align:center;font-size:12px;color:var(--mut);border:1px dashed var(--line);border-radius:9px;padding:8px}

@media(max-width:900px){
  .feat{grid-template-columns:1fr}
  .vwrap{grid-template-columns:1fr;height:auto;gap:10px;padding:10px}
  .col.side{order:2;max-height:320px}              /* 피드는 차트 아래로 */
  .center{order:1}
  .phead{padding:2px 0 8px}
  /* 모바일: 종목코드 뱃지 추가로 가격줄이 검색창 옆에서 줄바꿈되던 것 방지(여백 확보) */
  .prow1{gap:8px}
  .search input{width:96px}
  .exch{min-width:0}
  .chartbox{flex:none;height:420px;min-height:0;padding:8px}   /* 모바일 고정 높이(축소) */
  .subbtn{display:none}   /* 모바일: 보조지표(거래량/거래대금/순매수/프로그램) 버튼 전부 숨김 */
  #chart{flex:1 1 auto;min-height:200px;height:auto}   /* 툴바(분봉+이평) 아래 남은 공간 채움 */
  /* 툴바: 한 줄에 안 들어가면 여러 줄로 줄바꿈 */
  .chartbar{flex-direction:column;align-items:stretch;gap:7px}
  .tfgroup,.ctoggles{flex-wrap:wrap;max-width:100%;margin-left:0;gap:6px}
  .ctg{padding:6px 11px;font-size:12px}            /* 터치 타깃 확대 */
  .sep{display:none}                               /* tfgroup 구분선 숨김 */
  .ctoggles .sep{display:block;flex-basis:100%;width:auto;height:0;margin:0;background:none} /* 이평/보조지표/옵션 줄 분리 */
  /* 모바일: VWAP·고저·%·전체·이평·보조지표 버튼 숨김 (거래량 고정 표시) */
  #vwapbtn,#hlbtn,#pctbtn,#rstbtn,#ma5,#ma10,#ma20,#ma60,#ma120,.subbtn{display:none}
  .nav{padding:0 12px;gap:10px}                    /* 모바일: 상단바 여백·간격 축소(공간 확보) */
  .navacct{padding:4px 7px;gap:5px;font-size:12px}   /* 모바일: 컴팩트 (우측정렬은 .brand margin-right:auto) */
  .gdday,.gsig{font-size:10px;padding:2px 6px}     /* 모바일: 배지 축소(☰까지 들어가게) */
  .navacct.guest b{display:none}                   /* 모바일: 'Guest' 글자 숨김(👤만) → ☰ 공간 확보 */
  .navacct .na-time{display:none}                  /* 모바일: 상단바 혼잡 방지로 시각 숨김 */
  .navtoggle{display:block;margin-left:6px}        /* ☰ 는 칩 오른쪽 옆 */
  .mlogin{display:inline-block;color:#fff;font-weight:800;font-size:13px;text-decoration:none;
    background:linear-gradient(90deg,#4aa3df,#a371f7);padding:7px 16px;border-radius:999px;
    box-shadow:0 4px 12px rgba(110,120,255,.32)}   /* 모바일: ☰ 왼쪽 로그인 버튼 */
  .menu a.loginbtn{display:none}                    /* 모바일: 드롭다운 내 중복 로그인 숨김 */
  .menu{display:none;position:absolute;top:58px;left:0;right:0;flex-direction:column;align-items:stretch;
    background:var(--panel);border-bottom:1px solid var(--line);padding:8px;gap:2px}
  body.navopen .menu{display:flex}
  .menu a.loginbtn{margin:6px 0 0}
  .hero h1{font-size:34px}
  .hcnt{display:none}   /* 모바일: '건 포착' 배지 숨김(헤더 짤림 방지) */
}
