/* 그로스 분석 · 데이터 마케팅 — console.css + transfer.css 셸 재사용 */
.gx-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;}
@media(max-width:1100px){.gx-grid{grid-template-columns:1fr;}}
/* funnel */
.gx-fns{display:flex;flex-direction:column;gap:10px;}
.gx-fn{border-left:3px solid var(--color-border-strong,#D8CCC2);padding-left:12px;}
.gx-fn--sky{border-color:var(--sky,#0369A1);}
.gx-fn--violet{border-color:#7C3AED;}
.gx-fn--green{border-color:var(--ok,#1F8A5B);}
.gx-fn--amber{border-color:var(--amber,#92660C);}
.gx-fn--coral{border-color:var(--accent-text,#B23A12);}
.gx-fn__head{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.gx-fn__k{width:24px;height:24px;border-radius:7px;background:var(--color-text-strong,#15110E);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.gx-fn__stage{font-size:11px;font-weight:800;color:var(--color-text-subtle,#9A8C82);text-transform:uppercase;letter-spacing:.03em;}
.gx-fn__label{font-size:13.5px;font-weight:700;color:var(--color-text-strong,#15110E);}
.gx-fn__conv{margin-left:auto;font-size:12px;font-weight:800;color:var(--ok,#1F8A5B);white-space:nowrap;}
.gx-fn__conv--start{color:var(--color-text-subtle,#9A8C82);}
.gx-fn__bar{position:relative;height:30px;border-radius:8px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;display:flex;align-items:center;}
.gx-fn__fill{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent-text,#B23A12) 22%,transparent),color-mix(in srgb,var(--accent-text,#B23A12) 10%,transparent));}
.gx-fn__n{position:relative;font-size:12.5px;font-weight:800;color:var(--color-text-strong,#15110E);padding-left:10px;}
.gx-fn__ev{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);margin-top:4px;}
.gx-fn__ev i{font-size:9px;color:var(--amber,#92660C);}
/* channels */
.gx-chs{display:flex;flex-direction:column;gap:11px;}
.gx-ch{display:flex;align-items:center;gap:12px;}
.gx-ch__b{flex:1;min-width:0;}
.gx-ch__n{font-size:13px;font-weight:600;color:var(--color-text-strong,#15110E);margin-bottom:5px;}
.gx-ch__bar{height:7px;border-radius:999px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;}
.gx-ch__bar>div{height:100%;border-radius:999px;background:var(--sky,#0369A1);}
.gx-ch__r{text-align:right;flex:0 0 auto;}
.gx-ch__v{font-size:13px;font-weight:800;}
.gx-ch__cac{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);margin-top:2px;}
.gx-q{font-weight:800;border-radius:999px;padding:1px 6px;font-size:9.5px;}
.gx-q--high{color:var(--ok,#1F8A5B);background:var(--ok-bg,#E5F4EC);}
.gx-q--mid{color:var(--amber,#92660C);background:var(--amber-bg,#FEF3C7);}
/* cohort */
.gx-co__wrap{overflow-x:auto;}
.gx-cotbl{width:100%;border-collapse:separate;border-spacing:3px;font-size:12px;}
.gx-cotbl th{font-size:10.5px;font-weight:700;color:var(--color-text-subtle,#9A8C82);text-transform:uppercase;letter-spacing:.03em;padding:4px 6px;text-align:center;}
.gx-cotbl th:first-child,.gx-cotbl th:nth-child(2){text-align:left;}
.gx-co__m{font-weight:700;color:var(--color-text-strong,#15110E);white-space:nowrap;}
.gx-co__sz{color:var(--color-text-muted,#6B5F57);}
.gx-co__c{text-align:center;font-weight:800;border-radius:7px;padding:9px 4px;min-width:48px;}
.gx-co__empty{background:transparent;}
/* attribution */
.gx-attrs{display:flex;flex-direction:column;gap:11px;}
.gx-attr{border:1px solid var(--color-border,#E0D5CC);border-radius:13px;padding:13px 15px;border-left:3px solid var(--color-border-strong,#D8CCC2);}
.gx-attr--coral{border-left-color:var(--accent-text,#B23A12);}
.gx-attr--amber{border-left-color:var(--amber,#92660C);}
.gx-attr--green{border-left-color:var(--ok,#1F8A5B);}
.gx-attr--sky{border-left-color:var(--sky,#0369A1);}
.gx-attr__hd{display:flex;align-items:center;gap:9px;margin-bottom:11px;}
.gx-attr__type{font-size:10.5px;font-weight:800;color:var(--color-text-muted,#6B5F57);background:var(--color-bg-subtle,#F5EEE9);border-radius:999px;padding:2px 9px;}
.gx-attr__nm{font-size:14px;font-weight:800;color:var(--color-text-strong,#15110E);text-decoration:none;}
a.gx-attr__nm:hover{color:var(--accent-text,#B23A12);}
.gx-attr__nm i{font-size:9px;color:var(--color-text-subtle,#9A8C82);}
.gx-attr__hd .tmap__code{margin-left:auto;}
.gx-attr__funnel{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.gx-attr__step{flex:1;min-width:0;}
.gx-attr__sbar{position:relative;height:26px;border-radius:7px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;display:flex;align-items:center;}
.gx-attr__sfill{position:absolute;left:0;top:0;bottom:0;border-radius:7px;background:color-mix(in srgb,var(--accent-text,#B23A12) 16%,transparent);}
.gx-attr__sn{position:relative;font-size:12px;font-weight:800;color:var(--color-text-strong,#15110E);padding-left:9px;}
.gx-attr__sl{font-size:11px;color:var(--color-text-muted,#6B5F57);margin-top:4px;}
.gx-attr__sl em{font-style:normal;font-weight:800;color:var(--ok,#1F8A5B);margin-left:3px;}
.gx-attr__arr{color:var(--color-text-subtle,#9A8C82);font-size:13px;flex:0 0 auto;align-self:flex-start;margin-top:6px;}
.gx-attr__out{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-top:11px;border-top:1px solid var(--color-divider,#EDE4DD);}
.gx-attr__o{display:flex;flex-direction:column;gap:2px;}
.gx-attr__o span{font-size:11px;color:var(--color-text-subtle,#9A8C82);}
.gx-attr__o b{font-size:14px;font-weight:800;color:var(--color-text-strong,#15110E);}
@media(max-width:680px){.gx-attr__out{grid-template-columns:repeat(2,1fr);}}
/* push campaign funnel */
.gx-push__seg{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;font-weight:700;color:#7C3AED;text-decoration:none;background:color-mix(in srgb,#7C3AED 12%,transparent);border-radius:6px;padding:2px 7px;}
.gx-push__funnel{display:flex;align-items:flex-start;gap:7px;margin-bottom:11px;flex-wrap:wrap;}
.gx-push__step{flex:1;min-width:70px;}
.gx-push__sbar{position:relative;height:24px;border-radius:6px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;display:flex;align-items:center;}
.gx-push__sfill{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:color-mix(in srgb,#7C3AED 16%,transparent);}
.gx-push__sn{position:relative;font-size:11.5px;font-weight:800;color:var(--color-text-strong,#15110E);padding-left:8px;}
.gx-push__sl{font-size:10.5px;color:var(--color-text-muted,#6B5F57);margin-top:4px;}
.gx-push__sl em{font-style:normal;font-weight:800;color:var(--ok,#1F8A5B);margin-left:2px;}
.gx-push__out{display:flex;gap:18px;flex-wrap:wrap;padding-top:11px;border-top:1px solid var(--color-divider,#EDE4DD);font-size:12px;color:var(--color-text-muted,#6B5F57);}
.gx-push__out b{color:var(--color-text-strong,#15110E);font-weight:800;}
/* discovery (추천·검색·시리즈) */
.gx-disc{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:1100px){.gx-disc{grid-template-columns:1fr;}}
.gx-disc__c{border:1px solid var(--color-border,#E0D5CC);border-radius:13px;padding:14px;background:var(--color-surface,#fff);}
.gx-disc__h{font-size:13.5px;font-weight:800;color:var(--color-text-strong,#15110E);display:flex;align-items:center;gap:8px;margin-bottom:11px;}
.gx-disc__h i{color:var(--accent-text,#B23A12);}
.gx-disc__lnk{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--color-text-subtle,#9A8C82);text-decoration:none;background:var(--color-bg-subtle,#F5EEE9);border-radius:999px;padding:2px 8px;}
.gx-disc__n{font-size:11px;color:var(--color-text-subtle,#9A8C82);margin:10px 0 0;line-height:1.45;}
.gx-disc__lb{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-subtle,#9A8C82);margin:12px 0 7px;}
.gx-disc__tags{display:flex;flex-wrap:wrap;gap:6px;}
.gx-disc__tag{font-size:11.5px;color:var(--color-text,#3D342E);background:var(--color-bg-subtle,#F5EEE9);border-radius:7px;padding:4px 9px;}
.gx-disc__tag em{font-style:normal;font-weight:800;color:var(--color-text-subtle,#9A8C82);margin-left:3px;}
.gx-disc__series{display:flex;flex-direction:column;gap:9px;}
.gx-disc__sr{padding:9px 11px;background:var(--color-bg-subtle,#F5EEE9);border-radius:10px;}
.gx-disc__srn{font-size:12.5px;font-weight:700;color:var(--color-text-strong,#15110E);}
.gx-disc__srm{font-size:11px;color:var(--color-text-muted,#6B5F57);margin-top:3px;}
.gx-disc__srm b{color:var(--color-text-strong,#15110E);}
/* builder */
.gx-builder{background:var(--color-surface,#fff);border:1px dashed var(--color-border-strong,#D8CCC2);border-radius:14px;padding:14px 16px;}
.gx-builder__lb{font-size:13px;font-weight:800;color:var(--color-text-strong,#15110E);margin-bottom:11px;}
.gx-builder__lb small{font-weight:500;color:var(--color-text-subtle,#9A8C82);}
.gx-builder__row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.gx-builder__when{font-size:12.5px;color:var(--color-text-muted,#6B5F57);}
.gx-rule{font-family:inherit;font-size:12.5px;font-weight:700;border-radius:999px;padding:6px 13px;cursor:pointer;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);}
.gx-rule.is-on{background:var(--accent-bg,#FFE9E0);border-color:var(--accent-text,#B23A12);color:var(--accent-text,#B23A12);}
/* taxonomy-driven conditions */
.gx-conds{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.gx-builder__empty{font-size:12px;color:var(--color-text-subtle,#9A8C82);}
.gx-cond{display:inline-flex;align-items:center;gap:7px;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:9px;padding:4px 5px 4px 8px;}
.gx-cond__stg{width:18px;height:18px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:800;color:#fff;background:var(--color-text-subtle);flex:0 0 auto;}
.gx-cond__ev{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;font-weight:700;color:var(--color-text-strong,#15110E);text-decoration:none;}
.gx-cond__ev:hover{color:var(--accent-text,#B23A12);}
.gx-cond__op{font-family:inherit;font-size:10.5px;font-weight:800;border:none;cursor:pointer;border-radius:6px;padding:3px 8px;background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);}
.gx-cond__x{border:none;background:none;cursor:pointer;color:var(--color-text-subtle,#9A8C82);font-size:12px;padding:2px;}
.gx-cond__and{font-size:10px;font-weight:800;color:var(--color-text-subtle,#9A8C82);}
.gx-addcond{font-family:inherit;font-size:12px;font-weight:700;border-radius:8px;padding:6px 11px;cursor:pointer;border:1px dashed var(--color-border-strong,#D8CCC2);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);}
.gx-addcond.is-on{border-style:solid;border-color:var(--accent-text,#B23A12);color:var(--accent-text,#B23A12);}
.gx-picker{display:flex;flex-direction:column;gap:4px;margin-top:11px;max-height:220px;overflow-y:auto;border:1px solid var(--color-divider,#EDE4DD);border-radius:10px;padding:6px;}
.gx-pick{display:flex;align-items:center;gap:9px;width:100%;text-align:left;font-family:inherit;border:none;background:none;cursor:pointer;padding:7px 9px;border-radius:8px;}
.gx-pick:hover{background:var(--color-bg-subtle,#F5EEE9);}
.gx-pick code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;font-weight:700;color:var(--color-text-strong,#15110E);}
.gx-pick small{color:var(--color-text-subtle,#9A8C82);font-size:11px;}
.gx-picker__none{padding:14px;text-align:center;color:var(--color-text-subtle);font-size:12px;}
.gx-builder__foot{display:flex;align-items:center;gap:12px;margin-top:12px;}
.gx-builder__hint{flex:1;}
/* stage badge colors (events.css 미로드 대비) */
.ev-stage--Acquisition{background:var(--sky,#0369A1);}
.ev-stage--Activation{background:#7C3AED;}
.ev-stage--Retention{background:var(--ok,#1F8A5B);}
.ev-stage--Referral{background:var(--amber,#92660C);}
.ev-stage--Revenue{background:var(--accent-text,#B23A12);}
.gx-builder__est{font-size:12.5px;color:var(--color-text-muted,#6B5F57);}
.gx-builder__est b{color:var(--color-text-strong,#15110E);}
.gx-builder__hint{font-size:11.5px;color:var(--color-text-subtle,#9A8C82);margin-top:11px;line-height:1.5;}
.gx-builder__hint i{color:var(--sky,#0369A1);}
/* segments */
.gx-segs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.gx-seg{background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:14px;padding:15px;border-top:3px solid var(--color-border-strong,#D8CCC2);}
.gx-seg--violet{border-top-color:#7C3AED;}
.gx-seg--rose{border-top-color:var(--rose,#E11D48);}
.gx-seg--green{border-top-color:var(--ok,#1F8A5B);}
.gx-seg--amber{border-top-color:var(--amber,#92660C);}
.gx-seg--sky{border-top-color:var(--sky,#0369A1);}
.gx-seg.is-sel{box-shadow:0 0 0 2px var(--accent-text,#B23A12);}
.gx-seg__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.gx-seg__stage{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-subtle,#9A8C82);}
.gx-seg__name{font-size:14.5px;font-weight:800;color:var(--color-text-strong,#15110E);}
.gx-seg__size{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:4px 0 2px;}
.gx-seg__size small{font-size:12px;font-weight:600;color:var(--color-text-subtle,#9A8C82);margin-left:2px;}
.gx-seg__desc{font-size:12px;color:var(--color-text-muted,#6B5F57);line-height:1.45;min-height:34px;}
.gx-seg__act{font-size:11.5px;color:var(--color-text,#3D342E);background:var(--color-bg-subtle,#F5EEE9);border-radius:9px;padding:8px 10px;margin:9px 0 11px;line-height:1.4;}
.gx-seg__act i{color:var(--accent-text,#B23A12);margin-right:4px;}
.gx-seg__btn{width:100%;justify-content:center;}
.gx-evlink{text-decoration:none;border-bottom:1px dashed var(--color-border-strong,#D8CCC2);}
.gx-evlink:hover{color:var(--accent-text,#B23A12);border-bottom-color:var(--accent-text,#B23A12);}
.gx-hl{animation:gx-hl 2.2s ease;border-radius:14px;}
@keyframes gx-hl{0%,100%{box-shadow:0 0 0 0 transparent;}14%{box-shadow:0 0 0 3px var(--accent-text,#B23A12);}}
.txnote i{color:var(--sky,#0369A1);}

/* 다중터치 어트리뷰션(모델 비교) — 기존 growth 토큰 재사용(하드코딩 hex 금지·var fallback만). */
.mt-model-kpis{display:flex;flex-direction:column;gap:0;border:1px solid var(--color-border,#E0D5CC);border-radius:12px;overflow:hidden;margin-bottom:14px;}
.mt-model-kpis__head,.mt-model-kpis__row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;align-items:center;padding:9px 14px;}
.mt-model-kpis__head{background:var(--color-bg-subtle,#F5EEE9);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-subtle,#9A8C82);}
.mt-model-kpis__head span:not(:first-child),.mt-model-kpis__row span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;}
.mt-model-kpis__row{border-top:1px solid var(--color-divider,#EDE4DD);font-size:13.5px;font-weight:700;color:var(--color-text-strong,#15110E);}
.mt-model-kpis__row.is-baseline{background:color-mix(in srgb,var(--sky,#0369A1) 6%,transparent);}
.mt-model-kpis__row.is-selected{box-shadow:inset 3px 0 0 var(--accent-text,#B23A12);}
.mt-baseline-tag{display:inline-block;font-style:normal;font-size:10px;font-weight:800;color:var(--sky,#0369A1);background:color-mix(in srgb,var(--sky,#0369A1) 12%,transparent);border-radius:999px;padding:1px 8px;margin-left:7px;}
.mt-rows{display:flex;flex-direction:column;gap:0;border:1px solid var(--color-border,#E0D5CC);border-radius:12px;overflow:hidden;margin-top:12px;}
.mt-rows__head,.mt-rows__row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:10px;align-items:center;padding:9px 14px;}
.mt-rows__head{background:var(--color-bg-subtle,#F5EEE9);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-subtle,#9A8C82);}
.mt-rows__head span:not(:nth-child(-n+2)),.mt-rows__row span:not(:nth-child(-n+2)){text-align:right;font-variant-numeric:tabular-nums;}
.mt-rows__row{border-top:1px solid var(--color-divider,#EDE4DD);font-size:13px;color:var(--color-text-strong,#15110E);}
.mt-rows__row .subtle{font-style:normal;font-size:11px;color:var(--color-text-subtle,#9A8C82);margin-left:5px;}
@media(max-width:680px){.mt-rows__head,.mt-rows__row{grid-template-columns:1.4fr 1fr 1fr;}.mt-rows__head span:nth-child(2),.mt-rows__row span:nth-child(2){display:none;}}
