/* 분석기 탭: 멤버 검색 · 멤버 대시보드 · 벙 지도 */

/* ───────── 탭 ───────── */
.atabs{display:flex;gap:2px;margin-top:16px;padding:4px;border-radius:999px;background:var(--glass-well);border:1px solid var(--glass-border);overflow-x:auto;scrollbar-width:none;width:max-content;max-width:100%}
.atabs button{font:inherit;font-weight:600;font-size:.9rem;background:none;border:0;color:var(--mute);min-height:38px;padding:0 16px;cursor:pointer;border-radius:999px;white-space:nowrap;display:flex;align-items:center;gap:6px}
.atabs button[aria-selected="true"]{color:var(--on-primary);background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:var(--glow)}
.atabs button[aria-selected="true"] .tag{background:rgba(255,255,255,.3);color:var(--on-primary);border-color:transparent}
.atabs .tag{font-size:.7rem;padding:0 7px}
.blk.first{margin-top:16px}
/* 유리 패널 안의 칸은 유리를 겹치지 않고 옅은 칸으로 */
.blk .kpi,.blk .mapbox,.blk .pcard,.blk .ubox,.blk .panel{background:var(--glass-tile);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.blk .ubox{border-style:dashed}
.betabox{margin-top:16px;padding:12px 18px;border-radius:var(--r-cell);background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.35);font-size:.88rem;color:var(--mute)}
.betabox b{color:var(--warning)}
.h3{font-size:.95rem;margin:0 0 10px;font-family:var(--disp);font-weight:600;color:var(--ink)}
.hrow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media (max-width:720px){.two{grid-template-columns:1fr}}
.center{text-align:center}

