/* SIHWANG LAB shared look (user 2026-10-04: "시스템과 컨셉 그대로 두고 디자인만 세련되게, 요즘 감성").
   Loaded after each page's own <style>, so it only restyles: tokens, surfaces, header, controls. No layout or data changes.
   Up stays red, down stays blue (Korean market convention). */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');

:root{
  --bg:#f3f5fa;--card:#ffffff;--line:#e3e7f0;--text:#141824;--sub:#596173;--faint:#959cab;--chip:#f0f2f7;
  --accent:#3b5bdb;--g1:#4c6ef5;--g2:#7950f2;--g3:#22b8cf;
  --glow:rgba(76,110,245,.10);--shadow:0 1px 2px rgba(20,30,60,.04),0 8px 26px rgba(40,60,130,.06);
  --hi:inset 0 1px 0 rgba(255,255,255,.9);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a0d14;--card:#121722;--line:#222a3b;--text:#e8ecf4;--sub:#a1a9b9;--faint:#677085;--chip:#1a2030;
  --accent:#7c93ff;--glow:rgba(92,124,250,.16);--shadow:0 10px 30px rgba(0,0,0,.28);--hi:inset 0 1px 0 rgba(255,255,255,.035);}}
:root[data-theme="dark"]{
  --bg:#0a0d14;--card:#121722;--line:#222a3b;--text:#e8ecf4;--sub:#a1a9b9;--faint:#677085;--chip:#1a2030;
  --accent:#7c93ff;--glow:rgba(92,124,250,.16);--shadow:0 10px 30px rgba(0,0,0,.28);--hi:inset 0 1px 0 rgba(255,255,255,.035);}

body{
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  letter-spacing:-.15px;font-feature-settings:"tnum" 0;
  background:
    radial-gradient(900px 420px at 15% -160px,var(--glow),transparent 70%),
    radial-gradient(800px 400px at 95% -120px,color-mix(in srgb,var(--g3) 9%,transparent),transparent 70%),
    var(--bg);
  background-attachment:fixed;
}
::selection{background:color-mix(in srgb,var(--g1) 28%,transparent)}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--faint) 45%,transparent) transparent}
:focus-visible{outline:2px solid var(--g1);outline-offset:2px;border-radius:8px}

/* header logo: lens mark (/logo.svg) + SIHWANG wordmark + gradient LAB pill (user 2026-10-04: "A 메인 + D 결합") */
.hd3 h1{font-weight:850;letter-spacing:-1px;line-height:1}
.hd3 h1 a.home{display:inline-flex;align-items:center;gap:11px;color:var(--text)}
.brand-mark{width:38px;height:38px;flex:none;display:block;border-radius:0;   /* 네모 없이 돋보기만 (user 2026-10-10) */
  filter:drop-shadow(0 4px 10px color-mix(in srgb,var(--g1) 30%,transparent));transition:transform .25s ease}
.hd3 h1 a.home:hover .brand-mark{transform:rotate(-6deg) scale(1.04)}
.brand-word{letter-spacing:-.9px}
.brand-lab{font-size:.5em;font-weight:800;letter-spacing:.6px;color:#fff;padding:.36em .66em;border-radius:999px;margin-left:-3px;
  background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3));box-shadow:0 4px 12px color-mix(in srgb,var(--g2) 30%,transparent)}
@media (max-width:760px){.brand-mark{width:32px;height:32px;border-radius:9px}.hd3 h1 a.home{gap:9px}}
.site-sw{background:color-mix(in srgb,var(--card) 72%,transparent);border:1px solid var(--line);border-radius:14px;padding:4px;
  box-shadow:var(--shadow),var(--hi);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.site-sw a{border-radius:10px;transition:background .18s,color .18s}
.site-sw a[aria-current="page"]{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;
  box-shadow:0 4px 14px color-mix(in srgb,var(--g1) 35%,transparent)}
.site-sw a+a::before{display:none}
.meta .dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}

/* surfaces: softer radius, layered shadow, faint top highlight */
.card,.gcard{border-radius:20px;border-color:var(--line);box-shadow:var(--shadow),var(--hi);
  background:linear-gradient(180deg,color-mix(in srgb,var(--g1) 2.5%,var(--card)),var(--card) 140px)}
.cand,.iss{border-radius:16px}
.cand{transition:border-color .2s,box-shadow .2s,transform .2s}
@media (hover:hover){.cand:hover{border-color:color-mix(in srgb,var(--g1) 35%,var(--line));box-shadow:0 8px 24px var(--glow);transform:translateY(-1px)}}
.ixc,.flowbig div,.kv div{border-radius:14px}
.sec-title{letter-spacing:-.3px}

/* controls: segmented tabs and pills get the same gradient language */
.seg,.views,.pnav{border-radius:12px;padding:4px}
.seg button,.views button{border-radius:9px;transition:background .18s,color .18s}
.views button[aria-selected="true"],.tab[aria-selected="true"],.bsort button[aria-pressed="true"]{
  background:linear-gradient(135deg,var(--g1),var(--g2));border-color:transparent;color:#fff;
  box-shadow:0 4px 12px color-mix(in srgb,var(--g1) 30%,transparent)}
.tab{border-radius:999px;transition:border-color .18s,background .18s}
.tab:not([aria-selected="true"]):hover{border-color:color-mix(in srgb,var(--g1) 45%,var(--line))}
.ixt{border-radius:12px}
.chip,.bc{border-radius:10px}
.bpop{border-radius:14px;box-shadow:0 18px 44px rgba(10,20,50,.22)}
select{border-radius:10px}
.cand:first-child .rank,.iss .row.first .rk{background:linear-gradient(135deg,var(--g1),var(--g2))}
.iss .row.first{border-color:color-mix(in srgb,var(--g1) 35%,transparent);
  background:linear-gradient(135deg,color-mix(in srgb,var(--g1) 14%,transparent),color-mix(in srgb,var(--g2) 6%,transparent) 55%,transparent)}

.foot{opacity:.85}

/* ---------- 렌즈 (follow, lens.js) ---------- */
.lr-mark{display:inline-block;width:16px;height:16px;border-radius:5px;background:url(/logo.svg?v=1) center/cover;vertical-align:-2px;margin-right:6px;flex:none}
/* 내 렌즈 card on the 시황 page (after 실시간 이슈) */
.lp-title{align-items:center}
.lr-more{margin-left:auto;color:var(--sub);font-size:12px;font-weight:600;text-decoration:none}.lr-more:hover{color:var(--g1)}
.lens-panel .lr-row{margin:0 -2px 6px}
.lr-pill.all{font-weight:700;padding:8px 14px}
.lp-empty{display:grid;gap:4px;padding:14px 16px;border-radius:14px;border:1.5px dashed color-mix(in srgb,var(--g1) 35%,var(--line));
  background:color-mix(in srgb,var(--g1) 5%,transparent);font-size:13px;color:var(--sub)}
.lp-empty b{color:var(--text);font-size:14px}
.lp-one{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 12px;margin-bottom:6px;border-radius:14px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--g1) 9%,var(--card)),var(--card) 70%);border:1px solid color-mix(in srgb,var(--g1) 25%,var(--line));animation:lrIn .22s ease}
.lp-one b{font-size:14.5px}
.lp-logo{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none;background:var(--chip)}
.lp-news{display:grid}
.lp-item{position:relative;display:flex;align-items:flex-start;gap:10px;padding:10px 4px 10px 14px;border-top:1px solid var(--line);color:var(--text);text-decoration:none}
.lp-item:first-child{border-top:0}
.lp-item::before{content:'';position:absolute;left:3px;top:17px;width:6px;height:6px;border-radius:50%;background:transparent}
.lp-item.fresh::before{background:linear-gradient(135deg,var(--g1),var(--g2))}
.lp-item:hover .lp-t{color:var(--g1)}
.lp-stocks{flex:none;display:flex;flex-direction:column;gap:3px;align-items:flex-start}
@media (max-width:560px){.lp-stocks{flex-direction:row;flex-wrap:wrap}}
.lp-stock{flex:none;display:inline-flex;align-items:center;gap:5px;max-width:11.5em;padding:2px 9px 2px 3px;border-radius:999px;background:var(--chip);
  font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.lp-stock .lp-logo{width:18px;height:18px}
.lp-body{display:grid;gap:2px;min-width:0}
.lp-t{font-size:14px;line-height:1.45;transition:color .15s}
.lp-item.fresh .lp-t{font-weight:700}
.lp-body small{font-size:11.5px;color:var(--faint)}
@media (max-width:560px){.lp-item{flex-direction:column;gap:5px}}
.lr-row{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none}.lr-row::-webkit-scrollbar{display:none}
.lr-pill{position:relative;flex:none;display:inline-flex;align-items:center;gap:7px;padding:8px 13px 8px 10px;border-radius:999px;cursor:pointer;font:inherit;font-size:13.5px;
  color:var(--text);border:1.5px solid var(--line);background:var(--card);box-shadow:var(--shadow),var(--hi);transition:transform .18s,border-color .18s}
.lr-pill:hover{transform:translateY(-1px)}
.lr-pill.new{border-color:transparent;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(120deg,var(--g1),var(--g2),var(--g3)) border-box}
.lr-pill.new::after{content:'';position:absolute;top:2px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--g2);box-shadow:0 0 0 2px var(--card)}
.lr-pill.on{background:linear-gradient(color-mix(in srgb,var(--g1) 10%,var(--card)),color-mix(in srgb,var(--g1) 10%,var(--card))) padding-box,linear-gradient(120deg,var(--g1),var(--g2)) border-box;border-color:transparent}
.lr-dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}
.lr-pill.up .lr-dot{background:var(--up);box-shadow:0 0 6px var(--up)}.lr-pill.down .lr-dot{background:var(--down);box-shadow:0 0 6px var(--down)}
.lr-nm{font-weight:700;white-space:nowrap}
.lr-ch{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.lr-pill.up .lr-ch,.lr-ch.up{color:var(--up)}.lr-pill.down .lr-ch,.lr-ch.down{color:var(--down)}.lr-pill.flat .lr-ch,.lr-ch.flat{color:var(--faint)}
@keyframes lrIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.lr-quiet{color:var(--sub);font-size:13px;padding:10px 4px}
.lr-tag{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--g1) 12%,transparent);color:var(--accent)}
.lr-go{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--accent);text-decoration:none}
/* lens button on a stock */
.lens-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.lens-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 15px 8px 12px;border-radius:999px;cursor:pointer;font:inherit;font-size:13.5px;font-weight:800;
  color:var(--text);border:1.5px solid color-mix(in srgb,var(--g1) 40%,var(--line));background:var(--card);transition:transform .18s,box-shadow .18s}