/* 사람 버튼 */
.plist{display:flex;flex-wrap:wrap;gap:8px}
.pbtn{font:inherit;font-size:.86rem;background:var(--glass-tile);color:var(--ink);border:1px solid var(--glass-border);border-radius:999px;padding:5px 12px;cursor:pointer;transition:border-color .15s,transform .15s}
.pbtn:hover{border-color:var(--primary);transform:translateY(-1px)}
.pbtn small{color:var(--mute);margin-left:4px}
.rank .nmb{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.rank .nmb:hover,.rank .nmb:focus-visible{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.rank .nm .tag{font-size:.7rem;padding:0 6px;margin-left:4px}

/* ───────── 멤버 검색 ───────── */
.pcard{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 22px;margin:8px 0 22px;padding:18px;border-radius:var(--r-cell)}
.pcard .big{grid-column:1/-1;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pcard .big b{font-size:1.6rem;line-height:1;color:var(--ink)}
.pcard>div:not(.big)>span:first-child{display:block;color:var(--mute);font-size:.82rem}
.pcard .words{grid-column:1/-1}
.pcard .words i{font-style:normal;display:inline-block;margin:2px 10px 2px 0}
.pcard .words small{color:var(--mute)}
.chat .day{margin:22px 0 8px;color:var(--mute);font-size:.82rem;text-align:center}
.msg{display:grid;grid-template-columns:3.4em 1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--glass-border);align-items:start}
.msg .tm{color:var(--mute);font-size:.82rem;font-variant-numeric:tabular-nums;padding-top:2px}
.msg .tx{white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.msg .who{display:block;font-size:.8rem;color:var(--primary);font-weight:600}
.msg .ctxb{font:inherit;font-size:.78rem;background:var(--glass-tile);border:1px solid var(--glass-border);color:var(--mute);border-radius:999px;padding:1px 9px;cursor:pointer}
.ctx{grid-column:1/-1;margin:6px 0 4px;padding:10px 14px;background:var(--glass-well);border:1px solid var(--glass-border);border-radius:var(--r-cell);font-size:.86rem}
.ctx b{color:var(--ink)}
.ctx div{padding:2px 0}
.ctx .me{font-weight:700;color:var(--h4)}
.ctx em{font-style:normal;color:var(--mute);margin-right:6px;font-size:.8rem}
mark{background:var(--pop);color:var(--pop-ink);border-radius:3px;padding:0 2px}

/* ───────── 공통 지도 ───────── */
.maptools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.crumbs{display:flex;align-items:center;gap:6px;font-size:.95rem;flex-wrap:wrap}
.crumbs button{font:inherit;background:none;border:0;color:var(--primary);cursor:pointer;padding:2px 4px;text-decoration:underline;text-underline-offset:3px}
.crumbs b{font-family:var(--disp);font-weight:700;font-size:1.05rem;color:var(--ink)}
.mapgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:24px;align-items:start}
@media (max-width:760px){.mapgrid{grid-template-columns:1fr}}
.mapbox{position:relative;border-radius:var(--r-cell);padding:10px}
.mapsvg{width:100%;height:auto;display:block;max-height:78vh}
.mapsvg path{stroke:rgba(11,10,20,.9);stroke-width:1.1;transition:fill .2s;vector-effect:non-scaling-stroke}
.mapsvg g.rg{cursor:pointer;outline:none}
.mapsvg g.rg:hover path,.mapsvg g.rg:focus-visible path,.mapsvg g.rg.sel path{stroke:var(--accent);stroke-width:2}
.mapsvg text{pointer-events:none;font-family:var(--body);font-weight:600;fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:rgba(11,10,20,.85);stroke-width:3px;stroke-linejoin:round}
.mapsvg .badge circle{fill:var(--accent)}
.mapsvg .badge text{fill:var(--on-primary);stroke:none;font-family:var(--disp);font-weight:700}
.mtip{position:absolute;z-index:10;pointer-events:none;background:var(--glass-strong);color:var(--ink);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));border-radius:var(--r-cell);padding:10px 12px;font-size:.85rem;max-width:280px;box-shadow:var(--shadow)}
.mtip b{font-family:var(--disp);font-weight:700;font-size:1.05rem}
.mtip ul{margin:6px 0 0;padding:0;list-style:none}
.mtip li{padding:2px 0;line-height:1.35}
.mtip li i{font-style:normal;opacity:.7;margin-right:6px;font-variant-numeric:tabular-nums}
.mtip .x{opacity:.55;text-decoration:line-through}
.mtip .tip-sub,.mtip .tip-drill{opacity:.75}
.mtip .tip-drill{margin-top:6px}
.mapside{min-width:0}
.rlist{list-style:none;margin:0;padding:0}
.rlist li{display:grid;grid-template-columns:1.6em 1fr auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);cursor:pointer}
.rlist li:hover,.rlist li:focus-visible{color:var(--primary)}
.rlist .no{color:var(--mute);text-align:right;font-size:.85rem}
.rlist .c{font-family:var(--disp);font-weight:700;color:var(--ink)}
.blist{list-style:none;margin:0;padding:0}
.blist li{padding:7px 0;border-bottom:1px solid var(--line)}
.blist li small{display:block;color:var(--mute);font-size:.8rem;margin-top:2px}
.map-legend{margin-top:12px}
.ubox{margin-top:20px;padding:16px;border-radius:var(--r-cell)}
.ubox .sub{margin-bottom:8px}
.ubox .row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.ubox .row span{flex:1 1 200px}
.ubox select{width:auto;max-width:100%;min-height:36px;padding:4px 6px}
.ubox details{margin-top:10px}
.ubox summary{cursor:pointer;color:var(--mute);font-size:.9rem}