.lens-btn svg{width:17px;height:17px}
.lens-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px var(--glow)}
.lens-btn.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3));box-shadow:0 6px 18px color-mix(in srgb,var(--g1) 35%,transparent)}
.lens-btn.pop{animation:lensPop .42s cubic-bezier(.3,1.6,.5,1)}
@keyframes lensPop{0%{transform:scale(.88)}60%{transform:scale(1.08)}100%{transform:scale(1)}}
.lens-count{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums;min-height:1em}
/* 연결 렌즈 */
.lens-linked{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.ll-t{font-size:12px;font-weight:700;color:var(--sub);margin-right:2px}
.ll-c{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 4px;border-radius:999px;background:var(--chip);font-size:12.5px}
.logo.xs{width:20px;height:20px}
.ll-n{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--text);cursor:pointer}.ll-n:hover{color:var(--g1)}
.ll-r{font-size:10.5px;font-weight:700}.ll-r.customer{color:var(--up)}.ll-r.supplier{color:var(--down)}.ll-r.partner{color:var(--faint)}
.ll-a{border:0;cursor:pointer;min-width:24px;height:22px;padding:0 7px;border-radius:999px;font:inherit;font-size:11px;font-weight:800;color:var(--accent);background:color-mix(in srgb,var(--g1) 14%,transparent)}
.ll-a.on{color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2))}
/* 내 렌즈 board on the 종목 page: same colour language as the 실시간 지수 tiles */
.lt-sort{margin-left:auto;display:inline-flex;gap:2px;background:var(--chip);border-radius:10px;padding:3px}
.lt-sort:empty{display:none}
.lt-sort button{border:0;background:transparent;color:var(--sub);font:inherit;font-size:12px;font-weight:700;padding:4px 10px;border-radius:7px;cursor:pointer}
.lt-sort button.on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}
.lboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.lt{position:relative;display:grid;gap:5px;padding:11px 12px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);cursor:pointer;min-width:0;transition:transform .18s,box-shadow .18s}
.lt:hover{transform:translateY(-1px);box-shadow:0 8px 22px var(--glow)}
a.lt{color:var(--text);text-decoration:none}
.lens-board .lt-sort{margin-left:auto}
.lt.u1{background:rgba(224,49,49,.08);border-color:rgba(224,49,49,.25)}.lt.u2{background:rgba(224,49,49,.16);border-color:var(--up)}
.lt.d1{background:rgba(28,126,214,.08);border-color:rgba(28,126,214,.25)}.lt.d2{background:rgba(28,126,214,.16);border-color:var(--down)}
.lt.new{border-color:transparent;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(120deg,var(--g1),var(--g2),var(--g3)) border-box}
.lt.new::after{content:'새 소식';position:absolute;top:-8px;left:12px;font-size:10px;font-weight:800;color:#fff;padding:1px 7px;border-radius:999px;background:linear-gradient(135deg,var(--g1),var(--g2))}
.lt-h{display:flex;align-items:center;gap:7px;min-width:0;padding-right:18px}.lt-h b{font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lt-v{display:flex;align-items:baseline;gap:7px;font-variant-numeric:tabular-nums;font-size:13px}.lt-ch{font-weight:800}
.lt-n{font-size:12px;color:var(--sub);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lt-x{position:absolute;top:6px;right:7px;border:0;background:transparent;color:var(--faint);font-size:16px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:6px;opacity:.6}
.lt-x:hover{opacity:1;color:var(--text);background:var(--chip)}
.lens-empty{grid-column:1/-1}
@media (prefers-reduced-motion:reduce){.lens-btn.pop,.lp-one{animation:none}}
/* 렌즈 ON/OFF 손맛 (user 2026-10-05): ON = pop + lens flash + sparks + logo flies to 내 렌즈, OFF = out of focus */
.lens-btn.fx-on,.ll-a.fx-on,.lens-toast button.fx-on{animation:lfxPop .55s cubic-bezier(.3,1.7,.5,1)}
.lens-btn.fx-on svg path:last-child{stroke-dasharray:14;stroke-dashoffset:14;animation:lfxDraw .32s .14s ease-out forwards}
.lens-btn.fx-off,.ll-a.fx-off,.rg-on.fx-off,.ls-x.fx-off,.rg-item.fx-off{animation:lfxBlur .5s ease-out}
@keyframes lfxPop{0%{transform:scale(.82)}45%{transform:scale(1.14)}70%{transform:scale(.97)}100%{transform:scale(1)}}
@keyframes lfxDraw{to{stroke-dashoffset:0}}
@keyframes lfxBlur{0%{filter:blur(0);transform:scale(1)}35%{filter:blur(3px) saturate(.3);transform:scale(.9);opacity:.6}100%{filter:blur(0);transform:scale(1);opacity:1}}
.lfx-ring,.lfx-spark,.lfx-tag,.lfx-fly{position:fixed;z-index:9999;pointer-events:none}
.lfx-ring{width:var(--w);height:var(--h);transform:translate(-50%,-50%);border-radius:999px}
.lfx-ring.on{border:2.5px solid var(--g2);box-shadow:0 0 16px color-mix(in srgb,var(--g1) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--g3) 40%,transparent);animation:lfxOut .62s cubic-bezier(.2,.7,.3,1) forwards}
.lfx-ring.off{border:1.5px solid color-mix(in srgb,var(--faint) 80%,transparent);animation:lfxIn .42s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes lfxOut{0%{transform:translate(-50%,-50%) scale(.85);opacity:1}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
@keyframes lfxIn{0%{transform:translate(-50%,-50%) scale(1.22);opacity:0}35%{opacity:.85}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
.lfx-spark{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;opacity:0;animation:lfxSpark .75s cubic-bezier(.15,.8,.3,1) forwards}
.lfx-spark.c0{background:var(--g1)}.lfx-spark.c1{background:var(--g2);width:5px;height:5px}
.lfx-spark.c2{background:none;border:2px solid var(--g3);width:9px;height:9px;margin:-4.5px 0 0 -4.5px}
@keyframes lfxSpark{0%{transform:translate(0,0) scale(1.2);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.lfx-tag{transform:translate(-50%,-100%);font-size:12px;font-weight:800;color:#fff;padding:4px 11px;border-radius:999px;white-space:nowrap;
  background:linear-gradient(135deg,var(--g1),var(--g2));box-shadow:0 8px 20px color-mix(in srgb,var(--g1) 40%,transparent);animation:lfxTag 1.25s ease forwards}
@keyframes lfxTag{0%{transform:translate(-50%,-60%) scale(.7);opacity:0}15%{transform:translate(-50%,-130%) scale(1.05);opacity:1}25%{transform:translate(-50%,-125%) scale(1)}
  75%{transform:translate(-50%,-145%);opacity:1}100%{transform:translate(-50%,-175%);opacity:0}}
.lfx-fly{width:34px;height:34px;border-radius:50%;background:var(--card);overflow:hidden;box-shadow:0 0 0 2.5px var(--g2),0 8px 20px color-mix(in srgb,var(--g1) 45%,transparent)}
.lfx-fly img{width:100%;height:100%;object-fit:contain;display:block}
.ls-fab.lfx-catch{animation:lfxCatch .5s cubic-bezier(.3,1.7,.5,1)}
.lens-side .lfx-catch,.rg-row.lfx-catch{animation:lfxGlow .6s ease-out}
@keyframes lfxCatch{0%{transform:scale(1)}40%{transform:scale(1.18) rotate(-6deg)}100%{transform:scale(1)}}
@keyframes lfxGlow{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--g1) 55%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.lens-count.bump{animation:lfxBump .4s ease-out}
@keyframes lfxBump{0%{transform:translateY(4px);opacity:.3}100%{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.lens-btn.fx-on,.ll-a.fx-on,.lens-btn.fx-off,.ll-a.fx-off,.rg-on.fx-off,.ls-x.fx-off,.rg-item.fx-off,.lens-btn.fx-on svg path:last-child,.lens-count.bump,.ls-fab.lfx-catch,.lens-side .lfx-catch,.rg-row.lfx-catch{animation:none;stroke-dashoffset:0}}

/* 렌즈 home: the search box runs the full width, like the 종목 page (user 2026-10-05) */
.market-search.wide{width:100%;margin:-4px 0 18px}
.market-search.wide .market-search-field{padding:10px 12px 10px 10px;border-radius:18px;gap:14px}
.market-search.wide .market-search-symbol{width:40px;height:40px;border-radius:13px}
.market-search.wide .market-search-symbol svg{width:20px;height:20px}
/* search icon = our signature mark (lens + chart line) in the brand gradient, no tile behind it (user 2026-10-05) */
.market-search .market-search-symbol.brand-search{background:transparent;box-shadow:none}
.market-search .market-search-symbol.brand-search svg{width:30px;height:30px}
.market-search.wide .market-search-symbol.brand-search svg{width:32px;height:32px}
.market-search-field:focus-within .market-search-symbol.brand-search{transform:none}
.market-search.wide input{font-size:16.5px;padding:8px 0}
.market-search.wide .market-search-results.pop-mode{right:0;width:auto}
/* '/' key hint on the 종목 search (replaces the '이름 · 코드 · 약칭' label) */
.sbox-kbd{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;font:700 12.5px inherit;color:var(--g1);
  border:1px solid color-mix(in srgb,var(--g1) 25%,transparent);background:color-mix(in srgb,var(--g1) 9%,transparent)}
:root[data-theme="dark"] .sbox-kbd{color:#91a7ff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sbox-kbd{color:#91a7ff}}
@media (max-width:640px){.sbox-kbd{display:none}}

/* 그룹 지도 (holding companies, stocks.html renderGroup) */
.gm-sum{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}
.gm-stat{display:grid;gap:1px;padding:9px 14px;border-radius:12px;background:var(--chip);min-width:120px}
.gm-stat span{font-size:11.5px;color:var(--sub);font-weight:700}.gm-stat b{font-size:17px;font-variant-numeric:tabular-nums}
.gm-stat.disc{background:color-mix(in srgb,var(--down) 12%,var(--card))}.gm-stat.disc b{color:var(--down)}
.gm-stat.prem{background:color-mix(in srgb,var(--up) 12%,var(--card))}.gm-stat.prem b{color:var(--up)}
.gm-note{font-size:12.5px;color:var(--sub);margin:0 2px 12px}
.gm-tree{display:grid;gap:14px}
.gm-top{justify-self:center;display:inline-flex;align-items:center;gap:9px;padding:8px 16px 8px 8px;border-radius:999px;position:relative;
  border:1.5px solid transparent;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(120deg,var(--g1),var(--g2),var(--g3)) border-box}
.gm-top b{font-size:15px}.gm-top .logo{width:32px;height:32px}
.gm-top::after{content:'';position:absolute;left:50%;top:100%;width:2px;height:14px;background:linear-gradient(var(--g1),transparent)}
.gm-block{display:grid;gap:7px;padding-top:4px;border-top:1px dashed color-mix(in srgb,var(--g1) 30%,var(--line))}
.gm-bt{font-size:12px;font-weight:800;color:var(--sub);margin-top:6px}
.gm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:8px}
.gm-card{display:grid;gap:6px;padding:11px 12px;border-radius:14px;border:1px solid var(--line);background:var(--card);text-align:left;font:inherit;color:var(--text)}
.gm-card.go{cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.gm-card.go:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--g1) 45%,var(--line));box-shadow:0 8px 22px var(--glow)}
.gm-ch{display:flex;align-items:center;gap:8px;min-width:0}.gm-ch b{font-size:13.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.gm-ini{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--chip);color:var(--sub)}
.gm-row{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.gm-stake{font-size:12px;font-weight:800;color:var(--accent);padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--g1) 12%,transparent)}
.gm-val{font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums}
.gm-sub{font-size:11px;color:var(--faint)}
.gm-kids{display:grid;gap:5px;margin-top:2px;font-size:11.5px;color:var(--sub);line-height:1.4}
.gm-kt{font-size:11px;color:var(--faint);font-weight:600}
.gm-kid{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;column-gap:8px;row-gap:1px;min-width:0;padding:6px 9px;border-radius:9px;background:var(--chip);font-weight:700;color:var(--text)}
.gm-kid .logo{grid-row:span 2}
.gm-kid b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.gm-kid small{font-size:11px;font-weight:600;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gm-kid.go{cursor:pointer}.gm-kid.go:hover{background:color-mix(in srgb,var(--accent) 12%,var(--chip))}
.gm-kid .logo.xs,.logo.xs{width:22px;height:22px}

/* 거래 관계도 (flow layout, stocks.html relGraph) */
.rgw{padding:6px 2px 0}
.rgs .rgh{font-size:15px;font-weight:800;letter-spacing:.2px}   /* 공급사·고객사·협력사 크게 (user 2026-10-13) */
.rgs .rgh.k-supplier{fill:#4dabf7}.rgs .rgh.k-customer{fill:#ff6b6b}.rgs .rgh.k-partner{fill:var(--faint)}
.rgs .rge{opacity:.75}
.rgs .rgn{fill:var(--card);stroke-width:2}
.rgs .rgn.k-customer{stroke:color-mix(in srgb,#f03e3e 55%,var(--line))}
.rgs .rgn.k-supplier{stroke:color-mix(in srgb,#339af0 55%,var(--line))}
.rgs .rgn.k-partner{stroke:var(--line)}
.rgs .rgl{font-size:14px;font-weight:700;fill:var(--text)}
.rgs .rgpp{stroke-width:1}
.rgs .rgpp.k-customer{fill:color-mix(in srgb,#f03e3e 16%,var(--card));stroke:color-mix(in srgb,#f03e3e 45%,transparent)}
.rgs .rgpp.k-supplier{fill:color-mix(in srgb,#339af0 16%,var(--card));stroke:color-mix(in srgb,#339af0 45%,transparent)}
.rgs .rgpp.k-partner{fill:var(--chip);stroke:var(--line)}
.rgs .rgp{font-size:11px;font-weight:800;fill:var(--text)}
.rgs .rgk:hover .rge,.rgs g.rgk:hover{cursor:pointer}

/* 거래 관계도 hover focus: the pointed company, the centre and their arrow stay sharp, the rest fades */
.rgs [data-i]{transition:opacity .22s ease,filter .22s ease}
.rgs.hl [data-i]:not(.hi){opacity:.12;filter:grayscale(1)}
.rgs.hl g.hi{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--g1) 55%,transparent))}
.rgs.hl path.hi{opacity:1!important}
@media (prefers-reduced-motion:reduce){.rgs [data-i]{transition:none}}

/* ---------- 인기 종목 popup in the search dropdown (ui.js) ---------- */
.pop-mode{padding:14px 14px 10px!important}
.market-search-results.pop-mode{right:auto;width:min(560px,calc(100vw - 32px))}
.pop-mode::before{margin:-14px -14px 10px!important}
.pop-head{display:flex;align-items:baseline;gap:8px;margin:0 4px 8px}.pop-head b{font-size:13.5px}.pop-head span{font-size:11.5px;color:var(--faint)}
.pop-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}
.pop-item{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:10px;color:var(--text);text-decoration:none;font-size:14px;transition:background .12s}
.pop-item:hover{background:color-mix(in srgb,var(--g1) 9%,transparent)}
.pop-rk{flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:800;color:var(--g1);background:color-mix(in srgb,var(--g1) 10%,transparent)}
.pop-item.top .pop-rk{color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2))}
.pop-nm{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600}
.pop-empty{margin:4px 4px 6px;padding:14px;border-radius:12px;border:1.5px dashed color-mix(in srgb,var(--g1) 30%,var(--line));color:var(--sub);font-size:13px;line-height:1.5}
@media (max-width:420px){.pop-grid{column-gap:6px}.pop-item{font-size:13px;gap:8px;padding:8px 4px}}

/* ---------- 렌즈 링 (렌즈 home): aperture rings, logo + name only ---------- */
.rg-row{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}.rg-row::-webkit-scrollbar{display:none}
.rg-item{flex:none;width:76px;display:grid;justify-items:center;gap:6px;border:0;background:none;padding:0;cursor:pointer;font:inherit;color:var(--text)}
.rg-face{position:relative;width:72px;height:72px;display:grid;place-items:center;transition:transform .25s cubic-bezier(.3,1.5,.5,1)}
.rg-item:hover .rg-face{transform:scale(1.05)}
.rg-face .lp-logo{position:relative;z-index:1;width:56px;height:56px;border:2.5px solid var(--card);background:var(--card);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--text) 6%,transparent),0 6px 16px rgba(0,0,0,.16)}
/* soft halo behind a ring with unread news */
.rg-face::before{content:'';position:absolute;inset:4px;border-radius:50%;opacity:0;transition:opacity .3s;
  background:radial-gradient(circle,color-mix(in srgb,var(--g2) 38%,transparent),transparent 70%);filter:blur(8px)}
.rg-item.fresh .rg-face::before{opacity:1}
.rg-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.rg-ring path{fill:none;stroke-linecap:round;transition:stroke-width .2s}
.rg-ring path.off{stroke:color-mix(in srgb,var(--faint) 45%,transparent);stroke-width:1.4}
.rg-ring path.on{stroke:var(--rg);stroke-width:2.8}
.rg-item:hover .rg-ring path.on{stroke-width:3.2}
.rg-cnt{position:absolute;z-index:2;right:0;bottom:2px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:grid;place-items:center;
  font-size:10.5px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2));box-shadow:0 0 0 2.5px var(--card),0 3px 8px color-mix(in srgb,var(--g2) 45%,transparent)}
.rg-item.on .rg-face{transform:scale(1.06)}
.rg-item.on .rg-face .lp-logo{box-shadow:0 0 0 1px color-mix(in srgb,var(--g1) 40%,transparent),0 0 0 6px color-mix(in srgb,var(--g1) 12%,transparent),0 8px 20px rgba(0,0,0,.2)}
.rg-nm{font-size:12px;font-weight:700;max-width:76px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.2px}
.rg-item.on .rg-nm{color:var(--g1)}
.rg-add .rg-face{border-radius:50%;border:2px dashed color-mix(in srgb,var(--g1) 45%,var(--line));color:var(--g1);width:66px;height:66px;margin:3px}
.rg-add .rg-face svg{width:24px;height:24px}
.rg-add .rg-nm{color:var(--sub)}
.rg-focus{margin-top:6px;padding:14px;border-radius:18px;display:grid;gap:12px;border:1px solid color-mix(in srgb,var(--g1) 28%,var(--line));
  background:linear-gradient(135deg,color-mix(in srgb,var(--g1) 9%,var(--card)),var(--card) 55%,color-mix(in srgb,var(--g3) 5%,var(--card)));animation:rgFocus .45s ease}
@keyframes rgFocus{from{opacity:.2;filter:blur(8px);transform:scale(.985)}to{opacity:1;filter:none;transform:none}}
.rg-fh{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.rg-fh b{font-size:15.5px;letter-spacing:-.3px}
/* '지금 ○○는' summary */
.rg-brief{--m:var(--faint);display:grid;gap:7px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--m) 7%,var(--card));
  border:1px solid color-mix(in srgb,var(--m) 30%,var(--line));border-left:4px solid var(--m)}
.rg-brief.good{--m:var(--up)}.rg-brief.bad{--m:var(--down)}.rg-brief.mixed{--m:var(--amb)}.rg-brief.quiet{--m:var(--faint)}
.rgb-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rgb-h b{font-size:15px;letter-spacing:-.3px}
.rgb-t{display:inline-flex;align-items:center;gap:6px}.rgb-t svg{width:17px;height:17px;color:var(--g1)}
.rgb-p{margin:0;font-size:14px;line-height:1.75;color:var(--text)}
.rgb-watch{font-size:12px;font-weight:700;color:var(--g2)}
.rgb-mood{font-size:13px;font-weight:800;color:var(--m)}
.rgb-l{display:grid;grid-template-columns:8px 64px 1fr;gap:8px;align-items:baseline;font-size:13px;line-height:1.5}
.rgb-l b{font-size:11.5px;color:var(--sub);font-weight:800}
.rgb-dot{width:7px;height:7px;border-radius:50%;align-self:center}
.rgb-dot.p{background:var(--up)}.rgb-dot.n{background:var(--down)}.rgb-dot.z{background:var(--faint)}.rgb-dot.w{background:var(--g2)}
.rgb-note{font-size:11px;color:var(--faint)}
@media (max-width:560px){.rgb-l{grid-template-columns:8px 1fr}.rgb-l span{grid-column:2}}
.rg-sec{display:grid;gap:2px}
.rg-st{font-size:11.5px;font-weight:800;color:var(--accent);letter-spacing:.2px;margin-bottom:2px}
.rg-news,.rg-link{position:relative;display:grid;gap:2px;padding:8px 4px 8px 14px;border-radius:10px;color:var(--text);text-decoration:none}
a.rg-news:hover,a.rg-link:hover{background:color-mix(in srgb,var(--g1) 7%,transparent)}
.rg-news span,.rg-lb span{font-size:13.5px;line-height:1.45}.rg-news small,.rg-lb small{font-size:11px;color:var(--faint)}
.rg-news::before,.rg-link::before{content:'';position:absolute;left:3px;top:15px;width:6px;height:6px;border-radius:50%}
.rg-news.fresh::before,.rg-link.fresh::before{background:linear-gradient(135deg,var(--g1),var(--g2))}
.rg-news.fresh span,.rg-link.fresh .rg-lb span{font-weight:700}
.rg-link{grid-template-columns:auto 1fr;align-items:start;column-gap:10px}
.rg-who{display:flex;align-items:center;gap:6px;min-width:0}.rg-who b{font-size:13px;white-space:nowrap}
.rg-who .lp-logo{width:22px;height:22px}
.rg-ini{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;background:var(--chip);color:var(--sub)}
.rg-dir{font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:999px;white-space:nowrap}
.rg-dir.c{color:var(--up);background:color-mix(in srgb,var(--up) 12%,transparent)}.rg-dir.s{color:var(--down);background:color-mix(in srgb,var(--down) 12%,transparent)}.rg-dir.p{color:var(--sub);background:var(--chip)}
.rg-lb{display:grid;gap:1px;min-width:0}
@media (max-width:560px){.rg-link{grid-template-columns:1fr;row-gap:4px}}
/* turning a lens off: card button, ring edit mode, sidebar ×, undo toast */
.rg-on{display:inline-flex;align-items:center;gap:5px;border:0;cursor:pointer;font:inherit;font-size:12.5px;font-weight:800;color:#fff;padding:6px 12px 6px 9px;border-radius:999px;
  background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3));box-shadow:0 4px 12px color-mix(in srgb,var(--g1) 35%,transparent);transition:filter .15s,transform .15s}
.rg-on svg{width:15px;height:15px}
.rg-on:hover{filter:saturate(.4) brightness(.9);transform:translateY(-1px)}
.rg-on:hover span,.ls-on:hover span{font-size:0}.rg-on:hover span::after,.ls-on:hover span::after{content:'렌즈 OFF';font-size:12.5px}
.rg-edit{margin-left:auto;border:1px solid var(--line);background:var(--card);color:var(--sub);font:inherit;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px;cursor:pointer}
.rg-edit:hover{color:var(--text)}
.rg-edit.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--g1),var(--g2))}
.rg-x{position:absolute;z-index:3;top:-2px;right:-2px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:700;line-height:1;
  color:#fff;background:var(--down);box-shadow:0 0 0 2.5px var(--card),0 3px 8px rgba(0,0,0,.25)}
.rg-row.editing .rg-item:not(.rg-add) .rg-face{animation:rgWiggle .9s ease-in-out infinite}
.rg-row.editing .rg-item:not(.rg-add):nth-child(even) .rg-face{animation-delay:-.45s}
.rg-row.editing .rg-cnt{display:none}
@keyframes rgWiggle{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
.ls-x{flex:none;width:24px;height:24px;border:0;border-radius:8px;background:transparent;color:var(--faint);font-size:16px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,background .15s}
.ls-row:hover .ls-x,.ls-x:focus-visible{opacity:1}
.ls-x:hover{background:var(--chip);color:var(--text)}
@media (hover:none){.ls-x{opacity:.7}}
.lens-toast{position:fixed;left:50%;bottom:24px;z-index:80;display:flex;align-items:center;gap:14px;padding:11px 12px 11px 18px;border-radius:14px;
  color:#fff;background:rgba(18,22,34,.94);box-shadow:0 14px 40px rgba(0,0,0,.35);font-size:13.5px;font-weight:600;
  transform:translate(-50%,140%);opacity:0;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .3s;pointer-events:none}
.lens-toast.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.lens-toast button{border:0;background:color-mix(in srgb,var(--g1) 30%,transparent);color:#c5d0ff;font:inherit;font-size:13px;font-weight:800;padding:6px 12px;border-radius:9px;cursor:pointer}
@media (prefers-reduced-motion:reduce){.rg-row.editing .rg-face{animation:none}.lens-toast{transition:none}}
.rg-off{justify-self:start;border:1px solid var(--line);background:transparent;color:var(--faint);font:inherit;font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;cursor:pointer}
.rg-off:hover{color:var(--text)}
@media (prefers-reduced-motion:reduce){.rg-focus{animation:none}}

/* drag to reorder lenses (lens.js sortable) */
.rg-item[data-code],.ls-row,.lr-pill[data-code]{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}
.rg-item[data-code]{cursor:grab}.ls-row{cursor:grab}.lr-pill[data-code]{cursor:grab}
.sorting,.sorting *{cursor:grabbing!important}
.sortbox{position:relative}
.drag-slot{visibility:hidden}
.drag-ghost{filter:drop-shadow(0 14px 22px rgba(0,0,0,.38))!important;cursor:grabbing}
.rg-row.editing .rg-item[data-code]{touch-action:none}   /* in 편집 mode a finger drags instead of scrolling */
.sorting{touch-action:none}

/* ---------- 렌즈 사이드바 = 휴대폰 (lens.js, user 2026-10-07: '핸드폰 감성은 유지하고 구조만 사이드바') ---------- */
/* wide screens (1280px+): opening the phone pushes the page aside like a broker's side panel (user 2026-10-07:
   '사이드바 열면 메인화면이 옆으로 밀리게, 핸드폰 화면이 메인화면을 가리지 않게') — the page keeps the space left of it */
body{transition:padding-right .3s cubic-bezier(.2,.9,.25,1)}
html.lens-docked body{padding-right:428px}
/* 휴대폰은 본문 바로 옆에 (user 2026-10-09: '위치 비효율적, 메인화면에 붙여'): on a wide screen it stands about 20px right of the
   1240px page instead of at the window edge */
@media (prefers-reduced-motion:reduce){body{transition:none}}
.lens-side{position:fixed;z-index:60;display:flex;flex-direction:column;padding:0;border-radius:40px;border:1px solid var(--line);
  background:color-mix(in srgb,var(--card) 92%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden;
  box-shadow:0 0 0 6px color-mix(in srgb,var(--text) 7%,var(--bg)),0 0 0 7px var(--line),0 26px 70px rgba(5,10,30,.32);transition:background .3s}
.lens-side.docked{top:max(22px,calc((100vh - 800px)/2));bottom:auto;height:min(800px,calc(100vh - 44px));right:max(22px,calc((100vw - 1588px)/2));width:384px;animation:lsDock .32s cubic-bezier(.2,.9,.25,1)}
@keyframes lsDock{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
/* narrow screens: the same phone pops up just above the lens button; it never dims the page */
.lens-side:not(.docked){top:auto;right:18px;bottom:84px;width:min(384px,calc(100vw - 30px));height:min(780px,calc(100dvh - 112px));
  transform-origin:calc(100% - 26px) 100%;transform:translateY(10px) scale(.92);opacity:0;visibility:hidden;
  transition:transform .26s cubic-bezier(.2,.9,.25,1.2),opacity .2s,visibility 0s .26s}
.lens-side.open:not(.docked){transform:none;opacity:1;visibility:visible;transition:transform .26s cubic-bezier(.2,.9,.25,1.2),opacity .2s,visibility 0s}
.ls-status{flex:none;display:flex;align-items:center;justify-content:space-between;height:34px;padding:8px 26px 0;font-size:12.5px;color:var(--text)}
.ls-clock{font-weight:800;font-variant-numeric:tabular-nums;min-width:40px}
.ls-island{width:86px;height:23px;border-radius:999px;background:#05070c;box-shadow:inset 0 0 0 1px #ffffff10}
.ls-sig{display:flex;align-items:flex-end;gap:2px;min-width:40px;justify-content:flex-end}
.ls-sig i{width:3px;border-radius:1px;background:var(--text)}.ls-sig i:nth-child(1){height:4px}.ls-sig i:nth-child(2){height:6px}.ls-sig i:nth-child(3){height:8px}.ls-sig i:nth-child(4){height:10px}
.ls-sig em{width:20px;height:10px;margin-left:5px;border-radius:3px;border:1.5px solid var(--text);box-sizing:border-box;
  background:linear-gradient(90deg,var(--text) 0 70%,transparent 70%) content-box;padding:1px}
.ls-screen{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;padding:10px 14px 6px}
.ls-nav{flex:none;display:flex;justify-content:space-around;align-items:center;height:46px;padding:0 34px 4px}
.ls-nb{width:54px;height:36px;border:0;border-radius:12px;background:transparent;color:var(--sub);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s,transform .12s}
.ls-nb svg{width:21px;height:21px}
.ls-nb:hover{background:var(--chip);color:var(--text)}.ls-nb:active{transform:scale(.9)}
.lens-side.recents .ls-nb.nb-recent{color:var(--g1)}
.ls-list{flex:1;min-height:0;align-content:start}
.ls-foot{flex:none}
/* ▢ 화면 끄기: the screen squeezes to a bright line and goes dark; turning on fades the screen back in */
.lens-side.powering{background:#05070c}
.lens-side.powering .ls-screen,.lens-side.powering .ls-recents{animation:lsOff .42s cubic-bezier(.6,0,.4,1) forwards}
.lens-side.powering .ls-status,.lens-side.powering .ls-nav{opacity:0;transition:opacity .15s}
@keyframes lsOff{0%{transform:none;filter:none}55%{transform:scale(1,.006);filter:brightness(2.6);opacity:1}100%{transform:scale(0,.006);opacity:0}}
.lens-side.booting .ls-screen{animation:lsOn .5s cubic-bezier(.2,.9,.25,1) both}
@keyframes lsOn{0%{opacity:0;transform:scale(.97);filter:brightness(1.8) blur(3px)}100%{opacity:1;transform:none;filter:none}}
/* ||| 열어 둔 창: the phone's recent-apps view */
.ls-recents{position:absolute;left:0;right:0;top:34px;bottom:46px;z-index:5;display:flex;flex-direction:column;gap:6px;padding:12px 0 6px;
  background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:rcIn .22s ease-out}
.ls-recents[hidden]{display:none}
@keyframes rcIn{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}
.rc-top{display:flex;align-items:center;gap:8px;padding:0 20px}.rc-top b{font-size:15px}.rc-top span{font-size:12px;color:var(--faint)}
.rc-all{margin-left:auto;border:1px solid var(--line);background:var(--card);color:var(--sub);font:inherit;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;cursor:pointer}
.rc-cards{flex:1;min-height:0;display:flex;gap:14px;align-items:center;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 44px 10px;scrollbar-width:none}
.rc-cards::-webkit-scrollbar{display:none}
.rc-card{position:relative;flex:0 0 74%;height:84%;scroll-snap-align:center;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:24px;
  background:var(--card);border:1px solid var(--line);box-shadow:0 14px 34px rgba(5,10,30,.22);cursor:pointer;transition:transform .18s}
.rc-card:hover{transform:translateY(-3px)}.rc-card.on{border-color:color-mix(in srgb,var(--g1) 55%,var(--line))}
.rc-head{display:flex;align-items:center;gap:8px;font-size:14px;padding-right:28px}.rc-head .lp-logo{width:26px;height:26px}
.rc-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3))}.rc-ic svg{width:15px;height:15px}
.rc-body{display:grid;gap:8px;align-content:start;font-size:12.5px;color:var(--sub);overflow:hidden}.rc-body p{margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rc-mini{display:flex;align-items:center;gap:7px}.rc-mini .lp-logo{width:20px;height:20px}.rc-mini span{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text)}
.rc-px{display:flex;align-items:baseline;gap:8px}.rc-px b{font-size:17px;color:var(--text)}
.rc-x{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;border:0;background:var(--chip);color:var(--sub);font-size:15px;line-height:1;cursor:pointer}
.rc-x:hover{color:var(--text)}
.ls-fab.on{transform:rotate(0) scale(.94);box-shadow:0 0 0 4px color-mix(in srgb,var(--g1) 25%,transparent),0 12px 30px color-mix(in srgb,var(--g1) 45%,transparent)}
.ls-shade{position:fixed;inset:0;z-index:59;background:rgba(5,8,15,.45);opacity:0;pointer-events:none;transition:opacity .25s}
.ls-shade.on{opacity:1;pointer-events:auto}
.ls-head{display:flex;align-items:center;gap:7px;padding:0 4px}
.ls-title{display:inline-flex;align-items:center;font-weight:800;font-size:15px;letter-spacing:-.3px}
.ls-count{font-size:11px;font-weight:800;color:#fff;padding:1px 7px;border-radius:999px;background:linear-gradient(135deg,var(--g1),var(--g2))}
.ls-fold{margin-left:auto;width:28px;height:28px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--sub);font-size:16px;line-height:1;cursor:pointer}
.ls-fold:hover{color:var(--g1);border-color:color-mix(in srgb,var(--g1) 40%,var(--line))}
.ls-hot{display:grid;gap:3px;padding:10px 12px;border-radius:14px;text-decoration:none;color:var(--text);
  background:linear-gradient(135deg,color-mix(in srgb,var(--g1) 14%,var(--card)),color-mix(in srgb,var(--g2) 6%,var(--card)) 70%);border:1px solid color-mix(in srgb,var(--g1) 25%,var(--line))}
.ls-hot-k{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;color:var(--accent)}.ls-hot-k svg{width:14px;height:14px}
.ls-hot-t{font-size:13px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ls-hot small{font-size:11px;color:var(--faint)}
.ls-hot:hover .ls-hot-t{color:var(--g1)}
.ls-list{display:grid;gap:2px;overflow-y:auto;margin:0 -4px;padding:0 4px;scrollbar-width:thin}
.ls-row{position:relative;display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:12px;color:var(--text);text-decoration:none;transition:background .15s}
.ls-row:hover{background:color-mix(in srgb,var(--g1) 8%,transparent)}
.ls-row .lp-logo{width:32px;height:32px}
.ls-row.new::before{content:'';position:absolute;left:2px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:linear-gradient(135deg,var(--g1),var(--g2))}
.ls-nm{display:grid;min-width:0;flex:1}.ls-nm b{font-size:13.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ls-nm small{font-size:11px;color:var(--faint);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ls-px{display:grid;justify-items:end;flex:none;font-variant-numeric:tabular-nums}.ls-px b{font-size:13px}.ls-px small{font-size:11.5px}
.ls-empty{display:grid;justify-items:center;gap:6px;text-align:center;padding:22px 10px;color:var(--sub);font-size:12.5px;line-height:1.5}
.ls-empty svg{width:34px;height:34px;color:var(--g1);opacity:.8}.ls-empty b{color:var(--text);font-size:14px}
.ls-foot{display:block;text-align:center;padding:9px;border-radius:12px;font-size:12.5px;font-weight:700;color:var(--accent);text-decoration:none;background:color-mix(in srgb,var(--g1) 8%,transparent)}
.ls-foot:hover{background:color-mix(in srgb,var(--g1) 14%,transparent)}
.ls-fab{position:fixed;right:18px;bottom:18px;z-index:58;width:54px;height:54px;border-radius:18px;border:0;cursor:pointer;color:#fff;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3));box-shadow:0 12px 30px color-mix(in srgb,var(--g1) 45%,transparent);transition:transform .2s}
.ls-fab:hover{transform:translateY(-2px) rotate(-4deg)}
/* 렌즈 home: the mini 내 종목 button waits off stage while the big card is on screen (user 2026-10-05) */
.ls-fab{transition:transform .25s cubic-bezier(.2,.9,.25,1.2),opacity .2s}
.ls-fab.away{opacity:0;transform:translateY(24px) scale(.7);pointer-events:none}
.ls-fab svg{width:26px;height:26px}
.ls-fab[hidden]{display:none}
.ls-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--up);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg)}
.ls-badge[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.lens-side,.ls-shade,.ls-fab{transition:none}}
/* 종목 모멘텀 card under 렌즈의 분석 (user 2026-10-05) */
.mo-card{display:grid;gap:7px;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--g1) 22%,var(--line));
  background:color-mix(in srgb,var(--g1) 5%,var(--card))}
.mo-card.ls-bub{border-radius:5px 16px 16px 16px;padding:11px 12px}
.mo-h{display:flex;align-items:center;gap:8px}
.mo-t{display:inline-flex;align-items:center;gap:6px;font-size:14px}.mo-t svg{width:17px;height:17px;color:var(--g1)}
.mo-row{display:grid;grid-template-columns:76px 1fr;gap:8px;align-items:baseline;font-size:13.5px;line-height:1.5}
.mo-k{position:relative;padding-left:11px;font-size:12px;font-weight:800;color:var(--sub);white-space:nowrap}
.mo-k::before{content:'';position:absolute;left:0;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--faint)}
.mo-row.up .mo-k::before{background:var(--up)}.mo-row.dn .mo-k::before{background:var(--down)}
.mo-row.up .mo-k{color:var(--up)}.mo-row.dn .mo-k{color:var(--down)}
.mo-v{color:var(--text)}
.mo-wait{font-size:12.5px;color:var(--faint)}
.mo-story{margin:0;font-size:14px;line-height:1.65;color:var(--text)}
.mo-more summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--accent);list-style:none}.mo-more summary::-webkit-details-marker{display:none}
.mo-more summary::before{content:'▸ '}.mo-more[open] summary::before{content:'▾ '}.mo-more[open]{display:grid;gap:6px}
.mo-note{font-size:10.5px;color:var(--faint)}
@media (max-width:420px){.mo-row{grid-template-columns:1fr;gap:1px}}
/* 내 종목: the ring's 포커스 card and the panel's DM tell the same story (user 2026-10-05) */
.lk-row{display:flex;flex-wrap:wrap;gap:6px}
.lk-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 10px 3px 3px;border-radius:999px;background:var(--chip);border:1px solid var(--line);
  color:var(--text);font-size:12.5px;font-weight:700;text-decoration:none;white-space:nowrap}
.lk-chip span{overflow:hidden;text-overflow:ellipsis}
.lk-chip .lp-logo,.lk-chip .rg-ini{width:20px;height:20px;flex:none}
a.lk-chip:hover{border-color:color-mix(in srgb,var(--g1) 45%,var(--line));color:var(--g1)}
.lk-quiet{font-size:12.5px;color:var(--faint)}
.ls-partners{display:grid;gap:8px}.ls-partners .lk-row{padding:0 2px}
.rg-fn{display:grid;gap:1px;min-width:0}
.rg-px{font-size:12.5px;color:var(--sub);font-variant-numeric:tabular-nums}
.ls-next{flex:none}
.ls-quiet{font-size:12.5px;color:var(--faint);padding:0 4px 0 36px}
.ls-bub.quiet{color:var(--sub)}
.ls-msg>.rg-ini.ls-av{font-size:12px}
.ls-add{margin-left:auto;border:1px solid var(--line);background:var(--card);color:var(--accent);font:inherit;font-size:12px;font-weight:800;
  padding:5px 11px;border-radius:999px;cursor:pointer}
.ls-add:hover{border-color:color-mix(in srgb,var(--g1) 45%,var(--line))}
.ls-add+.ls-fold{margin-left:0}
/* 한눈에: AI 분석 card (no mood colour on the card itself — only the small arrows carry 상승 red / 하락 blue) */
.gl-card{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:14px 16px 12px;margin-top:12px}
.gl-h{display:flex;align-items:center;gap:8px}
.gl-t{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:800;color:var(--accent)}
.gl-t svg{width:16px;height:16px}
.gl-stale{margin:0 0 8px;padding:6px 10px;border-radius:8px;font-size:12px;font-weight:600;color:var(--sub);background:var(--chip)}
.gl-mood{font-size:12px;font-weight:700;color:var(--sub);padding:2px 8px;border-radius:999px;background:var(--chip)}
.gl-line{margin:8px 0 2px;font-size:16.5px;font-weight:800;line-height:1.5;color:var(--text);letter-spacing:-.2px}
.gl-sub{font-size:12px;font-weight:700;color:var(--faint);margin:12px 0 6px}
.gl-imp{display:grid;gap:6px}
.gl-row{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1.5}
.gl-ar{flex:none;width:16px;text-align:center;font-size:11px;line-height:21px;color:var(--faint)}
.gl-row.up .gl-ar{color:#f03e3e}.gl-row.down .gl-ar{color:#1c7ed6}
.gl-tx{flex:1;min-width:0;color:var(--text)}
.gl-k{flex:none;font-size:11px;font-weight:700;color:var(--faint);white-space:nowrap;line-height:21px}
.gl-wx{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--chip)}
.gl-wi{flex:none;width:28px;height:28px;color:var(--sub)}.gl-wi svg{width:28px;height:28px}
.gl-wx.sunny .gl-wi{color:#f59f00}.gl-wx.rainy .gl-wi{color:#4c6ef5}
.gl-wt{font-size:14px;line-height:1.55;color:var(--text)}.gl-wt b{font-weight:800}
.gl-worry{font-size:12.5px;color:var(--sub);margin-top:1px}
.gl-top{display:flex;align-items:center;gap:14px;margin-top:10px}
.gl-hd{flex:1;min-width:0}
.gl-top .gl-line{margin:0}
.gl-why{margin:6px 0 0;font-size:14px;line-height:1.65;color:var(--sub)}
.gl-wline{margin-top:3px;font-size:12.5px;line-height:1.5;color:var(--sub)}.gl-wline b{font-weight:800;color:var(--text)}
.gl-dbox{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px}
.gl-dcap{font-size:10.5px;font-weight:700;color:var(--faint);letter-spacing:-.2px}
.gl-diary{flex:none;display:flex;gap:2px;padding:6px 6px 5px;border:1px solid var(--line);border-radius:12px;background:var(--chip)}
.gl-dc{display:flex;flex-direction:column;align-items:center;gap:2px;width:42px;padding:3px 0 2px;border-radius:9px;color:var(--faint);opacity:.32;transition:opacity .3s}
.gl-di{position:relative;display:grid;place-items:center;width:32px;height:32px}
.gl-di>svg:first-child{width:21px;height:21px}
.gl-dl{font-size:11px;font-weight:700;letter-spacing:-.2px}.gl-dc.on .gl-dl{font-weight:800}
.gl-dc.on{opacity:1;background:color-mix(in srgb,currentColor 12%,transparent)}
.gl-dc.bright.on{color:#ff9f1a}.gl-dc.sunny.on{color:#fcc419}.gl-dc.cloudy.on{color:#c5d3e8}.gl-dc.rainy.on{color:#5c7cfa}.gl-dc.storm.on{color:#9775fa}
.gl-dc.on .gl-di>svg:first-child{filter:drop-shadow(0 0 6px currentColor)}
.gl-ring{position:absolute;inset:-2px;width:36px;height:36px;transform:rotate(-100deg)}
.gl-ring circle{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:123;stroke-dashoffset:0;opacity:.85;animation:gl-ring .9s cubic-bezier(.22,1,.36,1) both .15s}
@keyframes gl-ring{from{stroke-dashoffset:123}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.gl-ring circle{animation:none}}
.gl-story{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.gl-story p{margin:0;font-size:14.5px;line-height:1.8;color:var(--text);word-break:keep-all}
.gl-story p+p{margin-top:10px}
.gl-imp .gl-row{font-size:13.5px}
.gl-worry{margin-top:10px}
@media (max-width:520px){.gl-top{flex-direction:column;align-items:flex-start;gap:10px}}
.gl-more{margin-top:10px}
.gl-more>summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--accent);list-style:none;display:inline-flex;align-items:center;gap:4px}
.gl-more>summary::-webkit-details-marker{display:none}
.gl-more>summary::after{content:'▾';font-size:11px}.gl-more[open]>summary::after{content:'▴'}
.gl-st{font-size:12px;font-weight:800;color:var(--faint);margin:12px 0 4px}
.gl-p{margin:0;font-size:14px;line-height:1.7;color:var(--text)}
.gl-note{margin-top:10px;font-size:11.5px;color:var(--faint)}
.ls-bub.gl-card{margin-top:0}
/* + 추가 → a search field: the pill simply stretches to the left (user 2026-10-06: simple, not the lens-on show) */
.ls-addw{margin-left:auto;position:relative;display:flex;justify-content:flex-end;flex:0 1 64px;min-width:0;height:28px;
  transition:flex-basis .26s cubic-bezier(.3,.7,.3,1),flex-grow .26s cubic-bezier(.3,.7,.3,1)}
.ls-addw .ls-add{margin-left:0;transition:opacity .14s}
.ls-q{position:absolute;inset:0;width:100%;min-width:0;opacity:0;pointer-events:none;border:1px solid color-mix(in srgb,var(--g1) 45%,var(--line));
  border-radius:999px;padding:0 12px;background:var(--card);color:var(--text);font:inherit;font-size:13px;font-weight:600;outline:0;
  transition:opacity .18s .08s,box-shadow .2s}
.ls-q::placeholder{color:var(--faint);font-weight:500}
.ls-q:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--g1) 16%,transparent)}
.ls-head.searching .ls-addw{flex:1 1 240px}
.ls-head .ls-title,.ls-head .ls-count,.ls-head .ls-fold{flex:none;white-space:nowrap}
.ls-addw+.ls-fold{margin-left:0}                 /* + 추가 sits right next to ›, not floating in the middle */
.ls-head.searching .ls-add{opacity:0;pointer-events:none}
.ls-head.searching .ls-q{opacity:1;pointer-events:auto}
.ls-results{margin:8px 2px 2px;padding:4px;border-radius:12px;border:1px solid var(--line);background:var(--card);
  box-shadow:0 10px 26px #0003;max-height:260px;overflow:auto;animation:ls-drop .18s ease-out}
.ls-results[hidden]{display:none}
@keyframes ls-drop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ls-results .search-label{padding:5px 8px 3px;color:var(--faint);font-size:10.5px;font-weight:700}
.ls-results a{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:9px;color:var(--text);text-decoration:none}
.ls-results a:hover,.ls-results a.active{background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.ls-results .market-search-logo{position:relative;display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;
  background:var(--chip);color:var(--accent);font-weight:700;font-size:12px;overflow:hidden}
.ls-results .market-search-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ls-results .market-search-copy{display:grid;min-width:0;flex:1}
.ls-results .market-search-copy b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-results .market-search-copy small{font-size:11px;color:var(--faint)}
.ls-results .market-search-arrow{display:none}
.ls-results p{margin:0;padding:10px 8px;color:var(--sub);font-size:12.5px}
@media (prefers-reduced-motion:reduce){.ls-addw,.ls-q,.ls-add{transition:none}.ls-results{animation:none}}
/* 종목 DM inside 내 렌즈 (user 2026-10-05): tap a stock → a chat-like thread slides in */
.ls-screen.ls-in>*{animation:lsIn .3s cubic-bezier(.2,.9,.25,1) both}
.ls-screen.ls-back-in>*{animation:lsBack .26s cubic-bezier(.2,.9,.25,1) both}
@keyframes lsIn{from{transform:translateX(28px);opacity:0}to{transform:none;opacity:1}}
@keyframes lsBack{from{transform:translateX(-24px);opacity:0}to{transform:none;opacity:1}}
.ls-chat-h{display:flex;align-items:center;gap:8px;padding:0 2px 10px;border-bottom:1px solid var(--line);flex:none}
.ls-back{flex:none;width:32px;height:32px;border-radius:11px;border:0;background:transparent;color:var(--text);font-size:24px;line-height:1;cursor:pointer;padding-bottom:3px}
.ls-back:hover{background:var(--chip)}
.ls-who{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--text);text-decoration:none;border-radius:12px;padding:3px 6px 3px 2px}
.ls-who:hover{background:color-mix(in srgb,var(--g1) 7%,transparent)}
.ls-who .lp-logo{width:38px;height:38px;box-shadow:0 0 0 2px var(--card),0 0 0 4px color-mix(in srgb,var(--g1) 55%,transparent)}
.ls-who .ls-nm b{font-size:15.5px}.ls-who .ls-nm small{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}
.ls-thread{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:12px 2px 6px;scrollbar-width:thin}
.ls-day{align-self:center;font-size:11px;font-weight:700;color:var(--faint);padding:3px 11px;border-radius:999px;background:var(--chip)}
.ls-msg{display:flex;align-items:flex-start;gap:8px;max-width:100%}
.ls-msg>.lp-logo,.ls-av{flex:none;width:28px;height:28px;border-radius:50%}
.ls-av.lens{display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3))}
.ls-av.lens svg{width:16px;height:16px}
.ls-bubs{display:grid;gap:4px;min-width:0;flex:1}
.ls-bub{display:grid;gap:3px;padding:10px 12px;border-radius:5px 16px 16px 16px;background:var(--chip);color:var(--text);text-decoration:none;font-size:13.5px;line-height:1.5}
.ls-bubs .ls-bub+.ls-bub{border-radius:5px 16px 16px 5px}
.ls-bub.brief{gap:6px;border:1px solid color-mix(in srgb,var(--m) 30%,var(--line));background:color-mix(in srgb,var(--m) 9%,var(--card))}
.ls-bub.brief .rgb-p{margin:0;font-size:13.5px;line-height:1.6}
.ls-bub.brief .rgb-t{font-size:13px}
.ls-bub.link small{font-size:11px;color:var(--faint)}
.ls-bub.link:hover{background:color-mix(in srgb,var(--g1) 12%,var(--chip))}
.ls-bub.link.fresh{box-shadow:inset 3px 0 0 var(--g1)}
.ls-bub.link.fresh span{font-weight:700}
.ls-from{font-size:11.5px;color:var(--accent)}
.ls-meta{font-size:10.5px;color:var(--faint);padding-left:4px}
.ls-compose{display:flex;gap:8px;align-items:center;padding-top:10px;border-top:1px solid var(--line);flex:none}
.ls-on{flex:none;display:inline-flex;align-items:center;gap:5px;border:0;cursor:pointer;font:inherit;font-size:12.5px;font-weight:800;color:#fff;padding:9px 13px 9px 10px;border-radius:999px;
  background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3))}