/* ───────── 멤버 대시보드 ───────── */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:8px}
@media (max-width:520px){.kpis,.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi b,.facts div b{font-size:1.6rem}}
.kpi{border-radius:var(--r-cell);padding:14px 16px}
.kpi span{display:block;color:var(--mute);font-size:.76rem;font-weight:600;letter-spacing:.02em}
.kpi b{display:block;font-family:var(--disp);font-weight:700;letter-spacing:-.03em;color:var(--ink);font-size:2rem;line-height:1.1;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi small{color:var(--mute);font-size:.8rem}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.dcard{border-radius:var(--r-panel);padding:20px;min-width:0}
.dcard.wide{grid-column:1/-1}
@media (max-width:720px){.dgrid{grid-template-columns:1fr}}
.m{background:var(--info)}
.f{background:var(--female)}
.gkey{display:flex;gap:14px;font-size:.88rem;color:var(--mute);font-family:var(--body)}
.gkey i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.ychart{display:flex;align-items:flex-end;gap:6px;height:190px;padding-top:18px;overflow-x:auto}
.ycol{flex:1 0 30px;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;cursor:default;outline-offset:2px}
.ycol .n{font-size:.8rem;color:var(--mute);margin-bottom:3px;font-variant-numeric:tabular-nums}
.ycol .stack{width:100%;max-width:44px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;transition:transform .18s,filter .18s;transform-origin:bottom}
.ycol:hover .stack,.ycol:focus-visible .stack{transform:scaleY(1.04);filter:brightness(1.12)}
.ycol .yl{font-size:.8rem;color:var(--mute);margin-top:5px}
.ycol:hover .yl,.ycol:focus-visible .yl{color:var(--ink)}
.yinfo{margin-top:12px;min-height:2.6em;font-size:.9rem;color:var(--mute)}
.yinfo b{color:var(--ink)}
.band{display:grid;grid-template-columns:6.2em 1fr 3.4em;gap:10px;align-items:center;padding:6px 0}
.band .bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:none}
.band .bar i{display:block;height:100%}
.band .c{text-align:right;font-family:var(--disp);font-weight:700;color:var(--ink)}
.band small{grid-column:2/-1;color:var(--mute);font-size:.8rem;margin-top:-4px}
.gstat{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}
.gstat .c{font-family:var(--disp);font-weight:700;color:var(--ink)}
.gsplit{display:flex;height:28px;border-radius:999px;overflow:hidden;margin:6px 0 10px}
.gsplit i{display:flex;align-items:center;justify-content:center;color:var(--on-primary);font-style:normal;font-size:.85rem;font-weight:600}
@media (prefers-reduced-motion:reduce){.ycol .stack,.pbtn{transition:none}}

/* 이름 자동완성 (멤버 검색) */
.combo{position:relative}
.combo-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);max-height:320px;overflow-y:auto;margin:0;padding:6px;list-style:none;
  background:var(--glass-solid);border:1px solid var(--glass-border-strong);border-radius:var(--r-cell);box-shadow:0 18px 50px rgba(0,0,0,.55);
  -webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));scrollbar-width:thin}
@media (prefers-reduced-transparency:reduce){.combo-list{background:var(--glass-solid)}}
.combo-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer}
.combo-list li[aria-selected="true"],.combo-list li:hover{background:rgba(165,139,255,.16)}
.combo-list li .nm{flex:1;min-width:0;display:flex;flex-direction:column}
.combo-list li b{color:var(--ink);font-weight:600;font-size:.92rem}
.combo-list li small{color:var(--mute);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.combo-list li.gone b{color:var(--mute)}
.combo-list li.none{color:var(--mute);cursor:default}

/* 멤버 상태 배지: 아이콘 + 글자 (색만으로 뜻을 전하지 않음) */
.st{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap;flex:none;border:1px solid}
.st i{font-size:.9rem}
.st-left{color:var(--mute);border-color:var(--glass-border-strong);background:var(--glass-tile)}
.st-kicked{color:var(--bad-ink);border-color:rgba(255,122,147,.4);background:var(--bad)}
.st-rejoin{color:var(--info);border-color:rgba(106,168,255,.4);background:rgba(106,168,255,.12)}
.pbtn .st,.rank .nm .st{height:18px;padding:0 6px;margin-left:6px;font-size:.68rem;vertical-align:1px}

/* 멤버 대시보드: 왼쪽 지도(+순위) · 오른쪽 구성 숫자·차트를 가로로 */
.dashrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}
.dashrow>.blk,.dashside>.blk{margin-top:0}
.dashside{display:grid;gap:16px;min-width:0}
.dashside .dgrid{margin-top:0}
.dashside .kpis{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}
.dashside .kpi{padding:12px}
.dashside .kpi b{font-size:1.35rem;white-space:nowrap}
.dashside .kpi small{font-size:.72rem}
/* 가로 2단(1024px 이상)일 때만 지도 아래 순위. 태블릿·폴드 펼침에서는 지도 옆에 순위 */
@media (min-width:1024px){.dmap .mapgrid{grid-template-columns:1fr;gap:12px}.dmap .rlist{columns:2;column-gap:24px}.dmap .rlist li{break-inside:avoid}}
@media (max-width:1023px){.dashrow{grid-template-columns:1fr}}
@media (max-width:520px){.dmap .rlist{columns:1}}