.ls-on svg{width:15px;height:15px}
.ls-more{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--line);
  background:var(--card);color:var(--sub);font-size:13px;font-weight:600;text-decoration:none}
.ls-more span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ls-more b{color:var(--accent);font-size:16px}
.ls-more:hover{border-color:color-mix(in srgb,var(--g1) 45%,var(--line));color:var(--text)}
@media (prefers-reduced-motion:reduce){.ls-screen.ls-in>*,.ls-screen.ls-back-in>*,.lens-side.booting .ls-screen,.ls-recents{animation:none}}
/* 내 렌즈 한 단계 크게 (user 2026-10-05): wider panel, bigger rows, logos and text */
.lens-side:not(.docked) .ls-title{font-size:17px}
.lens-side:not(.docked) .ls-count{font-size:12px;padding:1px 8px}
.lens-side:not(.docked) .ls-hot{padding:12px 14px;gap:4px}
.lens-side:not(.docked) .ls-hot-k{font-size:12.5px}
.lens-side:not(.docked) .ls-hot-t{font-size:14.5px}
.lens-side:not(.docked) .ls-hot small{font-size:12px}
.lens-side:not(.docked) .ls-row{gap:12px;padding:11px 10px}
.lens-side:not(.docked) .ls-row .lp-logo{width:40px;height:40px}
.lens-side:not(.docked) .ls-nm b{font-size:15px}
.lens-side:not(.docked) .ls-nm small{font-size:12px}
.lens-side:not(.docked) .ls-px b{font-size:14.5px}
.lens-side:not(.docked) .ls-px small{font-size:12.5px}
.lens-side:not(.docked) .ls-foot{padding:11px;font-size:13.5px}

/* 다크 / 화이트 모드 버튼 (ui.js puts it at the right end of the header) */
.theme-btn{display:grid;place-items:center;flex:none;width:36px;height:36px;padding:0;border-radius:12px;cursor:pointer;color:var(--sub);
  border:1px solid var(--line);background:color-mix(in srgb,var(--card) 72%,transparent);box-shadow:var(--shadow),var(--hi);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:color .2s,border-color .2s,transform .2s}
.theme-btn svg{width:18px;height:18px}
.theme-btn:hover{color:var(--g1);border-color:color-mix(in srgb,var(--g1) 45%,var(--line));transform:translateY(-1px)}
:root[data-theme="dark"] .theme-btn:hover{color:#ffd43b}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-btn:hover{color:#ffd43b}}
.theme-btn.spin svg{animation:themeSpin .45s ease}
@keyframes themeSpin{from{transform:rotate(-90deg) scale(.6);opacity:0}to{transform:none;opacity:1}}
.meta:has(.theme-btn){gap:12px}
html.theme-anim,html.theme-anim *{transition:background-color .35s ease,border-color .35s ease,color .35s ease,fill .35s ease!important}

@media (prefers-reduced-motion:reduce){.theme-btn.spin svg{animation:none}html.theme-anim,html.theme-anim *{transition:none!important}.cand,.site-sw a,.seg button,.views button,.tab{transition:none}.cand:hover{transform:none}}
/* ---------- 앱처럼 (user 2026-10-05: '올드한 느낌, 더 편하고 쉽고 귀찮지 않게') ---------- */
/* the top bar turns to glass once the page scrolls, so the menu and search stay one reach away */
header.hd3{position:sticky;top:0;z-index:45;margin:-20px -16px 20px;padding:14px 16px;border-radius:0 0 18px 18px;
  transition:background .2s,box-shadow .2s,border-color .2s;border:1px solid transparent;border-top:0}
html.is-scrolled header.hd3{background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(16px);
  backdrop-filter:saturate(1.5) blur(16px);border-color:color-mix(in srgb,var(--line) 80%,transparent);box-shadow:0 10px 30px rgba(5,10,30,.12)}
/* a light press on touch: buttons give way a little under the finger */
@media (hover:none){button:active,.pop-item:active,.ls-row:active,.lr-pill:active,.st:active{transform:scale(.97)}}
.tabbar{display:none}
@media (max-width:640px){
  html{scroll-padding-top:70px}
  header.hd3{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-20px -16px 14px;padding:10px 16px;border-radius:0}
  .hd3 .site-sw{display:none}
  .hd3 h1{font-size:21px;text-align:left}
  .hd3 h1 a.home{gap:8px}
  .brand-mark{width:28px;height:28px;border-radius:8px}
  .hd3 .meta{margin:0;gap:8px;justify-self:auto}
  .hd3 .meta #updated{font-size:11px}
  .theme-btn{width:34px;height:34px;border-radius:11px}
  .back{display:none}
  /* a card title keeps one line; its note drops under it instead of squeezing the title ('사업\n키워드') */
  .sec-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;white-space:nowrap}
  .sec-title>span{white-space:normal;margin-left:0}
  /* 종목 header: the price sits right under the name, read top to bottom */
  .dh .t{flex:1 1 0;min-width:0}                /* logo and name share the first line */
  .dh>.logo{align-self:flex-start;margin-top:1px}
  .dh .p{margin-left:0;width:100%;text-align:left;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
  .dh .p b{font-size:28px;letter-spacing:-.5px}
  /* bottom tab bar */
  body.has-tabbar .wrap{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  body.has-tabbar .ls-fab{display:none}
  body.has-tabbar .lens-side:not(.docked){bottom:calc(88px + env(safe-area-inset-bottom));right:12px;height:calc(100dvh - 116px - env(safe-area-inset-bottom))}
  body.has-tabbar .lens-toast{bottom:calc(96px + env(safe-area-inset-bottom))}
  /* 아래 탭 = 토스증권 탭과 같은 크기·모양 (user 2026-10-11, 토스 화면을 재서 맞춤, 단위 pt=px):
     떠 있는 알약 막대 높이 54 · 바닥에서 21 · 양옆 20 · 아이콘 약 21 · 글자 10.5 · 지금 탭은 둥근 회색 바탕(약 49 높이) */
  .tabbar{position:fixed;left:20px;right:20px;bottom:max(21px,calc(8px + env(safe-area-inset-bottom)));z-index:61;display:grid;grid-template-columns:repeat(5,1fr);
    height:54px;padding:2px;border-radius:999px;background:color-mix(in srgb,var(--card) 88%,transparent);
    -webkit-backdrop-filter:saturate(1.5) blur(18px);backdrop-filter:saturate(1.5) blur(18px);border:1px solid color-mix(in srgb,var(--text) 14%,transparent);
    box-shadow:0 8px 28px #0006}
  .tabbar a,.tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;border:0;background:none;
    font:inherit;font-size:10.5px;line-height:1.15;font-weight:600;color:var(--sub);text-decoration:none;cursor:pointer;border-radius:999px;-webkit-tap-highlight-color:transparent}
  .tabbar svg{width:26px;height:26px;stroke-width:1.9;transition:transform .2s}
  .tabbar .on{color:var(--text);background:color-mix(in srgb,var(--text) 13%,transparent)}
  .tabbar .on svg{color:var(--text)}
  .tb-badge{position:absolute;top:3px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--up);
    color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center}
  .tb-badge[hidden]{display:none}
  .tabbar .mid svg{color:var(--g1)}               /* 홈: 다른 탭과 같은 모양, 아이콘만 브랜드 색 */
  .tabbar .mid.on svg{color:var(--g1)}
}
@media (prefers-reduced-motion:reduce){header.hd3,.tabbar svg{transition:none}}
/* 급등·급락 · 이유 card on the 시황 tab (user 2026-10-05) */
.mv-tabs{display:inline-flex;gap:2px;background:var(--chip);border-radius:10px;padding:3px;margin-bottom:8px}
.mv-tabs button{border:0;background:transparent;color:var(--sub);font:inherit;font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:7px;cursor:pointer}
.mv-tabs button.on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.mv-tabs button:disabled{opacity:.4;cursor:default}
.mv-list{display:grid;gap:2px}
.mv-row{display:grid;gap:5px;padding:11px 4px;border-top:1px solid var(--line)}
/* 급등·급락 by theme: cards to swipe, the picked theme's stocks underneath */
.mvg-row{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity;scrollbar-width:thin}
.mvg{flex:0 0 232px;scroll-snap-align:start;display:flex;flex-direction:column;gap:6px;text-align:left;padding:13px 14px;border-radius:14px;
  border:1px solid var(--line);background:var(--chip);color:var(--text);font:inherit;cursor:pointer;transition:border-color .15s,background .15s}
.mvg:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.mvg.on{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.mvg-h{display:flex;align-items:baseline;gap:6px}.mvg-h b{font-size:15px;font-weight:800;letter-spacing:-.2px}
.mvg-n{font-size:11.5px;color:var(--faint);font-weight:700}
.mvg-r{margin:0;font-size:12.5px;line-height:1.45;color:var(--sub);min-height:36px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mvg-l{display:grid;gap:5px;margin-top:2px}
.mvg-i{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}
.mvg-i span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.mvg-i b{font-weight:800;white-space:nowrap}
.mvg-more{font-size:11.5px;color:var(--faint);font-weight:700}
.mvg.misc .mvg-h b{color:var(--sub)}
.mvg-detail{margin-top:4px}
.mvg-wrap{position:relative;min-width:0;max-width:100%}
.mv-list{min-width:0;grid-template-columns:minmax(0,1fr)}
.mvg-row{width:100%;min-width:0}
.mvg-arrow{position:absolute;top:calc(50% - 24px);z-index:2;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);
  background:var(--card);color:var(--text);font:inherit;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 4px 14px #0003;display:grid;place-items:center}
.mvg-arrow.prev{left:-6px}.mvg-arrow.next{right:-6px}.mvg-arrow[hidden]{display:none}
.mvg-arrow:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.mvg.picked{opacity:.25}
/* the picked card, grown to the middle (FLIP from the small card) */
/* the scrollbar's room is kept even when the page cannot scroll or a card is open: nothing slides sideways (흔들림) */
html{scrollbar-gutter:stable}
html.mvz-open{overflow:hidden}
.mvz-back{position:fixed;inset:0;z-index:90;background:rgba(6,10,24,.62);opacity:0}
.mvz{position:fixed;inset:0;margin:auto;z-index:91;width:min(620px,calc(100vw - 32px));height:fit-content;max-height:86vh;overflow:auto;
  padding:18px 20px 16px;border-radius:20px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--card);
  box-shadow:0 30px 80px rgba(0,0,0,.45);will-change:transform,clip-path;overscroll-behavior:contain}
/* the card itself, lifted out of the row and grown in the middle (its slot keeps the place) */
/* two faces with fixed widths: the text never re-wraps while the frame grows or shrinks */
.mvg.mvg-big{display:block;padding:0}
.mvg-face{position:absolute;top:0;left:0;box-sizing:border-box;display:flex;flex-direction:column}
.mvg-face>*{flex-shrink:0}
.mvg-face.small{padding:13px 14px;gap:6px}
.mvg-face.big{padding:16px 18px 14px;gap:8px}
.mvg-face.big.rest{position:relative}
.mvg-face.big .mvg-r{display:block;-webkit-line-clamp:unset;min-height:0;margin:0;font-size:14.5px;font-weight:700;line-height:1.5;color:var(--text)}
.mvg-face.big .mvz-stats{margin:4px 0}
.mvg-slot{flex:0 0 auto;scroll-snap-align:start;border:1.5px dashed color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:14px;background:transparent}
.mvg.mvg-big{position:fixed;z-index:91;margin:0;box-sizing:border-box;overflow:hidden;cursor:default;border-radius:18px;
  border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--card);box-shadow:0 30px 80px rgba(0,0,0,.45);
  overscroll-behavior:contain;will-change:left,top,width,height}
.mvg.mvg-big:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.mvz-ghost{position:fixed;margin:0;z-index:92;pointer-events:none;transform-origin:0 0;will-change:transform,opacity;box-sizing:border-box}
.mvz-h{display:flex;align-items:baseline;gap:8px}.mvz-h b{font-size:20px;font-weight:800;letter-spacing:-.3px}
.mvz-since{font-size:11.5px;font-weight:700;color:var(--sub);padding:2px 8px;border-radius:999px;background:var(--chip)}
.mvz-x{margin-left:auto;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--sub);font-size:20px;line-height:1;cursor:pointer}
.mvz-x:hover{color:var(--text)}
.mvz-reason{margin:10px 0 4px;font-size:15.5px;font-weight:700;line-height:1.5;color:var(--text)}
.mvz-story{margin:0 0 6px;font-size:13.5px;line-height:1.6;color:var(--sub)}
.mvz-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.mvz-st{display:grid;gap:2px;padding:9px 10px;border-radius:12px;background:var(--chip)}
.mvz-st span{font-size:11px;font-weight:700;color:var(--faint)}.mvz-st b{font-size:15px;font-weight:800}
@media (max-width:520px){.mvz-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mvz-lead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--text);
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--card))}
.mvz-lk{font-size:11px;font-weight:800;color:#fff;background:var(--accent);padding:1px 7px;border-radius:6px}
.mvz-list{display:grid;margin-top:10px}
.mvz-row{display:grid;gap:3px;padding:10px 2px;border-top:1px solid var(--line)}
.mvz-rh{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mvz-why{margin:0;font-size:13.5px;line-height:1.6;color:var(--text);cursor:pointer;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mvz-why.open{display:block}
.mvz-note{margin-top:10px;font-size:11.5px;color:var(--faint)}
.mvg-dt{font-size:13px;font-weight:800;color:var(--sub);padding:6px 4px 2px}
.mv-row:first-child{border-top:0}
.mv-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mv-name{font-weight:800;font-size:15px;color:var(--text);text-decoration:none}.mv-name:hover{color:var(--g1)}
.mv-ch{font-size:15px;font-variant-numeric:tabular-nums}.mv-ch.up{color:var(--up)}.mv-ch.down{color:var(--down)}
.mv-ses,.mv-small,.mv-alert{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--sub)}
.mv-alert{background:color-mix(in srgb,var(--amb) 18%,transparent);color:var(--amb)}
.mv-v{font-size:12px;color:var(--faint)}
.mv-why{font-size:13.5px;line-height:1.6;color:var(--text)}.mv-why.none{color:var(--sub)}
.mv-src{font-size:12px;font-weight:700;color:var(--accent);text-decoration:none;justify-self:start}
.mv-at{font-size:11px;color:var(--faint)}
.mv-more{margin-top:6px;border:0;background:var(--chip);color:var(--accent);font:inherit;font-size:13px;font-weight:700;padding:9px;border-radius:10px;cursor:pointer}
.mv-note{margin-top:8px;font-size:11px;color:var(--faint)}
.mv-flag{display:grid;gap:5px;padding:11px 13px;border-radius:14px;border:1px solid color-mix(in srgb,var(--up) 35%,var(--line));background:color-mix(in srgb,var(--up) 8%,var(--card))}
.mv-flag.down{border-color:color-mix(in srgb,var(--down) 35%,var(--line));background:color-mix(in srgb,var(--down) 8%,var(--card))}
.mv-flag.ls-bub{border-radius:5px 16px 16px 16px}
.mv-fh b{font-size:13.5px;color:var(--up)}.mv-flag.down .mv-fh b{color:var(--down)}
.mv-flag p{margin:0;font-size:13.5px;line-height:1.6}
/* 시황 words by Claude Haiku (user 2026-10-06) */
.m-ai{display:grid;gap:5px;margin:4px 0 10px;padding:11px 13px;border-radius:14px;border:1px solid color-mix(in srgb,var(--g1) 25%,var(--line));
  background:linear-gradient(135deg,color-mix(in srgb,var(--g1) 9%,var(--card)),color-mix(in srgb,var(--g2) 5%,var(--card)))}
.m-ai-h{display:flex;align-items:baseline;gap:8px}.m-ai-h b{font-size:13px;color:var(--accent)}.m-ai-h span{font-size:11px;color:var(--faint)}
.m-ai p{margin:0;font-size:14px;line-height:1.65}
.m-ai-r{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:baseline;font-size:14px;line-height:1.55}.m-ai-r b{font-size:12px;font-weight:700;color:var(--sub);background:var(--chip);border-radius:6px;padding:1px 0;text-align:center}
.ixw.ai{line-height:1.55}
.bpw{font-size:12.5px;line-height:1.5;color:var(--text);padding:6px 8px;margin:4px 0 6px;border-radius:9px;background:color-mix(in srgb,var(--g1) 8%,transparent)}
.iwhy{font-size:12.5px;line-height:1.5;color:var(--sub);margin-top:3px}
/* 세계 증시 지구본 + 지역 칩 (user 2026-10-06) */
.globe-card{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 50% 45%,color-mix(in srgb,#5eeaff 10%,var(--card)),var(--card) 70%)}
.globe-card::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(0deg,transparent 0 3px,color-mix(in srgb,#5eeaff 7%,transparent) 3px 4px)}
.globe-wrap{position:relative;margin:0 -6px}
#globe{display:block;width:100%;cursor:grab;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#globe.grab{cursor:grabbing}
.lv-regions{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:2px 0 10px;padding-bottom:2px}
.lv-regions::-webkit-scrollbar{display:none}
.lv-regions button{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--sub);
  font:inherit;font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:999px;cursor:pointer}
.lv-regions button.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--g1),var(--g2))}
.lv-open{display:inline-block;width:6px;height:6px;border-radius:50%;background:#20c997;box-shadow:0 0 0 3px color-mix(in srgb,#20c997 25%,transparent);margin-right:5px;vertical-align:middle}
.lv-regions button .lv-open{margin-right:0}
@media (prefers-reduced-motion:reduce){.globe-card::after{display:none}}
/* 매크로 표 under the globe (user 2026-10-06: '띠 말고 한눈에') */
.macro{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid color-mix(in srgb,#5eeaff 25%,var(--line));position:relative;z-index:1}
.mp{display:grid;gap:2px;align-content:start;padding:9px 10px;border-radius:12px;border:1px solid color-mix(in srgb,#5eeaff 18%,var(--line));background:color-mix(in srgb,var(--card) 82%,transparent)}
.mh{font-size:12px;font-weight:800;color:var(--accent);margin-bottom:3px}
.mr{display:grid;grid-template-columns:minmax(0,1fr) auto 62px;align-items:baseline;gap:6px;padding:3px 4px;border-radius:7px;font-size:12px;font-variant-numeric:tabular-nums}
.mr .n{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600}
.mr .v{color:var(--sub);text-align:right}.mr .m{text-align:right;font-weight:800}.mr .m.up{color:var(--up)}.mr .m.down{color:var(--down)}
.mr.hu.u2,.mr.hu.u3{background:color-mix(in srgb,var(--up) 14%,transparent)}.mr.hd.d2,.mr.hd.d3{background:color-mix(in srgb,var(--down) 14%,transparent)}
.m2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mcol{display:grid;gap:2px;align-content:start}
.ms{font-size:11px;font-weight:700;color:var(--faint);padding-left:4px}
.m2 .mr{grid-template-columns:minmax(0,1fr) auto;row-gap:0}.m2 .mr .m{grid-column:2;font-size:11px}.m2 .mr .v{font-size:11.5px}
@media (max-width:900px){.macro{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.mr{grid-template-columns:minmax(0,1fr) auto 56px;font-size:11.5px}}
/* AI analysis: keep every weather state and original text; each takes its own full-width row, including narrow desktop panels. */
.gl-top{flex-direction:column;align-items:stretch}
.gl-dbox{align-self:flex-start;max-width:100%}
.gl-diary{flex-wrap:wrap;max-width:100%;box-sizing:border-box}
.gl-hd{width:100%;min-width:0;flex:none}

/* ---------- 렌즈 AI (lens.js, user 2026-10-07): the button, the conversation ---------- */
@property --lai-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes laiSpin{to{--lai-a:360deg}}
.lai-pill{flex:none;display:inline-flex;align-items:center;gap:4px;padding:4px 13px 4px 6px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;
  font:inherit;font-size:14px;font-weight:800;color:var(--text);white-space:nowrap;animation:laiSpin 6s linear infinite;
  background:linear-gradient(var(--card),var(--card)) padding-box,conic-gradient(from var(--lai-a),#22b8cf,#4c6ef5,#7950f2,#7c93ff,#22b8cf) border-box;
  transition:transform .18s cubic-bezier(.2,.9,.25,1.4),box-shadow .2s}
.lai-pill:hover{transform:translateY(-1px);box-shadow:0 6px 18px color-mix(in srgb,#4c6ef5 30%,transparent)}
.lai-pill:active{transform:scale(.94)}
.lai-pill i{font-style:normal;font-size:10.5px;letter-spacing:.2em;color:#7c93ff;margin-left:1px}
.lai-pill .lens-eye{flex:none}
.ls-head .lai-pill{margin-left:auto}.ls-head .lai-pill+.ls-addw{margin-left:0}
.ls-head.searching .lai-pill{display:none}
.ls-compose .lai-pill{padding:6px 13px 6px 6px}
.lai{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}
.lai-h{gap:6px}.lai-h .lens-eye{flex:none}
.lai-name{display:inline-flex;align-items:baseline;font-size:15.5px}.lai-name i{font-style:normal;font-size:10px;letter-spacing:.22em;color:#7c93ff;margin-left:4px;font-weight:800}
.lai-left{flex:none;font-size:11px}.lai-left[hidden]{display:none}
.lai-new{flex:none;border:1px solid var(--line);background:var(--card);color:var(--sub);font:inherit;font-size:11.5px;font-weight:700;padding:5px 9px;border-radius:999px;cursor:pointer}
.lai-new:hover{color:var(--text)}
.lai-thread{gap:12px}
.lai-hello{margin:auto 0;display:grid;justify-items:center;gap:8px;text-align:center;padding:10px 18px}
.lai-hello b{font-size:16.5px}.lai-hello span{font-size:12.5px;line-height:1.6;color:var(--sub)}
.lai-me{display:flex;justify-content:flex-end}
.lai-mb{max-width:82%;padding:9px 13px;border-radius:18px 18px 5px 18px;color:#fff;font-size:13.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;
  background:linear-gradient(135deg,var(--g1),var(--g2))}
.lai-av{flex:none;width:46px;height:46px;display:grid;place-items:center;margin:-6px -4px 0 -6px}.lai-av.big{width:66px;height:66px;margin:-12px -6px 0 -10px}
.lai-bub{display:grid;gap:9px;padding:11px 13px;border-radius:5px 18px 18px 18px;background:var(--chip);font-size:13.5px;line-height:1.6;min-width:0}
.lai-bub.err{color:var(--sub)}
.lag{width:min(640px,100%);margin:14px auto 4px;text-align:left;display:flex;flex-direction:column;gap:10px}
.lag-h{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.lag-h b{font-size:14px}.lag-h span{color:var(--faint);font-size:11.5px}
.lag-empty{margin:0;font-size:12.5px;color:var(--sub)}
.lag-s{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:color-mix(in srgb,var(--g1) 4%,transparent)}
.lag-n{display:flex;justify-content:space-between;align-items:baseline}.lag-n b{font-size:14px}.lag-n span{font-size:11px;color:var(--faint)}
.lag-line{margin:0;font-size:13px;line-height:1.5;color:var(--text)}
.lag-d{display:grid;grid-template-columns:16px auto minmax(0,1fr);column-gap:8px;align-items:baseline;text-align:left;font:inherit;font-size:12.5px;background:none;border:0;padding:3px 0;color:var(--text);cursor:pointer}
.lag-d i{font-style:normal;font-weight:800;color:var(--faint)}.lag-d b{white-space:nowrap}.lag-d span{color:var(--sub);line-height:1.45}
.lag-d.up i{color:var(--up)}.lag-d.down i{color:var(--down)}.lag-d.pin b{color:var(--accent)}
.lag-f{font-size:11.5px;color:var(--faint);text-align:right}
.lai-want{margin-top:8px;font:inherit;font-size:12.5px;font-weight:700;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;padding:6px 12px;cursor:pointer}
.lai-want:disabled{cursor:default;color:var(--sub);background:transparent;border-color:var(--line)}
.lai-bub.wait{gap:7px;align-self:flex-start}
.lai-step{font-size:12.5px;color:var(--sub)}
.lai-bars{display:flex;gap:4px}.lai-bars i{width:20px;height:3px;border-radius:2px;background:var(--line);transition:background .25s}
.lai-bars i.on{background:linear-gradient(90deg,#22b8cf,#4c6ef5,#7950f2)}
.lai-lead{margin:0;font-weight:800;font-size:14px;line-height:1.5}
.lai-blk{display:grid;gap:7px;padding:10px 11px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.lai-bh b{font-size:13.5px}
.lai-line{margin:0;font-size:13px}
.lai-sec small{font-size:11px;font-weight:800;color:var(--sub)}.lai-sec.up small{color:var(--up)}.lai-sec.down small{color:var(--down)}
.lai-sec ul{margin:2px 0 0;padding-left:16px;font-size:12.8px;line-height:1.55}
.lai-sec.up li::marker{color:var(--up)}.lai-sec.down li::marker{color:var(--down)}
.lai-text{margin:0}
.lai-n{display:inline-grid;place-items:center;min-width:15px;height:15px;margin-left:4px;padding:0 3px;border-radius:999px;vertical-align:1px;font-size:9.5px;font-weight:800;color:#fff;text-decoration:none;background:linear-gradient(135deg,var(--g3),var(--g1))}
.lai-check{display:grid;gap:3px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--g1) 8%,var(--card))}
.lai-check small{font-size:11px;font-weight:800;color:var(--accent)}.lai-check p{margin:0;font-size:12.8px}
.lai-src{display:flex;flex-wrap:wrap;gap:5px}
.lai-s{display:inline-flex;align-items:center;gap:5px;max-width:170px;padding:3px 9px 3px 4px;border-radius:999px;border:1px solid var(--line);background:var(--card);
  color:var(--sub);font-size:11px;font-weight:700;text-decoration:none}
.lai-s:hover{color:var(--text);border-color:color-mix(in srgb,var(--g1) 45%,var(--line))}
.lai-s i{flex:none;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;font-style:normal;font-size:9.5px;color:#fff;background:linear-gradient(135deg,var(--g3),var(--g1))}
.lai-s span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lai-chips{flex:none;display:flex;gap:6px;overflow-x:auto;padding:1px 1px 2px;scrollbar-width:none}.lai-chips::-webkit-scrollbar{display:none}
.lai-chip{flex:none;border:1px solid color-mix(in srgb,var(--g1) 35%,var(--line));background:color-mix(in srgb,var(--g1) 6%,var(--card));color:var(--text);
  border-radius:999px;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:transform .12s,background .15s}
.lai-chip:hover{background:color-mix(in srgb,var(--g1) 12%,var(--card))}.lai-chip:active{transform:scale(.95)}
.lai-chip:disabled{opacity:.45;cursor:default}
.lai-compose{flex:none;display:flex;align-items:flex-end;gap:6px;padding:5px 5px 5px 14px;border:1px solid var(--line);border-radius:22px;background:var(--card)}
.lai-compose:focus-within{border-color:color-mix(in srgb,var(--g1) 50%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--g1) 14%,transparent)}
.lai-in{flex:1;min-width:0;border:0;background:transparent;color:var(--text);resize:none;font:inherit;font-size:14px;line-height:1.45;padding:6px 0;max-height:110px;outline:none}
.lai-in::placeholder{color:var(--faint)}
.lai-compose{padding-left:6px}.lai-compose.drop{border-color:var(--g1);box-shadow:0 0 0 3px color-mix(in srgb,var(--g1) 22%,transparent)}
.lai-tool{flex:none;width:30px;height:34px;border:0;background:transparent;color:var(--faint);display:grid;place-items:center;cursor:pointer;border-radius:10px;padding:0}
.lai-tool svg{width:18px;height:18px}.lai-tool:hover{color:var(--text);background:var(--chip)}
.lai-att{flex:none;display:flex;align-items:center;gap:9px;margin:0 0 6px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--g1) 40%,var(--line));border-radius:14px;background:var(--card);font-size:12px;color:var(--sub)}
.lai-att[hidden]{display:none}
.lai-att-img{width:46px;height:46px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.lai-att span{flex:1;min-width:0}
.lai-att-x{border:0;background:var(--chip);color:var(--sub);width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:11px}
.lai-mimg{display:block;max-width:100%;max-height:180px;border-radius:12px;margin:0 0 6px;background:#fff}
.lai-send{flex:none;width:34px;height:34px;border-radius:50%;border:0;display:grid;place-items:center;background:var(--chip);color:var(--faint);cursor:pointer;transition:background .2s,color .2s,transform .12s}
.lai-send svg{width:17px;height:17px}.lai-send:active{transform:scale(.9)}
.lai-send.on{color:#fff;background:linear-gradient(135deg,#22b8cf,#4c6ef5 55%,#7950f2)}
.lai-note{flex:none;text-align:center;font-size:10.5px;color:var(--faint);margin-top:-2px}
@media (prefers-reduced-motion:reduce){.lai-pill{animation:none}}

/* 렌즈 홈 내 종목 카드 + 렌즈 AI: rings stay on top; below, the stock card (or all stocks at a glance) | the conversation */
.lb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;margin-top:14px;align-items:stretch}
.lb-ctx{min-width:0;max-height:660px;overflow-y:auto;scrollbar-width:thin;display:grid;gap:10px;align-content:start}
.lb-ctx>.rg-focus,.lb-ctx>*{margin-top:0}
.lb-all{justify-self:start;border:1px solid var(--line);background:var(--card);color:var(--sub);font:inherit;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;cursor:pointer}
.lb-all:hover{color:var(--text)}
.lb-glance{display:grid;gap:4px}
.lb-gt{font-size:12px;color:var(--faint);padding:2px 4px 6px}
.lb-row{display:flex;align-items:center;gap:11px;width:100%;padding:10px 10px;border:0;border-radius:14px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .15s}
.lb-row:hover{background:color-mix(in srgb,var(--g1) 8%,transparent)}
.lb-row .lp-logo{width:36px;height:36px;flex:none}
.lb-nm{display:grid;min-width:0;flex:1}.lb-nm b{font-size:14px}.lb-nm small{font-size:11.5px;color:var(--faint);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lb-px{display:grid;justify-items:end;flex:none;font-variant-numeric:tabular-nums}.lb-px b{font-size:13.5px}.lb-px small{font-size:12px}
.lb-ai{display:flex;height:660px;padding:14px 14px 10px;border-radius:26px;border:1px solid var(--line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--g1) 5%,var(--card)),var(--card) 160px)}
.lb-ai .lai{min-width:0}
@media (max-width:900px){.lb-grid{grid-template-columns:minmax(0,1fr)}.lb-ctx{max-height:none}.lb-ai{height:620px}}
.lb-ai.opening{animation:lbOpen .36s cubic-bezier(.2,.9,.25,1)}
@keyframes lbOpen{from{opacity:0;transform:translateX(26px) scale(.97)}to{opacity:1;transform:none}}
.lp-title .lb-pill{margin-left:auto}.lp-title .lb-pill+.rg-edit{margin-left:8px}
.lb-pill.on{box-shadow:0 0 0 3px color-mix(in srgb,#4c6ef5 22%,transparent)}
@media (prefers-reduced-motion:reduce){.lb-ai.opening{animation:none}}
@media (max-width:900px){.lb-grid{grid-template-columns:minmax(0,1fr)}.lb-ai{height:560px}}

/* 렌즈 AI 분석 카드: 유리한 재료 / 부담 요인 / 확인할 일정 (same look as the 렌즈 AI answers, user 2026-10-08) */
.gl-gb{display:grid;gap:8px;padding:11px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.gl-gb .lai-sec ul{margin-top:3px}
.gl-take{margin:0;font-size:13.5px;line-height:1.65;color:var(--sub)}
.lai-ul{margin:0;padding-left:18px;display:grid;gap:3px;font-size:13.5px;line-height:1.55}.lai-ul li::marker{color:var(--g1)}
.rg-who{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:3px 10px 3px 3px;margin:-3px 0 -3px -3px;border-radius:14px;color:var(--text);text-decoration:none;transition:background .15s}
.rg-who:hover{background:color-mix(in srgb,var(--g1) 9%,transparent)}.rg-who:hover b{color:var(--g1)}
.rg-who .lp-logo{width:32px;height:32px;flex:none}
.rg-fh .rg-on{margin-left:auto}

/* 렌즈 AI 창 켤 때 오로라 테두리 한 번 (user 2026-10-09 시안 1): 번쩍 0.18s → 머묾 → 0.9s 사라짐, 살짝 70° 돎 */
@property --lfa{syntax:'<angle>';inherits:true;initial-value:-30deg}
.lb-ai{position:relative}
.lai-flash{position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;z-index:3;opacity:0;--lfa:-30deg;animation:laiFlash 1.58s linear forwards,laiFlashR 1.58s cubic-bezier(.2,.7,.3,1) forwards}
.lai-flash i{position:absolute;inset:0;border-radius:inherit;padding:2px;background:conic-gradient(from var(--lfa),#22b8cf,#4c6ef5,#7950f2,#7c93ff,#22b8cf,#4c6ef5,#7950f2,#22b8cf);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.lai-flash.glow{inset:-5px;filter:blur(12px)}.lai-flash.glow i{padding:9px}
@keyframes laiFlash{0%{opacity:0}11.4%{opacity:1}43%{opacity:1}100%{opacity:0}}
@keyframes laiFlashR{to{--lfa:40deg}}
@media (prefers-reduced-motion:reduce){.lai-flash{display:none}}
/* 🔔 알림 버튼 (user 2026-10-10) */
.bell-btn.on{color:var(--g1)}
.login-btn{display:inline-flex;align-items:center;height:30px;padding:0 12px;margin-right:4px;border-radius:999px;border:1px solid var(--line);color:var(--text);font-size:12.5px;font-weight:700;text-decoration:none;white-space:nowrap}
.laf-agent .laf-ic{color:var(--accent)}.laf-agent-sub{font-style:normal;margin-left:auto;font-size:11px;color:var(--faint)}
@media (max-width:480px){.meta:has(> .login-btn) > span:not(.dot){display:none}.login-btn{padding:0 9px;font-size:12px;margin-right:2px}}
.login-btn:hover{border-color:var(--accent);color:var(--accent)}.login-btn.on{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}
.bell-note{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));z-index:120;transform:translate(-50%,12px);max-width:min(440px,calc(100vw - 32px));
  padding:11px 16px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 34px #0005;color:var(--text);font-size:13.5px;line-height:1.55;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.bell-note.on{opacity:1;transform:translate(-50%,0)}
.bell-note.on{pointer-events:auto}.bell-act{margin:6px 0 0 6px;padding:7px 14px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.bell-act.off{background:transparent;color:var(--sub);border-color:var(--line)}

/* ---------- 렌즈 AI 전체 화면 (user 2026-10-10) ---------- */
.sf-pill{flex:none;margin-left:4px}.market-search-field .sf-pill+.market-search-kbd,.sbox-field .sf-pill{order:9}
html.laf-lock,html.laf-lock body{overflow:hidden}
.laf{position:fixed;inset:0;z-index:150;display:grid;grid-template-columns:272px minmax(0,1fr);background:var(--bg);color:var(--text);
  animation:lafIn .22s cubic-bezier(.2,.9,.25,1)}
.laf.out{animation:lafOut .18s ease forwards}
.laf[hidden]{display:none}
/* 여는 장면 (user 2026-10-10 시안 1): 조금 작은 카드 + 오로라 → 전체 화면으로 펼침, 하루 첫 번째엔 로고 장면 */
.laf{transition:inset .45s cubic-bezier(.2,.9,.25,1),border-radius .45s cubic-bezier(.2,.9,.25,1)}
.laf.card{inset:14px;border-radius:22px;box-shadow:0 30px 90px #0007}
.laf-intro{position:fixed;left:50%;top:50%;width:150px;height:150px;transform:translate(-50%,-50%);z-index:9;pointer-events:none;overflow:visible;
  transition:left .45s cubic-bezier(.2,.9,.25,1),top .45s cubic-bezier(.2,.9,.25,1),width .45s cubic-bezier(.2,.9,.25,1),height .45s cubic-bezier(.2,.9,.25,1),opacity .3s}
.laf-rev .lai-hello b{animation:lafWord .4s .75s both}.laf-rev .lai-hello>span{animation:lafWord .4s .9s both}
.laf-rev .lai-compose,.laf-rev .lai-chips,.laf-rev .lai-note{animation:lafUp .35s 1s both}
.laf-rev .lai-h>:not(.lens-eye){animation:lafWord .35s .7s both}
@media (min-width:761px){.laf-rev .laf-side{animation:lafSide .35s .65s both}}
@keyframes lafWord{from{opacity:0;filter:blur(6px);transform:translateY(4px)}}
@keyframes lafUp{from{opacity:0;transform:translateY(8px)}}
@keyframes lafSide{from{opacity:0;transform:translateX(-14px)}}
@media (prefers-reduced-motion:reduce){.laf{transition:none}.laf-rev *{animation:none!important}}
@keyframes lafIn{from{opacity:0}}@keyframes lafOut{to{opacity:0;transform:scale(.985)}}
.laf-side{display:flex;flex-direction:column;gap:10px;padding:16px 12px;border-right:1px solid var(--line);background:var(--card);min-height:0;overflow:auto}
.laf-brand{display:flex;align-items:center;gap:8px;padding:2px 6px 6px}.laf-brand b{font-size:16px}.laf-brand i{font-style:normal;font-size:10.5px;letter-spacing:.2em;color:#7c93ff;margin-left:2px}
.laf-btn{display:flex;align-items:center;gap:6px;width:100%;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--chip);color:var(--text);
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-align:left}
.laf-btn:hover{border-color:var(--accent)}.laf-btn.ghost{background:transparent;color:var(--sub)}
.laf-cap{font-size:12px;font-weight:700;color:var(--faint);margin:8px 6px 0}
.laf-list{display:flex;flex-direction:column;gap:1px}
.laf-th{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;border-radius:10px;background:none;color:var(--text);font:inherit;cursor:pointer;text-align:left}
button.laf-th{padding:8px 10px}.laf-th:hover,.laf-th.on{background:var(--chip)}.laf-th.on{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}
.laf-go{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:8px 10px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left}
.laf-ic{flex:none;width:18px;text-align:center;font-size:13px}.laf-tt{flex:1;min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.laf-new{flex:none;font-style:normal;font-size:9.5px;font-weight:800;color:#fff;background:var(--accent);border-radius:999px;padding:1px 6px}
.laf-del{flex:none;width:26px;height:26px;margin-right:4px;border:0;border-radius:8px;background:none;color:var(--faint);font-size:15px;cursor:pointer;opacity:0}
.laf-th:hover .laf-del,.laf-th.on .laf-del{opacity:1}.laf-del:hover{color:var(--up);background:var(--card)}
@media (hover:none){.laf-del{opacity:.6}}
.laf .lai-new{display:none}
.laf-row{display:flex;align-items:center;gap:10px;padding:8px;border:0;border-radius:12px;background:none;color:var(--text);font:inherit;cursor:pointer;text-align:left}
.laf-row:hover{background:var(--chip)}.laf-row .lp-logo{width:30px;height:30px;flex:none;border-radius:50%}
.laf-nm{display:flex;flex-direction:column;min-width:0}.laf-nm b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.laf-nm small{font-size:11.5px;font-variant-numeric:tabular-nums}
.laf-empty{font-size:12.5px;color:var(--faint);padding:6px;line-height:1.6}
.laf-sp{flex:1}
.laf-main{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px clamp(12px,4vw,48px) 10px}
.laf-main>.lai{width:100%;max-width:820px;margin:0 auto;flex:1;min-height:0}
.laf-main .lai-hello{padding-top:min(14vh,120px)}
.laf-main .lai-hello b{font-size:24px}
.laf-main .lai-compose{border-radius:18px}
.laf-menu{display:none}
.laf-shade{display:none}
@media (max-width:760px){
  .laf{grid-template-columns:minmax(0,1fr)}
  .laf-side{position:fixed;top:0;bottom:0;left:0;width:min(290px,82vw);z-index:3;transform:translateX(-102%);transition:transform .22s cubic-bezier(.2,.9,.25,1);box-shadow:20px 0 60px #0006}
  .laf.side-open .laf-side{transform:none}
  .laf.side-open .laf-shade{display:block;position:fixed;inset:0;z-index:2;background:rgba(7,11,24,.45)}
  .laf-main{padding:10px 10px calc(8px + env(safe-area-inset-bottom))}
  .laf-menu{display:grid;place-items:center;position:absolute;top:12px;right:12px;z-index:1;width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:var(--chip);color:var(--text);cursor:pointer}
  .laf-menu svg{width:18px;height:18px}
  .laf-main .lai-h{padding-right:44px}
  .laf-main .lai-hello{padding-top:8vh}
}
@media (prefers-reduced-motion:reduce){.laf,.laf.out{animation:none}.laf-side{transition:none}}

.lai-flash.fast{animation-duration:.9s,.9s}
/* 첫 화면은 입력창이 가운데, 대화가 시작되면 아래로 (user 2026-10-10, Claude처럼) */
.laf .lai.empty .lai-thread{flex:0 0 auto;margin-top:auto;overflow:visible}
.laf .lai.empty .lai-hello{padding-top:0}
.laf .lai.empty .lai-note{margin-bottom:auto}
.laf .lai-h .ls-nm{text-align:left}
/* 머리글 로고는 여는 장면이 끝난 뒤에 (user 2026-10-10: '너무 먼저 떠') */
.laf-rev .lai-h .lens-eye,.laf-rev .laf-brand .lens-eye{animation:lafWord .3s 1.1s both}
/* 사이드바 숨기기·펼치기 (user 2026-10-10) */
.laf{transition:inset .45s cubic-bezier(.2,.9,.25,1),border-radius .45s cubic-bezier(.2,.9,.25,1),grid-template-columns .28s cubic-bezier(.2,.9,.25,1)}
.laf-fold{margin-left:auto;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:10px;background:none;color:var(--sub);cursor:pointer}
.laf-fold:hover{background:var(--chip);color:var(--text)}.laf-fold svg{width:18px;height:18px}
@media (min-width:761px){
  .laf.side-closed{grid-template-columns:0 minmax(0,1fr)}
  .laf.side-closed .laf-side{overflow:hidden;padding-left:0;padding-right:0;border-right-width:0;visibility:hidden}
  .laf.side-closed .laf-menu{display:grid;place-items:center;position:absolute;top:14px;left:14px;right:auto;z-index:1;width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:var(--chip);color:var(--text);cursor:pointer}
  .laf.side-closed .laf-menu svg{width:18px;height:18px}
  .laf.side-closed .lai-h{padding-left:44px}
}
@media (max-width:760px){.laf-fold{display:none}}
/* 모델 고르기 + 검은 고양이 (user 2026-10-10) */
.lai-tools{position:relative;flex:none;display:flex;align-items:center}
.lai-tier{display:flex;align-items:center;gap:4px;border:0;background:none;color:var(--sub);font:inherit;font-size:12.5px;font-weight:700;padding:5px 8px;border-radius:9px;cursor:pointer;white-space:nowrap}
.lai-tier:hover{background:var(--chip);color:var(--text)}.lai-tier i{font-style:normal;font-size:10px;opacity:.7}
.tier-cat .lai-tier{color:#8f7bff}
.lai-tier-menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:20;width:268px;padding:6px;border-radius:14px;border:1px solid var(--line);background:var(--card);box-shadow:0 16px 40px #0006}
.lai-tier-menu[hidden]{display:none}
.lai-tier-opt{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.lai-tier-opt:hover{background:var(--chip)}.lai-tier-opt b{font-size:13.5px}.lai-tier-opt small{grid-column:1;font-size:11.5px;color:var(--sub);line-height:1.45}
.lai-tier-opt em{font-style:normal;font-size:10px;font-weight:700;color:#9a7bff;border:1px solid color-mix(in srgb,#9a7bff 50%,transparent);border-radius:999px;padding:0 6px;margin-left:6px;vertical-align:1px}
.lai-tier-opt i{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;color:var(--accent);visibility:hidden}.lai-tier-opt.on i{visibility:visible}
.lai-vis{position:relative;display:grid;place-items:center;min-height:92px}
.lai-vis.cat .lens-cat{position:absolute;left:50%;top:50%;width:240px;height:257px;transform:translate(-50%,-50%);overflow:visible;pointer-events:none}
.lai-sub{transition:opacity .2s ease}.lai-sub.swap{opacity:0}
/* 답을 기다리는 대화 표시 (user 2026-10-11) */
.laf-th.busy .laf-tt::after{content:'';display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:var(--accent);vertical-align:2px;animation:lafBusy 1s ease-in-out infinite}
@keyframes lafBusy{50%{opacity:.25}}

/* ---------- 휴대폰을 앱처럼 (user 2026-10-11: 정보는 PC와 같게, 위치·여백만 휴대폰에 맞게) ---------- */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skel{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--chip) 0%,color-mix(in srgb,var(--chip) 55%,var(--line)) 50%,var(--chip) 100%);background-size:200% 100%;animation:skel 1.15s linear infinite}
.skel+.skel{margin-top:7px}.skel.sk-s{width:72%}.skel.sk-m{width:38%;height:10px}.skel.sk-n{width:18px;height:18px;flex:none}
.skel-row{border-top:0!important}
@keyframes skel{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}
.ptr{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:50%;z-index:80;width:34px;height:34px;border-radius:50%;opacity:0;pointer-events:none;
  transform:translate(-50%,-44px);background:var(--card);border:1px solid var(--line);box-shadow:0 6px 18px #0003;display:grid;place-items:center;transition:opacity .15s}
.ptr i{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--g1)}
.ptr.ready i{border-color:var(--g1);border-top-color:var(--g2)}
.ptr.spin{transition:transform .2s,opacity .15s}.ptr.spin i{animation:ptrSpin .7s linear infinite}
@keyframes ptrSpin{to{transform:rotate(360deg)}}
@media (max-width:640px){
  .card .d-iss{margin-top:-6px!important}         /* 실시간 이슈: 상자 안의 상자 → 카드 하나 */
  .card .d-iss .iss{border:0;padding:0;margin:0}
  header.hd3{flex-wrap:nowrap}                    /* 업데이트 시각 + 🔔 + 해 가 로고 옆 한 줄에 (두 줄로 밀리던 것) */
  .hd3 h1{flex:none}
  .hd3 .meta{min-width:0;gap:6px;flex-wrap:nowrap}
  .hd3 .meta #updated{white-space:nowrap}
  .hd3 .theme-btn{width:32px;height:32px}
}
@media (hover:none){
  html{-webkit-tap-highlight-color:transparent}
  body{touch-action:manipulation}                 /* no double-tap zoom */
  header.hd3,.tabbar,button,.tg,.chip,.more,.site-sw,.iss .rk,.iss .mv{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
  button,.tabbar a,.iss .row,.market-search-field,.theme-btn,.chip,.tg,.lai-pill{transition:scale .12s ease}
  button:active,.chip:active,.tg:active,.lai-pill:active,.theme-btn:active{scale:.94}
  .tabbar a:active svg,.tabbar button:active svg{scale:.88}
  .iss .row:active,.market-search-field:active{scale:.985}
}
/* 아이폰이 화면을 70%쯤으로 줄여 보여 주던 문제 (2026-10-11: 탭·글자·버튼이 토스보다 작게 보임): 화면 밖으로
   삐져나온 요소가 있으면 아이폰은 페이지 전체를 줄여서 맞춘다. 가로로 넘치는 건 잘라 내고, viewport에 minimum-scale=1 */
html,body{overflow-x:clip}
/* 탭 넘김을 부드럽게 (user 2026-10-11): 화면이 바뀔 때 하얗게 끊기지 않고 살짝 겹쳐 바뀐다(사파리 18.2+·크롬 126+).
   위 머리글과 아래 탭은 제자리에 그대로 있고 가운데 내용만 바뀐다. 움직임 줄이기 설정이면 바로 바뀐다. */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.16s;animation-timing-function:ease-out}
header.hd3{view-transition-name:lens-head}
.tabbar{view-transition-name:lens-tabs}
::view-transition-group(lens-head),::view-transition-group(lens-tabs){animation-duration:0s}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
html{background:var(--bg)}
/* 렌즈 AI 자는 중 (user 2026-10-12): 감은 눈이 천천히 숨 쉬고 z가 피어오른다 */
.sleep-eye .se-lid{transform-origin:50% 55%;animation:seBreath 3.6s ease-in-out infinite}
.sleep-eye .se-z text{opacity:0;animation:seZ 3.6s ease-out infinite}
.sleep-eye .se-z .z2{animation-delay:1.2s}
@keyframes seBreath{0%,100%{transform:translateY(0) scaleY(1)}50%{transform:translateY(1.5px) scaleY(.92)}}
@keyframes seZ{0%{opacity:0;transform:translate(0,6px)}25%{opacity:.95}70%{opacity:.5}100%{opacity:0;transform:translate(5px,-10px)}}
.lai-pill.asleep{opacity:.85}
@media (prefers-reduced-motion:reduce){.sleep-eye .se-lid,.sleep-eye .se-z text{animation:none}.sleep-eye .se-z .z1{opacity:.8}}
/* ---------- 내 종목 사이드바: 휴대폰 모양 → 둥근 패널 (user 2026-10-12) ----------
   시계·카메라 구멍·홈 버튼 줄과 두 겹 테두리를 빼고, 버튼은 위쪽 작은 도구줄로. 접으면 오른쪽 가장자리 손잡이만 남는다. */
.lens-side{border-radius:22px;box-shadow:0 18px 50px rgba(5,10,30,.35)}
.lens-side .ls-status{display:none}
.lens-side .ls-nav{order:-1;justify-content:flex-end;gap:2px;height:46px;padding:10px 10px 0}
.lens-side .ls-nav .nb-back{order:-1;margin-right:auto}
.lens-side .ls-nb{width:34px;height:34px;border-radius:10px}
.lens-side .ls-nb svg{width:19px;height:19px}
.lens-side .ls-screen{padding-top:2px}
.lens-side .ls-recents{top:46px;bottom:0}
.lens-side.powering{background:color-mix(in srgb,var(--card) 92%,transparent)}
.lens-side.powering .ls-screen,.lens-side.powering .ls-recents{animation:lsFold .3s cubic-bezier(.4,0,.6,1) forwards}
@keyframes lsFold{to{opacity:0;transform:translateX(18px)}}
.lens-side.booting .ls-screen{animation:lsUnfold .3s cubic-bezier(.2,.9,.25,1) both}
@keyframes lsUnfold{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.ls-fab .ls-fab-t{display:none}
.ls-fab.ls-home{display:none!important}
@media (min-width:641px){
  .ls-fab{right:0;bottom:auto;top:50%;width:46px;height:auto;padding:12px 0;border-radius:16px 0 0 16px;display:flex;flex-direction:column;align-items:center;gap:7px;
    transform:translateY(-50%);box-shadow:-6px 10px 28px rgba(5,10,30,.3)}
  .ls-fab:hover,.ls-fab.on{transform:translateY(-50%) translateX(-3px)}
  .ls-fab.away{opacity:0;transform:translateY(-50%) translateX(60px);pointer-events:none}
  .ls-fab svg{width:22px;height:22px}
  .ls-fab .ls-fab-t{display:block;writing-mode:vertical-rl;font-size:12px;font-weight:800;letter-spacing:2px}
  .ls-fab .ls-badge{position:static}
}

@media (min-width:641px){.ls-fab.on{opacity:0;pointer-events:none}}   /* 패널이 열려 있으면 손잡이는 숨김 */
/* 세계 증시: 지구본 ↔ 목록 스위치 (user 2026-10-12, 끊김 없이 부드럽게) */
.wv-title{position:relative;z-index:2}
.wv-sw{position:relative;margin-left:auto;display:inline-grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:999px;
  background:color-mix(in srgb,var(--chip) 85%,transparent);border:1px solid var(--line);align-self:center}
.wv-sw i{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;
  background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3));transition:transform .38s cubic-bezier(.2,.9,.25,1)}
.wv-sw.list i{transform:translateX(100%)}
.wv-sw button{position:relative;z-index:1;border:0;background:none;font:inherit;font-size:12px;font-weight:800;color:var(--sub);
  padding:5px 13px;cursor:pointer;transition:color .3s;-webkit-tap-highlight-color:transparent}
.wv-sw button.on{color:#fff}
.wv-hint{transition:opacity .3s}.wv-title.is-list .wv-hint{opacity:0}
.wv{position:relative;transition:height .48s cubic-bezier(.2,.9,.25,1);overflow:hidden}
.wv-p{transition:opacity .38s ease,transform .48s cubic-bezier(.2,.9,.25,1),visibility 0s 0s}
.wv-p.off{position:absolute;left:0;right:0;top:0;opacity:0;transform:scale(.97);pointer-events:none;visibility:hidden;
  transition:opacity .3s ease,transform .48s cubic-bezier(.2,.9,.25,1),visibility 0s .48s}
.wl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:6px 0 2px;position:relative;z-index:1}
@media (max-width:900px){.wl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.wl{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.wv,.wv-p,.wv-p.off,.wv-sw i{transition:none}}
/* 세계 증시 지수 차트 창 (user 2026-10-12) */
.mr.ic-go{cursor:pointer;transition:background .15s}.mr.ic-go:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
html.ic-lock{overflow:hidden}
.ic-modal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:16px;background:rgba(6,10,24,0);transition:background .25s}
.ic-modal[hidden]{display:none}
.ic-modal.on{background:rgba(6,10,24,.55)}
.ic-box{width:min(860px,100%);height:min(560px,calc(100dvh - 32px));display:flex;flex-direction:column;gap:8px;padding:14px 16px 12px;border-radius:20px;
  background:var(--card);border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.45);opacity:0;transform:translateY(10px) scale(.98);
  transition:opacity .25s ease,transform .3s cubic-bezier(.2,.9,.25,1)}
.ic-modal.on .ic-box{opacity:1;transform:none}
.ic-h{display:flex;align-items:baseline;gap:10px}.ic-h b{font-size:17px}.ic-v{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.ic-v.up{color:var(--up)}.ic-v.down{color:var(--down)}
.ic-x{margin-left:auto;width:32px;height:32px;border-radius:10px;border:0;background:var(--chip);color:var(--sub);font-size:15px;cursor:pointer}
.ic-tf{display:flex;gap:4px;flex-wrap:wrap}
.ic-tf button{border:1px solid var(--line);background:none;color:var(--sub);font:inherit;font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px;cursor:pointer}
.ic-tf button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.ic-cw{position:relative;flex:1;min-height:0;display:flex}.ic-cw .ic-c{flex:1}
.ic-c{position:relative;flex:1;min-height:0;transition:opacity .2s}.ic-c.loading{opacity:.35}
.ic-empty{display:grid;place-items:center;height:100%;color:var(--sub);font-size:13px}
.ic-n{font-size:11px;color:var(--faint)}
.wl{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}   /* 칸 수는 카드 폭에 맞춰 (사이드바가 열려도 이름이 안 잘리게) */
@media (prefers-reduced-motion:reduce){.ic-modal,.ic-box{transition:none}}

/* 검색창 다이어트 (user 2026-10-12: '답답해 보이지 않게, 그래도 누르기 쉽게'): 높이 44px 알약, 렌즈 AI 34px */
.market-search.wide .market-search-field{min-height:44px;padding:4px 5px 4px 12px;border-radius:999px;gap:9px}
.market-search.wide .market-search-symbol,.market-search.wide .market-search-symbol.brand-search{width:26px;height:26px}
.market-search.wide .market-search-symbol.brand-search svg{width:25px;height:25px}
.market-search.wide input{font-size:15.5px;padding:4px 0}
.market-search.wide .sf-pill{min-height:34px;padding:2px 12px 2px 5px;font-size:13px}
@media (max-width:640px){.market-search.wide input{font-size:16px}}   /* 16px: iPhone does not zoom into the box */
/* 실시간 시황 지수 카드 → 큰 차트, 봉 하나 라벨 (user 2026-10-12) */
.ixc.ic-card{cursor:pointer;transition:border-color .15s,transform .15s}.ixc.ic-card:hover{border-color:color-mix(in srgb,var(--g1) 55%,var(--line))}
.ixc.ic-card:active{transform:scale(.99)}
.ic-tf{align-items:center}.ic-tfl{font-size:11.5px;font-weight:700;color:var(--faint);margin-right:2px}
/* 차트 자동 · 로그 버튼 (트레이딩뷰 오른쪽 아래처럼) */
.ic-sc{position:absolute;right:4px;bottom:2px;z-index:3;display:flex;gap:2px}
.ic-sc button{border:0;background:color-mix(in srgb,var(--card) 80%,transparent);color:var(--faint);font:inherit;font-size:11.5px;font-weight:700;padding:3px 7px;border-radius:6px;cursor:pointer}
.ic-sc button:hover{color:var(--text)}.ic-sc button.on{color:var(--g1)}
/* 공용 렌즈 순위표 (user 2026-10-13 시안 A: 내 종목 동그라미와 다르게) */
.pl-title{gap:7px;align-items:center}.pl-sub{font-size:11.5px;font-weight:600;color:var(--faint)}
.pl-mark{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--g1),var(--g2));flex:none}
.pl-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}   /* 두 줄: AI 한 줄이 넉넉히 보이게 */
.pl-r{display:grid;grid-template-columns:18px 30px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;min-height:52px;padding:7px 6px;
  border:0;border-top:1px solid var(--line);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:0;transition:background .15s}
.pl-r:hover{background:color-mix(in srgb,var(--g1) 6%,transparent)}
.pl-r.on{background:color-mix(in srgb,var(--g1) 10%,transparent)}
.pl-rk{font-size:13.5px;font-weight:800;color:var(--g1);text-align:center}
.pl-r .lp-logo{width:30px;height:30px}
.pl-nm{min-width:0;display:grid;gap:2px}
.pl-top{display:flex;align-items:center;gap:6px;min-width:0}.pl-top b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-nm small{font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-tag{flex:none;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:6px;background:var(--chip);color:var(--sub);white-space:nowrap}
.pl-tag.up{background:rgba(224,49,49,.14);color:var(--up)}.pl-tag.down{background:rgba(28,126,214,.15);color:var(--down)}
.pl-mine{flex:none;font-size:10px;font-weight:800;color:var(--faint)}
.pl-rt{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.pl-rt.up{color:var(--up)}.pl-rt.down{color:var(--down)}.pl-rt.flat{color:var(--sub)}
.pl-wx{display:inline-flex;width:18px;height:18px;color:var(--sub)}.pl-wx svg{width:18px;height:18px}
.pl-more{display:block;width:100%;border:0;border-top:1px solid var(--line);background:none;color:var(--sub);font:inherit;font-size:13px;font-weight:700;padding:10px 0 4px;cursor:pointer}
.pl-more:hover{color:var(--text)}
.pl-add{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;border-color:transparent}
@media (max-width:640px){.pl-list{grid-template-columns:1fr}}
/* 공용 렌즈: 이유 한 줄 · 같은 이유 묶음 (user 2026-10-13) */
.pl-nm small.pl-why{justify-self:start;max-width:100%;color:var(--text);font-weight:700;padding:2px 8px 2px 7px;border-radius:7px;
  background:color-mix(in srgb,var(--sub) 12%,transparent);border-left:3px solid var(--sub)}
.pl-nm small.pl-why.up{background:color-mix(in srgb,var(--up) 13%,transparent);border-left-color:var(--up)}
.pl-nm small.pl-why.down{background:color-mix(in srgb,var(--down) 14%,transparent);border-left-color:var(--down)}
.pl-grp{flex:none;font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:6px;background:rgba(245,159,0,.16);color:#e67700;white-space:nowrap}
.pl-peers{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 2px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--g1) 6%,transparent)}
.pl-pt{font-size:12px;font-weight:800;color:var(--sub);margin-right:4px}
.pl-peer{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 3px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--text);text-decoration:none;font-size:12px}
.pl-peer .lp-logo{width:20px;height:20px}.pl-peer span{font-weight:800}.pl-peer span.up{color:var(--up)}.pl-peer span.down{color:var(--down)}
.pl-peer:hover{border-color:color-mix(in srgb,var(--g1) 45%,var(--line))}
.pl-tag.search{background:rgba(121,80,242,.15);color:#9775fa}   /* 네이버 검색 순위 */
/* 공용 렌즈: 실시간 거래대금 (최근 30분) */
.pl-mv{display:grid;justify-items:end;line-height:1.15}.pl-val{font-size:11px;font-weight:700;color:var(--faint)}
.pl-at{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--faint)}
/* 공용 렌즈: 현재가 실시간 · 모든 줄 색 띠 (user 2026-10-13) */
.pl-pl{display:flex;align-items:baseline;gap:6px;border-radius:6px;padding:0 3px}
.pl-px{font-size:12.5px;font-weight:700;color:var(--text)}
.pl-pl.flash{animation:plFlash .9s ease}
@keyframes plFlash{0%{background:color-mix(in srgb,var(--g1) 28%,transparent)}100%{background:transparent}}
.pl-nm small.pl-why.ai{font-weight:600;color:var(--sub)}
@media (prefers-reduced-motion:reduce){.pl-pl.flash{animation:none}}
@media (max-width:520px){.pl-pl{flex-direction:column;align-items:flex-end;gap:0}.pl-px{font-size:12px}}   /* 휴대폰: 가격 위, 등락률 아래 (정보는 PC와 같게) */
/* 공용 렌즈 한 줄 목록 (user 2026-10-13: 1자로, 글 안 잘리게) — 앞의 두 칸 배치를 덮어쓴다 */
.pl-list{display:block}
.pl-head,.pl-r{display:grid;grid-template-columns:22px 30px minmax(200px,270px) auto 86px minmax(0,1fr);column-gap:12px;align-items:center}
/* 줄 안의 렌즈 버튼: 이름 칸 오른쪽 끝에 세로로 줄 맞춤 (user 2026-10-14) */
.pl-top .pl-lens{margin-left:auto;flex:none}
.pl-r:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.pl-head{padding:0 6px 6px;font-size:11px;font-weight:700;color:var(--faint)}.pl-head span:nth-child(4),.pl-head span:nth-child(5){text-align:right}
.pl-r{min-height:46px;padding:7px 6px}
.pl-top{min-width:0}
.pl-why,.pl-nm small.pl-why{justify-self:start;max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.45;font-size:12.5px;
  font-weight:700;color:var(--text);padding:3px 9px 3px 8px;border-radius:0 7px 7px 0;
  background:color-mix(in srgb,var(--sub) 12%,transparent);border-left:3px solid var(--sub)}
.pl-why.up{background:color-mix(in srgb,var(--up) 13%,transparent);border-left-color:var(--up)}
.pl-why.down{background:color-mix(in srgb,var(--down) 14%,transparent);border-left-color:var(--down)}
.pl-why.ai{font-weight:600;color:var(--sub)}
/* 이유 칸은 두 줄까지, 칸 너비는 모두 같게 (user 2026-10-27: 노트북에서 긴 이유 글 때문에 줄 높이가 들쑥날쑥) — 전체 글은 마우스를 올리면 */
.pl-r>.pl-why{justify-self:stretch;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;box-sizing:border-box;min-height:calc(2.9em + 6px)}
.pl-rt{justify-content:flex-end}
.pl-pl{display:grid;grid-template-columns:auto 62px;column-gap:8px;align-items:baseline;flex-direction:row}
.pl-px{text-align:right}.pl-ch{text-align:right}
.pl-val{text-align:right;font-size:12.5px;font-weight:700;color:var(--sub);font-variant-numeric:tabular-nums}.pl-vl{display:none}
@media (max-width:760px){
  .pl-head{display:none}
  .pl-r{grid-template-columns:18px 28px minmax(0,1fr) auto;grid-template-areas:"rk lg nm rt" "rk lg nm val" "rk lg bd bd";row-gap:3px;align-items:start}
  .pl-r>.pl-rk{grid-area:rk;align-self:center}.pl-r>.lp-logo{grid-area:lg;align-self:center}.pl-r>.pl-top{grid-area:nm}
  .pl-r>.pl-why{grid-area:bd}.pl-r>.pl-rt{grid-area:rt}.pl-r>.pl-val{grid-area:val;font-size:11px;color:var(--faint)}.pl-r>.pl-top{align-self:center;flex-wrap:wrap;row-gap:2px}.pl-r>.pl-top b{overflow:visible;text-overflow:clip}.pl-r>.pl-why{margin-top:3px}
  .pl-pl{grid-template-columns:auto;justify-items:end}.pl-vl{display:inline}
}

/* 공용 렌즈: 누른 줄 바로 밑에 펼침 (user 2026-10-13) */
.pl-open{margin:2px 0 10px 40px;padding:0 0 4px;border-left:2px solid color-mix(in srgb,var(--g1) 45%,transparent);padding-left:12px;animation:plOpen .28s ease both}
.pl-open .rg-focus{margin-top:6px}
@keyframes plOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (max-width:760px){.pl-open{margin-left:0;padding-left:8px}}
@media (prefers-reduced-motion:reduce){.pl-open{animation:none}}
/* 렌즈 심층 분석 (user 2026-10-13 시안 A): 일반 AI 분석과 다른, 한 단계 깊은 내용이 들어 있다는 표시 — 은은하게 */
.gl-deep{margin-top:12px}
.gl-deep>summary.gd-sum{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:14px;cursor:pointer;list-style:none;
  border:1px solid transparent;color:var(--text);
  background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(120deg,color-mix(in srgb,#22b8cf 55%,transparent),color-mix(in srgb,#4c6ef5 55%,transparent) 45%,color-mix(in srgb,#7950f2 55%,transparent)) border-box;
  transition:box-shadow .2s,transform .15s}
.gl-deep>summary.gd-sum::-webkit-details-marker{display:none}.gl-deep>summary.gd-sum::after{content:none}
.gl-deep>summary.gd-sum:hover{box-shadow:0 6px 20px color-mix(in srgb,#4c6ef5 18%,transparent)}
.gd-ic{flex:none;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#4c6ef5,#7950f2)}
.gd-ic svg{width:18px;height:18px}
.gd-tt{display:grid;gap:1px;min-width:0}.gd-tt b{font-size:14px;letter-spacing:-.2px}.gd-tt small{font-size:11.5px;color:var(--sub);font-weight:500}
.gd-tags{margin-left:auto;display:flex;gap:4px;flex:none}
.gd-tags span{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;color:var(--sub);background:var(--chip)}
.gd-chev{flex:none;width:18px;height:18px;color:var(--faint);transition:transform .25s}.gd-chev svg{width:18px;height:18px}
.gl-deep[open] .gd-chev{transform:rotate(180deg)}
.gd-body{margin-top:8px;padding:4px 14px 10px;border-radius:14px;background:color-mix(in srgb,#4c6ef5 5%,var(--card));border:1px solid var(--line)}
.gd-st{display:flex;align-items:center;gap:6px;color:var(--g1);font-size:12px;font-weight:800;margin:14px 0 6px}
.gd-si{display:inline-flex;width:15px;height:15px}.gd-si svg{width:15px;height:15px}
@media (max-width:520px){.gd-tags{display:none}.gd-tt small{font-size:11px}}
/* 공용 렌즈: 국내 | 미국 (user 2026-10-13) */
.pl-sw{display:inline-flex;gap:2px;padding:2px;margin-left:8px;border-radius:999px;background:var(--chip);border:1px solid var(--line)}
.pl-sw button{border:0;background:none;color:var(--sub);font:inherit;font-size:12px;font-weight:800;padding:4px 11px;border-radius:999px;cursor:pointer;min-height:28px}
.pl-sw button.on{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}
.pl-empty{font-size:13px;color:var(--sub);padding:14px 4px}
/* 흰 글자 투명 로고 (노키아 등): 어두운 원 위에 (2026-10-13) */
.lp-logo.lp-dark,.logo.lp-dark{background:#1d2333!important}
.pl-cur button{min-width:34px;font-size:13px}
/* 공용 렌즈 카드: 종목 화면 보기 (user 2026-10-13) */
.pl-go{margin-left:auto;display:inline-flex;align-items:center;gap:2px;min-height:34px;padding:0 10px 0 13px;border-radius:999px;border:1px solid var(--line);
  color:var(--text);font-size:12.5px;font-weight:800;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s}
.pl-go svg{width:15px;height:15px}.pl-go:hover{border-color:color-mix(in srgb,var(--g1) 50%,var(--line));background:color-mix(in srgb,var(--g1) 8%,transparent)}
.pl-open .rg-fh .pl-go+.rg-on{margin-left:8px}
/* 렌즈 ON은 종목명·로고 바로 옆 (user 2026-10-13) */
.rg-fh .rg-on.near{margin-left:10px;flex:none}
.rg-fh .lr-tag{margin-left:auto}
.rg-fh .rg-on.near~.pl-go{margin-left:auto}
.rg-fh .lr-tag~.pl-go{margin-left:8px}
.rg-fh .lens-btn.near{margin-left:10px;flex:none;padding:6px 13px 6px 10px;font-size:13px}.rg-fh .lens-btn.near svg{width:16px;height:16px}
.rg-fh .near~.pl-go{margin-left:auto}
/* 렌즈 ↔ 렌즈 ON 폭이 같게: 한쪽으로만 늘어나며 비대칭으로 보이던 것 (user 2026-10-13) */
.lens-btn{justify-content:center;min-width:7.2em;transform-origin:center}
.rg-fh .lens-btn.near{min-width:7.4em}

/* 알림함 (2026-10-14) */
.alert-box{position:fixed;top:64px;right:max(12px,calc(50vw - 560px));z-index:130;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px #0006;overflow:hidden;animation:bzU .22s ease}
.ab-h{display:flex;align-items:baseline;gap:8px;padding:14px 16px 10px;font-size:16px;font-weight:800;border-bottom:1px solid var(--line)}.ab-h small{font-size:12px;color:var(--faint);font-weight:600}
.ab-list{overflow:auto;padding:4px 10px;font-size:13.5px;color:var(--sub);line-height:1.6;min-height:60px}
.ab-row{display:flex;gap:10px;align-items:flex-start;padding:10px 6px;border-top:1px solid var(--line);color:var(--text);text-decoration:none}.ab-row:first-child{border-top:0}
.ab-row:hover b{color:var(--accent)}
.ab-tag{flex:none;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;margin-top:2px}
.ab-tag.filing{color:#22a06b;background:rgba(34,160,107,.14)}.ab-tag.news{color:#d97706;background:rgba(217,119,6,.14)}
.ab-tx{display:grid;gap:1px;min-width:0}.ab-tx b{font-size:13.5px}.ab-tx span{font-size:13.5px;line-height:1.5;word-break:keep-all}.ab-tx small{font-size:11.5px;color:var(--faint)}
.ab-foot{border-top:1px solid var(--line);padding:8px 12px;text-align:right}.ab-foot button{border:0;background:none;color:var(--faint);font:inherit;font-size:12.5px;cursor:pointer}
.ab-foot button:hover{color:var(--down)}
/* 렌즈 칩 (user 2026-10-14: '종목이랑 렌즈 버튼이 따로 노는 것 같아'): 하나의 알약 안에 로고·이름·등락 | 렌즈 버튼.
   이름 쪽은 종목 화면으로, 안쪽 '렌즈' 버튼만 렌즈를 켜요 */
.lz-chip{display:inline-flex;align-items:center;gap:8px;padding:3px 3px 3px 4px;border:1px solid var(--line);border-radius:999px;background:var(--card);vertical-align:middle;transition:border-color .15s,box-shadow .15s}
.lz-chip:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 4px 14px color-mix(in srgb,var(--g1) 12%,transparent)}
.lz-nm{display:inline-flex;align-items:center;gap:6px;color:var(--text);text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap;line-height:1}
.lz-nm:hover{color:var(--accent)}
.lz-lg{width:26px;height:26px;border-radius:50%;object-fit:contain;background:#fff;flex:none}
.lz-ch{font-weight:700;font-size:12px}.lz-ch.up{color:var(--up)}.lz-ch.down{color:var(--down)}
.lens-btn.sm{padding:4px 10px 4px 8px;font-size:11.5px;gap:4px}.lens-btn.sm svg{width:13px;height:13px}
.lz-chip .lens-btn.sm:hover{transform:none}
.pz{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.pz-t{font-size:12px;font-weight:700;color:var(--sub)}.pz-s{font-size:11px;color:var(--faint);margin-right:4px}
.sr-row{display:flex;align-items:center;gap:6px}.sr-row>:first-child{flex:1;min-width:0}
.sr-lens{margin-right:8px;align-self:center;flex:none}
.iss-stk{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.iss-stk-t{font-size:12px;font-weight:700;color:var(--sub)}
.iss-stk .lz-nm{font-size:12px}

@media (max-width:760px){.pl-top .pl-lens{margin-left:4px}}

/* 지수 차트 봉 묶음 (user 2026-10-14): [분 ▾] 일 주 [월 ▾] */
.ic-g{position:relative;display:inline-flex}
.ic-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:grid;grid-template-columns:repeat(3,auto);gap:4px;padding:8px;border-radius:12px;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 28px rgba(0,0,0,.35)}
.ic-menu[hidden]{display:none}
.ic-menu button{white-space:nowrap}

/* 내 종목 국내·미국 구분 (user 2026-10-15) */
.rg-group{font-size:11.5px;font-weight:700;color:var(--faint);margin:6px 2px 0;letter-spacing:.02em}
.ls-group{font-size:11px;font-weight:700;color:var(--faint);padding:8px 6px 3px}

/* 내 종목 하루 (user 2026-10-15): 시작 화면 · 아침 브리핑/성적표 · 일정 · 위험 신호 · 캡처로 담기 */
.my-start{display:grid;gap:12px}
.md-hello b{display:block;font-size:19px;font-weight:800}.md-hello span{display:block;color:var(--sub);font-size:13.5px;margin-top:4px;line-height:1.55}
.md-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.md-tab{border:1px solid var(--line);background:transparent;color:var(--sub);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.md-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.md-shot{margin-left:auto;border:1px dashed color-mix(in srgb,var(--accent) 60%,var(--line));background:transparent;color:var(--accent);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.md-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.md-pick{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;padding:9px 10px;font:inherit;cursor:pointer;text-align:left;min-width:0}
.md-pick.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--card));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.md-pn{flex:1;min-width:0;font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md-pc{font-size:12px;font-weight:700}
.md-logo{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none;background:var(--chip)}
.md-go{border:0;border-radius:12px;padding:12px 16px;font:inherit;font-weight:800;color:#fff;background:linear-gradient(90deg,var(--g1),var(--g2),var(--g3));cursor:pointer}
.md-go:disabled{opacity:.45;cursor:default}
.md-note{color:var(--faint);font-size:12px}
.md-empty{color:var(--faint);font-size:13px;padding:8px}
.my-day .up,.my-start .up{color:#ff5b5b}.my-day .down,.my-start .down{color:#5b8cff}
.my-day{display:grid;gap:10px}
.md-head{display:flex;align-items:center;gap:8px}.md-head b{font-size:17px;font-weight:800}
.md-avg{font-size:13px;font-weight:700}
.md-sharebtn{margin-left:auto;border:1px solid var(--line);background:transparent;color:var(--sub);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.md-mkt{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px}.md-mi small{color:var(--faint);margin-right:5px}
.md-list{display:grid;gap:6px}
.md-grp{font-size:11.5px;font-weight:700;color:var(--faint);margin-top:4px}
.md-item{display:block;text-decoration:none;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.md-item.fresh{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.md-top{display:flex;align-items:center;gap:8px}.md-top b{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md-ch{font-weight:800;font-size:13.5px}
.md-why{color:var(--sub);font-size:13px;line-height:1.5;margin-top:5px}
.md-risk{margin-top:6px;font-size:12.5px;color:#ff8a65;background:rgba(255,120,80,.1);border-radius:8px;padding:5px 8px}
.md-sch{border-top:1px solid var(--line);padding-top:8px;display:grid;gap:4px}
.md-st{font-size:12.5px;font-weight:800;color:var(--sub)}
.md-si{display:flex;gap:10px;text-decoration:none;color:var(--text);font-size:13px;padding:3px 0}
.md-sd{flex:none;width:44px;color:var(--accent);font-weight:700}
.md-foot{color:var(--faint);font-size:11.5px}
.md-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:9999;padding:16px}
.md-mbox{position:relative;background:var(--card);color:var(--text);border-radius:16px;padding:20px;width:min(420px,100%);max-height:80vh;overflow:auto;display:grid;gap:10px}
.md-x{position:absolute;right:10px;top:8px;border:0;background:transparent;color:var(--sub);font-size:22px;cursor:pointer}
.md-row{display:flex;align-items:center;gap:8px;font-size:14px}

/* 내 종목 3개 고르기 — 내 종목 칸 안 (user 2026-10-15) */
.rg-hint{font-size:13px;color:var(--sub);margin:0 2px 6px}
.rg-sug{margin-top:4px;border-top:1px dashed var(--line);padding-top:8px}
.rg-sug-h{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--faint);margin:0 2px 4px}
.rg-tab{border:1px solid var(--line);background:transparent;color:var(--sub);border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;cursor:pointer}
.rg-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.rg-face.sug{border:1.5px dashed color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:50%;opacity:.92}
.rg-face.sug .lp-logo{width:52px;height:52px;border-radius:50%}
.rg-plus{position:absolute;right:2px;bottom:2px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:14px;font-weight:800;display:grid;place-items:center;line-height:1}
.rg-more{border:0;background:none;color:var(--faint);font:inherit;font-size:12.5px;cursor:pointer;padding:4px 2px;text-align:left}
.rg-more:hover{color:var(--accent)}.rg-note{color:var(--faint);font-size:11.5px;margin:2px 2px 0}
.md-item{cursor:pointer}.md-arr{color:var(--faint);font-size:12px;margin-left:4px}
.md-detail{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:grid;gap:10px;cursor:default}
.md-sec b{display:block;font-size:12.5px;color:var(--sub);margin-bottom:3px}.md-sec p{margin:0;font-size:13.5px;line-height:1.6}
.md-news{display:block;text-decoration:none;color:var(--text);padding:5px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.md-news small{display:block;color:var(--faint);font-size:11.5px;margin-top:2px}
.md-go-s{justify-self:start;color:var(--accent);text-decoration:none;font-size:13px;font-weight:700}

/* 아침 브리핑 = 밤사이 글로벌 시황 (user 2026-10-15) */
.gb{display:grid;gap:12px}.gb-lead{margin:0;font-size:14px;font-weight:700;line-height:1.55}
.gb-news{display:block;text-decoration:none;color:var(--text);padding:8px 0;border-bottom:1px solid var(--line)}
.gb-nh{display:flex;gap:6px;align-items:center}.gb-nh b{font-size:14px}
.gb-tone{flex:none;font-size:11px;font-weight:800;border-radius:6px;padding:1px 6px;background:var(--chip);color:var(--sub)}
.gb-tone.up{color:#ff5b5b;background:rgba(255,91,91,.12)}.gb-tone.down{color:#5b8cff;background:rgba(91,140,255,.12)}
.gb-news p{margin:4px 0 0;font-size:13px;line-height:1.55;color:var(--sub)}.gb-news .gb-imp{color:var(--text);font-weight:600}
.gb-sec{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:3px 0}.gb-sec small{color:var(--faint);width:52px}
.gb-chip{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.gb-chip.up{color:#ff5b5b}.gb-chip.down{color:#5b8cff}
.gb-cal{margin-top:8px}.gb-cal small{color:var(--faint);font-size:12px}.gb-cal p{margin:2px 0;font-size:13.5px}
.md-risk p{margin:2px 0 0}

/* 아침 브리핑 · 오로라 커튼 바 (user 2026-10-15 시안 B): 시그니처 3색(#4c6ef5 · #7950f2 · #22b8cf) */
.my-day.md-morning{padding:0;background:transparent;border:0;box-shadow:none}
.au-bar{position:relative;overflow:hidden;border-radius:18px;background:#0e1018;border:1px solid rgba(121,80,242,.38);
  box-shadow:0 0 0 1px rgba(34,184,207,.06) inset,0 10px 30px -18px rgba(121,80,242,.55);isolation:isolate}
.au-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}
.au-sky::before{content:'';position:absolute;inset:-45%;
  background:radial-gradient(closest-side,rgba(76,110,245,.5),transparent 70%) 18% 50%/45% 75% no-repeat,
             radial-gradient(closest-side,rgba(121,80,242,.5),transparent 70%) 55% 40%/42% 85% no-repeat,
             radial-gradient(closest-side,rgba(34,184,207,.42),transparent 70%) 86% 60%/36% 70% no-repeat;
  filter:blur(16px);animation:auDrift 11s ease-in-out infinite alternate}
.au-bar.open .au-sky::before{opacity:.55}
@keyframes auDrift{0%{transform:translate(-4%,2%)}100%{transform:translate(10%,-5%)}}
.au-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:0;box-shadow:0 0 6px #b8c8ff;animation:auTw 3.6s ease-in-out infinite}
@keyframes auTw{45%,55%{opacity:.95}}
.au-head{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#eef1fb;font:inherit;text-align:left;cursor:pointer;padding:15px 18px}
.au-txt{flex:1;min-width:0}.au-txt b{display:block;font-size:15px;font-weight:700;letter-spacing:.01em}
.au-txt small{display:block;font-size:12.5px;color:#aeb6d3;margin-top:3px}
.au-spark{font-size:18px;color:#c9b8ff;text-shadow:0 0 12px rgba(121,80,242,.9);transition:transform .6s}
.au-bar.open .au-spark{transform:rotate(180deg) scale(1.15)}
.au-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s cubic-bezier(.2,.8,.2,1)}
.au-bar.open .au-body{grid-template-rows:1fr}.au-bar.opening .au-body{animation:auOpen .8s cubic-bezier(.2,.8,.2,1)}
.au-body>*{min-height:0;overflow:hidden}
.au-bar.open .au-body{padding:0 18px 14px}
@keyframes auOpen{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.au-bar .gb,.au-bar .md-foot{color:#d7dcec}
.au-bar .md-sec b,.au-bar .gb-lead,.au-bar .gb-nh b{color:#fff}
.au-bar .gb-news{color:#e7eaf5;border-color:rgba(255,255,255,.08)}.au-bar .gb-news p{color:#aeb6d3}.au-bar .gb-news .gb-imp{color:#e7eaf5}
.au-bar .md-mi small,.au-bar .gb-sec small,.au-bar .gb-cal small,.au-bar .md-foot{color:#8f97b3}
.au-bar .gb-chip{border-color:rgba(255,255,255,.12)}
@media (prefers-reduced-motion:reduce){.au-sky::before,.au-star{animation:none}.au-star{opacity:.6}}
.au-bar .md-sec .md-mi b.up{color:#ff6b6b}.au-bar .md-sec .md-mi b.down{color:#7aa2ff}

/* 장 마감 브리핑 (user 2026-10-15) · 브리핑 바 아래 내 종목 카드 */
.my-day.md-morning{display:grid;gap:12px}
.md-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:10px}
.kb-ix{margin:4px 0 8px}.kb-flow{margin:3px 0 0;font-size:12.5px;color:#aeb6d3}
.au-bar .gb-nh .md-ch.up{color:#ff6b6b}.au-bar .gb-nh .md-ch.down{color:#7aa2ff}.au-bar .gb-nh{justify-content:space-between}

/* 사이드바 종목 옆 렌즈 ON/OFF (user 2026-10-16: 인스타 팔로우처럼) */
.ls-follow{flex:none;display:inline-flex;align-items:center;gap:4px;border:1px solid transparent;cursor:pointer;font:inherit;font-size:12px;font-weight:800;
  padding:6px 11px 6px 9px;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2) 60%,var(--g3));white-space:nowrap;transition:filter .15s}
.ls-follow svg{width:13px;height:13px}
.ls-follow:not(.on){background:transparent;color:var(--text);border-color:var(--line);padding:6px 13px}
.ls-follow:not(.on):hover{border-color:color-mix(in srgb,var(--g1) 55%,var(--line));color:var(--accent)}
.ls-follow.on:hover{filter:brightness(1.08)}
.ls-follow.fx-off{animation:lfxBlur .5s ease-out}
.ls-row .ls-follow{margin-left:6px}
.ls-row.off .ls-nm,.ls-row.off .ls-px,.ls-row.off .lp-logo{opacity:.5}
.ls-chat-h .ls-follow{margin-left:auto}
.ls-chat-h .ls-who{min-width:0;flex:1}
.ls-compose .ls-next{flex:none}
@media (prefers-reduced-motion:reduce){.ls-follow.fx-off{animation:none}}

/* 캡처로 담기 = 제목 줄 오른쪽 작은 칩 (user 2026-10-16) */
.rg-shot{margin-left:auto;display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--faint);font:inherit;font-size:12px;font-weight:600;padding:4px 6px;border-radius:8px;cursor:pointer}
.rg-shot svg{width:14px;height:14px}
.rg-shot:hover{color:var(--text);background:var(--chip)}
.lp-title .rg-shot+.rg-edit,.lp-title .rg-shot+.lb-pill{margin-left:6px}

/* 캡처 붙여넣기 창 (user 2026-10-16) */
.md-drop{display:grid;gap:6px;justify-items:center;text-align:center;padding:26px 16px;border:1.5px dashed color-mix(in srgb,var(--g1) 50%,var(--line));border-radius:14px;
  background:color-mix(in srgb,var(--g1) 6%,transparent);transition:background .15s,border-color .15s}
.md-drop b{font-size:15px}.md-drop.on{background:color-mix(in srgb,var(--g1) 14%,transparent);border-color:var(--g1)}
.md-pick{justify-self:start;border:1px solid var(--line);background:var(--card);color:var(--sub);font:inherit;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:999px;cursor:pointer}
.md-pick:hover{color:var(--text)}

/* 급등 테마 | 수급 포착 스위치 · 수급 카드 (user 2026-10-16) */
.mv-mode{display:inline-flex;gap:2px;background:var(--chip);border-radius:10px;padding:3px;margin:0 8px 8px 0}
.mv-mode button{border:0;background:transparent;color:var(--sub);font:inherit;font-size:12.5px;font-weight:800;padding:5px 13px;border-radius:7px;cursor:pointer}
.mv-mode button.on{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}
.mvg.fl{cursor:pointer}.mvg.fl.on{outline:2px solid color-mix(in srgb,var(--g1) 65%,transparent);outline-offset:-1px}
.fl-list{margin-top:6px;border-top:1px solid var(--line)}
.fl-hd{display:flex;align-items:baseline;gap:8px;padding:10px 2px 6px}.fl-hd b{font-size:14px}.fl-hd span{font-size:12px;color:var(--faint)}
.fl-r{display:flex;align-items:center;gap:8px;padding:7px 2px;border-top:1px solid var(--line);font-size:13.5px}
.fl-i{width:22px;flex:none;color:var(--faint);font-size:12px;font-weight:700}
.fl-v{flex:1;min-width:0;color:var(--sub);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-r .mv-name{flex:none;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 오늘 장 이야기 · 수급 숫자 · 섹터 미니 팝업 (user 2026-10-16) */
.ds .ds-p{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.ds .ds-p:last-child{border-bottom:0}
.ds-n{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#4c6ef5,#7950f2);margin-top:1px}
.ds-tx{min-width:0}.ds-tx b{display:block;font-size:14px;color:#fff}.ds-tx p{margin:3px 0 0;font-size:13.5px;line-height:1.6;color:#c9cfe4}
.ds-wait{color:#8f97b3!important}
.kb-fl{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kb-fc{display:inline-flex;align-items:baseline;gap:5px;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.06);font-size:12.5px}
.kb-fc small{color:#8f97b3;font-size:11.5px}.kb-fc b.up{color:#ff6b6b}.kb-fc b.down{color:#7aa2ff}
.gb-sec .gb-chip{font:inherit;font-size:12.5px;background:transparent;cursor:pointer;color:inherit}
.gb-sec .gb-chip.on{background:rgba(121,80,242,.22);border-color:rgba(121,80,242,.6)}
.au-bar .gb-chip.up{color:#ff6b6b}.au-bar .gb-chip.down{color:#7aa2ff}
.gb-pop{margin:6px 0 4px 58px;max-width:300px;padding:10px 12px;border-radius:12px;background:rgba(14,16,24,.92);border:1px solid rgba(121,80,242,.4);
  animation:gbPop .22s cubic-bezier(.2,.8,.2,1)}
@keyframes gbPop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.gb-pt{font-size:11.5px;font-weight:700;color:#8f97b3;margin-bottom:4px}
.gb-pr{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:13px;color:#e7eaf5;text-decoration:none}
.gb-pr:hover span{text-decoration:underline}.gb-pr b.up{color:#ff6b6b}.gb-pr b.down{color:#7aa2ff}
.gb-pm{border:0;background:transparent;color:#b9a6ff;font:inherit;font-size:12px;font-weight:700;padding:4px 0 0;cursor:pointer}
.gb-pn{margin:0;font-size:12px;color:#8f97b3}
@media (max-width:560px){.gb-pop{margin-left:0;max-width:none}}
@media (prefers-reduced-motion:reduce){.gb-pop{animation:none}}

/* 브리핑 바 열고 닫기는 myday.js가 높이를 부드럽게 움직여요 (user 2026-10-16) — 예전 커튼(clip-path)·격자 전환은 끄고 */
.au-body{transition:none}.au-bar.opening .au-body{animation:none}
.au-bar.open .au-body{overflow:hidden}
.au-bar.closing .au-spark{transform:none}

/* 한 장의 흐르는 오로라 (user 2026-10-16, WebGL — myday.js): 캔버스가 있으면 예전 CSS 빛 덩어리는 숨겨요 */
.au-sky::before{transition:opacity .9s ease}
.au-gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.au-sky.gl::before{display:none}
.au-sky.gl .au-star{z-index:1}

/* 렌즈 라이브 (user 2026-10-16) */
.lv-card{display:grid;gap:10px}
.lv-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lv-h b{font-size:16px}
.lv-dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.lv-eye{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center}
.lv-card.on .lv-dot{background:#ff4d5e;box-shadow:0 0 0 0 rgba(255,77,94,.6);animation:lvPulse 1.8s ease-out infinite}
@keyframes lvPulse{70%{box-shadow:0 0 0 8px rgba(255,77,94,0)}100%{box-shadow:0 0 0 0 rgba(255,77,94,0)}}
.lv-sub{font-size:12.5px;color:var(--sub)}.lv-at{margin-left:auto;font-size:12px;color:var(--faint)}
.lv-ix{display:flex;flex-wrap:wrap;gap:8px}
.lv-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 11px;border-radius:999px;background:var(--chip);font-size:13px}
.lv-chip small{color:var(--sub);font-size:12px}.lv-chip b{font-variant-numeric:tabular-nums}.lv-chip b.up{color:var(--up)}.lv-chip b.down{color:var(--down)}
.lv-chip em{font-style:normal;font-size:12px;color:var(--sub)}
.lv-feed{display:grid;border-top:1px solid var(--line)}
.lv-row{display:flex;gap:10px;align-items:baseline;padding:9px 2px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.55;color:var(--sub)}
.lv-row.top{color:var(--text)}.lv-row:last-child{border-bottom:0}
.lv-t{flex:none;width:40px;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.lv-flash{flex:none;font-size:11px;font-weight:800;color:#ff8a3d;background:rgba(255,138,61,.13);border-radius:6px;padding:1px 6px}
.lv-cur{display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:-2px;background:var(--accent);animation:lvBlink 1s step-end infinite}
@keyframes lvBlink{50%{opacity:0}}
.lv-empty{padding:12px 2px;font-size:13px;color:var(--faint)}
.lv-ft{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.lv-more{border:0;background:transparent;color:var(--accent);font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:0}
@media (prefers-reduced-motion:reduce){.lv-card.on .lv-dot,.lv-cur{animation:none}}

/* 새 사이드바 (user 2026-10-16): 홈의 내 종목·렌즈 뉴스를 그대로, 토스 WTS처럼 넓게, 크게 둥글게 */
.lens-side2{position:fixed;top:14px;right:14px;bottom:14px;z-index:60;width:min(440px,calc(100vw - 28px));display:flex;flex-direction:column;
  background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);
  border:1px solid color-mix(in srgb,var(--g1) 22%,var(--line));border-radius:28px;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.03) inset;
  transform:translateX(calc(100% + 30px));opacity:0;visibility:hidden;
  transition:transform .42s cubic-bezier(.22,.8,.24,1),opacity .3s ease,visibility 0s linear .42s}
.lens-side2.open{transform:none;opacity:1;visibility:visible;transition:transform .42s cubic-bezier(.22,.8,.24,1),opacity .3s ease,visibility 0s}
.ls2-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px 10px 14px;display:grid;gap:12px;align-content:start;scrollbar-width:thin}
.ls2-body>.card{margin:0;border-radius:22px;background:color-mix(in srgb,var(--bg) 35%,var(--card));box-shadow:none}
.ls2-x{position:absolute;top:16px;right:16px;z-index:2;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--sub);
  display:grid;place-items:center;cursor:pointer;transition:color .15s,transform .2s}
.ls2-x:hover{color:var(--text);transform:translateX(2px)}.ls2-x svg{width:16px;height:16px}
.ls2-board .lp-title{padding-right:40px}
.ls2-shade{position:fixed;inset:0;z-index:59;background:rgba(5,7,12,.35);opacity:0;pointer-events:none;transition:opacity .3s}
.ls2-shade.on{opacity:1;pointer-events:auto}
.ls2-open .ls-fab{opacity:0;pointer-events:none}
@media (max-width:560px){.lens-side2{top:8px;right:8px;bottom:8px;left:8px;width:auto;border-radius:24px}}
@media (prefers-reduced-motion:reduce){.lens-side2,.lens-side2.open{transition:none}}

/* 사이드바 안: 카드가 넓이를 넘지 않게 (제목 줄 버튼·뉴스 제목이 잘리던 것) */
.ls2-body{grid-template-columns:minmax(0,1fr);overflow-x:hidden}
.ls2-body>.card{min-width:0;max-width:100%;overflow:hidden}
.ls2-body .lp-title{flex-wrap:wrap;row-gap:6px}
.ls2-body .rg-row,.ls2-body .lp-tabs,.ls2-body .lp-chips{max-width:100%}

.ls2-body{display:flex;flex-direction:column}.ls2-body>.card{flex:none;height:auto}   /* 카드 높이를 내용대로 (반반으로 늘어나 잘리던 것) */

/* 토스처럼 옆에 하나 더 열리는 창 (user 2026-10-16: '메인이 옆으로 밀리고 가려지지 않게, 어두워지지 않게, 동시에 보이게') */
.ls2-shade{display:none!important}
.lens-side2{box-shadow:0 10px 30px -18px rgba(0,0,0,.45);transition:transform .42s cubic-bezier(.22,.8,.24,1),opacity .3s ease,visibility 0s linear .42s}
body{transition:padding-right .42s cubic-bezier(.22,.8,.24,1)}
@media (min-width:900px){html.ls2-open body{padding-right:470px}}
@media (prefers-reduced-motion:reduce){body{transition:none}}

/* 사이드바 안 검색 (user 2026-10-16): 렌즈톡 돋보기 → 오른쪽으로 부드럽게 늘어나는 검색창 */
.rg-top{align-items:center}
.rg-sw{display:inline-flex;align-items:center;gap:0;height:38px;padding:0 4px;border-radius:999px;border:1px solid transparent;
  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}
.rg-sw-btn{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:transparent;cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .3s}
.rg-sw-btn svg{width:24px;height:24px}.rg-sw-btn:hover{transform:scale(1.08)}
.rg-sw-in{width:0;opacity:0;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:13.5px;padding:0;
  transition:width .48s cubic-bezier(.22,.8,.24,1),opacity .3s ease,padding .48s cubic-bezier(.22,.8,.24,1)}
.rg-sw.open{background:var(--card);border-color:color-mix(in srgb,var(--g1) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--g1) 14%,transparent)}
.rg-sw.open .rg-sw-in{width:min(190px,40vw);opacity:1;padding:0 8px 0 4px}
.rg-sw.open .rg-sw-btn{transform:rotate(-8deg)}
.rg-sw-res{margin:4px 0 6px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;max-height:300px;overflow-y:auto}
.rg-sw-res:empty{display:none}
.rg-mine{display:flex;align-items:baseline;gap:6px;margin:6px 2px 4px}.rg-mine b{font-size:15px}.rg-mine span{font-size:12px;color:var(--faint)}
.rg-mine .lr-mark{align-self:center}
@media (prefers-reduced-motion:reduce){.rg-sw,.rg-sw-in,.rg-sw-btn{transition:none}}
/* 사이드바를 조금 더 길게 (위아래 여백을 줄여서) */
.lens-side2{top:8px;bottom:8px}

/* 사이드바 검색 결과: 마켓 검색창과 같은 모양 (어느 화면에서 열어도) */
.rg-sw-res{padding:5px;border-color:color-mix(in srgb,var(--g1) 25%,var(--line))}
.rg-sw-res .search-label{padding:7px 9px 5px;color:var(--faint);font-size:11px;font-weight:600}
.rg-sw-res a{display:flex;align-items:center;gap:11px;padding:9px;border-radius:12px;color:var(--text);text-decoration:none;transition:background .12s}
.rg-sw-res a:hover,.rg-sw-res a.active{background:color-mix(in srgb,var(--accent) 9%,var(--card))}
.rg-sw-res .market-search-logo{position:relative;display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--chip);color:var(--accent);font-weight:700;overflow:hidden}
.rg-sw-res .market-search-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rg-sw-res .market-search-copy{display:grid;gap:2px;min-width:0;flex:1}
.rg-sw-res .market-search-copy b{font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rg-sw-res .market-search-copy small{font-size:11.5px;color:var(--faint)}
.rg-sw-res .market-search-arrow{flex:none;color:var(--faint);font-size:16px}
.rg-sw-res p{margin:0;padding:14px 10px;color:var(--sub);font-size:13px}
/* 검색하는 동안엔 캡처·편집 버튼을 잠깐 숨겨 한 줄에 (검색창이 넉넉하게) */
.rg-top{flex-wrap:nowrap!important}
.rg-top:has(.rg-sw.open) .rg-shot,.rg-top:has(.rg-sw.open) .rg-edit{display:none}
.rg-sw.open{flex:1;min-width:0}.rg-sw.open .rg-sw-in{width:100%;flex:1}

/* 검색 알약 (user 2026-10-16: '로고만 떡하니 있으면 누르기 어려워 보여'): 닫혀 있어도 테두리·글씨로 검색창처럼 보이고,
   누르면 줄 끝까지 부드럽게 늘어나요 */
.rg-sw{border-color:color-mix(in srgb,var(--g1) 30%,var(--line));background:color-mix(in srgb,var(--g1) 6%,var(--card));cursor:text;padding:0 14px 0 4px;
  width:auto;max-width:100%;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,flex-grow .48s cubic-bezier(.22,.8,.24,1)}
.rg-sw:hover{border-color:color-mix(in srgb,var(--g1) 60%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--g1) 12%,transparent)}
.rg-sw-hint{font-size:13px;font-weight:600;color:var(--sub);white-space:nowrap;cursor:text;padding-left:2px;transition:opacity .2s,max-width .3s;max-width:200px;overflow:hidden}
.rg-sw.open .rg-sw-hint{opacity:0;max-width:0;padding:0}
.rg-sw.open{flex:1 1 auto;padding-right:6px}
.rg-top{padding-right:40px}
.rg-mine{align-items:center}.rg-tools{margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.rg-tools .rg-shot{margin-left:0}.rg-tools .rg-edit{margin-left:0}

/* 검색 알약 움직임은 lens.js가 폭을 재서 한 번에 (CSS 전환은 끄고 — 서로 다른 속도가 겹쳐 끊겨 보였어요) */
.rg-sw{overflow:hidden;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}
.rg-sw-hint{transition:none}.rg-sw.open .rg-sw-hint{display:none}
.rg-sw-in{transition:none;display:none}.rg-sw.open .rg-sw-in{display:block;width:auto;flex:1;min-width:0;opacity:1;padding:0 8px 0 4px}
.rg-sw.open .rg-sw-btn{transform:none}

/* 렌즈 뉴스 종목 칩 ‹ › (user 2026-10-16) */
.lr-rw{position:relative;display:flex;align-items:center;gap:4px;min-width:0}
.lr-rw .lr-row{flex:1;min-width:0;scroll-behavior:smooth;-webkit-mask-image:none;mask-image:none}
.lr-rw.fade-r .lr-row{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.lr-rw.fade-l .lr-row{-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%);mask-image:linear-gradient(90deg,transparent,#000 15%)}
.lr-rw.fade-l.fade-r .lr-row{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.lr-arw{flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--sub);font-size:17px;line-height:1;
  display:grid;place-items:center;cursor:pointer;padding:0 0 2px;transition:opacity .2s,color .15s,border-color .15s,transform .15s}
.lr-arw:hover{color:var(--text);border-color:color-mix(in srgb,var(--g1) 50%,var(--line))}.lr-arw:active{transform:scale(.92)}
.lr-arw.off{opacity:0;pointer-events:none;width:0;margin:0;border-width:0}

/* 화살표는 사라져도 자리를 지켜요 (자리가 없어지며 줄이 넓어져 끝에서 툭 튀던 것) */
.lr-rw .lr-row{scroll-behavior:auto}
.lr-arw.off{opacity:0;pointer-events:none;width:28px;border-width:1px;margin:0}

/* 렌즈 AI 라이브 전체 화면 (user 2026-10-16) */
.lv-fs{flex:none;width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--sub);display:grid;place-items:center;cursor:pointer;padding:0;transition:color .15s,border-color .15s,transform .15s}
.lv-fs:hover{color:var(--text);border-color:color-mix(in srgb,var(--g1) 50%,var(--line))}.lv-fs:active{transform:scale(.94)}
.lv-fs svg{width:17px;height:17px}.lv-fs .fs-out{display:none}.lv-full .lv-fs .fs-in{display:none}.lv-full .lv-fs .fs-out{display:block}
.lv-at{margin-left:auto}
.lv-card.lv-full{position:fixed;inset:0;z-index:200;margin:0;border-radius:0;max-width:none;width:100%;height:100%;overflow-y:auto;
  padding:clamp(20px,4vw,56px) clamp(16px,8vw,140px);background:var(--bg);align-content:start;gap:18px;animation:lvIn .35s cubic-bezier(.22,.8,.24,1)}
@keyframes lvIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.lv-full .lv-h b{font-size:22px}.lv-full .lv-eye{width:40px;height:40px}.lv-full .lv-sub{font-size:14px}
.lv-full .lv-chip{font-size:16px;padding:8px 16px}.lv-full .lv-chip small{font-size:14px}
.lv-full .lv-row{font-size:18px;padding:14px 4px;line-height:1.6}.lv-full .lv-row.top{font-size:20px}.lv-full .lv-t{width:56px;font-size:14px}
html.lv-lock{overflow:hidden}
@media (prefers-reduced-motion:reduce){.lv-card.lv-full{animation:none}}

/* 렌즈 AI 한 칸 (user 2026-10-16): 오로라 바 안의 [라이브 | 브리핑] 전환 + 라이브 중계 */
.au-bar{position:relative}
.au-seg{position:absolute;top:13px;right:52px;z-index:2;display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.au-seg button{border:0;background:transparent;color:#aeb6d3;font:inherit;font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s}
.au-seg button.on{background:linear-gradient(135deg,#4c6ef5,#7950f2);color:#fff}
.au-seg button:not(.on):hover{color:#fff}
.au-head{padding-right:250px}
.au-lt{display:flex!important;align-items:center;gap:8px}.au-lt svg{flex:none}
.au-dot{width:7px;height:7px;border-radius:50%;background:#ff4d5e;animation:lvPulse 1.8s ease-out infinite}
.au-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.au-live .lv-card.in-hero{background:transparent;border:0;box-shadow:none;padding:0;margin:0}
.lv-card.in-hero .lv-eye,.lv-card.in-hero .lv-h>b,.lv-card.in-hero .lv-dot{display:none}
.au-bar .lv-card.in-hero{color:#e7eaf5}
.au-bar .lv-card.in-hero .lv-sub,.au-bar .lv-card.in-hero .lv-at,.au-bar .lv-card.in-hero .lv-t,.au-bar .lv-card.in-hero .lv-ft{color:#8f97b3}
.au-bar .lv-card.in-hero .lv-chip{background:rgba(255,255,255,.07)}.au-bar .lv-card.in-hero .lv-chip small,.au-bar .lv-card.in-hero .lv-chip em{color:#aeb6d3}
.au-bar .lv-card.in-hero .lv-feed{border-color:rgba(255,255,255,.08)}
.au-bar .lv-card.in-hero .lv-row{border-color:rgba(255,255,255,.06);color:#aeb6d3}.au-bar .lv-card.in-hero .lv-row.top{color:#fff}
.au-bar .lv-card.in-hero .lv-fs{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#c9cfe4}
@media (max-width:640px){.au-seg{position:static;margin:0 18px 10px}.au-head{padding-right:18px}}

/* 핵심 이유 색칠 (user 2026-10-17) */
.lv-why{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:14px;
  background:linear-gradient(90deg,rgba(255,170,60,.18),rgba(255,120,80,.10));border:1px solid rgba(255,170,60,.45)}
.lv-why-k{font-size:11.5px;font-weight:800;color:#ffb347;letter-spacing:.02em}
.lv-why b{font-size:15px;font-weight:800;color:var(--text)}.lv-why small{margin-left:auto;font-size:11.5px;color:var(--faint)}
.lv-body{min-width:0;display:block}
.lv-cause{display:inline-block;margin:0 0 4px;padding:2px 9px;border-radius:7px;font-size:12.5px;font-weight:800;color:#3b2200;
  background:linear-gradient(90deg,#ffc15e,#ff9a4d);box-shadow:0 0 0 1px rgba(255,170,60,.35)}
.lv-row .lv-cause+.lv-tx{display:block}
.au-bar .lv-why b{color:#fff}
.lv-full .lv-why b{font-size:19px}.lv-full .lv-cause{font-size:15px}

/* 떨어진 이유 · 오른 이유 (user 2026-10-17): 마감 브리핑의 번호 목록처럼, 색은 머리글에만 */
.lv-why{display:grid;gap:10px;padding:0;border:0;background:transparent}
.lv-rg{display:grid;gap:6px;align-content:start}
.lv-why{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}.lv-rcol{display:grid;gap:10px;align-content:start}
.lv-rg.ev .lv-rg-h{color:#fbbf24}.lv-rg.ev .lv-rg-t{font-weight:600}
/* 렌즈 라이브 가독성 (user 2026-10-20): 제목 한 줄 + 보조 한 줄 + 미니 차트, 속보 줄은 은은하게 */
.lv-row .lv-tx.lv-hd{display:block;font-size:15px;font-weight:700;line-height:1.45;color:var(--text)}
.lv-sb{display:block;margin-top:2px;font-size:13px;line-height:1.5;color:var(--sub)}
.lv-st{display:block;margin-top:4px;font-size:13.5px;line-height:1.7;color:color-mix(in srgb,var(--text) 88%,var(--sub));word-break:keep-all}
.lv-st.recap{padding-left:10px;border-left:2px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:0}
.lv-row .lv-body{flex:1 1 auto;min-width:0}
.lv-sps{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,190px));gap:8px;margin-top:8px}
.lv-sp{padding:7px 10px 6px;border-radius:10px;border:1px solid rgba(150,175,255,.16);background:rgba(255,255,255,.03)}
.lv-sp-h{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--text)}.lv-sp-h b{font-weight:800}
.lv-sp-h b.up{color:#ff6b6b}.lv-sp-h b.dn{color:#7aa2ff}
.lv-sp svg{display:block;width:100%;height:30px;margin:3px 0 1px}.lv-sp small{font-size:10.5px;color:var(--faint)}
.lv-sp svg polyline{fill:none;stroke:#94a3b8;stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lv-sp svg circle{fill:#94a3b8}
.lv-sp svg.up polyline{stroke:#ff6b6b}.lv-sp svg.up circle{fill:#ff6b6b}.lv-sp svg.dn polyline{stroke:#7aa2ff}.lv-sp svg.dn circle{fill:#7aa2ff}
.lv-sp-mk{stroke:rgba(251,191,36,.7);stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}
.lv-row.brk{background:linear-gradient(90deg,rgba(251,191,36,.10),rgba(251,191,36,.02) 60%,transparent);border-left:2px solid rgba(251,191,36,.7);border-radius:0}
.lv-row.brk .lv-hd{color:#fde68a}.lv-bk{display:block;font-style:normal;font-size:10.5px;font-weight:800;color:#fbbf24;letter-spacing:.04em}
.lv-gl{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin:2px 0 10px;font-size:13px}
.lv-gi{display:inline-flex;gap:6px;align-items:baseline;color:var(--text)}.lv-gi small{font-size:11px;font-weight:800;color:var(--faint)}
.lv-gi.up small{color:#ff6b6b}.lv-gi.dn small{color:#7aa2ff}.lv-gi.oil small{color:#fbbf24}.lv-gi b.up{color:#ff6b6b}.lv-gi b.dn{color:#7aa2ff}
.lv-gi.news{flex-basis:100%;min-width:0}.lv-gi.news span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-gi.news small{color:#fbbf24}
.lv-ev-a{flex:none;margin-left:auto;font-size:11px;font-weight:700;color:#7dd3fc;text-decoration:none;padding:1px 7px;border:1px solid rgba(125,211,252,.4);border-radius:999px;white-space:nowrap}
.lv-ev-a:hover{background:rgba(125,211,252,.15);color:#fff}.lv-ev-a+small{margin-left:6px!important}
.lv-ev-d{flex:none;width:8px;height:8px;border-radius:50%;background:#94a3b8;transform:translateY(-1px)}.lv-ev-d.up{background:#ff6b6b}.lv-ev-d.down{background:#7aa2ff}
.lv-rg-h{font-size:12.5px;font-weight:800}.lv-rg.down .lv-rg-h{color:#7aa2ff}.lv-rg.up .lv-rg-h{color:#ff6b6b}
.lv-rg-i{display:flex;align-items:baseline;gap:9px;font-size:14px;line-height:1.5}
.lv-rg-n{flex:none;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#4c6ef5,#7950f2);transform:translateY(2px)}
.lv-rg-t{font-weight:700;min-width:0}.lv-rg-i small{margin-left:auto;flex:none;font-size:11.5px;color:var(--faint)}
.au-bar .lv-rg-t{color:#fff}.au-bar .lv-rg-i small{color:#8f97b3}
/* 줄의 이유 표시는 색칠 대신 작은 글씨로, 같은 이유는 한 번만 */
.lv-cause{display:block;margin:0 0 3px;padding:0;background:none;box-shadow:none;border-radius:0;font-size:12px;font-weight:800;color:var(--sub)}
.lv-cause.down{color:#7aa2ff}.lv-cause.up{color:#ff6b6b}
.lv-full .lv-rg-i{font-size:17px}.lv-full .lv-cause{font-size:14px}

/* 장중 흐름 · 렌즈 AI 라이브 (브리핑 안, user 2026-10-17) */
.md-sec.tl{display:grid;gap:5px}
.tl-r{display:flex;align-items:baseline;gap:8px;font-size:13.5px;line-height:1.5}
.tl-t{flex:none;width:38px;font-size:12px;color:#8f97b3;font-variant-numeric:tabular-nums}
.tl-d{flex:none;font-size:11px}.tl-d.down{color:#7aa2ff}.tl-d.up{color:#ff6b6b}
.tl-x{color:#e7eaf5;min-width:0}.tl-n{margin-left:auto;flex:none;font-size:11px;color:#8f97b3}

/* 오로라 칸 안 중계: 줄 목록만 스크롤 (휠), 이유 목록은 고정 */
.lv-card.in-hero .lv-feed{max-height:380px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent;
  -webkit-mask-image:linear-gradient(#000 88%,transparent);mask-image:linear-gradient(#000 88%,transparent);padding-bottom:14px}
.lv-card.in-hero .lv-feed::-webkit-scrollbar{width:6px}.lv-card.in-hero .lv-feed::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:3px}

.lv-rum{font-style:normal;font-size:10.5px;font-weight:800;color:#c9cfe4;background:rgba(255,255,255,.1);border-radius:5px;padding:1px 6px;margin-right:6px;vertical-align:1px}

.lv-ck{font-size:10.5px;font-weight:700;color:var(--faint);margin-right:2px}.au-bar .lv-ck{color:#8f97b3}

/* 내 종목 줄 화살표 (user 2026-10-17): 링 가운데 높이에 맞춰요. 넘칠 게 없으면 화살표 칸도 접어요 */
.rg-rw{display:flex;align-items:flex-start;gap:4px}
.rg-rw .rg-row{flex:1;min-width:0;scroll-behavior:auto}
.rg-rw .lr-arw{margin-top:26px}
.rg-rw.no-arw .lr-arw{display:none}
.rg-rw.fade-r .rg-row{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.rg-rw.fade-l .rg-row{-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%);mask-image:linear-gradient(90deg,transparent,#000 15%)}
.rg-rw.fade-l.fade-r .rg-row{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}

/* 사이드바 480px (user 2026-10-18). 열려도 메인 크기는 그대로 두고 자리만 왼쪽으로 비켜요
   (user 2026-10-19: '사이드바 켜면 메인이 커지고 좌우로 길쭉해져 — 원래 크기 두고 위치만 밀리게') */
@media (min-width:900px){
  .lens-side2{right:12px;width:min(480px,calc(100vw - 24px))}
  html.ls2-open body{padding-right:504px}
}

/* 렌즈 AI 라이브 줄 그림 (user 2026-10-18) */
.lv-vis{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:7px}
.lv-vis .up{color:#ff6b6b}.lv-vis .dn{color:#5aa9ff}
.lv-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px 3px 4px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.lv-chip b{font-weight:800}
.lv-lg{width:20px;height:20px;border-radius:50%;object-fit:cover;background:#fff;flex:none}
.lv-lg.ix{display:grid;place-items:center;background:rgba(255,255,255,.14);color:#c9cfe4;font-size:9px;font-weight:800}
.lv-tile{display:flex;flex-direction:column;gap:1px;min-width:78px;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.lv-tile small{font-size:10.5px;color:#9aa3bd}.lv-tile b{font-size:13px;font-weight:800}
.lv-vis.breadth{display:block;max-width:440px}
.lv-br{display:flex;height:9px;border-radius:5px;overflow:hidden;gap:2px}.lv-br i{display:block}.lv-br .up{background:#ff6b6b}.lv-br .dn{background:#5aa9ff}
.lv-brl{display:flex;justify-content:space-between;font-size:11.5px;font-weight:700;margin-top:4px}
.lv-vis.pos{gap:16px}
.lv-spark{width:150px;height:34px;flex:none}.lv-spark polyline{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.lv-spark circle{fill:currentColor}
.lv-spark.up{color:#ff6b6b}.lv-spark.dn{color:#5aa9ff}
.lv-rng{min-width:210px;flex:1;max-width:300px}.lv-rng small{font-size:10.5px;color:#9aa3bd}
.lv-trk{position:relative;height:6px;border-radius:3px;background:rgba(255,255,255,.1);margin:6px 0 3px}
.lv-trk i{position:absolute;top:-3px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#c9cfe4;box-shadow:0 0 0 3px rgba(201,207,228,.18)}
.lv-rl{display:flex;justify-content:space-between;font-size:11px;color:#9aa3bd}.lv-rl b{font-weight:800}
:root[data-theme="light"] .lv-chip,:root[data-theme="light"] .lv-tile{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.08)}

/* 지금 많이 보는 종목: 칸 폭을 고정해 머리글과 모든 줄의 세로선을 맞춰요 (user 2026-10-18: '배열이 안 맞아') —
   전엔 '현재가·등락률' 칸이 auto라 줄마다 글자 길이에 따라 폭이 달랐어요. 이름 칸은 섹터 꼬리표가 들어가게 조금 넓게 */
@media (min-width:761px){
  .pl-head,.pl-r{grid-template-columns:22px 30px minmax(250px,330px) 196px 84px minmax(0,1fr)}
  .pl-head span:nth-child(4){padding-right:0}
  .pl-r>.pl-rt{display:flex;justify-content:flex-end;align-items:center;gap:6px;min-width:0}
  .pl-pl{grid-template-columns:minmax(0,1fr) 62px}
  .pl-px{white-space:nowrap}
}
.pl-top .pl-tag{white-space:nowrap}
/* 휴대폰 지구본 아래 시장 목록 (2026-10-19 A안): 앞쪽 = 뚜렷, 뒤쪽 = 흐리게, 누르면 그 나라로 */
.gl-list{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:6px;padding:4px 6px 6px}
.gl-list[hidden]{display:none}
.gl-list button{font:inherit;font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;transition:opacity .3s}
.gl-list button.gl-dim{opacity:.45}
.gl-list em{font-style:normal;font-weight:700}.gl-list em.up{color:var(--up)}.gl-list em.dn{color:var(--down)}
.gl-list .lv-open{margin-right:4px}
/* 대륙별 띠 (2026-10-19): 오른 곳·내린 곳 — 누르면 지구본이 그쪽으로 */
.gl-regs{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:2px 6px 6px}
.gl-reg{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--card) 80%,transparent);color:var(--text);cursor:pointer;text-align:left;font:inherit}
.gl-reg:hover{border-color:color-mix(in srgb,#5eeaff 45%,var(--line))}
.gl-reg .n{font-size:13px;font-weight:700}
.gl-reg .c{font-size:12px;color:var(--sub)}
.gl-reg em{font-style:normal;font-weight:700}.gl-reg em.up{color:var(--up)}.gl-reg em.dn{color:var(--down)}
.gl-reg .c.s{display:none}
@media (max-width:560px){.gl-reg{padding:7px 9px}.gl-reg .c.l{display:none}.gl-reg .c.s{display:inline;font-size:11px}}
/* 검색 결과 상자: 아래 목록이 부드럽게 밀려나요 (2026-10-19) */
.glide{height:0;overflow:hidden;flex:none;transition:height .34s cubic-bezier(.22,.8,.24,1)}
@media (prefers-reduced-motion:reduce){.glide{transition:none}}
.glide-in{display:flow-root}
.glide-ghost{pointer-events:none}
.glide-fold{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;margin:2px 0 6px;padding:6px 8px;border:0;border-radius:10px;
  background:transparent;color:var(--sub);font:inherit;font-size:12px;cursor:pointer;transition:background .15s,color .15s}
.glide-fold:hover{background:var(--chip);color:var(--text)}
.glide-fold i{font-style:normal;font-size:13px;line-height:1;transform:translateY(2px)}
/* 미장 마감 브리핑: 국장으로 이어지는 흐름 (2026-10-21) */
.ds-k{margin:6px 0 0;font-size:14px;line-height:1.7;word-break:keep-all;color:var(--text)}
/* 미장 마감 숫자 카드: 이름·값·등락·미니차트 (2026-10-21) */
.mk-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:6px}
.mk-t{padding:8px 10px 6px;border-radius:12px;border:1px solid color-mix(in srgb,var(--text) 10%,transparent);background:color-mix(in srgb,var(--text) 3%,transparent);min-width:0}
.mk-h{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.mk-h small{font-size:11.5px;color:var(--sub);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-h b{font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums}.mk-h b.up{color:#ff6b6b}.mk-h b.down{color:#7aa2ff}
.mk-v{font-size:16px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums;color:var(--text)}
.mk-spw svg{display:block;width:100%;height:28px;margin-top:4px}
.mk-sp polyline{fill:none;stroke:var(--sub);stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}.mk-sp.up polyline{stroke:#ff6b6b}.mk-sp.down polyline{stroke:#7aa2ff}
.mk-base{stroke:color-mix(in srgb,var(--text) 25%,transparent);stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}
@media (max-width:560px){.mk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 지난밤 나온 실적 카드 (2026-10-21): 누르면 뒤집혀요 */
.ue-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.ue-h small{font-size:11.5px;color:var(--faint)}
.ue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}
.ue-c{perspective:1000px;height:200px;cursor:pointer;outline:none}
.ue-in{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d}
.ue-c.on .ue-in{transform:rotateY(180deg)}
.ue-f,.ue-b{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:14px;padding:11px 13px;box-sizing:border-box;
  border:1px solid color-mix(in srgb,var(--text) 12%,transparent);background:color-mix(in srgb,var(--card) 92%,var(--accent) 8%)}
.ue-b{transform:rotateY(180deg);overflow:auto;font-size:12.5px;line-height:1.55}
.ue-c:hover .ue-f,.ue-c:focus-visible .ue-f{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}
.ue-top{display:flex;justify-content:space-between;align-items:center;gap:6px}
.ue-nm{display:flex;align-items:center;gap:7px;min-width:0}.ue-nm b{font-size:14.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ue-nm .md-logo{width:22px;height:22px;border-radius:50%;background:#fff;object-fit:contain;flex:none}
.ue-bd{flex:none;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--sub)}
.ue-bd.up{background:rgba(255,107,107,.14);color:#ff6b6b}.ue-bd.down{background:rgba(122,162,255,.14);color:#7aa2ff}
.ue-gap{font-size:12.5px;font-weight:800;margin:3px 0 5px;padding:4px 8px;border-radius:8px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--sub)}.ue-gap.up{color:#ff6b6b;background:rgba(255,107,107,.1)}.ue-gap.down{color:#7aa2ff;background:rgba(122,162,255,.1)}
.ue-sub{font-size:11.5px;color:var(--sub);margin:5px 0 8px}.ue-sub b.up{color:#ff6b6b}.ue-sub b.down{color:#7aa2ff}
.ue-r{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0}.ue-r span{color:var(--sub);flex:none;white-space:nowrap}.ue-r b{font-weight:800;text-align:right;font-variant-numeric:tabular-nums}
.ue-r small{font-weight:600;color:var(--faint)}
.ue-c.tall{height:250px}.ue-c.tall .ue-r small{display:block;font-size:11px}   /* 예상치가 붙은 국내 실적 카드 */
.ue-hint{position:absolute;left:13px;bottom:9px;font-size:11px;color:var(--faint)}
.ue-bt{display:block;font-size:13.5px;margin-bottom:4px}.ue-line{margin:0 0 6px;color:var(--text);word-break:keep-all}
.ue-g{margin:7px 0 2px;font-size:11.5px;font-weight:800;color:var(--accent)}
.ue-note{margin-top:8px;font-size:10.5px;color:var(--faint)}.ue-src{font-size:11.5px;color:var(--accent)}
.ue-up{display:grid;gap:6px;margin-top:8px}
.ue-ur{display:grid;grid-template-columns:118px minmax(0,auto) 1fr;gap:10px;align-items:baseline;font-size:13.5px}
.ue-ur b{font-weight:800}.ue-ur small{font-size:11.5px;color:var(--faint)}.ue-uw{color:var(--sub);font-variant-numeric:tabular-nums}.ue-uw.now{color:var(--accent);font-weight:800}
@media (max-width:560px){.ue-ur{grid-template-columns:100px 1fr}.ue-ur small{grid-column:2}}
@media (prefers-reduced-motion:reduce){.ue-in{transition:none}}

/* 라이브 기록 날짜별 (2026-10-22) */
.lva-d{display:flex;align-items:center;gap:10px;width:100%;padding:9px 4px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;text-align:left;font:inherit}.lva-d b{font-size:14px;font-weight:800}.lva-d small{flex:1;font-size:12px;color:var(--sub)}.lva-d i{font-style:normal;color:var(--faint)}.lva-d.on b{color:var(--accent)}
.lva-s{padding:2px 4px 8px 14px}.lva-sn{display:block;font-size:11.5px;font-weight:700;color:var(--faint);margin:6px 0 2px}.lva-l{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:5px 0;border-left:2px solid var(--line);padding-left:10px}.lva-l.up{border-left-color:#ff6b6b}.lva-l.down{border-left-color:#7aa2ff}.lva-t{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums;padding-top:1px}.lva-tx b{display:block;font-size:13.5px;font-weight:700;line-height:1.45}.lva-tx small{display:block;font-size:12px;color:var(--sub);margin-top:1px}.lva-empty{font-size:12.5px;color:var(--faint);padding:6px 4px 10px}

/* 모바일 앱처럼 (2026-10-22): 두 번 톡 확대 막기·글자 크기 자동 조절 끄기, 입력창은 16px 이상 — 아이폰은 그보다 작은 입력창을 누르면 화면을 확대하고 돌아오지 않아 잘려 보였어요 */
html{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:820px){input,textarea,select{font-size:16px!important}}

/* 휴대폰 정리 (2026-10-22, 정보는 그대로) */
@media (max-width:560px){
  /* 환율·원자재·금리·코인: 두 칸에선 이름이 '달..'로 잘려서, 이름은 윗줄·값과 등락률은 아랫줄 */
  .mr{grid-template-columns:minmax(0,1fr) auto;row-gap:1px;padding:4px 4px}
  .mr .n{grid-column:1/-1;white-space:normal;overflow:visible;font-size:12px}
  .mr .v{font-size:12px}.mr .m{text-align:right;font-size:12px}
  /* 금리(한국·미국 두 줄 칸)는 칸이 더 좁아요: 이름·금리·변화를 한 줄씩 */
  .m2 .mr{grid-template-columns:minmax(0,1fr)}.m2 .mr .v,.m2 .mr .m{grid-column:1;text-align:left}
}
@media (max-width:520px){
  /* 지금 많이 보는 종목: 렌즈 버튼은 돋보기 아이콘만 이름 줄 끝에, 태그는 첫 번째만 — 줄이 두 배로 길어지지 않게 */
  .pl-top .pl-lens>span{display:none}
  .pl-r>.pl-top{flex-wrap:wrap;row-gap:3px}
  .pl-r>.pl-top b{order:1;flex:0 1 auto;min-width:0;max-width:calc(100% - 44px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pl-top .lens-btn.pl-lens{order:2;min-width:0;width:30px;height:26px;padding:0;margin-left:6px;justify-content:center;flex:none}
  .pl-r>.pl-top::after{content:'';order:3;flex-basis:100%;height:0}   /* 이름·렌즈 다음 줄에 태그 */
  .pl-top .pl-tag{order:4}.pl-top .pl-tag2{display:none}
  .ch-leg{font-size:11px;line-height:15px;gap:1px 9px}
}

/* 라이브 지수 칩 미니 선 차트 (2026-10-22) */
.lv-ixsp{width:56px;height:18px;flex:none;margin-left:6px;vertical-align:middle;overflow:visible}.lv-ixsp polyline{fill:none;stroke:var(--sub);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.lv-ixsp.up polyline{stroke:var(--up)}.lv-ixsp.down polyline{stroke:var(--down)}.lv-ixsp .b{stroke:var(--faint);stroke-width:1;stroke-dasharray:2 2}

/* 마감 브리핑 '오늘 무슨 일이': 제목이 오른쪽 끝으로 밀려 내용 뒤에 붙어 보였어요 — 꼬리표 옆, 왼쪽에 먼저 (2026-10-22) */
.au-bar .gb-news .gb-nh{justify-content:flex-start;align-items:baseline}.au-bar .gb-news .gb-nh b{font-size:14.5px;font-weight:800}

/* 실적 카드 자세히 보기 (2026-10-22) */
.ue-more{display:block;width:100%;margin-top:10px;padding:9px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--sub);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.ue-more:hover{color:var(--text);border-color:var(--accent)}.au-bar .ue-more{color:#c9cfe6;border-color:rgba(255,255,255,.14)}

/* 실적 카드 크게 보기 (2026-10-22): 급등 카드처럼 가운데로 커지고 주변은 흐리게, 커진 뒤 뒤집혀요 */

/* 실적 카드 앞면 = 대표 숫자만 (2026-10-22): 잘리지 않게 한 줄씩, 자세한 건 뒷면 */
.ue-c,.ue-c.tall{height:178px}
.ue-bd{max-width:52%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ue-fr{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:baseline;padding:4px 0;border-top:1px solid color-mix(in srgb,var(--text) 6%,transparent)}
.ue-fr span{font-size:12px;color:var(--sub);white-space:nowrap}
.ue-fr b{font-size:15px;font-weight:800;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.ue-fr small{grid-column:2;text-align:right;font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ue-bdb{display:inline-block;max-width:none;margin:2px 0 6px;white-space:normal}
.ue-c .ue-f{display:flex;flex-direction:column}.ue-c .ue-hint{position:static;margin-top:auto;padding-top:3px}.ue-c,.ue-c.tall{height:196px}
.ue-c .ue-hint{display:none}

/* 실적 카드 크게 보기 v2 (2026-10-22): 확대와 뒤집기를 함께, 크기는 transform으로만 — 글자가 다시 배치되지 않아요 */
html.uez-open{overflow:hidden}
.uez-back{position:fixed;inset:0;z-index:120;background:rgba(6,10,24,.55);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);opacity:0}
.uez{position:fixed;z-index:121;margin:0;transform-origin:0 0;perspective:2000px;will-change:transform;cursor:default}
.uez.ue-c{height:auto}
.uez-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:none;will-change:transform}
.uez .uez-f{right:auto;bottom:auto;transform-origin:0 0}
.uez.ue-c:hover .ue-f,.uez.ue-c:focus-visible .ue-f{border-color:color-mix(in srgb,var(--text) 12%,transparent)}
.uez-x{z-index:122;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--sub);font-size:21px;line-height:1;cursor:pointer}
.uez-x:hover{color:var(--text)}
.ue-c.picked{visibility:hidden}
/* 크게 본 뒷면 (마감 브리핑 확대·종목 상세 공용) */
.ue-big{box-sizing:border-box;border-radius:20px;background:var(--card);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 30px 80px rgba(0,0,0,.45);padding:22px 24px 20px;font-size:15px;line-height:1.75;color:var(--text);overflow:auto;overscroll-behavior:contain}
.ue-big .ue-bt{font-size:19px;margin:0 42px 8px 0;display:block}.ue-big .ue-bdb{font-size:13px;padding:3px 10px}
.ue-big .ue-gap{font-size:14.5px;padding:8px 11px;line-height:1.55;margin:6px 0 10px}.ue-big .ue-line{font-size:15.5px;margin-bottom:12px}
.ue-big .ue-g{font-size:13px;margin:14px 0 4px}
.ue-big .ue-r{font-size:14.5px;border-bottom:1px solid color-mix(in srgb,var(--text) 6%,transparent);padding:6px 0}.ue-big .ue-r b{white-space:normal}
.ue-big .ue-note{font-size:12px;margin-top:14px}.ue-big .ue-src{font-size:13px}
.ec-panel{position:fixed;inset:0 12px;margin:auto;z-index:121;width:auto;max-width:560px;height:fit-content;max-height:86vh;max-height:86dvh;overflow-wrap:anywhere}
/* 페이지가 옆으로 넓어지면 아이폰이 기준 화면을 넓혀 가운데 창이 잘려요 (user 2026-10-27 '뉴스 자세히보기가 모바일에서 짤려') */
html,body{overflow-x:clip}
.lv-sc2{touch-action:manipulation}
.ec-x{position:sticky;top:0;float:right;margin:-8px -10px 0 8px}
@media (max-width:560px){.ue-big{padding:18px 16px;font-size:14.5px}}

/* 종목 상세 실적 칸: 분기 실적 카드 (2026-10-22) */
.ec-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}.ec-h{font-size:12px;color:var(--sub);font-weight:700;margin-right:2px}
.ec-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--chip);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}
.ec-chip small{font-size:11px;font-weight:700;color:var(--sub)}.ec-chip.up small{color:#ff6b6b}.ec-chip.down small{color:#7aa2ff}
.ec-chip:hover,.ec-chip:focus-visible{border-color:var(--accent);outline:none}
.ec-hit{fill:transparent;cursor:pointer;outline:none}.ec-hit:hover,.ec-hit:focus-visible{fill:color-mix(in srgb,var(--accent) 8%,transparent)}
.ec-tx{fill:var(--accent);font-weight:700}

/* 라이브: 지금 줄 · 급등 칸 | 급락 칸 · 실적 발표 (2026-10-22) */
.lv-now{padding:8px 2px;font-size:13px;color:var(--sub)}
.lv-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.lv-col{border-radius:14px;padding:10px 12px;border:1px solid var(--line);background:color-mix(in srgb,var(--card) 70%,transparent);min-width:0}
.lv-col.up{border-color:rgba(255,107,107,.28)}.lv-col.down{border-color:rgba(122,162,255,.28)}
.lv-col-h{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.lv-col-h b{font-size:13.5px;font-weight:800}.lv-col.up .lv-col-h b{color:#ff6b6b}.lv-col.down .lv-col-h b{color:#7aa2ff}
.lv-col-h small{font-size:11.5px;color:var(--faint)}
.lv-col-e,.lv-col-m{font-size:12.5px;color:var(--faint);padding:6px 0}
.lv-ci{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:13.5px;line-height:1.55}
.lv-ci-t{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums;padding-top:1px}
.lv-ci-b{min-width:0}.lv-ci-x{color:var(--text)}.lv-ci-sb{display:block;font-size:12.5px;color:var(--sub)}
.lv-ci-s{display:inline-flex;align-items:center;gap:5px;margin-right:6px;color:var(--text);text-decoration:none;vertical-align:baseline}.lv-ci-s:hover b{text-decoration:underline}
.lv-ci-s b{font-weight:800}.lv-ci-s em{font-style:normal;font-weight:800}.lv-ci-s em.up{color:#ff6b6b}.lv-ci-s em.dn{color:#7aa2ff}
.lv-ci-s .lv-lg{width:18px;height:18px;border-radius:50%;background:#fff;object-fit:contain}
.lv-ci.new{animation:lvNew 1.2s ease-out}@keyframes lvNew{from{background:color-mix(in srgb,var(--accent) 14%,transparent)}to{background:transparent}}
.lv-earn{margin-top:4px}.lv-earn .ue-grid{margin-top:6px}.lv-earn-n{display:block;margin-top:6px;font-size:11.5px;color:var(--faint)}
.au-bar .lv-col{background:rgba(255,255,255,.03);}.au-bar .lv-ci{border-color:rgba(255,255,255,.06)}.au-bar .lv-ci-x{color:#e8ecff}
.lv-full .lv-ci{font-size:16px}.lv-full .lv-now{font-size:15px}
@media (max-width:640px){.lv-cols{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.lv-ci.new{animation:none}}
/* 라이브 칸 배치: 지금 줄 → 급등|급락 두 칸(넓게) → 장중 주요 소식 → 실적 발표, 위아래로 (2026-10-22) */
.lv-card .lv-why{grid-template-columns:minmax(0,1fr)}
.lv-earn .ue-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
/* 라이브 지수 중심 (2026-10-22): 칸 위 지수 판, 지수 줄이 주인공, 개별 종목은 작게 */
.lv-bd{padding:8px 10px;margin:4px 0 6px;border-radius:10px;background:color-mix(in srgb,var(--text) 4%,transparent)}
.lv-bd-ix{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}.lv-bd-ix small{font-size:12.5px;color:var(--sub)}.lv-bd-ix b{font-size:17px;font-weight:800}
.lv-bd-ix b.up{color:#ff6b6b}.lv-bd-ix b.dn{color:#7aa2ff}.lv-bd-no{font-size:12.5px;color:var(--faint)}
.lv-bd-r{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;margin-top:5px;font-size:12.5px;line-height:1.5}.lv-bd-r small{color:var(--faint);white-space:nowrap}.lv-bd-r span{color:var(--text)}
.lv-ci.mile .lv-ci-x{font-weight:700}
.lv-st-h{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}.lv-st-h small{font-size:11.5px;color:var(--faint)}
.lv-ci.st{font-size:12.5px;padding:5px 0;border-top:0}.lv-ci.st .lv-ci-x{color:var(--sub)}.lv-ci.st .lv-ci-s b{font-weight:700}
.au-bar .lv-bd{background:rgba(255,255,255,.04)}.au-bar .lv-bd-r span{color:#e8ecff}
.lv-full .lv-bd-ix b{font-size:22px}.lv-full .lv-bd-r{font-size:15px}.lv-full .lv-ci.st{font-size:14px}
.lv-why .lv-bd small,.lv-why .lv-col-h small{margin-left:0}.lv-why .lv-col-h small{margin-left:auto}

/* 화이트 모드에서도 오로라 칸(라이브·마감 브리핑)과 라이브 전체 화면은 늘 어두운 배경이라, 그 안에서는 색 변수를 다크 값으로 고정해요
   (user 2026-10-22: '화이트 모드에서 검은 글자가 안 보이고, 흰 실적 카드에 흰 글자'). 다크 모드에선 값이 같아 바뀌는 게 없어요 */
.au-bar,.lv-card.lv-full{--bg:#0a0d14;--card:#121722;--line:#222a3b;--text:#e8ecf4;--sub:#a1a9b9;--faint:#8a93a8;--chip:#1a2030;--accent:#7c93ff;--glow:rgba(92,124,250,.16);--hi:inset 0 1px 0 rgba(255,255,255,.035);color:var(--text);color-scheme:dark}
:root[data-theme="light"] .au-bar .lv-chip,:root[data-theme="light"] .au-bar .lv-tile,:root[data-theme="light"] .lv-full .lv-chip,:root[data-theme="light"] .lv-full .lv-tile{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}

/* 라이브 v3 (2026-10-22 목업 확정): 상황 띠 · 하루 차트 번호 · 한 줄 기록 · 종목 칩 */
.lv-st2{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;padding:11px 14px;border-radius:12px;background:rgba(160,170,190,.12)}
.lv-st2.up{background:rgba(255,107,107,.13)}.lv-st2.down{background:rgba(122,162,255,.14)}
.lv-st2-k{font-size:21px;font-weight:900;letter-spacing:-.3px}.lv-st2.up .lv-st2-k,.lv-st2.up .lv-st2-v b{color:#ff6b6b}.lv-st2.down .lv-st2-k,.lv-st2.down .lv-st2-v b{color:#7aa2ff}
.lv-st2-v{font-size:14.5px;color:var(--sub)}.lv-st2-v b{font-weight:800;font-size:15.5px}
.lv-why .lv-st2 .lv-st2-s{margin-left:auto;font-size:12.5px;color:var(--sub)}
.lv-drv{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px}.lv-why .lv-drv small{margin-left:0;color:var(--faint);margin-right:2px}
.lv-drv-c{padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--text)}.lv-drv-c b{font-weight:800}.lv-drv-c b.up{color:#ff6b6b}.lv-drv-c b.dn{color:#7aa2ff}
.lv-chw{position:relative}.lv-ch{display:block;width:100%;height:auto}
.lv-ch .z{stroke:var(--faint);stroke-dasharray:4 4;stroke-width:1}.lv-ch .zt{font-size:11px;fill:var(--faint)}
.lv-ch .ln{fill:none;stroke-width:2.2;stroke-linejoin:round}.lv-ch .ln.up{stroke:#ff6b6b}.lv-ch .ln.dn{stroke:#7aa2ff}.lv-ch .ln.b{stroke-width:1.4;opacity:.45}
.lv-ch .nt{font-size:12px;font-weight:800;fill:var(--text)}.lv-ch .nt.b{font-weight:600;fill:var(--sub)}
.lv-ch .mk circle{stroke:var(--card);stroke-width:1.5}.lv-ch .mk.up circle{fill:#e8484a}.lv-ch .mk.down circle{fill:#3d7ae0}
.lv-ch .mk text{font-size:10.5px;font-weight:800;fill:#fff;text-anchor:middle}
.lv-chl{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.lv-tl{display:grid}
.lv-tr{display:grid;grid-template-columns:22px 42px 66px minmax(0,1fr);gap:8px;align-items:start;padding:8px 0;border-top:1px solid var(--line)}
.lv-tr-n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;margin-top:1px}
.lv-tr.up .lv-tr-n{background:#e8484a}.lv-tr.down .lv-tr-n{background:#3d7ae0}
.lv-tr-t{font-size:12.5px;color:var(--faint);font-variant-numeric:tabular-nums;padding-top:2px}
.lv-tr-b{text-align:center;font-size:13.5px;font-weight:900;border-radius:7px;padding:2px 0;font-variant-numeric:tabular-nums}
.lv-tr.up .lv-tr-b{color:#ff6b6b;background:rgba(255,107,107,.13)}.lv-tr.down .lv-tr-b{color:#7aa2ff;background:rgba(122,162,255,.14)}
.lv-tr-x{font-size:14px;line-height:1.5;color:var(--text);min-width:0}.lv-tr-s{display:block;font-size:12.5px;color:var(--sub)}
.lv-tr.new{animation:lvNew 1.2s ease-out}
.lv-stk-h{display:flex;justify-content:space-between}.lv-why .lv-stk-h small{margin-left:0;font-size:11.5px;color:var(--faint)}
.lv-stk-c{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.lv-sc{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.lv-sc b{font-weight:800}.lv-sc b.up{color:#ff6b6b}.lv-sc b.dn{color:#7aa2ff}.lv-sc.on,.lv-sc:hover{border-color:var(--accent)}
.lv-sc .lv-lg{width:16px;height:16px;border-radius:50%;background:#fff;object-fit:contain}
.lv-stk-d{margin-top:8px;padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--text) 5%,transparent);font-size:13.5px;line-height:1.6;color:var(--text)}
.lv-stk-d b.up{color:#ff6b6b}.lv-stk-d b.dn{color:#7aa2ff}.lv-stk-a{font-weight:800;color:var(--text)}
.lv-full .lv-st2-k{font-size:28px}.lv-full .lv-tr-x{font-size:17px}.lv-full .lv-tr-b{font-size:16px}
@media (max-width:560px){.lv-tr{grid-template-columns:20px 38px 58px minmax(0,1fr);gap:6px}.lv-st2-k{font-size:18px}.lv-why .lv-st2 .lv-st2-s{margin-left:0}}
.lv-why .lv-drv-c b{font-size:12.5px}.lv-why .lv-st2-v b{font-size:15.5px}.lv-why .lv-st2-k{font-size:21px}.lv-why .lv-tr-x span,.lv-why .lv-tr-b{font-size:inherit}
@media (max-width:560px){.lv-why .lv-st2-k{font-size:18px}.lv-why .lv-st2-v b{font-size:14px}.lv-ch .nt{font-size:11px}}

/* 라이브 v4 (2026-10-22): 코스피·코스닥 상황 카드, 부드러운 곡선 차트, 뉴스 점 */
.lv-sts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.lv-sc2{display:grid;gap:4px;text-align:left;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);font:inherit;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.lv-sc2:hover{transform:translateY(-1px)}.lv-sc2.on{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:rgba(124,147,255,.08)}
.lv-sc2-h{display:flex;align-items:center;justify-content:space-between;gap:8px}.lv-sc2-n{font-size:13.5px;font-weight:700;color:var(--sub)}
.lv-sc2-p{font-size:12px;font-weight:900;padding:2px 9px;border-radius:999px;background:rgba(160,170,190,.16);color:var(--sub)}
.lv-sc2.up .lv-sc2-p{background:rgba(255,107,107,.16);color:#ff6b6b}.lv-sc2.down .lv-sc2-p{background:rgba(122,162,255,.16);color:#7aa2ff}
.lv-sc2-v{display:flex;align-items:baseline;gap:8px}.lv-sc2-v b{font-size:22px;font-weight:900;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.lv-sc2-v em{font-style:normal;font-size:15px;font-weight:800}.lv-sc2.up .lv-sc2-v em{color:#ff6b6b}.lv-sc2.down .lv-sc2-v em{color:#7aa2ff}.lv-sc2.flat .lv-sc2-v em{color:var(--sub)}
.lv-why .lv-sc2-s{margin-left:0;font-size:12px;color:var(--faint)}
.lv-chw{position:relative;min-height:190px}
.lc-w{position:relative}.lc{display:block;width:100%;height:auto;overflow:visible}
.lc-tk{font-size:11px;fill:var(--faint);font-variant-numeric:tabular-nums}
.lc-base{stroke:var(--faint);stroke-width:1;stroke-dasharray:3 4;opacity:.7}.lc-bt{font-size:10.5px;fill:var(--faint)}
.lc-line{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.lc.up .lc-line{stroke:#ff5a64}.lc.dn .lc-line{stroke:#4f8dff}.lc.fl .lc-line{stroke:#a1a9b9}
.lc.up .lc-g0{stop-color:#ff5a64;stop-opacity:.28}.lc.dn .lc-g0{stop-color:#4f8dff;stop-opacity:.28}.lc.fl .lc-g0{stop-color:#a1a9b9;stop-opacity:.2}
.lc .lc-g1{stop-color:#000;stop-opacity:0}.lc.up .lc-g1{stop-color:#ff5a64;stop-opacity:0}.lc.dn .lc-g1{stop-color:#4f8dff;stop-opacity:0}
.lc-now{stroke:var(--card);stroke-width:2}.lc.up .lc-now{fill:#ff5a64}.lc.dn .lc-now{fill:#4f8dff}.lc.fl .lc-now{fill:#a1a9b9}
.lc-pulse{opacity:.35;transform-box:fill-box;transform-origin:center;animation:lcP 1.8s ease-out infinite}.lc.up .lc-pulse{fill:#ff5a64}.lc.dn .lc-pulse{fill:#4f8dff}.lc.fl .lc-pulse{fill:#a1a9b9}
@keyframes lcP{0%{transform:scale(.45);opacity:.5}100%{transform:scale(1.6);opacity:0}}
.lc-val{font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}.lc.up .lc-val{fill:#ff6b6b}.lc.dn .lc-val{fill:#7aa2ff}.lc.fl .lc-val{fill:var(--sub)}
.lc-dot{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;padding:0;border-radius:50%;border:2.5px solid var(--card);cursor:pointer;box-shadow:0 0 0 3px rgba(255,255,255,.08),0 2px 8px rgba(0,0,0,.35);transition:transform .15s}
.lc-dot.up{background:#ff5a64}.lc-dot.dn{background:#4f8dff}.lc-dot.nt{background:#f5b84b}.lc-dot.pre{border-style:dashed}
.lc-dot:hover,.lc-dot:focus-visible{transform:scale(1.35);outline:none}
.lc-pop{position:absolute;z-index:5;width:240px;padding:10px 12px;border-radius:12px;background:#1b2132;border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 30px rgba(0,0,0,.45);transform:translateY(-100%);pointer-events:none;color:#e8ecf4}
.lc-pop.below{transform:none}.lc-pop b{display:block;font-size:13.5px;line-height:1.4}.lc-pop small{display:block;font-size:11px;color:#8a93a8;margin:3px 0 5px}
.lc-pop p{margin:0;font-size:12.5px;line-height:1.55;color:#c9cfe6}.lc-pop em{display:block;margin-top:6px;font-style:normal;font-size:11px;color:#7c93ff}
.lc-nt{font-size:12px;color:var(--faint);margin:2px 0 8px}
.lv-tr{grid-template-columns:42px 70px minmax(0,1fr)}
@media (max-width:560px){.lv-tr{grid-template-columns:38px 62px minmax(0,1fr)}.lv-sc2-v b{font-size:19px}.lc-pop{width:210px}}
@media (prefers-reduced-motion:reduce){.lc-pulse{animation:none}}
.lv-why .lv-chl{margin-left:0;display:block;text-align:left}
.lc.up .lc-g0{stop-opacity:.22}.lc.dn .lc-g0{stop-opacity:.22}
.lc-dot.pre{border-style:solid;box-shadow:0 0 0 3px rgba(255,255,255,.08),0 0 0 6px rgba(245,184,75,.0)}

/* 라이브 차트 뉴스 점: 휴대폰 누르기 쉽게 (2026-10-22) */
.lc-pop{pointer-events:auto}.lc-pop .lc-go{display:inline-block;margin-top:8px;padding:6px 12px;border:0;border-radius:999px;background:rgba(124,147,255,.16);color:#9db0ff;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}.lc-pop .lc-go:hover{background:rgba(124,147,255,.26)}
.lc-dot.on{transform:scale(1.35);box-shadow:0 0 0 4px rgba(255,255,255,.18),0 2px 10px rgba(0,0,0,.45)}
@media (hover:none){.lc-dot{width:20px;height:20px;margin:-10px 0 0 -10px;pointer-events:none}.lc-w{cursor:pointer}.lc-pop.touch{padding:12px 14px}.lc-pop.touch b{font-size:14.5px}.lc-pop.touch p{font-size:13.5px}.lc-pop.touch .lc-go{padding:9px 16px;font-size:14px}}
.lc-et{font-size:13px;font-weight:700;fill:var(--sub)}.lc-empty{padding:30px 0;text-align:center;font-size:13px;color:var(--faint)}

/* 라이브 차트 장 전 구간 (2026-10-22) */
.lc-prez{fill:rgba(255,255,255,.035);stroke:rgba(255,255,255,.06)}.lc-prel{font-size:11px;font-weight:700;fill:var(--faint)}
.lc-line.lc-pre{stroke-width:1.8;opacity:.85}.lc-line.lc-pre.up{stroke:#ff8a90}.lc-line.lc-pre.dn{stroke:#7fa8ff}
.lc-early{position:absolute;z-index:4;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(20,26,40,.85);color:var(--sub);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}
.lc-early:hover,.lc-early.on{color:var(--text);border-color:var(--accent)}
.lc-elist{display:grid;gap:2px;margin-top:6px;max-height:220px;overflow:auto}
.lc-eitem{display:grid;grid-template-columns:40px 1fr;gap:6px;text-align:left;padding:6px 4px;border:0;border-radius:8px;background:transparent;color:#e8ecf4;font:inherit;font-size:12.5px;cursor:pointer}
.lc-eitem:hover{background:rgba(255,255,255,.06)}.lc-eitem small{color:#8a93a8;font-variant-numeric:tabular-nums}.lc-eitem.up span{border-left:2px solid #ff5a64;padding-left:6px}.lc-eitem.dn span{border-left:2px solid #4f8dff;padding-left:6px}
.lc-pop::after{content:"";position:absolute;left:0;right:0;top:100%;height:18px}.lc-pop.below::after{top:auto;bottom:100%}

/* 라이브 차트 미니 팝업 v2 (2026-10-22): 렌즈톡 그라데이션 테두리·꼬리, 시각을 크게, 점에서 시간축까지 그라데이션 세로선 */
.lc-pop{width:268px;padding:12px 14px 12px;border-radius:16px;border:1px solid transparent;background:linear-gradient(160deg,rgba(27,33,54,.97),rgba(16,20,36,.97)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box;box-shadow:0 16px 40px rgba(0,0,0,.5),0 0 0 1px rgba(124,147,255,.06),0 0 30px -8px rgba(121,80,242,.45);color:#e8ecf4}
.lc-pop::before{content:"";position:absolute;left:calc(var(--ax,50%) - 7px);bottom:-7px;width:12px;height:12px;transform:rotate(45deg);background:linear-gradient(135deg,transparent 50%,var(--g2) 50%);border-radius:0 0 3px 0}
.lc-pop.below::before{bottom:auto;top:-7px;background:linear-gradient(135deg,var(--g1) 50%,transparent 50%);border-radius:3px 0 0 0}
.lc-ph{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.lc-ptime{font-size:22px;font-weight:900;letter-spacing:-.5px;font-variant-numeric:tabular-nums;line-height:1;background:linear-gradient(135deg,#9db0ff,#b197fc 55%,#66d9e8);-webkit-background-clip:text;background-clip:text;color:transparent}
.lc-plab{display:grid;gap:1px;font-size:11px;color:#8a93a8;line-height:1.3}.lc-plab em{font-style:normal;font-weight:800;color:#c9cfe6;font-size:11.5px}
.lc-pop b{display:block;font-size:14.5px;line-height:1.4;color:#fff}
.lc-pop.dn b::before,.lc-pop.up b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 6px 2px 0;vertical-align:middle}
.lc-pop.dn b::before{background:#4f8dff}.lc-pop.up b::before{background:#ff5a64}
.lc-pop p{margin:5px 0 0;font-size:12.5px;line-height:1.55;color:#c9cfe6}
.lc-pop .lc-go{margin-top:10px;padding:6px 14px;border-radius:999px;border:0;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;font-size:12.5px;font-weight:800;box-shadow:0 4px 14px rgba(121,80,242,.35)}.lc-pop .lc-go:hover{filter:brightness(1.12);background:linear-gradient(135deg,var(--g1),var(--g2))}
.lc-guide{position:absolute;z-index:2;width:2px;margin-left:-1px;pointer-events:none;border-radius:2px;background:linear-gradient(180deg,var(--g1),var(--g2) 60%,rgba(34,184,207,.15))}
.lc-tbadge{position:absolute;z-index:3;transform:translateX(-50%);padding:2px 8px;border-radius:999px;pointer-events:none;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;font-size:11.5px;font-weight:900;font-variant-numeric:tabular-nums;box-shadow:0 4px 12px rgba(76,110,245,.4)}
.lc-pop.touch .lc-ptime{font-size:24px}
.lc-gapl{stroke:var(--faint);stroke-width:1.4;stroke-dasharray:2 4;opacity:.8}.lc-open{stroke:rgba(124,147,255,.35);stroke-width:1;stroke-dasharray:3 3}
.lc-mode{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line);justify-self:start;width:max-content}
.lc-mode button{border:0;background:transparent;color:var(--sub);font:inherit;font-size:12.5px;font-weight:800;padding:4px 14px;border-radius:999px;cursor:pointer}
.lc-mode button.on{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}

/* 라이브 차트 선 따라가기 (2026-10-22) */
.lc-trl{position:absolute;z-index:1;width:1.5px;margin-left:-.75px;pointer-events:none;border-radius:2px;background:linear-gradient(180deg,rgba(124,147,255,0),var(--g1) 25%,var(--g2) 75%,rgba(121,80,242,0))}
.lc-trd{position:absolute;z-index:3;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;pointer-events:none;background:#a1a9b9;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 0 0 7px rgba(124,147,255,.25),0 0 14px rgba(121,80,242,.6)}
.lc-trd.up{background:#ff5a64}.lc-trd.dn{background:#4f8dff}
.lc-trt{position:absolute;z-index:4;display:flex;align-items:baseline;gap:8px;padding:4px 11px;border-radius:999px;pointer-events:none;white-space:nowrap;border:1px solid transparent;background:linear-gradient(rgba(20,25,42,.94),rgba(20,25,42,.94)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box;box-shadow:0 6px 18px rgba(0,0,0,.4);font-size:12.5px;color:#e8ecf4;font-variant-numeric:tabular-nums}
.lc-trt-t{font-weight:900;background:linear-gradient(135deg,#9db0ff,#b197fc);-webkit-background-clip:text;background-clip:text;color:transparent}
.lc-trt b{font-weight:800;color:#fff}.lc-trt em{font-style:normal;font-weight:800}.lc-trt em.up{color:#ff6b6b}.lc-trt em.dn{color:#7aa2ff}
.lc-line.lc-ref{stroke:#8a93a8;stroke-width:1.6;stroke-dasharray:4 3;opacity:.75}.lc-reft{font-size:11px;font-weight:700;fill:#8a93a8}
.lc-join{stroke:#a1a9b9;stroke-width:1.6;opacity:.7}.lc-trt-k{font-size:11px;font-weight:800;color:#8a93a8}

/* 라이브 차트 미니 팝업: 빈 자리에 작게 + 점까지 얇은 그라데이션 화살표 선 (2026-10-23) */
.lc-link{position:absolute;left:0;top:0;z-index:4;pointer-events:none;overflow:visible}.lc-link-p{filter:drop-shadow(0 0 3px rgba(124,147,255,.55))}
.lc-pop.free{transform:none;padding:9px 11px 10px;border-radius:13px}.lc-pop.free::before,.lc-pop.free::after{display:none}
.lc-pop.free .lc-ph{gap:8px;margin-bottom:4px}.lc-pop.free .lc-ptime{font-size:18px}.lc-pop.free b{font-size:13px;line-height:1.35}
.lc-pop.free p{font-size:12px;line-height:1.45}.lc-pop.free .lc-go{margin-top:6px;padding:5px 11px;font-size:12px}
.lc-pop.touch.free .lc-ptime{font-size:20px}.lc-pop.touch.free .lc-go{padding:8px 14px;font-size:13.5px}
.lc-pop.free .lc-ph .lc-go{margin:0 0 0 auto;align-self:center;padding:4px 10px;font-size:11.5px;white-space:nowrap}.lc-pop.free b{margin-top:2px}
.lc-pop.touch.free .lc-ph .lc-go{padding:7px 12px;font-size:13px}
.lc-pop.free .lc-plab{white-space:nowrap;min-width:0}.lc-pop.free .lc-ph .lc-go{flex-shrink:0}@media (max-width:560px){.lc-pop.free .lc-ptime{font-size:17px}.lc-pop.touch.free .lc-ph .lc-go{padding:6px 10px;font-size:12.5px}}
/* 뉴스 점 색 통일: 렌즈톡 그라데이션 한 가지 (user 2026-10-23 "색은 통일시켜") — 호재/악재는 팝업 글로 */
.lc-dot.up,.lc-dot.dn,.lc-dot.nt{background:linear-gradient(135deg,#9db0ff,#7c5cff 55%,#66d9e8)}
.lc-pop.nt b::before,.lc-pop.dn b::before,.lc-pop.up b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin:0 6px 2px 0;vertical-align:middle;background:linear-gradient(135deg,#9db0ff,#7c5cff 55%,#66d9e8)}
.lc-eitem.up span,.lc-eitem.dn span,.lc-eitem.nt span{border-left:2px solid #7c5cff;padding-left:6px}
/* 장중 주요 소식 = 점 찍힌 소식 (2026-10-23) */
.lv-news{margin-top:6px}.lv-news-h{color:#fbbf24;margin:6px 0 2px}
.lv-nr{grid-template-columns:44px 12px minmax(0,1fr)!important;width:100%;background:none;border:0;border-top:1px solid var(--line);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:0}
.lv-nr:hover .lv-tr-x>span:not(.lv-tr-s){text-decoration:underline;text-decoration-color:rgba(157,176,255,.5);text-underline-offset:3px}
.lv-nr-d{width:9px;height:9px;margin-top:8px;border-radius:50%;background:linear-gradient(135deg,#9db0ff,#7c5cff 55%,#66d9e8);box-shadow:0 0 0 3px rgba(124,92,255,.15)}
.lv-nr-b{display:inline-block;margin-right:7px;padding:0 7px;border-radius:6px;font-style:normal;font-size:.8em;font-weight:900;color:#9db0ff;background:rgba(124,147,255,.14);vertical-align:1px;font-variant-numeric:tabular-nums}
.lc-pts{margin:4px 0 2px;padding:0;list-style:none;display:grid;gap:7px}.lc-pts li{position:relative;padding-left:16px;font-size:15px;line-height:1.6;color:var(--text)}.lc-pts li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#9db0ff,#7c5cff 55%,#66d9e8)}.lc-pts li:first-child{font-weight:700}
.lc-gap{font-size:10.5px;font-weight:700;fill:var(--faint)}.lc-gapl{stroke:var(--faint);stroke-width:1;stroke-dasharray:2 3;opacity:.6}
/* 라이브 지난 기록 (2026-10-23) */
.lv-hist{flex:none;height:32px;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--sub);display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:color .15s,border-color .15s}
.lv-hist svg{width:16px;height:16px}.lv-hist:hover,.lv-hist.on{color:var(--text);border-color:color-mix(in srgb,var(--g1) 55%,var(--line))}
@media (max-width:560px){.lv-hist{width:32px;padding:0;justify-content:center}.lv-hist span{display:none}}
.lv-days{display:flex;gap:6px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,#000 92%,transparent)}.lv-days::-webkit-scrollbar{display:none}
.lv-dchip{flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--sub);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap}
.lv-dchip b{font-weight:800;color:var(--text)}.lv-dchip.on{border-color:transparent;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}.lv-dchip.on b{color:#fff}
.lv-dlive i{width:7px;height:7px;border-radius:50%;background:#ff5a64;box-shadow:0 0 0 3px rgba(255,90,100,.2)}.lv-dnone{align-self:center;font-size:12px;color:var(--faint)}
.lv-pastb{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;border-radius:12px;font-size:13px;font-weight:700;color:var(--text);background:linear-gradient(135deg,color-mix(in srgb,var(--g1) 16%,transparent),color-mix(in srgb,var(--g2) 12%,transparent));border:1px solid color-mix(in srgb,var(--g1) 35%,transparent)}
.lv-pastx{margin-left:auto;padding:4px 11px;border-radius:999px;border:0;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
/* 라이브 차트 꾹 누르기: 앱처럼 (선택·끌기·길게 누름 메뉴 없음, 가로 밀기는 차트가 받아요) */
.lc-w{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:pan-y}
.lc-w svg,.lc-w img{-webkit-user-drag:none;user-drag:none}.lc-w.lc-lp{touch-action:none}
/* 라이브 탭: 지수 흐름 · 실적 발표 (2026-10-23) */
.lv-tabs{display:inline-flex;gap:4px;padding:3px;margin:0 0 12px;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent)}
.lv-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:0;border-radius:999px;background:none;color:var(--sub);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.lv-tab.on{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}.lv-tab em{font-style:normal;font-size:11.5px;font-weight:900;min-width:18px;padding:0 5px;border-radius:999px;background:#ff5a64;color:#fff;text-align:center}
.lv-upc{margin-top:14px}.lv-upr{display:grid;grid-template-columns:96px minmax(0,1fr);gap:2px 10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.lv-upr .lv-upt{grid-row:span 2;color:var(--faint);font-size:12.5px;font-variant-numeric:tabular-nums;padding-top:2px}.lv-upr small{color:var(--sub);font-size:12px}
.lv-earnp .lv-earn>.lv-rg-h{display:none}.lv-earnp>.lv-rg-h{margin-bottom:8px}
.lv-why .lv-upr small{margin-left:0;display:block;text-align:left}.lv-upr b{font-size:14.5px}
.lv-tabs{justify-self:start;width:fit-content;max-width:100%}
/* 소식 뒤 실제 움직임 (2026-10-24) */
.lc-mv{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12px;color:#8a93a8}.lc-mv b{font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}
.lc-mv.up b{color:#ff6b6b}.lc-mv.dn b{color:#7aa2ff}
.lc-dot.moved{box-shadow:0 0 0 3px rgba(255,255,255,.12),0 0 0 6px rgba(124,92,255,.35),0 2px 8px rgba(0,0,0,.35)}
/* 지난 기록: 국장 | 미장 두 칸 목록 (2026-10-24) */
.lv-days{display:block;overflow:visible;-webkit-mask:none;padding:10px 0 4px}.lv-dtop{margin-bottom:8px}
.lv-dcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lv-dcol{display:grid;gap:6px;align-content:start;max-height:280px;overflow-y:auto;padding-right:2px}
.lv-dch{font-size:12.5px;font-weight:800;color:var(--sub);padding:0 2px 2px}
.lv-drow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border-radius:12px;padding:8px 11px;text-align:left;white-space:normal}
.lv-dix{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:12px}.lv-dix em{font-style:normal;color:var(--sub)}.lv-dix em.up{color:#ff6b6b}.lv-dix em.dn{color:#7aa2ff}
.lv-drow small{font-size:11px;color:var(--faint)}.lv-drow.on .lv-dix em,.lv-drow.on small{color:#fff}
@media (max-width:560px){.lv-drow{grid-template-columns:auto minmax(0,1fr)}.lv-drow small{display:none}}
/* 지난 기록 화면: 라이브 카드 안의 다른 화면 (2026-10-24) */
.lv-card.lv-histmode>*:not(.lv-h):not(#lv-days){display:none!important}
.lv-card.lv-histmode #lv-days{display:block;margin-top:12px;padding:18px 16px 20px;min-height:360px;border-radius:18px;background:#05060b;border:1px solid rgba(255,255,255,.06);-webkit-mask:none}
.lv-htitle{font-size:17px;font-weight:900;color:#fff;margin:0 2px 14px}
.lv-card.lv-histmode .lv-dlive{width:100%;margin-bottom:14px;background:linear-gradient(135deg,rgba(124,147,255,.16),rgba(124,92,255,.10));border-color:rgba(124,147,255,.35)}
.lv-card.lv-histmode .lv-dlive b{color:#fff}.lv-card.lv-histmode .lv-drow{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.07)}
.lv-card.lv-histmode .lv-drow:hover{background:rgba(124,147,255,.10);border-color:rgba(124,147,255,.35)}
.lv-card.lv-histmode .lv-dcol{max-height:none}.lv-card.lv-histmode .lv-dch{color:#9aa3bd}
.lv-hin{animation:lvHin .5s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i,0)*45ms)}
@keyframes lvHin{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lv-hin{animation:none}}
/* 지난 기록 = 라이브 안의 세 번째 탭 (2026-10-24): 머리줄 버튼·검은 화면은 쓰지 않아요 */
#lv-hist,#lv-days{display:none!important}
.lv-histp .lv-dlive{width:100%;margin-bottom:12px}.lv-histp .lv-dcol{max-height:none}
/* 지난 기록: 오른쪽 버튼 + 렌즈톡 그라데이션 손맛 (2026-10-24) */
.lv-tabrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}.lv-tabrow .lv-tabs{margin:0}
.lv-histbtn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#c9cfe6;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}
.lv-histbtn svg{width:15px;height:15px}
.lv-histbtn:hover,.lv-histbtn.on{border-color:transparent;color:#fff;background:linear-gradient(rgba(22,26,46,.92),rgba(22,26,46,.92)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box;box-shadow:0 6px 20px -8px rgba(124,92,255,.6)}
.lv-histbtn:hover{transform:translateY(-1px)}.lv-histbtn:active{transform:scale(.97)}
.lv-histp .lv-drow{position:relative;padding-right:30px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,background .2s,border-color .2s}
.lv-histp .lv-drow::after{content:"›";position:absolute;right:12px;top:50%;margin-top:-11px;font-size:20px;line-height:22px;font-weight:700;color:#9db0ff;opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
.lv-histp .lv-drow:hover{border-color:transparent;background:linear-gradient(rgba(24,28,52,.94),rgba(24,28,52,.94)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box;transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(124,92,255,.7)}
.lv-histp .lv-drow:hover::after{opacity:1;transform:none}.lv-histp .lv-drow:active{transform:scale(.985)}
.lv-histp .lv-drow.on{border-color:transparent;background:linear-gradient(135deg,rgba(124,147,255,.28),rgba(124,92,255,.22)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box}
.lv-histp .lv-drow.on .lv-dix em,.lv-histp .lv-drow.on small{color:inherit}
@media (hover:none){.lv-histp .lv-drow::after{opacity:.6;transform:none}}
/* 지난 기록 날짜별 키워드 (2026-10-24) */
.lv-dkw{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}.lv-dkw:empty{display:none}
.lv-dkw i{font-style:normal;font-size:12px;font-weight:700;color:#c9cfe6;padding:2px 9px;border-radius:999px;background:rgba(124,147,255,.12);border:1px solid rgba(124,147,255,.22)}
.lv-histp .lv-drow:hover .lv-dkw i{background:rgba(124,147,255,.2);color:#fff}
/* 라이브 실시간 채팅 (2026-10-24) */
.lv-why [hidden]{display:none!important}.lv-ntabs{margin:8px 0 10px}
.lv-chat{display:grid;gap:8px}.lv-chd{display:flex;align-items:center;justify-content:space-between;gap:10px}.lv-chd small{font-size:11.5px;color:var(--faint)}
.lv-cnick{flex:none;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#c9cfe6;border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.lv-clist{height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);scroll-behavior:smooth}
.lv-cempty{margin:auto;font-size:13px;color:var(--faint)}
.lv-cm{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:baseline;font-size:14px;line-height:1.5;padding:4px 8px;border-radius:10px;animation:lvHin .35s cubic-bezier(.22,1,.36,1) both}
.lv-cm b{font-size:12.5px;font-weight:800;white-space:nowrap}.lv-cm span{color:#e8ecf4;word-break:break-word}.lv-cm small{font-size:11px;color:var(--faint)}
.lv-cm.me{background:rgba(124,147,255,.10)}
.lv-cform{display:flex;gap:8px}.lv-cform input{flex:1;min-width:0;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#fff;padding:0 14px;font:inherit;font-size:14px}
.lv-cform input:focus{outline:none;border-color:transparent;background:linear-gradient(rgba(22,26,46,.95),rgba(22,26,46,.95)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box}
.lv-csend{flex:none;height:42px;padding:0 16px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;font:inherit;font-size:14px;font-weight:800;cursor:pointer}
.lv-csend:disabled{opacity:.6}.lv-cerr{font-size:12.5px;color:#ff8a8a;min-height:0}.lv-cerr:empty{display:none}
.lv-chat.off .lv-cform{display:none}
/* 마감 브리핑 탭·지난 기록 (2026-10-24) */
.bt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 12px}
.bt-seg{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent)}
.bt-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:0;border-radius:999px;background:none;color:var(--sub);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.bt-tab.on{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff}.bt-tab em{font-style:normal;font-size:11.5px;font-weight:900;min-width:18px;padding:0 5px;border-radius:999px;background:#ff5a64;color:#fff;text-align:center}
.bt-hist{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#c9cfe6;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}
.bt-hist svg{width:15px;height:15px}.bt-hist:hover,.bt-hist.on{border-color:transparent;color:#fff;background:linear-gradient(rgba(22,26,46,.92),rgba(22,26,46,.92)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box;box-shadow:0 6px 20px -8px rgba(124,92,255,.6)}
.bt-hist:hover{transform:translateY(-1px)}
.bt-past{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:8px 12px;border-radius:12px;font-size:13px;font-weight:700;background:rgba(124,147,255,.10);border:1px solid rgba(124,147,255,.3)}
.bt-back{margin-left:auto;padding:4px 11px;border-radius:999px;border:0;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.bh{display:grid;gap:12px}.bh-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bh-col{display:grid;gap:8px;align-content:start}
.bh-ch{font-size:12.5px;font-weight:800;color:var(--sub)}
.bh-row{position:relative;display:grid;gap:4px;text-align:left;padding:10px 30px 10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);color:inherit;font:inherit;cursor:pointer;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,background .2s,border-color .2s;animation:lvHin .45s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i,0)*40ms)}
.bh-row b{font-size:14px;font-weight:900}.bh-hl{font-size:13px;line-height:1.45;color:#c9cfe6}
.bh-kw{display:flex;flex-wrap:wrap;gap:5px}.bh-kw:empty{display:none}.bh-kw i{font-style:normal;font-size:11.5px;font-weight:700;color:#c9cfe6;padding:2px 9px;border-radius:999px;background:rgba(124,147,255,.12);border:1px solid rgba(124,147,255,.22)}
.bh-row::after{content:"›";position:absolute;right:12px;top:50%;margin-top:-11px;font-size:20px;line-height:22px;font-weight:700;color:#9db0ff;opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
.bh-row:hover{border-color:transparent;background:linear-gradient(rgba(24,28,52,.94),rgba(24,28,52,.94)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box;transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(124,92,255,.7)}
.bh-row:hover::after{opacity:1;transform:none}.bh-row:active{transform:scale(.985)}
.bh-row.on{border-color:transparent;background:linear-gradient(135deg,rgba(124,147,255,.28),rgba(124,92,255,.22)) padding-box,linear-gradient(135deg,var(--g1),var(--g2) 55%,var(--g3)) border-box}
.bh-now{grid-template-columns:auto 1fr;align-items:center}
@media (max-width:560px){.bh-cols{grid-template-columns:1fr}}@media (hover:none){.bh-row::after{opacity:.6;transform:none}}
/* 라이브 공간 확보 (user 2026-10-24: 지수 칩 줄·부제목·끌어내리는 쪽 없애고, 상황 카드는 납작하게 — 차트는 그대로, 채팅까지 보이게) */
#lv-ix,#lv-sub{display:none!important}.lv-card .lv-h{row-gap:4px}
.lv-sts{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.lv-sc2{gap:1px;padding:7px 11px;border-radius:13px}.lv-sc2-n{font-size:12.5px}.lv-sc2-p{font-size:11px;padding:1px 7px}
.lv-sc2-v{gap:6px}.lv-sc2-v b{font-size:18px}.lv-sc2-v em{font-size:13px}
.lv-sc2-s{font-size:11.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lv-chl{font-size:11px!important;margin-top:2px}.lv-ntabs{margin:6px 0 8px}.lv-tabrow{margin-bottom:8px}
@media (max-width:560px){.lv-sc2{padding:6px 8px}.lv-sc2-n{font-size:11.5px}.lv-sc2-p{display:none}.lv-sc2-v{flex-wrap:wrap;gap:0 4px}.lv-sc2-v b{font-size:14.5px}.lv-sc2-v em{font-size:11.5px}.lv-sc2-s{display:none}}
/* 라이브 위 빈 줄 없애기 (user 2026-10-24): 브리핑 칸 안에선 카드 머리줄을 숨기고 전체 화면 버튼은 탭 줄 오른쪽에 */
.lv-card.in-hero:not(.lv-full) .lv-h{display:none}.lv-tabr{display:inline-flex;align-items:center;gap:8px}
.lv-card.in-hero .lv-why{margin-top:0}
/* 소식 점 카테고리 색 (2026-10-24): 지정학 주황 · 매크로 초록 · AI·테크 보라 · 기업·기타 회색 */
:root{--cat-geo:#ff922b;--cat-macro:#40c057;--cat-ai:#9775fa;--cat-etc:#adb5bd}
.lc-dot.grp{width:22px;height:22px;margin:-11px 0 0 -11px;color:#fff;font:800 11px/1 inherit;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
@media (hover:none){.lc-dot.grp{width:26px;height:26px;margin:-13px 0 0 -13px;font-size:12px}}
.lc-dot.c-geo{background:var(--cat-geo)}.lc-dot.c-macro{background:var(--cat-macro)}.lc-dot.c-ai{background:var(--cat-ai)}.lc-dot.c-etc{background:var(--cat-etc)}
.lc-pop.c-geo b::before{background:var(--cat-geo)!important}.lc-pop.c-macro b::before{background:var(--cat-macro)!important}.lc-pop.c-ai b::before{background:var(--cat-ai)!important}.lc-pop.c-etc b::before{background:var(--cat-etc)!important}
.lv-nr-d.c-geo{background:var(--cat-geo)}.lv-nr-d.c-macro{background:var(--cat-macro)}.lv-nr-d.c-ai{background:var(--cat-ai)}.lv-nr-d.c-etc{background:var(--cat-etc)}
.lv-nr-d[class*="c-"]{box-shadow:none}
.lv-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:4px 2px 2px;font-size:11.5px;font-weight:700;color:var(--sub)}
.lv-lgi{display:inline-flex;align-items:center;gap:5px}.lv-lgi i{width:8px;height:8px;border-radius:50%}
.lv-lgi.c-geo i{background:var(--cat-geo)}.lv-lgi.c-macro i{background:var(--cat-macro)}.lv-lgi.c-ai i{background:var(--cat-ai)}.lv-lgi.c-etc i{background:var(--cat-etc)}
/* 홈 화면 앱(아이폰): viewport-fit=cover라 페이지가 시계·배터리 줄 밑까지 그려져요 — 머리 줄을 그 높이만큼 내려요 (user 2026-10-27 '로고·알림·밝기 버튼이 안 보여') */
header.hd3{padding-top:calc(14px + env(safe-area-inset-top))}
@media (max-width:760px){header.hd3{padding-top:calc(10px + env(safe-area-inset-top))}}
.ptr{top:calc(env(safe-area-inset-top) + 8px)}
/* 렌즈 AI 전체 화면도 시계·배터리 줄 밑으로 (user 2026-10-27 아이폰 홈 화면 앱) */
.laf-main{padding-top:calc(14px + env(safe-area-inset-top))}
.laf-side{padding-top:calc(16px + env(safe-area-inset-top))}
@media (max-width:760px){.laf-main{padding-top:calc(10px + env(safe-area-inset-top))}.laf-menu{top:calc(12px + env(safe-area-inset-top))}}
/* 화면을 덮는 다른 창도 시계·배터리 줄을 피해요 (2026-10-27) */
.lv-card.lv-full{padding-top:calc(16px + env(safe-area-inset-top))}
.ic-modal{padding-top:calc(16px + env(safe-area-inset-top))}
